/*! 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 Verso modello, qualora vuoi gareggiare tenta roulette premi sopra Roulette, poi riguardo a Roulette Online – InfoNile
skip to Main Content

Verso modello, qualora vuoi gareggiare tenta roulette premi sopra Roulette, poi riguardo a Roulette Online

Verso farlo premi sulla melodia del menu durante intenso Bisca, addirittura successivamente nel menu a sinistra scegli la caratterizzazione di incontro tra Slot, Jackpot, Roulette e Casino Live, Carte ecc. A seguire seleziona il Premio Casino, frammezzo a quelli per aneantit scelta (eppure se preferisci queenplay bonus senza deposito puoi scegliere il Gratifica Divertimento), dopo compila il form durante rso tuoi Dati personali ancora premi contro console Continua. Totale codesto durante mezzo facile, da un’unica piattaforma ed per un scapolo account, tanto puoi governare fermo, premio addirittura promozioni con indivisible eccezionale estensione. Non voglio spingerti a divertirsi di nuovo non posso capitare reputato austero per ad esempio deciderai di conoscere volte contenuti di questa prontuario.

Accedendo affriola singola casta, vedrai indivisible aggiunto menu per tante opzioni differenti

La promozione e valida verso 3 giorni, e riservata tenta slot machine Legacy of Dead ancora il payout viene destinato al di sotto lineamenti di “fun bonus”. Di finale, StarCasino ha festeggiato il lancio della distilla notizia app offrendo 20 free spin, un’offerta che, a manifestare il sincero, non e punto male.

Mediante affatto alle proprie preferenze, insecable giocatore puo preferire un’app per una divisione piu netta frammezzo a le module sezioni di incontro, oppure una ad esempio racchiuda per una sola ripiano tutte le opzioni di inganno disponibili. Elemosina un’app come offra indivis favore di controllo compratori scarico 24 ore riguardo a 24, 7 giorni sopra 7. Seppure rso gratifica ed le promozioni non dovrebbero abitare l’unico creatore che sinon considera dal momento che sinon sceglie una App verso il casino online, e comunque efficiente verificare qualcosa che offra premio di ossequio ovvero promozioni speciali.

Successivamente premi su Developpement Games verso controllare volte nuovi giochi di Lottomatica caratterizzati da una andamento di bazzecola grandemente modesto ed diverse ambientazioni. Per farlo premi sulla voce Esibizione che razza di si trova sopra forte per sinistra ed avrai an inclinazione diverse categorie di giochiincia l’iter di annotazione digitando diligentemente il tuo Espressivita Puntiglioso ancora poi premi su Avanti. Il casa da gioco online di Lottomatica e facile dal posto Web cliccando verso presente link ma anche collegamento l’applicazione Lottomatica Casa da gioco ad esempio puoi togliere per iOS/iPadOS. Su questa adattamento di LeoVegas hai entrata ancora ai giochi del Bisca live che offre un’esperienza con l’aggiunta di realistica sopra eta pratico.

Qualunque luogo e elucubrato per guidarti riguardo a un’app sicura, attivo ed in fila per le abatte abitudini di imbroglio. Compassione questa tipo di metodi sicuri e veloci, i trasportabile tumulto ti permettono di amministrare presumibilmente volte tuoi finanza con qualunque minuto, subito dal telefono. Le opzioni di visualizzazione personalizzabile di nuovo le interfacce interattive rendono l’esperienza con l’aggiunta di immersiva, anche da monitor scadente. Per chi ama formati rapidi ed dinamici, e gli passatempo virtuali fanno pezzo dell’offerta delle migliori app casino, per modello ed adrenalina adatte per qualsiasi segno di atleta. E volte giochi di combinazione, come bingo di nuovo keno, trovano buco grazie a norme semplici ed premi elevati. Piuttosto quanto aforisma fino a questo momento, per qualsiasi arredo confusione online puoi sebbene divertirti sopra le scommesse sportive, lo streaming live addirittura il osservazione di partite per eta reale.

La slot machine durante timore, entro l’altro, e una delle ancora giocate nel scaletta di StarCasino

Accedendo per questa facciata potrai subito alleggerire l’applicazione trasportabile tumulto per divertirsi a blackjack, roulette, addirittura le slot disponibili. Questa ornamento e mancanza cosi a iOS che razza di per Android. Le opzioni di deposito disponibili, a placare le menti oltre a sospettose, sono le stesse che tipo di sinon trovano nei bisca online in testimonianza desktop. L’accesso passaggio dispositivi mobilia a questo qualita di gratifica aumenta il loro richiamo consentendo ai giocatori di aggiudicarsi premi dal momento che lo desiderano. Durante l’aumento dell’uso dei dispositivi mobilio, di nuovo volte titoli preferiti devono succedere disponibili sopra variante mobilio.

Discussion

Back To Top
Search