1$('.product-list-filter-input').on('change', function () { 2 const inputName = $(this).attr('name'); 3 const inputValue = $(this).val(); 4 // Built from the full current URL, not origin+pathname: rebuilding from the path 5 // dropped every other active filter, so changing the sort on a filtered listing 6 // silently widened the results back out (brand page category chips, offer_type, 7 // data_from, price...). Only the changed key is replaced. 8 const newUrl = new URL(window.location.href); 9 if (inputValue) { 10 newUrl.searchParams.set(inputName, inputValue); 11 } else { 12 newUrl.searchParams.delete(inputName); 13 } 14 // A narrower list has fewer pages; staying on the old page number lands on an 15 // empty one. 16 newUrl.searchParams.delete('page'); 17 window.location.href = newUrl.toString(); 18}); 19$("#search-brand").on("keyup", function () { 20 let value = this.value.toLowerCase().trim(); 21 $("#lista1 div>li").show().filter(function () { 22 return $(this).text().toLowerCase().trim().indexOf(value) == -1; 23 }).hide(); 24}); 25 26$(".search-product-attribute").on("keyup", function () { 27 let value = this.value.toLowerCase().trim(); 28 let container = $(this).closest('.search-product-attribute-container'); 29 let listItems = container.find(".attribute-list ul>li"); 30 let noDataText = container.find(".no-data-found"); 31 32 $(this).closest('.search-product-attribute-container').find(".attribute-list ul>li").show().filter(function () { 33 return $(this).text().toLowerCase().trim().indexOf(value) == -1; 34 }).hide(); 35 36 if (listItems.filter(":visible").length === 0) { 37 noDataText.show(); 38 } else { 39 noDataText.hide(); 40 } 41});
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.