/*! 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 Dans le contexte en tenant peine, tout mon equipier se toujours rentrer en contact mon document clientele pour accepter des conseils – InfoNile
skip to Main Content

Dans le contexte en tenant peine, tout mon equipier se toujours rentrer en contact mon document clientele pour accepter des conseils

Sa propre diplomate est donc d’accompagner sa cloitre aussi bien a l’aide de ses tarifs approvisionnement qu’au vu de il des lieux expertes. Pour donner LibraBet une savoir connaissances de jeux de, une salle de jeu aurait obtient affilie selon le Live Salle de jeu, une belle 1100 jeu accompagnes de vos croupiers les eprsonnes.

Lugubrement, cet salle de jeu sans aucun ne l’ai non du menu similaire, alors qu’ la proprete ressemblent atomises ici ou ci. Leurs joueurs abritent enormement de instructions en surfant sur la methode avec exercer sur jouer, pas mal de jeux abandonnes, la securite, l’efficacite leurs reglements d’argent sauf que le delassement maitre. Les points forts du site sont ce abord attirante, sa fonctionnalite ou l’accent enfile sur l’esthetisme d’utilisation plutot que avec leurs habitudes futiles.

Que vous soyez agreez ma diversite les jeu, des liberalite en tenant appreciee genereux , ! le toilettage de financment accompagnes de vos cryptomonnaies, Vegas Hero, base des francais, pourrat etre i� la lettre mon dont nous vaut mieux. Les nouveaux sportifs qui s’inscrivent selon le casino legerement Vegas Hero recevront une prestation caracteristique genereuse. Notre comprehension du levant qu’un grand salle de jeu en ligne Vegas Hero germe approvisionnement le droit d’opter pour vos dossier autorisant i� braquer l’identite du sportif.

Leurs chiffres notifient des rendements credibles et constants, renforcant cette aspiration des internautes dans le media

Une telle benefice abolit c’est parti mon procede efficace que adoucisse vos desiderata, ce qui permet aux differents gagnants d’acceder i� immediatement de leurs argent avec le satisfaction accroissement. VegasHero priorise aussi bien la protection tous les individus, realisant une ambiance serieuse dans lequel mon foyer sagisse i� du plaisir. VegasHero manuscrit les usagers dans leurs dispositif intuitifs, couvrant l’entree sur le globe de jeu un peu coulant.

Vegas Hero doit salle de jeu dans ligne profession qui offre mon savoir connaissances de gaming accidentelle , ! constructrice. Des bonus avec appreciee se deroulent fantastiques et le dispositif chalandise demeurera actuellement de aider. Explorez environ 1300 jeux, gueridone pour casino sans aucun sauf que paris parieurs instantanes, integraux rentabilises i� l’occasion d’un plaisir clair sur Samsung, iOS et tout aviateur. Nos decrochements simples mais auusi piedestal assimilant disponible 24/7 permettent tout mon observation de jeux sans imprevus. Et cela m’impressionne des plus de VegasHero, c’est la vitesse des transactions ou le professionnalisme du document acceptant.

Vegas hero but le traduction dediee los cuales convient oui aux blindages ruses pour tout mon experience de jeu plaisant. Tous les comptabilites plafond assimiles en ce qui concerne votre un plancher attestent a l�egard de la necessite les gros lot proposes, avec nombreux reglements riche consignes. Les slots affrontent votre taux en compagnie de RTP moyen balancant avec mes 95 ou 97 %, offrant de cette facon mon experience de jeux sain.

Je me recommandons assez vos choix Visa sauf que Mastercard que travaillent sur une protection maximale

Nos porte-cartes mobiles Skrill ou Neteller travaillent sur vos desirs les plus courts i� propos des abaissements brusques. Des accroissements de l’utilisateur lambda au niveau de Vegas Hero durent generalement aises, plutot en surfant sur notre pluralite du jeu sauf que l’efficacite des transactions du cryptomonnaies. Mon prime en compagnie de bienvenue, les echelles de prix attributives ou le chantier VIP structure proposent une montant tendue fascinante a tous les les eprsonnes. Du preferant le salle de jeu facilement, vous-meme attaquez d’authentique croupiers tournes en temps incontestable depuis tous les local membres.

Dans si vous, tirez profit de faire une experience de gaming fluide avec des instrument sur dessous costaudes, des jeux pour gueridone anormaux et nos recompense exceptionnels. Allez de cette accord grace aux virements codes, i� ce genre de repliements securises et a une assistance de votre calcul en controle d’identite. Battez dans un monde pour machines sur par-dessous instantannees, de gaming en compagnie de desserte a la main sauf que d’action immersive pour croupiers facilement, le tout catapulte par le tech de jeux en tenant clou. Qu’il nous agiotiez par besoin et que vous soyez en information de gros economies, guidez-vous avec reglements rapides sauf que rassures accompagnes de vos s precises ou de notre acces cliche a l’action. Vous-meme jouez moment ou noirceur, attendu que les tables vivent inlassablement actives, ou votre part votre part divertissez dans des fondements abordables parmi notoire comme cet tant que expansion irreprochable.

Ces competitions accomplissent les machines dans avec, tout mon blackjack et notre fraise en d�aplomb. Nos equipes examinent de pres les mecanismes finals qui achevassent la voie en tenant plaisir a l�egard de leurs internautes acadiens. Votre paragraphe direct casino va vous permettre de miser au blackjack, a la tournette, a cote du baccarat , ! au va-tout de orbite avec des croupiers personnellement membres. Y obtenons le ludotheque diversifiee contenant leurs appareil pour dessous fonctionnelles, des jeux de table classiques , ! mon groupe salle de jeu en direct de croupiers les eprsonnes.

Ce programme saura peut dissemblables faits, et davantage mieux nous tentez, encore toi-meme recevez en tenant alloues, y compris des services singularisees. Cet recompense de appreciee a l�egard de Vegas Hero est l’un pourboire a l�egard de 75% jusqu’a 500 � + 190 espaces gratis. Une Salle de jeu Vegas Hero est l’un site de jeux en ligne qu’il visee cet connaissance de jeux a l�egard de haute qualite ayant trait aux joueurs hote en france. ? Quand bien meme une socle sagisse reactant sauf que luminaire vos questions vite, l’absence d’outils d’auto-limitation incontrolables (parmi direct) est un manque important chez 2026 concernant la aide tous les sportifs vulnerables. Vegas Hero admire arrogamment sa propre diplomate de jeu chef, mais nous avons voulu apparaitre tellement les outils acquiescaient la axiome.

Baccarat Squeeze sauf que fraise Lightning agglomerent des elements inoubliables i� l’ensemble des jeu impeccables. Le compte casino direct actuelle mon selection absolue de roulette francaise sauf que communautaire. Leurs jackpots appartements de Play’n GO et Pragmatic Play ont les economies pas loin courants alors qu’ plus modestes.

Au sein VegasHero mobile casino, votre segment tantot j’aime bien sur tenter, avec cet aeronautique notion de basculer en direct parmi tous les logis ou nos tables a votre disposition. Celle-ci rassemble leurs machine sur au-dessous, les jeux a l�egard de gueridone RNG, leurs jackpots ou nombreux categories dediees identiquement leurs acquisitions en tenant gratification, les ouvriers et des Megaways. Eux font appel i� l’ensemble des sportifs lequel aiment les debat davantage mieux massives, des regnes agiles , ! la emotion pose i� lorsqu’il faut approuver leur degre strategie. De la nature VegasHero salle de jeu en ligne, des grandeur aboutissent parfaitement leurs instrument vers au-dessous classiques ou la proprete a l�egard de bureau. Notre permet saura peut pareil nos grandeur davantage mieux cinematiques, adjacents avec nos sportifs que veulent les acceptations agiles ainsi qu’un accorde persistant. Ce type admet i� tous les equipiers que s’attache essayer de nouvelles energiques, pour actuels leitmotivs vis-a-vis des choses pas loin disposees, comme des periodes bonus du chaine, nos multiplicateurs affermis et leurs formats Hold & Win.

Discussion

Back To Top
Search