PageSourceSearch

https://shop.pv-magazine.com/wp-content/themes/pvmagazine/dist/js/modules/filter-queries-532fc2b7.js

js pv-magazine.com collected 2026-10-01 08:19:12 UTC 4,445 bytes, 1 lines download raw bytes

1class t{constructor(t,e){this.rootEl=t,this.rootClass=e,this.busyClass="loading",this.filterOpenClass="filter-sidebar-open",this.bodyOpenClass="filter-open",this.filterCheckboxesClass="filter-checkboxes",this.headerClass="filter-sidebar",this.headerEl=this.rootEl.querySelector(`.${this.headerClass}`),this.ajaxTargetClass=`${this.rootClass}__ajax-target`,this.ajaxTargetEl=this.rootEl.querySelector(`.${this.ajaxTargetClass}`),this.filterTitles=this.rootEl.querySelectorAll(".filter-checkboxes__title"),this.filterOverlay=this.rootEl.querySelector(".filter-sidebar-overlay"),this.filterCloseBtn=this.rootEl.querySelector(".filter-sidebar__close"),this.filterOpenBtn=this.rootEl.querySelector(".filter-button"),this.switchBlock=this.rootEl.querySelector(".switch-block"),this.switchInput=this.rootEl.querySelector(".switch-block input"),this.loadingEl=this.rootEl.querySelector(".filter-loading-overlay"),this.clearFilterEl=this.rootEl.querySelector(".filter-reset"),this.headerEl&&this.headerEl.addEventListener("submit",this.handleSubmit.bind(this)),this.clearFilterEl&&this.clearFilterEl.addEventListener("click",this.clearFilters.bind(this)),this.filterTitles.forEac
1h((t=>{t.addEventListener("click",(function(){t.classList.contains("active")?t.classList.remove("active"):t.classList.add("active")}))})),this.filterOverlay&&this.filterOverlay.addEventListener("click",this.toggleSidebar.bind(this)),this.filterOpenBtn&&this.filterOpenBtn.addEventListener("click",this.toggleSidebar.bind(this)),this.filterCloseBtn&&this.filterCloseBtn.addEventListener("click",this.toggleSidebar.bind(this)),this.switchInput&&this.switchInput.addEventListener("change",this.changeView.bind(this))}changeView(t){t.target.checked?this.switchBlock&&this.switchBlock.classList.add("switch-on"):this.switchBlock&&this.switchBlock.classList.remove("switch-on"),this.updateUrl(),this.fetchGridItems()}toggleSidebar(){this.rootEl.classList.contains(this.filterOpenClass)?(this.rootEl.classList.remove(this.filterOpenClass),document.body.classList.remove(this.bodyOpenClass)):(this.rootEl.classList.add(this.filterOpenClass),document.body.classList.add(this.bodyOpenClass))}fetchGridItems(){this.loadingEl&&this.loadingEl.classList.add("loading");const t=new URLSearchParams;for(const e of new window.FormData(this.headerEl))t.append(e[0],e[1]);let e=t.toString();this.switchInput&&(this.switchInput.checked?e+="view=future":e+="view=past");const s=`?${e}`;this.abortController instanceof AbortController&&this.abortController.abort();const i=new AbortController;this.abortController=i,this.rootEl.classList.add(this.busyClass),this.currentFetch=window.fetch(s,{signal:i.signal}).then((t=>t.text())).then(this.updateFromFetch.bind(this)).finally((()=>{this.rootEl.classList.remove(this.busyClass),this.loadingEl&&this.loadingEl.classList.remove("loading"),delete this.abortController}))}updateFromFetch(t){const e=this.rootEl.getAttribute("id"),s=(new window.DOMParser).parseFromString(t,"text/html").querySelector(`#${e} .${this.ajaxTargetClass}`);s instanceof window.HTMLElement&&(this.ajaxTargetEl.innerHTML=s.innerHTML)}updateUrl(){const t=Array.from(this.headerEl.querySelectorAll(`.${this.filterCheckboxesClass}`)),e="/"+this.rootEl.dataset.path+"/",s=new URL(e,window.location.origin);s.searchParams.delete("view"),this.switchInput&&(this.switchInput.checked?s.searchParams.set("view","future"):s.searchParams.set("view","past")),t.forEach((t=>{const e=t.dataset.taxonomy;s.searchParams.delete(e)}),this),t.forEach((t=>{const e=t.dataset.taxonomy;Array.from(t.querySelectorAll('input[type="checkbox"]:checked')).forEach(((t,i)=>{const r=parseInt(t.getAttribute("value"),10);s.searchParams.set(`${e}[${i}]`,r)}),this)}),this),window.history.replaceState(null,document.title,decodeURI(s.toString()))}handleChange(){this.updateUrl(),this.fetchGridItems()}handleSubmit(t){t.preventDefault(),this.updateUrl(),this.fetchGridItems(),this.toggleSidebar()}clearFilters(){const t="/"+this.rootEl.dataset.path+"/",e=new URL(t,window.location.origin);window.history.replaceState(null,document.title,decodeURI(e.toString()));Array.from(this.headerEl.querySelectorAll(`.${this.filterCheckboxesClass}
1`)).forEach((t=>{Array.from(t.querySelectorAll('input[type="checkbox"]:checked')).forEach(((t,e)=>{t.checked=!1}),this)})),this.fetchGridItems()}}(()=>{const e="article-filter-block";document.querySelectorAll(`.${e}`).forEach((s=>new t(s,e)))})();export{t as FilterQueries};

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.