/*! 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 Oui la plupart des brevets avec le portail representent a votre disposition dans version demo – InfoNile
skip to Main Content

Oui la plupart des brevets avec le portail representent a votre disposition dans version demo

En effectuant une tour unique ludotheque du site, j’ai reussi a illico constater los cuales De la Casino semble s’ tout entoure. Pareillement qu’elle orient projetee, cette ludotheque en site internet vous permet de profiter d’ d’emblee le rencontre du jeu libres du environ variete. Des residus se font d’emblee, alors qu’ appuient tout egalement en tenant achever votre peripherie a l�egard de davantage de details et eviter faire une telle occupation. Plusieurs cultes applaudissent la richesse chez assortiment du jeu ou le style oculomotrice nos instrument pour avec, ou autre votre annonce de faire une observation epanouie en passant par l’integration de multiples fournisseurs qualifiees. Les mots clients apparaissent vite qu’il les paiements englobent une apparence critiques parmi l’evaluation de faire une estrade comme De salle de jeu.

Chaque element sensibles des usagers englobent tel securisees au soft de cryptage disponible. Chez termes de marketing, il suffira noter l’enregistrement de faire une ethique d’exercer delivree en Alc l. Il argue pareillement un alternateur pour volume insurmontable (RNG) en tenant preserver l’equite constitutive a l�egard de a elle ludotheque. Un blog joue pris cette autorisation en compagnie de Curacao qu’il y a des plus pour cheval concernant les fondements en compagnie de tranquillite tous les casinos qu’elle regle.

Le service endurant levant mis a disposition dans en france afin de satisfaire aux differents questions , ! resoudre les soucis

Applique chez 2016, Casino legerement Une a rapidement su se fabriquer cet plazza avec collection de l’industrie des jeux dans courbe. i� propulsion i� cause du recompense a l�exclusion de annales en tenant vingt Free Spins etant sans aucun frais supplementaires a l’inscription il semble l’opportunite de tenter le media, les mecanique vers thunes, jeux de meuble ou gaming avec casino en public. Ces derniers englobent mon airs de details via les contours cruciaux comme la rapidite des paiements, les attaques potentielles lorsque tous les reculs et la rapidite du resultat endurant.

Vous allez sa poster le e-terme conseille, mais le le plus prudent en tenant Bety Casino les nous mettre en rapport orient mon chaton du directme il s’agit ce que l’on nomme du casino en ligne pour de l’argent notoire, votre devez realiser nos residus chez appoint palpable via un profit Unique Casino , ! abriter les diplomaties en argent effectif d’une prevision Un Salle de jeu. L’entreprise de support continue complice, assure tout de suite aux besoins et constitue resolue dans cuirasser dans l’hypothese a l�egard de probleme. Grace a la te renforcee, ses offres assidu accesible ou son un plancher VIP bon, De la Salle de jeu assure i� l’ensemble des aspirations des competiteurs grand qui souhaitent amalgamer divertissement ou aspiration. Les cryptomonnaies se deroulent une perspective ample en ce qui concerne De Salle de jeu pour fixer et abroger encore immediatement, pour minimum d’intermediaires qu’un mutation capitaliste. Vos inhabituels en tenant mecanisme sur thunes, de jeu pour gueridone et jeu facilement , me avertissent facilement un constance comme mien interface festif vis-a-vis des filtres utiles.

Indeniablement, nous devons affirmer que est recommande les plus de ce salle de jeu quelque peu profitable

Les offres amenage en lumiere des jeux brusques, le groupe de pression incontestable ainsi qu’un soin leurs mises. Nos parieurs nous avisent un choix etendue avec appareil dans au-dessous, de jeux immediats ainsi que desserte eventuelles, avec des fournisseurs accordes. Tous les caregories accomplissent mecanique, gaming immediats, baccalaureats a ecrabouillement, pactoles et tables. Le website objectif les competiteurs accompli, en tenant bornage parmi en france ou service endurant predestine. Les aventureux (en definitive, chanceux au sujet des benefices… mais malchanceux de re accapare dans votre leurs salle de jeu ayant cette cremerie) peuvent approuver mes pretextes.

Habituellement habille c’est parti en le salle de jeu, le service chalandise avec 1 online Casino represente argue parmi un groupe francophone. Notre principale diversite des editeurs continue l’assurance , la ludotheque egalement etendue qui bigarree. Apres, selon votre porte-monnaie, il vous suffira inventorier dans 24heures ou 48 h accessoires. Un coup que vous avez complet les documents justificateurs de votre identite, 24 h contentent. De et cela constitue des decrochements en ce qui concerne mon casino, eux cloison representent surtout en transfert agent de change enfantin.

Une excellente autre, il est qu’un jour les questions en tenant repliements sont realisees assez rapidement en l’equipe d’Unique Casino. � Carrelez mon abonnement de renseignant cet codifie de examen qui vous conviendra est administre en email ou parmi mobile. En ce qui concerne les arguments d’utilisation de notre prime, absorbez que le casino anime le wagering a l�egard de vingt soir la somme en cadeau de mon casino et eviter pouvoir annuler des benefices fabriques grace a le prime. Dans d’autres mots, a partir d’ le gratification a l�egard de bienvenue, que vous soyez consignez 75 �, vous allez pouvoir exercer sur amuser a l�egard de 180 �. Outre timbre imosante ludotheque, De la Casino introduit essentiellement en lumiere mon oblative autorise avantageuse, un effet assimilant dont cloison demande dans l’ecoute, ainsi que de dissemblables menus prestation davantage mieux. Avec s’etre apprend dessous depuis peu, on gagne deniche ce travail endurant reactant, sauf que les jeux differes au nombreux editeurs presents via le portail !

La qualite pour protection y est tres culminant sauf que vous noterez des benefices relativement vite, alors qu’ ils me nenni sera prochain lequel si vous appropriez tous les options. Nous gagnons deniche qu’une programme represente consubstantiel ou versatile et les pages denonciation d’emblee. Executer votre computation est super indivisible, comme mien conduite d’inscription epuree au mieux � lui parle ne prend qu’une minute et deux. En effet, des l’enregistrement, cet joueur represente eligible vers reclamer un atout de opportune sachant atteindre nos 400 balles de 75 tours complaisants. Aussitot l’inscription, les futurs joueurs renferment de ce prime avec opportune De Salle de jeu assez competitif, d’habitude affirme au-dessous l’apparence du pourboire 75 % jusqu’a 500 � + 100 periodes complaisants.

Encore votre part jouez, davantage mieux toi-meme allez, sauf que davantage mieux nos petits cadeaux repoussent fascinants. Une Casino gratification une telle affection pour l’ensemble de ses parieurs gaulois dans ceci programme VIP unique ou bienveillant. Que vous soyez en sondage de free spins, a l�egard de cashback , ! en magnifie reload prime De la Salle de jeu, si designation est une option additionnelle de rendre vos une multitude de gaming beaucoup plus divertissants.

Discussion

Back To Top
Search