PageSourceSearch

https://www.kippzonen.com/hubfs/hub_generated/template_assets/1/20…/template_product-filter.min.js

js kippzonen.com collected 2026-09-24 21:17:30 UTC 15,650 bytes, 2 lines download raw bytes

1"use strict";function saltyBlogFilter(options){var categoryFilter,subcategoryFilter,settings=$.extend({},{posts:[],current:1,postLength:0,$handlebars:null,$list:null,$loadmore:null,$pagination:null,prevArrow:null,nextArrow:null,filters:[],sorts:[],onAfterItemsLoaded:null,onAfterInit:null},options),filters=[],filteredPosts=[],mergeArrays=function(){for(var mergedArray=[],len=arguments.length,arrays=new Array(len),key=0;key<len;key++)arrays[key]=arguments[key];return arrays.forEach(function(array){mergedArray=[].concat(mergedArray,array)}),Array.from(new Set(mergedArray))};settings.postLength||(settings.postLength=settings.posts.length),settings.filters.length&&(filters=settings.filters.reduce(function(acc,filterItem){return filterItem.wrapper&&filterItem.property&&(filterItem.value=null,filterItem.urlParam||(filterItem.urlParam=Array.isArray(filterItem.property)?filterItem.property[0]:filterItem.property),filterItem.defaultText||(filterItem.defaultText="All"),filterItem.wrapper=$(filterItem.wrapper),acc.push(filterItem)),acc},[])),settings.sorts.length&&settings.sorts.reduce(function(acc,sortItem){return sortItem.wrapper&&sortItem.options&&(sortItem.value=null,sortItem.defaultText||(sortItem.defaultText="All"),sortItem.type="dropdown",sortItem.wrapper=$(sortItem.wrapper),acc.push(sortItem)),acc},[]);var dropdowns=filters.filter(function(item){return"dropdown"===item.type}),keywords=filters.filter(function(item){return"keyword"===item.type}),toggles=filters.filter(function(item){return"toggle"===item.type}),_getPage=function(){var first=(settings.current-1)*settings.postLength,last=settings.current*settings.postLength,postsToShow=filteredPosts.slice(first,last),template=Handlebars.compile(settings.$handlebars.html());settings.$pagination&&settings.$list.html("");var toAppend=$(template(postsToShow));settings.$list.append(toAppend),settings.onAfterItemsLoaded&&"function"==typeof settings.onAfterItemsLoaded&&settings.onAfterItemsLoaded.call(this,settings),settings.$loadmore&&(filteredPosts.length<=last?settings.$loadmore.hide():settings.$loadmore.show())},_setPagination=function(){if(settings.$pagination&&filteredPosts.length){var pages=Math.ceil(filteredPosts.length/settings.postLength),current=parseInt(settings.current),left=current-2,right=pages;function navAppend(value,label,wrapper,customClass){var item=["<li>",'<a href="javascript:void(0);" class="'+customClass+'" data-page="'+value+'">',label,"</a>","</li>"].join("");item=$(item),value===current&&item.addClass("is-active"),wrapper.append(item)}left<3&&(left=1),(right=left+4)>pages&&(right=pages),pages-4>0&&left>pages-4&&(left=pages-4),settings.$pagination.html(""),settings.prevArrow&&(navAppend("prev",settings.prevArrow,settings.$pagination,"page-prev"),1===current&&settings.$pagination.find(".page-prev").addClass("page-disabled"));for(var i=left;i<=right;i++)navAppend(i,i,settings.$pagination);settings.nextArrow&&(navAppend("next",settings.nextArrow,settings.$pagination,"page-next"),current===pages&&settings.$pagination.find(".page-next").addClass("page-disabled"))}},_getUrlParameter=function(parameter){parameter=parameter.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var url=document.location.href,results=new RegExp("[\\?|&]"+parameter.toLowerCase()+"=([^&#]*)").exec("?"+url.toLowerCase().split("?")[1]);return null===results?"":decodeURIComponent(results[1].replace(/\+/g," "))},_setUrlParameter=function(key,value){key=encodeURIComponent(key),value=encodeURIComponent(value);var url=document.location.href,baseUrl=url.split("?")[0],newParam=key+"="+value,params="?"+newParam,urlQueryString="";if(urlQueryString=null==url.split("?")[1]?"":"?"+url.split("?")[1]){var updateRegex=new RegExp("([?&])"+key+"[^&]*"),removeRegex=new RegExp("([?&])"+key+"=[^&;]+[&;]?");params=null==value||""===value?(params=urlQueryString.replace(removeRegex,"$1")).replace(/[&;]$/,""):null!==urlQueryString.match(updateRegex)?urlQueryString.replace(updateRegex,"$1"+newParam):""==urlQueryString?"?"+newParam:urlQueryString+"&"+newParam}params="?"===params?"":params,history.pushState("","",baseUrl+params)};const _filterPosts=()=>
1{filteredPosts=[...settings.posts],filters.forEach(filterItem=>{if(!filterItem.value||Array.isArray(filterItem.value)&&!filterItem.value.length||"string"==typeof filterItem.value&&!filterItem.value.trim())return;const postProps=Array.isArray(filterItem.property)?filterItem.property:[filterItem.property];if("keyword"===filterItem.type){const keyword=filterItem.value.toLowerCase();filteredPosts=filteredPosts.filter(post=>postProps.some(prop=>{const postVal=post[prop];return"string"==typeof postVal&&postVal.toLowerCase().includes(keyword)}))}else filteredPosts=filteredPosts.filter(post=>postProps.some(prop=>{const postVal=post[prop];return!!postVal&&(Array.isArray(postVal)?postVal.some(v=>filterItem.value.includes(v.value)):filterItem.value.includes(postVal.value))}))})};var _setDOMFilters=function(){function findItemByProp(item,list,prop){return list.find(function(k){return k[prop]===item[prop]})}function pushToList(value,list){var _list=[];if(Array.isArray(value)){var unique=value.filter(function(item){return!findItemByProp(item,list,"value")});_list=mergeArrays(list,unique)}else{_list=findItemByProp(value,list,"value")?list:mergeArrays(list,[value])}return _list}function createToggle(item,list){var $toggleList=item.wrapper.find(".toggle-list").eq(0),counts=function(posts,property){var counts={};return posts.forEach(function(post){var values=post[property];if(values){Array.isArray(values)||(values=[values]);var seen=new Set;values.forEach(function(v){if(v&&v.label){var key=v.value;seen.has(key)||(seen.add(key),counts[key]||(counts[key]=0),counts[key]++)}})}}),counts}(getFilteredPostsExcluding(item),Array.isArray(item.property)?item.property[0]:item.property),template=function(value,label,count,isActive){return $(['<li class="'+(isActive?"is-active":"")+'">','<a href="javascript:void(0);" data-value="'+value+'" class="toggle-item">','  <span class="toggle-left" style="display:flex; align-items:center;">','    <span class="toggle-checkbox"></span>','    <span class="toggle-label">'+label+"</span>","  </span>",'<span class="toggle-count">('+(count||0)+")</span>","</a>","</li>"].join(""))};$toggleList.find(".toggle-search").length||$toggleList.append('<li class="toggle-search"><input type="text" placeholder="Search..." class="toggle-search-input" /></li>');for(var i=0;i<list.length;i++){var _tt=list[i],count=counts[_tt.value]||0,dom=template(_tt.value,_tt.label,count,item.value&&item.value.includes(_tt.value));$toggleList.append(dom),item.value&&item.value.includes(_tt.value)&&_selectToggle({wrapper:$toggleList,selected:dom.find("a")},!0)}var $items=$toggleList.find("li").not(".toggle-search");$items.length>5&&($items.each(function(i){i>=5&&!$(this).hasClass("is-active")&&$(this).addClass("toggle-hidden").hide()}),$toggleList.append('<li class="toggle-see-more"><a href="javascript:void(0)">See more</a></li>'))}function handleLoop(list,type){var itemList=[],properties=Array.isArray(list.property)?list.property:[list.property],basePosts=settings.posts;"subcategory"===list.urlParam&&categoryFilter&&Array.isArray(categoryFilter.value)&&categoryFilter.value.length&&(basePosts=settings.posts.filter(function(post){return!!post.categories&&post.categories.some(function(cat){return-1!==categoryFilter.value.indexOf(cat.value)})}));var values=[];if(basePosts.forEach(function(post){properties.forEach(function(prop){post[prop]&&(values=pushToList(post[prop],values))})}),values.forEach(function(item){itemList=pushToList(item,itemList)}),itemList.sort(function(val1,val2){var v1=val1.label?val1.label.toLowerCase():"zzz",v2=val2.label?val2.label.toLowerCase():"zzz";return v1<v2?-1:v1>v2?1:0}),list.wrapper){var classpre=list.type;list.wrapper.html(""),list.wrapper.append('<label class="'+classpre+'-label">'+list.defaultText+"</label>"),itemList.length&&list.wrapper.append('<ul class="'+classpre+'-list"></ul>')}if(itemList.length)switch(type){case"dropdown":!function(item,list){var $ddlist=item.wrapper.find(".dropdown-list").eq(0),template=function(value,label,isActive){return $(['<li class="'+(isActive?"is-active":"")+'">','<a href="javascript:void(0);" data-value="'+value+'">',label,"</a>","</li>"].join(""))};$ddlist.append(template("","All",!0));for(var key=0;key<list.length;key++){var _dd=list[key],dom=template(_dd.value,_dd.label,!1);$ddlist.append(dom),item.value&&_dd.value.toLowerCase()===item.value.toLowerCase()&&_selectDropdown({element:item.wrapper.find(".dropdown-label"),value:_dd.label},{wrapper:$ddlist,selected:dom.find("a")})}}(list,itemList);break;case"toggle":createToggle(list,itemList)}}categoryFilter=filters.find(f=>"category"===f.urlParam),subcategoryFilter=filters.find(f=>"subcategory"===f.urlParam),dropdowns.forEach(function(item){handleLoop(item,"dropdown")}
1),toggles.forEach(function(item){handleLoop(item,"toggle")})},_selectDropdown=function(label,anchor){var _label=$.extend({},{element:"",value:""},label),_anchor=$.extend({},{wrapper:"",selected:""},anchor);_label.element&&_label.value&&_label.element.text(_label.value),_anchor.wrapper&&_anchor.wrapper.find(".is-active").removeClass("is-active"),_anchor.selected&&_anchor.selected.parent().addClass("is-active")},_selectToggle=function(anchor,isSelected){var _anchor=$.extend({},{wrapper:"",selected:""},anchor);_anchor.selected&&(isSelected?(_anchor.selected.parent().addClass("is-active"),_anchor.selected.parent().removeClass("toggle-hidden")):_anchor.selected.parent().removeClass("is-active"))};$(document).on("keyup",".toggle-search-input",function(){var query=$(this).val().toLowerCase(),$list=$(this).closest(".toggle-list"),isSearching=query.length>0,isExpanded=$list.hasClass("is-expanded");$list.find("li").not(".toggle-search, .toggle-see-more").each(function(){var $item=$(this);-1!==$item.find(".toggle-label").text().toLowerCase().indexOf(query)?$item.show():$item.hide()}),isSearching?$list.find(".toggle-see-more").hide():(isExpanded?($list.find(".toggle-hidden").show(),$list.find(".toggle-see-more a").text("See less")):($list.find(".toggle-hidden").hide(),$list.find(".toggle-see-more a").text("See more")),$list.find(".toggle-see-more").show())}),$(document).on("click",".toggle-see-more a",function(e){e.preventDefault();var $list=$(this).closest(".toggle-list");$list.hasClass("is-expanded")?($list.find(".toggle-hidden").hide(),$(this).text("See more"),$list.removeClass("is-expanded")):($list.find(".toggle-hidden").show(),$(this).text("See less"),$list.addClass("is-expanded"))});var _updateFilterSubCategoryVisibility=function(){if(categoryFilter=filters.find(f=>"category"===f.urlParam),!(subcategoryFilter=filters.find(f=>"subcategory"===f.urlParam)))return;const selectedCategories=Array.isArray(categoryFilter?.value)?categoryFilter.value.filter(Boolean):[],$subWrapper=subcategoryFilter.wrapper.closest(".blog-filter");if(selectedCategories.length)$subWrapper.show(),subcategoryFilter.wrapper.addClass("is-open");else{$subWrapper.hide(),subcategoryFilter.value=[];subcategoryFilter.wrapper.find(".toggle-list").find("li").not(".toggle-search, .toggle-see-more").remove()}},_reset=function(){_getUrlParameter("page")&&_setUrlParameter("page",settings.current),settings.$list.html(""),_filterPosts();new URLSearchParams(window.location.search);_setDOMFilters(),_updateFilterSubCategoryVisibility(),_filterPosts(),_setDOMFilters(),_updateFilterSubCategoryVisibility(),_setPagination(),_getPage()};const getFilteredPostsExcluding=excludedFilter=>{let posts=[...settings.posts];return filters.forEach(filterItem=>{if(filterItem===excludedFilter)return;if(!filterItem.value||Array.isArray(filterItem.value)&&!filterItem.value.length)return;const props=Array.isArray(filterItem.property)?filterItem.property:[filterItem.property];posts=posts.filter(post=>props.some(prop=>{const postVal=post[prop];return!!postVal&&(Array.isArray(postVal)?postVal.some(v=>Array.isArray(filterItem.value)?filterItem.value.includes(v.value):v.value===filterItem.value):Array.isArray(filterItem.value)?filterItem.value.includes(postVal.value):postVal.value===filterItem.value)}))}),posts};return{init:function(){var ddItems=mergeArrays(dropdowns,toggles),dropdownFunctionArray=(ddItems.map(function(item){return item.wrapper}),[{type:"dropdown",do:function(item,_this,value,label){item.value=value||"",item.value||(label=item.defaultText),_selectDropdown({element:item.wrapper.find(".dropdown-label"),value:label},{wrapper:item.wrapper.find(".dropdown-list"),selected:_this}),_setUrlParameter(item.urlParam,item.value)}},{type:"toggle",do:function(item,_this,value,label){Array.isArray(item.value)||(item.value=[]);var isPushToValue=!item.value.includes(value);value&&isPushToValue?item.value.push(value):item.value=item.value.filter(function(i){return i!==value}),_selectToggle({wrapper:item.wrapper.find(".toggle-list"),selected:_this},isPushToValue),0===item.value.length?_setUrlParameter(item.urlParam,""):_setUrlParameter(item.urlParam,JSON.stringify(item.value))}}]);
1ddItems.forEach(function(dd){var eventsDD=!1,hasLabelToggle=!1;dd.wrapper.length&&(eventsDD=$._data(dd.wrapper[0],"events")),eventsDD&&eventsDD.click&&(hasLabelToggle=eventsDD.click.find(function(ev){return".dropdown-label, .toggle-label"===ev.selector})),hasLabelToggle||dd.wrapper.on("click","> .toggle-label, > .dropdown-label",function(e){e.preventDefault(),e.stopPropagation(),dd.wrapper.toggleClass("is-open")});var selectedDFA=dropdownFunctionArray.find(function(item){return dd.type===item.type});dd.wrapper.on("click","."+selectedDFA.type+"-list a",function(e){var $this=$(this);if(!$this.closest(".toggle-see-more").length){e.preventDefault(),e.stopPropagation();var value=$this.data("value"),label=$this.text()||dd.defaultText;selectedDFA.do(dd,$this,value,label),settings.current=1,_reset()}});var parameter=_getUrlParameter(dd.urlParam);parameter&&(dd.value=parameter,"toggle"===dd.type&&(dd.value=JSON.parse(dd.value))),dd.wrapper.on("click",function(e){$(e.target).closest(".toggle-see-more").length||e.stopPropagation()})}),keywords.forEach(function(item){var callback,ms,timer;item.wrapper.on("keyup search",".keyword-search",(callback=function(e){item.value=this.value||"",_setUrlParameter(item.urlParam,item.value),settings.current=1,_reset()},ms=600,timer=0,function(){var context=this,args=arguments;clearTimeout(timer),timer=setTimeout(function(){callback.apply(context,args)},ms||0)}));var parameter=_getUrlParameter(item.urlParam);parameter&&(item.value=parameter,item.wrapper.find(".keyword-search").val(parameter))}),settings.$pagination&&settings.$pagination.on("click","a, .page-prev, .page-next",function(e){if(e.preventDefault(),$(this).hasClass("page-disabled"))return!1;var value=$(this).data("page").toString();switch(value){case"prev":settings.current=settings.current-1;break;case"next":settings.current=settings.current+1;break;default:settings.current=parseInt(value)}_setUrlParameter("page",settings.current),_setPagination(),_getPage()}),settings.$loadmore&&settings.$loadmore.on("click",".page-more",function(e){e.preventDefault(),settings.current=settings.current+1,_getPage()}),settings.current=parseInt(_getUrlParameter("page"))||1,_setDOMFilters(),_reset(),settings.onAfterInit&&"function"==typeof settings.onAfterInit&&settings.onAfterInit.call(this,settings)},reset:_reset,getFilters:function(){return filters},getFilteredPosts:function(){return filteredPosts},setUrlParameter:_setUrlParameter}}
2//# sourceURL=https://50352628.fs1.hubspotusercontent-na1.net/hubfs/50352628/hub_generated/template_assets/1/205227195747/1790169323845/template_product-filter.js

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.