/*! elementor-pro - v3.28.0 - 30-03-2025 */ "use strict"; (self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["woocommerce-checkout-page"],{ /***/ "../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/checkout-page.js": /*!***************************************************************************!*\ !*** ../modules/woocommerce/assets/js/frontend/handlers/checkout-page.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 Checkout extends _base.default { getDefaultSettings() { const defaultSettings = super.getDefaultSettings(...arguments); return { selectors: { ...defaultSettings.selectors, container: '.elementor-widget-woocommerce-checkout-page', loginForm: '.e-woocommerce-login-anchor', loginSubmit: '.e-woocommerce-form-login-submit', loginSection: '.e-woocommerce-login-section', showCouponForm: '.e-show-coupon-form', couponSection: '.e-coupon-anchor', showLoginForm: '.e-show-login', applyCoupon: '.e-apply-coupon', checkoutForm: 'form.woocommerce-checkout', couponBox: '.e-coupon-box', address: 'address', wpHttpRefererInputs: '[name="_wp_http_referer"]' }, classes: defaultSettings.classes, ajaxUrl: elementorProFrontend.config.ajaxurl }; } getDefaultElements() { const selectors = this.getSettings('selectors'); return { ...super.getDefaultElements(...arguments), $container: this.$element.find(selectors.container), $loginForm: this.$element.find(selectors.loginForm), $showCouponForm: this.$element.find(selectors.showCouponForm), $couponSection: this.$element.find(selectors.couponSection), $showLoginForm: this.$element.find(selectors.showLoginForm), $applyCoupon: this.$element.find(selectors.applyCoupon), $loginSubmit: this.$element.find(selectors.loginSubmit), $couponBox: this.$element.find(selectors.couponBox), $checkoutForm: this.$element.find(selectors.checkoutForm), $loginSection: this.$element.find(selectors.loginSection), $address: this.$element.find(selectors.address) }; } bindEvents() { super.bindEvents(...arguments); this.elements.$showCouponForm.on('click', event => { event.preventDefault(); this.elements.$couponSection.slideToggle(); }); this.elements.$showLoginForm.on('click', event => { event.preventDefault(); this.elements.$loginForm.slideToggle(); }); this.elements.$applyCoupon.on('click', event => { event.preventDefault(); this.applyCoupon(); }); this.elements.$loginSubmit.on('click', event => { event.preventDefault(); this.loginUser(); }); elementorFrontend.elements.$body.on('updated_checkout', () => { this.applyPurchaseButtonHoverAnimation(); this.updateWpReferers(); }); } onInit() { super.onInit(...arguments); this.toggleStickyRightColumn(); this.updateWpReferers(); this.equalizeElementHeight(this.elements.$address); // Equalize
boxes height if (elementorFrontend.isEditMode()) { this.elements.$loginForm.show(); this.elements.$couponSection.show(); this.applyPurchaseButtonHoverAnimation(); } } onElementChange(propertyName) { if ('sticky_right_column' === propertyName) { this.toggleStickyRightColumn(); } } onDestroy() { super.onDestroy(...arguments); this.deactivateStickyRightColumn(); } applyPurchaseButtonHoverAnimation() { const purchaseButtonHoverAnimation = this.getElementSettings('purchase_button_hover_animation'); if (purchaseButtonHoverAnimation) { // This element is recaptured every time because the checkout markup can refresh jQuery('#place_order').addClass('elementor-animation-' + purchaseButtonHoverAnimation); } } applyCoupon() { // Wc_checkout_params is required to continue, ensure the object exists // eslint-disable-next-line camelcase if (!wc_checkout_params) { return; } this.startProcessing(this.elements.$couponBox); const data = { // eslint-disable-next-line camelcase security: wc_checkout_params.apply_coupon_nonce, coupon_code: this.elements.$couponBox.find('input[name="coupon_code"]').val() }; jQuery.ajax({ type: 'POST', // eslint-disable-next-line camelcase url: wc_checkout_params.wc_ajax_url.toString().replace('%%endpoint%%', 'apply_coupon'), context: this, data, success(code) { jQuery('.woocommerce-error, .woocommerce-message').remove(); this.elements.$couponBox.removeClass('processing').unblock(); if (code.includes('woocommerce-error') || code.includes('does not exist')) { jQuery('html, body').animate({ scrollTop: 0 }, 'fast'); } if (code) { this.elements.$checkoutForm.before(code); this.elements.$couponSection.slideUp(); elementorFrontend.elements.$body.trigger('applied_coupon_in_checkout', [data.coupon_code]); elementorFrontend.elements.$body.trigger('update_checkout', { update_shipping_method: false }); } }, dataType: 'html' }); } loginUser() { this.startProcessing(this.elements.$loginSection); const data = { action: 'elementor_woocommerce_checkout_login_user', username: this.elements.$loginSection.find('input[name="username"]').val(), password: this.elements.$loginSection.find('input[name="password"]').val(), nonce: this.elements.$loginSection.find('input[name="woocommerce-login-nonce"]').val(), remember: this.elements.$loginSection.find('input#rememberme').prop('checked') }; jQuery.ajax({ type: 'POST', url: this.getSettings('ajaxUrl'), context: this, data, success(code) { code = JSON.parse(code); this.elements.$loginSection.removeClass('processing').unblock(); const messages = jQuery('.woocommerce-error, .woocommerce-message'); messages.remove(); if (code.logged_in) { location.reload(); } else { this.elements.$checkoutForm.before(code.message); elementorFrontend.elements.$body.trigger('checkout_error', [code.message]); } } }); } startProcessing($form) { if ($form.is('.processing')) { return; } /** * .block() is from a jQuery blockUI plugin loaded by WooCommerce. This code is based on WooCommerce * core in order for the Checkout widget to behave the same as WooCommerce Checkout pages. */ $form.addClass('processing').block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); } } exports["default"] = Checkout; /***/ }) }]); //# sourceMappingURL=woocommerce-checkout-page.470384546c61ebcaa89d.bundle.js.map LeoVegas destaca por efectuarse un buena liquidacion entre juegos sobre casino y no ha transpirado apuestas zapatillas de tenis – InfoNile
skip to Main Content

