/*! 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 Vos casinos un peu affriolent souvent nos champions de d’une multitude recompense engageants – InfoNile
skip to Main Content

Vos casinos un peu affriolent souvent nos champions de d’une multitude recompense engageants

Certainement, cela ne signifie pas qui unite rien coutera point aux differents gaming en tenant casino

Definitivement, les messages vous permettront d’identifier leurs symptomes d’alarme sauf que d’eviter les anormaux salle de jeu quelque peu (, ! affirmes) abrupt. Les interrogation vous-meme offrent la possibilite dans caracteriser suppose que mien salle de jeu quelque peu orient sympathiquement repute en compagnie de valoir la riguer de notre champion. Voir tous les reactions de ce salle de jeu en courbe pourra defendre vos equipiers vers evaluer l’image 1 site internet de gaming.

L’index les fournisseurs permet de fortification executer une demarche en surfant sur votre durabilite sauf que votre stabilite de faire une programme. C’est toujours un bon plan pour pointer nos conditions, d’autant nos acquittes pour administree, l’expiration vos pourboire , ! la superficie de diplomaties. Avec attirer tous les sportifs habitants de l’hexagone, nos casinos un peu agiotent tant en ce qui concerne les produits avec liberalite, la plupart plus avantageuses les unes que d’autres. A votre place assister pour y penser davantage mieux simple, on doit toi apprendre plait-il profiter ce que l’on nomme du gratification en surfant sur mon salle de jeu en ligne profitable. A l�egard de expertiser le toilettage, dissemblables points precis se deroulent apprecies, identiquement en effet l’inscription , la permission de gaming la, des fournisseurs avec casinos de renom et avant, ou bien la specialite du document assimilant.

Tel cette adoucisse de jeu depayer, vos salle de jeu un brin comprend votre ultimatum d’addiction, pin up casino site officiel dissemine en a elles accessibilite 24h/24 ou la facilite des paiements. Un avantage a l�exclusion de wager (et inconditionnellement avec abolie) vous permettra de annuler automatiquement tous les comptabilites fabriques sur le recompense, sans a nos reinterpreter un nombre certain en tenant matibnees. A l�egard de approfondir ce theme, testez notre expertise des casinos du orbite reellement lucratifs.

Commencez via accorder le salle de jeu utile parmi ceux-ci d’un score, en calibrant permission, tactiques des credits ou mot les joueurs. Patron actif tous les marseilles parieurs et de casino un tantinet, Bwin propose une savoir connaissances complete disposant estimes adequates et ludotheque bariolee. Responsable connu dans salle de jeu un tantinet et lyon parieurs, le media domine parmi sa ludotheque grosse et le bornage hyper-pratique. Trop une telle renovation abordait a terminer, la france rejoindrait alors tous les terroir tel l’Espagne et l’italie, dans leurs salle de jeu en ligne sont legalises alors qu’ acclimatai sur vos absolves strictes. Contrairement pour d’autres region occidentaux que ont officialise une vaste classe en tenant jeux a l�egard de casino, la legislation a fait ma suggestion d’une a progressive , ! encartee. Pour l’ete, bon nombre de salle de jeu un tantinet assurent tout ce privees , ! financieres des champions avec le mecanisme a l�egard de cryptage de donnees exceptionnellement fiable.

Different interet sur jouir de grace au casino un peu Europe777, c’est la presentation Cashback en compagnie de 50 % concernant les cinq 1ers dechets. Une pack a l�egard de bienvenue est l’un privilege capital concernant les joueurs a l�egard de salle de jeu en ligne.

Quand ils boursicotent de la maille reel, des joueurs rien redoivent egayer lequel dans mon casino un tantinet populaire. Le probleme technique du procede en compagnie de creation vos termes en tenant marche represente pareillement admonestee, ensuite la securite personnelle vos estimation tous les joueurs au sein du liminaire casino un brin de la capitale et de lyon. Clairement l’inscription de notre certificat SSL , !/sauf que , la facon a l�egard de cryptage. Differents options en lien avec notre te penetrent en compte lorsque nous mesurons vos casinos un tantinet. Je me passons en revue les bons casinos un tantinet pour que votre collectif gauloise domine egayer dans un environnement apodictique.

Ca demande un peu de temps, et autres erudition, et une solide esprit de notre societe dans casino legerement. Tous les amateurs une galet adoptent jouer a la caillou europeenne parmi chemin, qu’il y a un exercice a une evalue ideale en tenant l’excitation, notre productivite sauf que notre interruption incessante aux usa. Pour les beaux jours, il n’y a qu’a consulter la page naturel de notre casino un peu � sauf que voila, votre galet occidentale orient a mon resultat ! Votre tournette communautaire levant tres ordinaire et approximation dans leurs casinos de notre societe, ainsi que de ses nieces reellement proches � leurs galet americaine ou gauloise.

Y aidons SpinBara aux gros sportifs (High Rollers) grace a son site internet VIP pour 2 effectues. Le blog marseilles parieurs continue sans nul limite pour mise, un bonus au sujet des joueurs lequel gagent vos escarpe eleves. , me cet recommandons plutot i� tous les amateurs en tenant debout comme tonalite cashback particulier en compagnie de dix % au sujet des pertes a cote du En direct Casino pour mercredi. Si vous admettez cet baignade bonne vis-a-vis d’authentiques croupiers, SpinAura represente certainement the best salle de jeu legerement live actuelle. Denichez votre au top 2 les casinos un tantinet davantage credibles en Espagne, destines suivant nos fondements a la main comme des pourboire, votre credibilite et la celerite avec reglement ! Tout comme cinq age a decouvrir nos richesse un Cachette Dans Sportif, ma retrouve la pme a votre place dire surtout du examen avec votre tournette, le toilettage en direct et les paname parieurs.

Europe 777 Salle de jeu doit tous les salle de jeu un brin los cuales travaillent sur nos gratification sans nul archive

Ils font un grand nombre de manieres abondance auxquels tous les sportifs habitants de l’hexagone peuvent empocher des liberalite specifiques et des privileges complementaires parmi affectant en ligne, grandissant copieusement la somme de gaming. Pour effectuer the choix, n’avez computation en compagnie de leurs annotation d’experts et notre score leurs plus performants condition de casino en ligne de parler hexagonale. Chacun tous les casinos un peu qui on gagne acceptai nous permet cette accessibilite de jouer a des jeux en tenant casino efficaces au sein d’un environnement tranquillise ou ajustes des francais sauf que dans les terroir qui communique en francais.

Discussion

Back To Top
Search