@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
|
@@ -12,17 +12,17 @@
|
|
|
12
12
|
|
|
13
13
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
14
14
|
|
|
15
|
-
var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
|
|
16
15
|
var utils = require('../utils.js');
|
|
17
16
|
|
|
18
17
|
//
|
|
19
|
-
|
|
20
|
-
getInitialState:
|
|
21
|
-
return
|
|
22
|
-
rowSelection: {}
|
|
23
|
-
|
|
18
|
+
const RowSelection = {
|
|
19
|
+
getInitialState: state => {
|
|
20
|
+
return {
|
|
21
|
+
rowSelection: {},
|
|
22
|
+
...state
|
|
23
|
+
};
|
|
24
24
|
},
|
|
25
|
-
getDefaultOptions:
|
|
25
|
+
getDefaultOptions: instance => {
|
|
26
26
|
return {
|
|
27
27
|
onRowSelectionChange: utils.makeStateUpdater('rowSelection', instance),
|
|
28
28
|
enableRowSelection: true,
|
|
@@ -33,31 +33,28 @@ var RowSelection = {
|
|
|
33
33
|
|
|
34
34
|
};
|
|
35
35
|
},
|
|
36
|
-
createInstance:
|
|
36
|
+
createInstance: instance => {
|
|
37
37
|
return {
|
|
38
|
-
setRowSelection:
|
|
39
|
-
|
|
40
|
-
},
|
|
41
|
-
resetRowSelection: function resetRowSelection() {
|
|
38
|
+
setRowSelection: updater => instance.options.onRowSelectionChange == null ? void 0 : instance.options.onRowSelectionChange(updater),
|
|
39
|
+
resetRowSelection: () => {
|
|
42
40
|
var _instance$initialStat;
|
|
43
41
|
|
|
44
42
|
return instance.setRowSelection((_instance$initialStat = instance.initialState.rowSelection) != null ? _instance$initialStat : {});
|
|
45
43
|
},
|
|
46
|
-
toggleAllRowsSelected:
|
|
47
|
-
instance.setRowSelection(
|
|
44
|
+
toggleAllRowsSelected: value => {
|
|
45
|
+
instance.setRowSelection(old => {
|
|
48
46
|
value = typeof value !== 'undefined' ? value : !instance.getIsAllRowsSelected();
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
var preGroupedFlatRows = instance.getPreGroupedRowModel().flatRows; // We don't use `mutateRowIsSelected` here for performance reasons.
|
|
47
|
+
const rowSelection = { ...old
|
|
48
|
+
};
|
|
49
|
+
const preGroupedFlatRows = instance.getPreGroupedRowModel().flatRows; // We don't use `mutateRowIsSelected` here for performance reasons.
|
|
53
50
|
// All of the rows are flat already, so it wouldn't be worth it
|
|
54
51
|
|
|
55
52
|
if (value) {
|
|
56
|
-
preGroupedFlatRows.forEach(
|
|
53
|
+
preGroupedFlatRows.forEach(row => {
|
|
57
54
|
rowSelection[row.id] = true;
|
|
58
55
|
});
|
|
59
56
|
} else {
|
|
60
|
-
preGroupedFlatRows.forEach(
|
|
57
|
+
preGroupedFlatRows.forEach(row => {
|
|
61
58
|
delete rowSelection[row.id];
|
|
62
59
|
});
|
|
63
60
|
}
|
|
@@ -65,34 +62,15 @@ var RowSelection = {
|
|
|
65
62
|
return rowSelection;
|
|
66
63
|
});
|
|
67
64
|
},
|
|
68
|
-
toggleAllPageRowsSelected:
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
instance.getRowModel().rows.forEach(function (row) {
|
|
75
|
-
mutateRowIsSelected(rowSelection, row.id, value, instance);
|
|
76
|
-
});
|
|
77
|
-
return rowSelection;
|
|
78
|
-
});
|
|
79
|
-
},
|
|
80
|
-
toggleRowSelected: function toggleRowSelected(rowId, value) {
|
|
81
|
-
var row = instance.getRow(rowId);
|
|
82
|
-
var isSelected = row.getIsSelected();
|
|
83
|
-
instance.setRowSelection(function (old) {
|
|
84
|
-
value = typeof value !== 'undefined' ? value : !isSelected;
|
|
85
|
-
|
|
86
|
-
if (isSelected === value) {
|
|
87
|
-
return old;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
var selectedRowIds = _rollupPluginBabelHelpers["extends"]({}, old);
|
|
91
|
-
|
|
92
|
-
mutateRowIsSelected(selectedRowIds, rowId, value, instance);
|
|
93
|
-
return selectedRowIds;
|
|
65
|
+
toggleAllPageRowsSelected: value => instance.setRowSelection(old => {
|
|
66
|
+
typeof value !== 'undefined' ? value : !instance.getIsAllPageRowsSelected();
|
|
67
|
+
const rowSelection = { ...old
|
|
68
|
+
};
|
|
69
|
+
instance.getRowModel().rows.forEach(row => {
|
|
70
|
+
mutateRowIsSelected(rowSelection, row.id, value, instance);
|
|
94
71
|
});
|
|
95
|
-
|
|
72
|
+
return rowSelection;
|
|
73
|
+
}),
|
|
96
74
|
// addRowSelectionRange: rowId => {
|
|
97
75
|
// const {
|
|
98
76
|
// rows,
|
|
@@ -143,12 +121,8 @@ var RowSelection = {
|
|
|
143
121
|
// })
|
|
144
122
|
// instance.setRowSelection(selectedRowIds)
|
|
145
123
|
// },
|
|
146
|
-
getPreSelectedRowModel:
|
|
147
|
-
|
|
148
|
-
},
|
|
149
|
-
getSelectedRowModel: utils.memo(function () {
|
|
150
|
-
return [instance.getState().rowSelection, instance.getCoreRowModel()];
|
|
151
|
-
}, function (rowSelection, rowModel) {
|
|
124
|
+
getPreSelectedRowModel: () => instance.getCoreRowModel(),
|
|
125
|
+
getSelectedRowModel: utils.memo(() => [instance.getState().rowSelection, instance.getCoreRowModel()], (rowSelection, rowModel) => {
|
|
152
126
|
if (!Object.keys(rowSelection).length) {
|
|
153
127
|
return {
|
|
154
128
|
rows: [],
|
|
@@ -159,16 +133,14 @@ var RowSelection = {
|
|
|
159
133
|
|
|
160
134
|
return selectRowsFn(instance, rowModel);
|
|
161
135
|
}, {
|
|
162
|
-
key: 'getSelectedRowModel',
|
|
163
|
-
debug:
|
|
136
|
+
key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',
|
|
137
|
+
debug: () => {
|
|
164
138
|
var _instance$options$deb;
|
|
165
139
|
|
|
166
140
|
return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
|
|
167
141
|
}
|
|
168
142
|
}),
|
|
169
|
-
getFilteredSelectedRowModel: utils.memo(
|
|
170
|
-
return [instance.getState().rowSelection, instance.getGlobalFilteredRowModel()];
|
|
171
|
-
}, function (rowSelection, rowModel) {
|
|
143
|
+
getFilteredSelectedRowModel: utils.memo(() => [instance.getState().rowSelection, instance.getFilteredRowModel()], (rowSelection, rowModel) => {
|
|
172
144
|
if (!Object.keys(rowSelection).length) {
|
|
173
145
|
return {
|
|
174
146
|
rows: [],
|
|
@@ -179,16 +151,14 @@ var RowSelection = {
|
|
|
179
151
|
|
|
180
152
|
return selectRowsFn(instance, rowModel);
|
|
181
153
|
}, {
|
|
182
|
-
key: 'getFilteredSelectedRowModel',
|
|
183
|
-
debug:
|
|
154
|
+
key: process.env.NODE_ENV === 'production' && 'getFilteredSelectedRowModel',
|
|
155
|
+
debug: () => {
|
|
184
156
|
var _instance$options$deb2;
|
|
185
157
|
|
|
186
158
|
return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugTable;
|
|
187
159
|
}
|
|
188
160
|
}),
|
|
189
|
-
getGroupedSelectedRowModel: utils.memo(
|
|
190
|
-
return [instance.getState().rowSelection, instance.getGroupedRowModel()];
|
|
191
|
-
}, function (rowSelection, rowModel) {
|
|
161
|
+
getGroupedSelectedRowModel: utils.memo(() => [instance.getState().rowSelection, instance.getGroupedRowModel()], (rowSelection, rowModel) => {
|
|
192
162
|
if (!Object.keys(rowSelection).length) {
|
|
193
163
|
return {
|
|
194
164
|
rows: [],
|
|
@@ -199,83 +169,14 @@ var RowSelection = {
|
|
|
199
169
|
|
|
200
170
|
return selectRowsFn(instance, rowModel);
|
|
201
171
|
}, {
|
|
202
|
-
key: 'getGroupedSelectedRowModel',
|
|
203
|
-
debug:
|
|
172
|
+
key: process.env.NODE_ENV === 'production' && 'getGroupedSelectedRowModel',
|
|
173
|
+
debug: () => {
|
|
204
174
|
var _instance$options$deb3;
|
|
205
175
|
|
|
206
176
|
return (_instance$options$deb3 = instance.options.debugAll) != null ? _instance$options$deb3 : instance.options.debugTable;
|
|
207
177
|
}
|
|
208
178
|
}),
|
|
209
179
|
///
|
|
210
|
-
getRowIsSelected: function getRowIsSelected(rowId) {
|
|
211
|
-
var _instance$getState = instance.getState(),
|
|
212
|
-
rowSelection = _instance$getState.rowSelection;
|
|
213
|
-
|
|
214
|
-
var row = instance.getRow(rowId);
|
|
215
|
-
|
|
216
|
-
if (!row) {
|
|
217
|
-
throw new Error();
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
return isRowSelected(row, rowSelection) === true;
|
|
221
|
-
},
|
|
222
|
-
getRowIsSomeSelected: function getRowIsSomeSelected(rowId) {
|
|
223
|
-
var _instance$getState2 = instance.getState(),
|
|
224
|
-
rowSelection = _instance$getState2.rowSelection;
|
|
225
|
-
|
|
226
|
-
var row = instance.getRow(rowId);
|
|
227
|
-
|
|
228
|
-
if (!row) {
|
|
229
|
-
throw new Error();
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
return isRowSelected(row, rowSelection) === 'some';
|
|
233
|
-
},
|
|
234
|
-
getRowCanSelect: function getRowCanSelect(rowId) {
|
|
235
|
-
var _instance$options$ena;
|
|
236
|
-
|
|
237
|
-
var row = instance.getRow(rowId);
|
|
238
|
-
|
|
239
|
-
if (!row) {
|
|
240
|
-
throw new Error();
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
if (typeof instance.options.enableRowSelection === 'function') {
|
|
244
|
-
return instance.options.enableRowSelection(row);
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
return (_instance$options$ena = instance.options.enableRowSelection) != null ? _instance$options$ena : true;
|
|
248
|
-
},
|
|
249
|
-
getRowCanSelectSubRows: function getRowCanSelectSubRows(rowId) {
|
|
250
|
-
var _instance$options$ena2;
|
|
251
|
-
|
|
252
|
-
var row = instance.getRow(rowId);
|
|
253
|
-
|
|
254
|
-
if (!row) {
|
|
255
|
-
throw new Error();
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
if (typeof instance.options.enableSubRowSelection === 'function') {
|
|
259
|
-
return instance.options.enableSubRowSelection(row);
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
return (_instance$options$ena2 = instance.options.enableSubRowSelection) != null ? _instance$options$ena2 : true;
|
|
263
|
-
},
|
|
264
|
-
getRowCanMultiSelect: function getRowCanMultiSelect(rowId) {
|
|
265
|
-
var _instance$options$ena3;
|
|
266
|
-
|
|
267
|
-
var row = instance.getRow(rowId);
|
|
268
|
-
|
|
269
|
-
if (!row) {
|
|
270
|
-
throw new Error();
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
if (typeof instance.options.enableMultiRowSelection === 'function') {
|
|
274
|
-
return instance.options.enableMultiRowSelection(row);
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
return (_instance$options$ena3 = instance.options.enableMultiRowSelection) != null ? _instance$options$ena3 : true;
|
|
278
|
-
},
|
|
279
180
|
// getGroupingRowCanSelect: rowId => {
|
|
280
181
|
// const row = instance.getRow(rowId)
|
|
281
182
|
// if (!row) {
|
|
@@ -286,101 +187,128 @@ var RowSelection = {
|
|
|
286
187
|
// }
|
|
287
188
|
// return instance.options.enableGroupingRowSelection ?? false
|
|
288
189
|
// },
|
|
289
|
-
getIsAllRowsSelected:
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
var isAllRowsSelected = Boolean(preFilteredFlatRows.length && Object.keys(rowSelection).length);
|
|
190
|
+
getIsAllRowsSelected: () => {
|
|
191
|
+
const preFilteredFlatRows = instance.getPreFilteredRowModel().flatRows;
|
|
192
|
+
const {
|
|
193
|
+
rowSelection
|
|
194
|
+
} = instance.getState();
|
|
195
|
+
let isAllRowsSelected = Boolean(preFilteredFlatRows.length && Object.keys(rowSelection).length);
|
|
296
196
|
|
|
297
197
|
if (isAllRowsSelected) {
|
|
298
|
-
if (preFilteredFlatRows.some(
|
|
299
|
-
return !rowSelection[row.id];
|
|
300
|
-
})) {
|
|
198
|
+
if (preFilteredFlatRows.some(row => !rowSelection[row.id])) {
|
|
301
199
|
isAllRowsSelected = false;
|
|
302
200
|
}
|
|
303
201
|
}
|
|
304
202
|
|
|
305
203
|
return isAllRowsSelected;
|
|
306
204
|
},
|
|
307
|
-
getIsAllPageRowsSelected:
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
if (isAllPageRowsSelected && paginationFlatRows.some(function (row) {
|
|
316
|
-
return !rowSelection[row.id];
|
|
317
|
-
})) {
|
|
205
|
+
getIsAllPageRowsSelected: () => {
|
|
206
|
+
const paginationFlatRows = instance.getPaginationRowModel().flatRows;
|
|
207
|
+
const {
|
|
208
|
+
rowSelection
|
|
209
|
+
} = instance.getState();
|
|
210
|
+
let isAllPageRowsSelected = !!paginationFlatRows.length;
|
|
211
|
+
|
|
212
|
+
if (isAllPageRowsSelected && paginationFlatRows.some(row => !rowSelection[row.id])) {
|
|
318
213
|
isAllPageRowsSelected = false;
|
|
319
214
|
}
|
|
320
215
|
|
|
321
216
|
return isAllPageRowsSelected;
|
|
322
217
|
},
|
|
323
|
-
getIsSomeRowsSelected:
|
|
218
|
+
getIsSomeRowsSelected: () => {
|
|
324
219
|
var _instance$getState$ro;
|
|
325
220
|
|
|
326
221
|
return !instance.getIsAllRowsSelected() && !!Object.keys((_instance$getState$ro = instance.getState().rowSelection) != null ? _instance$getState$ro : {}).length;
|
|
327
222
|
},
|
|
328
|
-
getIsSomePageRowsSelected:
|
|
329
|
-
|
|
223
|
+
getIsSomePageRowsSelected: () => {
|
|
224
|
+
const paginationFlatRows = instance.getPaginationRowModel().flatRows;
|
|
330
225
|
return instance.getIsAllPageRowsSelected() ? false : !!(paginationFlatRows != null && paginationFlatRows.length);
|
|
331
226
|
},
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
row.getIsSelected();
|
|
335
|
-
row.getIsSomeSelected();
|
|
336
|
-
var canSelect = row.getCanSelect();
|
|
337
|
-
return function (e) {
|
|
338
|
-
var _target;
|
|
339
|
-
|
|
340
|
-
if (!canSelect) return;
|
|
341
|
-
row.toggleSelected((_target = e.target) == null ? void 0 : _target.checked);
|
|
342
|
-
};
|
|
343
|
-
},
|
|
344
|
-
getToggleAllRowsSelectedHandler: function getToggleAllRowsSelectedHandler() {
|
|
345
|
-
return function (e) {
|
|
227
|
+
getToggleAllRowsSelectedHandler: () => {
|
|
228
|
+
return e => {
|
|
346
229
|
instance.toggleAllRowsSelected(e.target.checked);
|
|
347
230
|
};
|
|
348
231
|
},
|
|
349
|
-
getToggleAllPageRowsSelectedHandler:
|
|
350
|
-
return
|
|
232
|
+
getToggleAllPageRowsSelectedHandler: () => {
|
|
233
|
+
return e => {
|
|
351
234
|
instance.toggleAllPageRowsSelected(e.target.checked);
|
|
352
235
|
};
|
|
353
236
|
}
|
|
354
237
|
};
|
|
355
238
|
},
|
|
356
|
-
createRow:
|
|
239
|
+
createRow: (row, instance) => {
|
|
357
240
|
return {
|
|
358
|
-
|
|
359
|
-
|
|
241
|
+
toggleSelected: value => {
|
|
242
|
+
const isSelected = row.getIsSelected();
|
|
243
|
+
instance.setRowSelection(old => {
|
|
244
|
+
value = typeof value !== 'undefined' ? value : !isSelected;
|
|
245
|
+
|
|
246
|
+
if (isSelected === value) {
|
|
247
|
+
return old;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
const selectedRowIds = { ...old
|
|
251
|
+
};
|
|
252
|
+
mutateRowIsSelected(selectedRowIds, row.id, value, instance);
|
|
253
|
+
return selectedRowIds;
|
|
254
|
+
});
|
|
255
|
+
},
|
|
256
|
+
getIsSelected: () => {
|
|
257
|
+
const {
|
|
258
|
+
rowSelection
|
|
259
|
+
} = instance.getState();
|
|
260
|
+
return isRowSelected(row, rowSelection) === true;
|
|
360
261
|
},
|
|
361
|
-
getIsSomeSelected:
|
|
362
|
-
|
|
262
|
+
getIsSomeSelected: () => {
|
|
263
|
+
const {
|
|
264
|
+
rowSelection
|
|
265
|
+
} = instance.getState();
|
|
266
|
+
return isRowSelected(row, rowSelection) === 'some';
|
|
363
267
|
},
|
|
364
|
-
|
|
365
|
-
|
|
268
|
+
getCanSelect: () => {
|
|
269
|
+
var _instance$options$ena;
|
|
270
|
+
|
|
271
|
+
if (typeof instance.options.enableRowSelection === 'function') {
|
|
272
|
+
return instance.options.enableRowSelection(row);
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
return (_instance$options$ena = instance.options.enableRowSelection) != null ? _instance$options$ena : true;
|
|
366
276
|
},
|
|
367
|
-
|
|
368
|
-
|
|
277
|
+
getCanSelectSubRows: () => {
|
|
278
|
+
var _instance$options$ena2;
|
|
279
|
+
|
|
280
|
+
if (typeof instance.options.enableSubRowSelection === 'function') {
|
|
281
|
+
return instance.options.enableSubRowSelection(row);
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
return (_instance$options$ena2 = instance.options.enableSubRowSelection) != null ? _instance$options$ena2 : true;
|
|
369
285
|
},
|
|
370
|
-
getCanMultiSelect:
|
|
371
|
-
|
|
286
|
+
getCanMultiSelect: () => {
|
|
287
|
+
var _instance$options$ena3;
|
|
288
|
+
|
|
289
|
+
if (typeof instance.options.enableMultiRowSelection === 'function') {
|
|
290
|
+
return instance.options.enableMultiRowSelection(row);
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
return (_instance$options$ena3 = instance.options.enableMultiRowSelection) != null ? _instance$options$ena3 : true;
|
|
372
294
|
},
|
|
373
|
-
|
|
374
|
-
|
|
295
|
+
getToggleSelectedHandler: () => {
|
|
296
|
+
const canSelect = row.getCanSelect();
|
|
297
|
+
return e => {
|
|
298
|
+
var _target;
|
|
299
|
+
|
|
300
|
+
if (!canSelect) return;
|
|
301
|
+
row.toggleSelected((_target = e.target) == null ? void 0 : _target.checked);
|
|
302
|
+
};
|
|
375
303
|
}
|
|
376
304
|
};
|
|
377
305
|
}
|
|
378
306
|
};
|
|
379
307
|
|
|
380
|
-
|
|
308
|
+
const mutateRowIsSelected = (selectedRowIds, id, value, instance) => {
|
|
381
309
|
var _row$subRows;
|
|
382
310
|
|
|
383
|
-
|
|
311
|
+
const row = instance.getRow(id);
|
|
384
312
|
row.getIsGrouped(); // if ( // TODO: enforce grouping row selection rules
|
|
385
313
|
// !isGrouped ||
|
|
386
314
|
// (isGrouped && instance.options.enableGroupingRowSelection)
|
|
@@ -393,24 +321,25 @@ var mutateRowIsSelected = function mutateRowIsSelected(selectedRowIds, id, value
|
|
|
393
321
|
} // }
|
|
394
322
|
|
|
395
323
|
|
|
396
|
-
if ((_row$subRows = row.subRows) != null && _row$subRows.length &&
|
|
397
|
-
row.subRows.forEach(
|
|
398
|
-
return mutateRowIsSelected(selectedRowIds, row.id, value, instance);
|
|
399
|
-
});
|
|
324
|
+
if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getCanSelectSubRows()) {
|
|
325
|
+
row.subRows.forEach(row => mutateRowIsSelected(selectedRowIds, row.id, value, instance));
|
|
400
326
|
}
|
|
401
327
|
};
|
|
402
328
|
|
|
403
329
|
function selectRowsFn(instance, rowModel) {
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
330
|
+
const rowSelection = instance.getState().rowSelection;
|
|
331
|
+
const newSelectedFlatRows = [];
|
|
332
|
+
const newSelectedRowsById = {}; // Filters top level and nested rows
|
|
407
333
|
|
|
408
|
-
|
|
334
|
+
const recurseRows = function (rows, depth) {
|
|
335
|
+
if (depth === void 0) {
|
|
336
|
+
depth = 0;
|
|
337
|
+
}
|
|
409
338
|
|
|
410
|
-
return rows.map(
|
|
339
|
+
return rows.map(row => {
|
|
411
340
|
var _row$subRows2;
|
|
412
341
|
|
|
413
|
-
|
|
342
|
+
const isSelected = isRowSelected(row, rowSelection) === true;
|
|
414
343
|
|
|
415
344
|
if (isSelected) {
|
|
416
345
|
newSelectedFlatRows.push(row);
|
|
@@ -418,9 +347,9 @@ function selectRowsFn(instance, rowModel) {
|
|
|
418
347
|
}
|
|
419
348
|
|
|
420
349
|
if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {
|
|
421
|
-
row =
|
|
422
|
-
subRows: recurseRows(row.subRows)
|
|
423
|
-
}
|
|
350
|
+
row = { ...row,
|
|
351
|
+
subRows: recurseRows(row.subRows, depth + 1)
|
|
352
|
+
};
|
|
424
353
|
}
|
|
425
354
|
|
|
426
355
|
if (isSelected) {
|
|
@@ -441,9 +370,9 @@ function isRowSelected(row, selection, instance) {
|
|
|
441
370
|
}
|
|
442
371
|
|
|
443
372
|
if (row.subRows && row.subRows.length) {
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
row.subRows.forEach(
|
|
373
|
+
let allChildrenSelected = true;
|
|
374
|
+
let someSelected = false;
|
|
375
|
+
row.subRows.forEach(subRow => {
|
|
447
376
|
// Bail out early if we know both of these
|
|
448
377
|
if (someSelected && !allChildrenSelected) {
|
|
449
378
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RowSelection.js","sources":["../../../src/features/RowSelection.ts"],"sourcesContent":["import {\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Row,\n RowModel,\n Updater,\n TableFeature,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport type RowSelectionTableState = {\n rowSelection: RowSelectionState\n}\n\nexport type RowSelectionOptions<TGenerics extends TableGenerics> = {\n enableRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TGenerics>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: unknown) => boolean\n // isInclusiveSelectEvent?: (e: unknown) => boolean\n // selectRowsFn?: (\n // instance: TableInstance<\n // TData,\n // TValue,\n // TFilterFns,\n // TSortingFns,\n // TAggregationFns\n // >,\n // rowModel: RowModel<TGenerics>\n // ) => RowModel<TGenerics>\n}\n\nexport type RowSelectionRow = {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedHandler: () => (event: unknown) => void\n}\n\nexport type RowSelectionInstance<TGenerics extends TableGenerics> = {\n getToggleRowSelectedHandler: (\n rowId: string\n ) => undefined | ((e: unknown) => void)\n getToggleAllRowsSelectedHandler: () => (event: unknown) => void\n getToggleAllPageRowsSelectedHandler: () => (event: unknown) => void\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: () => void\n toggleRowSelected: (rowId: string, value?: boolean) => void\n getRowCanSelect: (rowId: string) => boolean\n getRowCanSelectSubRows: (rowId: string) => boolean\n getRowCanMultiSelect: (rowId: string) => boolean\n // getGroupingRowCanSelect: (rowId: string) => boolean\n getRowIsSelected: (rowId: string) => boolean\n getRowIsSomeSelected: (rowId: string) => boolean\n getIsAllRowsSelected: () => boolean\n getIsAllPageRowsSelected: () => boolean\n getIsSomeRowsSelected: () => boolean\n getIsSomePageRowsSelected: () => boolean\n toggleAllRowsSelected: (value: boolean) => void\n toggleAllPageRowsSelected: (value: boolean) => void\n getPreSelectedRowModel: () => RowModel<TGenerics>\n getSelectedRowModel: () => RowModel<TGenerics>\n getFilteredSelectedRowModel: () => RowModel<TGenerics>\n getGroupedSelectedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const RowSelection: TableFeature = {\n getInitialState: (state): RowSelectionTableState => {\n return {\n rowSelection: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionOptions<TGenerics> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', instance),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionInstance<TGenerics> => {\n return {\n setRowSelection: updater =>\n instance.options.onRowSelectionChange?.(updater),\n resetRowSelection: () =>\n instance.setRowSelection(instance.initialState.rowSelection ?? {}),\n toggleAllRowsSelected: value => {\n instance.setRowSelection(old => {\n value =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllRowsSelected()\n\n const rowSelection = { ...old }\n\n const preGroupedFlatRows = instance.getPreGroupedRowModel().flatRows\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n rowSelection[row.id] = true\n })\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id]\n })\n }\n\n return rowSelection\n })\n },\n toggleAllPageRowsSelected: value =>\n instance.setRowSelection(old => {\n const selectAll =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllPageRowsSelected()\n\n const rowSelection: RowSelectionState = { ...old }\n\n instance.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, value, instance)\n })\n\n return rowSelection\n }),\n toggleRowSelected: (rowId, value) => {\n const row = instance.getRow(rowId)\n const isSelected = row.getIsSelected()\n\n instance.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected\n\n if (isSelected === value) {\n return old\n }\n\n const selectedRowIds = { ...old }\n\n mutateRowIsSelected(selectedRowIds, rowId, value, instance)\n\n return selectedRowIds\n })\n },\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = instance\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // instance.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // instance.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => instance.getCoreRowModel(),\n getSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getCoreRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [\n instance.getState().rowSelection,\n instance.getGlobalFilteredRowModel(),\n ],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getFilteredSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getGroupedSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getGroupedRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getGroupedSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n ///\n\n getRowIsSelected: rowId => {\n const { rowSelection } = instance.getState()\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n return isRowSelected(row, rowSelection, instance) === true\n },\n\n getRowIsSomeSelected: rowId => {\n const { rowSelection } = instance.getState()\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n return isRowSelected(row, rowSelection, instance) === 'some'\n },\n\n getRowCanSelect: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableRowSelection === 'function') {\n return instance.options.enableRowSelection(row)\n }\n\n return instance.options.enableRowSelection ?? true\n },\n\n getRowCanSelectSubRows: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableSubRowSelection === 'function') {\n return instance.options.enableSubRowSelection(row)\n }\n\n return instance.options.enableSubRowSelection ?? true\n },\n\n getRowCanMultiSelect: rowId => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n throw new Error()\n }\n\n if (typeof instance.options.enableMultiRowSelection === 'function') {\n return instance.options.enableMultiRowSelection(row)\n }\n\n return instance.options.enableMultiRowSelection ?? true\n },\n\n // getGroupingRowCanSelect: rowId => {\n // const row = instance.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof instance.options.enableGroupingRowSelection === 'function') {\n // return instance.options.enableGroupingRowSelection(row)\n // }\n\n // return instance.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preFilteredFlatRows =\n instance.getPreGlobalFilteredRowModel().flatRows\n const { rowSelection } = instance.getState()\n\n let isAllRowsSelected = Boolean(\n preFilteredFlatRows.length && Object.keys(rowSelection).length\n )\n\n if (isAllRowsSelected) {\n if (preFilteredFlatRows.some(row => !rowSelection[row.id])) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n },\n\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n const { rowSelection } = instance.getState()\n\n let isAllPageRowsSelected = !!paginationFlatRows.length\n\n if (\n isAllPageRowsSelected &&\n paginationFlatRows.some(row => !rowSelection[row.id])\n ) {\n isAllPageRowsSelected = false\n }\n\n return isAllPageRowsSelected\n },\n\n getIsSomeRowsSelected: () => {\n return (\n !instance.getIsAllRowsSelected() &&\n !!Object.keys(instance.getState().rowSelection ?? {}).length\n )\n },\n\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n return instance.getIsAllPageRowsSelected()\n ? false\n : !!paginationFlatRows?.length\n },\n\n getToggleRowSelectedHandler: rowId => {\n const row = instance.getRow(rowId)\n\n const isSelected = row.getIsSelected()\n const isSomeSelected = row.getIsSomeSelected()\n const canSelect = row.getCanSelect()\n\n return (e: unknown) => {\n if (!canSelect) return\n row.toggleSelected(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n\n getToggleAllRowsSelectedHandler: () => {\n return (e: unknown) => {\n instance.toggleAllRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n\n getToggleAllPageRowsSelectedHandler: () => {\n return (e: unknown) => {\n instance.toggleAllPageRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): RowSelectionRow => {\n return {\n getIsSelected: () => instance.getRowIsSelected(row.id),\n getIsSomeSelected: () => instance.getRowIsSomeSelected(row.id),\n toggleSelected: value => instance.toggleRowSelected(row.id, value),\n getToggleSelectedHandler: () =>\n instance.getToggleRowSelectedHandler(row.id)!,\n getCanMultiSelect: () => instance.getRowCanMultiSelect(row.id),\n getCanSelect: () => instance.getRowCanSelect(row.id),\n }\n },\n}\n\nconst mutateRowIsSelected = <TGenerics extends TableGenerics>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n instance: TableInstance<TGenerics>\n) => {\n const row = instance.getRow(id)\n\n const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && instance.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n selectedRowIds[id] = true\n } else {\n delete selectedRowIds[id]\n }\n // }\n\n if (row.subRows?.length && instance.getRowCanSelectSubRows(row.id)) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, instance)\n )\n }\n}\n\nexport function selectRowsFn<TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>,\n rowModel: RowModel<TGenerics>\n): RowModel<TGenerics> {\n const rowSelection = instance.getState().rowSelection\n\n const newSelectedFlatRows: Row<TGenerics>[] = []\n const newSelectedRowsById: Record<string, Row<TGenerics>> = {}\n\n // Filters top level and nested rows\n const recurseRows = (rows: Row<TGenerics>[], depth = 0): Row<TGenerics>[] => {\n return rows\n .map(row => {\n const isSelected = isRowSelected(row, rowSelection, instance) === true\n\n if (isSelected) {\n newSelectedFlatRows.push(row)\n newSelectedRowsById[row.id] = row\n }\n\n if (row.subRows?.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows, depth + 1),\n }\n }\n\n if (isSelected) {\n return row\n }\n })\n .filter(Boolean) as Row<TGenerics>[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n selection: Record<string, boolean>,\n instance: TableInstance<TGenerics>\n): boolean | 'some' {\n if (selection[row.id]) {\n return true\n }\n\n if (row.subRows && row.subRows.length) {\n let allChildrenSelected = true\n let someSelected = false\n\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return\n }\n\n if (isRowSelected(subRow, selection, instance)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n\n return allChildrenSelected ? true : someSelected ? 'some' : false\n }\n\n return false\n}\n"],"names":["RowSelection","getInitialState","state","_extends","rowSelection","getDefaultOptions","instance","onRowSelectionChange","makeStateUpdater","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","createInstance","setRowSelection","updater","options","resetRowSelection","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","id","toggleAllPageRowsSelected","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","toggleRowSelected","rowId","getRow","isSelected","getIsSelected","selectedRowIds","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","getState","rowModel","Object","keys","length","rowsById","selectRowsFn","key","debug","debugAll","debugTable","getFilteredSelectedRowModel","getGlobalFilteredRowModel","getGroupedSelectedRowModel","getGroupedRowModel","getRowIsSelected","Error","isRowSelected","getRowIsSomeSelected","getRowCanSelect","getRowCanSelectSubRows","getRowCanMultiSelect","preFilteredFlatRows","getPreGlobalFilteredRowModel","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","getIsSomePageRowsSelected","getToggleRowSelectedHandler","getIsSomeSelected","canSelect","getCanSelect","e","toggleSelected","target","checked","getToggleAllRowsSelectedHandler","getToggleAllPageRowsSelectedHandler","createRow","getToggleSelectedHandler","getCanMultiSelect","getIsGrouped","subRows","newSelectedFlatRows","newSelectedRowsById","recurseRows","depth","map","push","filter","selection","allChildrenSelected","someSelected","subRow"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RowSelection.js","sources":["../../../src/features/RowSelection.ts"],"sourcesContent":["import {\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Row,\n RowModel,\n Updater,\n TableFeature,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport type RowSelectionTableState = {\n rowSelection: RowSelectionState\n}\n\nexport type RowSelectionOptions<TGenerics extends TableGenerics> = {\n enableRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TGenerics>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: unknown) => boolean\n // isInclusiveSelectEvent?: (e: unknown) => boolean\n // selectRowsFn?: (\n // instance: TableInstance<\n // TData,\n // TValue,\n // TFilterFns,\n // TSortingFns,\n // TAggregationFns\n // >,\n // rowModel: RowModel<TGenerics>\n // ) => RowModel<TGenerics>\n}\n\nexport type RowSelectionRow = {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n getCanSelectSubRows: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedHandler: () => (event: unknown) => void\n}\n\nexport type RowSelectionInstance<TGenerics extends TableGenerics> = {\n getToggleAllRowsSelectedHandler: () => (event: unknown) => void\n getToggleAllPageRowsSelectedHandler: () => (event: unknown) => void\n setRowSelection: (updater: Updater<RowSelectionState>) => void\n resetRowSelection: () => void\n getIsAllRowsSelected: () => boolean\n getIsAllPageRowsSelected: () => boolean\n getIsSomeRowsSelected: () => boolean\n getIsSomePageRowsSelected: () => boolean\n toggleAllRowsSelected: (value: boolean) => void\n toggleAllPageRowsSelected: (value: boolean) => void\n getPreSelectedRowModel: () => RowModel<TGenerics>\n getSelectedRowModel: () => RowModel<TGenerics>\n getFilteredSelectedRowModel: () => RowModel<TGenerics>\n getGroupedSelectedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const RowSelection: TableFeature = {\n getInitialState: (state): RowSelectionTableState => {\n return {\n rowSelection: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionOptions<TGenerics> => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', instance),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): RowSelectionInstance<TGenerics> => {\n return {\n setRowSelection: updater =>\n instance.options.onRowSelectionChange?.(updater),\n resetRowSelection: () =>\n instance.setRowSelection(instance.initialState.rowSelection ?? {}),\n toggleAllRowsSelected: value => {\n instance.setRowSelection(old => {\n value =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllRowsSelected()\n\n const rowSelection = { ...old }\n\n const preGroupedFlatRows = instance.getPreGroupedRowModel().flatRows\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n rowSelection[row.id] = true\n })\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id]\n })\n }\n\n return rowSelection\n })\n },\n toggleAllPageRowsSelected: value =>\n instance.setRowSelection(old => {\n const selectAll =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllPageRowsSelected()\n\n const rowSelection: RowSelectionState = { ...old }\n\n instance.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, value, instance)\n })\n\n return rowSelection\n }),\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = instance\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // instance.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // instance.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => instance.getCoreRowModel(),\n getSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getCoreRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getFilteredSelectedRowModel: memo(\n () => [\n instance.getState().rowSelection,\n instance.getFilteredRowModel(),\n ],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getFilteredSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n getGroupedSelectedRowModel: memo(\n () => [instance.getState().rowSelection, instance.getGroupedRowModel()],\n (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n }\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'getGroupedSelectedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n ),\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = instance.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof instance.options.enableGroupingRowSelection === 'function') {\n // return instance.options.enableGroupingRowSelection(row)\n // }\n\n // return instance.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preFilteredFlatRows = instance.getPreFilteredRowModel().flatRows\n const { rowSelection } = instance.getState()\n\n let isAllRowsSelected = Boolean(\n preFilteredFlatRows.length && Object.keys(rowSelection).length\n )\n\n if (isAllRowsSelected) {\n if (preFilteredFlatRows.some(row => !rowSelection[row.id])) {\n isAllRowsSelected = false\n }\n }\n\n return isAllRowsSelected\n },\n\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n const { rowSelection } = instance.getState()\n\n let isAllPageRowsSelected = !!paginationFlatRows.length\n\n if (\n isAllPageRowsSelected &&\n paginationFlatRows.some(row => !rowSelection[row.id])\n ) {\n isAllPageRowsSelected = false\n }\n\n return isAllPageRowsSelected\n },\n\n getIsSomeRowsSelected: () => {\n return (\n !instance.getIsAllRowsSelected() &&\n !!Object.keys(instance.getState().rowSelection ?? {}).length\n )\n },\n\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = instance.getPaginationRowModel().flatRows\n return instance.getIsAllPageRowsSelected()\n ? false\n : !!paginationFlatRows?.length\n },\n\n getToggleAllRowsSelectedHandler: () => {\n return (e: unknown) => {\n instance.toggleAllRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n\n getToggleAllPageRowsSelectedHandler: () => {\n return (e: unknown) => {\n instance.toggleAllPageRowsSelected(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): RowSelectionRow => {\n return {\n toggleSelected: value => {\n const isSelected = row.getIsSelected()\n\n instance.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected\n\n if (isSelected === value) {\n return old\n }\n\n const selectedRowIds = { ...old }\n\n mutateRowIsSelected(selectedRowIds, row.id, value, instance)\n\n return selectedRowIds\n })\n },\n getIsSelected: () => {\n const { rowSelection } = instance.getState()\n return isRowSelected(row, rowSelection, instance) === true\n },\n\n getIsSomeSelected: () => {\n const { rowSelection } = instance.getState()\n return isRowSelected(row, rowSelection, instance) === 'some'\n },\n\n getCanSelect: () => {\n if (typeof instance.options.enableRowSelection === 'function') {\n return instance.options.enableRowSelection(row)\n }\n\n return instance.options.enableRowSelection ?? true\n },\n\n getCanSelectSubRows: () => {\n if (typeof instance.options.enableSubRowSelection === 'function') {\n return instance.options.enableSubRowSelection(row)\n }\n\n return instance.options.enableSubRowSelection ?? true\n },\n\n getCanMultiSelect: () => {\n if (typeof instance.options.enableMultiRowSelection === 'function') {\n return instance.options.enableMultiRowSelection(row)\n }\n\n return instance.options.enableMultiRowSelection ?? true\n },\n getToggleSelectedHandler: () => {\n const canSelect = row.getCanSelect()\n\n return (e: unknown) => {\n if (!canSelect) return\n row.toggleSelected(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n },\n }\n },\n}\n\nconst mutateRowIsSelected = <TGenerics extends TableGenerics>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n instance: TableInstance<TGenerics>\n) => {\n const row = instance.getRow(id)\n\n const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && instance.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n selectedRowIds[id] = true\n } else {\n delete selectedRowIds[id]\n }\n // }\n\n if (row.subRows?.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row =>\n mutateRowIsSelected(selectedRowIds, row.id, value, instance)\n )\n }\n}\n\nexport function selectRowsFn<TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>,\n rowModel: RowModel<TGenerics>\n): RowModel<TGenerics> {\n const rowSelection = instance.getState().rowSelection\n\n const newSelectedFlatRows: Row<TGenerics>[] = []\n const newSelectedRowsById: Record<string, Row<TGenerics>> = {}\n\n // Filters top level and nested rows\n const recurseRows = (rows: Row<TGenerics>[], depth = 0): Row<TGenerics>[] => {\n return rows\n .map(row => {\n const isSelected = isRowSelected(row, rowSelection, instance) === true\n\n if (isSelected) {\n newSelectedFlatRows.push(row)\n newSelectedRowsById[row.id] = row\n }\n\n if (row.subRows?.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows, depth + 1),\n }\n }\n\n if (isSelected) {\n return row\n }\n })\n .filter(Boolean) as Row<TGenerics>[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n selection: Record<string, boolean>,\n instance: TableInstance<TGenerics>\n): boolean | 'some' {\n if (selection[row.id]) {\n return true\n }\n\n if (row.subRows && row.subRows.length) {\n let allChildrenSelected = true\n let someSelected = false\n\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return\n }\n\n if (isRowSelected(subRow, selection, instance)) {\n someSelected = true\n } else {\n allChildrenSelected = false\n }\n })\n\n return allChildrenSelected ? true : someSelected ? 'some' : false\n }\n\n return false\n}\n"],"names":["RowSelection","getInitialState","state","rowSelection","getDefaultOptions","instance","onRowSelectionChange","makeStateUpdater","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","createInstance","setRowSelection","updater","options","resetRowSelection","initialState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","id","toggleAllPageRowsSelected","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","getState","rowModel","Object","keys","length","rowsById","selectRowsFn","key","process","env","NODE_ENV","debug","debugAll","debugTable","getFilteredSelectedRowModel","getFilteredRowModel","getGroupedSelectedRowModel","getGroupedRowModel","preFilteredFlatRows","getPreFilteredRowModel","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","getIsSomePageRowsSelected","getToggleAllRowsSelectedHandler","e","target","checked","getToggleAllPageRowsSelectedHandler","createRow","toggleSelected","isSelected","getIsSelected","selectedRowIds","isRowSelected","getIsSomeSelected","getCanSelect","getCanSelectSubRows","getCanMultiSelect","getToggleSelectedHandler","canSelect","getRow","getIsGrouped","subRows","newSelectedFlatRows","newSelectedRowsById","recurseRows","depth","map","push","filter","selection","allChildrenSelected","someSelected","subRow"],"mappings":"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"}
|