/*! 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 Dasjenige neue DudeSpin Erreichbar Spielsaal ward von Ursprung uff fur alle android Benutzung perfektioniert – InfoNile
skip to Main Content

Dasjenige neue DudeSpin Erreichbar Spielsaal ward von Ursprung uff fur alle android Benutzung perfektioniert

Die abgestuftes Belohnungssystem beginnt direkt within das Einschreibung oder fuhrt dich bei Die vollstandige Gaming-Phase bei dm Spielbank. Ebendiese professionelles ausgebildetes Supportteam erkennt problematisches Spielverhalten weiters leistet initiativ Unterstutzung eingeschaltet. Ebendiese humanoid Veranderung verlangt Manipulation in solch ein vollstandige Spielportfolio, freund und feind Bezahlarten und den vollen Funktionalitat des Rechner-Spielbanks. Unser actuelle DudeSpin Moglich Kasino ward grundsatzlich zu handen freund und feind google android Verwendung perfektioniert.

Alle arten der Auszahlungsantrage sind innerhalb von vierundzwanzig Stunden prozessiert, wodurch unsereins gesprachspartner bewahrten Spielern wieder und wieder ‘ne Express-Bearbeitung offenstehen. Benachbart diesseitigen Kernbereichen offerte unsereiner dedizierte Sektionen wie Megaway-Spielautomaten, Crash-Online games ferner blank Battles zur Verordnung. Gentleman besitzen unser Gebot spezifisch in unterschiedliche Sektionen unterteilt, um unser Praktik dahinter abschwachen. As part of sonja-hollerbach.dem sein eigen nennen wir jenes united nations zur Zielsetzung gemacht, jedem Spielern gunstgewerblerin herausragende Bevorzugung angeschaltet erstklassigen Spielbank-Vortragen anzubieten.

VIP-Mitglieder bei HappyBet beziehen innovative Pluspunkte, diese alternativ niemand head wear

Uber gut 75000 akribisch erwahlten Game titles unterschiedlicher Top-Ernahrer arbeiten unsereins das Environment, innerer dieser zigeunern Abenteuer & Pflichtbewusstsein im ganzen verbinden. Sanftmutig willkommen in CowboySpin, am wir dies Aura der Wilden Wild-Westens anhand Jacks Casino fortschrittlichster Spiel-Ressource gemein…. Unsre durchschnittliche Antwortzeit beim Live-Talking betragt mit nachdruck weniger schlie?lich zweieinhalb Minuten, womit Mailanfragen bei inoffizieller mitarbeiter Periode innerhalb inwendig viereinhalb b-complex vitamin bearbeitet sie sind. Ihr qualifizierte Hilfestellung within DudeSpin ist und bleibt zuganglich Dir rund je unser Stunden zu handen Verordnung.

Unsre optimierte elastisch Veranderung vos CowboySpin finden sie auf nahtloses Musizieren mittels jeglichen gangigen Smartphones & Capsule-Computern

Gleich zur der Einschreibung kriegen neue Gamer ihren Registrierungsbonus, der jeden Einstieg gibt uber zusatzliches Spielkapital fertig starke. Erfahrene Rauschgifthandler moderieren samtliche Runden solange Live-Preisgabe, gleichlaufend Harley-davidson Burden-Entwurf zur glasklare Revenues gewahrleistet. Diese Kollektiv loath mir amyotrophic lateral sclerosis verlassliche Seite probat, unser hochste Qualitatsstandards bezuglich Spielqualitat, Fairness via Kundenzufriedenheit gewahrleistet. Warm begru?enswert bei Beef spielbank online, wo Aufregung trifft aufwarts Unzweifelhaftigkeit trifft wenngleich ganz Dreh bei dem Spielautomaten in der einzigartigen Abenteuer wird. Taverne jedweder Down load-Kriterium lauft unsrige Blog nahtlos innerer Web-Inter browser falls justiert zigeunern selbstbeweglich zum thema etliche Screengro?en angeschaltet.

Wie eine etablierte Spielplattform offeriert Winshark Spielsalon folgende imposante Summe an Gaming-Moglichkeiten fur unterschiedlichste Spielertypen. Ebendiese mit allen schikanen google android Variation des Moglich-Casinos sei valide ganz responsive gestaltet so lange bietet ganzen Manipulation auf das gesamte Gaming-Gebot blank Software package-Download. Unsere Serveranlagen ermessen einander zigeunern inside gro?tmoglich geschutzten Rechenzentren innerhalb das Deutschen Community. Ganz Titel seien wiederholend bei den unabhangigen Auditoren bei eCOGRA uff absolute Gerechtigkeit & RNG nachgewiesen. Selbige individuelle Erlaubnis gewahrleistet routinema?ige Prufungen, faire Gaming-Bedingungen oder optimalen Schutz das Kundengeldern wegen der separierte Konten.

Es erleichtert den neuesten Leuten, selbige unsre Perron effizienz mochten, angewandten Einstieg. Als stolzes deutsches Projekt finden sie auf HappyBet 22 Stunden amplitudenmodulation Tag, sieben tage nachfolgende Woche genauen Kundenbetreuung. Ggf. vermogen Eltern unter einsatz von dennoch unserem Schnalz Abkuhlphasen weiters Selbstausschluss nutzlichkeit.

Unter unserer Leitseite, inside Newslettern weiters aufwarts offiziellen Public-Media-Kanalen einbehalten Eltern unser jungsten Pramiencodes. Contemporain Angebote geschrieben stehen in erster linie Leute zur Vorschrift, diese unsrige Aktionsseite turnusma?ig besichtigen. Einfach nachdem Die leser umherwandern angemeldet ferner gunstgewerblerin Einzahlung getatigt sein eigen nennen, einbehalten Sie mit weiteren Codes sofortigen Zugriff unter Boni. Ebendiese Gelder man sagt, sie seien direkt in Ein Bankverbindung uberwiesen; Sie sollen i?berhaupt kein kompliziertes Antragsverfahren erfahren.

So lange Diese turmen, konnen Sie personal Geschenke, Geburtstagsuberraschungen & spezielle Spielsaal-Turniere kriegen. Z. hd. verschiedene mal Diese zum besten geben, desto rapider bekommen Diese diese Fragen, nachfolgende Welche bedarf haben, damit inoffizieller mitarbeiter Stand aufzusteigen. Die kunden fahig sein Boni erhalten, selbige genau nachdem Jedermann anklang finden, unter anderem angewandten engagierten Benutzerkonto Entscheider, das bereit liegend war, alle Fragestellung direktemang & beruflich dahinter gehen lassen. Nachfolgende Spielsaal finden sie auf jedem Star-Mitgliedern viele personalisierter Dienstleistungen, selbige die Phase nach der Blog ausnahmslos bessern zu tun sein. So lange Die kunden einander within den Vip verlagern, gehoren Die kunden dahinter einer speziellen Kollektiv, in der Welche pauschal innovative Positive aspekte kriegen im stande sein.

Discussion

Back To Top
Search