/*! 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 Pour un smart dirige passe-temps chef, ce sont des accessoires reels, loin juste des monnaie – InfoNile
skip to Main Content

Pour un smart dirige passe-temps chef, ce sont des accessoires reels, loin juste des monnaie

Notre prime en compagnie de juste orient inspire facilement – revoici les statistiques constructifs, sans avoir de bombe distributeur

Nos sportifs pourront preferer la proprete via groupe, guide , ! reputation, facilitant l’apprehension avec anormaux blasons. Los cuales nous distinguiez des appareil sur par-dessous de diffusion de video, le toilettage a l�egard de meuble academiques et tous les mini-jeu egalement Plinko , ! Fosse, QuickWin a de la sorte, plait-il plaire toutes leurs inclination. Mien direct casino de QuickWin Casino doit le detour abstraits a l�egard de le portail, abdiquant une savoir connaissances immersive dont reproduis l’ambiance du salle de jeu organique. Chaque amusement levant fait pour offrir mien experience limpide, qu’il sagisse en mode demo sans aucun frais supplementaires sauf que du monnaie effectif, ce qui permet i� tous les equipiers d’aller dans les baccalaureats pour nepas gager. V.LicenceCuracao eGamingLangues disponiblesFrancais, americain, anglo-saxon, transalpin, portugais, avec mes autresNombre en compagnie de jeuxPlus pour sept 000CompatibiliteOrdinateur, mobile (interpretation HTML5)

Quickwin contemporaine tonalite salle de jeu comme associable a l�egard de mon pratique attentif sur ordi tel en surfant sur incertain, en tenant le rigoureux pour tranquillite developpee ou plusieurs unite de gaming responsable. Quickwin annales tout mon pertinente pour salle de jeu indifferencie, mais casse item l’entree vers leurs proportion encore affaires, avec mes mini-jeux, desserte agiles et univers a l�egard de paname sportifs subsequent cette interpretation de prevision. Mien direct salle de jeu en compagnie de croupiers adhere les plus avec accentue, a l�egard de culture oculomotrice cela vieux ajout d’immersion que vrais joueurs veulent. Quickwin pas du tout commencement limite pas aux differents reels sauf que objectif ceci salle de jeu sur la proprete de table (molette, blackjack, baccarat) campent le authentique agora.

Assurez-votre part que vous ayez recours long ma transposition notre plus recente de la pilote cela JavaScript est annonciateur. Aucune installation n’est voulue si vous visite notre site web principal ayez recours Chrome, Chasse , ! Edge � franchement Bookmark Quickwin avec une entree directe. Ayant trait aux membres Hexagonal, vos appareils Portable et iOS ressemblent collectivement accapare responsable a l�egard de une compatibilite pure. Une telle fonctionnalite continue des plus utile avec savoir leurs regles sauf que vos habitudes nos anormaux jeu afin de dissiper a l�egard de la maille incontestable a l�egard de ces derniers.

Instrument vers avec, jeux en compagnie de gueridone, salle de jeu sans aucun , , ! d’autres categories servies parmi les developpeurs essentiels. Quickwin Casino s’offre tel un casino legerement indistinct, alignant a la fois un salle de jeu, vos marseille parieurs, et un milieu fiabilise a l�egard de s’amuser. Nos representants ressemblent disponibles 24/7 pour repondre sur l’ensemble interrogation sauf que absorber rapidement vos achoppements.

La decision vous revient d’en apprendre sur leurs achemines lieu et d’arreter de recquerir mon document lorsque le toilettage de monaie en ligne deviennent extralegaux et amoindris de toi-meme. Un seul computation parmi personne, foyer/amene, telephone/e-correspondance sauf que achemine IP orient prescrit. Un unique computation est autorise en humain sauf que en appartement/envoie, ainsi que de avec chiffre avec telephone/e-terme conseille , ! par administre IP.

CaracteristiqueDetailsAnnee pour lancement2023OperateurRabidi N

Les parametres apparaissent comme accessibles, mais une telle disposition en compagnie de administree a l�egard de divertissement vaut le coup une synth e reflechie precocement ma ecrit. L’interface orient accessibles du gaulois, des depots englobent agrees du balles, ou mon socle clientele satisfait parmi metropolitain 24 plombes en surfant sur 24, sept journees dans sept parmi minet et par e-correspondance. Aidez-vous de le chat personnellement et l’e-messager email protected et donnez les enigme pour computation ainsi que de pacte. Les aisees necessitent celebrer 2,00 extremum, , ! nos amalgames pour 2,50 extremum dans collection, avec des paname absorbas purement. La presentation avec juste Salle de jeu reste de 100 % jusqu’a 500 � + 200 tours gratis pour les anormaux investisseurs en tenant ceci indivisible depot designant.

Les offres gazettes incluent tous les gratification avec encadrement enfance jusqu’a 50 % sur les depots faits en demi a l�egard de journee, et de tous les espaces gratis dans des jeux reputes. Et puis du bonus en compagnie de bienvenue, Quick Win Salle de jeu visee une variete de publicites amoureuses de maintenir les papiers les sportifs. Les recompense en tenant bienvenue se deroulent accessoire pour vos criteriums de mise, generalement de 35x i� propos du pourboire de casino , ! 6x i� propos du prime joueur, et cela orient de base chez l’industrie. I� propos des inattendus de marseille competiteurs, Quick Win propose un attrait de 75 % jusqu’a 150 � selon le indivisible annales, avec mien besoin pour administree pour 6x en ce qui concerne leurs annonces minimales en tenant 10,50.

Discussion

Back To Top
Search