@tanstack/react-table 8.0.0-alpha.3 → 8.0.0-alpha.34

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.
Files changed (107) hide show
  1. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -78
  2. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
  3. package/build/cjs/index.js +99 -12
  4. package/build/cjs/index.js.map +1 -1
  5. package/build/esm/index.js +41 -4686
  6. package/build/esm/index.js.map +1 -1
  7. package/build/stats-html.html +1 -1
  8. package/build/stats-react.json +29 -747
  9. package/build/types/index.d.ts +13 -7
  10. package/build/umd/index.development.js +51 -4688
  11. package/build/umd/index.development.js.map +1 -1
  12. package/build/umd/index.production.js +1 -1
  13. package/build/umd/index.production.js.map +1 -1
  14. package/package.json +4 -1
  15. package/src/index.tsx +107 -7
  16. package/build/cjs/aggregationTypes.js +0 -130
  17. package/build/cjs/aggregationTypes.js.map +0 -1
  18. package/build/cjs/core.js +0 -552
  19. package/build/cjs/core.js.map +0 -1
  20. package/build/cjs/createTable.js +0 -108
  21. package/build/cjs/createTable.js.map +0 -1
  22. package/build/cjs/features/ColumnSizing.js +0 -317
  23. package/build/cjs/features/ColumnSizing.js.map +0 -1
  24. package/build/cjs/features/Expanding.js +0 -255
  25. package/build/cjs/features/Expanding.js.map +0 -1
  26. package/build/cjs/features/Filters.js +0 -445
  27. package/build/cjs/features/Filters.js.map +0 -1
  28. package/build/cjs/features/Grouping.js +0 -249
  29. package/build/cjs/features/Grouping.js.map +0 -1
  30. package/build/cjs/features/Headers.js +0 -549
  31. package/build/cjs/features/Headers.js.map +0 -1
  32. package/build/cjs/features/Ordering.js +0 -86
  33. package/build/cjs/features/Ordering.js.map +0 -1
  34. package/build/cjs/features/Pagination.js +0 -194
  35. package/build/cjs/features/Pagination.js.map +0 -1
  36. package/build/cjs/features/Pinning.js +0 -149
  37. package/build/cjs/features/Pinning.js.map +0 -1
  38. package/build/cjs/features/RowSelection.js +0 -541
  39. package/build/cjs/features/RowSelection.js.map +0 -1
  40. package/build/cjs/features/Sorting.js +0 -327
  41. package/build/cjs/features/Sorting.js.map +0 -1
  42. package/build/cjs/features/Visibility.js +0 -166
  43. package/build/cjs/features/Visibility.js.map +0 -1
  44. package/build/cjs/filterTypes.js +0 -172
  45. package/build/cjs/filterTypes.js.map +0 -1
  46. package/build/cjs/sortTypes.js +0 -122
  47. package/build/cjs/sortTypes.js.map +0 -1
  48. package/build/cjs/utils/columnFilterRowsFn.js +0 -131
  49. package/build/cjs/utils/columnFilterRowsFn.js.map +0 -1
  50. package/build/cjs/utils/expandRowsFn.js +0 -38
  51. package/build/cjs/utils/expandRowsFn.js.map +0 -1
  52. package/build/cjs/utils/globalFilterRowsFn.js +0 -101
  53. package/build/cjs/utils/globalFilterRowsFn.js.map +0 -1
  54. package/build/cjs/utils/groupRowsFn.js +0 -155
  55. package/build/cjs/utils/groupRowsFn.js.map +0 -1
  56. package/build/cjs/utils/sortRowsFn.js +0 -94
  57. package/build/cjs/utils/sortRowsFn.js.map +0 -1
  58. package/build/cjs/utils.js +0 -146
  59. package/build/cjs/utils.js.map +0 -1
  60. package/build/types/aggregationTypes.d.ts +0 -22
  61. package/build/types/core.d.ts +0 -111
  62. package/build/types/createTable.d.ts +0 -53
  63. package/build/types/features/ColumnSizing.d.ts +0 -67
  64. package/build/types/features/Expanding.d.ts +0 -53
  65. package/build/types/features/Filters.d.ts +0 -98
  66. package/build/types/features/Grouping.d.ts +0 -82
  67. package/build/types/features/Headers.d.ts +0 -41
  68. package/build/types/features/Ordering.d.ts +0 -19
  69. package/build/types/features/Pagination.d.ts +0 -43
  70. package/build/types/features/Pinning.d.ts +0 -39
  71. package/build/types/features/RowSelection.d.ts +0 -66
  72. package/build/types/features/Sorting.d.ts +0 -78
  73. package/build/types/features/Visibility.d.ts +0 -47
  74. package/build/types/filterTypes.d.ts +0 -50
  75. package/build/types/sortTypes.d.ts +0 -18
  76. package/build/types/types.d.ts +0 -127
  77. package/build/types/utils/columnFilterRowsFn.d.ts +0 -2
  78. package/build/types/utils/expandRowsFn.d.ts +0 -2
  79. package/build/types/utils/globalFilterRowsFn.d.ts +0 -2
  80. package/build/types/utils/groupRowsFn.d.ts +0 -2
  81. package/build/types/utils/paginateRowsFn.d.ts +0 -2
  82. package/build/types/utils/sortRowsFn.d.ts +0 -2
  83. package/build/types/utils.d.ts +0 -28
  84. package/src/aggregationTypes.ts +0 -115
  85. package/src/core.tsx +0 -1182
  86. package/src/createTable.tsx +0 -241
  87. package/src/features/ColumnSizing.ts +0 -453
  88. package/src/features/Expanding.ts +0 -404
  89. package/src/features/Filters.ts +0 -762
  90. package/src/features/Grouping.ts +0 -466
  91. package/src/features/Headers.ts +0 -912
  92. package/src/features/Ordering.ts +0 -133
  93. package/src/features/Pagination.ts +0 -314
  94. package/src/features/Pinning.ts +0 -200
  95. package/src/features/RowSelection.ts +0 -831
  96. package/src/features/Sorting.ts +0 -547
  97. package/src/features/Visibility.ts +0 -279
  98. package/src/filterTypes.ts +0 -251
  99. package/src/sortTypes.ts +0 -159
  100. package/src/types.ts +0 -331
  101. package/src/utils/columnFilterRowsFn.ts +0 -155
  102. package/src/utils/expandRowsFn.ts +0 -50
  103. package/src/utils/globalFilterRowsFn.ts +0 -122
  104. package/src/utils/groupRowsFn.ts +0 -194
  105. package/src/utils/paginateRowsFn.ts +0 -34
  106. package/src/utils/sortRowsFn.ts +0 -115
  107. package/src/utils.tsx +0 -257
