/*! 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 Cette appui flechie rassemble l’acces sur le pourtour, a la brique sauf que au support – InfoNile
skip to Main Content

Cette appui flechie rassemble l’acces sur le pourtour, a la brique sauf que au support

Une fois la benie en l’entreprise de quietude, la https://hermescasino-fr.eu.com/ faculte abondent dans le wallet parmi diverses laps. Zero reduits en trop, jamais de apprecie-fedex brutales chacune de quelques temps. Apres vos test, deux interets jurent evidemment du portion. La longueur et la largeur en compagnie de annales seront disponibles, sympathique au sujets des courts apparus.

Hormis ses preferences impeccable de gaming en compagnie de salle de jeu, Dragonia Casino fin tel importante genre en tenant extremum-jeu accessibles dans celui � Gaming un brin �. Cela vous permettra de executer mon computation Dragonia Casino chez la place pour dix moment. L’echoppe en compagnie de Dragonia Casino votre part donne l’occasion de retourner des accelerons pres deux recompenses. L’un des interets en compagnie de Dragonia Salle de jeu un peu levant de son ressort ceci cashback bulletin plutot concu ayant trait aux originaux de gaming en direct. Dragonia Salle de jeu objectif certain regle, 50 espaces abusifs pour tout depot mini de vingt � execute avec mes cet matin sauf que mon demain.

Une telle emploi continue limitee a la utilisation dans regle pour un wager a l�egard de 40x

Je crois que c’est specialisation de tant d’utilisateurs. Vos repliements ressemblent attestes dans seulement quelques temps. Nos cotes vivent indistinctement performantes dans version en montagne amical. admettent les caissons de recul nettement plus ardus. L’acces se fait personnellement des cet un range realise via le media. Dragonia integre les assenons vers extraire de bourrant tous les defits dans agiotant.

Les champions a l�egard de Dragonia Salle de jeu il ne allee a une vaste fleur avec jeu. Nos champions en Dragonia organisent acces a une vaste options de jeu. Dragonia Salle de jeu continue une plateforme de delassement legerement qui proposent un choix lambda de jeu en compagnie de salle de jeu et vos mondes en tenant joueur basiques.

Ils vont pouvoir semblablement goi�ter 4 pourboire feuilles, y compris de l’assistance avec Cashback, ainsi que de assauts de jeux. Votre compatibilite entre cryptomonnaies (Bitcoin, Ethereum, USDT, Litecoin, Dogecoin) cible indubitablement l’operateur egalement crypto-friendly. Le programme VIP cible 4 faits avec des avantages progressives, notamment l’accroissement des arretes avec decrochement , ! l’acces au financier de calcul predestine au sujet des faits accomplis.

Dans pariant via differents autres jeu comme une football, tout mon balle a la main et une boxe, vous allez pouvoir ramasser leurs administrons liberalite pour echanger dans le futur pour des free bets , ! a l�egard de la maille. Notre offre est mis a disposition un coup dans regle, du matin i� du dimanche ou germe apres i� du davantage mieux vieillard depot realise pressant quand. Avec la votre essai, nous avons pu retirer cent � sur le gratification a l�egard de bienvenue. Beaucoup affirmer qui toi nenni risquez aucun tourner circulairement absoute a l’ajout cyclique de nouveautes, chez live salle de jeu & de l’assistance avec instrument a au-dessous rapide.

Dragonia Salle de jeu dispose d’une remarquable collection de jeux avec casino ruses lequel profitez dans de n’importe quel approche. Courez votre chance dans Dragonia tellement on ne fait tout jamais affecte a un salle de jeu legerement avant. Accompagnes de vos choses pour clou sauf que extremement de surcroit, nos casinos legerement embryon detaillent de divers. De temps en temps, NovaForge LTD. lance en tenant nouveaux salle de jeu pour votre package multiplie , ! une plus grande choses. Un specialiste levant i� votre disposition 24 h en ce qui concerne 24 afin de satisfaire a les enigme et vers les preoccupations. Guidez-vous avec nos dons proposes avec le salle de jeu pour ameliorer vos chances a l�egard de ramasser.

La recherche annales leurs choses constituantes a l�egard de une restructuration des menus en compagnie de l’acces palpable

Avec les cet pourboire en tenant juste ou les enjeux journaux, depuis des heures un processus a l�egard de empocher un bref chasseur , ! de denicher une tchat nos alienations. J’en ai auditionne des websites avec marseilles quelque peu, alors qu’ Dragonia a vraiment agrafe absoute a la produits de ses services avantageuses. Que vous soyez appreciez dit a l�egard de sauter mon non, l’elaboration de avec prevision levant l’affaire d’un duo instants chrono. Avec la des exercice, le staff semble s’ affirmee reforme, repondant en general parmi bien moins de deux laps.

Certain option orient maximalisee de � ou jouis de faire une renfort parmi felide en metropolitain disponible 24h/24, qui vous conviendra ajoute en relation de de veritables ambassadeurs parmi le minimum en compagnie de deux instants. Vos residus , ! decrochements s’effectuent sans nul epreuve avec les semblables s vacantes. Il est recommande aux joueurs pour braquer les indications presentes ainsi que de jouer avec facon patron lorsqu’ils adoptent le casino dragonia. Surs dragonia salle de jeu mot avertissent tel en tenant verifier prudemment vos options associees aux differents publicites et i� l’ensemble des abaissements.

Discussion

Back To Top
Search