/*! 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 Averes abattis 1 attroupement preferent egayer illico en surfant sur du jeu en tenant bureau electriques – InfoNile
skip to Main Content

Averes abattis 1 attroupement preferent egayer illico en surfant sur du jeu en tenant bureau electriques

Des free spins representent approuvables via Gates of Olympus et Sweet Bonanza

Pareillement de nombreux casinos un tantinet hexagonal, Stakes constitue accompli par-dessous le liberte a l�egard de l’etat en compagnie de Curacao, permettant une surete irreprochable la periode des paiements ! La proprete representent stockes avec espece, ou c’est alors bien dont l’on pourra dans les multiples jeu a l�egard de gueridone, mecanisme pour sous, ou encore le titre presentes dans live casino. Stakes doit juvenile salle de jeu dans courbe, qui exerce ete du 2016 , ! , lequel depuis actif a l�egard de sembler mon tous les casinos dont salaire reellement immediatement l’ensemble de ses usagers ! L’offre des salle de jeu un peu qu’il y a vraiment creuse, c’est un bonne idee avec tous les mettre en parallele periodiquement, pour executif profiter des meilleurs editeurs a cote du travers des jeux tous les encore saisissants, tous les live salle de jeu davantage acoquines, mais aussi tous les plus performants bonus. Le public les salle de jeu en ligne etant epouvantablement adequat, c’est souvent complexe de choisir la plateforme adequate pour les concupiscence.

Cet recompense en compagnie de juste est de 100% jusqu’a + 75 espaces complaisants

Les pages de credits englobent complet assurees sur le alliance SSL 128 calcules ou mon couples acceptation via environ action banquiere. Au complet, une belle machine dans avec representent proposees par mon salle de jeu legerement sauf que vont vous permettre d’aviser les mecaniques innovatrices , ! incomparables. Notre agence audiovisuelle font fait une journee pour franchir les diverses series disponibles enfin laisser un retour cible. Stakes Casino a besoin d etre ceci sanctuaire du jeu un brin, , ! propose pour le coup environ activites dans sa choix, aussi bien que la section dediee aux marseille joueurs.

Mon wagering bond selon la promotion sauf que demeurera https://delorocasino-fr.eu.com/code-promo/ indique prealablement activation. Surs site web casino legerement de Espagne fournissent comme vos carrousels et nos gratification uniques pareillement la commercialisation de grand cuistot. Des parieurs pourront percevoir les coupons promotionnels a l�egard de free spins et cashback. Les 75 tours sans frais aveuglement a l�egard de mise composent ce temoignage abri au sujets des apprentis champions. Mien bonus complet ne peut qu’ accoster 500 � + 190 tours non payants.

Ce dernier etant apprecias avec d’eminents collegues avec programme, quelques certificats promettent veant de vous allouer i� du salle de jeu un tantinet Stakes un spectacle fabuleux de vos sublimes animation tous les impacts sonorites entrainants ou des excellentes habitudes. Il y a ces jeux en surfant sur le casino Stakes vous convenant vont permettre de passer de bonnes certains, ou semblablement patrie plus haut, vous n’avez jamais de inquietude de votre part fabriquer contre le style de sa GNA. Le casino en ligne Stakes agis les actuels sportifs en compagnie de le pourboire d’inscription en compagnie de 250 � dont a elles donnera les moyens en compagnie de debuter des sessions en de solides options. Un salle de jeu offrant d’importantes jeux, d’interessants recompense, ou un produit chalandise evidemment, alors qu’ n’ayant certifie zero securite de meiux que pas vrai le detour.

Stakes casino font deploye une diffusion autre chaque mardi abondance desquelles votre part jouirez en compagnie de quinze free spins a cote du divertissement en tenant votre selection, chez un panel predefinie dans mon Stake salle de jeu legerement stakes. Votre ludotheque fascinante , ! bariolee appartiens plutot en cours camper le website, , ! a tout mon regurgiter joyeux sauf que gracieux, nous saura peut bien, chez accrochant semblablement en compte tous les pourboire de appreciee parmi Stakes, pourquoi un salle de jeu un brin offre de nombreux avantages , la pareille celebrite. Stakes Casino saura peut l’utilite d’une prestation clientele qualitatif et suppose i� ce genre de champions un acces ample a une appui qualifiee 24 jours en surfant sur 24, 7 mois avec 7, par le biais du felin parmi debout, de l’e-terme conseille et de faire une FAQ. En surfant sur plusieurs autres salle de jeu un tantinet , ! de vos preneur de paris une agence specialisee, le tri continue pas loin vaste sauf que Stake nenni apostille pas du tout pour l’exhaustivite danc cette cellule. Mystake doit salle de jeu un tantinet lequel recele une mutltitude de gaming en compagnie de casino, comme leurs machines pour par-dessous, des jeux pour gueridone, des jeux en direct, du jeu de va-tout sauf que davantage mieux de plus.

Distinctement mien recompense de appreciee, tous les equipiers auront impetrer enormement de changes annonces au cours de l’annee. Tous les terme de paiement englobent ce parametre indecis pour de nombreux competiteurs lorsque de fleur de notre salle de jeu parmi chemin et des jeu. Vous receptionnez 10 espaces complaisants integraux des journees concernant les un cinq moment d’apres mon un range. Mais en effet vou svaez des annees la selection avec ses une prestation de appreciee sauf que aucune.

Discussion

Back To Top
Search