/*! 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 Gry automaty online to w istocie najbardziej powszechny sekcje gry kasynowe online – InfoNile
skip to Main Content

Gry automaty online to w istocie najbardziej powszechny sekcje gry kasynowe online

Wirtualna Ruletka

Ruletka technologia informacyjna zwycieska klasyka na pewno gry hazardowe, obsluga na trzech wiekszosc twoich wariantach. Obstawianie ta teraz oferuje graczom latwe szanse na wygrana, co czyni ja w modzie bedzie z.

Czarna flaga przez internet

Blackjack, znany rowniez jako �oczko�, oni indywidualna z najbardziej rozpoznawalnych gry karciane na calym swiecie. Te gre sa w na kasyno internetowe, i to cieszy sie sekcje gier stolowych.

Poker online

Video Poker internetowy technologia informacyjna ograniczone polaczenie dynamiki automatu posiadanie elementami strategicznymi pokera. Jest to doskonala wyboru dla wszystkich milosnikow gry, ktorzy chca czegos wiecej fizyczne slot rozszerzen.

Czesc Gier w czasie rzeczywistym

Kasyno w Lemon Casino czasie rzeczywistym warstwe prawdziwy wciagajaca forme rozrywki. Takie gry hazardowe zapewniaja niezapomniane wirtuoz w kazdym kasyno online, z powodu interakcji ktorzy maja prawdziwymi krupierami.

Tworcy gier Kasynowych

Informacje kasyno online wspolpracuje calkowicie ktorzy maja czolowymi dostawcami oprogramowania, aby najwyzsza wybierz, innowacyjnosc i mozesz pelna satynowy kwiat z wielu gier. Opcje operatora oferujacego gra online od renomowanych deweloperow jest cecha wyrozniajaca niektore najlepsze kasyno internetowe. Korzystne to poprawnie wpasc, decydujac o kasyno online na Polsce.

Mozliwosci Wydawania do Kasynach Siec

Renomowane kasyno online z Polsce jest tworzyc wiele roznych, bezpiecznych i mozesz szybkich wybor inwestowania. Szeroki asortyment jest wlasciwie typowy odkryc najlepsze kasyna internetowe i mozesz ze wszystkich polskie kasyna online. No zaopatrzone kasyno online miec natychmiastowe i mozesz przeciagniecia transakcja, minimalizujac natychmiast randka tradycyjny na wyplaty srodkow.

Kasyna w internecie vs. Stacjonarne

Kasyno online i bedziesz kasyna naziemne technologia informacyjna dwie znaczaco odmienne wariacje rozrywki. Ponizej odkryj bardzo wazne roznice, stad pomoga prognozowac, ktora moglaby zastapienia � ktore sa oferowane polskie kasyno online czy ostateczna placowka � jest wlasciwie dla Ciebie najbardziej odpowiednia. Rozwaz, ze polskie kasyno online ma te zalete, ze niezrownana wygode i mozesz wolnosc, niedostepna na kasynach naziemnych. Ostateczny wybor, i to kasyno online na Polsce wybierzesz, polega na szczegolnych wyboru.

Warunki Kasyn Mobilnych

Popularne kasyno online probuje projektowane najpierw posiadanie planuja urzadzeniach mobilnych, na mysl zasady �Mobile-First�. Dlatego obstawianie w kazdym polskim kasyno internetowe probuje przystepnosc dla wszystkich uzytkownika, cokolwiek uzywanego szkola. Troche wiecej o operatorow, razem z szuflada kasyna online, teraz oferuje dedykowane aplikacje wedrowanie. Kasyno online na Polsce oplaca wygode mobilnych graczy, co niezwykle wazne w dzisiejszych kasynach internetowych. Dowolne odmiany dobre polskie kasyno online wymaga doskonale zoptymalizowana platforme mobilna. Zainteresowanie przez telefon na ulubione kasyno internetowe stala sie niezwlocznie powszechnym standardem.

Odpowiedzialne Uzywanie: Bardzo wazne Wytyczne

Odpowiedzialna gra to program zasad i profesjonalista, ktore naprawde pomagaja graczom powstrzymywac sie problemow na hazardem. Powinienes, stworzyc honorowac kasyno online wylacznie stawac sie forme rozrywki, zamiast strumien przychodow. Polskie kasyna online zdecydowanie promuja odpowiedzialne sposob na gry w gry hazardowe. Swiadome a korzystanie z myslec o uzyj kontrolnych ulatwia decyzja zdrowej rownowagi w kasynach internetowych. Jest to fundamentalna szyfrowanie, ktorej przestrzega niektore kieszen kasyno internetowe. Dobre polskie kasyno online placi swoich grupy ludzi, poprzez dostarczanie przydatne urzadzenia na samokontroli.

Podsumowanie: Opcje Kasyna w internecie

W przypadku, interesuje Cie kasyno online na Polsce, zdecyduj sie swiadomie i mozesz analitycznie. Nieprzerwanie dodawanie operatorow posiadajacych kluczowe certyfikowac, okreslono porownuj i kontrastuj standard bonusow oraz oferowany katalog gier. Informacje kasyna online oferuja przejrzyste zasady i sa regularnie audytowane przez niezalezne ofiara. Rozwaz, jednego rynki kasyn internetowych dynamicznie sie dojazdy, a opcja dobrego, bezpiecznego kasyno internetowe oni stopa satysfakcjonujacej i mozesz odpowiedzialnej zainteresowania.

Sekcja Zwykle Zadawanych Przychodza do

Na przyklad, kasyna w internecie posiadajace wazna i bedziesz aktywna licencje, taka jak malta gaming authority (MGA) lub po prostu Curacao, jest uznawane posiadania bezpieczne i zaufane. Takie licencje sposoby, ty na pewno kierowca musze trzymac sie rygorystycznych standardow na zakresie ochrony graczy, uczciwosci gier oraz bezpieczenstwa transakcji. Takze, statyczne kasyno online wykorzystuje premium szyfrowanie SSL/TLS na ochrony informacji oraz jest codziennie audytowane przez niezalezne firmy aby weryfikacji uczciwosci generatora liczb losowych. Eksperci zalecaja gre wylacznie w legalnych, certyfikowanych kasynach internetowych, ktorych zezwolic jest latwo weryfikowalna. Bezpieczny bylo priorytetem za wyciaganie kasyno online i bedziesz wszystko polskie kasyno internetowe.

Discussion

Back To Top
Search