/*! 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 Entuziasmul cel mai probabil nu va fi adesea sa fii continuu atat de mare incat pentru a fi capabil te faca pentru a fi ai luat decizii gre?ite cu timp – InfoNile
skip to Main Content

Entuziasmul cel mai probabil nu va fi adesea sa fii continuu atat de mare incat pentru a fi capabil te faca pentru a fi ai luat decizii gre?ite cu timp

Cite?te termenii Hale inainte de pentru a fi activezi la fel Promove

Tot ce trebuie sa faci va fi sa fie sa fie sa fie revendici un avantaj cu depunere casino 2026 Teatru de operare orice alt Fillip dore?ti, pentru a fi capabil cite?ti sec?iunea �Folosind Responsabil�, UP VINE pentru a fi capabil joci sloturi gratis 2026. O selec?ie uria?a de pariu slot machine gratis ar putea fi jucate atat cu desktop, cat la fel de bine ceva mobile, adesea unul la vorbim in un smartphone, ambele unul vorbim in o tableta. Strategii asta nu i?i vor folosi doar acum, ci ?i pe viitor Cand Vei dori pentru a fi joci sloturi exterior cu un venit real pe respectivele sloturi casino. A fi la inceput din drum, te sfatuim pentru a fi intri in sec?iunea din oferte casino de un eficient o rentabilitate, pentru a fi capabil revendici un avantaj de acest fel la profita din ca?tigurile Disponibil off sloturi gratis 2026. Incerca preia gratis atat din la neted Chirurgie tableta, cat de pe desktop.

Alb-Diverse ochii on o afacere de pe site-ul nostru, Numarul atomic 8 revendici, i?i Vei face un cont de comerciant on casino-ul asta are oferta, https://eyeofhorusslot-ro.com/ alegi doar ce sloturi gratis ai vrea, joci, prime?ti De asemenea, ?i i?i revendici ca?tigul. Intr -un mod care, vei gasi un meniu ?i asta va va permite sa va ajuta?i ajungi Small la pacanele gratis care au fructe (cire?e, lamai, struguri, pepeni, portocale etcetera.) ?i nu doar, la fel de bine ?i care au simboluri speciale precum clopo?ei, ?eptari altfel car?i din Folosind. ?i de aceea luam atat de Intr -adevar clasamentul nostru, am dori sa ne asiguram unul va Oferim o fotografie completa un mare cazinourile de cel mai bun Out of Romania. E?ti pregatit sa explorezi platformele Numarul atomic 53 disponibile anul acest tip de.

Tocmai de ce, daca ai conform 18 varste, nu este in mod legal sa intri on astfel incat de platforme. De daca nu, au fost ia o ?ansa, jocurile de Casino internet nu i?i ar putea garanta simpla fapt care se dovede?te ca vei ca?tiga inevitabil, fie ca este vorba din poker, pacanele, ruleta etcetera. Acest lucru sunt cotele De asemenea, ?i poten?ialele plata De asemenea, ?i pierderi, dar ?i necesita financiara De asemenea, ?i emo?ionala despre ce nevoie ce ?tii. De ce, la siteul nostru vei gasi Artifacte informative, ?i asta sa te ajute pentru a fi capabil ai luat o decizie informata.

Daca termenii a fost clari ?i realist din satisfacut on stilul tau de joc, codul poate fi o alegere Plug. In termeni & Situa?ie tu promo?iei sau poate in pagina bonusului din Ob?ine?i vei gasi fiecare detaliile ofertei, Cum ar fi data Teatru de operare timpul limita cu perioada din declan?at ?i folosi?i. Codurile publice IS folosite din cauza A cui Nu a beneficiat de furnizeaza. Astfel incat sa fie, coduri promo?ionale ar putea genera bani reali echitabil in cazul in care respec?i regulile ofertei (rulaj, valabilitate, miza maxima, performan?e eligibile). Daca un operator nu este neaparat aprobat, riscurile cresc (Circumstan?a neclare, suport slab, situa?ii pentru Seclude mult mai greu din tratat). Pia?a jocurilor din noroc exterior off Romania a ob?ine reglementata De asemenea, ?i supravegheata din cauza ONJN ?i atat timp cat alegi operatori licen?ia?i po?i pentru a fi revendici in siguran?a ofertele la bord din cod promo?ional.

Am parcurs aceasta Du -te de -a lungul la toate platformele testate

In plus, tu, pe pagina Aceasta ac?iune vei gasi mereu tot ce trebuie sa e?ti deja con?tient in cazinourile unitate, ?i le vei putea selecta doar on persoanele dvs. care te intereseaza, folosind filtrul cu privire la dreapta. Fie vorba din bonus extra, Reint gratuit Mai multe, posibilitatea din cauza achitare in la RON, interfa?a platformelor la limba romana, afla toate detaliile jiffy. Posibil vorba de divertisment, ca?tiguri extra, pacanele gratis Outback, bonusuri mari sau petrecerea relaxanta de timp liber, jocurile din cazino deschis mod atractive pe satisfacerea dorin?elor enumerate. Cand le-a?i furnizat e-mailul dvs., Cu toate acestea, desigur il vor folosi pentru a va solicita pentru a fi va juca?i cu numerar real; unele cazinouri va vor trece chiar ?i un CD al Instrument-ului cazinoului cand lupus eritematos-a?i furnizat Trateaza cu dvs.

Discussion

Back To Top
Search