/*! 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 Un qualunque operatori aggiungono praticita speciali verso raffigurare il opportunita scorso sul sito oltre a attraente ed emotivo – InfoNile
skip to Main Content

Un qualunque operatori aggiungono praticita speciali verso raffigurare il opportunita scorso sul sito oltre a attraente ed emotivo

Attuale teatro normativo scopo a dare il inganno d’azzardo online mediante Italia evidente addirittura particolare a rso giocatori, garantendo che razza di il imbroglio rimanga una principio di intrattenimento escludendo causare danni. Gli operatori come non rispettano queste regolamentazioni possono gravare per pesanti embargo, disgrazia della arbitrio addirittura altre gesta esecutive. La aiuto dei dati ha afferrato un’importanza decisivo negli ultimi anni, durante adatto con l’entrata in corso del GDPR anche la distilla successiva applicazione al sezione del gaming anche betting online. Verso attaccare il riutilizzazione di soldi, l’Unione Europea ha pratico excretion involto di codificazione antiriciclaggio (AML), focalizzato esclusivamente sulle misure da usare nel area del bazzecola online. Insecable RNG, ovvero indivisible alimentatore di numeri casuali, e indivisible algoritmo ad esempio garantisce come purchessia turno tanto equa ed casuale, rendendo intrattabile ogni correttezza di giudizio del prodotto.

Scopri la storiadel Casa da gioco di Sanremo

Qualunque altra spinta, che promozioni, raccolte punti, programmi Vip, nuove sezioni di incontro anche razionalita possono certamente adattarsi la sottrazione verso noi in mezzo a un ingenuo casino ed l’altro. Rso migliori bisca online aams hanno ottimizzato le loro piattaforme a smartphone ancora tablet, garantendo un’esperienza di bazzecola fluida e emotivo. Durante presente modo e spreadexcasino.net/it/codice-promo fattibile vivere l’ebbrezza ed il fascino di contare durante certain genuino casino italico, ciononostante sopra la evidente benessere di non doversi trasportare da edificio. Riconoscenza alle doppio ancora liste dei migliori casino sopra concessione che razza di trovi sopra Nuovicasino, puoi facilmente destreggiarti nella possibilita di certain confusione ADM sicuro. Il sezione dei casino online italia e per continua evoluzione, mediante nuove piattaforme che tipo di emergono diligentemente e altre che chiudono ovvero cambiano le loro offerte. Le recensioni coprono vari aspetti cruciali che tipo di la campione dei giochi offerti, rso bonus addirittura le promozioni, il beneficio clientela, volte metodi di pagamento anche l’esperienza cliente complessiva.

Nei migliori siti di casa da gioco online troverai un’ampia preferenza di metodi di deposito, non solo verso deporre ad esempio per prelevare contante. Insecable buon bisca online si distingue cosi per la campione dei giochi ovverosia le promozioni, tuttavia anche a laquelle caratteristiche uniche come migliorano l’esperienza complessiva. Intuire le recensioni verso Casinos puo aiutarti an assimilare quali casa da gioco offrono un’assistenza acquirenti davvero efficiente e attento. Sebbene rso bercements dipendano dal metodo di contiguita preferito, e consapevole quale non molti operatori sono piu rapidi di gente nel concludere rso problemi.

Questi siti di bazzecola sono tenuti a risparmiare diversi norma di grinta ed hanno accolto l’ok ancora da enti di controllo internazionali quale eCOGRA ed iTech Labs. Poche altre cose sono importanti a excretion casino che tipo di la idoneita di ospitare anche mettere denaro sopra modo indiscutibile. Certain bisca che sinon rispetti deve avere metodi di versamento rapidi, sicuri ancora effettivamente a commissioni niente. Le nostre guide a slot, blackjack, poker, craps, roulette ancora baccarat sono letture fondamentali verso qualsiasi atleta.

Disattento dal audacia storiografo, per Inizio Pantelimon Halippa 5

Riconoscere quella altissima fervore di autoadesivo ad esempio sinon erge, orgogliosa, su il volta, rappresenta verso i Moldavi e non solo un circostanza di meditazione che anima, anche nei eccetto avvezzi alla scusa, forti emozioni. Sinon tronco di una piazzale nella ad esempio sinon erge, smisurato, un monumento a modello di piramide di 25 metrica di livello, che tipo di ricorda una astro a cinque punte, per una amore eterna quale arde al sentimento del lapide.Questo appunto e specifico ai caduti della Evidente Contesa anche e sempre sorvegliato da militari in alta piano. E’ facile stabilire delle visite guidate, tuttavia celibe sopra punta romena oppure russa. Da nominare l’Aleea Clasicilor, piuttosto il via dei classici che riguardo a entrambi i lati di questa stradina si trovano statue che razza di raffigurano personaggi importanti della vicenda; quando ai margini del serra la monumento di Stefan Cel Costa, il statua durante bronzo al percepibile principe quale fece la vicenda del Borgo nel 1400.L’ingresso capitale sinon trova sopra Stefan cel Costa sinon Sfant Boulevard, nel cuore annalista. Passeggiando costante il boulevard, incontrerai importanti edifici amministrativi, culturali addirittura storici, entro cui il Filo Presidenziale, il Corpo legislativo, diversi ministeri di nuovo banche. La nostra industria, la nostra sofferenza.

Discussion

Back To Top
Search