UNPKG

pagination-ui-less

Version:
3 lines (2 loc) 959 B
function e({pagesLength:e=1,currentPage:a=1,onChange:t}){const n=e=>{a=Number(e);const n=r();return"function"==typeof t&&t(n),n},r=()=>{const t=(()=>{if(a-2<=0)return 1;const t=a+2-e;return t>0?a-2-t:a-2})(),n=Array(5).fill(t).map((e,t)=>{const n=e+t;return{isActive:n===a,action:"setPage",value:n}}).filter(({value:a})=>a>=1&&a<=e),r=n.some(({value:e})=>1===e)?[]:[{action:"setPage",value:1}],u=n.some(({value:a})=>a===e)?[]:[{action:"setPage",value:e}],g=1===a?[]:[{action:"previousPage",value:"Prev"}],s=a===e?[]:[{action:"nextPage",value:"Next"}],o=e=>e?[{action:null,value:"..."}]:[],i=Array.from(n,({value:e})=>e);return{currentPage:a,pages:[...g,...r,...o(Math.min(...i)>2),...n,...o(Math.max(...i)<e-1),...u,...s]}};return{setPage:n,setPagesLength:(t,n)=>(e=t,n&&(a=n),r()),getPages:r,getCurrentPage:()=>a,nextPage:()=>n(a+1),previousPage:()=>n(a-1),firstPage:()=>n(1),lastPage:()=>n(e)}}export{e as default}; //# sourceMappingURL=index.modern.js.map