1import{L as T,H as L}from"./D65yuzpB.js";import{o,c,n as w,w as k,b as v,m as $,f as g,a as C,y as q,C as U,F as x,r as V,t as M,v as H,M as d,ay as B}from"./h9yQLS9B.js";const S={key:0,class:"pagination-container"},F=["disabled"],z={key:0,class:"pagination-ellipsis"},A=["onClick"],D={key:0,class:"pagination-ellipsis"},E=["disabled"],G={__name:"Pagination",props:{currentPage:{type:Number,required:!0},totalPages:{type:Number,required:!0},visiblePages:{type:Array,required:!0},hasNextPage:{type:Boolean,required:!0},hasPrevPage:{type:Boolean,required:!0},hasMultiplePages:{type:Boolean,required:!0},basePath:{type:String,required:!0}},emits:["goToPage","next","prev"],setup(e){const n=e,r=d(()=>{const s=n.currentPage-1;return s===1?`${B()}${n.basePath}`:`${B()}${n.basePath}/${s}`}),f=d(()=>{const s=n.currentPage+1;return`${B()}${n.basePath}/${s}`});return(s,a)=>{const P=T,h=L,m=U,N=H;return o(),c(x,null,[e.currentPage===1&&e.totalPages>1?(o(),w(h,{key:0},{default:k(()=>[v(P,{rel:"next",href:$(f)},null,8,["href"])]),_:1})):g("",!0),e.currentPage>1&&e.currentPage<e.totalPages?(o(),w(h,{key:1},{default:k(()=>[v(P,{rel:"prev",href:$(r)},null,8,["href"]),v(P,{rel:"next",href:$(f)},null,8,["href"])]),_:1})):g("",!0),e.currentPage===e.totalPages&&e.currentPage>1?(o(),w(h,{key:2},{default:k(()=>[v(P,{rel:"prev",href:$(r)},null,8,["href"])]),_:1})):g("",!0),v(N,null,{default:k(()=>[e.hasMultiplePages?(o(),c("div",S,[C("button",{onClick:a[0]||(a[0]=i=>s.$emit("prev")),disabled:!e.hasPrevPage,class:q(["pagination-btn",{disabled:!e.hasPrevPage}])},[v(m,{name:"heroicons:arrow-left",class:"w-5 h-5"})],10,F),e.visiblePages[0]>1?(o(),c(x,{key:0},[C("button",{onClick:a[1]||(a[1]=i=>s.$emit("goToPage",1)),class:"pagination-btn"}," 1 "),e.visiblePages[0]>2?(o(),c("span",z," ... ")):g("",!0)],64)):g("",!0),(o(!0),c(x,null,V(e.visiblePages,i=>(o(),c("button",{key:i,onClick:y=>s.$emit("goToPage",i),class:q(["pagination-btn",{active:i===e.currentPage}])},M(i),11,A))),128)),e.visiblePages[e.visiblePages.length-1]<e.totalPages?(o(),c(x,{key:1},[e.visiblePages[e.visiblePages.length-1]<e.totalPages-1?(o(),c("span",D," ... ")):g("",!0),C("button",{onClick:a[2]||(a[2]=i=>s.$emit("goToPage",e.totalPages)),class:"pagination-btn"},M(e.totalPages),1)],64)):g("",!0),C("button",{onClick:a[3]||(a[3]=i=>s.$emit("next")),disabled:!e.hasNextPage,class:q(["pagination-btn",{disabled:!e.hasNextPage}])},[v(m,{name:"heroicons:arrow-right",class:"w-5 h-5"})],10,E)])):g("",!0)]),_:1})],64)}}},J=({data:e,currentPage:n,basePath:r=null,itemsPerPage:f=9,totalCountKey:s="totalCount"})=>{const a=d(()=>e.value?Math.ceil(e.value[s]/f):0),P=d(()=>n.value<a.value),h=d(()=>n.value>1),m=d(()=>a.value>1),N=d(()=>{const l=[],u=a.value,b=n.value;if(u<=5)for(let t=1;t<=u;t++)l.push(t);else if(b<=3)for(let t=1;t<=5;t++)l.push(t);else if(b>=u-2)for(let t=u-4;t<=u;t++)l.push(t);else for(let t=b-2;t<=b+2;t++)l.push(t);return l}),i=l=>{{const u=typeof r=="function"||r.value!==void 0?r.value:r,b=l===1?u:`${u}/${l}`;history.replaceState({},null,b)}},y=l=>{n.value=l,r&&i(l),window.scrollTo({top:0,behavior:"smooth"})};return{totalPages:a,hasNextPage:P,hasPrevPage:h,hasMultiplePages:m,visiblePages:N,handlePageChange:y,handleNext:()=>{P.value&&y(n.value+1)},handlePrev:()=>{h.value&&y(n.value-1)}}};export{G as _,J as u};
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.