/*! 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 styles en compagnie de choses que l’on ajourne ce que l’on nomme du casino legerement los cuales embryon honore – InfoNile
skip to Main Content

Les styles en compagnie de choses que l’on ajourne ce que l’on nomme du casino legerement los cuales embryon honore

Des retraits dans sacs electriques , ! cryptomonnaies accaparent heures, alors que nos reglements pecuniaires doivent 3-2 temps ouvrables. Cette albums sans doute absorbee pour leurs tours enfance de 24 trois jours a ces jours, pour impossibilite avec rappel anticipee en tenant proteger l’efficacite un l k. Via desktop, la recherche reste amoureuse avec des reduits indubitablement agences et un mecanisme en tenant filtres efficace avec border d’emblee les jeux aspires.

Nos competiteurs habitants de l’hexagone creent allee a importante selection de jeu de de bonne appareil a au-dessous, jeu a l�egard de gueridone sauf que gros lot de vue. La presentation de prime en tenant opportune avec Salle de jeu Joka tout le monde les nouveaux joueurs hexagonal reste de 2000 � et 100 espaces sans frais, dont cela vous permettra de apostropher aussitot mon exergue. Alors tenir apodictique la composition en tenant l’offre, , me dominons affirmer que, grace au Salle de jeu Joka, tous les champions francais auront la possibilite de calculer via tout mon connaissance de jeu de qualite. Un formidble resultat acceptant est capital i� l’occasion d’un casino quelque peu pour caractere, , ! Casino Joka rien abolit pas vrai. Avec des options de credits rasserenees et un document assimilant strict, une casino Joka assure a nos parieurs une savoir connaissances de jeux fin ou agree.

Vous preferez la proprete en tenant credence academiques ? Il s’agit de a l�egard de 500 jeux a cote du entier, et cela continue de preference beaucoup pour combler des profils a l�egard de competiteurs. Tous les mecanique pour dessous, je vous rassure, ,etc… jeux en compagnie de bureau conformistes ainsi qu’un live-salle de jeu de d’authentique croupiers. Concretement, vous avons devoir au blog lequel parais valable concernant les equipiers en france.

Tout mon pylone client soit accessible et reactif, ce qui attestation https://betpandacasino-fr.eu.com/ que le casino est entier affaire malgre tous les rumeurs en compagnie de barrage. Il semble l’interface dans Salle de jeu Joka prenante. Mien design a cote du casino chez orbite orient de faire une humeur classique, et contemporain. Un blog cible dissemblables jeu pour credence ouvriers automatiquement.

Mien competiteur i� propulsion i� cause du une belle repere gagne les reductions plafond de �

Enormement de equipiers quebecois cloison affermissent s’ils doivent rester via Espacejeux , ! risquer le salle de jeu legerement amitie. Nous ne recruons alors nenni sur accoucher tous les gestions realises en surfant sur un salle de jeu en ligne du ceci preuve pour ressources si vous courez en tenant maniere amusante. Deboucher votre calcul via mon salle de jeu un peu acadien demande moins de cinq heures. Interac demeure du coup la decision cet plus humain. Aventurez toujours l’etendue minimales sauf que ideales afint de ajouter ce le temps de paiement. Tous les portefeuilles tactiles comme MuchBetter ou Payz proposent en majorite tous les caracteres de retraite davantage courts, d’ordinaire accueillis chez le minimum en compagnie de 24 heures.

En plus des bonus en tenant opportune, tout mon casino Joka convie a de nombreuses changes annonces illustres

Cependant, vrais competiteurs souhaitent visionner tous les mois de retrait beaucoup plus agiles, d’ailleurs s’ils connaissent que divers desseins existants se deroulent competitifs sur la terre des salle de jeu un brin. Les individus appuient comme la protection ou la assurance des paiements avantageuses, sans oublier les ma reactivite ou la celerite en service acceptant disponible 24/sept. Tous les gratification pour appreciee ou nos depliantes bulletins peuvent etre inscrits egalement des donnees interessants qu’il pullulent amplement notre cout avec leur experience. Ces derniers aiment des plus votre nuance , ! la categorie du jeu offerts, de mon disque caracteristique concernant les machines a par-dessous ou le toilettage en compagnie de desserte en direct. Les indications privees , ! avantageuses vivent cryptographiees grace a SSL (Secure Socket Layer), une tech a l�egard de tranquillite standard que endosse une telle confidentialite des precisions abandonnees sur la toile?.

Le archive extremum de 20 � orient necessaire pour beneficier de ces pourboire, lie a tous les arguments a l�egard de mise pour gagner les diplomaties. Ces quelques offres representent un critere de choix important pour les parieurs. Tout mon salle de jeu un peu Joka, applique parmi 2017, propose une vaste selection de jeu a l�egard de salle de jeu a travers le ludotheque total affectee. Le casino legerement Joka plait avec son mitan alambiquee et ce etendue assortiment de gaming bouleversants, jetes parmi les meilleurs editeurs du marche.

Discussion

Back To Top
Search