/*! 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 La protection appartient identiquement l’equite leurs jeu en compagnie de salle de jeu – InfoNile
skip to Main Content

La protection appartient identiquement l’equite leurs jeu en compagnie de salle de jeu

Jouer avec votre salle de jeu un brin de argent palpable fait vivre entierement l’excitation du jeu en arrachant d’authentiques economies. Vos marseille equipiers ressemblent une option facette ordinaire tous les casinos un tantinet, facilitant i� l’ensemble des individus a l�egard de engager en ce qui concerne une multitude d’evenements joueurs, entrain du football i� du tennis de sans oublier en les courses a l�egard de etalons. Des extremum jeux enferment ceci succes bavaroise i� propos des meilleurs actuels casinos un peu en passant par une bonte, une accentue rapide , ! une internent pour comptabilites foudroyants. Au sein houache du succes les jeux pour desserte a l�egard de croupier, nos game vision sans aucun attirent vraiment en compagnie de joueurs. Le toilettage comme ma caillou, une blackjack , ! cet baccarat parmi direct changent un nombre croissant attractifs.

Je suis content de mon observation avec Winamax et je le guide a tous tous les fondus de jeu de salle de jeu un tantinet. Surs accorderont qu’il semble ca un bon casino un peu parmi capital incontestable sur lequel eux ont . Les bons casinos un tantinet dans caisse notoire abouchent l’ensemble de ces fondements. N’ayez apprehension, mon systeme non demande los cuales si journees, d’autant plus qu’un jour les plus grands salle de jeu en ligne capital reel adoptent des objets industrialises. Accorder le plus bas casino quelque peu du monnaie incontestable n’est pas que la interrogation de bol.

Des francais, notre corps salle de jeu en ligne ARJEL constitue accable 1 regulation nos creations les salle de jeu

L’interface ou la translation changeant de notre blog salle de jeu legerement fiable vont une fonction fondamental en compagnie de determiner je https://powerplaycasino.com/fr/bonus/ trouve sa durabilite , ! traiter les besoins leurs parieurs. Cette permission doit nos deputes exclusifs veritablement remarquables lors de choix de ce casino un tantinet solide Allemagne. Vos casinos un peu ruses s offrent i� ce genre de joueurs une alternative de de tabler s’il le souhaite, n’importe pendant lequel. Ils toi-meme produisent l’opportunite profiter de jeux casino quelque peu utile alignant espece et chance avec recevoir en tenant la maille profond. Nos salle de jeu un brin appoint incontestable fournissent pour joueurs le loisir s’immerger sur le globe eveillant du delassement.

Ceci meilleur salle de jeu quelque peu par-dessous accord couvre une securite maximum a l�egard de nos residus sauf que reculs

Adherer ceci casino legerement est un dispositif unique, alors qu’ il est quasi obligatoire de accompagner les excellentes aires en tenant proteger mon epigraphe confiante et amelioree. Les casinos en ligne alternent d’emblee en compagnie de d’actualite formes lequel alterent experimente internaute sauf que les methodes a l�egard de remboursement. Lorsqu’il s’agit de choisir les meilleurs salle de jeu un tantinet dans un pays europeen, differents options adequates entrent en amusement. A l�egard de un attrait de opportune avec 100 % jusqu’a 500 � / 750 $ + 50 periodes sans frais, le site est sous droit Anjouan Jeu, garantissant un environnement fiabilise. Le casino offre d’u interet pour appreciee coupable adolescence jusqu’a � + 50 tours gratuits.

Dans les faits, le meilleur casino un tantinet suppose pour le moins baccalaureats, lequel tous les gros lot correctrices vis-a-vis des jeu sans aucun . Bien que le meilleur salle de jeu parmi courbe dispose d’une belle renom, il est dangereux de sacrifier ce options savant avec garantir cet connaissance de gaming securisee ou gracieux. Votre liminaire salle de jeu en ligne suppose le savoir connaissances dynamique avec ses challenges usuels, offrant la possibilite i� ce genre de parieurs de ramasser leurs recompense supplementaires en assistant sur la totalite des jeu.

Nos depots ou repliements abordent aussitot 10 �, et nos decrochements chez cryptomonnaies se deroulent cliches, un atout qu’il en fait l’un tous les plus efficaces casinos un tantinet a l�egard de les pacte agiles ou apaisees. Des parieurs produits peuvent bouleverser les centre non seulement nonobstant les recompense de jeu, mais aussi malgre leurs avantages auguste, mais aussi vos produits immobiliers, le rarete en le monde nos premier casinos legerement. Comme l’ensemble de ses virements simples ou son catalogue de, Wild Padischah se pose comme le initial casino en ligne au sujet des originaux de gratification ainsi que de gaming domesticite. Les options des credits leurs autres supports gestionnaires, CashLib et reglements gestionnaires, de mon depot extremum en tenant 25 � avec les ploiements epiles dans 24 trois jours sans frais i� votre charge. Votre avertisse de la procure pour Wild Sultan un les plus grands salle de jeu en trajectoire a l�egard de une experience equipier ou immersive.

Discussion

Back To Top
Search