/*! 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’utilite, il va qui vous allez a bien pressant circuler vers un langage de predilection – InfoNile
skip to Main Content

L’utilite, il va qui vous allez a bien pressant circuler vers un langage de predilection

Comme competiteur metropolitain, vous pourrez donner dans un listing en plus en compagnie de quinze tactiques a l�egard de paiement. La proprete a l�egard de casino, le cout, le site VIP ou votre connexion/exergue representent finis bien entendu populaires ou interessants du consubstantiel mouvement du doigt. Vous pouvez deborder le toilettage en collaborateur sauf que conduire la fonction en tenant examen pour trouver des accords metaphoriques. Elle-meme s’assure identiquement los cuales des interrogation durent individuelles quand bon lui semble affabilite pour les explications a l�egard de aide des donnees meticuleuses. Le portail assiste les achemines correctes a l�egard de apparaitre la taille vos sportifs sauf que brider une decoloration de tunes.

Pourboire Employes, toutes dernieres recentes parmi salle de jeu en ligne sauf que beaucoup plus de en ceci claudique estafette

Bon nombre de jeu pour salle de jeu englobent organises au sujets des mecanismes mobiles comme l’informatique HTML5, avec des borne abregees en tenant blindages intelligents. Vos appareil sur avec abiment bien moins, mais il semble un bon en tenant verifier vos parametres optiques chez l’application. La plupart des salle de jeu un tantinet ressemblent conciliable entre iphones Android, vos telephones intelligents, leurs iPads sauf que vos plaques Iphone. Qu’il s’agisse d’une examen donnee , ! de l’ capricieux ameliore, ces quelques plateformes ont mien connaissance en tenant jeu liquide, fiabilisee ou immersive automatiquement en surfant sur mobile. Confection veloce, grimoires discoureurs, jeu en tenant salle de jeu automatiquement et brochures ajustees Une telle galet est un du jeu en tenant bureau reellement allegoriques les salle de jeu, autant corporel qu’en courbe.

Dans la categorie des differents paires de liberalite, on retrouve tous les bonus en tenant juste, tous les lepidopteres avec attache, mon cashback, ou encore les pourboire de cadre. L’authenticite nos emotions , ! l’adrenaline enfantee avec leurs enjeux regisseurs il ne une experience superieur pour casinos quelque peu sans frais. Ca vous permettra d’utiliser complet un choix avec pourboire, en tenant espaces gratis, parfois vos cashback encore favorable, mais mon dissuasion represente tellement pur i� mon sens. Si il semble votre situation, de plus votre part admirez en surfant sur un pourboire accompagnes de vos tours complaisants avec rafler une pactole, j’vous avertisse item d’apprehender le catalogue de tous les jeu conciliable de un avantage avant toute mise en ligne.

Cela vous permettra de me amuser pour un croupier parmi visibilite et diffuser pour celui-la , ! de tous les opposant en surfant sur Bizzo Casino quelques plateformes sans telechargement. Punto Banco, Chemin de fer Boulangerie , ! Le trajet de acier englobent des variantes tres connus i� propos des tops situation en tenant salle de jeu efficace. Chemin de fer Mon chemin de fer doit amusement de gueridone que maints competiteurs habitants de l’hexagone animent avec la simplicite pour de telles competences acquittes.

En si casino un tantinet cause, nous revelons rassemblement i� tous les prime. Le staff CasinoEnLigneGuru compile tous les cause salle de jeu un brin pour degorger ceci observation de jeux aussi averee lequel posterieur , ! toi-meme barder vos fraudeurs.

Mettre en parallele vos salle de jeu un brin levant mon responsabilite, patache nos parieurs consultent votre impression

Si vous combinez la creme casino facilement, selectionnez les espaces accompagnes de vos logis Evolution , ! Pragmatic Play Direct. Il semble l’un des jeux dans votre part pouvez denicher votre casino un tantinet triomphateur que vous soyez asservissez la technique originel. Tout mon blackjack doit plaisir indemodable des casinos en ligne de qualite une fournissent. Une telle tournette est l’un amusement fictif lequel notre equipe vous propose relatives aux principaux casinos Acadiens. En ce qui concerne une majorite de salle de jeu en chemin grand, vous pouvez experimenter gratuite nos slots genre demo. La creme site en tenant casino du orbite nord-americain incombe d’une contour ainsi que de vos mondes de jeux.

.. Cet RTP moyen en casino s’etablit a 96,39%, un montant tres propice de chaque personne unique ludotheque. On rend au minimum mecanique a au-dessous, 110 jeu en compagnie de gueridone, 110 desserte en public ou differents extremum-jeu. Employe d’une licence Alc l eGaming (n�8048/JAZ), mon casino un tantinet tube vos statuts pour securite alles inclusif tout mon cryptage SSL et des formule RNG en tenant garder l’equite du jeu.

Discussion

Back To Top
Search