PageSourceSearch

https://unito.io/wp-content/themes/unito/assets/build/chunks/pagination-Bo0v1gsg.js

js unito.io collected 2026-09-24 09:16:07 UTC 6,811 bytes, 1 lines download raw bytes

1class c{constructor(){this.controllers=[],this.paginations=document.querySelectorAll(".pagination:not([data-resource-pagination])"),this.paginations.forEach(t=>{this.controllers.push(new d(t))}),window.paginationSetup=this}}class d{constructor(t){this.view=new g(t);const e=t.closest("[data-ajax-enabled]");e?this.initializeAjaxMode(e):this.initializeStandardMode()}initializeAjaxMode(t){t.addEventListener("resources:ready",()=>{this.container=t,this.model=new r(!0)}),t.addEventListener("resources:contentUpdated",e=>{const{pages:i,currentPage:s}=e.detail;this.updatePaginationUI(i,s)})}initializeStandardMode(){this.view.target&&(this.model=new r(!1),this.init())}updatePaginationUI(t,e){var i;if(t<=1){(i=this.view.pagination)==null||i.remove();return}this.ensurePaginationExists(),this.view.updateControls(e-1,t)}ensurePaginationExists(){if(!this.view.pagination){const t=document.createElement("div");t.className="pagination-wrap",this.container.appendChild(t),this.view=new g(t)}}init(){this.isFirstLoad=!0,this.model.postsToPaginate=this.view.getPostsToPaginate(),this.model.postsPerPage=this.view.getPostsPerPage(),this.model.nbPaginationIndexes=this.view.getNbPaginationIndexes(),this.addEventListeners(),this.model.setupPages(this.view)}resetPagination(){this.isFirstLoad||this.model.setCurrentPage(0,this.view),this.model.postsToPaginate=this.view.getPostsToPaginate(),this.model.setupPages(this.view),this.isFirstLoad=!1}addEventListeners(){this.view.pagination.addEventListener("updatecontrols",this.view.updateControls.bind(this.view,this.model)),this.view.firstPageCtrl&&this.view.firstPageCtrl.addEventListener("click",this.model.goToFirstPage.bind(this.model,this.view)),this.view.nextPageCtrl&&this.view.nextPageCtrl.addEventListener("click",this.model.goToNextPage.bind(this.model,this.view)),this.view.previousPageCtrl&&this.view.previousPageCtrl.addEventListener("click",this.model.goToPreviousPage.bind(this.model,this.view)),this.view.lastPageCtrl&&this.view.lastPageCtrl.addEventListener("click",this.model.goToLastPage.bind(this.model,this.view)),this.view.pageNumbers&&this.view.pageNumbers.forEach((t,e)=>{t.addEventListener("click",this.model.goToPage.bind(this.model,e,this.view))}),this.view.target.addEventListener("updatepage",this.view.updatePage.bind(this.view,this.model)),this.view.target.addEventListener("initpagination",this.resetPagination.bind(this))}}
1class r{constructor(t){this.isAjaxEnabled=t,this.currentPage=0}enableAjax(){this.ajaxEnabled||(this.ajaxEnabled=!0,this._originalGoToPage=this.goToPage,this.goToPage=(t,e)=>{this.ajaxEnabled?e.target.dispatchEvent(new CustomEvent("pagination-change",{detail:{page:t+1}})):this._originalGoToPage(t,e)})}async goToPage(t,e){var s,a;let i;t>=((s=this.pages)==null?void 0:s.length)?i=((a=this.pages)==null?void 0:a.length)-1||0:t<0?i=0:i=t,this.currentPage=i,this.isAjaxEnabled?e.target.dispatchEvent(new CustomEvent("pagination-change",{detail:{page:this.currentPage+1}})):(this.setCurrentPage(this.currentPage,e),e.target.dispatchEvent(new Event("updatepage")))}getPage(t){let e=[];return t>=this.pages.length?e=this.pages[this.pages.length-1]:t<0?e=this.pages[0]:e=this.pages[t],e}goToFirstPage(t){this.goToPage(0,t)}goToNextPage(t){this.goToPage(this.currentPage+1,t)}goToPreviousPage(t){this.goToPage(this.currentPage-1,t)}goToLastPage(t){var e;this.goToPage(((e=this.pages)==null?void 0:e.length)-1||0,t)}getCurrentPage(t){const e=window.location.search,i=new URLSearchParams(e);let s=0;if(i.has(t.paginationParam)){const a=parseInt(i.get(t.paginationParam));a>this.pages.length-1?s=this.pages.length-1:a<=0?s=0:s=a}return s}setCurrentPage(t=null,e){const i=new URL(window.location);this.currentPage=t,i.searchParams.set(e.paginationParam,t),window.history.pushState({},"",i)}setupPages(t){const e=Math.ceil(this.postsToPaginate.length/this.postsPerPage);if(this.pages=[],e>0)for(let i=0;i<e;i++)this.pages[i]=this.postsToPaginate.slice(i*this.postsPerPage,i*this.postsPerPage+this.postsPerPage);this.currentPage=this.getCurrentPage(t),this.pageParamOnLoad===void 0&&(this.pageParamOnLoad=this.getCurrentPage(t)),this.goToPage(this.currentPage,t)}}class g{constructor(t){this.pagination=t,this.target=this.getTarget(),this.target&&(this.itemClass=this.target.dataset.itemClass??this.target.dataset.postsClass,this.paginationParam=this.pagination.hasAttribute("data-pagination-param")?this.pagination.dataset.paginationParam:"page",this.init())}init(){this.setupControls()}getTarget(){let t=this.pagination.dataset.target;return t!==void 0&&(t=document.getElementById(t)),t}getNbPaginationIndexes(){return this.pagination.dataset.nbPaginationIndexes}getPostsPerPage(){return parseInt(this.pagination.dataset.postsPerPage)??12}getPostsToPaginate(){const t=[];let e;return this.itemClass!==void 0?e=this.target.querySelectorAll("."+this.itemClass+":not(.filter-hidden):not(.search-hidden)"):e=this.target.querySelectorAll("[data-item-id]:not(.filter-hidden):not(.search-hidden)"),e.length>0&&e.forEach((i,s)=>{const a=i.dataset.itemId?parseInt(i.dataset.itemId):s;t[s]={},t[s].id=a,i.setAttribute("data-item-id",a)}),t}updatePage(t){const e=t.currentPage;t.pages.forEach((i,s)=>{i.forEach(a=>{const n=this.target.querySelector('[data-item-id="'+a.id+'"]');s!==e?n.classList.add("pagination-hidden"):n.classList.remove("pagination-hidden")})}),this.pagination.dispatchEvent(new Event("updatecontrols")),this.target.dispatchEvent(new Event("updateresultcount"))}setupControls(){this.firstPageCtrl=this.pagination.querySelector(".ctrl-first-page"),this.previousPageCtrl=this.pagination.querySelector(".ctrl-previous-page"),this.lastPageCtrl=this.pagination.querySelector(".ctrl-last-page"),this.nextPageCtrl=this.pagination.querySelector(".ctrl-next-page"),this.pageNumbers=this.pagination.querySelectorAll(".ctrl-page-number"),this.leftCtrls=this.pagination.querySelector(".left-ctrls"),this.rightCtrls=this.pagination.querySelector(".right-ctrls")}updateControls(t){const e=t.currentPage,i=t.pages.length,s=t.nbPaginationIndexes;this.toggleControls(e,i),this.togglePageNumbers(e,i,s)}toggleControls(t,e){t===0?this.leftCtrls.classList.add("pagination-ctrl-disabled"):this.leftCtrls.classList.remove("pagination-ctrl-disabled"),t===e-1||e===0?this.rightCtrls.classList.add("pagination-ctrl-disabled"):this.rightCtrls.classList.remove("pagination-ctrl-disabled")}togglePageNumbers(t,e,i){this.pageNumbers.forEach((s,a)=>
1{if(t===a?s.classList.add("ctrl-page-number-active"):s.classList.remove("ctrl-page-number-active"),e===0&&a!==0)s.classList.add("pagination-hidden");else{const n=t+1>e-i&&t+1<=e,h=a+1>e-i&&a+1<=e,l=a>=t&&a<=t+(i-1);n?h?s.classList.remove("pagination-hidden"):s.classList.add("pagination-hidden"):l?s.classList.remove("pagination-hidden"):s.classList.add("pagination-hidden")}})}}export{c as default};

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.