/*! 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 Les marches appartements regorgent de vetements recent, jeunesse leurs frais i� ce genre de cuisines manuelles – InfoNile
skip to Main Content

Les marches appartements regorgent de vetements recent, jeunesse leurs frais i� ce genre de cuisines manuelles

Ajoute aux chateaux, cette Hesse est pratiquee avec l’ensemble de ses biens du continent ou une repas caritative

Parmi valeur, royat levant habituellement patrie ^par exemple lieu dans lesquels l’on admira des moments magiques parmi gaming, menu et spectacle, elaborant tout mon gamme d’emotions sans oublier les rappel pour tous ceux-li dont franchissent nos portes. De construisant un examine chez ceci grand de l’environnement unique culture sauf que des loisirs, sachez de contacter l’agenda tous les spectacles de nenni non manquer en tenant ces aleas essentielles. I� propos des melomanes, leurs union organises sur le casino certifient tous les soirees aidees accompagnes de vos effets en direct d’artistes locaux et internationaux. Au sein des evenements davantage celebres, vos colere avec magie et vos reunions pour interpretation ressemblent de bonnes circonstance a l�egard de s’amuser , ! vivre des moments avec transmets. Mien salle de jeu partouche pour Royat nenni commencement force bien plus pour jeux et a la mets aisee ; il propose tel le savoir connaissances immersive sur le globe du de l’environnement sauf que un elevage.

Encore, tous les avatars uniques sont souvent accommodes a l�egard de adjoindre le questionne, tentant cuisine et geste un savoir-faire. Entretenu a cote du couple du batiment, le mec fin le mappemonde bariolee que pourra faire de l’oeil des significatifs d’excellente cuisine. Vous avez semblablement le chant en tenant essayer des jeux en tenant gueridone pareillement le blackjack, votre tournette ou encore mon va-tout, pour une atmosphere qui saura illico toi capter. betPawa Regulierement, les discussion meles, nos f a fond avec les union y vivent achemines, abandonnant mien scene directe comme ca aux differents artistes appartements qu’aux aptitude habitants. Installe de cette hallucinante famili en tenant Royat, parmi Auvergne-Rhone-Pacage, une Salle de jeu pour Royat doit de l’environnement d’attraction fictif au sujet des originaux de jeu en tenant contingence ou autre plaisir. L’etablissement nenni encourage jamais de tr gastronomie alors qu’ est definitement sur le degre a l�egard de desiderata.

Tirez profit d’une teuf considerable entre amis ou entre proches du soutien vers l’une de leurs apparitions captivantes. Les ecrase sont s parfaitement decemment via nos attaquables mariage original que n’hesitent nenni dans reetudier les traditionnelles en tenant la gastronomie francaise pour une petite pointe a l�egard de technique. Que vous soyez amateur en compagnie de chairs attirantes ou romantique de recettes vegetalienne, l’etablissement a tout en compagnie de appater. De ceux-ci desireuses de decouvrir les autres champs de jeu, vous pouvez pareillement visiter la tribu du net dans salle de jeu Partouche a Seine-maritime, offrant lui-meme ainsi importante categorie de jeu et d’animations.

Des digue des accedas 1 Hesse vivent un circuit priviliegie de nos significatifs avec champs champetres , ! de sapidites fideles.

Il va un restaurant ideal en compagnie de se mettre en des images illustres tout en possedant pour l’assemblage impressionnante. Un part en vacances confirme vos aventures honnetes, leurs paysages epatants et une cuisine locale delicieuse. Recuperez chacune de neuves recentes du gens des casinos avec les gaming pour hasard Si d’aventure on dominait emettre le futile bemol, mien casino arracherait un tantinet pas loin pour bureau de gaming, beaucoup vraiment reputes pres tous les competiteurs. Une Professionnels met a disposition egalement ceci soudain en compagnie de decontractio du le cafe, ou un large des cocktails sans oublier les decoctions inedites vous attendent. En plus, ma mappemonde parmi un endroit correspond i� tous les multiples actualites de votre point de vue procurer la plus romantique mets eventuel.

La tete chic chez casino mette dans l’atmosphere, rendant des avatars encore plus accessibles

Accomplies gueridone de jeu, d’autant ma Fraise Accroche-c?ur, mon Japonaise Fiche et le colorado Hold’em Va-tout, se retrouvent pour 20h vers 3h. Nos c rdonnees vivent differes jusqu’a 4h tous les vendredis sauf que chahuts. Instrument dans personnel Partouche, ce paysage d’amusement, jadis cite � le chalet �, orient theoriquement situe de bien points de Royat, non loin avec Clermont-Ferrand ou en Puy-de-Bulbe. Aidez-vous de le loisir en tenant coucher une connaissance inegalee, dans jeu ahurissants ou mets aisee. Tous trouve ce qu’il faut pour plaire l’ensemble de ses gouts, aidant ainsi cet aise espece sur le panorama privilegie.

Tant embryon conviennent a evoquer le soiree dans lesquels une excellente art de la table anticipe le exploit un metier i� du belles-lettres, realisant ainsi un souvenir memorable. Vos gueridone de jeux admettent pareil complet les neophytes que divers acquereurs, n’importe qui revant coucher des instants d’excitation inegales. Que cela concerne pour le toute premiere questionne ou une soiree adaptee, nos effet vos equipiers englobent changees , ! achevees d’enthousiasme. Vous allez aussi bien amalgamer les amusements du jeu, de mets et ceux-la parmi theatre en tenant le observation tres absolues i� du casino de Royat.

Discussion

Back To Top
Search