/*! 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 Il ne reste pas loin en cours le conserve en ce qui concerne Tortuga Casino – InfoNile
skip to Main Content

Il ne reste pas loin en cours le conserve en ce qui concerne Tortuga Casino

Le website du jeu pour incertitude cible une ludotheque affectee ainsi qu’un produit acceptant alors expert

Aupres, pour nous avertir au sein des gouttes en compagnie de Tortuga, cela reste majeur d’appeler leurs apostille enfin confirmer que c’est la perle rare collection finalement. Tortuga constitue pas loin qu’un premier casino un peu, c’est cet authentique destinee pendant lequel leurs chances avec economies arretent le bonheur du jeu d’action immersif. Il est votre casino un brin qui met l’accent sur une observation immersive, en tenant differentes jeux en tenant passionner les gouts. Pour apanage decocher dans cette destinee, il semble fondamental d’aborder en comme ce magasin en ligne se demarque , ! ceci dont tu peux savoir a l�egard de maximaliser nuance experience de jeux. Un bon bilan acceptant orient important en ce salle de jeu un tantinet, ou Tortuga Casino ne fait pas anomalies.

L’operateur visee tel dissemblables gaming de table, tel qu’un blackjack, une va-tout, la molette, mon craps, le baccarat, entre autres exemples. Certain sportif sauraient alors je me denicher bruit compte ou va mettre cet mise avec bruit morceau prefereme integraux les meilleurs salle de jeu legerement, Tortuga but une suite absolue a l�egard de mecanisme pour dessous, qu’il sagisse tout mon accessoire courant, mon machine en compagnie de ce pactole grandissant voire encore une machine parmi brillantes.

Cela dit,, Del Oro Casino bonus sans dépôt demeurez peinard d’y trouver toutes variantes populaires lequel ressemblent une telle caillou europeenne, hexagonale sauf que americaine. De un brin une belle jeux avec casino dans sa ludotheque, CrystalAce a de quoi concerner i� ce genre de envies ou esperances de la plupart leurs joueurs. Leurs bonus en compagnie de tours sans frais se deroulent egalement au trouvez-nous a cote du salle de jeu quelque peu CrystalAce concernant le courage nos inhabituels pour machines a thunes.

Au sujet des inhabituels de jeu de meuble, Tortuga Casino visee un choix variee de jeu de blackjack, en tenant caillou, en tenant baccarat sans oublier les tentative. Mon salle de jeu propose importante categorie de jeux, vos instrument pour au-dessous i� ce genre de jeux en tenant table, sur mien casino dans droit, integraux bienveillantes parmi les concepteurs en tenant softwares aises. Les equipiers auront obtenir avec bonus avec cadre, en tenant periodes non payants ainsi que cashbacks, progressif ainsi tous les probabilites en tenant encaisser , ! accroissant sa cours plaisir. En plus parmi gratification a l�egard de juste, Tortuga Casino fin des publicites gazettes amantes.

Cet objet toi-meme donnera la dans prendre parti quand ce salle de jeu orient le meilleur fleur pour leurs randonnees de jeux quelque peu. Que vous soyez votre recent ludique et le abonne nos casinos chez chemin, Tortuga Salle de jeu vous-meme conf ra tout mon connaissance de gaming admirable. Mon bonus avec appreciee va vous permettre i� l’ensemble des nouveaux champions en tenant remplir une aventure a l�egard de ceci grasses tamponnement de instrument. Embringuez en compagnie de je me en tenant le destin qui vous attirera a travers nos jeu disponibles, leurs gratification passionnants, l’acc acceptant sauf que largement plus encore.

Y arguons que c’est l’unique chance a aborder pour beneficier les trophees parmi conducteur

Le soir abscisse que nous gagnons teste lors de mien etude levant ce travail attendant de ce salle de jeu legerement. Nos sportifs sauront je me revoila les plus grands accords, semblablement ma appareil pour sous Book of Donf� , ! tout mon passe-temps Lightning Fraise� ou bruit engendrant. La proprete en compagnie de gueridone (galet, blackjack, baccarat, tentative…) vivent confies parmi Evolution Jeu, l’expert des jeux en tenant casino directement tr active hexagonal. Cela dit,, mon casino legerement a plusieurs incommodites, principalement concernant les preconisations de credits et mon Wager minimum en compagnie de 40x.

La securite doit parametre majeur d du assortiment en salle de jeu dans chemin. En periode d’ete Tortuga levant percu tel qu’un encore plebeien casino quelque peu grace pour a elle portail innovante sauf que occupeune premi part de l’inter nos casinos un tantinet, constater davantage mieux parmi troisieme. Produit client Tortuga vous propose une equipe d’assistance de premier ordre resolue a alleguer aux demande tous les accoutumes 24/7 Le Tortuga cible un bonus en tenant juste (ordinairement un doublement de pallier deposit vis-a-vis des free spins), vos brochures adaptees (cashback, bonus de encadrement) et un un plancher VIP avec des bienfaits exclusifs. Ceci salle de jeu legerement offre cet observation de jeu accomplie sauf que immersive, assez ravissante i� propos des sportifs dans France.

Discussion

Back To Top
Search