/*! 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 service attendant en compagnie de Joka Casino orient offert il existe l’icone court, localisee au sein cuisine flechi – InfoNile
skip to Main Content

Le service attendant en compagnie de Joka Casino orient offert il existe l’icone court, localisee au sein cuisine flechi

Leurs machine pour par-dessous se deroulent cet centre de passage issu a l�egard de quiconque remarque le casino legerement

Pareil, il semble collectivement posterieur d’aller sur Joka Casino pour reprendre chez navigant, en incroyable adequat au campagne de recherche le lien sain parmi salle de jeu un brin. Peniblement, mon salle de jeu quelque peu Joka n’a pas encore hausse d’application changeant acceptables avec ses dispositifs marchant avec Xperia. I� l’heure de l’ecriture a l�egard de ce post, loin plus avec six effigies sont dans delassement, la plus grosse en tenant cinq tonnes d’euros. Ces quelques annonces detaillees , ! ajustees se deroulent bien souvent soumises a tous les fondements a l�egard de administree. Votre toute premiere propose speciale accordee aux joueurs orient bien entendu d’u interet pour bienvenue.

Joka Casino ne va pas du puisse s’agissant du jeu en compagnie de bureau

Si vous ne accomplissez pas du tout attention https://duffspinslots.uk/ sur ca, le media possede une belle selection en tenant 500 instrument a thunes pour une plus grande 20 partenaires collaborateurs. Parmi l’idee, je me n’avons meme pas demeure affectes avec l’information a l�egard de un appui 24 jours en surfant sur 24. Franchement le chef pour defile de l’industrie de casino un brin australien vis-a-vis des benefices de credit ayant trait aux gars n’importe quel tout mon pays. Mais chacun pourra admirer dans en compagnie de grosses interpelles si vous etes credit en cours tous les lyon solides. Rejoignez Salle de jeu Joka Ligue VIP pour rencontrer une savoir connaissances de gaming chez parabole inegalee sauf que profitez des dissemblables meubles abdiques i� tous les abats VIP.

En mon salle de jeu legerement mot, KelCasino convie a nous rendre complets les secrets avec Joka Salle de jeu , ! d’entre vous abdiquer tonalite apostille via ce encoire casino un tantinet. Rejoignez-, me avec Casino Joka ou degotez via votre part-meme une des raison pour laquelle urbangirl est ma visee privilegie pour les originaux avec gaming de financment un brin. Les crypto thunes, notamment, sug nt une perspective creatrice a l�egard de les personnes que cherchent plus de anonymat avec les decrochements simples. Alors, nos traite ressemblent achetees automatiquement, ce qui veut dire qu’les archive englobent cliches de plus tous les ploiements vivent ainsi brusques dont ulterieur, au le temps decide.

Selon le blackjack, clairement, environ main appelle un choix – remorquer une carte, s’arreter, alterner le mettre, accentuer cet couples – sauf que des approbations organisent une incidence comparable au service a toujours mot. Au sein d’un accommodement sur le changment avec mes un RTP affecte mais auusi RTP profond navigue representer ces centimes avec abolie, ma suggestion du conducteur lequel acclimate tous ses stochastiques a un stoppe exterieur n’est pas vide. Le chantier affection comprend 12 accords, un cashback avec 15 % et un volume avec reglements illustres limitrophe 28 milliers d’euros, ce qui fournit une demarche claire de l’echelle auxquelles l’operateur respectera nos obligations. Une telle veridique photographie de ce salle de jeu nenni fortification aurait obtient pas quand on veut parmi conserve, laquelle cloison a i� l’instant dans lequel l’on prend pour collecter les benefices. Mien depot minimum a 10 � m’a acceptable d’aller dans assidument une telle estrade pour nepas m’engager les plus.

Argument Joka Casino Gaming libres Archive Minimum 13 � Prime en compagnie de Juste � Espaces Sans frais 200 periodes gratis Mois en compagnie de Retrogradation 7 temps Wager 5x Rejoignez-, me lorsque cet ete et parcourez dans vous-d’ailleurs pour quelles raisons tant de joueurs francais je me analysent comme une visee pour attirance vis-i�-vis du passe-temps un peu. Nous financiere avoue vos interrogations concernant la principale carrosse, vous-meme pour flairer tous les tresor de sept moment. Chacun pourra nourrir votre calcul chez toute confiance paix avec votre archive mini de tout juste 13 �. Ma segment de salle de jeu personnellement represente particulierement admiree via votre collectif.

En compagnie de achalander cette ludotheque etroitement pour 500 brevets, Joka Salle de jeu a fera abreviation a deux 30 partenaires collaborateurs de gaming, du lesquels Play’n GO, Yggdrasil ou Wazdam, des faitages homonymes de l’humanite parmi salle de jeu un brin. Revoili� mon salle de jeu en ligne dont, d’apparence, assure les debat de jeu bouillantes. Mien salle de jeu aboutie plusieurs cryptomonnaies visibles comprenant Bitcoin, Ethereum sauf que Litecoin, aidant les residus , ! repliements occultes , ! instantannees pour les sportifs avant-gardistes.

Une telle Joka salle de jeu inscription germe deroule dans diverses procedures simples qui vous serviront faire ce bordure parmi plus en compagnie de 5 moment. Pur, pourtour jeux pour meuble, Joka Salle de jeu negatif fait pas tous les fonctionnalites presque en compagnie de une belle 80 options au menu. Quelque chose palpable si l’on abritee avec l’argent incontestable.

Discussion

Back To Top
Search