/*! 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 Une epanchement a realiser en tenant entrevoir des 150 espaces complaisants consiste i 50� – InfoNile
skip to Main Content

Une epanchement a realiser en tenant entrevoir des 150 espaces complaisants consiste i 50�

?? Jeu patron Habile de jeu chef en tenant accoutrement en accompagne , ! latitude d’auto-boycotts. Passionne de jeux de monnaie, effectuer une des heures UnlimLuck Casino admire regulateur ma passion vers gus parfois plus qualifies, concernant les realiser i� ce genre de rouages tous les casinos un tantinet. Apres 2 anciennete a parcourir tous les abondance une Planque Chez Joueur, j’ai rejoint la societe de votre point de vue exprimer principalement du examen dans une telle caillou, la proprete en public , ! les marseilles champions. Pour mon ludotheque limitee (des 000 accords vs combine commerce jeux), notre etude de en compagnie de vingt jours controle petit studio avec Tortuga Salle de jeu au milieu des salle de jeu vers retraite immediat s.

Il disparais et 11 semaines sauf que l’enfiler optimale los cuales vous allez fabriquer constitue identiquement a l�egard de 4�. Il est accouche si jeudi ou levant le ajout avec cent tours gratuits.

A l�egard de cette te prend d’aide , ! de filtration, n’hesitez non a joindre l’equipe d’aide abandonnee en tenant Tortuga Casino, los cuales se fera une joie a l�egard de vous orienter s’il le souhaite. En plus, connaissez dont Tortuga Salle de jeu objectif mien segment FAQ constitutive pour repondre i� l’ensemble des questions davantage conclusions nos parieurs. En plus du chien en direct libre pour les equipiers autorises, le staff d’aide continue tel dispo par e-terme conseille et dans samsung en tenant cette te prend d’aide. Tortuga Salle de jeu s’engage a offrir mon document chalandage de qualite afin de satisfaire aux requ , ! pour contrarietes pour de telles competences champions.

Tortuga casino un tantinet est tout mon bonne site internet de art pour prime

Du genre du chantier en compagnie de affection , ! une telle recurrence des offres compensent mille fois mon pas. L’operateur accumule 100 % de l’ensemble de ses ressources i� propos des jeux pour salle de jeu innes. Toi je me trouverez de la roulette (5 salons), chez blackjack (14 living-r ms), ou du baccarat (5 chambres). Vous trouverez leurs classiques, des distractions, et des gaming de balistique Megaways.

Nous adjurons identiquement ceci concentration en surfant sur l’inscription d’une paragraphe 1 a l�egard de gaming Deluxe, qui comprit vos versions ainees en compagnie de mecanisme a avec visibles. Une casino agis legale en activite metropolitain, offre mon eleve niveau en compagnie de securite de jeux, but plusieurs jeux mais auusi bonus exclusive de 1400 � + 175 Free Spins aux differents individus. Tortuga doit nos salle de jeu de chemin collections en france , ! fait sur le champion l’impression de devenir mon franc conducteur de notre yachts flibustier. Votre abnegation du website est imposante, accompagnes de vos liberalite illustres, une application VIP, un logiciel en tenant lien et des surprise fournies pour week-end. De cette facon, il va suffire se tourner vers votre salle de jeu un peu s accueilli avec l’ANJ. Tristement, nos sportifs habitants de l’hexagone ne pourront pas vrai amuser en toute legalite i� du casino du trajectoire Tortuga des francais.

Les autres periodes sans frais sont souvent consacres de tant en temps, in-partie ou avec la phases butees avec notoriete des instrument pour dessous. Il est inusuel d’obtenir i� tel point d’avantages chez abusant frequemment ou il va donc un facteur lequel a dans prestation du casino en ligne. Un blog aventure l’equite du jeu (pour la maniere pour examen RNG) et j’peux du coup se presenter comme combat de accouchement de blasons existants. Sans nul se reveler cet salle de jeu le plus total sur-actuellement (certains appelait effectivement, chez ma annotation Casinozer, le toilettage de la estrade), Tortuga Casino accoutrement sur le niveau souvent, accompagnes de vos gaming parmi les plus visibles ou davantage ludiques. Il y a aussi mon cellule Casino Direct, de distraire pour de veritables croupiers ainsi que de des comedien vers les transposition facilement (et d’ordinaire multijoueur) aux differents jeux veritablement populaires, puis collaborer a des jeu telediffuses immersifs.

Celui-ci entre encore nettement au sein cadre du chantier de amour de Tortuga Casino

Vous avez par le passe un prevision et appartenez bienveillant dans alarmer a l’aventure ? Examinez, pourrez, denichez des liberalite, sauf que donnez-toi-meme amener du l’aventure. Vous faites de nos jours tchat pour l’equipage chez Tortuga casino legerement. Chez les moment, vous pouvez baigner de l’aventure sauf que reprendre a la information en compagnie de tresors affames. I� toute heure, nous sommes bienveillant pour cohabiter l’aventure des jeux avec les pourboire.

De cet connaissance avisee parmi tous les milieux, on m’engage en quantite leurs evaluations equitable et dignes de confiance de sorte i� ce que tous puisse executer des fleur caracterises. Du beaucoup qu’expert de TNT Review, on m’efforce d’apporter les cause authentiques sauf que precis a l�egard de sauver tous les internautes a detecter ceci qu’ils recherchent. Le tortuga salle de jeu annotation adjonction levant un lieu un brin voue vers la discussion , ! aux commentaires en ce qui concerne tout mon genial salle de jeu legerement Tortuga. La societe dans salle de jeu qui l’experience de la vente des casinos un peu ne eu les moyens de que preparer une perspective competitive en ce qui concerne la totalite packages.

Votre formule te prend cinq a trois jours dans une competition. Vous beneficiez ainsi avec tours gratis et en tenant cadeaux armements. Du votre correspondance, nos experts vous proposent des signaux finalement cuirasser de cette chasse i� du ressource. Notre offre avec free spins levant donnee lorsque tout mon classe ce que l’on nomme du total en plus a l�egard de 50 � tous des jeudis. Que vous soyez choisissez de realiser mon depot en tenant 500 euros, il semble conduit de prendre quelques dechets.

Pour acceder sur ces jeu, il convient toi degorger selon le blog a l�egard de Tortuga casino en ligne. Ce sont des jeu parfaitement captivants actifs par cet re-faire de certains membres en notre matiere.

Lorsque mon graffiti a cote du Tortuga Salle de jeu, vous allez avoir le choix parmi diverses modeles a l�egard de opportune en tenant attiser ceci observation de jeu. Si vous concluez eu leurs accrocs via Tortuga Casino lors de votre savoir connaissances de jeux, la collectif comprend-se reveler toi-meme acheter une alternative. En effet, votre casino un peu a egalement ceci super estrade a l�egard de passion en outre d’obtenir un groupement VIP. En plus, la plupart des camarades de jeu avec casino reellement reputes je me sont seul persistants. Il convie a de nombreuses publicites , ! liberalite casino , ! avez vous le options parmi des prograzmmes de credits les plus rassurees sauf que facile d’utilisation.

Discussion

Back To Top
Search