@tanstack/table-core 8.1.2 → 8.2.1
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/aggregationFns.js.map +1 -1
- package/build/cjs/core/cell.js.map +1 -1
- package/build/cjs/core/column.js.map +1 -1
- package/build/cjs/core/headers.js.map +1 -1
- package/build/cjs/core/row.js.map +1 -1
- package/build/cjs/core/table.js +2 -2
- package/build/cjs/core/table.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pinning.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/filterFns.js.map +1 -1
- package/build/cjs/utils/getCoreRowModel.js.map +1 -1
- package/build/cjs/utils/getFacetedMinMaxValues.js +1 -3
- package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -1
- package/build/cjs/utils/getGroupedRowModel.js +1 -1
- package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
- package/build/cjs/utils.js +2 -2
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +6 -8
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +308 -308
- package/build/types/index.d.ts +94 -91
- package/build/umd/index.development.js +6 -8
- 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/aggregationFns.ts +8 -11
- package/src/core/cell.ts +14 -14
- package/src/core/column.ts +58 -47
- package/src/core/headers.ts +32 -32
- package/src/core/row.ts +9 -9
- package/src/core/table.ts +11 -10
- package/src/features/ColumnSizing.ts +5 -5
- package/src/features/Filters.ts +9 -14
- package/src/features/Grouping.ts +15 -10
- package/src/features/Ordering.ts +4 -2
- package/src/features/Pinning.ts +10 -10
- package/src/features/Sorting.ts +2 -2
- package/src/features/Visibility.ts +11 -11
- package/src/filterFns.ts +13 -7
- package/src/types.ts +16 -12
- package/src/utils/getCoreRowModel.ts +1 -1
- package/src/utils/getFacetedMinMaxValues.ts +1 -1
- package/src/utils/getGroupedRowModel.ts +7 -1
- package/src/utils.ts +6 -3
package/src/features/Filters.ts
CHANGED
|
@@ -9,14 +9,9 @@ import {
|
|
|
9
9
|
Row,
|
|
10
10
|
Updater,
|
|
11
11
|
RowData,
|
|
12
|
+
FilterMeta,
|
|
12
13
|
} from '../types'
|
|
13
|
-
import {
|
|
14
|
-
functionalUpdate,
|
|
15
|
-
isFunction,
|
|
16
|
-
makeStateUpdater,
|
|
17
|
-
memo,
|
|
18
|
-
Overwrite,
|
|
19
|
-
} from '../utils'
|
|
14
|
+
import { functionalUpdate, isFunction, makeStateUpdater } from '../utils'
|
|
20
15
|
|
|
21
16
|
export type FiltersTableState = {
|
|
22
17
|
columnFilters: ColumnFiltersState
|
|
@@ -41,7 +36,7 @@ export type FilterFn<TData extends RowData> = {
|
|
|
41
36
|
row: Row<TData>,
|
|
42
37
|
columnId: string,
|
|
43
38
|
filterValue: any,
|
|
44
|
-
addMeta: (meta:
|
|
39
|
+
addMeta: (meta: FilterMeta) => void
|
|
45
40
|
): boolean
|
|
46
41
|
|
|
47
42
|
resolveFilterValue?: TransformFilterValueFn<TData>
|
|
@@ -50,12 +45,12 @@ export type FilterFn<TData extends RowData> = {
|
|
|
50
45
|
|
|
51
46
|
export type TransformFilterValueFn<TData extends RowData> = (
|
|
52
47
|
value: any,
|
|
53
|
-
column?: Column<TData>
|
|
48
|
+
column?: Column<TData, unknown>
|
|
54
49
|
) => unknown
|
|
55
50
|
|
|
56
51
|
export type ColumnFilterAutoRemoveTestFn<TData extends RowData> = (
|
|
57
52
|
value: any,
|
|
58
|
-
column?: Column<TData>
|
|
53
|
+
column?: Column<TData, unknown>
|
|
59
54
|
) => boolean
|
|
60
55
|
|
|
61
56
|
export type CustomFilterFns<TData extends RowData> = Record<
|
|
@@ -93,7 +88,7 @@ export type FiltersColumn<TData extends RowData> = {
|
|
|
93
88
|
|
|
94
89
|
export type FiltersRow<TData extends RowData> = {
|
|
95
90
|
columnFilters: Record<string, boolean>
|
|
96
|
-
columnFiltersMeta: Record<string,
|
|
91
|
+
columnFiltersMeta: Record<string, FilterMeta>
|
|
97
92
|
}
|
|
98
93
|
|
|
99
94
|
export type FiltersOptions<TData extends RowData> = {
|
|
@@ -110,7 +105,7 @@ export type FiltersOptions<TData extends RowData> = {
|
|
|
110
105
|
globalFilterFn?: FilterFnOption<TData>
|
|
111
106
|
onGlobalFilterChange?: OnChangeFn<any>
|
|
112
107
|
enableGlobalFilter?: boolean
|
|
113
|
-
getColumnCanGlobalFilter?: (column: Column<TData>) => boolean
|
|
108
|
+
getColumnCanGlobalFilter?: (column: Column<TData, unknown>) => boolean
|
|
114
109
|
|
|
115
110
|
// Faceting
|
|
116
111
|
getFacetedRowModel?: (
|
|
@@ -189,7 +184,7 @@ export const Filters: TableFeature = {
|
|
|
189
184
|
},
|
|
190
185
|
|
|
191
186
|
createColumn: <TData extends RowData>(
|
|
192
|
-
column: Column<TData>,
|
|
187
|
+
column: Column<TData, unknown>,
|
|
193
188
|
table: Table<TData>
|
|
194
189
|
): FiltersColumn<TData> => {
|
|
195
190
|
return {
|
|
@@ -451,7 +446,7 @@ export const Filters: TableFeature = {
|
|
|
451
446
|
export function shouldAutoRemoveFilter<TData extends RowData>(
|
|
452
447
|
filterFn?: FilterFn<TData>,
|
|
453
448
|
value?: any,
|
|
454
|
-
column?: Column<TData>
|
|
449
|
+
column?: Column<TData, unknown>
|
|
455
450
|
) {
|
|
456
451
|
return (
|
|
457
452
|
(filterFn && filterFn.autoRemove
|
package/src/features/Grouping.ts
CHANGED
|
@@ -33,9 +33,11 @@ export type AggregationFnOption<TData extends RowData> =
|
|
|
33
33
|
| BuiltInAggregationFn
|
|
34
34
|
| AggregationFn<TData>
|
|
35
35
|
|
|
36
|
-
export type GroupingColumnDef<TData extends RowData> = {
|
|
36
|
+
export type GroupingColumnDef<TData extends RowData, TValue> = {
|
|
37
37
|
aggregationFn?: AggregationFnOption<TData>
|
|
38
|
-
aggregatedCell?: ColumnDefTemplate<
|
|
38
|
+
aggregatedCell?: ColumnDefTemplate<
|
|
39
|
+
ReturnType<Cell<TData, TValue>['getContext']>
|
|
40
|
+
>
|
|
39
41
|
enableGrouping?: boolean
|
|
40
42
|
}
|
|
41
43
|
|
|
@@ -51,7 +53,7 @@ export type GroupingColumn<TData extends RowData> = {
|
|
|
51
53
|
|
|
52
54
|
export type GroupingRow = {
|
|
53
55
|
groupingColumnId?: string
|
|
54
|
-
groupingValue?:
|
|
56
|
+
groupingValue?: unknown
|
|
55
57
|
getIsGrouped: () => boolean
|
|
56
58
|
_groupingValuesCache: Record<string, any>
|
|
57
59
|
}
|
|
@@ -89,7 +91,10 @@ export type GroupingInstance<TData extends RowData> = {
|
|
|
89
91
|
//
|
|
90
92
|
|
|
91
93
|
export const Grouping: TableFeature = {
|
|
92
|
-
getDefaultColumnDef: <TData extends RowData>(): GroupingColumnDef<
|
|
94
|
+
getDefaultColumnDef: <TData extends RowData>(): GroupingColumnDef<
|
|
95
|
+
TData,
|
|
96
|
+
unknown
|
|
97
|
+
> => {
|
|
93
98
|
return {
|
|
94
99
|
aggregatedCell: props => (props.getValue() as any)?.toString?.() ?? null,
|
|
95
100
|
aggregationFn: 'auto',
|
|
@@ -112,8 +117,8 @@ export const Grouping: TableFeature = {
|
|
|
112
117
|
}
|
|
113
118
|
},
|
|
114
119
|
|
|
115
|
-
createColumn: <TData extends RowData>(
|
|
116
|
-
column: Column<TData>,
|
|
120
|
+
createColumn: <TData extends RowData, TValue>(
|
|
121
|
+
column: Column<TData, TValue>,
|
|
117
122
|
table: Table<TData>
|
|
118
123
|
): GroupingColumn<TData> => {
|
|
119
124
|
return {
|
|
@@ -215,9 +220,9 @@ export const Grouping: TableFeature = {
|
|
|
215
220
|
}
|
|
216
221
|
},
|
|
217
222
|
|
|
218
|
-
createCell: <TData extends RowData>(
|
|
219
|
-
cell: Cell<TData>,
|
|
220
|
-
column: Column<TData>,
|
|
223
|
+
createCell: <TData extends RowData, TValue>(
|
|
224
|
+
cell: Cell<TData, TValue>,
|
|
225
|
+
column: Column<TData, TValue>,
|
|
221
226
|
row: Row<TData>,
|
|
222
227
|
table: Table<TData>
|
|
223
228
|
): GroupingCell => {
|
|
@@ -237,7 +242,7 @@ export const Grouping: TableFeature = {
|
|
|
237
242
|
}
|
|
238
243
|
|
|
239
244
|
export function orderColumns<TData extends RowData>(
|
|
240
|
-
leafColumns: Column<TData>[],
|
|
245
|
+
leafColumns: Column<TData, unknown>[],
|
|
241
246
|
grouping: string[],
|
|
242
247
|
groupedColumnMode?: GroupingColumnMode
|
|
243
248
|
) {
|
package/src/features/Ordering.ts
CHANGED
|
@@ -29,7 +29,9 @@ export type ColumnOrderDefaultOptions = {
|
|
|
29
29
|
export type ColumnOrderInstance<TData extends RowData> = {
|
|
30
30
|
setColumnOrder: (updater: Updater<ColumnOrderState>) => void
|
|
31
31
|
resetColumnOrder: (defaultState?: boolean) => void
|
|
32
|
-
_getOrderColumnsFn: () => (
|
|
32
|
+
_getOrderColumnsFn: () => (
|
|
33
|
+
columns: Column<TData, unknown>[]
|
|
34
|
+
) => Column<TData, unknown>[]
|
|
33
35
|
}
|
|
34
36
|
|
|
35
37
|
//
|
|
@@ -69,7 +71,7 @@ export const Ordering: TableFeature = {
|
|
|
69
71
|
(columnOrder, grouping, groupedColumnMode) => columns => {
|
|
70
72
|
// Sort grouped columns to the start of the column list
|
|
71
73
|
// before the headers are built
|
|
72
|
-
let orderedColumns: Column<TData>[] = []
|
|
74
|
+
let orderedColumns: Column<TData, unknown>[] = []
|
|
73
75
|
|
|
74
76
|
// If there is no order, return the normal columns
|
|
75
77
|
if (!columnOrder?.length) {
|
package/src/features/Pinning.ts
CHANGED
|
@@ -43,18 +43,18 @@ export type ColumnPinningColumn = {
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
export type ColumnPinningRow<TData extends RowData> = {
|
|
46
|
-
getLeftVisibleCells: () => Cell<TData>[]
|
|
47
|
-
getCenterVisibleCells: () => Cell<TData>[]
|
|
48
|
-
getRightVisibleCells: () => Cell<TData>[]
|
|
46
|
+
getLeftVisibleCells: () => Cell<TData, unknown>[]
|
|
47
|
+
getCenterVisibleCells: () => Cell<TData, unknown>[]
|
|
48
|
+
getRightVisibleCells: () => Cell<TData, unknown>[]
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
export type ColumnPinningInstance<TData extends RowData> = {
|
|
52
52
|
setColumnPinning: (updater: Updater<ColumnPinningState>) => void
|
|
53
53
|
resetColumnPinning: (defaultState?: boolean) => void
|
|
54
54
|
getIsSomeColumnsPinned: (position?: ColumnPinningPosition) => boolean
|
|
55
|
-
getLeftLeafColumns: () => Column<TData>[]
|
|
56
|
-
getRightLeafColumns: () => Column<TData>[]
|
|
57
|
-
getCenterLeafColumns: () => Column<TData>[]
|
|
55
|
+
getLeftLeafColumns: () => Column<TData, unknown>[]
|
|
56
|
+
getRightLeafColumns: () => Column<TData, unknown>[]
|
|
57
|
+
getCenterLeafColumns: () => Column<TData, unknown>[]
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
//
|
|
@@ -80,8 +80,8 @@ export const Pinning: TableFeature = {
|
|
|
80
80
|
}
|
|
81
81
|
},
|
|
82
82
|
|
|
83
|
-
createColumn: <TData extends RowData>(
|
|
84
|
-
column: Column<TData>,
|
|
83
|
+
createColumn: <TData extends RowData, TValue>(
|
|
84
|
+
column: Column<TData, TValue>,
|
|
85
85
|
table: Table<TData>
|
|
86
86
|
): ColumnPinningColumn => {
|
|
87
87
|
return {
|
|
@@ -185,7 +185,7 @@ export const Pinning: TableFeature = {
|
|
|
185
185
|
columnId => allCells.find(cell => cell.column.id === columnId)!
|
|
186
186
|
)
|
|
187
187
|
.filter(Boolean)
|
|
188
|
-
.map(d => ({ ...d, position: 'left' } as Cell<TData>))
|
|
188
|
+
.map(d => ({ ...d, position: 'left' } as Cell<TData, unknown>))
|
|
189
189
|
|
|
190
190
|
return cells
|
|
191
191
|
},
|
|
@@ -203,7 +203,7 @@ export const Pinning: TableFeature = {
|
|
|
203
203
|
columnId => allCells.find(cell => cell.column.id === columnId)!
|
|
204
204
|
)
|
|
205
205
|
.filter(Boolean)
|
|
206
|
-
.map(d => ({ ...d, position: 'left' } as Cell<TData>))
|
|
206
|
+
.map(d => ({ ...d, position: 'left' } as Cell<TData, unknown>))
|
|
207
207
|
|
|
208
208
|
return cells
|
|
209
209
|
},
|
package/src/features/Sorting.ts
CHANGED
|
@@ -116,8 +116,8 @@ export const Sorting: TableFeature = {
|
|
|
116
116
|
}
|
|
117
117
|
},
|
|
118
118
|
|
|
119
|
-
createColumn: <TData extends RowData>(
|
|
120
|
-
column: Column<TData>,
|
|
119
|
+
createColumn: <TData extends RowData, TValue>(
|
|
120
|
+
column: Column<TData, TValue>,
|
|
121
121
|
table: Table<TData>
|
|
122
122
|
): SortingColumn<TData> => {
|
|
123
123
|
return {
|
|
@@ -27,11 +27,11 @@ export type VisibilityDefaultOptions = {
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
export type VisibilityInstance<TData extends RowData> = {
|
|
30
|
-
getVisibleFlatColumns: () => Column<TData>[]
|
|
31
|
-
getVisibleLeafColumns: () => Column<TData>[]
|
|
32
|
-
getLeftVisibleLeafColumns: () => Column<TData>[]
|
|
33
|
-
getRightVisibleLeafColumns: () => Column<TData>[]
|
|
34
|
-
getCenterVisibleLeafColumns: () => Column<TData>[]
|
|
30
|
+
getVisibleFlatColumns: () => Column<TData, unknown>[]
|
|
31
|
+
getVisibleLeafColumns: () => Column<TData, unknown>[]
|
|
32
|
+
getLeftVisibleLeafColumns: () => Column<TData, unknown>[]
|
|
33
|
+
getRightVisibleLeafColumns: () => Column<TData, unknown>[]
|
|
34
|
+
getCenterVisibleLeafColumns: () => Column<TData, unknown>[]
|
|
35
35
|
setColumnVisibility: (updater: Updater<VisibilityState>) => void
|
|
36
36
|
resetColumnVisibility: (defaultState?: boolean) => void
|
|
37
37
|
toggleAllColumnsVisible: (value?: boolean) => void
|
|
@@ -45,8 +45,8 @@ export type VisibilityColumnDef = {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
export type VisibilityRow<TData extends RowData> = {
|
|
48
|
-
_getAllVisibleCells: () => Cell<TData>[]
|
|
49
|
-
getVisibleCells: () => Cell<TData>[]
|
|
48
|
+
_getAllVisibleCells: () => Cell<TData, unknown>[]
|
|
49
|
+
getVisibleCells: () => Cell<TData, unknown>[]
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
export type VisibilityColumn = {
|
|
@@ -74,8 +74,8 @@ export const Visibility: TableFeature = {
|
|
|
74
74
|
}
|
|
75
75
|
},
|
|
76
76
|
|
|
77
|
-
createColumn: <TData extends RowData>(
|
|
78
|
-
column: Column<TData>,
|
|
77
|
+
createColumn: <TData extends RowData, TValue>(
|
|
78
|
+
column: Column<TData, TValue>,
|
|
79
79
|
table: Table<TData>
|
|
80
80
|
): VisibilityColumn => {
|
|
81
81
|
return {
|
|
@@ -143,8 +143,8 @@ export const Visibility: TableFeature = {
|
|
|
143
143
|
): VisibilityInstance<TData> => {
|
|
144
144
|
const makeVisibleColumnsMethod = (
|
|
145
145
|
key: string,
|
|
146
|
-
getColumns: () => Column<TData>[]
|
|
147
|
-
): (() => Column<TData>[]) => {
|
|
146
|
+
getColumns: () => Column<TData, unknown>[]
|
|
147
|
+
): (() => Column<TData, unknown>[]) => {
|
|
148
148
|
return memo(
|
|
149
149
|
() => [
|
|
150
150
|
getColumns(),
|
package/src/filterFns.ts
CHANGED
|
@@ -6,7 +6,7 @@ const includesString: FilterFn<any> = (
|
|
|
6
6
|
filterValue: string
|
|
7
7
|
) => {
|
|
8
8
|
const search = filterValue.toLowerCase()
|
|
9
|
-
return row.getValue(columnId)?.toLowerCase().includes(search)
|
|
9
|
+
return row.getValue<string>(columnId)?.toLowerCase().includes(search)
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
includesString.autoRemove = (val: any) => testFalsey(val)
|
|
@@ -16,7 +16,7 @@ const includesStringSensitive: FilterFn<any> = (
|
|
|
16
16
|
columnId: string,
|
|
17
17
|
filterValue: string
|
|
18
18
|
) => {
|
|
19
|
-
return row.getValue(columnId)?.includes(filterValue)
|
|
19
|
+
return row.getValue<string>(columnId)?.includes(filterValue)
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
includesStringSensitive.autoRemove = (val: any) => testFalsey(val)
|
|
@@ -26,7 +26,9 @@ const equalsString: FilterFn<any> = (
|
|
|
26
26
|
columnId: string,
|
|
27
27
|
filterValue: string
|
|
28
28
|
) => {
|
|
29
|
-
return
|
|
29
|
+
return (
|
|
30
|
+
row.getValue<string>(columnId)?.toLowerCase() === filterValue.toLowerCase()
|
|
31
|
+
)
|
|
30
32
|
}
|
|
31
33
|
|
|
32
34
|
equalsString.autoRemove = (val: any) => testFalsey(val)
|
|
@@ -36,7 +38,7 @@ const arrIncludes: FilterFn<any> = (
|
|
|
36
38
|
columnId: string,
|
|
37
39
|
filterValue: unknown
|
|
38
40
|
) => {
|
|
39
|
-
return row.getValue(columnId)?.includes(filterValue)
|
|
41
|
+
return row.getValue<unknown[]>(columnId)?.includes(filterValue)
|
|
40
42
|
}
|
|
41
43
|
|
|
42
44
|
arrIncludes.autoRemove = (val: any) => testFalsey(val) || !val?.length
|
|
@@ -46,7 +48,9 @@ const arrIncludesAll: FilterFn<any> = (
|
|
|
46
48
|
columnId: string,
|
|
47
49
|
filterValue: unknown[]
|
|
48
50
|
) => {
|
|
49
|
-
return !filterValue.some(
|
|
51
|
+
return !filterValue.some(
|
|
52
|
+
val => !row.getValue<unknown[]>(columnId)?.includes(val)
|
|
53
|
+
)
|
|
50
54
|
}
|
|
51
55
|
|
|
52
56
|
arrIncludesAll.autoRemove = (val: any) => testFalsey(val) || !val?.length
|
|
@@ -56,7 +60,9 @@ const arrIncludesSome: FilterFn<any> = (
|
|
|
56
60
|
columnId: string,
|
|
57
61
|
filterValue: unknown[]
|
|
58
62
|
) => {
|
|
59
|
-
return filterValue.some(val =>
|
|
63
|
+
return filterValue.some(val =>
|
|
64
|
+
row.getValue<unknown[]>(columnId)?.includes(val)
|
|
65
|
+
)
|
|
60
66
|
}
|
|
61
67
|
|
|
62
68
|
arrIncludesSome.autoRemove = (val: any) => testFalsey(val) || !val?.length
|
|
@@ -84,7 +90,7 @@ const inNumberRange: FilterFn<any> = (
|
|
|
84
90
|
) => {
|
|
85
91
|
let [min, max] = filterValue
|
|
86
92
|
|
|
87
|
-
const rowValue = row.getValue(columnId)
|
|
93
|
+
const rowValue = row.getValue<number>(columnId)
|
|
88
94
|
return rowValue >= min && rowValue <= max
|
|
89
95
|
}
|
|
90
96
|
|
package/src/types.ts
CHANGED
|
@@ -77,10 +77,14 @@ import { CoreRow } from './core/row'
|
|
|
77
77
|
import { PartialKeys } from './utils'
|
|
78
78
|
import { CoreCell } from './core/cell'
|
|
79
79
|
|
|
80
|
+
export interface TableMeta {}
|
|
81
|
+
export interface ColumnMeta {}
|
|
82
|
+
export interface FilterMeta {}
|
|
83
|
+
|
|
80
84
|
export type Updater<T> = T | ((old: T) => T)
|
|
81
85
|
export type OnChangeFn<T> = (updaterOrValue: Updater<T>) => void
|
|
82
86
|
|
|
83
|
-
export type RowData = object | any[]
|
|
87
|
+
export type RowData = unknown | object | any[]
|
|
84
88
|
|
|
85
89
|
export type TableGenerics = {
|
|
86
90
|
Row?: any
|
|
@@ -155,34 +159,33 @@ export type Row<TData extends RowData> = CoreRow<TData> &
|
|
|
155
159
|
RowSelectionRow &
|
|
156
160
|
ExpandedRow
|
|
157
161
|
|
|
158
|
-
export type RowValues = {
|
|
159
|
-
[key: string]: any
|
|
160
|
-
}
|
|
161
|
-
|
|
162
162
|
export type RowModel<TData extends RowData> = {
|
|
163
163
|
rows: Row<TData>[]
|
|
164
164
|
flatRows: Row<TData>[]
|
|
165
165
|
rowsById: Record<string, Row<TData>>
|
|
166
166
|
}
|
|
167
167
|
|
|
168
|
-
export type AccessorFn<TData extends RowData> = (
|
|
168
|
+
export type AccessorFn<TData extends RowData, TValue = unknown> = (
|
|
169
169
|
originalRow: TData,
|
|
170
170
|
index: number
|
|
171
|
-
) =>
|
|
171
|
+
) => TValue
|
|
172
172
|
|
|
173
173
|
export type ColumnDefTemplate<TProps extends object> =
|
|
174
174
|
| string
|
|
175
175
|
| ((props: TProps) => any)
|
|
176
176
|
|
|
177
|
-
export type ColumnDef<
|
|
177
|
+
export type ColumnDef<
|
|
178
|
+
TData extends RowData,
|
|
179
|
+
TValue extends any = unknown
|
|
180
|
+
> = CoreColumnDef<TData, TValue> &
|
|
178
181
|
VisibilityColumnDef &
|
|
179
182
|
ColumnPinningColumnDef &
|
|
180
183
|
FiltersColumnDef<TData> &
|
|
181
184
|
SortingColumnDef<TData> &
|
|
182
|
-
GroupingColumnDef<TData> &
|
|
185
|
+
GroupingColumnDef<TData, TValue> &
|
|
183
186
|
ColumnSizingColumnDef
|
|
184
187
|
|
|
185
|
-
export type Column<TData extends RowData> = CoreColumn<TData> &
|
|
188
|
+
export type Column<TData extends RowData, TValue> = CoreColumn<TData, TValue> &
|
|
186
189
|
ColumnVisibilityColumn &
|
|
187
190
|
ColumnPinningColumn &
|
|
188
191
|
FiltersColumn<TData> &
|
|
@@ -190,9 +193,10 @@ export type Column<TData extends RowData> = CoreColumn<TData> &
|
|
|
190
193
|
GroupingColumn<TData> &
|
|
191
194
|
ColumnSizingColumn
|
|
192
195
|
|
|
193
|
-
export type Cell<TData extends RowData> = CoreCell<TData> &
|
|
196
|
+
export type Cell<TData extends RowData, TValue> = CoreCell<TData, TValue> &
|
|
197
|
+
GroupingCell
|
|
194
198
|
|
|
195
|
-
export type Header<TData extends RowData> = CoreHeader<TData> &
|
|
199
|
+
export type Header<TData extends RowData, TValue> = CoreHeader<TData, TValue> &
|
|
196
200
|
ColumnSizingHeader
|
|
197
201
|
|
|
198
202
|
export type HeaderGroup<TData extends RowData> = CoreHeaderGroup<TData>
|
|
@@ -18,7 +18,7 @@ export function getFacetedMinMaxValues<TData extends RowData>(): (
|
|
|
18
18
|
let facetedMinMaxValues: [any, any] = [firstValue, firstValue]
|
|
19
19
|
|
|
20
20
|
for (let i = 0; i < facetedRowModel.flatRows.length; i++) {
|
|
21
|
-
const value = facetedRowModel.flatRows[i]
|
|
21
|
+
const value = facetedRowModel.flatRows[i]!.getValue<number>(columnId)
|
|
22
22
|
|
|
23
23
|
if (value < facetedMinMaxValues[0]) {
|
|
24
24
|
facetedMinMaxValues[0] = value
|
|
@@ -55,7 +55,13 @@ export function getGroupedRowModel<TData extends RowData>(): (
|
|
|
55
55
|
? flattenBy(groupedRows, row => row.subRows)
|
|
56
56
|
: groupedRows
|
|
57
57
|
|
|
58
|
-
const row = createRow(
|
|
58
|
+
const row = createRow(
|
|
59
|
+
table,
|
|
60
|
+
id,
|
|
61
|
+
leafRows[0]!.original,
|
|
62
|
+
index,
|
|
63
|
+
depth
|
|
64
|
+
)
|
|
59
65
|
|
|
60
66
|
Object.assign(row, {
|
|
61
67
|
groupingColumnId: columnId,
|
package/src/utils.ts
CHANGED
|
@@ -27,9 +27,12 @@ export function noop() {
|
|
|
27
27
|
//
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
export function makeStateUpdater
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
export function makeStateUpdater<K extends keyof TableState>(
|
|
31
|
+
key: K,
|
|
32
|
+
instance: unknown
|
|
33
|
+
) {
|
|
34
|
+
return (updater: Updater<TableState[K]>) => {
|
|
35
|
+
;(instance as any).setState(<TTableState>(old: TTableState) => {
|
|
33
36
|
return {
|
|
34
37
|
...old,
|
|
35
38
|
[key]: functionalUpdate(updater, (old as any)[key]),
|