beautiful-grid 1.0.11 → 1.0.13
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/README.md +153 -117
- package/cjs/BGrid.js +193 -39
- package/cjs/components/Table.js +37 -2
- package/cjs/components/TableBodyCell.js +2 -1
- package/cjs/components/TableBodyRow.js +5 -1
- package/cjs/components/TreeCell.js +88 -0
- package/cjs/components/TreeContext.js +42 -0
- package/cjs/utils/exportCsv.js +129 -0
- package/cjs/utils/exportData.js +230 -0
- package/cjs/utils/exportExcel.js +317 -0
- package/cjs/utils/index.js +4 -0
- package/cjs/utils/treeData.js +205 -0
- package/esm/BGrid.js +221 -66
- package/esm/components/Table.js +36 -4
- package/esm/components/TableBodyCell.js +2 -1
- package/esm/components/TableBodyRow.js +5 -1
- package/esm/components/TreeCell.js +49 -0
- package/esm/components/TreeContext.js +5 -0
- package/esm/utils/exportCsv.js +97 -0
- package/esm/utils/exportData.js +154 -0
- package/esm/utils/exportExcel.js +246 -0
- package/esm/utils/index.js +4 -0
- package/esm/utils/treeData.js +174 -0
- package/package.json +1 -1
- package/style.css +125 -43
- package/types/BGrid.d.ts +1 -1
- package/types/components/Table.d.ts +3 -1
- package/types/components/TableBodyCell.d.ts +2 -2
- package/types/components/TreeCell.d.ts +9 -0
- package/types/components/TreeContext.d.ts +16 -0
- package/types/types.d.ts +121 -2
- package/types/utils/exportCsv.d.ts +5 -0
- package/types/utils/exportData.d.ts +16 -0
- package/types/utils/exportExcel.d.ts +5 -0
- package/types/utils/index.d.ts +4 -0
- package/types/utils/treeData.d.ts +22 -0
package/cjs/BGrid.js
CHANGED
|
@@ -77,6 +77,7 @@ var React = __importStar(require("react"));
|
|
|
77
77
|
var Table_1 = __importDefault(require("./components/Table"));
|
|
78
78
|
var utils_1 = require("./utils");
|
|
79
79
|
var store_1 = require("./store");
|
|
80
|
+
var TreeContext_1 = require("./components/TreeContext");
|
|
80
81
|
function computeModelColumns(columns, frozenColumnIndex, duplicateToolboxColumnIds) {
|
|
81
82
|
var left = 0;
|
|
82
83
|
var previousWidth = 0;
|
|
@@ -91,8 +92,13 @@ function computeModelColumns(columns, frozenColumnIndex, duplicateToolboxColumnI
|
|
|
91
92
|
});
|
|
92
93
|
}
|
|
93
94
|
function BGrid(_a) {
|
|
94
|
-
var _b, _c, _d;
|
|
95
|
-
var ref = _a.ref, width = _a.width, height = _a.height,
|
|
95
|
+
var _b, _c, _d, _e;
|
|
96
|
+
var ref = _a.ref, width = _a.width, height = _a.height, _f = _a.headerHeight, headerHeight = _f === void 0 ? 30 : _f, footerHeight = _a.footerHeight, _g = _a.summaryHeight, summaryHeight = _g === void 0 ? 30 : _g, _h = _a.itemHeight, itemHeight = _h === void 0 ? 15 : _h, _j = _a.itemPadding, itemPadding = _j === void 0 ? 7 : _j, getRowHeight = _a.getRowHeight, columns = _a.columns, columnsGroup = _a.columnsGroup, columnGroups = _a.columnGroups, onChangeColumns = _a.onChangeColumns, _k = _a.frozenColumnIndex, frozenColumnIndex = _k === void 0 ? 0 : _k, _l = _a.frozenRowCount, frozenRowCount = _l === void 0 ? 0 : _l, _m = _a.data, data = _m === void 0 ? [] : _m, page = _a.page, scrollbar = _a.scrollbar, status = _a.status, pagination = _a.pagination, bottomBarHeight = _a.bottomBarHeight, _o = _a.scrollTop, scrollTop = _o === void 0 ? 0 : _o, _p = _a.scrollLeft, scrollLeft = _p === void 0 ? 0 : _p, className = _a.className, style = _a.style, rowChecked = _a.rowChecked, sort = _a.sort, onClick = _a.onClick, _q = _a.loading, loading = _q === void 0 ? false : _q, spinning = _a.spinning, disabled = _a.disabled, rowKey = _a.rowKey, selectedRowKey = _a.selectedRowKey, editable = _a.editable, onChangeData = _a.onChangeData, showLineNumber = _a.showLineNumber, msg = _a.msg, getRowClassName = _a.getRowClassName, _r = _a.editTrigger, editTrigger = _r === void 0 ? 'dblclick' : _r, cellMergeOptions = _a.cellMergeOptions, cellSelectionOptions = _a.cellSelectionOptions, cellNavigationOptions = _a.cellNavigationOptions, variant = _a.variant, summary = _a.summary, columnSortable = _a.columnSortable, reorder = _a.reorder, pivot = _a.pivot, dataControl = _a.dataControl, icons = _a.icons, columnVisibility = _a.columnVisibility, searchOptions = _a.searchOptions, contextMenuOptions = _a.contextMenuOptions, tree = _a.tree;
|
|
97
|
+
var _s = __read(React.useState(function () {
|
|
98
|
+
var _a;
|
|
99
|
+
return __spreadArray([], __read(((_a = tree === null || tree === void 0 ? void 0 : tree.defaultExpandedRowKeys) !== null && _a !== void 0 ? _a : [])), false);
|
|
100
|
+
}), 2), uncontrolledExpandedRowKeys = _s[0], setUncontrolledExpandedRowKeys = _s[1];
|
|
101
|
+
var expandedRowKeys = (_b = tree === null || tree === void 0 ? void 0 : tree.expandedRowKeys) !== null && _b !== void 0 ? _b : uncontrolledExpandedRowKeys;
|
|
96
102
|
var warnedSearchControlledRef = React.useRef({
|
|
97
103
|
open: false,
|
|
98
104
|
query: false,
|
|
@@ -106,10 +112,10 @@ function BGrid(_a) {
|
|
|
106
112
|
});
|
|
107
113
|
}, [data, pivot]);
|
|
108
114
|
var pivotEnabled = !!pivotData;
|
|
109
|
-
var resolvedColumns = ((
|
|
115
|
+
var resolvedColumns = ((_c = pivotData === null || pivotData === void 0 ? void 0 : pivotData.columns) !== null && _c !== void 0 ? _c : columns);
|
|
110
116
|
var visibilityOptions = typeof columnVisibility === 'object' ? columnVisibility : undefined;
|
|
111
117
|
var visibilityEnabled = columnVisibility === true || (visibilityOptions !== undefined && visibilityOptions.enabled !== false);
|
|
112
|
-
var
|
|
118
|
+
var _t = __read(React.useState(function () { var _a; return Array.from(new Set((_a = visibilityOptions === null || visibilityOptions === void 0 ? void 0 : visibilityOptions.defaultHiddenColumnIds) !== null && _a !== void 0 ? _a : [])); }), 2), uncontrolledHiddenColumnIds = _t[0], setUncontrolledHiddenColumnIds = _t[1];
|
|
113
119
|
var hiddenColumnIds = React.useMemo(function () {
|
|
114
120
|
var _a;
|
|
115
121
|
if (!visibilityEnabled)
|
|
@@ -145,7 +151,7 @@ function BGrid(_a) {
|
|
|
145
151
|
resolvedColumnsGroup,
|
|
146
152
|
summary,
|
|
147
153
|
]);
|
|
148
|
-
var resolvedData = (
|
|
154
|
+
var resolvedData = (_d = pivotData === null || pivotData === void 0 ? void 0 : pivotData.data) !== null && _d !== void 0 ? _d : data;
|
|
149
155
|
var resolvedPage = pivotEnabled ? undefined : page;
|
|
150
156
|
var resolvedFrozenColumnIndex = visibilityProjection.frozenColumnIndex;
|
|
151
157
|
var resolvedRowChecked = pivotEnabled ? undefined : rowChecked;
|
|
@@ -153,13 +159,15 @@ function BGrid(_a) {
|
|
|
153
159
|
var resolvedDisabled = !!disabled;
|
|
154
160
|
var resolvedOnClick = pivotEnabled || resolvedDisabled ? undefined : onClick;
|
|
155
161
|
var baseOnChangeColumns = pivotEnabled ? undefined : onChangeColumns;
|
|
156
|
-
var
|
|
162
|
+
var baseOnChangeData = pivotEnabled ? undefined : onChangeData;
|
|
157
163
|
var resolvedRowKey = pivotEnabled ? undefined : rowKey;
|
|
158
164
|
var resolvedSelectedRowKey = pivotEnabled ? undefined : selectedRowKey;
|
|
159
165
|
var resolvedEditable = pivotEnabled || resolvedDisabled ? false : editable;
|
|
160
166
|
var resolvedShowLineNumber = pivotEnabled ? false : showLineNumber;
|
|
161
167
|
var resolvedGetRowClassName = pivotEnabled ? undefined : getRowClassName;
|
|
162
|
-
var
|
|
168
|
+
var requestedTreeEnabled = !!tree && tree.enabled !== false;
|
|
169
|
+
var treeEnabled = requestedTreeEnabled && !pivotEnabled && resolvedRowKey !== undefined;
|
|
170
|
+
var resolvedCellMergeOptions = treeEnabled ? undefined : visibilityProjection.cellMergeOptions;
|
|
163
171
|
var resolvedCellSelectionOptions = resolvedDisabled
|
|
164
172
|
? __assign(__assign({}, cellSelectionOptions), { enabled: false }) : cellSelectionOptions;
|
|
165
173
|
var resolvedSummary = visibilityProjection.summary;
|
|
@@ -171,11 +179,11 @@ function BGrid(_a) {
|
|
|
171
179
|
var hasActiveClientQuery = (resolvedDataControl === null || resolvedDataControl === void 0 ? void 0 : resolvedDataControl.mode) === 'client' &&
|
|
172
180
|
(resolvedDataControl.query.sortParams.length > 0 || resolvedDataControl.query.filterParams.length > 0);
|
|
173
181
|
var resolvedReorder = React.useMemo(function () {
|
|
174
|
-
return pivotEnabled || resolvedDisabled
|
|
182
|
+
return pivotEnabled || resolvedDisabled || treeEnabled
|
|
175
183
|
? undefined
|
|
176
184
|
: (hasActiveClientQuery || frozenRowCount > 0) && reorder
|
|
177
185
|
? __assign(__assign({}, reorder), { enabled: false }) : reorder;
|
|
178
|
-
}, [frozenRowCount, hasActiveClientQuery, pivotEnabled, reorder, resolvedDisabled]);
|
|
186
|
+
}, [frozenRowCount, hasActiveClientQuery, pivotEnabled, reorder, resolvedDisabled, treeEnabled]);
|
|
179
187
|
// Development warnings
|
|
180
188
|
React.useEffect(function () {
|
|
181
189
|
var _a, _b;
|
|
@@ -205,6 +213,18 @@ function BGrid(_a) {
|
|
|
205
213
|
warnedSearchControlledRef.current.pivotContextMenu = true;
|
|
206
214
|
console.warn('[BGrid] contextMenuOptions is disabled while pivot mode is active.');
|
|
207
215
|
}
|
|
216
|
+
if (requestedTreeEnabled && rowKey === undefined) {
|
|
217
|
+
console.warn('[BGrid] tree requires rowKey. Falling back to flat rows.');
|
|
218
|
+
}
|
|
219
|
+
if (pivotEnabled && requestedTreeEnabled) {
|
|
220
|
+
console.warn('[BGrid] tree is disabled while pivot mode is active.');
|
|
221
|
+
}
|
|
222
|
+
if (treeEnabled && cellMergeOptions) {
|
|
223
|
+
console.warn('[BGrid] cellMergeOptions is disabled while tree mode is active.');
|
|
224
|
+
}
|
|
225
|
+
if (treeEnabled && (reorder === null || reorder === void 0 ? void 0 : reorder.enabled)) {
|
|
226
|
+
console.warn('[BGrid] Row reordering is disabled while tree mode is active.');
|
|
227
|
+
}
|
|
208
228
|
if (hasHiddenColumns && columnSortable) {
|
|
209
229
|
console.warn('[BGrid] Column reordering is disabled while columns are hidden.');
|
|
210
230
|
}
|
|
@@ -241,6 +261,10 @@ function BGrid(_a) {
|
|
|
241
261
|
hasHiddenColumns,
|
|
242
262
|
visibilityOptions === null || visibilityOptions === void 0 ? void 0 : visibilityOptions.hiddenColumnIds,
|
|
243
263
|
visibilityOptions === null || visibilityOptions === void 0 ? void 0 : visibilityOptions.onChange,
|
|
264
|
+
cellMergeOptions,
|
|
265
|
+
requestedTreeEnabled,
|
|
266
|
+
rowKey,
|
|
267
|
+
treeEnabled,
|
|
244
268
|
]);
|
|
245
269
|
var duplicateToolboxColumnIds = React.useMemo(function () {
|
|
246
270
|
var duplicates = (0, utils_1.findDuplicateColumnIds)(resolvedColumns, true);
|
|
@@ -296,9 +320,33 @@ function BGrid(_a) {
|
|
|
296
320
|
resolvedColumns,
|
|
297
321
|
visibilityEnabled,
|
|
298
322
|
]);
|
|
323
|
+
var resolvedTreeColumnId = React.useMemo(function () {
|
|
324
|
+
if (!treeEnabled || visibilityProjection.columns.length === 0)
|
|
325
|
+
return undefined;
|
|
326
|
+
var requestedId = tree === null || tree === void 0 ? void 0 : tree.treeColumnId;
|
|
327
|
+
return requestedId &&
|
|
328
|
+
visibilityProjection.columns.some(function (column) { return (0, utils_1.getColumnId)(column) === requestedId; })
|
|
329
|
+
? requestedId
|
|
330
|
+
: (0, utils_1.getColumnId)(visibilityProjection.columns[0]);
|
|
331
|
+
}, [tree === null || tree === void 0 ? void 0 : tree.treeColumnId, treeEnabled, visibilityProjection.columns]);
|
|
299
332
|
var computedColumns = React.useMemo(function () {
|
|
300
|
-
|
|
301
|
-
|
|
333
|
+
var columns = computeModelColumns(visibilityProjection.columns, resolvedFrozenColumnIndex, duplicateToolboxColumnIds);
|
|
334
|
+
if (!resolvedTreeColumnId)
|
|
335
|
+
return columns;
|
|
336
|
+
return columns.map(function (column) { return (column.columnId === resolvedTreeColumnId ? __assign(__assign({}, column), { treeCell: true }) : column); });
|
|
337
|
+
}, [duplicateToolboxColumnIds, resolvedFrozenColumnIndex, resolvedTreeColumnId, visibilityProjection.columns]);
|
|
338
|
+
var warnedTreeColumnIdRef = React.useRef(undefined);
|
|
339
|
+
React.useEffect(function () {
|
|
340
|
+
if (process.env.NODE_ENV === 'production' ||
|
|
341
|
+
!treeEnabled ||
|
|
342
|
+
!(tree === null || tree === void 0 ? void 0 : tree.treeColumnId) ||
|
|
343
|
+
tree.treeColumnId === resolvedTreeColumnId ||
|
|
344
|
+
warnedTreeColumnIdRef.current === tree.treeColumnId) {
|
|
345
|
+
return;
|
|
346
|
+
}
|
|
347
|
+
warnedTreeColumnIdRef.current = tree.treeColumnId;
|
|
348
|
+
console.warn("[BGrid] tree.treeColumnId \"".concat(tree.treeColumnId, "\" is not visible. Falling back to the first visible column."));
|
|
349
|
+
}, [resolvedTreeColumnId, tree === null || tree === void 0 ? void 0 : tree.treeColumnId, treeEnabled]);
|
|
302
350
|
var queryColumns = React.useMemo(function () { return computeModelColumns(resolvedColumns, pivotEnabled ? 0 : frozenColumnIndex, duplicateToolboxColumnIds); }, [duplicateToolboxColumnIds, frozenColumnIndex, pivotEnabled, resolvedColumns]);
|
|
303
351
|
var projectedOnChangeColumns = React.useCallback(function (visibleColumnIndex, info) {
|
|
304
352
|
var _a;
|
|
@@ -376,8 +424,9 @@ function BGrid(_a) {
|
|
|
376
424
|
filterParams: [],
|
|
377
425
|
};
|
|
378
426
|
}, [resolvedDataControl, resolvedSort]);
|
|
379
|
-
//
|
|
380
|
-
|
|
427
|
+
// Apply the existing client query first. Tree mode uses its result as sibling order
|
|
428
|
+
// and as the direct-match set, then restores the hierarchy during projection.
|
|
429
|
+
var queryProcessedResult = React.useMemo(function () {
|
|
381
430
|
if ((resolvedDataControl === null || resolvedDataControl === void 0 ? void 0 : resolvedDataControl.mode) === 'client') {
|
|
382
431
|
return (0, utils_1.processDataQuery)({
|
|
383
432
|
data: resolvedData,
|
|
@@ -394,7 +443,109 @@ function BGrid(_a) {
|
|
|
394
443
|
visibleIndexBySourceIndex: undefined,
|
|
395
444
|
};
|
|
396
445
|
}, [queryColumns, resolvedData, resolvedDataControl === null || resolvedDataControl === void 0 ? void 0 : resolvedDataControl.mode, resolvedDataQuery, resolvedRowKey]);
|
|
446
|
+
var treeProjection = React.useMemo(function () {
|
|
447
|
+
if (!treeEnabled || !tree || resolvedRowKey === undefined)
|
|
448
|
+
return undefined;
|
|
449
|
+
var clientQuery = (resolvedDataControl === null || resolvedDataControl === void 0 ? void 0 : resolvedDataControl.mode) === 'client';
|
|
450
|
+
return (0, utils_1.projectTreeData)({
|
|
451
|
+
data: resolvedData,
|
|
452
|
+
rowKey: resolvedRowKey,
|
|
453
|
+
parentRowKey: tree.parentRowKey,
|
|
454
|
+
expandedRowKeys: expandedRowKeys,
|
|
455
|
+
includedSourceIndexes: clientQuery && resolvedDataQuery.filterParams.length > 0
|
|
456
|
+
? queryProcessedResult.sourceIndexByVisibleIndex
|
|
457
|
+
: undefined,
|
|
458
|
+
orderedSourceIndexes: clientQuery && resolvedDataQuery.sortParams.length > 0
|
|
459
|
+
? queryProcessedResult.sourceIndexByVisibleIndex
|
|
460
|
+
: undefined,
|
|
461
|
+
});
|
|
462
|
+
}, [
|
|
463
|
+
expandedRowKeys,
|
|
464
|
+
queryProcessedResult.sourceIndexByVisibleIndex,
|
|
465
|
+
resolvedData,
|
|
466
|
+
resolvedDataControl === null || resolvedDataControl === void 0 ? void 0 : resolvedDataControl.mode,
|
|
467
|
+
resolvedDataQuery.filterParams.length,
|
|
468
|
+
resolvedDataQuery.sortParams.length,
|
|
469
|
+
resolvedRowKey,
|
|
470
|
+
tree,
|
|
471
|
+
treeEnabled,
|
|
472
|
+
]);
|
|
473
|
+
React.useEffect(function () {
|
|
474
|
+
if (process.env.NODE_ENV === 'production' || !treeProjection || treeProjection.valid)
|
|
475
|
+
return;
|
|
476
|
+
console.warn("[BGrid] Invalid tree data (".concat(treeProjection.diagnostics.join(', '), "). Falling back to flat rows."));
|
|
477
|
+
}, [treeProjection]);
|
|
478
|
+
var resolvedTreeProjection = (treeProjection === null || treeProjection === void 0 ? void 0 : treeProjection.valid) ? treeProjection : undefined;
|
|
479
|
+
var processedResult = resolvedTreeProjection
|
|
480
|
+
? {
|
|
481
|
+
rows: [],
|
|
482
|
+
data: resolvedTreeProjection.data,
|
|
483
|
+
sourceIndexByVisibleIndex: resolvedTreeProjection.sourceIndexByVisibleIndex,
|
|
484
|
+
visibleIndexBySourceIndex: resolvedTreeProjection.visibleIndexBySourceIndex,
|
|
485
|
+
}
|
|
486
|
+
: queryProcessedResult;
|
|
397
487
|
var displayData = processedResult.data;
|
|
488
|
+
var resolvedOnChangeData = React.useMemo(function () {
|
|
489
|
+
if (!baseOnChangeData)
|
|
490
|
+
return undefined;
|
|
491
|
+
if (!resolvedTreeProjection)
|
|
492
|
+
return baseOnChangeData;
|
|
493
|
+
return function (index, columnIndex, item, column, meta) {
|
|
494
|
+
var treeMeta = resolvedTreeProjection.metaBySourceIndex.get(index);
|
|
495
|
+
if (!meta || !treeMeta) {
|
|
496
|
+
baseOnChangeData(index, columnIndex, item, column, meta);
|
|
497
|
+
return;
|
|
498
|
+
}
|
|
499
|
+
baseOnChangeData(index, columnIndex, item, column, __assign(__assign({}, meta), { tree: {
|
|
500
|
+
rowKey: treeMeta.rowKey,
|
|
501
|
+
parentRowKey: treeMeta.parentRowKey,
|
|
502
|
+
sourceIndex: treeMeta.sourceIndex,
|
|
503
|
+
depth: treeMeta.depth,
|
|
504
|
+
path: (0, utils_1.getTreeRowPath)(resolvedTreeProjection.metaBySourceIndex, index),
|
|
505
|
+
} }));
|
|
506
|
+
};
|
|
507
|
+
}, [baseOnChangeData, resolvedTreeProjection]);
|
|
508
|
+
var toggleTreeRow = React.useCallback(function (meta) {
|
|
509
|
+
var _a;
|
|
510
|
+
if (resolvedDisabled || !tree || !meta.hasChildren)
|
|
511
|
+
return;
|
|
512
|
+
var nextExpanded = meta.expanded
|
|
513
|
+
? expandedRowKeys.filter(function (key) { return !Object.is(key, meta.rowKey); })
|
|
514
|
+
: expandedRowKeys.some(function (key) { return Object.is(key, meta.rowKey); })
|
|
515
|
+
? __spreadArray([], __read(expandedRowKeys), false) : __spreadArray(__spreadArray([], __read(expandedRowKeys), false), [meta.rowKey], false);
|
|
516
|
+
if (tree.expandedRowKeys === undefined)
|
|
517
|
+
setUncontrolledExpandedRowKeys(nextExpanded);
|
|
518
|
+
var item = resolvedData[meta.sourceIndex];
|
|
519
|
+
if (item) {
|
|
520
|
+
(_a = tree.onExpandedRowKeysChange) === null || _a === void 0 ? void 0 : _a.call(tree, nextExpanded, {
|
|
521
|
+
rowKey: meta.rowKey,
|
|
522
|
+
expanded: !meta.expanded,
|
|
523
|
+
item: item,
|
|
524
|
+
sourceIndex: meta.sourceIndex,
|
|
525
|
+
});
|
|
526
|
+
}
|
|
527
|
+
}, [expandedRowKeys, resolvedData, resolvedDisabled, tree]);
|
|
528
|
+
var treeContextValue = React.useMemo(function () {
|
|
529
|
+
var _a, _b, _c;
|
|
530
|
+
if (!resolvedTreeProjection || !resolvedTreeColumnId || resolvedRowKey === undefined || !tree)
|
|
531
|
+
return undefined;
|
|
532
|
+
var indentSize = Number.isFinite(tree.indentSize) && ((_a = tree.indentSize) !== null && _a !== void 0 ? _a : -1) >= 0 ? tree.indentSize : 16;
|
|
533
|
+
return {
|
|
534
|
+
treeColumnId: resolvedTreeColumnId,
|
|
535
|
+
indentSize: indentSize,
|
|
536
|
+
icons: tree.icons,
|
|
537
|
+
expandAriaLabel: (_b = tree.expandAriaLabel) !== null && _b !== void 0 ? _b : 'Expand row',
|
|
538
|
+
collapseAriaLabel: (_c = tree.collapseAriaLabel) !== null && _c !== void 0 ? _c : 'Collapse row',
|
|
539
|
+
disabled: resolvedDisabled,
|
|
540
|
+
metaByRowKey: resolvedTreeProjection.metaByRowKey,
|
|
541
|
+
metaBySourceIndex: resolvedTreeProjection.metaBySourceIndex,
|
|
542
|
+
getRowKey: function (values) {
|
|
543
|
+
var key = (0, utils_1.getCellValueByRowKey)(resolvedRowKey, values);
|
|
544
|
+
return key === undefined || key === null ? undefined : key;
|
|
545
|
+
},
|
|
546
|
+
toggle: toggleTreeRow,
|
|
547
|
+
};
|
|
548
|
+
}, [resolvedDisabled, resolvedRowKey, resolvedTreeColumnId, resolvedTreeProjection, toggleTreeRow, tree]);
|
|
398
549
|
var rowHeightMetrics = React.useMemo(function () { return (0, utils_1.createRowHeightMetrics)(displayData, itemHeight + itemPadding * 2, getRowHeight); }, [displayData, getRowHeight, itemHeight, itemPadding]);
|
|
399
550
|
var resolvedFrozenRowCount = pivotEnabled
|
|
400
551
|
? 0
|
|
@@ -443,7 +594,7 @@ function BGrid(_a) {
|
|
|
443
594
|
var resolvedStatus = React.useMemo(function () { return (0, utils_1.resolveStatusOptions)(status); }, [status]);
|
|
444
595
|
var resolvedPagination = React.useMemo(function () { return (0, utils_1.resolvePaginationViewOptions)(pagination); }, [pagination]);
|
|
445
596
|
var resolvedScrollbar = React.useMemo(function () { return (0, utils_1.resolveScrollbarOptions)(scrollbar); }, [scrollbar]);
|
|
446
|
-
var resolvedBottomBarHeight = (
|
|
597
|
+
var resolvedBottomBarHeight = (_e = bottomBarHeight !== null && bottomBarHeight !== void 0 ? bottomBarHeight : footerHeight) !== null && _e !== void 0 ? _e : 30;
|
|
447
598
|
var initialShowBottomBar = React.useMemo(function () {
|
|
448
599
|
return (0, utils_1.shouldRenderBottomBar)({
|
|
449
600
|
hasPage: !!resolvedPage,
|
|
@@ -607,29 +758,32 @@ function BGrid(_a) {
|
|
|
607
758
|
initialShowBottomBar,
|
|
608
759
|
]);
|
|
609
760
|
return (React.createElement(store_1.AppStoreProvider, { initialState: initialStoreState },
|
|
610
|
-
React.createElement(
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
761
|
+
React.createElement(TreeContext_1.TreeContext.Provider, { value: treeContextValue },
|
|
762
|
+
React.createElement(Table_1.default, { ref: ref, sourceColumns: resolvedColumns,
|
|
763
|
+
columns: computedColumns,
|
|
764
|
+
columnsGroup: visibilityProjection.columnsGroup,
|
|
765
|
+
columnGroups: visibilityProjection.columnGroups,
|
|
766
|
+
onChangeColumns: resolvedOnChangeColumns, width: width, height: height, className: className, style: style, loading: loading, disabled: resolvedDisabled, spinning: spinning, scrollLeft: scrollLeft, scrollTop: scrollTop, headerHeight: headerHeight, footerHeight: footerHeight, bottomBarHeight: resolvedBottomBarHeight,
|
|
767
|
+
scrollbar: resolvedScrollbar,
|
|
768
|
+
status: resolvedStatus,
|
|
769
|
+
pagination: resolvedPagination, summaryHeight: summaryHeight, itemHeight: itemHeight, itemPadding: itemPadding, rowHeightMetrics: rowHeightMetrics, frozenColumnIndex: resolvedFrozenColumnIndex,
|
|
770
|
+
frozenRowCount: resolvedFrozenRowCount,
|
|
771
|
+
rowChecked: resolvedRowChecked, checkedIndexesMap: checkedIndexesMap, sort: resolvedSort, sortParams: sortParams, dataQuery: resolvedDataQuery,
|
|
772
|
+
dataControl: resolvedDataControl, icons: icons, columnVisibilityState: columnVisibilityState, searchOptions: resolvedSearchOptions,
|
|
773
|
+
contextMenuOptions: resolvedContextMenuOptions,
|
|
774
|
+
page: resolvedPage,
|
|
775
|
+
data: displayData,
|
|
776
|
+
sourceData: resolvedData,
|
|
777
|
+
sourceIndexByVisibleIndex: processedResult.sourceIndexByVisibleIndex,
|
|
778
|
+
visibleIndexBySourceIndex: processedResult.visibleIndexBySourceIndex,
|
|
779
|
+
onClick: resolvedOnClick,
|
|
780
|
+
rowKey: resolvedRowKey,
|
|
781
|
+
selectedRowKey: resolvedSelectedRowKey,
|
|
782
|
+
editable: resolvedEditable, editTrigger: editTrigger, onChangeData: resolvedOnChangeData,
|
|
783
|
+
showLineNumber: resolvedShowLineNumber, msg: msg, getRowClassName: resolvedGetRowClassName,
|
|
784
|
+
cellMergeOptions: resolvedCellMergeOptions,
|
|
785
|
+
cellSelectionOptions: resolvedCellSelectionOptions, cellNavigationOptions: cellNavigationOptions, variant: variant, summary: resolvedSummary,
|
|
786
|
+
columnSortable: resolvedColumnSortable,
|
|
787
|
+
reorder: resolvedReorder,
|
|
788
|
+
treeEnabled: !!treeContextValue }))));
|
|
635
789
|
}
|
package/cjs/components/Table.js
CHANGED
|
@@ -166,6 +166,7 @@ function Table(props) {
|
|
|
166
166
|
var _a;
|
|
167
167
|
var _this = this;
|
|
168
168
|
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8;
|
|
169
|
+
var store = (0, store_1.useAppStoreApi)();
|
|
169
170
|
var cellSelectionOptions = props.cellSelectionOptions, onChangeData = props.onChangeData, sourceIndexByVisibleIndex = props.sourceIndexByVisibleIndex;
|
|
170
171
|
var cellSelectionEnabled = (_b = cellSelectionOptions === null || cellSelectionOptions === void 0 ? void 0 : cellSelectionOptions.enabled) !== null && _b !== void 0 ? _b : true;
|
|
171
172
|
var rowKeyRegistryState = (0, react_1.useRef)({
|
|
@@ -657,12 +658,46 @@ function Table(props) {
|
|
|
657
658
|
var scrollPropsRef = (0, react_1.useRef)({ top: props.scrollTop, left: props.scrollLeft });
|
|
658
659
|
var syncedDataPropRef = (0, react_1.useRef)(props.data);
|
|
659
660
|
var _23 = __read(React.useState(null), 2), rowScrollRequest = _23[0], setRowScrollRequest = _23[1];
|
|
661
|
+
var sourceColumnsRef = (0, react_1.useRef)(props.sourceColumns);
|
|
662
|
+
sourceColumnsRef.current = props.sourceColumns;
|
|
663
|
+
var getCurrentExportData = (0, react_1.useCallback)(function (options) {
|
|
664
|
+
var state = store.getState();
|
|
665
|
+
return (0, utils_1.createGridExportData)({
|
|
666
|
+
options: options,
|
|
667
|
+
columns: state.columns,
|
|
668
|
+
sourceColumns: sourceColumnsRef.current,
|
|
669
|
+
data: state.data,
|
|
670
|
+
sourceData: state.sourceData,
|
|
671
|
+
sourceIndexByVisibleIndex: state.sourceIndexByVisibleIndex,
|
|
672
|
+
visibleIndexBySourceIndex: state.visibleIndexBySourceIndex,
|
|
673
|
+
checkedIndexesMap: state.checkedIndexesMap,
|
|
674
|
+
rowKey: state.rowKey,
|
|
675
|
+
});
|
|
676
|
+
}, [store]);
|
|
660
677
|
React.useImperativeHandle(props.ref, function () { return ({
|
|
661
678
|
scrollToRow: function (rowIndex, options) {
|
|
662
679
|
var _a;
|
|
663
680
|
setRowScrollRequest({ rowIndex: rowIndex, align: (_a = options === null || options === void 0 ? void 0 : options.align) !== null && _a !== void 0 ? _a : 'nearest' });
|
|
664
681
|
},
|
|
665
|
-
|
|
682
|
+
getExportData: function (options) {
|
|
683
|
+
return getCurrentExportData(options);
|
|
684
|
+
},
|
|
685
|
+
exportCsv: function (options) {
|
|
686
|
+
var _a;
|
|
687
|
+
var exportData = getCurrentExportData(options);
|
|
688
|
+
var csv = (0, utils_1.serializeGridExportDataToCsv)(exportData, options);
|
|
689
|
+
(0, utils_1.downloadCsv)(csv, (_a = options === null || options === void 0 ? void 0 : options.fileName) !== null && _a !== void 0 ? _a : 'export.csv');
|
|
690
|
+
},
|
|
691
|
+
exportExcel: function (options) {
|
|
692
|
+
var exportData = getCurrentExportData(options);
|
|
693
|
+
void Promise.resolve().then(function () { return __importStar(require('../utils/exportExcel')); }).then(function (_a) {
|
|
694
|
+
var _b;
|
|
695
|
+
var serializeGridExportDataToExcel = _a.serializeGridExportDataToExcel, downloadExcel = _a.downloadExcel;
|
|
696
|
+
var excelBytes = serializeGridExportDataToExcel(exportData, options);
|
|
697
|
+
downloadExcel(excelBytes, (_b = options === null || options === void 0 ? void 0 : options.fileName) !== null && _b !== void 0 ? _b : 'export.xlsx');
|
|
698
|
+
});
|
|
699
|
+
},
|
|
700
|
+
}); }, [getCurrentExportData]);
|
|
666
701
|
var scrollRafRef = (0, react_1.useRef)(null);
|
|
667
702
|
var scrollIdleTimerRef = (0, react_1.useRef)(null);
|
|
668
703
|
var selectionAutoScrollRafRef = (0, react_1.useRef)(null);
|
|
@@ -2353,7 +2388,7 @@ function Table(props) {
|
|
|
2353
2388
|
};
|
|
2354
2389
|
}, []);
|
|
2355
2390
|
return (React.createElement(EditorPortalRoot_1.EditorPortalContext.Provider, { value: editorPortalContext },
|
|
2356
|
-
React.createElement(Container, { ref: containerRef, role: 'grid', style: __assign(__assign({}, style), (_a = { width: width, height: height, borderWidth: "".concat(containerBorderWidth, "px") }, _a['--bgrid-virtual-row-height'] = "".concat(trHeight, "px"), _a)), className: className, tabIndex: 0, "aria-disabled": disabled ? 'true' : undefined, onFocus: function (event) {
|
|
2391
|
+
React.createElement(Container, { ref: containerRef, role: props.treeEnabled ? 'treegrid' : 'grid', style: __assign(__assign({}, style), (_a = { width: width, height: height, borderWidth: "".concat(containerBorderWidth, "px") }, _a['--bgrid-virtual-row-height'] = "".concat(trHeight, "px"), _a)), className: className, tabIndex: 0, "aria-disabled": disabled ? 'true' : undefined, onFocus: function (event) {
|
|
2357
2392
|
if (event.target !== event.currentTarget)
|
|
2358
2393
|
return;
|
|
2359
2394
|
var gateway = event.currentTarget.querySelector('[data-bgrid-text-editor-gateway="true"]');
|
|
@@ -38,6 +38,7 @@ var React = __importStar(require("react"));
|
|
|
38
38
|
var PluginCellEditor_1 = require("./PluginCellEditor");
|
|
39
39
|
var CellEditorIcon_1 = require("./CellEditorIcon");
|
|
40
40
|
var CheckboxCellEditor_1 = require("./CheckboxCellEditor");
|
|
41
|
+
var TreeCell_1 = require("./TreeCell");
|
|
41
42
|
function Cell(_a) {
|
|
42
43
|
var _b, _c, _d;
|
|
43
44
|
var index = _a.index, _e = _a.hostIndex, hostIndex = _e === void 0 ? index : _e, columnIndex = _a.columnIndex, column = _a.column, item = _a.item, valueByRowKey = _a.valueByRowKey, handleSave = _a.handleSave, handleCancel = _a.handleCancel, handleMove = _a.handleMove, editable = _a.editable, cellEditable = _a.cellEditable, _f = _a.interactionEditing, interactionEditing = _f === void 0 ? false : _f, editSession = _a.editSession;
|
|
@@ -74,7 +75,7 @@ function Cell(_a) {
|
|
|
74
75
|
content = renderSafeCellValue(valueByRowKey);
|
|
75
76
|
}
|
|
76
77
|
return (React.createElement("div", { className: isPluginEditorActive ? 'bgrid-cell-content bgrid-cell-content-plugin-editor' : 'bgrid-cell-content' },
|
|
77
|
-
React.createElement("div", { className: 'bgrid-cell-value' }, content),
|
|
78
|
+
React.createElement("div", { className: 'bgrid-cell-value' }, column.treeCell ? (React.createElement(TreeCell_1.TreeCell, { column: column, item: item }, content)) : (content)),
|
|
78
79
|
column.editorIcon && ((_d = column.editor) === null || _d === void 0 ? void 0 : _d.type) !== 'checkbox' && cellEditable && (React.createElement(CellEditorIcon_1.CellEditorIcon, { hostCell: { rowIndex: hostIndex, columnIndex: columnIndex }, index: index, columnIndex: columnIndex, column: column, item: item, value: valueByRowKey, editing: interactionEditing }))));
|
|
79
80
|
}
|
|
80
81
|
function renderSafeCellValue(value, preserveRenderableArrays) {
|
|
@@ -90,6 +90,7 @@ var utils_1 = require("../utils");
|
|
|
90
90
|
var TableBodyCell_1 = require("./TableBodyCell");
|
|
91
91
|
var RowSelector_1 = __importDefault(require("./RowSelector"));
|
|
92
92
|
var GripVertical_1 = require("./GripVertical");
|
|
93
|
+
var TreeContext_1 = require("./TreeContext");
|
|
93
94
|
function TableBodyCellItemInner(_a) {
|
|
94
95
|
var _this = this;
|
|
95
96
|
var _b, _c, _d, _e;
|
|
@@ -167,9 +168,12 @@ function TableBodyRowInner(_a) {
|
|
|
167
168
|
var _this = this;
|
|
168
169
|
var _d;
|
|
169
170
|
var item = _a.item, data = _a.data, ri = _a.ri, sourceIndex = _a.sourceIndex, columns = _a.columns, startCIdx = _a.startCIdx, endCIdx = _a.endCIdx, frozenColumnIndex = _a.frozenColumnIndex, isLeftRegion = _a.isLeftRegion, showLineNumber = _a.showLineNumber, hasRowChecked = _a.hasRowChecked, isRadio = _a.isRadio, checked = _a.checked, rowCheckedDisabled = _a.rowCheckedDisabled, rowStatus = _a.rowStatus, active = _a.active, className = _a.className, resolvedRowHeight = _a.resolvedRowHeight, itemHeight = _a.itemHeight, itemPadding = _a.itemPadding, editable = _a.editable, disabled = _a.disabled, editTrigger = _a.editTrigger, hasOnClick = _a.hasOnClick, cellMergeOptions = _a.cellMergeOptions, mergeColumns = _a.mergeColumns, odd = _a.odd, variant = _a.variant, rowReorderEnabled = _a.rowReorderEnabled, rowReorderRole = _a.rowReorderRole, rowReorderPhase = _a.rowReorderPhase, rowReorderDirection = _a.rowReorderDirection, rowReorderOffset = _a.rowReorderOffset, reorder = _a.reorder, reorderingInfo = _a.reorderingInfo, searchMatchTokens = _a.searchMatchTokens, currentSearchToken = _a.currentSearchToken, isRowEditing = _a.isRowEditing, cellInteractionSession = _a.cellInteractionSession, handleClick = _a.handleClick, setEditItem = _a.setEditItem, setItemValue = _a.setItemValue, handleMoveEditFocus = _a.handleMoveEditFocus, handleChangeChecked = _a.handleChangeChecked, handleChangeCheckedRadio = _a.handleChangeCheckedRadio, getRowSpan = _a.getRowSpan, onRowReorderPointerDown = _a.onRowReorderPointerDown, onRowReorderKeyDown = _a.onRowReorderKeyDown;
|
|
171
|
+
var tree = (0, TreeContext_1.useTreeContext)();
|
|
172
|
+
var treeRowKey = tree === null || tree === void 0 ? void 0 : tree.getRowKey(item.values);
|
|
173
|
+
var treeMeta = treeRowKey === undefined ? undefined : tree === null || tree === void 0 ? void 0 : tree.metaByRowKey.get(treeRowKey);
|
|
170
174
|
var clickable = !editable && hasOnClick;
|
|
171
175
|
var rowClassName = ['bgrid-body-row', active ? 'bgrid-row-active' : '', className].filter(Boolean).join(' ');
|
|
172
|
-
return (React.createElement("tr", { className: rowClassName, "data-ri": ri, "data-odd": !mergeColumns && odd ? 'true' : undefined, "data-clickable": clickable ? 'true' : undefined, "data-bgrid-row-reorder-role": rowReorderRole, "data-bgrid-row-reorder-phase": rowReorderRole ? rowReorderPhase : undefined, "data-bgrid-row-reorder-direction": rowReorderRole ? rowReorderDirection : undefined, style: __assign((_b = {}, _b['--bgrid-item-line-height'] = "".concat(itemHeight, "px"), _b['--bgrid-item-cell-height'] = "".concat(resolvedRowHeight, "px"), _b), (rowReorderRole && rowReorderRole !== 'source'
|
|
176
|
+
return (React.createElement("tr", { className: rowClassName, "data-ri": ri, "data-bgrid-tree-row": treeMeta ? 'true' : undefined, "aria-level": treeMeta ? treeMeta.depth + 1 : undefined, "aria-posinset": treeMeta ? treeMeta.siblingIndex + 1 : undefined, "aria-setsize": treeMeta === null || treeMeta === void 0 ? void 0 : treeMeta.siblingCount, "aria-expanded": (treeMeta === null || treeMeta === void 0 ? void 0 : treeMeta.hasChildren) ? treeMeta.expanded : undefined, "data-odd": !mergeColumns && odd ? 'true' : undefined, "data-clickable": clickable ? 'true' : undefined, "data-bgrid-row-reorder-role": rowReorderRole, "data-bgrid-row-reorder-phase": rowReorderRole ? rowReorderPhase : undefined, "data-bgrid-row-reorder-direction": rowReorderRole ? rowReorderDirection : undefined, style: __assign((_b = {}, _b['--bgrid-item-line-height'] = "".concat(itemHeight, "px"), _b['--bgrid-item-cell-height'] = "".concat(resolvedRowHeight, "px"), _b), (rowReorderRole && rowReorderRole !== 'source'
|
|
173
177
|
? (_c = {}, _c['--bgrid-row-reorder-offset-y'] = "".concat(rowReorderOffset !== null && rowReorderOffset !== void 0 ? rowReorderOffset : 0, "px"), _c)
|
|
174
178
|
: undefined)) },
|
|
175
179
|
isLeftRegion &&
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.TreeCell = TreeCell;
|
|
37
|
+
var React = __importStar(require("react"));
|
|
38
|
+
var store_1 = require("../store");
|
|
39
|
+
var utils_1 = require("../utils");
|
|
40
|
+
var TreeContext_1 = require("./TreeContext");
|
|
41
|
+
function TreeCell(_a) {
|
|
42
|
+
var _b, _c, _d, _e, _f;
|
|
43
|
+
var column = _a.column, item = _a.item, children = _a.children;
|
|
44
|
+
var tree = (0, TreeContext_1.useTreeContext)();
|
|
45
|
+
var store = (0, store_1.useAppStoreApi)();
|
|
46
|
+
if (!tree || (0, utils_1.getColumnId)(column) !== tree.treeColumnId)
|
|
47
|
+
return React.createElement(React.Fragment, null, children);
|
|
48
|
+
var key = tree.getRowKey(item.values);
|
|
49
|
+
var meta = key === undefined ? undefined : tree.metaByRowKey.get(key);
|
|
50
|
+
if (!meta)
|
|
51
|
+
return React.createElement(React.Fragment, null, children);
|
|
52
|
+
return (React.createElement("span", { className: 'bgrid-tree-cell', style: {
|
|
53
|
+
'--bgrid-tree-depth': meta.depth,
|
|
54
|
+
'--bgrid-tree-indent-size': "".concat(tree.indentSize, "px"),
|
|
55
|
+
} },
|
|
56
|
+
meta.hasChildren ? (React.createElement("button", { type: 'button', className: 'bgrid-tree-toggle', "aria-expanded": meta.expanded, "aria-label": meta.expanded ? tree.collapseAriaLabel : tree.expandAriaLabel, disabled: tree.disabled, onClick: function (event) {
|
|
57
|
+
var _a, _b, _c, _d;
|
|
58
|
+
event.stopPropagation();
|
|
59
|
+
if (meta.expanded) {
|
|
60
|
+
var state = store.getState();
|
|
61
|
+
var activeCell = state.activeCell;
|
|
62
|
+
var activeSourceIndex = activeCell === undefined
|
|
63
|
+
? undefined
|
|
64
|
+
: (_b = (_a = state.sourceIndexByVisibleIndex) === null || _a === void 0 ? void 0 : _a[activeCell.rowIndex]) !== null && _b !== void 0 ? _b : activeCell.rowIndex;
|
|
65
|
+
var activeMeta = activeSourceIndex === undefined ? undefined : tree.metaBySourceIndex.get(activeSourceIndex);
|
|
66
|
+
var activeIsDescendant = false;
|
|
67
|
+
while ((activeMeta === null || activeMeta === void 0 ? void 0 : activeMeta.parentSourceIndex) !== undefined) {
|
|
68
|
+
if (activeMeta.parentSourceIndex === meta.sourceIndex) {
|
|
69
|
+
activeIsDescendant = true;
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
activeMeta = tree.metaBySourceIndex.get(activeMeta.parentSourceIndex);
|
|
73
|
+
}
|
|
74
|
+
state.clearCellSelection();
|
|
75
|
+
if (activeCell && activeIsDescendant) {
|
|
76
|
+
state.endCellEdit();
|
|
77
|
+
state.setActiveCell({
|
|
78
|
+
rowIndex: (_d = (_c = state.visibleIndexBySourceIndex) === null || _c === void 0 ? void 0 : _c.get(meta.sourceIndex)) !== null && _d !== void 0 ? _d : 0,
|
|
79
|
+
columnIndex: activeCell.columnIndex,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
tree.toggle(meta);
|
|
84
|
+
} },
|
|
85
|
+
React.createElement("span", { className: 'bgrid-tree-icon', "aria-hidden": 'true' }, meta.expanded ? (_c = (_b = tree.icons) === null || _b === void 0 ? void 0 : _b.expanded) !== null && _c !== void 0 ? _c : '⌄' : (_e = (_d = tree.icons) === null || _d === void 0 ? void 0 : _d.collapsed) !== null && _e !== void 0 ? _e : '›'))) : (React.createElement("span", { className: 'bgrid-tree-toggle-spacer', "aria-hidden": 'true' },
|
|
86
|
+
React.createElement("span", { className: 'bgrid-tree-icon' }, (_f = tree.icons) === null || _f === void 0 ? void 0 : _f.leaf))),
|
|
87
|
+
React.createElement("span", { className: 'bgrid-tree-cell-content' }, children)));
|
|
88
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.TreeContext = void 0;
|
|
37
|
+
exports.useTreeContext = useTreeContext;
|
|
38
|
+
var React = __importStar(require("react"));
|
|
39
|
+
exports.TreeContext = React.createContext(undefined);
|
|
40
|
+
function useTreeContext() {
|
|
41
|
+
return React.useContext(exports.TreeContext);
|
|
42
|
+
}
|