beautiful-grid 1.0.13 → 1.0.15
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 +121 -6
- package/cjs/BGrid.js +388 -44
- package/cjs/components/CellNavigationDomSync.js +8 -0
- package/cjs/components/CellTextEditorGateway.js +13 -9
- package/cjs/components/ColResizer.js +13 -7
- package/cjs/components/MasterDetailCell.js +145 -0
- package/cjs/components/MasterDetailContext.js +42 -0
- package/cjs/components/Table.js +162 -52
- package/cjs/components/TableBody.js +7 -3
- package/cjs/components/TableBodyCell.js +2 -1
- package/cjs/components/TableSummary.js +25 -34
- package/cjs/components/TableSummaryFronzen.js +36 -34
- package/cjs/store/createAppStore.js +2 -0
- package/cjs/utils/cellSelectionGeometry.js +32 -6
- package/cjs/utils/columnVisibility.js +17 -14
- package/cjs/utils/index.js +1 -0
- package/cjs/utils/rowHeightMetrics.js +47 -6
- package/cjs/utils/summary.js +55 -0
- package/cjs/utils/useRowReorderController.js +5 -1
- package/esm/BGrid.js +387 -72
- package/esm/components/CellNavigationDomSync.js +8 -0
- package/esm/components/CellTextEditorGateway.js +12 -9
- package/esm/components/ColResizer.js +8 -2
- package/esm/components/MasterDetailCell.js +101 -0
- package/esm/components/MasterDetailContext.js +5 -0
- package/esm/components/Table.js +151 -42
- package/esm/components/TableBody.js +6 -2
- package/esm/components/TableBodyCell.js +2 -1
- package/esm/components/TableSummary.js +26 -29
- package/esm/components/TableSummaryFronzen.js +26 -29
- package/esm/store/createAppStore.js +2 -0
- package/esm/utils/cellSelectionGeometry.js +31 -5
- package/esm/utils/columnVisibility.js +21 -18
- package/esm/utils/index.js +1 -0
- package/esm/utils/rowHeightMetrics.js +46 -6
- package/esm/utils/summary.js +35 -0
- package/esm/utils/useRowReorderController.js +5 -1
- package/package.json +1 -1
- package/style.css +164 -14
- package/types/BGrid.d.ts +1 -1
- package/types/components/MasterDetailCell.d.ts +21 -0
- package/types/components/MasterDetailContext.d.ts +20 -0
- package/types/components/Table.d.ts +1 -0
- package/types/components/TableBody.d.ts +2 -1
- package/types/store/createAppStore.d.ts +1 -1
- package/types/types.d.ts +70 -4
- package/types/utils/cellSelectionGeometry.d.ts +3 -1
- package/types/utils/index.d.ts +1 -0
- package/types/utils/rowHeightMetrics.d.ts +15 -1
- package/types/utils/summary.d.ts +13 -0
package/cjs/BGrid.js
CHANGED
|
@@ -68,6 +68,17 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
68
68
|
}
|
|
69
69
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
70
70
|
};
|
|
71
|
+
var __values = (this && this.__values) || function(o) {
|
|
72
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
73
|
+
if (m) return m.call(o);
|
|
74
|
+
if (o && typeof o.length === "number") return {
|
|
75
|
+
next: function () {
|
|
76
|
+
if (o && i >= o.length) o = void 0;
|
|
77
|
+
return { value: o && o[i++], done: !o };
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
81
|
+
};
|
|
71
82
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
72
83
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
73
84
|
};
|
|
@@ -78,6 +89,7 @@ var Table_1 = __importDefault(require("./components/Table"));
|
|
|
78
89
|
var utils_1 = require("./utils");
|
|
79
90
|
var store_1 = require("./store");
|
|
80
91
|
var TreeContext_1 = require("./components/TreeContext");
|
|
92
|
+
var MasterDetailContext_1 = require("./components/MasterDetailContext");
|
|
81
93
|
function computeModelColumns(columns, frozenColumnIndex, duplicateToolboxColumnIds) {
|
|
82
94
|
var left = 0;
|
|
83
95
|
var previousWidth = 0;
|
|
@@ -91,14 +103,22 @@ function computeModelColumns(columns, frozenColumnIndex, duplicateToolboxColumnI
|
|
|
91
103
|
return __assign(__assign({}, column), { columnId: columnId, keyToken: (0, utils_1.getColumnKeyToken)(column.key), toolbox: duplicateToolboxColumnIds.has(columnId) ? false : column.toolbox, left: columnIndex < frozenColumnIndex ? -1 : left, width: (_b = column.width) !== null && _b !== void 0 ? _b : 100 });
|
|
92
104
|
});
|
|
93
105
|
}
|
|
106
|
+
function encodeMasterDetailRowKey(rowKey) {
|
|
107
|
+
var codePoints = Array.from(String(rowKey), function (character) { return character.codePointAt(0).toString(16); });
|
|
108
|
+
return "".concat(typeof rowKey, "-").concat(codePoints.join('-'));
|
|
109
|
+
}
|
|
94
110
|
function BGrid(_a) {
|
|
95
|
-
var _b, _c, _d, _e;
|
|
96
|
-
var ref = _a.ref, width = _a.width, height = _a.height,
|
|
97
|
-
var
|
|
111
|
+
var _b, _c, _d, _e, _f;
|
|
112
|
+
var ref = _a.ref, width = _a.width, height = _a.height, _g = _a.headerHeight, headerHeight = _g === void 0 ? 30 : _g, footerHeight = _a.footerHeight, explicitSummaryHeight = _a.summaryHeight, _h = _a.summaryRowHeight, summaryRowHeight = _h === void 0 ? utils_1.DEFAULT_SUMMARY_ROW_HEIGHT : _h, _j = _a.itemHeight, itemHeight = _j === void 0 ? 15 : _j, _k = _a.itemPadding, itemPadding = _k === void 0 ? 7 : _k, getRowHeight = _a.getRowHeight, columns = _a.columns, columnsGroup = _a.columnsGroup, columnGroups = _a.columnGroups, onChangeColumns = _a.onChangeColumns, _l = _a.frozenColumnIndex, frozenColumnIndex = _l === void 0 ? 0 : _l, _m = _a.frozenRowCount, frozenRowCount = _m === void 0 ? 0 : _m, _o = _a.data, data = _o === void 0 ? [] : _o, page = _a.page, scrollbar = _a.scrollbar, status = _a.status, pagination = _a.pagination, bottomBarHeight = _a.bottomBarHeight, _p = _a.scrollTop, scrollTop = _p === void 0 ? 0 : _p, _q = _a.scrollLeft, scrollLeft = _q === void 0 ? 0 : _q, className = _a.className, style = _a.style, rowChecked = _a.rowChecked, sort = _a.sort, onClick = _a.onClick, _r = _a.loading, loading = _r === void 0 ? false : _r, 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, _s = _a.editTrigger, editTrigger = _s === void 0 ? 'dblclick' : _s, 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, masterDetail = _a.masterDetail;
|
|
113
|
+
var _t = __read(React.useState(function () {
|
|
98
114
|
var _a;
|
|
99
115
|
return __spreadArray([], __read(((_a = tree === null || tree === void 0 ? void 0 : tree.defaultExpandedRowKeys) !== null && _a !== void 0 ? _a : [])), false);
|
|
100
|
-
}), 2), uncontrolledExpandedRowKeys =
|
|
116
|
+
}), 2), uncontrolledExpandedRowKeys = _t[0], setUncontrolledExpandedRowKeys = _t[1];
|
|
101
117
|
var expandedRowKeys = (_b = tree === null || tree === void 0 ? void 0 : tree.expandedRowKeys) !== null && _b !== void 0 ? _b : uncontrolledExpandedRowKeys;
|
|
118
|
+
var _u = __read(React.useState(function () { var _a; return (_a = masterDetail === null || masterDetail === void 0 ? void 0 : masterDetail.defaultExpandedRowKeys) !== null && _a !== void 0 ? _a : []; }), 2), uncontrolledMasterDetailExpandedKeys = _u[0], setUncontrolledMasterDetailExpandedKeys = _u[1];
|
|
119
|
+
var masterDetailExpandedKeys = (masterDetail === null || masterDetail === void 0 ? void 0 : masterDetail.expandedRowKeys) !== undefined
|
|
120
|
+
? masterDetail.expandedRowKeys
|
|
121
|
+
: uncontrolledMasterDetailExpandedKeys;
|
|
102
122
|
var warnedSearchControlledRef = React.useRef({
|
|
103
123
|
open: false,
|
|
104
124
|
query: false,
|
|
@@ -115,7 +135,7 @@ function BGrid(_a) {
|
|
|
115
135
|
var resolvedColumns = ((_c = pivotData === null || pivotData === void 0 ? void 0 : pivotData.columns) !== null && _c !== void 0 ? _c : columns);
|
|
116
136
|
var visibilityOptions = typeof columnVisibility === 'object' ? columnVisibility : undefined;
|
|
117
137
|
var visibilityEnabled = columnVisibility === true || (visibilityOptions !== undefined && visibilityOptions.enabled !== false);
|
|
118
|
-
var
|
|
138
|
+
var _v = __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 = _v[0], setUncontrolledHiddenColumnIds = _v[1];
|
|
119
139
|
var hiddenColumnIds = React.useMemo(function () {
|
|
120
140
|
var _a;
|
|
121
141
|
if (!visibilityEnabled)
|
|
@@ -167,7 +187,13 @@ function BGrid(_a) {
|
|
|
167
187
|
var resolvedGetRowClassName = pivotEnabled ? undefined : getRowClassName;
|
|
168
188
|
var requestedTreeEnabled = !!tree && tree.enabled !== false;
|
|
169
189
|
var treeEnabled = requestedTreeEnabled && !pivotEnabled && resolvedRowKey !== undefined;
|
|
170
|
-
var
|
|
190
|
+
var requestedMasterDetailEnabled = !!masterDetail && masterDetail.enabled !== false;
|
|
191
|
+
var masterDetailEnabled = requestedMasterDetailEnabled &&
|
|
192
|
+
!pivotEnabled &&
|
|
193
|
+
!treeEnabled &&
|
|
194
|
+
resolvedRowKey !== undefined &&
|
|
195
|
+
frozenRowCount <= 0;
|
|
196
|
+
var resolvedCellMergeOptions = treeEnabled || masterDetailEnabled ? undefined : visibilityProjection.cellMergeOptions;
|
|
171
197
|
var resolvedCellSelectionOptions = resolvedDisabled
|
|
172
198
|
? __assign(__assign({}, cellSelectionOptions), { enabled: false }) : cellSelectionOptions;
|
|
173
199
|
var resolvedSummary = visibilityProjection.summary;
|
|
@@ -179,11 +205,11 @@ function BGrid(_a) {
|
|
|
179
205
|
var hasActiveClientQuery = (resolvedDataControl === null || resolvedDataControl === void 0 ? void 0 : resolvedDataControl.mode) === 'client' &&
|
|
180
206
|
(resolvedDataControl.query.sortParams.length > 0 || resolvedDataControl.query.filterParams.length > 0);
|
|
181
207
|
var resolvedReorder = React.useMemo(function () {
|
|
182
|
-
return pivotEnabled || resolvedDisabled || treeEnabled
|
|
208
|
+
return pivotEnabled || resolvedDisabled || treeEnabled || masterDetailEnabled
|
|
183
209
|
? undefined
|
|
184
210
|
: (hasActiveClientQuery || frozenRowCount > 0) && reorder
|
|
185
211
|
? __assign(__assign({}, reorder), { enabled: false }) : reorder;
|
|
186
|
-
}, [frozenRowCount, hasActiveClientQuery, pivotEnabled, reorder, resolvedDisabled, treeEnabled]);
|
|
212
|
+
}, [frozenRowCount, hasActiveClientQuery, masterDetailEnabled, pivotEnabled, reorder, resolvedDisabled, treeEnabled]);
|
|
187
213
|
// Development warnings
|
|
188
214
|
React.useEffect(function () {
|
|
189
215
|
var _a, _b;
|
|
@@ -225,6 +251,24 @@ function BGrid(_a) {
|
|
|
225
251
|
if (treeEnabled && (reorder === null || reorder === void 0 ? void 0 : reorder.enabled)) {
|
|
226
252
|
console.warn('[BGrid] Row reordering is disabled while tree mode is active.');
|
|
227
253
|
}
|
|
254
|
+
if (requestedMasterDetailEnabled && rowKey === undefined) {
|
|
255
|
+
console.warn('[BGrid] masterDetail requires rowKey. Falling back to flat rows.');
|
|
256
|
+
}
|
|
257
|
+
if (pivotEnabled && requestedMasterDetailEnabled) {
|
|
258
|
+
console.warn('[BGrid] masterDetail is disabled while pivot mode is active.');
|
|
259
|
+
}
|
|
260
|
+
if (treeEnabled && requestedMasterDetailEnabled) {
|
|
261
|
+
console.warn('[BGrid] masterDetail is disabled while tree mode is active.');
|
|
262
|
+
}
|
|
263
|
+
if (masterDetailEnabled && cellMergeOptions) {
|
|
264
|
+
console.warn('[BGrid] cellMergeOptions is disabled while masterDetail mode is active.');
|
|
265
|
+
}
|
|
266
|
+
if (masterDetailEnabled && (reorder === null || reorder === void 0 ? void 0 : reorder.enabled)) {
|
|
267
|
+
console.warn('[BGrid] Row reordering is disabled while masterDetail mode is active.');
|
|
268
|
+
}
|
|
269
|
+
if (requestedMasterDetailEnabled && frozenRowCount > 0) {
|
|
270
|
+
console.warn('[BGrid] masterDetail is disabled when frozenRowCount > 0.');
|
|
271
|
+
}
|
|
228
272
|
if (hasHiddenColumns && columnSortable) {
|
|
229
273
|
console.warn('[BGrid] Column reordering is disabled while columns are hidden.');
|
|
230
274
|
}
|
|
@@ -262,6 +306,8 @@ function BGrid(_a) {
|
|
|
262
306
|
visibilityOptions === null || visibilityOptions === void 0 ? void 0 : visibilityOptions.hiddenColumnIds,
|
|
263
307
|
visibilityOptions === null || visibilityOptions === void 0 ? void 0 : visibilityOptions.onChange,
|
|
264
308
|
cellMergeOptions,
|
|
309
|
+
masterDetailEnabled,
|
|
310
|
+
requestedMasterDetailEnabled,
|
|
265
311
|
requestedTreeEnabled,
|
|
266
312
|
rowKey,
|
|
267
313
|
treeEnabled,
|
|
@@ -329,12 +375,33 @@ function BGrid(_a) {
|
|
|
329
375
|
? requestedId
|
|
330
376
|
: (0, utils_1.getColumnId)(visibilityProjection.columns[0]);
|
|
331
377
|
}, [tree === null || tree === void 0 ? void 0 : tree.treeColumnId, treeEnabled, visibilityProjection.columns]);
|
|
378
|
+
var resolvedExpandColumnId = React.useMemo(function () {
|
|
379
|
+
if (!masterDetailEnabled || visibilityProjection.columns.length === 0)
|
|
380
|
+
return undefined;
|
|
381
|
+
var requestedId = masterDetail === null || masterDetail === void 0 ? void 0 : masterDetail.expandColumnId;
|
|
382
|
+
return requestedId &&
|
|
383
|
+
visibilityProjection.columns.some(function (column) { return (0, utils_1.getColumnId)(column) === requestedId; })
|
|
384
|
+
? requestedId
|
|
385
|
+
: (0, utils_1.getColumnId)(visibilityProjection.columns[0]);
|
|
386
|
+
}, [masterDetail === null || masterDetail === void 0 ? void 0 : masterDetail.expandColumnId, masterDetailEnabled, visibilityProjection.columns]);
|
|
332
387
|
var computedColumns = React.useMemo(function () {
|
|
333
388
|
var columns = computeModelColumns(visibilityProjection.columns, resolvedFrozenColumnIndex, duplicateToolboxColumnIds);
|
|
334
|
-
if (
|
|
335
|
-
return
|
|
336
|
-
|
|
337
|
-
|
|
389
|
+
if (resolvedTreeColumnId) {
|
|
390
|
+
columns = columns.map(function (column) { return (column.columnId === resolvedTreeColumnId ? __assign(__assign({}, column), { treeCell: true }) : column); });
|
|
391
|
+
}
|
|
392
|
+
if (resolvedExpandColumnId) {
|
|
393
|
+
columns = columns.map(function (column) {
|
|
394
|
+
return column.columnId === resolvedExpandColumnId ? __assign(__assign({}, column), { masterDetailCell: true }) : column;
|
|
395
|
+
});
|
|
396
|
+
}
|
|
397
|
+
return columns;
|
|
398
|
+
}, [
|
|
399
|
+
duplicateToolboxColumnIds,
|
|
400
|
+
resolvedExpandColumnId,
|
|
401
|
+
resolvedFrozenColumnIndex,
|
|
402
|
+
resolvedTreeColumnId,
|
|
403
|
+
visibilityProjection.columns,
|
|
404
|
+
]);
|
|
338
405
|
var warnedTreeColumnIdRef = React.useRef(undefined);
|
|
339
406
|
React.useEffect(function () {
|
|
340
407
|
if (process.env.NODE_ENV === 'production' ||
|
|
@@ -347,6 +414,18 @@ function BGrid(_a) {
|
|
|
347
414
|
warnedTreeColumnIdRef.current = tree.treeColumnId;
|
|
348
415
|
console.warn("[BGrid] tree.treeColumnId \"".concat(tree.treeColumnId, "\" is not visible. Falling back to the first visible column."));
|
|
349
416
|
}, [resolvedTreeColumnId, tree === null || tree === void 0 ? void 0 : tree.treeColumnId, treeEnabled]);
|
|
417
|
+
var warnedExpandColumnIdRef = React.useRef(undefined);
|
|
418
|
+
React.useEffect(function () {
|
|
419
|
+
if (process.env.NODE_ENV === 'production' ||
|
|
420
|
+
!masterDetailEnabled ||
|
|
421
|
+
!(masterDetail === null || masterDetail === void 0 ? void 0 : masterDetail.expandColumnId) ||
|
|
422
|
+
masterDetail.expandColumnId === resolvedExpandColumnId ||
|
|
423
|
+
warnedExpandColumnIdRef.current === masterDetail.expandColumnId) {
|
|
424
|
+
return;
|
|
425
|
+
}
|
|
426
|
+
warnedExpandColumnIdRef.current = masterDetail.expandColumnId;
|
|
427
|
+
console.warn("[BGrid] masterDetail.expandColumnId \"".concat(masterDetail.expandColumnId, "\" is not visible. Falling back to the first visible column."));
|
|
428
|
+
}, [masterDetail === null || masterDetail === void 0 ? void 0 : masterDetail.expandColumnId, masterDetailEnabled, resolvedExpandColumnId]);
|
|
350
429
|
var queryColumns = React.useMemo(function () { return computeModelColumns(resolvedColumns, pivotEnabled ? 0 : frozenColumnIndex, duplicateToolboxColumnIds); }, [duplicateToolboxColumnIds, frozenColumnIndex, pivotEnabled, resolvedColumns]);
|
|
351
430
|
var projectedOnChangeColumns = React.useCallback(function (visibleColumnIndex, info) {
|
|
352
431
|
var _a;
|
|
@@ -546,7 +625,261 @@ function BGrid(_a) {
|
|
|
546
625
|
toggle: toggleTreeRow,
|
|
547
626
|
};
|
|
548
627
|
}, [resolvedDisabled, resolvedRowKey, resolvedTreeColumnId, resolvedTreeProjection, toggleTreeRow, tree]);
|
|
549
|
-
var
|
|
628
|
+
var rawGridId = React.useId();
|
|
629
|
+
var gridInstanceId = React.useMemo(function () { return rawGridId.replace(/[^a-zA-Z0-9_-]/g, '_'); }, [rawGridId]);
|
|
630
|
+
var masterDetailRowKeysMeta = React.useMemo(function () {
|
|
631
|
+
if (!masterDetailEnabled || resolvedRowKey === undefined)
|
|
632
|
+
return undefined;
|
|
633
|
+
var validKeys = new Set();
|
|
634
|
+
var rowsByKey = new Map();
|
|
635
|
+
var duplicateKeys = new Set();
|
|
636
|
+
var missingKeyIndexes = [];
|
|
637
|
+
for (var i = 0; i < resolvedData.length; i++) {
|
|
638
|
+
var key = (0, utils_1.getCellValueByRowKey)(resolvedRowKey, resolvedData[i].values);
|
|
639
|
+
if (key === undefined || key === null) {
|
|
640
|
+
missingKeyIndexes.push(i);
|
|
641
|
+
}
|
|
642
|
+
else {
|
|
643
|
+
var k = key;
|
|
644
|
+
if (validKeys.has(k)) {
|
|
645
|
+
duplicateKeys.add(k);
|
|
646
|
+
}
|
|
647
|
+
else {
|
|
648
|
+
validKeys.add(k);
|
|
649
|
+
rowsByKey.set(k, { item: resolvedData[i], sourceIndex: i });
|
|
650
|
+
}
|
|
651
|
+
}
|
|
652
|
+
}
|
|
653
|
+
return { validKeys: validKeys, rowsByKey: rowsByKey, duplicateKeys: duplicateKeys, missingKeyIndexes: missingKeyIndexes };
|
|
654
|
+
}, [masterDetailEnabled, resolvedData, resolvedRowKey]);
|
|
655
|
+
React.useEffect(function () {
|
|
656
|
+
if (process.env.NODE_ENV === 'production' || !masterDetailRowKeysMeta)
|
|
657
|
+
return;
|
|
658
|
+
if (masterDetailRowKeysMeta.missingKeyIndexes.length > 0) {
|
|
659
|
+
console.warn("[BGrid] masterDetail found ".concat(masterDetailRowKeysMeta.missingKeyIndexes.length, " rows with missing or null rowKey at indexes: [").concat(masterDetailRowKeysMeta.missingKeyIndexes.slice(0, 5).join(', ')).concat(masterDetailRowKeysMeta.missingKeyIndexes.length > 5 ? ', ...' : '', "]. These rows cannot be expanded."));
|
|
660
|
+
}
|
|
661
|
+
if (masterDetailRowKeysMeta.duplicateKeys.size > 0) {
|
|
662
|
+
console.warn("[BGrid] masterDetail found duplicate rowKey values: [".concat(Array.from(masterDetailRowKeysMeta.duplicateKeys).slice(0, 5).join(', '), "]. These rows cannot be expanded."));
|
|
663
|
+
}
|
|
664
|
+
}, [masterDetailRowKeysMeta]);
|
|
665
|
+
var expandMode = (_e = masterDetail === null || masterDetail === void 0 ? void 0 : masterDetail.expandMode) !== null && _e !== void 0 ? _e : 'multiple';
|
|
666
|
+
var masterDetailHasDetail = masterDetail === null || masterDetail === void 0 ? void 0 : masterDetail.hasDetail;
|
|
667
|
+
var effectiveMasterDetailExpandedKeysSet = React.useMemo(function () {
|
|
668
|
+
var e_1, _a;
|
|
669
|
+
if (!masterDetailEnabled || !masterDetailRowKeysMeta)
|
|
670
|
+
return new Set();
|
|
671
|
+
var set = new Set();
|
|
672
|
+
try {
|
|
673
|
+
for (var masterDetailExpandedKeys_1 = __values(masterDetailExpandedKeys), masterDetailExpandedKeys_1_1 = masterDetailExpandedKeys_1.next(); !masterDetailExpandedKeys_1_1.done; masterDetailExpandedKeys_1_1 = masterDetailExpandedKeys_1.next()) {
|
|
674
|
+
var key = masterDetailExpandedKeys_1_1.value;
|
|
675
|
+
if (masterDetailRowKeysMeta.duplicateKeys.has(key))
|
|
676
|
+
continue;
|
|
677
|
+
var row = masterDetailRowKeysMeta.rowsByKey.get(key);
|
|
678
|
+
if (!row)
|
|
679
|
+
continue;
|
|
680
|
+
if (masterDetailHasDetail) {
|
|
681
|
+
try {
|
|
682
|
+
if (!masterDetailHasDetail(row.item, row.sourceIndex))
|
|
683
|
+
continue;
|
|
684
|
+
}
|
|
685
|
+
catch (_b) {
|
|
686
|
+
continue;
|
|
687
|
+
}
|
|
688
|
+
}
|
|
689
|
+
set.add(key);
|
|
690
|
+
if (expandMode === 'single')
|
|
691
|
+
break;
|
|
692
|
+
}
|
|
693
|
+
}
|
|
694
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
695
|
+
finally {
|
|
696
|
+
try {
|
|
697
|
+
if (masterDetailExpandedKeys_1_1 && !masterDetailExpandedKeys_1_1.done && (_a = masterDetailExpandedKeys_1.return)) _a.call(masterDetailExpandedKeys_1);
|
|
698
|
+
}
|
|
699
|
+
finally { if (e_1) throw e_1.error; }
|
|
700
|
+
}
|
|
701
|
+
return set;
|
|
702
|
+
}, [expandMode, masterDetailHasDetail, masterDetailEnabled, masterDetailExpandedKeys, masterDetailRowKeysMeta]);
|
|
703
|
+
var toggleMasterDetailRow = React.useCallback(function (rowKey, item, sourceIndex) {
|
|
704
|
+
var _a;
|
|
705
|
+
if (resolvedDisabled || !masterDetailEnabled || !masterDetail)
|
|
706
|
+
return;
|
|
707
|
+
var isExpanded = effectiveMasterDetailExpandedKeysSet.has(rowKey);
|
|
708
|
+
var nextKeys;
|
|
709
|
+
if (expandMode === 'single') {
|
|
710
|
+
nextKeys = isExpanded ? [] : [rowKey];
|
|
711
|
+
}
|
|
712
|
+
else {
|
|
713
|
+
if (isExpanded) {
|
|
714
|
+
nextKeys = masterDetailExpandedKeys.filter(function (k) { return !Object.is(k, rowKey); });
|
|
715
|
+
}
|
|
716
|
+
else {
|
|
717
|
+
var exists = masterDetailExpandedKeys.some(function (k) { return Object.is(k, rowKey); });
|
|
718
|
+
nextKeys = exists ? __spreadArray([], __read(masterDetailExpandedKeys), false) : __spreadArray(__spreadArray([], __read(masterDetailExpandedKeys), false), [rowKey], false);
|
|
719
|
+
}
|
|
720
|
+
}
|
|
721
|
+
if (masterDetail.expandedRowKeys === undefined) {
|
|
722
|
+
setUncontrolledMasterDetailExpandedKeys(nextKeys);
|
|
723
|
+
}
|
|
724
|
+
(_a = masterDetail.onExpandedRowKeysChange) === null || _a === void 0 ? void 0 : _a.call(masterDetail, nextKeys, {
|
|
725
|
+
rowKey: rowKey,
|
|
726
|
+
expanded: !isExpanded,
|
|
727
|
+
item: item,
|
|
728
|
+
sourceIndex: sourceIndex,
|
|
729
|
+
});
|
|
730
|
+
}, [
|
|
731
|
+
effectiveMasterDetailExpandedKeysSet,
|
|
732
|
+
expandMode,
|
|
733
|
+
masterDetail,
|
|
734
|
+
masterDetailEnabled,
|
|
735
|
+
masterDetailExpandedKeys,
|
|
736
|
+
resolvedDisabled,
|
|
737
|
+
]);
|
|
738
|
+
var collapseMasterDetailRow = React.useCallback(function (rowKey) {
|
|
739
|
+
var _a;
|
|
740
|
+
if (resolvedDisabled || !masterDetailEnabled || !masterDetail)
|
|
741
|
+
return;
|
|
742
|
+
if (!effectiveMasterDetailExpandedKeysSet.has(rowKey))
|
|
743
|
+
return;
|
|
744
|
+
var nextKeys;
|
|
745
|
+
if (expandMode === 'single') {
|
|
746
|
+
nextKeys = [];
|
|
747
|
+
}
|
|
748
|
+
else {
|
|
749
|
+
nextKeys = masterDetailExpandedKeys.filter(function (k) { return !Object.is(k, rowKey); });
|
|
750
|
+
}
|
|
751
|
+
if (masterDetail.expandedRowKeys === undefined) {
|
|
752
|
+
setUncontrolledMasterDetailExpandedKeys(nextKeys);
|
|
753
|
+
}
|
|
754
|
+
var sourceIndex = resolvedData.findIndex(function (d) { return Object.is((0, utils_1.getCellValueByRowKey)(resolvedRowKey, d.values), rowKey); });
|
|
755
|
+
var item = resolvedData[sourceIndex];
|
|
756
|
+
if (item) {
|
|
757
|
+
(_a = masterDetail.onExpandedRowKeysChange) === null || _a === void 0 ? void 0 : _a.call(masterDetail, nextKeys, {
|
|
758
|
+
rowKey: rowKey,
|
|
759
|
+
expanded: false,
|
|
760
|
+
item: item,
|
|
761
|
+
sourceIndex: sourceIndex >= 0 ? sourceIndex : 0,
|
|
762
|
+
});
|
|
763
|
+
}
|
|
764
|
+
}, [
|
|
765
|
+
effectiveMasterDetailExpandedKeysSet,
|
|
766
|
+
expandMode,
|
|
767
|
+
masterDetail,
|
|
768
|
+
masterDetailEnabled,
|
|
769
|
+
masterDetailExpandedKeys,
|
|
770
|
+
resolvedData,
|
|
771
|
+
resolvedDisabled,
|
|
772
|
+
resolvedRowKey,
|
|
773
|
+
]);
|
|
774
|
+
var getToggleElementId = React.useCallback(function (rowKey) { return "".concat(gridInstanceId, "-detail-toggle-").concat(encodeMasterDetailRowKey(rowKey)); }, [gridInstanceId]);
|
|
775
|
+
var getDetailElementId = React.useCallback(function (rowKey) { return "".concat(gridInstanceId, "-detail-region-").concat(encodeMasterDetailRowKey(rowKey)); }, [gridInstanceId]);
|
|
776
|
+
var masterDetailContextValue = React.useMemo(function () {
|
|
777
|
+
var _a, _b;
|
|
778
|
+
if (!masterDetailEnabled || !resolvedExpandColumnId || resolvedRowKey === undefined || !masterDetail) {
|
|
779
|
+
return undefined;
|
|
780
|
+
}
|
|
781
|
+
return {
|
|
782
|
+
gridId: gridInstanceId,
|
|
783
|
+
expandColumnId: resolvedExpandColumnId,
|
|
784
|
+
icons: masterDetail.icons,
|
|
785
|
+
expandAriaLabel: (_a = masterDetail.expandAriaLabel) !== null && _a !== void 0 ? _a : 'Expand row',
|
|
786
|
+
collapseAriaLabel: (_b = masterDetail.collapseAriaLabel) !== null && _b !== void 0 ? _b : 'Collapse row',
|
|
787
|
+
disabled: resolvedDisabled,
|
|
788
|
+
expandedKeysSet: effectiveMasterDetailExpandedKeysSet,
|
|
789
|
+
getRowKey: function (values) {
|
|
790
|
+
var key = (0, utils_1.getCellValueByRowKey)(resolvedRowKey, values);
|
|
791
|
+
return key === undefined || key === null ? undefined : key;
|
|
792
|
+
},
|
|
793
|
+
hasDetail: function (item, sourceIndex) {
|
|
794
|
+
var rowKey = (0, utils_1.getCellValueByRowKey)(resolvedRowKey, item.values);
|
|
795
|
+
if (rowKey === undefined || rowKey === null)
|
|
796
|
+
return false;
|
|
797
|
+
if (masterDetailRowKeysMeta === null || masterDetailRowKeysMeta === void 0 ? void 0 : masterDetailRowKeysMeta.duplicateKeys.has(rowKey))
|
|
798
|
+
return false;
|
|
799
|
+
if (masterDetail.hasDetail) {
|
|
800
|
+
try {
|
|
801
|
+
return masterDetail.hasDetail(item, sourceIndex);
|
|
802
|
+
}
|
|
803
|
+
catch (_a) {
|
|
804
|
+
return false;
|
|
805
|
+
}
|
|
806
|
+
}
|
|
807
|
+
return true;
|
|
808
|
+
},
|
|
809
|
+
detailRender: masterDetail.detailRender,
|
|
810
|
+
toggle: toggleMasterDetailRow,
|
|
811
|
+
collapse: collapseMasterDetailRow,
|
|
812
|
+
getToggleElementId: getToggleElementId,
|
|
813
|
+
getDetailElementId: getDetailElementId,
|
|
814
|
+
};
|
|
815
|
+
}, [
|
|
816
|
+
collapseMasterDetailRow,
|
|
817
|
+
effectiveMasterDetailExpandedKeysSet,
|
|
818
|
+
getDetailElementId,
|
|
819
|
+
getToggleElementId,
|
|
820
|
+
gridInstanceId,
|
|
821
|
+
masterDetail,
|
|
822
|
+
masterDetailEnabled,
|
|
823
|
+
masterDetailRowKeysMeta === null || masterDetailRowKeysMeta === void 0 ? void 0 : masterDetailRowKeysMeta.duplicateKeys,
|
|
824
|
+
resolvedDisabled,
|
|
825
|
+
resolvedExpandColumnId,
|
|
826
|
+
resolvedRowKey,
|
|
827
|
+
toggleMasterDetailRow,
|
|
828
|
+
]);
|
|
829
|
+
var rowHeightMetrics = React.useMemo(function () {
|
|
830
|
+
var fallbackHeight = itemHeight + itemPadding * 2;
|
|
831
|
+
if (!masterDetailEnabled || !masterDetail) {
|
|
832
|
+
return (0, utils_1.createRowHeightMetrics)(displayData, fallbackHeight, getRowHeight);
|
|
833
|
+
}
|
|
834
|
+
return (0, utils_1.createRowHeightMetrics)(displayData, fallbackHeight, getRowHeight, {
|
|
835
|
+
expandedKeysSet: effectiveMasterDetailExpandedKeysSet,
|
|
836
|
+
getRowKey: function (values) {
|
|
837
|
+
var key = (0, utils_1.getCellValueByRowKey)(resolvedRowKey, values);
|
|
838
|
+
return key === undefined || key === null ? undefined : key;
|
|
839
|
+
},
|
|
840
|
+
getDetailHeight: function (item, sourceIndex) {
|
|
841
|
+
if (typeof masterDetail.detailRowHeight === 'function') {
|
|
842
|
+
try {
|
|
843
|
+
return masterDetail.detailRowHeight(item, sourceIndex);
|
|
844
|
+
}
|
|
845
|
+
catch (_a) {
|
|
846
|
+
return 200;
|
|
847
|
+
}
|
|
848
|
+
}
|
|
849
|
+
return typeof masterDetail.detailRowHeight === 'number' && masterDetail.detailRowHeight > 0
|
|
850
|
+
? masterDetail.detailRowHeight
|
|
851
|
+
: 200;
|
|
852
|
+
},
|
|
853
|
+
hasDetail: function (item, sourceIndex) {
|
|
854
|
+
var rowKey = (0, utils_1.getCellValueByRowKey)(resolvedRowKey, item.values);
|
|
855
|
+
if (rowKey === undefined || rowKey === null)
|
|
856
|
+
return false;
|
|
857
|
+
if (masterDetailRowKeysMeta === null || masterDetailRowKeysMeta === void 0 ? void 0 : masterDetailRowKeysMeta.duplicateKeys.has(rowKey))
|
|
858
|
+
return false;
|
|
859
|
+
if (masterDetail.hasDetail) {
|
|
860
|
+
try {
|
|
861
|
+
return masterDetail.hasDetail(item, sourceIndex);
|
|
862
|
+
}
|
|
863
|
+
catch (_a) {
|
|
864
|
+
return false;
|
|
865
|
+
}
|
|
866
|
+
}
|
|
867
|
+
return true;
|
|
868
|
+
},
|
|
869
|
+
sourceIndexByVisibleIndex: processedResult.sourceIndexByVisibleIndex,
|
|
870
|
+
});
|
|
871
|
+
}, [
|
|
872
|
+
displayData,
|
|
873
|
+
effectiveMasterDetailExpandedKeysSet,
|
|
874
|
+
getRowHeight,
|
|
875
|
+
itemHeight,
|
|
876
|
+
itemPadding,
|
|
877
|
+
masterDetail,
|
|
878
|
+
masterDetailEnabled,
|
|
879
|
+
masterDetailRowKeysMeta === null || masterDetailRowKeysMeta === void 0 ? void 0 : masterDetailRowKeysMeta.duplicateKeys,
|
|
880
|
+
processedResult.sourceIndexByVisibleIndex,
|
|
881
|
+
resolvedRowKey,
|
|
882
|
+
]);
|
|
550
883
|
var resolvedFrozenRowCount = pivotEnabled
|
|
551
884
|
? 0
|
|
552
885
|
: Math.min(Math.max(Math.floor(frozenRowCount), 0), displayData.length);
|
|
@@ -594,7 +927,7 @@ function BGrid(_a) {
|
|
|
594
927
|
var resolvedStatus = React.useMemo(function () { return (0, utils_1.resolveStatusOptions)(status); }, [status]);
|
|
595
928
|
var resolvedPagination = React.useMemo(function () { return (0, utils_1.resolvePaginationViewOptions)(pagination); }, [pagination]);
|
|
596
929
|
var resolvedScrollbar = React.useMemo(function () { return (0, utils_1.resolveScrollbarOptions)(scrollbar); }, [scrollbar]);
|
|
597
|
-
var resolvedBottomBarHeight = (
|
|
930
|
+
var resolvedBottomBarHeight = (_f = bottomBarHeight !== null && bottomBarHeight !== void 0 ? bottomBarHeight : footerHeight) !== null && _f !== void 0 ? _f : 30;
|
|
598
931
|
var initialShowBottomBar = React.useMemo(function () {
|
|
599
932
|
return (0, utils_1.shouldRenderBottomBar)({
|
|
600
933
|
hasPage: !!resolvedPage,
|
|
@@ -608,6 +941,13 @@ function BGrid(_a) {
|
|
|
608
941
|
console.warn('[BGrid] Both bottomBarHeight and footerHeight were provided. bottomBarHeight takes precedence.');
|
|
609
942
|
}
|
|
610
943
|
}, [bottomBarHeight, footerHeight]);
|
|
944
|
+
var resolvedSummaryHeight = React.useMemo(function () {
|
|
945
|
+
return (0, utils_1.computeSummaryHeight)({
|
|
946
|
+
summary: resolvedSummary,
|
|
947
|
+
summaryHeight: explicitSummaryHeight,
|
|
948
|
+
summaryRowHeight: summaryRowHeight,
|
|
949
|
+
});
|
|
950
|
+
}, [resolvedSummary, explicitSummaryHeight, summaryRowHeight]);
|
|
611
951
|
var initialStoreState = React.useMemo(function () {
|
|
612
952
|
var _a, _b, _c;
|
|
613
953
|
var initialWidth = width !== undefined ? Math.max(width, 100) : 0;
|
|
@@ -617,7 +957,7 @@ function BGrid(_a) {
|
|
|
617
957
|
? Math.max(initialHeight -
|
|
618
958
|
headerHeight -
|
|
619
959
|
(initialShowBottomBar ? resolvedBottomBarHeight : 0) -
|
|
620
|
-
(resolvedSummary ?
|
|
960
|
+
(resolvedSummary ? resolvedSummaryHeight : 0) -
|
|
621
961
|
containerBorderWidth * 2, 0)
|
|
622
962
|
: 0;
|
|
623
963
|
var displayItemCount = contentBodyHeight > 0 ? Math.ceil(contentBodyHeight / (itemHeight + itemPadding * 2)) : 0;
|
|
@@ -638,7 +978,8 @@ function BGrid(_a) {
|
|
|
638
978
|
scrollbar: resolvedScrollbar,
|
|
639
979
|
status: resolvedStatus,
|
|
640
980
|
pagination: resolvedPagination,
|
|
641
|
-
summaryHeight:
|
|
981
|
+
summaryHeight: resolvedSummaryHeight,
|
|
982
|
+
summaryRowHeight: summaryRowHeight,
|
|
642
983
|
itemHeight: itemHeight,
|
|
643
984
|
itemPadding: itemPadding,
|
|
644
985
|
frozenColumnIndex: resolvedFrozenColumnIndex,
|
|
@@ -709,7 +1050,8 @@ function BGrid(_a) {
|
|
|
709
1050
|
resolvedScrollbar,
|
|
710
1051
|
resolvedStatus,
|
|
711
1052
|
resolvedPagination,
|
|
712
|
-
|
|
1053
|
+
resolvedSummaryHeight,
|
|
1054
|
+
summaryRowHeight,
|
|
713
1055
|
itemHeight,
|
|
714
1056
|
itemPadding,
|
|
715
1057
|
rowHeightMetrics,
|
|
@@ -759,31 +1101,33 @@ function BGrid(_a) {
|
|
|
759
1101
|
]);
|
|
760
1102
|
return (React.createElement(store_1.AppStoreProvider, { initialState: initialStoreState },
|
|
761
1103
|
React.createElement(TreeContext_1.TreeContext.Provider, { value: treeContextValue },
|
|
762
|
-
React.createElement(
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
1104
|
+
React.createElement(MasterDetailContext_1.MasterDetailContext.Provider, { value: masterDetailContextValue },
|
|
1105
|
+
React.createElement(Table_1.default, { ref: ref, sourceColumns: resolvedColumns,
|
|
1106
|
+
columns: computedColumns,
|
|
1107
|
+
columnsGroup: visibilityProjection.columnsGroup,
|
|
1108
|
+
columnGroups: visibilityProjection.columnGroups,
|
|
1109
|
+
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,
|
|
1110
|
+
scrollbar: resolvedScrollbar,
|
|
1111
|
+
status: resolvedStatus,
|
|
1112
|
+
pagination: resolvedPagination,
|
|
1113
|
+
summaryHeight: resolvedSummaryHeight, summaryRowHeight: summaryRowHeight, itemHeight: itemHeight, itemPadding: itemPadding, rowHeightMetrics: rowHeightMetrics, frozenColumnIndex: resolvedFrozenColumnIndex,
|
|
1114
|
+
frozenRowCount: resolvedFrozenRowCount,
|
|
1115
|
+
rowChecked: resolvedRowChecked, checkedIndexesMap: checkedIndexesMap, sort: resolvedSort, sortParams: sortParams, dataQuery: resolvedDataQuery,
|
|
1116
|
+
dataControl: resolvedDataControl, icons: icons, columnVisibilityState: columnVisibilityState, searchOptions: resolvedSearchOptions,
|
|
1117
|
+
contextMenuOptions: resolvedContextMenuOptions,
|
|
1118
|
+
page: resolvedPage,
|
|
1119
|
+
data: displayData,
|
|
1120
|
+
sourceData: resolvedData,
|
|
1121
|
+
sourceIndexByVisibleIndex: processedResult.sourceIndexByVisibleIndex,
|
|
1122
|
+
visibleIndexBySourceIndex: processedResult.visibleIndexBySourceIndex,
|
|
1123
|
+
onClick: resolvedOnClick,
|
|
1124
|
+
rowKey: resolvedRowKey,
|
|
1125
|
+
selectedRowKey: resolvedSelectedRowKey,
|
|
1126
|
+
editable: resolvedEditable, editTrigger: editTrigger, onChangeData: resolvedOnChangeData,
|
|
1127
|
+
showLineNumber: resolvedShowLineNumber, msg: msg, getRowClassName: resolvedGetRowClassName,
|
|
1128
|
+
cellMergeOptions: resolvedCellMergeOptions,
|
|
1129
|
+
cellSelectionOptions: resolvedCellSelectionOptions, cellNavigationOptions: cellNavigationOptions, variant: variant, summary: resolvedSummary,
|
|
1130
|
+
columnSortable: resolvedColumnSortable,
|
|
1131
|
+
reorder: resolvedReorder,
|
|
1132
|
+
treeEnabled: !!treeContextValue })))));
|
|
789
1133
|
}
|
|
@@ -49,6 +49,8 @@ function CellNavigationDomSync(_a) {
|
|
|
49
49
|
container
|
|
50
50
|
.querySelectorAll('[data-bgrid-cell-active="true"], [data-bgrid-cell-active-multi-selection="true"]')
|
|
51
51
|
.forEach(function (cell) {
|
|
52
|
+
if (cell.closest('[role="grid"], [role="treegrid"]') !== container)
|
|
53
|
+
return;
|
|
52
54
|
cell.classList.remove('bgrid-cell-active', 'bgrid-cell-active-multi-selection');
|
|
53
55
|
cell.removeAttribute('data-bgrid-cell-active');
|
|
54
56
|
cell.removeAttribute('data-bgrid-cell-active-multi-selection');
|
|
@@ -57,6 +59,8 @@ function CellNavigationDomSync(_a) {
|
|
|
57
59
|
container
|
|
58
60
|
.querySelectorAll("td[data-bgrid-cell=\"true\"][data-bgrid-logical-row-index=\"".concat(activeCell.rowIndex, "\"][data-column-index=\"").concat(activeCell.columnIndex, "\"]"))
|
|
59
61
|
.forEach(function (cell) {
|
|
62
|
+
if (cell.closest('[role="grid"], [role="treegrid"]') !== container)
|
|
63
|
+
return;
|
|
60
64
|
cell.classList.add('bgrid-cell-active');
|
|
61
65
|
cell.setAttribute('data-bgrid-cell-active', 'true');
|
|
62
66
|
if (hasMultiCellSelection) {
|
|
@@ -70,6 +74,8 @@ function CellNavigationDomSync(_a) {
|
|
|
70
74
|
var wholeRowSelection = coversEveryColumn && !coversEveryRow;
|
|
71
75
|
var wholeColumnSelection = coversEveryRow && !coversEveryColumn;
|
|
72
76
|
container.querySelectorAll('.bgrid-line-number-cell[data-row-index]').forEach(function (cell) {
|
|
77
|
+
if (cell.closest('[role="grid"], [role="treegrid"]') !== container)
|
|
78
|
+
return;
|
|
73
79
|
var rowIndex = Number(cell.dataset.rowIndex);
|
|
74
80
|
var active = !wholeColumnSelection &&
|
|
75
81
|
Number.isFinite(rowIndex) &&
|
|
@@ -81,6 +87,8 @@ function CellNavigationDomSync(_a) {
|
|
|
81
87
|
cell.removeAttribute('data-bgrid-row-axis-active');
|
|
82
88
|
});
|
|
83
89
|
container.querySelectorAll('[data-header-cell-type][data-column-index]').forEach(function (cell) {
|
|
90
|
+
if (cell.closest('[role="grid"], [role="treegrid"]') !== container)
|
|
91
|
+
return;
|
|
84
92
|
var columnIndex = Number(cell.dataset.columnIndex);
|
|
85
93
|
var active = cell.dataset.headerCellType === 'column' &&
|
|
86
94
|
!wholeRowSelection &&
|