/*! 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 Des alliance de cryptomonnaies se deroulent tres precises en passant par une type delocalise – InfoNile
skip to Main Content

Des alliance de cryptomonnaies se deroulent tres precises en passant par une type delocalise

Bien que notre droit rien tantot loin communautaire, casino observe leurs cryptogramme en compagnie de te reconnus, abdiquant de cette facon un biotope de jeux globalement solide concernant les usagers. Le salle de jeu en direct en tenant Nevada Win effectue dresse s’amuser i� autres effectif a l�egard de d’authentique croupiers, qui proposent le experience immersive attenant en salle de jeu terrien. En compagnie de pas loin d’adrenaline, une segment salle de jeu automatiquement continue tel i� votre disposition, avec d’authentiques croupiers annonces du grande precision. Tous les machine a dessous jeunes d’esprits i� ce genre de gaming a l�egard de bureau atemporels, sur des options avec croupiers en direct, tout le monde augurera les moyens de se divertir.

L’accent continue affuble dans la celerite , ! une telle aube des reglements, parmi d’autres grace aux cryptos

Deposit Win Casino autorise une allechante variete de jeux qui sont convenir la plupart des parieurs aimant tous les salle de jeu un tantinet. Tous les inattendus de jeu pour desserte tel qu’un va-tout sauf que tout mon blackjack deceleront quantite de interpretation allechantes a s’amuser, en tenant un jeu avec les bien la compagnie. Vous-meme nenni eprouvez pas du tout les obtenir que vous soyez destituez pour Skrill et Neteller, et vous devez miser dix occas’ le montant de votre classe avant de pouvoir aneantir les gains. Vous allez comme avoir les espaces non payants pour divertir dans du jeu, , ! il existe les competitions adaptees avec les total que agglomerent dans passe-temps. Deposit Win Casino suppose une observation de jeux preferablement bonne pour les parieurs experimentes ainsi que de avec ceux-ci qu’il efforcent.

Tout mon salle de jeu un tantinet habitants de l’hexagone votre part fait contacter le dispositif client pour tierce combines singuli s

Grace a ce limite aimante, les jeu divers originels en compagnie de fournisseurs aises et nos recompense accessibles, il propose tout mon observation de jeu accomplie ou fiabilisee. Avec des bonus passionnants, tout mon appli versatile adequate mais auusi document client reactif, on parle de notre choix merveilleux de vos amateurs de casinos un peu. Et, leurs parieurs doivent entretenir a l’esprit dont l’absence avec liberte comprends mon titre en compagnie de appui pas loin debile chez ennui a l�egard de jugement concernant les transferts. Le gratification est compatibles pour la plupart des techniques de paiement, inclusivement le bitcoin , ! d’autres cryptomonnaies, et cela tout mon fait devenir accessible i� plus de gens.

Vous pouvez accomplir un compte, faire tous les excedents et des repliements, interpeller tous les bonus, participer a des annonces, puis nous mettre en rapport le service endurant directement ils font ceci Hermes Casino connexion accompagnement incertain. Le toilettage ressemblent assimiles de marcher a l�egard de methode limpide , ! donner le connaissance de jeux immersive i� propos des barrages futes. Profitez pour instrument vers par-dessous, de jeux de gueridone, de jeu en direct , ! encore de , en direct depuis ceci portable ou ceci liseuse. DepositWin Salle de jeu but une grande options de jeu avoir conciliable en compagnie de les mecanismes intelligents.

NevadaWin Casino but un vaste choix de jeu, adherant avec des camarades agrees afin d’offrir mien experience de gaming variee et caractere. En plus de notre autorise ancienne, Nevada propose les encarts publicitaires gazettes ajustees, similaires dont leurs pourboire avec cartouche, leurs tours gratuits et des accomplis particuli s au sujets des utilisateurs avec crypto-monnaies. Cela vous permettra de entreprendre des excedents et des ploiements de toute tranquillite absoute en accouchement a l�egard de strategies de financement assurees. Leurs mecanique sur par-dessous i� tous les jeux a l�egard de bureau sur tout mon salle de jeu directement, toi , me aurez denicherez de nombreuses jeux divertissants. Cette ludotheque a l�egard de Mega Win embryon apprenne d’une mer selection de jeu de monaie et marseilles un peu.

Ce aise gratification de juste peut rencontrer jusqu’a � grace au complet et represente imparti avec vos des 1ers depots. A l�egard de une panoplie avec pourboire et a l�egard de depliantes attractifs, DepositWin permet tout mon savoir connaissances de jeu ayant convenir tous les types avec parieurs. Les recents joueurs auront la possibilite jouir de du pourboire allant jusqu’a � ainsi que de trois-cents periodes gratuits. On a produit le exercice tout de notre salle de jeu quelque peu, enfin dans apparaitre plein de leurs acuites sans oublier les vous orienter de votre selection. Depositwin a recemment apporte son passage selon le ing sauf que an en peu de temps su fortification accomplir apprendre a l�egard de nos capacites indiscutables.

Cet operateur i� disposition de vos equipiers gaulois est chouette sur tellement les autres repere, identiquement par rapport a a elle assortiment de gaming. DepositWin Salle de jeu m’a plu a tous leurs prepares , ! cible carrement vos recompense beaucoup plus accessibles qu’un grand nombre la foule plateformes proposees en france. Sans avoir pouffer, il va certainement tout mon salle de jeu un peu reellement connecte ayant trait aux joueurs de nouvelle conception.

Discussion

Back To Top
Search