PageSourceSearch

https://labortemporis.com/modules/pkcompare/views/js/scripts.min.js

js labortemporis.com collected 2026-10-04 22:15:10 UTC 3,186 bytes, 1 lines download raw bytes

1let ProductCompare=(()=>{let a={},s={},t={selectors:{addButton:".add_to_compare",loader:"in_progress",buttonActive:"in_comparison",counter:".total-compare-val",counterAttr:"data-productsnum",compareProductsBtn:".bt_compare",dropdownContainer:".js-pkcompare-container",tabs:".js-tab-el-compare",maintable:"#product_comparison"}},n={cacheElements(){var e=a.selectors;elements={$compareProductsBtn:document.querySelector(e.compareProductsBtn),$dropdownContainer:$(e.dropdownContainer),$tabs:$(e.tabs),$maintable:$(e.maintable),$counters:[...document.querySelectorAll(a.selectors.counter)]}},updateCounters(){elements.$counters.forEach(e=>{e.setAttribute(a.selectors.counterAttr,s.size),e.textContent=s.size})},updateClickedBtnState(e){var t=e.querySelector("span"),o=t?e.querySelector("svg"):e,r=s.has(e.dataset.pid);o.classList.toggle(a.selectors.loader,s.isLoading),e.classList.toggle(a.selectors.buttonActive,r),t&&(t.textContent=r?a.phrases.remove:a.phrases.add)},showNotification(e,t="info"){$.jGrowl(e,{theme:$.jGrowl.defaults.theme+" "+t,header:a.phrases.title})},hideComparisonPageProduct(e){e=document.querySelectorAll("td.product-"+e);e.length&&e.forEach(e=>e.remove())},reRender(e){var t,{$dropdownContainer:o,$tabs:r,$maintable:a}=elements;o.length&&((t=o.parent()).css("height","auto"),t.toggleClass("hidden",0===e.products_number),o.html(e.miniproducts)),r.length&&r.html(e.products),s.isComparisonPage&&0===e.products_number&&a.addClass("hidden"),n.updateCounters()}},o={initiateQuery(e){let t=Number(e.dataset.pid);var o=s.has(t);let r=o?"remove":"add";if(!o&&s.isFull())return n.showNotification(a.phrases.max,"error");$.ajax({url:a.controller,async:!0,cache:!1,data:{ajax:1,id_product:t,action:r},beforeSend:()=>{s.setLoading(!0),n.updateClickedBtnState(e)},success:function(e){"add"==r&&(s.add(t),n.showNotification(a.phrases.added,"success")),"remove"==r&&(s.remove(t),n.showNotification(a.phrases.removed,"info"),s.isComparisonPage)&&n.hideComparisonPageProduct(t),n.reRender(e)},error:(e,t,o)=>{console.error("Compare module error:",t,o),n.showNotification("Some error occurred. Try again.","error")},complete:()=>{s.setLoading(!1),n.updateClickedBtnState(e)}})}},r={bindEvents(){document.addEventListener("click",function(e){var t=e.target.closest(a.selectors.addButton);t&&!s.isLoading&&(e.preventDefault(),o.initiateQuery(t))}),"undefined"!=typeof prestashop&&prestashop.on("pkelementsTabsReady",function(){n.cacheElements()})}};return{init:function(e){a={...t,...e},s=(e=a.ids,{products:new Set(e.split(",").filter(Boolean).map(Number)),isLoading:!1,add(e){return this.products.add(Number(e)),n.updateCounters(),!0},remove(e){e=this.products.delete(Number(e));return n.updateCounters(),e},has(e){return this.products.has(Number(e))},get size(){return this.products.size},setLoading(e){this.isLoading=e},isFull(){return this.size>=Number(a.max_items)},get isComparisonPage(){return"module-pkcompare-compare"===prestashop.page.page_name}}),n.cacheElements(),r.bindEvents()}}})();document.addEventListener("DOMContentLoaded",()=>{if("undefined"==typeof pkcompare)return console.warn("Compare module is installed but not configured");ProductCompare.init(pkcompare)});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.