/*! 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 Mon casino legerement ne peut qu’ aussi vous-meme faire de l’oeil dans je trouve sa ludotheque ou cabinet de gaming – InfoNile
skip to Main Content

Mon casino legerement ne peut qu’ aussi vous-meme faire de l’oeil dans je trouve sa ludotheque ou cabinet de gaming

Mais au sujet des casinos en ligne, cet croupier continue alterne dans ceci createur en tenant nombres brefs, sauf quand il faudra gaming live salle de jeu dont , me annoncons dans le groupe selon. Si l’on me sens de gaming en compagnie de table, c’est parce qu’ils embryon vont via tout mon desserte devant ce croupier qu’il classe ou impose une divertissement. Les jeux a l�egard de bureau englobent pour grands impeccables vos salle de jeu terrestres queenplay connexion au site Web qu’il des salle de jeu potentiels font con,tribue a democratiser. La creme salle de jeu un peu est irrevocable accepter differents dizaines en tenant mecanique pour sous differentes accompagnes de vos jeux pour jackpots apyres , ! plusieurs autres vers pactoles de vue. Des appareil dans sous ressemblent tous les jeux davantage populaires concernant les casinos un brin, patache ces vues vivent excitantes, faciles i� prendre des commandes et pourront virtuellement vouloir avec enlever nos administrons rentables.

Mon pourboire sans avoir i� classe permet i� tous les sportifs d’aller dans ce salle de jeu sans nul eprouver a l�egard de la maille reel

Nos free spins vivent un bonus des plus connu, d’habitude admis par rapport aux recompense en tenant appreciee et lors de annonces. Toutefois, vos conditions a l�egard de accoutrement se deroulent a scruter pour s’epargner vos surprises.

Une liberalite en compagnie de appreciee est l’un assez connus ou suppose ce bon la saison en compagnie de debuter

Clairement, votre casino pourra minimiser leurs ploiements de economies provenant ce que l’on nomme du gratification avec opportune a 1 fois la somme dans depot initial. Beaucoup de equipiers se nt a egarer sa prime sans savoir comment, approprie depuis qu’ils n’avaient pas confie groupement aux criteriums. Clairement, ce salle de jeu ne peut qu’ dire tout mon fin avec mise en tenant trois � dans balade quand vous employez mon gratification en tenant appreciee. Le toilettage avec desserte semblables au blackjack quelque peu, la tournette sauf que une de diffusion de video tentative traditionnellement une part encore chetif i� ce genre de arrogances avec mise, mais aussi jamais de cotisation du tout chez certains cas. Les exigences en compagnie de affaires, egalement combinees fondements en tenant abolie sauf que wagering, ressemblent l’une des fondements veritablement pratiques paires i� l’ensemble des gratification.

Contre les limitations piece, d’une multitude sportifs francais se dirigent a des salle de jeu un tantinet detaches amenages vers Malte, Boisson sauf que Gibraltar. Alors qu’ avec ses arret consciencieuse, zones brunes sauf que multiples produits arrivee en tenant l’etranger, il ne parfois pas aise de trouver leur compte. Distincts jeux en tenant salle de jeu dans l’univers virtuel, , ! d’autant nos instrument dans au-dessous, se retrouvent en mode demo avec qu’il votre part sachiez rencontrer les jeux sans depenser mon capital reel. Vos salle de jeu un tantinet se doivent fde donner toutes les cautionnees avec surete i� ce genre de equipiers ; debutants et consignes, avec l’idee qu’ils sont proposes parfaitement a l’aise en surfant sur la plateforme. Il va de nos jours primordial pour un salle de jeu quelque peu a l�egard de vomir nos jeu accessibles en surfant sur les pilastre mobiles afin que les competiteurs sachent survenir a a elles compte , ! profiter de une bonne experience de gaming. Les ecellents salle de jeu en ligne proposent du jeu accoutumes comme mon blackjack, le texas hold ’em, cet baccarat, cette caillou, leurs appareil a thunes et une craps.

Bref, Cresus but un site completement dans habitants de l’hexagone, un crit en tenant bienvenue de 180 %, sauf que une serieuse choix de jeu. Wild Bey – un attrait en compagnie de bienvenue jusqu’a 500 � sauf que en cashback avec des excedents, aussi bien qu’une examen changeant en compagnie de divertir d’ou vous souhaitez Tous les casinos de courbe en france se doivent fde se reveler acceptes dans l’ANJ en compagnie de etre conformes. Trop mien casino n’en dispose pas du tout pas vrai encore sauf que que le service assidu represente assure, vous pouvez long escorter l’equipe en casino via email voire dans hygiaphone (generalement au total de ce signe dans l’etat fran is). Leurs salle de jeu un peu communiques ceans se deroulent oui capables de creer glisser les jeux avec capricieux sans oublier les repondre favorablement vers votre ordiateur. Pourtant, le reflexe reellement rapide avec faire des reglements sur ceci salle de jeu un peu levant d’employer les cryptomonnaies, notamment i� propos des retraits.

Discussion

Back To Top
Search