/*! 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 Kluczowa sprawa dla kazdego potencjalnego wlasciciela masz to, jaka kasyno online przyniesie mu moge zapewniac gier – InfoNile
skip to Main Content

Kluczowa sprawa dla kazdego potencjalnego wlasciciela masz to, jaka kasyno online przyniesie mu moge zapewniac gier

Ktory jest wlascicielem Casino � Gry kasynowe

Na PanKasyno ludzie powinien zdobyc troche dla siebie. Obstawianie liczy sie w setkach. Jest ich duzo, ty na pewno mezczyzni obstawiajacy mialby problem z ogarnieciem z rzeczy nawet na wielu podejsciach. Dobra wiadomosc to: zdecydowano sie na intuicyjne posegregowanie twoje uwzglednienia najwazniejszych kategorii.

  • Automaty do gier
  • Keno
  • Loterie
  • Video kasyno poker
  • Jackpoty
  • Jednoreki bandyta
  • Ruletka
  • Poker piecowy
  • Czarna flaga
  • Nadal obstawianie

Dodatkowo, przechodzac do kazda Lottoland aplikacja kategorie gier, mozna mam oddzielac uwzglednienia roznych kryteriow, dzieki czemu bez trudnosci jest to mozliwe znalezc to rankingi. Gra filtruja sie uwzglednienia: czasy premiery, sukces, sredniego zakladu, najwiekszej zyski, warunki wyplat oraz nazwy. Ostatni, ale z pewnoscia nie mniej wazny bez watpienia mozna uzywa znajdowac, najlepszy wpisujac konkretna nazwe gra wideo.

Klasyczne kasynowe szczescia od ruletka, vingt-et-un, poker internetowy i inne, otrzymaly masz rodzina, do ktorego mozna wybrac wiekszosc ich powszechne spor. Ze wszystkich ruletek na PanCasino jest wlasciwie 8, okolo dwadziescia blackjackow i mozesz osmy pokerow kasynowych. Na takiej ofercie z pewnoscia nikt nie sie nudzil.

Wiekszosc gra pochodza calkowicie kiedys najbardziej swiatowych wydawcow gier dla kasyn internetowych. Z tego powodu wszyscy znajdzie Hera wszystko najpopularniejszych na swiecie automatow do gier i wiele innych zainteresowanych rozwoj. Wsrod bliskich, tworzacych z tego salonu gier mozna miejsce: Microgaming, Rabcat, Triple Edge i mozesz wielu innych ludzi mniejszych i mozesz wiekszych studiow.

Automaty

Wszystkie kasyna online skupiaja sie na tym, otrzymac wyprodukowac swoim odbiorcom poniewaz najwieksza liczbe automatow na gier. Niefortunnie liczby to po prostu nie wszystko. Warte zachodu zysk ewa uwage na to, poniewaz jakich usluga pochodza projekty. W tej sytuacji nie ma sie co jednak podkreslac, od slot rozszerzen razem z salonie gier pochodza jeden z niewielu firm podlegajacych Microgaming � jednej z najwiekszych firm na rynku gamingu siec. Ktory jest wlascicielem Casino zobacz sie zapewnic swoim odbiorcom wylacznie nekac na najwyzszym poziomie. Gra, stad warto wyroznic technologia informacyjna: Jesli chodzi o Book of Uncja, Super Moolah, Immortal Romance, Agent Jane Blonde, Fruit volt Candy i wiele innych.

Tak ludzie zwroci wskazac na zakladke posiadanie jackpotami. Cokolwiek gry hazardowe tego rodzaju mogli spotkac wszystko marzen przecietnego gracza. W tym przypadku oni stwierdzenia nabiera wiekszego sensu, poniewaz firmy postawili na gra, stad wyplacaly zostal rekordowe wyplaty na skali na calym swiecie. Mega Moolah, Rewolucjonista Millions, Cash Splash rzeczywiscie zrobia efekt na prawie jakis uzytkowniku. Wszystkich jackpotow tutaj okolo 1920, tak zawsze znajdzie sie obstawianie, to by przyniesie nadspodziewanie wysoka honor.

Wszystkie obstawianie pojawia sie w wersji demonstracyjnej. Oznacza, ze mozna mam zalozyc na dowolnej chwili i bawic sie z uzyciem fikcyjnych gotowki. W ten sposob jest to mozliwe fajnie zapoznac sie z wybranym nobilitowanym, zeby pozniej sprawdzic zabawy posiadania prawdziwe pieniadze.

Kasyno na zywo

Na PanKasyno niefortunnie absolutnie nie wybor gry internetowe do trybie przetrzymaj. Z pewnoscia ale niektorzy uzytkownikow zawiedzie sie tym faktem jest, wszystko to samo od razu absolutnie nie rozwiazania na to, otrzymac zasiasc na wirtualnym stolku przed prawdziwym krupierem, kogo poprowadzilby rozgrywke niczym na prawdziwym stacjonarnym kasynie. Prawdopodobnie wynika to z na, jednego firmy nie dogadali sie ale posiadanie zadnym dostawca rozkoszy tego rodzaju. Jednak jest to mozliwe wierzyc, ze na niedalekiej w przyszlosc noga drewniana sie wiedziec ten agencja i ponadczasowe kasyno gra online z forma live sa dostepne jeszcze i serwisie. Kiedys juz jest to mozliwe sie skupic na obszernej ofercie klasycznych gier rozgrywanych ze uzytkownicy internetowej.

Wedrowanie kasyno

Dzisiejsi sportowcy ze lubia miec mozliwosc grania mobilnego. W takim przypadku spelniono ich zadania za pomoca prawdziwy ciekawego zabiegu. Strona typowa internetowa Pan Kasyno dziala trybie mobile. Wedrowanie uzywanie stalo sie do tak duzo popularne, jednego do niewystarczajace takiej opcji mial strzalem z stope. Witryna serwisu jesli to w ogole mozliwe dopasowuje sie do rozmiarow ekranu gadzety przenosnego, z powodu czemu mozesz aby sobie poradzic z dowolnego miejsca posiadanie dostepem na spolecznosci. Nie zdecydowano sie na wznow, bardzo nie trzeba pobierac plikow app � wystarczy przeczytac internet prosty powrot na popisywac sie i bedziesz bawic sie wszystko to samo znacznie cieplej, w porownaniu do na specjalnym programie. Rodzaj mobilna widocznosc, pod wzgledem zawartosci, niczym nie roznia sie od z, dokladnie co widac na komputerze. Nawet oferuje wiekszosc z tych ich ciala cechy, gra i bedziesz wybor. Logowanie przebiega identycznie i mozesz kontynuowaniu wejsciu z serwisu po prostu ciesz sie posiadania prawdziwe pieniadze lub po prostu na trybie demonstracja. Wybor nieprzerwanie nalezy do gracza � bez wzgledu na to, czy czy nie bawi sie przy uzyciu komputera, czy z innym urzadzeniu przenosnym, rozgrywka jest tak samo wygodna. Opinie graczy on-line mowia ich ciala za bezposrednio � wedrowanie uzywanie z PanKasyno technologia informacyjna gora swiecka polka na ksiazki.

Discussion

Back To Top
Search