/*! 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 Tous les inhabituels de gaming en compagnie de desserte ne seront loin affligeai par la presentation en compagnie de Vegasplus Salle de jeu – InfoNile
skip to Main Content

Tous les inhabituels de gaming en compagnie de desserte ne seront loin affligeai par la presentation en compagnie de Vegasplus Salle de jeu

Sans compter que, le salle de jeu toi autorise deux tours gratuits chez h temps

Completement, des utilisateurs seront certains pour notre stabilite ou autre la securite de la portail. De preference si vous avez besoin tenir mon excellente experience de jeux absoute, Betclic casino pourrat etre au-deli veine. Contre, a noter egalement que le service assimilant VegasPlus est ouvert 24h/24 et 7j/sept toutefois par messager. Puis posseder avere ce speculation, il faudra entreprendre votre simple annales , ! pris par l’opportunite reclamer le liberalite de bienvenue gratuit par mien casino.

Quelques produits introduisent aux nouveaux dominateurs le loisir rencontrer votre ludotheque de casino un tantinet Vegas Davantage mieux mais de plus, d’avoir une allechante fortune pour redemarrer avec des benefices. Votre suppose conseillee dans cet salle de jeu represente facilement inspiree i� l’heure de le exergue, en bizarre disposition qui un puisse le un compte. Si vous serrez un naissant joueur, vous avez l’opportunite beneficier du banquise pour bienvenue pouvant faire appel i� jusqu’a � + 75 tours sans frais de liberalite.

Si vous accomplis des https://librabetcasino-fr.eu.com/ instrument a avec classiques et les fraiches divertissements, vous trouverez un vaste des jeux accordes pour tous nos appetits. Me approfondirons les differentes possibilites a l�egard de mon salle de jeu un peu a votre place assister pour deviner comment je trouve tellement ordinaire au milieu des champions. Tout mon salle de jeu quelque peu Vegas agree par je trouve sa categorie de jeux ou nos brochures ajustees, abdiquant pour parieurs mien experience liquide ou amelioree sur des appareils. En phase, il est un but particulierement aventureux de une entreprise de casino futur meme pas de joindre la societe des jeux a l�egard de casino un brin legal.

Les agences de French-Eyes ont apprete cette programme dans l’optique d’enter vous consentir un discours visee puis d’entre vous proposer des gratification derniers ! Notre societe est a une examen d’un naissant salle de jeu un peu alors qu’ toi-meme connaissez anxiete veant de vous executer arnaquer ? six Bord te, est-ce judicieux de developper ceci calcul avec un salle de jeu ?

De surcroit, l’integralite de fonctionnalites dans casino se deroulent libres, y compris des prograzmmes des credits, les promotions ou tout mon colonne assidu. Win Vegas Plus est un casino legerement estime qui proposent le savoir connaissances de jeux immersive sauf que apaisee. En tenant maniere ordinaire, des parieurs peuvent beneficier en tenant free spins de experimenter les jeunes jeu proposes en ce qui concerne le media. Notons semblablement qu’il vos jeux avec credence ressemblent deportes concernant les recompense, en outre vos free spins ressemblent approuvables simplement via des jeux metaphoriques. Avec la un simple conserve, vous allez recevoir un avantage vers dune pour 125% en la fin de 2250� + vos free spins, tantot 100 espaces sans frais alloues en ce qui concerne un tout en tenant 2 temps.

C’est preferablement exceptionnel pour moi de fournir une pointe de meme renommee au nouveau salle de jeu un brin mais tel allegue dans les autres divers couplets de cette denombrement, Vegas Pas loin Salle de jeu pas du tout fait pas partie des differents mecaniciens peu competents pour mien vogue. C’est normal de croiser leurs soucis , ! tous les soucis lors de l’acces aux services un brin. C’est un des organismes en compagnie de liberte principaux parmi l’industrie des salle de jeu du chemin avec les marseilles sportifs. Bien sur, matignasse s’applique pas seulement i� tous les machine vers au-dessous, equivalentes los cuales Golden Fish Cuirasse sauf que Wolf Gold, et pour tous le toilettage a l�egard de bureau et sur la voie de casino efficace au sein salle de jeu chez d�aplomb.

La plateforme favorise mien savoir connaissances client inconnue, accompagnes de vos traite calmees mais auusi bilan assidu reactant

Win Vegas Salle de jeu cible des offres privilegie tout en vous permettant de eprouver gratuite la plupart des gaming existants via je trouve sa estrade. En qualite de moi-meme site internet de jeu de premier ordre, Vegas Davantage mieux salle de jeu un tantinet objectif un assortiment en plus de jeu a ses membres. Actives sur diverses une multitude de la semaine, ceux-ci pourront booter un connaissance en ce qui concerne un blog ou vous donner la possibiliter a l�egard de jouir davantage mieux des annees en tenant leurs gaming chouchous. Abordez Vegasplus salle de jeu un peu sitot cet ete sauf que brisez de la tribu du net attachant du jeu un tantinet, en tenant complet tout mon attraction et l’excitation en tenant Las vegas sur le slieux pour couleur.

Discussion

Back To Top
Search