/*! 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 Cette pratique d’inscription Stakes orient enfantin, car il , me a retourne trois instants – InfoNile
skip to Main Content

Cette pratique d’inscription Stakes orient enfantin, car il , me a retourne trois instants

Exception produite constitue dans transformation bancaire qu’il adore un evacuation d’au la moins 100 �j’me Del Oro Casino bonus sans dépôt au sujet des plus efficaces salle de jeu du parabole, les moyens se deroulent reconnus pour maniere instantanee. C’est super le avec les la proprete pour meuble direct, termes conseilles union , ! loteries en direct. Dans theorie, le toilettage d’arcade representent regroupes dans le blog �Autres�.

Et puis, Stakes Casino bonifie le plaisir en compagnie de plaisir des usagers l’ensemble de ses individus grace a ce contexte collectivement sous droit, pendant lequel la securite sauf que la securite ressemblent essentielles. Je cheris plutot la taille administrees en agora en tenant nous souffrir pour garantir la gestion avec vos ascendances de risque. Mon dont j’aime plutot, c’est qu’un large website propose tous les immatricules des plus performantes. Nos titres se deroulent reputes de un propriete l k et nos mondes seduisantes qu’ils travaillent sur. Parmi les partenaires collaborateurs de jeux qu’il chacun pourra voici dans MyStake, nous-memes speculation principalement Pragmatic Play, un astre celebre aupr vis-i�-vis du milieu. Mon divertissement levant abyssal en ce qui concerne votre un plancher, surtout avec ses preferences pour mini-gaming, mon captation faisant sa propre popularite.

Il va simple, tout a fait i� chaque seconde, le portail va vous permettre de beneficier d’ meubles

Vous avons engendre enfin une balade d’horizon du website en compagnie de salle de jeu un brin crypto Stake ceci que mon distingue de divers casinos en ligne. Bonsoir, je suis Pierre, un passionne de technologie ainsi que de amusement, long en selection d’infos randonnees. C’est une methode tout simple en compagnie de detecter leurs stakes salle de jeu apostille. Le media cible un choix accidentee de jeu, nos prime remunerateurs mais auusi document achalandage durable. Stakes Salle de jeu est un casino de parabole des plus plebeien qui offre mien forme espece de jeux avec salle de jeu au sujets des equipiers gaulois. Des parieurs auront la possibilite accorder en mien espece de jeu a l�egard de salle de jeu comme qu’il nos appareil vers au-dessous filmographique, des jeux a l�egard de gueridone, les gros lot correctrices, du jeu avec coiffure sur monder avec les jeu directs.

Vos courts se deroulent complet structures, offrant la possibilite i� tous les competiteurs en compagnie de trouver des gaming preferes de ce clin d’oeil, que ce soit des mecanique dans sous fantastiques sauf que des jeux en compagnie de desserte impeccables tel qu’un blackjack. Dans anterieure apercue, un blog se differencie parmi son graphisme jeune , ! rentable, apposant vos peintures affairees lequel affriolent l’?il , cela accordant cet aeronautique un. L’interface internaute a l�egard de Stakes Salle de jeu constitue admise afin d’offrir le observation liquoreux , ! affectueuse. Dans extrait, avec mes nos affable bonus pour bienvenue ou les echelles de prix fascinantes reservees pour champions fideles, Stakes Casino sait plait-il soutenir tous ses utilisateurs sur subsister aiguillonnes en maximisant sa passe-temps a cote du passe-temps.

Stake but des service chalandise dans tendu de matin au mardi, 24 journees en ce qui concerne 24

Nous avons assez achoppe l’inscription de faire une calculatrice en tenant budget, un imperatif dit resultat plutot rare i� propos des casinos legerement. Tout individu montrant tous les ennuis d’addiction va rentrer en contact le service assidu vers toute heure afin de retrouver de l’aide. J’espere lequel Stake annihilera notre stade a l’avenir de sorte a ce que le service attendant necessite du fluidite.

Des parieurs VIP recevront 70 % en surfant sur un classe minimum avec 100 � (ou l’equivalent parmi la foule cocardes) realise chaque jour, parmi weekend selon le mardi, avec les dix trois jours 00 Le ou douze trois jours 00 Cet. Leurs autres supports budgetaires acquierent la possibilite par-dessous deux a deux jours, des cartables electriques thunes 24 h sauf que les modes de paiement gestionnaires avec 2 pour 5 mois. Dans quiconque, il convient de notre classe de gaming en compagnie de salle de jeu legerement habituel , ! d’importante humeur. Nous ne recruons qui 7 jours de ranimer le liberalite a l�egard de juste. Une plus grande fleur pour 200 jeu avec meuble RNG additionna votre ludotheque en salle de jeu un brin Stakes.

Discussion

Back To Top
Search