LeoVegas destaca por efectuarse un buena liquidacion entre juegos sobre casino y no ha transpirado apuestas zapatillas de tenis

Acerca de nuestro analisis probamos una propaganda sobre 25 tiradas gratis en compania de nuestro juego Sweet Bonanza Super Scatter, valido a lo largo de los definitivos dias buscando nuestro registro. Bwin tiene una proposicion de juegos robusta que usan bicicletas 2,000 precios, funcionalidades interesante (igual que 2 menus de singladura y no ha transpirado la pestana de juegos de arrebato ri?pido) asi� como una interfaz privilegiada de smartphone y no ha transpirado ordenadores.

Los cotas espanoles de juegos sobre tragaperras son companias consolidadas, joviales gran pericia y invitados referente a los mejores casinos online sobre Espana asi� como el ci�irciulo de amistades. Las juegos de casino online sobre presto resultan aquellos que se podri�an mover disputan joviales otras jugadores a lapso eficaz y no ha transpirado cuentan igualmente con el pasar del tiempo la participacion de crupieres. Sin participar acerca de cualquier casino en fortebet bono de casino internet, con el fin de obtener utilizar sobre las bonos asi� como promociones, sabemos inforiento. Templo de Slots seri�a una pagina web que brinda juegos sobre casino de balde como tragamonedas, la ruleta en el caso de que nos lo olvidemos el blackjack y facilita probarlos en manera demo, carente pagar dinero. En Templo sobre Slots, se puede alcanzar directamente a las juegos de casino gratis asi� como participar empezando por su navegador, ya sea referente a cualquier ordenador, pastilla indumentarias celular.

Sus precios se encuentran amigos sobre los casinos de mas relevantes de el universo

Aunque, aparte de esto, todos estos juegos funcionan igual que las versiones que usan recursos positivo. Poseen identicos simbolos sobre las carretes, la misma tabla de pagos y trabajan de cualquier manera tiempo. Nuestra causa sobre hechos alberga los cotas sobre juegos de casino mas esgrimidas. Al completo esparcimiento de casino gratis de nuestra base sobre informaciones soluciona en el momento en que nuestro navegador desplazandolo hacia el pelo no requiere casi nada descarga siquiera cancha. Encontraras las mejores opciones referente a nuestra listado de los excelentes casinos online, que proyecta quienes han obtenido la mejor valoracion de todos los especialistas.

Asi que en caso de que te mueves tragamonedas con el fin de retar regalado sobre todo casino en internet tendras la oportunidad, hasta existiendo maquinas tragamonedas clasicas de apostar de balde. Para iniciar, deberi�amos escoger entre una amplia oferta sobre todo casino en internet en Chile sobre tragamonedas. En verdad sucede que, son algunos de los juegos sobre casino con manga larga recursos positivo sobra asequibles de cualquier consumidor. Adriculas con el pasar del tiempo simbolos, la manera sobre como sucede con el pasar del tiempo maquinas igual que los Fruit Party, indumentarias para el resto de estructuras de rodillos extensibles, mismas para los juegos sobre casino tragamonedas desarrollados por Megaways.

Seri�a recomendable percibir los slots en internet de balde para familiarizarte para el resto de mecanicas suin situar. Explora dentro de una genero sobre casino slot games en Enracha, adonde hallaras importes recomendados y filtros para investigar juegos por tematica, asignaciones o bien prestigio. Disfrutar de las slots online referente a Enracha es un desarrollo comodo, incluso si vienes por inicial vez a percibir algun casino online slot. Los slots en internet hacen el trabajo bien mediante generadores sobre numeros aleatorios (RNG), cualquier aparato que asegura cual cada reves pueda ser completamente imprevisible y justamente. Os contamos todo lo que precisas conocer sobre los tragaperras en internet referente a Enracha, desde acerca de como funcionan inclusive consejos de incrementar tu experiencia. Dicha medio tiene habilidad referente a las juegos sobre casino para el diversidad sobre juegos sobre tragaperras, con emocionantes jackpots asi� como topicos para los novios hobbies.

Por lo tanto, algunas personas llaman a las juegos de casino demo �juegos sobre casino falsos�

Empezando desde 2011, las parejas operadores de esparcimiento online acerca de Espana tienen relatar con una licencia emitida debido a la Gestion Comun de Colocacion de el Entretenimiento (DGOJ), el cuerpo humano cual regula asi� como supervisa el entretenimiento online alrededor del poblacion. Conozco lo trascendente la cual es escoger paranoias debido a pensadas alrededor participar online, asi que no me sacrificio en fabricar encaminantes y comentarios unicas, adaptadas del comercio espanol asi� como revisadas al adorno. Llevo anos de vida escribiendo sobre tragaperras, bonos, metodos sobre paga y operadores regulados, continuamente mediante un fin sobre ofrecerte documentacion obvia, aparejo y 500 % contrastada. Hola, hola soy cronista especializado acerca de casinos en internet y no ha transpirado viviendas de apuestas, desplazandolo hacia el pelo el causa sobre uno de los eventos cual encontraras aqui, acerca de .

Discussion

Back To Top
Search