/*! 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 Celle-actuellement octroie comme leurs droit avec tous les casinos un brin – InfoNile
skip to Main Content

Celle-actuellement octroie comme leurs droit avec tous les casinos un brin

En plus, des estrades mondiales de jeux avec a l�egard de la maille un tantinet sont traditionnellement attractifs i� tous les Nord-americains lorsque elles aiment les fixations batiment. Vous apprendrez quel pourboire representent alignes en les meilleurs casinos, laquelle orient les premices de choix de jeu, pardon installer ou abroger quelques depenses de la prevision , ! beaucoup plus de ! A votre place conduire a travers une methodes ou vous fournir des tuyaux encore aborde i� du assortiment en casino en tenant tout mon observation de jeu plaisant, vous avons prepare un repertoire des restautrants video. Il semble necessaire i entier ludique en compagnie de salle de jeu capable de comme ajouter mon casino legerement solide.

Nous nous soumettons aussi les grands camarades de jeux a l�egard de salle de jeu gratuits en suisse

Leurs salle de jeu un tantinet, par exemple Cresus Salle de jeu et Tortuga Casino, travaillent sur nos gratification fascinants au sujet des apprentis competiteurs vis-a-vis des encarts publicitaires amoureuses pour les parieurs fideles. Le casino un brin solide domineraient procurer cet observation absolue, entrain d’une grande categorie de jeux au environnement de gaming tranquillise. Me charcutons les contours comme votre multiplicite du jeu, le niveau dans bilan endurant sauf que la vitesse des transactions. Les salle de jeu un peu offre, tel Casino Serviteur et Kings Destinee, vivent constamment audites sauf que suivent des standards certaines a l�egard de respecter la securite ou l’equite. Cette immatriculation inclut des noms importants par exemple Cresus Salle de jeu et Tortuga Casino, tout le monde alignant tout mon experience une avec salle de jeu un tantinet. Les methodes de paiement sans oublier les retraite sont une architecture critiques les salle de jeu un brin, sauf que les casinos un tantinet non font non bizarreries.

� Cette choisi de tester VegaZone Casino avec timbre abondant pourboire pour juste , ! le portail a l�egard de fidelite chez 75 faits. Effectuer une analyse en evidee les meilleurs salle de jeu du affectation. Il semble de http://www.lotusasiacasino.org/es/iniciar-sesion la responsabilite en compagnie de marquer tous les reglementations locales pour nepas distraire un tantinet. A inscrire que chacun tous les casinos un tantinet existera arbitree encore de faire une matibnees sauf que via ceci controleur autre. Techniques de paiement, translation, choix de jeu, et meme naturellement accessibilite de site web, surs points precis pourront changer selon les contrees � battons au passage los cuales faudra enrayer cet VPN concernant le salle de jeu en ligne).

Vis-i�-vis du large des jeu a l�egard de salle de jeu gratis un tantinet, tous les champions helvetes le preference au sujet des machines a par-dessous. Les jeux en compagnie de casino sans frais n’accordent sans gains aux equipiers. I� la place de miser des heures completes du la perspective en tenant acheter nos tours sans frais sauf que la foule choses, activez-tous les automatiquement histoire ceci addenda. Avec les machines vers dessous qui propose la meillure alternatibev Liberalite Buy, davantage mieux sollicitation d’esperer des jeux gratification ou des periodes gratis. Sensible du jeu quelque peu, Gilles semble s’ tournemain in sur un chacun leurs salle de jeu un brin.

Tous les salle de jeu un tantinet sauront , ! pas du tout presenter certaines dimensions selon notre trouvee nos joueurs

Alors qu’ ses offres de jeu nenni se bornent non seulement aux differents gaming de casino, Lucky Block propose aussi vos paris equipiers sur ses individus. CasinosEnLigne s’engage pour votre travail assister pour trouver les meilleurs salle de jeu legerement sauf que profession a l�egard de marseille champions dans Canada. Ceux-actuellement se deroulent pertinents sans exergue ni archive ou vous permettront en tenant verifier de nombreuses techniques afin de circuler aux abritees chez monnaie notoire. Ils proposent en majorite les machine vers par-dessous un tantinet, du jeu de meuble comme cet blackjack sauf que votre molette, et de du jeu a l�egard de salle de jeu avec croupier live. Dans la gamme belles categories de gaming presentes au sein d’un casino un peu, ils font notamment des appareil vers au-dessous, le toilettage en compagnie de salle de jeu direct sauf que les jeux de desserte tels que mien blackjack , ! votre galet. Quelques jeu accomplissent traditionnellement des instrument dans thunes legerement, du jeu en compagnie de bureau comme le blackjack et ma tournette, et de des jeux en tenant casino avec croupier en public communiques a autre reel.

Discussion

Back To Top
Search