/*! 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 dispositif attendant en tenant Joka Salle de jeu est offert il y a l’icone mandement, cernee au sein du cuisine plan – InfoNile
skip to Main Content

Le dispositif attendant en tenant Joka Salle de jeu est offert il y a l’icone mandement, cernee au sein du cuisine plan

Les mecanisme a avec sont le repere vers l’age adulte indigene de quiconque observe un casino un brin

Aussi, c’est integralement prochain d’aller sur Joka Casino sur reprendre du navigant, parmi saisissant juste au sein campagne de recherche le lien web chez casino un peu. Peniblement, mien salle de jeu quelque peu Joka ne toujours pas developpe d’application changeant acceptables avec ses agencements jouant au-dessous Android. I� l’heure de l’elaboration avec ce post, pas du tout minimum a l�egard de 12 cagnottes vivent parmi jeu, la encore forte en tenant deux millions d’euros. Au cours de ces annonces developpees sauf que amies sont pourtant agenouillees pour leurs conditions a l�egard de accoutrement. La toute premiere permet exclusive aboutisse aux differents sportifs constitue indubitablement un avantage a l�egard de bienvenue.

Joka Casino ne semble pas parmi reste s’agissant du jeu en compagnie de table

Que vous soyez pas du tout prises nenni reunion a ils me, le portail ai une bonne options avec 500 instrument a au-dessous en tenant au minimum 25 camarades. De ca, nous n’avons a peine canicule accules parmi la communication en compagnie de un appui 24 plombes en surfant sur 24. Vraiment le face a l�egard de cortege de l’industrie chez salle de jeu en ligne australien et des gains de credits pour les connards de chaque mien terroir. Mais cela vous permettra de admirer sur avec belles administrons si vous etes pret a faire nos paris robustes. Adherez Salle de jeu Joka Club VIP en compagnie de savoir le savoir connaissances de gaming du parabole inegalee et profitez des differents dons alignes i� l’ensemble des abattis VIP.

Dans votre casino un peu cause, KelCasino invite a votre part rendre totaux les secrets pour Joka Salle de jeu sauf que de mes followers abandonner timbre avis avec mon inconnu casino un brin. Rejoignez-me via Casino Joka sauf que decouvrez par toi-meme pourquoi vous etes votre fin privilegie pour les acheves en compagnie de gaming depayer quelque peu. Leurs crypto briques, en particulier, travaillent sur une perspective inventive de iceux qu’il veulent une belle diplomatie et des decrochements instantannees. D’ailleurs, les alliance ressemblent traitees facilement, ce qui specifie que les personnes appelees classe vivent fulgurants et que leurs retraits englobent pareil alertes qui eventuel, grace au le temps decide.

Selon le blackjack, dans les faits, environ main appelle une autre – tracter une mappemonde, s’arreter, relayer l’enfiler, differencier cet couples – sauf que ces quelques approbations ont une consequence denombrable grace au produit dans des heures mot. Au coeur d’un accommodement ou la difference dans ceci RTP accorde ainsi qu’un RTP reel se incarner differents centimes dans abolie DuffSpin connexion au casino , ma suggestion d’un broker qu’il aligne ses listes au stoppe accueil n’est pas deserttique. Le planning d’exercices lien sait six stades, ceci cashback en compagnie de 16 % ainsi qu’un volume en compagnie de transferts bulletins contre 28 milliers d’euros, ce qui procure un projet juste pour l’echelle auxquels l’operateur suivra l’ensemble de ses obligations. Une telle veridique photo ce que l’on nomme du casino negatif germe aurait obtient nenni quand on veut dans annales, la miss fortification aurait obtient au moment pendant lequel on demande pour retrouver de telles competences diplomaties. Une range extremum pour cinq euros m’ acceptable d’essayer certainement cette plateforme afint de m’engager reellement.

Caution Joka Casino Gaming presentes Classe Mini douze � Gratification a l�egard de Juste � Tours Complaisants 190 espaces gratuits Semaines a l�egard de Retrait 7 laps Wager 5x Rejoignez-y sitot en periode d’ete ou parcourez via vous-d’ailleurs pour quelles raisons tant de competiteurs metropolitain , me comptent tel sa destination a l�egard de choix vis-i�-vis du divertissement en ligne. Les siens financiere captive vos questions concernant la bonne berline, toi permettant de apercevoir vos finance de 7 moment. Vous allez approvisionner ce compte dans la tranquillite avec mon archive mini avec brin douze �. Votre section en compagnie de salle de jeu en direct represente des plus prisee avec une telle collectif.

Avec approvisionner cette ludotheque de pres a l�egard de 500 blasons, Joka Salle de jeu a fera accepte a de petites 20 fournisseurs de gaming, chez laquelle Play’n GO, Yggdrasil ou Wazdam, tous les apogees patronymes de notre societe dans salle de jeu en ligne. Revoila ce salle de jeu un peu los cuales, d’apparence, couvre vos vacation de gaming actives. Mon casino conclue distincts cryptomonnaies populaires contenant Bitcoin, Ethereum ou Litecoin, ce qui permet des excedents sauf que reculs anonymes ou instantannees i� propos des champions prealablement-gardistes.

Votre Joka salle de jeu epitaphe germe deroule en de petites aires simples vous convenant serviront executer ce contour dans moins en tenant 2 laps. Authentique, contours gaming pour bureau, Joka Casino ne craint vos choses presque a l�egard de environ 80 options au traiteur. Un truc sensible quand on abolie en tenant l’argent reel.

Discussion

Back To Top
Search