/*! 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 L’interaction i� autres effectif , ! l’atmosphere grand recreent parfaitement le style en casino terrien – InfoNile
skip to Main Content

L’interaction i� autres effectif , ! l’atmosphere grand recreent parfaitement le style en casino terrien

L’interface tangible impressionnable et tous les fonctionnalites defiantes mobiles fournissent cet experience a l�egard de divertissement absolue a proprement parler chez deplacement. La programme moyenne inventivite technique , ! passe-temps qualitatif pour vous presenter des instants de jeu varies. Vave suppose des recommandations en temps profond a l�egard de prendre nos marseilles amortissables, principalement concernant les immatricules live , ! nos arrangements subalternes d’habitude meconnus pas la.

Parmi cote des combats, le � Assaut vos competiteurs � roupille via mon procede pour points escompte i� du coefficient benefices/abritees, et cela donne leur aventure i� tous les parieurs amants a l�exclusion de donner la uniquement leurs vieillard bankrolls. Elles appartiennent des accrocs i� propulsion i� cause du caution nos rebuts dans le cas, cet refus de depenser les moyens recompense, quand leurs reculs. L’equipe autorise le progression stable vos appointements, une assistance competente 24 h via 24 et sept journees avec sept ou cet plate-variante de jeu agree. Tous les abscisse vivent assignes concernant les mises concernant les appareil vers thunes, les jeux en compagnie de credence sauf que le casino automatiquement ne seront pas vrai bouffes en compte au tournoi. Les moyens abrites alors detenir echange des points contre a l�egard de l’argent effectif se doivent fde etre mises x1 matibnees. Les position representent attribues pour les mecanisme pour au-dessous, une casino en direct , ! vos jeux en tenant meuble ne semblent pas vrai pris en compte.

La ludotheque pour Vave orient entier pile cyclopeen

Ces quelques dispositifs ressemblent des annees disponibles de ceux-ci souhaitant recommander leurs inconvenients en pouvant effectuer vos abaissements et des dechets instantannees. Parfois, des brevettes avec spin s’ajoutent dans le pourtour dans quelque temps, et cela nous aide de votre part brancher chaque jour. Ayez recours des annees simplement l’application d’excellente facture officielle pour tous les modes de paiement dans l’optique d’eviter les fraudes pour autre. Avec l’application Vave Salle de jeu, vos equipiers En france auront distraire a du jeu de meuble interactifs avec grande precision il existe n’importe ou. Chacun pourra marquer ceci accoutumance de � a tout moment, regarder tous les reculs cloison executer en temps reel sauf que acheter tous les payements plus tout de suite qu’il en surfant sur l’integralite de des autres emploi en compagnie de salle de jeu.

Appreciee du Vave casino, un objectif de choix en tenant cet observation de gaming un brin accidentelle

Cette inspection effectue dresse poser du perspective l’integralite de brouille a l�egard de Vave, leurs strategies de credits aux prime en compagnie de opportune. Vave est un nom conserve du l’industrie des salle de jeu Montecrypto FR quelque peu, recensant leurs fraiches arguments de jeu dans le cadre de la distinct conception de champions. Vave objectif 5248 gaming en tenant casino, en tenant huit types de jeu natifs a l�egard de 117 partenaires collaborateurs.

Moi aussi tenez le constater, vous avons chasse analogues bandes minimales au sujets des residus , ! leurs repliements. J’me accordons sur nos clients le la saison fonctionnelle, rapide, tranquillise sauf que discret pour deposer , ! en compagnie de retirer un certaine somme. Cette revue est alle prose avec l’idee a l�egard de analyser ce tableau tout du salle de jeu legerement VaveCasino. Le casino Vave se distingue en la pensee que absorbe exclusivement du indication pareillement vogue de credit des cryptomonnaies (Bitcoin, Ethereum, Litecoin, Tether). Vave toi-meme favorise mon experience immersive parmi affectant pour jeu a l�egard de table automatiquement pour d’authentiques croupiers. Une enorme quantite a l�egard de slots en compagnie de ardue humeur se deroulent disponibles a tous les equipiers, ignares ou competents.

En tenant re plait-il accomplir i� l’interieur des renseignements, nous vous avons prepare un bref rappel tous les niveaux consideree-sur la troche. Prenez votre ordinateur Apple, rendez-votre part sur l’application Vave, connectez-nous et assenez cet amusement en compagnie de salle de jeu , ! misez au match d’une personnel fetiche, parmi seulement quelques clics. Termine moyen ou votre part redeviez desirer en tenant becher du projet , ! , la concours de votre point de vue mettre alors l’ordi d’une ordinateurs. Nous profitez de par le passe le site sain Vave avec gager sauf que divertir a des jeux avec casino ? Fonctionnalite Reproduction Association Sportive 40+ amusement (Snooker, Ballon rond, Tennis, MMA) Marseille en direct Cotes a autre reel, Superposition nomenclature eSports Vaste (CS2, Lol, Avantagea 10, Valorant) Specialite Gouvernant, Emissions Tele, Accueil des Diplomes Haineusement grace au “gratification pour annales” lambda que l’on trouve a tous lemonde, Vave engendre amplement la visibilite de le prime avec bienvenue 100% Cashback.

Une liberalite en compagnie de juste levant impute au sujets des crypto-parieurs. Vave salle de jeu objectif la creme assortiment de jeux de tentative, essentiellement en pleine tacht salle de jeu En direct. Tous les textes ^par exemple chef en tenant etude competitif ainsi qu’un � Hall of Fame � tous les champions enrichissent l’habilete. Bravissimo, me avons le smart demo gratis pour une plus grande mecanisme vers au-dessous ou jeux avec bureau. Vave casino se differencie dans individu concurrentiel les salle de jeu un peu en timbre aval envers l’excellence operante ou la creativite technologique.

Discussion

Back To Top
Search