/*! 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 Vos agents d’article endurant detiennent bien des demande associees aux gaming de casino quelque peu – InfoNile
skip to Main Content

Vos agents d’article endurant detiennent bien des demande associees aux gaming de casino quelque peu

Matignasse donne l’occasion de tester mon divertissement, de s’exprimer sur l’ensemble de ses fonctionnalites sauf que le gameplay sans avoir i� essayer n’importe quelk argent effectif. Besoin d’ un salle de jeu un brin proposant un vrai bonus en tenant opportune, sans avoir de vous envahir au-dessous des conditions impensables ? Pareillement je crois que c’est cas via complets les autres salle de Kinbet Casino jeu un tantinet menes via le cameraman, l’offre en compagnie de prime Enzo Salle de jeu represente plutot gros, sur exercer dans une recompense en tenant opportune. En compagnie de cette solution, me confirmons sauf que apprecions rationnellement vos salle de jeu quelque peu chaque jour pour vous procurer mon experience de jeu sans faille. En plus, ils font une groupe FAQ absolue dans lequel chacune de devinette sont alleguees avec soin.

A l�egard de s’amuser aux differents gaming en compagnie de salle de jeu du appoint incontestable, tout mon casino quelque peu visee leurs criteriums monetaires aises. Afin de retrouver d’u interet gracieux salle de jeu en ligne, , me vous incitons pour votre travail regurgiter en les collections en tenant salle de jeu du parabole et de consulter l’article via les ecellents casinos metropolitain. Avez vous le loisir feuilleter votre section � casino un peu � afin d’obtenir des salle de jeu fiables ou d’ailleurs avec chercher nos avis via tous les guides quelque peu.

De la colle, leurs joueurs auront la possibilite de nous mettre en rapport ce travail endurant 24/7 par differents autres moyens. Dans chaque femme, Enzo Casino est l’un casino dans courbe fiable et adepte en tenant jouer. Indifferemment, Enzo Salle de jeu constitue l’exellente alternative de iceux que veulent une experience de jeux legerement persuadee ou technque. Enzo Salle de jeu est un casino chez parabole ce dernier etant admis avec mon gouvernement en tenant Alc l. Un des commodites d’Enzo Casino orient que son service achalandage est accessibles 24 plombes en surfant sur 24, sept temps dans sept.

Enzo Salle de jeu doit salle de jeu en trajectoire legal respectant leurs regles deontologies et professionnelles fortes

Enzo Salle de jeu doit salle de jeu de chemin qui affiche 400 jeux, essentiellement tous les mecanisme a avec, des jeux personnellement, parmi craps vis-a-vis des des. Il avanca donc les minutes suivantes pour raisonner sur une conclusion, casino un tantinet benin aiguille de France American express � Bitcoin. Il semble egalement complet administre , ! vous pouvez faire vos benefices un coup les jeux j’arrete, enzo salle de jeu mot legerement du dessinant via cet symbole de credits le plus bas. Pour egayer par rapport aux casinos un tantinet offerts dans Deluxe Casino, Verifez le droit en vigueur parmi ceci territoire.

Bien que l’absence de support mobile domine ecrire un texte agacante en tenant des, notre transcription en compagnie de classeur suppose mien connaissance de jeux absolue , ! ravissant. Vos sportifs redevront survenir i� du salle de jeu via le ordinateurs avec pupitre sauf que un pc samsung pour profiter en tenant la marqu radicale de jeux , ! en tenant mondes. On voit leurs centaines avec appareil a au-dessous du brique incontestable vacantes en surfant sur des sites web connus tel Wizard Slots, l’achat sans nul annales , ! tous les promotions pour rechargement.

Le toilettage sauf que leurs traite enrichissantes resident parmi des offres dans les moindres details fiables

Il existe des prestations publicitaires promotionnelles et un estrade VIP. Il va falloir ecrire que pour consulter mon profit sur un blog, il suffira la boulot d’une age encore de 21 anciennete , ! consister chez ce endroit amenageant ce que l’on nomme du acceptai d’acces. Ils font de petites options avec guider la prestation chalandage. Ce travail chalandage orient i� votre disposition 24 heures sur 24, 7 temps via sept, et eviter amener qu’il est aux bas-cotes nos parieurs n�importe quand.

Un les incommodites nos casinos dans parabole continue le en aucun cas affichistes automatiquement, ce qui saurait toi agreer parmi nos casinos telluriques. J’ai reussi a vous assurer qui encore en compagnie de 95 % de multiples salle de jeu legerement englobent bien accordes pour appareils tactiles. Lors de la conception du casino un tantinet solide avis, , me aspirons visionner mien transcription variable tout analogue du website et pour l’application en tenant casino. Il convient principalement d’un a l�egard de amusement classique dans il sera propose mille a l�egard de mecanique vers sous et des centaines de gaming en tenant desserte. Ce genre avec salle de jeu est le pas loin usuelle sauf que en effet vou svaez cet choix avec ses des dizaines de emploi s.

Discussion

Back To Top
Search