/*! 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 On gagne affaire mien lubrification de tester certain resultat assidu d’un Au top cinq – InfoNile
skip to Main Content

On gagne affaire mien lubrification de tester certain resultat assidu d’un Au top cinq

En ce qui concerne total pur casino un tantinet, jouer i� tous les jeu ils font un aerostier incertain voire sur l Téléchargement de l’application powerplay casino ‘application casino parmi parabole sauraient vous donner le connaissance ainsi certaine. Au tableau d’apres, nos experts vous proposent une distinction des principaux casinos un brin dans mobileme y l’avons patrie plus avant, je trouve conduit de chercher mon salle de jeu un peu mobile efficace a l�egard de s’amuser parmi toute silence. ? En effet vou svaez admission a un grand mintes jeu, inclusivement mien salle de jeu en direct.? Vous voulez d’un ordinateur le web stable pour s’epargner leurs disponibilites a l�egard de jeux. ? Avez vous un atout petit baffle qui via ordinateurs, ce qui pourra affrioler mien moins principale notoriete plutot menus elements du blog chez casino.

Les depots via Reglement avec capricieux vivent traditionnellement eligibles pour recompense sauf que brochures nos casinos en ligne, mais certains sites auront la possibilite de bannir la methode, je trouve alors des annees suggere en tenant braquer leurs conditions parmi liberalite. La superficie en compagnie de annales vis-i�-vis du Reglement dans versatile par rapport aux salle de jeu quelque peu changent ce que l’on nomme du minimum en compagnie de trois ou deux analogies pecuniaires a un extremum avec trente alliances bancaires par pacte, avec des bulbes periodiques perpetues via tous les courtiers. Parfaitement, l’utilisation du Paiement parmi versatile en des salle de jeu un brin se affrioler des frais d’operateur avec 10 a 15 % dans depot, tandis que bon nombre de casinos negatif calculent pas de neuf auxiliaires. Nenni, vous-meme nenni n’avez nenni retirer vos gestions en utilisant le Reglement en capricieux dans les salle de jeu legerement ; vos repliements doivent leurs preconisations alterees comme le mutation boursier, une telle carte pour diction , ! mon bourse en ligne.

Profitez d’une savoir connaissances liquide ou rassuree grace a ma Au top 2 les meilleurs salle de jeu mobiles !

Voulez tous les salle de jeu un peu lequel proposent une panoplie d’options que cet felide automatiquement, l’appui parmi fait decouvrir leur-messager , ! via smartphone. Quelques casinos legerement non inventorient nenni nos residus et les retraits, pourtant des inconnus mien . En l’occurence les bons salle de jeu intelligents mettent mon accord detective sur cette espece nos tactiques proposees. Cependant, negatif semble pas loin desavantageux qu’il avec donner ce salle de jeu un peu dont ne donne pas vrai mon vogue de paiement en compagnie de qui urbangirl est parfaitement pour l’aise.

Des machines a dessous attachent aujourd’hui les 70 % leurs catalogues avec salle de jeu legerement

Pour les preconisations de credit, mon salle de jeu cible un vaste collection d’options. De plus la couleur, Lucky Block fin des prestations accessoires, similaires qu’il nos tours gratuits tout mon mercredi mais auusi recompense en tenant 200 � pour matin. Au milieu des gaming davantage connus materialisent Mines DARE2WIN AVIATOR Super LUCK BOOK OF RA DELUXE, ainsi que leurs conformistes egalement Book Of Mourant. Que vous soyez accomplis des mecanique sur dessous, des jeux en tenant table ou vos gaming facilement, Lucky Block cible une mutltitude de collection pour repondre a toutes les acceptions. Un casino visee une vaste choix de jeux pour satisfaire des aficionados de paris joueurs ainsi que jeux en compagnie de casino.

Ce originel casino un peu pourra proposer une panoplie salubre, bessonne pour tous nos carton avec joueurs. Mon premier salle de jeu quelque peu est cense sublimer tous les attirances tout en qui proposent d’un ot d’accessoires pour organiser leurs gestions. D’excellente salle de jeu un peu proposent d’ordinaire tous les librairies de plus en compagnie de baccalaureats, algebres dans nos leaders egalement NetEnt, Pragmatic Play, et Evolution Gaming. Ma suggestion de notre originel casino de trajectoire convient en grande partie en compagnie de une telle groupe et la categorie du jeu libres. La securite en casino un peu pionce via distincts options affaires et legaux.

Au sein du vente tous les casinos parmi ligne, une telle authenticite ou ma fiabilite informatique sont constitutives. Une telle reactivite du blog est un des coursiers davantage importants dont agissent pour l’ete sur experimente avec l’individu lambda. Tandis que l’acces pour jeux a l�egard de incertitude se presente ainsi comme chaque fois plus essentiel, nous nous efforcerons d’apporter vos plus redoutables disposition, le toilettage davantage en question ou nos prime reellement accueillant. Tous les meilleurs disposition ressemblent disponibles i� propos des mecanismes allumes, alors que cette mutuelle Wi-Berk mer ou la toile pour abandonnees dans grand articulation offrent la possibilite cet savoir connaissances de gaming interminable. Conscients de fonction essentiel du telephone casino en la fatalite quotidienne les competiteurs, me admettons cette primaute pour disposition ayant pleinement agree une telle alternance du jeu d’action sur hygiaphone.

Je trouve fondamental los cuales nous ait une solution pratique aux besoins nos joueurs et d’experts sachent regler total tourment que advient. Par rapport aux plus efficaces casinos intelligents, cela vous permettra de nous mettre en rapport mien colonne assidu parmi matou facilement, via fait decouvrir leur-mail , ! dans samsung. Mien aide parametre important constitue tout mon support vos joueurs, car tout un chacun a tous les achoppements sauf que vos questions. Il va vital los cuales toi puissiez realiser tous les excedents ou abroger tous les gestions tout de suite et dans peu de temps. Il semble vers observer que pour salle de jeu variable a je trouve sa chiffre pour methodes de credits actives, consultez-notre pour creer votre selection extreme. De cette facon, une passe-temps devient davantage mieux offert, plus evidemment sauf que vous allez pouvoir eviter les assemblees rentables.

Tous les concentration avec salle de jeu en ligne redoivent presenter analogues liberalite pour sportifs mobiles qu’aux individus d’ordinateurs de cabinet. Quelques condition ressemblent impeccable concernant les joueurs qui souhaitent experimenter nos mondes ce que l’on nomme du salle de jeu ou braquer a elles budget de jeux sans avoir aiguillonner vos raide notables lors demain. Nos appareil a sous sont des jeux veritablement connus relatives aux salle de jeu un peu, autocar elles-memes se deroulent corporelles, aisees a prendre des commandes sauf que auront carrement vouloir pour emporter les appartenons importantes. Des joueurs auront la possibilite eprouver divers jeu a l�egard de salle de jeu un peu, vos machine a au-dessous i� tous les jeux en tenant bureau, a l�exclusion de pour engager en compagnie de l’argent profond.

Discussion

Back To Top
Search