{"version":3,"file":"useVirtualRows.cjs","sources":["../../../../../src/lib/DataTable/tableFeatures/useVirtualRows.ts"],"sourcesContent":["import {notUndefined, useVirtualizer} from '@tanstack/react-virtual';\nimport type {MutableRefObject} from 'react';\n\nexport type Props = {\n    rowsCount: number;\n    scrollRef: MutableRefObject<HTMLElement | null>;\n    cellHeight: number;\n    overscan: number;\n};\n\nexport const useVirtualRows = ({rowsCount, scrollRef, cellHeight, overscan}: Props) => {\n    const virtualizer = useVirtualizer({\n        count: rowsCount,\n        getScrollElement: () => scrollRef.current,\n        estimateSize: () => cellHeight,\n        overscan: overscan,\n    });\n\n    const virtualRows = virtualizer.getVirtualItems();\n\n    const [before, after] =\n        virtualRows.length > 0\n            ? [\n                  notUndefined(virtualRows[0]).start - virtualizer.options.scrollMargin,\n                  virtualizer.getTotalSize() -\n                      notUndefined(virtualRows[virtualRows.length - 1]).end,\n              ]\n            : [0, 0];\n\n    return {virtualizer, virtualRows, before, after};\n};\n"],"names":["useVirtualRows","rowsCount","scrollRef","cellHeight","overscan","virtualizer","useVirtualizer","virtualRows","before","after","notUndefined"],"mappings":"wIAUaA,EAAiB,CAAC,CAAC,UAAAC,EAAW,UAAAC,EAAW,WAAAC,EAAY,SAAAC,KAAqB,CACnF,MAAMC,EAAcC,EAAAA,eAAe,CAC/B,MAAOL,EACP,iBAAkB,IAAMC,EAAU,QAClC,aAAc,IAAMC,EACpB,SAAAC,CAAA,CACH,EAEKG,EAAcF,EAAY,gBAAgB,EAE1C,CAACG,EAAQC,CAAK,EAChBF,EAAY,OAAS,EACf,CACIG,eAAaH,EAAY,CAAC,CAAC,EAAE,MAAQF,EAAY,QAAQ,aACzDA,EAAY,aACR,EAAAK,eAAaH,EAAYA,EAAY,OAAS,CAAC,CAAC,EAAE,GAAA,EAE1D,CAAC,EAAG,CAAC,EAEf,MAAO,CAAC,YAAAF,EAAa,YAAAE,EAAa,OAAAC,EAAQ,MAAAC,CAAK,CACnD"}