@tanstack/table-core 8.7.9 → 8.8.0
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/aggregationFns.js.map +1 -1
- package/build/lib/columnHelper.js.map +1 -1
- package/build/lib/core/cell.js.map +1 -1
- package/build/lib/core/column.js.map +1 -1
- package/build/lib/core/headers.js.map +1 -1
- package/build/lib/core/row.d.ts +2 -1
- package/build/lib/core/row.js +2 -1
- package/build/lib/core/row.js.map +1 -1
- package/build/lib/core/table.js.map +1 -1
- package/build/lib/features/ColumnSizing.js.map +1 -1
- package/build/lib/features/Expanding.js.map +1 -1
- package/build/lib/features/Filters.js.map +1 -1
- package/build/lib/features/Grouping.js.map +1 -1
- package/build/lib/features/Ordering.js.map +1 -1
- package/build/lib/features/Pagination.js.map +1 -1
- package/build/lib/features/Pinning.js.map +1 -1
- package/build/lib/features/RowSelection.js.map +1 -1
- package/build/lib/features/Sorting.js.map +1 -1
- package/build/lib/features/Visibility.js.map +1 -1
- package/build/lib/filterFns.js.map +1 -1
- package/build/lib/index.esm.js +15 -14
- package/build/lib/index.esm.js.map +1 -1
- package/build/lib/index.mjs +15 -14
- package/build/lib/index.mjs.map +1 -1
- package/build/lib/sortingFns.js.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 +2 -2
- package/build/lib/utils/getCoreRowModel.js.map +1 -1
- package/build/lib/utils/getExpandedRowModel.js.map +1 -1
- package/build/lib/utils/getFacetedMinMaxValues.js.map +1 -1
- package/build/lib/utils/getFacetedRowModel.js.map +1 -1
- package/build/lib/utils/getFacetedUniqueValues.js.map +1 -1
- package/build/lib/utils/getFilteredRowModel.js.map +1 -1
- package/build/lib/utils/getGroupedRowModel.js +5 -5
- package/build/lib/utils/getGroupedRowModel.js.map +1 -1
- package/build/lib/utils/getPaginationRowModel.js.map +1 -1
- package/build/lib/utils/getSortedRowModel.js.map +1 -1
- package/build/lib/utils.js.map +1 -1
- package/build/umd/index.development.js +15 -14
- 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 +4 -1
- package/src/utils/filterRowsUtils.ts +18 -6
- package/src/utils/getCoreRowModel.ts +5 -3
- package/src/utils/getGroupedRowModel.ts +12 -4
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/table-core",
|
|
3
3
|
"author": "Tanner Linsley",
|
|
4
|
-
"version": "8.
|
|
4
|
+
"version": "8.8.0",
|
|
5
5
|
"description": "Headless UI for building powerful tables & datagrids for TS/JS.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"homepage": "https://github.com/tanstack/table#readme",
|
package/src/core/row.ts
CHANGED
|
@@ -17,6 +17,7 @@ export interface CoreRow<TData extends RowData> {
|
|
|
17
17
|
originalSubRows?: TData[]
|
|
18
18
|
getAllCells: () => Cell<TData, unknown>[]
|
|
19
19
|
_getAllCellsByColumnId: () => Record<string, Cell<TData, unknown>>
|
|
20
|
+
parentRow?: Row<TData>
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
export const createRow = <TData extends RowData>(
|
|
@@ -25,13 +26,15 @@ export const createRow = <TData extends RowData>(
|
|
|
25
26
|
original: TData,
|
|
26
27
|
rowIndex: number,
|
|
27
28
|
depth: number,
|
|
28
|
-
subRows?: Row<TData>[]
|
|
29
|
+
subRows?: Row<TData>[],
|
|
30
|
+
parentRow?: Row<TData>
|
|
29
31
|
): Row<TData> => {
|
|
30
32
|
let row: CoreRow<TData> = {
|
|
31
33
|
id,
|
|
32
34
|
index: rowIndex,
|
|
33
35
|
original,
|
|
34
36
|
depth,
|
|
37
|
+
parentRow,
|
|
35
38
|
_valuesCache: {},
|
|
36
39
|
_uniqueValuesCache: {},
|
|
37
40
|
getValue: columnId => {
|
|
@@ -22,7 +22,11 @@ export function filterRowModelFromLeafs<TData extends RowData>(
|
|
|
22
22
|
const newFilteredRowsById: Record<string, Row<TData>> = {}
|
|
23
23
|
const maxDepth = table.options.maxLeafRowFilterDepth ?? 100
|
|
24
24
|
|
|
25
|
-
const recurseFilterRows = (
|
|
25
|
+
const recurseFilterRows = (
|
|
26
|
+
rowsToFilter: Row<TData>[],
|
|
27
|
+
depth = 0,
|
|
28
|
+
parentRow?: Row<TData>
|
|
29
|
+
) => {
|
|
26
30
|
const rows: Row<TData>[] = []
|
|
27
31
|
|
|
28
32
|
// Filter from children up first
|
|
@@ -34,12 +38,14 @@ export function filterRowModelFromLeafs<TData extends RowData>(
|
|
|
34
38
|
row.id,
|
|
35
39
|
row.original,
|
|
36
40
|
row.index,
|
|
37
|
-
row.depth
|
|
41
|
+
row.depth,
|
|
42
|
+
undefined,
|
|
43
|
+
parentRow
|
|
38
44
|
)
|
|
39
45
|
newRow.columnFilters = row.columnFilters
|
|
40
46
|
|
|
41
47
|
if (row.subRows?.length && depth < maxDepth) {
|
|
42
|
-
newRow.subRows = recurseFilterRows(row.subRows, depth + 1)
|
|
48
|
+
newRow.subRows = recurseFilterRows(row.subRows, depth + 1, newRow)
|
|
43
49
|
row = newRow
|
|
44
50
|
|
|
45
51
|
if (filterRow(row) && !newRow.subRows.length) {
|
|
@@ -85,7 +91,11 @@ export function filterRowModelFromRoot<TData extends RowData>(
|
|
|
85
91
|
const maxDepth = table.options.maxLeafRowFilterDepth ?? 100
|
|
86
92
|
|
|
87
93
|
// Filters top level and nested rows
|
|
88
|
-
const recurseFilterRows = (
|
|
94
|
+
const recurseFilterRows = (
|
|
95
|
+
rowsToFilter: Row<TData>[],
|
|
96
|
+
depth = 0,
|
|
97
|
+
parentRow?: Row<TData>
|
|
98
|
+
) => {
|
|
89
99
|
// Filter from parents downward first
|
|
90
100
|
|
|
91
101
|
const rows: Row<TData>[] = []
|
|
@@ -103,9 +113,11 @@ export function filterRowModelFromRoot<TData extends RowData>(
|
|
|
103
113
|
row.id,
|
|
104
114
|
row.original,
|
|
105
115
|
row.index,
|
|
106
|
-
row.depth
|
|
116
|
+
row.depth,
|
|
117
|
+
undefined,
|
|
118
|
+
parentRow
|
|
107
119
|
)
|
|
108
|
-
newRow.subRows = recurseFilterRows(row.subRows, depth + 1)
|
|
120
|
+
newRow.subRows = recurseFilterRows(row.subRows, depth + 1, newRow)
|
|
109
121
|
row = newRow
|
|
110
122
|
}
|
|
111
123
|
|
|
@@ -24,7 +24,7 @@ export function getCoreRowModel<TData extends RowData>(): (
|
|
|
24
24
|
const accessRows = (
|
|
25
25
|
originalRows: TData[],
|
|
26
26
|
depth = 0,
|
|
27
|
-
|
|
27
|
+
parentRow?: Row<TData>
|
|
28
28
|
): Row<TData>[] => {
|
|
29
29
|
const rows = [] as Row<TData>[]
|
|
30
30
|
|
|
@@ -39,10 +39,12 @@ export function getCoreRowModel<TData extends RowData>(): (
|
|
|
39
39
|
// Make the row
|
|
40
40
|
const row = createRow(
|
|
41
41
|
table,
|
|
42
|
-
table._getRowId(originalRows[i]!, i,
|
|
42
|
+
table._getRowId(originalRows[i]!, i, parentRow),
|
|
43
43
|
originalRows[i]!,
|
|
44
44
|
i,
|
|
45
|
-
depth
|
|
45
|
+
depth,
|
|
46
|
+
undefined,
|
|
47
|
+
parentRow
|
|
46
48
|
)
|
|
47
49
|
|
|
48
50
|
// Keep track of every row in a flat array
|
|
@@ -29,6 +29,7 @@ export function getGroupedRowModel<TData extends RowData>(): (
|
|
|
29
29
|
const groupUpRecursively = (
|
|
30
30
|
rows: Row<TData>[],
|
|
31
31
|
depth = 0,
|
|
32
|
+
parentRow?: Row<TData>,
|
|
32
33
|
parentId?: string
|
|
33
34
|
) => {
|
|
34
35
|
// Grouping depth has been been met
|
|
@@ -41,7 +42,7 @@ export function getGroupedRowModel<TData extends RowData>(): (
|
|
|
41
42
|
groupedRowsById[row.id] = row
|
|
42
43
|
|
|
43
44
|
if (row.subRows) {
|
|
44
|
-
row.subRows = groupUpRecursively(row.subRows, depth + 1)
|
|
45
|
+
row.subRows = groupUpRecursively(row.subRows, depth + 1, row)
|
|
45
46
|
}
|
|
46
47
|
|
|
47
48
|
return row
|
|
@@ -60,7 +61,12 @@ export function getGroupedRowModel<TData extends RowData>(): (
|
|
|
60
61
|
id = parentId ? `${parentId}>${id}` : id
|
|
61
62
|
|
|
62
63
|
// First, Recurse to group sub rows before aggregation
|
|
63
|
-
const subRows = groupUpRecursively(
|
|
64
|
+
const subRows = groupUpRecursively(
|
|
65
|
+
groupedRows,
|
|
66
|
+
depth + 1,
|
|
67
|
+
parentRow,
|
|
68
|
+
id
|
|
69
|
+
)
|
|
64
70
|
|
|
65
71
|
// Flatten the leaf rows of the rows in this group
|
|
66
72
|
const leafRows = depth
|
|
@@ -72,7 +78,9 @@ export function getGroupedRowModel<TData extends RowData>(): (
|
|
|
72
78
|
id,
|
|
73
79
|
leafRows[0]!.original,
|
|
74
80
|
index,
|
|
75
|
-
depth
|
|
81
|
+
depth,
|
|
82
|
+
undefined,
|
|
83
|
+
parentRow
|
|
76
84
|
)
|
|
77
85
|
|
|
78
86
|
Object.assign(row, {
|
|
@@ -134,7 +142,7 @@ export function getGroupedRowModel<TData extends RowData>(): (
|
|
|
134
142
|
return aggregatedGroupedRows
|
|
135
143
|
}
|
|
136
144
|
|
|
137
|
-
const groupedRows = groupUpRecursively(rowModel.rows, 0, '')
|
|
145
|
+
const groupedRows = groupUpRecursively(rowModel.rows, 0, undefined, '')
|
|
138
146
|
|
|
139
147
|
groupedRows.forEach(subRow => {
|
|
140
148
|
groupedFlatRows.push(subRow)
|