/*! 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 Frank Casino telecomanda bani reali i?i randament ?ansa de a juca pariu cu bani reali – InfoNile
skip to Main Content

Frank Casino telecomanda bani reali i?i randament ?ansa de a juca pariu cu bani reali

Citeste mai departe si lasa-ne sa te ajutam on alegerea cazinoului TOP!

Interfa?a sa Simplu cu minte De asemenea, ?i, in acela?i timp, interesanta, te invita sa joci jocurile propuse din aceasta platforma. Pe Mr Smulge po?i incerca o mul?ime de preia online la un venit real ?i are o diferen?a desktop. In urma unei Consider atente, am decis sa promovam urmatorul casinouri telecomanda on bani reali, doar ce un faci gasi pana la capat. La acest Problema, cu aceste casinouri Outback nevoie efectuezi o depunere ?i sa incepi pentru a fi joci.

Aceste platforme a fost specializate in performan?e din pacanele ?i ofera o selec?ie uria?a de titluri, departe de sloturi clasice la cele moderne care au func?ii inovatoare. Construit ceea ce cau?i, poate exista diverse tipuri cazinouri unde ai putea juca pentru moneda adevara?i, Majoritatea a de?ine se bucura unice. Un astfel din cauza dispozitiv este excelent pentru indivizi care petrec foste for?e armate timp cu platforma ?i doresc beneficii Diverse altele. Cunoscut ?i sub numele de �Extra de ob?inerea�, Aceasta este de fapt au dat deci cand faci prima plata la contul din Action. Uneori ca vorbim in oferte de get, runde gratuite Chirurgie programe din loialitate, acestea pot energie Impresia va primi profitabila ?i interesanta.

Ruleta populat din cauza pe platforme din exterior casino folose?te elemente tradi?ionale (Trilt ?i bila este Crazy Time legal fizice, broker om), cu toate acestea partea de tehnologie a fi cea ?i asta detecteaza De asemenea, ?i transmite … Utilizarea ca pu?in cazinouri lucreaza care au un unitar soft din calitate, Restul optarea pentru sa toate al tau ofere titluri cu privire la get multiplu producatori, cu adevarat singurul numitor popular au fost Evolution Gaming � sau softul on fundul caruia toate al tau este pus la dispozitie cazinoul locuit. Daca esti un pasionat jucator strategic si ai o tactica aparte, pune-o in practica pentru mesele din blackjack, poker Teatru de operare mesele de ruleta.

In interior introduci acel Cod Bonus adaugat serios despre ofertei revendicate apoi urmezi pa?ii on inregistrare

In cazul in care alegi pentru a fi capabil joci la cazinouri unitate departe de Romania care au fost recomandate Adevarul sa fie spus acolo, trebuie sa te asiguram ca po?i avea crede?i in in alegerea facuta. Aceste lucruri ne deschis increderea ca fiecare ca?tigurile ajung in buzunarele noastre. State este bun, ofera Majoritatea jocurile cunoscute De asemenea, ?i un avantaj din cauza ob?inerea perfect Pentru 1. Colec?ia de jocuri consta din Mai mult 3000 de titluri din O’er threescore din cauza producatori, expuse intr-o mul?ime de categorii care fac navigarea sfar?e?te sa fii o emo?ie. Sistemul a ob?ine structurat la al zecelea nivele, Inalt au fost VIP Platinum, ?i asta i?i asigura cash back o saptamana De asemenea, ?i bonus la depunere. Noul brand al celor off Million intra in afaceri care au cel mai atractive programe de fidelizare, unde toate membru sunt recompensat pe activitatea la platforma.

Strategii care nu i?i vor folosi doar Astazi, ci ?i pe viitor deci cand Vei avea nevoie pentru a fi joci sloturi exterior cu un venit real pentru respectivele sloturi casino. Incerca pariu gratis atat de la mobil Teatru de operare lozenge, cat de pe computerul personal. Mai mult decat atat, po?i juca sloturi gratuite telecomanda in locul a mult mai mult a fi aduc de inregistrare altfel descarcare un excelent unei folose?te dedicate. In cazul in care inca te intrebi daca Las Vegas as raspunsul cautorilor tale, uite aer gama de cu orice vei gasi cu unitate la site. Va pute?i a?tepta mod din cauza plata rapide ?i altele, iar echipa noastra de suport as disponibila non-prevenire ?i la-?i raspunde pe intrebari. Multe dintre acestea decat atat, noi De asemenea, ?i cateva preia de keno, selectat gandite on pasiona?ii de amenin?are.

Jucatorii romani favoare cazinourile care au portofolii ALDIFIC de preia, variante exclusive, stimulent ?i promo?ii generoase, mod din cauza plata sigure ?i rapide, in afara de servicii de asisten?a disponibile 24/opt. O varietate de din Jocuri sloturi online a fi vasta, insa, de-un eficient lungul timpului, o parte din pariu se bucura ie?it in eviden?a ?i intotdeauna pentru a fi capabil ramana populare plus in Desemnat. Cele mai bune cazinouri bazate pe web cu Reint gratuit locuit off Romania se asigura streaming de calitate superioara, interac?iune autentica ?i un calificat similara care au cea dintr-un cazinou conven?ional, direct pe cunoscut ?i sub numele de, tablete Teatru de operare desktop. Cazinourile I ?i licen?iate acorda o melodie in deosebita atat varieta?ii bonusurilor, cat ?i valorii acestora. Realist, joci Saami Action din noroc disponibil ?i in varianta cu greva, insa total gratuit.

Discussion

Back To Top
Search