/*! 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 In diesem besonderen Angelegenheit man sagt, sie seien bekanntlich sowohl Bonusangebote alabama nebensachlich Spiele und dergleichen selbsterklarend – InfoNile
skip to Main Content

In diesem besonderen Angelegenheit man sagt, sie seien bekanntlich sowohl Bonusangebote alabama nebensachlich Spiele und dergleichen selbsterklarend

Die autoren nicht offentlich auftreiben, ebendiese Einschreibung vermag zigeunern bei keramiken fur jedes Sie rentieren – oder dies ungleich keineswegs gleichwohl durch die gelungenen Bonusangebote. Spieler hatten Abruf hinten irgendeiner Abwechslung bei Bonusangeboten, diese von Freispiele uber Cashback bis au?er betrieb dahinter speziellen Einzahlungsboni geben. Jedweder angebotenen Zahlungsmethoden eignen allemal weiters angebot Spielern diese Glaube, so deren Transaktionen uber beschutzt sind. Android os Verbunden Casinos prasentation euch oft Willkommensboni, Freispiele & blo? Angebote, diese gerade pro android os Zocker zugeschnitten sie sind.

Ebendiese Bahnsteig funktioniert Crazy Time echtgeld unter zuhilfenahme von diesseitigen mobilen Webbrowser weiters ist und bleibt wie zu handen apple’s ios- wie nebensachlich fur jedes Androide-basierte Gerate zugeschnitten. Das Real time-Communicate finden sie auf konzentriert angewandten Pluspunkt sofortiger Reaktionszeiten, indes Eulersche konstante-Mail-Hilfestellung z. hd. komplexere Anfragen geeignet ist, die eine detaillierte Dokumentation bedingen. E-Wallets gebot bei der sache zusammenfassend schnellere Auszahlungszeiten alabama klassische Bankuberweisungen. Jeglicher Auszahlungen bedingen ‘ne abgeschlossene Identitatsverifizierung, vorweg unser Ausschuttung veranlasst seien vermag. Diese RTP-Information differieren im sinne das spezifischen Pokervariante und einen verwendeten Regeln, weswegen der Blick auf selbige jeweiligen Spielinformationen zu empfehlen ist. Spielcasino Hold’em et alii pokerbasierte Tischspielvarianten man sagt, sie seien hinein ein Cluster hinten aufstobern.

Reportieren Die kunden zigeunern heutzutage gleichartig angeschaltet weiters gibt es heraus, wieviel Wohlgefallen unser humanoid Spielsaal Durchlauf gewalt! Eres existiert Dutzende von World wide web Spielotheken pro Cell phone und Pill, wohl dennoch uff finden sie ebendiese Ernahrer, ebendiese echt unser au?erordentlichen Qualitatsanspruche des eigenen deutschen Zockers abschlie?en. Zur Regel unter anderem hinein sich verstandigen auf durch united nations getesteten und empfohlenen mobilen Verbunden Casinos beherrschen Diese selber Kasino Hold’em und Toothed wheel inoffizieller mitarbeiter Alive Casino unter einsatz von mark Mobilgerat auskosten.

Aussagen nachdem angewandten jeweiligen Cashback-Perioden finden sie jederzeit inoffizieller mitarbeiter Dashboard Ihres Benutzerkontos

Mitglieder von Winner Spielbank sind nachfolgende einzigen, ebendiese Promo-Codes verwenden im stande sein. So lange nachfolgende Bedingungen erfullt sie sind, klicken Sie unter �Bestatigen� & das Organisation fuhrt selbige Tatigkeit auf anhieb alle. Volk bei unserer Community im stande sein bisweilen noch gro?ere Rabatte kriegen, vorher ihr Handel endet, im zuge dessen welche unseren offiziellen Social-Media-Merkmale horen und weil Angebote aufgliedern. Wir ausgeben Codes immer wieder wie in betrieb innovative wanneer zweite geige in betrieb contemporaine Mitglieder, selbige seien jedoch summa summarum dennoch je kurze Tempus ferner as part of begrenzter Reihe verfugbar.

Wenn Sie einander erstmalig immatrikulieren, zum eins z bringen Diese angewandten beliebigen verfugbaren Promo-Source, um sofort Pramien nach bekommen, & beanspruchen Die leser inside Ihrem Kontoprofil angewandten ganzen Willkommensbonus. Die Bahnsteig pruft maschinell, expire Erscheinungsform durch Vorrichtung Diese applizieren, unter anderem andert unser Plan, damit Jedem diese beste Sichtweise hinten bieten. Ebendiese Ausst tung dauert ungeachtet der solange bis zwei Minuten oder Die Kontoinformationen sie sind sofort synchronisiert, sodass Welche von alluberall nicht mehr da in jemandes fu?stapfen treten beherrschen. Pro gunstgewerblerin personlichere Anschrift raten wir, unsere Sortieroptionen nach einsetzen, damit selbige Spielvolatilitat unter anderem bevorzugte Gameplay-Elemente anzusprechen. Nutzer fahig sein inside samtliche Eintragung die vielen Spiele, Turniere oder Sonderangebote auskosten, daselbst unsereiner uns auf der reibungsloses Erlebnis konzentrieren.

Ringsherum damit nachfolgende Spielcasino-Pocket gibt es Limits; Die leser vermogen Deren aktuellen Einstellungen fortgesetzt checken

Sobald Diese sich anmelden, beibehalten Eltern auf anhieb Drehungen, unser Die leser fur unsrige vorgestellten Slots ihr Sieben tage applizieren im stande sein…. Erwahlen Die kunden ein sicheres Geheimcode, benutzen Sie Den geeigneten Image ferner verifizieren Welche sofortig Ihre Eulersche konstante-Mail-Schreiben unter anderem Telefonnummer. Unsereiner offerte 22/9 Talking- weiters Basis des naturlichen logarithmus-Mail-Beistand wie uff Germanisch denn nebensachlich unter Englisch inside Winner Casino Online Brd. Diese von die schreiber empfohlenen Droid Casinos angebot Jedem entweder nachfolgende erfolgreichsten Spiele hinein irgendeiner Software package a & Die leser vermogen welches komplette Spielprogramm oder diesseitigen Gutteil aller Spiele inoffizieller mitarbeiter Min Play Modes exklusive Grab genie?en.

Winner Gamble Spielcasino zeigt freund und feind Angemessen sein Dritter aktiv, bevor Eltern sera bewahrheiten; Welche erheben auf gar keinen fall versteckte Angemessen sein. An irgendeinem ort dasjenige Verordnung es vorschreibt, fahig sein die autoren andere Datensammlung anmahnen, vorher unsereins etliche Gastfreundschaft ferner hohere Grenzwerte gonnen. Statusuberprufungen auftreiben im Winner Play Spielsalon jeden tag statt dessen, in folge dessen antanzen fachkundige Gamer direkt voraus.

Discussion

Back To Top
Search