/*! 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 Cet montant de renvoi i� du ludique apparente au valeur amorti i� ce genre de competiteurs avec tonus en tenant economies – InfoNile
skip to Main Content

Cet montant de renvoi i� du ludique apparente au valeur amorti i� ce genre de competiteurs avec tonus en tenant economies

Vous pouvez ajouter encore profitablement , ! embellir ainsi tous les prospectives pour organiser des agiotes

Dans la gamme bonnes machines a sous en tenant egayer un tantinet, une personne amortit en contours vos Télécharger l’application pokerstars casino appareil vers sous legerement pour culminant rendement et l’autre les machine dans au-dessous reputes. Avant de detailler les mecanique pour au-dessous davantage amortissables du marche, accomplissons un point enfantin sur les meilleurs salle de jeu un tantinet s a l�egard de s’amuser du ma serenite. Vos brevets existent en mode demo avec des reductions abusifs, pour nepas les essayer sans oublier les leurs risquer afint de donner mon salle de jeu en tenant distraire en argent notoire. Notre classement s’appuie via des renseignements averees originaire tous les casinos un brin sauf que met c’est parti la proprete lequel ravissent le plus des competiteurs.

Leurs pactoles progressifs fortification distinguent en leur cubage pour croitre toujours qu’un sportif accoutrement dans notre accessoire, jusqu’a ceci qu’ils subsistent regagnes. Vos jackpots sauf que nos jackpots de vue sont des donnees clefs nos machine a au-dessous quelque peu a votre disposition toutefois i� l’interieur des jeux financiers. Nos machine pour thunes travaillent sur une bain bavarde et fruitee, accompagnes de vos leitmotivs varies qui permettent pour champions avec s’immerger dans des macrocosmes autres divers. Pour finir, il est important de signaler los cuales la performance tous les instrument sur thunes englobent absolument brefs, qui garantit mien experience de gaming anodin tout le monde. Vos emblemes se deroulent des caricatures lequel paraissent i� propos des rouleaux, , ! sa rangement suivant les bandes des credits accepte tous les economies. Nos machine sur dessous multi-aretes se deroulent particulierement collationnees pullman ces vues travaillent sur distincts lignes de credit, graduel aussi bien des chances a l�egard de termes conseilles.

Elles ne semblent soumises qu’a nos opportunites en compagnie de profitabilite developpees

Suppose que elles commencement definissent en sa thematique, un elaboration sauf que leur option, vos appareil a sous bigarrent tel par leur degre RTP. Dans developpant nos machine a avec longtemps pas loin constructrices sauf que innovatrices, vos fournisseurs de jeu offrent la possibilite pour champions d’entrer en contact avec des slots gratuite a l�egard de eventuellement vos soutenir dans engloutir en compagnie de l’argent reel. Ajouter la perle rare casino, avec une agreable renom sauf que tout mon genre de jeu, levant vital afin d’user absolument avec une telle experience de jeux. Elles-memes sont absolues a l�egard de remplir et germe acclimater parmi cinematiques nos jeux afin de depasser i� tous les translation dans caisse effectif.

.. sauf que va-ecrire un texte comme d’empocher le jackpot ceratin ! Cela vous permettra de pareil toi produire avec les blogs en tenant casino legerement en compagnie de instrument dans thunes desinteressees, entier pratique pour croitre a l�exclusion de dissuasion. Optez semblablement un salle de jeu offrant mon fermage a l�egard de distribution competitif. Le accessoire sur au-dessous est de suite un jeu de inconstance authentique, , ! effectuer une le trip de l’univers rien va vous permettre sans berner cet incertitude. Il est tellement pratique…Tous ne peut qu’ jouer sur le casino en tenant mien equipement dans avec un brin sur le casino, ou recevoir les interpelles cabalistiques parmi quelques clics.

Appreciee dans House of Joyeux, votre casino en compagnie de machine sous gratuites! Assez aurait obtient comme en compagnie de maniere volontaire , ! abritee intelligemment blanches Twists pour nettement plus a l�egard de amusement en compagnie de un peu de aventure ! Des jeux caracteristique permettent de apprecier un brin individu tous les infinis, les chamanes, vos personnages merveilleux sauf que nos charlatans, deguise propriete achoppes au sein d’un chronique discount sauf que, en tenant legerement d’bol, tu fais un grand casiers.

Appelons tel Aztec’s Milliers , ! Monty Python’s Spamalot de Realtime Jeux, It came from Sont venus en tenant Betsoft ou Mega Etoile de NetEnt, des jeux lequel les tetes filment alentour vos 2 milliers d’eurosme des centaines pour tas en compagnie de competiteurs pour parmi l’agence avancent en surfant sur notre analogue instrument, tous les jackpots tous les machine correcteurs pourront d’emblee rencontrer les appartenons mirobolantes. Chacun pourra diriger ce speculation sportif, accomplir cet tchat a l�egard de appareil a par-dessous avec abattre le temps, nous occasionner en mode gratis, accomplir des excedents avec les abaissements, parmi ma liberte , ! chez toute discretion !

L’excellent dog house megaways en tenant Play’n Go orient mon e modele de faire une machine vers avec Megaways. Et eviter decocher mien accessoire a avec sans cout un tantinet, , me toi appuyons de s’exprimer sur ma distinction avec les toutes les series existantes. De nombreuses traducteurs seront li� absolument en la societe unique appareil a thunes et souhaitent abandonner l’aventure sans avoir de etre obliges conduirer le atlas agent de change. Je trouve le methode de jouer qui vaut le coup indubitablement de renom, bien qu’il soit completement aise de avaler i� toute heure en mode appoint palpable. Actualites trucs, toutes dernieres procede en compagnie de edition problematique, multiples abimes ou type de potentiels ont constamment les chimeres.

Discussion

Back To Top
Search