@tanstack/table-core 8.0.0-alpha.22 → 8.0.0-alpha.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/aggregationTypes.js +21 -19
- package/build/cjs/aggregationTypes.js.map +1 -1
- package/build/cjs/core.js +17 -29
- package/build/cjs/core.js.map +1 -1
- package/build/cjs/createTable.js +2 -2
- package/build/cjs/createTable.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js +23 -8
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Expanding.js +1 -8
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +1 -1
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +1 -1
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Headers.js.map +1 -1
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pagination.js.map +1 -1
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/RowSelection.js +3 -3
- package/build/cjs/features/RowSelection.js.map +1 -1
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/filterTypes.js.map +1 -1
- package/build/cjs/sortTypes.js.map +1 -1
- package/build/cjs/utils/columnFilterRowsFn.js +20 -78
- package/build/cjs/utils/columnFilterRowsFn.js.map +1 -1
- package/build/cjs/utils/filterRowsUtils.js +100 -0
- package/build/cjs/utils/filterRowsUtils.js.map +1 -0
- package/build/cjs/utils/globalFilterRowsFn.js +10 -62
- package/build/cjs/utils/globalFilterRowsFn.js.map +1 -1
- package/build/cjs/utils/groupRowsFn.js +15 -15
- package/build/cjs/utils/groupRowsFn.js.map +1 -1
- package/build/cjs/utils/sortRowsFn.js +1 -1
- package/build/cjs/utils/sortRowsFn.js.map +1 -1
- package/build/esm/index.js +2587 -2620
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +368 -335
- package/build/types/aggregationTypes.d.ts +9 -9
- package/build/types/core.d.ts +8 -13
- package/build/types/createTable.d.ts +4 -4
- package/build/types/features/ColumnSizing.d.ts +13 -8
- package/build/types/features/Expanding.d.ts +6 -6
- package/build/types/features/Filters.d.ts +15 -15
- package/build/types/features/Grouping.d.ts +16 -16
- package/build/types/features/Headers.d.ts +6 -6
- package/build/types/features/Ordering.d.ts +4 -4
- package/build/types/features/Pagination.d.ts +5 -5
- package/build/types/features/Pinning.d.ts +5 -5
- package/build/types/features/RowSelection.d.ts +8 -8
- package/build/types/features/Sorting.d.ts +12 -12
- package/build/types/features/Visibility.d.ts +6 -6
- package/build/types/filterTypes.d.ts +10 -10
- package/build/types/sortTypes.d.ts +7 -7
- package/build/types/types.d.ts +22 -13
- package/build/types/utils/filterRowsUtils.d.ts +3 -0
- package/build/types/utils/sortRowsQuicksortFn.d.ts +11 -0
- package/build/umd/index.development.js +2587 -2620
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
- package/src/aggregationTypes.ts +23 -19
- package/src/core.tsx +29 -55
- package/src/createTable.tsx +17 -11
- package/src/features/ColumnSizing.ts +31 -7
- package/src/features/Expanding.ts +7 -15
- package/src/features/Filters.ts +15 -15
- package/src/features/Grouping.ts +19 -19
- package/src/features/Headers.ts +5 -5
- package/src/features/Ordering.ts +3 -3
- package/src/features/Pagination.ts +4 -4
- package/src/features/Pinning.ts +4 -4
- package/src/features/RowSelection.ts +9 -11
- package/src/features/Sorting.ts +11 -11
- package/src/features/Visibility.ts +5 -5
- package/src/filterTypes.ts +9 -9
- package/src/sortTypes.ts +6 -6
- package/src/types.ts +34 -25
- package/src/utils/columnFilterRowsFn.ts +12 -73
- package/src/utils/filterRowsUtils.ts +107 -0
- package/src/utils/globalFilterRowsFn.ts +10 -66
- package/src/utils/groupRowsFn.ts +15 -17
- package/src/utils/sortRowsFn.ts +6 -8
- package/src/utils/sortRowsQuicksortFn.ts +174 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Headers.js","sources":["../../../src/features/Headers.ts"],"sourcesContent":["import {\n Cell,\n Column,\n CoreHeader,\n FooterGroupProps,\n FooterProps,\n Getter,\n Header,\n HeaderGroup,\n HeaderGroupProps,\n HeaderProps,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Row,\n} from '../types'\nimport { propGetter, memo } from '../utils'\nimport { ColumnSizing } from './ColumnSizing'\n\nexport type HeadersRow<TGenerics extends PartialGenerics> = {\n _getAllVisibleCells: () => Cell<TGenerics>[]\n getVisibleCells: () => Cell<TGenerics>[]\n getLeftVisibleCells: () => Cell<TGenerics>[]\n getCenterVisibleCells: () => Cell<TGenerics>[]\n getRightVisibleCells: () => Cell<TGenerics>[]\n}\n\nexport type HeadersInstance<TGenerics extends PartialGenerics> = {\n createHeader: (\n column: Column<TGenerics>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n depth: number\n }\n ) => Header<TGenerics>\n getHeaderGroups: () => HeaderGroup<TGenerics>[]\n getLeftHeaderGroups: () => HeaderGroup<TGenerics>[]\n getCenterHeaderGroups: () => HeaderGroup<TGenerics>[]\n getRightHeaderGroups: () => HeaderGroup<TGenerics>[]\n\n getFooterGroups: () => HeaderGroup<TGenerics>[]\n getLeftFooterGroups: () => HeaderGroup<TGenerics>[]\n getCenterFooterGroups: () => HeaderGroup<TGenerics>[]\n getRightFooterGroups: () => HeaderGroup<TGenerics>[]\n\n getFlatHeaders: () => Header<TGenerics>[]\n getLeftFlatHeaders: () => Header<TGenerics>[]\n getCenterFlatHeaders: () => Header<TGenerics>[]\n getRightFlatHeaders: () => Header<TGenerics>[]\n\n getLeafHeaders: () => Header<TGenerics>[]\n getLeftLeafHeaders: () => Header<TGenerics>[]\n getCenterLeafHeaders: () => Header<TGenerics>[]\n getRightLeafHeaders: () => Header<TGenerics>[]\n\n getHeader: (id: string) => Header<TGenerics>\n\n getHeaderGroupProps: <TGetter extends Getter<HeaderGroupProps>>(\n id: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<HeaderGroupProps, TGetter>\n getFooterGroupProps: <TGetter extends Getter<FooterGroupProps>>(\n id: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<FooterGroupProps, TGetter>\n getHeaderProps: <TGetter extends Getter<HeaderProps>>(\n headerId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<HeaderProps, TGetter>\n getFooterProps: <TGetter extends Getter<FooterProps>>(\n headerId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<FooterProps, TGetter>\n getTotalWidth: () => number\n}\n\n//\n\nexport const Headers = {\n createRow: <TGenerics extends PartialGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): HeadersRow<TGenerics> => {\n return {\n _getAllVisibleCells: memo(\n () => [\n row\n .getAllCells()\n .filter(cell => cell.column.getIsVisible())\n .map(d => d.id)\n .join('_'),\n ],\n _ => {\n return row.getAllCells().filter(cell => cell.column.getIsVisible())\n },\n {\n key: 'row._getAllVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n getVisibleCells: memo(\n () => [\n row.getLeftVisibleCells(),\n row.getCenterVisibleCells(),\n row.getRightVisibleCells(),\n ],\n (left, center, right) => [...left, ...center, ...right],\n {\n key: 'row.getVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n getCenterVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n instance.getState().columnPinning.left,\n instance.getState().columnPinning.right,\n ],\n (allCells, left, right) => {\n const leftAndRight = [...(left ?? []), ...(right ?? [])]\n\n return allCells.filter(d => !leftAndRight.includes(d.columnId))\n },\n {\n key: 'row.getCenterVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n getLeftVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n instance.getState().columnPinning.left,\n ,\n ],\n (allCells, left) => {\n const cells = (left ?? [])\n .map(columnId => allCells.find(cell => cell.columnId === columnId)!)\n .filter(Boolean)\n\n return cells\n },\n {\n key: 'row.getLeftVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n getRightVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n instance.getState().columnPinning.right,\n ],\n (allCells, right) => {\n const cells = (right ?? [])\n .map(columnId => allCells.find(cell => cell.columnId === columnId)!)\n .filter(Boolean)\n\n return cells\n },\n {\n key: 'row.getRightVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n }\n },\n\n getInstance: <TGenerics extends PartialGenerics>(\n instance: TableInstance<TGenerics>\n ): HeadersInstance<TGenerics> => {\n return {\n createHeader: (\n column: Column<TGenerics>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n depth: number\n }\n ) => {\n const id = options.id ?? column.id\n\n let header: CoreHeader<TGenerics> = {\n id,\n column,\n isPlaceholder: options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n getWidth: () => {\n let sum = 0\n\n const recurse = (header: CoreHeader<TGenerics>) => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse)\n } else {\n sum += header.column.getWidth() ?? 0\n }\n }\n\n recurse(header)\n\n return sum\n },\n getLeafHeaders: (): Header<TGenerics>[] => {\n const leafHeaders: CoreHeader<TGenerics>[] = []\n\n const recurseHeader = (h: CoreHeader<TGenerics>) => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader)\n }\n leafHeaders.push(h)\n }\n\n recurseHeader(header)\n\n return leafHeaders as Header<TGenerics>[]\n },\n getHeaderProps: userProps =>\n instance.getHeaderProps(header.id, userProps)!,\n getFooterProps: userProps =>\n instance.getFooterProps(header.id, userProps)!,\n renderHeader: () =>\n column.header\n ? instance.render(column.header, {\n instance,\n header: header as Header<TGenerics>,\n column,\n })\n : null,\n renderFooter: () =>\n column.footer\n ? instance.render(column.footer, {\n instance,\n header: header as Header<TGenerics>,\n column,\n })\n : null,\n }\n\n // Yes, we have to convert instance to unknown, because we know more than the compiler here.\n return Object.assign(\n header,\n ColumnSizing.createHeader(header as Header<TGenerics>, instance)\n ) as Header<TGenerics>\n },\n\n // Header Groups\n\n getHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n const leftColumns = leafColumns.filter(column =>\n left?.includes(column.id)\n )\n const rightColumns = leafColumns.filter(column =>\n right?.includes(column.id)\n )\n const centerColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n const headerGroups = buildHeaderGroups(\n allColumns,\n [...leftColumns, ...centerColumns, ...rightColumns],\n instance\n )\n\n return headerGroups\n },\n {\n key: 'getHeaderGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getCenterHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n return buildHeaderGroups(allColumns, leafColumns, instance, 'center')\n },\n {\n key: 'getCenterHeaderGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getLeftHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n ],\n (allColumns, leafColumns, left) => {\n leafColumns = leafColumns.filter(column => left?.includes(column.id))\n return buildHeaderGroups(allColumns, leafColumns, instance, 'left')\n },\n {\n key: 'getLeftHeaderGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getRightHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, right) => {\n leafColumns = leafColumns.filter(column => right?.includes(column.id))\n return buildHeaderGroups(allColumns, leafColumns, instance, 'right')\n },\n {\n key: 'getRightHeaderGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n // Footer Groups\n\n getFooterGroups: memo(\n () => [instance.getHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: 'getFooterGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getLeftFooterGroups: memo(\n () => [instance.getLeftHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: 'getLeftFooterGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getCenterFooterGroups: memo(\n () => [instance.getCenterHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: 'getCenterFooterGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getRightFooterGroups: memo(\n () => [instance.getRightHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: 'getRightFooterGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n // Flat Headers\n\n getFlatHeaders: memo(\n () => [instance.getHeaderGroups()],\n headerGroups => {\n return headerGroups\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: 'getFlatHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getLeftFlatHeaders: memo(\n () => [instance.getLeftHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: 'getLeftFlatHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getCenterFlatHeaders: memo(\n () => [instance.getCenterHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: 'getCenterFlatHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getRightFlatHeaders: memo(\n () => [instance.getRightHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: 'getRightFlatHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n // Leaf Headers\n\n getCenterLeafHeaders: memo(\n () => [instance.getCenterFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: 'getCenterLeafHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getLeftLeafHeaders: memo(\n () => [instance.getLeftFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: 'getLeftLeafHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getRightLeafHeaders: memo(\n () => [instance.getRightFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: 'getRightLeafHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getLeafHeaders: memo(\n () => [\n instance.getLeftHeaderGroups(),\n instance.getCenterHeaderGroups(),\n instance.getRightHeaderGroups(),\n ],\n (left, center, right) => {\n return [\n ...(left[0]?.headers ?? []),\n ...(center[0]?.headers ?? []),\n ...(right[0]?.headers ?? []),\n ]\n .map(header => {\n return header.getLeafHeaders()\n })\n .flat()\n },\n {\n key: 'getLeafHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getHeader: (id: string) => {\n const header = [\n ...instance.getFlatHeaders(),\n ...instance.getCenterFlatHeaders(),\n ...instance.getLeftFlatHeaders(),\n ...instance.getRightFlatHeaders(),\n ].find(d => d.id === id)\n\n if (!header) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Could not find header with id: ${id}`)\n }\n throw new Error()\n }\n\n return header\n },\n\n getHeaderGroupProps: (id, userProps) => {\n const headerGroup = instance.getHeaderGroups().find(d => d.id === id)\n\n if (!headerGroup) {\n return\n }\n\n return propGetter(\n {\n key: headerGroup.id,\n role: 'row',\n },\n userProps\n )\n },\n\n getFooterGroupProps: (id, userProps) => {\n const headerGroup = instance.getFooterGroups().find(d => d.id === id)\n\n if (!headerGroup) {\n return\n }\n\n const initialProps = {\n key: headerGroup.id,\n role: 'row',\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getHeaderProps: (id, userProps) => {\n const header = instance.getHeader(id)\n\n if (!header) {\n throw new Error()\n }\n\n const initialProps: HeaderProps = {\n key: header.id,\n role: 'columnheader',\n colSpan: header.colSpan,\n rowSpan: header.rowSpan,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getFooterProps: (id, userProps) => {\n const header = instance.getHeader(id)\n\n const initialProps: FooterProps = {\n key: header.id,\n role: 'columnfooter',\n colSpan: header.colSpan,\n rowSpan: header.rowSpan,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getTotalWidth: () => {\n let width = 0\n\n instance.getVisibleLeafColumns().forEach(column => {\n width += column.getWidth() ?? 0\n })\n\n return width\n },\n }\n },\n}\n\nexport function buildHeaderGroups<TGenerics extends PartialGenerics>(\n allColumns: Column<TGenerics>[],\n columnsToGroup: Column<TGenerics>[],\n instance: TableInstance<TGenerics>,\n headerFamily?: 'center' | 'left' | 'right'\n) {\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n\n let maxDepth = 0\n\n const findMaxDepth = (columns: Column<TGenerics>[], depth = 1) => {\n maxDepth = Math.max(maxDepth, depth)\n\n columns\n .filter(column => column.getIsVisible())\n .forEach(column => {\n if (column.columns?.length) {\n findMaxDepth(column.columns, depth + 1)\n }\n }, 0)\n }\n\n findMaxDepth(allColumns)\n\n let headerGroups: HeaderGroup<TGenerics>[] = []\n\n const createHeaderGroup = (\n headersToGroup: Header<TGenerics>[],\n depth: number\n ) => {\n // The header group we are creating\n const headerGroup: HeaderGroup<TGenerics> = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: [],\n getHeaderGroupProps: getterValue =>\n instance.getHeaderGroupProps(`${depth}`, getterValue)!,\n getFooterGroupProps: getterValue =>\n instance.getFooterGroupProps(`${depth}`, getterValue)!,\n }\n\n // The parent columns we're going to scan next\n const parentHeaders: Header<TGenerics>[] = []\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestParentHeader = [...parentHeaders].reverse()[0]\n\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth\n\n let column: Column<TGenerics>\n let isPlaceholder = false\n\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent\n } else {\n // The parent header is repeated\n column = headerToGroup.column\n isPlaceholder = true\n }\n\n const header = instance.createHeader(column, {\n id: [headerFamily, depth, column.id, headerToGroup?.id]\n .filter(Boolean)\n .join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder\n ? `${parentHeaders.filter(d => d.column === column).length}`\n : undefined,\n depth,\n })\n\n if (!latestParentHeader || latestParentHeader.column !== header.column) {\n header.subHeaders.push(headerToGroup)\n parentHeaders.push(header)\n } else {\n latestParentHeader.subHeaders.push(headerToGroup)\n }\n\n // if (!headerToGroup.isPlaceholder) {\n // headerToGroup.column.header = headerToGroup;\n // }\n\n headerGroup.headers.push(headerToGroup)\n })\n\n headerGroups.push(headerGroup)\n\n if (depth > 0) {\n createHeaderGroup(parentHeaders, depth - 1)\n }\n }\n\n const bottomHeaders = columnsToGroup.map(column =>\n instance.createHeader(column, {\n depth: maxDepth,\n })\n )\n\n createHeaderGroup(bottomHeaders, maxDepth - 1)\n\n headerGroups.reverse()\n\n // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = (headers: Header<TGenerics>[]) => {\n const filteredHeaders = headers.filter(header =>\n header.column.getIsVisible()\n )\n\n return filteredHeaders.map(header => {\n let colSpan = 0\n let rowSpan = 0\n let childRowSpans = [0]\n\n if (header.subHeaders && header.subHeaders.length) {\n childRowSpans = []\n\n recurseHeadersForSpans(header.subHeaders).forEach(\n ({ colSpan: childColSpan, rowSpan: childRowSpan }) => {\n colSpan += childColSpan\n childRowSpans.push(childRowSpan)\n }\n )\n } else {\n colSpan = 1\n }\n\n const minChildRowSpan = Math.min(...childRowSpans)\n rowSpan = rowSpan + minChildRowSpan\n\n header.colSpan = colSpan > 0 ? colSpan : undefined\n header.rowSpan = rowSpan > 0 ? rowSpan : undefined\n\n return { colSpan, rowSpan }\n })\n }\n\n recurseHeadersForSpans(headerGroups[0]?.headers ?? [])\n\n return headerGroups\n}\n"],"names":["Headers","createRow","row","instance","_getAllVisibleCells","memo","getAllCells","filter","cell","column","getIsVisible","map","d","id","join","_","key","debug","options","debugAll","debugRows","getVisibleCells","getLeftVisibleCells","getCenterVisibleCells","getRightVisibleCells","left","center","right","getState","columnPinning","allCells","leftAndRight","includes","columnId","cells","find","Boolean","getInstance","createHeader","header","isPlaceholder","placeholderId","depth","subHeaders","colSpan","rowSpan","getWidth","sum","recurse","length","forEach","getLeafHeaders","leafHeaders","recurseHeader","h","push","getHeaderProps","userProps","getFooterProps","renderHeader","render","renderFooter","footer","Object","assign","ColumnSizing","getHeaderGroups","getAllColumns","getVisibleLeafColumns","allColumns","leafColumns","leftColumns","rightColumns","centerColumns","headerGroups","buildHeaderGroups","debugHeaders","getCenterHeaderGroups","getLeftHeaderGroups","getRightHeaderGroups","getFooterGroups","reverse","getLeftFooterGroups","getCenterFooterGroups","getRightFooterGroups","getFlatHeaders","headerGroup","headers","flat","getLeftFlatHeaders","getCenterFlatHeaders","getRightFlatHeaders","getCenterLeafHeaders","flatHeaders","getLeftLeafHeaders","getRightLeafHeaders","getHeader","process","env","NODE_ENV","console","warn","Error","getHeaderGroupProps","propGetter","role","getFooterGroupProps","initialProps","getTotalWidth","width","columnsToGroup","headerFamily","maxDepth","findMaxDepth","columns","Math","max","createHeaderGroup","headersToGroup","getterValue","parentHeaders","headerToGroup","latestParentHeader","isLeafHeader","parent","undefined","bottomHeaders","recurseHeadersForSpans","filteredHeaders","childRowSpans","childColSpan","childRowSpan","minChildRowSpan","min"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Headers.js","sources":["../../../src/features/Headers.ts"],"sourcesContent":["import {\n Cell,\n Column,\n CoreHeader,\n FooterGroupProps,\n FooterProps,\n Getter,\n Header,\n HeaderGroup,\n HeaderGroupProps,\n HeaderProps,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Row,\n} from '../types'\nimport { propGetter, memo } from '../utils'\nimport { ColumnSizing } from './ColumnSizing'\n\nexport type HeadersRow<TGenerics extends AnyGenerics> = {\n _getAllVisibleCells: () => Cell<TGenerics>[]\n getVisibleCells: () => Cell<TGenerics>[]\n getLeftVisibleCells: () => Cell<TGenerics>[]\n getCenterVisibleCells: () => Cell<TGenerics>[]\n getRightVisibleCells: () => Cell<TGenerics>[]\n}\n\nexport type HeadersInstance<TGenerics extends AnyGenerics> = {\n createHeader: (\n column: Column<TGenerics>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n depth: number\n }\n ) => Header<TGenerics>\n getHeaderGroups: () => HeaderGroup<TGenerics>[]\n getLeftHeaderGroups: () => HeaderGroup<TGenerics>[]\n getCenterHeaderGroups: () => HeaderGroup<TGenerics>[]\n getRightHeaderGroups: () => HeaderGroup<TGenerics>[]\n\n getFooterGroups: () => HeaderGroup<TGenerics>[]\n getLeftFooterGroups: () => HeaderGroup<TGenerics>[]\n getCenterFooterGroups: () => HeaderGroup<TGenerics>[]\n getRightFooterGroups: () => HeaderGroup<TGenerics>[]\n\n getFlatHeaders: () => Header<TGenerics>[]\n getLeftFlatHeaders: () => Header<TGenerics>[]\n getCenterFlatHeaders: () => Header<TGenerics>[]\n getRightFlatHeaders: () => Header<TGenerics>[]\n\n getLeafHeaders: () => Header<TGenerics>[]\n getLeftLeafHeaders: () => Header<TGenerics>[]\n getCenterLeafHeaders: () => Header<TGenerics>[]\n getRightLeafHeaders: () => Header<TGenerics>[]\n\n getHeader: (id: string) => Header<TGenerics>\n\n getHeaderGroupProps: <TGetter extends Getter<HeaderGroupProps>>(\n id: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<HeaderGroupProps, TGetter>\n getFooterGroupProps: <TGetter extends Getter<FooterGroupProps>>(\n id: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<FooterGroupProps, TGetter>\n getHeaderProps: <TGetter extends Getter<HeaderProps>>(\n headerId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<HeaderProps, TGetter>\n getFooterProps: <TGetter extends Getter<FooterProps>>(\n headerId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<FooterProps, TGetter>\n getTotalWidth: () => number\n}\n\n//\n\nexport const Headers = {\n createRow: <TGenerics extends AnyGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): HeadersRow<TGenerics> => {\n return {\n _getAllVisibleCells: memo(\n () => [\n row\n .getAllCells()\n .filter(cell => cell.column.getIsVisible())\n .map(d => d.id)\n .join('_'),\n ],\n _ => {\n return row.getAllCells().filter(cell => cell.column.getIsVisible())\n },\n {\n key: 'row._getAllVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n getVisibleCells: memo(\n () => [\n row.getLeftVisibleCells(),\n row.getCenterVisibleCells(),\n row.getRightVisibleCells(),\n ],\n (left, center, right) => [...left, ...center, ...right],\n {\n key: 'row.getVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n getCenterVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n instance.getState().columnPinning.left,\n instance.getState().columnPinning.right,\n ],\n (allCells, left, right) => {\n const leftAndRight = [...(left ?? []), ...(right ?? [])]\n\n return allCells.filter(d => !leftAndRight.includes(d.columnId))\n },\n {\n key: 'row.getCenterVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n getLeftVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n instance.getState().columnPinning.left,\n ,\n ],\n (allCells, left) => {\n const cells = (left ?? [])\n .map(columnId => allCells.find(cell => cell.columnId === columnId)!)\n .filter(Boolean)\n\n return cells\n },\n {\n key: 'row.getLeftVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n getRightVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n instance.getState().columnPinning.right,\n ],\n (allCells, right) => {\n const cells = (right ?? [])\n .map(columnId => allCells.find(cell => cell.columnId === columnId)!)\n .filter(Boolean)\n\n return cells\n },\n {\n key: 'row.getRightVisibleCells',\n debug: () => instance.options.debugAll ?? instance.options.debugRows,\n }\n ),\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): HeadersInstance<TGenerics> => {\n return {\n createHeader: (\n column: Column<TGenerics>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n depth: number\n }\n ) => {\n const id = options.id ?? column.id\n\n let header: CoreHeader<TGenerics> = {\n id,\n column,\n isPlaceholder: options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n getWidth: () => {\n let sum = 0\n\n const recurse = (header: CoreHeader<TGenerics>) => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse)\n } else {\n sum += header.column.getWidth() ?? 0\n }\n }\n\n recurse(header)\n\n return sum\n },\n getLeafHeaders: (): Header<TGenerics>[] => {\n const leafHeaders: CoreHeader<TGenerics>[] = []\n\n const recurseHeader = (h: CoreHeader<TGenerics>) => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader)\n }\n leafHeaders.push(h)\n }\n\n recurseHeader(header)\n\n return leafHeaders as Header<TGenerics>[]\n },\n getHeaderProps: userProps =>\n instance.getHeaderProps(header.id, userProps)!,\n getFooterProps: userProps =>\n instance.getFooterProps(header.id, userProps)!,\n renderHeader: () =>\n column.header\n ? instance.render(column.header, {\n instance,\n header: header as Header<TGenerics>,\n column,\n })\n : null,\n renderFooter: () =>\n column.footer\n ? instance.render(column.footer, {\n instance,\n header: header as Header<TGenerics>,\n column,\n })\n : null,\n }\n\n // Yes, we have to convert instance to unknown, because we know more than the compiler here.\n return Object.assign(\n header,\n ColumnSizing.createHeader(header as Header<TGenerics>, instance)\n ) as Header<TGenerics>\n },\n\n // Header Groups\n\n getHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n const leftColumns = leafColumns.filter(column =>\n left?.includes(column.id)\n )\n const rightColumns = leafColumns.filter(column =>\n right?.includes(column.id)\n )\n const centerColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n const headerGroups = buildHeaderGroups(\n allColumns,\n [...leftColumns, ...centerColumns, ...rightColumns],\n instance\n )\n\n return headerGroups\n },\n {\n key: 'getHeaderGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getCenterHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n return buildHeaderGroups(allColumns, leafColumns, instance, 'center')\n },\n {\n key: 'getCenterHeaderGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getLeftHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n ],\n (allColumns, leafColumns, left) => {\n leafColumns = leafColumns.filter(column => left?.includes(column.id))\n return buildHeaderGroups(allColumns, leafColumns, instance, 'left')\n },\n {\n key: 'getLeftHeaderGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getRightHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, right) => {\n leafColumns = leafColumns.filter(column => right?.includes(column.id))\n return buildHeaderGroups(allColumns, leafColumns, instance, 'right')\n },\n {\n key: 'getRightHeaderGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n // Footer Groups\n\n getFooterGroups: memo(\n () => [instance.getHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: 'getFooterGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getLeftFooterGroups: memo(\n () => [instance.getLeftHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: 'getLeftFooterGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getCenterFooterGroups: memo(\n () => [instance.getCenterHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: 'getCenterFooterGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getRightFooterGroups: memo(\n () => [instance.getRightHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: 'getRightFooterGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n // Flat Headers\n\n getFlatHeaders: memo(\n () => [instance.getHeaderGroups()],\n headerGroups => {\n return headerGroups\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: 'getFlatHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getLeftFlatHeaders: memo(\n () => [instance.getLeftHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: 'getLeftFlatHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getCenterFlatHeaders: memo(\n () => [instance.getCenterHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: 'getCenterFlatHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getRightFlatHeaders: memo(\n () => [instance.getRightHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n {\n key: 'getRightFlatHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n // Leaf Headers\n\n getCenterLeafHeaders: memo(\n () => [instance.getCenterFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: 'getCenterLeafHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getLeftLeafHeaders: memo(\n () => [instance.getLeftFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: 'getLeftLeafHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getRightLeafHeaders: memo(\n () => [instance.getRightFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: 'getRightLeafHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getLeafHeaders: memo(\n () => [\n instance.getLeftHeaderGroups(),\n instance.getCenterHeaderGroups(),\n instance.getRightHeaderGroups(),\n ],\n (left, center, right) => {\n return [\n ...(left[0]?.headers ?? []),\n ...(center[0]?.headers ?? []),\n ...(right[0]?.headers ?? []),\n ]\n .map(header => {\n return header.getLeafHeaders()\n })\n .flat()\n },\n {\n key: 'getLeafHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getHeader: (id: string) => {\n const header = [\n ...instance.getFlatHeaders(),\n ...instance.getCenterFlatHeaders(),\n ...instance.getLeftFlatHeaders(),\n ...instance.getRightFlatHeaders(),\n ].find(d => d.id === id)\n\n if (!header) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Could not find header with id: ${id}`)\n }\n throw new Error()\n }\n\n return header\n },\n\n getHeaderGroupProps: (id, userProps) => {\n const headerGroup = instance.getHeaderGroups().find(d => d.id === id)\n\n if (!headerGroup) {\n return\n }\n\n return propGetter(\n {\n key: headerGroup.id,\n role: 'row',\n },\n userProps\n )\n },\n\n getFooterGroupProps: (id, userProps) => {\n const headerGroup = instance.getFooterGroups().find(d => d.id === id)\n\n if (!headerGroup) {\n return\n }\n\n const initialProps = {\n key: headerGroup.id,\n role: 'row',\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getHeaderProps: (id, userProps) => {\n const header = instance.getHeader(id)\n\n if (!header) {\n throw new Error()\n }\n\n const initialProps: HeaderProps = {\n key: header.id,\n role: 'columnheader',\n colSpan: header.colSpan,\n rowSpan: header.rowSpan,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getFooterProps: (id, userProps) => {\n const header = instance.getHeader(id)\n\n const initialProps: FooterProps = {\n key: header.id,\n role: 'columnfooter',\n colSpan: header.colSpan,\n rowSpan: header.rowSpan,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getTotalWidth: () => {\n let width = 0\n\n instance.getVisibleLeafColumns().forEach(column => {\n width += column.getWidth() ?? 0\n })\n\n return width\n },\n }\n },\n}\n\nexport function buildHeaderGroups<TGenerics extends AnyGenerics>(\n allColumns: Column<TGenerics>[],\n columnsToGroup: Column<TGenerics>[],\n instance: TableInstance<TGenerics>,\n headerFamily?: 'center' | 'left' | 'right'\n) {\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n\n let maxDepth = 0\n\n const findMaxDepth = (columns: Column<TGenerics>[], depth = 1) => {\n maxDepth = Math.max(maxDepth, depth)\n\n columns\n .filter(column => column.getIsVisible())\n .forEach(column => {\n if (column.columns?.length) {\n findMaxDepth(column.columns, depth + 1)\n }\n }, 0)\n }\n\n findMaxDepth(allColumns)\n\n let headerGroups: HeaderGroup<TGenerics>[] = []\n\n const createHeaderGroup = (\n headersToGroup: Header<TGenerics>[],\n depth: number\n ) => {\n // The header group we are creating\n const headerGroup: HeaderGroup<TGenerics> = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: [],\n getHeaderGroupProps: getterValue =>\n instance.getHeaderGroupProps(`${depth}`, getterValue)!,\n getFooterGroupProps: getterValue =>\n instance.getFooterGroupProps(`${depth}`, getterValue)!,\n }\n\n // The parent columns we're going to scan next\n const parentHeaders: Header<TGenerics>[] = []\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestParentHeader = [...parentHeaders].reverse()[0]\n\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth\n\n let column: Column<TGenerics>\n let isPlaceholder = false\n\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent\n } else {\n // The parent header is repeated\n column = headerToGroup.column\n isPlaceholder = true\n }\n\n const header = instance.createHeader(column, {\n id: [headerFamily, depth, column.id, headerToGroup?.id]\n .filter(Boolean)\n .join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder\n ? `${parentHeaders.filter(d => d.column === column).length}`\n : undefined,\n depth,\n })\n\n if (!latestParentHeader || latestParentHeader.column !== header.column) {\n header.subHeaders.push(headerToGroup)\n parentHeaders.push(header)\n } else {\n latestParentHeader.subHeaders.push(headerToGroup)\n }\n\n // if (!headerToGroup.isPlaceholder) {\n // headerToGroup.column.header = headerToGroup;\n // }\n\n headerGroup.headers.push(headerToGroup)\n })\n\n headerGroups.push(headerGroup)\n\n if (depth > 0) {\n createHeaderGroup(parentHeaders, depth - 1)\n }\n }\n\n const bottomHeaders = columnsToGroup.map(column =>\n instance.createHeader(column, {\n depth: maxDepth,\n })\n )\n\n createHeaderGroup(bottomHeaders, maxDepth - 1)\n\n headerGroups.reverse()\n\n // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = (headers: Header<TGenerics>[]) => {\n const filteredHeaders = headers.filter(header =>\n header.column.getIsVisible()\n )\n\n return filteredHeaders.map(header => {\n let colSpan = 0\n let rowSpan = 0\n let childRowSpans = [0]\n\n if (header.subHeaders && header.subHeaders.length) {\n childRowSpans = []\n\n recurseHeadersForSpans(header.subHeaders).forEach(\n ({ colSpan: childColSpan, rowSpan: childRowSpan }) => {\n colSpan += childColSpan\n childRowSpans.push(childRowSpan)\n }\n )\n } else {\n colSpan = 1\n }\n\n const minChildRowSpan = Math.min(...childRowSpans)\n rowSpan = rowSpan + minChildRowSpan\n\n header.colSpan = colSpan > 0 ? colSpan : undefined\n header.rowSpan = rowSpan > 0 ? rowSpan : undefined\n\n return { colSpan, rowSpan }\n })\n }\n\n recurseHeadersForSpans(headerGroups[0]?.headers ?? [])\n\n return headerGroups\n}\n"],"names":["Headers","createRow","row","instance","_getAllVisibleCells","memo","getAllCells","filter","cell","column","getIsVisible","map","d","id","join","_","key","debug","options","debugAll","debugRows","getVisibleCells","getLeftVisibleCells","getCenterVisibleCells","getRightVisibleCells","left","center","right","getState","columnPinning","allCells","leftAndRight","includes","columnId","cells","find","Boolean","getInstance","createHeader","header","isPlaceholder","placeholderId","depth","subHeaders","colSpan","rowSpan","getWidth","sum","recurse","length","forEach","getLeafHeaders","leafHeaders","recurseHeader","h","push","getHeaderProps","userProps","getFooterProps","renderHeader","render","renderFooter","footer","Object","assign","ColumnSizing","getHeaderGroups","getAllColumns","getVisibleLeafColumns","allColumns","leafColumns","leftColumns","rightColumns","centerColumns","headerGroups","buildHeaderGroups","debugHeaders","getCenterHeaderGroups","getLeftHeaderGroups","getRightHeaderGroups","getFooterGroups","reverse","getLeftFooterGroups","getCenterFooterGroups","getRightFooterGroups","getFlatHeaders","headerGroup","headers","flat","getLeftFlatHeaders","getCenterFlatHeaders","getRightFlatHeaders","getCenterLeafHeaders","flatHeaders","getLeftLeafHeaders","getRightLeafHeaders","getHeader","process","env","NODE_ENV","console","warn","Error","getHeaderGroupProps","propGetter","role","getFooterGroupProps","initialProps","getTotalWidth","width","columnsToGroup","headerFamily","maxDepth","findMaxDepth","columns","Math","max","createHeaderGroup","headersToGroup","getterValue","parentHeaders","headerToGroup","latestParentHeader","isLeafHeader","parent","undefined","bottomHeaders","recurseHeadersForSpans","filteredHeaders","childRowSpans","childColSpan","childRowSpan","minChildRowSpan","min"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ordering.js","sources":["../../../src/features/Ordering.ts"],"sourcesContent":["import { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nimport {\n TableInstance,\n OnChangeFn,\n Updater,\n Column,\n AnyGenerics,\n PartialGenerics,\n} from '../types'\n\nimport { Grouping } from './Grouping'\n\nexport type ColumnOrderState = string[]\n\nexport type ColumnOrderTableState = {\n columnOrder: ColumnOrderState\n}\n\nexport type ColumnOrderOptions = {\n onColumnOrderChange?: OnChangeFn<ColumnOrderState>\n}\n\nexport type ColumnOrderDefaultOptions = {\n onColumnOrderChange: OnChangeFn<ColumnOrderState>\n}\n\nexport type ColumnOrderInstance<TGenerics extends
|
|
1
|
+
{"version":3,"file":"Ordering.js","sources":["../../../src/features/Ordering.ts"],"sourcesContent":["import { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nimport {\n TableInstance,\n OnChangeFn,\n Updater,\n Column,\n AnyGenerics,\n PartialGenerics,\n} from '../types'\n\nimport { Grouping } from './Grouping'\n\nexport type ColumnOrderState = string[]\n\nexport type ColumnOrderTableState = {\n columnOrder: ColumnOrderState\n}\n\nexport type ColumnOrderOptions = {\n onColumnOrderChange?: OnChangeFn<ColumnOrderState>\n}\n\nexport type ColumnOrderDefaultOptions = {\n onColumnOrderChange: OnChangeFn<ColumnOrderState>\n}\n\nexport type ColumnOrderInstance<TGenerics extends AnyGenerics> = {\n setColumnOrder: (updater: Updater<ColumnOrderState>) => void\n resetColumnOrder: () => void\n getOrderColumnsFn: () => (columns: Column<TGenerics>[]) => Column<TGenerics>[]\n}\n\n//\n\nexport const Ordering = {\n getInitialState: (): ColumnOrderTableState => {\n return {\n columnOrder: [],\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnOrderDefaultOptions => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', instance),\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnOrderInstance<TGenerics> => {\n return {\n setColumnOrder: updater =>\n instance.options.onColumnOrderChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnOrder)\n ),\n resetColumnOrder: () => {\n instance.setColumnOrder(instance.initialState.columnOrder ?? [])\n },\n getOrderColumnsFn: memo(\n () => [\n instance.getState().columnOrder,\n instance.getState().grouping,\n instance.options.groupedColumnMode,\n ],\n (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns: Column<TGenerics>[] = []\n\n // If there is no order, return the normal columns\n if (!columnOrder?.length) {\n orderedColumns = columns\n } else {\n const columnOrderCopy = [...columnOrder]\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns]\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift()\n const foundIndex = columnsCopy.findIndex(\n d => d.id === targetColumnId\n )\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]!)\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy]\n }\n\n return Grouping.orderColumns(\n orderedColumns,\n grouping,\n groupedColumnMode\n )\n },\n {\n key: 'getOrderColumnsFn',\n // debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n }\n },\n}\n"],"names":["Ordering","getInitialState","columnOrder","getDefaultOptions","instance","onColumnOrderChange","makeStateUpdater","getInstance","setColumnOrder","updater","options","functionalUpdate","getState","resetColumnOrder","initialState","getOrderColumnsFn","memo","grouping","groupedColumnMode","columns","orderedColumns","length","columnOrderCopy","columnsCopy","targetColumnId","shift","foundIndex","findIndex","d","id","push","splice","Grouping","orderColumns","key"],"mappings":";;;;;;;;;;;;;;;;;AAiCA;IAEaA,QAAQ,GAAG;AACtBC,EAAAA,eAAe,EAAE,2BAA6B;AAC5C,WAAO;AACLC,MAAAA,WAAW,EAAE;AADR,KAAP;AAGD,GALqB;AAOtBC,EAAAA,iBAAiB,EAAE,2BACjBC,QADiB,EAEa;AAC9B,WAAO;AACLC,MAAAA,mBAAmB,EAAEC,sBAAgB,CAAC,aAAD,EAAgBF,QAAhB;AADhC,KAAP;AAGD,GAbqB;AAetBG,EAAAA,WAAW,EAAE,qBACXH,QADW,EAEwB;AACnC,WAAO;AACLI,MAAAA,cAAc,EAAE,wBAAAC,OAAO;AAAA,eACrBL,QAAQ,CAACM,OAAT,CAAiBL,mBADI,oBACrBD,QAAQ,CAACM,OAAT,CAAiBL,mBAAjB,CACEI,OADF,EAEEE,sBAAgB,CAACF,OAAD,EAAUL,QAAQ,CAACQ,QAAT,GAAoBV,WAA9B,CAFlB,CADqB;AAAA,OADlB;AAMLW,MAAAA,gBAAgB,EAAE,4BAAM;AAAA;;AACtBT,QAAAA,QAAQ,CAACI,cAAT,0BAAwBJ,QAAQ,CAACU,YAAT,CAAsBZ,WAA9C,oCAA6D,EAA7D;AACD,OARI;AASLa,MAAAA,iBAAiB,EAAEC,UAAI,CACrB;AAAA,eAAM,CACJZ,QAAQ,CAACQ,QAAT,GAAoBV,WADhB,EAEJE,QAAQ,CAACQ,QAAT,GAAoBK,QAFhB,EAGJb,QAAQ,CAACM,OAAT,CAAiBQ,iBAHb,CAAN;AAAA,OADqB,EAMrB,UAAChB,WAAD,EAAce,QAAd,EAAwBC,iBAAxB;AAAA,eAA8C,UAAAC,OAAO,EAAI;AACvD;AACA;AACA,cAAIC,cAAmC,GAAG,EAA1C,CAHuD;;AAMvD,cAAI,EAAClB,WAAD,YAACA,WAAW,CAAEmB,MAAd,CAAJ,EAA0B;AACxBD,YAAAA,cAAc,GAAGD,OAAjB;AACD,WAFD,MAEO;AACL,gBAAMG,eAAe,aAAOpB,WAAP,CAArB,CADK;;AAIL,gBAAMqB,WAAW,aAAOJ,OAAP,CAAjB,CAJK;AAQL;;AARK;AAUH,kBAAMK,cAAc,GAAGF,eAAe,CAACG,KAAhB,EAAvB;AACA,kBAAMC,UAAU,GAAGH,WAAW,CAACI,SAAZ,CACjB,UAAAC,CAAC;AAAA,uBAAIA,CAAC,CAACC,EAAF,KAASL,cAAb;AAAA,eADgB,CAAnB;;AAGA,kBAAIE,UAAU,GAAG,CAAC,CAAlB,EAAqB;AACnBN,gBAAAA,cAAc,CAACU,IAAf,CAAoBP,WAAW,CAACQ,MAAZ,CAAmBL,UAAnB,EAA+B,CAA/B,EAAkC,CAAlC,CAApB;AACD;AAhBE;;AASL,mBAAOH,WAAW,CAACF,MAAZ,IAAsBC,eAAe,CAACD,MAA7C,EAAqD;AAAA;AAQpD,aAjBI;;;AAoBLD,YAAAA,cAAc,aAAOA,cAAP,EAA0BG,WAA1B,CAAd;AACD;;AAED,iBAAOS,iBAAQ,CAACC,YAAT,CACLb,cADK,EAELH,QAFK,EAGLC,iBAHK,CAAP;AAKD,SApCD;AAAA,OANqB,EA2CrB;AACEgB,QAAAA,GAAG,EAAE,mBADP;;AAAA,OA3CqB;AATlB,KAAP;AA0DD;AA5EqB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pagination.js","sources":["../../../src/features/Pagination.ts"],"sourcesContent":["import {\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n TableInstance,\n RowModel,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nexport type PaginationState = {\n pageIndex: number\n pageSize: number\n pageCount: number\n}\n\nexport type PaginationTableState = {\n pagination: PaginationState\n}\n\nexport type PaginationOptions<TGenerics extends PartialGenerics> = {\n onPaginationChange?: OnChangeFn<PaginationState>\n autoResetPageIndex?: boolean\n paginateRowsFn?: (\n instance: TableInstance<TGenerics>,\n rowModel: RowModel<TGenerics>\n ) => RowModel<TGenerics>\n}\n\nexport type PaginationDefaultOptions = {\n onPaginationChange: OnChangeFn<PaginationState>\n autoResetPageIndex: boolean\n}\n\nexport type PaginationInstance<TGenerics extends PartialGenerics> = {\n _notifyPageIndexReset: () => void\n setPagination: (updater: Updater<PaginationState>) => void\n resetPagination: () => void\n setPageIndex: (updater: Updater<number>) => void\n resetPageIndex: () => void\n setPageSize: (updater: Updater<number>) => void\n resetPageSize: () => void\n setPageCount: (updater: Updater<number>) => void\n getPageOptions: () => number[]\n getCanPreviousPage: () => boolean\n getCanNextPage: () => boolean\n previousPage: () => void\n nextPage: () => void\n getPrePaginationRowModel: () => RowModel<TGenerics>\n getPaginationRowModel: () => RowModel<TGenerics>\n getPageCount: () => number\n}\n\n//\n\nexport const Pagination = {\n getInitialState: (): PaginationTableState => {\n return {\n pagination: {\n pageCount: -1,\n pageIndex: 0,\n pageSize: 10,\n },\n }\n },\n\n getDefaultOptions: <TGenerics extends PartialGenerics>(\n instance: TableInstance<TGenerics>\n ): PaginationDefaultOptions => {\n return {\n onPaginationChange: makeStateUpdater('pagination', instance),\n autoResetPageIndex: true,\n }\n },\n\n getInstance: <TGenerics extends PartialGenerics>(\n instance: TableInstance<TGenerics>\n ): PaginationInstance<TGenerics> => {\n let registered = false\n return {\n _notifyPageIndexReset: () => {\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetPageIndex\n ) {\n instance.resetPageIndex()\n }\n },\n setPagination: updater => {\n const safeUpdater: Updater<PaginationState> = old => {\n let newState = functionalUpdate(updater, old)\n\n return newState\n }\n\n return instance.options.onPaginationChange?.(\n safeUpdater,\n functionalUpdate(safeUpdater, instance.getState().pagination)\n )\n },\n resetPagination: () => {\n instance.setPagination(\n instance.initialState.pagination ?? {\n pageIndex: 0,\n pageSize: 10,\n pageCount: -1,\n }\n )\n },\n setPageIndex: updater => {\n instance.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex)\n\n const maxPageIndex =\n old.pageCount && old.pageCount > 0\n ? old.pageCount - 1\n : Number.MAX_SAFE_INTEGER\n\n pageIndex = Math.min(Math.max(0, pageIndex), maxPageIndex)\n\n return {\n ...old,\n pageIndex,\n }\n })\n },\n resetPageIndex: () => {\n instance.setPageIndex(0)\n },\n resetPageSize: () => {\n instance.setPageSize(instance.initialState?.pagination?.pageSize ?? 10)\n },\n setPageSize: updater => {\n instance.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize))\n const topRowIndex = old.pageSize * old.pageIndex!\n const pageIndex = Math.floor(topRowIndex / pageSize)\n\n return {\n ...old,\n pageIndex,\n pageSize,\n }\n })\n },\n setPageCount: updater =>\n instance.setPagination(old => {\n let newPageCount = functionalUpdate(updater, old.pageCount)\n\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount)\n }\n\n return {\n ...old,\n pageCount: newPageCount,\n }\n }),\n\n getPageOptions: memo(\n () => [\n instance.getState().pagination.pageSize,\n instance.getState().pagination.pageCount,\n ],\n (pageSize, pageCount) => {\n let pageOptions: number[] = []\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i)\n }\n return pageOptions\n },\n {\n key: 'getPageOptions',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getCanPreviousPage: () => instance.getState().pagination.pageIndex > 0,\n\n getCanNextPage: () => {\n const { pageIndex, pageSize } = instance.getState().pagination\n\n const pageCount = instance.getPageCount()\n\n if (pageCount === -1) {\n return true\n }\n\n if (pageCount === 0) {\n return false\n }\n\n return (\n pageIndex <\n Math.ceil(\n instance.getPrePaginationRowModel().rows.length / pageSize\n ) -\n 1\n )\n },\n\n previousPage: () => {\n return instance.setPageIndex(old => old - 1)\n },\n\n nextPage: () => {\n return instance.setPageIndex(old => {\n return old + 1\n })\n },\n\n getPrePaginationRowModel: () => instance.getExpandedRowModel(),\n getPaginationRowModel: memo(\n () => [\n instance.getState().pagination,\n instance.getExpandedRowModel(),\n instance.options.paginateRowsFn,\n ],\n (_pagination, rowModel, paginateRowsFn) => {\n if (!paginateRowsFn || !rowModel.rows.length) {\n return rowModel\n }\n\n return paginateRowsFn(instance, rowModel)\n },\n {\n key: 'getPaginationRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getPageCount: () => {\n const { pageCount } = instance.getState().pagination\n if (pageCount > 0) {\n return pageCount\n }\n\n return Math.ceil(\n instance.getPrePaginationRowModel().rows.length /\n instance.getState().pagination.pageSize\n )\n },\n }\n },\n}\n"],"names":["Pagination","getInitialState","pagination","pageCount","pageIndex","pageSize","getDefaultOptions","instance","onPaginationChange","makeStateUpdater","autoResetPageIndex","getInstance","registered","_notifyPageIndexReset","options","autoResetAll","resetPageIndex","setPagination","updater","safeUpdater","old","newState","functionalUpdate","getState","resetPagination","initialState","setPageIndex","maxPageIndex","Number","MAX_SAFE_INTEGER","Math","min","max","resetPageSize","setPageSize","topRowIndex","floor","setPageCount","newPageCount","getPageOptions","memo","pageOptions","Array","fill","map","_","i","key","debug","debugAll","debugTable","getCanPreviousPage","getCanNextPage","getPageCount","ceil","getPrePaginationRowModel","rows","length","previousPage","nextPage","getExpandedRowModel","getPaginationRowModel","paginateRowsFn","_pagination","rowModel"],"mappings":";;;;;;;;;;;;;;;;;AAqDA;IAEaA,UAAU,GAAG;AACxBC,EAAAA,eAAe,EAAE,2BAA4B;AAC3C,WAAO;AACLC,MAAAA,UAAU,EAAE;AACVC,QAAAA,SAAS,EAAE,CAAC,CADF;AAEVC,QAAAA,SAAS,EAAE,CAFD;AAGVC,QAAAA,QAAQ,EAAE;AAHA;AADP,KAAP;AAOD,GATuB;AAWxBC,EAAAA,iBAAiB,EAAE,2BACjBC,QADiB,EAEY;AAC7B,WAAO;AACLC,MAAAA,kBAAkB,EAAEC,sBAAgB,CAAC,YAAD,EAAeF,QAAf,CAD/B;AAELG,MAAAA,kBAAkB,EAAE;AAFf,KAAP;AAID,GAlBuB;AAoBxBC,EAAAA,WAAW,EAAE,qBACXJ,QADW,EAEuB;AAClC,QAAIK,UAAU,GAAG,KAAjB;AACA,WAAO;AACLC,MAAAA,qBAAqB,EAAE,iCAAM;AAC3B,YAAI,CAACD,UAAL,EAAiB;AACfA,UAAAA,UAAU,GAAG,IAAb;AACA;AACD;;AAED,YAAIL,QAAQ,CAACO,OAAT,CAAiBC,YAAjB,KAAkC,KAAtC,EAA6C;AAC3C;AACD;;AAED,YACER,QAAQ,CAACO,OAAT,CAAiBC,YAAjB,KAAkC,IAAlC,IACAR,QAAQ,CAACO,OAAT,CAAiBJ,kBAFnB,EAGE;AACAH,UAAAA,QAAQ,CAACS,cAAT;AACD;AACF,OAjBI;AAkBLC,MAAAA,aAAa,EAAE,uBAAAC,OAAO,EAAI;AACxB,YAAMC,WAAqC,GAAG,SAAxCA,WAAwC,CAAAC,GAAG,EAAI;AACnD,cAAIC,QAAQ,GAAGC,sBAAgB,CAACJ,OAAD,EAAUE,GAAV,CAA/B;AAEA,iBAAOC,QAAP;AACD,SAJD;;AAMA,eAAOd,QAAQ,CAACO,OAAT,CAAiBN,kBAAxB,oBAAOD,QAAQ,CAACO,OAAT,CAAiBN,kBAAjB,CACLW,WADK,EAELG,sBAAgB,CAACH,WAAD,EAAcZ,QAAQ,CAACgB,QAAT,GAAoBrB,UAAlC,CAFX,CAAP;AAID,OA7BI;AA8BLsB,MAAAA,eAAe,EAAE,2BAAM;AAAA;;AACrBjB,QAAAA,QAAQ,CAACU,aAAT,0BACEV,QAAQ,CAACkB,YAAT,CAAsBvB,UADxB,oCACsC;AAClCE,UAAAA,SAAS,EAAE,CADuB;AAElCC,UAAAA,QAAQ,EAAE,EAFwB;AAGlCF,UAAAA,SAAS,EAAE,CAAC;AAHsB,SADtC;AAOD,OAtCI;AAuCLuB,MAAAA,YAAY,EAAE,sBAAAR,OAAO,EAAI;AACvBX,QAAAA,QAAQ,CAACU,aAAT,CAAuB,UAAAG,GAAG,EAAI;AAC5B,cAAIhB,SAAS,GAAGkB,sBAAgB,CAACJ,OAAD,EAAUE,GAAG,CAAChB,SAAd,CAAhC;AAEA,cAAMuB,YAAY,GAChBP,GAAG,CAACjB,SAAJ,IAAiBiB,GAAG,CAACjB,SAAJ,GAAgB,CAAjC,GACIiB,GAAG,CAACjB,SAAJ,GAAgB,CADpB,GAEIyB,MAAM,CAACC,gBAHb;AAKAzB,UAAAA,SAAS,GAAG0B,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAAS,CAAT,EAAY5B,SAAZ,CAAT,EAAiCuB,YAAjC,CAAZ;AAEA,0DACKP,GADL;AAEEhB,YAAAA,SAAS,EAATA;AAFF;AAID,SAdD;AAeD,OAvDI;AAwDLY,MAAAA,cAAc,EAAE,0BAAM;AACpBT,QAAAA,QAAQ,CAACmB,YAAT,CAAsB,CAAtB;AACD,OA1DI;AA2DLO,MAAAA,aAAa,EAAE,yBAAM;AAAA;;AACnB1B,QAAAA,QAAQ,CAAC2B,WAAT,qDAAqB3B,QAAQ,CAACkB,YAA9B,+CAAqB,uBAAuBvB,UAA5C,qBAAqB,uBAAmCG,QAAxD,qCAAoE,EAApE;AACD,OA7DI;AA8DL6B,MAAAA,WAAW,EAAE,qBAAAhB,OAAO,EAAI;AACtBX,QAAAA,QAAQ,CAACU,aAAT,CAAuB,UAAAG,GAAG,EAAI;AAC5B,cAAMf,QAAQ,GAAGyB,IAAI,CAACE,GAAL,CAAS,CAAT,EAAYV,sBAAgB,CAACJ,OAAD,EAAUE,GAAG,CAACf,QAAd,CAA5B,CAAjB;AACA,cAAM8B,WAAW,GAAGf,GAAG,CAACf,QAAJ,GAAee,GAAG,CAAChB,SAAvC;AACA,cAAMA,SAAS,GAAG0B,IAAI,CAACM,KAAL,CAAWD,WAAW,GAAG9B,QAAzB,CAAlB;AAEA,0DACKe,GADL;AAEEhB,YAAAA,SAAS,EAATA,SAFF;AAGEC,YAAAA,QAAQ,EAARA;AAHF;AAKD,SAVD;AAWD,OA1EI;AA2ELgC,MAAAA,YAAY,EAAE,sBAAAnB,OAAO;AAAA,eACnBX,QAAQ,CAACU,aAAT,CAAuB,UAAAG,GAAG,EAAI;AAC5B,cAAIkB,YAAY,GAAGhB,sBAAgB,CAACJ,OAAD,EAAUE,GAAG,CAACjB,SAAd,CAAnC;;AAEA,cAAI,OAAOmC,YAAP,KAAwB,QAA5B,EAAsC;AACpCA,YAAAA,YAAY,GAAGR,IAAI,CAACE,GAAL,CAAS,CAAC,CAAV,EAAaM,YAAb,CAAf;AACD;;AAED,0DACKlB,GADL;AAEEjB,YAAAA,SAAS,EAAEmC;AAFb;AAID,SAXD,CADmB;AAAA,OA3EhB;AAyFLC,MAAAA,cAAc,EAAEC,UAAI,CAClB;AAAA,eAAM,CACJjC,QAAQ,CAACgB,QAAT,GAAoBrB,UAApB,CAA+BG,QAD3B,EAEJE,QAAQ,CAACgB,QAAT,GAAoBrB,UAApB,CAA+BC,SAF3B,CAAN;AAAA,OADkB,EAKlB,UAACE,QAAD,EAAWF,SAAX,EAAyB;AACvB,YAAIsC,WAAqB,GAAG,EAA5B;;AACA,YAAItC,SAAS,IAAIA,SAAS,GAAG,CAA7B,EAAgC;AAC9BsC,UAAAA,WAAW,GAAG,UAAI,IAAIC,KAAJ,CAAUvC,SAAV,CAAJ,EAA0BwC,IAA1B,CAA+B,IAA/B,EAAqCC,GAArC,CAAyC,UAACC,CAAD,EAAIC,CAAJ;AAAA,mBAAUA,CAAV;AAAA,WAAzC,CAAd;AACD;;AACD,eAAOL,WAAP;AACD,OAXiB,EAYlB;AACEM,QAAAA,GAAG,EAAE,gBADP;AAEEC,QAAAA,KAAK,EAAE;AAAA;;AAAA,0CAAMzC,QAAQ,CAACO,OAAT,CAAiBmC,QAAvB,oCAAmC1C,QAAQ,CAACO,OAAT,CAAiBoC,UAApD;AAAA;AAFT,OAZkB,CAzFf;AA2GLC,MAAAA,kBAAkB,EAAE;AAAA,eAAM5C,QAAQ,CAACgB,QAAT,GAAoBrB,UAApB,CAA+BE,SAA/B,GAA2C,CAAjD;AAAA,OA3Gf;AA6GLgD,MAAAA,cAAc,EAAE,0BAAM;AACpB,oCAAgC7C,QAAQ,CAACgB,QAAT,GAAoBrB,UAApD;AAAA,YAAQE,SAAR,yBAAQA,SAAR;AAAA,YAAmBC,QAAnB,yBAAmBA,QAAnB;AAEA,YAAMF,SAAS,GAAGI,QAAQ,CAAC8C,YAAT,EAAlB;;AAEA,YAAIlD,SAAS,KAAK,CAAC,CAAnB,EAAsB;AACpB,iBAAO,IAAP;AACD;;AAED,YAAIA,SAAS,KAAK,CAAlB,EAAqB;AACnB,iBAAO,KAAP;AACD;;AAED,eACEC,SAAS,GACT0B,IAAI,CAACwB,IAAL,CACE/C,QAAQ,CAACgD,wBAAT,GAAoCC,IAApC,CAAyCC,MAAzC,GAAkDpD,QADpD,IAGE,CALJ;AAOD,OAjII;AAmILqD,MAAAA,YAAY,EAAE,wBAAM;AAClB,eAAOnD,QAAQ,CAACmB,YAAT,CAAsB,UAAAN,GAAG;AAAA,iBAAIA,GAAG,GAAG,CAAV;AAAA,SAAzB,CAAP;AACD,OArII;AAuILuC,MAAAA,QAAQ,EAAE,oBAAM;AACd,eAAOpD,QAAQ,CAACmB,YAAT,CAAsB,UAAAN,GAAG,EAAI;AAClC,iBAAOA,GAAG,GAAG,CAAb;AACD,SAFM,CAAP;AAGD,OA3II;AA6ILmC,MAAAA,wBAAwB,EAAE;AAAA,eAAMhD,QAAQ,CAACqD,mBAAT,EAAN;AAAA,OA7IrB;AA8ILC,MAAAA,qBAAqB,EAAErB,UAAI,CACzB;AAAA,eAAM,CACJjC,QAAQ,CAACgB,QAAT,GAAoBrB,UADhB,EAEJK,QAAQ,CAACqD,mBAAT,EAFI,EAGJrD,QAAQ,CAACO,OAAT,CAAiBgD,cAHb,CAAN;AAAA,OADyB,EAMzB,UAACC,WAAD,EAAcC,QAAd,EAAwBF,cAAxB,EAA2C;AACzC,YAAI,CAACA,cAAD,IAAmB,CAACE,QAAQ,CAACR,IAAT,CAAcC,MAAtC,EAA8C;AAC5C,iBAAOO,QAAP;AACD;;AAED,eAAOF,cAAc,CAACvD,QAAD,EAAWyD,QAAX,CAArB;AACD,OAZwB,EAazB;AACEjB,QAAAA,GAAG,EAAE,uBADP;AAEEC,QAAAA,KAAK,EAAE;AAAA;;AAAA,2CAAMzC,QAAQ,CAACO,OAAT,CAAiBmC,QAAvB,qCAAmC1C,QAAQ,CAACO,OAAT,CAAiBoC,UAApD;AAAA;AAFT,OAbyB,CA9ItB;AAiKLG,MAAAA,YAAY,EAAE,wBAAM;AAClB,YAAQlD,SAAR,GAAsBI,QAAQ,CAACgB,QAAT,GAAoBrB,UAA1C,CAAQC,SAAR;;AACA,YAAIA,SAAS,GAAG,CAAhB,EAAmB;AACjB,iBAAOA,SAAP;AACD;;AAED,eAAO2B,IAAI,CAACwB,IAAL,CACL/C,QAAQ,CAACgD,wBAAT,GAAoCC,IAApC,CAAyCC,MAAzC,GACElD,QAAQ,CAACgB,QAAT,GAAoBrB,UAApB,CAA+BG,QAF5B,CAAP;AAID;AA3KI,KAAP;AA6KD;AArMuB;;;;"}
|
|
1
|
+
{"version":3,"file":"Pagination.js","sources":["../../../src/features/Pagination.ts"],"sourcesContent":["import {\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n TableInstance,\n RowModel,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo } from '../utils'\n\nexport type PaginationState = {\n pageIndex: number\n pageSize: number\n pageCount: number\n}\n\nexport type PaginationTableState = {\n pagination: PaginationState\n}\n\nexport type PaginationOptions<TGenerics extends AnyGenerics> = {\n onPaginationChange?: OnChangeFn<PaginationState>\n autoResetPageIndex?: boolean\n paginateRowsFn?: (\n instance: TableInstance<TGenerics>,\n rowModel: RowModel<TGenerics>\n ) => RowModel<TGenerics>\n}\n\nexport type PaginationDefaultOptions = {\n onPaginationChange: OnChangeFn<PaginationState>\n autoResetPageIndex: boolean\n}\n\nexport type PaginationInstance<TGenerics extends AnyGenerics> = {\n _notifyPageIndexReset: () => void\n setPagination: (updater: Updater<PaginationState>) => void\n resetPagination: () => void\n setPageIndex: (updater: Updater<number>) => void\n resetPageIndex: () => void\n setPageSize: (updater: Updater<number>) => void\n resetPageSize: () => void\n setPageCount: (updater: Updater<number>) => void\n getPageOptions: () => number[]\n getCanPreviousPage: () => boolean\n getCanNextPage: () => boolean\n previousPage: () => void\n nextPage: () => void\n getPrePaginationRowModel: () => RowModel<TGenerics>\n getPaginationRowModel: () => RowModel<TGenerics>\n getPageCount: () => number\n}\n\n//\n\nexport const Pagination = {\n getInitialState: (): PaginationTableState => {\n return {\n pagination: {\n pageCount: -1,\n pageIndex: 0,\n pageSize: 10,\n },\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): PaginationDefaultOptions => {\n return {\n onPaginationChange: makeStateUpdater('pagination', instance),\n autoResetPageIndex: true,\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): PaginationInstance<TGenerics> => {\n let registered = false\n return {\n _notifyPageIndexReset: () => {\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetPageIndex\n ) {\n instance.resetPageIndex()\n }\n },\n setPagination: updater => {\n const safeUpdater: Updater<PaginationState> = old => {\n let newState = functionalUpdate(updater, old)\n\n return newState\n }\n\n return instance.options.onPaginationChange?.(\n safeUpdater,\n functionalUpdate(safeUpdater, instance.getState().pagination)\n )\n },\n resetPagination: () => {\n instance.setPagination(\n instance.initialState.pagination ?? {\n pageIndex: 0,\n pageSize: 10,\n pageCount: -1,\n }\n )\n },\n setPageIndex: updater => {\n instance.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex)\n\n const maxPageIndex =\n old.pageCount && old.pageCount > 0\n ? old.pageCount - 1\n : Number.MAX_SAFE_INTEGER\n\n pageIndex = Math.min(Math.max(0, pageIndex), maxPageIndex)\n\n return {\n ...old,\n pageIndex,\n }\n })\n },\n resetPageIndex: () => {\n instance.setPageIndex(0)\n },\n resetPageSize: () => {\n instance.setPageSize(instance.initialState?.pagination?.pageSize ?? 10)\n },\n setPageSize: updater => {\n instance.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize))\n const topRowIndex = old.pageSize * old.pageIndex!\n const pageIndex = Math.floor(topRowIndex / pageSize)\n\n return {\n ...old,\n pageIndex,\n pageSize,\n }\n })\n },\n setPageCount: updater =>\n instance.setPagination(old => {\n let newPageCount = functionalUpdate(updater, old.pageCount)\n\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount)\n }\n\n return {\n ...old,\n pageCount: newPageCount,\n }\n }),\n\n getPageOptions: memo(\n () => [\n instance.getState().pagination.pageSize,\n instance.getState().pagination.pageCount,\n ],\n (pageSize, pageCount) => {\n let pageOptions: number[] = []\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i)\n }\n return pageOptions\n },\n {\n key: 'getPageOptions',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getCanPreviousPage: () => instance.getState().pagination.pageIndex > 0,\n\n getCanNextPage: () => {\n const { pageIndex, pageSize } = instance.getState().pagination\n\n const pageCount = instance.getPageCount()\n\n if (pageCount === -1) {\n return true\n }\n\n if (pageCount === 0) {\n return false\n }\n\n return (\n pageIndex <\n Math.ceil(\n instance.getPrePaginationRowModel().rows.length / pageSize\n ) -\n 1\n )\n },\n\n previousPage: () => {\n return instance.setPageIndex(old => old - 1)\n },\n\n nextPage: () => {\n return instance.setPageIndex(old => {\n return old + 1\n })\n },\n\n getPrePaginationRowModel: () => instance.getExpandedRowModel(),\n getPaginationRowModel: memo(\n () => [\n instance.getState().pagination,\n instance.getExpandedRowModel(),\n instance.options.paginateRowsFn,\n ],\n (_pagination, rowModel, paginateRowsFn) => {\n if (!paginateRowsFn || !rowModel.rows.length) {\n return rowModel\n }\n\n return paginateRowsFn(instance, rowModel)\n },\n {\n key: 'getPaginationRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getPageCount: () => {\n const { pageCount } = instance.getState().pagination\n if (pageCount > 0) {\n return pageCount\n }\n\n return Math.ceil(\n instance.getPrePaginationRowModel().rows.length /\n instance.getState().pagination.pageSize\n )\n },\n }\n },\n}\n"],"names":["Pagination","getInitialState","pagination","pageCount","pageIndex","pageSize","getDefaultOptions","instance","onPaginationChange","makeStateUpdater","autoResetPageIndex","getInstance","registered","_notifyPageIndexReset","options","autoResetAll","resetPageIndex","setPagination","updater","safeUpdater","old","newState","functionalUpdate","getState","resetPagination","initialState","setPageIndex","maxPageIndex","Number","MAX_SAFE_INTEGER","Math","min","max","resetPageSize","setPageSize","topRowIndex","floor","setPageCount","newPageCount","getPageOptions","memo","pageOptions","Array","fill","map","_","i","key","debug","debugAll","debugTable","getCanPreviousPage","getCanNextPage","getPageCount","ceil","getPrePaginationRowModel","rows","length","previousPage","nextPage","getExpandedRowModel","getPaginationRowModel","paginateRowsFn","_pagination","rowModel"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pinning.js","sources":["../../../src/features/Pinning.ts"],"sourcesContent":["import {\n OnChangeFn,\n Updater,\n TableInstance,\n Column,\n AnyGenerics,\n PartialGenerics,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater } from '../utils'\n\ntype ColumnPinningPosition = false | 'left' | 'right'\n\nexport type ColumnPinningState = {\n left?: string[]\n right?: string[]\n}\n\nexport type ColumnPinningTableState = {\n columnPinning: ColumnPinningState\n}\n\nexport type ColumnPinningOptions = {\n onColumnPinningChange?: OnChangeFn<ColumnPinningState>\n enablePinning?: boolean\n}\n\nexport type ColumnPinningDefaultOptions = {\n onColumnPinningChange: OnChangeFn<ColumnPinningState>\n}\n\nexport type ColumnPinningColumnDef = {\n enablePinning?: boolean\n defaultCanPin?: boolean\n}\n\nexport type ColumnPinningColumn = {\n getCanPin: () => boolean\n getPinnedIndex: () => number\n getIsPinned: () => ColumnPinningPosition\n pin: (position: ColumnPinningPosition) => void\n}\n\nexport type ColumnPinningInstance<TGenerics extends PartialGenerics> = {\n setColumnPinning: (updater: Updater<ColumnPinningState>) => void\n resetColumnPinning: () => void\n pinColumn: (columnId: string, position: ColumnPinningPosition) => void\n getColumnCanPin: (columnId: string) => boolean\n getColumnIsPinned: (columnId: string) => ColumnPinningPosition\n getColumnPinnedIndex: (columnId: string) => number\n getIsSomeColumnsPinned: () => boolean\n}\n\n//\n\nexport const Pinning = {\n getInitialState: (): ColumnPinningTableState => {\n return {\n columnPinning: {\n left: [],\n right: [],\n },\n }\n },\n\n getDefaultOptions: <TGenerics extends PartialGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnPinningDefaultOptions => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', instance),\n }\n },\n\n createColumn: <TGenerics extends PartialGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ColumnPinningColumn => {\n return {\n getCanPin: () => instance.getColumnCanPin(column.id),\n getPinnedIndex: () => instance.getColumnPinnedIndex(column.id),\n getIsPinned: () => instance.getColumnIsPinned(column.id),\n pin: position => instance.pinColumn(column.id, position),\n }\n },\n\n getInstance: <TGenerics extends PartialGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnPinningInstance<TGenerics> => {\n return {\n setColumnPinning: updater =>\n instance.options.onColumnPinningChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnPinning)\n ),\n\n resetColumnPinning: () =>\n instance.setColumnPinning(instance.initialState?.columnPinning ?? {}),\n\n pinColumn: (columnId, position) => {\n const column = instance.getColumn(columnId)\n\n const columnIds = column\n ?.getLeafColumns()\n .map(d => d.id)\n .filter(Boolean) as string[]\n\n instance.setColumnPinning(old => {\n if (position === 'right') {\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: [\n ...(old?.right ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n }\n }\n\n if (position === 'left') {\n return {\n left: [\n ...(old?.left ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n }\n\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n })\n },\n\n getColumnCanPin: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const leafColumns = column.getLeafColumns()\n\n return leafColumns.some(\n d =>\n d.enablePinning ??\n instance.options.enablePinning ??\n d.defaultCanPin ??\n !!d.accessorFn\n )\n },\n\n getColumnIsPinned: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const leafColumnIds = column.getLeafColumns().map(d => d.id)\n\n const { left, right } = instance.getState().columnPinning\n\n const isLeft = leafColumnIds.some(d => left?.includes(d))\n const isRight = leafColumnIds.some(d => right?.includes(d))\n\n return isLeft ? 'left' : isRight ? 'right' : false\n },\n\n getColumnPinnedIndex: columnId => {\n const position = instance.getColumnIsPinned(columnId)\n\n return position\n ? instance.getState().columnPinning?.[position]?.indexOf(columnId) ??\n -1\n : 0\n },\n\n getIsSomeColumnsPinned: () => {\n const { left, right } = instance.getState().columnPinning\n\n return Boolean(left?.length || right?.length)\n },\n }\n },\n}\n"],"names":["Pinning","getInitialState","columnPinning","left","right","getDefaultOptions","instance","onColumnPinningChange","makeStateUpdater","createColumn","column","getCanPin","getColumnCanPin","id","getPinnedIndex","getColumnPinnedIndex","getIsPinned","getColumnIsPinned","pin","position","pinColumn","getInstance","setColumnPinning","updater","options","functionalUpdate","getState","resetColumnPinning","initialState","columnId","getColumn","columnIds","getLeafColumns","map","d","filter","Boolean","old","includes","Error","leafColumns","some","enablePinning","defaultCanPin","accessorFn","leafColumnIds","isLeft","isRight","indexOf","getIsSomeColumnsPinned","length"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Pinning.js","sources":["../../../src/features/Pinning.ts"],"sourcesContent":["import {\n OnChangeFn,\n Updater,\n TableInstance,\n Column,\n AnyGenerics,\n PartialGenerics,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater } from '../utils'\n\ntype ColumnPinningPosition = false | 'left' | 'right'\n\nexport type ColumnPinningState = {\n left?: string[]\n right?: string[]\n}\n\nexport type ColumnPinningTableState = {\n columnPinning: ColumnPinningState\n}\n\nexport type ColumnPinningOptions = {\n onColumnPinningChange?: OnChangeFn<ColumnPinningState>\n enablePinning?: boolean\n}\n\nexport type ColumnPinningDefaultOptions = {\n onColumnPinningChange: OnChangeFn<ColumnPinningState>\n}\n\nexport type ColumnPinningColumnDef = {\n enablePinning?: boolean\n defaultCanPin?: boolean\n}\n\nexport type ColumnPinningColumn = {\n getCanPin: () => boolean\n getPinnedIndex: () => number\n getIsPinned: () => ColumnPinningPosition\n pin: (position: ColumnPinningPosition) => void\n}\n\nexport type ColumnPinningInstance<TGenerics extends AnyGenerics> = {\n setColumnPinning: (updater: Updater<ColumnPinningState>) => void\n resetColumnPinning: () => void\n pinColumn: (columnId: string, position: ColumnPinningPosition) => void\n getColumnCanPin: (columnId: string) => boolean\n getColumnIsPinned: (columnId: string) => ColumnPinningPosition\n getColumnPinnedIndex: (columnId: string) => number\n getIsSomeColumnsPinned: () => boolean\n}\n\n//\n\nexport const Pinning = {\n getInitialState: (): ColumnPinningTableState => {\n return {\n columnPinning: {\n left: [],\n right: [],\n },\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnPinningDefaultOptions => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', instance),\n }\n },\n\n createColumn: <TGenerics extends AnyGenerics>(\n column: Column<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ColumnPinningColumn => {\n return {\n getCanPin: () => instance.getColumnCanPin(column.id),\n getPinnedIndex: () => instance.getColumnPinnedIndex(column.id),\n getIsPinned: () => instance.getColumnIsPinned(column.id),\n pin: position => instance.pinColumn(column.id, position),\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnPinningInstance<TGenerics> => {\n return {\n setColumnPinning: updater =>\n instance.options.onColumnPinningChange?.(\n updater,\n functionalUpdate(updater, instance.getState().columnPinning)\n ),\n\n resetColumnPinning: () =>\n instance.setColumnPinning(instance.initialState?.columnPinning ?? {}),\n\n pinColumn: (columnId, position) => {\n const column = instance.getColumn(columnId)\n\n const columnIds = column\n ?.getLeafColumns()\n .map(d => d.id)\n .filter(Boolean) as string[]\n\n instance.setColumnPinning(old => {\n if (position === 'right') {\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: [\n ...(old?.right ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n }\n }\n\n if (position === 'left') {\n return {\n left: [\n ...(old?.left ?? []).filter(d => !columnIds?.includes(d)),\n ...columnIds,\n ],\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n }\n\n return {\n left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),\n right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),\n }\n })\n },\n\n getColumnCanPin: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const leafColumns = column.getLeafColumns()\n\n return leafColumns.some(\n d =>\n d.enablePinning ??\n instance.options.enablePinning ??\n d.defaultCanPin ??\n !!d.accessorFn\n )\n },\n\n getColumnIsPinned: columnId => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n const leafColumnIds = column.getLeafColumns().map(d => d.id)\n\n const { left, right } = instance.getState().columnPinning\n\n const isLeft = leafColumnIds.some(d => left?.includes(d))\n const isRight = leafColumnIds.some(d => right?.includes(d))\n\n return isLeft ? 'left' : isRight ? 'right' : false\n },\n\n getColumnPinnedIndex: columnId => {\n const position = instance.getColumnIsPinned(columnId)\n\n return position\n ? instance.getState().columnPinning?.[position]?.indexOf(columnId) ??\n -1\n : 0\n },\n\n getIsSomeColumnsPinned: () => {\n const { left, right } = instance.getState().columnPinning\n\n return Boolean(left?.length || right?.length)\n },\n }\n },\n}\n"],"names":["Pinning","getInitialState","columnPinning","left","right","getDefaultOptions","instance","onColumnPinningChange","makeStateUpdater","createColumn","column","getCanPin","getColumnCanPin","id","getPinnedIndex","getColumnPinnedIndex","getIsPinned","getColumnIsPinned","pin","position","pinColumn","getInstance","setColumnPinning","updater","options","functionalUpdate","getState","resetColumnPinning","initialState","columnId","getColumn","columnIds","getLeafColumns","map","d","filter","Boolean","old","includes","Error","leafColumns","some","enablePinning","defaultCanPin","accessorFn","leafColumnIds","isLeft","isRight","indexOf","getIsSomeColumnsPinned","length"],"mappings":"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"}
|
|
@@ -62,10 +62,10 @@ var RowSelection = {
|
|
|
62
62
|
},
|
|
63
63
|
toggleAllRowsSelected: function toggleAllRowsSelected(value) {
|
|
64
64
|
instance.setRowSelection(function (old) {
|
|
65
|
-
value = typeof value !== 'undefined' ? value : !instance.getIsAllRowsSelected();
|
|
66
|
-
|
|
65
|
+
value = typeof value !== 'undefined' ? value : !instance.getIsAllRowsSelected();
|
|
66
|
+
|
|
67
|
+
var rowSelection = _rollupPluginBabelHelpers["extends"]({}, old);
|
|
67
68
|
|
|
68
|
-
var rowSelection = Object.assign({}, old);
|
|
69
69
|
var preGroupedFlatRows = instance.getPreGroupedRowModel().flatRows; // We don't use `mutateRowIsSelected` here for performance reasons.
|
|
70
70
|
// All of the rows are flat already, so it wouldn't be worth it
|
|
71
71
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RowSelection.js","sources":["../../../src/features/RowSelection.ts"],"sourcesContent":["import {\n Getter,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Row,\n RowModel,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport type RowSelectionTableState = {\n rowSelection: RowSelectionState\n}\n\nexport type RowSelectionOptions<TGenerics extends PartialGenerics> = {\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n autoResetRowSelection?: boolean\n enableRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TGenerics>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: MouseEvent | TouchEvent) => boolean\n // isInclusiveSelectEvent?: (e: MouseEvent | TouchEvent) => boolean\n // selectRowsFn?: (\n // instance: TableInstance<\n // TData,\n // TValue,\n // TFilterFns,\n // TSortingFns,\n // TAggregationFns\n // >,\n // rowModel: RowModel<TGenerics>\n // ) => RowModel<TGenerics>\n}\n\ntype ToggleRowSelectedProps = {\n onChange?: (e: MouseEvent | TouchEvent) => void\n checked?: boolean\n title?: string\n indeterminate?: boolean\n}\n\nexport type RowSelectionRow = {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedProps: <TGetter extends Getter<ToggleRowSelectedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n}\n\nexport type RowSelectionInstance<TGenerics extends PartialGenerics> = {\n _notifyRowSelectionReset: () => void\n getToggleRowSelectedProps: <TGetter extends Getter<ToggleRowSelectedProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n getToggleAllRowsSelectedProps: <\n TGetter extends Getter<ToggleRowSelectedProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n getToggleAllPageRowsSelectedProps: <\n TGetter extends Getter<ToggleRowSelectedProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: () => void\n toggleRowSelected: (rowId: string, value?: boolean) => void\n getRowCanSelect: (rowId: string) => boolean\n getRowCanSelectSubRows: (rowId: string) => boolean\n getRowCanMultiSelect: (rowId: string) => boolean\n // getGroupingRowCanSelect: (rowId: string) => boolean\n getRowIsSelected: (rowId: string) => boolean\n getRowIsSomeSelected: (rowId: string) => boolean\n getIsAllRowsSelected: () => boolean\n getIsAllPageRowsSelected: () => boolean\n getIsSomeRowsSelected: () => boolean\n getIsSomePageRowsSelected: () => boolean\n toggleAllRowsSelected: (value: boolean) => void\n toggleAllPageRowsSelected: (value: boolean) => void\n getPreSelectedRowModel: () => RowModel<TGenerics>\n getSelectedRowModel: () => RowModel<TGenerics>\n getFilteredSelectedRowModel: () => RowModel<TGenerics>\n getGroupedSelectedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const RowSelection = {\n getInitialState: (): RowSelectionTableState => {\n return {\n rowSelection: {},\n }\n },\n\n getDefaultOptions: <TGenerics extends PartialGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionOptions<TGenerics> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', instance),\n autoResetRowSelection: true,\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: MouseEvent | TouchEvent) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: MouseEvent | TouchEvent) => !!e.shiftKey,\n }\n },\n\n getInstance: <TGenerics extends PartialGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionInstance<TGenerics> => {\n let registered = false\n\n // const pageRows = instance.getPageRows()\n\n return {\n _notifyRowSelectionReset: () => {\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetRowSelection\n ) {\n instance.resetRowSelection()\n }\n },\n setRowSelection: updater =>\n instance.options.onRowSelectionChange?.(\n updater,\n functionalUpdate(updater, instance.getState().rowSelection)\n ),\n resetRowSelection: () =>\n instance.setRowSelection(instance.initialState.rowSelection ?? {}),\n toggleAllRowsSelected: value => {\n instance.setRowSelection(old => {\n value =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllRowsSelected()\n\n // Only remove/add the rows that are visible on the screen\n // Leave all the other rows that are selected alone.\n const rowSelection = Object.assign({}, old)\n\n const preGroupedFlatRows = instance.getPreGroupedRowModel().flatRows\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n rowSelection[row.id] = true\n })\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id]\n })\n }\n\n return rowSelection\n })\n },\n toggleAllPageRowsSelected: value =>\n instance.setRowSelection(old => {\n const selectAll =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllPageRowsSelected()\n\n const rowSelection: RowSelectionState = { ...old }\n\n instance.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, value, instance)\n })\n\n return rowSelection\n }),\n toggleRowSelected: (rowId, value) => {\n const row = instance.getRow(rowId)\n const isSelected = row.getIsSelected()\n\n instance.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected\n\n if (isSelected === value) {\n return old\n }\n\n const selectedRowIds = { ...old }\n\n mutateRowIsSelected(selectedRowIds, rowId, value, instance)\n\n return selectedRowIds\n })\n },\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = instance\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // instance.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // instance.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => instance.getCoreRowModel(),\n getSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getCoreRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => instance._notifyExpandedReset(),\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [\n instance.getState().rowSelection,\n instance.getGlobalFilteredRowModel(),\n ],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getFilteredSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => instance._notifyExpandedReset(),\n }\n ),\n\n getGroupedSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getGroupedRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getGroupedSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => instance._notifyExpandedReset(),\n }\n ),\n\n ///\n\n getRowIsSelected: rowId => {\n const { rowSelection } = instance.getState()\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n return isRowSelected(row, rowSelection, instance) === true\n },\n\n getRowIsSomeSelected: rowId => {\n const { rowSelection } = instance.getState()\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n return isRowSelected(row, rowSelection, instance) === 'some'\n },\n\n getRowCanSelect: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableRowSelection === 'function') {\n return instance.options.enableRowSelection(row)\n }\n\n return instance.options.enableRowSelection ?? true\n },\n\n getRowCanSelectSubRows: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableSubRowSelection === 'function') {\n return instance.options.enableSubRowSelection(row)\n }\n\n return instance.options.enableSubRowSelection ?? true\n },\n\n getRowCanMultiSelect: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableMultiRowSelection === 'function') {\n return instance.options.enableMultiRowSelection(row)\n }\n\n return instance.options.enableMultiRowSelection ?? true\n },\n\n // getGroupingRowCanSelect: rowId => {\n // const row = instance.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof instance.options.enableGroupingRowSelection === 'function') {\n // return instance.options.enableGroupingRowSelection(row)\n // }\n\n // return instance.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preFilteredFlatRows =\n instance.getPreGlobalFilteredRowModel().flatRows\n const { rowSelection } = instance.getState()\n\n let isAllRowsSelected = Boolean(\n preFilteredFlatRows.length && Object.keys(rowSelection).length\n )\n\n if (isAllRowsSelected) {\n if (preFilteredFlatRows.some(row => !rowSelection[row.id])) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n },\n\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n const { rowSelection } = instance.getState()\n\n let isAllPageRowsSelected = !!paginationFlatRows.length\n\n if (\n isAllPageRowsSelected &&\n paginationFlatRows.some(row => !rowSelection[row.id])\n ) {\n isAllPageRowsSelected = false\n }\n\n return isAllPageRowsSelected\n },\n\n getIsSomeRowsSelected: () => {\n return (\n !instance.getIsAllRowsSelected() &&\n !!Object.keys(instance.getState().rowSelection ?? {}).length\n )\n },\n\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n return instance.getIsAllPageRowsSelected()\n ? false\n : !!paginationFlatRows?.length\n },\n\n getToggleRowSelectedProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n\n const isSelected = row.getIsSelected()\n const isSomeSelected = row.getIsSomeSelected()\n const canSelect = row.getCanSelect()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: canSelect\n ? (e: MouseEvent | TouchEvent) => {\n row.toggleSelected((e.target as HTMLInputElement).checked)\n }\n : undefined,\n checked: isSelected,\n title: 'Toggle Row Selected',\n indeterminate: isSomeSelected,\n // onChange: forInput\n // ? (e: Event) => e.stopPropagation()\n // : (e: Event) => {\n // if (instance.options.isAdditiveSelectEvent(e)) {\n // row.toggleSelected()\n // } else if (instance.options.isInclusiveSelectEvent(e)) {\n // instance.addRowSelectionRange(row.id)\n // } else {\n // instance.setRowSelection({})\n // row.toggleSelected()\n // }\n\n // if (props.onClick) props.onClick(e)\n // },\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getToggleAllRowsSelectedProps: userProps => {\n const isSomeRowsSelected = instance.getIsSomeRowsSelected()\n const isAllRowsSelected = instance.getIsAllRowsSelected()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: (e: MouseEvent | TouchEvent) => {\n instance.toggleAllRowsSelected(\n (e.target as HTMLInputElement).checked\n )\n },\n checked: isAllRowsSelected,\n title: 'Toggle All Rows Selected',\n indeterminate: isSomeRowsSelected,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getToggleAllPageRowsSelectedProps: userProps => {\n const isSomePageRowsSelected = instance.getIsSomePageRowsSelected()\n const isAllPageRowsSelected = instance.getIsAllPageRowsSelected()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: (e: MouseEvent | TouchEvent) => {\n instance.toggleAllPageRowsSelected(\n (e.target as HTMLInputElement).checked\n )\n },\n checked: isAllPageRowsSelected,\n title: 'Toggle All Current Page Rows Selected',\n indeterminate: isSomePageRowsSelected,\n }\n\n return propGetter(initialProps, userProps)\n },\n }\n },\n\n createRow: <TGenerics extends PartialGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): RowSelectionRow => {\n return {\n getIsSelected: () => instance.getRowIsSelected(row.id),\n getIsSomeSelected: () => instance.getRowIsSomeSelected(row.id),\n toggleSelected: value => instance.toggleRowSelected(row.id, value),\n getToggleSelectedProps: userProps =>\n instance.getToggleRowSelectedProps(row.id, userProps),\n getCanMultiSelect: () => instance.getRowCanMultiSelect(row.id),\n getCanSelect: () => instance.getRowCanSelect(row.id),\n }\n },\n}\n\nconst mutateRowIsSelected = <TGenerics extends PartialGenerics>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n instance: TableInstance<TGenerics>\n) => {\n const row = instance.getRow(id)\n\n const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && instance.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n selectedRowIds[id] = true\n } else {\n delete selectedRowIds[id]\n }\n // }\n\n if (row.subRows?.length && instance.getRowCanSelectSubRows(row.id)) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, instance)\n )\n }\n}\n\nexport function selectRowsFn<TGenerics extends PartialGenerics>(\n instance: TableInstance<TGenerics>,\n rowModel: RowModel<TGenerics>\n): RowModel<TGenerics> {\n const rowSelection = instance.getState().rowSelection\n\n const newSelectedFlatRows: Row<TGenerics>[] = []\n const newSelectedRowsById: Record<string, Row<TGenerics>> = {}\n\n // Filters top level and nested rows\n const recurseRows = (rows: Row<TGenerics>[], depth = 0) => {\n return rows\n .map(row => {\n const isSelected = isRowSelected(row, rowSelection, instance) === true\n\n if (isSelected) {\n newSelectedFlatRows.push(row)\n newSelectedRowsById[row.id] = row\n }\n\n if (row.subRows?.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows, depth + 1),\n }\n }\n\n if (isSelected) {\n return row\n }\n })\n .filter(Boolean) as Row<TGenerics>[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<TGenerics extends PartialGenerics>(\n row: Row<TGenerics>,\n selection: Record<string, boolean>,\n instance: TableInstance<TGenerics>\n): boolean | 'some' {\n if (selection[row.id]) {\n return true\n }\n\n if (row.subRows && row.subRows.length) {\n let allChildrenSelected = true\n let someSelected = false\n\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return\n }\n\n if (isRowSelected(subRow, selection, instance)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n\n return allChildrenSelected ? true : someSelected ? 'some' : false\n }\n\n return false\n}\n"],"names":["RowSelection","getInitialState","rowSelection","getDefaultOptions","instance","onRowSelectionChange","makeStateUpdater","autoResetRowSelection","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","getInstance","registered","_notifyRowSelectionReset","options","autoResetAll","resetRowSelection","setRowSelection","updater","functionalUpdate","getState","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","Object","assign","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","id","toggleAllPageRowsSelected","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","toggleRowSelected","rowId","getRow","isSelected","getIsSelected","selectedRowIds","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","rowModel","keys","length","rowsById","selectRowsFn","key","debug","debugAll","debugTable","onChange","_notifyExpandedReset","getFilteredSelectedRowModel","getGlobalFilteredRowModel","getGroupedSelectedRowModel","getGroupedRowModel","getRowIsSelected","Error","isRowSelected","getRowIsSomeSelected","getRowCanSelect","getRowCanSelectSubRows","getRowCanMultiSelect","preFilteredFlatRows","getPreGlobalFilteredRowModel","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","getIsSomePageRowsSelected","getToggleRowSelectedProps","userProps","isSomeSelected","getIsSomeSelected","canSelect","getCanSelect","initialProps","e","toggleSelected","target","checked","undefined","title","indeterminate","propGetter","getToggleAllRowsSelectedProps","isSomeRowsSelected","getToggleAllPageRowsSelectedProps","isSomePageRowsSelected","createRow","getToggleSelectedProps","getCanMultiSelect","getIsGrouped","subRows","newSelectedFlatRows","newSelectedRowsById","recurseRows","depth","map","push","filter","selection","allChildrenSelected","someSelected","subRow"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RowSelection.js","sources":["../../../src/features/RowSelection.ts"],"sourcesContent":["import {\n Getter,\n OnChangeFn,\n AnyGenerics,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Row,\n RowModel,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport type RowSelectionTableState = {\n rowSelection: RowSelectionState\n}\n\nexport type RowSelectionOptions<TGenerics extends AnyGenerics> = {\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n autoResetRowSelection?: boolean\n enableRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TGenerics>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: MouseEvent | TouchEvent) => boolean\n // isInclusiveSelectEvent?: (e: MouseEvent | TouchEvent) => boolean\n // selectRowsFn?: (\n // instance: TableInstance<\n // TData,\n // TValue,\n // TFilterFns,\n // TSortingFns,\n // TAggregationFns\n // >,\n // rowModel: RowModel<TGenerics>\n // ) => RowModel<TGenerics>\n}\n\ntype ToggleRowSelectedProps = {\n onChange?: (e: MouseEvent | TouchEvent) => void\n checked?: boolean\n title?: string\n indeterminate?: boolean\n}\n\nexport type RowSelectionRow = {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedProps: <TGetter extends Getter<ToggleRowSelectedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n}\n\nexport type RowSelectionInstance<TGenerics extends AnyGenerics> = {\n _notifyRowSelectionReset: () => void\n getToggleRowSelectedProps: <TGetter extends Getter<ToggleRowSelectedProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n getToggleAllRowsSelectedProps: <\n TGetter extends Getter<ToggleRowSelectedProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n getToggleAllPageRowsSelectedProps: <\n TGetter extends Getter<ToggleRowSelectedProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: () => void\n toggleRowSelected: (rowId: string, value?: boolean) => void\n getRowCanSelect: (rowId: string) => boolean\n getRowCanSelectSubRows: (rowId: string) => boolean\n getRowCanMultiSelect: (rowId: string) => boolean\n // getGroupingRowCanSelect: (rowId: string) => boolean\n getRowIsSelected: (rowId: string) => boolean\n getRowIsSomeSelected: (rowId: string) => boolean\n getIsAllRowsSelected: () => boolean\n getIsAllPageRowsSelected: () => boolean\n getIsSomeRowsSelected: () => boolean\n getIsSomePageRowsSelected: () => boolean\n toggleAllRowsSelected: (value: boolean) => void\n toggleAllPageRowsSelected: (value: boolean) => void\n getPreSelectedRowModel: () => RowModel<TGenerics>\n getSelectedRowModel: () => RowModel<TGenerics>\n getFilteredSelectedRowModel: () => RowModel<TGenerics>\n getGroupedSelectedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const RowSelection = {\n getInitialState: (): RowSelectionTableState => {\n return {\n rowSelection: {},\n }\n },\n\n getDefaultOptions: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionOptions<TGenerics> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', instance),\n autoResetRowSelection: true,\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: MouseEvent | TouchEvent) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: MouseEvent | TouchEvent) => !!e.shiftKey,\n }\n },\n\n getInstance: <TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionInstance<TGenerics> => {\n let registered = false\n\n // const pageRows = instance.getPageRows()\n\n return {\n _notifyRowSelectionReset: () => {\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetRowSelection\n ) {\n instance.resetRowSelection()\n }\n },\n setRowSelection: updater =>\n instance.options.onRowSelectionChange?.(\n updater,\n functionalUpdate(updater, instance.getState().rowSelection)\n ),\n resetRowSelection: () =>\n instance.setRowSelection(instance.initialState.rowSelection ?? {}),\n toggleAllRowsSelected: value => {\n instance.setRowSelection(old => {\n value =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllRowsSelected()\n\n const rowSelection = { ...old }\n\n const preGroupedFlatRows = instance.getPreGroupedRowModel().flatRows\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n rowSelection[row.id] = true\n })\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id]\n })\n }\n\n return rowSelection\n })\n },\n toggleAllPageRowsSelected: value =>\n instance.setRowSelection(old => {\n const selectAll =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllPageRowsSelected()\n\n const rowSelection: RowSelectionState = { ...old }\n\n instance.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, value, instance)\n })\n\n return rowSelection\n }),\n toggleRowSelected: (rowId, value) => {\n const row = instance.getRow(rowId)\n const isSelected = row.getIsSelected()\n\n instance.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected\n\n if (isSelected === value) {\n return old\n }\n\n const selectedRowIds = { ...old }\n\n mutateRowIsSelected(selectedRowIds, rowId, value, instance)\n\n return selectedRowIds\n })\n },\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = instance\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // instance.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // instance.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => instance.getCoreRowModel(),\n getSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getCoreRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => instance._notifyExpandedReset(),\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [\n instance.getState().rowSelection,\n instance.getGlobalFilteredRowModel(),\n ],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getFilteredSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => instance._notifyExpandedReset(),\n }\n ),\n\n getGroupedSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getGroupedRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getGroupedSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => instance._notifyExpandedReset(),\n }\n ),\n\n ///\n\n getRowIsSelected: rowId => {\n const { rowSelection } = instance.getState()\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n return isRowSelected(row, rowSelection, instance) === true\n },\n\n getRowIsSomeSelected: rowId => {\n const { rowSelection } = instance.getState()\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n return isRowSelected(row, rowSelection, instance) === 'some'\n },\n\n getRowCanSelect: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableRowSelection === 'function') {\n return instance.options.enableRowSelection(row)\n }\n\n return instance.options.enableRowSelection ?? true\n },\n\n getRowCanSelectSubRows: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableSubRowSelection === 'function') {\n return instance.options.enableSubRowSelection(row)\n }\n\n return instance.options.enableSubRowSelection ?? true\n },\n\n getRowCanMultiSelect: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableMultiRowSelection === 'function') {\n return instance.options.enableMultiRowSelection(row)\n }\n\n return instance.options.enableMultiRowSelection ?? true\n },\n\n // getGroupingRowCanSelect: rowId => {\n // const row = instance.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof instance.options.enableGroupingRowSelection === 'function') {\n // return instance.options.enableGroupingRowSelection(row)\n // }\n\n // return instance.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preFilteredFlatRows =\n instance.getPreGlobalFilteredRowModel().flatRows\n const { rowSelection } = instance.getState()\n\n let isAllRowsSelected = Boolean(\n preFilteredFlatRows.length && Object.keys(rowSelection).length\n )\n\n if (isAllRowsSelected) {\n if (preFilteredFlatRows.some(row => !rowSelection[row.id])) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n },\n\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n const { rowSelection } = instance.getState()\n\n let isAllPageRowsSelected = !!paginationFlatRows.length\n\n if (\n isAllPageRowsSelected &&\n paginationFlatRows.some(row => !rowSelection[row.id])\n ) {\n isAllPageRowsSelected = false\n }\n\n return isAllPageRowsSelected\n },\n\n getIsSomeRowsSelected: () => {\n return (\n !instance.getIsAllRowsSelected() &&\n !!Object.keys(instance.getState().rowSelection ?? {}).length\n )\n },\n\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n return instance.getIsAllPageRowsSelected()\n ? false\n : !!paginationFlatRows?.length\n },\n\n getToggleRowSelectedProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n\n const isSelected = row.getIsSelected()\n const isSomeSelected = row.getIsSomeSelected()\n const canSelect = row.getCanSelect()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: canSelect\n ? (e: MouseEvent | TouchEvent) => {\n row.toggleSelected((e.target as HTMLInputElement).checked)\n }\n : undefined,\n checked: isSelected,\n title: 'Toggle Row Selected',\n indeterminate: isSomeSelected,\n // onChange: forInput\n // ? (e: Event) => e.stopPropagation()\n // : (e: Event) => {\n // if (instance.options.isAdditiveSelectEvent(e)) {\n // row.toggleSelected()\n // } else if (instance.options.isInclusiveSelectEvent(e)) {\n // instance.addRowSelectionRange(row.id)\n // } else {\n // instance.setRowSelection({})\n // row.toggleSelected()\n // }\n\n // if (props.onClick) props.onClick(e)\n // },\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getToggleAllRowsSelectedProps: userProps => {\n const isSomeRowsSelected = instance.getIsSomeRowsSelected()\n const isAllRowsSelected = instance.getIsAllRowsSelected()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: (e: MouseEvent | TouchEvent) => {\n instance.toggleAllRowsSelected(\n (e.target as HTMLInputElement).checked\n )\n },\n checked: isAllRowsSelected,\n title: 'Toggle All Rows Selected',\n indeterminate: isSomeRowsSelected,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getToggleAllPageRowsSelectedProps: userProps => {\n const isSomePageRowsSelected = instance.getIsSomePageRowsSelected()\n const isAllPageRowsSelected = instance.getIsAllPageRowsSelected()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: (e: MouseEvent | TouchEvent) => {\n instance.toggleAllPageRowsSelected(\n (e.target as HTMLInputElement).checked\n )\n },\n checked: isAllPageRowsSelected,\n title: 'Toggle All Current Page Rows Selected',\n indeterminate: isSomePageRowsSelected,\n }\n\n return propGetter(initialProps, userProps)\n },\n }\n },\n\n createRow: <TGenerics extends AnyGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): RowSelectionRow => {\n return {\n getIsSelected: () => instance.getRowIsSelected(row.id),\n getIsSomeSelected: () => instance.getRowIsSomeSelected(row.id),\n toggleSelected: value => instance.toggleRowSelected(row.id, value),\n getToggleSelectedProps: userProps =>\n instance.getToggleRowSelectedProps(row.id, userProps),\n getCanMultiSelect: () => instance.getRowCanMultiSelect(row.id),\n getCanSelect: () => instance.getRowCanSelect(row.id),\n }\n },\n}\n\nconst mutateRowIsSelected = <TGenerics extends AnyGenerics>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n instance: TableInstance<TGenerics>\n) => {\n const row = instance.getRow(id)\n\n const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && instance.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n selectedRowIds[id] = true\n } else {\n delete selectedRowIds[id]\n }\n // }\n\n if (row.subRows?.length && instance.getRowCanSelectSubRows(row.id)) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, instance)\n )\n }\n}\n\nexport function selectRowsFn<TGenerics extends AnyGenerics>(\n instance: TableInstance<TGenerics>,\n rowModel: RowModel<TGenerics>\n): RowModel<TGenerics> {\n const rowSelection = instance.getState().rowSelection\n\n const newSelectedFlatRows: Row<TGenerics>[] = []\n const newSelectedRowsById: Record<string, Row<TGenerics>> = {}\n\n // Filters top level and nested rows\n const recurseRows = (rows: Row<TGenerics>[], depth = 0) => {\n return rows\n .map(row => {\n const isSelected = isRowSelected(row, rowSelection, instance) === true\n\n if (isSelected) {\n newSelectedFlatRows.push(row)\n newSelectedRowsById[row.id] = row\n }\n\n if (row.subRows?.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows, depth + 1),\n }\n }\n\n if (isSelected) {\n return row\n }\n })\n .filter(Boolean) as Row<TGenerics>[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<TGenerics extends AnyGenerics>(\n row: Row<TGenerics>,\n selection: Record<string, boolean>,\n instance: TableInstance<TGenerics>\n): boolean | 'some' {\n if (selection[row.id]) {\n return true\n }\n\n if (row.subRows && row.subRows.length) {\n let allChildrenSelected = true\n let someSelected = false\n\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return\n }\n\n if (isRowSelected(subRow, selection, instance)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n\n return allChildrenSelected ? true : someSelected ? 'some' : false\n }\n\n return false\n}\n"],"names":["RowSelection","getInitialState","rowSelection","getDefaultOptions","instance","onRowSelectionChange","makeStateUpdater","autoResetRowSelection","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","getInstance","registered","_notifyRowSelectionReset","options","autoResetAll","resetRowSelection","setRowSelection","updater","functionalUpdate","getState","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","id","toggleAllPageRowsSelected","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","toggleRowSelected","rowId","getRow","isSelected","getIsSelected","selectedRowIds","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","rowModel","Object","keys","length","rowsById","selectRowsFn","key","debug","debugAll","debugTable","onChange","_notifyExpandedReset","getFilteredSelectedRowModel","getGlobalFilteredRowModel","getGroupedSelectedRowModel","getGroupedRowModel","getRowIsSelected","Error","isRowSelected","getRowIsSomeSelected","getRowCanSelect","getRowCanSelectSubRows","getRowCanMultiSelect","preFilteredFlatRows","getPreGlobalFilteredRowModel","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","getIsSomePageRowsSelected","getToggleRowSelectedProps","userProps","isSomeSelected","getIsSomeSelected","canSelect","getCanSelect","initialProps","e","toggleSelected","target","checked","undefined","title","indeterminate","propGetter","getToggleAllRowsSelectedProps","isSomeRowsSelected","getToggleAllPageRowsSelectedProps","isSomePageRowsSelected","createRow","getToggleSelectedProps","getCanMultiSelect","getIsGrouped","subRows","newSelectedFlatRows","newSelectedRowsById","recurseRows","depth","map","push","filter","selection","allChildrenSelected","someSelected","subRow"],"mappings":"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"}
|