@tanstack/react-table 8.0.0-alpha.9 → 8.0.0-beta.0
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/react-table/src/index.js +139 -0
- package/build/cjs/react-table/src/index.js.map +1 -0
- package/build/cjs/table-core/build/esm/index.js +3867 -0
- package/build/cjs/table-core/build/esm/index.js.map +1 -0
- package/build/esm/index.js +3196 -4117
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +24 -813
- package/build/types/index.d.ts +16 -9
- package/build/umd/index.development.js +3234 -4125
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +11 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +10 -6
- package/src/index.tsx +111 -9
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -112
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
- package/build/cjs/aggregationTypes.js +0 -130
- package/build/cjs/aggregationTypes.js.map +0 -1
- package/build/cjs/core.js +0 -545
- package/build/cjs/core.js.map +0 -1
- package/build/cjs/createTable.js +0 -122
- package/build/cjs/createTable.js.map +0 -1
- package/build/cjs/features/ColumnSizing.js +0 -318
- package/build/cjs/features/ColumnSizing.js.map +0 -1
- package/build/cjs/features/Expanding.js +0 -239
- package/build/cjs/features/Expanding.js.map +0 -1
- package/build/cjs/features/Filters.js +0 -414
- package/build/cjs/features/Filters.js.map +0 -1
- package/build/cjs/features/Grouping.js +0 -232
- package/build/cjs/features/Grouping.js.map +0 -1
- package/build/cjs/features/Headers.js +0 -629
- package/build/cjs/features/Headers.js.map +0 -1
- package/build/cjs/features/Ordering.js +0 -86
- package/build/cjs/features/Ordering.js.map +0 -1
- package/build/cjs/features/Pagination.js +0 -193
- package/build/cjs/features/Pagination.js.map +0 -1
- package/build/cjs/features/Pinning.js +0 -149
- package/build/cjs/features/Pinning.js.map +0 -1
- package/build/cjs/features/RowSelection.js +0 -526
- package/build/cjs/features/RowSelection.js.map +0 -1
- package/build/cjs/features/Sorting.js +0 -315
- package/build/cjs/features/Sorting.js.map +0 -1
- package/build/cjs/features/Visibility.js +0 -174
- package/build/cjs/features/Visibility.js.map +0 -1
- package/build/cjs/filterTypes.js +0 -172
- package/build/cjs/filterTypes.js.map +0 -1
- package/build/cjs/index.js +0 -44
- package/build/cjs/index.js.map +0 -1
- package/build/cjs/sortTypes.js +0 -122
- package/build/cjs/sortTypes.js.map +0 -1
- package/build/cjs/types.js +0 -22
- package/build/cjs/types.js.map +0 -1
- package/build/cjs/utils/columnFilterRowsFn.js +0 -131
- package/build/cjs/utils/columnFilterRowsFn.js.map +0 -1
- package/build/cjs/utils/expandRowsFn.js +0 -38
- package/build/cjs/utils/expandRowsFn.js.map +0 -1
- package/build/cjs/utils/globalFilterRowsFn.js +0 -101
- package/build/cjs/utils/globalFilterRowsFn.js.map +0 -1
- package/build/cjs/utils/groupRowsFn.js +0 -155
- package/build/cjs/utils/groupRowsFn.js.map +0 -1
- package/build/cjs/utils/paginateRowsFn.js +0 -44
- package/build/cjs/utils/paginateRowsFn.js.map +0 -1
- package/build/cjs/utils/sortRowsFn.js +0 -94
- package/build/cjs/utils/sortRowsFn.js.map +0 -1
- package/build/cjs/utils.js +0 -167
- package/build/cjs/utils.js.map +0 -1
- package/build/types/aggregationTypes.d.ts +0 -22
- package/build/types/core.d.ts +0 -105
- package/build/types/createTable.d.ts +0 -42
- package/build/types/features/ColumnSizing.d.ts +0 -73
- package/build/types/features/Expanding.d.ts +0 -48
- package/build/types/features/Filters.d.ts +0 -90
- package/build/types/features/Grouping.d.ts +0 -83
- package/build/types/features/Headers.d.ts +0 -41
- package/build/types/features/Ordering.d.ts +0 -19
- package/build/types/features/Pagination.d.ts +0 -39
- package/build/types/features/Pinning.d.ts +0 -39
- package/build/types/features/RowSelection.d.ts +0 -58
- package/build/types/features/Sorting.d.ts +0 -79
- package/build/types/features/Visibility.d.ts +0 -47
- package/build/types/filterTypes.d.ts +0 -50
- package/build/types/sortTypes.d.ts +0 -18
- package/build/types/types.d.ts +0 -138
- package/build/types/utils/columnFilterRowsFn.d.ts +0 -2
- package/build/types/utils/expandRowsFn.d.ts +0 -2
- package/build/types/utils/globalFilterRowsFn.d.ts +0 -2
- package/build/types/utils/groupRowsFn.d.ts +0 -2
- package/build/types/utils/paginateRowsFn.d.ts +0 -2
- package/build/types/utils/sortRowsFn.d.ts +0 -2
- package/build/types/utils.d.ts +0 -23
- package/src/aggregationTypes.ts +0 -115
- package/src/core.tsx +0 -763
- package/src/createTable.tsx +0 -186
- package/src/features/ColumnSizing.ts +0 -424
- package/src/features/Expanding.ts +0 -318
- package/src/features/Filters.ts +0 -560
- package/src/features/Grouping.ts +0 -361
- package/src/features/Headers.ts +0 -729
- package/src/features/Ordering.ts +0 -110
- package/src/features/Pagination.ts +0 -250
- package/src/features/Pinning.ts +0 -174
- package/src/features/RowSelection.ts +0 -651
- package/src/features/Sorting.ts +0 -453
- package/src/features/Visibility.ts +0 -238
- package/src/filterTypes.ts +0 -188
- package/src/sortTypes.ts +0 -147
- package/src/types.ts +0 -311
- package/src/utils/columnFilterRowsFn.ts +0 -113
- package/src/utils/expandRowsFn.ts +0 -30
- package/src/utils/globalFilterRowsFn.ts +0 -89
- package/src/utils/groupRowsFn.ts +0 -170
- package/src/utils/paginateRowsFn.ts +0 -28
- package/src/utils/sortRowsFn.ts +0 -95
- package/src/utils.tsx +0 -221
|
@@ -1,526 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* react-table
|
|
3
|
-
*
|
|
4
|
-
* Copyright (c) TanStack
|
|
5
|
-
*
|
|
6
|
-
* This source code is licensed under the MIT license found in the
|
|
7
|
-
* LICENSE.md file in the root directory of this source tree.
|
|
8
|
-
*
|
|
9
|
-
* @license MIT
|
|
10
|
-
*/
|
|
11
|
-
'use strict';
|
|
12
|
-
|
|
13
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
14
|
-
|
|
15
|
-
var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
|
|
16
|
-
var utils = require('../utils.js');
|
|
17
|
-
|
|
18
|
-
//
|
|
19
|
-
function getInitialState() {
|
|
20
|
-
return {
|
|
21
|
-
rowSelection: {}
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
function getDefaultOptions(instance) {
|
|
25
|
-
return {
|
|
26
|
-
onRowSelectionChange: utils.makeStateUpdater('rowSelection', instance),
|
|
27
|
-
autoResetRowSelection: true,
|
|
28
|
-
enableRowSelection: true,
|
|
29
|
-
enableMultiRowSelection: true,
|
|
30
|
-
enableSubRowSelection: true // enableGroupingRowSelection: false,
|
|
31
|
-
// isAdditiveSelectEvent: (e: MouseEvent | TouchEvent) => !!e.metaKey,
|
|
32
|
-
// isInclusiveSelectEvent: (e: MouseEvent | TouchEvent) => !!e.shiftKey,
|
|
33
|
-
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
function getInstance(instance) {
|
|
37
|
-
var registered = false; // const pageRows = instance.getPageRows()
|
|
38
|
-
|
|
39
|
-
return {
|
|
40
|
-
_notifyRowSelectionReset: function _notifyRowSelectionReset() {
|
|
41
|
-
if (!registered) {
|
|
42
|
-
registered = true;
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
if (instance.options.autoResetAll === false) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
if (instance.options.autoResetAll === true || instance.options.autoResetRowSelection) {
|
|
51
|
-
instance.resetRowSelection();
|
|
52
|
-
}
|
|
53
|
-
},
|
|
54
|
-
setRowSelection: function setRowSelection(updater) {
|
|
55
|
-
return instance.options.onRowSelectionChange == null ? void 0 : instance.options.onRowSelectionChange(updater, utils.functionalUpdate(updater, instance.getState().rowSelection));
|
|
56
|
-
},
|
|
57
|
-
resetRowSelection: function resetRowSelection() {
|
|
58
|
-
var _getInitialState$rowS;
|
|
59
|
-
|
|
60
|
-
return instance.setRowSelection((_getInitialState$rowS = getInitialState().rowSelection) != null ? _getInitialState$rowS : {});
|
|
61
|
-
},
|
|
62
|
-
toggleAllRowsSelected: function toggleAllRowsSelected(value) {
|
|
63
|
-
instance.setRowSelection(function (old) {
|
|
64
|
-
value = typeof value !== 'undefined' ? value : !instance.getIsAllRowsSelected(); // Only remove/add the rows that are visible on the screen
|
|
65
|
-
// Leave all the other rows that are selected alone.
|
|
66
|
-
|
|
67
|
-
var rowSelection = Object.assign({}, old);
|
|
68
|
-
var preGroupedFlatRows = instance.getPreGroupedRowModel().flatRows; // We don't use `mutateRowIsSelected` here for performance reasons.
|
|
69
|
-
// All of the rows are flat already, so it wouldn't be worth it
|
|
70
|
-
|
|
71
|
-
if (value) {
|
|
72
|
-
preGroupedFlatRows.forEach(function (row) {
|
|
73
|
-
rowSelection[row.id] = true;
|
|
74
|
-
});
|
|
75
|
-
} else {
|
|
76
|
-
preGroupedFlatRows.forEach(function (row) {
|
|
77
|
-
delete rowSelection[row.id];
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return rowSelection;
|
|
82
|
-
});
|
|
83
|
-
},
|
|
84
|
-
toggleAllPageRowsSelected: function toggleAllPageRowsSelected(value) {
|
|
85
|
-
return instance.setRowSelection(function (old) {
|
|
86
|
-
typeof value !== 'undefined' ? value : !instance.getIsAllPageRowsSelected();
|
|
87
|
-
|
|
88
|
-
var rowSelection = _rollupPluginBabelHelpers["extends"]({}, old);
|
|
89
|
-
|
|
90
|
-
instance.getRowModel().rows.forEach(function (row) {
|
|
91
|
-
mutateRowIsSelected(rowSelection, row.id, value, instance);
|
|
92
|
-
});
|
|
93
|
-
return rowSelection;
|
|
94
|
-
});
|
|
95
|
-
},
|
|
96
|
-
toggleRowSelected: function toggleRowSelected(rowId, value) {
|
|
97
|
-
var row = instance.getRow(rowId);
|
|
98
|
-
var isSelected = row.getIsSelected();
|
|
99
|
-
instance.setRowSelection(function (old) {
|
|
100
|
-
value = typeof value !== 'undefined' ? value : !isSelected;
|
|
101
|
-
|
|
102
|
-
if (isSelected === value) {
|
|
103
|
-
return old;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
var selectedRowIds = _rollupPluginBabelHelpers["extends"]({}, old);
|
|
107
|
-
|
|
108
|
-
mutateRowIsSelected(selectedRowIds, rowId, value, instance);
|
|
109
|
-
return selectedRowIds;
|
|
110
|
-
});
|
|
111
|
-
},
|
|
112
|
-
// addRowSelectionRange: rowId => {
|
|
113
|
-
// const {
|
|
114
|
-
// rows,
|
|
115
|
-
// rowsById,
|
|
116
|
-
// options: { selectGroupingRows, selectSubRows },
|
|
117
|
-
// } = instance
|
|
118
|
-
// const findSelectedRow = (rows: Row[]) => {
|
|
119
|
-
// let found
|
|
120
|
-
// rows.find(d => {
|
|
121
|
-
// if (d.getIsSelected()) {
|
|
122
|
-
// found = d
|
|
123
|
-
// return true
|
|
124
|
-
// }
|
|
125
|
-
// const subFound = findSelectedRow(d.subRows || [])
|
|
126
|
-
// if (subFound) {
|
|
127
|
-
// found = subFound
|
|
128
|
-
// return true
|
|
129
|
-
// }
|
|
130
|
-
// return false
|
|
131
|
-
// })
|
|
132
|
-
// return found
|
|
133
|
-
// }
|
|
134
|
-
// const firstRow = findSelectedRow(rows) || rows[0]
|
|
135
|
-
// const lastRow = rowsById[rowId]
|
|
136
|
-
// let include = false
|
|
137
|
-
// const selectedRowIds = {}
|
|
138
|
-
// const addRow = (row: Row) => {
|
|
139
|
-
// mutateRowIsSelected(selectedRowIds, row.id, true, {
|
|
140
|
-
// rowsById,
|
|
141
|
-
// selectGroupingRows: selectGroupingRows!,
|
|
142
|
-
// selectSubRows: selectSubRows!,
|
|
143
|
-
// })
|
|
144
|
-
// }
|
|
145
|
-
// instance.rows.forEach(row => {
|
|
146
|
-
// const isFirstRow = row.id === firstRow.id
|
|
147
|
-
// const isLastRow = row.id === lastRow.id
|
|
148
|
-
// if (isFirstRow || isLastRow) {
|
|
149
|
-
// if (!include) {
|
|
150
|
-
// include = true
|
|
151
|
-
// } else if (include) {
|
|
152
|
-
// addRow(row)
|
|
153
|
-
// include = false
|
|
154
|
-
// }
|
|
155
|
-
// }
|
|
156
|
-
// if (include) {
|
|
157
|
-
// addRow(row)
|
|
158
|
-
// }
|
|
159
|
-
// })
|
|
160
|
-
// instance.setRowSelection(selectedRowIds)
|
|
161
|
-
// },
|
|
162
|
-
getPreSelectedRowModel: function getPreSelectedRowModel() {
|
|
163
|
-
return instance.getCoreRowModel();
|
|
164
|
-
},
|
|
165
|
-
getSelectedRowModel: utils.memo(function () {
|
|
166
|
-
return [instance.getState().rowSelection, instance.getCoreRowModel()];
|
|
167
|
-
}, function (rowSelection, rowModel) {
|
|
168
|
-
if (!Object.keys(rowSelection).length) {
|
|
169
|
-
return {
|
|
170
|
-
rows: [],
|
|
171
|
-
flatRows: [],
|
|
172
|
-
rowsById: {}
|
|
173
|
-
};
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
return selectRowsFn(instance, rowModel);
|
|
177
|
-
}, {
|
|
178
|
-
key: 'getSelectedRowModel',
|
|
179
|
-
debug: function debug() {
|
|
180
|
-
var _instance$options$deb;
|
|
181
|
-
|
|
182
|
-
return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
|
|
183
|
-
},
|
|
184
|
-
onChange: function onChange() {
|
|
185
|
-
return instance._notifyExpandedReset();
|
|
186
|
-
}
|
|
187
|
-
}),
|
|
188
|
-
getFilteredSelectedRowModel: utils.memo(function () {
|
|
189
|
-
return [instance.getState().rowSelection, instance.getGlobalFilteredRowModel()];
|
|
190
|
-
}, function (rowSelection, rowModel) {
|
|
191
|
-
if (!Object.keys(rowSelection).length) {
|
|
192
|
-
return {
|
|
193
|
-
rows: [],
|
|
194
|
-
flatRows: [],
|
|
195
|
-
rowsById: {}
|
|
196
|
-
};
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
return selectRowsFn(instance, rowModel);
|
|
200
|
-
}, {
|
|
201
|
-
key: 'getFilteredSelectedRowModel',
|
|
202
|
-
debug: function debug() {
|
|
203
|
-
var _instance$options$deb2;
|
|
204
|
-
|
|
205
|
-
return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugTable;
|
|
206
|
-
},
|
|
207
|
-
onChange: function onChange() {
|
|
208
|
-
return instance._notifyExpandedReset();
|
|
209
|
-
}
|
|
210
|
-
}),
|
|
211
|
-
getGroupedSelectedRowModel: utils.memo(function () {
|
|
212
|
-
return [instance.getState().rowSelection, instance.getGroupedRowModel()];
|
|
213
|
-
}, function (rowSelection, rowModel) {
|
|
214
|
-
if (!Object.keys(rowSelection).length) {
|
|
215
|
-
return {
|
|
216
|
-
rows: [],
|
|
217
|
-
flatRows: [],
|
|
218
|
-
rowsById: {}
|
|
219
|
-
};
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
return selectRowsFn(instance, rowModel);
|
|
223
|
-
}, {
|
|
224
|
-
key: 'getGroupedSelectedRowModel',
|
|
225
|
-
debug: function debug() {
|
|
226
|
-
var _instance$options$deb3;
|
|
227
|
-
|
|
228
|
-
return (_instance$options$deb3 = instance.options.debugAll) != null ? _instance$options$deb3 : instance.options.debugTable;
|
|
229
|
-
},
|
|
230
|
-
onChange: function onChange() {
|
|
231
|
-
return instance._notifyExpandedReset();
|
|
232
|
-
}
|
|
233
|
-
}),
|
|
234
|
-
///
|
|
235
|
-
getRowIsSelected: function getRowIsSelected(rowId) {
|
|
236
|
-
var _instance$getState = instance.getState(),
|
|
237
|
-
rowSelection = _instance$getState.rowSelection;
|
|
238
|
-
|
|
239
|
-
var row = instance.getRow(rowId);
|
|
240
|
-
|
|
241
|
-
if (!row) {
|
|
242
|
-
throw new Error();
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
return isRowSelected(row, rowSelection) === true;
|
|
246
|
-
},
|
|
247
|
-
getRowIsSomeSelected: function getRowIsSomeSelected(rowId) {
|
|
248
|
-
var _instance$getState2 = instance.getState(),
|
|
249
|
-
rowSelection = _instance$getState2.rowSelection;
|
|
250
|
-
|
|
251
|
-
var row = instance.getRow(rowId);
|
|
252
|
-
|
|
253
|
-
if (!row) {
|
|
254
|
-
throw new Error();
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
return isRowSelected(row, rowSelection) === 'some';
|
|
258
|
-
},
|
|
259
|
-
getRowCanSelect: function getRowCanSelect(rowId) {
|
|
260
|
-
var _instance$options$ena;
|
|
261
|
-
|
|
262
|
-
var row = instance.getRow(rowId);
|
|
263
|
-
|
|
264
|
-
if (!row) {
|
|
265
|
-
throw new Error();
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
if (typeof instance.options.enableRowSelection === 'function') {
|
|
269
|
-
return instance.options.enableRowSelection(row);
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
return (_instance$options$ena = instance.options.enableRowSelection) != null ? _instance$options$ena : true;
|
|
273
|
-
},
|
|
274
|
-
getRowCanSelectSubRows: function getRowCanSelectSubRows(rowId) {
|
|
275
|
-
var _instance$options$ena2;
|
|
276
|
-
|
|
277
|
-
var row = instance.getRow(rowId);
|
|
278
|
-
|
|
279
|
-
if (!row) {
|
|
280
|
-
throw new Error();
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
if (typeof instance.options.enableSubRowSelection === 'function') {
|
|
284
|
-
return instance.options.enableSubRowSelection(row);
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
return (_instance$options$ena2 = instance.options.enableSubRowSelection) != null ? _instance$options$ena2 : true;
|
|
288
|
-
},
|
|
289
|
-
getRowCanMultiSelect: function getRowCanMultiSelect(rowId) {
|
|
290
|
-
var _instance$options$ena3;
|
|
291
|
-
|
|
292
|
-
var row = instance.getRow(rowId);
|
|
293
|
-
|
|
294
|
-
if (!row) {
|
|
295
|
-
throw new Error();
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
if (typeof instance.options.enableMultiRowSelection === 'function') {
|
|
299
|
-
return instance.options.enableMultiRowSelection(row);
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
return (_instance$options$ena3 = instance.options.enableMultiRowSelection) != null ? _instance$options$ena3 : true;
|
|
303
|
-
},
|
|
304
|
-
// getGroupingRowCanSelect: rowId => {
|
|
305
|
-
// const row = instance.getRow(rowId)
|
|
306
|
-
// if (!row) {
|
|
307
|
-
// throw new Error()
|
|
308
|
-
// }
|
|
309
|
-
// if (typeof instance.options.enableGroupingRowSelection === 'function') {
|
|
310
|
-
// return instance.options.enableGroupingRowSelection(row)
|
|
311
|
-
// }
|
|
312
|
-
// return instance.options.enableGroupingRowSelection ?? false
|
|
313
|
-
// },
|
|
314
|
-
getIsAllRowsSelected: function getIsAllRowsSelected() {
|
|
315
|
-
var preFilteredFlatRows = instance.getPreGlobalFilteredRowModel().flatRows;
|
|
316
|
-
|
|
317
|
-
var _instance$getState3 = instance.getState(),
|
|
318
|
-
rowSelection = _instance$getState3.rowSelection;
|
|
319
|
-
|
|
320
|
-
var isAllRowsSelected = Boolean(preFilteredFlatRows.length && Object.keys(rowSelection).length);
|
|
321
|
-
|
|
322
|
-
if (isAllRowsSelected) {
|
|
323
|
-
if (preFilteredFlatRows.some(function (row) {
|
|
324
|
-
return !rowSelection[row.id];
|
|
325
|
-
})) {
|
|
326
|
-
isAllRowsSelected = false;
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
return isAllRowsSelected;
|
|
331
|
-
},
|
|
332
|
-
getIsAllPageRowsSelected: function getIsAllPageRowsSelected() {
|
|
333
|
-
var paginationFlatRows = instance.getPaginationRowModel().flatRows;
|
|
334
|
-
|
|
335
|
-
var _instance$getState4 = instance.getState(),
|
|
336
|
-
rowSelection = _instance$getState4.rowSelection;
|
|
337
|
-
|
|
338
|
-
var isAllPageRowsSelected = !!paginationFlatRows.length;
|
|
339
|
-
|
|
340
|
-
if (isAllPageRowsSelected && paginationFlatRows.some(function (row) {
|
|
341
|
-
return !rowSelection[row.id];
|
|
342
|
-
})) {
|
|
343
|
-
isAllPageRowsSelected = false;
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
return isAllPageRowsSelected;
|
|
347
|
-
},
|
|
348
|
-
getIsSomeRowsSelected: function getIsSomeRowsSelected() {
|
|
349
|
-
var _instance$getState$ro;
|
|
350
|
-
|
|
351
|
-
return !instance.getIsAllRowsSelected() && !!Object.keys((_instance$getState$ro = instance.getState().rowSelection) != null ? _instance$getState$ro : {}).length;
|
|
352
|
-
},
|
|
353
|
-
getIsSomePageRowsSelected: function getIsSomePageRowsSelected() {
|
|
354
|
-
var paginationFlatRows = instance.getPaginationRowModel().flatRows;
|
|
355
|
-
return instance.getIsAllPageRowsSelected() ? false : !!(paginationFlatRows != null && paginationFlatRows.length);
|
|
356
|
-
},
|
|
357
|
-
getToggleRowSelectedProps: function getToggleRowSelectedProps(rowId, userProps) {
|
|
358
|
-
var row = instance.getRow(rowId);
|
|
359
|
-
var isSelected = row.getIsSelected();
|
|
360
|
-
var isSomeSelected = row.getIsSomeSelected();
|
|
361
|
-
var canSelect = row.getCanSelect();
|
|
362
|
-
var initialProps = {
|
|
363
|
-
onChange: canSelect ? function (e) {
|
|
364
|
-
row.toggleSelected(e.target.checked);
|
|
365
|
-
} : undefined,
|
|
366
|
-
checked: isSelected,
|
|
367
|
-
title: 'Toggle Row Selected',
|
|
368
|
-
indeterminate: isSomeSelected // onChange: forInput
|
|
369
|
-
// ? (e: Event) => e.stopPropagation()
|
|
370
|
-
// : (e: Event) => {
|
|
371
|
-
// if (instance.options.isAdditiveSelectEvent(e)) {
|
|
372
|
-
// row.toggleSelected()
|
|
373
|
-
// } else if (instance.options.isInclusiveSelectEvent(e)) {
|
|
374
|
-
// instance.addRowSelectionRange(row.id)
|
|
375
|
-
// } else {
|
|
376
|
-
// instance.setRowSelection({})
|
|
377
|
-
// row.toggleSelected()
|
|
378
|
-
// }
|
|
379
|
-
// if (props.onClick) props.onClick(e)
|
|
380
|
-
// },
|
|
381
|
-
|
|
382
|
-
};
|
|
383
|
-
return utils.propGetter(initialProps, userProps);
|
|
384
|
-
},
|
|
385
|
-
getToggleAllRowsSelectedProps: function getToggleAllRowsSelectedProps(userProps) {
|
|
386
|
-
var isSomeRowsSelected = instance.getIsSomeRowsSelected();
|
|
387
|
-
var isAllRowsSelected = instance.getIsAllRowsSelected();
|
|
388
|
-
var initialProps = {
|
|
389
|
-
onChange: function onChange(e) {
|
|
390
|
-
instance.toggleAllRowsSelected(e.target.checked);
|
|
391
|
-
},
|
|
392
|
-
checked: isAllRowsSelected,
|
|
393
|
-
title: 'Toggle All Rows Selected',
|
|
394
|
-
indeterminate: isSomeRowsSelected
|
|
395
|
-
};
|
|
396
|
-
return utils.propGetter(initialProps, userProps);
|
|
397
|
-
},
|
|
398
|
-
getToggleAllPageRowsSelectedProps: function getToggleAllPageRowsSelectedProps(userProps) {
|
|
399
|
-
var isSomePageRowsSelected = instance.getIsSomePageRowsSelected();
|
|
400
|
-
var isAllPageRowsSelected = instance.getIsAllPageRowsSelected();
|
|
401
|
-
var initialProps = {
|
|
402
|
-
onChange: function onChange(e) {
|
|
403
|
-
instance.toggleAllPageRowsSelected(e.target.checked);
|
|
404
|
-
},
|
|
405
|
-
checked: isAllPageRowsSelected,
|
|
406
|
-
title: 'Toggle All Current Page Rows Selected',
|
|
407
|
-
indeterminate: isSomePageRowsSelected
|
|
408
|
-
};
|
|
409
|
-
return utils.propGetter(initialProps, userProps);
|
|
410
|
-
}
|
|
411
|
-
};
|
|
412
|
-
}
|
|
413
|
-
function createRow(row, instance) {
|
|
414
|
-
return {
|
|
415
|
-
getIsSelected: function getIsSelected() {
|
|
416
|
-
return instance.getRowIsSelected(row.id);
|
|
417
|
-
},
|
|
418
|
-
getIsSomeSelected: function getIsSomeSelected() {
|
|
419
|
-
return instance.getRowIsSomeSelected(row.id);
|
|
420
|
-
},
|
|
421
|
-
toggleSelected: function toggleSelected(value) {
|
|
422
|
-
return instance.toggleRowSelected(row.id, value);
|
|
423
|
-
},
|
|
424
|
-
getToggleSelectedProps: function getToggleSelectedProps(userProps) {
|
|
425
|
-
return instance.getToggleRowSelectedProps(row.id, userProps);
|
|
426
|
-
},
|
|
427
|
-
getCanMultiSelect: function getCanMultiSelect() {
|
|
428
|
-
return instance.getRowCanMultiSelect(row.id);
|
|
429
|
-
},
|
|
430
|
-
getCanSelect: function getCanSelect() {
|
|
431
|
-
return instance.getRowCanSelect(row.id);
|
|
432
|
-
}
|
|
433
|
-
};
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
var mutateRowIsSelected = function mutateRowIsSelected(selectedRowIds, id, value, instance) {
|
|
437
|
-
var _row$subRows;
|
|
438
|
-
|
|
439
|
-
var row = instance.getRow(id);
|
|
440
|
-
row.getIsGrouped(); // if ( // TODO: enforce grouping row selection rules
|
|
441
|
-
// !isGrouped ||
|
|
442
|
-
// (isGrouped && instance.options.enableGroupingRowSelection)
|
|
443
|
-
// ) {
|
|
444
|
-
|
|
445
|
-
if (value) {
|
|
446
|
-
selectedRowIds[id] = true;
|
|
447
|
-
} else {
|
|
448
|
-
delete selectedRowIds[id];
|
|
449
|
-
} // }
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
if ((_row$subRows = row.subRows) != null && _row$subRows.length && instance.getRowCanSelectSubRows(row.id)) {
|
|
453
|
-
row.subRows.forEach(function (row) {
|
|
454
|
-
return mutateRowIsSelected(selectedRowIds, row.id, value, instance);
|
|
455
|
-
});
|
|
456
|
-
}
|
|
457
|
-
};
|
|
458
|
-
|
|
459
|
-
function selectRowsFn(instance, rowModel) {
|
|
460
|
-
var rowSelection = instance.getState().rowSelection;
|
|
461
|
-
var newSelectedFlatRows = [];
|
|
462
|
-
var newSelectedRowsById = {}; // Filters top level and nested rows
|
|
463
|
-
|
|
464
|
-
var recurseRows = function recurseRows(rows, depth) {
|
|
465
|
-
|
|
466
|
-
return rows.map(function (row) {
|
|
467
|
-
var _row$subRows2;
|
|
468
|
-
|
|
469
|
-
var isSelected = isRowSelected(row, rowSelection) === true;
|
|
470
|
-
|
|
471
|
-
if (isSelected) {
|
|
472
|
-
newSelectedFlatRows.push(row);
|
|
473
|
-
newSelectedRowsById[row.id] = row;
|
|
474
|
-
}
|
|
475
|
-
|
|
476
|
-
if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {
|
|
477
|
-
row = _rollupPluginBabelHelpers["extends"]({}, row, {
|
|
478
|
-
subRows: recurseRows(row.subRows)
|
|
479
|
-
});
|
|
480
|
-
}
|
|
481
|
-
|
|
482
|
-
if (isSelected) {
|
|
483
|
-
return row;
|
|
484
|
-
}
|
|
485
|
-
}).filter(Boolean);
|
|
486
|
-
};
|
|
487
|
-
|
|
488
|
-
return {
|
|
489
|
-
rows: recurseRows(rowModel.rows),
|
|
490
|
-
flatRows: newSelectedFlatRows,
|
|
491
|
-
rowsById: newSelectedRowsById
|
|
492
|
-
};
|
|
493
|
-
}
|
|
494
|
-
function isRowSelected(row, selection, instance) {
|
|
495
|
-
if (selection[row.id]) {
|
|
496
|
-
return true;
|
|
497
|
-
}
|
|
498
|
-
|
|
499
|
-
if (row.subRows && row.subRows.length) {
|
|
500
|
-
var allChildrenSelected = true;
|
|
501
|
-
var someSelected = false;
|
|
502
|
-
row.subRows.forEach(function (subRow) {
|
|
503
|
-
// Bail out early if we know both of these
|
|
504
|
-
if (someSelected && !allChildrenSelected) {
|
|
505
|
-
return;
|
|
506
|
-
}
|
|
507
|
-
|
|
508
|
-
if (isRowSelected(subRow, selection)) {
|
|
509
|
-
someSelected = true;
|
|
510
|
-
} else {
|
|
511
|
-
allChildrenSelected = false;
|
|
512
|
-
}
|
|
513
|
-
});
|
|
514
|
-
return allChildrenSelected ? true : someSelected ? 'some' : false;
|
|
515
|
-
}
|
|
516
|
-
|
|
517
|
-
return false;
|
|
518
|
-
}
|
|
519
|
-
|
|
520
|
-
exports.createRow = createRow;
|
|
521
|
-
exports.getDefaultOptions = getDefaultOptions;
|
|
522
|
-
exports.getInitialState = getInitialState;
|
|
523
|
-
exports.getInstance = getInstance;
|
|
524
|
-
exports.isRowSelected = isRowSelected;
|
|
525
|
-
exports.selectRowsFn = selectRowsFn;
|
|
526
|
-
//# sourceMappingURL=RowSelection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RowSelection.js","sources":["../../../src/features/RowSelection.ts"],"sourcesContent":["import React, { MouseEvent, TouchEvent } from 'react'\nimport {\n Getter,\n OnChangeFn,\n PartialGenerics,\n PropGetterValue,\n TableInstance,\n Row,\n RowModel,\n Updater,\n} from '../types'\nimport { functionalUpdate, makeStateUpdater, memo, propGetter } from '../utils'\n\nexport type RowSelectionState = Record<string, boolean>\n\nexport type RowSelectionTableState = {\n rowSelection: RowSelectionState\n}\n\nexport type RowSelectionOptions<TGenerics extends PartialGenerics> = {\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n autoResetRowSelection?: boolean\n enableRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableMultiRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n enableSubRowSelection?: boolean | ((row: Row<TGenerics>) => boolean)\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TGenerics>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: MouseEvent | TouchEvent) => boolean\n // isInclusiveSelectEvent?: (e: MouseEvent | TouchEvent) => 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\ntype ToggleRowSelectedProps = {\n onChange?: (e: MouseEvent | TouchEvent) => void\n checked?: boolean\n title?: string\n indeterminate?: boolean\n}\n\nexport type RowSelectionRow = {\n getIsSelected: () => boolean\n getIsSomeSelected: () => boolean\n getCanSelect: () => boolean\n getCanMultiSelect: () => boolean\n toggleSelected: (value?: boolean) => void\n getToggleSelectedProps: <TGetter extends Getter<ToggleRowSelectedProps>>(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n}\n\nexport type RowSelectionInstance<TGenerics extends PartialGenerics> = {\n _notifyRowSelectionReset: () => void\n getToggleRowSelectedProps: <TGetter extends Getter<ToggleRowSelectedProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n getToggleAllRowsSelectedProps: <\n TGetter extends Getter<ToggleRowSelectedProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\n getToggleAllPageRowsSelectedProps: <\n TGetter extends Getter<ToggleRowSelectedProps>\n >(\n userProps?: TGetter\n ) => undefined | PropGetterValue<ToggleRowSelectedProps, TGetter>\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 function getInitialState(): RowSelectionTableState {\n return {\n rowSelection: {},\n }\n}\n\nexport function getDefaultOptions<TGenerics extends PartialGenerics>(\n instance: TableInstance<TGenerics>\n): RowSelectionOptions<TGenerics> {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', instance),\n autoResetRowSelection: true,\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: MouseEvent | TouchEvent) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: MouseEvent | TouchEvent) => !!e.shiftKey,\n }\n}\n\nexport function getInstance<TGenerics extends PartialGenerics>(\n instance: TableInstance<TGenerics>\n): RowSelectionInstance<TGenerics> {\n let registered = false\n\n // const pageRows = instance.getPageRows()\n\n return {\n _notifyRowSelectionReset: () => {\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetRowSelection\n ) {\n instance.resetRowSelection()\n }\n },\n setRowSelection: updater =>\n instance.options.onRowSelectionChange?.(\n updater,\n functionalUpdate(updater, instance.getState().rowSelection)\n ),\n resetRowSelection: () =>\n instance.setRowSelection(getInitialState().rowSelection ?? {}),\n toggleAllRowsSelected: value => {\n instance.setRowSelection(old => {\n value =\n typeof value !== 'undefined'\n ? value\n : !instance.getIsAllRowsSelected()\n\n // Only remove/add the rows that are visible on the screen\n // Leave all the other rows that are selected alone.\n const rowSelection = Object.assign({}, 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 onChange: () => instance._notifyExpandedReset(),\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 onChange: () => instance._notifyExpandedReset(),\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 onChange: () => instance._notifyExpandedReset(),\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 getToggleRowSelectedProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n\n const isSelected = row.getIsSelected()\n const isSomeSelected = row.getIsSomeSelected()\n const canSelect = row.getCanSelect()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: canSelect\n ? (e: MouseEvent | TouchEvent) => {\n row.toggleSelected((e.target as HTMLInputElement).checked)\n }\n : undefined,\n checked: isSelected,\n title: 'Toggle Row Selected',\n indeterminate: isSomeSelected,\n // onChange: forInput\n // ? (e: Event) => e.stopPropagation()\n // : (e: Event) => {\n // if (instance.options.isAdditiveSelectEvent(e)) {\n // row.toggleSelected()\n // } else if (instance.options.isInclusiveSelectEvent(e)) {\n // instance.addRowSelectionRange(row.id)\n // } else {\n // instance.setRowSelection({})\n // row.toggleSelected()\n // }\n\n // if (props.onClick) props.onClick(e)\n // },\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getToggleAllRowsSelectedProps: userProps => {\n const isSomeRowsSelected = instance.getIsSomeRowsSelected()\n const isAllRowsSelected = instance.getIsAllRowsSelected()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: (e: MouseEvent | TouchEvent) => {\n instance.toggleAllRowsSelected((e.target as HTMLInputElement).checked)\n },\n checked: isAllRowsSelected,\n title: 'Toggle All Rows Selected',\n indeterminate: isSomeRowsSelected,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getToggleAllPageRowsSelectedProps: userProps => {\n const isSomePageRowsSelected = instance.getIsSomePageRowsSelected()\n const isAllPageRowsSelected = instance.getIsAllPageRowsSelected()\n\n const initialProps: ToggleRowSelectedProps = {\n onChange: (e: MouseEvent | TouchEvent) => {\n instance.toggleAllPageRowsSelected(\n (e.target as HTMLInputElement).checked\n )\n },\n checked: isAllPageRowsSelected,\n title: 'Toggle All Current Page Rows Selected',\n indeterminate: isSomePageRowsSelected,\n }\n\n return propGetter(initialProps, userProps)\n },\n }\n}\n\nexport function createRow<TGenerics extends PartialGenerics>(\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 getToggleSelectedProps: userProps =>\n instance.getToggleRowSelectedProps(row.id, userProps),\n getCanMultiSelect: () => instance.getRowCanMultiSelect(row.id),\n getCanSelect: () => instance.getRowCanSelect(row.id),\n }\n}\n\nconst mutateRowIsSelected = <TGenerics extends PartialGenerics>(\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 PartialGenerics>(\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) => {\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 PartialGenerics>(\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":["getInitialState","rowSelection","getDefaultOptions","instance","onRowSelectionChange","makeStateUpdater","autoResetRowSelection","enableRowSelection","enableMultiRowSelection","enableSubRowSelection","getInstance","registered","_notifyRowSelectionReset","options","autoResetAll","resetRowSelection","setRowSelection","updater","functionalUpdate","getState","toggleAllRowsSelected","value","old","getIsAllRowsSelected","Object","assign","preGroupedFlatRows","getPreGroupedRowModel","flatRows","forEach","row","id","toggleAllPageRowsSelected","getIsAllPageRowsSelected","getRowModel","rows","mutateRowIsSelected","toggleRowSelected","rowId","getRow","isSelected","getIsSelected","selectedRowIds","getPreSelectedRowModel","getCoreRowModel","getSelectedRowModel","memo","rowModel","keys","length","rowsById","selectRowsFn","key","debug","debugAll","debugTable","onChange","_notifyExpandedReset","getFilteredSelectedRowModel","getGlobalFilteredRowModel","getGroupedSelectedRowModel","getGroupedRowModel","getRowIsSelected","Error","isRowSelected","getRowIsSomeSelected","getRowCanSelect","getRowCanSelectSubRows","getRowCanMultiSelect","preFilteredFlatRows","getPreGlobalFilteredRowModel","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationRowModel","isAllPageRowsSelected","getIsSomeRowsSelected","getIsSomePageRowsSelected","getToggleRowSelectedProps","userProps","isSomeSelected","getIsSomeSelected","canSelect","getCanSelect","initialProps","e","toggleSelected","target","checked","undefined","title","indeterminate","propGetter","getToggleAllRowsSelectedProps","isSomeRowsSelected","getToggleAllPageRowsSelectedProps","isSomePageRowsSelected","createRow","getToggleSelectedProps","getCanMultiSelect","getIsGrouped","subRows","newSelectedFlatRows","newSelectedRowsById","recurseRows","depth","map","push","filter","selection","allChildrenSelected","someSelected","subRow"],"mappings":"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"}
|