PageSourceSearch

https://www.crayon.co/hubfs/hub_generated/template_assets/1/530385…/1773952594490/template_salty-filter.min.js

js crayon.co collected 2026-09-24 19:34:12 UTC 11,854 bytes, 2 lines download raw bytes

1"use strict";function saltyBlogFilter(options){var 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("-1",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("+1",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)},_setDOMFilters=function(){function findItemByProp(item,list,prop){return list.find(function(k){return k[prop]===item[prop]})}function handleLoop(list,type){var itemList=[],properties=Array.isArray(list.property)?list.property:[list.property];if(settings.posts.reduce(function(acc,item,idx){for(var _props=Object.keys(item),key=0;key<_props.length;key++)properties.includes(_props[key])&&item[_props[key]]&&acc.push(item[_props[key]]);return acc}
1,[]).forEach(function(item){itemList=function(value,list){var _list=[];if(Array.isArray(value)){var unique=value.filter(function(item){return!findItemByProp(item,list,"value")});_list=mergeArrays(list,unique)}else findItemByProp(value,list,"value")||(_list=mergeArrays(list,[value]));return _list}(item,itemList)}),itemList.sort(function(val1,val2){var v1=val1.label.toLowerCase(),v2=val2.label.toLowerCase(),comparison=0;return v1<v2?comparison=1:v1>v2&&(comparison=-1),comparison}),list.wrapper){var classpre=list.type;list.wrapper.find("."+classpre+"-list").length||(list.wrapper.html(""),list.wrapper.append('<label class="'+classpre+'-label">'+list.defaultText+"</label>"),list.wrapper.append('<ul class="'+classpre+'-list"></ul>'))}switch(type){case"dropdown":!function(item,list){var $ddlist=item.wrapper.find(".dropdown-list").eq(0),template=function(value,label,isActive){return $(["<li>",'<a href="javascript:void(0);" class="'+(isActive?"is-active":"")+'" data-value="'+value+'">',label,"</a>","</li>"].join(""))};$ddlist.find("li").length||$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":!function(item,list){for(var $toggleList=item.wrapper.find(".toggle-list").eq(0),template=function(value,label,isActive){return $(["<li>",'<a href="javascript:void(0);" class="'+(isActive?"is-active":"")+'" data-value="'+value+'">','<span class="toggle-checkbox"></span>',label,"</a>","</li>"].join(""))},key=0;key<list.length;key++){var _tt=list[key],dom=template(_tt.value,_tt.label,!1);$toggleList.append(dom),item.value&&item.value.includes(_tt.value)&&_selectToggle({wrapper:$toggleList,selected:dom.find("a")},!0)}}(list,itemList)}}dropdowns.forEach(function(item){handleLoop(item,"dropdown")}),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.addClass("is-active")},_selectToggle=function(anchor,isSelected){var _anchor=$.extend({},{wrapper:"",selected:""},anchor);_anchor.selected&&(isSelected?_anchor.selected.addClass("is-active"):_anchor.selected.removeClass("is-active"))},_reset=function(){_getUrlParameter("page")&&_setUrlParameter("page",settings.current),settings.$list.html(""),function(){function checkValByType(postProp,tofilter,type){var isEqual=!1;switch(type){case"dropdown":isEqual=postProp.value.toLowerCase()===tofilter.toLowerCase();break;case"keyword":isEqual="object"==typeof postProp?new RegExp(tofilter.toLowerCase()).test(postProp.value.toLowerCase()):new RegExp(tofilter.toLowerCase()).test(postProp.toLowerCase());break;case"toggle":isEqual=0===tofilter.length||tofilter.includes(postProp.value)}return isEqual}function isPropInvalid(postProp,toFilter,type){return Array.isArray(postProp)?0===postProp.filter(function(item){return checkValByType(item,toFilter,type)}).length:!checkValByType(postProp,toFilter,type)}filteredPosts=settings.posts.reduce(function(acc,_post){var invalidArr=[];return filters.forEach(function(filterItem){filterItem.value&&(Array.isArray(filterItem.property)?0===filterItem.property.filter(function(property){return!!_post[property]&&!isPropInvalid(_post[property],filterItem.value,filterItem.type)}).length&&invalidArr.push(filterItem.property):_post[filterItem.property]?isPropInvalid(_post[filterItem.property],filterItem.value,filterItem.type)&&invalidArr.push({property:filterItem.property,value:_post[filterItem.property]}):invalidArr.push({property:filterItem.property,value:""}))}),0===invalidArr.length&&acc.push(_post),acc},[])}(),_setPagination(),_getPage()};return{init:function(){var ddItems=mergeArrays(dropdowns,toggles),ddDOMs=ddItems.map(function(item){return item.wrapper}),dropdownFunctionArray=[{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))}}];
1_setDOMFilters(),ddItems.forEach(function(dd){var selectedDFA=dropdownFunctionArray.find(function(item){return dd.type===item.type});if(console.log(dd.wrapper.find("."+selectedDFA.type+"-list a")),dd.wrapper.find("."+selectedDFA.type+"-list a").length){dd.wrapper.on("click",".dropdown-label, .toggle-label",function(e){dd.wrapper.toggleClass("is-open")});var parameter=_getUrlParameter(dd.urlParam);parameter&&(dd.value=parameter,"toggle"===dd.type&&(dd.value=JSON.parse(dd.value)))}dd.wrapper.on("click","."+selectedDFA.type+"-list a",function(e){event.preventDefault();var _this=$(this),value=_this.data("value"),label=_this.text()||dd.defaultText;selectedDFA.do(dd,_this,value,label),dd.wrapper.removeClass("is-open"),settings.current=1,_reset()})}),$(window).on("click",function(event){ddDOMs.forEach(function(item){item[0]!==event.target&&!item[0].contains(event.target)&&item.hasClass("is-open")&&item.removeClass("is-open")})}),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"-1":settings.current=settings.current-1;break;case"+1":settings.current=settings.current+1;break;default:settings.current=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,_reset(),settings.onAfterInit&&"function"==typeof settings.onAfterInit&&settings.onAfterInit.call(this,settings)},reset:_reset,setURLParam:_setUrlParameter}}
2//# sourceURL=https://2355195.fs1.hubspotusercontent-na1.net/hubfs/2355195/hub_generated/template_assets/1/53038542975/1773952594490/template_salty-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.