@tanstack/table-core 8.0.0-alpha.65 → 8.0.0-alpha.67
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/core.js +0 -2
- package/build/cjs/core.js.map +1 -1
- package/build/cjs/features/Cells.js +1 -1
- package/build/cjs/features/Cells.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js +65 -140
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Columns.js +5 -5
- package/build/cjs/features/Columns.js.map +1 -1
- package/build/cjs/features/Expanding.js +49 -87
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +89 -145
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +30 -58
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Headers.js +16 -40
- package/build/cjs/features/Headers.js.map +1 -1
- package/build/cjs/features/Ordering.js +1 -1
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pagination.js +1 -1
- package/build/cjs/features/Pagination.js.map +1 -1
- package/build/cjs/features/Pinning.js +70 -95
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/RowSelection.js +60 -112
- package/build/cjs/features/RowSelection.js.map +1 -1
- package/build/cjs/features/Sorting.js +33 -83
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js +16 -39
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/utils/getCoreRowModelAsync.js +1 -1
- package/build/cjs/utils/getCoreRowModelAsync.js.map +1 -1
- package/build/cjs/utils/getCoreRowModelSync.js +1 -1
- package/build/cjs/utils/getCoreRowModelSync.js.map +1 -1
- package/build/cjs/utils/getExpandedRowModel.js +2 -2
- package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
- package/build/cjs/utils/getFilteredRowModelSync.js +64 -69
- package/build/cjs/utils/getFilteredRowModelSync.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/getPaginationRowModel.js +1 -1
- package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
- package/build/cjs/utils/getSortedRowModelSync.js +3 -3
- package/build/cjs/utils/getSortedRowModelSync.js.map +1 -1
- package/build/esm/index.js +546 -924
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +354 -354
- package/build/types/features/ColumnSizing.d.ts +2 -13
- package/build/types/features/Expanding.d.ts +1 -6
- package/build/types/features/Filters.d.ts +12 -14
- package/build/types/features/Grouping.d.ts +0 -7
- package/build/types/features/Pinning.d.ts +0 -4
- package/build/types/features/RowSelection.d.ts +1 -7
- package/build/types/features/Sorting.d.ts +3 -14
- package/build/types/features/Visibility.d.ts +0 -4
- package/build/types/types.d.ts +0 -2
- package/build/umd/index.development.js +534 -912
- 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.ts +0 -2
- package/src/features/Cells.ts +1 -1
- package/src/features/ColumnSizing.ts +67 -125
- package/src/features/Columns.ts +6 -5
- package/src/features/Expanding.ts +58 -105
- package/src/features/Filters.ts +122 -172
- package/src/features/Grouping.ts +36 -60
- package/src/features/Headers.ts +18 -40
- package/src/features/Ordering.ts +1 -1
- package/src/features/Pagination.ts +1 -1
- package/src/features/Pinning.ts +66 -89
- package/src/features/RowSelection.ts +63 -115
- package/src/features/Sorting.ts +36 -94
- package/src/features/Visibility.ts +19 -49
- package/src/types.ts +0 -2
- package/src/utils/getCoreRowModelAsync.ts +1 -1
- package/src/utils/getCoreRowModelSync.ts +1 -1
- package/src/utils/getExpandedRowModel.ts +2 -2
- package/src/utils/getFilteredRowModelAsync.ts +118 -10
- package/src/utils/getFilteredRowModelSync.ts +95 -104
- package/src/utils/getGroupedRowModel.ts +1 -1
- package/src/utils/getPaginationRowModel.ts +1 -1
- package/src/utils/getSortedRowModelAsync.ts +1 -1
- package/src/utils/getSortedRowModelSync.ts +4 -4
|
@@ -32,10 +32,7 @@ export type VisibilityInstance<TGenerics extends TableGenerics> = {
|
|
|
32
32
|
getRightVisibleLeafColumns: () => Column<TGenerics>[]
|
|
33
33
|
getCenterVisibleLeafColumns: () => Column<TGenerics>[]
|
|
34
34
|
setColumnVisibility: (updater: Updater<VisibilityState>) => void
|
|
35
|
-
toggleColumnVisibility: (columnId: string, value?: boolean) => void
|
|
36
35
|
toggleAllColumnsVisible: (value?: boolean) => void
|
|
37
|
-
getColumnIsVisible: (columId: string) => boolean
|
|
38
|
-
getColumnCanHide: (columnId: string) => boolean
|
|
39
36
|
getIsAllColumnsVisible: () => boolean
|
|
40
37
|
getIsSomeColumnsVisible: () => boolean
|
|
41
38
|
getToggleAllColumnsVisibilityHandler: () =>
|
|
@@ -45,7 +42,6 @@ export type VisibilityInstance<TGenerics extends TableGenerics> = {
|
|
|
45
42
|
|
|
46
43
|
export type VisibilityColumnDef = {
|
|
47
44
|
enableHiding?: boolean
|
|
48
|
-
defaultCanHide?: boolean
|
|
49
45
|
defaultIsVisible?: boolean
|
|
50
46
|
}
|
|
51
47
|
|
|
@@ -90,10 +86,24 @@ export const Visibility: TableFeature = {
|
|
|
90
86
|
instance: TableInstance<TGenerics>
|
|
91
87
|
): VisibilityColumn => {
|
|
92
88
|
return {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
89
|
+
toggleVisibility: value => {
|
|
90
|
+
if (column.getCanHide()) {
|
|
91
|
+
instance.setColumnVisibility(old => ({
|
|
92
|
+
...old,
|
|
93
|
+
[column.id]: value ?? !column.getIsVisible(),
|
|
94
|
+
}))
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
getIsVisible: () => {
|
|
98
|
+
return instance.getState().columnVisibility?.[column.id] ?? true
|
|
99
|
+
},
|
|
100
|
+
|
|
101
|
+
getCanHide: () => {
|
|
102
|
+
return (
|
|
103
|
+
(column.enableHiding ?? true) &&
|
|
104
|
+
(instance.options.enableHiding ?? true)
|
|
105
|
+
)
|
|
106
|
+
},
|
|
97
107
|
getToggleVisibilityHandler: () => {
|
|
98
108
|
return (e: unknown) => {
|
|
99
109
|
column.toggleVisibility?.(
|
|
@@ -134,7 +144,7 @@ export const Visibility: TableFeature = {
|
|
|
134
144
|
],
|
|
135
145
|
(left, center, right) => [...left, ...center, ...right],
|
|
136
146
|
{
|
|
137
|
-
key: process.env.NODE_ENV === '
|
|
147
|
+
key: process.env.NODE_ENV === 'development' && 'row.getVisibleCells',
|
|
138
148
|
debug: () => instance.options.debugAll ?? instance.options.debugRows,
|
|
139
149
|
}
|
|
140
150
|
),
|
|
@@ -192,17 +202,6 @@ export const Visibility: TableFeature = {
|
|
|
192
202
|
setColumnVisibility: updater =>
|
|
193
203
|
instance.options.onColumnVisibilityChange?.(updater),
|
|
194
204
|
|
|
195
|
-
toggleColumnVisibility: (columnId, value) => {
|
|
196
|
-
if (!columnId) return
|
|
197
|
-
|
|
198
|
-
if (instance.getColumnCanHide(columnId)) {
|
|
199
|
-
instance.setColumnVisibility(old => ({
|
|
200
|
-
...old,
|
|
201
|
-
[columnId]: value ?? !instance.getColumnIsVisible(columnId),
|
|
202
|
-
}))
|
|
203
|
-
}
|
|
204
|
-
},
|
|
205
|
-
|
|
206
205
|
toggleAllColumnsVisible: value => {
|
|
207
206
|
value = value ?? !instance.getIsAllColumnsVisible()
|
|
208
207
|
|
|
@@ -217,35 +216,6 @@ export const Visibility: TableFeature = {
|
|
|
217
216
|
)
|
|
218
217
|
},
|
|
219
218
|
|
|
220
|
-
getColumnIsVisible: columnId => {
|
|
221
|
-
const column = instance.getColumn(columnId)
|
|
222
|
-
|
|
223
|
-
if (!column) {
|
|
224
|
-
throw new Error()
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
return (
|
|
228
|
-
instance.getState().columnVisibility?.[columnId] ??
|
|
229
|
-
column.defaultIsVisible ??
|
|
230
|
-
true
|
|
231
|
-
)
|
|
232
|
-
},
|
|
233
|
-
|
|
234
|
-
getColumnCanHide: columnId => {
|
|
235
|
-
const column = instance.getColumn(columnId)
|
|
236
|
-
|
|
237
|
-
if (!column) {
|
|
238
|
-
throw new Error()
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
return (
|
|
242
|
-
instance.options.enableHiding ??
|
|
243
|
-
column.enableHiding ??
|
|
244
|
-
column.defaultCanHide ??
|
|
245
|
-
true
|
|
246
|
-
)
|
|
247
|
-
},
|
|
248
|
-
|
|
249
219
|
getIsAllColumnsVisible: () =>
|
|
250
220
|
!instance.getAllLeafColumns().some(column => !column.getIsVisible?.()),
|
|
251
221
|
|
package/src/types.ts
CHANGED
|
@@ -228,8 +228,6 @@ export type CoreHeader<TGenerics extends TableGenerics> = {
|
|
|
228
228
|
index: number
|
|
229
229
|
depth: number
|
|
230
230
|
column: Column<TGenerics>
|
|
231
|
-
getStart: () => number
|
|
232
|
-
getSize: () => number
|
|
233
231
|
headerGroup: HeaderGroup<TGenerics>
|
|
234
232
|
subHeaders: Header<TGenerics>[]
|
|
235
233
|
colSpan?: number
|
|
@@ -88,7 +88,7 @@ export function getCoreRowModelAsync<TGenerics extends TableGenerics>(opts?: {
|
|
|
88
88
|
accessRows(data)
|
|
89
89
|
},
|
|
90
90
|
{
|
|
91
|
-
key: process.env.NODE_ENV === '
|
|
91
|
+
key: process.env.NODE_ENV === 'development' && 'getRowModel',
|
|
92
92
|
initialSync: opts?.initialSync,
|
|
93
93
|
onProgress: progress => {
|
|
94
94
|
instance.setState(old => ({ ...old, coreProgress: progress }))
|
|
@@ -94,7 +94,7 @@ export function getCoreRowModelSync<TGenerics extends TableGenerics>(): (
|
|
|
94
94
|
return { rows, flatRows, rowsById }
|
|
95
95
|
},
|
|
96
96
|
{
|
|
97
|
-
key: process.env.NODE_ENV === '
|
|
97
|
+
key: process.env.NODE_ENV === 'development' && 'getRowModel',
|
|
98
98
|
debug: () => instance.options.debugAll ?? instance.options.debugTable,
|
|
99
99
|
onChange: () => {
|
|
100
100
|
instance.queue(() => {
|
|
@@ -24,7 +24,7 @@ export function getExpandedRowModel<TGenerics extends TableGenerics>(): (
|
|
|
24
24
|
return expandRows(rowModel, instance)
|
|
25
25
|
},
|
|
26
26
|
{
|
|
27
|
-
key: process.env.NODE_ENV === '
|
|
27
|
+
key: process.env.NODE_ENV === 'development' && 'getExpandedRowModel',
|
|
28
28
|
debug: () => instance.options.debugAll ?? instance.options.debugTable,
|
|
29
29
|
}
|
|
30
30
|
)
|
|
@@ -42,7 +42,7 @@ export function expandRows<TGenerics extends TableGenerics>(
|
|
|
42
42
|
if (
|
|
43
43
|
instance.options.expandSubRows &&
|
|
44
44
|
row.subRows?.length &&
|
|
45
|
-
|
|
45
|
+
row.getIsExpanded()
|
|
46
46
|
) {
|
|
47
47
|
row.subRows.forEach(handleRow)
|
|
48
48
|
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { ResolvedColumnFilter } from '../features/Filters'
|
|
1
2
|
import { TableInstance, RowModel, TableGenerics, Row } from '../types'
|
|
2
3
|
import { incrementalMemo } from '../utils'
|
|
4
|
+
import { filterRows } from './filterRowsUtils'
|
|
3
5
|
|
|
4
6
|
export function getFilteredRowModelAsync<
|
|
5
7
|
TGenerics extends TableGenerics
|
|
@@ -9,24 +11,130 @@ export function getFilteredRowModelAsync<
|
|
|
9
11
|
return instance =>
|
|
10
12
|
incrementalMemo(
|
|
11
13
|
() => [
|
|
12
|
-
instance.getState().columnFilters,
|
|
13
14
|
instance.getPreFilteredRowModel(),
|
|
15
|
+
instance.getState().columnFilters,
|
|
16
|
+
instance.getState().globalFilter,
|
|
14
17
|
],
|
|
15
|
-
(
|
|
18
|
+
(rowModel): RowModel<TGenerics> => {
|
|
16
19
|
return {
|
|
17
20
|
rows: rowModel.rows.slice(),
|
|
18
21
|
flatRows: [],
|
|
19
22
|
rowsById: rowModel.rowsById,
|
|
20
23
|
}
|
|
21
24
|
},
|
|
22
|
-
(columnFilters,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
(rowModel, columnFilters, globalFilter) => rowModelRef => scheduleTask => {
|
|
26
|
+
if (
|
|
27
|
+
!rowModel.rows.length ||
|
|
28
|
+
(!columnFilters?.length && !globalFilter)
|
|
29
|
+
) {
|
|
30
|
+
rowModelRef.current = rowModel
|
|
31
|
+
return
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const resolvedColumnFilters: ResolvedColumnFilter<TGenerics>[] = []
|
|
35
|
+
const resolvedGlobalFilters: ResolvedColumnFilter<TGenerics>[] = []
|
|
36
|
+
|
|
37
|
+
;(columnFilters ?? []).forEach(d => {
|
|
38
|
+
const column = instance.getColumn(d.id)
|
|
39
|
+
|
|
40
|
+
if (!column) {
|
|
41
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
42
|
+
console.warn(
|
|
43
|
+
`Table: Could not find a column to filter with columnId: ${d.id}`
|
|
44
|
+
)
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const filterFn = column.getFilterFn()!
|
|
49
|
+
|
|
50
|
+
if (!filterFn) {
|
|
51
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
52
|
+
console.warn(
|
|
53
|
+
`Could not find a valid 'column.filterFn' for column with the ID: ${column.id}.`
|
|
54
|
+
)
|
|
55
|
+
}
|
|
56
|
+
return
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
resolvedColumnFilters.push({
|
|
60
|
+
id: d.id,
|
|
61
|
+
filterFn,
|
|
62
|
+
resolvedValue: filterFn.resolveFilterValue?.(d.value) ?? d.value,
|
|
63
|
+
})
|
|
64
|
+
})
|
|
65
|
+
|
|
66
|
+
const filterableIds = columnFilters.map(d => d.id)
|
|
67
|
+
|
|
68
|
+
const globalFilterFn = instance.getGlobalFilterFn()
|
|
69
|
+
|
|
70
|
+
const globallyFilterableColumns = instance
|
|
71
|
+
.getAllLeafColumns()
|
|
72
|
+
.filter(column => column.getCanGlobalFilter())
|
|
73
|
+
|
|
74
|
+
if (
|
|
75
|
+
globalFilter &&
|
|
76
|
+
globalFilterFn &&
|
|
77
|
+
globallyFilterableColumns.length
|
|
78
|
+
) {
|
|
79
|
+
filterableIds.push('__global__')
|
|
80
|
+
|
|
81
|
+
globallyFilterableColumns.forEach(column => {
|
|
82
|
+
resolvedGlobalFilters.push({
|
|
83
|
+
id: column.id,
|
|
84
|
+
filterFn: globalFilterFn,
|
|
85
|
+
resolvedValue:
|
|
86
|
+
globalFilterFn.resolveFilterValue?.(globalFilter) ??
|
|
87
|
+
globalFilter,
|
|
88
|
+
})
|
|
89
|
+
})
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// Flag the prefiltered row model with each filter state
|
|
93
|
+
for (let j = 0; j < rowModel.flatRows.length; j++) {
|
|
94
|
+
const row = rowModel.flatRows[j]
|
|
95
|
+
|
|
96
|
+
row.columnFilterMap = {}
|
|
97
|
+
|
|
98
|
+
if (resolvedColumnFilters.length) {
|
|
99
|
+
for (let i = 0; i < resolvedColumnFilters.length; i++) {
|
|
100
|
+
const columnFilter = resolvedColumnFilters[i]
|
|
101
|
+
|
|
102
|
+
// Tag the row with the column filter state
|
|
103
|
+
row.columnFilterMap[columnFilter.id] = columnFilter.filterFn(
|
|
104
|
+
row,
|
|
105
|
+
columnFilter.id,
|
|
106
|
+
columnFilter.resolvedValue
|
|
107
|
+
)
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
if (resolvedGlobalFilters.length) {
|
|
112
|
+
let hit = false
|
|
113
|
+
|
|
114
|
+
for (let i = 0; i < resolvedGlobalFilters.length; i++) {
|
|
115
|
+
const globalFilter = resolvedGlobalFilters[i]
|
|
116
|
+
// Tag the row with the first truthy global filter state
|
|
117
|
+
if (
|
|
118
|
+
globalFilter.filterFn(
|
|
119
|
+
row,
|
|
120
|
+
globalFilter.id,
|
|
121
|
+
globalFilter.resolvedValue
|
|
122
|
+
)
|
|
123
|
+
) {
|
|
124
|
+
hit = true
|
|
125
|
+
row.columnFilterMap.__global__ = true
|
|
126
|
+
break
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
if (row.columnFilterMap.__global__ !== true) {
|
|
131
|
+
row.columnFilterMap.__global__ = false
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// Filter final rows using all of the active filters
|
|
137
|
+
return filterRows(rowModel.rows, filterableIds, instance)
|
|
30
138
|
},
|
|
31
139
|
{
|
|
32
140
|
key:
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
ColumnFilter,
|
|
3
|
+
FilterFn,
|
|
4
|
+
ResolvedColumnFilter,
|
|
5
|
+
} from '../features/Filters'
|
|
2
6
|
import { TableInstance, RowModel, TableGenerics, Row } from '../types'
|
|
3
7
|
import { memo } from '../utils'
|
|
4
8
|
import { filterRows } from './filterRowsUtils'
|
|
5
9
|
|
|
6
|
-
type ResolvedColumnFilter<TGenerics extends TableGenerics> = {
|
|
7
|
-
id: string
|
|
8
|
-
filterFn: FilterFn<TGenerics>
|
|
9
|
-
resolvedFilterValue: unknown
|
|
10
|
-
}
|
|
11
|
-
|
|
12
10
|
export function getFilteredRowModelSync<TGenerics extends TableGenerics>(): (
|
|
13
11
|
instance: TableInstance<TGenerics>
|
|
14
12
|
) => () => RowModel<TGenerics> {
|
|
@@ -20,125 +18,118 @@ export function getFilteredRowModelSync<TGenerics extends TableGenerics>(): (
|
|
|
20
18
|
instance.getState().globalFilter,
|
|
21
19
|
],
|
|
22
20
|
(rowModel, columnFilters, globalFilter) => {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
if (
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
)
|
|
42
|
-
}
|
|
21
|
+
if (
|
|
22
|
+
!rowModel.rows.length ||
|
|
23
|
+
(!columnFilters?.length && !globalFilter)
|
|
24
|
+
) {
|
|
25
|
+
return rowModel
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const resolvedColumnFilters: ResolvedColumnFilter<TGenerics>[] = []
|
|
29
|
+
const resolvedGlobalFilters: ResolvedColumnFilter<TGenerics>[] = []
|
|
30
|
+
|
|
31
|
+
;(columnFilters ?? []).forEach(d => {
|
|
32
|
+
const column = instance.getColumn(d.id)
|
|
33
|
+
|
|
34
|
+
if (!column) {
|
|
35
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
36
|
+
console.warn(
|
|
37
|
+
`Table: Could not find a column to filter with columnId: ${d.id}`
|
|
38
|
+
)
|
|
43
39
|
}
|
|
40
|
+
}
|
|
44
41
|
|
|
45
|
-
|
|
42
|
+
const filterFn = column.getFilterFn()
|
|
46
43
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
return
|
|
44
|
+
if (!filterFn) {
|
|
45
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
46
|
+
console.warn(
|
|
47
|
+
`Could not find a valid 'column.filterFn' for column with the ID: ${column.id}.`
|
|
48
|
+
)
|
|
54
49
|
}
|
|
50
|
+
return
|
|
51
|
+
}
|
|
55
52
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
53
|
+
resolvedColumnFilters.push({
|
|
54
|
+
id: d.id,
|
|
55
|
+
filterFn,
|
|
56
|
+
resolvedValue: filterFn.resolveFilterValue?.(d.value) ?? d.value,
|
|
57
|
+
})
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
const filterableIds = columnFilters.map(d => d.id)
|
|
61
|
+
|
|
62
|
+
const globalFilterFn = instance.getGlobalFilterFn()
|
|
63
|
+
|
|
64
|
+
const globallyFilterableColumns = instance
|
|
65
|
+
.getAllLeafColumns()
|
|
66
|
+
.filter(column => column.getCanGlobalFilter())
|
|
67
|
+
|
|
68
|
+
if (
|
|
69
|
+
globalFilter &&
|
|
70
|
+
globalFilterFn &&
|
|
71
|
+
globallyFilterableColumns.length
|
|
72
|
+
) {
|
|
73
|
+
filterableIds.push('__global__')
|
|
74
|
+
|
|
75
|
+
globallyFilterableColumns.forEach(column => {
|
|
76
|
+
resolvedGlobalFilters.push({
|
|
77
|
+
id: column.id,
|
|
78
|
+
filterFn: globalFilterFn,
|
|
79
|
+
resolvedValue:
|
|
80
|
+
globalFilterFn.resolveFilterValue?.(globalFilter) ??
|
|
81
|
+
globalFilter,
|
|
61
82
|
})
|
|
62
83
|
})
|
|
84
|
+
}
|
|
63
85
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
const globallyFilterableColumns = instance
|
|
69
|
-
.getAllLeafColumns()
|
|
70
|
-
.filter(column => column.getCanGlobalFilter())
|
|
71
|
-
|
|
72
|
-
if (
|
|
73
|
-
globalFilter &&
|
|
74
|
-
globalFilterFn &&
|
|
75
|
-
globallyFilterableColumns.length
|
|
76
|
-
) {
|
|
77
|
-
filterableIds.push('__global__')
|
|
78
|
-
|
|
79
|
-
globallyFilterableColumns.forEach(column => {
|
|
80
|
-
resolvedGlobalFilters.push({
|
|
81
|
-
id: column.id,
|
|
82
|
-
filterFn: globalFilterFn,
|
|
83
|
-
resolvedFilterValue:
|
|
84
|
-
globalFilterFn.resolveFilterValue?.(globalFilter) ??
|
|
85
|
-
globalFilter,
|
|
86
|
-
})
|
|
87
|
-
})
|
|
88
|
-
}
|
|
86
|
+
// Flag the prefiltered row model with each filter state
|
|
87
|
+
for (let j = 0; j < rowModel.flatRows.length; j++) {
|
|
88
|
+
const row = rowModel.flatRows[j]
|
|
89
89
|
|
|
90
|
-
|
|
91
|
-
for (let j = 0; j < rowModel.flatRows.length; j++) {
|
|
92
|
-
const row = rowModel.flatRows[j]
|
|
90
|
+
row.columnFilterMap = {}
|
|
93
91
|
|
|
94
|
-
|
|
92
|
+
if (resolvedColumnFilters.length) {
|
|
93
|
+
for (let i = 0; i < resolvedColumnFilters.length; i++) {
|
|
94
|
+
const columnFilter = resolvedColumnFilters[i]
|
|
95
95
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
96
|
+
// Tag the row with the column filter state
|
|
97
|
+
row.columnFilterMap[columnFilter.id] = columnFilter.filterFn(
|
|
98
|
+
row,
|
|
99
|
+
columnFilter.id,
|
|
100
|
+
columnFilter.resolvedValue
|
|
101
|
+
)
|
|
102
|
+
}
|
|
103
|
+
}
|
|
99
104
|
|
|
100
|
-
|
|
101
|
-
|
|
105
|
+
if (resolvedGlobalFilters.length) {
|
|
106
|
+
for (let i = 0; i < resolvedGlobalFilters.length; i++) {
|
|
107
|
+
const globalFilter = resolvedGlobalFilters[i]
|
|
108
|
+
// Tag the row with the first truthy global filter state
|
|
109
|
+
if (
|
|
110
|
+
globalFilter.filterFn(
|
|
102
111
|
row,
|
|
103
|
-
|
|
104
|
-
|
|
112
|
+
globalFilter.id,
|
|
113
|
+
globalFilter.resolvedValue
|
|
105
114
|
)
|
|
115
|
+
) {
|
|
116
|
+
row.columnFilterMap.__global__ = true
|
|
117
|
+
break
|
|
106
118
|
}
|
|
107
119
|
}
|
|
108
120
|
|
|
109
|
-
if (
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
for (let i = 0; i < resolvedGlobalFilters.length; i++) {
|
|
113
|
-
const globalFilter = resolvedGlobalFilters[i]
|
|
114
|
-
// Tag the row with the first truthy global filter state
|
|
115
|
-
if (
|
|
116
|
-
globalFilter.filterFn(
|
|
117
|
-
row,
|
|
118
|
-
globalFilter.id,
|
|
119
|
-
globalFilter.resolvedFilterValue
|
|
120
|
-
)
|
|
121
|
-
) {
|
|
122
|
-
hit = true
|
|
123
|
-
row.columnFilterMap.__global__ = true
|
|
124
|
-
break
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
if (row.columnFilterMap.__global__ !== true) {
|
|
129
|
-
row.columnFilterMap.__global__ = false
|
|
130
|
-
}
|
|
121
|
+
if (row.columnFilterMap.__global__ !== true) {
|
|
122
|
+
row.columnFilterMap.__global__ = false
|
|
131
123
|
}
|
|
132
124
|
}
|
|
125
|
+
}
|
|
133
126
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
})()
|
|
137
|
-
|
|
138
|
-
return columnFilteredRowModel
|
|
127
|
+
// Filter final rows using all of the active filters
|
|
128
|
+
return filterRows(rowModel.rows, filterableIds, instance)
|
|
139
129
|
},
|
|
140
130
|
{
|
|
141
|
-
key:
|
|
131
|
+
key:
|
|
132
|
+
process.env.NODE_ENV === 'development' && 'getFilteredRowModelSync',
|
|
142
133
|
debug: () => instance.options.debugAll ?? instance.options.debugTable,
|
|
143
134
|
onChange: () => {
|
|
144
135
|
instance.queue(() => {
|
|
@@ -161,7 +161,7 @@ export function getGroupedRowModelSync<TGenerics extends TableGenerics>(): (
|
|
|
161
161
|
}
|
|
162
162
|
},
|
|
163
163
|
{
|
|
164
|
-
key: process.env.NODE_ENV === '
|
|
164
|
+
key: process.env.NODE_ENV === 'development' && 'getGroupedRowModel',
|
|
165
165
|
debug: () => instance.options.debugAll ?? instance.options.debugTable,
|
|
166
166
|
onChange: () => {
|
|
167
167
|
instance.queue(() => {
|
|
@@ -41,7 +41,7 @@ export function getPaginationRowModel<TGenerics extends TableGenerics>(opts?: {
|
|
|
41
41
|
}
|
|
42
42
|
},
|
|
43
43
|
{
|
|
44
|
-
key: process.env.NODE_ENV === '
|
|
44
|
+
key: process.env.NODE_ENV === 'development' && 'getPaginationRowModel',
|
|
45
45
|
debug: () => instance.options.debugAll ?? instance.options.debugTable,
|
|
46
46
|
}
|
|
47
47
|
)
|
|
@@ -75,7 +75,7 @@ export function getSortedRowModelSync<TGenerics extends TableGenerics>(opts?: {
|
|
|
75
75
|
// sortData(rowModelRef.current.rows)
|
|
76
76
|
},
|
|
77
77
|
{
|
|
78
|
-
key: process.env.NODE_ENV === '
|
|
78
|
+
key: process.env.NODE_ENV === 'development' && 'getSortedRowModel',
|
|
79
79
|
initialSync: opts?.initialSync,
|
|
80
80
|
onProgress: progress => {
|
|
81
81
|
instance.setState(old => ({ ...old, sortingProgress: progress }))
|
|
@@ -19,7 +19,7 @@ export function getSortedRowModelSync<TGenerics extends TableGenerics>(): (
|
|
|
19
19
|
|
|
20
20
|
// Filter out sortings that correspond to non existing columns
|
|
21
21
|
const availableSorting = sortingState.filter(sort =>
|
|
22
|
-
instance.
|
|
22
|
+
instance.getColumn(sort.id).getCanSort()
|
|
23
23
|
)
|
|
24
24
|
|
|
25
25
|
const columnInfoById: Record<
|
|
@@ -32,12 +32,12 @@ export function getSortedRowModelSync<TGenerics extends TableGenerics>(): (
|
|
|
32
32
|
> = {}
|
|
33
33
|
|
|
34
34
|
availableSorting.forEach(sortEntry => {
|
|
35
|
-
const column = instance.getColumn(sortEntry.id)
|
|
35
|
+
const column = instance.getColumn(sortEntry.id)
|
|
36
36
|
|
|
37
37
|
columnInfoById[sortEntry.id] = {
|
|
38
38
|
sortUndefined: column.sortUndefined,
|
|
39
39
|
invertSorting: column.invertSorting,
|
|
40
|
-
sortingFn:
|
|
40
|
+
sortingFn: column.getSortingFn(),
|
|
41
41
|
}
|
|
42
42
|
})
|
|
43
43
|
|
|
@@ -106,7 +106,7 @@ export function getSortedRowModelSync<TGenerics extends TableGenerics>(): (
|
|
|
106
106
|
}
|
|
107
107
|
},
|
|
108
108
|
{
|
|
109
|
-
key: process.env.NODE_ENV === '
|
|
109
|
+
key: process.env.NODE_ENV === 'development' && 'getSortedRowModel',
|
|
110
110
|
debug: () => instance.options.debugAll ?? instance.options.debugTable,
|
|
111
111
|
onChange: () => {
|
|
112
112
|
instance.queue(() => {
|