@tanstack/react-table 8.0.0-alpha.4 → 8.0.0-alpha.42

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 (109) 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 +102 -17
  4. package/build/cjs/index.js.map +1 -1
  5. package/build/esm/index.js +41 -4716
  6. package/build/esm/index.js.map +1 -1
  7. package/build/stats-html.html +1 -1
  8. package/build/stats-react.json +29 -779
  9. package/build/types/index.d.ts +13 -8
  10. package/build/umd/index.development.js +51 -4719
  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 -8
  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 -198
  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/paginateRowsFn.js +0 -44
  57. package/build/cjs/utils/paginateRowsFn.js.map +0 -1
  58. package/build/cjs/utils/sortRowsFn.js +0 -94
  59. package/build/cjs/utils/sortRowsFn.js.map +0 -1
  60. package/build/cjs/utils.js +0 -146
  61. package/build/cjs/utils.js.map +0 -1
  62. package/build/types/aggregationTypes.d.ts +0 -22
  63. package/build/types/core.d.ts +0 -111
  64. package/build/types/createTable.d.ts +0 -53
  65. package/build/types/features/ColumnSizing.d.ts +0 -67
  66. package/build/types/features/Expanding.d.ts +0 -53
  67. package/build/types/features/Filters.d.ts +0 -98
  68. package/build/types/features/Grouping.d.ts +0 -82
  69. package/build/types/features/Headers.d.ts +0 -41
  70. package/build/types/features/Ordering.d.ts +0 -19
  71. package/build/types/features/Pagination.d.ts +0 -44
  72. package/build/types/features/Pinning.d.ts +0 -39
  73. package/build/types/features/RowSelection.d.ts +0 -66
  74. package/build/types/features/Sorting.d.ts +0 -78
  75. package/build/types/features/Visibility.d.ts +0 -47
  76. package/build/types/filterTypes.d.ts +0 -50
  77. package/build/types/sortTypes.d.ts +0 -18
  78. package/build/types/types.d.ts +0 -127
  79. package/build/types/utils/columnFilterRowsFn.d.ts +0 -2
  80. package/build/types/utils/expandRowsFn.d.ts +0 -2
  81. package/build/types/utils/globalFilterRowsFn.d.ts +0 -2
  82. package/build/types/utils/groupRowsFn.d.ts +0 -2
  83. package/build/types/utils/paginateRowsFn.d.ts +0 -2
  84. package/build/types/utils/sortRowsFn.d.ts +0 -2
  85. package/build/types/utils.d.ts +0 -28
  86. package/src/aggregationTypes.ts +0 -115
  87. package/src/core.tsx +0 -1181
  88. package/src/createTable.tsx +0 -241
  89. package/src/features/ColumnSizing.ts +0 -453
  90. package/src/features/Expanding.ts +0 -404
  91. package/src/features/Filters.ts +0 -762
  92. package/src/features/Grouping.ts +0 -466
  93. package/src/features/Headers.ts +0 -912
  94. package/src/features/Ordering.ts +0 -133
  95. package/src/features/Pagination.ts +0 -327
  96. package/src/features/Pinning.ts +0 -200
  97. package/src/features/RowSelection.ts +0 -831
  98. package/src/features/Sorting.ts +0 -547
  99. package/src/features/Visibility.ts +0 -279
  100. package/src/filterTypes.ts +0 -251
  101. package/src/sortTypes.ts +0 -159
  102. package/src/types.ts +0 -331
  103. package/src/utils/columnFilterRowsFn.ts +0 -155
  104. package/src/utils/expandRowsFn.ts +0 -50
  105. package/src/utils/globalFilterRowsFn.ts +0 -122
  106. package/src/utils/groupRowsFn.ts +0 -194
  107. package/src/utils/paginateRowsFn.ts +0 -34
  108. package/src/utils/sortRowsFn.ts +0 -115
  109. package/src/utils.tsx +0 -257
