@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
package/src/features/Grouping.ts
CHANGED
|
@@ -45,11 +45,10 @@ export type GroupingColumnDef<TGenerics extends TableGenerics> = {
|
|
|
45
45
|
row: Row<TGenerics>
|
|
46
46
|
column: Column<TGenerics>
|
|
47
47
|
cell: Cell<TGenerics>
|
|
48
|
-
|
|
48
|
+
getValue: () => TGenerics['Value']
|
|
49
49
|
}
|
|
50
50
|
>
|
|
51
51
|
enableGrouping?: boolean
|
|
52
|
-
defaultCanGroup?: boolean
|
|
53
52
|
}
|
|
54
53
|
|
|
55
54
|
export type GroupingColumn<TGenerics extends TableGenerics> = {
|
|
@@ -59,12 +58,15 @@ export type GroupingColumn<TGenerics extends TableGenerics> = {
|
|
|
59
58
|
getGroupedIndex: () => number
|
|
60
59
|
toggleGrouping: () => void
|
|
61
60
|
getToggleGroupingHandler: () => () => void
|
|
61
|
+
getColumnAutoAggregationFn: () => AggregationFn<TGenerics> | undefined
|
|
62
|
+
getColumnAggregationFn: () => AggregationFn<TGenerics> | undefined
|
|
62
63
|
}
|
|
63
64
|
|
|
64
65
|
export type GroupingRow = {
|
|
65
66
|
groupingColumnId?: string
|
|
66
67
|
groupingValue?: any
|
|
67
68
|
getIsGrouped: () => boolean
|
|
69
|
+
groupingValuesCache: Record<string, any>
|
|
68
70
|
}
|
|
69
71
|
|
|
70
72
|
export type GroupingCell<TGenerics extends TableGenerics> = {
|
|
@@ -96,20 +98,8 @@ export type GroupingOptions<TGenerics extends TableGenerics> = {
|
|
|
96
98
|
export type GroupingColumnMode = false | 'reorder' | 'remove'
|
|
97
99
|
|
|
98
100
|
export type GroupingInstance<TGenerics extends TableGenerics> = {
|
|
99
|
-
getColumnAutoAggregationFn: (
|
|
100
|
-
columnId: string
|
|
101
|
-
) => AggregationFn<TGenerics> | undefined
|
|
102
|
-
getColumnAggregationFn: (
|
|
103
|
-
columnId: string
|
|
104
|
-
) => AggregationFn<TGenerics> | undefined
|
|
105
101
|
setGrouping: (updater: Updater<GroupingState>) => void
|
|
106
102
|
resetGrouping: () => void
|
|
107
|
-
toggleColumnGrouping: (columnId: string) => void
|
|
108
|
-
getColumnCanGroup: (columnId: string) => boolean
|
|
109
|
-
getColumnIsGrouped: (columnId: string) => boolean
|
|
110
|
-
getColumnGroupedIndex: (columnId: string) => number
|
|
111
|
-
getToggleGroupingHandler: (columnId: string) => undefined | (() => void)
|
|
112
|
-
getRowIsGrouped: (rowId: string) => boolean
|
|
113
103
|
getPreGroupedRowModel: () => RowModel<TGenerics>
|
|
114
104
|
getGroupedRowModel: () => RowModel<TGenerics>
|
|
115
105
|
_getGroupedRowModel?: () => RowModel<TGenerics>
|
|
@@ -147,24 +137,45 @@ export const Grouping: TableFeature = {
|
|
|
147
137
|
instance: TableInstance<TGenerics>
|
|
148
138
|
): GroupingColumn<TGenerics> => {
|
|
149
139
|
return {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
instance.getToggleGroupingHandler(column.id)!,
|
|
157
|
-
}
|
|
158
|
-
},
|
|
140
|
+
toggleGrouping: () => {
|
|
141
|
+
instance.setGrouping(old => {
|
|
142
|
+
// Find any existing grouping for this column
|
|
143
|
+
if (old?.includes(column.id)) {
|
|
144
|
+
return old.filter(d => d !== column.id)
|
|
145
|
+
}
|
|
159
146
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
147
|
+
return [...(old ?? []), column.id]
|
|
148
|
+
})
|
|
149
|
+
},
|
|
150
|
+
|
|
151
|
+
getCanGroup: () => {
|
|
152
|
+
return (
|
|
153
|
+
column.enableGrouping ??
|
|
154
|
+
true ??
|
|
155
|
+
instance.options.enableGrouping ??
|
|
156
|
+
true ??
|
|
157
|
+
!!column.accessorFn
|
|
158
|
+
)
|
|
159
|
+
},
|
|
160
|
+
|
|
161
|
+
getIsGrouped: () => {
|
|
162
|
+
return instance.getState().grouping?.includes(column.id)
|
|
163
|
+
},
|
|
164
|
+
|
|
165
|
+
getGroupedIndex: () => instance.getState().grouping?.indexOf(column.id),
|
|
166
|
+
|
|
167
|
+
getToggleGroupingHandler: () => {
|
|
168
|
+
const canGroup = column.getCanGroup()
|
|
169
|
+
|
|
170
|
+
return () => {
|
|
171
|
+
if (!canGroup) return
|
|
172
|
+
column.toggleGrouping()
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
getColumnAutoAggregationFn: () => {
|
|
165
176
|
const firstRow = instance.getCoreRowModel().flatRows[0]
|
|
166
177
|
|
|
167
|
-
const value = firstRow?.
|
|
178
|
+
const value = firstRow?.getValue(column.id)
|
|
168
179
|
|
|
169
180
|
if (typeof value === 'number') {
|
|
170
181
|
return aggregationFns.sum
|
|
@@ -176,8 +187,7 @@ export const Grouping: TableFeature = {
|
|
|
176
187
|
|
|
177
188
|
return aggregationFns.count
|
|
178
189
|
},
|
|
179
|
-
getColumnAggregationFn:
|
|
180
|
-
const column = instance.getColumn(columnId)
|
|
190
|
+
getColumnAggregationFn: () => {
|
|
181
191
|
const userAggregationFns = instance.options.aggregationFns
|
|
182
192
|
|
|
183
193
|
if (!column) {
|
|
@@ -187,7 +197,7 @@ export const Grouping: TableFeature = {
|
|
|
187
197
|
return isFunction(column.aggregationFn)
|
|
188
198
|
? column.aggregationFn
|
|
189
199
|
: column.aggregationFn === 'auto'
|
|
190
|
-
?
|
|
200
|
+
? column.getColumnAutoAggregationFn()
|
|
191
201
|
: (userAggregationFns as Record<string, any>)?.[
|
|
192
202
|
column.aggregationFn as string
|
|
193
203
|
] ??
|
|
@@ -195,58 +205,19 @@ export const Grouping: TableFeature = {
|
|
|
195
205
|
column.aggregationFn as BuiltInAggregationFn
|
|
196
206
|
] as AggregationFn<TGenerics>)
|
|
197
207
|
},
|
|
208
|
+
}
|
|
209
|
+
},
|
|
198
210
|
|
|
211
|
+
createInstance: <TGenerics extends TableGenerics>(
|
|
212
|
+
instance: TableInstance<TGenerics>
|
|
213
|
+
): GroupingInstance<TGenerics> => {
|
|
214
|
+
return {
|
|
199
215
|
setGrouping: updater => instance.options.onGroupingChange?.(updater),
|
|
200
216
|
|
|
201
|
-
toggleColumnGrouping: columnId => {
|
|
202
|
-
instance.setGrouping(old => {
|
|
203
|
-
// Find any existing grouping for this column
|
|
204
|
-
if (old?.includes(columnId)) {
|
|
205
|
-
return old.filter(d => d !== columnId)
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
return [...(old ?? []), columnId]
|
|
209
|
-
})
|
|
210
|
-
},
|
|
211
|
-
|
|
212
|
-
getColumnCanGroup: columnId => {
|
|
213
|
-
const column = instance.getColumn(columnId)
|
|
214
|
-
|
|
215
|
-
if (!column) {
|
|
216
|
-
throw new Error()
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
return (
|
|
220
|
-
column.enableGrouping ??
|
|
221
|
-
instance.options.enableGrouping ??
|
|
222
|
-
column.defaultCanGroup ??
|
|
223
|
-
!!column.accessorFn
|
|
224
|
-
)
|
|
225
|
-
},
|
|
226
|
-
|
|
227
|
-
getColumnIsGrouped: columnId => {
|
|
228
|
-
return instance.getState().grouping?.includes(columnId)
|
|
229
|
-
},
|
|
230
|
-
|
|
231
|
-
getColumnGroupedIndex: columnId =>
|
|
232
|
-
instance.getState().grouping?.indexOf(columnId),
|
|
233
|
-
|
|
234
217
|
resetGrouping: () => {
|
|
235
218
|
instance.setGrouping(instance.initialState?.grouping ?? [])
|
|
236
219
|
},
|
|
237
220
|
|
|
238
|
-
getToggleGroupingHandler: columnId => {
|
|
239
|
-
const column = instance.getColumn(columnId)
|
|
240
|
-
const canGroup = column.getCanGroup()
|
|
241
|
-
|
|
242
|
-
return () => {
|
|
243
|
-
if (!canGroup) return
|
|
244
|
-
column.toggleGrouping?.()
|
|
245
|
-
}
|
|
246
|
-
},
|
|
247
|
-
|
|
248
|
-
getRowIsGrouped: rowId => !!instance.getRow(rowId)?.groupingColumnId,
|
|
249
|
-
|
|
250
221
|
getPreGroupedRowModel: () => instance.getSortedRowModel(),
|
|
251
222
|
getGroupedRowModel: () => {
|
|
252
223
|
if (
|
|
@@ -271,7 +242,8 @@ export const Grouping: TableFeature = {
|
|
|
271
242
|
instance: TableInstance<TGenerics>
|
|
272
243
|
): GroupingRow => {
|
|
273
244
|
return {
|
|
274
|
-
getIsGrouped: () =>
|
|
245
|
+
getIsGrouped: () => !!row.groupingColumnId,
|
|
246
|
+
groupingValuesCache: {},
|
|
275
247
|
}
|
|
276
248
|
},
|
|
277
249
|
|
|
@@ -298,7 +270,7 @@ export const Grouping: TableFeature = {
|
|
|
298
270
|
column,
|
|
299
271
|
row,
|
|
300
272
|
cell,
|
|
301
|
-
|
|
273
|
+
getValue: cell.getValue,
|
|
302
274
|
})
|
|
303
275
|
: null
|
|
304
276
|
},
|
package/src/features/Headers.ts
CHANGED
|
@@ -72,30 +72,6 @@ export const Headers = {
|
|
|
72
72
|
colSpan: 0,
|
|
73
73
|
rowSpan: 0,
|
|
74
74
|
headerGroup: null!,
|
|
75
|
-
getSize: () => {
|
|
76
|
-
let sum = 0
|
|
77
|
-
|
|
78
|
-
const recurse = (header: CoreHeader<TGenerics>) => {
|
|
79
|
-
if (header.subHeaders.length) {
|
|
80
|
-
header.subHeaders.forEach(recurse)
|
|
81
|
-
} else {
|
|
82
|
-
sum += header.column.getSize() ?? 0
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
recurse(header)
|
|
87
|
-
|
|
88
|
-
return sum
|
|
89
|
-
},
|
|
90
|
-
getStart: () => {
|
|
91
|
-
if (header.index > 0) {
|
|
92
|
-
const prevSiblingHeader =
|
|
93
|
-
header.headerGroup.headers[header.index - 1]
|
|
94
|
-
return prevSiblingHeader.getStart() + prevSiblingHeader.getSize()
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
return 0
|
|
98
|
-
},
|
|
99
75
|
getLeafHeaders: (): Header<TGenerics>[] => {
|
|
100
76
|
const leafHeaders: CoreHeader<TGenerics>[] = []
|
|
101
77
|
|
|
@@ -163,7 +139,7 @@ export const Headers = {
|
|
|
163
139
|
return headerGroups
|
|
164
140
|
},
|
|
165
141
|
{
|
|
166
|
-
key: 'getHeaderGroups',
|
|
142
|
+
key: process.env.NODE_ENV === 'development' && 'getHeaderGroups',
|
|
167
143
|
debug: () =>
|
|
168
144
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
169
145
|
}
|
|
@@ -183,7 +159,8 @@ export const Headers = {
|
|
|
183
159
|
return buildHeaderGroups(allColumns, leafColumns, instance, 'center')
|
|
184
160
|
},
|
|
185
161
|
{
|
|
186
|
-
key:
|
|
162
|
+
key:
|
|
163
|
+
process.env.NODE_ENV === 'development' && 'getCenterHeaderGroups',
|
|
187
164
|
debug: () =>
|
|
188
165
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
189
166
|
}
|
|
@@ -200,7 +177,7 @@ export const Headers = {
|
|
|
200
177
|
return buildHeaderGroups(allColumns, leafColumns, instance, 'left')
|
|
201
178
|
},
|
|
202
179
|
{
|
|
203
|
-
key: 'getLeftHeaderGroups',
|
|
180
|
+
key: process.env.NODE_ENV === 'development' && 'getLeftHeaderGroups',
|
|
204
181
|
debug: () =>
|
|
205
182
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
206
183
|
}
|
|
@@ -217,7 +194,7 @@ export const Headers = {
|
|
|
217
194
|
return buildHeaderGroups(allColumns, leafColumns, instance, 'right')
|
|
218
195
|
},
|
|
219
196
|
{
|
|
220
|
-
key: 'getRightHeaderGroups',
|
|
197
|
+
key: process.env.NODE_ENV === 'development' && 'getRightHeaderGroups',
|
|
221
198
|
debug: () =>
|
|
222
199
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
223
200
|
}
|
|
@@ -231,7 +208,7 @@ export const Headers = {
|
|
|
231
208
|
return [...headerGroups].reverse()
|
|
232
209
|
},
|
|
233
210
|
{
|
|
234
|
-
key: 'getFooterGroups',
|
|
211
|
+
key: process.env.NODE_ENV === 'development' && 'getFooterGroups',
|
|
235
212
|
debug: () =>
|
|
236
213
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
237
214
|
}
|
|
@@ -243,7 +220,7 @@ export const Headers = {
|
|
|
243
220
|
return [...headerGroups].reverse()
|
|
244
221
|
},
|
|
245
222
|
{
|
|
246
|
-
key: 'getLeftFooterGroups',
|
|
223
|
+
key: process.env.NODE_ENV === 'development' && 'getLeftFooterGroups',
|
|
247
224
|
debug: () =>
|
|
248
225
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
249
226
|
}
|
|
@@ -255,7 +232,8 @@ export const Headers = {
|
|
|
255
232
|
return [...headerGroups].reverse()
|
|
256
233
|
},
|
|
257
234
|
{
|
|
258
|
-
key:
|
|
235
|
+
key:
|
|
236
|
+
process.env.NODE_ENV === 'development' && 'getCenterFooterGroups',
|
|
259
237
|
debug: () =>
|
|
260
238
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
261
239
|
}
|
|
@@ -267,7 +245,7 @@ export const Headers = {
|
|
|
267
245
|
return [...headerGroups].reverse()
|
|
268
246
|
},
|
|
269
247
|
{
|
|
270
|
-
key: 'getRightFooterGroups',
|
|
248
|
+
key: process.env.NODE_ENV === 'development' && 'getRightFooterGroups',
|
|
271
249
|
debug: () =>
|
|
272
250
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
273
251
|
}
|
|
@@ -285,7 +263,7 @@ export const Headers = {
|
|
|
285
263
|
.flat()
|
|
286
264
|
},
|
|
287
265
|
{
|
|
288
|
-
key: 'getFlatHeaders',
|
|
266
|
+
key: process.env.NODE_ENV === 'development' && 'getFlatHeaders',
|
|
289
267
|
debug: () =>
|
|
290
268
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
291
269
|
}
|
|
@@ -301,7 +279,7 @@ export const Headers = {
|
|
|
301
279
|
.flat()
|
|
302
280
|
},
|
|
303
281
|
{
|
|
304
|
-
key: 'getLeftFlatHeaders',
|
|
282
|
+
key: process.env.NODE_ENV === 'development' && 'getLeftFlatHeaders',
|
|
305
283
|
debug: () =>
|
|
306
284
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
307
285
|
}
|
|
@@ -317,7 +295,7 @@ export const Headers = {
|
|
|
317
295
|
.flat()
|
|
318
296
|
},
|
|
319
297
|
{
|
|
320
|
-
key: 'getCenterFlatHeaders',
|
|
298
|
+
key: process.env.NODE_ENV === 'development' && 'getCenterFlatHeaders',
|
|
321
299
|
debug: () =>
|
|
322
300
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
323
301
|
}
|
|
@@ -333,7 +311,7 @@ export const Headers = {
|
|
|
333
311
|
.flat()
|
|
334
312
|
},
|
|
335
313
|
{
|
|
336
|
-
key: 'getRightFlatHeaders',
|
|
314
|
+
key: process.env.NODE_ENV === 'development' && 'getRightFlatHeaders',
|
|
337
315
|
debug: () =>
|
|
338
316
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
339
317
|
}
|
|
@@ -347,7 +325,7 @@ export const Headers = {
|
|
|
347
325
|
return flatHeaders.filter(header => !header.subHeaders?.length)
|
|
348
326
|
},
|
|
349
327
|
{
|
|
350
|
-
key: 'getCenterLeafHeaders',
|
|
328
|
+
key: process.env.NODE_ENV === 'development' && 'getCenterLeafHeaders',
|
|
351
329
|
debug: () =>
|
|
352
330
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
353
331
|
}
|
|
@@ -359,7 +337,7 @@ export const Headers = {
|
|
|
359
337
|
return flatHeaders.filter(header => !header.subHeaders?.length)
|
|
360
338
|
},
|
|
361
339
|
{
|
|
362
|
-
key: 'getLeftLeafHeaders',
|
|
340
|
+
key: process.env.NODE_ENV === 'development' && 'getLeftLeafHeaders',
|
|
363
341
|
debug: () =>
|
|
364
342
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
365
343
|
}
|
|
@@ -371,7 +349,7 @@ export const Headers = {
|
|
|
371
349
|
return flatHeaders.filter(header => !header.subHeaders?.length)
|
|
372
350
|
},
|
|
373
351
|
{
|
|
374
|
-
key: 'getRightLeafHeaders',
|
|
352
|
+
key: process.env.NODE_ENV === 'development' && 'getRightLeafHeaders',
|
|
375
353
|
debug: () =>
|
|
376
354
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
377
355
|
}
|
|
@@ -395,7 +373,7 @@ export const Headers = {
|
|
|
395
373
|
.flat()
|
|
396
374
|
},
|
|
397
375
|
{
|
|
398
|
-
key: 'getLeafHeaders',
|
|
376
|
+
key: process.env.NODE_ENV === 'development' && 'getLeafHeaders',
|
|
399
377
|
debug: () =>
|
|
400
378
|
instance.options.debugAll ?? instance.options.debugHeaders,
|
|
401
379
|
}
|
package/src/features/Ordering.ts
CHANGED
|
@@ -100,7 +100,7 @@ export const Ordering: TableFeature = {
|
|
|
100
100
|
return orderColumns(orderedColumns, grouping, groupedColumnMode)
|
|
101
101
|
},
|
|
102
102
|
{
|
|
103
|
-
key: 'getOrderColumnsFn',
|
|
103
|
+
key: process.env.NODE_ENV === 'development' && 'getOrderColumnsFn',
|
|
104
104
|
// debug: () => instance.options.debugAll ?? instance.options.debugTable,
|
|
105
105
|
}
|
|
106
106
|
),
|
|
@@ -184,7 +184,7 @@ export const Pagination: TableFeature = {
|
|
|
184
184
|
return pageOptions
|
|
185
185
|
},
|
|
186
186
|
{
|
|
187
|
-
key: 'getPageOptions',
|
|
187
|
+
key: process.env.NODE_ENV === 'development' && 'getPageOptions',
|
|
188
188
|
debug: () => instance.options.debugAll ?? instance.options.debugTable,
|
|
189
189
|
}
|
|
190
190
|
),
|
package/src/features/Pinning.ts
CHANGED
|
@@ -50,10 +50,6 @@ export type ColumnPinningRow<TGenerics extends TableGenerics> = {
|
|
|
50
50
|
export type ColumnPinningInstance<TGenerics extends TableGenerics> = {
|
|
51
51
|
setColumnPinning: (updater: Updater<ColumnPinningState>) => void
|
|
52
52
|
resetColumnPinning: () => void
|
|
53
|
-
pinColumn: (columnId: string, position: ColumnPinningPosition) => void
|
|
54
|
-
getColumnCanPin: (columnId: string) => boolean
|
|
55
|
-
getColumnIsPinned: (columnId: string) => ColumnPinningPosition
|
|
56
|
-
getColumnPinnedIndex: (columnId: string) => number
|
|
57
53
|
getIsSomeColumnsPinned: () => boolean
|
|
58
54
|
getLeftLeafColumns: () => Column<TGenerics>[]
|
|
59
55
|
getRightLeafColumns: () => Column<TGenerics>[]
|
|
@@ -86,10 +82,69 @@ export const Pinning: TableFeature = {
|
|
|
86
82
|
instance: TableInstance<TGenerics>
|
|
87
83
|
): ColumnPinningColumn => {
|
|
88
84
|
return {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
85
|
+
pin: position => {
|
|
86
|
+
const columnIds = column
|
|
87
|
+
.getLeafColumns()
|
|
88
|
+
.map(d => d.id)
|
|
89
|
+
.filter(Boolean) as string[]
|
|
90
|
+
|
|
91
|
+
instance.setColumnPinning(old => {
|
|
92
|
+
if (position === 'right') {
|
|
93
|
+
return {
|
|
94
|
+
left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),
|
|
95
|
+
right: [
|
|
96
|
+
...(old?.right ?? []).filter(d => !columnIds?.includes(d)),
|
|
97
|
+
...columnIds,
|
|
98
|
+
],
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
if (position === 'left') {
|
|
103
|
+
return {
|
|
104
|
+
left: [
|
|
105
|
+
...(old?.left ?? []).filter(d => !columnIds?.includes(d)),
|
|
106
|
+
...columnIds,
|
|
107
|
+
],
|
|
108
|
+
right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
return {
|
|
113
|
+
left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),
|
|
114
|
+
right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),
|
|
115
|
+
}
|
|
116
|
+
})
|
|
117
|
+
},
|
|
118
|
+
|
|
119
|
+
getCanPin: () => {
|
|
120
|
+
const leafColumns = column.getLeafColumns()
|
|
121
|
+
|
|
122
|
+
return leafColumns.some(
|
|
123
|
+
d =>
|
|
124
|
+
(d.enablePinning ?? true) &&
|
|
125
|
+
(instance.options.enablePinning ?? true)
|
|
126
|
+
)
|
|
127
|
+
},
|
|
128
|
+
|
|
129
|
+
getIsPinned: () => {
|
|
130
|
+
const leafColumnIds = column.getLeafColumns().map(d => d.id)
|
|
131
|
+
|
|
132
|
+
const { left, right } = instance.getState().columnPinning
|
|
133
|
+
|
|
134
|
+
const isLeft = leafColumnIds.some(d => left?.includes(d))
|
|
135
|
+
const isRight = leafColumnIds.some(d => right?.includes(d))
|
|
136
|
+
|
|
137
|
+
return isLeft ? 'left' : isRight ? 'right' : false
|
|
138
|
+
},
|
|
139
|
+
|
|
140
|
+
getPinnedIndex: () => {
|
|
141
|
+
const position = column.getIsPinned()
|
|
142
|
+
|
|
143
|
+
return position
|
|
144
|
+
? instance.getState().columnPinning?.[position]?.indexOf(column.id) ??
|
|
145
|
+
-1
|
|
146
|
+
: 0
|
|
147
|
+
},
|
|
93
148
|
}
|
|
94
149
|
},
|
|
95
150
|
|
|
@@ -110,7 +165,9 @@ export const Pinning: TableFeature = {
|
|
|
110
165
|
return allCells.filter(d => !leftAndRight.includes(d.columnId))
|
|
111
166
|
},
|
|
112
167
|
{
|
|
113
|
-
key:
|
|
168
|
+
key:
|
|
169
|
+
process.env.NODE_ENV === 'production' &&
|
|
170
|
+
'row.getCenterVisibleCells',
|
|
114
171
|
debug: () => instance.options.debugAll ?? instance.options.debugRows,
|
|
115
172
|
}
|
|
116
173
|
),
|
|
@@ -129,7 +186,8 @@ export const Pinning: TableFeature = {
|
|
|
129
186
|
return cells
|
|
130
187
|
},
|
|
131
188
|
{
|
|
132
|
-
key:
|
|
189
|
+
key:
|
|
190
|
+
process.env.NODE_ENV === 'production' && 'row.getLeftVisibleCells',
|
|
133
191
|
debug: () => instance.options.debugAll ?? instance.options.debugRows,
|
|
134
192
|
}
|
|
135
193
|
),
|
|
@@ -147,7 +205,8 @@ export const Pinning: TableFeature = {
|
|
|
147
205
|
return cells
|
|
148
206
|
},
|
|
149
207
|
{
|
|
150
|
-
key:
|
|
208
|
+
key:
|
|
209
|
+
process.env.NODE_ENV === 'production' && 'row.getRightVisibleCells',
|
|
151
210
|
debug: () => instance.options.debugAll ?? instance.options.debugRows,
|
|
152
211
|
}
|
|
153
212
|
),
|
|
@@ -164,84 +223,6 @@ export const Pinning: TableFeature = {
|
|
|
164
223
|
resetColumnPinning: () =>
|
|
165
224
|
instance.setColumnPinning(instance.initialState?.columnPinning ?? {}),
|
|
166
225
|
|
|
167
|
-
pinColumn: (columnId, position) => {
|
|
168
|
-
const column = instance.getColumn(columnId)
|
|
169
|
-
|
|
170
|
-
const columnIds = column
|
|
171
|
-
?.getLeafColumns()
|
|
172
|
-
.map(d => d.id)
|
|
173
|
-
.filter(Boolean) as string[]
|
|
174
|
-
|
|
175
|
-
instance.setColumnPinning(old => {
|
|
176
|
-
if (position === 'right') {
|
|
177
|
-
return {
|
|
178
|
-
left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),
|
|
179
|
-
right: [
|
|
180
|
-
...(old?.right ?? []).filter(d => !columnIds?.includes(d)),
|
|
181
|
-
...columnIds,
|
|
182
|
-
],
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
if (position === 'left') {
|
|
187
|
-
return {
|
|
188
|
-
left: [
|
|
189
|
-
...(old?.left ?? []).filter(d => !columnIds?.includes(d)),
|
|
190
|
-
...columnIds,
|
|
191
|
-
],
|
|
192
|
-
right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
return {
|
|
197
|
-
left: (old?.left ?? []).filter(d => !columnIds?.includes(d)),
|
|
198
|
-
right: (old?.right ?? []).filter(d => !columnIds?.includes(d)),
|
|
199
|
-
}
|
|
200
|
-
})
|
|
201
|
-
},
|
|
202
|
-
|
|
203
|
-
getColumnCanPin: columnId => {
|
|
204
|
-
const column = instance.getColumn(columnId)
|
|
205
|
-
|
|
206
|
-
if (!column) {
|
|
207
|
-
throw new Error()
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
const leafColumns = column.getLeafColumns()
|
|
211
|
-
|
|
212
|
-
return leafColumns.some(
|
|
213
|
-
d =>
|
|
214
|
-
(d.enablePinning ?? true) &&
|
|
215
|
-
(instance.options.enablePinning ?? true)
|
|
216
|
-
)
|
|
217
|
-
},
|
|
218
|
-
|
|
219
|
-
getColumnIsPinned: columnId => {
|
|
220
|
-
const column = instance.getColumn(columnId)
|
|
221
|
-
|
|
222
|
-
if (!column) {
|
|
223
|
-
throw new Error()
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
const leafColumnIds = column.getLeafColumns().map(d => d.id)
|
|
227
|
-
|
|
228
|
-
const { left, right } = instance.getState().columnPinning
|
|
229
|
-
|
|
230
|
-
const isLeft = leafColumnIds.some(d => left?.includes(d))
|
|
231
|
-
const isRight = leafColumnIds.some(d => right?.includes(d))
|
|
232
|
-
|
|
233
|
-
return isLeft ? 'left' : isRight ? 'right' : false
|
|
234
|
-
},
|
|
235
|
-
|
|
236
|
-
getColumnPinnedIndex: columnId => {
|
|
237
|
-
const position = instance.getColumnIsPinned(columnId)
|
|
238
|
-
|
|
239
|
-
return position
|
|
240
|
-
? instance.getState().columnPinning?.[position]?.indexOf(columnId) ??
|
|
241
|
-
-1
|
|
242
|
-
: 0
|
|
243
|
-
},
|
|
244
|
-
|
|
245
226
|
getIsSomeColumnsPinned: () => {
|
|
246
227
|
const { left, right } = instance.getState().columnPinning
|
|
247
228
|
|
|
@@ -259,7 +240,7 @@ export const Pinning: TableFeature = {
|
|
|
259
240
|
.filter(Boolean)
|
|
260
241
|
},
|
|
261
242
|
{
|
|
262
|
-
key: 'getLeftLeafColumns',
|
|
243
|
+
key: process.env.NODE_ENV === 'development' && 'getLeftLeafColumns',
|
|
263
244
|
debug: () =>
|
|
264
245
|
instance.options.debugAll ?? instance.options.debugColumns,
|
|
265
246
|
}
|
|
@@ -276,7 +257,7 @@ export const Pinning: TableFeature = {
|
|
|
276
257
|
.filter(Boolean)
|
|
277
258
|
},
|
|
278
259
|
{
|
|
279
|
-
key: 'getRightLeafColumns',
|
|
260
|
+
key: process.env.NODE_ENV === 'development' && 'getRightLeafColumns',
|
|
280
261
|
debug: () =>
|
|
281
262
|
instance.options.debugAll ?? instance.options.debugColumns,
|
|
282
263
|
}
|
|
@@ -294,7 +275,7 @@ export const Pinning: TableFeature = {
|
|
|
294
275
|
return allColumns.filter(d => !leftAndRight.includes(d.id))
|
|
295
276
|
},
|
|
296
277
|
{
|
|
297
|
-
key: 'getCenterLeafColumns',
|
|
278
|
+
key: process.env.NODE_ENV === 'development' && 'getCenterLeafColumns',
|
|
298
279
|
debug: () =>
|
|
299
280
|
instance.options.debugAll ?? instance.options.debugColumns,
|
|
300
281
|
}
|