/*! elementor-pro - v3.31.0 - 10-08-2025 */
"use strict";
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["woocommerce-cart"],{
/***/ "../modules/woocommerce/assets/js/frontend/handlers/base.js":
/*!******************************************************************!*\
!*** ../modules/woocommerce/assets/js/frontend/handlers/base.js ***!
\******************************************************************/
/***/ ((__unused_webpack_module, exports) => {
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
class Base extends elementorModules.frontend.handlers.Base {
getDefaultSettings() {
return {
selectors: {
stickyRightColumn: '.e-sticky-right-column'
},
classes: {
stickyRightColumnActive: 'e-sticky-right-column--active'
}
};
}
getDefaultElements() {
const selectors = this.getSettings('selectors');
return {
$stickyRightColumn: this.$element.find(selectors.stickyRightColumn)
};
}
bindEvents() {
// Add our wrapper class around the select2 whenever it is opened.
elementorFrontend.elements.$document.on('select2:open', event => {
this.addSelect2Wrapper(event);
});
}
addSelect2Wrapper(event) {
// The select element is recaptured every time because the markup can refresh
const selectElement = jQuery(event.target).data('select2');
if (selectElement.$dropdown) {
selectElement.$dropdown.addClass('e-woo-select2-wrapper');
}
}
isStickyRightColumnActive() {
const classes = this.getSettings('classes');
return this.elements.$stickyRightColumn.hasClass(classes.stickyRightColumnActive);
}
activateStickyRightColumn() {
const elementSettings = this.getElementSettings(),
$wpAdminBar = elementorFrontend.elements.$wpAdminBar,
classes = this.getSettings('classes');
let stickyOptionsOffset = elementSettings.sticky_right_column_offset || 0;
if ($wpAdminBar.length && 'fixed' === $wpAdminBar.css('position')) {
stickyOptionsOffset += $wpAdminBar.height();
}
if ('yes' === this.getElementSettings('sticky_right_column')) {
this.elements.$stickyRightColumn.addClass(classes.stickyRightColumnActive);
this.elements.$stickyRightColumn.css('top', stickyOptionsOffset + 'px');
}
}
deactivateStickyRightColumn() {
if (!this.isStickyRightColumnActive()) {
return;
}
const classes = this.getSettings('classes');
this.elements.$stickyRightColumn.removeClass(classes.stickyRightColumnActive);
}
/**
* Activates the sticky column
*
* @return {void}
*/
toggleStickyRightColumn() {
if (!this.getElementSettings('sticky_right_column')) {
this.deactivateStickyRightColumn();
return;
}
if (!this.isStickyRightColumnActive()) {
this.activateStickyRightColumn();
}
}
equalizeElementHeight($element) {
if ($element.length) {
$element.removeAttr('style'); // First remove the custom height we added so that the new height can be re-calculated according to the content
let maxHeight = 0;
$element.each((index, element) => {
maxHeight = Math.max(maxHeight, element.offsetHeight);
});
if (0 < maxHeight) {
$element.css({
height: maxHeight + 'px'
});
}
}
}
/**
* WooCommerce prints the Purchase Note separated from the product name by a border and padding.
* In Elementor's Order Summary design, the product name and purchase note are displayed un-separated.
* To achieve this design, it is necessary to access the Product Name line before the Purchase Note line to adjust
* its padding. Since this cannot be achieved in CSS, it is done in this method.
*
* @param {Object} $element
*
* @return {void}
*/
removePaddingBetweenPurchaseNote($element) {
if ($element) {
$element.each((index, element) => {
jQuery(element).prev().children('td').addClass('product-purchase-note-is-below');
});
}
}
/**
* `elementorPageId` and `elementorWidgetId` are added to the url in the `_wp_http_referer` input which is then
* received when WooCommerce does its cart and checkout ajax requests e.g `update_order_review` and `update_cart`.
* These query strings are extracted from the url and used in our `load_widget_before_wc_ajax` method.
*/
updateWpReferers() {
const selectors = this.getSettings('selectors'),
wpHttpRefererInputs = this.$element.find(selectors.wpHttpRefererInputs),
url = new URL(document.location);
url.searchParams.set('elementorPageId', elementorFrontend.config.post.id);
url.searchParams.set('elementorWidgetId', this.getID());
wpHttpRefererInputs.attr('value', url);
}
}
exports["default"] = Base;
/***/ }),
/***/ "../modules/woocommerce/assets/js/frontend/handlers/cart.js":
/*!******************************************************************!*\
!*** ../modules/woocommerce/assets/js/frontend/handlers/cart.js ***!
\******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/woocommerce/assets/js/frontend/handlers/base.js"));
class Cart extends _base.default {
getDefaultSettings() {
const defaultSettings = super.getDefaultSettings(...arguments);
return {
selectors: {
...defaultSettings.selectors,
shippingForm: '.shipping-calculator-form',
quantityInput: '.qty',
updateCartButton: 'button[name=update_cart]',
wpHttpRefererInputs: '[name=_wp_http_referer]',
hiddenInput: 'input[type=hidden]',
productRemove: '.product-remove a'
},
classes: defaultSettings.classes,
ajaxUrl: elementorProFrontend.config.ajaxurl
};
}
getDefaultElements() {
const selectors = this.getSettings('selectors');
return {
...super.getDefaultElements(...arguments),
$shippingForm: this.$element.find(selectors.shippingForm),
$stickyColumn: this.$element.find(selectors.stickyColumn),
$hiddenInput: this.$element.find(selectors.hiddenInput)
};
}
bindEvents() {
super.bindEvents();
const selectors = this.getSettings('selectors');
elementorFrontend.elements.$body.on('wc_fragments_refreshed', () => this.applyButtonsHoverAnimation());
if ('yes' === this.getElementSettings('update_cart_automatically')) {
this.$element.on('input', selectors.quantityInput, () => this.updateCart());
}
elementorFrontend.elements.$body.on('wc_fragments_loaded wc_fragments_refreshed', () => {
this.updateWpReferers();
if (elementorFrontend.isEditMode() || elementorFrontend.isWPPreviewMode()) {
this.disableActions();
}
});
elementorFrontend.elements.$body.on('added_to_cart', function (e, data) {
// We do not want the page to reload in the Editor after we triggered the 'added_to_cart' event.
if (data.e_manually_triggered) {
return false;
}
});
}
onInit() {
super.onInit(...arguments);
this.toggleStickyRightColumn();
this.hideHiddenInputsParentElements();
if (elementorFrontend.isEditMode()) {
this.elements.$shippingForm.show();
}
this.applyButtonsHoverAnimation();
this.updateWpReferers();
if (elementorFrontend.isEditMode() || elementorFrontend.isWPPreviewMode()) {
this.disableActions();
}
}
/**
* Using the WooCommerce Cart controls (quantity, remove product) in the editor will cause the cart to disappear.
* This is because WooCommerce does an ajax round trip where it modifies the cart, then loads that cart into the
* current page and attempts to grab the elements from that page via ajax. In the Editor, if the page is not
* published yet, it fetches an empty page that does not contain the required elements. As a result, the cart
* is rendered empty.
*
* Due to this issue, the cart controls (quantity, remove product) need to be disabled in the Editor.
*/
disableActions() {
const selectors = this.getSettings('selectors');
this.$element.find(selectors.updateCartButton).attr({
disabled: 'disabled',
'aria-disabled': 'true'
});
if (elementorFrontend.isEditMode()) {
this.$element.find(selectors.quantityInput).attr('disabled', 'disabled');
this.$element.find(selectors.productRemove).css('pointer-events', 'none');
}
}
onElementChange(propertyName) {
if ('sticky_right_column' === propertyName) {
this.toggleStickyRightColumn();
}
if ('additional_template_select' === propertyName) {
elementorPro.modules.woocommerce.onTemplateIdChange('additional_template_select');
}
}
onDestroy() {
super.onDestroy(...arguments);
this.deactivateStickyRightColumn();
}
updateCart() {
const selectors = this.getSettings('selectors');
clearTimeout(this._debounce);
this._debounce = setTimeout(() => {
this.$element.find(selectors.updateCartButton).trigger('click');
}, 1500);
}
applyButtonsHoverAnimation() {
const elementSettings = this.getElementSettings();
if (elementSettings.checkout_button_hover_animation) {
// This element is recaptured every time because the cart markup can refresh
jQuery('.checkout-button').addClass('elementor-animation-' + elementSettings.checkout_button_hover_animation);
}
if (elementSettings.forms_buttons_hover_animation) {
// This element is recaptured every time because the cart markup can refresh
jQuery('.shop_table .button').addClass('elementor-animation-' + elementSettings.forms_buttons_hover_animation);
}
}
/**
* In the editor, WC Frontend JS does not fire (not registered).
* This causes that hidden inputs parent paragraph elements do not get display:none
* as they would have on the front end.
* So this function manually display:none the parent elements of these hidden inputs to avoid having
* gaps/spaces in the layout caused by these parent elements' margins/paddings.
*/
hideHiddenInputsParentElements() {
if (this.isEdit) {
if (this.elements.$hiddenInput) {
this.elements.$hiddenInput.parent('.form-row').addClass('elementor-hidden');
}
}
}
}
exports["default"] = Cart;
/***/ })
}]);
//# sourceMappingURL=woocommerce-cart.79b5dc500681930471c6.bundle.js.map
Y es que, hay que tener en cuenta que la eficiencia energética de la propiedad se tiene en cuenta también a la hora de fijar su precio, según nos indica este informe, un activo en venta puede aumentar su valor hasta un 17 por ciento si ha sido rehabilitado, porcentaje que puede llegar a ser del 35 por ciento si se trata de alquiler en vez de venta. Al mismo tiempo que está demostrado que un edificio reformado goza de una mayor demanda y permanece desocupado menos tiempo, lo que contribuye al saneamiento del sector inmobiliario en nuestro país.
Además, los datos que se incluyen el Libro Verde certifican también que la adopción de un enfoque sostenible fomenta la creación de nuevos puestos de trabajo. En concreto, la actividad de rehabilitación de los edificios genera 18 puestos por cada millón de euros invertidos en el sector de la construcción en España, aportando una mayor solidez a la economía de nuestro país, algo importante en los tiempos que corren.
Ricardo Martí Fluxá, presidente de la Asociación de Consultoras Inmobiliarias, puso de manifiesto en la presentación del Libro Verde que las empresas que invierten en el sector inmobiliario apuestan cada vez más por edificios sostenibles, que se ajusten a las últimas tendencias que va marcando el mercado y las diferencien frente a los de su competencia directa. Esto pone de relieve que la importancia de la eficiencia energética es cada vez mayor.
El nuevo proyecto de la Asociación de Consultoras Inmobiliarias, que fue fundada en el año 2013 y está integrada por las siete grandes consultoras españolas, Aguirre Newman, BNP Paribas Real Estate, CBRE, Cushman & Wakefield, JLL, Knight Frank y Savills, recoge informaciones sobre los principales aspectos económicos, sociales y legales que hay que tener en cuenta a la hora de hablar de sostenibilidad aplicada al sector inmobiliario y da cuenta del creciente interés por invertir en transformar inmuebles más antiguos en activos verdes.
]]>Y es que, hay que tener en cuenta que la eficiencia energética de la propiedad se tiene en cuenta también a la hora de fijar su precio, según nos indica este informe, un activo en venta puede aumentar su valor hasta un 17 por ciento si ha sido rehabilitado, porcentaje que puede llegar a ser del 35 por ciento si se trata de alquiler en vez de venta. Al mismo tiempo que está demostrado que un edificio reformado goza de una mayor demanda y permanece desocupado menos tiempo, lo que contribuye al saneamiento del sector inmobiliario en nuestro país.
Además, los datos que se incluyen el Libro Verde certifican también que la adopción de un enfoque sostenible fomenta la creación de nuevos puestos de trabajo. En concreto, la actividad de rehabilitación de los edificios genera 18 puestos por cada millón de euros invertidos en el sector de la construcción en España, aportando una mayor solidez a la economía de nuestro país, algo importante en los tiempos que corren.
Ricardo Martí Fluxá, presidente de la Asociación de Consultoras Inmobiliarias, puso de manifiesto en la presentación del Libro Verde que las empresas que invierten en el sector inmobiliario apuestan cada vez más por edificios sostenibles, que se ajusten a las últimas tendencias que va marcando el mercado y las diferencien frente a los de su competencia directa. Esto pone de relieve que la importancia de la eficiencia energética es cada vez mayor.
El nuevo proyecto de la Asociación de Consultoras Inmobiliarias, que fue fundada en el año 2013 y está integrada por las siete grandes consultoras españolas, Aguirre Newman, BNP Paribas Real Estate, CBRE, Cushman & Wakefield, JLL, Knight Frank y Savills, recoge información sobre los principales aspectos económicos, sociales y legales que hay que tener en cuenta a la hora de hablar de sostenibilidad aplicada al sector inmobiliario y da cuenta del creciente interés por invertir en transformar inmuebles más antiguos en activos verdes.
]]>Esto se consigue por ejemplo con la tecnología de los mismos y al aprovechamiento de las fuentes renovables más adecuadas según la zona en la que se encuentre la vivienda. Los beneficios de una casa eficiente son un mayor confort, el ahorro energético, las bajas emisiones de CO2 y un importante compromiso con el medioambiente y con la calidad de vida de sus usuarios. Una casa eficiente será cálida en invierno y fresca en verano, cualidades que optimizan así la eficiencia de la calefacción, refrigeración e iluminación, lo que disminuye la necesidad de utilizar medios artificiales y permite un ahorro energético importante.
Porque hoy en día en Europa, los edificios representan el 40% del consumo energético y de las emisiones de gases de efecto invernadero de la Unión Europea. Por este motivo es clave la eficiencia energética de los edificios nuevos y antiguos para abordar el cambio climático y el ahorro de recursos. En el año 2010 se adaptó la nueva legislación sobre eficiencia energética y esta establece que los edificios nuevos deberán tener un consumo casi nulo en 2021. Además, en el año 2019 esta normativa será de obligado cumplimiento para los edificios públicos.
Por otro lado, el 21% del consumo total de plásticos en Europa pertenece al sector de la construcción, lo que sitúa esta aplicación en la segunda más importante tras los envases. Los plásticos dentro de las estructuras de los edificios tienen multitud de aplicaciones: aislar e insonorizar paredes, canalizar el agua limpia y evacuar las aguas residuales a través de tuberías, para sistemas de recuperación de calor o para conductos de ventilación, entre otros. Pero es que los plásticos también se emplean para la fabricación de paneles solares en tejados inclinados, revestimientos o elementos de protección contra los rayos ultravioleta. Otra innovación que depende de los plásticos es la pila de combustible que transforma el hidrógeno y el oxígeno en energía eléctrica. Y es que las soluciones plásticas son casi infinitas y son grandes aliados de una vivienda energéticamente eficiente.
]]>