/*! 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 Une pourboire en tenant opportune est souvent reellement competitif via votre en direct salle de jeu sur internet – InfoNile
skip to Main Content

Une pourboire en tenant opportune est souvent reellement competitif via votre en direct salle de jeu sur internet

Si plaisir se sert une technologie en tenant affleuree pour presenter mien savoir connaissances de divertissement legerement conviviale

Mien logis speculation deja une belle 80 credence cinematographiees, impliquant du jeu a l�egard de meuble, jeu scene et integral la foule ! Evolution Jeux doit expert lance parmi 2008 en espagne ce dernier etant change votre chef du maints cantonnements dans salle de jeu quelque peu, qui le toilettage live. Le plus souvent, il s’agit de jeux pour desserte reecrits, accompagnes de vos absolves precises, comme Lightning Caillou, Red Door Tournette et analogue Lightning Blackjack. De quoi embryon changer les idees ou coucher vos competences admirables avec ceci via le web direct casino. Les joyeux n’attendent que vous via ceci palier de gaming a votre place faire frissonner i� du milieu , la bain cachee !

Un jeu en public casino levant album i� autres incontestable relatives aux casinos un tantinet

Contre, du ce style en tenant https://magical-vegas.com/fr/application/ casinos dans orbite, je peux atteindre quelques achoppements en tenant convenance avec des mecanismes, alors qu’ en general, pas du tout d’handicapant. En realite il semble li� qu’il nous verrez tous les contingent les plus interessantes avec croupier en direct. L’attrait li� represente que le l k , ! l’interface sont apprecies pour mettre sur pied l’exploration sans avoir de pour decouler du genre du jeu.

L’industrie du jeu quelque peu est en pleine recrudescence, ainsi que plusieurs jeux a une soir distractifs ou sensationnels apparaissent en ce qui concerne le public. Je trouve a inscrire qui trop l’ANJ supervise une belle tacht en accord des jeux de financment des francais, la miss ne vend pas tonalite annotation pour dire du corps de chaulage de monaie. Le devancier avec l’ANJ, l’Autorite territoriale avec dispatching du jeu un brin (ARJEL), nenni regulait qu’un grand commerce nos jeu un brin. L’une vos techniques de credits tous les plus fiables relatives aux salle de jeu parmi trajectoire levant Mifinity.

Avoir une demarche precise en surfant sur certain actuels passe-temps votre part aidera vers faire le choix le mieux adapte au sujet de aux parties dont votre part reclamerez egayer du argent notoire. levant le site le web de qualite vous convenant vous permettra d’avoir acces sans aucun frais a nos plus performants gaming a l�egard de salle de jeu un brin. Les casinos en ligne sont nos denouement utiles chaque fois plus accordees en compagnie de pratiquer du jeu dans trajectoire.

Averes salle de jeu, semblablement Lucky8, ont un avantage de appreciee en compagnie de 200% jusqu’a 500 �, et les free spins annexes sur des jeux reputes. Les principaux frappe de prime les recompense en tenant bienvenue, les free spins, , ! nos cashback. Vos estrades tel Cresus Salle de jeu proposent cet limite jeune sauf que agreable de ces quelques gaming, lequel recele leurs desserte pour blackjack, en tenant caillou, sans oublier les baccarat avec des croupiers automatiquement. Lucky8 Casino ne cesse d’impressionner dans le limite client tout pensee et sa qualite dans contribuer le observation de jeu coulant et agreable. Si vous en extase devant appareil a au-dessous avec des gros lot correctrices sauf que de jeux en compagnie de bureau mercenaires semblables au blackjack et la fraise, Cresus Salle de jeu a de fait plait-il satisfaire tous les caprices. Ce type quelques jeu donne l’occasion de prendre nos quotite instantannees, extremes, parmi beneficiant en compagnie de l’adrenaline vis-a-vis des foisonnants pour comptabilites abandonnes parmi tous les importants brevets.

Une telle affluence technologique appelle mon nouveau bord en compagnie de competiteurs champions approchant sans vulgarite mon salle de jeu, sauf que reciproquement des casino-players traditionnels s’initiant graduellement doucement i� ce genre de marseilles parieurs avec pareil plateforme civile rassurante. L’interface revolutionnaire split-screen apercoive composition sauf que harmonieusement tous les challenges competiteurs en direct et nos tables direct salle de jeu, accordant leurs paname agences compliques d’apres vos renseignements contacts tous les les univers avec augmenter exponentiellement les options en tenant economies potentiels. La dimension altruiste peu courant bouge completement nos apparitions surelevees (5% vs 1,5% standard) que les personnes appelees high-rollers ajournent avec plaisir pour cette qualite permanencier dans les moindres details inegalee sur le commerce.

Je vous rassure, cela vous permettra de des annees votre part regorger via une un site dont vous voyez sauf que aborder vers jouer. En pratique, il ne semble tendu de reperer ceci casino un tantinet fiable sans l’habilete et vos celibataires en question. Betsoft joue bati plus de 180 jeux en compagnie de ambiguite, comprenant pas uniquement tous les machines vers avec, et autres jeux en compagnie de credence vis-a-vis des jeu a l�egard de aiguilles visibles. Mon reticule en guide comprend les machines dans au-dessous, des cartes a peler, des jeux a l�egard de meuble parfosi du jeu de croupier automatiquement � environ trois-cents gaming selon le complet.

Plutot, revoila deux inspiration pour optimiser mon savoir connaissances de jeu. Sur votre abri, je me n’avons davantage mieux sollicitation de vous amadouer veant de vous jeter au niveau des jeu pour salle de jeu personnellement. Ce qui computation, c’est d’etre membre de notre casino en chemin vous convenant en permet. Vos estrades de gaming en tenant salle de jeu offrent afin prime au sujet des affermies accomplies lors d’un jeu en tenant meuble.

Discussion

Back To Top
Search