@@ -1,549 +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 utils = require('../utils.js');
16
-
17
- //
18
- function createRow(row, instance) {
19
- return {
20
- _getAllVisibleCells: utils.memo(function () {
21
- return [row.getAllCells().filter(function (cell) {
22
- return cell.column.getIsVisible();
23
- }).map(function (d) {
24
- return d.id;
25
- }).join('_')];
26
- }, function (_) {
27
- return row.getAllCells().filter(function (cell) {
28
- return cell.column.getIsVisible();
29
- });
30
- }, {
31
- key: 'row._getAllVisibleCells',
32
- debug: instance.options.debug
33
- }),
34
- getVisibleCells: utils.memo(function () {
35
- return [row.getLeftVisibleCells(), row.getCenterVisibleCells(), row.getRightVisibleCells()];
36
- }, function (left, center, right) {
37
- return [].concat(left, center, right);
38
- }, {
39
- key: 'row.getVisibleCells',
40
- debug: instance.options.debug
41
- }),
42
- getCenterVisibleCells: utils.memo(function () {
43
- return [row._getAllVisibleCells(), instance.getState().columnPinning.left, instance.getState().columnPinning.right];
44
- }, function (allCells, left, right) {
45
- var leftAndRight = [].concat(left != null ? left : [], right != null ? right : []);
46
- return allCells.filter(function (d) {
47
- return !leftAndRight.includes(d.columnId);
48
- });
49
- }, {
50
- key: 'row.getCenterVisibleCells',
51
- debug: instance.options.debug
52
- }),
53
- getLeftVisibleCells: utils.memo(function () {
54
- return [row._getAllVisibleCells(), instance.getState().columnPinning.left,,];
55
- }, function (allCells, left) {
56
- var cells = (left != null ? left : []).map(function (columnId) {
57
- return allCells.find(function (cell) {
58
- return cell.columnId === columnId;
59
- });
60
- }).filter(Boolean);
61
- return cells;
62
- }, {
63
- key: 'row.getLeftVisibleCells',
64
- debug: instance.options.debug
65
- }),
66
- getRightVisibleCells: utils.memo(function () {
67
- return [row._getAllVisibleCells(), instance.getState().columnPinning.right];
68
- }, function (allCells, right) {
69
- var cells = (right != null ? right : []).map(function (columnId) {
70
- return allCells.find(function (cell) {
71
- return cell.columnId === columnId;
72
- });
73
- }).filter(Boolean);
74
- return cells;
75
- }, {
76
- key: 'row.getRightVisibleCells',
77
- debug: instance.options.debug
78
- })
79
- };
80
- }
81
- function getInstance(instance) {
82
- return {
83
- createHeader: function createHeader(column, options) {
84
- var _options$id;
85
-
86
- var id = (_options$id = options.id) != null ? _options$id : column.id;
87
- var header = {
88
- id: id,
89
- column: column,
90
- isPlaceholder: options.isPlaceholder,
91
- placeholderId: options.placeholderId,
92
- depth: options.depth,
93
- subHeaders: [],
94
- colSpan: 0,
95
- rowSpan: 0,
96
- getWidth: function getWidth() {
97
- var sum = 0;
98
-
99
- var recurse = function recurse(header) {
100
- if (header.subHeaders.length) {
101
- header.subHeaders.forEach(recurse);
102
- } else {
103
- var _header$column$getWid;
104
-
105
- sum += (_header$column$getWid = header.column.getWidth()) != null ? _header$column$getWid : 0;
106
- }
107
- };
108
-
109
- recurse(header);
110
- return sum;
111
- },
112
- getLeafHeaders: function getLeafHeaders() {
113
- var leafHeaders = [];
114
-
115
- var recurseHeader = function recurseHeader(h) {
116
- if (h.subHeaders && h.subHeaders.length) {
117
- h.subHeaders.map(recurseHeader);
118
- }
119
-
120
- leafHeaders.push(h);
121
- };
122
-
123
- recurseHeader(header);
124
- return leafHeaders;
125
- },
126
- getHeaderProps: function getHeaderProps(userProps) {
127
- return instance.getHeaderProps(header.id, userProps);
128
- },
129
- getFooterProps: function getFooterProps(userProps) {
130
- return instance.getFooterProps(header.id, userProps);
131
- },
132
- renderHeader: function renderHeader() {
133
- return utils.flexRender(column.header, {
134
- instance: instance,
135
- header: header,
136
- column: column
137
- });
138
- },
139
- renderFooter: function renderFooter() {
140
- return utils.flexRender(column.footer, {
141
- instance: instance,
142
- header: header,
143
- column: column
144
- });
145
- }
146
- }; // Yes, we have to convert instance to uknown, because we know more than the compiler here.
147
-
148
- return header;
149
- },
150
- // Header Groups
151
- getHeaderGroups: utils.memo(function () {
152
- return [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.left, instance.getState().columnPinning.right];
153
- }, function (allColumns, leafColumns, left, right) {
154
- var leftColumns = leafColumns.filter(function (column) {
155
- return left == null ? void 0 : left.includes(column.id);
156
- });
157
- var rightColumns = leafColumns.filter(function (column) {
158
- return right == null ? void 0 : right.includes(column.id);
159
- });
160
- var centerColumns = leafColumns.filter(function (column) {
161
- return !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id));
162
- });
163
- var headerGroups = buildHeaderGroups(allColumns, [].concat(leftColumns, centerColumns, rightColumns), instance);
164
- return headerGroups;
165
- }, {
166
- key: 'getHeaderGroups',
167
- debug: instance.options.debug
168
- }),
169
- getCenterHeaderGroups: utils.memo(function () {
170
- return [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.left, instance.getState().columnPinning.right];
171
- }, function (allColumns, leafColumns, left, right) {
172
- leafColumns = leafColumns.filter(function (column) {
173
- return !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id));
174
- });
175
- return buildHeaderGroups(allColumns, leafColumns, instance, 'center');
176
- }, {
177
- key: 'getCenterHeaderGroups',
178
- debug: instance.options.debug
179
- }),
180
- getLeftHeaderGroups: utils.memo(function () {
181
- return [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.left];
182
- }, function (allColumns, leafColumns, left) {
183
- leafColumns = leafColumns.filter(function (column) {
184
- return left == null ? void 0 : left.includes(column.id);
185
- });
186
- return buildHeaderGroups(allColumns, leafColumns, instance, 'left');
187
- }, {
188
- key: 'getLeftHeaderGroups',
189
- debug: instance.options.debug
190
- }),
191
- getRightHeaderGroups: utils.memo(function () {
192
- return [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.right];
193
- }, function (allColumns, leafColumns, right) {
194
- leafColumns = leafColumns.filter(function (column) {
195
- return right == null ? void 0 : right.includes(column.id);
196
- });
197
- return buildHeaderGroups(allColumns, leafColumns, instance, 'right');
198
- }, {
199
- key: 'getRightHeaderGroups',
200
- debug: instance.options.debug
201
- }),
202
- // Footer Groups
203
- getFooterGroups: utils.memo(function () {
204
- return [instance.getHeaderGroups()];
205
- }, function (headerGroups) {
206
- return [].concat(headerGroups).reverse();
207
- }, {
208
- key: 'getFooterGroups',
209
- debug: instance.options.debug
210
- }),
211
- getLeftFooterGroups: utils.memo(function () {
212
- return [instance.getLeftHeaderGroups()];
213
- }, function (headerGroups) {
214
- return [].concat(headerGroups).reverse();
215
- }, {
216
- key: 'getLeftFooterGroups',
217
- debug: instance.options.debug
218
- }),
219
- getCenterFooterGroups: utils.memo(function () {
220
- return [instance.getCenterHeaderGroups()];
221
- }, function (headerGroups) {
222
- return [].concat(headerGroups).reverse();
223
- }, {
224
- key: 'getCenterFooterGroups',
225
- debug: instance.options.debug
226
- }),
227
- getRightFooterGroups: utils.memo(function () {
228
- return [instance.getRightHeaderGroups()];
229
- }, function (headerGroups) {
230
- return [].concat(headerGroups).reverse();
231
- }, {
232
- key: 'getRightFooterGroups',
233
- debug: instance.options.debug
234
- }),
235
- // Flat Headers
236
- getFlatHeaders: utils.memo(function () {
237
- return [instance.getHeaderGroups()];
238
- }, function (headerGroups) {
239
- return headerGroups.map(function (headerGroup) {
240
- return headerGroup.headers;
241
- }).flat();
242
- }, {
243
- key: 'getFlatHeaders',
244
- debug: instance.options.debug
245
- }),
246
- getLeftFlatHeaders: utils.memo(function () {
247
- return [instance.getLeftHeaderGroups()];
248
- }, function (left) {
249
- return left.map(function (headerGroup) {
250
- return headerGroup.headers;
251
- }).flat();
252
- }, {
253
- key: 'getLeftFlatHeaders',
254
- debug: instance.options.debug
255
- }),
256
- getCenterFlatHeaders: utils.memo(function () {
257
- return [instance.getCenterHeaderGroups()];
258
- }, function (left) {
259
- return left.map(function (headerGroup) {
260
- return headerGroup.headers;
261
- }).flat();
262
- }, {
263
- key: 'getCenterFlatHeaders',
264
- debug: instance.options.debug
265
- }),
266
- getRightFlatHeaders: utils.memo(function () {
267
- return [instance.getRightHeaderGroups()];
268
- }, function (left) {
269
- return left.map(function (headerGroup) {
270
- return headerGroup.headers;
271
- }).flat();
272
- }, {
273
- key: 'getRightFlatHeaders',
274
- debug: instance.options.debug
275
- }),
276
- // Leaf Headers
277
- getCenterLeafHeaders: utils.memo(function () {
278
- return [instance.getCenterFlatHeaders()];
279
- }, function (flatHeaders) {
280
- return flatHeaders.filter(function (header) {
281
- var _header$subHeaders;
282
-
283
- return !((_header$subHeaders = header.subHeaders) != null && _header$subHeaders.length);
284
- });
285
- }, {
286
- key: 'getCenterLeafHeaders',
287
- debug: instance.options.debug
288
- }),
289
- getLeftLeafHeaders: utils.memo(function () {
290
- return [instance.getLeftFlatHeaders()];
291
- }, function (flatHeaders) {
292
- return flatHeaders.filter(function (header) {
293
- var _header$subHeaders2;
294
-
295
- return !((_header$subHeaders2 = header.subHeaders) != null && _header$subHeaders2.length);
296
- });
297
- }, {
298
- key: 'getLeftLeafHeaders',
299
- debug: instance.options.debug
300
- }),
301
- getRightLeafHeaders: utils.memo(function () {
302
- return [instance.getRightFlatHeaders()];
303
- }, function (flatHeaders) {
304
- return flatHeaders.filter(function (header) {
305
- var _header$subHeaders3;
306
-
307
- return !((_header$subHeaders3 = header.subHeaders) != null && _header$subHeaders3.length);
308
- });
309
- }, {
310
- key: 'getRightLeafHeaders',
311
- debug: instance.options.debug
312
- }),
313
- getLeafHeaders: utils.memo(function () {
314
- return [instance.getLeftHeaderGroups(), instance.getCenterHeaderGroups(), instance.getRightHeaderGroups()];
315
- }, function (left, center, right) {
316
- var _left$0$headers, _left$, _center$0$headers, _center$, _right$0$headers, _right$;
317
-
318
- return [].concat((_left$0$headers = (_left$ = left[0]) == null ? void 0 : _left$.headers) != null ? _left$0$headers : [], (_center$0$headers = (_center$ = center[0]) == null ? void 0 : _center$.headers) != null ? _center$0$headers : [], (_right$0$headers = (_right$ = right[0]) == null ? void 0 : _right$.headers) != null ? _right$0$headers : []).map(function (header) {
319
- return header.getLeafHeaders();
320
- }).flat();
321
- }, {
322
- key: 'getLeafHeaders',
323
- debug: instance.options.debug
324
- }),
325
- getHeader: function getHeader(id) {
326
- var header = [].concat(instance.getFlatHeaders(), instance.getCenterFlatHeaders(), instance.getLeftFlatHeaders(), instance.getRightFlatHeaders()).find(function (d) {
327
- return d.id === id;
328
- });
329
-
330
- if (!header) {
331
- if (process.env.NODE_ENV !== 'production') {
332
- console.warn("Could not find header with id: " + id);
333
- }
334
-
335
- throw new Error();
336
- }
337
-
338
- return header;
339
- },
340
- getHeaderGroupProps: function getHeaderGroupProps(id, userProps) {
341
- var headerGroup = instance.getHeaderGroups().find(function (d) {
342
- return d.id === id;
343
- });
344
-
345
- if (!headerGroup) {
346
- return;
347
- }
348
-
349
- return utils.propGetter({
350
- key: headerGroup.id,
351
- role: 'row'
352
- }, userProps);
353
- },
354
- getFooterGroupProps: function getFooterGroupProps(id, userProps) {
355
- var headerGroup = instance.getFooterGroups().find(function (d) {
356
- return d.id === id;
357
- });
358
-
359
- if (!headerGroup) {
360
- return;
361
- }
362
-
363
- var initialProps = {
364
- key: headerGroup.id,
365
- role: 'row'
366
- };
367
- return utils.propGetter(initialProps, userProps);
368
- },
369
- getHeaderProps: function getHeaderProps(id, userProps) {
370
- var header = instance.getHeader(id);
371
-
372
- if (!header) {
373
- throw new Error();
374
- }
375
-
376
- var initialProps = {
377
- key: header.id,
378
- role: 'columnheader',
379
- colSpan: header.colSpan,
380
- rowSpan: header.rowSpan
381
- };
382
- return utils.propGetter(initialProps, userProps);
383
- },
384
- getFooterProps: function getFooterProps(id, userProps) {
385
- var header = instance.getHeader(id);
386
-
387
- if (!header) {
388
- return;
389
- }
390
-
391
- var initialProps = {
392
- key: header.id,
393
- role: 'columnfooter',
394
- colSpan: header.colSpan,
395
- rowSpan: header.rowSpan
396
- };
397
- return utils.propGetter(initialProps, userProps);
398
- },
399
- getTotalWidth: function getTotalWidth() {
400
- var width = 0;
401
- instance.getVisibleLeafColumns().forEach(function (column) {
402
- var _column$getWidth;
403
-
404
- width += (_column$getWidth = column.getWidth()) != null ? _column$getWidth : 0;
405
- });
406
- return width;
407
- }
408
- };
409
- }
410
- function buildHeaderGroups(allColumns, columnsToGroup, instance, headerFamily) {
411
- var _headerGroups$0$heade, _headerGroups$;
412
-
413
- // Find the max depth of the columns:
414
- // build the leaf column row
415
- // build each buffer row going up
416
- // placeholder for non-existent level
417
- // real column for existing level
418
- var maxDepth = 0;
419
-
420
- var findMaxDepth = function findMaxDepth(columns, depth) {
421
- if (depth === void 0) {
422
- depth = 1;
423
- }
424
-
425
- maxDepth = Math.max(maxDepth, depth);
426
- columns.filter(function (column) {
427
- return column.getIsVisible();
428
- }).forEach(function (column) {
429
- var _column$columns;
430
-
431
- if ((_column$columns = column.columns) != null && _column$columns.length) {
432
- findMaxDepth(column.columns, depth + 1);
433
- }
434
- }, 0);
435
- };
436
-
437
- findMaxDepth(allColumns);
438
- var headerGroups = [];
439
-
440
- var createHeaderGroup = function createHeaderGroup(headersToGroup, depth) {
441
- // The header group we are creating
442
- var headerGroup = {
443
- depth: depth,
444
- id: [headerFamily, "" + depth].filter(Boolean).join('_'),
445
- headers: [],
446
- getHeaderGroupProps: function getHeaderGroupProps(getterValue) {
447
- return instance.getHeaderGroupProps("" + depth, getterValue);
448
- },
449
- getFooterGroupProps: function getFooterGroupProps(getterValue) {
450
- return instance.getFooterGroupProps("" + depth, getterValue);
451
- }
452
- }; // The parent columns we're going to scan next
453
-
454
- var parentHeaders = []; // Scan each column for parents
455
-
456
- headersToGroup.forEach(function (headerToGroup) {
457
- // What is the latest (last) parent column?
458
- var latestParentHeader = [].concat(parentHeaders).reverse()[0];
459
- var isLeafHeader = headerToGroup.column.depth === headerGroup.depth;
460
- var column;
461
- var isPlaceholder = false;
462
-
463
- if (isLeafHeader && headerToGroup.column.parent) {
464
- // The parent header is new
465
- column = headerToGroup.column.parent;
466
- } else {
467
- // The parent header is repeated
468
- column = headerToGroup.column;
469
- isPlaceholder = true;
470
- }
471
-
472
- var header = instance.createHeader(column, {
473
- id: [headerFamily, depth, column.id, headerToGroup == null ? void 0 : headerToGroup.id].filter(Boolean).join('_'),
474
- isPlaceholder: isPlaceholder,
475
- placeholderId: isPlaceholder ? "" + parentHeaders.filter(function (d) {
476
- return d.column === column;
477
- }).length : undefined,
478
- depth: depth
479
- });
480
-
481
- if (!latestParentHeader || latestParentHeader.column !== header.column) {
482
- header.subHeaders.push(headerToGroup);
483
- parentHeaders.push(header);
484
- } else {
485
- latestParentHeader.subHeaders.push(headerToGroup);
486
- } // if (!headerToGroup.isPlaceholder) {
487
- // headerToGroup.column.header = headerToGroup;
488
- // }
489
-
490
-
491
- headerGroup.headers.push(headerToGroup);
492
- });
493
- headerGroups.push(headerGroup);
494
-
495
- if (depth > 0) {
496
- createHeaderGroup(parentHeaders, depth - 1);
497
- }
498
- };
499
-
500
- var bottomHeaders = columnsToGroup.map(function (column) {
501
- return instance.createHeader(column, {
502
- depth: maxDepth
503
- });
504
- });
505
- createHeaderGroup(bottomHeaders, maxDepth - 1);
506
- headerGroups.reverse(); // headerGroups = headerGroups.filter(headerGroup => {
507
- // return !headerGroup.headers.every(header => header.isPlaceholder)
508
- // })
509
-
510
- var recurseHeadersForSpans = function recurseHeadersForSpans(headers) {
511
- var filteredHeaders = headers.filter(function (header) {
512
- return header.column.getIsVisible();
513
- });
514
- return filteredHeaders.map(function (header) {
515
- var colSpan = 0;
516
- var rowSpan = 0;
517
- var childRowSpans = [0];
518
-
519
- if (header.subHeaders && header.subHeaders.length) {
520
- childRowSpans = [];
521
- recurseHeadersForSpans(header.subHeaders).forEach(function (_ref) {
522
- var childColSpan = _ref.colSpan,
523
- childRowSpan = _ref.rowSpan;
524
- colSpan += childColSpan;
525
- childRowSpans.push(childRowSpan);
526
- });
527
- } else {
528
- colSpan = 1;
529
- }
530
-
531
- var minChildRowSpan = Math.min.apply(Math, childRowSpans);
532
- rowSpan = rowSpan + minChildRowSpan;
533
- header.colSpan = colSpan > 0 ? colSpan : undefined;
534
- header.rowSpan = rowSpan > 0 ? rowSpan : undefined;
535
- return {
536
- colSpan: colSpan,
537
- rowSpan: rowSpan
538
- };
539
- });
540
- };
541
-
542
- recurseHeadersForSpans((_headerGroups$0$heade = (_headerGroups$ = headerGroups[0]) == null ? void 0 : _headerGroups$.headers) != null ? _headerGroups$0$heade : []);
543
- return headerGroups;
544
- }
545
-
546
- exports.buildHeaderGroups = buildHeaderGroups;
547
- exports.createRow = createRow;
548
- exports.getInstance = getInstance;
549
- //# sourceMappingURL=Headers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Headers.js","sources":["../../../src/features/Headers.ts"],"sourcesContent":["import {\n Cell,\n Column,\n CoreHeader,\n FooterGroupProps,\n FooterProps,\n Getter,\n Header,\n HeaderGroup,\n HeaderGroupProps,\n HeaderProps,\n PropGetterValue,\n ReactTable,\n Row,\n} from '../types'\nimport { propGetter, memo, flexRender } from '../utils'\n\nimport * as ColumnSizing from './ColumnSizing'\nimport * as Sorting from './Sorting'\n\nexport type HeadersRow<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n _getAllVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightVisibleCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n}\n\nexport type HeadersInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n createHeader: (\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n depth: number\n }\n ) => Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n getHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightHeaderGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightFooterGroups: () => HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightFlatHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeftLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCenterLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRightLeafHeaders: () => Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n\n getHeader: (\n id: string\n ) => Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n\n getHeaderGroupProps: <TGetter extends Getter<HeaderGroupProps>>(\n id: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<HeaderGroupProps, TGetter>\n getFooterGroupProps: <TGetter extends Getter<FooterGroupProps>>(\n id: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<FooterGroupProps, TGetter>\n getHeaderProps: <TGetter extends Getter<HeaderProps>>(\n headerId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<HeaderProps, TGetter>\n getFooterProps: <TGetter extends Getter<FooterProps>>(\n headerId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<FooterProps, TGetter>\n getTotalWidth: () => number\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): HeadersRow<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n _getAllVisibleCells: memo(\n () => [\n row\n .getAllCells()\n .filter(cell => cell.column.getIsVisible())\n .map(d => d.id)\n .join('_'),\n ],\n _ => {\n return row.getAllCells().filter(cell => cell.column.getIsVisible())\n },\n { key: 'row._getAllVisibleCells', debug: instance.options.debug }\n ),\n getVisibleCells: memo(\n () => [\n row.getLeftVisibleCells(),\n row.getCenterVisibleCells(),\n row.getRightVisibleCells(),\n ],\n (left, center, right) => [...left, ...center, ...right],\n { key: 'row.getVisibleCells', debug: instance.options.debug }\n ),\n getCenterVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n instance.getState().columnPinning.left,\n instance.getState().columnPinning.right,\n ],\n (allCells, left, right) => {\n const leftAndRight = [...(left ?? []), ...(right ?? [])]\n\n return allCells.filter(d => !leftAndRight.includes(d.columnId))\n },\n { key: 'row.getCenterVisibleCells', debug: instance.options.debug }\n ),\n getLeftVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n instance.getState().columnPinning.left,\n ,\n ],\n (allCells, left) => {\n const cells = (left ?? [])\n .map(columnId => allCells.find(cell => cell.columnId === columnId)!)\n .filter(Boolean)\n\n return cells\n },\n { key: 'row.getLeftVisibleCells', debug: instance.options.debug }\n ),\n getRightVisibleCells: memo(\n () => [\n row._getAllVisibleCells(),\n instance.getState().columnPinning.right,\n ],\n (allCells, right) => {\n const cells = (right ?? [])\n .map(columnId => allCells.find(cell => cell.columnId === columnId)!)\n .filter(Boolean)\n\n return cells\n },\n { key: 'row.getRightVisibleCells', debug: instance.options.debug }\n ),\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): HeadersInstance<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n return {\n createHeader: (\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n depth: number\n }\n ) => {\n const id = options.id ?? column.id\n\n let header: CoreHeader<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n > = {\n id,\n column,\n isPlaceholder: options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n getWidth: () => {\n let sum = 0\n\n const recurse = (\n header: CoreHeader<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n ) => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse)\n } else {\n sum += header.column.getWidth() ?? 0\n }\n }\n\n recurse(header)\n\n return sum\n },\n getLeafHeaders: (): Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] => {\n const leafHeaders: CoreHeader<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n\n const recurseHeader = (\n h: CoreHeader<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n ) => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader)\n }\n leafHeaders.push(h)\n }\n\n recurseHeader(header)\n\n return leafHeaders as Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n },\n getHeaderProps: userProps =>\n instance.getHeaderProps(header.id, userProps)!,\n getFooterProps: userProps =>\n instance.getFooterProps(header.id, userProps)!,\n renderHeader: () =>\n flexRender(column.header, { instance, header, column }),\n renderFooter: () =>\n flexRender(column.footer, { instance, header, column }),\n }\n\n // Yes, we have to convert instance to uknown, because we know more than the compiler here.\n return header as Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n },\n\n // Header Groups\n\n getHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n const leftColumns = leafColumns.filter(column =>\n left?.includes(column.id)\n )\n const rightColumns = leafColumns.filter(column =>\n right?.includes(column.id)\n )\n const centerColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n const headerGroups = buildHeaderGroups(\n allColumns,\n [...leftColumns, ...centerColumns, ...rightColumns],\n instance\n )\n\n return headerGroups\n },\n { key: 'getHeaderGroups', debug: instance.options.debug }\n ),\n\n getCenterHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n return buildHeaderGroups(allColumns, leafColumns, instance, 'center')\n },\n { key: 'getCenterHeaderGroups', debug: instance.options.debug }\n ),\n\n getLeftHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n ],\n (allColumns, leafColumns, left) => {\n leafColumns = leafColumns.filter(column => left?.includes(column.id))\n return buildHeaderGroups(allColumns, leafColumns, instance, 'left')\n },\n { key: 'getLeftHeaderGroups', debug: instance.options.debug }\n ),\n\n getRightHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, right) => {\n leafColumns = leafColumns.filter(column => right?.includes(column.id))\n return buildHeaderGroups(allColumns, leafColumns, instance, 'right')\n },\n { key: 'getRightHeaderGroups', debug: instance.options.debug }\n ),\n\n // Footer Groups\n\n getFooterGroups: memo(\n () => [instance.getHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n { key: 'getFooterGroups', debug: instance.options.debug }\n ),\n\n getLeftFooterGroups: memo(\n () => [instance.getLeftHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n { key: 'getLeftFooterGroups', debug: instance.options.debug }\n ),\n\n getCenterFooterGroups: memo(\n () => [instance.getCenterHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n { key: 'getCenterFooterGroups', debug: instance.options.debug }\n ),\n\n getRightFooterGroups: memo(\n () => [instance.getRightHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n { key: 'getRightFooterGroups', debug: instance.options.debug }\n ),\n\n // Flat Headers\n\n getFlatHeaders: memo(\n () => [instance.getHeaderGroups()],\n headerGroups => {\n return headerGroups\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n { key: 'getFlatHeaders', debug: instance.options.debug }\n ),\n\n getLeftFlatHeaders: memo(\n () => [instance.getLeftHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n { key: 'getLeftFlatHeaders', debug: instance.options.debug }\n ),\n\n getCenterFlatHeaders: memo(\n () => [instance.getCenterHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n { key: 'getCenterFlatHeaders', debug: instance.options.debug }\n ),\n\n getRightFlatHeaders: memo(\n () => [instance.getRightHeaderGroups()],\n left => {\n return left\n .map(headerGroup => {\n return headerGroup.headers\n })\n .flat()\n },\n { key: 'getRightFlatHeaders', debug: instance.options.debug }\n ),\n\n // Leaf Headers\n\n getCenterLeafHeaders: memo(\n () => [instance.getCenterFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n { key: 'getCenterLeafHeaders', debug: instance.options.debug }\n ),\n\n getLeftLeafHeaders: memo(\n () => [instance.getLeftFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n { key: 'getLeftLeafHeaders', debug: instance.options.debug }\n ),\n\n getRightLeafHeaders: memo(\n () => [instance.getRightFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n { key: 'getRightLeafHeaders', debug: instance.options.debug }\n ),\n\n getLeafHeaders: memo(\n () => [\n instance.getLeftHeaderGroups(),\n instance.getCenterHeaderGroups(),\n instance.getRightHeaderGroups(),\n ],\n (left, center, right) => {\n return [\n ...(left[0]?.headers ?? []),\n ...(center[0]?.headers ?? []),\n ...(right[0]?.headers ?? []),\n ]\n .map(header => {\n return header.getLeafHeaders()\n })\n .flat()\n },\n { key: 'getLeafHeaders', debug: instance.options.debug }\n ),\n\n getHeader: (id: string) => {\n const header = [\n ...instance.getFlatHeaders(),\n ...instance.getCenterFlatHeaders(),\n ...instance.getLeftFlatHeaders(),\n ...instance.getRightFlatHeaders(),\n ].find(d => d.id === id)\n\n if (!header) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Could not find header with id: ${id}`)\n }\n throw new Error()\n }\n\n return header\n },\n\n getHeaderGroupProps: (id, userProps) => {\n const headerGroup = instance.getHeaderGroups().find(d => d.id === id)\n\n if (!headerGroup) {\n return\n }\n\n return propGetter(\n {\n key: headerGroup.id,\n role: 'row',\n },\n userProps\n )\n },\n\n getFooterGroupProps: (id, userProps) => {\n const headerGroup = instance.getFooterGroups().find(d => d.id === id)\n\n if (!headerGroup) {\n return\n }\n\n const initialProps = {\n key: headerGroup.id,\n role: 'row',\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getHeaderProps: (id, userProps) => {\n const header = instance.getHeader(id)\n\n if (!header) {\n throw new Error()\n }\n\n const initialProps: HeaderProps = {\n key: header.id,\n role: 'columnheader',\n colSpan: header.colSpan,\n rowSpan: header.rowSpan,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getFooterProps: (id, userProps) => {\n const header = instance.getHeader(id)\n if (!header) {\n return\n }\n\n const initialProps: FooterProps = {\n key: header.id,\n role: 'columnfooter',\n colSpan: header.colSpan,\n rowSpan: header.rowSpan,\n }\n\n return propGetter(initialProps, userProps)\n },\n\n getTotalWidth: () => {\n let width = 0\n\n instance.getVisibleLeafColumns().forEach(column => {\n width += column.getWidth() ?? 0\n })\n\n return width\n },\n }\n}\n\nexport function buildHeaderGroups<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n allColumns: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[],\n columnsToGroup: Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n instance: ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n headerFamily?: 'center' | 'left' | 'right'\n) {\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n\n let maxDepth = 0\n\n const findMaxDepth = (\n columns: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[],\n depth = 1\n ) => {\n maxDepth = Math.max(maxDepth, depth)\n\n columns\n .filter(column => column.getIsVisible())\n .forEach(column => {\n if (column.columns?.length) {\n findMaxDepth(column.columns, depth + 1)\n }\n }, 0)\n }\n\n findMaxDepth(allColumns)\n\n let headerGroups: HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n\n const createHeaderGroup = (\n headersToGroup: Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n depth: number\n ) => {\n // The header group we are creating\n const headerGroup: HeaderGroup<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n > = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: [],\n getHeaderGroupProps: getterValue =>\n instance.getHeaderGroupProps(`${depth}`, getterValue)!,\n getFooterGroupProps: getterValue =>\n instance.getFooterGroupProps(`${depth}`, getterValue)!,\n }\n\n // The parent columns we're going to scan next\n const parentHeaders: Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestParentHeader = [...parentHeaders].reverse()[0]\n\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth\n\n let column: Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n let isPlaceholder = false\n\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent\n } else {\n // The parent header is repeated\n column = headerToGroup.column\n isPlaceholder = true\n }\n\n const header = instance.createHeader(column, {\n id: [headerFamily, depth, column.id, headerToGroup?.id]\n .filter(Boolean)\n .join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder\n ? `${parentHeaders.filter(d => d.column === column).length}`\n : undefined,\n depth,\n })\n\n if (!latestParentHeader || latestParentHeader.column !== header.column) {\n header.subHeaders.push(headerToGroup)\n parentHeaders.push(header)\n } else {\n latestParentHeader.subHeaders.push(headerToGroup)\n }\n\n // if (!headerToGroup.isPlaceholder) {\n // headerToGroup.column.header = headerToGroup;\n // }\n\n headerGroup.headers.push(headerToGroup)\n })\n\n headerGroups.push(headerGroup)\n\n if (depth > 0) {\n createHeaderGroup(parentHeaders, depth - 1)\n }\n }\n\n const bottomHeaders = columnsToGroup.map(column =>\n instance.createHeader(column, {\n depth: maxDepth,\n })\n )\n\n createHeaderGroup(bottomHeaders, maxDepth - 1)\n\n headerGroups.reverse()\n\n // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = (\n headers: Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n ) => {\n const filteredHeaders = headers.filter(header =>\n header.column.getIsVisible()\n )\n\n return filteredHeaders.map(header => {\n let colSpan = 0\n let rowSpan = 0\n let childRowSpans = [0]\n\n if (header.subHeaders && header.subHeaders.length) {\n childRowSpans = []\n\n recurseHeadersForSpans(header.subHeaders).forEach(\n ({ colSpan: childColSpan, rowSpan: childRowSpan }) => {\n colSpan += childColSpan\n childRowSpans.push(childRowSpan)\n }\n )\n } else {\n colSpan = 1\n }\n\n const minChildRowSpan = Math.min(...childRowSpans)\n rowSpan = rowSpan + minChildRowSpan\n\n header.colSpan = colSpan > 0 ? colSpan : undefined\n header.rowSpan = rowSpan > 0 ? rowSpan : undefined\n\n return { colSpan, rowSpan }\n })\n }\n\n recurseHeadersForSpans(headerGroups[0]?.headers ?? [])\n\n return headerGroups\n}\n"],"names":["createRow","row","instance","_getAllVisibleCells","memo","getAllCells","filter","cell","column","getIsVisible","map","d","id","join","_","key","debug","options","getVisibleCells","getLeftVisibleCells","getCenterVisibleCells","getRightVisibleCells","left","center","right","getState","columnPinning","allCells","leftAndRight","includes","columnId","cells","find","Boolean","getInstance","createHeader","header","isPlaceholder","placeholderId","depth","subHeaders","colSpan","rowSpan","getWidth","sum","recurse","length","forEach","getLeafHeaders","leafHeaders","recurseHeader","h","push","getHeaderProps","userProps","getFooterProps","renderHeader","flexRender","renderFooter","footer","getHeaderGroups","getAllColumns","getVisibleLeafColumns","allColumns","leafColumns","leftColumns","rightColumns","centerColumns","headerGroups","buildHeaderGroups","getCenterHeaderGroups","getLeftHeaderGroups","getRightHeaderGroups","getFooterGroups","reverse","getLeftFooterGroups","getCenterFooterGroups","getRightFooterGroups","getFlatHeaders","headerGroup","headers","flat","getLeftFlatHeaders","getCenterFlatHeaders","getRightFlatHeaders","getCenterLeafHeaders","flatHeaders","getLeftLeafHeaders","getRightLeafHeaders","getHeader","process","env","NODE_ENV","console","warn","Error","getHeaderGroupProps","propGetter","role","getFooterGroupProps","initialProps","getTotalWidth","width","columnsToGroup","headerFamily","maxDepth","findMaxDepth","columns","Math","max","createHeaderGroup","headersToGroup","getterValue","parentHeaders","headerToGroup","latestParentHeader","isLeafHeader","parent","undefined","bottomHeaders","recurseHeadersForSpans","filteredHeaders","childRowSpans","childColSpan","childRowSpan","minChildRowSpan","min"],"mappings":"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"}