https://www.inkhub.com.au/cdn/shop/t/61/assets/custom-pagination.js?v=135503577621185456031745987936
1if(!customElements.get("custom-pagination")){class CustomPagination extends HTMLElement{constructor(){super(),this.init(),document.addEventListener("on:bfcache:load-restore",this.reload.bind(this))}disconnectedCallback(){this.destroy()}init(){this.infiniteScroll=this.dataset.infiniteScroll==="true",this.pagination=this.querySelector(".js-pagination"),this.loadMoreButton=this.querySelector(".js-pagination-load-more"),this.results=this.querySelectorAll(".js-pagination-result"),this.controller=null,this.resultClickHandler=this.resultClickHandler||this.handleResultClick.bind(this),this.addEventListener("click",this.resultClickHandler),this.loadMoreClickHandler=this.loadMoreClickHandler||this.handleLoadMoreClick.bind(this),this.pagination&&this.pagination.dataset.isMoreResults&&this.results&&(this.loadMoreButton&&this.loadMoreButton.addEventListener("click",this.loadMoreClickHandler),this.infiniteScroll&&(this.paginationObserver=new IntersectionObserver(entries=>{entries.forEach(entry=>{entry.isIntersecting?(this.loadMore(),this.intersectingTimer=setInterval(this.loadMore.bind(this),1e3)):this.intersectingTimer&&clearInterval(this.intersectingTimer)})},{rootMargin:`${window.innerHeight*1.5}px 0px`}),this.paginationObserver.observe(this.pagination)))}destroy(){this.intersectingTimer&&clearInterval(this.intersectingTimer),this.paginationObserver&&this.paginationObserver.disconnect(),this.loadMoreButton&&this.loadMoreButton.removeEventListener("click",this.loadMoreClickHandler),this.removeEventListener("click",this.resultClickHandler),this.loadMoreClickHandler=null}reload(){this.destroy(),this.init()}handleLoadMoreClick(evt){evt.preventDefault(),this.loadMore()}handleResultClick(evt){evt.target.closest("a")&&evt.target.closest(".js-pagination-result")&&this.controller&&this.controller.abort()}async loadMore(){if(!this.isFetching&&this.dataset.pauseInfiniteScroll==="false"){this.isFetching=!0,this.controller=new AbortController;try{if(!this.loadMoreButton)throw new Error("No 'Load more' button found.");this.loadMoreButton.classList.add("is-loading"),this.loadMoreButton.setAttribute("aria-disabled","true"),this.pagination.dataset.paginationStyle==="traditional"&&this.pagination.classList.add("is-loading");const response=await fetch(this.loadMoreButton.href,{signal:this.controller.signal});if(!response.ok)throw new Error(response.status);if(this.dataset.pauseInfiniteScroll==="true")throw new Error("Infinite scroll was interrupted.");const tmpl=document.createElement("template");tmpl.innerHTML=await response.text();let newResultsHtml="";const lastResult=this.results[this.results.length-1];tmpl.content.querySelectorAll(".js-pagination-result").forEach(result=>{newResultsHtml+=result.outerHTML}),lastResult.insertAdjacentHTML("afterend",newResultsHtml),window.initLazyImages(),this.results=this.querySelectorAll(".js-pagination-result");const newPagination=tmpl.content.querySelector(".js-pagination");newPagination.dataset.isMoreResults?(this.pagination.innerHTML=newPagination.innerHTML,this.loadMoreButton&&(this.loadMoreButton.removeEventListener("click",this.loadMoreClickHandler),this.loadMoreButton=this.querySelector(".js-pagination-load-more"),this.loadMoreButton.addEventListener("click",this.loadMoreClickHandler))):(this.pagination.remove(),this.intersectingTimer&&clearInterval(this.intersectingTimer),this.paginationObserver&&this.paginationObserver.disconnect(),document.querySelectorAll(".js-when-paginated-only").forEach(elem=>elem.remove()))}catch(error){console.log("Unable to fetch next page of results",error),this.intersectingTimer&&clearInterval(this.intersectingTimer)}finally{this.controller=null,this.loadMoreButton&&(this.loadMoreButton.classList.remove("is-loading"),this.loadMoreButton.removeAttribute("aria-disabled")),this.isFetching=!1,this.pagination.dataset.paginationStyle==="traditional"&&this.pagination.classList.remove("is-loading")}}}}customElements.define("custom-pagination",CustomPagination)} 2//# sourceMappingURL=/cdn/shop/t/61/assets/custom-pagination.js.map?v=135503577621185456031745987936
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.