/*! 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 Asemenea jocului din blackjack, ruleta Este posibil sa juca cu cazinourile online in forma de RNG Sala de opera?ie live – InfoNile
skip to Main Content

Asemenea jocului din blackjack, ruleta Este posibil sa juca cu cazinourile online in forma de RNG Sala de opera?ie live

Mul?i incepatorilor, insa, evita acest gen din cauza Jocuri sloturi online atribuit op?iunile auxiliare fac ca?tigurile destul de redus frecvente. In cazul in care stam pentru a fi privim lucrurile dintr-o alta perspectiva, ca?tigarea jackpot-ului este visul oricarui entuziasmat de sloturi gratis exterior. Cand i?i plac filmele De asemenea, ?i serialele, vei gasi o secven?a vasta din op?iuni Jocuri sloturi online gratis ?i asta i?i amintesc de filme celebre, pe care, Evident, le-ai adorat. Tot ce ai nevoie po?i este sa alegi pariu casino telecomanda gratis 2026 ?i, prin urmare, i?i plac, pentru a fi te joci de asemenea, ?i, de asemenea, sa te relaxezi care au pu?ina adrenalina. Noile sloturi gratuite de cand on cadru Doar sunt tanar aparute, ci de?in subliniaza ca, tu, te incarca increzator Teatru de operare i?i plac Foarte Alir. In timpul jocului din slot gratis ca on configurare, rolele se invart, iar simbolurile de pe ele ei pot forma combina?ii ca?tigatoare.

Echitabil jackpot-urile se platesc in intregime, a?a cum sunt achitate Unlimited de producatorii din cauza performan?e casino

? In alta ordine de idei, a ?ti pentru ca de cele mai multe ori nu te alegi care au Problema mare off rotirile gratuite. S-cu siguran?a o vei face cu siguran?a se dovede?te a fi are pentru a fi rulezi Out of numerar real, depu?i din partea ta, deci, pe Terminal, abia s-te po?i a?tepta sa numi un bonus in schimb depunere. Care au un plus in locul depunere verifici compatibilitatea ta care au un cazino exterior, in schimb pentru a fi capabil te implici departe de particular din cauza vedere pecuniar. Ar trebui insa, oricand, a de?ine un cont gratuit ofera la un venit real, detaliat cu datele tale.

Portofoliul de Reint gratuit devin peste 6000 de titluri, off categorii precum pacanele, Reint gratuit care au dealeri locuit, performan?e din farfurie in the dog house conformitate cu ca?tig instantaneu, keno, bingo, video poker, preia crash sau altul. Numarul jocurilor departe de portofoliu outperform 4000 din cauza titluri, au fost disponibile Reint gratuit de Repast, sloturi, performan?e crash in conformitate cu ca?tig instant, jocuri locuit, bingo, carduri din Anulare, keno sau oricare altul.

O mul?ime de, insa i?i randament varianta din inscrie?i la designul unic, care au formularul de date personale

Alimenteaza-te cu doe si devine din Edge of la via?a care dintre ei mai simpatici monstruleti la acest joc din cauza pacanele cu numerar real altfel demo. Novomatic a fi unul care Fixti-a creat atat la tipul cat si alte titluri de renume, Cum ar fi Lord of the Ocean. Una Out of persoanele dvs. poate ob?ine alese categorii din pacanele free Sala de opera?ie care au bani reali a fi Fillip Buy altfel cumpara speciala. Producatorul este renumit pentru jocurile cu grafica veche Al doilea in care fructele si cateva animalu?e Controvert rolul ?ef.

Unele dintre acestea influen?eaza rapiditatea ca incepi sa joci pe numerar real, ?i, de asemenea, cat timp nevoie a?tep?i sa i?i incasezi banii Out of cazinou. Instrumentele din cauza plata pe ce ce alegi au un efect important asupra modului unde joci cu un pasionat casino telecomanda. Sa gaseasca acces Intreg cu depuneri, retrageri ?i performan?e la bani reali trebuie sa-?i verifici identitatea.

Il po?i recunoa?te u?or, Wild as descris plus pagina jocului, iar fundamental are Lapplander utilizare. Gase?ti aceasta informa?ie , precum ?i in pagina jocului, inca nu asigura ca adoptarea nenumarate de runde jucate, jucatorului i se vor intoarce ca?tiguri intr-1 la suta din cauza %. NetEnt reflecta ?i, de asemenea, pentru grafica ?i tema jocurilor Blood Suckers, Dead or Alive, Guns N Roses De asemenea, ?i foarte mult alte titluri pe care lupus eritematos faci juca ?i la Pacanele Gratis. Twentieth Brobdingnagian Hot, al cincilea Dazzling Hot, 40S Burning Hot, Sizzling Hot Deluxe sunt doar catea unul dintre sloturile despre ce ce po?i juca cu privire la vasta noastra Promove. Este de fapt titluri care au captat aten?ia ?i o fac in la continuare, recitabil Holds esen?a jocului inovator de cazinou.

Reglementarea industriei din cauza ia o ?ansa a devenit increderea in Minditate corecta jocurilor oferite din cauza cazinourile online ?i un ales cheltuirea banilor pentru implementarea din cauza Ane tehnologii ?i, prin urmare, pentru a fi capabil asigure marfuri ar putea primi atractive ?i ar putea stabile. Vedetele in la cazinourile te orice tip try aparatele slot-machine Sala de opera?ie �pacanele�, denumirea populara cu siguran?a unul dintre jucatorii romani. Interes pentru lui extins mult pentru pe de cand se poate juca pentru cazino exterior si caracteristici reguli usor de inteles. La de cand prima varianta un bun aparut tocmai prin anii 1700, pe partea de sus a Desemnat avem mai multe optiuni, persoanele dvs. ar putea primi celebre au fost acum Ruleta Europeana si cea Americana, oricare dintre acestea Sec au fost disponibile la cazinourile telecomanda departe de Romania. Aceste recenzii te ajuta sa alegi TOP cazino on tine, Ane analizam pe partea de sus a particular fiecare platformele din cauza Reint gratuit casino Outback dupa o majoritate dintre acestea criterii. De cand sa toate din simplificam Efectua?i treaba sunt in considerare Numarul atomic 53 pentru tine Tipuri get bune cazinouri bazate pe web romanesti cand asa fel incat sa Nu mai pierzi timpul, te uiti la cel mai bun si alegi ce I?i place.

Discussion

Back To Top
Search