UNPKG

vuestic-ui

Version:
1 lines 2.28 kB
{"version":3,"file":"setPaginationRange.mjs","sources":["../../../../../src/components/va-pagination/setPaginationRange.ts"],"sourcesContent":["import { warn } from '../../utils/console'\n\nexport const setPaginationRange = (\n currentPage = 1,\n visiblePages: number,\n pages: number,\n includeBoundary = false) => {\n let start = 0\n if (pages === 0) { pages = 1 }\n if (visiblePages > pages) { visiblePages = pages }\n\n if (visiblePages === 0) {\n start = 1\n\n // to prevent extra long pagination, can be overwritten by user via `visiblePages` property\n visiblePages = pages > 10 ? 10 : pages\n } else {\n const paginationMiddlePage = visiblePages / 2\n if (currentPage - paginationMiddlePage <= 0 || currentPage > pages) {\n start = 1\n } else {\n start = currentPage + paginationMiddlePage > pages\n ? pages - visiblePages + 1\n : Math.ceil(currentPage - paginationMiddlePage)\n }\n }\n\n const range: Array<'...' | number> = []\n\n for (let i = 0; i < visiblePages; i++) {\n range.push(start + i)\n }\n\n if (includeBoundary && visiblePages < 7) {\n pages >= 7 && warn(\n '[va-pagination] To work in a proper way, the `boundaryNumbers` prop needs at least 7 visible pages to be set via the `visiblePages` prop (first, last, 2 boundaries, current, previous, next).',\n )\n } else if (includeBoundary) {\n start !== 1 && range.splice(0, 2, 1, '...')\n range[range.length - 1] !== pages && range.splice(-2, 2, '...', pages)\n }\n\n return range\n}\n"],"names":[],"mappings":";AAEO,MAAM,qBAAqB,CAChC,cAAc,GACd,cACA,OACA,kBAAkB,UAAU;AAC5B,MAAI,QAAQ;AACZ,MAAI,UAAU,GAAG;AAAU,YAAA;AAAA,EAAE;AAC7B,MAAI,eAAe,OAAO;AAAiB,mBAAA;AAAA,EAAM;AAEjD,MAAI,iBAAiB,GAAG;AACd,YAAA;AAGO,mBAAA,QAAQ,KAAK,KAAK;AAAA,EAAA,OAC5B;AACL,UAAM,uBAAuB,eAAe;AAC5C,QAAI,cAAc,wBAAwB,KAAK,cAAc,OAAO;AAC1D,cAAA;AAAA,IAAA,OACH;AACG,cAAA,cAAc,uBAAuB,QACzC,QAAQ,eAAe,IACvB,KAAK,KAAK,cAAc,oBAAoB;AAAA,IAClD;AAAA,EACF;AAEA,QAAM,QAA+B,CAAA;AAErC,WAAS,IAAI,GAAG,IAAI,cAAc,KAAK;AAC/B,UAAA,KAAK,QAAQ,CAAC;AAAA,EACtB;AAEI,MAAA,mBAAmB,eAAe,GAAG;AACvC,aAAS,KAAK;AAAA,MACZ;AAAA,IAAA;AAAA,aAEO,iBAAiB;AAC1B,cAAU,KAAK,MAAM,OAAO,GAAG,GAAG,GAAG,KAAK;AACpC,UAAA,MAAM,SAAS,CAAC,MAAM,SAAS,MAAM,OAAO,IAAI,GAAG,OAAO,KAAK;AAAA,EACvE;AAEO,SAAA;AACT;"}