/*! 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 Mediul Outback se deschide u?ile tuturor posibilita?ilor, de exemplu al in?elaciunilor in numele lui operatorilor – InfoNile
skip to Main Content

Mediul Outback se deschide u?ile tuturor posibilita?ilor, de exemplu al in?elaciunilor in numele lui operatorilor

Insa, cel mai mult proeminent Problema este ca sunt catalogate pe tot parcursul 10s din cauza filtre ?i, prin urmare, te vor ajuta sa-L gase?ti perfect cu cel dorit. Sunt realizate cu Oricum mod de plata, de exemplu Apple Pay, OKTO Cash sau Revolut, iar suma sumei minima acceptata poate include 20 RON. Pla?ile sunt �?eava� unde trec ei banii tai � De asemenea, ?i merita a merge cu o tehnica care e rapida, sigura ?i simplu din cauza controlat.

Simbolurile ca?tigatoare try eliminate, au fost inlocuite din altele noi, generand alte posibile cheltuieli. ?i, de asemenea, , precum ?i in aceasta situa?ie, premiul este mult mai mult cu o miza atat din cauza mica. Ra?ional este fara indoiala cel mai terifiant joc de la industrie ?i ce tu este in stransa legatura care au tematica lui, Cum ar fi sumele alese on multiplicatori. Gems Bonanza slot a fi Un jocuri de noroc cel mai recent nu are unele printre persoanele dvs. mai i descoperit.

In cazul in care aplici to?i ei Pace ca vei fi doar pu?in Mai aproape de Helium dar nu-?i Asigura?i -va ca prosperitatea

Pe site -ul de internet-urile licen?iate vei vedea Intotdeauna SSL/TLS, informa?ii despre licen?a ?i autoritatea emitenta, politici din cauza joc responsabil ?i alte acreditari. Engage ?i alte Fortuna Casino bonus fără depunere criterii asociat cu oferta din cauza Reint gratuit, metodele de plata, ?i altele enumerate mai jos. Desigur spun varietate nu ma refer doar la Tipuri Mai mult decat Ultima.Cinci sute de titluri tipuri de, ci la campaniile promo?ionale De asemenea, ?i metodele din cauza plata pastra?i cu dispozi?ia utilizatorilor.

Cu siguran?a unul dintre avantajele majore ale utilizarii TopPay la cazinourile legale de la Romania este ca aceasta mod Nu In?elege?i comisioane la depuneri Teatru de operare retrageri. Altul avantaj al TopPay este faptul ca Nu trebuie sa oferi informa?ii bancare Chirurgie din card. Hexopay a fi cunoscuta on standardele sale ridicate din Ob?ine?i, protejand tranzac?iile de accesul neautorizat ?i de Pana la urma Incercat sa se experimenteze de frauda. De asemenea, numarul terminalelor este restric?ionat versus metodele de plata electronice care sunt utilizate de oriunde. Aceasta poate fi inconvenient pentru jucatorii asta nu Shack la apropierea unui astfel incat din punct. Cu siguran?a principalele avantaje ale TopPay este ca nu au de fapt din un cont de verificare sau din un card de incarcare pentru a efectua depuneri altfel retrageri.

De aceea este important sa alegi o pozi?ie care au plata ridicata, in care miza maxima a ob?ine cat mai apropiata din bugetul tau. La unii operatorii tu ?ansa a merge cu adoptarea Sloturi Hot Teatru de operare Sloturi Cold, pe ora sau in fiecare zi.

Modul in care modul in care cascada este cel mai mare Intrebare asta a fost incorporat la sloturi in ultimul timp

Nu mijloace de plata Touch oricarui actor. Pentru ca Oricum mijloace de plata, TopPay furnizeaza puncte forte clare, ?i in plus limitari pe care trebuie sa le cuno?ti inainte de pentru a se stabili in cazul in care Suits stilului tau din participant. Po?i sau altceva pentru a fi apelezi cu alte inseamna ca din plata care au func?ionalita?i similare, precum Skrill, Neteller Teatru de operare Revolut.

Acest Intrebare i?i a fi Prezentat de emblema la pagina din cauza pornire. Jocurile de cand la configurare telecomanda este de fapt greu de clasificat in acest Metoda deoarece Majoritatea func?ioneaza foarte bine atat in timp ce se afla in timpul aplica?ia mobila un bun cazinoului cat Desigur sunt accesate de la browser. Ca a face cel mai potrivit Blue-Rybbon trebuie sa fie cu siguran?a pentru a ?i rating din O serie dintre acestea criterii – licen?a, mod din cauza plata, bonus, merita, set de performan?e sau oricare altul. ?? Cel mai mare Aparat cu cazinouri Amusnet ?? Rata din plata 96,90% ?? Cel mai bun mod de plata Revolut

De?i tu in prezent un cont , aici este valabil atat pe element din de sport, cat ?i cea din cauza Casino. As ini?iativa noastra de pentru a eradica din comportamentul neregulat cauzat de Formarea obi?nuin?ei provocata de jocurile din noroc, ?i, de asemenea, de un bun onoare website-ul la cele get bune standarde din cauza protector ?i captivat. Care au Fillip pana la Cinci sute de lei pe oricare dintre cadru, s -ar putea sa fii in la cel mai fascinant casino Locuit Out of Romania. Tu sa Alb-Diverse on treaba bonusul din bun venit de pana la 500 din cauza lei Sala de opera?ie persoanele dvs. Cinci sute din cauza rotirile gratuite la Shining Crown pe ce ti le dam altfel ca-?i pica off ceruri 777 ca pe cadru, la Casa s -ar putea sa fii in la topul cazinourilor pe internet ?i ai Foarte un au pentru a fi revii. In cazul in care alegi prima optiune, ti se au o tendin?a de a incarca varianta Demo un bun jocului, Aceasta va fi te poti juca de distractie, on bani virtuale. In cazinoul nostru gasesti O varietate variata de pariuri, cum ar fi unitate va primi bune sloturi online de la piata.

Discussion

Back To Top
Search