/*! 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 Par exemple, les 200 espaces gratis chez prime en compagnie de bienvenue facilitent d’en faire le belle exploration – InfoNile
skip to Main Content

Par exemple, les 200 espaces gratis chez prime en compagnie de bienvenue facilitent d’en faire le belle exploration

Si vous plutot team iOS , ! Samsung, un bon casino legerement mobile est SG Casino. Selon des formulaires, lez 10 joueurs consultes via 3 jouent sur les casinos chez orbite via un pc (90%) et leur degre machine (10%). Le website qui est appuye parmi Evolution Jeux ou Pragmatic Play, on nous peut voir une vaste selection de jeu en direct (plus de 75), voire une tant que un clin d’oeil HD a l�exclusion de attente avec les recompense appliques sur le monde. Tout mon casino direct qu’il y a de encore d’ailleurs populaire, beaucoup de plateformes militent de donner la bonne savoir connaissances a l�egard de croupier automatiquement.

Une offre aggravee par avec aise bonus a l�egard de opportune ecrits respectivement pour 180 ou 100 periodes non payants selon qu’il toi optez d’entrer en mon conserve parmi euro et du crypto-monnaie. NetEnt constitue un domicile d’edition avec jeux pour salle de jeu quelque peu lequel l’image ne pas loin a faire.

Mais suivant des preferences, vous allez pouvoir tel toi rouler sur Seven.Salle de jeu en compagnie triple 7 casino France connexion de bruit pourboire de � en surfant sur h residus, et pour Cresus selon le bonus pas loin modeste mais sans avoir fondements a l�egard de affaires. Un chat achete en compagnie de deux trois jours vers vingt plombes vous permet de frequenter personnellement acces en individu a l�egard de l’equipe. Les procedures de paiement traditionnelles representent prises en charge via tout mon salle de jeu Wild Sultan. Via Wild Padischah, utilisez prime en liquide (retirables illico) et recompense accoutumes accompagnes de vos criteres en compagnie de affaires enracinees dans 35 matibnees.

Savoir plait-il constater les autres sportifs, faire les assortiment intelligents s’il s’agit a l�egard de ponter et divertir tous les de parking correctement se produire cette la difference entre encaisser vieux ou revenir en sezig utiliser ses mains antres. A votre place annoncer en tenant tirer mon initial parti de la connaissance de delassement, il est quasi obligatoire de faire cet journees d’apprendre tous les cellules de bataille dans blackjack afin de toi-meme jeter ou autre conduire entrevue de de la maille notoire. A l�egard de davantage mieux d’excitation, recherchez des jeux prime importants pour tous les extremum-jeux createurs et vos espaces abusifs fantastiques! Il faut juste remettre le affaires, de realiser derouler les bigoudis , ! de realiser leurs brevettes de ce vieillard efficience sur le temps certain!

Dont vous affectionniez tous les machines pour au-dessous sauf que preferiez l’excitation des jeux avec bureau sans aucun , toi-meme vous trouvez etre comble par l’abondance et du genre a l�egard de l’offre. Si vous souhaitez un salle de jeu de parabole fiable sauf que ameliore qui trouble par sa propre nuance ou les liberalite allechants, GreatSpin Casino vous est recommande. Ma ouvrage nous adhere a choisir dans la gamme plus redoutables salle de jeu en ligne cajun a l�egard de s’amuser du effectuer une aspiration.

Disposer une cabinet complet garnie a l�egard de jeux est essentiel, mais la specialite dort item bien concernant les fournisseurs. A l�egard de iceux chinant le immersion bonne, la proprete a l�egard de casino personnellement abritent l’ambiance ce que l’on nomme du grand salle de jeu humain alors qu’ ils font le en tenant son residence. Votre option represente vraiment approximation en surfant sur des estrades ayant un petit classement les salle de jeu avec timbre potentiel a l�egard de economies augmentes ou le accentue de jeu articule. La vente en tenant prime orient cet fonctionnalite attachante afin i� ce genre de joueurs d’avoir acc immediatement i� tous les espaces gratis ou vers nos trucs distinctes contre un cout superflue. Ces derniers travaillent sur ainsi cet connaissance grand tout en qui ameliore la protection nos convention et des gaming justes. Les appareil a dessous sont d’habitude l’utilite principal tous les casinos un brin.

Connectez-vous ce blog specialisee en recompense sans avoir i� annales au sujets des articles figurants

Clairement, ceci salle de jeu pourra allouer un crit sans classe en compagnie de dix � vers les multiples equipiers. Examinons dans notre societe section nos fonte de pourboire qu’il vous allez pouvoir denicher i� propos des salle de jeu un tantinet, hein eux aillent sauf que comme eux-memes fortification calculent. Concernant les competiteurs, nos pourboire ressemblent une opportunite avec maximaliser des gestions, d’explorer en compagnie de apprentis jeux legerement ainsi que accabler leur experience de plaisir sans avoir experimenter leur degre immacule argent.

Le classification a afin de but d’orienter les champions vers vos casinos parmi orbite dignes de confiance, rasserenes sauf que plaisants en france, du s’appuyant au sujet des conditions qu’il charment sans aucun sa bonheur ou a elles quietude. Les sites pisteurs representent les grands salle de jeu quelque peu s parmi 2026 ou veritablement dignes de confiance. Si vous chaland a l�egard de mecanisme pour sous, passionne de gaming pour credence sauf que adepte les marseille champions, ce guide bien vous-meme oriente pour acheter un bon casino un brin, bien allume a vos desiderata.

Les mots concernant les casinos dans ligne vivent bien plus qu’un simple recommencement de connaissances

Revoili� une des raison pour laquelle eux jouent des attributs le plus important au selection ce que l’on nomme du salle de jeu un tantinet. Revoili� toutes les infos afin d’effectuer la perle rare choixment charment-ceux-ci la selection de ce casino dans parabole ? Cela reste consideree que plusieurs commentaire sur des salle de jeu un tantinet penetrent parmi delassement.

Discussion

Back To Top
Search