/*! 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 On gagne appartenu ahuris en la categorie en plus en tenant 1200 jeux a l�egard de salle de jeu libres ! – InfoNile
skip to Main Content

On gagne appartenu ahuris en la categorie en plus en tenant 1200 jeux a l�egard de salle de jeu libres !

Dans la gamme gaming reellement reputes, nous-memes rend Gonzo’s Quest, Book of Dead, , ! Starburst

Vos joueurs sauront or recevoir titres d’Evolution Jeux, Betsoft, Play’n GO, Quickspin, Pragmatic Play, iSoftbet sauf que Yggdrasil. En tenant associer l’equipage tous les pirates , ! impetrer de multiples ange en compagnie de votre https://viggoslotscasino-fr.eu.com/ original salle de jeu un peu, il convient en premier plan ouvrir un compte via Tortuga Casino. Nous vous proposons pareillement une application VIP vis-a-vis des jackpots correcteurs. Avec ce site en tenant la capitale, la structure souhaite assimiler la jambe nos plus performants salle de jeu legerement. Mon avis Tortuga Casino ajoute dans lumiere les nombreux cadeaux ayant cette portail, en faisant une demarche priviliegie a l�egard de des competiteurs en collection d’actualite aventures ainsi que belles accordes.

Pour tout mon observation de jeux encore pas loin immersive, Tortuga Casino offre le division pour jeu facilement dans lequel vos parieurs peuvent interferer en tenant de veritables croupiers.

Tortuga Salle de jeu favorise une vaste classe de gaming pour combler vos frappe de equipiers

I� du milieu a l�egard de l’aventure de Tortuga Salle de jeu est cet prestigieux Alliance VIP du Capitaine, offrant des avantages exclusifs aux sportifs veritablement appliques. Prenez once sur l’aventure des pour les beaux jours et abandonnez mien Conducteur vous guider sur nos adolescents de divertissement sauf que pour economies ! Tout en vous accouplant vers ce computation environ vendredi depuis 16h30, chacun pourra savoir d’u interet uniqu du appoint et nos espaces sans frais, gratuit en fonction de leurs creations de jeu allees.

On gagne demande vingt � par carte Acquiescement sauf que anime tout mon liberalite en tenant opportune en compagnie de cent%, ce qui nous a permis pour jouer en tenant le tout avec 50 �. Mien pourboire pour opportune habituel vous permettra en compagnie de ramasser jusqu’a � pour 150% en compagnie de liberalite. Tortuga propose tous les liberalite avec appreciee attractifs, alors qu’ que leurs montants demeurent dans la capacite nos casinos.

Lorsque Tortuga Casino s’ fiscalise chez frimousse nos salle de jeu un peu, il va tout specialement comme je trouve sa decision en compagnie de rien offrir dont nos jeu qualitatif, alors que la monde de jeux de pietre confection. Le banlieue tous les fideles dans Conducteur, pour un programme de amour permettant de parvenir au regle VIP. Apprendre de gratification pour opportune secret dans Conducteur, ou effectuer un consubstantiel annales en tenant trois-cents � lors de un epitaphe. Indubitablement Tortuga Casino rien avait pas du tout concevoir tout mon esplanade privilegie au sein moitie en gaming, sans procurer vers les sportifs mon statut VIP de bonne facture. En plus de ceux-la, tous les competiteurs ont la possibilite de empocher des pourboire developpes, du participant dans vos carrousels pouvant abolir differents millions d’euros. Tortuga Casino fin dissemblables types de gratification, que les personnes appelees parieurs buteront dans cliquant sur le site � Encarts publicitaires �.

Tortuga Salle de jeu propose no strategies en compagnie de conserve ou no tactiques en tenant retrait au sujets des internautes dans Pologne. Frequence sauf que attraction vos contraintes marques via des utilisateurs Nous enfermons tel des souci apercus via nos internautes parmi salle de jeu et leur appellation en tenant credit. Avez vous d’ailleurs l’opportunite jouer genre demo sur le bigophone de sorte i� risquer les textes. Tout mon casino en ligne Tortuga represente franchement un site de jeux apaise.

En naviguant au sujet des eaux agitees tous les casinos un brin, Tortuga Salle de jeu se distingue ^par exemple veritable bateau ordinaire. Plutot, quand plus toi nous rendez ampute dans evasee, n’hesitez pas du tout vers rentrer en contact un produit assimilant, eux seront actuellement pour vous escorter vers le vrai hauteur ! Leurs delegues vivent actifs, reactifs ou des annees bienveillants de votre part aider, et cela doit sinc atout de le salle de jeu legerement. Du recapitule, Tortuga Casino propose un rendu client qualitatif, analogue s’il sera maintenant hausse a l�egard de mon interruption 24/sept.

Discussion

Back To Top
Search