@@ -1,541 +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.getPreGroupedFlatRows(); // 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.getRows().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
- getSelectedRowModel: utils.memo(function () {
163
- return [instance.getState().rowSelection, instance.getCoreRowModel()];
164
- }, function (rowSelection, rowModel) {
165
- if (!Object.keys(rowSelection).length) {
166
- return {
167
- rows: [],
168
- flatRows: [],
169
- rowsById: {}
170
- };
171
- }
172
-
173
- if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Selecting...');
174
- return selectRowsFn(instance, rowModel);
175
- }, {
176
- key: 'getSelectedRowModel',
177
- debug: instance.options.debug,
178
- onChange: function onChange() {
179
- return instance._notifyExpandedReset();
180
- }
181
- }),
182
- getSelectedRows: function getSelectedRows() {
183
- return instance.getSelectedRowModel().rows;
184
- },
185
- getSelectedFlatRows: function getSelectedFlatRows() {
186
- return instance.getSelectedRowModel().flatRows;
187
- },
188
- getSelectedRowsById: function getSelectedRowsById() {
189
- return instance.getSelectedRowModel().rowsById;
190
- },
191
- getFilteredSelectedRowModel: utils.memo(function () {
192
- return [instance.getState().rowSelection, instance.getGlobalFilteredRowModel()];
193
- }, function (rowSelection, rowModel) {
194
- if (!Object.keys(rowSelection).length) {
195
- return {
196
- rows: [],
197
- flatRows: [],
198
- rowsById: {}
199
- };
200
- }
201
-
202
- if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Selecting...');
203
- return selectRowsFn(instance, rowModel);
204
- }, {
205
- key: 'getFilteredSelectedRowModel',
206
- debug: instance.options.debug,
207
- onChange: function onChange() {
208
- return instance._notifyExpandedReset();
209
- }
210
- }),
211
- getFilteredSelectedRows: function getFilteredSelectedRows() {
212
- return instance.getFilteredSelectedRowModel().rows;
213
- },
214
- getFilteredSelectedFlatRows: function getFilteredSelectedFlatRows() {
215
- return instance.getFilteredSelectedRowModel().flatRows;
216
- },
217
- getFilteredSelectedRowsById: function getFilteredSelectedRowsById() {
218
- return instance.getFilteredSelectedRowModel().rowsById;
219
- },
220
- getGroupedSelectedRowModel: utils.memo(function () {
221
- return [instance.getState().rowSelection, instance.getGroupedRowModel()];
222
- }, function (rowSelection, rowModel) {
223
- if (!Object.keys(rowSelection).length) {
224
- return {
225
- rows: [],
226
- flatRows: [],
227
- rowsById: {}
228
- };
229
- }
230
-
231
- if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Selecting...');
232
- return selectRowsFn(instance, rowModel);
233
- }, {
234
- key: 'getGroupedSelectedRowModel',
235
- debug: instance.options.debug,
236
- onChange: function onChange() {
237
- return instance._notifyExpandedReset();
238
- }
239
- }),
240
- getGroupedSelectedRows: function getGroupedSelectedRows() {
241
- return instance.getGroupedSelectedRowModel().rows;
242
- },
243
- getGroupedSelectedFlatRows: function getGroupedSelectedFlatRows() {
244
- return instance.getGroupedSelectedRowModel().flatRows;
245
- },
246
- getGroupedSelectedRowsById: function getGroupedSelectedRowsById() {
247
- return instance.getGroupedSelectedRowModel().rowsById;
248
- },
249
- ///
250
- getRowIsSelected: function getRowIsSelected(rowId) {
251
- var _instance$getState = instance.getState(),
252
- rowSelection = _instance$getState.rowSelection;
253
-
254
- var row = instance.getRow(rowId);
255
-
256
- if (!row) {
257
- throw new Error();
258
- }
259
-
260
- return isRowSelected(row, rowSelection) === true;
261
- },
262
- getRowIsSomeSelected: function getRowIsSomeSelected(rowId) {
263
- var _instance$getState2 = instance.getState(),
264
- rowSelection = _instance$getState2.rowSelection;
265
-
266
- var row = instance.getRow(rowId);
267
-
268
- if (!row) {
269
- throw new Error();
270
- }
271
-
272
- return isRowSelected(row, rowSelection) === 'some';
273
- },
274
- getRowCanSelect: function getRowCanSelect(rowId) {
275
- var _instance$options$ena;
276
-
277
- var row = instance.getRow(rowId);
278
-
279
- if (!row) {
280
- throw new Error();
281
- }
282
-
283
- if (typeof instance.options.enableRowSelection === 'function') {
284
- return instance.options.enableRowSelection(row);
285
- }
286
-
287
- return (_instance$options$ena = instance.options.enableRowSelection) != null ? _instance$options$ena : true;
288
- },
289
- getRowCanSelectSubRows: function getRowCanSelectSubRows(rowId) {
290
- var _instance$options$ena2;
291
-
292
- var row = instance.getRow(rowId);
293
-
294
- if (!row) {
295
- throw new Error();
296
- }
297
-
298
- if (typeof instance.options.enableSubRowSelection === 'function') {
299
- return instance.options.enableSubRowSelection(row);
300
- }
301
-
302
- return (_instance$options$ena2 = instance.options.enableSubRowSelection) != null ? _instance$options$ena2 : true;
303
- },
304
- getRowCanMultiSelect: function getRowCanMultiSelect(rowId) {
305
- var _instance$options$ena3;
306
-
307
- var row = instance.getRow(rowId);
308
-
309
- if (!row) {
310
- throw new Error();
311
- }
312
-
313
- if (typeof instance.options.enableMultiRowSelection === 'function') {
314
- return instance.options.enableMultiRowSelection(row);
315
- }
316
-
317
- return (_instance$options$ena3 = instance.options.enableMultiRowSelection) != null ? _instance$options$ena3 : true;
318
- },
319
- // getGroupingRowCanSelect: rowId => {
320
- // const row = instance.getRow(rowId)
321
- // if (!row) {
322
- // throw new Error()
323
- // }
324
- // if (typeof instance.options.enableGroupingRowSelection === 'function') {
325
- // return instance.options.enableGroupingRowSelection(row)
326
- // }
327
- // return instance.options.enableGroupingRowSelection ?? false
328
- // },
329
- getIsAllRowsSelected: function getIsAllRowsSelected() {
330
- var preFilteredFlatRows = instance.getPreGlobalFilteredFlatRows();
331
-
332
- var _instance$getState3 = instance.getState(),
333
- rowSelection = _instance$getState3.rowSelection;
334
-
335
- var isAllRowsSelected = Boolean(preFilteredFlatRows.length && Object.keys(rowSelection).length);
336
-
337
- if (isAllRowsSelected) {
338
- if (preFilteredFlatRows.some(function (row) {
339
- return !rowSelection[row.id];
340
- })) {
341
- isAllRowsSelected = false;
342
- }
343
- }
344
-
345
- return isAllRowsSelected;
346
- },
347
- getIsAllPageRowsSelected: function getIsAllPageRowsSelected() {
348
- var paginationFlatRows = instance.getPaginationFlatRows();
349
-
350
- var _instance$getState4 = instance.getState(),
351
- rowSelection = _instance$getState4.rowSelection;
352
-
353
- var isAllPageRowsSelected = !!paginationFlatRows.length;
354
-
355
- if (isAllPageRowsSelected && paginationFlatRows.some(function (row) {
356
- return !rowSelection[row.id];
357
- })) {
358
- isAllPageRowsSelected = false;
359
- }
360
-
361
- return isAllPageRowsSelected;
362
- },
363
- getIsSomeRowsSelected: function getIsSomeRowsSelected() {
364
- var _instance$getState$ro;
365
-
366
- return !instance.getIsAllRowsSelected() && !!Object.keys((_instance$getState$ro = instance.getState().rowSelection) != null ? _instance$getState$ro : {}).length;
367
- },
368
- getIsSomePageRowsSelected: function getIsSomePageRowsSelected() {
369
- var paginationFlatRows = instance.getPaginationFlatRows();
370
- return instance.getIsAllPageRowsSelected() ? false : !!(paginationFlatRows != null && paginationFlatRows.length);
371
- },
372
- getToggleRowSelectedProps: function getToggleRowSelectedProps(rowId, userProps) {
373
- var row = instance.getRow(rowId);
374
- var isSelected = row.getIsSelected();
375
- var isSomeSelected = row.getIsSomeSelected();
376
- var canSelect = row.getCanSelect();
377
- var initialProps = {
378
- onChange: canSelect ? function (e) {
379
- row.toggleSelected(e.target.checked);
380
- } : undefined,
381
- checked: isSelected,
382
- title: 'Toggle Row Selected',
383
- indeterminate: isSomeSelected // onChange: forInput
384
- // ? (e: Event) => e.stopPropagation()
385
- // : (e: Event) => {
386
- // if (instance.options.isAdditiveSelectEvent(e)) {
387
- // row.toggleSelected()
388
- // } else if (instance.options.isInclusiveSelectEvent(e)) {
389
- // instance.addRowSelectionRange(row.id)
390
- // } else {
391
- // instance.setRowSelection({})
392
- // row.toggleSelected()
393
- // }
394
- // if (props.onClick) props.onClick(e)
395
- // },
396
-
397
- };
398
- return utils.propGetter(initialProps, userProps);
399
- },
400
- getToggleAllRowsSelectedProps: function getToggleAllRowsSelectedProps(userProps) {
401
- var isSomeRowsSelected = instance.getIsSomeRowsSelected();
402
- var isAllRowsSelected = instance.getIsAllRowsSelected();
403
- var initialProps = {
404
- onChange: function onChange(e) {
405
- instance.toggleAllRowsSelected(e.target.checked);
406
- },
407
- checked: isAllRowsSelected,
408
- title: 'Toggle All Rows Selected',
409
- indeterminate: isSomeRowsSelected
410
- };
411
- return utils.propGetter(initialProps, userProps);
412
- },
413
- getToggleAllPageRowsSelectedProps: function getToggleAllPageRowsSelectedProps(userProps) {
414
- var isSomePageRowsSelected = instance.getIsSomePageRowsSelected();
415
- var isAllPageRowsSelected = instance.getIsAllPageRowsSelected();
416
- var initialProps = {
417
- onChange: function onChange(e) {
418
- instance.toggleAllPageRowsSelected(e.target.checked);
419
- },
420
- checked: isAllPageRowsSelected,
421
- title: 'Toggle All Current Page Rows Selected',
422
- indeterminate: isSomePageRowsSelected
423
- };
424
- return utils.propGetter(initialProps, userProps);
425
- }
426
- };
427
- }
428
- function createRow(row, instance) {
429
- return {
430
- getIsSelected: function getIsSelected() {
431
- return instance.getRowIsSelected(row.id);
432
- },
433
- getIsSomeSelected: function getIsSomeSelected() {
434
- return instance.getRowIsSomeSelected(row.id);
435
- },
436
- toggleSelected: function toggleSelected(value) {
437
- return instance.toggleRowSelected(row.id, value);
438
- },
439
- getToggleSelectedProps: function getToggleSelectedProps(userProps) {
440
- return instance.getToggleRowSelectedProps(row.id, userProps);
441
- },
442
- getCanMultiSelect: function getCanMultiSelect() {
443
- return instance.getRowCanMultiSelect(row.id);
444
- },
445
- getCanSelect: function getCanSelect() {
446
- return instance.getRowCanSelect(row.id);
447
- }
448
- };
449
- }
450
-
451
- var mutateRowIsSelected = function mutateRowIsSelected(selectedRowIds, id, value, instance) {
452
- var _row$subRows;
453
-
454
- var row = instance.getRow(id);
455
- row.getIsGrouped(); // if ( // TODO: enforce grouping row selection rules
456
- // !isGrouped ||
457
- // (isGrouped && instance.options.enableGroupingRowSelection)
458
- // ) {
459
-
460
- if (value) {
461
- selectedRowIds[id] = true;
462
- } else {
463
- delete selectedRowIds[id];
464
- } // }
465
-
466
-
467
- if ((_row$subRows = row.subRows) != null && _row$subRows.length && instance.getRowCanSelectSubRows(row.id)) {
468
- row.subRows.forEach(function (row) {
469
- return mutateRowIsSelected(selectedRowIds, row.id, value, instance);
470
- });
471
- }
472
- };
473
-
474
- function selectRowsFn(instance, rowModel) {
475
- var rowSelection = instance.getState().rowSelection;
476
- var newSelectedFlatRows = [];
477
- var newSelectedRowsById = {}; // Filters top level and nested rows
478
-
479
- var recurseRows = function recurseRows(rows, depth) {
480
-
481
- return rows.map(function (row) {
482
- var _row$subRows2;
483
-
484
- var isSelected = isRowSelected(row, rowSelection) === true;
485
-
486
- if (isSelected) {
487
- newSelectedFlatRows.push(row);
488
- newSelectedRowsById[row.id] = row;
489
- }
490
-
491
- if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {
492
- row = _rollupPluginBabelHelpers["extends"]({}, row, {
493
- subRows: recurseRows(row.subRows)
494
- });
495
- }
496
-
497
- if (isSelected) {
498
- return row;
499
- }
500
- }).filter(Boolean);
501
- };
502
-
503
- return {
504
- rows: recurseRows(rowModel.rows),
505
- flatRows: newSelectedFlatRows,
506
- rowsById: newSelectedRowsById
507
- };
508
- }
509
- function isRowSelected(row, selection, instance) {
510
- if (selection[row.id]) {
511
- return true;
512
- }
513
-
514
- if (row.subRows && row.subRows.length) {
515
- var allChildrenSelected = true;
516
- var someSelected = false;
517
- row.subRows.forEach(function (subRow) {
518
- // Bail out early if we know both of these
519
- if (someSelected && !allChildrenSelected) {
520
- return;
521
- }
522
-
523
- if (isRowSelected(subRow, selection)) {
524
- someSelected = true;
525
- } else {
526
- allChildrenSelected = false;
527
- }
528
- });
529
- return allChildrenSelected ? true : someSelected ? 'some' : false;
530
- }
531
-
532
- return false;
533
- }
534
-
535
- exports.createRow = createRow;
536
- exports.getDefaultOptions = getDefaultOptions;
537
- exports.getInitialState = getInitialState;
538
- exports.getInstance = getInstance;
539
- exports.isRowSelected = isRowSelected;
540
- exports.selectRowsFn = selectRowsFn;
541
- //# 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 PropGetterValue,\n ReactTable,\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<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n autoResetRowSelection?: boolean\n enableRowSelection?:\n | boolean\n | ((\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => boolean)\n enableMultiRowSelection?:\n | boolean\n | ((\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => boolean)\n enableSubRowSelection?:\n | boolean\n | ((\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => boolean)\n // enableGroupingRowSelection?:\n // | boolean\n // | ((\n // row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n // ) => boolean)\n // isAdditiveSelectEvent?: (e: MouseEvent | TouchEvent) => boolean\n // isInclusiveSelectEvent?: (e: MouseEvent | TouchEvent) => boolean\n // selectRowsFn?: (\n // instance: ReactTable<\n // TData,\n // TValue,\n // TFilterFns,\n // TSortingFns,\n // TAggregationFns\n // >,\n // rowModel: RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n // ) => RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\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<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\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 getSelectedRowModel: () => RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n getSelectedRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getSelectedFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getSelectedRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getFilteredSelectedRowModel: () => RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n getFilteredSelectedRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getFilteredSelectedFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getFilteredSelectedRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getGroupedSelectedRowModel: () => RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n getGroupedSelectedRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getGroupedSelectedFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getGroupedSelectedRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n}\n\n//\n\nexport function getInitialState(): RowSelectionTableState {\n return {\n rowSelection: {},\n }\n}\n\nexport function getDefaultOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): RowSelectionOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> {\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<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): RowSelectionInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> {\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.getPreGroupedFlatRows()\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.getRows().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 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 if (process.env.NODE_ENV !== 'production' && instance.options.debug)\n console.info('Selecting...')\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getSelectedRowModel',\n debug: instance.options.debug,\n onChange: () => instance._notifyExpandedReset(),\n }\n ),\n getSelectedRows: () => instance.getSelectedRowModel().rows,\n getSelectedFlatRows: () => instance.getSelectedRowModel().flatRows,\n getSelectedRowsById: () => instance.getSelectedRowModel().rowsById,\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 if (process.env.NODE_ENV !== 'production' && instance.options.debug)\n console.info('Selecting...')\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getFilteredSelectedRowModel',\n debug: instance.options.debug,\n onChange: () => instance._notifyExpandedReset(),\n }\n ),\n getFilteredSelectedRows: () => instance.getFilteredSelectedRowModel().rows,\n getFilteredSelectedFlatRows: () =>\n instance.getFilteredSelectedRowModel().flatRows,\n getFilteredSelectedRowsById: () =>\n instance.getFilteredSelectedRowModel().rowsById,\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 if (process.env.NODE_ENV !== 'production' && instance.options.debug)\n console.info('Selecting...')\n\n return selectRowsFn(instance, rowModel)\n },\n {\n key: 'getGroupedSelectedRowModel',\n debug: instance.options.debug,\n onChange: () => instance._notifyExpandedReset(),\n }\n ),\n getGroupedSelectedRows: () => instance.getGroupedSelectedRowModel().rows,\n getGroupedSelectedFlatRows: () =>\n instance.getGroupedSelectedRowModel().flatRows,\n getGroupedSelectedRowsById: () =>\n instance.getGroupedSelectedRowModel().rowsById,\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 = instance.getPreGlobalFilteredFlatRows()\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.getPaginationFlatRows()\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.getPaginationFlatRows()\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<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\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 = <\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n selectedRowIds: Record<string, boolean>,\n id: string,\n value: boolean,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\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<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n rowModel: RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n): RowModel<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n const rowSelection = instance.getState().rowSelection\n\n const newSelectedFlatRows: Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n const newSelectedRowsById: Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n > = {}\n\n // Filters top level and nested rows\n const recurseRows = (\n rows: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[],\n depth = 0\n ) => {\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<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n }\n\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById,\n }\n}\n\nexport function isRowSelected<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n selection: Record<string, boolean>,\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\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","getPreGroupedFlatRows","forEach","row","id","toggleAllPageRowsSelected","getIsAllPageRowsSelected","getRows","mutateRowIsSelected","toggleRowSelected","rowId","getRow","isSelected","getIsSelected","selectedRowIds","getSelectedRowModel","memo","getCoreRowModel","rowModel","keys","length","rows","flatRows","rowsById","process","env","NODE_ENV","debug","console","info","selectRowsFn","key","onChange","_notifyExpandedReset","getSelectedRows","getSelectedFlatRows","getSelectedRowsById","getFilteredSelectedRowModel","getGlobalFilteredRowModel","getFilteredSelectedRows","getFilteredSelectedFlatRows","getFilteredSelectedRowsById","getGroupedSelectedRowModel","getGroupedRowModel","getGroupedSelectedRows","getGroupedSelectedFlatRows","getGroupedSelectedRowsById","getRowIsSelected","Error","isRowSelected","getRowIsSomeSelected","getRowCanSelect","getRowCanSelectSubRows","getRowCanMultiSelect","preFilteredFlatRows","getPreGlobalFilteredFlatRows","isAllRowsSelected","Boolean","some","paginationFlatRows","getPaginationFlatRows","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":";;;;;;;;;;;;;;;;;AAiMA;AAEO,SAASA,eAAT,GAAmD;AACxD,SAAO;AACLC,IAAAA,YAAY,EAAE;AADT,GAAP;AAGD;AAEM,SAASC,iBAAT,CAOLC,QAPK,EAcL;AACA,SAAO;AACLC,IAAAA,oBAAoB,EAAEC,sBAAgB,CAAC,cAAD,EAAiBF,QAAjB,CADjC;AAELG,IAAAA,qBAAqB,EAAE,IAFlB;AAGLC,IAAAA,kBAAkB,EAAE,IAHf;AAILC,IAAAA,uBAAuB,EAAE,IAJpB;AAKLC,IAAAA,qBAAqB,EAAE,IALlB;AAOL;AACA;;AARK,GAAP;AAUD;AAEM,SAASC,WAAT,CAOLP,QAPK,EAcL;AACA,MAAIQ,UAAU,GAAG,KAAjB,CADA;;AAKA,SAAO;AACLC,IAAAA,wBAAwB,EAAE,oCAAM;AAC9B,UAAI,CAACD,UAAL,EAAiB;AACfA,QAAAA,UAAU,GAAG,IAAb;AACA;AACD;;AAED,UAAIR,QAAQ,CAACU,OAAT,CAAiBC,YAAjB,KAAkC,KAAtC,EAA6C;AAC3C;AACD;;AAED,UACEX,QAAQ,CAACU,OAAT,CAAiBC,YAAjB,KAAkC,IAAlC,IACAX,QAAQ,CAACU,OAAT,CAAiBP,qBAFnB,EAGE;AACAH,QAAAA,QAAQ,CAACY,iBAAT;AACD;AACF,KAjBI;AAkBLC,IAAAA,eAAe,EAAE,yBAAAC,OAAO;AAAA,aACtBd,QAAQ,CAACU,OAAT,CAAiBT,oBADK,oBACtBD,QAAQ,CAACU,OAAT,CAAiBT,oBAAjB,CACEa,OADF,EAEEC,sBAAgB,CAACD,OAAD,EAAUd,QAAQ,CAACgB,QAAT,GAAoBlB,YAA9B,CAFlB,CADsB;AAAA,KAlBnB;AAuBLc,IAAAA,iBAAiB,EAAE;AAAA;;AAAA,aACjBZ,QAAQ,CAACa,eAAT,0BAAyBhB,eAAe,GAAGC,YAA3C,oCAA2D,EAA3D,CADiB;AAAA,KAvBd;AAyBLmB,IAAAA,qBAAqB,EAAE,+BAAAC,KAAK,EAAI;AAC9BlB,MAAAA,QAAQ,CAACa,eAAT,CAAyB,UAAAM,GAAG,EAAI;AAC9BD,QAAAA,KAAK,GACH,OAAOA,KAAP,KAAiB,WAAjB,GACIA,KADJ,GAEI,CAAClB,QAAQ,CAACoB,oBAAT,EAHP,CAD8B;AAO9B;;AACA,YAAMtB,YAAY,GAAGuB,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBH,GAAlB,CAArB;AAEA,YAAMI,kBAAkB,GAAGvB,QAAQ,CAACwB,qBAAT,EAA3B,CAV8B;AAa9B;;AACA,YAAIN,KAAJ,EAAW;AACTK,UAAAA,kBAAkB,CAACE,OAAnB,CAA2B,UAAAC,GAAG,EAAI;AAChC5B,YAAAA,YAAY,CAAC4B,GAAG,CAACC,EAAL,CAAZ,GAAuB,IAAvB;AACD,WAFD;AAGD,SAJD,MAIO;AACLJ,UAAAA,kBAAkB,CAACE,OAAnB,CAA2B,UAAAC,GAAG,EAAI;AAChC,mBAAO5B,YAAY,CAAC4B,GAAG,CAACC,EAAL,CAAnB;AACD,WAFD;AAGD;;AAED,eAAO7B,YAAP;AACD,OAzBD;AA0BD,KApDI;AAqDL8B,IAAAA,yBAAyB,EAAE,mCAAAV,KAAK;AAAA,aAC9BlB,QAAQ,CAACa,eAAT,CAAyB,UAAAM,GAAG,EAAI;AAC9B,QACE,OAAOD,KAAP,KAAiB,WAAjB,GACIA,KADJ,GAEI,CAAClB,QAAQ,CAAC6B,wBAAT;;AAEP,YAAM/B,YAA+B,4CAAQqB,GAAR,CAArC;;AAEAnB,QAAAA,QAAQ,CAAC8B,OAAT,GAAmBL,OAAnB,CAA2B,UAAAC,GAAG,EAAI;AAChCK,UAAAA,mBAAmB,CAACjC,YAAD,EAAe4B,GAAG,CAACC,EAAnB,EAAuBT,KAAvB,EAA8BlB,QAA9B,CAAnB;AACD,SAFD;AAIA,eAAOF,YAAP;AACD,OAbD,CAD8B;AAAA,KArD3B;AAoELkC,IAAAA,iBAAiB,EAAE,2BAACC,KAAD,EAAQf,KAAR,EAAkB;AACnC,UAAMQ,GAAG,GAAG1B,QAAQ,CAACkC,MAAT,CAAgBD,KAAhB,CAAZ;AACA,UAAME,UAAU,GAAGT,GAAG,CAACU,aAAJ,EAAnB;AAEApC,MAAAA,QAAQ,CAACa,eAAT,CAAyB,UAAAM,GAAG,EAAI;AAC9BD,QAAAA,KAAK,GAAG,OAAOA,KAAP,KAAiB,WAAjB,GAA+BA,KAA/B,GAAuC,CAACiB,UAAhD;;AAEA,YAAIA,UAAU,KAAKjB,KAAnB,EAA0B;AACxB,iBAAOC,GAAP;AACD;;AAED,YAAMkB,cAAc,4CAAQlB,GAAR,CAApB;;AAEAY,QAAAA,mBAAmB,CAACM,cAAD,EAAiBJ,KAAjB,EAAwBf,KAAxB,EAA+BlB,QAA/B,CAAnB;AAEA,eAAOqC,cAAP;AACD,OAZD;AAaD,KArFI;AAsFL;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACAC,IAAAA,mBAAmB,EAAEC,UAAI,CACvB;AAAA,aAAM,CAACvC,QAAQ,CAACgB,QAAT,GAAoBlB,YAArB,EAAmCE,QAAQ,CAACwC,eAAT,EAAnC,CAAN;AAAA,KADuB,EAEvB,UAAC1C,YAAD,EAAe2C,QAAf,EAA4B;AAC1B,UAAI,CAACpB,MAAM,CAACqB,IAAP,CAAY5C,YAAZ,EAA0B6C,MAA/B,EAAuC;AACrC,eAAO;AACLC,UAAAA,IAAI,EAAE,EADD;AAELC,UAAAA,QAAQ,EAAE,EAFL;AAGLC,UAAAA,QAAQ,EAAE;AAHL,SAAP;AAKD;;AAED,UAAIC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,IAAyCjD,QAAQ,CAACU,OAAT,CAAiBwC,KAA9D,EACEC,OAAO,CAACC,IAAR,CAAa,cAAb;AAEF,aAAOC,YAAY,CAACrD,QAAD,EAAWyC,QAAX,CAAnB;AACD,KAfsB,EAgBvB;AACEa,MAAAA,GAAG,EAAE,qBADP;AAEEJ,MAAAA,KAAK,EAAElD,QAAQ,CAACU,OAAT,CAAiBwC,KAF1B;AAGEK,MAAAA,QAAQ,EAAE;AAAA,eAAMvD,QAAQ,CAACwD,oBAAT,EAAN;AAAA;AAHZ,KAhBuB,CAhJpB;AAsKLC,IAAAA,eAAe,EAAE;AAAA,aAAMzD,QAAQ,CAACsC,mBAAT,GAA+BM,IAArC;AAAA,KAtKZ;AAuKLc,IAAAA,mBAAmB,EAAE;AAAA,aAAM1D,QAAQ,CAACsC,mBAAT,GAA+BO,QAArC;AAAA,KAvKhB;AAwKLc,IAAAA,mBAAmB,EAAE;AAAA,aAAM3D,QAAQ,CAACsC,mBAAT,GAA+BQ,QAArC;AAAA,KAxKhB;AA0KLc,IAAAA,2BAA2B,EAAErB,UAAI,CAC/B;AAAA,aAAM,CACJvC,QAAQ,CAACgB,QAAT,GAAoBlB,YADhB,EAEJE,QAAQ,CAAC6D,yBAAT,EAFI,CAAN;AAAA,KAD+B,EAK/B,UAAC/D,YAAD,EAAe2C,QAAf,EAA4B;AAC1B,UAAI,CAACpB,MAAM,CAACqB,IAAP,CAAY5C,YAAZ,EAA0B6C,MAA/B,EAAuC;AACrC,eAAO;AACLC,UAAAA,IAAI,EAAE,EADD;AAELC,UAAAA,QAAQ,EAAE,EAFL;AAGLC,UAAAA,QAAQ,EAAE;AAHL,SAAP;AAKD;;AAED,UAAIC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,IAAyCjD,QAAQ,CAACU,OAAT,CAAiBwC,KAA9D,EACEC,OAAO,CAACC,IAAR,CAAa,cAAb;AAEF,aAAOC,YAAY,CAACrD,QAAD,EAAWyC,QAAX,CAAnB;AACD,KAlB8B,EAmB/B;AACEa,MAAAA,GAAG,EAAE,6BADP;AAEEJ,MAAAA,KAAK,EAAElD,QAAQ,CAACU,OAAT,CAAiBwC,KAF1B;AAGEK,MAAAA,QAAQ,EAAE;AAAA,eAAMvD,QAAQ,CAACwD,oBAAT,EAAN;AAAA;AAHZ,KAnB+B,CA1K5B;AAmMLM,IAAAA,uBAAuB,EAAE;AAAA,aAAM9D,QAAQ,CAAC4D,2BAAT,GAAuChB,IAA7C;AAAA,KAnMpB;AAoMLmB,IAAAA,2BAA2B,EAAE;AAAA,aAC3B/D,QAAQ,CAAC4D,2BAAT,GAAuCf,QADZ;AAAA,KApMxB;AAsMLmB,IAAAA,2BAA2B,EAAE;AAAA,aAC3BhE,QAAQ,CAAC4D,2BAAT,GAAuCd,QADZ;AAAA,KAtMxB;AAyMLmB,IAAAA,0BAA0B,EAAE1B,UAAI,CAC9B;AAAA,aAAM,CAACvC,QAAQ,CAACgB,QAAT,GAAoBlB,YAArB,EAAmCE,QAAQ,CAACkE,kBAAT,EAAnC,CAAN;AAAA,KAD8B,EAE9B,UAACpE,YAAD,EAAe2C,QAAf,EAA4B;AAC1B,UAAI,CAACpB,MAAM,CAACqB,IAAP,CAAY5C,YAAZ,EAA0B6C,MAA/B,EAAuC;AACrC,eAAO;AACLC,UAAAA,IAAI,EAAE,EADD;AAELC,UAAAA,QAAQ,EAAE,EAFL;AAGLC,UAAAA,QAAQ,EAAE;AAHL,SAAP;AAKD;;AAED,UAAIC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,IAAyCjD,QAAQ,CAACU,OAAT,CAAiBwC,KAA9D,EACEC,OAAO,CAACC,IAAR,CAAa,cAAb;AAEF,aAAOC,YAAY,CAACrD,QAAD,EAAWyC,QAAX,CAAnB;AACD,KAf6B,EAgB9B;AACEa,MAAAA,GAAG,EAAE,4BADP;AAEEJ,MAAAA,KAAK,EAAElD,QAAQ,CAACU,OAAT,CAAiBwC,KAF1B;AAGEK,MAAAA,QAAQ,EAAE;AAAA,eAAMvD,QAAQ,CAACwD,oBAAT,EAAN;AAAA;AAHZ,KAhB8B,CAzM3B;AA+NLW,IAAAA,sBAAsB,EAAE;AAAA,aAAMnE,QAAQ,CAACiE,0BAAT,GAAsCrB,IAA5C;AAAA,KA/NnB;AAgOLwB,IAAAA,0BAA0B,EAAE;AAAA,aAC1BpE,QAAQ,CAACiE,0BAAT,GAAsCpB,QADZ;AAAA,KAhOvB;AAkOLwB,IAAAA,0BAA0B,EAAE;AAAA,aAC1BrE,QAAQ,CAACiE,0BAAT,GAAsCnB,QADZ;AAAA,KAlOvB;AAqOL;AAEAwB,IAAAA,gBAAgB,EAAE,0BAAArC,KAAK,EAAI;AACzB,+BAAyBjC,QAAQ,CAACgB,QAAT,EAAzB;AAAA,UAAQlB,YAAR,sBAAQA,YAAR;;AACA,UAAM4B,GAAG,GAAG1B,QAAQ,CAACkC,MAAT,CAAgBD,KAAhB,CAAZ;;AAEA,UAAI,CAACP,GAAL,EAAU;AACR,cAAM,IAAI6C,KAAJ,EAAN;AACD;;AAED,aAAOC,aAAa,CAAC9C,GAAD,EAAM5B,YAAN,CAAb,KAA+C,IAAtD;AACD,KAhPI;AAkPL2E,IAAAA,oBAAoB,EAAE,8BAAAxC,KAAK,EAAI;AAC7B,gCAAyBjC,QAAQ,CAACgB,QAAT,EAAzB;AAAA,UAAQlB,YAAR,uBAAQA,YAAR;;AACA,UAAM4B,GAAG,GAAG1B,QAAQ,CAACkC,MAAT,CAAgBD,KAAhB,CAAZ;;AAEA,UAAI,CAACP,GAAL,EAAU;AACR,cAAM,IAAI6C,KAAJ,EAAN;AACD;;AAED,aAAOC,aAAa,CAAC9C,GAAD,EAAM5B,YAAN,CAAb,KAA+C,MAAtD;AACD,KA3PI;AA6PL4E,IAAAA,eAAe,EAAE,yBAAAzC,KAAK,EAAI;AAAA;;AACxB,UAAMP,GAAG,GAAG1B,QAAQ,CAACkC,MAAT,CAAgBD,KAAhB,CAAZ;;AAEA,UAAI,CAACP,GAAL,EAAU;AACR,cAAM,IAAI6C,KAAJ,EAAN;AACD;;AAED,UAAI,OAAOvE,QAAQ,CAACU,OAAT,CAAiBN,kBAAxB,KAA+C,UAAnD,EAA+D;AAC7D,eAAOJ,QAAQ,CAACU,OAAT,CAAiBN,kBAAjB,CAAoCsB,GAApC,CAAP;AACD;;AAED,sCAAO1B,QAAQ,CAACU,OAAT,CAAiBN,kBAAxB,oCAA8C,IAA9C;AACD,KAzQI;AA2QLuE,IAAAA,sBAAsB,EAAE,gCAAA1C,KAAK,EAAI;AAAA;;AAC/B,UAAMP,GAAG,GAAG1B,QAAQ,CAACkC,MAAT,CAAgBD,KAAhB,CAAZ;;AAEA,UAAI,CAACP,GAAL,EAAU;AACR,cAAM,IAAI6C,KAAJ,EAAN;AACD;;AAED,UAAI,OAAOvE,QAAQ,CAACU,OAAT,CAAiBJ,qBAAxB,KAAkD,UAAtD,EAAkE;AAChE,eAAON,QAAQ,CAACU,OAAT,CAAiBJ,qBAAjB,CAAuCoB,GAAvC,CAAP;AACD;;AAED,uCAAO1B,QAAQ,CAACU,OAAT,CAAiBJ,qBAAxB,qCAAiD,IAAjD;AACD,KAvRI;AAyRLsE,IAAAA,oBAAoB,EAAE,8BAAA3C,KAAK,EAAI;AAAA;;AAC7B,UAAMP,GAAG,GAAG1B,QAAQ,CAACkC,MAAT,CAAgBD,KAAhB,CAAZ;;AAEA,UAAI,CAACP,GAAL,EAAU;AACR,cAAM,IAAI6C,KAAJ,EAAN;AACD;;AAED,UAAI,OAAOvE,QAAQ,CAACU,OAAT,CAAiBL,uBAAxB,KAAoD,UAAxD,EAAoE;AAClE,eAAOL,QAAQ,CAACU,OAAT,CAAiBL,uBAAjB,CAAyCqB,GAAzC,CAAP;AACD;;AAED,uCAAO1B,QAAQ,CAACU,OAAT,CAAiBL,uBAAxB,qCAAmD,IAAnD;AACD,KArSI;AAuSL;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEAe,IAAAA,oBAAoB,EAAE,gCAAM;AAC1B,UAAMyD,mBAAmB,GAAG7E,QAAQ,CAAC8E,4BAAT,EAA5B;;AACA,gCAAyB9E,QAAQ,CAACgB,QAAT,EAAzB;AAAA,UAAQlB,YAAR,uBAAQA,YAAR;;AAEA,UAAIiF,iBAAiB,GAAGC,OAAO,CAC7BH,mBAAmB,CAAClC,MAApB,IAA8BtB,MAAM,CAACqB,IAAP,CAAY5C,YAAZ,EAA0B6C,MAD3B,CAA/B;;AAIA,UAAIoC,iBAAJ,EAAuB;AACrB,YAAIF,mBAAmB,CAACI,IAApB,CAAyB,UAAAvD,GAAG;AAAA,iBAAI,CAAC5B,YAAY,CAAC4B,GAAG,CAACC,EAAL,CAAjB;AAAA,SAA5B,CAAJ,EAA4D;AAC1DoD,UAAAA,iBAAiB,GAAG,KAApB;AACD;AACF;;AAED,aAAOA,iBAAP;AACD,KApUI;AAsULlD,IAAAA,wBAAwB,EAAE,oCAAM;AAC9B,UAAMqD,kBAAkB,GAAGlF,QAAQ,CAACmF,qBAAT,EAA3B;;AACA,gCAAyBnF,QAAQ,CAACgB,QAAT,EAAzB;AAAA,UAAQlB,YAAR,uBAAQA,YAAR;;AAEA,UAAIsF,qBAAqB,GAAG,CAAC,CAACF,kBAAkB,CAACvC,MAAjD;;AAEA,UACEyC,qBAAqB,IACrBF,kBAAkB,CAACD,IAAnB,CAAwB,UAAAvD,GAAG;AAAA,eAAI,CAAC5B,YAAY,CAAC4B,GAAG,CAACC,EAAL,CAAjB;AAAA,OAA3B,CAFF,EAGE;AACAyD,QAAAA,qBAAqB,GAAG,KAAxB;AACD;;AAED,aAAOA,qBAAP;AACD,KApVI;AAsVLC,IAAAA,qBAAqB,EAAE,iCAAM;AAAA;;AAC3B,aACE,CAACrF,QAAQ,CAACoB,oBAAT,EAAD,IACA,CAAC,CAACC,MAAM,CAACqB,IAAP,0BAAY1C,QAAQ,CAACgB,QAAT,GAAoBlB,YAAhC,oCAAgD,EAAhD,EAAoD6C,MAFxD;AAID,KA3VI;AA6VL2C,IAAAA,yBAAyB,EAAE,qCAAM;AAC/B,UAAMJ,kBAAkB,GAAGlF,QAAQ,CAACmF,qBAAT,EAA3B;AACA,aAAOnF,QAAQ,CAAC6B,wBAAT,KACH,KADG,GAEH,CAAC,EAACqD,kBAAD,YAACA,kBAAkB,CAAEvC,MAArB,CAFL;AAGD,KAlWI;AAoWL4C,IAAAA,yBAAyB,EAAE,mCAACtD,KAAD,EAAQuD,SAAR,EAAsB;AAC/C,UAAM9D,GAAG,GAAG1B,QAAQ,CAACkC,MAAT,CAAgBD,KAAhB,CAAZ;AAEA,UAAME,UAAU,GAAGT,GAAG,CAACU,aAAJ,EAAnB;AACA,UAAMqD,cAAc,GAAG/D,GAAG,CAACgE,iBAAJ,EAAvB;AACA,UAAMC,SAAS,GAAGjE,GAAG,CAACkE,YAAJ,EAAlB;AAEA,UAAMC,YAAoC,GAAG;AAC3CtC,QAAAA,QAAQ,EAAEoC,SAAS,GACf,UAACG,CAAD,EAAgC;AAC9BpE,UAAAA,GAAG,CAACqE,cAAJ,CAAoBD,CAAC,CAACE,MAAH,CAA+BC,OAAlD;AACD,SAHc,GAIfC,SALuC;AAM3CD,QAAAA,OAAO,EAAE9D,UANkC;AAO3CgE,QAAAA,KAAK,EAAE,qBAPoC;AAQ3CC,QAAAA,aAAa,EAAEX,cAR4B;AAU3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAtB2C,OAA7C;AAyBA,aAAOY,gBAAU,CAACR,YAAD,EAAeL,SAAf,CAAjB;AACD,KArYI;AAuYLc,IAAAA,6BAA6B,EAAE,uCAAAd,SAAS,EAAI;AAC1C,UAAMe,kBAAkB,GAAGvG,QAAQ,CAACqF,qBAAT,EAA3B;AACA,UAAMN,iBAAiB,GAAG/E,QAAQ,CAACoB,oBAAT,EAA1B;AAEA,UAAMyE,YAAoC,GAAG;AAC3CtC,QAAAA,QAAQ,EAAE,kBAACuC,CAAD,EAAgC;AACxC9F,UAAAA,QAAQ,CAACiB,qBAAT,CAAgC6E,CAAC,CAACE,MAAH,CAA+BC,OAA9D;AACD,SAH0C;AAI3CA,QAAAA,OAAO,EAAElB,iBAJkC;AAK3CoB,QAAAA,KAAK,EAAE,0BALoC;AAM3CC,QAAAA,aAAa,EAAEG;AAN4B,OAA7C;AASA,aAAOF,gBAAU,CAACR,YAAD,EAAeL,SAAf,CAAjB;AACD,KArZI;AAuZLgB,IAAAA,iCAAiC,EAAE,2CAAAhB,SAAS,EAAI;AAC9C,UAAMiB,sBAAsB,GAAGzG,QAAQ,CAACsF,yBAAT,EAA/B;AACA,UAAMF,qBAAqB,GAAGpF,QAAQ,CAAC6B,wBAAT,EAA9B;AAEA,UAAMgE,YAAoC,GAAG;AAC3CtC,QAAAA,QAAQ,EAAE,kBAACuC,CAAD,EAAgC;AACxC9F,UAAAA,QAAQ,CAAC4B,yBAAT,CACGkE,CAAC,CAACE,MAAH,CAA+BC,OADjC;AAGD,SAL0C;AAM3CA,QAAAA,OAAO,EAAEb,qBANkC;AAO3Ce,QAAAA,KAAK,EAAE,uCAPoC;AAQ3CC,QAAAA,aAAa,EAAEK;AAR4B,OAA7C;AAWA,aAAOJ,gBAAU,CAACR,YAAD,EAAeL,SAAf,CAAjB;AACD;AAvaI,GAAP;AAyaD;AAEM,SAASkB,SAAT,CAOLhF,GAPK,EAQL1B,QARK,EASY;AACjB,SAAO;AACLoC,IAAAA,aAAa,EAAE;AAAA,aAAMpC,QAAQ,CAACsE,gBAAT,CAA0B5C,GAAG,CAACC,EAA9B,CAAN;AAAA,KADV;AAEL+D,IAAAA,iBAAiB,EAAE;AAAA,aAAM1F,QAAQ,CAACyE,oBAAT,CAA8B/C,GAAG,CAACC,EAAlC,CAAN;AAAA,KAFd;AAGLoE,IAAAA,cAAc,EAAE,wBAAA7E,KAAK;AAAA,aAAIlB,QAAQ,CAACgC,iBAAT,CAA2BN,GAAG,CAACC,EAA/B,EAAmCT,KAAnC,CAAJ;AAAA,KAHhB;AAILyF,IAAAA,sBAAsB,EAAE,gCAAAnB,SAAS;AAAA,aAC/BxF,QAAQ,CAACuF,yBAAT,CAAmC7D,GAAG,CAACC,EAAvC,EAA2C6D,SAA3C,CAD+B;AAAA,KAJ5B;AAMLoB,IAAAA,iBAAiB,EAAE;AAAA,aAAM5G,QAAQ,CAAC4E,oBAAT,CAA8BlD,GAAG,CAACC,EAAlC,CAAN;AAAA,KANd;AAOLiE,IAAAA,YAAY,EAAE;AAAA,aAAM5F,QAAQ,CAAC0E,eAAT,CAAyBhD,GAAG,CAACC,EAA7B,CAAN;AAAA;AAPT,GAAP;AASD;;AAED,IAAMI,mBAAmB,GAAG,SAAtBA,mBAAsB,CAO1BM,cAP0B,EAQ1BV,EAR0B,EAS1BT,KAT0B,EAU1BlB,QAV0B,EAWvB;AAAA;;AACH,MAAM0B,GAAG,GAAG1B,QAAQ,CAACkC,MAAT,CAAgBP,EAAhB,CAAZ;AAEA,EAAkBD,GAAG,CAACmF,YAAJ,GAHf;AAMH;AACA;AACA;;AACA,MAAI3F,KAAJ,EAAW;AACTmB,IAAAA,cAAc,CAACV,EAAD,CAAd,GAAqB,IAArB;AACD,GAFD,MAEO;AACL,WAAOU,cAAc,CAACV,EAAD,CAArB;AACD,GAbE;;;AAgBH,MAAI,gBAAAD,GAAG,CAACoF,OAAJ,0BAAanE,MAAb,IAAuB3C,QAAQ,CAAC2E,sBAAT,CAAgCjD,GAAG,CAACC,EAApC,CAA3B,EAAoE;AAClED,IAAAA,GAAG,CAACoF,OAAJ,CAAYrF,OAAZ,CAAoB,UAAAC,GAAG;AAAA,aACrBK,mBAAmB,CAACM,cAAD,EAAiBX,GAAG,CAACC,EAArB,EAAyBT,KAAzB,EAAgClB,QAAhC,CADE;AAAA,KAAvB;AAGD;AACF,CAhCD;;AAkCO,SAASqD,YAAT,CAOLrD,QAPK,EAQLyC,QARK,EAS8D;AACnE,MAAM3C,YAAY,GAAGE,QAAQ,CAACgB,QAAT,GAAoBlB,YAAzC;AAEA,MAAMiH,mBAMH,GAAG,EANN;AAOA,MAAMC,mBAGL,GAAG,EAHJ,CAVmE;;AAgBnE,MAAMC,WAAW,GAAG,SAAdA,WAAc,CAClBrE,IADkB,EAElBsE,KAFkB,EAGf;;AACH,WAAOtE,IAAI,CACRuE,GADI,CACA,UAAAzF,GAAG,EAAI;AAAA;;AACV,UAAMS,UAAU,GAAGqC,aAAa,CAAC9C,GAAD,EAAM5B,YAAN,CAAb,KAA+C,IAAlE;;AAEA,UAAIqC,UAAJ,EAAgB;AACd4E,QAAAA,mBAAmB,CAACK,IAApB,CAAyB1F,GAAzB;AACAsF,QAAAA,mBAAmB,CAACtF,GAAG,CAACC,EAAL,CAAnB,GAA8BD,GAA9B;AACD;;AAED,2BAAIA,GAAG,CAACoF,OAAR,aAAI,cAAanE,MAAjB,EAAyB;AACvBjB,QAAAA,GAAG,4CACEA,GADF;AAEDoF,UAAAA,OAAO,EAAEG,WAAW,CAACvF,GAAG,CAACoF,OAAL;AAFnB,UAAH;AAID;;AAED,UAAI3E,UAAJ,EAAgB;AACd,eAAOT,GAAP;AACD;AACF,KAnBI,EAoBJ2F,MApBI,CAoBGrC,OApBH,CAAP;AA2BD,GA/BD;;AAiCA,SAAO;AACLpC,IAAAA,IAAI,EAAEqE,WAAW,CAACxE,QAAQ,CAACG,IAAV,CADZ;AAELC,IAAAA,QAAQ,EAAEkE,mBAFL;AAGLjE,IAAAA,QAAQ,EAAEkE;AAHL,GAAP;AAKD;AAEM,SAASxC,aAAT,CAOL9C,GAPK,EAQL4F,SARK,EASLtH,QATK,EAUa;AAClB,MAAIsH,SAAS,CAAC5F,GAAG,CAACC,EAAL,CAAb,EAAuB;AACrB,WAAO,IAAP;AACD;;AAED,MAAID,GAAG,CAACoF,OAAJ,IAAepF,GAAG,CAACoF,OAAJ,CAAYnE,MAA/B,EAAuC;AACrC,QAAI4E,mBAAmB,GAAG,IAA1B;AACA,QAAIC,YAAY,GAAG,KAAnB;AAEA9F,IAAAA,GAAG,CAACoF,OAAJ,CAAYrF,OAAZ,CAAoB,UAAAgG,MAAM,EAAI;AAC5B;AACA,UAAID,YAAY,IAAI,CAACD,mBAArB,EAA0C;AACxC;AACD;;AAED,UAAI/C,aAAa,CAACiD,MAAD,EAASH,SAAT,CAAjB,EAAgD;AAC9CE,QAAAA,YAAY,GAAG,IAAf;AACD,OAFD,MAEO;AACLD,QAAAA,mBAAmB,GAAG,KAAtB;AACD;AACF,KAXD;AAaA,WAAOA,mBAAmB,GAAG,IAAH,GAAUC,YAAY,GAAG,MAAH,GAAY,KAA5D;AACD;;AAED,SAAO,KAAP;AACD;;;;;;;;;"}