veza/apps/web/dist_verification/assets/Pagination-i598iEQZ.js

1 line
3 KiB
JavaScript

import{a as K,j as n}from"./vendor-react-BHG7lGYR.js";import{d as k,B as d}from"./index-BWcMVITa.js";import{u as x,al as C,v as m}from"./vendor-icons-DaGlTw4_.js";function B({currentPage:e,totalPages:s,onPageChange:a,maxVisiblePages:t=5,showFirstLast:c=!1,className:A,totalItems:l,itemsPerPage:u,showItemsInfo:y=!1}){const M=K.useMemo(()=>{if(s<=t)return Array.from({length:s},(p,z)=>z+1);const i=[],h=Math.floor(t/2);let r=Math.max(1,e-h);const f=Math.min(s,r+t-1);f===s&&(r=Math.max(1,s-t+1)),(c&&r>1||r>1)&&(i.push(1),r>2&&i.push("ellipsis-start"));for(let p=r;p<=f;p++)i.push(p);return f<s&&(f<s-1&&i.push("ellipsis-end"),i.push(s)),i},[e,s,t,c]),v=()=>{e>1&&a(e-1)},j=()=>{e<s&&a(e+1)},N=()=>{a(1)},w=()=>{a(s)},o=(i,h,r)=>{if(i.key==="ArrowLeft"||i.key==="ArrowUp"){i.preventDefault(),v();return}if(i.key==="ArrowRight"||i.key==="ArrowDown"){i.preventDefault(),j();return}if(i.key==="Home"){i.preventDefault(),N();return}if(i.key==="End"){i.preventDefault(),w();return}},b=l&&u?(e-1)*u+1:null,D=l&&u?Math.min(e*u,l):null;return s<=1&&!y?null:n.jsxs("div",{className:k("flex flex-col gap-4",A),children:[y&&l!==void 0&&b!==null&&D!==null&&n.jsxs("div",{className:"text-sm text-muted-foreground text-center",children:["Affichage de ",b," à ",D," sur ",l," résultat",l>1?"s":""]}),s>1&&n.jsxs("nav",{"aria-label":"Navigation de pagination",role:"navigation",className:"flex items-center justify-center gap-1",children:[c&&n.jsxs(d,{type:"button",variant:"outline",size:"icon",onClick:N,disabled:e===1,"aria-label":"Première page",onKeyDown:i=>o(i),children:[n.jsx(x,{className:"h-4 w-4","aria-hidden":"true"}),n.jsx(x,{className:"h-4 w-4 -ml-2","aria-hidden":"true"}),n.jsx("span",{className:"sr-only",children:"Première page"})]}),n.jsxs(d,{type:"button",variant:"outline",size:"icon",onClick:v,disabled:e===1,"aria-label":"Page précédente",onKeyDown:i=>o(i),children:[n.jsx(x,{className:"h-4 w-4","aria-hidden":"true"}),n.jsx("span",{className:"sr-only",children:"Page précédente"})]}),M.map((i,h)=>i==="ellipsis-start"||i==="ellipsis-end"?n.jsx("div",{className:"flex h-9 w-9 items-center justify-center",children:n.jsx(C,{className:"h-4 w-4 text-muted-foreground"})},`ellipsis-${h}`):n.jsx(d,{type:"button",variant:e===i?"default":"outline",size:"icon",onClick:()=>a(i),"aria-label":`Aller à la page ${i}`,"aria-current":e===i?"page":void 0,onKeyDown:r=>o(r),className:k("h-9 w-9",e===i&&"bg-primary text-primary-foreground"),children:i},i)),n.jsxs(d,{type:"button",variant:"outline",size:"icon",onClick:j,disabled:e===s,"aria-label":"Page suivante",onKeyDown:i=>o(i),children:[n.jsx(m,{className:"h-4 w-4","aria-hidden":"true"}),n.jsx("span",{className:"sr-only",children:"Page suivante"})]}),c&&n.jsxs(d,{type:"button",variant:"outline",size:"icon",onClick:w,disabled:e===s,"aria-label":"Dernière page",onKeyDown:i=>o(i),children:[n.jsx(m,{className:"h-4 w-4","aria-hidden":"true"}),n.jsx(m,{className:"h-4 w-4 -ml-2","aria-hidden":"true"}),n.jsx("span",{className:"sr-only",children:"Dernière page"})]})]})]})}export{B as P};