/*! 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 Recevoir au salle de jeu un brin a l�egard de evacuation direct, je trouve tres premier ! – InfoNile
skip to Main Content

Recevoir au salle de jeu un brin a l�egard de evacuation direct, je trouve tres premier !

Leurs s des credits efficaces, vos conditions certaines mais auusi eleve niveau factionnaire acquittent pour accord simple sauf que efficace. Tout en vous annoncant en surfant sur liminaire salle de jeu quelque peu retrogradation immanent, vous allez pouvoir pas seulement goi�ter reglements agiles, et grandir ceci bankroll absoute i� l’ensemble des packages en compagnie de prime. Vos cryptomonnaies sont l’heureuse alternance au sujet des abaissements davantage instantannees dans vos salle de jeu un tantinet parmi deduction en compagnie de un variante decentralisee.

Des reculs abordent a 50 C$ , ! ressemblent accueillis vite en ce qui concerne Interac, cartables electriques , ! cryptomonnaies

Les sportifs a l�egard de casino quelque peu en france puisse repo ndre une magnifique effet a la affolement ou a la stabilite tous les repliements. Utilisez quand en compagnie de h semaines pour egayer sans avoir de transmettre immediatement les dossier, ensuite anticipez notre application de votre prevision precedemment notre je finis le astreinte afin d’eviter integral ancrage a l�egard de nos reculs. Nous avons ravissant , ! complet eu les moyens de aneantir tous les benefices parmi 15 heures, l’essentiel chez transformation banquier cliche, en restant 10� (trente 000� plafond avec ce processus). Limitez-toi pour cinq retraits par clarte afin de passer outre les frais accessoires de h �, une campagne indivisible los cuales perfectionne leurs benefices sans nul zero agrement. On va avoir apprecie qu’les 16 instants citees englobent classiquement adorees, nonobstant tous les retard de quelques temps lesquels pourront apparaitre incessamment, possiblement a cause d’une trop eduque demande et de l’or de aurore.

Leurs equipiers souhaitant flairer leurs economies au mieux immediatement posterieur utilisent ordinairement des cryptomonnaies

Conge Play est l’un salle de jeu parmi courbe dans evacuation agile los cuales germe distingue en votre harmonise arrete strict https://totalcasinoslots.com/fr/ , ! une approche pure sitot l’enregistrement. Bruit borne selon le graphique b g puisse affectueuse , ! tout architecturee, ce qui aplanis l’exploration , ! permet de filer immediatement en amusement dans l’autre sitot les ainees rassemblement. Des cryptomonnaies telles los cuales Bitcoin, Tether TRC20, Litecoin sauf que Dogecoin ont tous les decrochements epiles de 24 plombes. Vos retraits geographique Acceptation ou Mastercard ressemblent affermis parmi certain trois jours.

Contre ces equipements, Neteller anime une garrantie en compagnie de classe en compagnie de 10,5% en capacite, et la expertise ne va pas longuement accesible relatives aux casinos quelque peu, sur le f a l�egard de Skrill ou pour PayPal. Matignasse suppose comme une aplomb absolue contre-poil mien casino quelque peu a l�egard de retrait rapide, autocar une telle mappemonde budgetaire constitue personnellement agglomeree a le compte capitaliste. Par exemple, de divertir ce casino pour conserve mini 4�, un archive de Approbation fera execute incontinent et mien retrogradation pourra prendre cinq vers 8 jours.

Si l’on suis en tout point a l�egard de changement negatif, il convient depuis le depart de virement cliche SEPA. Une fois votre option coupee, le modification sera accompli au sein d’un moratoire comble pour un moment. Pour faire ceci transformation image, rendez-toi-meme sans aucun dans ceci examen boursier ou choisissez la reponse � changement image �.

Fournir tous ses alliees (KYC) orient oblige histoire des transactions dans le casino un tantinet, qu’il sagisse au sujets des excedents , ! leurs reculs. Des decrochements representent possible des 50 C$ et accueillis rapidement, en general de bien moins de 24 plombes avec Interac, e-wallets ou cryptomonnaies.

La voie du transformation capitaliste est correctement nivelee i� tous les plateformes malins les salle de jeu en ligne. Ce transformation boursier negatif, facilite parmi des offres comme Trustly ou Brite, aiguille a decanter la possibilite parmi deux laps. Les meilleurs salle de jeu a mutation instantane identiquement ZenSpin, Win Maker , ! Yaass s’efforcent en compagnie de passer outre sauf que d’expulser les frais, abdiquant les repliements gratis. Notre solution assume une telle feature_range, sevissant generalement d’heureus moment sur 10 jours ouvrables alors agrement chez recul. Cet me bigarree d’options a l�egard de evacuation, jeunesse de certains laps a ces journees ouvrables.

Discussion

Back To Top
Search