@tanstack/table-core 8.8.0 → 8.8.2
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/lib/core/row.d.ts +4 -2
- package/build/lib/core/row.js +14 -2
- package/build/lib/core/row.js.map +1 -1
- package/build/lib/features/RowSelection.js +3 -3
- package/build/lib/features/RowSelection.js.map +1 -1
- package/build/lib/index.esm.js +29 -17
- package/build/lib/index.esm.js.map +1 -1
- package/build/lib/index.mjs +29 -17
- package/build/lib/index.mjs.map +1 -1
- package/build/lib/utils/filterRowsUtils.js +6 -6
- package/build/lib/utils/filterRowsUtils.js.map +1 -1
- package/build/lib/utils/getCoreRowModel.js +1 -1
- package/build/lib/utils/getCoreRowModel.js.map +1 -1
- package/build/lib/utils/getGroupedRowModel.js +5 -5
- package/build/lib/utils/getGroupedRowModel.js.map +1 -1
- package/build/umd/index.development.js +29 -17
- 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/core/row.ts +17 -3
- package/src/features/RowSelection.ts +3 -3
- package/src/utils/filterRowsUtils.ts +6 -14
- package/src/utils/getCoreRowModel.ts +1 -1
- package/src/utils/getGroupedRowModel.ts +4 -10
package/build/lib/core/row.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export interface CoreRow<TData extends RowData> {
|
|
|
4
4
|
index: number;
|
|
5
5
|
original: TData;
|
|
6
6
|
depth: number;
|
|
7
|
+
parentId?: string;
|
|
7
8
|
_valuesCache: Record<string, unknown>;
|
|
8
9
|
_uniqueValuesCache: Record<string, unknown>;
|
|
9
10
|
getValue: <TValue>(columnId: string) => TValue;
|
|
@@ -14,6 +15,7 @@ export interface CoreRow<TData extends RowData> {
|
|
|
14
15
|
originalSubRows?: TData[];
|
|
15
16
|
getAllCells: () => Cell<TData, unknown>[];
|
|
16
17
|
_getAllCellsByColumnId: () => Record<string, Cell<TData, unknown>>;
|
|
17
|
-
|
|
18
|
+
getParentRow: () => Row<TData> | undefined;
|
|
19
|
+
getParentRows: () => Row<TData>[];
|
|
18
20
|
}
|
|
19
|
-
export declare const createRow: <TData extends unknown>(table: Table<TData>, id: string, original: TData, rowIndex: number, depth: number, subRows?: Row<TData>[] | undefined,
|
|
21
|
+
export declare const createRow: <TData extends unknown>(table: Table<TData>, id: string, original: TData, rowIndex: number, depth: number, subRows?: Row<TData>[] | undefined, parentId?: string) => Row<TData>;
|
package/build/lib/core/row.js
CHANGED
|
@@ -15,13 +15,13 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
15
15
|
var utils = require('../utils.js');
|
|
16
16
|
var cell = require('./cell.js');
|
|
17
17
|
|
|
18
|
-
const createRow = (table, id, original, rowIndex, depth, subRows,
|
|
18
|
+
const createRow = (table, id, original, rowIndex, depth, subRows, parentId) => {
|
|
19
19
|
let row = {
|
|
20
20
|
id,
|
|
21
21
|
index: rowIndex,
|
|
22
22
|
original,
|
|
23
23
|
depth,
|
|
24
|
-
|
|
24
|
+
parentId,
|
|
25
25
|
_valuesCache: {},
|
|
26
26
|
_uniqueValuesCache: {},
|
|
27
27
|
getValue: columnId => {
|
|
@@ -56,6 +56,18 @@ const createRow = (table, id, original, rowIndex, depth, subRows, parentRow) =>
|
|
|
56
56
|
},
|
|
57
57
|
subRows: subRows != null ? subRows : [],
|
|
58
58
|
getLeafRows: () => utils.flattenBy(row.subRows, d => d.subRows),
|
|
59
|
+
getParentRow: () => row.parentId ? table.getRow(row.parentId) : undefined,
|
|
60
|
+
getParentRows: () => {
|
|
61
|
+
let parentRows = [];
|
|
62
|
+
let currentRow = row;
|
|
63
|
+
while (true) {
|
|
64
|
+
const parentRow = currentRow.getParentRow();
|
|
65
|
+
if (!parentRow) break;
|
|
66
|
+
parentRows.push(parentRow);
|
|
67
|
+
currentRow = parentRow;
|
|
68
|
+
}
|
|
69
|
+
return parentRows.reverse();
|
|
70
|
+
},
|
|
59
71
|
getAllCells: utils.memo(() => [table.getAllLeafColumns()], leafColumns => {
|
|
60
72
|
return leafColumns.map(column => {
|
|
61
73
|
return cell.createCell(table, row, column, column.id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row.js","sources":["../../../src/core/row.ts"],"sourcesContent":["import { RowData, Cell, Row, Table } from '../types'\nimport { flattenBy, memo } from '../utils'\nimport { createCell } from './cell'\n\nexport interface CoreRow<TData extends RowData> {\n id: string\n index: number\n original: TData\n depth: number\n _valuesCache: Record<string, unknown>\n _uniqueValuesCache: Record<string, unknown>\n getValue: <TValue>(columnId: string) => TValue\n getUniqueValues: <TValue>(columnId: string) => TValue[]\n renderValue: <TValue>(columnId: string) => TValue\n subRows: Row<TData>[]\n getLeafRows: () => Row<TData>[]\n originalSubRows?: TData[]\n getAllCells: () => Cell<TData, unknown>[]\n _getAllCellsByColumnId: () => Record<string, Cell<TData, unknown>>\n
|
|
1
|
+
{"version":3,"file":"row.js","sources":["../../../src/core/row.ts"],"sourcesContent":["import { RowData, Cell, Row, Table } from '../types'\nimport { flattenBy, memo } from '../utils'\nimport { createCell } from './cell'\n\nexport interface CoreRow<TData extends RowData> {\n id: string\n index: number\n original: TData\n depth: number\n parentId?: string\n _valuesCache: Record<string, unknown>\n _uniqueValuesCache: Record<string, unknown>\n getValue: <TValue>(columnId: string) => TValue\n getUniqueValues: <TValue>(columnId: string) => TValue[]\n renderValue: <TValue>(columnId: string) => TValue\n subRows: Row<TData>[]\n getLeafRows: () => Row<TData>[]\n originalSubRows?: TData[]\n getAllCells: () => Cell<TData, unknown>[]\n _getAllCellsByColumnId: () => Record<string, Cell<TData, unknown>>\n getParentRow: () => Row<TData> | undefined\n getParentRows: () => Row<TData>[]\n}\n\nexport const createRow = <TData extends RowData>(\n table: Table<TData>,\n id: string,\n original: TData,\n rowIndex: number,\n depth: number,\n subRows?: Row<TData>[],\n parentId?: string\n): Row<TData> => {\n let row: CoreRow<TData> = {\n id,\n index: rowIndex,\n original,\n depth,\n parentId,\n _valuesCache: {},\n _uniqueValuesCache: {},\n getValue: columnId => {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId]\n }\n\n const column = table.getColumn(columnId)\n\n if (!column?.accessorFn) {\n return undefined\n }\n\n row._valuesCache[columnId] = column.accessorFn(\n row.original as TData,\n rowIndex\n )\n\n return row._valuesCache[columnId] as any\n },\n getUniqueValues: columnId => {\n if (row._uniqueValuesCache.hasOwnProperty(columnId)) {\n return row._uniqueValuesCache[columnId]\n }\n\n const column = table.getColumn(columnId)\n\n if (!column?.accessorFn) {\n return undefined\n }\n\n if (!column.columnDef.getUniqueValues) {\n row._uniqueValuesCache[columnId] = [row.getValue(columnId)]\n return row._uniqueValuesCache[columnId]\n }\n\n row._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(\n row.original as TData,\n rowIndex\n )\n\n return row._uniqueValuesCache[columnId] as any\n },\n renderValue: columnId =>\n row.getValue(columnId) ?? table.options.renderFallbackValue,\n subRows: subRows ?? [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getParentRow: () => (row.parentId ? table.getRow(row.parentId) : undefined),\n getParentRows: () => {\n let parentRows: Row<TData>[] = []\n let currentRow = row\n while (true) {\n const parentRow = currentRow.getParentRow()\n if (!parentRow) break\n parentRows.push(parentRow)\n currentRow = parentRow\n }\n return parentRows.reverse()\n },\n getAllCells: memo(\n () => [table.getAllLeafColumns()],\n leafColumns => {\n return leafColumns.map(column => {\n return createCell(table, row as Row<TData>, column, column.id)\n })\n },\n {\n key: process.env.NODE_ENV === 'development' && 'row.getAllCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n\n _getAllCellsByColumnId: memo(\n () => [row.getAllCells()],\n allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell\n return acc\n }, {} as Record<string, Cell<TData, unknown>>)\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getAllCellsByColumnId',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n }\n\n for (let i = 0; i < table._features.length; i++) {\n const feature = table._features[i]\n Object.assign(row, feature?.createRow?.(row, table))\n }\n\n return row as Row<TData>\n}\n"],"names":["createRow","table","id","original","rowIndex","depth","subRows","parentId","row","index","_valuesCache","_uniqueValuesCache","getValue","columnId","hasOwnProperty","column","getColumn","accessorFn","undefined","getUniqueValues","columnDef","renderValue","_row$getValue","options","renderFallbackValue","getLeafRows","flattenBy","d","getParentRow","getRow","getParentRows","parentRows","currentRow","parentRow","push","reverse","getAllCells","memo","getAllLeafColumns","leafColumns","map","createCell","key","process","env","NODE_ENV","debug","_table$options$debugA","debugAll","debugRows","_getAllCellsByColumnId","allCells","reduce","acc","cell","_table$options$debugA2","i","_features","length","feature","Object","assign"],"mappings":"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"}
|
|
@@ -214,12 +214,12 @@ const RowSelection = {
|
|
|
214
214
|
return isAllRowsSelected;
|
|
215
215
|
},
|
|
216
216
|
getIsAllPageRowsSelected: () => {
|
|
217
|
-
const paginationFlatRows = table.getPaginationRowModel().flatRows;
|
|
217
|
+
const paginationFlatRows = table.getPaginationRowModel().flatRows.filter(row => row.getCanSelect());
|
|
218
218
|
const {
|
|
219
219
|
rowSelection
|
|
220
220
|
} = table.getState();
|
|
221
221
|
let isAllPageRowsSelected = !!paginationFlatRows.length;
|
|
222
|
-
if (isAllPageRowsSelected && paginationFlatRows.some(row =>
|
|
222
|
+
if (isAllPageRowsSelected && paginationFlatRows.some(row => !rowSelection[row.id])) {
|
|
223
223
|
isAllPageRowsSelected = false;
|
|
224
224
|
}
|
|
225
225
|
return isAllPageRowsSelected;
|
|
@@ -231,7 +231,7 @@ const RowSelection = {
|
|
|
231
231
|
},
|
|
232
232
|
getIsSomePageRowsSelected: () => {
|
|
233
233
|
const paginationFlatRows = table.getPaginationRowModel().flatRows;
|
|
234
|
-
return table.getIsAllPageRowsSelected() ? false : paginationFlatRows.some(d => d.getIsSelected() || d.getIsSomeSelected());
|
|
234
|
+
return table.getIsAllPageRowsSelected() ? false : paginationFlatRows.filter(row => row.getCanSelect()).some(d => d.getIsSelected() || d.getIsSomeSelected());
|
|
235
235
|
},
|
|
236
236
|
getToggleAllRowsSelectedHandler: () => {
|
|
237
237
|
return e => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RowSelection.js","sources":["../../../src/features/RowSelection.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, Row, RowModel, Updater, RowData } from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport interface RowSelectionTableState {\n rowSelection: RowSelectionState\n}\n\nexport interface RowSelectionOptions<TData extends RowData> {\n enableRowSelection?: boolean | ((row: Row<TData>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TData>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TData>) => boolean)\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TData>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: unknown) => boolean\n // isInclusiveSelectEvent?: (e: unknown) => boolean\n // selectRowsFn?: (\n // table: Table<TData>,\n // rowModel: RowModel<TData>\n // ) => RowModel<TData>\n}\n\nexport interface RowSelectionRow {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getIsAllSubRowsSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n getCanSelectSubRows: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedHandler: () => (event: unknown) => void\n}\n\nexport interface RowSelectionInstance<TData extends RowData> {\n getToggleAllRowsSelectedHandler: () => (event: unknown) => void\n getToggleAllPageRowsSelectedHandler: () => (event: unknown) => void\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: (defaultState?: boolean) => void\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<TData>\n getSelectedRowModel: () => RowModel<TData>\n getFilteredSelectedRowModel: () => RowModel<TData>\n getGroupedSelectedRowModel: () => RowModel<TData>\n}\n\n//\n\nexport const RowSelection: TableFeature = {\n getInitialState: (state): RowSelectionTableState => {\n return {\n rowSelection: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): RowSelectionOptions<TData> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): RowSelectionInstance<TData> => {\n return {\n setRowSelection: updater => table.options.onRowSelectionChange?.(updater),\n resetRowSelection: defaultState =>\n table.setRowSelection(\n defaultState ? {} : table.initialState.rowSelection ?? {}\n ),\n toggleAllRowsSelected: value => {\n table.setRowSelection(old => {\n value =\n typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected()\n\n const rowSelection = { ...old }\n\n const preGroupedFlatRows = table.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 if (!row.getCanSelect()) {\n return\n }\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 table.setRowSelection(old => {\n const resolvedValue =\n typeof value !== 'undefined'\n ? value\n : !table.getIsAllPageRowsSelected()\n\n const rowSelection: RowSelectionState = { ...old }\n\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, table)\n })\n\n return rowSelection\n }),\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\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 // table.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 // table.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => table.getCoreRowModel(),\n getSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getCoreRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getFilteredRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getFilteredSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getGroupedSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getSortedRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getGroupedSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n\n // return table.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preGroupedFlatRows = table.getFilteredRowModel().flatRows\n const { rowSelection } = table.getState()\n\n let isAllRowsSelected = Boolean(\n preGroupedFlatRows.length && Object.keys(rowSelection).length\n )\n\n if (isAllRowsSelected) {\n if (\n preGroupedFlatRows.some(\n row => row.getCanSelect() && !rowSelection[row.id]\n )\n ) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n },\n\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows\n const { rowSelection } = table.getState()\n\n let isAllPageRowsSelected = !!paginationFlatRows.length\n\n if (\n isAllPageRowsSelected &&\n paginationFlatRows.some(\n row => row.getCanSelect() && !rowSelection[row.id]\n )\n ) {\n isAllPageRowsSelected = false\n }\n\n return isAllPageRowsSelected\n },\n\n getIsSomeRowsSelected: () => {\n const totalSelected = Object.keys(\n table.getState().rowSelection ?? {}\n ).length\n return (\n totalSelected > 0 &&\n totalSelected < table.getFilteredRowModel().flatRows.length\n )\n },\n\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows\n return table.getIsAllPageRowsSelected()\n ? false\n : paginationFlatRows.some(\n d => d.getIsSelected() || d.getIsSomeSelected()\n )\n },\n\n getToggleAllRowsSelectedHandler: () => {\n return (e: unknown) => {\n table.toggleAllRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n\n getToggleAllPageRowsSelectedHandler: () => {\n return (e: unknown) => {\n table.toggleAllPageRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): RowSelectionRow => {\n return {\n toggleSelected: value => {\n const isSelected = row.getIsSelected()\n\n table.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, row.id, value, table)\n\n return selectedRowIds\n })\n },\n getIsSelected: () => {\n const { rowSelection } = table.getState()\n return isRowSelected(row, rowSelection)\n },\n\n getIsSomeSelected: () => {\n const { rowSelection } = table.getState()\n return isSubRowSelected(row, rowSelection, table) === 'some'\n },\n\n getIsAllSubRowsSelected: () => {\n const { rowSelection } = table.getState()\n return isSubRowSelected(row, rowSelection, table) === 'all'\n },\n\n getCanSelect: () => {\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row)\n }\n\n return table.options.enableRowSelection ?? true\n },\n\n getCanSelectSubRows: () => {\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row)\n }\n\n return table.options.enableSubRowSelection ?? true\n },\n\n getCanMultiSelect: () => {\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row)\n }\n\n return table.options.enableMultiRowSelection ?? true\n },\n getToggleSelectedHandler: () => {\n const canSelect = row.getCanSelect()\n\n return (e: unknown) => {\n if (!canSelect) return\n row.toggleSelected(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n\nconst mutateRowIsSelected = <TData extends RowData>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n table: Table<TData>\n) => {\n const row = table.getRow(id)\n\n // const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key])\n }\n if (row.getCanSelect()) {\n selectedRowIds[id] = true\n }\n } else {\n delete selectedRowIds[id]\n }\n // }\n\n if (row.subRows?.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, table)\n )\n }\n}\n\nexport function selectRowsFn<TData extends RowData>(\n table: Table<TData>,\n rowModel: RowModel<TData>\n): RowModel<TData> {\n const rowSelection = table.getState().rowSelection\n\n const newSelectedFlatRows: Row<TData>[] = []\n const newSelectedRowsById: Record<string, Row<TData>> = {}\n\n // Filters top level and nested rows\n const recurseRows = (rows: Row<TData>[], depth = 0): Row<TData>[] => {\n return rows\n .map(row => {\n const isSelected = isRowSelected(row, rowSelection)\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<TData>[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<TData extends RowData>(\n row: Row<TData>,\n selection: Record<string, boolean>\n): boolean {\n return selection[row.id] ?? false\n}\n\nexport function isSubRowSelected<TData extends RowData>(\n row: Row<TData>,\n selection: Record<string, boolean>,\n table: Table<TData>\n): boolean | 'some' | 'all' {\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)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false\n }\n\n return false\n}\n"],"names":["RowSelection","getInitialState","state","rowSelection","getDefaultOptions","table","onRowSelectionChange","makeStateUpdater","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","createTable","setRowSelection","updater","options","resetRowSelection","defaultState","_table$initialState$r","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","getCanSelect","id","toggleAllPageRowsSelected","resolvedValue","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","getState","rowModel","Object","keys","length","rowsById","selectRowsFn","key","process","env","NODE_ENV","debug","_table$options$debugA","debugAll","debugTable","getFilteredSelectedRowModel","getFilteredRowModel","_table$options$debugA2","getGroupedSelectedRowModel","getSortedRowModel","_table$options$debugA3","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","_table$getState$rowSe","totalSelected","getIsSomePageRowsSelected","d","getIsSelected","getIsSomeSelected","getToggleAllRowsSelectedHandler","e","target","checked","getToggleAllPageRowsSelectedHandler","createRow","toggleSelected","isSelected","selectedRowIds","isRowSelected","isSubRowSelected","getIsAllSubRowsSelected","_table$options$enable","getCanSelectSubRows","_table$options$enable2","getCanMultiSelect","_table$options$enable3","getToggleSelectedHandler","canSelect","_target","_row$subRows","getRow","subRows","newSelectedFlatRows","newSelectedRowsById","recurseRows","depth","map","_row$subRows2","push","filter","selection","_selection$row$id","allChildrenSelected","someSelected","subRow"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RowSelection.js","sources":["../../../src/features/RowSelection.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, Row, RowModel, Updater, RowData } from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport interface RowSelectionTableState {\n rowSelection: RowSelectionState\n}\n\nexport interface RowSelectionOptions<TData extends RowData> {\n enableRowSelection?: boolean | ((row: Row<TData>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TData>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TData>) => boolean)\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TData>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: unknown) => boolean\n // isInclusiveSelectEvent?: (e: unknown) => boolean\n // selectRowsFn?: (\n // table: Table<TData>,\n // rowModel: RowModel<TData>\n // ) => RowModel<TData>\n}\n\nexport interface RowSelectionRow {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getIsAllSubRowsSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n getCanSelectSubRows: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedHandler: () => (event: unknown) => void\n}\n\nexport interface RowSelectionInstance<TData extends RowData> {\n getToggleAllRowsSelectedHandler: () => (event: unknown) => void\n getToggleAllPageRowsSelectedHandler: () => (event: unknown) => void\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: (defaultState?: boolean) => void\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<TData>\n getSelectedRowModel: () => RowModel<TData>\n getFilteredSelectedRowModel: () => RowModel<TData>\n getGroupedSelectedRowModel: () => RowModel<TData>\n}\n\n//\n\nexport const RowSelection: TableFeature = {\n getInitialState: (state): RowSelectionTableState => {\n return {\n rowSelection: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): RowSelectionOptions<TData> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): RowSelectionInstance<TData> => {\n return {\n setRowSelection: updater => table.options.onRowSelectionChange?.(updater),\n resetRowSelection: defaultState =>\n table.setRowSelection(\n defaultState ? {} : table.initialState.rowSelection ?? {}\n ),\n toggleAllRowsSelected: value => {\n table.setRowSelection(old => {\n value =\n typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected()\n\n const rowSelection = { ...old }\n\n const preGroupedFlatRows = table.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 if (!row.getCanSelect()) {\n return\n }\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 table.setRowSelection(old => {\n const resolvedValue =\n typeof value !== 'undefined'\n ? value\n : !table.getIsAllPageRowsSelected()\n\n const rowSelection: RowSelectionState = { ...old }\n\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, table)\n })\n\n return rowSelection\n }),\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\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 // table.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 // table.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => table.getCoreRowModel(),\n getSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getCoreRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getFilteredRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getFilteredSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n getGroupedSelectedRowModel: memo(\n () => [table.getState().rowSelection, table.getSortedRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(table, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getGroupedSelectedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n ),\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n\n // return table.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preGroupedFlatRows = table.getFilteredRowModel().flatRows\n const { rowSelection } = table.getState()\n\n let isAllRowsSelected = Boolean(\n preGroupedFlatRows.length && Object.keys(rowSelection).length\n )\n\n if (isAllRowsSelected) {\n if (\n preGroupedFlatRows.some(\n row => row.getCanSelect() && !rowSelection[row.id]\n )\n ) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n },\n\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows.filter(row => row.getCanSelect())\n const { rowSelection } = table.getState()\n\n let isAllPageRowsSelected = !!paginationFlatRows.length\n\n if (\n isAllPageRowsSelected &&\n paginationFlatRows.some(\n row => !rowSelection[row.id]\n )\n ) {\n isAllPageRowsSelected = false\n }\n\n return isAllPageRowsSelected\n },\n\n getIsSomeRowsSelected: () => {\n const totalSelected = Object.keys(\n table.getState().rowSelection ?? {}\n ).length\n return (\n totalSelected > 0 &&\n totalSelected < table.getFilteredRowModel().flatRows.length\n )\n },\n\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows\n return table.getIsAllPageRowsSelected()\n ? false\n : paginationFlatRows.filter(row => row.getCanSelect()).some(\n d => d.getIsSelected() || d.getIsSomeSelected()\n )\n },\n\n getToggleAllRowsSelectedHandler: () => {\n return (e: unknown) => {\n table.toggleAllRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n\n getToggleAllPageRowsSelectedHandler: () => {\n return (e: unknown) => {\n table.toggleAllPageRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): RowSelectionRow => {\n return {\n toggleSelected: value => {\n const isSelected = row.getIsSelected()\n\n table.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, row.id, value, table)\n\n return selectedRowIds\n })\n },\n getIsSelected: () => {\n const { rowSelection } = table.getState()\n return isRowSelected(row, rowSelection)\n },\n\n getIsSomeSelected: () => {\n const { rowSelection } = table.getState()\n return isSubRowSelected(row, rowSelection, table) === 'some'\n },\n\n getIsAllSubRowsSelected: () => {\n const { rowSelection } = table.getState()\n return isSubRowSelected(row, rowSelection, table) === 'all'\n },\n\n getCanSelect: () => {\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row)\n }\n\n return table.options.enableRowSelection ?? true\n },\n\n getCanSelectSubRows: () => {\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row)\n }\n\n return table.options.enableSubRowSelection ?? true\n },\n\n getCanMultiSelect: () => {\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row)\n }\n\n return table.options.enableMultiRowSelection ?? true\n },\n getToggleSelectedHandler: () => {\n const canSelect = row.getCanSelect()\n\n return (e: unknown) => {\n if (!canSelect) return\n row.toggleSelected(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n\nconst mutateRowIsSelected = <TData extends RowData>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n table: Table<TData>\n) => {\n const row = table.getRow(id)\n\n // const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key])\n }\n if (row.getCanSelect()) {\n selectedRowIds[id] = true\n }\n } else {\n delete selectedRowIds[id]\n }\n // }\n\n if (row.subRows?.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, table)\n )\n }\n}\n\nexport function selectRowsFn<TData extends RowData>(\n table: Table<TData>,\n rowModel: RowModel<TData>\n): RowModel<TData> {\n const rowSelection = table.getState().rowSelection\n\n const newSelectedFlatRows: Row<TData>[] = []\n const newSelectedRowsById: Record<string, Row<TData>> = {}\n\n // Filters top level and nested rows\n const recurseRows = (rows: Row<TData>[], depth = 0): Row<TData>[] => {\n return rows\n .map(row => {\n const isSelected = isRowSelected(row, rowSelection)\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<TData>[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<TData extends RowData>(\n row: Row<TData>,\n selection: Record<string, boolean>\n): boolean {\n return selection[row.id] ?? false\n}\n\nexport function isSubRowSelected<TData extends RowData>(\n row: Row<TData>,\n selection: Record<string, boolean>,\n table: Table<TData>\n): boolean | 'some' | 'all' {\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)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false\n }\n\n return false\n}\n"],"names":["RowSelection","getInitialState","state","rowSelection","getDefaultOptions","table","onRowSelectionChange","makeStateUpdater","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","createTable","setRowSelection","updater","options","resetRowSelection","defaultState","_table$initialState$r","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","getCanSelect","id","toggleAllPageRowsSelected","resolvedValue","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","getState","rowModel","Object","keys","length","rowsById","selectRowsFn","key","process","env","NODE_ENV","debug","_table$options$debugA","debugAll","debugTable","getFilteredSelectedRowModel","getFilteredRowModel","_table$options$debugA2","getGroupedSelectedRowModel","getSortedRowModel","_table$options$debugA3","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","filter","isAllPageRowsSelected","getIsSomeRowsSelected","_table$getState$rowSe","totalSelected","getIsSomePageRowsSelected","d","getIsSelected","getIsSomeSelected","getToggleAllRowsSelectedHandler","e","target","checked","getToggleAllPageRowsSelectedHandler","createRow","toggleSelected","isSelected","selectedRowIds","isRowSelected","isSubRowSelected","getIsAllSubRowsSelected","_table$options$enable","getCanSelectSubRows","_table$options$enable2","getCanMultiSelect","_table$options$enable3","getToggleSelectedHandler","canSelect","_target","_row$subRows","getRow","subRows","newSelectedFlatRows","newSelectedRowsById","recurseRows","depth","map","_row$subRows2","push","selection","_selection$row$id","allChildrenSelected","someSelected","subRow"],"mappings":"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"}
|
package/build/lib/index.esm.js
CHANGED
|
@@ -1995,12 +1995,12 @@ const RowSelection = {
|
|
|
1995
1995
|
return isAllRowsSelected;
|
|
1996
1996
|
},
|
|
1997
1997
|
getIsAllPageRowsSelected: () => {
|
|
1998
|
-
const paginationFlatRows = table.getPaginationRowModel().flatRows;
|
|
1998
|
+
const paginationFlatRows = table.getPaginationRowModel().flatRows.filter(row => row.getCanSelect());
|
|
1999
1999
|
const {
|
|
2000
2000
|
rowSelection
|
|
2001
2001
|
} = table.getState();
|
|
2002
2002
|
let isAllPageRowsSelected = !!paginationFlatRows.length;
|
|
2003
|
-
if (isAllPageRowsSelected && paginationFlatRows.some(row =>
|
|
2003
|
+
if (isAllPageRowsSelected && paginationFlatRows.some(row => !rowSelection[row.id])) {
|
|
2004
2004
|
isAllPageRowsSelected = false;
|
|
2005
2005
|
}
|
|
2006
2006
|
return isAllPageRowsSelected;
|
|
@@ -2012,7 +2012,7 @@ const RowSelection = {
|
|
|
2012
2012
|
},
|
|
2013
2013
|
getIsSomePageRowsSelected: () => {
|
|
2014
2014
|
const paginationFlatRows = table.getPaginationRowModel().flatRows;
|
|
2015
|
-
return table.getIsAllPageRowsSelected() ? false : paginationFlatRows.some(d => d.getIsSelected() || d.getIsSomeSelected());
|
|
2015
|
+
return table.getIsAllPageRowsSelected() ? false : paginationFlatRows.filter(row => row.getCanSelect()).some(d => d.getIsSelected() || d.getIsSomeSelected());
|
|
2016
2016
|
},
|
|
2017
2017
|
getToggleAllRowsSelectedHandler: () => {
|
|
2018
2018
|
return e => {
|
|
@@ -2819,13 +2819,13 @@ function createCell(table, row, column, columnId) {
|
|
|
2819
2819
|
return cell;
|
|
2820
2820
|
}
|
|
2821
2821
|
|
|
2822
|
-
const createRow = (table, id, original, rowIndex, depth, subRows,
|
|
2822
|
+
const createRow = (table, id, original, rowIndex, depth, subRows, parentId) => {
|
|
2823
2823
|
let row = {
|
|
2824
2824
|
id,
|
|
2825
2825
|
index: rowIndex,
|
|
2826
2826
|
original,
|
|
2827
2827
|
depth,
|
|
2828
|
-
|
|
2828
|
+
parentId,
|
|
2829
2829
|
_valuesCache: {},
|
|
2830
2830
|
_uniqueValuesCache: {},
|
|
2831
2831
|
getValue: columnId => {
|
|
@@ -2860,6 +2860,18 @@ const createRow = (table, id, original, rowIndex, depth, subRows, parentRow) =>
|
|
|
2860
2860
|
},
|
|
2861
2861
|
subRows: subRows != null ? subRows : [],
|
|
2862
2862
|
getLeafRows: () => flattenBy(row.subRows, d => d.subRows),
|
|
2863
|
+
getParentRow: () => row.parentId ? table.getRow(row.parentId) : undefined,
|
|
2864
|
+
getParentRows: () => {
|
|
2865
|
+
let parentRows = [];
|
|
2866
|
+
let currentRow = row;
|
|
2867
|
+
while (true) {
|
|
2868
|
+
const parentRow = currentRow.getParentRow();
|
|
2869
|
+
if (!parentRow) break;
|
|
2870
|
+
parentRows.push(parentRow);
|
|
2871
|
+
currentRow = parentRow;
|
|
2872
|
+
}
|
|
2873
|
+
return parentRows.reverse();
|
|
2874
|
+
},
|
|
2863
2875
|
getAllCells: memo(() => [table.getAllLeafColumns()], leafColumns => {
|
|
2864
2876
|
return leafColumns.map(column => {
|
|
2865
2877
|
return createCell(table, row, column, column.id);
|
|
@@ -2969,7 +2981,7 @@ function getCoreRowModel() {
|
|
|
2969
2981
|
// }
|
|
2970
2982
|
|
|
2971
2983
|
// Make the row
|
|
2972
|
-
const row = createRow(table, table._getRowId(originalRows[i], i, parentRow), originalRows[i], i, depth, undefined, parentRow);
|
|
2984
|
+
const row = createRow(table, table._getRowId(originalRows[i], i, parentRow), originalRows[i], i, depth, undefined, parentRow == null ? void 0 : parentRow.id);
|
|
2973
2985
|
|
|
2974
2986
|
// Keep track of every row in a flat array
|
|
2975
2987
|
rowModel.flatRows.push(row);
|
|
@@ -3016,7 +3028,7 @@ function filterRowModelFromLeafs(rowsToFilter, filterRow, table) {
|
|
|
3016
3028
|
const newFilteredFlatRows = [];
|
|
3017
3029
|
const newFilteredRowsById = {};
|
|
3018
3030
|
const maxDepth = (_table$options$maxLea = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea : 100;
|
|
3019
|
-
const recurseFilterRows = function (rowsToFilter, depth
|
|
3031
|
+
const recurseFilterRows = function (rowsToFilter, depth) {
|
|
3020
3032
|
if (depth === void 0) {
|
|
3021
3033
|
depth = 0;
|
|
3022
3034
|
}
|
|
@@ -3026,10 +3038,10 @@ function filterRowModelFromLeafs(rowsToFilter, filterRow, table) {
|
|
|
3026
3038
|
for (let i = 0; i < rowsToFilter.length; i++) {
|
|
3027
3039
|
var _row$subRows;
|
|
3028
3040
|
let row = rowsToFilter[i];
|
|
3029
|
-
const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined,
|
|
3041
|
+
const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);
|
|
3030
3042
|
newRow.columnFilters = row.columnFilters;
|
|
3031
3043
|
if ((_row$subRows = row.subRows) != null && _row$subRows.length && depth < maxDepth) {
|
|
3032
|
-
newRow.subRows = recurseFilterRows(row.subRows, depth + 1
|
|
3044
|
+
newRow.subRows = recurseFilterRows(row.subRows, depth + 1);
|
|
3033
3045
|
row = newRow;
|
|
3034
3046
|
if (filterRow(row) && !newRow.subRows.length) {
|
|
3035
3047
|
rows.push(row);
|
|
@@ -3067,7 +3079,7 @@ function filterRowModelFromRoot(rowsToFilter, filterRow, table) {
|
|
|
3067
3079
|
const maxDepth = (_table$options$maxLea2 = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea2 : 100;
|
|
3068
3080
|
|
|
3069
3081
|
// Filters top level and nested rows
|
|
3070
|
-
const recurseFilterRows = function (rowsToFilter, depth
|
|
3082
|
+
const recurseFilterRows = function (rowsToFilter, depth) {
|
|
3071
3083
|
if (depth === void 0) {
|
|
3072
3084
|
depth = 0;
|
|
3073
3085
|
}
|
|
@@ -3082,8 +3094,8 @@ function filterRowModelFromRoot(rowsToFilter, filterRow, table) {
|
|
|
3082
3094
|
if (pass) {
|
|
3083
3095
|
var _row$subRows2;
|
|
3084
3096
|
if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length && depth < maxDepth) {
|
|
3085
|
-
const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined,
|
|
3086
|
-
newRow.subRows = recurseFilterRows(row.subRows, depth + 1
|
|
3097
|
+
const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);
|
|
3098
|
+
newRow.subRows = recurseFilterRows(row.subRows, depth + 1);
|
|
3087
3099
|
row = newRow;
|
|
3088
3100
|
}
|
|
3089
3101
|
rows.push(row);
|
|
@@ -3394,7 +3406,7 @@ function getGroupedRowModel() {
|
|
|
3394
3406
|
// const nonGroupedRowsById: Record<RowId, Row> = {};
|
|
3395
3407
|
|
|
3396
3408
|
// Recursively group the data
|
|
3397
|
-
const groupUpRecursively = function (rows, depth,
|
|
3409
|
+
const groupUpRecursively = function (rows, depth, parentId) {
|
|
3398
3410
|
if (depth === void 0) {
|
|
3399
3411
|
depth = 0;
|
|
3400
3412
|
}
|
|
@@ -3406,7 +3418,7 @@ function getGroupedRowModel() {
|
|
|
3406
3418
|
groupedFlatRows.push(row);
|
|
3407
3419
|
groupedRowsById[row.id] = row;
|
|
3408
3420
|
if (row.subRows) {
|
|
3409
|
-
row.subRows = groupUpRecursively(row.subRows, depth + 1, row);
|
|
3421
|
+
row.subRows = groupUpRecursively(row.subRows, depth + 1, row.id);
|
|
3410
3422
|
}
|
|
3411
3423
|
return row;
|
|
3412
3424
|
});
|
|
@@ -3423,11 +3435,11 @@ function getGroupedRowModel() {
|
|
|
3423
3435
|
id = parentId ? `${parentId}>${id}` : id;
|
|
3424
3436
|
|
|
3425
3437
|
// First, Recurse to group sub rows before aggregation
|
|
3426
|
-
const subRows = groupUpRecursively(groupedRows, depth + 1,
|
|
3438
|
+
const subRows = groupUpRecursively(groupedRows, depth + 1, id);
|
|
3427
3439
|
|
|
3428
3440
|
// Flatten the leaf rows of the rows in this group
|
|
3429
3441
|
const leafRows = depth ? flattenBy(groupedRows, row => row.subRows) : groupedRows;
|
|
3430
|
-
const row = createRow(table, id, leafRows[0].original, index, depth, undefined,
|
|
3442
|
+
const row = createRow(table, id, leafRows[0].original, index, depth, undefined, parentId);
|
|
3431
3443
|
Object.assign(row, {
|
|
3432
3444
|
groupingColumnId: columnId,
|
|
3433
3445
|
groupingValue,
|
|
@@ -3474,7 +3486,7 @@ function getGroupedRowModel() {
|
|
|
3474
3486
|
});
|
|
3475
3487
|
return aggregatedGroupedRows;
|
|
3476
3488
|
};
|
|
3477
|
-
const groupedRows = groupUpRecursively(rowModel.rows, 0
|
|
3489
|
+
const groupedRows = groupUpRecursively(rowModel.rows, 0);
|
|
3478
3490
|
groupedRows.forEach(subRow => {
|
|
3479
3491
|
groupedFlatRows.push(subRow);
|
|
3480
3492
|
groupedRowsById[subRow.id] = subRow;
|