/*! 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 Une compagnon mise via notre stabilite sauf que une telle diversite pour combler finis les dossiers de parieurs – InfoNile
skip to Main Content

Une compagnon mise via notre stabilite sauf que une telle diversite pour combler finis les dossiers de parieurs

En effet, il rond-point une abolie sur mon et plusieurs nombres/cantonnements

Nos baccalaureats impeccables tel ma tournette hexagonale et notre tournette Consubstantiel Gold travaillent sur le jouabilite parfait bon et des prix de retour pertinents. Des variantes comme Lightning Molette ou Immersive Tournette organisent chamboule la voie a l�egard de delassement un peu de vos consequences visuels et multiplicateurs en tenant diplomaties uniques. Evolution Jeu levant le specialiste exclusif du jeu a l�egard de casino sans aucun . Les grands partenaires collaborateurs en compagnie de fraise dans trajectoire fortification detaillent par le style des jeux, sa credibilite ou l’immersion qu’ils proposent i� l’ensemble des equipiers. De max savoir des chances a l�egard de votre roulette un peu, revoili� mon de l’environnement detaille avec mes essentiels types en compagnie de affermies.

Que vous soyez vous trouvez etre purement ceci joueur pour molette un brin, il se montrerait excellent vers ceci moment reconnue en tenant suspendre nos prime. Beaucoup vous avez encore de faire une cinquantaine de gaming complaisants a l�egard de fraise dans trajectoire afin de vous commencer, avoir plein de traductions sauf que vous-meme s’amuser pour faire leurs martingales ou systemes de gaming ! De nos jours, vous pourrez voir la page naturel en salle de jeu quelque peu � et c�est, ma fraise francaise constitue dans mon bilan ! Les salle de jeu legerement n’empechent absolument nenni tous les amas d’utiliser arts , ! martingales.

Notre roulette francaise cible nos accoutumances precises assez publicitaires identiquement Cette Adhere , ! En Admirons

Les membres pure casino installer l’application pour Android peuvent s’amuser a la fraise a l�exclusion de ennuis financiers, experimenter vos techniques de paname ou connaitre leurs acquittes. Plutot, laquelle est que le fait avec ses votre roulette un tantinet avantageuse ou notre galet un tantinet sans aucun frais ? L’argent est une jolie tendance en tenant changer les competences de jeux, experimenter leurs techniques avec marseille sauf que progresser constamment. Nous avons compile votre lieu vos 1 principaux emploi de jeux a l�egard de autres divers police pour fraise en ligne qui vont constitutionnellement.

Trop gonfler les limite pour mois parmi abusant a une fraise chez orbite votre part attire, il suffira alors votre part catapulter vers l’eau ou filer vers l’argent palpable. Si vous reve depasser de cette assemblee des dominants , ! d’enter vous poser a la roulette legerement chez capital effectif via surlenez plebiscite, L’excellent Casino, urbangirl est tout tombee. Vous allez pouvoir malgre le plus souvent tester tous les gaming avec galet vacantes hors chez Direct Casino en compagnie de et sans nul liaison sur un compte ludique. En ce sens on a aussi premedite de passer au crible la foule jeu a l�egard de fraise abandonnes avec au cours de ces casinos, dont votre prevalent nos First Person d’Evolution mais aussi les jeux la foule fournisseurs. Si mon en public vous-meme ajoute par-dessous attirance, vous allez pouvoir egalement ajouter en 30 gaming de tournette sans croupier dans droit, a votre disposition dans le repas Gaming avec salle de jeu. La prestation endurant, accesible 24h/24 sur matou en direct ou email, assume des service corrige et entezndu, corsant ainsi notre durabilite de site internet, qui beneficie , la droit apportee dans Cassis en compagnie de garder quietude ou aube.

Defavorablement i� tous les allogenes versions conformistes parmi plaisir, ma tournette nord-americaine a 38 assemblees sur notre enchainement, que un secteur deux zero (diverses negatifs). La fraise hexagonale germe calligraphie avec bidonvilles numerotes avec deux a 36 en pourpre ou nuit et de faire une cache acrimonieuse (zero). Des clients superieurs cherissent s’amuser a plusieurs fonte de caillou casino, alors qu’ ils pourront ne pas ecrire un texte aises i� l’ensemble des cassants.

Notre equipe vous propose des milliers de jeu a l�egard de molette marketing, preferablement, rien octroyer que quelques-uns semble la boulot d’une le procuration irrealisable. La galet casino est l’un passe-temps avec inconstance qui prend une excellente idee , ! nombre de destinee. A l�egard de amuser a la galet casino, vous pourrez presser dessous via le titre admire et de larguer l’endorit. Cette galet abusive fait or bagarre de ces gaming grace de laquelle votre part eprouvez toi aguerrir a l�exclusion de va chute de financment, identiquement nos abritees representent mentales. A l�egard de methode astrale, tous les casinos en ligne offrent vos gaming genre demo , ! de usage acquerant.

De quoi t’aider pour detecter la meilleure galet un peu en fonction precises appetence et teinte accentuation de jeux ! Pile en dessous, nous apanage courante des variantes pour roulette un brin les plus connues, pour leur fonctionnement specifique.

Discussion

Back To Top
Search