PageSourceSearch

https://www.shsu.edu/_files/js/policy-finder-BxgBQN_q.js

js shsu.edu collected 2026-10-01 10:21:29 UTC 4,236 bytes, 1 lines download raw bytes

1import{F as o}from"./fuse-CcLD0YPK.js";const n=r=>({filtersOpen:!1,data:[],departments:[],divisions:[],areas:[],filteredData:[],searchTerm:"",selectedDepartment:"",selectedDivision:"",selectedArea:"",totalResults:"",loading:!0,async init(){this.loadQueryParameters(),this.applyPreFilters(),await this.fetchData(),this.populateTaxonomy,this.filter},async fetchData(){try{this.loading=!0;const t=await fetch("/institutional-transparency/university-policies.json");if(!t.ok)throw new Error("Network response was not ok");this.data=await t.json(),this.loading=!1}catch(t){console.error("There was a problem with the fetch operation:",t)}},filtersForm:{"x-collapse"(){return!0},"x-show"(){return this.filtersOpen},"@submit.prevent"(){this.filter}},openFilters:{"@click"(){this.filtersOpen=!this.filtersOpen}},divisionsLoop:{":key"(){return this.division.id},"x-for":"division in divisions"},divisionOption:{":value"(){return this.division.id},"x-text"(){return this.division.name}},areasLoop:{":key"(){return this.area.id},"x-for":"area in areas"},areaOption:{":value"(){return this.area.id},"x-text"(){return this.area.name}},policyLoop:{":key"(){return this.policy.id},"x-for":"policy in group"},policyName:{"x-text"(){return this.policy.name+" ("+this.policy.policyID+")"},":class"(){return this.$disclosure.isOpen?"translate-x-1":""}},policyArea:{"x-text"(){return this.policy.area.name}},policyDivision:{"x-text"(){return this.policy.division.name}},policyModified:{"x-text"(){return new Date(this.policy.lastUpdated).getFullYear()}},policyDescription:{"x-text"(){return this.policy.description}},pdfLink:{":href"(){return this.policy.pdfLink}},policyLinksLoop:{":key"(){return this.link.id},"x-for":"link in policy.links"},policyLink:{":href"(){return this.link.url}},policyLinkText:{"x-text"(){return this.link.text}},accordionItem:{"x-disclosure"(){}},accordionButton:{"x-disclosure:button"(){},":class"(){return this.$disclosure.isOpen?" bg-brand-sky":""}},accordionContent:{"x-disclosure:panel"(){},"x-collapse"(){}},searchTermField:()=>({"x-model.debounce":"searchTerm"}),divisionsField:()=>({"x-model":"selectedDivision"}),areasField:()=>({"x-model":"selectedArea"}),applyPreFilters(){r.preFilter&&typeof r.preFilter=="object"&&Object.entries(r.preFilter).forEach(([t,e])=>{var s;const i=(s=this.filterSet.find(a=>a.query===t))==null?void 0:s.selectedKey;i&&(this[i]=e||"")})},get populateTaxonomy(){const t=new Map,e=new Map;this.data.forEach(i=>{t.has(i.division.id)||t.set(i.division.id,{id:i.division.id,name:i.division.name}),e.has(i.area.id)||e.set(i.area.id,{id:i.area.id,name:i.area.name})}),this.divisions=Array.from(t.values()).sort((i,s)=>i.name.localeCompare(s.name)),this.areas=Array.from(e.values()).sort((i,s)=>i.name.localeCompare(s.name))},get isFiltered(){return this.searchTerm!==""||this.selectedDivision!==""||this.selectedArea!==""},get filter(){if(this.updateUrl(),this.isFiltered){let t=this.data;if(t=this.data.filter(e=>(!this.selectedDivision||e.division.id===this.selectedDivision)&&(!this.selectedArea||e.area.id===this.selectedArea)),this.searchTerm){const e={keys:["name","policyID","description"],ignoreLocation:!0,threshold:0};t=new o(t,e).search(this.searchTerm).map(s=>s.item)}this.totalResults=t.length,this.filteredData=this.sortAndGroupPrograms(t)}else this.totalResults=this.data.length,this.filteredData=this.sortAndGroupPrograms(this.data)},get filterSet(){return[{query:"division",selectedKey:"selectedDivision"},{query:"area",selectedKey:"selectedArea"},{query:"query",selectedKey:"searchTerm"}]},sortAndGroupPrograms(t){return t.sort((e,i)=>e.name.localeCompare(i.name)).reduce((e,i)=>{const s=i.name.charAt(0).toUpperCase();return e[s]||(e[s]=[]),e[s].push(i),e},{})},loadQueryParameters(){if(!r.preFilter){const t=new URLSearchParams(window.location.search);this.filterSet.forEach(e=>{e.value=t.get(e.query)||"",this[e.selectedKey]=e.value})}},updateUrl(){if(!r.preFilter){const t=new URL(window.location);for(const{query:e,selectedKey:i}of this.filterSet){const s=this[i];s?t.searchParams.set(e,s):t.searchParams.delete(e)}window.history.replaceState({},"",t)}}}),d=Object.freeze(Object.defineProperty({__proto__:null,default:n},Symbol.toStringTag,{value:"Module"}));
1export{d as _};

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.