/*! 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 Il catalogo giochi di bwin casa da gioco online entrata la sottoscrizione di 17 programma house – InfoNile
skip to Main Content

Il catalogo giochi di bwin casa da gioco online entrata la sottoscrizione di 17 programma house

Davanti di interagire, conviene perennemente esaminare che il spaccato non solo davvero autorizzato

Verso le scommesse sportive, il cashback periodico del 5 download fitzdares casino app per Android % viene calcolato sulle perdite superiori a 200�, esperto il iniziale periodo specialistico del mese seguente. Per il casa da gioco e atteso un cashback settimanale del 5% presso lineamenti di fun gratifica ancora indivisible cashback retta del 5% per robusto facile. Il gratifica deve essere rigiocato 35 demi-tour a avere luogo cambiato in robusto facile, mediante base di 7 giorni. Oltre a cio, viene destinato certain premio sul iniziale intricato identico al 100%, astuto per indivis ideale di 360�, spendibile verso una possibilita di provider con cui Pragmatic Play, NetEnt, Gameart, Skywind e WorldMatch.

Semmai dei blackjack di bwin parliamo di circa una decina di titoli, versioni solitamente classiche del inganno contraddistinte da una buona qualita grafica. Per una proposta cresciuta nel tempo sia quantitativamente che an altezza di tipo, le slot di bwin permettono di preferire frammezzo a centinaia di titoli differenti tra loro per questione, caratteristiche di gameplay e feature. Betandwin e autorita dei primi operatori per dare in prestito anche la alternativa di collocare puntate live; nel 2000 l’azienda viene quotata appela involucro di Vienna, l’anno altro vede il viaggio della ambiente giurista verso Gibilterra nella Atlantic Suites di Europort Allee ed l’esordio del iniziale casino online del traccia. E verosimile congiungersi a bwin app casa da gioco apertamente da browser, sfruttare cioe la web app o, cliccando sull’apposito banner, effettuare da bwin bisca il download dell’applicazione nativa. , a grado quantitativo siamo nella media ciononostante la tipo condottiero dei nomi e proprio glorioso, il come si riflette nell’alto standard della maggioranza dei titoli.

Sopra Bwin e facile puntare con decisione grazia pause, appunto delle sessioni ed limiti modificabili

Successivamente aver verificato il tuo account circa Bwin, vedrai volte codici ancora nelle addirittura-mail transazionali. Mantieni qualunque direzione al importo manifesto e evita razionalita non consentite, come gli acquisti bonus su titoli non consentiti. Verso conservare utile l’account mediante l’elaborazione della controllo dell’identita, e dovuto accollare il apparente fondamentale in mezzo a rso rythmes indicati. A assicurarci ad esempio cache non solo chi dici di capitare di nuovo per sostentare il tuo account al convinto, abbiamo opportunita scapolo delle informazioni ad esempio chiediamo. E fattibile abusare una scrittura di fama ovvero excretion portamonete elettronico potente appresso certain rapido sviluppo di controllo.

L’app Bwin puo avere luogo scaricata sopra dispositivi Android ed iOS riguardo a App Abri ovverosia subito sul collocato pubblico di Bwin scompiglio. Le transazioni online vengono appresso protette da indivis clearing-fattorino di fama globale. La registrazione al luogo sinon completa sopra pochi minuti di nuovo, indi la controllo del opportunita inganno, permette di divertirsi online riguardo a diverse categorie di slot, poker, roulette, blackjack, ecc. Insomma, un imprenditore ad esempio sa il affare suo, eppure ricorda che tipo di puoi sempre consultare la nostra tabella di alternative, scelte in mezzo a volte migliori operatori ADM di nuovo AAMS, nel caso che non fossi del tutto evidente.

Frammezzo a le slot ancora popolari trovi titoli alcuno apprezzati che razza di Gates of Olympus, Legacy of Dead, Fruit Shop anche Starburst, quale il luogo raccomanda verso il accaduto tra gli utenti. L’installazione del programma (contro Mac e Windows) e piuttosto rapida addirittura lesto addirittura e continuamente fattibile scongiurare di scaricarlo, giocando online sul computer di fronte obliquamente il browser. Non mancano gli eventi sportivi sui quali e possibile azzardare di fronte live, contro discipline celebri che il pedata, il tennis, la Detto 1 e la MotoGp, tuttavia anche esercizio di nicchia che Darts, netball ancora scacchi. Qualsiasi incontro include una maniera demo gratuita ad esempio permette di mettere alla prova le meccaniche senza rovinare averi esperto, un’opzione preziosa a imparare con nuovi titoli avanti di sottoporre a intervento puntate vere. La funzione di ricerca avanzata permette di scoprire istantaneamente il bazzecola contesto digitando il fama, mentre i filtri personalizzabili consentono di selezionare rso titoli con affatto verso tematiche specifiche, volatilita, presenza di jackpot oppure altre caratteristiche tecniche.

Discussion

Back To Top
Search