PageSourceSearch

https://www.greatplacetowork.co.uk/hubfs/hub_generated/template_as…/1790166451296/template__hs-filter.min.js

js greatplacetowork.co.uk collected 2026-09-24 22:15:26 UTC 12,034 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:[],onBeforeItemsLoaded:null,onAfterItemsLoaded:null,onAfterInit:null},options),filters=[],filteredPosts=[];settings.postLength||(settings.postLength=settings.posts.length),settings.filters.length&&(filters=settings.filters.reduce(function(acc,filterItem){return filterItem.wrapper&&filterItem.property&&(filterItem.value=filterItem.selected,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(""),settings.onBeforeItemsLoaded&&"function"==typeof settings.onBeforeItemsLoaded&&settings.onBeforeItemsLoaded.call(this,postsToShow,settings);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){var baseUrl=[location.protocol,"//",location.host,location.pathname].join(""),urlQueryString=document.location.search,newParam=value&&key+"="+value,params="?"+newParam;if(urlQueryString){var updateRegex=new RegExp("([?&])"+key+"[^&]*"),removeRegex=new RegExp("([?&])"+key+"=[^&;]+[&;]?");params=void 0===value||null==value||""==value?(params=urlQueryString.replace(removeRegex,"$1")).replace(/[&;]$/,""):null!==urlQueryString.match(updateRegex)?urlQueryString.replace(updateRegex,"$1"+newParam):urlQueryString+"&"+newParam}params="?"==params?"":params,window.history.replaceState({},"",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=list||[];if(Array.isArray(value)){var unique=value.filter(function(item){return!findItemByProp(item,list,"value")});_list=[...list,...unique]}else findItemByProp(value,list,"value")||(_list=[...list,value]);return _list}(item,itemList)}),itemList.sort(function(val1,val2){var v1=val1.label?val1.label.toLowerCase():"",v2=val2.label?val2.label.toLowerCase():"",comparison=0;return val1.order&&val2.order&&(v1=val1.order,v2=val2.order),v1&&v2&&(v1<v2?comparison=1:v1>v2&&(comparison=-1)),comparison}),list.wrapper){var classpre=list.type;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.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;if(!postProp||!tofilter)return isEqual;if("object"==typeof postProp&&!postProp.value)return isEqual;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=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))}(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))}}];
1ddItems.forEach(function(dd){dd.wrapper.on("click",".dropdown-label, .toggle-label",function(e){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){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()});var parameter=_getUrlParameter(dd.urlParam);parameter&&(dd.value=parameter,"toggle"===dd.type&&(dd.value=JSON.parse(dd.value)))}),$(window).on("click",function(event){ddDOMs.forEach(function(item){item[0]&&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("input 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=parseInt(settings.current)-1;break;case"next":settings.current=parseInt(settings.current)+1;break;default:settings.current=parseInt(value)}_setUrlParameter("page",settings.current),_setPagination(),_getPage(),$("html, body").animate({scrollTop:$("#listing").offset().top-160},600)}),settings.$loadmore&&settings.$loadmore.unbind().on("click",".page-more",function(e){e.preventDefault(),e.stopPropagation(),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)}}}
2//# sourceURL=https://5694810.fs1.hubspotusercontent-na1.net/hubfs/5694810/hub_generated/template_assets/1/104000287518/1790166451296/template__hs-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.