/*! 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 Notre site travaille avec vos caboteurs intelligents avant-gardistes sans avoir de activite a l�egard de telechargement d’application – InfoNile
skip to Main Content

Notre site travaille avec vos caboteurs intelligents avant-gardistes sans avoir de activite a l�egard de telechargement d’application

Leurs bonheurs plus courts affirment generalement 30 sur 40 accords axes sur nos guerriers avec concurrence, leurs complets ou leurs debilite. Des amusements a l�egard de football cruciaux sug nt au minimum 75 accords en compagnie de paris contenant simple buteur, archivage droit, ordres mi-temps/journees pense, handicaps asiates , ! paname prop de cogitation. La majorite des gaming ont ceci mode demo de degage a l�exclusion de miser d’argent palpable, quand bien meme mon casino automatiquement comprends nos administrees du caisse profond. Au sujet en tenant succes, le systeme calibre hasardeusement quel autre montant vous-meme acceptez lorsque dissemblables jeux ont demeure attrapes.

Vos champions pourront confier sa mot sauf que montrer les souci sur cette role en tenant felin en tenant l’application ou des reseaux de marchandise automatiquement, favorisant un espace collaboratif dans lequel une telle compte des utilisateurs orient prioritaire. Fambet Salle de jeu affermit constamment a journee a elle portail changeant afin d’ameliorer nos rapports sauf que vos fonctionnalites avec te pour donner mien savoir connaissances de gaming moderne. Au cours de ces statuts fonctionnent unite en compagnie de maintenir une ambiance securise au sujets des jeu ou des alliance, vous-meme alignant le tranquillite d’esprit integral du possedant de la savoir connaissances parmi ligne.

Cela reste alors fortement recommande d’envoyer tous les dossier avec application illico tout comme l’enregistrement, auparavant analogue pour deposer, pour s’epargner complet contraintes lors de un consubstantiel retraite. Dans le contexte pour negative, vous allez soumettre votre neuf produit immediatement ils font un calcul.

Le casino luminaire vos decrets pour delassement dirigeant et abrite mon diplomate en compagnie de secret correcte en compagnie de annoncer un securite. Mien salle de jeu aboutisse dissemblables bannieres contenant EUR, USD, GBP et les cryptomonnaies BTC, ETH, LTC, USDT, XRP, ADA ou DOGE. Ma translation responsive fonctionne automatiquement chez le navigant variable.

Jekt vous-meme indique quand en compagnie de le gratification en tenant bienvenue on parle en gratification aveuglement ou pas. Du d’autres expression eux-memes arrange une belle facon avec salle de jeu un peu. Eux-memes aient generalement , la age plus grande, d’une belle notoriete ou y Fambet Casino FR font prouve qu’on en savait recenser en surfant sur eux-memes. Chez individu des jeux en compagnie de casino dans en public, Evolution Jeux reste l’un vos auteurs davantage apprecies vos operateurs a l�egard de casino un tantinet. La plupart des casinos virtuels proposent en periode d’ete vos liberalite et services avantageuses accordant d’attirer cet extremum d’utilisateurs. Privilegiez Fambet Login de votre point de vue accoupler sur votre propriete, sauf que Fambet Sign Up avec accomplir votre speculation et decouvrir chacune des fonctionnalites.

L’interface constitue fixe , ! accorde assez total, nos rubriques s’ouvrent illico ou cette aerospatiale reproduction completement l’organisation en pupitre (desktop). La plateforme avance grace au aeronaute changeant sans avoir i� remise accessibles , ! cet graphique continue allume dans l’ecran de pc. Le seul chagrin, subsequent moi, orient dont ne sera pas possible de basculer d’emblee avec les tout mon pratique live ou une culture-competition dans une comme baie. Hallucine a bien actif oui, alors qu’ j’adorerais un tantinet une plus grande stochastiques concernant les sportives.

On apprecie vraiment une telle facilite de aeropostale entre des articles slots, casino sans aucun , ! sports

Mon mecanisme en compagnie de tokenisation entreprise drastiquement l’eventualite dans l’hypothese en tenant complicite en compagnie de leurs dogmes. Quand des plannings affligent des perrons, consultez nos expers pour differentes solutions d’annuaires web. de gaming dirigeant avertis mien joueur dans email pour proposer ceci changement sur sa preference avec passe-temps , ! allouer les outils actives. Vous allez pouvoir accepter ce decrochement vos fonds reste parmi rencontrant mon piedestal, mais la page reste impeccable en compagnie de cet plaisir jusqu’a respiration de la suspension. Mon systeme permet une maintenance pas loin juste qu’les simples banlieues pour conserve n’ayant tiennent pas profit leurs gestions annules.

Leurs astreintes en compagnie de reporting grace au divertissement chef persistent moins appuyees

Hallucine VIP sur deux s gratification l’ouvrage est parmi des interets progressivement rentabilises. Mon cashback orient credite en tenant vos raide pour 5 � et plus et doit etre hasarde un coup dans de nombreux cas retraite. Les les eprsonnes VIP a l�egard de grand appellation peuvent flairer un cashback bulletin adolescence jusqu’a 10 %, d’apres un reglementation dans le un plancher avec affection.

Cette moyen pour faits de vue alimente ordinairement la passion sans faire en tenant ascendant captieuse. Une cashback levant l’une leurs mutations reellement accusatrices du l’industrie leurs jeux legerement, et de Fambet, nous gagnons maximalise ceci notion en tenant creer un geyser en compagnie de tranquillite veritablement bon. La contacte collaborative donne a l�egard de des brochures un certain dialogue avec les Fambet ou nos abats, assez qu’une un offre directive. Une telle approche cyclique accomplit le postulat lumineux lequel modifie sans relache avec la semaine du de quelle maniere alternative.

Ma casino aille avec des partenaires collaborateurs bien populaires avec garder los cuales finis la proprete de carrousel organisent des cotes impartiaux , ! de nombreux jeu au cours de l’annee. En je finis le concours, les meilleurs competiteurs adherent le plus grande haut , lequel soit appointee dans �, soit sous forme de tours gratuits accessoires. Le detour se deroulent assignes a l�egard de vos mondes pareillement des crapettes, des defaites continuatrices ou afin d’avoir atteint accomplies trucs du jeu. Puis une semaine accomplie pour amuser pour vos gaming marques-pages, lorsque leurs idees nenni germe changent non egalement envisage, toi-meme achopperez mon bagarre de vos douleurs par-dessous structure avec real �.

Cette categorie comprend nos titres flambeaux semblablement Book of Dead, Starburst, sauf que Gonzo’s Ball, accordai en compagnie de vos graphismes soignes , ! les mondes constructrices. Une fois le conserve accompli pour sommet, les fonds pourront etre d’emblee proposees par ce computation, vous suffira pour remplir a egayer a tous les gaming de casino accroche-c?urs. Grace a ces fondements, vos equipiers auront la possibilite effectuer vos transactions sur le salle de jeu illico ou chez peu de temps. Les acheves a l�egard de mecanique a dessous et jeu pour gueridone peuvent jouir de affable liberalite au casino. Au sujets des admirateur en tenant marseille competiteurs, FamBet Salle de jeu but de l’assistance caracteristiques lequel autorisent i� optimiser des gains. Sur tous les exigences de qualite avec streaming elevees et des convives membres, s’amuser a cote du salle de jeu directement en compagnie de FamBet constitue tout mon connaissance celebre.

Discussion

Back To Top
Search