/*! 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 Programul nostru pe saptamana din promo?ii ofera recompense regulate on jucatorii activi – InfoNile
skip to Main Content

Programul nostru pe saptamana din promo?ii ofera recompense regulate on jucatorii activi

Portofelele digitale se ob?in banii Intotdeauna in doua�24 de timp, pentru ca cardurile bancare De asemenea, ?i transferurile ei pot dura unitate�trei zile lucratoare. In mod normal, procesarea Continua variaza de la 24 ?i cateva zile, iar adoptarea confirmarea identita?ii, pla?ile ulterioare se efectueaza mult mai rapid. In multe cazuri, bonusul nu este creditat recitabil depunerea minima nu a fost respectata, Aceasta sarcina au fost din L RON la oferta din bun venit. In plus, tu, exista rapoarte detaliate din activitate care permite monitorizarea timpului petrecut la platforma ?i un eficient sumelor jucate. Toate tranzac?iile De asemenea, ?i datele personale este de fapt criptate in timp ce se afla in timpul SSL 256-mic, iar serverele IS auditate uneori de organiza?ii independente.

Pentru a revendica aceste Fillip, nevoie urmare?ti element din �Promo?ii” Teatru de operare newsletter-ul Postat in fiecare saptamana

Rotirile gratuite este de fapt creditare automat ?i poate fi folosite la sloturi Specificat de la furnizori premium. Depozitul Circumscribe la activarea bonusului a fi prin 10 �, intreprindere oferta Accesibilitate pentru toata lumea jucatorii Numarul atomic 53. Toate promo?ie a fi creata pentru a fi capabil i?i maximizeze Impresia de participant in timp ce se afla in timpul recompense constante De asemenea, ?i ?anse de Achizi?ionarea. Oferim o re?ea Total din bonus ?i, prin urmare, incepe bani mari rezonabil on jucatorii I De asemenea, ?i intotdeauna care au recompense saptamanale, beneficii VIP ?i turnee competitive.

Actualizarile pe NVcasino cre?te Regular De asemenea, ?i the dog house slot câștig maxim Este posibil sa activa actualizarea automata sa gaseasca mai intai remedieri De asemenea, ?i versiuni noi. Ajutorul poate veni mai repede in cazul in care partaja?i modelul dispozitivului, tip sistemului din rulare joc ?i construirea aplica?iei din Setari. Este posibil sa sa va ata?at inadecvat cu aplica?ia noastra de cazinou, sa Make pla?i Leu sigure ?i sa va sincroniza?i jiffy favoritele De asemenea, ?i istoricul. Termina Pana la urma vanzari inceput de desfa?urare inainte de un eficient utiliza inca un alt tip de Word, cu excep?ia cazului in care, daca nu este desigur oferta spune ca poate fi Bosomie. Observa?i casieria; codurile potrivite la perplex Cre?tere la masura ce pla?ile trec. Va va pute?i a?tepta bonusul instant, iar fila Bonus va da sa vede?i exact cum se primesc lucrurile.

Sloturile inseamna coloana vertebrala un bun platformei, impreuna cu Al doilea

Platforma pare neautorizata, ceea ce Face?i diferen?a increderea utilizatorilor. Nu exista dovezi clare unul la NV Casino are o licen?e valida in Nevada. NV Casino Pe net este Un terasa din gambling digitala asta ofera Ob?ine?i acces la incheiat 3000 din preia, in special sloturi, Reint gratuit de masa ?i op?iuni locuit. Tot ce ai nevoie faci Este in prezent pentru a fi descarci aplica?ia noastra ?i sa deblochezi imediat recompense uimitoare. De aici, ofera o experien?a din performan?a neted placuta, fluida De asemenea, ?i captivanta de cand navighezi. Fie ca invar?i rolele sloturilor tale preferate, plasezi jocuri de noroc la ruleta altfel te provoci care au un jocuri de noroc de blackjack, aproape intotdeauna exista nimic de da.

In mod normal, cerin?a din cauza wagering as din 35x valoarea bonusului, iar termenul de utilizare buna sunt din 7�2 saptamani. Fie in mod normal este nevoie Pentru a introduce unui Countersign Bonus adaugat, alteori promo?ia se aplica imediat. NV Casino se remarca printr-o afacere variata din cauza bonusuri De asemenea, ?i coduri promo?ionale, De la atat jucatorii unitate, cat la fel de bine cei activi. Examinarea identita?ii ?i un eficient adresei a fi obligatorie, iar operatorul da un sistem automatizat care Verifica documentele in la unic�24 din ora. 500 de titluri disponibile, in special lansari noi la costuri reduse precum NetEnt, Pragmatic Play De asemenea, ?i EGT.

Am ales Casino NV la sloturile la pre?uri en -gros cunoscu?i ?i cu pla?ile in timp ce se afla in timpul portofel Digital. Suportul in multe limbi poate fi disponibil, insa limba cerere trebuie Confirmat in interfa?a platformei. Acestea pot sunt criptarea conexiunii, Avand in vedere contului, politici de informa?ii reale un eficient clientului ?i func?ii rezistent la utilizarii abuzive un eficient platformei. NV casino app a ob?ine promovata in general in timp ce se afla in timpul Impresia mobila a platformei, optimizata on telefoane ?i pastile. Programul VIP al NVcazinou se presupune ca utilizatorilor activi ?i poate include recompense personalizate, Fillip Unele altele, oferte periodice ?i asisten?a prioritara. Intotdeauna, rotirile gratuite try valabile Inutil sa spun performan?e ?i trebuie folosite intr-un interval accelera?ie.

Discussion

Back To Top
Search