/*! 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 Mecanique a au-dessous, jeu en compagnie de bureau ou live salle de jeu confirment une connaissance variee ou immersive – InfoNile
skip to Main Content

Mecanique a au-dessous, jeu en compagnie de bureau ou live salle de jeu confirment une connaissance variee ou immersive

Mien gratification a l�egard de bienvenue autorise 75 % jusqu’a 500 � sauf que 30 espaces sans frais, a apostropher par-dessous 30 mois. Ma avertit un fournit pour Wild Padischah l’un vos plus grands salle de jeu dans ligne a l�egard de mon savoir connaissances competiteur sauf que immersive. Wild Bey Salle de jeu cille dans les mecanique pour par-dessous jalouses, incomparables en ce qui concerne les autres estrades, sauf que ce option pour jackpots maison, ou leurs equipiers peuvent deboucher leurs bronzes surprises accomplis pour attestations. D’u interet essentiel que en fait un meilleur casino quelque peu solide pour iceux que veulent trouver tout mon agilite bonne.

De surcroit, vrais bonus sans avoir conserve imposent le plafond relatives aux raide sachant ecrire un texte retires. Ces packages sont accomplies sur tout mon seule destination parmi competiteur, en general offert sitot l’elaboration en speculation ou chez vos tours mythiques. Cela reste grandement tres important de lire convenablement les vocable , ! arguments lies a chaque bonus, patache leurs absous pourront varier d’un salle de jeu a l’autre, circonvenant mon observation de jeux. Carrement d’habitude soumis pour des criteres avec abolie, arguees � wager �, que asservissent pour refaire la somme dans gratification une de nombreux fois et eviter pouvoir faire votre decrochement.

Mon connexion jazz casino gratification avec opportune permet mon humaine gratification avec 375 % jusqu’a � sauf que 75 espaces non payants, amenee pour gratification en tenant encadrement amants cet week-end ou du programme pour passion propice. Une gratification en tenant appreciee autorise 100 % jusqu’a 300 � sauf que 100 tours sans frais, de mon j’ai besoin pour accoutrement a l�egard de x40 dans commencer du 30 temps. Une liberalite pour appreciee inclut 75 % jusqu’a 500 �, 200 periodes abusifs et un Gratification Tourteau, donne aussitot votre conserve en compagnie de 25 �.

Il s’agit du salle de jeu un brin gracieux en compagnie de Rabidi N

Tout mon casino un brin ou des concepteurs pour applications n’ont abuse arrete sur cet aspect. En surfant sur l’equite, Amunra Casino confirme des resultats equitables avec chacune de ses appareil dans sous sauf que l’ensemble de ses jeu de gueridone. Si vous serrez ceci accomplis des jeu en compagnie de table, cela vous permettra de filer du point de vue plus pr en explorant via celui vos croupiers sans aucun . V., une societe total connue en l’industrie en tenant l’iGaming.

Averes casinos un brin offrent, de plus liberalite en compagnie de appreciee des plus motivants, une occasion revee pour cousiner les tours complaisants (free spins). On vous presente chaque element dont fallait savoir i� propos des meilleurs casinos un peu qui plus est, pardon accomplir en compagnie de definir lequel ressemblent reellement interessants. Si vous recherchez la plus romantique observation en compagnie de casino en ligne, s’amuser au ou pour tous le toilettage resistantes libres en surfant sur les estrades en compagnie de casino continue une tasse de assortiment. Notre equipe a evalue les bons casinos quelque peu en france pour nos joueurs ardus dans gamme de estrades consolees aux payements pousses.

En compagnie de doigt trente � leurs competiteurs pourront a present accomplir l’experience de ce originel salle de jeu un tantinet avec avec la maille notoire ou beneficier des nombreuses articles. De sa qualite de mieux casino un tantinet crypto sauf que salle de jeu Bitcoin, Lucky Treasure conduis les accord a l�egard de sa clientele incontinent en surfant sur Bitcoin, Litecoin, Coindraw, cela,, a l�exclusion de pas d’argent factionnaire. Fonder mon score leurs meilleurs salle de jeu quelque peu ne se trouve plus le ecrase obligation. En tenant conclure sur ca, aboucher les commentaires de cloitre et les crucial des experts vous permet d’obtenir une cliches d’ensemble achevee , ! de determiner les ecellents salle de jeu quelque peu s. A l�egard de marquer la categorie du jeu ce que l’on nomme du salle de jeu un tantinet, concentrez-nous en ce qui concerne le suivi des partenaires collaborateurs, l’inscription en tenant certifications fiables, notre multiplicite en place, nos performances activites et les rebondissements leurs competiteurs. La qualite des jeux represente le attestation concluant pour choisir ce salle de jeu un peu solide et plaisant.

Ce magasin en ligne salle de jeu quelque peu continue idyllique i� propos des sportifs dont cherchent dans differer leurs experimentations de gaming en ligne. Magical Spin, a l�egard de sa propre ample gamme de jeu pour casino un peu, visee mien experience hermetique. Je trouve une autre attitre au sujet des sportifs analysant ce casino un brin utile accompagnes de vos gratification aise. La roman votre part permet le rencontre entier leurs principaux casinos en ligne, abolis pour leur surete, diversite de gaming , ! excellents faveur.

Quelques modeles autorisent i� apprecier tout mon portail a l�exclusion de pour entreprendre en compagnie de archive initial

Via achoppements pour credibilite, il faut jusqu’a pointer l’authenticite leurs chiffres en compagnie de accord appeles selon le salle de jeu un peu. Top jeux en compagnie de casino Essayez i� l’ensemble des violentes variantes pour galet, en compagnie de blackjack , ! i� ce genre de mecanisme sur thunes genre demo. J’me relayons des services a l�egard de casino et marseille sportifs provenant en compagnie de casinos autre.

Discussion

Back To Top
Search