{"version":3,"file":"pagination.utils.cjs","sources":["../../../../../src/components/navigation/pagination/utils/pagination.utils.ts"],"sourcesContent":["export type PaginationPageItem = number | 'ellipsis'\r\n\r\nexport const getPaginationPageItems = (\r\n    totalPages: number,\r\n    currentPage: number,\r\n    siblingCount: number,\r\n    boundaryCount: number,\r\n): PaginationPageItem[] => {\r\n    const visiblePages = new Set<number>()\r\n\r\n    for (let page = 1; page <= boundaryCount; page += 1) {\r\n        visiblePages.add(page)\r\n        visiblePages.add(totalPages - page + 1)\r\n    }\r\n\r\n    for (\r\n        let page = currentPage - siblingCount;\r\n        page <= currentPage + siblingCount;\r\n        page += 1\r\n    ) {\r\n        visiblePages.add(page)\r\n    }\r\n\r\n    const pages = [...visiblePages]\r\n        .filter((page) => page >= 1 && page <= totalPages)\r\n        .sort((a, b) => a - b)\r\n    const items: PaginationPageItem[] = []\r\n\r\n    pages.forEach((page, index) => {\r\n        const previousPage = pages[index - 1]\r\n\r\n        if (previousPage !== undefined && page - previousPage > 1) {\r\n            items.push('ellipsis')\r\n        }\r\n        items.push(page)\r\n    })\r\n\r\n    return items\r\n}\r\n"],"names":["getPaginationPageItems","totalPages","currentPage","siblingCount","boundaryCount","visiblePages","page","pages","a","b","items","index","previousPage"],"mappings":"gFAEO,MAAMA,EAAyB,CAClCC,EACAC,EACAC,EACAC,IACuB,CACvB,MAAMC,MAAmB,IAEzB,QAASC,EAAO,EAAGA,GAAQF,EAAeE,GAAQ,EAC9CD,EAAa,IAAIC,CAAI,EACrBD,EAAa,IAAIJ,EAAaK,EAAO,CAAC,EAG1C,QACQA,EAAOJ,EAAcC,EACzBG,GAAQJ,EAAcC,EACtBG,GAAQ,EAERD,EAAa,IAAIC,CAAI,EAGzB,MAAMC,EAAQ,CAAC,GAAGF,CAAY,EACzB,OAAQC,GAASA,GAAQ,GAAKA,GAAQL,CAAU,EAChD,KAAK,CAACO,EAAGC,IAAMD,EAAIC,CAAC,EACnBC,EAA8B,CAAA,EAEpC,OAAAH,EAAM,QAAQ,CAACD,EAAMK,IAAU,CAC3B,MAAMC,EAAeL,EAAMI,EAAQ,CAAC,EAEhCC,IAAiB,QAAaN,EAAOM,EAAe,GACpDF,EAAM,KAAK,UAAU,EAEzBA,EAAM,KAAKJ,CAAI,CACnB,CAAC,EAEMI,CACX"}