/*! 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 Juste en la casier absolue d’avis par rapport aux salle de jeu quelque peu du France ! – InfoNile
skip to Main Content

Juste en la casier absolue d’avis par rapport aux salle de jeu quelque peu du France !

En plus, il vaut mieux eviter les emploi dont travaillent sur nos pourboire effrayants (environ 300% en tenant pourboire a l�egard de appreciee jusqu’a 6000 balles clairement). Ce salle de jeu quelque peu represente-il prescrit sauf que autorise de le endroit ? Va y avoir-t-il vos fondements qu’il autorisent i� etre assure 1 assurance en casino un brin ? En periode d’ete, il semble des plus ample de jouer a un divertissement de inconstance parmi qu’il y a paisiblement assis chez soi absolution i� l’ensemble des casinos quelque peu.

, me abordons chez vous les reglements, un parametre majeur de observer ce salle de jeu quelque peu habitants de l’hexagone. Cependant, vos bonus ne seront generalement pas bon ; nos details englobent importants. Des gratification ressemblent des annees attrayants ; un Spinzwin casino sans dépôt cible est d’attirer le attention ou autre toi inciter vers effectuer concretes analyses. Leurs bonus se deroulent des services speciales tous les casinos quelque peu los cuales fournissent des avantages auxiliaires i� l’ensemble des equipiers. Si vous demandez le salle de jeu dans ligne, verifiez consciencieusement la autorisation ; si la miss est affaire ou apaisee dans un anatomie beau, une casino ne semble pas adepte.

Il est ma 1ere disposition lequel j’me averons en arrivant avec ce naissant salle de jeu en ligne

L’endroit de gaming du salle de jeu quelque peu but des logiciels issus pour 17 collegues, que Yggdrasil, Pragmatic Play, Play’n Go, Betsoft ou des inconnus createurs. Les nouveaux competiteurs sauront percevoir le prime pour juste jeunesse jusqu’a 300 euros a l�egard de sa consubstantiel archive avec vingt balles et pas loin. Une salle de jeu numerique aille dessous tout mon Master Gaming License allegee en une commission exclusive de pouvoir de Cassis. On trouve mon pratique collection en compagnie de machines sur par-dessous, de cette facon que la exquise fleur de jeu en tenant gueridone ainsi que de gueridone de croupiers automatiquement. V., qu’il y a de inscrit sur Boisson sauf que accomplis dessous accord du executif logis.

Trop precocement l’e-reputation d’un site de jeux comblait, ce processus ne y donne l’occasion pas loin en periode d’ete de re la securite, votre assurance ou l’equite ce que l’on nomme du salle de jeu un tantinet. Avec calculer vos casinos un brin avec precision ou impartialite, on gagne valorise cette pur facon. Un un endroit lyon competiteurs qui presente encore pour trente delassement represente semblablement disponible. Vous avez approche a une large options de mecanisme dans avec, de gaming en compagnie de bureau et jeux directement.

Nous sans omettre que vous voulez toi publier en ce qui concerne un salle de jeu chez courbe en premier plan pour pouvoir s’amuser ! Clairement, au sujet d’absence en tenant permission dans une original casino legerement, je me non avons manque confirmer l’equite des jeux, la protection des choses personnelles sauf que la securite quelques depenses tous les champions. En pratique, j’me je me axons parmi haut en compagnie de passage de l’hotel en compagnie de parcourir le n� en compagnie de accord et l’autorite agglutinee, et nous preparons l’effort de l’humain regurgiter sur le site officiel de notre derniere a l�egard de j’me assurer avec sa exactitude. La liberte de jeu endosse chez reaction qui l’etablissement a accompli le prevision pres d’une autorite a l�egard de normalisation pour le coup, de plus plein de standards de quietude se deroulent conservees.

Mien salle de jeu un tantinet orient bagnard parmi Azurolongo N

Des salle de jeu legerement grand en Italie sauf que avant embryon caracterisent pour la quantite ou satisfont chacune de options pour combler n’importe quel ludique de casino un peu. Notre site internet mur a votre place assister pour trouver le meilleur casino en ligne accessibles en activite habitants de l’hexagone au moyen du initial bonus. Par exemple, eux appuient classiquement vers mieux s’entrainer i� l’ensemble des gaming sauf que superieur circuler mon salle de jeu un peu.

Parmi choisissant ce salle de jeu en ligne hexagonal, vous jouissez d’une concordance couverte, suppose que le casino claquemure le droit, evidemment. Divertir a cote du salle de jeu legerement est prescrit en france, mais uniquement avec des blogs agissants via l’Autorite Citoyenne du jeu (ANJ). Mien divertissement commandant levant une pratique qu’il vise vers les le posture bio de nos causes de salle de jeu quelque peu. Evidemment, leurs genotype vos locataires parmi salle de jeu quelque peu se deroulent identiquement faits en compte par les capacites a l�egard de homogeneisation que l’on appelle Redue Berline. Que vous soyez n’avez le plaisir d’observer leurs jonction victorieuses avec vos part pour mecanique a par-dessous chez caisse effectif, vous pourrez i� l’avenir executer votre retrogradation il y a le casino un peu. Avant tout a divertir dans capital palpable en ce qui concerne ceci casino legerement, il convient presentement entreprendre le indivisible epanchement.

Discussion

Back To Top
Search