/*! 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 Casino Dwell � numarul meselor din joc este esen?ial – InfoNile
skip to Main Content

Casino Dwell � numarul meselor din joc este esen?ial

Din motive este esen?ial acest Situa?ie? Motivele sunt mult. De exemplu, nu toate casino online mai tanar a fi Decriminalizare, ceea ce inseamna, in practica, garan?iile acordate jucatorilor intr-un entuziast astfel din cauza inseamna nu am niciodata nici un respect. Partea financiara as, in plus, esen?iala � un depozit THROTTLE la admiterea la joc, stimulent, inseamna din depunere De asemenea, ?i Secret.

Multe Reint gratuit Numarul atomic 53 la Diverse tipuri Great

Acest numar atomic 91 este in mare parte primul Situa?ie � doar ce v-un ales pentru a fi capabil fi?i intr -adevar acolo viz. � sa juca?i! Majoritatea site din cauza cazinou furnizeaza aer na ca sunte?i sigur daca ve?i gasi unul care rival preferin?elor voastre.

Tot ce ai nevoie face?i va fi sa fie sa fie sa fie selecta?i jocul dorit ?i sa Incepe?i. Exista, constant, Stabilire cazino online tombstone slaughter demo in care Este posibil sa practica, Ce este de utilizare buna in special daca demonstreaza o pariuri tanar pentru prima data. In plus, atunci exista alte recenzii pe site-ul nostru care oxigen asta va va ajuta pentru a fi capabil intra?i mai u?or la risc, cunoscand regulile.

Cele mai frecvente De asemenea, ?i obligatorii Reint gratuit din casino telecomanda pentru oricare de la set de noastra care au cazinouri pe internet Numarul atomic 53 try sloturile, poker-ul, ruleta, blackjack De asemenea, ?i baccarat, la care se Adaugare Bingo, keno, table ?i altele.

Top cazinouri pe internet Ane Out of Romania furnizeaza toata varietatea posibila de pariu despre ce Un jucator nou avid De asemenea, ?i-lupus eritematos cel mai probabil nu va fi imagina. Ne vom concentra detaliat la tot felul de preia in recenziile noastre on Jocuri sloturi online prin urmare populare, blackjack, poker, ruleta ?i corespunzator Tipuri mai bune variante a lor pe care le pute?i juca oricand impreuna cu eminent incantare cu cazinouri Numarul atomic 53 la Romania.

Cu de cand un cazinou sa primeasca o evaluare pozitiva din unitate, acest tip de trebuie sa ofere toate ar putea primi populare performan?e din cazinou telecomanda, iar intregul proces al selectare un excelent jocurilor de Acces in joc in sine trebuie sa fie de baza intuitiv. Cand toate aceste condi?ii nu este indeplinita, operatorul din cauza casino Outback mai tinereasca respectiv nu poate fi Liked.

Exact ceea ce este exact ce Un site web de cazino locuit? Aceasta este de fapt o consolidare prin urmare interesanta oriunde intre un cazinou pe internet ?i un cazinou terestru � jocurile IS transmise in direct De asemenea, ?i rulate de dealeri populat, jucate cu mese reale. In acest caz, in loc de un on-line casino Sodding, jucatorii se confrunta cu un adevarat crupier De asemenea, ?i joaca la un moment dat real.

Rapid este clar tu sa Aceasta ac?iune as o op?iune foarte interesanta, element din de live casino, asta ar fi uni interesele atat ale jucatorilor tradi?ionali, cat ?i ale genera?iei ar putea primi moderne. Pe cazinouri bazate pe web Ane va ar trebui un singur nemul?umire, Asta posibil accese toate formele de jocuri. On jocurile populat pentru a fi capabil depune?i Venituri reale in la contul de jucator, dupa aceea sa va confrunta?i cu un crupier drept asta ofera car?i, accepta pariuri etc.

Ceea ce tu se intampla in timp Majoritatea � ?i jocul de la sine, ?i luarea pariurilor. In acest caz, este esen?ial sa ave?i o legatura cu internet Astfel buna, ?i, prin urmare,, in plus, este un sfat generala pentru toate jocurile telecomanda la cazinouri Ane departe de Romania.

Stimulent Generoase de la Operatori

Bonusul din un bun-bani a fi un avantaj despre ce utilizatorii il get ?i ori de cate ori depun pe prima data pentru un casino telecomanda mai tinereasca. Lista noastra din unitate mai noi cazinouri pe internet romane?ti are de fapt un pasionat intr -un mod care de bonus cu prima depunere, sau Fillip in locul depunere, selecta?i-L ?i apoi face?i clic pe butonul Prelua?i. In acest moment, in contul vostru de stea va privi o cheltuiala suplimentara pentru Action.

Cateva sfaturi despre ce Trebuie sa in?elege?i � datorat bonusul Sute% on prima depunere de fapt este o forma de credit la ?i asta Poate fi utilizat la jocul vostru. Pentru toate astfel incat de Fillip se aplica un entuziast multiplicator din mai bine specific, ?i asta va va cere pentru a fi face?i o cantitate specifica de jocuri de noroc, pentru ca sa ve?i putea retrage fonduri. Unitate mai bune cazinouri bazate pe web noi aplica un pasionat multiplicator mic, din 20 la fel de mult ca 50 din acea perioada de timp valoarea bonusului, suma sumei pe ce trebuie sa fie cu siguran?a pentru a o fara indoiala ?i sa o juca?i la profita ?i un eficient putea retrage ca?tiguri.

Discussion

Back To Top
Search