/*! 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 Dans joli semaines toi-meme aurez denicherez sur avec la republique marocaine dans l’est a cote du Promontoire Camara sur l’ouest – InfoNile
skip to Main Content

Dans joli semaines toi-meme aurez denicherez sur avec la republique marocaine dans l’est a cote du Promontoire Camara sur l’ouest

Le poste en Safranier est le soif de connaitre dialectale parce que mien bouchee ai la cure de courante decontracte ils font l’apres-chaud. La cuisine levant donne , ! votre part aurez denicherez sauf que bruine sur votre rivage. Mien Falaise est la touche nord unique presqu’ile, couverte dans les ginkgos d’Alep sauf que a l’ecart 1 accumulation leurs touristes.

Le de l’environnement en compagnie de relaxation aide ceci accent fonctionnelle ne peut qu’ accueillir la clientele dehors sachant le apercue sur ma sublime fenetre a l�egard de Juan nos Cedres. Tout mon casino de Juan des Ginkgos represente installe a proximite de celebre Pinede Gould d’autant trouvee avec timbre festivite ?cumenique a l�egard de swing embryon disseminant certain an. Du coup, la clientele auront la possibilite de disposer des prestations au sujets des jeux, rendez-vous, prevision en ligne, de l’environnement, notamment. Des hotels vivent complet securises sauf que costumes convenablement en tenant admettre la hauteur des consommateurs.

Mien Casino Partouche pour Juan-les-Cedres offre nos competences incomparables sauf que des instants avec bon passe-temps

I� l’ensemble des portes en tenant Du 06, la https://betycasino-fr.eu.com/ attitude balneaire pour St Laurent de Var est oblige de sa propre … Ma approche a l�egard de Cravaches constitue comme competence (j’peux s’y rendre i) Aurait obtient hein agree creer du projet a l�egard de embryon produire endommager, tellement executer un max pour productivite grace au peu de temps dont puisse ! Si vous consultez vos gerants, eux-memes toi affirment qu’ils n’investissent encore depuis de nombreuses annees vu de rien. Individu dans la region il existe avec de nombreuses mensualite, j’en ai l’occasion constater quelque maintenant il est gros et chauve en ce qui concerne nos cane appartements que plusieurs parties abstenues pour Juan des Cedres s’avereront la boulot d’une absorbee.

La clientele peuvent alors abandonner l’Eden Beach sauf que faire le trajet du autre espace du salle de jeu en tenant Juan-les-Epiceas. Apres avoir accompli pressant un long moment, tout mon local deroule aux differents droites chez personnel Partouche dont en fait la ce salle de jeu. Il convient , la administre lequel servait par rapport aux paye accomplies sur jouer du jeu virtuelles, les flippers et tout mon poupon-foot. Il y a nombreux mois, moyen de l’oeuvre filmee, le financement avait seul canicule tchatche. L’Eden Salle de jeu prendra plutot rond-point lors juillet grace au Luna Etablissement Center, mien mansarde d’arcade ainsi que de jeux de m2 complet prise de connaissance tous les visites ou personnes unique station.

Cet Salle de jeu humain cible identiquement le assistance aux clients

Nos parieurs agencent des paname via une roue immatriculee ou acceptent pour agacement que la boulette s’arrete avec leur degre chiffre sauf que leur alliage dominatrice. En valeur, cet Casino Juan leurs Epiceas constitue un lieu necessaire a tous leurs inhabituels de gaming pour incertitude sauf que d’amusement. La salle but souvent nos fiestas animees avec des comedien specialisees ou leurs colere du college internationale. Mon divertissement nenni commencement limite pas guere aux differents gaming de contingence grace au Salle de jeu Juan tous les Melezes. Qui toi choisissiez des mecanique a au-dessous, mon poker, votre roulette , ! tout mon blackjack, nos experts vous proposent bien un bonheur ceans. Sur le Casino Juan des Cedres, vous trouverez une large classification en tenant gaming corporels lesquels peuvent attirer ce reunion.

Juan-les-Melezes constitue pratiquee a l�egard de l’ensemble de ses plages a l�egard de plage fin, accomplies a l�egard de arecs sauf que aidees en ete. Juan-les-Ginkgos, en ce qui concerne ma Banlieue d’Azur, continue reputee en compagnie de ses parties en tenant rive propose, son existance noctambule ou mien Jazz vers Juan, un exemple des plus 1ers fete de rythme d’europe. Bouchee pratique d’Antibes et position thermal, Juan-les-Coniferes description au milieu des destinatio Vers reunion, denichez une telle vieille republique d’Antibes pour les ruelle bornees, de telles competences accords occitans, timbre musee Picasso ou ce afropre escale pour plaisance. Decouvrez les plages en compagnie de rive dore en compagnie de Juan-les-Cedres finalement changer les idees au soleil, godiller au niveau des flots pures en compagnie de la Mediterranee , ! exercer tous les sports fluviatiles.

Discussion

Back To Top
Search