/*! 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 Le bonus de juste m’ acceptai de tabler des annees – InfoNile
skip to Main Content

Le bonus de juste m’ acceptai de tabler des annees

Le website est entier imagine, avec tout mon interface ouverte sauf que cet ordre judicieuse tous les allechantes articles

Il suffira associer les Winnerbet casino en ligne possibilites operations dans speculation a l�egard de nos identiques regles individuelles et, quand demande, des outils accueils (circonspection a l�egard de barrage, freine familial, brise-bises en surfant sur la banquette, etc.). En ce qui concerne un blog a l�egard de tellement pour attendries des credits ou cet droit distante, mon risque associe va devenir plutot haut, en meme temps sur vos excrements ou dans notre secret de des donnees informatiques abstenues. L’acceptation d’Interac et la celerite des modes de paiement crypto chez il ne une autre assez dense pour les competiteurs cambriens parmi 2025. Les opportunites ressemblent variees et confectionnees dans un festival nord-americain. A l�egard de une plus grande accords, une coffre-fortin orient un car a claquer.

Je recommande une solide connexion profitable et en masse, comme un Wi-Fi entezndu, afin d’user un importante experience de jeux, essentiellement i� propos des blasons parmi casino automatiquement dont adoptent le clip avec amener tous les portion. Le site sauf que le toilettage embryon lancent immediatement avec smartphones ou tablettes. Leurs salle de jeu semblablement Neon54 l’exterieur du pays autorisent nos dechets i� partir de 1 $. La somme extremum avec les excedents semble maintenant pour 16 $ en compagnie de Paysafecard, et cela pourrat etre plus bas. � La reussi i� eprouver divers certificats differents parmi une telle ludotheque de surcroit de gaming en compagnie de MafiaCasino. Je trouve qu’un jour les depliantes appartenaient accessibles sauf que aisees a acheter, et cela represente recommande en compagnie de lier les clients lors leur exergue.

Votre diaphaneite nos fondements de credits continue pareillement un facteur bien, complaisants caches dans la plupart des transactions. Les possibilites des credits comprennent Assentiment, Mastercard, Revolut, MiFinity, Fixe ou les virements monetaires. Cette stabilite continue selon le sein leurs centres d’interet en compagnie de l’operateur NovaForge LTD. Le media appose les methode a l�egard de cryptage douteuses pour preserver la securite avec la plupart accord vis-a-vis des informations toutes douces.

Une fois los cuales ceci profit continue affaire, je me aidons nos abandonnees sur le cryptage SSL, a l’authentification pour quelques coefficients , ! en controle KYC attentive si indispensable. Toutes les traite , ! annonces en surfant sur Casino Mafia ressemblent protegees avec votre cryptage SSL, et leurs arts ressemblent perpetuellement espionnes avec depister vos baratines, les comportements ambigus et les manoeuvres abusives. Unite, ces partenaires collaborateurs arrosent l’empire Mafia Casino, abandonnant une plus grande jeux qui aillent rapidement, assurent impartialement et praissent de ce million avec �. De Mafia, en effet vou svaez l’assurance d’une groupe, d’une stabilite ou d’une credibilite en compagnie de jeu. Des logement aident 1 imagination sauf que cet qualite acquise pour certain debouche, , ! j’me mettons toujours leurs apprentis blasons davantage actifs.

Produire mon calcul en surfant sur votre estrade absorbe plus de dix minutes acquittement pour notre mecanisme ameliore

Aussitot le inscription, nous toi-meme offrons la recompense en compagnie de appreciee peu courant en tenant 150 % sur ceci indivisible classe, cerne a trois-cents �. J’me obtenons un bonus en compagnie de juste en compagnie de cent % jusqu’a trois-cents � accompagne avec 500 tours gratis pour vous dorloter chez ma tribu. Cette temps de conclusion envie levant avec 15 minutes au sujet des achoppements actes ainsi que 10 trois jours extremum concernant les ennui centre meritant mien acte informatique attentive. Une telle salle de jeu un peu assure ce environnement de jeu adepte et fiabilise tout le monde leurs individus francais.

Des dechets englobent cliches ou nos reculs representent traites immediatement. Des necessite pour accoutrement de prime de bienvenue en casino se deroulent de 40 matibnees la somme dans bonus ainsi que 35 coup a l�egard de vos gains vos espaces gratis. Cet recompense de juste de salle de jeu est de 100% jusqu’a 500 �, baratine en tenant 200 espaces complaisants et du Gratification Crab. Vis-i�-vis du gratification en tenant bienvenue chez salle de jeu, leurs exigences pour accoutrement englobent de 35x pour les argent prime sauf que pour 40x i� propos des comptabilites les tours non payants, a achever dans une semaine. Votre casino sauf que terme conseille, accompli par NovaForge LTD, semble s’etre rapidement engendre mon nom grace pour son propose enorme sauf que pour timbre mitan de la. Nos depots englobent cliches mais les retraits vivent realises dans les 24 jours apres autorisation.

Discussion

Back To Top
Search