@tanstack/table-core 8.0.0-alpha.64 → 8.0.0-alpha.68
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 +25 -37
- package/build/cjs/aggregationFns.js.map +1 -1
- package/build/cjs/core.js +167 -47
- package/build/cjs/core.js.map +1 -1
- package/build/cjs/createTable.js +24 -40
- package/build/cjs/createTable.js.map +1 -1
- package/build/cjs/features/Cells.js +29 -35
- package/build/cjs/features/Cells.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js +126 -218
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Columns.js +59 -86
- package/build/cjs/features/Columns.js.map +1 -1
- package/build/cjs/features/Expanding.js +78 -125
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +143 -218
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +70 -116
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Headers.js +125 -205
- package/build/cjs/features/Headers.js.map +1 -1
- package/build/cjs/features/Ordering.js +31 -43
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pagination.js +64 -72
- package/build/cjs/features/Pagination.js.map +1 -1
- package/build/cjs/features/Pinning.js +96 -177
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/RowSelection.js +134 -205
- package/build/cjs/features/RowSelection.js.map +1 -1
- package/build/cjs/features/Rows.js +32 -22
- package/build/cjs/features/Rows.js.map +1 -1
- package/build/cjs/features/Sorting.js +62 -131
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js +53 -120
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/filterFns.js +52 -133
- package/build/cjs/filterFns.js.map +1 -1
- package/build/cjs/index.js +13 -13
- package/build/cjs/sortingFns.js +21 -21
- package/build/cjs/sortingFns.js.map +1 -1
- package/build/cjs/utils/filterRowsUtils.js +56 -41
- package/build/cjs/utils/filterRowsUtils.js.map +1 -1
- package/build/cjs/utils/getCoreRowModel.js +98 -0
- package/build/cjs/utils/getCoreRowModel.js.map +1 -0
- package/build/cjs/utils/getExpandedRowModel.js +18 -22
- package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
- package/build/cjs/utils/getFacetedMinMaxValues.js +48 -0
- package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -0
- package/build/cjs/utils/getFacetedRowModel.js +50 -0
- package/build/cjs/utils/getFacetedRowModel.js.map +1 -0
- package/build/cjs/utils/getFacetedUniqueValues.js +48 -0
- package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -0
- package/build/cjs/utils/getFilteredRowModel.js +130 -0
- package/build/cjs/utils/getFilteredRowModel.js.map +1 -0
- package/build/cjs/utils/getGroupedRowModel.js +126 -136
- package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
- package/build/cjs/utils/getPaginationRowModel.js +39 -39
- package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
- package/build/cjs/utils/getSortedRowModel.js +112 -0
- package/build/cjs/utils/getSortedRowModel.js.map +1 -0
- package/build/cjs/utils.js +36 -211
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +1970 -2956
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +390 -482
- package/build/types/core.d.ts +3 -5
- package/build/types/features/Cells.d.ts +1 -1
- package/build/types/features/ColumnSizing.d.ts +2 -13
- package/build/types/features/Columns.d.ts +1 -1
- package/build/types/features/Expanding.d.ts +1 -6
- package/build/types/features/Filters.d.ts +42 -30
- package/build/types/features/Grouping.d.ts +4 -10
- package/build/types/features/Pinning.d.ts +0 -4
- package/build/types/features/RowSelection.d.ts +1 -7
- package/build/types/features/Rows.d.ts +4 -3
- package/build/types/features/Sorting.d.ts +3 -14
- package/build/types/features/Visibility.d.ts +0 -4
- package/build/types/filterFns.d.ts +10 -52
- package/build/types/index.d.ts +6 -5
- package/build/types/types.d.ts +5 -17
- package/build/types/utils/filterRowsUtils.d.ts +3 -2
- package/build/types/utils/getCoreRowModel.d.ts +2 -0
- package/build/types/utils/getFacetedMinMaxValues.d.ts +2 -0
- package/build/types/utils/getFacetedRowModel.d.ts +2 -0
- package/build/types/utils/getFacetedUniqueValues.d.ts +2 -0
- package/build/types/utils/{getCoreRowModelSync.d.ts → getFilteredRowModel.d.ts} +1 -1
- package/build/types/utils/getGroupedRowModel.d.ts +1 -1
- package/build/types/utils/getSortedRowModel.d.ts +2 -0
- package/build/types/utils.d.ts +2 -18
- package/build/umd/index.development.js +1948 -2935
- 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 +2 -1
- package/src/core.ts +197 -46
- package/src/features/Cells.ts +10 -12
- package/src/features/ColumnSizing.ts +72 -129
- package/src/features/Columns.ts +16 -15
- package/src/features/Expanding.ts +58 -105
- package/src/features/Filters.ts +223 -226
- package/src/features/Grouping.ts +51 -79
- 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 +73 -92
- package/src/features/RowSelection.ts +71 -120
- package/src/features/Rows.ts +21 -6
- package/src/features/Sorting.ts +39 -99
- package/src/features/Visibility.ts +21 -50
- package/src/filterFns.ts +74 -147
- package/src/index.ts +12 -5
- package/src/sortingFns.ts +11 -11
- package/src/types.ts +5 -18
- package/src/utils/filterRowsUtils.ts +59 -56
- package/src/utils/{getCoreRowModelSync.ts → getCoreRowModel.ts} +3 -9
- package/src/utils/getExpandedRowModel.ts +2 -2
- package/src/utils/getFacetedMinMaxValues.ts +37 -0
- package/src/utils/getFacetedRowModel.ts +50 -0
- package/src/utils/getFacetedUniqueValues.ts +37 -0
- package/src/utils/getFilteredRowModel.ts +150 -0
- package/src/utils/getGroupedRowModel.ts +53 -62
- package/src/utils/getPaginationRowModel.ts +1 -1
- package/src/utils/{getSortedRowModelSync.ts → getSortedRowModel.ts} +7 -7
- package/src/utils.ts +29 -239
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -112
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
- package/build/cjs/utils/getColumnFilteredRowModelSync.js +0 -115
- package/build/cjs/utils/getColumnFilteredRowModelSync.js.map +0 -1
- package/build/cjs/utils/getCoreRowModelAsync.js +0 -125
- package/build/cjs/utils/getCoreRowModelAsync.js.map +0 -1
- package/build/cjs/utils/getCoreRowModelSync.js +0 -102
- package/build/cjs/utils/getCoreRowModelSync.js.map +0 -1
- package/build/cjs/utils/getGlobalFilteredRowModelSync.js +0 -91
- package/build/cjs/utils/getGlobalFilteredRowModelSync.js.map +0 -1
- package/build/cjs/utils/getSortedRowModelSync.js +0 -118
- package/build/cjs/utils/getSortedRowModelSync.js.map +0 -1
- package/build/types/utils/getColumnFilteredRowModelAsync.d.ts +0 -4
- package/build/types/utils/getColumnFilteredRowModelSync.d.ts +0 -2
- package/build/types/utils/getCoreRowModelAsync.d.ts +0 -4
- package/build/types/utils/getGlobalFilteredRowModelAsync.d.ts +0 -4
- package/build/types/utils/getGlobalFilteredRowModelSync.d.ts +0 -2
- package/build/types/utils/getSortedRowModelAsync.d.ts +0 -13
- package/build/types/utils/getSortedRowModelSync.d.ts +0 -2
- package/src/utils/getColumnFilteredRowModelAsync.ts +0 -118
- package/src/utils/getColumnFilteredRowModelSync.ts +0 -102
- package/src/utils/getCoreRowModelAsync.ts +0 -104
- package/src/utils/getGlobalFilteredRowModelAsync.ts +0 -96
- package/src/utils/getGlobalFilteredRowModelSync.ts +0 -79
- package/src/utils/getSortedRowModelAsync.ts +0 -200
|
@@ -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?.(
|
|
@@ -121,7 +131,8 @@ export const Visibility: TableFeature = {
|
|
|
121
131
|
return row.getAllCells().filter(cell => cell.column.getIsVisible())
|
|
122
132
|
},
|
|
123
133
|
{
|
|
124
|
-
key:
|
|
134
|
+
key:
|
|
135
|
+
process.env.NODE_ENV === 'production' && 'row._getAllVisibleCells',
|
|
125
136
|
debug: () => instance.options.debugAll ?? instance.options.debugRows,
|
|
126
137
|
}
|
|
127
138
|
),
|
|
@@ -133,7 +144,7 @@ export const Visibility: TableFeature = {
|
|
|
133
144
|
],
|
|
134
145
|
(left, center, right) => [...left, ...center, ...right],
|
|
135
146
|
{
|
|
136
|
-
key: 'row.getVisibleCells',
|
|
147
|
+
key: process.env.NODE_ENV === 'development' && 'row.getVisibleCells',
|
|
137
148
|
debug: () => instance.options.debugAll ?? instance.options.debugRows,
|
|
138
149
|
}
|
|
139
150
|
),
|
|
@@ -191,17 +202,6 @@ export const Visibility: TableFeature = {
|
|
|
191
202
|
setColumnVisibility: updater =>
|
|
192
203
|
instance.options.onColumnVisibilityChange?.(updater),
|
|
193
204
|
|
|
194
|
-
toggleColumnVisibility: (columnId, value) => {
|
|
195
|
-
if (!columnId) return
|
|
196
|
-
|
|
197
|
-
if (instance.getColumnCanHide(columnId)) {
|
|
198
|
-
instance.setColumnVisibility(old => ({
|
|
199
|
-
...old,
|
|
200
|
-
[columnId]: value ?? !instance.getColumnIsVisible(columnId),
|
|
201
|
-
}))
|
|
202
|
-
}
|
|
203
|
-
},
|
|
204
|
-
|
|
205
205
|
toggleAllColumnsVisible: value => {
|
|
206
206
|
value = value ?? !instance.getIsAllColumnsVisible()
|
|
207
207
|
|
|
@@ -216,35 +216,6 @@ export const Visibility: TableFeature = {
|
|
|
216
216
|
)
|
|
217
217
|
},
|
|
218
218
|
|
|
219
|
-
getColumnIsVisible: columnId => {
|
|
220
|
-
const column = instance.getColumn(columnId)
|
|
221
|
-
|
|
222
|
-
if (!column) {
|
|
223
|
-
throw new Error()
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
return (
|
|
227
|
-
instance.getState().columnVisibility?.[columnId] ??
|
|
228
|
-
column.defaultIsVisible ??
|
|
229
|
-
true
|
|
230
|
-
)
|
|
231
|
-
},
|
|
232
|
-
|
|
233
|
-
getColumnCanHide: columnId => {
|
|
234
|
-
const column = instance.getColumn(columnId)
|
|
235
|
-
|
|
236
|
-
if (!column) {
|
|
237
|
-
throw new Error()
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
return (
|
|
241
|
-
instance.options.enableHiding ??
|
|
242
|
-
column.enableHiding ??
|
|
243
|
-
column.defaultCanHide ??
|
|
244
|
-
true
|
|
245
|
-
)
|
|
246
|
-
},
|
|
247
|
-
|
|
248
219
|
getIsAllColumnsVisible: () =>
|
|
249
220
|
!instance.getAllLeafColumns().some(column => !column.getIsVisible?.()),
|
|
250
221
|
|
package/src/filterFns.ts
CHANGED
|
@@ -1,179 +1,95 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
arrIncludesSome,
|
|
11
|
-
equals,
|
|
12
|
-
weakEquals,
|
|
13
|
-
betweenNumberRange,
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export type BuiltInFilterFn = keyof typeof filterFns
|
|
17
|
-
|
|
18
|
-
function includesString<TGenerics extends TableGenerics>(
|
|
19
|
-
rows: Row<TGenerics>[],
|
|
20
|
-
columnIds: string[],
|
|
21
|
-
filterValue: unknown
|
|
22
|
-
) {
|
|
23
|
-
const search = String(filterValue).toLowerCase()
|
|
24
|
-
|
|
25
|
-
rows = rows.filter(row => {
|
|
26
|
-
return columnIds.some(id => {
|
|
27
|
-
return String(row.values[id]).toLowerCase().includes(search)
|
|
28
|
-
})
|
|
29
|
-
})
|
|
30
|
-
return rows
|
|
1
|
+
import { FilterFn } from './features/Filters'
|
|
2
|
+
|
|
3
|
+
const includesString: FilterFn<any> = (
|
|
4
|
+
row,
|
|
5
|
+
columnId: string,
|
|
6
|
+
filterValue: string
|
|
7
|
+
) => {
|
|
8
|
+
const search = filterValue.toLowerCase()
|
|
9
|
+
return row.getValue(columnId).toLowerCase().includes(search)
|
|
31
10
|
}
|
|
32
11
|
|
|
33
12
|
includesString.autoRemove = (val: any) => testFalsey(val)
|
|
34
13
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
filterValue:
|
|
39
|
-
) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
rows = rows.filter(row => {
|
|
43
|
-
return columnIds.some(id => {
|
|
44
|
-
return String(row.values[id]).includes(search)
|
|
45
|
-
})
|
|
46
|
-
})
|
|
47
|
-
return rows
|
|
14
|
+
const includesStringSensitive: FilterFn<any> = (
|
|
15
|
+
row,
|
|
16
|
+
columnId: string,
|
|
17
|
+
filterValue: string
|
|
18
|
+
) => {
|
|
19
|
+
return row.getValue(columnId).includes(filterValue)
|
|
48
20
|
}
|
|
49
21
|
|
|
50
22
|
includesStringSensitive.autoRemove = (val: any) => testFalsey(val)
|
|
51
23
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
filterValue:
|
|
56
|
-
) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
return rows.filter(row => {
|
|
60
|
-
return columnIds.some(id => {
|
|
61
|
-
const rowValue = row.values[id]
|
|
62
|
-
return rowValue !== undefined
|
|
63
|
-
? String(rowValue).toLowerCase() === search
|
|
64
|
-
: true
|
|
65
|
-
})
|
|
66
|
-
})
|
|
24
|
+
const equalsString: FilterFn<any> = (
|
|
25
|
+
row,
|
|
26
|
+
columnId: string,
|
|
27
|
+
filterValue: string
|
|
28
|
+
) => {
|
|
29
|
+
return row.getValue(columnId).toLowerCase() === filterValue.toLowerCase()
|
|
67
30
|
}
|
|
68
31
|
|
|
69
32
|
equalsString.autoRemove = (val: any) => testFalsey(val)
|
|
70
33
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
34
|
+
const arrIncludes: FilterFn<any> = (
|
|
35
|
+
row,
|
|
36
|
+
columnId: string,
|
|
74
37
|
filterValue: unknown
|
|
75
|
-
) {
|
|
76
|
-
|
|
77
|
-
return rows.filter(row => {
|
|
78
|
-
return columnIds.some(id => {
|
|
79
|
-
const rowValue = row.values[id]
|
|
80
|
-
return rowValue !== undefined ? String(rowValue) === search : true
|
|
81
|
-
})
|
|
82
|
-
})
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
equalsStringSensitive.autoRemove = (val: any) => testFalsey(val)
|
|
86
|
-
|
|
87
|
-
function arrIncludes<TGenerics extends TableGenerics>(
|
|
88
|
-
rows: Row<TGenerics>[],
|
|
89
|
-
columnIds: string[],
|
|
90
|
-
filterValue: unknown
|
|
91
|
-
) {
|
|
92
|
-
return rows.filter(row => {
|
|
93
|
-
return columnIds.some(id => {
|
|
94
|
-
const rowValue = row.values[id]
|
|
95
|
-
return rowValue.includes(filterValue)
|
|
96
|
-
})
|
|
97
|
-
})
|
|
38
|
+
) => {
|
|
39
|
+
return row.getValue(columnId).includes(filterValue)
|
|
98
40
|
}
|
|
99
41
|
|
|
100
42
|
arrIncludes.autoRemove = (val: any) => testFalsey(val) || !val?.length
|
|
101
43
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
44
|
+
const arrIncludesAll: FilterFn<any> = (
|
|
45
|
+
row,
|
|
46
|
+
columnId: string,
|
|
105
47
|
filterValue: unknown[]
|
|
106
|
-
) {
|
|
107
|
-
return
|
|
108
|
-
return columnIds.some(id => {
|
|
109
|
-
const rowValue = row.values[id]
|
|
110
|
-
return (
|
|
111
|
-
rowValue &&
|
|
112
|
-
rowValue.length &&
|
|
113
|
-
filterValue.every(val => rowValue.includes(val))
|
|
114
|
-
)
|
|
115
|
-
})
|
|
116
|
-
})
|
|
48
|
+
) => {
|
|
49
|
+
return !filterValue.some(val => !row.getValue(columnId).includes(val))
|
|
117
50
|
}
|
|
118
51
|
|
|
119
52
|
arrIncludesAll.autoRemove = (val: any) => testFalsey(val) || !val?.length
|
|
120
53
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
54
|
+
const arrIncludesSome: FilterFn<any> = (
|
|
55
|
+
row,
|
|
56
|
+
columnId: string,
|
|
124
57
|
filterValue: unknown[]
|
|
125
|
-
) {
|
|
126
|
-
return
|
|
127
|
-
return columnIds.some(id => {
|
|
128
|
-
const rowValue = row.values[id]
|
|
129
|
-
return (
|
|
130
|
-
rowValue &&
|
|
131
|
-
rowValue.length &&
|
|
132
|
-
filterValue.some(val => rowValue.includes(val))
|
|
133
|
-
)
|
|
134
|
-
})
|
|
135
|
-
})
|
|
58
|
+
) => {
|
|
59
|
+
return filterValue.some(val => row.getValue(columnId).includes(val))
|
|
136
60
|
}
|
|
137
61
|
|
|
138
62
|
arrIncludesSome.autoRemove = (val: any) => testFalsey(val) || !val?.length
|
|
139
63
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
columnIds: string[],
|
|
143
|
-
filterValue: unknown
|
|
144
|
-
) {
|
|
145
|
-
return rows.filter(row => {
|
|
146
|
-
return columnIds.some(id => {
|
|
147
|
-
const rowValue = row.values[id]
|
|
148
|
-
return rowValue === filterValue
|
|
149
|
-
})
|
|
150
|
-
})
|
|
64
|
+
const equals: FilterFn<any> = (row, columnId: string, filterValue: unknown) => {
|
|
65
|
+
return row.getValue(columnId) === filterValue
|
|
151
66
|
}
|
|
152
67
|
|
|
153
68
|
equals.autoRemove = (val: any) => testFalsey(val)
|
|
154
69
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
70
|
+
const weakEquals: FilterFn<any> = (
|
|
71
|
+
row,
|
|
72
|
+
columnId: string,
|
|
158
73
|
filterValue: unknown
|
|
159
|
-
) {
|
|
160
|
-
return
|
|
161
|
-
return columnIds.some(id => {
|
|
162
|
-
const rowValue = row.values[id]
|
|
163
|
-
// eslint-disable-next-line eqeqeq
|
|
164
|
-
return rowValue == filterValue
|
|
165
|
-
})
|
|
166
|
-
})
|
|
74
|
+
) => {
|
|
75
|
+
return row.getValue(columnId) == filterValue
|
|
167
76
|
}
|
|
168
77
|
|
|
169
78
|
weakEquals.autoRemove = (val: any) => testFalsey(val)
|
|
170
79
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
filterValue: [
|
|
175
|
-
) {
|
|
176
|
-
let [
|
|
80
|
+
const inNumberRange: FilterFn<any> = (
|
|
81
|
+
row,
|
|
82
|
+
columnId: string,
|
|
83
|
+
filterValue: [number, number]
|
|
84
|
+
) => {
|
|
85
|
+
let [min, max] = filterValue
|
|
86
|
+
|
|
87
|
+
const rowValue = row.getValue(columnId)
|
|
88
|
+
return rowValue >= min && rowValue <= max
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
inNumberRange.resolveFilterValue = (val: [any, any]) => {
|
|
92
|
+
let [unsafeMin, unsafeMax] = val
|
|
177
93
|
|
|
178
94
|
let parsedMin =
|
|
179
95
|
typeof unsafeMin !== 'number' ? parseFloat(unsafeMin as string) : unsafeMin
|
|
@@ -190,17 +106,28 @@ function betweenNumberRange<TGenerics extends TableGenerics>(
|
|
|
190
106
|
max = temp
|
|
191
107
|
}
|
|
192
108
|
|
|
193
|
-
return
|
|
194
|
-
return columnIds.some(id => {
|
|
195
|
-
const rowValue = row.values[id]
|
|
196
|
-
return rowValue >= min && rowValue <= max
|
|
197
|
-
})
|
|
198
|
-
})
|
|
109
|
+
return [min, max] as const
|
|
199
110
|
}
|
|
200
111
|
|
|
201
|
-
|
|
112
|
+
inNumberRange.autoRemove = (val: any) =>
|
|
202
113
|
testFalsey(val) || (testFalsey(val[0]) && testFalsey(val[1]))
|
|
203
114
|
|
|
115
|
+
// Export
|
|
116
|
+
|
|
117
|
+
export const filterFns = {
|
|
118
|
+
includesString,
|
|
119
|
+
includesStringSensitive,
|
|
120
|
+
equalsString,
|
|
121
|
+
arrIncludes,
|
|
122
|
+
arrIncludesAll,
|
|
123
|
+
arrIncludesSome,
|
|
124
|
+
equals,
|
|
125
|
+
weakEquals,
|
|
126
|
+
inNumberRange,
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export type BuiltInFilterFn = keyof typeof filterFns
|
|
130
|
+
|
|
204
131
|
// Utils
|
|
205
132
|
|
|
206
133
|
function testFalsey(val: any) {
|
package/src/index.ts
CHANGED
|
@@ -15,11 +15,18 @@ export * from './features/Sorting'
|
|
|
15
15
|
export * from './features/Visibility'
|
|
16
16
|
export * from './features/Expanding'
|
|
17
17
|
export * from './utils'
|
|
18
|
-
export * from './utils/
|
|
19
|
-
export * from './utils/
|
|
20
|
-
export * from './utils/
|
|
21
|
-
export * from './utils/
|
|
22
|
-
export * from './utils/
|
|
18
|
+
export * from './utils/getCoreRowModel'
|
|
19
|
+
export * from './utils/getFilteredRowModel'
|
|
20
|
+
export * from './utils/getFacetedRowModel'
|
|
21
|
+
export * from './utils/getFacetedUniqueValues'
|
|
22
|
+
export * from './utils/getFacetedMinMaxValues'
|
|
23
|
+
export * from './utils/getSortedRowModel'
|
|
23
24
|
export * from './utils/getGroupedRowModel'
|
|
24
25
|
export * from './utils/getExpandedRowModel'
|
|
25
26
|
export * from './utils/getPaginationRowModel'
|
|
27
|
+
// Experimental Async
|
|
28
|
+
// export * from './utils/getCoreRowModelAsync'
|
|
29
|
+
// export * from './utils/getFilteredRowModelAsync'
|
|
30
|
+
// export * from './utils/getFacetedRowModelAsync'
|
|
31
|
+
// export * from './utils/getFacetedUniqueValuesAsync'
|
|
32
|
+
// export * from './utils/getFacetedMinMaxValuesAsync'
|
package/src/sortingFns.ts
CHANGED
|
@@ -19,8 +19,8 @@ function alphanumeric<TGenerics extends TableGenerics>(
|
|
|
19
19
|
columnId: string
|
|
20
20
|
) {
|
|
21
21
|
return compareAlphanumeric(
|
|
22
|
-
toString(rowA.
|
|
23
|
-
toString(rowB.
|
|
22
|
+
toString(rowA.getValue(columnId)).toLowerCase(),
|
|
23
|
+
toString(rowB.getValue(columnId)).toLowerCase()
|
|
24
24
|
)
|
|
25
25
|
}
|
|
26
26
|
|
|
@@ -30,8 +30,8 @@ function alphanumericCaseSensitive<TGenerics extends TableGenerics>(
|
|
|
30
30
|
columnId: string
|
|
31
31
|
) {
|
|
32
32
|
return compareAlphanumeric(
|
|
33
|
-
toString(rowA.
|
|
34
|
-
toString(rowB.
|
|
33
|
+
toString(rowA.getValue(columnId)),
|
|
34
|
+
toString(rowB.getValue(columnId))
|
|
35
35
|
)
|
|
36
36
|
}
|
|
37
37
|
|
|
@@ -90,8 +90,8 @@ function text<TGenerics extends TableGenerics>(
|
|
|
90
90
|
columnId: string
|
|
91
91
|
) {
|
|
92
92
|
return compareBasic(
|
|
93
|
-
toString(rowA.
|
|
94
|
-
toString(rowB.
|
|
93
|
+
toString(rowA.getValue(columnId)).toLowerCase(),
|
|
94
|
+
toString(rowB.getValue(columnId)).toLowerCase()
|
|
95
95
|
)
|
|
96
96
|
}
|
|
97
97
|
|
|
@@ -103,8 +103,8 @@ function textCaseSensitive<TGenerics extends TableGenerics>(
|
|
|
103
103
|
columnId: string
|
|
104
104
|
) {
|
|
105
105
|
return compareBasic(
|
|
106
|
-
toString(rowA.
|
|
107
|
-
toString(rowB.
|
|
106
|
+
toString(rowA.getValue(columnId)),
|
|
107
|
+
toString(rowB.getValue(columnId))
|
|
108
108
|
)
|
|
109
109
|
}
|
|
110
110
|
|
|
@@ -114,8 +114,8 @@ function datetime<TGenerics extends TableGenerics>(
|
|
|
114
114
|
columnId: string
|
|
115
115
|
) {
|
|
116
116
|
return compareBasic(
|
|
117
|
-
(rowA.
|
|
118
|
-
(rowB.
|
|
117
|
+
(rowA.getValue(columnId) as Date).getTime(),
|
|
118
|
+
(rowB.getValue(columnId) as Date).getTime()
|
|
119
119
|
)
|
|
120
120
|
}
|
|
121
121
|
|
|
@@ -124,7 +124,7 @@ function basic<TGenerics extends TableGenerics>(
|
|
|
124
124
|
rowB: Row<TGenerics>,
|
|
125
125
|
columnId: string
|
|
126
126
|
) {
|
|
127
|
-
return compareBasic(rowA.
|
|
127
|
+
return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId))
|
|
128
128
|
}
|
|
129
129
|
|
|
130
130
|
// Utils
|
package/src/types.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CoreOptions, CoreTableState,
|
|
1
|
+
import { CoreOptions, CoreTableState, CoreInstance } from './core'
|
|
2
2
|
import { ColumnsOptions, CoreColumn, CoreColumnDef } from './features/Columns'
|
|
3
3
|
import {
|
|
4
4
|
VisibilityInstance,
|
|
@@ -28,6 +28,7 @@ import {
|
|
|
28
28
|
FiltersColumnDef,
|
|
29
29
|
FiltersInstance,
|
|
30
30
|
FiltersOptions,
|
|
31
|
+
FiltersRow,
|
|
31
32
|
FiltersTableState,
|
|
32
33
|
} from './features/Filters'
|
|
33
34
|
import {
|
|
@@ -106,7 +107,7 @@ export type TableFeature = {
|
|
|
106
107
|
}
|
|
107
108
|
|
|
108
109
|
export type TableInstance<TGenerics extends TableGenerics> =
|
|
109
|
-
|
|
110
|
+
CoreInstance<TGenerics> &
|
|
110
111
|
ColumnsInstance<TGenerics> &
|
|
111
112
|
RowsInstance<TGenerics> &
|
|
112
113
|
CellsInstance<TGenerics> &
|
|
@@ -167,6 +168,7 @@ export type Row<TGenerics extends TableGenerics> = CoreRow<TGenerics> &
|
|
|
167
168
|
CellsRow<TGenerics> &
|
|
168
169
|
VisibilityRow<TGenerics> &
|
|
169
170
|
ColumnPinningRow<TGenerics> &
|
|
171
|
+
FiltersRow<TGenerics> &
|
|
170
172
|
GroupingRow &
|
|
171
173
|
RowSelectionRow &
|
|
172
174
|
ExpandedRow
|
|
@@ -212,7 +214,7 @@ export type CoreCell<TGenerics extends TableGenerics> = {
|
|
|
212
214
|
id: string
|
|
213
215
|
rowId: string
|
|
214
216
|
columnId: string
|
|
215
|
-
|
|
217
|
+
getValue: () => TGenerics['Value']
|
|
216
218
|
row: Row<TGenerics>
|
|
217
219
|
column: Column<TGenerics>
|
|
218
220
|
renderCell: () => string | null | TGenerics['Rendered']
|
|
@@ -226,8 +228,6 @@ export type CoreHeader<TGenerics extends TableGenerics> = {
|
|
|
226
228
|
index: number
|
|
227
229
|
depth: number
|
|
228
230
|
column: Column<TGenerics>
|
|
229
|
-
getStart: () => number
|
|
230
|
-
getSize: () => number
|
|
231
231
|
headerGroup: HeaderGroup<TGenerics>
|
|
232
232
|
subHeaders: Header<TGenerics>[]
|
|
233
233
|
colSpan?: number
|
|
@@ -249,17 +249,4 @@ export type HeaderGroup<TGenerics extends TableGenerics> = {
|
|
|
249
249
|
headers: Header<TGenerics>[]
|
|
250
250
|
}
|
|
251
251
|
|
|
252
|
-
export type HeaderRenderProps<THeader> = {
|
|
253
|
-
header: THeader
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
export type FooterRenderProps<THeader> = {
|
|
257
|
-
header: THeader
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
export type CellRenderProps<TCell, TRow> = {
|
|
261
|
-
cell: TCell
|
|
262
|
-
row: TRow
|
|
263
|
-
}
|
|
264
|
-
|
|
265
252
|
export type NoInfer<A extends any> = [A][A extends any ? 0 : never]
|