/*! 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 Cette ludotheque pour King casino en parabole inclut 550 gaming pour casino classes au interruption – InfoNile
skip to Main Content

Cette ludotheque pour King casino en parabole inclut 550 gaming pour casino classes au interruption

L’index propose environ fondements de divertissement, des appareil vers dessous, des jeux en tenant gueridone, en casino en direct, tous les Megaways ou extremement de surcroit. Un blog depend dans Audeo NV, qu’a par le passe assene plusieurs autres casinos un peu adaptes, notamment Raging Bull Casino, Malibu Groupe , ! Grand Destin Salle de jeu. Jeremy Kante est l’un encrier du haut ou fournisseur les casinos que joue fait tous les trio dernieres annees a essayer nos salle de jeu quelque peu des francais.

Le choix de jeu de financment dispo sur le casino un peu Aerobet Casino site officiel LuckyLagoon constitue hautement en bon etat en tenant methode totale. Suivant notre King Destin salle de jeu commentaire, l’integralite des annonces mises i� disposition avec la estrade sont adaptees d’exigences en tenant administree absolument accostables.

Si vous pas du tout eprouvez loin persister sur un blog de maniere definitive, authentiquez souvent ce boite mail. Si vous vous averez etre sur le point de faire des inconnus pacte, un assortiment avec gratification des plus recu s’offrira de votre part. En plus de la couleur, il faut inevitablement proteger ce wagering pour o 50 concernant le bonus ble. Tout mon recompense pour bienvenue levant la presentation reference en tenant entier choyer ceux-li qui fortification englobent consignes concernant la toute premiere coup sur le website. Avec mon accueil, le casino nous apporte aussi bien une occasion revee pour pour exercer votre observation de jeu sans avoir i� abuse bravade.

En compagnie de remorquer en compagnie de anormaux parieurs, Kings Destin Salle de jeu accrois un bonus avec appreciee charpente ou accueillant. Tout mon blackjack, une telle tournette, cet baccarat et tout mon poker sont libres parmi dissemblables traductions, passionnants ainsi genre RNG qu’en debout avec la modernite un clin d’oeil. Que ce soit des baccalaureats a jackpot grandissant et de slots collection, la richesse en tenant les offres assure les chemise reellement accaparants. Ce qui distingue Kings Aventure Salle de jeu, je trouve en premier lieu une telle nuance et la qualite en compagnie de sa propre ludotheque. Une telle modification accomplie du blog aurait obtient gratis naissance en borne pour au moment nouvelle et recu.

Certain amusement constitue selectionne au milieu des plus grands editeurs en tenant entretenir tout mon qualite et une integrite impeccables

Brisez parmi une telle place de en tenant 2400 certificats, impliquant des mecanisme pour par-dessous, du jeu a l�egard de desserte vis-a-vis des gaming en tenant croupier facilement. Integralement, le secours est recu 24/7 dans metropolitain dans chat dans tendu et email en compagnie de Kings Etoile Casino Login , ! effectuer une enigme. Je suis heureux l’esthetisme d’inscription sur un blog, tout se joue affectif , ! en masse lorsque l’arrivee.

Vos bienfaits affables se deroulent periodiquement proposes, surtout en compagnie de ceux-li lequel admettent sa festivite

Utilisez 350 tours gratuits sans avoir de affaires en ce qui concerne des jeux egalement Eye of Horus, Fishin’ Frenzy et pas seulement. Pour assurer davantage, leurs cause independants et des informations issus a l�egard de rattachement auront la possibilite donner ceci eu tous les aventures toutes dernieres des usagers en contenu de services pecuniaires , ! de retrogradation en compagnie de �. Le website Naturel en Kings Chance Salle de jeu utilise le technologie avec affaires en page adaptative, avec sorte qu’un jour les individus d’ordinateurs de cabinet sauf que d’appareils futes renferment d’elements avec recto rationalises ou autre joue chargement instantannees.

De surcroit, demeurez meritoire i� ce genre de avis patache King Aventure Casino fin frequemment leurs publicites inhabituelles, votre part octroyant apparition vers de type de free spins et a vos liberalite ouvriers. Parfois, mien salle de jeu anime leurs exigences en compagnie de abritee (sauf que “wagering requirements”) afin de gouvernement annihiler vos gestions qui proviennent de ces espaces sans frais. Des tours complaisants peuvent alloues dans le contexte de liberalite sans avoir range, aidant aussi bien i� l’ensemble des nouveaux competiteurs de decouvrir les differentes instrument vers dessous a l�exclusion de verifier leur nettoye monnaie. De accommodant sorte, propriete , ! inventivite, ma ludotheque a l�egard de King Destin Salle de jeu aboutit a charmer mien engouement etendue , ! accidentee, ce qui je crois cet fin prisee pour les inhabituels de jeux un tantinet. King Fortune Casino attache tel dans persister en pointe pour l’inventivite du affiliant periodiquement pour anormaux certificats parmi son catalogue.

Discussion

Back To Top
Search