PageSourceSearch

https://www.ziptrak.com.au/wp-content/themes/wp-theme-ziptrak/buil…/view.js?ver=dc75723fd9549928c3b8

js ziptrak.com.au collected 2026-10-08 01:08:18 UTC 2,934 bytes, 1 lines download raw bytes

1(()=>{"use strict";window.wp.data,window.wp.coreData;const t="[data-posts-filter-root]",e="[data-posts-tabs-nav]",s="[data-posts-tab-trigger]",a="[data-posts-grid]",r="[data-posts-load-more]",i="[data-posts-count-value]",o="is-active",n="is-loading",d="all",c=12;class l{constructor(t){const s=t.querySelector(a);if(!s)throw new Error("Required grid element for Posts block not found.");this.root=t,this.grid=s,this.nav=t.querySelector(e),this.loadMore=t.querySelector(r),this.countValue=t.querySelector(i),this.apiUrl=t.dataset.apiUrl||"",this.pageSize=parseInt(t.dataset.postsPerPage||"",10)||c,this.selectedCategories=t.dataset.selectedCategories||"",this.state={activeCategory:t.dataset.activeCategory||d,currentPage:1,isLoading:!1},this.initEvents()}async loadPosts(t=!1){if(!this.state.isLoading&&this.apiUrl){this.state.isLoading=!0,this.grid.classList.toggle(n,!t),this.setLoadMoreState(!0,!0);try{const e=((t,e)=>{const s=new URL(t);return s.searchParams.set("category",e.category),s.searchParams.set("selected_categories",e.selectedCategories.toString()),s.searchParams.set("page",e.page.toString()),s.searchParams.set("per_page",e.pageSize.toString()),s})(this.apiUrl,{category:this.state.activeCategory,selectedCategories:this.selectedCategories,page:this.state.currentPage,pageSize:this.pageSize}),s=await fetch(e.toString());if(!s.ok)throw new Error(`HTTP error! status: ${s.status}`);const a=await s.json();a&&void 0!==a.html&&(t||(this.grid.innerHTML=""),this.grid.insertAdjacentHTML("beforeend",a.html),this.grid.classList.remove(n),this.updateCountState(a.total),this.setLoadMoreState(this.state.currentPage<a.max_pages,!1))}catch(t){console.error("Error fetching posts:",t),this.grid.classList.remove(n),this.setLoadMoreState(!0,!1)}finally{this.state.isLoading=!1}}}initEvents(){this.nav&&this.nav.addEventListener("click",t=>{const e=((t,e,s)=>{if(!(t instanceof Element))return null;const a=t.closest(s);return a&&e.contains(a)?a:null})(t.target,this.nav,s);if(!e)return;const a=e.dataset.postsTabTrigger;if(!a)return;const r=a===this.state.activeCategory;this.state.activeCategory=r?d:a,this.state.currentPage=1,this.updateTriggersState(r?void 0:e),this.loadPosts(!1)}),this.loadMore?.addEventListener("click",()=>{this.state.currentPage+=1,this.loadPosts(!0)})}updateTriggersState(t){this.root.querySelectorAll(s).forEach(e=>{const s=e===t;e.classList.toggle(o,s),e.setAttribute("aria-selected",s?"true":"false")})}updateCountState(t){this.countValue&&(this.countValue.textContent=t.toLocaleString())}setLoadMoreState(t,e){if(this.loadMore){if(e)return this.loadMore.classList.add(n),void(this.loadMore.disabled=!0);this.loadMore.classList.remove(n),this.loadMore.hidden=!t,this.loadMore.disabled=!t,this.loadMore.setAttribute("aria-hidden",t?"false":"true")}}}document.addEventListener("DOMContentLoaded",()=>{document.querySelectorAll(t).forEach(t=>{try{new l(t)}catch(t){console.error(t)}})},{once:!0})})();

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.