@tanstack/table-core 8.0.0-alpha.9 → 8.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/aggregationFns.js +120 -0
- package/build/cjs/aggregationFns.js.map +1 -0
- package/build/cjs/core/cell.js +40 -0
- package/build/cjs/core/cell.js.map +1 -0
- package/build/cjs/core/column.js +88 -0
- package/build/cjs/core/column.js.map +1 -0
- package/build/cjs/core/headers.js +403 -0
- package/build/cjs/core/headers.js.map +1 -0
- package/build/cjs/core/instance.js +255 -0
- package/build/cjs/core/instance.js.map +1 -0
- package/build/cjs/core/row.js +77 -0
- package/build/cjs/core/row.js.map +1 -0
- package/build/cjs/createTable.js +36 -29
- package/build/cjs/createTable.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js +157 -189
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Expanding.js +103 -155
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +155 -304
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +97 -157
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Ordering.js +30 -41
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pagination.js +102 -105
- package/build/cjs/features/Pagination.js.map +1 -1
- package/build/cjs/features/Pinning.js +131 -89
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/RowSelection.js +138 -267
- package/build/cjs/features/RowSelection.js.map +1 -1
- package/build/cjs/features/Sorting.js +82 -167
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js +69 -115
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/filterFns.js +107 -0
- package/build/cjs/filterFns.js.map +1 -0
- package/build/cjs/index.js +36 -23
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/sortingFns.js +124 -0
- package/build/cjs/sortingFns.js.map +1 -0
- package/build/cjs/utils/filterRowsUtils.js +117 -0
- package/build/cjs/utils/filterRowsUtils.js.map +1 -0
- package/build/cjs/utils/getCoreRowModel.js +79 -0
- package/build/cjs/utils/getCoreRowModel.js.map +1 -0
- package/build/cjs/utils/getExpandedRowModel.js +57 -0
- package/build/cjs/utils/getExpandedRowModel.js.map +1 -0
- package/build/cjs/utils/getFacetedMinMaxValues.js +54 -0
- package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -0
- package/build/cjs/utils/getFacetedRowModel.js +50 -0
- package/build/cjs/utils/getFacetedRowModel.js.map +1 -0
- package/build/cjs/utils/getFacetedUniqueValues.js +48 -0
- package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -0
- package/build/cjs/utils/getFilteredRowModel.js +139 -0
- package/build/cjs/utils/getFilteredRowModel.js.map +1 -0
- package/build/cjs/utils/getGroupedRowModel.js +161 -0
- package/build/cjs/utils/getGroupedRowModel.js.map +1 -0
- package/build/cjs/utils/getPaginationRowModel.js +61 -0
- package/build/cjs/utils/getPaginationRowModel.js.map +1 -0
- package/build/cjs/utils/getSortedRowModel.js +110 -0
- package/build/cjs/utils/getSortedRowModel.js.map +1 -0
- package/build/cjs/utils.js +38 -107
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +2976 -3853
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +586 -408
- package/build/types/aggregationFns.d.ts +13 -0
- package/build/types/core/cell.d.ts +9 -0
- package/build/types/core/column.d.ts +40 -0
- package/build/types/core/headers.d.ts +46 -0
- package/build/types/core/instance.d.ts +57 -0
- package/build/types/core/row.d.ts +15 -0
- package/build/types/createTable.d.ts +47 -26
- package/build/types/features/ColumnSizing.d.ts +32 -44
- package/build/types/features/Expanding.d.ts +15 -26
- package/build/types/features/Filters.d.ts +64 -63
- package/build/types/features/Grouping.d.ts +32 -46
- package/build/types/features/Ordering.d.ts +7 -10
- package/build/types/features/Pagination.d.ts +16 -15
- package/build/types/features/Pinning.d.ts +16 -17
- package/build/types/features/RowSelection.d.ts +13 -33
- package/build/types/features/Sorting.d.ts +25 -44
- package/build/types/features/Visibility.d.ts +16 -25
- package/build/types/filterFns.d.ts +13 -0
- package/build/types/index.d.ts +16 -10
- package/build/types/sortingFns.d.ts +11 -0
- package/build/types/types.d.ts +37 -122
- package/build/types/utils/filterRowsUtils.d.ts +4 -0
- package/build/types/utils/getCoreRowModel.d.ts +2 -0
- package/build/types/utils/getExpandedRowModel.d.ts +7 -0
- package/build/types/utils/getFacetedMinMaxValues.d.ts +2 -0
- package/build/types/utils/getFacetedRowModel.d.ts +2 -0
- package/build/types/utils/getFacetedUniqueValues.d.ts +2 -0
- package/build/types/utils/getFilteredRowModel.d.ts +2 -0
- package/build/types/utils/getGroupedRowModel.d.ts +2 -0
- package/build/types/utils/getPaginationRowModel.d.ts +4 -0
- package/build/types/utils/getSortedRowModel.d.ts +2 -0
- package/build/types/utils.d.ts +7 -11
- package/build/umd/index.development.js +3024 -3893
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +9 -10
- package/src/.DS_Store +0 -0
- package/src/aggregationFns.ts +123 -0
- package/src/core/cell.ts +48 -0
- package/src/core/column.ts +147 -0
- package/src/core/headers.ts +575 -0
- package/src/core/instance.ts +361 -0
- package/src/core/row.ts +85 -0
- package/src/createTable.ts +188 -0
- package/src/features/ColumnSizing.ts +170 -185
- package/src/features/Expanding.ts +122 -194
- package/src/features/Filters.ts +301 -381
- package/src/features/Grouping.ts +160 -220
- package/src/features/Ordering.ts +24 -25
- package/src/features/Pagination.ts +90 -73
- package/src/features/Pinning.ts +186 -63
- package/src/features/RowSelection.ts +107 -245
- package/src/features/Sorting.ts +127 -225
- package/src/features/Visibility.ts +116 -132
- package/src/filterFns.ts +135 -0
- package/src/index.ts +29 -0
- package/src/{sortTypes.ts → sortingFns.ts} +63 -85
- package/src/types.ts +62 -168
- package/src/utils/filterRowsUtils.ts +112 -0
- package/src/utils/getCoreRowModel.ts +84 -0
- package/src/utils/getExpandedRowModel.ts +54 -0
- package/src/utils/getFacetedMinMaxValues.ts +40 -0
- package/src/utils/getFacetedRowModel.ts +50 -0
- package/src/utils/getFacetedUniqueValues.ts +37 -0
- package/src/utils/getFilteredRowModel.ts +159 -0
- package/src/utils/getGroupedRowModel.ts +175 -0
- package/src/utils/getPaginationRowModel.ts +48 -0
- package/src/utils/getSortedRowModel.ts +116 -0
- package/src/utils.ts +126 -0
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -112
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
- package/build/cjs/aggregationTypes.js +0 -130
- package/build/cjs/aggregationTypes.js.map +0 -1
- package/build/cjs/core.js +0 -545
- package/build/cjs/core.js.map +0 -1
- package/build/cjs/features/Headers.js +0 -630
- package/build/cjs/features/Headers.js.map +0 -1
- package/build/cjs/filterTypes.js +0 -172
- package/build/cjs/filterTypes.js.map +0 -1
- package/build/cjs/sortTypes.js +0 -122
- package/build/cjs/sortTypes.js.map +0 -1
- package/build/cjs/types.js +0 -22
- package/build/cjs/types.js.map +0 -1
- package/build/cjs/utils/columnFilterRowsFn.js +0 -131
- package/build/cjs/utils/columnFilterRowsFn.js.map +0 -1
- package/build/cjs/utils/expandRowsFn.js +0 -38
- package/build/cjs/utils/expandRowsFn.js.map +0 -1
- package/build/cjs/utils/globalFilterRowsFn.js +0 -101
- package/build/cjs/utils/globalFilterRowsFn.js.map +0 -1
- package/build/cjs/utils/groupRowsFn.js +0 -155
- package/build/cjs/utils/groupRowsFn.js.map +0 -1
- package/build/cjs/utils/paginateRowsFn.js +0 -44
- package/build/cjs/utils/paginateRowsFn.js.map +0 -1
- package/build/cjs/utils/sortRowsFn.js +0 -94
- package/build/cjs/utils/sortRowsFn.js.map +0 -1
- package/build/types/aggregationTypes.d.ts +0 -22
- package/build/types/core.d.ts +0 -105
- package/build/types/features/Headers.d.ts +0 -43
- package/build/types/filterTypes.d.ts +0 -50
- package/build/types/sortTypes.d.ts +0 -18
- package/build/types/utils/columnFilterRowsFn.d.ts +0 -2
- package/build/types/utils/expandRowsFn.d.ts +0 -2
- package/build/types/utils/globalFilterRowsFn.d.ts +0 -2
- package/build/types/utils/groupRowsFn.d.ts +0 -2
- package/build/types/utils/paginateRowsFn.d.ts +0 -2
- package/build/types/utils/sortRowsFn.d.ts +0 -2
- package/src/aggregationTypes.ts +0 -115
- package/src/core.tsx +0 -763
- package/src/createTable.tsx +0 -137
- package/src/features/Headers.ts +0 -747
- package/src/filterTypes.ts +0 -188
- package/src/index.tsx +0 -23
- package/src/utils/columnFilterRowsFn.ts +0 -113
- package/src/utils/expandRowsFn.ts +0 -30
- package/src/utils/globalFilterRowsFn.ts +0 -89
- package/src/utils/groupRowsFn.ts +0 -170
- package/src/utils/paginateRowsFn.ts +0 -28
- package/src/utils/sortRowsFn.ts +0 -95
- package/src/utils.tsx +0 -221
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* table-core
|
|
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 createHeader(instance, column, options) {
|
|
19
|
+
var _options$id;
|
|
20
|
+
|
|
21
|
+
const id = (_options$id = options.id) != null ? _options$id : column.id;
|
|
22
|
+
let header = {
|
|
23
|
+
id,
|
|
24
|
+
column,
|
|
25
|
+
index: options.index,
|
|
26
|
+
isPlaceholder: !!options.isPlaceholder,
|
|
27
|
+
placeholderId: options.placeholderId,
|
|
28
|
+
depth: options.depth,
|
|
29
|
+
subHeaders: [],
|
|
30
|
+
colSpan: 0,
|
|
31
|
+
rowSpan: 0,
|
|
32
|
+
headerGroup: null,
|
|
33
|
+
getLeafHeaders: () => {
|
|
34
|
+
const leafHeaders = [];
|
|
35
|
+
|
|
36
|
+
const recurseHeader = h => {
|
|
37
|
+
if (h.subHeaders && h.subHeaders.length) {
|
|
38
|
+
h.subHeaders.map(recurseHeader);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
leafHeaders.push(h);
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
recurseHeader(header);
|
|
45
|
+
return leafHeaders;
|
|
46
|
+
},
|
|
47
|
+
renderHeader: () => column.columnDef.header ? instance._render(column.columnDef.header, {
|
|
48
|
+
instance,
|
|
49
|
+
header: header,
|
|
50
|
+
column
|
|
51
|
+
}) : null,
|
|
52
|
+
renderFooter: () => column.columnDef.footer ? instance._render(column.columnDef.footer, {
|
|
53
|
+
instance,
|
|
54
|
+
header: header,
|
|
55
|
+
column
|
|
56
|
+
}) : null
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
instance._features.forEach(feature => {
|
|
60
|
+
Object.assign(header, feature.createHeader == null ? void 0 : feature.createHeader(header, instance));
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
return header;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const Headers = {
|
|
67
|
+
createInstance: instance => {
|
|
68
|
+
return {
|
|
69
|
+
// Header Groups
|
|
70
|
+
getHeaderGroups: utils.memo(() => [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.left, instance.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {
|
|
71
|
+
var _left$map$filter, _right$map$filter;
|
|
72
|
+
|
|
73
|
+
const leftColumns = (_left$map$filter = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter : [];
|
|
74
|
+
const rightColumns = (_right$map$filter = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter : [];
|
|
75
|
+
const centerColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));
|
|
76
|
+
const headerGroups = buildHeaderGroups(allColumns, [...leftColumns, ...centerColumns, ...rightColumns], instance);
|
|
77
|
+
return headerGroups;
|
|
78
|
+
}, {
|
|
79
|
+
key: process.env.NODE_ENV === 'development' && 'getHeaderGroups',
|
|
80
|
+
debug: () => {
|
|
81
|
+
var _instance$options$deb;
|
|
82
|
+
|
|
83
|
+
return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugHeaders;
|
|
84
|
+
}
|
|
85
|
+
}),
|
|
86
|
+
getCenterHeaderGroups: utils.memo(() => [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.left, instance.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {
|
|
87
|
+
leafColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));
|
|
88
|
+
return buildHeaderGroups(allColumns, leafColumns, instance, 'center');
|
|
89
|
+
}, {
|
|
90
|
+
key: process.env.NODE_ENV === 'development' && 'getCenterHeaderGroups',
|
|
91
|
+
debug: () => {
|
|
92
|
+
var _instance$options$deb2;
|
|
93
|
+
|
|
94
|
+
return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugHeaders;
|
|
95
|
+
}
|
|
96
|
+
}),
|
|
97
|
+
getLeftHeaderGroups: utils.memo(() => [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.left], (allColumns, leafColumns, left) => {
|
|
98
|
+
var _left$map$filter2;
|
|
99
|
+
|
|
100
|
+
const orderedLeafColumns = (_left$map$filter2 = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter2 : [];
|
|
101
|
+
return buildHeaderGroups(allColumns, orderedLeafColumns, instance, 'left');
|
|
102
|
+
}, {
|
|
103
|
+
key: process.env.NODE_ENV === 'development' && 'getLeftHeaderGroups',
|
|
104
|
+
debug: () => {
|
|
105
|
+
var _instance$options$deb3;
|
|
106
|
+
|
|
107
|
+
return (_instance$options$deb3 = instance.options.debugAll) != null ? _instance$options$deb3 : instance.options.debugHeaders;
|
|
108
|
+
}
|
|
109
|
+
}),
|
|
110
|
+
getRightHeaderGroups: utils.memo(() => [instance.getAllColumns(), instance.getVisibleLeafColumns(), instance.getState().columnPinning.right], (allColumns, leafColumns, right) => {
|
|
111
|
+
var _right$map$filter2;
|
|
112
|
+
|
|
113
|
+
const orderedLeafColumns = (_right$map$filter2 = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter2 : [];
|
|
114
|
+
return buildHeaderGroups(allColumns, orderedLeafColumns, instance, 'right');
|
|
115
|
+
}, {
|
|
116
|
+
key: process.env.NODE_ENV === 'development' && 'getRightHeaderGroups',
|
|
117
|
+
debug: () => {
|
|
118
|
+
var _instance$options$deb4;
|
|
119
|
+
|
|
120
|
+
return (_instance$options$deb4 = instance.options.debugAll) != null ? _instance$options$deb4 : instance.options.debugHeaders;
|
|
121
|
+
}
|
|
122
|
+
}),
|
|
123
|
+
// Footer Groups
|
|
124
|
+
getFooterGroups: utils.memo(() => [instance.getHeaderGroups()], headerGroups => {
|
|
125
|
+
return [...headerGroups].reverse();
|
|
126
|
+
}, {
|
|
127
|
+
key: process.env.NODE_ENV === 'development' && 'getFooterGroups',
|
|
128
|
+
debug: () => {
|
|
129
|
+
var _instance$options$deb5;
|
|
130
|
+
|
|
131
|
+
return (_instance$options$deb5 = instance.options.debugAll) != null ? _instance$options$deb5 : instance.options.debugHeaders;
|
|
132
|
+
}
|
|
133
|
+
}),
|
|
134
|
+
getLeftFooterGroups: utils.memo(() => [instance.getLeftHeaderGroups()], headerGroups => {
|
|
135
|
+
return [...headerGroups].reverse();
|
|
136
|
+
}, {
|
|
137
|
+
key: process.env.NODE_ENV === 'development' && 'getLeftFooterGroups',
|
|
138
|
+
debug: () => {
|
|
139
|
+
var _instance$options$deb6;
|
|
140
|
+
|
|
141
|
+
return (_instance$options$deb6 = instance.options.debugAll) != null ? _instance$options$deb6 : instance.options.debugHeaders;
|
|
142
|
+
}
|
|
143
|
+
}),
|
|
144
|
+
getCenterFooterGroups: utils.memo(() => [instance.getCenterHeaderGroups()], headerGroups => {
|
|
145
|
+
return [...headerGroups].reverse();
|
|
146
|
+
}, {
|
|
147
|
+
key: process.env.NODE_ENV === 'development' && 'getCenterFooterGroups',
|
|
148
|
+
debug: () => {
|
|
149
|
+
var _instance$options$deb7;
|
|
150
|
+
|
|
151
|
+
return (_instance$options$deb7 = instance.options.debugAll) != null ? _instance$options$deb7 : instance.options.debugHeaders;
|
|
152
|
+
}
|
|
153
|
+
}),
|
|
154
|
+
getRightFooterGroups: utils.memo(() => [instance.getRightHeaderGroups()], headerGroups => {
|
|
155
|
+
return [...headerGroups].reverse();
|
|
156
|
+
}, {
|
|
157
|
+
key: process.env.NODE_ENV === 'development' && 'getRightFooterGroups',
|
|
158
|
+
debug: () => {
|
|
159
|
+
var _instance$options$deb8;
|
|
160
|
+
|
|
161
|
+
return (_instance$options$deb8 = instance.options.debugAll) != null ? _instance$options$deb8 : instance.options.debugHeaders;
|
|
162
|
+
}
|
|
163
|
+
}),
|
|
164
|
+
// Flat Headers
|
|
165
|
+
getFlatHeaders: utils.memo(() => [instance.getHeaderGroups()], headerGroups => {
|
|
166
|
+
return headerGroups.map(headerGroup => {
|
|
167
|
+
return headerGroup.headers;
|
|
168
|
+
}).flat();
|
|
169
|
+
}, {
|
|
170
|
+
key: process.env.NODE_ENV === 'development' && 'getFlatHeaders',
|
|
171
|
+
debug: () => {
|
|
172
|
+
var _instance$options$deb9;
|
|
173
|
+
|
|
174
|
+
return (_instance$options$deb9 = instance.options.debugAll) != null ? _instance$options$deb9 : instance.options.debugHeaders;
|
|
175
|
+
}
|
|
176
|
+
}),
|
|
177
|
+
getLeftFlatHeaders: utils.memo(() => [instance.getLeftHeaderGroups()], left => {
|
|
178
|
+
return left.map(headerGroup => {
|
|
179
|
+
return headerGroup.headers;
|
|
180
|
+
}).flat();
|
|
181
|
+
}, {
|
|
182
|
+
key: process.env.NODE_ENV === 'development' && 'getLeftFlatHeaders',
|
|
183
|
+
debug: () => {
|
|
184
|
+
var _instance$options$deb10;
|
|
185
|
+
|
|
186
|
+
return (_instance$options$deb10 = instance.options.debugAll) != null ? _instance$options$deb10 : instance.options.debugHeaders;
|
|
187
|
+
}
|
|
188
|
+
}),
|
|
189
|
+
getCenterFlatHeaders: utils.memo(() => [instance.getCenterHeaderGroups()], left => {
|
|
190
|
+
return left.map(headerGroup => {
|
|
191
|
+
return headerGroup.headers;
|
|
192
|
+
}).flat();
|
|
193
|
+
}, {
|
|
194
|
+
key: process.env.NODE_ENV === 'development' && 'getCenterFlatHeaders',
|
|
195
|
+
debug: () => {
|
|
196
|
+
var _instance$options$deb11;
|
|
197
|
+
|
|
198
|
+
return (_instance$options$deb11 = instance.options.debugAll) != null ? _instance$options$deb11 : instance.options.debugHeaders;
|
|
199
|
+
}
|
|
200
|
+
}),
|
|
201
|
+
getRightFlatHeaders: utils.memo(() => [instance.getRightHeaderGroups()], left => {
|
|
202
|
+
return left.map(headerGroup => {
|
|
203
|
+
return headerGroup.headers;
|
|
204
|
+
}).flat();
|
|
205
|
+
}, {
|
|
206
|
+
key: process.env.NODE_ENV === 'development' && 'getRightFlatHeaders',
|
|
207
|
+
debug: () => {
|
|
208
|
+
var _instance$options$deb12;
|
|
209
|
+
|
|
210
|
+
return (_instance$options$deb12 = instance.options.debugAll) != null ? _instance$options$deb12 : instance.options.debugHeaders;
|
|
211
|
+
}
|
|
212
|
+
}),
|
|
213
|
+
// Leaf Headers
|
|
214
|
+
getCenterLeafHeaders: utils.memo(() => [instance.getCenterFlatHeaders()], flatHeaders => {
|
|
215
|
+
return flatHeaders.filter(header => {
|
|
216
|
+
var _header$subHeaders;
|
|
217
|
+
|
|
218
|
+
return !((_header$subHeaders = header.subHeaders) != null && _header$subHeaders.length);
|
|
219
|
+
});
|
|
220
|
+
}, {
|
|
221
|
+
key: process.env.NODE_ENV === 'development' && 'getCenterLeafHeaders',
|
|
222
|
+
debug: () => {
|
|
223
|
+
var _instance$options$deb13;
|
|
224
|
+
|
|
225
|
+
return (_instance$options$deb13 = instance.options.debugAll) != null ? _instance$options$deb13 : instance.options.debugHeaders;
|
|
226
|
+
}
|
|
227
|
+
}),
|
|
228
|
+
getLeftLeafHeaders: utils.memo(() => [instance.getLeftFlatHeaders()], flatHeaders => {
|
|
229
|
+
return flatHeaders.filter(header => {
|
|
230
|
+
var _header$subHeaders2;
|
|
231
|
+
|
|
232
|
+
return !((_header$subHeaders2 = header.subHeaders) != null && _header$subHeaders2.length);
|
|
233
|
+
});
|
|
234
|
+
}, {
|
|
235
|
+
key: process.env.NODE_ENV === 'development' && 'getLeftLeafHeaders',
|
|
236
|
+
debug: () => {
|
|
237
|
+
var _instance$options$deb14;
|
|
238
|
+
|
|
239
|
+
return (_instance$options$deb14 = instance.options.debugAll) != null ? _instance$options$deb14 : instance.options.debugHeaders;
|
|
240
|
+
}
|
|
241
|
+
}),
|
|
242
|
+
getRightLeafHeaders: utils.memo(() => [instance.getRightFlatHeaders()], flatHeaders => {
|
|
243
|
+
return flatHeaders.filter(header => {
|
|
244
|
+
var _header$subHeaders3;
|
|
245
|
+
|
|
246
|
+
return !((_header$subHeaders3 = header.subHeaders) != null && _header$subHeaders3.length);
|
|
247
|
+
});
|
|
248
|
+
}, {
|
|
249
|
+
key: process.env.NODE_ENV === 'development' && 'getRightLeafHeaders',
|
|
250
|
+
debug: () => {
|
|
251
|
+
var _instance$options$deb15;
|
|
252
|
+
|
|
253
|
+
return (_instance$options$deb15 = instance.options.debugAll) != null ? _instance$options$deb15 : instance.options.debugHeaders;
|
|
254
|
+
}
|
|
255
|
+
}),
|
|
256
|
+
getLeafHeaders: utils.memo(() => [instance.getLeftHeaderGroups(), instance.getCenterHeaderGroups(), instance.getRightHeaderGroups()], (left, center, right) => {
|
|
257
|
+
var _left$0$headers, _left$, _center$0$headers, _center$, _right$0$headers, _right$;
|
|
258
|
+
|
|
259
|
+
return [...((_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(header => {
|
|
260
|
+
return header.getLeafHeaders();
|
|
261
|
+
}).flat();
|
|
262
|
+
}, {
|
|
263
|
+
key: process.env.NODE_ENV === 'development' && 'getLeafHeaders',
|
|
264
|
+
debug: () => {
|
|
265
|
+
var _instance$options$deb16;
|
|
266
|
+
|
|
267
|
+
return (_instance$options$deb16 = instance.options.debugAll) != null ? _instance$options$deb16 : instance.options.debugHeaders;
|
|
268
|
+
}
|
|
269
|
+
})
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
};
|
|
273
|
+
function buildHeaderGroups(allColumns, columnsToGroup, instance, headerFamily) {
|
|
274
|
+
var _headerGroups$0$heade, _headerGroups$;
|
|
275
|
+
|
|
276
|
+
// Find the max depth of the columns:
|
|
277
|
+
// build the leaf column row
|
|
278
|
+
// build each buffer row going up
|
|
279
|
+
// placeholder for non-existent level
|
|
280
|
+
// real column for existing level
|
|
281
|
+
let maxDepth = 0;
|
|
282
|
+
|
|
283
|
+
const findMaxDepth = function (columns, depth) {
|
|
284
|
+
if (depth === void 0) {
|
|
285
|
+
depth = 1;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
maxDepth = Math.max(maxDepth, depth);
|
|
289
|
+
columns.filter(column => column.getIsVisible()).forEach(column => {
|
|
290
|
+
var _column$columns;
|
|
291
|
+
|
|
292
|
+
if ((_column$columns = column.columns) != null && _column$columns.length) {
|
|
293
|
+
findMaxDepth(column.columns, depth + 1);
|
|
294
|
+
}
|
|
295
|
+
}, 0);
|
|
296
|
+
};
|
|
297
|
+
|
|
298
|
+
findMaxDepth(allColumns);
|
|
299
|
+
let headerGroups = [];
|
|
300
|
+
|
|
301
|
+
const createHeaderGroup = (headersToGroup, depth) => {
|
|
302
|
+
// The header group we are creating
|
|
303
|
+
const headerGroup = {
|
|
304
|
+
depth,
|
|
305
|
+
id: [headerFamily, "" + depth].filter(Boolean).join('_'),
|
|
306
|
+
headers: []
|
|
307
|
+
}; // The parent columns we're going to scan next
|
|
308
|
+
|
|
309
|
+
const pendingParentHeaders = []; // Scan each column for parents
|
|
310
|
+
|
|
311
|
+
headersToGroup.forEach(headerToGroup => {
|
|
312
|
+
// What is the latest (last) parent column?
|
|
313
|
+
const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0];
|
|
314
|
+
const isLeafHeader = headerToGroup.column.depth === headerGroup.depth;
|
|
315
|
+
let column;
|
|
316
|
+
let isPlaceholder = false;
|
|
317
|
+
|
|
318
|
+
if (isLeafHeader && headerToGroup.column.parent) {
|
|
319
|
+
// The parent header is new
|
|
320
|
+
column = headerToGroup.column.parent;
|
|
321
|
+
} else {
|
|
322
|
+
// The parent header is repeated
|
|
323
|
+
column = headerToGroup.column;
|
|
324
|
+
isPlaceholder = true;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
if ((latestPendingParentHeader == null ? void 0 : latestPendingParentHeader.column) === column) {
|
|
328
|
+
// This column is repeated. Add it as a sub header to the next batch
|
|
329
|
+
latestPendingParentHeader.subHeaders.push(headerToGroup);
|
|
330
|
+
} else {
|
|
331
|
+
// This is a new header. Let's create it
|
|
332
|
+
const header = createHeader(instance, column, {
|
|
333
|
+
id: [headerFamily, depth, column.id, headerToGroup == null ? void 0 : headerToGroup.id].filter(Boolean).join('_'),
|
|
334
|
+
isPlaceholder,
|
|
335
|
+
placeholderId: isPlaceholder ? "" + pendingParentHeaders.filter(d => d.column === column).length : undefined,
|
|
336
|
+
depth,
|
|
337
|
+
index: pendingParentHeaders.length
|
|
338
|
+
}); // Add the headerToGroup as a subHeader of the new header
|
|
339
|
+
|
|
340
|
+
header.subHeaders.push(headerToGroup); // Add the new header to the pendingParentHeaders to get grouped
|
|
341
|
+
// in the next batch
|
|
342
|
+
|
|
343
|
+
pendingParentHeaders.push(header);
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
headerGroup.headers.push(headerToGroup);
|
|
347
|
+
headerToGroup.headerGroup = headerGroup;
|
|
348
|
+
});
|
|
349
|
+
headerGroups.push(headerGroup);
|
|
350
|
+
|
|
351
|
+
if (depth > 0) {
|
|
352
|
+
createHeaderGroup(pendingParentHeaders, depth - 1);
|
|
353
|
+
}
|
|
354
|
+
};
|
|
355
|
+
|
|
356
|
+
const bottomHeaders = columnsToGroup.map((column, index) => createHeader(instance, column, {
|
|
357
|
+
depth: maxDepth,
|
|
358
|
+
index
|
|
359
|
+
}));
|
|
360
|
+
createHeaderGroup(bottomHeaders, maxDepth - 1);
|
|
361
|
+
headerGroups.reverse(); // headerGroups = headerGroups.filter(headerGroup => {
|
|
362
|
+
// return !headerGroup.headers.every(header => header.isPlaceholder)
|
|
363
|
+
// })
|
|
364
|
+
|
|
365
|
+
const recurseHeadersForSpans = headers => {
|
|
366
|
+
const filteredHeaders = headers.filter(header => header.column.getIsVisible());
|
|
367
|
+
return filteredHeaders.map(header => {
|
|
368
|
+
let colSpan = 0;
|
|
369
|
+
let rowSpan = 0;
|
|
370
|
+
let childRowSpans = [0];
|
|
371
|
+
|
|
372
|
+
if (header.subHeaders && header.subHeaders.length) {
|
|
373
|
+
childRowSpans = [];
|
|
374
|
+
recurseHeadersForSpans(header.subHeaders).forEach(_ref => {
|
|
375
|
+
let {
|
|
376
|
+
colSpan: childColSpan,
|
|
377
|
+
rowSpan: childRowSpan
|
|
378
|
+
} = _ref;
|
|
379
|
+
colSpan += childColSpan;
|
|
380
|
+
childRowSpans.push(childRowSpan);
|
|
381
|
+
});
|
|
382
|
+
} else {
|
|
383
|
+
colSpan = 1;
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
const minChildRowSpan = Math.min(...childRowSpans);
|
|
387
|
+
rowSpan = rowSpan + minChildRowSpan;
|
|
388
|
+
header.colSpan = colSpan;
|
|
389
|
+
header.rowSpan = rowSpan;
|
|
390
|
+
return {
|
|
391
|
+
colSpan,
|
|
392
|
+
rowSpan
|
|
393
|
+
};
|
|
394
|
+
});
|
|
395
|
+
};
|
|
396
|
+
|
|
397
|
+
recurseHeadersForSpans((_headerGroups$0$heade = (_headerGroups$ = headerGroups[0]) == null ? void 0 : _headerGroups$.headers) != null ? _headerGroups$0$heade : []);
|
|
398
|
+
return headerGroups;
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
exports.Headers = Headers;
|
|
402
|
+
exports.buildHeaderGroups = buildHeaderGroups;
|
|
403
|
+
//# sourceMappingURL=headers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headers.js","sources":["../../../src/core/headers.ts"],"sourcesContent":["import {\n Column,\n Header,\n HeaderGroup,\n TableGenerics,\n TableInstance,\n} from '../types'\nimport { memo } from '../utils'\nimport { TableFeature } from './instance'\n\nexport type CoreHeaderGroup<TGenerics extends TableGenerics> = {\n id: string\n depth: number\n headers: Header<TGenerics>[]\n}\n\nexport type CoreHeader<TGenerics extends TableGenerics> = {\n id: string\n index: number\n depth: number\n column: Column<TGenerics>\n headerGroup: HeaderGroup<TGenerics>\n subHeaders: Header<TGenerics>[]\n colSpan: number\n rowSpan: number\n getLeafHeaders: () => Header<TGenerics>[]\n isPlaceholder: boolean\n placeholderId?: string\n renderHeader: (options?: {\n renderPlaceholder?: boolean\n }) => string | null | TGenerics['Rendered']\n renderFooter: (options?: {\n renderPlaceholder?: boolean\n }) => string | null | TGenerics['Rendered']\n}\n\nexport type HeadersInstance<TGenerics extends TableGenerics> = {\n getHeaderGroups: () => HeaderGroup<TGenerics>[]\n getLeftHeaderGroups: () => HeaderGroup<TGenerics>[]\n getCenterHeaderGroups: () => HeaderGroup<TGenerics>[]\n getRightHeaderGroups: () => HeaderGroup<TGenerics>[]\n\n getFooterGroups: () => HeaderGroup<TGenerics>[]\n getLeftFooterGroups: () => HeaderGroup<TGenerics>[]\n getCenterFooterGroups: () => HeaderGroup<TGenerics>[]\n getRightFooterGroups: () => HeaderGroup<TGenerics>[]\n\n getFlatHeaders: () => Header<TGenerics>[]\n getLeftFlatHeaders: () => Header<TGenerics>[]\n getCenterFlatHeaders: () => Header<TGenerics>[]\n getRightFlatHeaders: () => Header<TGenerics>[]\n\n getLeafHeaders: () => Header<TGenerics>[]\n getLeftLeafHeaders: () => Header<TGenerics>[]\n getCenterLeafHeaders: () => Header<TGenerics>[]\n getRightLeafHeaders: () => Header<TGenerics>[]\n}\n\n//\n\nfunction createHeader<TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>,\n column: Column<TGenerics>,\n options: {\n id?: string\n isPlaceholder?: boolean\n placeholderId?: string\n index: number\n depth: number\n }\n) {\n const id = options.id ?? column.id\n\n let header: CoreHeader<TGenerics> = {\n id,\n column,\n index: options.index,\n isPlaceholder: !!options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n headerGroup: null!,\n getLeafHeaders: (): Header<TGenerics>[] => {\n const leafHeaders: CoreHeader<TGenerics>[] = []\n\n const recurseHeader = (h: CoreHeader<TGenerics>) => {\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<TGenerics>[]\n },\n renderHeader: () =>\n column.columnDef.header\n ? instance._render(column.columnDef.header, {\n instance,\n header: header as Header<TGenerics>,\n column,\n })\n : null,\n renderFooter: () =>\n column.columnDef.footer\n ? instance._render(column.columnDef.footer, {\n instance,\n header: header as Header<TGenerics>,\n column,\n })\n : null,\n }\n\n instance._features.forEach(feature => {\n Object.assign(header, feature.createHeader?.(header, instance))\n })\n\n return header as Header<TGenerics>\n}\n\nexport const Headers: TableFeature = {\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): HeadersInstance<TGenerics> => {\n return {\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 =\n left\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n const rightColumns =\n right\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n const centerColumns = leafColumns.filter(\n column => !left?.includes(column.id) && !right?.includes(column.id)\n )\n\n const headerGroups = buildHeaderGroups(\n allColumns,\n [...leftColumns, ...centerColumns, ...rightColumns],\n instance\n )\n\n return headerGroups\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getHeaderGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\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 {\n key:\n process.env.NODE_ENV === 'development' && 'getCenterHeaderGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getLeftHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.left,\n ],\n (allColumns, leafColumns, left) => {\n const orderedLeafColumns =\n left\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n return buildHeaderGroups(\n allColumns,\n orderedLeafColumns,\n instance,\n 'left'\n )\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftHeaderGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getRightHeaderGroups: memo(\n () => [\n instance.getAllColumns(),\n instance.getVisibleLeafColumns(),\n instance.getState().columnPinning.right,\n ],\n (allColumns, leafColumns, right) => {\n const orderedLeafColumns =\n right\n ?.map(columnId => leafColumns.find(d => d.id === columnId)!)\n .filter(Boolean) ?? []\n\n return buildHeaderGroups(\n allColumns,\n orderedLeafColumns,\n instance,\n 'right'\n )\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightHeaderGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n // Footer Groups\n\n getFooterGroups: memo(\n () => [instance.getHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getFooterGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getLeftFooterGroups: memo(\n () => [instance.getLeftHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftFooterGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getCenterFooterGroups: memo(\n () => [instance.getCenterHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key:\n process.env.NODE_ENV === 'development' && 'getCenterFooterGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getRightFooterGroups: memo(\n () => [instance.getRightHeaderGroups()],\n headerGroups => {\n return [...headerGroups].reverse()\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightFooterGroups',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\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 {\n key: process.env.NODE_ENV === 'development' && 'getFlatHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\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 {\n key: process.env.NODE_ENV === 'development' && 'getLeftFlatHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\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 {\n key: process.env.NODE_ENV === 'development' && 'getCenterFlatHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\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 {\n key: process.env.NODE_ENV === 'development' && 'getRightFlatHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n // Leaf Headers\n\n getCenterLeafHeaders: memo(\n () => [instance.getCenterFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getLeftLeafHeaders: memo(\n () => [instance.getLeftFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n\n getRightLeafHeaders: memo(\n () => [instance.getRightFlatHeaders()],\n flatHeaders => {\n return flatHeaders.filter(header => !header.subHeaders?.length)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\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 {\n key: process.env.NODE_ENV === 'development' && 'getLeafHeaders',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugHeaders,\n }\n ),\n }\n },\n}\n\nexport function buildHeaderGroups<TGenerics extends TableGenerics>(\n allColumns: Column<TGenerics>[],\n columnsToGroup: Column<TGenerics>[],\n instance: TableInstance<TGenerics>,\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 = (columns: Column<TGenerics>[], depth = 1) => {\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<TGenerics>[] = []\n\n const createHeaderGroup = (\n headersToGroup: Header<TGenerics>[],\n depth: number\n ) => {\n // The header group we are creating\n const headerGroup: HeaderGroup<TGenerics> = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: [],\n }\n\n // The parent columns we're going to scan next\n const pendingParentHeaders: Header<TGenerics>[] = []\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0]\n\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth\n\n let column: Column<TGenerics>\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 if (latestPendingParentHeader?.column === column) {\n // This column is repeated. Add it as a sub header to the next batch\n latestPendingParentHeader.subHeaders.push(headerToGroup)\n } else {\n // This is a new header. Let's create it\n const header = createHeader(instance, column, {\n id: [headerFamily, depth, column.id, headerToGroup?.id]\n .filter(Boolean)\n .join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder\n ? `${pendingParentHeaders.filter(d => d.column === column).length}`\n : undefined,\n depth,\n index: pendingParentHeaders.length,\n })\n\n // Add the headerToGroup as a subHeader of the new header\n header.subHeaders.push(headerToGroup)\n // Add the new header to the pendingParentHeaders to get grouped\n // in the next batch\n pendingParentHeaders.push(header)\n }\n\n headerGroup.headers.push(headerToGroup)\n headerToGroup.headerGroup = headerGroup\n })\n\n headerGroups.push(headerGroup)\n\n if (depth > 0) {\n createHeaderGroup(pendingParentHeaders, depth - 1)\n }\n }\n\n const bottomHeaders = columnsToGroup.map((column, index) =>\n createHeader(instance, column, {\n depth: maxDepth,\n index,\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<TGenerics>[]\n ): { colSpan: number; rowSpan: number }[] => {\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\n header.rowSpan = rowSpan\n\n return { colSpan, rowSpan }\n })\n }\n\n recurseHeadersForSpans(headerGroups[0]?.headers ?? [])\n\n return headerGroups\n}\n"],"names":["createHeader","instance","column","options","id","header","index","isPlaceholder","placeholderId","depth","subHeaders","colSpan","rowSpan","headerGroup","getLeafHeaders","leafHeaders","recurseHeader","h","length","map","push","renderHeader","columnDef","_render","renderFooter","footer","_features","forEach","feature","Object","assign","Headers","createInstance","getHeaderGroups","memo","getAllColumns","getVisibleLeafColumns","getState","columnPinning","left","right","allColumns","leafColumns","leftColumns","columnId","find","d","filter","Boolean","rightColumns","centerColumns","includes","headerGroups","buildHeaderGroups","key","process","env","NODE_ENV","debug","debugAll","debugHeaders","getCenterHeaderGroups","getLeftHeaderGroups","orderedLeafColumns","getRightHeaderGroups","getFooterGroups","reverse","getLeftFooterGroups","getCenterFooterGroups","getRightFooterGroups","getFlatHeaders","headers","flat","getLeftFlatHeaders","getCenterFlatHeaders","getRightFlatHeaders","getCenterLeafHeaders","flatHeaders","getLeftLeafHeaders","getRightLeafHeaders","center","columnsToGroup","headerFamily","maxDepth","findMaxDepth","columns","Math","max","getIsVisible","createHeaderGroup","headersToGroup","join","pendingParentHeaders","headerToGroup","latestPendingParentHeader","isLeafHeader","parent","undefined","bottomHeaders","recurseHeadersForSpans","filteredHeaders","childRowSpans","childColSpan","childRowSpan","minChildRowSpan","min"],"mappings":"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"}
|