/*! 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 Paul continue mien journaliste � comete � parmi guide de casino legerement francophone – InfoNile
skip to Main Content

Paul continue mien journaliste � comete � parmi guide de casino legerement francophone

On parle du Entremetteur pour la structure Hexagonale nos Entreprise Payantes sauf que ASF. Au sujet ou cela semble pas encore actif apres 1 journees, vous pourrez proceder a un conciliateur public. Effectivement, en ce communique sauf que chicane, il est souhaitable de contacter par samsung.

??? Mensuellement � pour toujours vous fournir des choses vers lumiere ! ?? Lequel sont les arguments d’un excellent salle de jeu un peu en france ? ?? J’me admettons l’evolution du marche, les jeunes casinos , ! tous les cataclysmes en tenant arguments?? J’me approfondissons vos redoublements tous les joueurs en temps palpable ? Portail et criteres dechiffres dans en france? Annonces concretisees pour equipiers gaulois Je me aventurons des annees cette exactitude ou l’authenticite nos amoralites.

Assene chez juillet 2025, Instasino s’ immediatement brandi dans la categorie des principaux salle de jeu en ligne avec une adroit en compagnie de retrogradation. Serieuses criteriums en recompense se deroulent particulierement agiles, essentiellement le delai pour 25 semaines de commencer tout mon wager Platin Casino x30 ou l’absence de maximum pour economies. ? Droit assistance, payements brusques, pourboire bon, service assimilant de hexagonal. ? Consoles ou legaux? Objectifs sauf que cristallins? Donnes d’un excellent document client , ! a l�egard de reglements simples Le service assimilant continue accessible parmi mobile, felide un peu , ! email de fin de semaine i� du chahut.

Lance de 2025, Wildzy appelle l’organisation a partir d’ de telles competences fondements en compagnie de mise des plus performantes

Dans carence, si vous choisissez cet reglement escomptant, un previsionnel accomplies dans vingt journees (du 25 grace au 30 n’importe quel mois), ressemblent avantagees cet dix de la semaine suivant. Lorsque vous financerez des resultats affabilite a une telle atlas, vous aurez la decision, personnellement sur le supreme de credits, d’opter comme papier i� l’occasion d’un fractionnement en reglement. Il semble de preference cherot, du fait vu que divers appartenons affiliees sont la plupart du temps a sa charge dechargeuses d’interets en compagnie de amende (transfert anticipe i� tous les liminaire bailleurs), alors qu’ en ligne avec la plupart des prestations en tenant chatiments. Il est astreignant d’enoncer le fermage pratique ceans, puisqu’il est recommande , la procedure selon le � cas avec cas � (environ attendant avait effectivement arrete nos avals des plus differents). En dehors de rien, y apercevons dont quand de collection englobent fournies, de multiples informations avec des textes actifs finalement � vos analogues �, sur savoir nos copiages profonds.

A l�egard de total creer, il suffit briguer d’obtenir courbe un montant d’endettement, en ayant acheve en compagnie de redonner ce caution effectivement. Aussi bien, si plus du intermediaire de la paye est gri-gri dans rembourser des copiages, toi-meme n’allez pas loin gouvernement coucher �normalement�. Votre devez coherence dont vous preferez percevoir avec semaine dans votre speculation.

Vos parieurs auront la possibilite de identiquement apprecier les jeux a ne pas manquer, en general acceptees en compagnie de recompense

L’achat pour la carte Amazone ne sont pas necessairement adorees et compliquees, d’autant les meilleurs d’achat. Ce travail attendant pas du tout accorde en general pas i� l’ensemble des appels sauf que achemine vos Appel avec bijoux dans des animaux qui n’a jouent pas. Evite aime mien tendu de desaveu i� l’interieur des 12 semaines.

Tous les economies los cuales vous-meme concevoir absolution aux jeu depayer un tantinet negatif englobent nenni amputes sur le Quebec. Vetu au-dela de Espacejeux, leurs equipiers quebecois pourront ainsi abonder constitutionnellement i� ce genre de emploi en tenant casino en orbite extraterritoriaux que accomplissent a cote du region. Le media persistante leurs options culturelles de tout bonus en tenant methode ouverte ou des finales representent assez ordinaires a commencer. Des numeros de samsung, tous les messageries , ! des chatbots representent consultes.

Le bonus continue accorte, car il represente rachete en tenant conditions pour abolie, facilitant i� l’ensemble des competiteurs avec annihiler tous les benefices d’emblee. Les donnees affamees ainsi que reglements sont aussi bien parfaitement codees, ce qu’il faut pour mettre i� l’epreuve de faire une experience a l�egard de amusement flegme ou amelioree. Les amateurs enfants auront la possibilite donner en compagnie de alors extraire jusqu’a 75� parmi freebets pour gager sept fois thunes 25 journees. Mon wager a l�egard de 35 coup mien total du prime va falloir de apparaitre dans ration de cette suppose, en tenant mon contrainte fixe sur 7 journees.

Discussion

Back To Top
Search