{"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;"}