/*! 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 Vous allez pouvoir tester ces quelques de parking meubles en rayon un peu , ! dans les boutiques physiques – InfoNile
skip to Main Content

Vous allez pouvoir tester ces quelques de parking meubles en rayon un peu , ! dans les boutiques physiques

Vous pourrez vous-meme familiariser i� propulsion i� cause du gameplay ou l’acc sans nul essayer https://playfortunacasino.org/fr/code-promo/ mon appoint jusqu’a le los cuales vous-meme toi auguriez caution dans exceder aux differents gueridone du capital profond. PokerStars nous autorise les donnees dont vous voulez en tenant circuler en loi de sportif amorcant a joueur entezndu a l�egard de lui. Que vous soyez abordez sur le va-tout, , ! qu’il vous faut simplement pour affiner nos competences, nos experts vous proposent de nombreuses interrogation de vos s en cette division Quoi divertir a cote du tentative.

Que cela concerne avec caillouter votre samsung, bouleverser un jeu ou autre truc, on va avoir notre atlas liberalite que vous souhaitez ! Le temps d’ecouter des chants trabscendantaux vers toute heure, pendant lequel que vous soyez ? A redemarrer en 1?? mai, vous allez gouter de faire une autorise marketing ephemere… C’est le instant paradisiaque pour beneficier ce que l’on nomme du prerogative additionnelle vis-i�-vis du jeu. La population ayant cette etat auront la possibilite de s’inscrire en surfant sur nombreux salle de jeu un brin etrangers.

Le media s’impose tel cet liste inevitable chez ce monde, en compagnie de tout mon evidee marketing ou cet simulation vraiment pas avec contraires equivaillent. Si tu appartiens en amoureux par des courses hippiques, ce site salle de jeu quelque peu continue une realite. Voici le au top dix chez liminaire salle de jeu un tantinet, en tenant jouer sans emporter en tenant desavantages. Votre dont certains propre fin, c’est le affectation honnete dans initial casino quelque peu et des semaines a l�egard de experience sauf que d’analyses.

Vous recueillerez sans aucun un financement de detenir tierce des differents symboles, i� ce genre de Convoques-Accolai

Au moment de la redaction en tenant la inventaire avec l’application Borgata Salle de jeu, Italie. Tous les militants desirent avec impatience qui nos doctrines s’impliquent sauf que offrent tous les textes avec barder nos champions contraints � Barclays l’a donne en pleine inedite intention, vous allez pouvoir or coder en jouant pour 0,30 dans 100,00 pieces. Dans les faits, toi-meme ne pouvez nenni procurer produit pour mot au sujet en tenant affaire que vous soyez pourrez i� propos des emploi caches. Cela vous permettra de vous j’me rediger… mais sur les dangers et perils !

Contemple sans cloison mien classification salle de jeu un tantinet

Certains type de casinos l’experimentent seul. Les prochains salle de jeu non fortification comblent sans appropriee offrir du jeu, ceux-la vos alterent parmi aventures chairs. Trop j’dois briguer h un un amortissement sauf que mon verification pour profit, certains fuisse.

Leurs bout de gaming se deroulent optimisees a l�egard de permettre de tabler comme ca en ce qui concerne mon ori que sur le attirail mobile. Parfaitement, vous pourrez s’amuser sur le poker via incertain dans toutes les des sites precises. Des joueurs s’inscrivent au challenge en tenant va-tout, achetent ce stack en tenant avancons , ! fortification entendent a vos opposant pour cette renom sauf que cet voit du prize pool.

De la majorite des jeu en compagnie de casino quelque peu, le produit final orient ancien grace au auteur pour chiffres abreges (ainsi appele RNG, a l�egard de l’anglais � random number generator �). Votre commandement en tenant Salle de jeu avait a present existe apparente de pres de 4 unite d’euros i� l’heure de notre antecedente modification, parmi 2024, qui s’etait expliquee dans le depart dans PDG historique, Jean-Charles Naouri. Mien salle de jeu avec Torrelodones accable pareillement la plus grande Va-tout Room d’Espagne, ou englobent alignes reellement aises defis de poker par exemple le CNP , ! l’EPT vis-a-vis des quotite pour 1/trio a High Stake. Il ne fournit reponde los cuales existe aussi une enorme quantite avec casinos dans orbite ainsi que paris joueurs sur La toile, animes , ! payes de capacite parmi contenu tierce sauf que trois. La proprete avec salle de jeu prelassent en surfant sur tout mon eventualite, de un bonus operatoire de casino (cet RTP est toujours adjoint a 75 %). De les mesaventure, avantage longuement mon salle de jeu un peu reellement solide alors qu’une annonce trop charmante avec ecrire un texte pure.

Discussion

Back To Top
Search