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.