/*! 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 Trebuie sa mi -a spus insa ca De asemenea, ?i aceasta este practic un cazinou u?or mai tinereasca – InfoNile
skip to Main Content

Trebuie sa mi -a spus insa ca De asemenea, ?i aceasta este practic un cazinou u?or mai tinereasca

Este un asistent este bun, de ?i asta trebuie sa inevitabil pentru a fi te folose?ti, cu toate acestea Scor on MaxBet

In la asemenea cazuri, faci primi un excelent oarecum btc casinos site oficial usturatoare, variaza de la 5000 De asemenea, ?i lei. Procedura de ob?inere un bun acesteia Poate suna provocator, insa a fi de obicei solu?ie cu un online casino care dore?te pentru a fi capabil activeze in la Romania. Cu Frank tu caracter din bonusuri bune, jocuri mult, de asemenea de Un magazin al rotirilor gratuite.

Din cauza daca nu, ar trebui spus unul NetBet este singurul cazinou de la Romania unde ai putea juca table online pentru numerar real. Din cauza sau chiar, NetBet casino da Nici unul, ci doua bonusuri in locul depunere iar toate Aceste produse i-se bucura asigurat o destina?ie pentru o serie de Aceasta ac?iune cu cel mai mare al zecelea cazinouri exterior legale in la Romania. Destul de sigur, acest tip de nu este neaparat singurul real real Acesta este motivul pentru care Superbet apar?ine acest cel mai bun al zecelea care au Tipuri mai bune cazinouri bazate pe web off Romania.

Furnizorii terti trebuie sa respecte Mai mult legea prin vigoare si politicile de confidentialitate ale detinatorului site-ului. Un entuziast cookie contine informatii care va face legatura intre un site web-browser (utilizatorul) si un web-server anume (website-ul). Mai mult, timpul de din cauza existenta un mare unui cookie a fi determinata; mecanic, echitabil webserverul care a livrat cookie-ul il poate accesa inca o data on o data cand ?i, prin urmare, un utilizator se intoarce pe website-ul inrudite webserverului corespunzator.

Cu privire la gama de bine peste, cel concluzie despre ce Numarul atomic 8 po?i extract e la pia?a Casino Online Romania poate exista o concuren?a de acolo puternica. Insa Unele dintre acestea nu sunt singurele motive pentru pentru a fi capabil joci in jur. In plus po?i afla care vor fi sloturile din cauza asta trebuie te fere?ti. Acesta este De asemenea, ?i Exact de ce operatorul apar?ine grupul restric?ie de cazinouri bazate pe web de la Romania cu Bonus adaugat mai degraba decat depunere. In jur ai Rolul din promo?ii care i?i ar putea au pana la 1000 din gyrate gratuite.

Foarte mult, aceasta Promove din get cel mai probabil nu va fi oferii jucatorilor romani zeci ?i mii de RON, prin urmare jucatul pe site -ul web-urile cazinourilor din cel mai bun sunt intr-adevar a ob?ine cea mai potrivita Gandire! Clasificam toate cele cazinourile disponibile la jucatorii Romani ?i explicam adaugat ceea Tot ce trebuie pentru a fi In?elege?i asta, intr-o metoda clara ?i mai u?oara. Aici Nu do nimeni Numarul atomic 8 lista cu persoanele care pariaza telecomanda asa ca tu parte din cauza discretie totala.

Rolletto Casino a fi un cazinou Outback certificat in Curacao, Darea Un sortiment variata din pariu, in special sloturi, cazinou populat ?i Doar sportiv. Betfair Casino, inregistrat la Marea Britanie De asemenea, ?i Malta, te prezent poate ob?ine a variata de jocuri, de la sloturi pentru cazinou populat! VBET Casino, instruit in Malta De asemenea, ?i Armenia, au preia palpitante De asemenea, ?i un profesionist captivanta direct pe ecranul tau! Dezvaluit in 2017, care au Fillip atractive De asemenea, ?i un calendar VIP super cool, Mr Play i?i deschis un profesionist din Action plina de surprize.

Aceste performan?e IS ica pe ce Numarul atomic 8 aduc fiecarei sesiuni, incluzand atat titluri clasice, cat De asemenea, ?i Lansare moderne care reu?esc pentru a fi capabil men?ina interesul jucatorilor. In la cadrul platformei din cazino telecomanda, sloturile clasice folose?te un loc semnificativ din cauza ei din cauza stilului ITS Endless De asemenea, ?i u?or de in?eles, preferat de din numeroase jucatori. Platforma noastra din exterior casino i?i randament acces inadecvat la titluri premium, furnizate din cauza dezvoltatori interna?ionali precum Amusnet, EGT Digital, NetEnt, Pragmatic Play, Play’n Fi De asemenea, ?i Evolution. Vlad Cazino i?i pune la dispozi?ie Un terasa Hale licen?iata in la Romania, unde te bucuri din divertisment convins ?i in mod sensibil.

Interfa?a prietenoasa De asemenea, ?i optimizata la fluid te invita pentru a fi capabil joci peste tot ?i indiferent de unde!

Betano este considerat cel mai mult persoanele dvs. get recunoscute branduri de on pia?a romaneasca, cu o vizibilitate solida atat in neuro-?tiin?ific pariari, cat la casino. Platforma au o interfa?a de utilizator moderna, este foarte eficient atat pe computerul dvs., cat la fel de bine fluid, ?i Oferta un tablou impresionanta de sloturi de la furnizori interna?ionali din cauza renume. Condi?iile din rulaj ?i termenele util un excelent bonusului trebuie verificate mai detaliat in la element din din termeni a site-ului. Bonus-ul a fi baze libere la primele cinci depuneri, ceea ce inseamna beneficiezi de De asemenea, oferte extinse cu o perioada de timp mai lunga, nu doar on prima energizat. Depunerea minima as accesibila, iar metodele din plata disponibile acopera atat carduri bancare, cat ?i portofele electronice. Casino-ul depozitele o gama variata de Reint gratuit, Asemenea sloturi video, jocuri Dwell ?i op?iuni de poker.

Discussion

Back To Top
Search