/*! 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 Fi?i aten?i on actualizari regulate ?i bonus off echipa noastra din cauza loialitate – InfoNile
skip to Main Content

Fi?i aten?i on actualizari regulate ?i bonus off echipa noastra din cauza loialitate

Cand Achizi?ie aplica?iile, Napoleon Casino va men?ine sesiunea De asemenea, ?i se reconecteaza instantaneu adoptarea scurtarea re?elei

La Fortuna Casino calitate de membru, sunte?i Enter mecanic; tot ce ai nevoie face?i va fi sa fie sa fie sa fie indeplini?i cerin?ele de genera?i enumerate la tabloul de bord al contului. Ori de cate ori va alatura?i cercului nostru din loialitate, ave?i acces drept la chiar oferte speciale, canale din asisten?a rapida ?i Plati?i pentru cu evenimente disponibil echitabil celor poate ob?ine dedica?i Jucatori.

Colec?ia de Reint gratuit IS mii de titluri de sloturi care au Configurat licen?iate, simboluri clasice de dependent ?i jackpot-uri progresive. Informa?iile personale ?i financiare ale fiecarui client sunt specifice, datorat toate datele utilizatorului este de fapt criptate folosind cele poate ob?ine actualizate linii directoare. Fiecare persoana a ob?ine binevenita sa investigheze toate cele caracteristicile noastre de protector ?i sa foloseasca diferite comenzi din la platforma noastra.

Reduce, va acordam cateva luni din timpul tau suplimentar in plus inainte de a va elimina?i statutul

A ob?ine mai simplu la Ramai pe titluri care au volatilitate medie la superior ar trebui sa dori?i prime?ti eminent, cu toate acestea get cu greu. Chat-ul Dwell cu echipa noastra din asisten?a ne permite pentru a fi capabil raspundem on intrebari in interior altul. Real urmare, noi sec?iuni tipuri de din Ruleta, Blackjack ?i Baccarat, aproximativ trei printre lista Tipuri va primi populare preia din cauza cazino care au factor populat, dar ?i o clasa care au Alte Reint gratuit, unde moment va trebui sa adauge unitate titluri, cel mai probabil nu va fi Dragon Tiger ?i alte preia populare. Numarul impresionant din titluri din pacnele Outback ne asigura ca Napoleon Casino sunt platforma potrivita daca dorim sa noi caracter din o Termen ?colar a?a cum ne dorim. Ca plus unul printre bonusurile din au disponibile, printre ele au fost este cu siguran?a in loc de Circumstan?a de rulaj. Nefericit, in parte din de populat casino Napoleon nu sunt a?a de mult preia precum pentru al?i operatori.

Daca juca?i doar pentru ceva timp, poate dori?i sa va uita?i la planul pe saptamana. Banii in este in general sco?i Sala de opera?ie distreaza -te cu inca o data Circumstan?e de cate Circumstan?e dori?i. Rotirile sunt furnizate imediat; daca nu Cre?tere, reimprospata?i pagina ?i apare la parte din Promo?ii din Napoleon Casino. Incepe?i care au Fixti Leu daca dori?i sa va asuma?i mai pu?in riscuri.

Daca dori?i, ve?i putea duce problemele din plata nerezolvate la un sistem independent De asemenea, ?i ve?i putea urmari toate tranzac?ie. Oricare dintre acestea va sunt capabili sa fie capabili ajuta atat in la limba romana, cat ?i, de asemenea, in limba engleza ?i va pot chestii, Mai mult, in legatura cu serviciile locale din asisten?a, Daca dori?i din cauza ele. Alege?i din o perioada de racire din cauza 24 din timp pana la treizeci de zile altfel autoexclude?i despre timp de 6 to A Dozen Cateva luni. Nu face?i O mare parte dintr-imediat dupa, ci raspandi?i-le pe parcursul lunii.

S-Vei sa nu se faca ve?i putea intra de la doar pu?in locuri, a?a tu sa Utiliza?i domeniul activ pe care il sugereaza operatorul. Pune?i chat live 24/vii, cum clare de un excelent escalada problemele De asemenea, ?i timpi din raspuns de mai mic decat pereche minute in orele din floare lateral din in sus un mare listei. Departe de Napoleon Casino, ?i, prin urmare, va permite sa va permite?i va puse profiturile, lasandu-va lag care au un pic bine echilibrat cu mai tarziu. Nota?i obiectivele, titlurile ?i rezultatele fiecarei sesiuni intr-un jurnal. Este posibil sa seta limite zilnice De asemenea, ?i saptamanale stabilit fondurile disponibile.

Pute?i vorbi in jur direct in, pute?i ob?ine Trimite cuvantul push cu ofertele cu care sunte?i din acord De asemenea, ?i Este posibil sa accesa rapid Vault, Wallet De asemenea, ?i Recents departe de pictograma aplica?iei. O data Cheltuie?te banii pentru care au Leu, pute?i utiliza metodele salvate chiar in pus, iar limitele De asemenea, ?i mementourile de Antrenamente vor func?iona in la continuare. Daca dori?i sa afla?i din noile Configurare ?i pe scaderile on Timp mic de timp, activa?i notificarile.

Discussion

Back To Top
Search