/** * Copyright ETS Software Technology Co., Ltd * * NOTICE OF LICENSE * * This file is not open source! Each license that you purchased is only available for 1 website only. * If you want to use this file on more websites (or projects), you need to purchase additional licenses. * You are not allowed to redistribute, resell, lease, license, sub-license or offer our resources to any third party. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. * * @author ETS Software Technology Co., Ltd * @copyright ETS Software Technology Co., Ltd * @license Valid for 1 website (or project) for each purchase of license */ $(document).ready(function(){ if($('#quantity_wanted').length && $('.product-add-to-cart').length) { setTimeout(function(){ $.ajax({ type: 'POST', url: '', async: true, cache: false, dataType : "json", data: 'ajax=1&quickview=0&action=refresh&quantity_wanted='+$('#quantity_wanted').val(), success: function(jsonData,textStatus,jqXHR) { if(jsonData) { var addToCartBt = ".page-product:not(.modal-open) .row .product-add-to-cart, .page-product:not(.modal-open) .product-container .product-add-to-cart, .page-product:not(.modal-open) .row .js-product-add-to-cart, .page-product:not(.modal-open) .product-container .js-product-add-to-cart"; if(jsonData.product_add_to_cart && $(addToCartBt).length) { var t = $(addToCartBt).find('.add'); if (!(t.length <= 0)) { var n = $(jsonData.product_add_to_cart).find('.add'); if(n.length > 0) t.replaceWith(n[0].outerHTML); else t.html(""); } t = $(addToCartBt).find('#product-availability'); if (!(t.length <= 0)) { var p = $(jsonData.product_add_to_cart).find('#product-availability'); if(p.length > 0) t.replaceWith(p[0].outerHTML); else t.html(""); } t = $(addToCartBt).find('.product-minimal-quantity'); if (!(t.length <= 0)) { var m = $(jsonData.product_add_to_cart).find('.product-minimal-quantity'); if(m.length > 0) t.replaceWith(m[0].outerHTML); else t.html(""); } } } }, error: function(XMLHttpRequest, textStatus, errorThrown) { } }); },200); } prestashop.on('updateCart', function (){ const currentCart = $('.elementor-element[data-widget_type="shopping-cart.default"]'); const lightbox = currentCart.find('.elementor-cart__wrapper .elementor-lightbox'); if(currentCart.length && lightbox.length && !lightbox.hasClass('elementor-cart--shown')){ currentCart.find('.elementor-cart__toggle').find('a').first().trigger('click'); } }); if($('.ets_speed_dynamic_hook').length || ssIsCeInstalled) { var datas=''; $('.ets_speed_dynamic_hook').each(function(index, domhook){ datas = datas + '&hook_' + index + '=' + $(this).attr('data-hook')+'&module_'+index+'='+$(this).attr('data-moudule')+'¶ms_'+index+'='+JSON.stringify($(this).data('params')); }); var url = window.location.href; var indexphp = url.indexOf('?'); var indexthang = url.indexOf('#'); if(indexthang>=0) url = url.substr(0,indexthang); $.ajax({ type: 'POST', headers: { "cache-control": "no-cache" }, url: url, async: true, cache: false, dataType : "json", data: 'ajax=1&ets_superseed_load_content=1&ajax=1&count_datas='+$('.ets_speed_dynamic_hook').length+datas, success: function(jsonData,textStatus,jqXHR) { if(jsonData) { renderDataAjax(jsonData); if(jsonData.cart_products_count) { $('.cart-products-count').text(jsonData.cart_products_count); prestashop.emit('updatedAjaxCart', {}); } if(jsonData.creativeelements_header && $('.elementor-'+jsonData.creativeelements_header.uid).length) { $('.elementor-'+jsonData.creativeelements_header.uid).replaceWith(jsonData.creativeelements_header.content); if(typeof ceFrontend != 'undefined'){ ceFrontend.init(); } } if($(window).width()<768) { $("*[id^='_desktop_']").each(function(t, e){ var n = $("#" + e.id.replace("_desktop_", "_mobile_")); if($(this).html().trim()!='' && n.length) n.html($(this).html()); }); } $(document).trigger("hooksLoaded"); } }, error: function(XMLHttpRequest, textStatus, errorThrown) { } }); } }); function ets_superspeed_getCeCartHandler(){ var ShoppingCart = elementorModules.frontend.handlers.Base.extend({ getDefaultSettings: function getDefaultSettings() { return { selectors: { container: '.elementor-cart__container', toggle: '.elementor-cart__toggle .elementor-button', closeButton: '.elementor-cart__close-button' }, classes: { isShown: 'elementor-cart--shown', lightbox: 'elementor-lightbox', isHidden: 'elementor-cart-hidden' } }; }, getDefaultElements: function getDefaultElements() { var selectors = this.getSettings('selectors'), elements = {}; elements.$container = this.$element.find(selectors.container); elements.$toggle = this.$element.find(selectors.toggle); elements.$closeButton = this.$element.find(selectors.closeButton); return elements; }, bindEvents: function bindEvents() { var self = this, $ = jQuery, $container = self.elements.$container, $closeButton = self.elements.$closeButton, classes = this.getSettings('classes'); // Activate topbar mode on click self.elements.$toggle.on('click', function (event) { if (!self.elements.$toggle.hasClass(classes.isHidden)) { event.preventDefault(); $container.toggleClass(classes.isShown); } }); // Deactivate topbar mode on click or on esc. $container.on('click', function (event) { if ($container.hasClass(classes.isShown) && $container[0] === event.target) { $container.removeClass(classes.isShown); } }); $closeButton.on('click', function () { $container.removeClass(classes.isShown); }); ceFrontend.elements.$document.keyup(function (event) { var ESC_KEY = 27; if (ESC_KEY === event.keyCode) { if ($container.hasClass(classes.isShown)) { $container.click(); } } }); $container.on('click', '.elementor-cart__product-remove a', function (event) { var dataset = $(this).data(); dataset.linkAction = 'delete-from-cart'; $(this).closest('.elementor-cart__product').addClass('ce-disabled'); event.preventDefault(); $.ajax({ url: this.href, method: 'POST', dataType: 'json', data: { ajax: 1, action: 'update', }, }).then(function (resp) { prestashop.emit('updateCart', { reason: dataset, resp: resp, }); }).fail(function (resp) { prestashop.emit('handleError', { eventType: 'updateProductInCart', resp: resp, cartAction: dataset.linkAction, }); }); }); prestashop.on('updateCart', function(data) { if (!data || !data.resp || !data.resp.cart) { return; } var cart = data.resp.cart, gift = $container.find('.elementor-cart__products').data('gift'), $products = $(); // Update toggle self.elements.$toggle.find('.elementor-button-text') .html(cart['subtotals']['products']['value']) ; self.elements.$toggle.find('.elementor-button-icon') .attr('data-counter', cart['products_count']) .data('counter', cart['products_count']) ; // Update products cart.products.forEach(function (product) { var $prod = $( '