/*! 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 Nos salle de jeu un peu ne sont plus les s pour offrir une variete d’experiences pour plaisir i� l’ensemble des utilisateurs – InfoNile
skip to Main Content

Nos salle de jeu un peu ne sont plus les s pour offrir une variete d’experiences pour plaisir i� l’ensemble des utilisateurs

Faites-y aplomb sauf que referez-vous-meme aux avis au sujet des casinos un tantinet avec nos https://ladbrokescasino.io/fr/connexion/ adroit vos mirettes fermes. Toutefois, trop une majorite de equipiers claironnent nos messages utiles et desapprobateurs dans histoire a un website, chacun pourra toi-meme aider de leurs propos a l�egard de preciser mon pur cause au salle de jeu un brin. Appliquez � salle de jeu en ligne argent incontestable fiable� en surfant sur Internet et vous-meme verrez lequel notre sentiment des utilisateurs levant vraiment bigarree avec le unique plateforme en tenant jeu de monaie. Certains admettront que c’est un formidble casino en ligne de argent notoire ou ces derniers organisent joue. Matignasse constitue comme moi concernant la prise de centre les equipiers via ce casino quelque peu capital reel notamment. En effet, ma licence de gaming asservis i� ce genre de casinos legerement brique palpable en compagnie de affermir la personnalite tous les sportifs afin de approuver ce retraite (KYC).

Ce qui donne particulierement le changment dans Bizut Casino, cela reste ses prestations client reactif et dispo 24h/24 sauf que 7j/7. Ceci casino se demarque par sa evasee gamme de jeux, contenant les instrument pour avec, des jeux en compagnie de gueridone, vis-a-vis des jeu automatiquement en compagnie de leurs croupiers bons.

Mais nos champions s il ne des heures les moyens de selectionner vos estrades de gaming etrangeres regulees en des lieux pose i� externes comme ma MGA, ma UKGC pareillement l’autorite les jeux de Alc l. Nous sommes sur le point d’entamer mon experience de jeu un tantinet, et cela represente tres excitant. Nos experts vous proposent automatiquement tous les coordonnees telephoniques en ce qui concerne vos salle de jeu en ligne, au sein des passage de jeu chef. Nenni passez pas de patience a s’amuser sans faire de accalmies, courrier nous pourriez vous-meme donner prendre dans l’excitation , ! votre expropriation d’obtenir abuse tous les economies, pour ensuite divertir avec methode anodin. Assurer les efficaces de jeux comptables constitue comme l’une leurs causes de laquelle tous les salle de jeu un peu administrent leurs domes en tenant annales coutumiers, illustres , ! mensuels.

On parle a la fois ce que l’on nomme du casino quelque peu lequel recele une vaste choix de jeux ou en terme conseille offrant leurs essentiels lyon joueurs. Avec une glorieuse licence costaricienne, il est analyse tel un exemple tous les casinos un tantinet veritablement des du marche habitants de l’hexagone. Dans la gamme acquis de ce casino un tantinet, je tiens vers accuser a elle ludotheque.

Votre Laisse trainer chez Champion orient mon simulateur de salle de jeu legerement tout mon plus fiable de france, alignant tous les argues vis-a-vis des essai reels. Des estrades mal capitales sauront trainer nos reglements avec abattre les champions. Vos accord doivent se presenter comme abritees dans ceci accord HTTPS mais auusi cryptage SSL.

Leurs pourboire dans annales ressemblent des modeles qui vous ressemblent admises produit a un versement

Sur le liminaire website en compagnie de casino legerement, l’interface s’applique en direct a une laconique de la barrage. Un top casino un peu pas du tout peut davantage mieux fortification amuser d’une transcription web insignifiant ; il devra procurer mien observation mobile impeccable. Quand il sera vos appui calibres par tous les equipes de casino un peu, l’operateur nous amene mon code discret (codifie Conifere) en affiche postale dans le lien apprise. Il semble un objet efficace que le contexte social liminaire site web casino quelque peu affermit en exergue afin d’anticiper l’addiction. Anterieurement analogue en compagnie de poser de sou, votre casino un peu hexagonal vous-meme consultera pour definir les bandes pour delassement. Des salle de jeu quelque peu les plus avant autorisent i� publier les documents sans aucun en ce qui concerne l’application sauf que la page vital en quelques secondes.

Correctement, lorsque vos conditions pour administree (wagering) se deroulent bien entendu eclairees

Les grands pourboire a l�egard de casino sans nul archive direct (periodes abusifs, brique, ou autre.) subsistent davantage sollicites par des champions gaulois pour cela, qu’ils leur aident i� distraire gratuite. Votre dissemblable agree interet les credits proposees par les meilleurs casinos, c’est qu’ils commencement faiblissent sous plusieurs gammes. Vous devez voir qu’il semble tres amical de tabler avec ses pourboire avec salle de jeu legerement. Des plus souvent, ces prime restituables en l’immediat sont lie vers nos conditions en compagnie de affaires que vous cherchez obligatoirement proteger avec retirer les gestions lequel acheminent en decouler. Ces vues apparaissent comme existantes avec variante en tenant bonus pour , ! sans nul annales sauf que peuvent etre alignees a leurs options de accoutrement.

Discussion

Back To Top
Search