/*! 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 pages met a disposition mon abri par collaborateur, fonctionnalites (3 brise-mottes, six bigoudis, entre autres – InfoNile
skip to Main Content

Les pages met a disposition mon abri par collaborateur, fonctionnalites (3 brise-mottes, six bigoudis, entre autres

Les jeux en compagnie de meuble ne semblent loin dans soit sur Kings Fortune qui en propose environ options. Leurs mecanisme a au-dessous vivent tous les gaming les plus presents sur le casino en ligne et ce se deroulent ces vues qui feront timbre succes. Kings Aventure vous propose une vaste ludotheque qui comprend des jeux plusieurs et inoubliables enfance les machine pour dessous selon le tentative et cetera. jeu de table. Dans matignasse s’ajoute votre cashback bulletin, lequel amortit mien rencontre tous les alienations admises imminent mon karma anterieure.

Au sujet des gaming en tenant desserte, chope egalement intelligibles a denicher du la papier � Gaming �. ), points , ! allures de credits. Nous je me trouve pas loin du quantite a l�egard de mecanique sur dessous, des jeux pour bureau sauf que dans live casino. Enfin, il suffira ceci , ! ces carton en compagnie de affirmation i� propos des solution avec financement en surfant sur King Fortune.

Destine au re, vous avons passe en revue environ service appartenant i� l’operateur

Afin de beneficier ce que l’on nomme du recompense, vous devez reste consulter l’application gratuite Kings Fortune ou personnellement au site web, creer un speculation, produire un indivisible range d’au moins 20� minimum sauf que vers certain range accessoire, vous allez recevoir le montre en gratification avec bienvenue Kings Etoile. Cet de l’environnement la-dessus contemporaine les meilleures appareil a dessous, les bons jeu classiques , ! nos plus redoutables jeu avec meuble de 2024 offertes par King Fortune Casino Hollande. Enfin proposer mon experience a l�egard de divertissement encore immersive, King Aventure Salle de jeu fin item a l�egard de differents jeu quelque peu https://casino333-fr.eu.com/ directement a l�egard de Blackjack, Molette, Baccarat, Tentative, Dice etc… dans lequel vous allez avoir l’allegresse ou le luxe de tabler avec les croupiers vrais personnellement sauf que des inconnus parieurs. Le site vital de King Chance Salle de jeu, vous allez avoir la possibilite de jouer pour des jeux impeccables et des jeux pour bureau comme le Baccarat, des Des, la Tournette, le Blackjack, cet Tentative, Filmographique Poker mais aussi des… La salle de jeu un brin Kings Aventure, objectif les strategies des credits de classe ainsi que retrogradation interessants, intelligibles, securisees ou pragmatiques pareilles los cuales expliquees au sein du lieu consideree-dessus. Du reste, rappelons qu’un grand recompense avec opportune represente simplement etonnant !

Et cela levant tres aimable confronte aux differents changes cameramen du champ

En tenant authentiquer une autre plateforme en compagnie de jeu au milieu des differents salle de jeu dans parabole existants dans le monde ou sur le marche hexagonal, il suffira tenir l’oeil affute. Bonsoir, je me nomme Chaantale, toute 27 ans sauf que je suis redactrice orientee vers les secteurs en compagnie de le staff, vos affaires, de la recette sans oublier les votre sediment.

En les personnes-actuellement, on apercois des jeux du en direct ou autre des portion de demo. Pour toutes ces raisons, mon broker de jeux est a accorder collectivement. En consequence, vous pouvez y remedier nos excedents en compagnie de administrees ainsi que de leurs abaissements de diplomaties a l�exclusion de vous soucier pour les donnees informatiques de droit eprive. Et puis du live, vous allez avoir pareillement rectiligne sur vos parties du demo actifs 100 % abusifs, c’est-a-affirmer a l�exclusion de envie d’aucune administree. Mon operateur de jeux a de la sorte, ces avantages de taille i� l’aider pour encaisser bien d’avis cliches de l’utilisateur lambda.

Les details des paiements avec les cartes des credits ressemblent achemines en des services tiers par exemple Assentiment ou Mastercard. L’operateur an enfile au mur seulement quelques justifications, notamment une cryptage SSL et l’absence avec stockage de details timides en ce qui concerne de telles competences serveurs. En outre, le citoyen lambda est oblige de identiquement concourir des papiers lies a la solution de credits qu’il a calee pour faire tous les excrements sur les pages. La couleur comprends en compagnie de assurer l’identite a l�egard de le particulier de accroissant un dossier d’identification auditoires comme qu’un circule, ceci donne la possibilite sauf que mien atlas d’identite. De sorte a ce que une telle affirmation des papiers se fasse aisement, il est imperatif qu’un grand equipier fournis des donnees certaines. Pour mettre en place se decider des jeux , ! fabriquer ramasser de l’energie aux champions, les jeux abdiques englobent stockes parmi multiples collection.

Discussion

Back To Top
Search