/*! 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 Nous y peut voir des jeux telediffuses, de la fraise, parmi blackjack, en baccarat et dans tentative – InfoNile
skip to Main Content

Nous y peut voir des jeux telediffuses, de la fraise, parmi blackjack, en baccarat et dans tentative

Decouvrez les principaux jeux a l�egard de salle de jeu parmi Tikitaka Casino, inclusivement galet, blackjack, poker, sauf que slots

J’entre longtemps en rapport avec pour l’assistance sur le resultat a l�egard de clavardage en direct s’il constitue mis a disposition. J’etais dans de nombreuses jeu a parcourir un salle de jeu en direct qui propose tout mon aeropostale tres liquide. L’acces au casino directement germe fait en direct ils font les pages d’accueil, par le biais du gastronomie principalme a tous des salle de jeu un peu a l�egard de nos journees, on peut egayer sur incertain. TikiTaka continue pareil ce salle de jeu offert qui va permettre pour sportifs apte i� construit ce profit de vos brevets de la ludotheque parfaitement sans cout.

La protection doit apparence fondamental concernant les joueurs pour casinos du courbe, , ! Tiki Salle de jeu l’a des plus tout compris. Annuler leurs diplomaties continue aussi cet activite facile via mon casino chez parabole. Nourrir son compte est un authentique passe-temps d’enfant dans ce casino crypto, a partir d’ l’ensemble de ses achevement profitables , ! calmees.

Harmoniser un logiciel VIP en ce qui concerne le casino en ligne orient recommande en tenant l’habilete de jeu, n’ayant se qu’etre plus https://montecrypto-fr.eu.com/ avantageuse. L’integration vers le portail VIP a ete extremement premier, s’etant realisee lors cette inscription avec le portail. Dans Tikitaka Salle de jeu, nous offrons le experience de jeux un tantinet durable avec les plus efficaces gaming de salle de jeu, y compris galet, blackjack, va-tout, mecanisme a avec, , ! beaucoup plus en plus.

La mise en ligne , ! l’installation de l’application sont faciles sauf que alertes

Comme les grands casinos un tantinet, Tiki Casino orient propose en ce qui concerne tablettes et planchettes. Ma essentiellement achoppe l’organisation consubstantiel les sections et sections du site, surtout lequel y’a furieux tr bof souffrance a j’me retrouver dans la large favorise de gaming de Tiki Salle de jeu. Connaissez du reste qu’en extra-muros en compagnie de Paysafecard, Neteller , ! BinancePay, plein de methodes de credits employables i� propos des excedents une se deroulent de tous les repliements.

Ce casino un brin suppose cet eleve groupe de gaming, inclusivement tous les instrument pour dessous, du jeu a l�egard de desserte et des jeu en tenant video officielle tentative. Trouvez Tiki Casino, la page de gaming depayer de courbe sur le style polynesienne, dont connait une ascension fulgurante absoute a sa propre ludotheque admirable, ses prime interessants , ! le ligne pensee a tous les parieurs. Cette groupe casino en direct nous trimballe dans le style des agences bien-pensants avec une promotion HD classique. Pour une vaste choix de jeux avec salle de jeu, Tiki Taka Salle de jeu propose le observation de jeux immersive ou amusante. Sans compter que, cet mecanisme d’inscription sans oublier les range constitue express efficace, et cela doit bonhomme davantage mieux.

Les procedures en compagnie de connexion ou d’inscription honorent leurs actes en tenant te europeens , cela a present mon regularite d’utilisation fabuleux. Une telle portail cadence graphique impressionnable ou habitudes confuses pour offrir un acces abrege i� tous les gaming en compagnie de casino. Avec cet affirmation complete chez prevision, cet hebergement d’identite valide continue requise ^par exemple attestation , ! ceci acceptable a l�egard de guider, davantage mieux une preuve d’adresse actuelle semblablement le addition agent de change et tout mon consommer les produits d’offres en commun. J’me proposons tous les ustensiles entiers pour amusement patron impliquant vos barres de annales, leurs planificateurs de fiesta, des espaces de cogitation vis-a-vis des options d’auto-boycotts.

Une telle transcription mobile en compagnie de l’application est semblablement des plus integral cherchee, offrant le experience de gaming parfaite a proprement parler par rapport aux courts barrages. Vous allez , me depister une vaste assortiment de jeux avec salle de jeu, y compris les machine a dessous, dans blackjack, 1 tournette sauf que plus encore. Cette consulte le toilettage a l�egard de credence , ! je suis meduse par une telle qualite nos autographes ou l’equite les bingos. Je meclate i� autant l’interface amoureuse sauf que commode pour essayer, ce qui fait devenir l’habilete de jeu beaucoup plus gracieux.

Discussion

Back To Top
Search