PageSourceSearch

https://www.franchisesidekick.com/hubfs/hub_generated/module_asset…/module_resource-center-v2.min.js

js franchisesidekick.com collected 2026-09-25 02:47:50 UTC 28,940 bytes, 2 lines download raw bytes

1var module_205955507716=function(){class ResourceCenter{constructor(e){this.elements={container:e};const t=this.getInitialData();this.allItems=t.items,this.itemsById=new Map((this.allItems||[]).filter(e=>e&&void 0!==e.id&&null!==e.id).map(e=>[String(e.id),e])),this.config=this.getConfig(),this.filterOptions=this.getFilterOptions(),this.dataSources=this.getDataSources(),this.currentPage=1,this.activeFilters={},this.searchQuery="",this.sortOrder=this.config.defaultSort||"date_desc",this.cardElements=new Map,this.hasRenderedAllCards=!1,this.noResultsEl=null,this.elements.cards=e?.querySelector("[data-resource-center-cards]"),this.elements.pagination=e?.querySelector("[data-resource-center-pagination]"),this.elements.resultsCount=e?.querySelector("[data-resource-center-results]"),this.elements.searchInput=e?.querySelector("[data-resource-center-search]"),this.elements.sortSelect=e?.querySelector("[data-resource-center-sort]"),this.elements.sortLabel=e?.querySelector("[data-sort-label]"),this.elements.activeFilters=e?.querySelector("[data-resource-center-active-filters]"),this.elements.clearFilters=e?.querySelector("[data-resource-center-clear]"),this.elements.cardsTrack=this.elements.cards?.querySelector(".blaze-track")||this.elements.cards,this.allItems,this.init()}init(){this.parseURLParams(),this.bindEvents(),this.render(),this.elements.container&&(this.elements.container.style.opacity="1")}getInitialData(){const e=this.readDatasetData();if(e.length>0)return{items:e,meta:{source:"dataset",type:typeof e,length:e.length,datasetTextLength:this.datasetMeta?.textLength||0}};const t=this.readInlineJsonData();if(t.length>0)return{items:t,meta:{source:"inline-json",type:typeof t,length:t.length,inlineTextLength:this.inlineJsonMeta?.textLength||0}};const r=window.resourceCenterData,s=Array.isArray(r)?r.filter(Boolean):[];return{items:s,meta:{source:"window",type:typeof r,length:s.length}}}readInlineJsonData(){const e=this.elements?.container?.querySelector("[data-resource-center-json]");if(!e)return[];try{const t=e.textContent||"";this.inlineJsonMeta={textLength:t.trim().length,preview:t.trim().slice(0,200)};const r=JSON.parse(t);return Array.isArray(r)?r.filter(Boolean):[]}catch(t){return this.inlineJsonMeta={textLength:(e.textContent||"").trim().length,error:t.message},[]}}readDatasetData(){const e=this.elements?.container;if(!e)return[];const t=e.dataset?.resourceCenterItems||"";if(this.datasetMeta={textLength:t.trim().length,preview:t.trim().slice(0,200)},!t)return[];try{const e=JSON.parse(t);return Array.isArray(e)?e.filter(Boolean):[]}catch(e){return this.datasetMeta={textLength:t.trim().length,error:e.message},[]}}getConfig(){const e=this.elements?.container,t=e?.dataset?.resourceCenterConfig;if(t)try{return JSON.parse(t)}catch(e){return{}}return window.resourceCenterConfig||{}}getFilterOptions(){const e=this.elements?.container,t=e?.dataset?.resourceCenterFilters;if(t)try{return JSON.parse(t)}catch(e){return{}}return window.resourceCenterFilters||{}}getDataSources(){const e=this.elements?.container,t=e?.dataset?.resourceCenterSources;if(t)try{return JSON.parse(t)}catch(e){return[]}return window.resourceCenterDataSources||[]}getFilteredItems(){const e=this.getFilteredDomItemIds();return this.allItems.filter(t=>e.has(String(t?.id))).filter(e=>this.matchesSearch(e))}matchesSearch(e){if(!this.searchQuery)return!0;const t=this.searchQuery.toLowerCase().trim();return!t||[e.title,e.description,e.badge_text,...(e.tags||[]).map(e=>e.name)].filter(Boolean).some(e=>e.toLowerCase().includes(t))}getFilteredDomItemIds(){if(0===this.cardElements.size)return new Set(this.allItems.map(e=>String(e?.id)));const e=Object.entries(this.activeFilters||{}).filter(([,e])=>e&&e.length),t=new Set(this.cardElements.keys());if(0===e.length)return t;const r=new Set;return this.cardElements.forEach((t,s)=>{let i=!0;for(const[r,a]of e){const e=this.getFilterValuesForMatchingByKey(t,s,r),n=Object.values(e).flat();if(0===n.length?i=!1:a.some(e=>n.includes(this.toSlug(e)))||(i=!1),!i)break}i&&r.add(String(s))}),r}getSortedItems(e){return[...(e||[]).filter(Boolean)].sort((e,t)=>
1{switch(this.sortOrder){case"date_desc":return(t?.publish_date||0)-(e?.publish_date||0);case"date_asc":return(e?.publish_date||0)-(t?.publish_date||0);case"az":return(e?.sort_title||"").localeCompare(t?.sort_title||"");case"za":return(t?.sort_title||"").localeCompare(e?.sort_title||"");default:return 0}})}getPaginatedItems(e){const t=this.config.itemsPerPage||12,r=(this.currentPage-1)*t;return e.slice(r,r+t)}getTotalPages(e){const t=this.config.itemsPerPage||12;return Math.ceil(e/t)}render(){this.ensureCardsRendered();const e=this.getFilteredDomItemIds(),t=this.allItems.filter(t=>e.has(String(t?.id))).filter(e=>this.matchesSearch(e)),r=this.getSortedItems(t),s=this.getTotalPages(r.length),i=this.isSliderView(),a=this.isStaticView();this.currentPage,s>0&&this.currentPage>s&&(this.currentPage=s),this.currentPage<1&&(this.currentPage=1);let n=i||a?r:this.getPaginatedItems(r);if(a){const e=parseInt(this.config?.staticSettings?.cards_per_row,10)||3;n=n.slice(0,Math.max(1,Math.min(4,e)))}this.applyCardOrder(r),a&&this.applyStaticCardSizing(),this.updateCardVisibility(n),i||a?this.elements.pagination&&(this.elements.pagination.innerHTML=""):this.renderPagination(r.length,s),a||this.renderResultsCount(r.length),this.renderActiveFilters(),this.syncURL(),i&&this.refreshSlider()}ensureCardsRendered(){if(!this.elements.cards||this.hasRenderedAllCards)return;if(this.isSliderView()||this.isStaticView()){if(0===this.elements.cards.querySelectorAll("[data-item-id]").length&&this.elements.cardsTrack){const e=Array.isArray(this.allItems)?this.allItems:[],t=this.isSliderView()?{isSlider:!0}:{isStatic:!0};this.elements.cardsTrack.innerHTML=e.map(e=>this.cardTemplate(e,t)).join("")}return this.cardElements.clear(),this.elements.cards.querySelectorAll("[data-item-id]").forEach(e=>{const t=e.getAttribute("data-item-id");t&&this.cardElements.set(String(t),e)}),void(this.hasRenderedAllCards=!0)}const e=Array.isArray(this.allItems)?this.allItems:[];this.elements.cards.innerHTML=e.map(e=>this.cardTemplate(e)).join(""),this.cardElements.clear(),this.elements.cards.querySelectorAll("[data-item-id]").forEach(e=>{const t=e.getAttribute("data-item-id");t&&this.cardElements.set(String(t),e)}),this.hasRenderedAllCards=!0}applyCardOrder(e){if(!this.elements.cards)return;const t=new Set(e.map(e=>String(e?.id))),r=this.allItems.filter(e=>!t.has(String(e?.id))),s=[...e,...r],i=document.createDocumentFragment();s.forEach(e=>{const t=String(e?.id),r=this.cardElements.get(t);r&&i.appendChild(r)});const a=this.elements.cardsTrack||this.elements.cards;a.innerHTML="",this.noResultsEl=null,a.appendChild(i)}updateCardVisibility(e){if(!this.elements.cards)return;const t=new Set(e.map(e=>String(e?.id)));this.cardElements.forEach((e,r)=>{e.style.display=t.has(r)?"":"none"}),this.ensureNoResultsElement(),0===t.size?this.noResultsEl.style.display="block":this.noResultsEl.style.display="none"}ensureNoResultsElement(){if(this.noResultsEl||!this.elements.cards)return;const e=document.createElement("div");e.className="resource-center-v2__no-results w-full",e.textContent="No results found",e.style.display="none",this.elements.cards.prepend(e),this.noResultsEl=e}cardTemplate(e,t={}){const r=this.buildFilterAttributes(e),s={meet:{wrapper:"py-fl-3xs meet bg-surface-brand-blue-60 rounded-md",icon:"",text:"text-fl-base text-fg-alternate font-bold",label:"Meet your advisor"},brands:{wrapper:"flex items-center gap-[6px] py-[6px] px-[12px] brands bg-surface-primary border-[1.5px] border-stroke-accent rounded-[14px]",icon:"text-stroke-accent icon-[i--ph-badge]",text:"!text-[16px] text-fg-primary",label:"Brands"},success_story:{wrapper:"py-fl-3xs success_story bg-surface-brand-yellow-30 rounded-[4px]",icon:"",text:"text-fl-base text-fg-primary",label:"Success story"},article:{wrapper:"py-fl-3xs article bg-surface-brand-blue-30 rounded-[4px]",icon:"",text:"text-fl-base text-fg-primary",label:"Article"},webinar:{wrapper:"py-fl-3xs webinar bg-surface-brand-teal-60 rounded-[4px]",icon:"",text:"text-fl-base text-fg-alternate",label:"Webinar"},podcast:{wrapper:"py-fl-3xs podcast bg-surface-brand-gray-90 rounded-[4px]",icon:"",text:"text-fl-base text-fg-alternate",label:"Podcast"},podcasts:{wrapper:"py-fl-3xs podcast bg-surface-brand-gray-90 rounded-[4px]",icon:"",text:"text-fl-base text-fg-alternate",label:"Podcast"},guide:{wrapper:"py-fl-3xs guide bg-surface-brand-orange-30 rounded-[4px]",icon:"",text:"text-fl-base text-fg-primary",label:"Guide"},video:{wrapper:"py-fl-3xs video bg-surface-brand-teal-10 rounded-[4px]",icon:"",text:"text-fl-base text-fg-primary",label:"Video"},videos:{wrapper:"py-fl-3xs video bg-surface-brand-teal-10 rounded-[4px]",icon:"",text:"text-fl-base text-fg-primary",label:"Video"},standard:{wrapper:"flex items-center gap-[4px] py-fl-3xs standard bg-surface-primary rounded-[14px]",icon:"icon-[i--green-check] text-fg-success text-base",text:"up
1percase font-medium text-fl-sm text-fg-primary",label:"Standard"},accelerated:{wrapper:"flex items-center gap-[4px] py-fl-3xs accelerated bg-surface-brand-blue-60 rounded-[14px]",icon:"icon-[i--green-check] text-fg-alternate text-base",text:"uppercase font-medium !text-[14px] text-fg-alternate",label:"Accelerated"},certified:{wrapper:"flex items-center gap-[4px] py-fl-3xs certified bg-surface-brand-yellow-20 rounded-[14px]",icon:"icon-[i--orange-check] text-fg-brand",text:"uppercase font-medium !text-[14px] text-fg-primary",label:"Certified"},preferred:{wrapper:"flex items-center gap-[4px] py-fl-3xs preferred bg-surface-brand-yellow-20 rounded-[14px]",icon:"icon-[i--orange-check] text-fg-brand",text:"uppercase font-medium text-fl-sm text-fg-primary",label:"Preferred"},reading_time:{wrapper:"flex items-center gap-[6px] py-fl-3xs reading_time bg-surface-brand-gray-20 rounded-[4px]",icon:"icon-[i--circle-clock] text-stroke-primary",text:"!text-[14px] text-fg-primary",label:"Reading time"}}[(e.badge_variant||"").toLowerCase()],i=e.badge_text||(s?s.label:""),a=i?`\n      <div class="relative inline-block px-fl-2xs w-fit ${s?s.wrapper:""} badge-wrapper">\n        ${s&&s.icon?`<span class="${s.icon}"></span>`:""}\n        <span class="font-normal leading-[1.1] ${s?s.text:""}">${this.escapeHtml(i)}</span>\n      </div>\n    `:"",n=e.image_url?`\n      <div class="relative w-full h-full object-cover w-full h-full hover:scale-110 transition-animate">\n        <a href="${this.escapeHtml(e.url)}" ${e.open_in_new_tab?'target="_blank"':""}>\n          <img class="object-cover w-full h-full m-auto rounded-[inherit]" \n               src="${this.escapeHtml(e.image_url)}" \n               alt="${this.escapeHtml(e.image_alt||"")}" \n               loading="lazy"\n               width="512" \n               height="288">\n        </a>\n      </div>\n    `:"",l=e.button_text||"Read more",o=`\n      <div class="w-max prose-a:w-fit prose-a:inline-flex prose-a:items-center prose-a:transition-all prose-a:duration-300 prose-a:ease-in-out prose-a:outline-none prose-a:text-base prose-a:leading-none prose-a:rounded-full hover:prose-a:scale-105 active:prose-a:scale-95 mt-fl-sm prose-a:gap-fl-2xs prose-a:flex-row-reverse prose-a:group prose-a:font-bold hover:prose-a:text-fg-accent group-hover:prose-a:text-fg-accent focus:prose-a:ring-2 focus:prose-a:ring-offset-2 focus:prose-a:ring-surface-accent prose-a:before:text-fg-primary hover:prose-a:before:text-fg-accent prose-a:before:w-fl-sm prose-a:before:h-fl-sm">\n        <a class="custom-btn" href="${this.escapeHtml(e.url)}" ${e.open_in_new_tab?'target="_blank"':""} aria-label="interactive button">\n          ${this.escapeHtml(l)}\n        </a>\n      </div>\n    `,c=t.isSlider||t.isStatic?"blog-card":"w-full sm:w-4-cols xl:w-4-cols blog-card";let d="";if(t.isStatic){const e=parseInt(this.config?.staticSettings?.cards_per_row,10)||3,t=100/Math.max(1,Math.min(4,e));d=` style="flex: 0 0 calc(${t}% - var(--inner-gutter)); max-width: calc(${t}% - var(--inner-gutter));"`}return`\n      <div class="${c}" data-item-id="${this.escapeAttribute(e.id)}"${d} ${r}>\n        <div class="bg-surface-secondary rounded-[14px] overflow-hidden h-full">\n          <div class="flex flex-col h-full">\n            <div class="overflow-hidden shrink-0 aspect-[64/48]">\n              ${n}\n            </div>\n            <div class="flex flex-col gap-[14px] p-[27px] flex-1">\n              <div class="flex gap-[10px] w-full items-center justify-between flex-wrap">\n                <div class="flex items-center gap-[10px]">\n                  ${a}\n                </div>\n                <div class="bg-surface-brand-gray-20 flex gap-[6px] items-center px-[12px] py-[5px] rounded-[4px] ml-auto">\n                  <span class="icon-[i--circle-clock] text-[16px] text-fg-primary"></span>\n                  <p class="text-fg-primary text-[14px] font-normal leading-[1.5] !m-0">${e.read_time||e.listen_time||1} mins</p>\n                </div>\n              </div>\n              <div class="flex flex-col flex-1">\n                <div class="flex flex-col gap-[12px] flex-1">\n                  <h5 class="text-fg-primary font-bold text-fl-base leading-[1.3]">${this.escapeHtml(e.title)}</h5>
1\n                  <span class="description">\n                    <p class="text-fg-secondary text-fl-base leading-[1.5]">${this.escapeHtml(e.description||"")}</p>\n                  </span>\n                </div>\n                <div class="card-cta">\n                  ${o}\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    `}applyStaticCardSizing(){if(!this.elements.cards)return;const e=parseInt(this.config?.staticSettings?.cards_per_row,10)||3,t=100/Math.max(1,Math.min(4,e));this.elements.cards.querySelectorAll("[data-item-id]").forEach(e=>{e.style.flex=`0 0 calc(${t}% - var(--inner-gutter))`,e.style.maxWidth=`calc(${t}% - var(--inner-gutter))`})}renderPagination(e,t){if(!this.elements.pagination)return;if(t<=1)return void(this.elements.pagination.innerHTML="");const r=this.getVisiblePages(t).map(e=>"..."===e?'<span class="px-2 text-fg-secondary">...</span>':`\n        <li>\n          <button data-page="${e}" \n                  class="size-[44px] rounded-[36px] text-[18px] cursor-pointer transition-colors ${e===this.currentPage?"bg-surface-accent text-fg-alternate":"bg-surface-primary text-fg-primary hover:bg-surface-secondary"}">\n            ${e}\n          </button>\n        </li>\n      `).join(""),s=1===this.currentPage,i=this.currentPage===t;this.elements.pagination.innerHTML=`\n      <nav class="flex gap-fl-2xs items-center justify-center">\n        <div class="${s?"opacity-50 cursor-not-allowed":""} size-[44px] rounded-full bg-surface-primary flex items-center justify-center transition-colors ${s?"":"hover:bg-surface-secondary"}">\n          <a style="cursor: ${s?"not-allowed":"pointer"};" data-page="${this.currentPage-1}" ${s?"":'role="button"'}>\n            <svg width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">\n              <path d="M13.4427 15.8082C13.5007 15.8662 13.5468 15.9352 13.5782 16.011C13.6097 16.0869 13.6258 16.1682 13.6258 16.2503C13.6258 16.3325 13.6097 16.4138 13.5782 16.4897C13.5468 16.5655 13.5007 16.6345 13.4427 16.6925C13.3846 16.7506 13.3157 16.7967 13.2398 16.8281C13.1639 16.8595 13.0826 16.8757 13.0005 16.8757C12.9184 16.8757 12.8371 16.8595 12.7612 16.8281C12.6853 16.7967 12.6164 16.7506 12.5583 16.6925L6.3083 10.4425C6.25019 10.3845 6.20409 10.3156 6.17264 10.2397C6.14119 10.1638 6.125 10.0825 6.125 10.0003C6.125 9.91821 6.14119 9.83688 6.17264 9.76101C6.20409 9.68514 6.25019 9.61621 6.3083 9.55816L12.5583 3.30816C12.6756 3.19088 12.8346 3.125 13.0005 3.125C13.1663 3.125 13.3254 3.19088 13.4427 3.30816C13.56 3.42544 13.6258 3.5845 13.6258 3.75035C13.6258 3.9162 13.56 4.07526 13.4427 4.19253L7.63409 10.0003L13.4427 15.8082Z" fill="black"/>\n            </svg>\n          </a>\n        </div>\n        <ol class="flex gap-fl-2xs items-center justify-center">\n          ${r}\n        </ol>\n        <div class="${i?"opacity-50 cursor-not-allowed":""} size-[44px] rounded-full bg-surface-primary flex items-center justify-center transition-colors ${i?"":"hover:bg-surface-secondary"}">\n          <a style="cursor: ${i?"not-allowed":"pointer"};" data-page="${this.currentPage+1}" ${i?"":'role="button"'}>\n            <svg width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">\n              <path d="M14.6925 10.4425L8.44254 16.6925C8.38447 16.7506 8.31553 16.7967 8.23966 16.8281C8.16379 16.8595 8.08247 16.8757 8.00035 16.8757C7.91823 16.8757 7.83691 16.8595 7.76104 16.8281C7.68517 16.7967 7.61623 16.7506 7.55816 16.6925C7.50009 16.6345 7.45403 16.5555 7.4226 16.4897C7.39117 16.4138 7.375 16.3325 7.375 16.2503C7.375 16.1682 7.39117 16.0869 7.4226 16.011C7.45403 15.9352 7.50009 15.8662 7.55816 15.8082L13.3668 10.0003L7.55816 4.19253C7.44088 4.07526 7.375 3.9162 7.375 3.75035C7.375 3.5845 7.44088 3.42544 7.55816 3.30816C7.67544 3.19088 7.8345 3.125 8.00035 3.125C8.1662 3.125 8.32526 3.19088 8.44254 3.30816L14.6925 9.55816C14.7506 9.61621 14.7967 9.68514 14.8282 9.76101C14.8597 9.83688 14.8758 9.91821 14.8758 10.0003C14.8758 10.0825 14.8597 10.1638 14.8282 10.2397C14.7967 10.3156 14.7506 10.3845 14.6925 10.4425Z" fill="black"/>\n            </svg>\n          </a>\n        </div>\n      </nav>\n    `}getVisiblePages(e){const t=this.currentPage,r=[];if(e<=7)for(let t=1;t<=e;t++)r.push(t);else{r.push(1),t>3&&r.push("...");const s=Math.max(2,t-1),i=Math.min(e-1,t+1);for(let e=s;e<=i;e++)r.push(e);t<e-2&&r.push("..."),r.push(e)}return r}renderResultsCount(e){if(!this.elements.resultsCount)return;const t=this.config.itemsPerPage||12,r=Math.min(this.currentPage*t,e);this.elements.resultsCount.textContent=`Showing ${r} / ${e}`}renderActiveFilters(){if(!this.elements.activeFilters)return;if(!Object.values(this.activeFilters).some(e=>e&&e.length>0))return this.elements.activeFilters.innerHTML="",void(this.elements.clearFilters&&
1(this.elements.clearFilters.style.display="none"));const e=[];for(const[t,r]of Object.entries(this.activeFilters))r&&0!==r.length&&r.forEach(r=>{let s=r;const i=document.querySelector(`[data-filter-dropdown="${t}"]`);if(i){const e=i.querySelector(`option[value="${r}"]`);e&&(s=e.textContent)}else if(this.filterOptions[t]){const e=this.filterOptions[t].find(e=>String(e.value)===String(r));e&&(s=e.label)}e.push(`\n          <button class="flex items-center gap-[8px] px-[9px] py-[3px] bg-surface-brand-gray-20 rounded-[54px] hover:bg-surface-brand-gray-30 transition-colors" \n                  data-filter-key="${t}" \n                  data-filter-value="${r}">\n            <span class="font-normal text-fl-base text-fg-secondary">${this.escapeHtml(s)}</span>\n            <span class="icon-[i--ph-x] size-[16px] text-fg-secondary"></span>\n          </button>\n        `)});this.elements.activeFilters.innerHTML=e.join(""),this.elements.clearFilters&&(this.elements.clearFilters.style.display="flex")}syncURL(){const e=new URLSearchParams(window.location.search);e.delete("page"),e.delete("q"),e.delete("sort");const t=[];e.forEach((e,r)=>{r.startsWith("filter__")&&t.push(r)}),t.forEach(t=>e.delete(t)),this.currentPage>1&&e.set("page",this.currentPage),this.searchQuery&&e.set("q",this.searchQuery),this.sortOrder!==this.config.defaultSort&&e.set("sort",this.sortOrder),Object.entries(this.activeFilters).forEach(([t,r])=>{r&&r.length&&e.set(`filter__${t}`,r.join(","))});const r=`${window.location.pathname}${e.toString()?"?"+e:""}`;history.replaceState(null,"",r)}parseURLParams(){const e=new URLSearchParams(window.location.search);this.isStaticView()?(this.currentPage=1,this.searchQuery="",this.sortOrder=this.config.defaultSort||"date_desc"):(this.currentPage=parseInt(e.get("page"))||1,this.searchQuery=e.get("q")||"",this.sortOrder=e.get("sort")||this.config.defaultSort||"date_desc"),e.forEach((e,t)=>{if(t.startsWith("filter__")){const r=t.replace("filter__","");this.activeFilters[r]=e.split(",").filter(Boolean)}}),this.elements.searchInput&&this.searchQuery&&(this.elements.searchInput.value=this.searchQuery),this.updateSortLabel(),this.syncFilterDropdowns()}syncFilterDropdowns(){Object.entries(this.activeFilters).forEach(([e,t])=>{const r=this.getFilterCheckboxes(e);if(r.length>0)return r.forEach(e=>{e.checked=t.includes(e.value)}),void this.updateFilterDropdownLabel(e);const s=this.elements.container?.querySelector(`[data-filter-dropdown="${e}"]`);s&&"SELECT"===s.tagName&&t&&t.length>0&&(s.value=t[0])}),this.updateAllFilterDropdownLabels()}bindEvents(){if(this.elements.searchInput){let e;this.elements.searchInput.addEventListener("input",t=>{clearTimeout(e),e=setTimeout(()=>{this.searchQuery=t.target.value,this.currentPage=1,this.render()},300)})}document.addEventListener("click",e=>{if(!this.elements.container||!this.elements.container.contains(e.target))return;const t=e.target.closest("[data-sort-option]");if(t&&(this.sortOrder=t.dataset.sortOption,this.currentPage=1,this.updateSortLabel(),this.render(),this.closeDropdownForElement(t)),e.target.closest(".blaze-pagination button")){const e=this.elements.cards?.querySelector(".blaze-slider");e&&this.dedupePagination(e)}}),this.elements.clearFilters&&this.elements.clearFilters.addEventListener("click",()=>{this.clearAllFilters()}),document.addEventListener("click",e=>{const t=e.target.closest("[data-page]");if(t){e.preventDefault();const r=parseInt(t.dataset.page),s=this.getTotalPages(this.getFilteredItems().length);r>=1&&r<=s&&(this.currentPage=r,this.render(),this.scrollToTop())}const r=e.target.closest("[data-filter-key]");if(r){const e=r.dataset.filterKey,t=r.dataset.filterValue;this.removeFilter(e,t)}}),document.addEventListener("change",e=>{if(!this.elements.container||!this.elements.container.contains(e.target))return;const t=e.target.closest("[data-filter-option]");if(t){const e=t.dataset.filterOption,r=this.getFilterCheckboxes(e).filter(e=>e.checked).map(e=>e.value).filter(Boolean);return r.length>0?this.activeFilters[e]=r:delete this.activeFilters[e],this.currentPage=1,this.updateFilterDropdownLabel(e),this.render(),void this.closeDropdownForElement(t)}const r=e.target.closest("select[data-filter-dropdown]");
1if(r){const e=r.dataset.filterDropdown,t=Array.from(r.selectedOptions).map(e=>e.value).filter(Boolean);this.activeFilters[e]=t,this.currentPage=1,this.updateFilterDropdownLabel(e),this.render()}})}removeFilter(e,t){if(this.activeFilters[e]&&(this.activeFilters[e]=this.activeFilters[e].filter(e=>e!==t),0===this.activeFilters[e].length)){delete this.activeFilters[e];const t=this.elements.container?.querySelector(`[data-filter-dropdown="${e}"]`);t&&"SELECT"===t.tagName&&(t.value="")}const r=this.getFilterCheckboxes(e);r.length>0&&(r.forEach(e=>{e.value===t&&(e.checked=!1)}),this.updateFilterDropdownLabel(e)),this.currentPage=1,this.render()}clearAllFilters(){this.activeFilters={},this.searchQuery="",this.elements.searchInput&&(this.elements.searchInput.value=""),this.elements.container?.querySelectorAll("select[data-filter-dropdown]").forEach(e=>{e.value=""}),this.elements.container?.querySelectorAll("[data-filter-option]").forEach(e=>{e.checked=!1}),this.updateAllFilterDropdownLabels(),this.currentPage=1,this.render()}updateSortLabel(){if(!this.elements.sortLabel)return;const e=this.elements.sortLabel.dataset.sortDefault||"Date (Newest First)";this.elements.sortLabel.textContent={date_desc:"Date (Newest First)",date_asc:"Date (Oldest First)",az:"A-Z",za:"Z-A"}[this.sortOrder]||e}scrollToTop(){this.elements.container&&this.elements.container.scrollIntoView({behavior:"smooth",block:"start"})}escapeHtml(e){if(!e)return"";const t=document.createElement("div");return t.textContent=e,t.innerHTML}escapeAttribute(e){return this.escapeHtml(e).replace(/"/g,"&quot;")}isSliderView(){return"slider"===this.config?.view}isStaticView(){return"static"===this.config?.view}refreshSlider(){const e=this.elements.cards?.querySelector(".blaze-slider");if(!e||"undefined"==typeof HDDS||!HDDS.slider)return;if(!e.id)return;const t=document.querySelector(`#${e.id}`),r=this.elements.cards?.getBoundingClientRect?.().width;t&&r&&(t.style.width=`${r}px`);const s=e.querySelectorAll(".blaze-pagination");s.length>1&&s.forEach((e,t)=>{t>0&&e.remove()}),"true"!==e.dataset.rcSliderInit&&(HDDS.slider(`#${e.id}`),e.dataset.rcSliderInit="true"),this.dedupePagination(e),requestAnimationFrame(()=>this.dedupePagination(e)),this.observePagination(e)}getFilterCheckboxes(e){return Array.from(this.elements.container?.querySelectorAll(`[data-filter-option="${e}"]`)||[])}updateFilterDropdownLabel(e){const t=document.querySelector(`[data-filter-label="${e}"]`);if(!t)return;const r=this.activeFilters[e]||[];if(!r.length)return void(t.textContent=t.dataset.filterDefault||t.textContent);const s=(t.dataset.filterLabelText||"item").toLowerCase(),i=r.length>1&&!s.endsWith("s"),a=`${s}${i?"s":""}`;t.textContent=`${r.length} ${a} selected`}updateAllFilterDropdownLabels(){this.elements.container?.querySelectorAll("[data-filter-label]").forEach(e=>{const t=e.dataset.filterLabel;t&&this.updateFilterDropdownLabel(t)})}dedupePagination(e){const t=e.querySelectorAll(".blaze-pagination");t.length>1&&t.forEach((e,t)=>{t>0&&e.remove()});const r=e.querySelector(".blaze-pagination");if(!r)return;const s=Array.from(r.querySelectorAll("button")),i=new Set;s.forEach(e=>{const t=e.getAttribute("aria-label")||"";i.has(t)?e.remove():i.add(t)});const a=Array.from(r.querySelectorAll("button")),n=e.querySelectorAll(".blaze-track > *").length||s.length;a.length>n&&a.slice(n).forEach(e=>e.remove());const l=r.querySelectorAll("button.active");l.length>1&&l.forEach((e,t)=>{t>0&&e.classList.remove("active")})}observePagination(e){const t=e.querySelector(".blaze-pagination");t&&"true"!==e.dataset.rcPaginationObserver&&(new MutationObserver(()=>{this.dedupePagination(e)}).observe(t,{childList:!0,subtree:!0}),e.dataset.rcPaginationObserver="true")}closeDropdownForElement(e){const t=e?.closest?.(".hs-dropdown");if(!t)return;if(window.HSDropdown&&"function"==typeof window.HSDropdown.close)return void window.HSDropdown.close(t);t.classList.remove("open");const r=t.querySelector(".hs-dropdown-menu");r&&r.classList.add("hidden");const s=t.querySelector(".hs-dropdown-toggle");
1s&&s.setAttribute("aria-expanded","false")}toSlug(e){return String(e||"").toLowerCase().trim().replace(/[_\s]+/g,"-").replace(/-+/g,"-")}getFilterKeyAliases(e){return{blog_tags:["topics"],topics:["blog_tags"]}[e]||[]}normalizeFilterKey(e){return String(e||"").toLowerCase().trim().replace(/[\s-]+/g,"_")}getFilterValuesForMatching(e,t,r){const s=this.getFilterValuesForMatchingByKey(e,t,r);return Object.values(s).flat()}getFilterValuesForMatchingByKey(e,t,r){const s=[r,...this.getFilterKeyAliases(r)],i=new Set(s.map(e=>this.normalizeFilterKey(e))),a={};return s.forEach(r=>{const s=[];Array.from(e.attributes||[]).forEach(e=>{if(!e?.name?.startsWith("data-filter-"))return;const t=e.name.replace("data-filter-","");i.has(this.normalizeFilterKey(t))&&String(e.value||"").split(",").forEach(e=>{const t=this.toSlug(e);t&&s.push(t)})});const n=this.itemsById?.get(String(t)),l=this.getItemFilterValues(n,r);null!=l&&(Array.isArray(l)?l:[l]).forEach(e=>{const t=this.toSlug(e);t&&s.push(t)}),a[r]=[...new Set(s)]}),a}getItemFilterValues(e,t){if(!e||!t)return null;const r=this.normalizeFilterKey(t),s=e=>e&&"object"==typeof e&&Object.keys(e).find(e=>this.normalizeFilterKey(e)===r)||null,i=e?.filters;if(Array.isArray(i)){const e=i.find(e=>e?.key===t);if(e&&void 0!==e.values&&null!==e.values)return e.values;const s=i.find(e=>this.normalizeFilterKey(e?.key)===r);if(s&&void 0!==s.values&&null!==s.values)return s.values}else if(i&&"object"==typeof i){if(void 0!==i[t]&&null!==i[t])return i[t];const e=s(i);if(e&&void 0!==i[e]&&null!==i[e])return i[e]}if(void 0!==e[t]&&null!==e[t])return e[t];const a=s(e);return a&&void 0!==e[a]&&null!==e[a]?e[a]:null}buildFilterAttributes(e){const t=e?.filters||{},r=[],s=Object.keys(this.filterOptions||{}).filter(e=>!e.startsWith("_"));let i=[];return Array.isArray(t)?t.forEach(e=>{e?.key&&i.push([e.key,e.values])}):i=Object.entries(t),new Set([...i.map(([e])=>e),...s]).forEach(t=>{const s=i.find(([e])=>e===t),a=s?s[1]:e?.[t];if(null==a)return;const n=(Array.isArray(a)?a:[a]).map(e=>this.toSlug(e)).filter(Boolean);n.length>0&&r.push(`data-filter-${this.escapeAttribute(t)}="${this.escapeAttribute(n.join(","))}"`)}),r.join(" ")}}document.addEventListener("DOMContentLoaded",()=>{document.querySelectorAll("[data-resource-center-items]").forEach(e=>{"true"===e.dataset?.inEditor||new ResourceCenter(e)})})}();
2//# sourceURL=https://21052030.fs1.hubspotusercontent-na1.net/hubfs/21052030/hub_generated/module_assets/1/205955507716/1770751591774/module_resource-center-v2.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.