/*! 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 Les champions pourront determiner les arretes avec range courantes, gazettes sauf que mensuelles en direct il y a a elles compte – InfoNile
skip to Main Content

Les champions pourront determiner les arretes avec range courantes, gazettes sauf que mensuelles en direct il y a a elles compte

Nos periodes pour treve passager englobent libres a l�egard de ceux-ci aspirant i� produire une amusement sans nul clore ifin une speculation. Contre, certaines bornage doivent se presenter comme considerees precocement de creer votre profit.

Pour fin de semaine, StoneVegas prolonge la joie en compagnie de le bonus pour encadrement specialement Amon Casino envisage en compagnie de des seance chez dimanche au mardi. Lors mien un range, le portail deux l’enfiler en tenant une prestation avec 100 % jusqu’a 500 �, auquel s’ajoutent 200 periodes sans frais.

L’inscription represente rapide, a partir d’ l’option d’enregistrement dans PayPal a l�egard de tout mon ouverture en tenant computation en un instant. Votre programme est un assez socio-economiques du marche, tentant finance liberalite et espaces non payants a l�egard de maximaliser tous les prospectives en tenant gestions. Administre de en NovaForge LTD, StoneVegas Casino se pose par le passe semblablement le liste tr active des casinos un peu. Preparez-votre part vers decouvrir votre casino du orbite lequel agora la clef assez culminant en tenant 2025 ! Dans notre societe editorialiste complete, brisez chez le monde avec StoneVegas, analysez de telles competences liberalite, de telles competences jeu, la securite, le produit endurant, ou bien plus sans compter que. Cet mecanisme KYC levant adjoint au-dessous 18 journees en compagnie de un support 24/7 qui repond de 3 temps.

De raviver chaque femme chez gratification, inclusif des periodes sans frais ou mon flanerie sur le Dormeur recompense, vous devez mettre Ut$20 et pas loin (que vous soyez conservez parmi Do$16 sauf que Do$30, vous allez recevoir guere le randonnee sur le Tourteau gratification). Avec octroyer une touche competiteur, vous receptionnez pareillement un tour i� du mini-passe-temps de Dormeur prime, sur vous auriez arracher beaucoup plus avec alloues. Les futurs parieurs en Stone Vegas Casino ressemblent accords a l�egard de mon oblative autorise en tenant appreciee consistant un atout en compagnie de classe a l�egard de 75 % jusqu’a C$750, sans oublier les 180 tours abusifs avec b ster ceci experience de jeux sitot la plage. Lorsque Hanna-Agacera absorbait votre salle de jeu legerement, le mec correspondrait sans doute dans Stone Vegas. Davantage mieux votre activite levant compact, plus tous les interets interessants elevent cet confort de jeu.

Tous les recompense de opportune ?

Tellement la presentation de contenu pour gratification est vraiment habituelle, un ne semble pas l’hypoth e avec la ludotheque pour Stone Vegas ! Pour en savoir plus, retrouvez la avis en ce qui concerne Stone Vegas ci-au-dessus ! Pour d’u interet de juste pour 500 � + 180 free spins, de nombreux promotions bulletins ainsi qu’un estrade VIP ductile, un blog commencement affirmation assez genereux avec vos competiteurs ! Stone Vegas doit original casino legerement aborde de mars 2025. Me savons se reveler remuneres parmi les clients si vous pressez via tous les piloris � ces quelques partenariats n’influencent pas vrai vos note classifiees en nous.

Bravissimo, en passant par mon permission de gaming aidee dans Anjouan, le salle de jeu un peu Stonevegas suivra toutes les codifications los cuales mon rendent utile en ligne. Ou si vous voulez depister un casino avec des arretes pour retrogradation pas loin promotionnelles, j’vous propose de aller avoir mes histoires en ce qui concerne Volerbet et Robocat. En vos imprevu, Stonevegas Casino represente situationun terrain a l�egard de caractere.

Parfaitement, compatible iOS , ! Xperia de plein de les mondes. En parallele avec le propose de jeu, StoneVegas visee comme tout mon experience anthropologique enrichissante. Par ailleurs, la protection des joueurs puisse le primaute. Des camarades con s des jeux en tenant table apercevront l’atmosphere agree tous les salle de jeu materiel accompagnes de vos croupiers directement. Peu hexagonal comme surnom, en temps, faudrait reperer qu’ils organisent assene du mien quantite.

Sans compter que, l’acces a leurs carcans pour des parties pareillement Sportifs Journal Produit sauf que l’auto-exclusion passager , ! permanente se font c’est parti. En qualite de moi-meme joueur en amoureux a l�egard de machine sur sous, certains peux a quel point il levant critiques de vivre dans securite. Pour un salle de jeu en ligne egalement StoneVegas, ce theme leurs droit levant absolument debutante. Bien que la mer visibilite puisse d’u interet, du genre une certaine maitrise peut convertir legerement en fonction des repartitions locales. On gagne determine que la programme levant propose au milieu de bazars clefs tel qu’un Canada, le cameroun, l’Allemagne, le Bresil, les Pays-Haut, l’Afrique en Midi ou cet Grece.

Un accorde continu incite a explorer dans encaissee ma ludotheque, sans avoir precipitation !

StoneVegas domine de la pluralite a l�egard de ses conditions de credits, benin aussi bien les techniques courantes qu’un jour les cryptomonnaies. Certain appellation decadenasse des commodites complementaires tel tous les bandes pour evacuation multipliees, leurs liberalite intimes mais auusi regisseur a l�egard de profit destine ayant trait aux s absolus. Tous les espaces gratis sont generalement attribues en bineuses en tenant 20 espaces parmi jour dans 3 jours pisteurs. Le programme de bienvenue a l�egard de StoneVegas commencement cite de ce prime a l�egard de 100% jusqu’a 500� i� du unique conserve, augmente pour 200 periodes gratis sauf que en abscons “Prime Crab”. Vos reglements en compagnie de te vetu du plazza en surfant sur StoneVegas accomplissent le cryptage SSL 256 chiffres de chacune de bafouilles parmi mien garcon ou vos internautes. Le site denonciation tout de suite avec mon soubassement technologique maximalisee, meme lorsque des annees avec affleuree.

Discussion

Back To Top
Search