@tanstack/table-core 8.5.15 → 8.5.16
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 +0 -15
- package/build/cjs/aggregationFns.js.map +1 -1
- package/build/cjs/columnHelper.js +10 -2
- package/build/cjs/columnHelper.js.map +1 -1
- package/build/cjs/core/cell.js +0 -3
- package/build/cjs/core/cell.js.map +1 -1
- package/build/cjs/core/column.js +4 -12
- package/build/cjs/core/column.js.map +1 -1
- package/build/cjs/core/headers.js +18 -30
- package/build/cjs/core/headers.js.map +1 -1
- package/build/cjs/core/row.js +0 -5
- package/build/cjs/core/row.js.map +1 -1
- package/build/cjs/core/table.js +13 -30
- package/build/cjs/core/table.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js +33 -32
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Expanding.js +9 -19
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +6 -34
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +1 -16
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Ordering.js +13 -10
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pagination.js +11 -22
- package/build/cjs/features/Pagination.js.map +1 -1
- package/build/cjs/features/Pinning.js +5 -11
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/RowSelection.js +35 -39
- package/build/cjs/features/RowSelection.js.map +1 -1
- package/build/cjs/features/Sorting.js +14 -29
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js +5 -5
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/filterFns.js +3 -28
- package/build/cjs/filterFns.js.map +1 -1
- package/build/cjs/sortingFns.js +24 -31
- package/build/cjs/sortingFns.js.map +1 -1
- package/build/cjs/utils/filterRowsUtils.js +7 -19
- package/build/cjs/utils/filterRowsUtils.js.map +1 -1
- package/build/cjs/utils/getCoreRowModel.js +11 -13
- package/build/cjs/utils/getCoreRowModel.js.map +1 -1
- package/build/cjs/utils/getExpandedRowModel.js +0 -6
- package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
- package/build/cjs/utils/getFacetedMinMaxValues.js +0 -6
- package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -1
- package/build/cjs/utils/getFacetedRowModel.js +0 -4
- package/build/cjs/utils/getFacetedRowModel.js.map +1 -1
- package/build/cjs/utils/getFacetedUniqueValues.js +0 -4
- package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -1
- package/build/cjs/utils/getFilteredRowModel.js +8 -20
- package/build/cjs/utils/getFilteredRowModel.js.map +1 -1
- package/build/cjs/utils/getGroupedRowModel.js +21 -25
- package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
- package/build/cjs/utils/getPaginationRowModel.js +0 -6
- package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
- package/build/cjs/utils/getSortedRowModel.js +6 -15
- package/build/cjs/utils/getSortedRowModel.js.map +1 -1
- package/build/cjs/utils.js +7 -13
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +264 -504
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +51 -41
- package/build/stats-react.json +369 -369
- package/build/umd/index.development.js +264 -502
- 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 +1 -1
- package/src/features/ColumnSizing.ts +11 -1
|
@@ -15,12 +15,12 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
15
15
|
var utils = require('../utils.js');
|
|
16
16
|
|
|
17
17
|
//
|
|
18
|
+
|
|
18
19
|
const defaultColumnSizing = {
|
|
19
20
|
size: 150,
|
|
20
21
|
minSize: 20,
|
|
21
22
|
maxSize: Number.MAX_SAFE_INTEGER
|
|
22
23
|
};
|
|
23
|
-
|
|
24
24
|
const getDefaultColumnSizingInfoState = () => ({
|
|
25
25
|
startOffset: null,
|
|
26
26
|
startSize: null,
|
|
@@ -29,7 +29,6 @@ const getDefaultColumnSizingInfoState = () => ({
|
|
|
29
29
|
isResizingColumn: false,
|
|
30
30
|
columnSizingStart: []
|
|
31
31
|
});
|
|
32
|
-
|
|
33
32
|
const ColumnSizing = {
|
|
34
33
|
getDefaultColumnDef: () => {
|
|
35
34
|
return defaultColumnSizing;
|
|
@@ -57,12 +56,10 @@ const ColumnSizing = {
|
|
|
57
56
|
getStart: position => {
|
|
58
57
|
const columns = !position ? table.getVisibleLeafColumns() : position === 'left' ? table.getLeftVisibleLeafColumns() : table.getRightVisibleLeafColumns();
|
|
59
58
|
const index = columns.findIndex(d => d.id === column.id);
|
|
60
|
-
|
|
61
59
|
if (index > 0) {
|
|
62
60
|
const prevSiblingColumn = columns[index - 1];
|
|
63
61
|
return prevSiblingColumn.getStart(position) + prevSiblingColumn.getSize();
|
|
64
62
|
}
|
|
65
|
-
|
|
66
63
|
return 0;
|
|
67
64
|
},
|
|
68
65
|
resetSize: () => {
|
|
@@ -86,7 +83,6 @@ const ColumnSizing = {
|
|
|
86
83
|
return {
|
|
87
84
|
getSize: () => {
|
|
88
85
|
let sum = 0;
|
|
89
|
-
|
|
90
86
|
const recurse = header => {
|
|
91
87
|
if (header.subHeaders.length) {
|
|
92
88
|
header.subHeaders.forEach(recurse);
|
|
@@ -94,7 +90,6 @@ const ColumnSizing = {
|
|
|
94
90
|
sum += header.column.getSize() ?? 0;
|
|
95
91
|
}
|
|
96
92
|
};
|
|
97
|
-
|
|
98
93
|
recurse(header);
|
|
99
94
|
return sum;
|
|
100
95
|
},
|
|
@@ -103,7 +98,6 @@ const ColumnSizing = {
|
|
|
103
98
|
const prevSiblingHeader = header.headerGroup.headers[header.index - 1];
|
|
104
99
|
return prevSiblingHeader.getStart() + prevSiblingHeader.getSize();
|
|
105
100
|
}
|
|
106
|
-
|
|
107
101
|
return 0;
|
|
108
102
|
},
|
|
109
103
|
getResizeHandler: () => {
|
|
@@ -114,23 +108,19 @@ const ColumnSizing = {
|
|
|
114
108
|
return;
|
|
115
109
|
}
|
|
116
110
|
e.persist == null ? void 0 : e.persist();
|
|
117
|
-
|
|
118
111
|
if (isTouchStartEvent(e)) {
|
|
119
112
|
// lets not respond to multiple touches (e.g. 2 or 3 fingers)
|
|
120
113
|
if (e.touches && e.touches.length > 1) {
|
|
121
114
|
return;
|
|
122
115
|
}
|
|
123
116
|
}
|
|
124
|
-
|
|
125
117
|
const startSize = header.getSize();
|
|
126
118
|
const columnSizingStart = header ? header.getLeafHeaders().map(d => [d.column.id, d.column.getSize()]) : [[column.id, column.getSize()]];
|
|
127
119
|
const clientX = isTouchStartEvent(e) ? Math.round(e.touches[0].clientX) : e.clientX;
|
|
128
|
-
|
|
129
120
|
const updateOffset = (eventType, clientXPos) => {
|
|
130
121
|
if (typeof clientXPos !== 'number') {
|
|
131
122
|
return;
|
|
132
123
|
}
|
|
133
|
-
|
|
134
124
|
let newColumnSizing = {};
|
|
135
125
|
table.setColumnSizingInfo(old => {
|
|
136
126
|
const deltaOffset = clientXPos - ((old == null ? void 0 : old.startOffset) ?? 0);
|
|
@@ -139,24 +129,24 @@ const ColumnSizing = {
|
|
|
139
129
|
let [columnId, headerSize] = _ref2;
|
|
140
130
|
newColumnSizing[columnId] = Math.round(Math.max(headerSize + headerSize * deltaPercentage, 0) * 100) / 100;
|
|
141
131
|
});
|
|
142
|
-
return {
|
|
132
|
+
return {
|
|
133
|
+
...old,
|
|
143
134
|
deltaOffset,
|
|
144
135
|
deltaPercentage
|
|
145
136
|
};
|
|
146
137
|
});
|
|
147
|
-
|
|
148
138
|
if (table.options.columnResizeMode === 'onChange' || eventType === 'end') {
|
|
149
|
-
table.setColumnSizing(old => ({
|
|
139
|
+
table.setColumnSizing(old => ({
|
|
140
|
+
...old,
|
|
150
141
|
...newColumnSizing
|
|
151
142
|
}));
|
|
152
143
|
}
|
|
153
144
|
};
|
|
154
|
-
|
|
155
145
|
const onMove = clientXPos => updateOffset('move', clientXPos);
|
|
156
|
-
|
|
157
146
|
const onEnd = clientXPos => {
|
|
158
147
|
updateOffset('end', clientXPos);
|
|
159
|
-
table.setColumnSizingInfo(old => ({
|
|
148
|
+
table.setColumnSizingInfo(old => ({
|
|
149
|
+
...old,
|
|
160
150
|
isResizingColumn: false,
|
|
161
151
|
startOffset: null,
|
|
162
152
|
startSize: null,
|
|
@@ -165,7 +155,6 @@ const ColumnSizing = {
|
|
|
165
155
|
columnSizingStart: []
|
|
166
156
|
}));
|
|
167
157
|
};
|
|
168
|
-
|
|
169
158
|
const mouseEvents = {
|
|
170
159
|
moveHandler: e => onMove(e.clientX),
|
|
171
160
|
upHandler: e => {
|
|
@@ -174,16 +163,38 @@ const ColumnSizing = {
|
|
|
174
163
|
onEnd(e.clientX);
|
|
175
164
|
}
|
|
176
165
|
};
|
|
166
|
+
const touchEvents = {
|
|
167
|
+
moveHandler: e => {
|
|
168
|
+
if (e.cancelable) {
|
|
169
|
+
e.preventDefault();
|
|
170
|
+
e.stopPropagation();
|
|
171
|
+
}
|
|
172
|
+
onMove(e.touches[0].clientX);
|
|
173
|
+
return false;
|
|
174
|
+
},
|
|
175
|
+
upHandler: e => {
|
|
176
|
+
var _e$touches$;
|
|
177
|
+
document.removeEventListener('touchmove', touchEvents.moveHandler);
|
|
178
|
+
document.removeEventListener('touchend', touchEvents.upHandler);
|
|
179
|
+
if (e.cancelable) {
|
|
180
|
+
e.preventDefault();
|
|
181
|
+
e.stopPropagation();
|
|
182
|
+
}
|
|
183
|
+
onEnd((_e$touches$ = e.touches[0]) == null ? void 0 : _e$touches$.clientX);
|
|
184
|
+
}
|
|
185
|
+
};
|
|
177
186
|
const passiveIfSupported = passiveEventSupported() ? {
|
|
178
187
|
passive: false
|
|
179
188
|
} : false;
|
|
180
|
-
|
|
181
|
-
|
|
189
|
+
if (isTouchStartEvent(e)) {
|
|
190
|
+
document.addEventListener('touchmove', touchEvents.moveHandler, passiveIfSupported);
|
|
191
|
+
document.addEventListener('touchend', touchEvents.upHandler, passiveIfSupported);
|
|
192
|
+
} else {
|
|
182
193
|
document.addEventListener('mousemove', mouseEvents.moveHandler, passiveIfSupported);
|
|
183
194
|
document.addEventListener('mouseup', mouseEvents.upHandler, passiveIfSupported);
|
|
184
195
|
}
|
|
185
|
-
|
|
186
|
-
|
|
196
|
+
table.setColumnSizingInfo(old => ({
|
|
197
|
+
...old,
|
|
187
198
|
startOffset: clientX,
|
|
188
199
|
startSize,
|
|
189
200
|
deltaOffset: 0,
|
|
@@ -207,28 +218,24 @@ const ColumnSizing = {
|
|
|
207
218
|
},
|
|
208
219
|
getTotalSize: () => {
|
|
209
220
|
var _table$getHeaderGroup;
|
|
210
|
-
|
|
211
221
|
return ((_table$getHeaderGroup = table.getHeaderGroups()[0]) == null ? void 0 : _table$getHeaderGroup.headers.reduce((sum, header) => {
|
|
212
222
|
return sum + header.getSize();
|
|
213
223
|
}, 0)) ?? 0;
|
|
214
224
|
},
|
|
215
225
|
getLeftTotalSize: () => {
|
|
216
226
|
var _table$getLeftHeaderG;
|
|
217
|
-
|
|
218
227
|
return ((_table$getLeftHeaderG = table.getLeftHeaderGroups()[0]) == null ? void 0 : _table$getLeftHeaderG.headers.reduce((sum, header) => {
|
|
219
228
|
return sum + header.getSize();
|
|
220
229
|
}, 0)) ?? 0;
|
|
221
230
|
},
|
|
222
231
|
getCenterTotalSize: () => {
|
|
223
232
|
var _table$getCenterHeade;
|
|
224
|
-
|
|
225
233
|
return ((_table$getCenterHeade = table.getCenterHeaderGroups()[0]) == null ? void 0 : _table$getCenterHeade.headers.reduce((sum, header) => {
|
|
226
234
|
return sum + header.getSize();
|
|
227
235
|
}, 0)) ?? 0;
|
|
228
236
|
},
|
|
229
237
|
getRightTotalSize: () => {
|
|
230
238
|
var _table$getRightHeader;
|
|
231
|
-
|
|
232
239
|
return ((_table$getRightHeader = table.getRightHeaderGroups()[0]) == null ? void 0 : _table$getRightHeader.headers.reduce((sum, header) => {
|
|
233
240
|
return sum + header.getSize();
|
|
234
241
|
}, 0)) ?? 0;
|
|
@@ -240,28 +247,22 @@ let passiveSupported = null;
|
|
|
240
247
|
function passiveEventSupported() {
|
|
241
248
|
if (typeof passiveSupported === 'boolean') return passiveSupported;
|
|
242
249
|
let supported = false;
|
|
243
|
-
|
|
244
250
|
try {
|
|
245
251
|
const options = {
|
|
246
252
|
get passive() {
|
|
247
253
|
supported = true;
|
|
248
254
|
return false;
|
|
249
255
|
}
|
|
250
|
-
|
|
251
256
|
};
|
|
252
|
-
|
|
253
257
|
const noop = () => {};
|
|
254
|
-
|
|
255
258
|
window.addEventListener('test', noop, options);
|
|
256
259
|
window.removeEventListener('test', noop);
|
|
257
260
|
} catch (err) {
|
|
258
261
|
supported = false;
|
|
259
262
|
}
|
|
260
|
-
|
|
261
263
|
passiveSupported = supported;
|
|
262
264
|
return passiveSupported;
|
|
263
265
|
}
|
|
264
|
-
|
|
265
266
|
function isTouchStartEvent(e) {
|
|
266
267
|
return e.type === 'touchstart';
|
|
267
268
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnSizing.js","sources":["../../../src/features/ColumnSizing.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { RowData, Column, Header, OnChangeFn, Table, Updater } from '../types'\nimport { makeStateUpdater } from '../utils'\nimport { ColumnPinningPosition } from './Pinning'\n\n//\n\nexport type ColumnSizingTableState = {\n columnSizing: ColumnSizingState\n columnSizingInfo: ColumnSizingInfoState\n}\n\nexport type ColumnSizingState = Record<string, number>\n\nexport type ColumnSizingInfoState = {\n startOffset: null | number\n startSize: null | number\n deltaOffset: null | number\n deltaPercentage: null | number\n isResizingColumn: false | string\n columnSizingStart: [string, number][]\n}\n\nexport type ColumnResizeMode = 'onChange' | 'onEnd'\n\nexport type ColumnSizingOptions = {\n enableColumnResizing?: boolean\n columnResizeMode?: ColumnResizeMode\n onColumnSizingChange?: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingDefaultOptions = {\n columnResizeMode: ColumnResizeMode\n onColumnSizingChange: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingInstance = {\n setColumnSizing: (updater: Updater<ColumnSizingState>) => void\n setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void\n resetColumnSizing: (defaultState?: boolean) => void\n resetHeaderSizeInfo: (defaultState?: boolean) => void\n getTotalSize: () => number\n getLeftTotalSize: () => number\n getCenterTotalSize: () => number\n getRightTotalSize: () => number\n}\n\nexport type ColumnSizingColumnDef = {\n enableResizing?: boolean\n size?: number\n minSize?: number\n maxSize?: number\n}\n\nexport type ColumnSizingColumn = {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getCanResize: () => boolean\n getIsResizing: () => boolean\n resetSize: () => void\n}\n\nexport type ColumnSizingHeader = {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getResizeHandler: () => (event: unknown) => void\n}\n\n//\n\nexport const defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER,\n}\n\nconst getDefaultColumnSizingInfoState = (): ColumnSizingInfoState => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n})\n\nexport const ColumnSizing: TableFeature = {\n getDefaultColumnDef: (): ColumnSizingColumnDef => {\n return defaultColumnSizing\n },\n getInitialState: (state): ColumnSizingTableState => {\n return {\n columnSizing: {},\n columnSizingInfo: getDefaultColumnSizingInfoState(),\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnSizingDefaultOptions => {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): ColumnSizingColumn => {\n return {\n getSize: () => {\n const columnSize = table.getState().columnSizing[column.id]\n\n return Math.min(\n Math.max(\n column.columnDef.minSize ?? defaultColumnSizing.minSize,\n columnSize ?? column.columnDef.size ?? defaultColumnSizing.size\n ),\n column.columnDef.maxSize ?? defaultColumnSizing.maxSize\n )\n },\n getStart: position => {\n const columns = !position\n ? table.getVisibleLeafColumns()\n : position === 'left'\n ? table.getLeftVisibleLeafColumns()\n : table.getRightVisibleLeafColumns()\n\n const index = columns.findIndex(d => d.id === column.id)\n\n if (index > 0) {\n const prevSiblingColumn = columns[index - 1]!\n\n return (\n prevSiblingColumn.getStart(position) + prevSiblingColumn.getSize()\n )\n }\n\n return 0\n },\n resetSize: () => {\n table.setColumnSizing(({ [column.id]: _, ...rest }) => {\n return rest\n })\n },\n getCanResize: () => {\n return (\n (column.columnDef.enableResizing ?? true) &&\n (table.options.enableColumnResizing ?? true)\n )\n },\n getIsResizing: () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id\n },\n }\n },\n\n createHeader: <TData extends RowData, TValue>(\n header: Header<TData, TValue>,\n table: Table<TData>\n ): ColumnSizingHeader => {\n return {\n getSize: () => {\n let sum = 0\n\n const recurse = (header: Header<TData, TValue>) => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse)\n } else {\n sum += header.column.getSize() ?? 0\n }\n }\n\n recurse(header)\n\n return sum\n },\n getStart: () => {\n if (header.index > 0) {\n const prevSiblingHeader =\n header.headerGroup.headers[header.index - 1]!\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize()\n }\n\n return 0\n },\n getResizeHandler: () => {\n const column = table.getColumn(header.column.id)\n const canResize = column.getCanResize()\n\n return (e: unknown) => {\n if (!canResize) {\n return\n }\n\n ;(e as any).persist?.()\n\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return\n }\n }\n\n const startSize = header.getSize()\n\n const columnSizingStart: [string, number][] = header\n ? header\n .getLeafHeaders()\n .map(d => [d.column.id, d.column.getSize()])\n : [[column.id, column.getSize()]]\n\n const clientX = isTouchStartEvent(e)\n ? Math.round(e.touches[0]!.clientX)\n : (e as MouseEvent).clientX\n\n const updateOffset = (\n eventType: 'move' | 'end',\n clientXPos?: number\n ) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n let newColumnSizing: ColumnSizingState = {}\n\n table.setColumnSizingInfo(old => {\n const deltaOffset = clientXPos - (old?.startOffset ?? 0)\n const deltaPercentage = Math.max(\n deltaOffset / (old?.startSize ?? 0),\n -0.999999\n )\n\n old.columnSizingStart.forEach(([columnId, headerSize]) => {\n newColumnSizing[columnId] =\n Math.round(\n Math.max(headerSize + headerSize * deltaPercentage, 0) * 100\n ) / 100\n })\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (\n table.options.columnResizeMode === 'onChange' ||\n eventType === 'end'\n ) {\n table.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing,\n }))\n }\n }\n\n const onMove = (clientXPos?: number) =>\n updateOffset('move', clientXPos)\n\n const onEnd = (clientXPos?: number) => {\n updateOffset('end', clientXPos)\n\n table.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n }\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n document.removeEventListener('mousemove', mouseEvents.moveHandler)\n document.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (e: TouchEvent) => {\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onMove(e.touches[0]!.clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n document.removeEventListener('touchmove', touchEvents.moveHandler)\n document.removeEventListener('touchend', touchEvents.upHandler)\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0]!.clientX)\n },\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(e)) {\n } else {\n document.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported\n )\n }\n\n table.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id,\n }))\n }\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnSizingInstance => {\n return {\n setColumnSizing: updater => table.options.onColumnSizingChange?.(updater),\n setColumnSizingInfo: updater =>\n table.options.onColumnSizingInfoChange?.(updater),\n resetColumnSizing: defaultState => {\n table.setColumnSizing(\n defaultState ? {} : table.initialState.columnSizing ?? {}\n )\n },\n resetHeaderSizeInfo: defaultState => {\n table.setColumnSizingInfo(\n defaultState\n ? getDefaultColumnSizingInfoState()\n : table.initialState.columnSizingInfo ??\n getDefaultColumnSizingInfoState()\n )\n },\n getTotalSize: () =>\n table.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getLeftTotalSize: () =>\n table.getLeftHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getCenterTotalSize: () =>\n table.getCenterHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getRightTotalSize: () =>\n table.getRightHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n }\n },\n}\n\nlet passiveSupported: boolean | null = null\nexport function passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n const noop = () => {}\n\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\nfunction isTouchStartEvent(e: unknown): e is TouchEvent {\n return (e as TouchEvent).type === 'touchstart'\n}\n"],"names":["defaultColumnSizing","size","minSize","maxSize","Number","MAX_SAFE_INTEGER","getDefaultColumnSizingInfoState","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","ColumnSizing","getDefaultColumnDef","getInitialState","state","columnSizing","columnSizingInfo","getDefaultOptions","table","columnResizeMode","onColumnSizingChange","makeStateUpdater","onColumnSizingInfoChange","createColumn","column","getSize","columnSize","getState","id","Math","min","max","columnDef","getStart","position","columns","getVisibleLeafColumns","getLeftVisibleLeafColumns","getRightVisibleLeafColumns","index","findIndex","d","prevSiblingColumn","resetSize","setColumnSizing","_","rest","getCanResize","enableResizing","options","enableColumnResizing","getIsResizing","createHeader","header","sum","recurse","subHeaders","length","forEach","prevSiblingHeader","headerGroup","headers","getResizeHandler","getColumn","canResize","e","persist","isTouchStartEvent","touches","getLeafHeaders","map","clientX","round","updateOffset","eventType","clientXPos","newColumnSizing","setColumnSizingInfo","old","columnId","headerSize","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","passiveIfSupported","passiveEventSupported","passive","addEventListener","createTable","updater","resetColumnSizing","defaultState","initialState","resetHeaderSizeInfo","getTotalSize","getHeaderGroups","reduce","getLeftTotalSize","getLeftHeaderGroups","getCenterTotalSize","getCenterHeaderGroups","getRightTotalSize","getRightHeaderGroups","passiveSupported","supported","noop","window","err","type"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ColumnSizing.js","sources":["../../../src/features/ColumnSizing.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport { RowData, Column, Header, OnChangeFn, Table, Updater } from '../types'\nimport { makeStateUpdater } from '../utils'\nimport { ColumnPinningPosition } from './Pinning'\n\n//\n\nexport type ColumnSizingTableState = {\n columnSizing: ColumnSizingState\n columnSizingInfo: ColumnSizingInfoState\n}\n\nexport type ColumnSizingState = Record<string, number>\n\nexport type ColumnSizingInfoState = {\n startOffset: null | number\n startSize: null | number\n deltaOffset: null | number\n deltaPercentage: null | number\n isResizingColumn: false | string\n columnSizingStart: [string, number][]\n}\n\nexport type ColumnResizeMode = 'onChange' | 'onEnd'\n\nexport type ColumnSizingOptions = {\n enableColumnResizing?: boolean\n columnResizeMode?: ColumnResizeMode\n onColumnSizingChange?: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange?: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingDefaultOptions = {\n columnResizeMode: ColumnResizeMode\n onColumnSizingChange: OnChangeFn<ColumnSizingState>\n onColumnSizingInfoChange: OnChangeFn<ColumnSizingInfoState>\n}\n\nexport type ColumnSizingInstance = {\n setColumnSizing: (updater: Updater<ColumnSizingState>) => void\n setColumnSizingInfo: (updater: Updater<ColumnSizingInfoState>) => void\n resetColumnSizing: (defaultState?: boolean) => void\n resetHeaderSizeInfo: (defaultState?: boolean) => void\n getTotalSize: () => number\n getLeftTotalSize: () => number\n getCenterTotalSize: () => number\n getRightTotalSize: () => number\n}\n\nexport type ColumnSizingColumnDef = {\n enableResizing?: boolean\n size?: number\n minSize?: number\n maxSize?: number\n}\n\nexport type ColumnSizingColumn = {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getCanResize: () => boolean\n getIsResizing: () => boolean\n resetSize: () => void\n}\n\nexport type ColumnSizingHeader = {\n getSize: () => number\n getStart: (position?: ColumnPinningPosition) => number\n getResizeHandler: () => (event: unknown) => void\n}\n\n//\n\nexport const defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER,\n}\n\nconst getDefaultColumnSizingInfoState = (): ColumnSizingInfoState => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: [],\n})\n\nexport const ColumnSizing: TableFeature = {\n getDefaultColumnDef: (): ColumnSizingColumnDef => {\n return defaultColumnSizing\n },\n getInitialState: (state): ColumnSizingTableState => {\n return {\n columnSizing: {},\n columnSizingInfo: getDefaultColumnSizingInfoState(),\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ColumnSizingDefaultOptions => {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table),\n }\n },\n\n createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): ColumnSizingColumn => {\n return {\n getSize: () => {\n const columnSize = table.getState().columnSizing[column.id]\n\n return Math.min(\n Math.max(\n column.columnDef.minSize ?? defaultColumnSizing.minSize,\n columnSize ?? column.columnDef.size ?? defaultColumnSizing.size\n ),\n column.columnDef.maxSize ?? defaultColumnSizing.maxSize\n )\n },\n getStart: position => {\n const columns = !position\n ? table.getVisibleLeafColumns()\n : position === 'left'\n ? table.getLeftVisibleLeafColumns()\n : table.getRightVisibleLeafColumns()\n\n const index = columns.findIndex(d => d.id === column.id)\n\n if (index > 0) {\n const prevSiblingColumn = columns[index - 1]!\n\n return (\n prevSiblingColumn.getStart(position) + prevSiblingColumn.getSize()\n )\n }\n\n return 0\n },\n resetSize: () => {\n table.setColumnSizing(({ [column.id]: _, ...rest }) => {\n return rest\n })\n },\n getCanResize: () => {\n return (\n (column.columnDef.enableResizing ?? true) &&\n (table.options.enableColumnResizing ?? true)\n )\n },\n getIsResizing: () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id\n },\n }\n },\n\n createHeader: <TData extends RowData, TValue>(\n header: Header<TData, TValue>,\n table: Table<TData>\n ): ColumnSizingHeader => {\n return {\n getSize: () => {\n let sum = 0\n\n const recurse = (header: Header<TData, TValue>) => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse)\n } else {\n sum += header.column.getSize() ?? 0\n }\n }\n\n recurse(header)\n\n return sum\n },\n getStart: () => {\n if (header.index > 0) {\n const prevSiblingHeader =\n header.headerGroup.headers[header.index - 1]!\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize()\n }\n\n return 0\n },\n getResizeHandler: () => {\n const column = table.getColumn(header.column.id)\n const canResize = column.getCanResize()\n\n return (e: unknown) => {\n if (!canResize) {\n return\n }\n\n ;(e as any).persist?.()\n\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return\n }\n }\n\n const startSize = header.getSize()\n\n const columnSizingStart: [string, number][] = header\n ? header\n .getLeafHeaders()\n .map(d => [d.column.id, d.column.getSize()])\n : [[column.id, column.getSize()]]\n\n const clientX = isTouchStartEvent(e)\n ? Math.round(e.touches[0]!.clientX)\n : (e as MouseEvent).clientX\n\n const updateOffset = (\n eventType: 'move' | 'end',\n clientXPos?: number\n ) => {\n if (typeof clientXPos !== 'number') {\n return\n }\n\n let newColumnSizing: ColumnSizingState = {}\n\n table.setColumnSizingInfo(old => {\n const deltaOffset = clientXPos - (old?.startOffset ?? 0)\n const deltaPercentage = Math.max(\n deltaOffset / (old?.startSize ?? 0),\n -0.999999\n )\n\n old.columnSizingStart.forEach(([columnId, headerSize]) => {\n newColumnSizing[columnId] =\n Math.round(\n Math.max(headerSize + headerSize * deltaPercentage, 0) * 100\n ) / 100\n })\n\n return {\n ...old,\n deltaOffset,\n deltaPercentage,\n }\n })\n\n if (\n table.options.columnResizeMode === 'onChange' ||\n eventType === 'end'\n ) {\n table.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing,\n }))\n }\n }\n\n const onMove = (clientXPos?: number) =>\n updateOffset('move', clientXPos)\n\n const onEnd = (clientXPos?: number) => {\n updateOffset('end', clientXPos)\n\n table.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: [],\n }))\n }\n\n const mouseEvents = {\n moveHandler: (e: MouseEvent) => onMove(e.clientX),\n upHandler: (e: MouseEvent) => {\n document.removeEventListener('mousemove', mouseEvents.moveHandler)\n document.removeEventListener('mouseup', mouseEvents.upHandler)\n onEnd(e.clientX)\n },\n }\n\n const touchEvents = {\n moveHandler: (e: TouchEvent) => {\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onMove(e.touches[0]!.clientX)\n return false\n },\n upHandler: (e: TouchEvent) => {\n document.removeEventListener('touchmove', touchEvents.moveHandler)\n document.removeEventListener('touchend', touchEvents.upHandler)\n if (e.cancelable) {\n e.preventDefault()\n e.stopPropagation()\n }\n onEnd(e.touches[0]?.clientX)\n },\n }\n\n const passiveIfSupported = passiveEventSupported()\n ? { passive: false }\n : false\n\n if (isTouchStartEvent(e)) {\n document.addEventListener(\n 'touchmove',\n touchEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'touchend',\n touchEvents.upHandler,\n passiveIfSupported\n )\n } else {\n document.addEventListener(\n 'mousemove',\n mouseEvents.moveHandler,\n passiveIfSupported\n )\n document.addEventListener(\n 'mouseup',\n mouseEvents.upHandler,\n passiveIfSupported\n )\n }\n\n table.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id,\n }))\n }\n },\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ColumnSizingInstance => {\n return {\n setColumnSizing: updater => table.options.onColumnSizingChange?.(updater),\n setColumnSizingInfo: updater =>\n table.options.onColumnSizingInfoChange?.(updater),\n resetColumnSizing: defaultState => {\n table.setColumnSizing(\n defaultState ? {} : table.initialState.columnSizing ?? {}\n )\n },\n resetHeaderSizeInfo: defaultState => {\n table.setColumnSizingInfo(\n defaultState\n ? getDefaultColumnSizingInfoState()\n : table.initialState.columnSizingInfo ??\n getDefaultColumnSizingInfoState()\n )\n },\n getTotalSize: () =>\n table.getHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getLeftTotalSize: () =>\n table.getLeftHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getCenterTotalSize: () =>\n table.getCenterHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n getRightTotalSize: () =>\n table.getRightHeaderGroups()[0]?.headers.reduce((sum, header) => {\n return sum + header.getSize()\n }, 0) ?? 0,\n }\n },\n}\n\nlet passiveSupported: boolean | null = null\nexport function passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported\n\n let supported = false\n try {\n const options = {\n get passive() {\n supported = true\n return false\n },\n }\n\n const noop = () => {}\n\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop)\n } catch (err) {\n supported = false\n }\n passiveSupported = supported\n return passiveSupported\n}\n\nfunction isTouchStartEvent(e: unknown): e is TouchEvent {\n return (e as TouchEvent).type === 'touchstart'\n}\n"],"names":["defaultColumnSizing","size","minSize","maxSize","Number","MAX_SAFE_INTEGER","getDefaultColumnSizingInfoState","startOffset","startSize","deltaOffset","deltaPercentage","isResizingColumn","columnSizingStart","ColumnSizing","getDefaultColumnDef","getInitialState","state","columnSizing","columnSizingInfo","getDefaultOptions","table","columnResizeMode","onColumnSizingChange","makeStateUpdater","onColumnSizingInfoChange","createColumn","column","getSize","columnSize","getState","id","Math","min","max","columnDef","getStart","position","columns","getVisibleLeafColumns","getLeftVisibleLeafColumns","getRightVisibleLeafColumns","index","findIndex","d","prevSiblingColumn","resetSize","setColumnSizing","_","rest","getCanResize","enableResizing","options","enableColumnResizing","getIsResizing","createHeader","header","sum","recurse","subHeaders","length","forEach","prevSiblingHeader","headerGroup","headers","getResizeHandler","getColumn","canResize","e","persist","isTouchStartEvent","touches","getLeafHeaders","map","clientX","round","updateOffset","eventType","clientXPos","newColumnSizing","setColumnSizingInfo","old","columnId","headerSize","onMove","onEnd","mouseEvents","moveHandler","upHandler","document","removeEventListener","touchEvents","cancelable","preventDefault","stopPropagation","passiveIfSupported","passiveEventSupported","passive","addEventListener","createTable","updater","resetColumnSizing","defaultState","initialState","resetHeaderSizeInfo","getTotalSize","getHeaderGroups","reduce","getLeftTotalSize","getLeftHeaderGroups","getCenterTotalSize","getCenterHeaderGroups","getRightTotalSize","getRightHeaderGroups","passiveSupported","supported","noop","window","err","type"],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
15
15
|
var utils = require('../utils.js');
|
|
16
16
|
|
|
17
17
|
//
|
|
18
|
+
|
|
18
19
|
const Expanding = {
|
|
19
20
|
getInitialState: state => {
|
|
20
21
|
return {
|
|
@@ -37,14 +38,11 @@ const Expanding = {
|
|
|
37
38
|
table._queue(() => {
|
|
38
39
|
registered = true;
|
|
39
40
|
});
|
|
40
|
-
|
|
41
41
|
return;
|
|
42
42
|
}
|
|
43
|
-
|
|
44
43
|
if (table.options.autoResetAll ?? table.options.autoResetExpanded ?? !table.options.manualExpanding) {
|
|
45
44
|
if (queued) return;
|
|
46
45
|
queued = true;
|
|
47
|
-
|
|
48
46
|
table._queue(() => {
|
|
49
47
|
table.resetExpanded();
|
|
50
48
|
queued = false;
|
|
@@ -61,7 +59,6 @@ const Expanding = {
|
|
|
61
59
|
},
|
|
62
60
|
resetExpanded: defaultState => {
|
|
63
61
|
var _table$initialState;
|
|
64
|
-
|
|
65
62
|
table.setExpanded(defaultState ? {} : ((_table$initialState = table.initialState) == null ? void 0 : _table$initialState.expanded) ?? {});
|
|
66
63
|
},
|
|
67
64
|
getCanSomeRowsExpand: () => {
|
|
@@ -78,22 +75,22 @@ const Expanding = {
|
|
|
78
75
|
return expanded === true || Object.values(expanded).some(Boolean);
|
|
79
76
|
},
|
|
80
77
|
getIsAllRowsExpanded: () => {
|
|
81
|
-
const expanded = table.getState().expanded;
|
|
78
|
+
const expanded = table.getState().expanded;
|
|
82
79
|
|
|
80
|
+
// If expanded is true, save some cycles and return true
|
|
83
81
|
if (typeof expanded === 'boolean') {
|
|
84
82
|
return expanded === true;
|
|
85
83
|
}
|
|
86
|
-
|
|
87
84
|
if (!Object.keys(expanded).length) {
|
|
88
85
|
return false;
|
|
89
|
-
}
|
|
90
|
-
|
|
86
|
+
}
|
|
91
87
|
|
|
88
|
+
// If any row is not expanded, return false
|
|
92
89
|
if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {
|
|
93
90
|
return false;
|
|
94
|
-
}
|
|
95
|
-
|
|
91
|
+
}
|
|
96
92
|
|
|
93
|
+
// They must all be expanded :shrug:
|
|
97
94
|
return true;
|
|
98
95
|
},
|
|
99
96
|
getExpandedDepth: () => {
|
|
@@ -110,11 +107,9 @@ const Expanding = {
|
|
|
110
107
|
if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {
|
|
111
108
|
table._getExpandedRowModel = table.options.getExpandedRowModel(table);
|
|
112
109
|
}
|
|
113
|
-
|
|
114
110
|
if (table.options.manualExpanding || !table._getExpandedRowModel) {
|
|
115
111
|
return table.getPreExpandedRowModel();
|
|
116
112
|
}
|
|
117
|
-
|
|
118
113
|
return table._getExpandedRowModel();
|
|
119
114
|
}
|
|
120
115
|
};
|
|
@@ -125,7 +120,6 @@ const Expanding = {
|
|
|
125
120
|
table.setExpanded(old => {
|
|
126
121
|
const exists = old === true ? true : !!(old != null && old[row.id]);
|
|
127
122
|
let oldExpanded = {};
|
|
128
|
-
|
|
129
123
|
if (old === true) {
|
|
130
124
|
Object.keys(table.getRowModel().rowsById).forEach(rowId => {
|
|
131
125
|
oldExpanded[rowId] = true;
|
|
@@ -133,15 +127,13 @@ const Expanding = {
|
|
|
133
127
|
} else {
|
|
134
128
|
oldExpanded = old;
|
|
135
129
|
}
|
|
136
|
-
|
|
137
130
|
expanded = expanded ?? !exists;
|
|
138
|
-
|
|
139
131
|
if (!exists && expanded) {
|
|
140
|
-
return {
|
|
132
|
+
return {
|
|
133
|
+
...oldExpanded,
|
|
141
134
|
[row.id]: true
|
|
142
135
|
};
|
|
143
136
|
}
|
|
144
|
-
|
|
145
137
|
if (exists && !expanded) {
|
|
146
138
|
const {
|
|
147
139
|
[row.id]: _,
|
|
@@ -149,7 +141,6 @@ const Expanding = {
|
|
|
149
141
|
} = oldExpanded;
|
|
150
142
|
return rest;
|
|
151
143
|
}
|
|
152
|
-
|
|
153
144
|
return old;
|
|
154
145
|
});
|
|
155
146
|
},
|
|
@@ -159,7 +150,6 @@ const Expanding = {
|
|
|
159
150
|
},
|
|
160
151
|
getCanExpand: () => {
|
|
161
152
|
var _row$subRows;
|
|
162
|
-
|
|
163
153
|
return (table.options.getRowCanExpand == null ? void 0 : table.options.getRowCanExpand(row)) ?? ((table.options.enableExpanding ?? true) && !!((_row$subRows = row.subRows) != null && _row$subRows.length));
|
|
164
154
|
},
|
|
165
155
|
getToggleExpandedHandler: () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, Row, Updater, RowData } from '../types'\nimport { makeStateUpdater } from '../utils'\n\nexport type ExpandedStateList = Record<string, boolean>\nexport type ExpandedState = true | Record<string, boolean>\nexport type ExpandedTableState = {\n expanded: ExpandedState\n}\n\nexport type ExpandedRow = {\n toggleExpanded: (expanded?: boolean) => void\n getIsExpanded: () => boolean\n getCanExpand: () => boolean\n getToggleExpandedHandler: () => () => void\n}\n\nexport type ExpandedOptions<TData extends RowData> = {\n manualExpanding?: boolean\n onExpandedChange?: OnChangeFn<ExpandedState>\n autoResetExpanded?: boolean\n enableExpanding?: boolean\n getExpandedRowModel?: (table: Table<any>) => () => RowModel<any>\n getIsRowExpanded?: (row: Row<TData>) => boolean\n getRowCanExpand?: (row: Row<TData>) => boolean\n paginateExpandedRows?: boolean\n}\n\nexport type ExpandedInstance<TData extends RowData> = {\n _autoResetExpanded: () => void\n setExpanded: (updater: Updater<ExpandedState>) => void\n toggleAllRowsExpanded: (expanded?: boolean) => void\n resetExpanded: (defaultState?: boolean) => void\n getCanSomeRowsExpand: () => boolean\n getToggleAllRowsExpandedHandler: () => (event: unknown) => void\n getIsSomeRowsExpanded: () => boolean\n getIsAllRowsExpanded: () => boolean\n getExpandedDepth: () => number\n getExpandedRowModel: () => RowModel<TData>\n _getExpandedRowModel?: () => RowModel<TData>\n getPreExpandedRowModel: () => RowModel<TData>\n}\n\n//\n\nexport const Expanding: TableFeature = {\n getInitialState: (state): ExpandedTableState => {\n return {\n expanded: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ExpandedOptions<TData> => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true,\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ExpandedInstance<TData> => {\n let registered = false\n let queued = false\n\n return {\n _autoResetExpanded: () => {\n if (!registered) {\n table._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n table.options.autoResetAll ??\n table.options.autoResetExpanded ??\n !table.options.manualExpanding\n ) {\n if (queued) return\n queued = true\n table._queue(() => {\n table.resetExpanded()\n queued = false\n })\n }\n },\n setExpanded: updater => table.options.onExpandedChange?.(updater),\n toggleAllRowsExpanded: expanded => {\n if (expanded ?? !table.getIsAllRowsExpanded()) {\n table.setExpanded(true)\n } else {\n table.setExpanded({})\n }\n },\n resetExpanded: defaultState => {\n table.setExpanded(\n defaultState ? {} : table.initialState?.expanded ?? {}\n )\n },\n getCanSomeRowsExpand: () => {\n return table.getRowModel().flatRows.some(row => row.getCanExpand())\n },\n getToggleAllRowsExpandedHandler: () => {\n return (e: unknown) => {\n ;(e as any).persist?.()\n table.toggleAllRowsExpanded()\n }\n },\n getIsSomeRowsExpanded: () => {\n const expanded = table.getState().expanded\n return expanded === true || Object.values(expanded).some(Boolean)\n },\n getIsAllRowsExpanded: () => {\n const expanded = table.getState().expanded\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true\n }\n\n if (!Object.keys(expanded).length) {\n return false\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n },\n getExpandedDepth: () => {\n let maxDepth = 0\n\n const rowIds =\n table.getState().expanded === true\n ? Object.keys(table.getRowModel().rowsById)\n : Object.keys(table.getState().expanded)\n\n rowIds.forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n },\n getPreExpandedRowModel: () => table.getSortedRowModel(),\n getExpandedRowModel: () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table)\n }\n\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel()\n }\n\n return table._getExpandedRowModel()\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): ExpandedRow => {\n return {\n toggleExpanded: expanded => {\n table.setExpanded(old => {\n const exists = old === true ? true : !!old?.[row.id]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [row.id]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n },\n getIsExpanded: () => {\n const expanded = table.getState().expanded\n\n return !!(\n table.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded?.[row.id])\n )\n },\n getCanExpand: () => {\n return (\n table.options.getRowCanExpand?.(row) ??\n ((table.options.enableExpanding ?? true) && !!row.subRows?.length)\n )\n },\n getToggleExpandedHandler: () => {\n const canExpand = row.getCanExpand()\n\n return () => {\n if (!canExpand) return\n row.toggleExpanded()\n }\n },\n }\n },\n}\n"],"names":["Expanding","getInitialState","state","expanded","getDefaultOptions","table","onExpandedChange","makeStateUpdater","paginateExpandedRows","createTable","registered","queued","_autoResetExpanded","_queue","options","autoResetAll","autoResetExpanded","manualExpanding","resetExpanded","setExpanded","updater","toggleAllRowsExpanded","getIsAllRowsExpanded","defaultState","initialState","getCanSomeRowsExpand","getRowModel","flatRows","some","row","getCanExpand","getToggleAllRowsExpandedHandler","e","persist","getIsSomeRowsExpanded","getState","Object","values","Boolean","keys","length","getIsExpanded","getExpandedDepth","maxDepth","rowIds","rowsById","forEach","id","splitId","split","Math","max","getPreExpandedRowModel","getSortedRowModel","getExpandedRowModel","_getExpandedRowModel","createRow","toggleExpanded","old","exists","oldExpanded","rowId","_","rest","getIsRowExpanded","getRowCanExpand","enableExpanding","subRows","getToggleExpandedHandler","canExpand"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, Row, Updater, RowData } from '../types'\nimport { makeStateUpdater } from '../utils'\n\nexport type ExpandedStateList = Record<string, boolean>\nexport type ExpandedState = true | Record<string, boolean>\nexport type ExpandedTableState = {\n expanded: ExpandedState\n}\n\nexport type ExpandedRow = {\n toggleExpanded: (expanded?: boolean) => void\n getIsExpanded: () => boolean\n getCanExpand: () => boolean\n getToggleExpandedHandler: () => () => void\n}\n\nexport type ExpandedOptions<TData extends RowData> = {\n manualExpanding?: boolean\n onExpandedChange?: OnChangeFn<ExpandedState>\n autoResetExpanded?: boolean\n enableExpanding?: boolean\n getExpandedRowModel?: (table: Table<any>) => () => RowModel<any>\n getIsRowExpanded?: (row: Row<TData>) => boolean\n getRowCanExpand?: (row: Row<TData>) => boolean\n paginateExpandedRows?: boolean\n}\n\nexport type ExpandedInstance<TData extends RowData> = {\n _autoResetExpanded: () => void\n setExpanded: (updater: Updater<ExpandedState>) => void\n toggleAllRowsExpanded: (expanded?: boolean) => void\n resetExpanded: (defaultState?: boolean) => void\n getCanSomeRowsExpand: () => boolean\n getToggleAllRowsExpandedHandler: () => (event: unknown) => void\n getIsSomeRowsExpanded: () => boolean\n getIsAllRowsExpanded: () => boolean\n getExpandedDepth: () => number\n getExpandedRowModel: () => RowModel<TData>\n _getExpandedRowModel?: () => RowModel<TData>\n getPreExpandedRowModel: () => RowModel<TData>\n}\n\n//\n\nexport const Expanding: TableFeature = {\n getInitialState: (state): ExpandedTableState => {\n return {\n expanded: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ExpandedOptions<TData> => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true,\n }\n },\n\n createTable: <TData extends RowData>(\n table: Table<TData>\n ): ExpandedInstance<TData> => {\n let registered = false\n let queued = false\n\n return {\n _autoResetExpanded: () => {\n if (!registered) {\n table._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n table.options.autoResetAll ??\n table.options.autoResetExpanded ??\n !table.options.manualExpanding\n ) {\n if (queued) return\n queued = true\n table._queue(() => {\n table.resetExpanded()\n queued = false\n })\n }\n },\n setExpanded: updater => table.options.onExpandedChange?.(updater),\n toggleAllRowsExpanded: expanded => {\n if (expanded ?? !table.getIsAllRowsExpanded()) {\n table.setExpanded(true)\n } else {\n table.setExpanded({})\n }\n },\n resetExpanded: defaultState => {\n table.setExpanded(\n defaultState ? {} : table.initialState?.expanded ?? {}\n )\n },\n getCanSomeRowsExpand: () => {\n return table.getRowModel().flatRows.some(row => row.getCanExpand())\n },\n getToggleAllRowsExpandedHandler: () => {\n return (e: unknown) => {\n ;(e as any).persist?.()\n table.toggleAllRowsExpanded()\n }\n },\n getIsSomeRowsExpanded: () => {\n const expanded = table.getState().expanded\n return expanded === true || Object.values(expanded).some(Boolean)\n },\n getIsAllRowsExpanded: () => {\n const expanded = table.getState().expanded\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true\n }\n\n if (!Object.keys(expanded).length) {\n return false\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n },\n getExpandedDepth: () => {\n let maxDepth = 0\n\n const rowIds =\n table.getState().expanded === true\n ? Object.keys(table.getRowModel().rowsById)\n : Object.keys(table.getState().expanded)\n\n rowIds.forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n },\n getPreExpandedRowModel: () => table.getSortedRowModel(),\n getExpandedRowModel: () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table)\n }\n\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel()\n }\n\n return table._getExpandedRowModel()\n },\n }\n },\n\n createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): ExpandedRow => {\n return {\n toggleExpanded: expanded => {\n table.setExpanded(old => {\n const exists = old === true ? true : !!old?.[row.id]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [row.id]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n },\n getIsExpanded: () => {\n const expanded = table.getState().expanded\n\n return !!(\n table.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded?.[row.id])\n )\n },\n getCanExpand: () => {\n return (\n table.options.getRowCanExpand?.(row) ??\n ((table.options.enableExpanding ?? true) && !!row.subRows?.length)\n )\n },\n getToggleExpandedHandler: () => {\n const canExpand = row.getCanExpand()\n\n return () => {\n if (!canExpand) return\n row.toggleExpanded()\n }\n },\n }\n },\n}\n"],"names":["Expanding","getInitialState","state","expanded","getDefaultOptions","table","onExpandedChange","makeStateUpdater","paginateExpandedRows","createTable","registered","queued","_autoResetExpanded","_queue","options","autoResetAll","autoResetExpanded","manualExpanding","resetExpanded","setExpanded","updater","toggleAllRowsExpanded","getIsAllRowsExpanded","defaultState","initialState","getCanSomeRowsExpand","getRowModel","flatRows","some","row","getCanExpand","getToggleAllRowsExpandedHandler","e","persist","getIsSomeRowsExpanded","getState","Object","values","Boolean","keys","length","getIsExpanded","getExpandedDepth","maxDepth","rowIds","rowsById","forEach","id","splitId","split","Math","max","getPreExpandedRowModel","getSortedRowModel","getExpandedRowModel","_getExpandedRowModel","createRow","toggleExpanded","old","exists","oldExpanded","rowId","_","rest","getIsRowExpanded","getRowCanExpand","enableExpanding","subRows","getToggleExpandedHandler","canExpand"],"mappings":";;;;;;;;;;;;;;;;AA4CA;;AAEO,MAAMA,SAAuB,GAAG;EACrCC,eAAe,EAAGC,KAAK,IAAyB;IAC9C,OAAO;MACLC,QAAQ,EAAE,EAAE;MACZ,GAAGD,KAAAA;KACJ,CAAA;GACF;EAEDE,iBAAiB,EACfC,KAAmB,IACQ;IAC3B,OAAO;AACLC,MAAAA,gBAAgB,EAAEC,sBAAgB,CAAC,UAAU,EAAEF,KAAK,CAAC;AACrDG,MAAAA,oBAAoB,EAAE,IAAA;KACvB,CAAA;GACF;EAEDC,WAAW,EACTJ,KAAmB,IACS;IAC5B,IAAIK,UAAU,GAAG,KAAK,CAAA;IACtB,IAAIC,MAAM,GAAG,KAAK,CAAA;IAElB,OAAO;AACLC,MAAAA,kBAAkB,EAAE,MAAM;QACxB,IAAI,CAACF,UAAU,EAAE;UACfL,KAAK,CAACQ,MAAM,CAAC,MAAM;AACjBH,YAAAA,UAAU,GAAG,IAAI,CAAA;AACnB,WAAC,CAAC,CAAA;AACF,UAAA,OAAA;AACF,SAAA;AAEA,QAAA,IACEL,KAAK,CAACS,OAAO,CAACC,YAAY,IAC1BV,KAAK,CAACS,OAAO,CAACE,iBAAiB,IAC/B,CAACX,KAAK,CAACS,OAAO,CAACG,eAAe,EAC9B;AACA,UAAA,IAAIN,MAAM,EAAE,OAAA;AACZA,UAAAA,MAAM,GAAG,IAAI,CAAA;UACbN,KAAK,CAACQ,MAAM,CAAC,MAAM;YACjBR,KAAK,CAACa,aAAa,EAAE,CAAA;AACrBP,YAAAA,MAAM,GAAG,KAAK,CAAA;AAChB,WAAC,CAAC,CAAA;AACJ,SAAA;OACD;AACDQ,MAAAA,WAAW,EAAEC,OAAO,IAAIf,KAAK,CAACS,OAAO,CAACR,gBAAgB,IAA9BD,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAACS,OAAO,CAACR,gBAAgB,CAAGc,OAAO,CAAC;MACjEC,qBAAqB,EAAElB,QAAQ,IAAI;AACjC,QAAA,IAAIA,QAAQ,IAAI,CAACE,KAAK,CAACiB,oBAAoB,EAAE,EAAE;AAC7CjB,UAAAA,KAAK,CAACc,WAAW,CAAC,IAAI,CAAC,CAAA;AACzB,SAAC,MAAM;AACLd,UAAAA,KAAK,CAACc,WAAW,CAAC,EAAE,CAAC,CAAA;AACvB,SAAA;OACD;MACDD,aAAa,EAAEK,YAAY,IAAI;AAAA,QAAA,IAAA,mBAAA,CAAA;AAC7BlB,QAAAA,KAAK,CAACc,WAAW,CACfI,YAAY,GAAG,EAAE,GAAG,CAAA,CAAA,mBAAA,GAAAlB,KAAK,CAACmB,YAAY,KAAlB,IAAA,GAAA,KAAA,CAAA,GAAA,mBAAA,CAAoBrB,QAAQ,KAAI,EAAE,CACvD,CAAA;OACF;AACDsB,MAAAA,oBAAoB,EAAE,MAAM;AAC1B,QAAA,OAAOpB,KAAK,CAACqB,WAAW,EAAE,CAACC,QAAQ,CAACC,IAAI,CAACC,GAAG,IAAIA,GAAG,CAACC,YAAY,EAAE,CAAC,CAAA;OACpE;AACDC,MAAAA,+BAA+B,EAAE,MAAM;AACrC,QAAA,OAAQC,CAAU,IAAK;AACnBA,UAAAA,CAAC,CAASC,OAAO,IAAA,IAAA,GAAA,KAAA,CAAA,GAAjBD,CAAC,CAASC,OAAO,EAAI,CAAA;UACvB5B,KAAK,CAACgB,qBAAqB,EAAE,CAAA;SAC9B,CAAA;OACF;AACDa,MAAAA,qBAAqB,EAAE,MAAM;AAC3B,QAAA,MAAM/B,QAAQ,GAAGE,KAAK,CAAC8B,QAAQ,EAAE,CAAChC,QAAQ,CAAA;AAC1C,QAAA,OAAOA,QAAQ,KAAK,IAAI,IAAIiC,MAAM,CAACC,MAAM,CAAClC,QAAQ,CAAC,CAACyB,IAAI,CAACU,OAAO,CAAC,CAAA;OAClE;AACDhB,MAAAA,oBAAoB,EAAE,MAAM;AAC1B,QAAA,MAAMnB,QAAQ,GAAGE,KAAK,CAAC8B,QAAQ,EAAE,CAAChC,QAAQ,CAAA;;AAE1C;AACA,QAAA,IAAI,OAAOA,QAAQ,KAAK,SAAS,EAAE;UACjC,OAAOA,QAAQ,KAAK,IAAI,CAAA;AAC1B,SAAA;QAEA,IAAI,CAACiC,MAAM,CAACG,IAAI,CAACpC,QAAQ,CAAC,CAACqC,MAAM,EAAE;AACjC,UAAA,OAAO,KAAK,CAAA;AACd,SAAA;;AAEA;AACA,QAAA,IAAInC,KAAK,CAACqB,WAAW,EAAE,CAACC,QAAQ,CAACC,IAAI,CAACC,GAAG,IAAI,CAACA,GAAG,CAACY,aAAa,EAAE,CAAC,EAAE;AAClE,UAAA,OAAO,KAAK,CAAA;AACd,SAAA;;AAEA;AACA,QAAA,OAAO,IAAI,CAAA;OACZ;AACDC,MAAAA,gBAAgB,EAAE,MAAM;QACtB,IAAIC,QAAQ,GAAG,CAAC,CAAA;AAEhB,QAAA,MAAMC,MAAM,GACVvC,KAAK,CAAC8B,QAAQ,EAAE,CAAChC,QAAQ,KAAK,IAAI,GAC9BiC,MAAM,CAACG,IAAI,CAAClC,KAAK,CAACqB,WAAW,EAAE,CAACmB,QAAQ,CAAC,GACzCT,MAAM,CAACG,IAAI,CAAClC,KAAK,CAAC8B,QAAQ,EAAE,CAAChC,QAAQ,CAAC,CAAA;AAE5CyC,QAAAA,MAAM,CAACE,OAAO,CAACC,EAAE,IAAI;AACnB,UAAA,MAAMC,OAAO,GAAGD,EAAE,CAACE,KAAK,CAAC,GAAG,CAAC,CAAA;UAC7BN,QAAQ,GAAGO,IAAI,CAACC,GAAG,CAACR,QAAQ,EAAEK,OAAO,CAACR,MAAM,CAAC,CAAA;AAC/C,SAAC,CAAC,CAAA;AAEF,QAAA,OAAOG,QAAQ,CAAA;OAChB;AACDS,MAAAA,sBAAsB,EAAE,MAAM/C,KAAK,CAACgD,iBAAiB,EAAE;AACvDC,MAAAA,mBAAmB,EAAE,MAAM;QACzB,IAAI,CAACjD,KAAK,CAACkD,oBAAoB,IAAIlD,KAAK,CAACS,OAAO,CAACwC,mBAAmB,EAAE;UACpEjD,KAAK,CAACkD,oBAAoB,GAAGlD,KAAK,CAACS,OAAO,CAACwC,mBAAmB,CAACjD,KAAK,CAAC,CAAA;AACvE,SAAA;QAEA,IAAIA,KAAK,CAACS,OAAO,CAACG,eAAe,IAAI,CAACZ,KAAK,CAACkD,oBAAoB,EAAE;UAChE,OAAOlD,KAAK,CAAC+C,sBAAsB,EAAE,CAAA;AACvC,SAAA;QAEA,OAAO/C,KAAK,CAACkD,oBAAoB,EAAE,CAAA;AACrC,OAAA;KACD,CAAA;GACF;AAEDC,EAAAA,SAAS,EAAE,CACT3B,GAAe,EACfxB,KAAmB,KACH;IAChB,OAAO;MACLoD,cAAc,EAAEtD,QAAQ,IAAI;AAC1BE,QAAAA,KAAK,CAACc,WAAW,CAACuC,GAAG,IAAI;AACvB,UAAA,MAAMC,MAAM,GAAGD,GAAG,KAAK,IAAI,GAAG,IAAI,GAAG,CAAC,EAACA,GAAG,IAAHA,IAAAA,IAAAA,GAAG,CAAG7B,GAAG,CAACkB,EAAE,CAAC,CAAA,CAAA;UAEpD,IAAIa,WAA8B,GAAG,EAAE,CAAA;UAEvC,IAAIF,GAAG,KAAK,IAAI,EAAE;AAChBtB,YAAAA,MAAM,CAACG,IAAI,CAAClC,KAAK,CAACqB,WAAW,EAAE,CAACmB,QAAQ,CAAC,CAACC,OAAO,CAACe,KAAK,IAAI;AACzDD,cAAAA,WAAW,CAACC,KAAK,CAAC,GAAG,IAAI,CAAA;AAC3B,aAAC,CAAC,CAAA;AACJ,WAAC,MAAM;AACLD,YAAAA,WAAW,GAAGF,GAAG,CAAA;AACnB,WAAA;AAEAvD,UAAAA,QAAQ,GAAGA,QAAQ,IAAI,CAACwD,MAAM,CAAA;AAE9B,UAAA,IAAI,CAACA,MAAM,IAAIxD,QAAQ,EAAE;YACvB,OAAO;AACL,cAAA,GAAGyD,WAAW;cACd,CAAC/B,GAAG,CAACkB,EAAE,GAAG,IAAA;aACX,CAAA;AACH,WAAA;AAEA,UAAA,IAAIY,MAAM,IAAI,CAACxD,QAAQ,EAAE;YACvB,MAAM;AAAE,cAAA,CAAC0B,GAAG,CAACkB,EAAE,GAAGe,CAAC;cAAE,GAAGC,IAAAA;AAAK,aAAC,GAAGH,WAAW,CAAA;AAC5C,YAAA,OAAOG,IAAI,CAAA;AACb,WAAA;AAEA,UAAA,OAAOL,GAAG,CAAA;AACZ,SAAC,CAAC,CAAA;OACH;AACDjB,MAAAA,aAAa,EAAE,MAAM;AACnB,QAAA,MAAMtC,QAAQ,GAAGE,KAAK,CAAC8B,QAAQ,EAAE,CAAChC,QAAQ,CAAA;AAE1C,QAAA,OAAO,CAAC,EACN,CAAAE,KAAK,CAACS,OAAO,CAACkD,gBAAgB,IAA9B3D,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAACS,OAAO,CAACkD,gBAAgB,CAAGnC,GAAG,CAAC,MACpC1B,QAAQ,KAAK,IAAI,IAAIA,QAAQ,IAAA,IAAA,IAARA,QAAQ,CAAG0B,GAAG,CAACkB,EAAE,CAAC,CAAC,CAC1C,CAAA;OACF;AACDjB,MAAAA,YAAY,EAAE,MAAM;AAAA,QAAA,IAAA,YAAA,CAAA;AAClB,QAAA,OACE,CAAAzB,KAAK,CAACS,OAAO,CAACmD,eAAe,IAAA,IAAA,GAAA,KAAA,CAAA,GAA7B5D,KAAK,CAACS,OAAO,CAACmD,eAAe,CAAGpC,GAAG,CAAC,MACnC,CAACxB,KAAK,CAACS,OAAO,CAACoD,eAAe,IAAI,IAAI,KAAK,CAAC,EAAA,CAAA,YAAA,GAACrC,GAAG,CAACsC,OAAO,KAAX,IAAA,IAAA,YAAA,CAAa3B,MAAM,CAAC,CAAA,CAAA;OAErE;AACD4B,MAAAA,wBAAwB,EAAE,MAAM;AAC9B,QAAA,MAAMC,SAAS,GAAGxC,GAAG,CAACC,YAAY,EAAE,CAAA;AAEpC,QAAA,OAAO,MAAM;UACX,IAAI,CAACuC,SAAS,EAAE,OAAA;UAChBxC,GAAG,CAAC4B,cAAc,EAAE,CAAA;SACrB,CAAA;AACH,OAAA;KACD,CAAA;AACH,GAAA;AACF;;;;"}
|