PageSourceSearch

https://www.bigpanda.io/wp-content/cache/min/1/wp-content/themes/b…/js/bp_filter_resources.js?ver=1790096309

js bigpanda.io collected 2026-09-24 18:25:44 UTC 21,279 bytes, 73 lines download raw bytes

1let initialLoad=!0;const bpFilters=["categoryFilter","personaRoleFilter","resourceTopicFilter",];const bpSequence=["m","a","c","k","e","y"];const bpTimeThreshold=3000;let bpPressedKeys=[];bp.type=location.pathname.indexOf("/blog/")<0?"resources":"blog";bp.is_index_page=["/blog/","/content-hub/"].includes(location.pathname);bp.elements={loadingOverlay:document.getElementById("bpLoadingOverlay"),};bp.settings={compare:{options:["AND","OR"],default:"AND",value:"AND",},loading:{options:["modal","inline"],default:"modal",value:"modal",},loading_text:{options:["Loading...","Fetching...","Please wait..."],default:"Loading...",value:"Loading...",},};bp.util={displayElement:function(element,display){if(element){element.style.display=display}},};bp.noResultsContainer=document.getElementById("bpNoResultsContainer");bp.stateItems={categoryFilter:"",personaRoleFilter:"",resourceTopicFilter:"",query:"",page:1,perPage:12,};function bpFetchItems(){const data={action:"bp_filter_resources",nonce:bp.nonce,category:bpGetState("categoryFilter")||"",personaRole:bpGetState("personaRoleFilter")||"",resourceTopic:bpGetState("resourceTopicFilter")||"",page:bpGetState("page")||1,perPage:bpGetState("perPage")||12,type:bp.type,offset:bp.loadedItems>=bpGetState("page")*bpGetState("perPage")&&bpGetState("page")>1?bp.loadedItems-bpGetState("page")*bpGetState("perPage"):0,};if(bp.initialLoad&&bp.fromWhere!=="loadMore"){data.perPage=data.perPage*data.page}else{}
2const formData=Object.keys(data).map((key)=>encodeURIComponent(key)+"="+encodeURIComponent(data[key])).join("&");bp.util.displayElement(bp.elements.loadingOverlay,"block");fetch(bp.filter_endpoint,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/x-www-form-urlencoded",},body:formData,}).then((response)=>response.json()).then((response)=>{if(response.success){if(response.no_results&&bp.noResultsContainer){bp.noResultsContainer.style.display="block"}else if(bp.noResultsContainer){bp.noResultsContainer.style.display="none"}
3bp.totalPosts=response.meta.pagination.total_posts;bpUpdateFilters(response.activeFilters);bpUpdateBlogPosts(response.items);bpToggleClearFiltersButton()}else{}}).catch((error)=>{});initialLoad=!1}
4function bpToggleDownloadElements(state){const elements=bp.elements.downloads;switch(state){case "active":elements.forEach((element)=>{const activeText=element.querySelector(".bp-active-text");activeText.innerText=activeText.dataset.activeText;const loadingDots=element.parentElement.querySelector(".bp-loading-dots");console.log("loadingDots",loadingDots);if(loadingDots){loadingDots.classList.remove("bp-hidden")}});bpAnimateLoadingDots();break;case "hide":elements.forEach((element)=>{element.style.display="none"});break}}
5function bpTheReveal(){bp.elements.reveals=document.querySelectorAll(".bp-reveal");bp.elements.toBeHidden=document.querySelectorAll(".bp-to-be-hidden");if(bp.elements.reveals){bp.elements.reveals.forEach((element)=>{element.classList.add("bp-revealed");element.classList.remove("bp-hidden");element.style.display="block"})}
6if(bp.elements.toBeHidden){bp.elements.toBeHidden.forEach((element)=>{element.classList.remove("bp-reveal");element.classList.add("bp-hidden");element.style.display="none"})}}
7function bpHandleDownloadClick(e){e.preventDefault();let download=e.target;if(download.classList.contains("bp-download-link")===!1){download=download.closest(".bp-download-link")}
8const data={action:"bp_get_file",nonce:bp.nonce,url:download.dataset.href,};bpToggleDownloadElements("active");const formData=Object.keys(data).map((key)=>encodeURIComponent(key)+"="+encodeURIComponent(data[key])).join("&");fetch(bp.filter_endpoint,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/x-www-form-urlencoded",},body:formData,}).then((response)=>response.json()).then((response)=>{var decodedData=atob(response.content);var byteNumbers=new Array(decodedData.length);for(var i=0;i<decodedData.length;i++){byteNumbers[i]=decodedData.charCodeAt(i)}
9var byteArray=new Uint8Array(byteNumbers);var blob=new Blob([byteArray],{type:response.mime});var blobUrl=URL.createObjectURL(blob);const link=document.createElement("a");link.setAttribute("href",blobUrl);link.setAttribute("download",response.name);link.setAttribute("target","_blank");document.body.appendChild(link);link.click();bpToggleDownloadElements("hide");const revealTimeout=setTimeout(bpTheReveal,400)}).catch(function(data){})}
10function bpHandleFilterChange(e){bpSetState("page",1);bpSetState(e.target.id,e.target.value);bp.initialLoad=!1;bp.fromWhere="filterChange";bpFetchItems()}
11function bpUpdateFilters(activeFilters){bpFilters.forEach((filter)=>{let filterKey=filter.replace("Filter","");bpUpdateFilterOptions(filter,activeFilters[filterKey])})}
12function bpUpdateFilterOptions(filter,activeFilters){console.log("activeFilters");console.dir(activeFilters);const filterOptions=document.querySelectorAll(".bp-filter-options-"+filter+" .bp-filter-option");console.log("filterOptions:: "+filter,filterOptions);if(filterOptions){for(let i=0;i<filterOptions.length;i++){if(activeFilters[filterOptions[i].dataset.value]!==!0){}else{}}}}
13function bpUpdateBlogPosts(items){const container=document.getElementById("blogPostsContainer");if(container){console.log("bp.fromWhere",bp.fromWhere);if(bp.fromWhere==="filterChange"){container.innerHTML=""}
14items.forEach((item)=>{let ctaButtonText=bpCtaVerbs[item.primaryCategoryId]?bpCtaVerbs[item.primaryCategoryId]+" "+item.primaryCategory.toLowerCase():"Read the blog";const postElement=document.createElement("div");postElement.className=`col-12 col-lg-4 mb-4`;postElement.innerHTML=`
15            <article id="post-${item.id}" class="card card-article bp-post-item has-cta">
16                <a href="${item.url}">
17                    <figure class="dp-dfg-image entry-thumb">    
18                        <img class="dp-dfg-featured-image" src="${item.imageUrl}" alt="${item.altText}" width="1200" height="628" data-ratio="0.523333333333">    
19                    </figure>
20                    <div class="card-content">
21                        <div class="category">${item.primaryCategory}<span>hidden</span></div>
22                        <h4 class="entry-title">
23                            ${item.title}
24                        </h4>
25                        <div class="entry-meta bp-magic-fun">
26                            <div class="entry-date">
27                            ${item.postDate}
28                            </div>
29                        </div>
30                    </div>
31                </a>
32                <div class="card-cta-container">
33                    <a href="${item.url}" class="et_pb_button rc-cta button-outline blue-outline">${ctaButtonText}</a>
34                </div>
35            </article>`;container.appendChild(postElement)});bpToggleLoadMoreButton(bp.totalPosts);bp.util.displayElement(bp.elements.loadingOverlay,"none")}}
36function bpSetState(key,value){key=bp.type+"_"+key;sessionStorage.setItem(key,JSON.stringify(value))}
37function bpGetState(key){key=bp.type+"_"+key;return JSON.parse(sessionStorage.getItem(key))}
38function bpRestoreState(){console.log("bpRestoreState");bpFilters.forEach((filter)=>{const value=bpGetState(filter);if(value){const filterElements=document.querySelectorAll(".bp-filter-options-"+filter+" .bp-filter-option");console.log("filterElements:: "+filter,filterElements);if(filterElements){for(let i=0;i<filterElements.length;i++){if(filterElements[i].dataset.value==value){filterElements[i].classList.add("active");let activeText=filterElements[i].closest(".bp-filter-active-text");if(activeText){activeText.innerText=filterElements[i].innerText}else{console.log("MOBILE:::");activeText=filterElements[i].parentElement.parentElement.parentElement.querySelector(".bp-filter-active-text");if(activeText){console.log("activeText:: "+filter);activeText.innerText=filterElements[i].innerText}}}}}}});bpUpdateMobileFilterDropdownLabel();const query=bpGetState("query");const searchFilter=document.getElementById("searchFilter");if(searchFilter){searchFilter.value=query}}
39function bpUpdateCanonicalLink(pageNumber){const canonicalLink=document.querySelector('link[rel="canonical"]');if(!canonicalLink)return;const originalUrl=canonicalLink.getAttribute('href');const baseUrl=originalUrl.replace(/-\d+\/$/,'/');if(pageNumber>1){const newUrl=baseUrl.replace(/\/$/,'')+'-'+pageNumber+'/';canonicalLink.setAttribute('href',newUrl)}else{canonicalLink.setAttribute('href',baseUrl)}}
40function bpHandleLoadMore(e){e.preventDefault();let button=e.target;bp.loadedItems=document.querySelectorAll(".bp-post-item").length;console.log("loadedItems",bp.loadedItems);const perPage=bpGetState("perPage")||12;const currentPage=Math.floor(bp.loadedItems/perPage);button.href=button.dataset.href+currentPage;bpSetState("page",currentPage+1);bp.initialLoad=!1;bp.fromWhere="loadMore";bpFetchItems();bpUpdateCanonicalLink(currentPage+1)}
41function bpActivateCategoryFilterLinks(){bp.categoryFilterLinks=document.querySelectorAll(".bp-category-filter-link");if(bp.categoryFilterLinks){bp.categoryFilterLinks.forEach((link)=>{link.addEventListener("click",function(e){e.preventDefault();bpResetState();console.log("bp.type ",bp.type);console.log("link.dataset.action",link.dataset.action);if(link.dataset.action!=="reset"){console.log("link.dataset.category",link.dataset.category);bpSetState("categoryFilter",link.dataset.category)}
42window.location=link.href})})}}
43function bpActivateTopicFilterLinks(){bp.topicFilterLinks=document.querySelectorAll('.bp-topic-filter-link');if(bp.topicFilterLinks){bp.topicFilterLinks.forEach(link=>{link.addEventListener('click',function(e){e.preventDefault();bpResetState();console.log('bp.type ',bp.type);console.log('link.dataset.action',link.dataset.action);if(link.dataset.action!=="reset"){console.log('link.dataset.topic',link.dataset.topic);bpSetState('resourceTopicFilter',link.dataset.topic)}
44window.location=link.href})})}}
45function bpActivateRoleFilterLinks(){bp.roleFilterLinks=document.querySelectorAll('.bp-role-filter-link');if(bp.roleFilterLinks){bp.roleFilterLinks.forEach(link=>{link.addEventListener('click',function(e){e.preventDefault();bpResetState();console.log('bp.type ',bp.type);console.log('link.dataset.action',link.dataset.action);if(link.dataset.action!=="reset"){console.log('link.dataset.role',link.dataset.role);bpSetState('personaRoleFilter',link.dataset.role)}
46window.location=link.href})})}}
47function bpResetState(){Object.keys(bp.stateItems).forEach((key)=>{console.log('bp.type + "_" + key',bp.type+"_"+key);console.log("bp.stateItems[key]",bp.stateItems[key]);bpSetState(bp.type+"_"+key,bp.stateItems[key]);sessionStorage.removeItem(bp.type+"_"+key)})}
48function bpToggleLoadMoreButton(total_posts){const loadedItems=document.querySelectorAll(".bp-post-item").length;const bpLoadMoreButton=document.getElementById("bpLoadMoreButton");if(loadedItems>=total_posts){bpLoadMoreButton.style.display="none"}else{bpLoadMoreButton.style.display="block"}}
49function bpHandleClearFilters(){bpFilters.forEach((filter)=>{bpSetState(filter,"")});bpFilters.forEach((filter)=>{const filterElements=document.querySelectorAll(".bp-filter-options-"+filter+" .bp-filter-option");console.log("filterElements:: "+filter,filterElements);if(filterElements){for(let i=0;i<filterElements.length;i++){filterElements[i].classList.remove("active")}}
50document.querySelectorAll(".bp-filter-active-text").forEach((activeText)=>{activeText.innerText=activeText.dataset.default});document.querySelectorAll(".bp-filter-active-text-mobile").forEach((activeText)=>{activeText.innerText=activeText.dataset.default})});bpUpdateMobileFilterDropdownLabel();bpSetState("page",1);bpFetchItems()}
51function bpToggleClearFiltersButton(){const bpClearFiltersButton=document.getElementById("clearFilters");const activeFilters=bpGetState("categoryFilter")||bpGetState("personaRoleFilter")||bpGetState("resourceTopicFilter");console.log("bpToggleClearFiltersButton","activeFilters",activeFilters);console.log(bpGetState("categoryFilter"),bpGetState("personaRoleFilter"),bpGetState("resourceTopicFilter"));if(activeFilters){bpClearFiltersButton.style.display="block"}else{bpClearFiltersButton.style.display="none"}}
52function bpToggleEntryMeta(){const bpEntryMetas=document.getElementsByClassName("bp-magic-fun");for(let i=0;i<bpEntryMetas.length;i++){if(bpEntryMetas[i].style.display!=="flex"){bpEntryMetas[i].style.display="flex"}else{bpEntryMetas[i].style.display="none"}}}
53function bpToggleFilterbars(){const bpUgly=document.getElementById("bpUglyBar");const bpPretty=document.getElementById("bpPrettyBar");if(bpUgly.style.display!=="block"){bpUgly.style.display="block";bpPretty.style.display="none"}else{bpUgly.style.display="none";bpPretty.style.display="block"}}
54function bpOnCorrectSequence(){console.log("Correct sequence entered!");bpToggleEntryMeta()}
55if(document.getElementsByClassName("bp-magic-fun").length>0){document.addEventListener("keydown",(event)=>{const key=event.key.toLowerCase();const now=Date.now();bpPressedKeys.push({key,time:now});bpPressedKeys=bpPressedKeys.filter((pressed)=>bpTimeThreshold>=now-pressed.time);if(bpPressedKeys.length===bpSequence.length&&bpPressedKeys.every((pressed,index)=>pressed.key===bpSequence[index])){bpOnCorrectSequence();bpPressedKeys=[]}})}
56function bpThrottle(func,limit){let lastFunc;let lastRan;return function(){const context=this;const args=arguments;if(!lastRan){func.apply(context,args);lastRan=Date.now()}else{clearTimeout(lastFunc);lastFunc=setTimeout(function(){if(Date.now()-lastRan>=limit){func.apply(context,args);lastRan=Date.now()}},limit-(Date.now()-lastRan))}}}
57let lastScrollTop=0;function bpcheckVisibilityAndRevealItems(){const currentScroll=window.pageYOffset||document.documentElement.scrollTop;if(currentScroll>lastScrollTop){const hiddenItems=document.querySelectorAll('.bp-post-item[style*="visibility: hidden"]');if(!hiddenItems.length){window.removeEventListener("scroll",bpThrottledScroll);return}else{hiddenItems.forEach((item)=>{const rect=item.getBoundingClientRect();if(rect.top<=window.innerHeight+300){console.log("making it visible ",rect.top);item.style.visibility="visible"}})}}
58lastScrollTop=currentScroll<=0?0:currentScroll}
59const bpThrottledScroll=bpThrottle(bpcheckVisibilityAndRevealItems,500);function bpHidePostsActivateScroll(){const bpPostItems=document.querySelectorAll(".bp-post-item");if(bpPostItems&&bpPostItems.length>12){bpPostItems.forEach((item,index)=>{if(index>=12&&index<24){item.style.visibility="hidden"}});window.addEventListener("scroll",bpThrottledScroll)}}
60function bpAnimateLoadingDots(){const element=document.querySelector(".bp-loading-dots");if(!element)return;const text=element.dataset.text;let currentIndex=0;function updateText(){element.textContent+=text[currentIndex];currentIndex++;
60if(currentIndex>=text.length){clearInterval(intervalId);setTimeout(()=>{element.textContent="";currentIndex=0;intervalId=setInterval(updateText,interval)},interval)}}
61const interval=500;let intervalId=setInterval(updateText,interval)}
62document.addEventListener("DOMContentLoaded",function(){if(bp.is_index_page){bpRestoreState();bpFilters.forEach((filterId)=>{const filterElement=document.getElementById(filterId);if(filterElement){filterElement.addEventListener("change",bpHandleFilterChange)}});bpAnimateLoadingDots();const bpLoadMoreButton=document.getElementById("bpLoadMoreButton");if(bpLoadMoreButton){bpLoadMoreButton.addEventListener("click",bpHandleLoadMore)}
63const bpClearFilters=document.getElementById("clearFilters");if(bpClearFilters){bpClearFilters.addEventListener("click",bpHandleClearFilters)}
64let bpSearchFilterTimeout=null;const bpSearchFilter=document.getElementById("searchFilter");if(bpSearchFilter){bpSearchFilter.addEventListener("input",function(){clearTimeout(bpSearchFilterTimeout);bpSearchFilterTimeout=setTimeout(function(){if(bpSearchFilter.value.length>=3||bpSearchFilter.value===""){bpSetState("query",bpSearchFilter.value);bp.initialLoad=!1;bp.fromWhere="filterChange";bpFetchItems()}},500)})}
65if(bpGetState("categoryFilter")||bpGetState("personaRoleFilter")||bpGetState("resourceTopicFilter")||bpGetState("query")){bp.initialLoad=!0;bp.fromWhere="filterChange";bpFetchItems()}else{bp.initialLoad=!1;bpSetState("page",1);bpHidePostsActivateScroll()}
66bpActivateCategoryFilterLinks();bpActivateTopicFilterLinks();bpActivateRoleFilterLinks()}else{bpActivateCategoryFilterLinks();bpActivateTopicFilterLinks();bpActivateRoleFilterLinks()}
67bp.elements.downloads=document.querySelectorAll(".bp-download-link");if(bp.elements.downloads){bp.elements.downloads.forEach((element)=>{element.addEventListener("click",bpHandleDownloadClick)})}});document.addEventListener("DOMContentLoaded",function(){document.addEventListener("click",function(event){const dropdown=event.target.closest(".bp-filter-dropdown");const dropdownMobile=event.target.closest(".bp-filter-dropdown-mobile");if(dropdown){const isActive=dropdown.classList.contains("active");document.querySelectorAll(".bp-filter-dropdown").forEach((el)=>{el.classList.remove("active");const options=el.querySelectorAll(".bp-filter-options");options.forEach((option)=>(option.style.display="none"))});if(!isActive){dropdown.classList.add("active");const options=dropdown.querySelectorAll(".bp-filter-options");options.forEach((option)=>(option.style.display="block"))}}else if(dropdownMobile){const isActive=dropdownMobile.classList.contains("active");console.log("dropdownMobile",isActive);dropdownMobile.querySelectorAll(".bp-filter-dropdown-container").forEach((el)=>{el.classList.remove("active");el.style.display="none";const dropdowns=el.querySelectorAll(".bp-filter-dropdown");dropdowns.forEach((dropdown)=>(dropdown.style.display="none"));dropdownMobile.classList.remove("active")});if(!isActive){dropdownMobile.classList.add("active");const dropdownContainers=dropdownMobile.querySelectorAll(".bp-filter-dropdown-container");dropdownContainers.forEach((container)=>(container.style.display="block"));const dropdowns=dropdownMobile.querySelectorAll(".bp-filter-dropdown");dropdowns.forEach((dropdown)=>(dropdown.style.display="block"))}}else{document.querySelectorAll(".bp-filter-dropdown").forEach((el)=>{el.classList.remove("active");const options=el.querySelectorAll(".bp-filter-options");options.forEach((option)=>(option.style.display="none"))});document.querySelectorAll(".bp-filter-dropdown-mobile").forEach((el)=>{el.classList.remove("active");const options=el.querySelectorAll(".bp-filter-dropdown");options.forEach((option)=>(option.style.display="none"))});document.querySelectorAll(".bp-filter-dropdown-container").forEach((container)=>(container.style.display="none"))}});document.addEventListener("click",function(event){if(event.target.classList.contains("bp-filter-option")){const option=event.target;const dropdown=option.closest(".bp-filter-dropdown");const activeText=dropdown.querySelector(".bp-filter-active-text");activeText.innerText=option.innerText;const state=option.parentElement.parentElement.dataset.state;dropdown.querySelectorAll(".bp-filter-option").forEach((el)=>{el.classList.remove("active");if(el.parentElement.parentElement.dataset.state===state){}});option.classList.add("active");bp.initialLoad=!1;bpSetState("page",1);bp.fromWhere="filterChange";bpSetState(state,option.dataset.value);bpFetchItems();if(bp.is_index_page){bpUpdateMobileFilterDropdownLabel()}}});bpMarketoFormInit()});function bpUpdateMobileFilterDropdownLabel(){const activeTextMobile=document.querySelector(".bp-filter-active-text-mobile");let filterOptionsText="";activeTextMobile.parentElement.querySelectorAll(".bp-filter-option.active").forEach((el)=>
67{filterOptionsText+=el.innerText+", "});if(filterOptionsText.length>0){filterOptionsText=filterOptionsText.slice(0,-2);activeTextMobile.innerText=filterOptionsText}else{activeTextMobile.innerText=activeTextMobile.dataset.default}}
68function bpHideElement(element){element.style.display="none"}
69function bpMarketoFormInit(){const marketoForm=document.querySelector(".bp-marketo-form");if(marketoForm){const script=document.createElement("script");script.src="https://start.bigpanda.io/js/forms2/js/forms2.min.js";script.onload=function(){MktoForms2.loadForm("//start.bigpanda.io","778-UNI-965",marketoForm.dataset.id);MktoForms2.whenReady(function(mktoForm){mktoForm.onSuccess(function(submittedValues,originalThankYouURL){const revealTimeout=setTimeout(bpTheReveal,400);bpHideElement(marketoForm);return!1})})};document.head.appendChild(script)}}
70function bpAuthorLoadMore(items){document.addEventListener("DOMContentLoaded",function(){const loadMoreButton=document.getElementById("bpLoadMoreButtonAuthor");const itemsPerPage=6;const initialItems=9;let currentIndex=initialItems;authorItems.forEach((item,index)=>{if(index>=initialItems){item.style.display="none"}});if(items.length>initialItems){loadMoreButton.style.display="block"}
71loadMoreButton.addEventListener("click",function(){for(let i=currentIndex;i<currentIndex+itemsPerPage&&i<items.length;i++){items[i].style.display="block"}
72currentIndex+=itemsPerPage;if(currentIndex>=items.length){loadMoreButton.style.display="none"}})})}
73let authorItems=document.querySelectorAll(".author-post-item");if(authorItems.length>0){bpAuthorLoadMore(authorItems)}

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.