@trops/dash-core 0.1.522 → 0.1.523
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/dist/index.esm.js +551 -386
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +551 -386
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -9289,7 +9289,7 @@ function _objectSpread$Z(e) { for (var r = 1; r < arguments.length; r++) { var t
|
|
|
9289
9289
|
* multi-cell selections — that's a separate code path.
|
|
9290
9290
|
*/
|
|
9291
9291
|
|
|
9292
|
-
var META_KEYS = new Set(["rows", "cols", "gap"]);
|
|
9292
|
+
var META_KEYS$5 = new Set(["rows", "cols", "gap"]);
|
|
9293
9293
|
|
|
9294
9294
|
/**
|
|
9295
9295
|
* Merge `(row, col)` with the cell to its right. Skips empty
|
|
@@ -9308,7 +9308,7 @@ function mergeRightOp(grid, row, col) {
|
|
|
9308
9308
|
var bestCol = Infinity;
|
|
9309
9309
|
for (var _i = 0, _Object$keys = Object.keys(grid); _i < _Object$keys.length; _i++) {
|
|
9310
9310
|
var k = _Object$keys[_i];
|
|
9311
|
-
if (META_KEYS.has(k)) continue;
|
|
9311
|
+
if (META_KEYS$5.has(k)) continue;
|
|
9312
9312
|
var _k$split$map = k.split(".").map(function (n) {
|
|
9313
9313
|
return parseInt(n, 10);
|
|
9314
9314
|
}),
|
|
@@ -26634,6 +26634,497 @@ function mergeGridCellsOp(grid, cellNumbers, keepComponentId) {
|
|
|
26634
26634
|
|
|
26635
26635
|
function ownKeys$D(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
26636
26636
|
function _objectSpread$D(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$D(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$D(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
26637
|
+
/**
|
|
26638
|
+
* splitGridCellOp
|
|
26639
|
+
*
|
|
26640
|
+
* Pure helper for `DashboardModel.splitGridCell`. Splits a single
|
|
26641
|
+
* cell horizontally or vertically into `count` sub-cells.
|
|
26642
|
+
*
|
|
26643
|
+
* Two regimes (preserving original DashboardModel semantics):
|
|
26644
|
+
*
|
|
26645
|
+
* CASE A — divisible span: when the target cell already has a span
|
|
26646
|
+
* in the split direction that's divisible by count, simply
|
|
26647
|
+
* subdivide the span into count pieces. No grid resolution change.
|
|
26648
|
+
*
|
|
26649
|
+
* CASE B — non-divisible span (typical for an unspanned cell with
|
|
26650
|
+
* count=2): multiply the entire grid's resolution in the split
|
|
26651
|
+
* direction by count, reposition every visible cell to its
|
|
26652
|
+
* equivalent location, and place the count sub-cells at the
|
|
26653
|
+
* scaled target position.
|
|
26654
|
+
*
|
|
26655
|
+
* In both regimes the widget on the original target cell ends up on
|
|
26656
|
+
* the FIRST sub-cell. The other sub-cells are empty.
|
|
26657
|
+
*
|
|
26658
|
+
* Pure — input grid is never mutated.
|
|
26659
|
+
*/
|
|
26660
|
+
|
|
26661
|
+
var META_KEYS$4 = new Set(["rows", "cols", "gap", "rowHeights", "rowModes", "colModes", "colWidths"]);
|
|
26662
|
+
function _isCellKey$4(key) {
|
|
26663
|
+
return /^\d+\.\d+$/.test(key);
|
|
26664
|
+
}
|
|
26665
|
+
function _cloneShallow(grid) {
|
|
26666
|
+
var out = {};
|
|
26667
|
+
for (var _i = 0, _Object$keys = Object.keys(grid); _i < _Object$keys.length; _i++) {
|
|
26668
|
+
var k = _Object$keys[_i];
|
|
26669
|
+
if (META_KEYS$4.has(k)) {
|
|
26670
|
+
out[k] = grid[k];
|
|
26671
|
+
} else if (_isCellKey$4(k)) {
|
|
26672
|
+
var cell = grid[k];
|
|
26673
|
+
out[k] = _objectSpread$D({}, cell);
|
|
26674
|
+
if (cell.span) out[k].span = _objectSpread$D({}, cell.span);
|
|
26675
|
+
}
|
|
26676
|
+
}
|
|
26677
|
+
return out;
|
|
26678
|
+
}
|
|
26679
|
+
function _stripSpan(span, removeKey) {
|
|
26680
|
+
if (!span) return undefined;
|
|
26681
|
+
var out = _objectSpread$D({}, span);
|
|
26682
|
+
delete out[removeKey];
|
|
26683
|
+
return Object.keys(out).length > 0 ? out : undefined;
|
|
26684
|
+
}
|
|
26685
|
+
function _splitCaseADivisibleSpan(grid, row, col, direction, count) {
|
|
26686
|
+
var _targetCell$span, _targetCell$span2;
|
|
26687
|
+
// direction: "horizontal" splits col span; "vertical" splits row span.
|
|
26688
|
+
var isHorizontal = direction === "horizontal";
|
|
26689
|
+
var targetCell = grid["".concat(row, ".").concat(col)];
|
|
26690
|
+
var targetSpanCol = ((_targetCell$span = targetCell.span) === null || _targetCell$span === void 0 ? void 0 : _targetCell$span.col) || 1;
|
|
26691
|
+
var targetSpanRow = ((_targetCell$span2 = targetCell.span) === null || _targetCell$span2 === void 0 ? void 0 : _targetCell$span2.row) || 1;
|
|
26692
|
+
var splitSpan = isHorizontal ? targetSpanCol : targetSpanRow;
|
|
26693
|
+
var otherSpan = isHorizontal ? targetSpanRow : targetSpanCol;
|
|
26694
|
+
var subSpan = splitSpan / count;
|
|
26695
|
+
var component = targetCell.component;
|
|
26696
|
+
var out = _cloneShallow(grid);
|
|
26697
|
+
|
|
26698
|
+
// Unhide cells previously covered by the old span.
|
|
26699
|
+
for (var sr = row; sr < row + targetSpanRow; sr++) {
|
|
26700
|
+
for (var sc = col; sc < col + targetSpanCol; sc++) {
|
|
26701
|
+
var k = "".concat(sr, ".").concat(sc);
|
|
26702
|
+
if (out[k]) out[k] = _objectSpread$D(_objectSpread$D({}, out[k]), {}, {
|
|
26703
|
+
hide: false
|
|
26704
|
+
});
|
|
26705
|
+
}
|
|
26706
|
+
}
|
|
26707
|
+
|
|
26708
|
+
// Drop the old span on the target.
|
|
26709
|
+
if (out["".concat(row, ".").concat(col)].span) {
|
|
26710
|
+
delete out["".concat(row, ".").concat(col)].span;
|
|
26711
|
+
}
|
|
26712
|
+
|
|
26713
|
+
// Create the count sub-cells.
|
|
26714
|
+
for (var i = 0; i < count; i++) {
|
|
26715
|
+
var subRow = isHorizontal ? row : row + i * subSpan;
|
|
26716
|
+
var subCol = isHorizontal ? col + i * subSpan : col;
|
|
26717
|
+
var key = "".concat(subRow, ".").concat(subCol);
|
|
26718
|
+
var sub = {
|
|
26719
|
+
component: i === 0 ? component : null,
|
|
26720
|
+
hide: false
|
|
26721
|
+
};
|
|
26722
|
+
if (subSpan > 1 || otherSpan > 1) {
|
|
26723
|
+
sub.span = {};
|
|
26724
|
+
if (isHorizontal) {
|
|
26725
|
+
if (subSpan > 1) sub.span.col = subSpan;
|
|
26726
|
+
if (otherSpan > 1) sub.span.row = otherSpan;
|
|
26727
|
+
} else {
|
|
26728
|
+
if (subSpan > 1) sub.span.row = subSpan;
|
|
26729
|
+
if (otherSpan > 1) sub.span.col = otherSpan;
|
|
26730
|
+
}
|
|
26731
|
+
}
|
|
26732
|
+
out[key] = sub;
|
|
26733
|
+
}
|
|
26734
|
+
return out;
|
|
26735
|
+
}
|
|
26736
|
+
function _splitCaseBResolutionMultiply(grid, row, col, direction, count) {
|
|
26737
|
+
var _targetCell$span3, _targetCell$span4, _targetCell$span5, _targetCell$span6;
|
|
26738
|
+
var isHorizontal = direction === "horizontal";
|
|
26739
|
+
var targetCell = grid["".concat(row, ".").concat(col)];
|
|
26740
|
+
var oldRows = grid.rows || 1;
|
|
26741
|
+
var oldCols = grid.cols || 1;
|
|
26742
|
+
var component = targetCell.component;
|
|
26743
|
+
|
|
26744
|
+
// 1. Collect every visible cell's data + position + spans.
|
|
26745
|
+
var visibleCells = [];
|
|
26746
|
+
for (var r = 1; r <= oldRows; r++) {
|
|
26747
|
+
for (var c = 1; c <= oldCols; c++) {
|
|
26748
|
+
var key = "".concat(r, ".").concat(c);
|
|
26749
|
+
var c0 = grid[key];
|
|
26750
|
+
if (c0 && !c0.hide) {
|
|
26751
|
+
var _c0$span, _c0$span2;
|
|
26752
|
+
visibleCells.push({
|
|
26753
|
+
row: r,
|
|
26754
|
+
col: c,
|
|
26755
|
+
data: _objectSpread$D({}, c0),
|
|
26756
|
+
spanRow: ((_c0$span = c0.span) === null || _c0$span === void 0 ? void 0 : _c0$span.row) || 1,
|
|
26757
|
+
spanCol: ((_c0$span2 = c0.span) === null || _c0$span2 === void 0 ? void 0 : _c0$span2.col) || 1
|
|
26758
|
+
});
|
|
26759
|
+
}
|
|
26760
|
+
}
|
|
26761
|
+
}
|
|
26762
|
+
|
|
26763
|
+
// 2. Build the new grid: copy meta keys, drop all cell keys.
|
|
26764
|
+
var out = {};
|
|
26765
|
+
for (var _i2 = 0, _Object$keys2 = Object.keys(grid); _i2 < _Object$keys2.length; _i2++) {
|
|
26766
|
+
var k = _Object$keys2[_i2];
|
|
26767
|
+
if (META_KEYS$4.has(k)) out[k] = grid[k];
|
|
26768
|
+
}
|
|
26769
|
+
if (isHorizontal) {
|
|
26770
|
+
out.cols = oldCols * count;
|
|
26771
|
+
out.rows = oldRows;
|
|
26772
|
+
} else {
|
|
26773
|
+
out.rows = oldRows * count;
|
|
26774
|
+
out.cols = oldCols;
|
|
26775
|
+
}
|
|
26776
|
+
|
|
26777
|
+
// 3. Reposition every visible cell to its scaled position with the
|
|
26778
|
+
// span scaled in the split direction.
|
|
26779
|
+
for (var _i3 = 0, _visibleCells = visibleCells; _i3 < _visibleCells.length; _i3++) {
|
|
26780
|
+
var vc = _visibleCells[_i3];
|
|
26781
|
+
var newRow = isHorizontal ? vc.row : (vc.row - 1) * count + 1;
|
|
26782
|
+
var newCol = isHorizontal ? (vc.col - 1) * count + 1 : vc.col;
|
|
26783
|
+
var _key = "".concat(newRow, ".").concat(newCol);
|
|
26784
|
+
var repositioned = _objectSpread$D(_objectSpread$D({}, vc.data), {}, {
|
|
26785
|
+
hide: false,
|
|
26786
|
+
span: {
|
|
26787
|
+
row: isHorizontal ? vc.spanRow : vc.spanRow * count,
|
|
26788
|
+
col: isHorizontal ? vc.spanCol * count : vc.spanCol
|
|
26789
|
+
}
|
|
26790
|
+
});
|
|
26791
|
+
out[_key] = repositioned;
|
|
26792
|
+
}
|
|
26793
|
+
|
|
26794
|
+
// 4. Replace the target cell's repositioned entry with count sub-cells.
|
|
26795
|
+
var newTargetRow = isHorizontal ? row : (row - 1) * count + 1;
|
|
26796
|
+
var newTargetCol = isHorizontal ? (col - 1) * count + 1 : col;
|
|
26797
|
+
var newTargetSpanInSplitDir = isHorizontal ? (((_targetCell$span3 = targetCell.span) === null || _targetCell$span3 === void 0 ? void 0 : _targetCell$span3.col) || 1) * count : (((_targetCell$span4 = targetCell.span) === null || _targetCell$span4 === void 0 ? void 0 : _targetCell$span4.row) || 1) * count;
|
|
26798
|
+
var subSpan = newTargetSpanInSplitDir / count;
|
|
26799
|
+
var otherSpan = isHorizontal ? ((_targetCell$span5 = targetCell.span) === null || _targetCell$span5 === void 0 ? void 0 : _targetCell$span5.row) || 1 : ((_targetCell$span6 = targetCell.span) === null || _targetCell$span6 === void 0 ? void 0 : _targetCell$span6.col) || 1;
|
|
26800
|
+
for (var i = 0; i < count; i++) {
|
|
26801
|
+
var subRow = isHorizontal ? newTargetRow : newTargetRow + i * subSpan;
|
|
26802
|
+
var subCol = isHorizontal ? newTargetCol + i * subSpan : newTargetCol;
|
|
26803
|
+
var _key2 = "".concat(subRow, ".").concat(subCol);
|
|
26804
|
+
var sub = {
|
|
26805
|
+
component: i === 0 ? component : null,
|
|
26806
|
+
hide: false
|
|
26807
|
+
};
|
|
26808
|
+
if (subSpan > 1 || otherSpan > 1) {
|
|
26809
|
+
sub.span = {};
|
|
26810
|
+
if (isHorizontal) {
|
|
26811
|
+
if (subSpan > 1) sub.span.col = subSpan;
|
|
26812
|
+
if (otherSpan > 1) sub.span.row = otherSpan;
|
|
26813
|
+
} else {
|
|
26814
|
+
if (subSpan > 1) sub.span.row = subSpan;
|
|
26815
|
+
if (otherSpan > 1) sub.span.col = otherSpan;
|
|
26816
|
+
}
|
|
26817
|
+
}
|
|
26818
|
+
out[_key2] = sub;
|
|
26819
|
+
}
|
|
26820
|
+
return out;
|
|
26821
|
+
}
|
|
26822
|
+
function splitGridCellOp(grid, cellNumber, direction) {
|
|
26823
|
+
var _targetCell$span7, _targetCell$span8;
|
|
26824
|
+
var count = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 2;
|
|
26825
|
+
if (!grid) return grid;
|
|
26826
|
+
var targetCell = grid[cellNumber];
|
|
26827
|
+
if (!targetCell) return grid;
|
|
26828
|
+
if (direction !== "horizontal" && direction !== "vertical") return grid;
|
|
26829
|
+
if (!Number.isFinite(count) || count < 2) return grid;
|
|
26830
|
+
var _cellNumber$split$map = cellNumber.split(".").map(Number),
|
|
26831
|
+
_cellNumber$split$map2 = _slicedToArray(_cellNumber$split$map, 2),
|
|
26832
|
+
row = _cellNumber$split$map2[0],
|
|
26833
|
+
col = _cellNumber$split$map2[1];
|
|
26834
|
+
var targetSpanInSplitDir = direction === "horizontal" ? ((_targetCell$span7 = targetCell.span) === null || _targetCell$span7 === void 0 ? void 0 : _targetCell$span7.col) || 1 : ((_targetCell$span8 = targetCell.span) === null || _targetCell$span8 === void 0 ? void 0 : _targetCell$span8.row) || 1;
|
|
26835
|
+
if (targetSpanInSplitDir % count === 0) {
|
|
26836
|
+
return _splitCaseADivisibleSpan(grid, row, col, direction, count);
|
|
26837
|
+
}
|
|
26838
|
+
return _splitCaseBResolutionMultiply(grid, row, col, direction, count);
|
|
26839
|
+
}
|
|
26840
|
+
|
|
26841
|
+
// Exposed for tests / DashboardModel utility (kept private until needed).
|
|
26842
|
+
splitGridCellOp._stripSpan = _stripSpan;
|
|
26843
|
+
|
|
26844
|
+
/**
|
|
26845
|
+
* addGridRowOp
|
|
26846
|
+
*
|
|
26847
|
+
* Pure helper for `DashboardModel.addGridRow`. Inserts a new empty row
|
|
26848
|
+
* after the supplied row number (afterRow=0 inserts at the top). All
|
|
26849
|
+
* rows at or after the insertion point shift down by one. rowHeights
|
|
26850
|
+
* and rowModes maps shift correspondingly so that per-row sizing/mode
|
|
26851
|
+
* state tracks the original rows.
|
|
26852
|
+
*
|
|
26853
|
+
* Pure — input grid is never mutated.
|
|
26854
|
+
*/
|
|
26855
|
+
|
|
26856
|
+
var META_KEYS$3 = new Set(["rows", "cols", "gap", "rowHeights", "rowModes", "colWidths"]);
|
|
26857
|
+
function _isCellKey$3(key) {
|
|
26858
|
+
return /^\d+\.\d+$/.test(key);
|
|
26859
|
+
}
|
|
26860
|
+
function _shiftKeyMap$1(map, insertAt) {
|
|
26861
|
+
if (!map) return undefined;
|
|
26862
|
+
var shifted = {};
|
|
26863
|
+
for (var _i = 0, _Object$entries = Object.entries(map); _i < _Object$entries.length; _i++) {
|
|
26864
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
26865
|
+
key = _Object$entries$_i[0],
|
|
26866
|
+
value = _Object$entries$_i[1];
|
|
26867
|
+
var n = Number(key);
|
|
26868
|
+
shifted[String(n >= insertAt ? n + 1 : n)] = value;
|
|
26869
|
+
}
|
|
26870
|
+
return Object.keys(shifted).length > 0 ? shifted : undefined;
|
|
26871
|
+
}
|
|
26872
|
+
function addGridRowOp(grid) {
|
|
26873
|
+
var afterRow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
26874
|
+
if (!grid) return grid;
|
|
26875
|
+
var newRowNumber = afterRow + 1;
|
|
26876
|
+
var out = {};
|
|
26877
|
+
// Copy meta keys forward.
|
|
26878
|
+
for (var _i2 = 0, _Object$keys = Object.keys(grid); _i2 < _Object$keys.length; _i2++) {
|
|
26879
|
+
var k = _Object$keys[_i2];
|
|
26880
|
+
if (META_KEYS$3.has(k)) out[k] = grid[k];
|
|
26881
|
+
}
|
|
26882
|
+
out.rows = (grid.rows || 0) + 1;
|
|
26883
|
+
out.cols = grid.cols;
|
|
26884
|
+
|
|
26885
|
+
// Walk every cell. Cells at row >= insertion point shift down by 1.
|
|
26886
|
+
for (var _i3 = 0, _Object$keys2 = Object.keys(grid); _i3 < _Object$keys2.length; _i3++) {
|
|
26887
|
+
var _k = _Object$keys2[_i3];
|
|
26888
|
+
if (!_isCellKey$3(_k)) continue;
|
|
26889
|
+
var _k$split$map = _k.split(".").map(Number),
|
|
26890
|
+
_k$split$map2 = _slicedToArray(_k$split$map, 2),
|
|
26891
|
+
r = _k$split$map2[0],
|
|
26892
|
+
c = _k$split$map2[1];
|
|
26893
|
+
var newRow = r >= newRowNumber ? r + 1 : r;
|
|
26894
|
+
out["".concat(newRow, ".").concat(c)] = grid[_k];
|
|
26895
|
+
}
|
|
26896
|
+
|
|
26897
|
+
// Insert empty cells in the new row.
|
|
26898
|
+
var cols = grid.cols || 0;
|
|
26899
|
+
for (var _c = 1; _c <= cols; _c++) {
|
|
26900
|
+
out["".concat(newRowNumber, ".").concat(_c)] = {
|
|
26901
|
+
component: null,
|
|
26902
|
+
hide: false
|
|
26903
|
+
};
|
|
26904
|
+
}
|
|
26905
|
+
|
|
26906
|
+
// Shift rowHeights / rowModes keys to track original rows.
|
|
26907
|
+
var newRowHeights = _shiftKeyMap$1(grid.rowHeights, newRowNumber);
|
|
26908
|
+
if (newRowHeights) out.rowHeights = newRowHeights;else delete out.rowHeights;
|
|
26909
|
+
var newRowModes = _shiftKeyMap$1(grid.rowModes, newRowNumber);
|
|
26910
|
+
if (newRowModes) out.rowModes = newRowModes;else delete out.rowModes;
|
|
26911
|
+
return out;
|
|
26912
|
+
}
|
|
26913
|
+
|
|
26914
|
+
/**
|
|
26915
|
+
* deleteGridRowOp
|
|
26916
|
+
*
|
|
26917
|
+
* Pure helper for `DashboardModel.deleteGridRow`. Removes the row at
|
|
26918
|
+
* `rowNumber`, shifts everything below up by one, and **returns the
|
|
26919
|
+
* list of widget component ids that lived on the deleted row** so the
|
|
26920
|
+
* caller can remove them from the layout (or surface them to a
|
|
26921
|
+
* confirm-before-delete UX in the future).
|
|
26922
|
+
*
|
|
26923
|
+
* Refuses to delete the only remaining row (returns the input grid
|
|
26924
|
+
* unchanged + empty orphans list — same fail-safe the model had).
|
|
26925
|
+
*/
|
|
26926
|
+
|
|
26927
|
+
var META_KEYS$2 = new Set(["rows", "cols", "gap", "rowHeights", "rowModes", "colModes", "colWidths"]);
|
|
26928
|
+
function _isCellKey$2(key) {
|
|
26929
|
+
return /^\d+\.\d+$/.test(key);
|
|
26930
|
+
}
|
|
26931
|
+
function _shiftKeyMapDown$1(map, deletedAt) {
|
|
26932
|
+
if (!map) return undefined;
|
|
26933
|
+
var shifted = {};
|
|
26934
|
+
for (var _i = 0, _Object$entries = Object.entries(map); _i < _Object$entries.length; _i++) {
|
|
26935
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
26936
|
+
key = _Object$entries$_i[0],
|
|
26937
|
+
value = _Object$entries$_i[1];
|
|
26938
|
+
var n = Number(key);
|
|
26939
|
+
if (n === deletedAt) continue;
|
|
26940
|
+
shifted[String(n > deletedAt ? n - 1 : n)] = value;
|
|
26941
|
+
}
|
|
26942
|
+
return Object.keys(shifted).length > 0 ? shifted : undefined;
|
|
26943
|
+
}
|
|
26944
|
+
function deleteGridRowOp(grid, rowNumber) {
|
|
26945
|
+
if (!grid) return {
|
|
26946
|
+
grid: grid,
|
|
26947
|
+
orphanedComponents: []
|
|
26948
|
+
};
|
|
26949
|
+
if ((grid.rows || 0) <= 1) {
|
|
26950
|
+
// Can't delete the only row — fail-safe no-op.
|
|
26951
|
+
return {
|
|
26952
|
+
grid: grid,
|
|
26953
|
+
orphanedComponents: []
|
|
26954
|
+
};
|
|
26955
|
+
}
|
|
26956
|
+
var out = {};
|
|
26957
|
+
var orphanedComponents = [];
|
|
26958
|
+
for (var _i2 = 0, _Object$keys = Object.keys(grid); _i2 < _Object$keys.length; _i2++) {
|
|
26959
|
+
var k = _Object$keys[_i2];
|
|
26960
|
+
if (META_KEYS$2.has(k)) {
|
|
26961
|
+
out[k] = grid[k];
|
|
26962
|
+
continue;
|
|
26963
|
+
}
|
|
26964
|
+
if (!_isCellKey$2(k)) continue;
|
|
26965
|
+
var _k$split$map = k.split(".").map(Number),
|
|
26966
|
+
_k$split$map2 = _slicedToArray(_k$split$map, 2),
|
|
26967
|
+
r = _k$split$map2[0],
|
|
26968
|
+
c = _k$split$map2[1];
|
|
26969
|
+
if (r === rowNumber) {
|
|
26970
|
+
// Cell is in the row being deleted — collect its component (if
|
|
26971
|
+
// any) as an orphan, drop the cell entirely.
|
|
26972
|
+
var comp = grid[k] && grid[k].component;
|
|
26973
|
+
if (comp != null) orphanedComponents.push(comp);
|
|
26974
|
+
continue;
|
|
26975
|
+
}
|
|
26976
|
+
if (r > rowNumber) {
|
|
26977
|
+
// Cells below the deleted row shift up by one.
|
|
26978
|
+
out["".concat(r - 1, ".").concat(c)] = grid[k];
|
|
26979
|
+
} else {
|
|
26980
|
+
// Cells above the deleted row are unchanged.
|
|
26981
|
+
out[k] = grid[k];
|
|
26982
|
+
}
|
|
26983
|
+
}
|
|
26984
|
+
out.rows = (grid.rows || 0) - 1;
|
|
26985
|
+
out.cols = grid.cols;
|
|
26986
|
+
var newRowHeights = _shiftKeyMapDown$1(grid.rowHeights, rowNumber);
|
|
26987
|
+
if (newRowHeights) out.rowHeights = newRowHeights;else delete out.rowHeights;
|
|
26988
|
+
var newRowModes = _shiftKeyMapDown$1(grid.rowModes, rowNumber);
|
|
26989
|
+
if (newRowModes) out.rowModes = newRowModes;else delete out.rowModes;
|
|
26990
|
+
return {
|
|
26991
|
+
grid: out,
|
|
26992
|
+
orphanedComponents: orphanedComponents
|
|
26993
|
+
};
|
|
26994
|
+
}
|
|
26995
|
+
|
|
26996
|
+
/**
|
|
26997
|
+
* addGridColumnOp
|
|
26998
|
+
*
|
|
26999
|
+
* Pure helper for `DashboardModel.addGridColumn`. Symmetric to
|
|
27000
|
+
* `addGridRowOp` but for columns. Inserts an empty column after the
|
|
27001
|
+
* supplied column number (afterCol=0 inserts at the left edge).
|
|
27002
|
+
* colModes shifts to track its original columns. (Original code
|
|
27003
|
+
* doesn't track colWidths, so we don't either; can be added later.)
|
|
27004
|
+
*/
|
|
27005
|
+
|
|
27006
|
+
var META_KEYS$1 = new Set(["rows", "cols", "gap", "rowHeights", "rowModes", "colModes", "colWidths"]);
|
|
27007
|
+
function _isCellKey$1(key) {
|
|
27008
|
+
return /^\d+\.\d+$/.test(key);
|
|
27009
|
+
}
|
|
27010
|
+
function _shiftKeyMap(map, insertAt) {
|
|
27011
|
+
if (!map) return undefined;
|
|
27012
|
+
var shifted = {};
|
|
27013
|
+
for (var _i = 0, _Object$entries = Object.entries(map); _i < _Object$entries.length; _i++) {
|
|
27014
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
27015
|
+
key = _Object$entries$_i[0],
|
|
27016
|
+
value = _Object$entries$_i[1];
|
|
27017
|
+
var n = Number(key);
|
|
27018
|
+
shifted[String(n >= insertAt ? n + 1 : n)] = value;
|
|
27019
|
+
}
|
|
27020
|
+
return Object.keys(shifted).length > 0 ? shifted : undefined;
|
|
27021
|
+
}
|
|
27022
|
+
function addGridColumnOp(grid) {
|
|
27023
|
+
var afterCol = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
27024
|
+
if (!grid) return grid;
|
|
27025
|
+
var newColNumber = afterCol + 1;
|
|
27026
|
+
var out = {};
|
|
27027
|
+
for (var _i2 = 0, _Object$keys = Object.keys(grid); _i2 < _Object$keys.length; _i2++) {
|
|
27028
|
+
var k = _Object$keys[_i2];
|
|
27029
|
+
if (META_KEYS$1.has(k)) out[k] = grid[k];
|
|
27030
|
+
}
|
|
27031
|
+
out.cols = (grid.cols || 0) + 1;
|
|
27032
|
+
out.rows = grid.rows;
|
|
27033
|
+
for (var _i3 = 0, _Object$keys2 = Object.keys(grid); _i3 < _Object$keys2.length; _i3++) {
|
|
27034
|
+
var _k = _Object$keys2[_i3];
|
|
27035
|
+
if (!_isCellKey$1(_k)) continue;
|
|
27036
|
+
var _k$split$map = _k.split(".").map(Number),
|
|
27037
|
+
_k$split$map2 = _slicedToArray(_k$split$map, 2),
|
|
27038
|
+
r = _k$split$map2[0],
|
|
27039
|
+
c = _k$split$map2[1];
|
|
27040
|
+
var newCol = c >= newColNumber ? c + 1 : c;
|
|
27041
|
+
out["".concat(r, ".").concat(newCol)] = grid[_k];
|
|
27042
|
+
}
|
|
27043
|
+
var rows = grid.rows || 0;
|
|
27044
|
+
for (var _r = 1; _r <= rows; _r++) {
|
|
27045
|
+
out["".concat(_r, ".").concat(newColNumber)] = {
|
|
27046
|
+
component: null,
|
|
27047
|
+
hide: false
|
|
27048
|
+
};
|
|
27049
|
+
}
|
|
27050
|
+
var newColModes = _shiftKeyMap(grid.colModes, newColNumber);
|
|
27051
|
+
if (newColModes) out.colModes = newColModes;else delete out.colModes;
|
|
27052
|
+
return out;
|
|
27053
|
+
}
|
|
27054
|
+
|
|
27055
|
+
/**
|
|
27056
|
+
* deleteGridColumnOp
|
|
27057
|
+
*
|
|
27058
|
+
* Pure helper for `DashboardModel.deleteGridColumn`. Symmetric to
|
|
27059
|
+
* `deleteGridRowOp` — removes the column at `colNumber`, shifts
|
|
27060
|
+
* everything to the right left by one, returns orphaned widget ids.
|
|
27061
|
+
*
|
|
27062
|
+
* Refuses to delete the only remaining column (returns input grid
|
|
27063
|
+
* unchanged + empty orphans list).
|
|
27064
|
+
*/
|
|
27065
|
+
|
|
27066
|
+
var META_KEYS = new Set(["rows", "cols", "gap", "rowHeights", "rowModes", "colModes", "colWidths"]);
|
|
27067
|
+
function _isCellKey(key) {
|
|
27068
|
+
return /^\d+\.\d+$/.test(key);
|
|
27069
|
+
}
|
|
27070
|
+
function _shiftKeyMapDown(map, deletedAt) {
|
|
27071
|
+
if (!map) return undefined;
|
|
27072
|
+
var shifted = {};
|
|
27073
|
+
for (var _i = 0, _Object$entries = Object.entries(map); _i < _Object$entries.length; _i++) {
|
|
27074
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
27075
|
+
key = _Object$entries$_i[0],
|
|
27076
|
+
value = _Object$entries$_i[1];
|
|
27077
|
+
var n = Number(key);
|
|
27078
|
+
if (n === deletedAt) continue;
|
|
27079
|
+
shifted[String(n > deletedAt ? n - 1 : n)] = value;
|
|
27080
|
+
}
|
|
27081
|
+
return Object.keys(shifted).length > 0 ? shifted : undefined;
|
|
27082
|
+
}
|
|
27083
|
+
function deleteGridColumnOp(grid, colNumber) {
|
|
27084
|
+
if (!grid) return {
|
|
27085
|
+
grid: grid,
|
|
27086
|
+
orphanedComponents: []
|
|
27087
|
+
};
|
|
27088
|
+
if ((grid.cols || 0) <= 1) {
|
|
27089
|
+
return {
|
|
27090
|
+
grid: grid,
|
|
27091
|
+
orphanedComponents: []
|
|
27092
|
+
};
|
|
27093
|
+
}
|
|
27094
|
+
var out = {};
|
|
27095
|
+
var orphanedComponents = [];
|
|
27096
|
+
for (var _i2 = 0, _Object$keys = Object.keys(grid); _i2 < _Object$keys.length; _i2++) {
|
|
27097
|
+
var k = _Object$keys[_i2];
|
|
27098
|
+
if (META_KEYS.has(k)) {
|
|
27099
|
+
out[k] = grid[k];
|
|
27100
|
+
continue;
|
|
27101
|
+
}
|
|
27102
|
+
if (!_isCellKey(k)) continue;
|
|
27103
|
+
var _k$split$map = k.split(".").map(Number),
|
|
27104
|
+
_k$split$map2 = _slicedToArray(_k$split$map, 2),
|
|
27105
|
+
r = _k$split$map2[0],
|
|
27106
|
+
c = _k$split$map2[1];
|
|
27107
|
+
if (c === colNumber) {
|
|
27108
|
+
var comp = grid[k] && grid[k].component;
|
|
27109
|
+
if (comp != null) orphanedComponents.push(comp);
|
|
27110
|
+
continue;
|
|
27111
|
+
}
|
|
27112
|
+
if (c > colNumber) {
|
|
27113
|
+
out["".concat(r, ".").concat(c - 1)] = grid[k];
|
|
27114
|
+
} else {
|
|
27115
|
+
out[k] = grid[k];
|
|
27116
|
+
}
|
|
27117
|
+
}
|
|
27118
|
+
out.cols = (grid.cols || 0) - 1;
|
|
27119
|
+
out.rows = grid.rows;
|
|
27120
|
+
var newColModes = _shiftKeyMapDown(grid.colModes, colNumber);
|
|
27121
|
+
if (newColModes) out.colModes = newColModes;else delete out.colModes;
|
|
27122
|
+
return {
|
|
27123
|
+
grid: out,
|
|
27124
|
+
orphanedComponents: orphanedComponents
|
|
27125
|
+
};
|
|
27126
|
+
}
|
|
27127
|
+
|
|
26637
27128
|
function _createForOfIteratorHelper$m(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$m(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
26638
27129
|
function _unsupportedIterableToArray$m(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$m(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$m(r, a) : void 0; } }
|
|
26639
27130
|
function _arrayLikeToArray$m(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
@@ -27915,210 +28406,18 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
27915
28406
|
if (!gridContainer || !gridContainer.grid) {
|
|
27916
28407
|
return null;
|
|
27917
28408
|
}
|
|
27918
|
-
|
|
27919
|
-
|
|
27920
|
-
|
|
27921
|
-
|
|
27922
|
-
|
|
27923
|
-
var
|
|
27924
|
-
if (
|
|
27925
|
-
|
|
27926
|
-
|
|
27927
|
-
|
|
27928
|
-
if (targetSpanCol % count === 0) {
|
|
27929
|
-
// CASE A: Span is divisible — simple subdivision, no grid resize
|
|
27930
|
-
var subSpan = targetSpanCol / count;
|
|
27931
|
-
var component = targetCell === null || targetCell === void 0 ? void 0 : targetCell.component;
|
|
27932
|
-
|
|
27933
|
-
// Unhide cells covered by the old span
|
|
27934
|
-
for (var sr = row; sr < row + targetSpanRow; sr++) {
|
|
27935
|
-
for (var sc = col; sc < col + targetSpanCol; sc++) {
|
|
27936
|
-
var k = "".concat(sr, ".").concat(sc);
|
|
27937
|
-
if (grid[k]) grid[k].hide = false;
|
|
27938
|
-
}
|
|
27939
|
-
}
|
|
27940
|
-
delete targetCell.span;
|
|
27941
|
-
|
|
27942
|
-
// Create subdivided cells
|
|
27943
|
-
for (var i = 0; i < count; i++) {
|
|
27944
|
-
var key = "".concat(row, ".").concat(col + i * subSpan);
|
|
27945
|
-
grid[key] = {
|
|
27946
|
-
component: i === 0 ? component : null,
|
|
27947
|
-
hide: false
|
|
27948
|
-
};
|
|
27949
|
-
if (subSpan > 1 || targetSpanRow > 1) {
|
|
27950
|
-
grid[key].span = {};
|
|
27951
|
-
if (subSpan > 1) grid[key].span.col = subSpan;
|
|
27952
|
-
if (targetSpanRow > 1) grid[key].span.row = targetSpanRow;
|
|
27953
|
-
}
|
|
27954
|
-
}
|
|
27955
|
-
} else {
|
|
27956
|
-
var _targetCell$span3, _targetCell$span4;
|
|
27957
|
-
// CASE B: Multiply grid resolution by count
|
|
27958
|
-
var oldCols = grid.cols;
|
|
27959
|
-
|
|
27960
|
-
// 1. Collect all visible cells
|
|
27961
|
-
var visibleCells = [];
|
|
27962
|
-
for (var r = 1; r <= grid.rows; r++) {
|
|
27963
|
-
for (var c = 1; c <= oldCols; c++) {
|
|
27964
|
-
var _key5 = "".concat(r, ".").concat(c);
|
|
27965
|
-
var cell = grid[_key5];
|
|
27966
|
-
if (cell && !cell.hide) {
|
|
27967
|
-
var _cell$span, _cell$span2;
|
|
27968
|
-
visibleCells.push({
|
|
27969
|
-
row: r,
|
|
27970
|
-
col: c,
|
|
27971
|
-
data: _objectSpread$D({}, cell),
|
|
27972
|
-
spanCol: ((_cell$span = cell.span) === null || _cell$span === void 0 ? void 0 : _cell$span.col) || 1,
|
|
27973
|
-
spanRow: ((_cell$span2 = cell.span) === null || _cell$span2 === void 0 ? void 0 : _cell$span2.row) || 1
|
|
27974
|
-
});
|
|
27975
|
-
}
|
|
27976
|
-
}
|
|
27977
|
-
}
|
|
27978
|
-
|
|
27979
|
-
// 2. Clear all cell keys
|
|
27980
|
-
for (var _i4 = 0, _Object$keys3 = Object.keys(grid); _i4 < _Object$keys3.length; _i4++) {
|
|
27981
|
-
var _key6 = _Object$keys3[_i4];
|
|
27982
|
-
if (/^\d+\.\d+$/.test(_key6)) delete grid[_key6];
|
|
27983
|
-
}
|
|
27984
|
-
|
|
27985
|
-
// 3. Update grid dimensions
|
|
27986
|
-
grid.cols = oldCols * count;
|
|
27987
|
-
|
|
27988
|
-
// 4. Reposition all cells with scaled positions and spans
|
|
27989
|
-
for (var _i5 = 0, _visibleCells = visibleCells; _i5 < _visibleCells.length; _i5++) {
|
|
27990
|
-
var vc = _visibleCells[_i5];
|
|
27991
|
-
var newCol = (vc.col - 1) * count + 1;
|
|
27992
|
-
var _key7 = "".concat(vc.row, ".").concat(newCol);
|
|
27993
|
-
grid[_key7] = _objectSpread$D(_objectSpread$D({}, vc.data), {}, {
|
|
27994
|
-
hide: false,
|
|
27995
|
-
span: {
|
|
27996
|
-
row: vc.spanRow,
|
|
27997
|
-
col: vc.spanCol * count
|
|
27998
|
-
}
|
|
27999
|
-
});
|
|
28000
|
-
}
|
|
28001
|
-
|
|
28002
|
-
// 5. Split the target cell into count sub-cells
|
|
28003
|
-
var newTargetCol = (col - 1) * count + 1;
|
|
28004
|
-
var newTargetSpan = ((targetCell === null || targetCell === void 0 || (_targetCell$span3 = targetCell.span) === null || _targetCell$span3 === void 0 ? void 0 : _targetCell$span3.col) || 1) * count;
|
|
28005
|
-
var _subSpan = newTargetSpan / count;
|
|
28006
|
-
var _component = targetCell === null || targetCell === void 0 ? void 0 : targetCell.component;
|
|
28007
|
-
var rowSpan = (targetCell === null || targetCell === void 0 || (_targetCell$span4 = targetCell.span) === null || _targetCell$span4 === void 0 ? void 0 : _targetCell$span4.row) || 1;
|
|
28008
|
-
for (var _i6 = 0; _i6 < count; _i6++) {
|
|
28009
|
-
var _key8 = "".concat(row, ".").concat(newTargetCol + _i6 * _subSpan);
|
|
28010
|
-
grid[_key8] = {
|
|
28011
|
-
component: _i6 === 0 ? _component : null,
|
|
28012
|
-
hide: false
|
|
28013
|
-
};
|
|
28014
|
-
if (_subSpan > 1 || rowSpan > 1) {
|
|
28015
|
-
grid[_key8].span = {};
|
|
28016
|
-
if (_subSpan > 1) grid[_key8].span.col = _subSpan;
|
|
28017
|
-
if (rowSpan > 1) grid[_key8].span.row = rowSpan;
|
|
28018
|
-
}
|
|
28019
|
-
}
|
|
28020
|
-
}
|
|
28021
|
-
} else if (direction === "vertical") {
|
|
28022
|
-
var _targetCell$span5, _targetCell$span6;
|
|
28023
|
-
var _targetSpanRow = (targetCell === null || targetCell === void 0 || (_targetCell$span5 = targetCell.span) === null || _targetCell$span5 === void 0 ? void 0 : _targetCell$span5.row) || 1;
|
|
28024
|
-
var _targetSpanCol = (targetCell === null || targetCell === void 0 || (_targetCell$span6 = targetCell.span) === null || _targetCell$span6 === void 0 ? void 0 : _targetCell$span6.col) || 1;
|
|
28025
|
-
if (_targetSpanRow % count === 0) {
|
|
28026
|
-
// CASE A: Span is divisible — simple subdivision, no grid resize
|
|
28027
|
-
var _subSpan2 = _targetSpanRow / count;
|
|
28028
|
-
var _component2 = targetCell === null || targetCell === void 0 ? void 0 : targetCell.component;
|
|
28029
|
-
|
|
28030
|
-
// Unhide cells covered by the old span
|
|
28031
|
-
for (var _sr2 = row; _sr2 < row + _targetSpanRow; _sr2++) {
|
|
28032
|
-
for (var _sc2 = col; _sc2 < col + _targetSpanCol; _sc2++) {
|
|
28033
|
-
var _k = "".concat(_sr2, ".").concat(_sc2);
|
|
28034
|
-
if (grid[_k]) grid[_k].hide = false;
|
|
28035
|
-
}
|
|
28036
|
-
}
|
|
28037
|
-
delete targetCell.span;
|
|
28038
|
-
|
|
28039
|
-
// Create subdivided cells
|
|
28040
|
-
for (var _i7 = 0; _i7 < count; _i7++) {
|
|
28041
|
-
var _key9 = "".concat(row + _i7 * _subSpan2, ".").concat(col);
|
|
28042
|
-
grid[_key9] = {
|
|
28043
|
-
component: _i7 === 0 ? _component2 : null,
|
|
28044
|
-
hide: false
|
|
28045
|
-
};
|
|
28046
|
-
if (_subSpan2 > 1 || _targetSpanCol > 1) {
|
|
28047
|
-
grid[_key9].span = {};
|
|
28048
|
-
if (_subSpan2 > 1) grid[_key9].span.row = _subSpan2;
|
|
28049
|
-
if (_targetSpanCol > 1) grid[_key9].span.col = _targetSpanCol;
|
|
28050
|
-
}
|
|
28051
|
-
}
|
|
28052
|
-
} else {
|
|
28053
|
-
var _targetCell$span7, _targetCell$span8;
|
|
28054
|
-
// CASE B: Multiply grid resolution by count
|
|
28055
|
-
var oldRows = grid.rows;
|
|
28056
|
-
|
|
28057
|
-
// 1. Collect all visible cells
|
|
28058
|
-
var _visibleCells2 = [];
|
|
28059
|
-
for (var _r1 = 1; _r1 <= oldRows; _r1++) {
|
|
28060
|
-
for (var _c10 = 1; _c10 <= grid.cols; _c10++) {
|
|
28061
|
-
var _key0 = "".concat(_r1, ".").concat(_c10);
|
|
28062
|
-
var _cell6 = grid[_key0];
|
|
28063
|
-
if (_cell6 && !_cell6.hide) {
|
|
28064
|
-
var _cell6$span, _cell6$span2;
|
|
28065
|
-
_visibleCells2.push({
|
|
28066
|
-
row: _r1,
|
|
28067
|
-
col: _c10,
|
|
28068
|
-
data: _objectSpread$D({}, _cell6),
|
|
28069
|
-
spanRow: ((_cell6$span = _cell6.span) === null || _cell6$span === void 0 ? void 0 : _cell6$span.row) || 1,
|
|
28070
|
-
spanCol: ((_cell6$span2 = _cell6.span) === null || _cell6$span2 === void 0 ? void 0 : _cell6$span2.col) || 1
|
|
28071
|
-
});
|
|
28072
|
-
}
|
|
28073
|
-
}
|
|
28074
|
-
}
|
|
28075
|
-
|
|
28076
|
-
// 2. Clear all cell keys
|
|
28077
|
-
for (var _i8 = 0, _Object$keys4 = Object.keys(grid); _i8 < _Object$keys4.length; _i8++) {
|
|
28078
|
-
var _key1 = _Object$keys4[_i8];
|
|
28079
|
-
if (/^\d+\.\d+$/.test(_key1)) delete grid[_key1];
|
|
28080
|
-
}
|
|
28081
|
-
|
|
28082
|
-
// 3. Update grid dimensions
|
|
28083
|
-
grid.rows = oldRows * count;
|
|
28084
|
-
|
|
28085
|
-
// 4. Reposition all cells with scaled positions and spans
|
|
28086
|
-
for (var _i9 = 0, _visibleCells3 = _visibleCells2; _i9 < _visibleCells3.length; _i9++) {
|
|
28087
|
-
var _vc = _visibleCells3[_i9];
|
|
28088
|
-
var newRow = (_vc.row - 1) * count + 1;
|
|
28089
|
-
var _key10 = "".concat(newRow, ".").concat(_vc.col);
|
|
28090
|
-
grid[_key10] = _objectSpread$D(_objectSpread$D({}, _vc.data), {}, {
|
|
28091
|
-
hide: false,
|
|
28092
|
-
span: {
|
|
28093
|
-
row: _vc.spanRow * count,
|
|
28094
|
-
col: _vc.spanCol
|
|
28095
|
-
}
|
|
28096
|
-
});
|
|
28097
|
-
}
|
|
28098
|
-
|
|
28099
|
-
// 5. Split the target cell into count sub-cells
|
|
28100
|
-
var newTargetRow = (row - 1) * count + 1;
|
|
28101
|
-
var _newTargetSpan = ((targetCell === null || targetCell === void 0 || (_targetCell$span7 = targetCell.span) === null || _targetCell$span7 === void 0 ? void 0 : _targetCell$span7.row) || 1) * count;
|
|
28102
|
-
var _subSpan3 = _newTargetSpan / count;
|
|
28103
|
-
var _component3 = targetCell === null || targetCell === void 0 ? void 0 : targetCell.component;
|
|
28104
|
-
var colSpan = (targetCell === null || targetCell === void 0 || (_targetCell$span8 = targetCell.span) === null || _targetCell$span8 === void 0 ? void 0 : _targetCell$span8.col) || 1;
|
|
28105
|
-
for (var _i0 = 0; _i0 < count; _i0++) {
|
|
28106
|
-
var _key11 = "".concat(newTargetRow + _i0 * _subSpan3, ".").concat(col);
|
|
28107
|
-
grid[_key11] = {
|
|
28108
|
-
component: _i0 === 0 ? _component3 : null,
|
|
28109
|
-
hide: false
|
|
28110
|
-
};
|
|
28111
|
-
if (_subSpan3 > 1 || colSpan > 1) {
|
|
28112
|
-
grid[_key11].span = {};
|
|
28113
|
-
if (_subSpan3 > 1) grid[_key11].span.row = _subSpan3;
|
|
28114
|
-
if (colSpan > 1) grid[_key11].span.col = colSpan;
|
|
28115
|
-
}
|
|
28116
|
-
}
|
|
28117
|
-
}
|
|
28409
|
+
// Slice 11: pure helper handles both CASE A (divisible span)
|
|
28410
|
+
// and CASE B (resolution multiply). Falls through to the legacy
|
|
28411
|
+
// inline path below if the helper somehow returns the same
|
|
28412
|
+
// grid (defensive — shouldn't happen for a valid cellNumber +
|
|
28413
|
+
// direction).
|
|
28414
|
+
var newGrid = splitGridCellOp(gridContainer.grid, cellNumber, direction, count);
|
|
28415
|
+
if (newGrid !== gridContainer.grid) {
|
|
28416
|
+
gridContainer.grid = newGrid;
|
|
28417
|
+
this._normalizeGrid(gridContainer.grid);
|
|
28418
|
+
this.updateLayoutItem(gridContainer);
|
|
28118
28419
|
}
|
|
28119
|
-
|
|
28120
|
-
this.updateLayoutItem(gridContainer);
|
|
28121
|
-
return grid;
|
|
28420
|
+
return gridContainer.grid;
|
|
28122
28421
|
} catch (e) {
|
|
28123
28422
|
return null;
|
|
28124
28423
|
}
|
|
@@ -28267,55 +28566,8 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
28267
28566
|
if (!gridContainer || !gridContainer.grid) {
|
|
28268
28567
|
return null;
|
|
28269
28568
|
}
|
|
28270
|
-
|
|
28271
|
-
gridContainer.grid.
|
|
28272
|
-
|
|
28273
|
-
// Shift existing rows down
|
|
28274
|
-
for (var r = gridContainer.grid.rows; r > newRowNumber; r--) {
|
|
28275
|
-
for (var c = 1; c <= gridContainer.grid.cols; c++) {
|
|
28276
|
-
var oldCell = "".concat(r - 1, ".").concat(c);
|
|
28277
|
-
var newCell = "".concat(r, ".").concat(c);
|
|
28278
|
-
if (oldCell in gridContainer.grid) {
|
|
28279
|
-
gridContainer.grid[newCell] = gridContainer.grid[oldCell];
|
|
28280
|
-
delete gridContainer.grid[oldCell];
|
|
28281
|
-
}
|
|
28282
|
-
}
|
|
28283
|
-
}
|
|
28284
|
-
|
|
28285
|
-
// Create new empty cells for the new row
|
|
28286
|
-
for (var _c11 = 1; _c11 <= gridContainer.grid.cols; _c11++) {
|
|
28287
|
-
var cellNumber = "".concat(newRowNumber, ".").concat(_c11);
|
|
28288
|
-
gridContainer.grid[cellNumber] = {
|
|
28289
|
-
component: null,
|
|
28290
|
-
hide: false
|
|
28291
|
-
};
|
|
28292
|
-
}
|
|
28293
|
-
|
|
28294
|
-
// Shift rowHeights keys down (rows after insertion point move +1)
|
|
28295
|
-
if (gridContainer.grid.rowHeights) {
|
|
28296
|
-
var shifted = {};
|
|
28297
|
-
for (var _i1 = 0, _Object$entries2 = Object.entries(gridContainer.grid.rowHeights); _i1 < _Object$entries2.length; _i1++) {
|
|
28298
|
-
var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i1], 2),
|
|
28299
|
-
key = _Object$entries2$_i[0],
|
|
28300
|
-
mult = _Object$entries2$_i[1];
|
|
28301
|
-
var rowNum = Number(key);
|
|
28302
|
-
shifted[String(rowNum >= newRowNumber ? rowNum + 1 : rowNum)] = mult;
|
|
28303
|
-
}
|
|
28304
|
-
gridContainer.grid.rowHeights = Object.keys(shifted).length > 0 ? shifted : undefined;
|
|
28305
|
-
}
|
|
28306
|
-
|
|
28307
|
-
// Shift rowModes keys down (rows after insertion point move +1)
|
|
28308
|
-
if (gridContainer.grid.rowModes) {
|
|
28309
|
-
var _shifted = {};
|
|
28310
|
-
for (var _i10 = 0, _Object$entries3 = Object.entries(gridContainer.grid.rowModes); _i10 < _Object$entries3.length; _i10++) {
|
|
28311
|
-
var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i10], 2),
|
|
28312
|
-
_key12 = _Object$entries3$_i[0],
|
|
28313
|
-
mode = _Object$entries3$_i[1];
|
|
28314
|
-
var _rowNum = Number(_key12);
|
|
28315
|
-
_shifted[String(_rowNum >= newRowNumber ? _rowNum + 1 : _rowNum)] = mode;
|
|
28316
|
-
}
|
|
28317
|
-
gridContainer.grid.rowModes = Object.keys(_shifted).length > 0 ? _shifted : undefined;
|
|
28318
|
-
}
|
|
28569
|
+
// Slice 11: pure helper handles the row-insertion + shifting.
|
|
28570
|
+
gridContainer.grid = addGridRowOp(gridContainer.grid, afterRow);
|
|
28319
28571
|
this._normalizeGrid(gridContainer.grid);
|
|
28320
28572
|
this.updateLayoutItem(gridContainer);
|
|
28321
28573
|
return gridContainer.grid;
|
|
@@ -28341,55 +28593,23 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
28341
28593
|
if (gridContainer.grid.rows <= 1) {
|
|
28342
28594
|
return null;
|
|
28343
28595
|
}
|
|
28344
|
-
|
|
28345
|
-
//
|
|
28346
|
-
|
|
28347
|
-
|
|
28348
|
-
|
|
28349
|
-
|
|
28350
|
-
|
|
28351
|
-
|
|
28352
|
-
|
|
28353
|
-
|
|
28354
|
-
|
|
28355
|
-
|
|
28356
|
-
for (var _c12 = 1; _c12 <= gridContainer.grid.cols; _c12++) {
|
|
28357
|
-
var oldCell = "".concat(r, ".").concat(_c12);
|
|
28358
|
-
var newCell = "".concat(r - 1, ".").concat(_c12);
|
|
28359
|
-
if (oldCell in gridContainer.grid) {
|
|
28360
|
-
gridContainer.grid[newCell] = gridContainer.grid[oldCell];
|
|
28361
|
-
delete gridContainer.grid[oldCell];
|
|
28362
|
-
}
|
|
28596
|
+
// Slice 11: pure helper returns the updated grid + the list of
|
|
28597
|
+
// widget components that lived on the deleted row. We remove
|
|
28598
|
+
// those from the layout here to preserve the original
|
|
28599
|
+
// destructive-delete behavior.
|
|
28600
|
+
var result = deleteGridRowOp(gridContainer.grid, rowNumber);
|
|
28601
|
+
gridContainer.grid = result.grid;
|
|
28602
|
+
var _iterator2 = _createForOfIteratorHelper$m(result.orphanedComponents),
|
|
28603
|
+
_step2;
|
|
28604
|
+
try {
|
|
28605
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
28606
|
+
var componentId = _step2.value;
|
|
28607
|
+
this.removeItemFromLayout(componentId);
|
|
28363
28608
|
}
|
|
28364
|
-
}
|
|
28365
|
-
|
|
28366
|
-
|
|
28367
|
-
|
|
28368
|
-
if (gridContainer.grid.rowHeights) {
|
|
28369
|
-
var shifted = {};
|
|
28370
|
-
for (var _i11 = 0, _Object$entries4 = Object.entries(gridContainer.grid.rowHeights); _i11 < _Object$entries4.length; _i11++) {
|
|
28371
|
-
var _Object$entries4$_i = _slicedToArray(_Object$entries4[_i11], 2),
|
|
28372
|
-
key = _Object$entries4$_i[0],
|
|
28373
|
-
mult = _Object$entries4$_i[1];
|
|
28374
|
-
var rowNum = Number(key);
|
|
28375
|
-
if (rowNum === rowNumber) continue;
|
|
28376
|
-
shifted[String(rowNum > rowNumber ? rowNum - 1 : rowNum)] = mult;
|
|
28377
|
-
}
|
|
28378
|
-
gridContainer.grid.rowHeights = Object.keys(shifted).length > 0 ? shifted : undefined;
|
|
28379
|
-
}
|
|
28380
|
-
|
|
28381
|
-
// Shift rowModes keys up and remove the deleted row's entry
|
|
28382
|
-
if (gridContainer.grid.rowModes) {
|
|
28383
|
-
var _shifted2 = {};
|
|
28384
|
-
for (var _i12 = 0, _Object$entries5 = Object.entries(gridContainer.grid.rowModes); _i12 < _Object$entries5.length; _i12++) {
|
|
28385
|
-
var _Object$entries5$_i = _slicedToArray(_Object$entries5[_i12], 2),
|
|
28386
|
-
_key13 = _Object$entries5$_i[0],
|
|
28387
|
-
mode = _Object$entries5$_i[1];
|
|
28388
|
-
var _rowNum2 = Number(_key13);
|
|
28389
|
-
if (_rowNum2 === rowNumber) continue;
|
|
28390
|
-
_shifted2[String(_rowNum2 > rowNumber ? _rowNum2 - 1 : _rowNum2)] = mode;
|
|
28391
|
-
}
|
|
28392
|
-
gridContainer.grid.rowModes = Object.keys(_shifted2).length > 0 ? _shifted2 : undefined;
|
|
28609
|
+
} catch (err) {
|
|
28610
|
+
_iterator2.e(err);
|
|
28611
|
+
} finally {
|
|
28612
|
+
_iterator2.f();
|
|
28393
28613
|
}
|
|
28394
28614
|
this._normalizeGrid(gridContainer.grid);
|
|
28395
28615
|
this.updateLayoutItem(gridContainer);
|
|
@@ -28448,42 +28668,8 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
28448
28668
|
if (!gridContainer || !gridContainer.grid) {
|
|
28449
28669
|
return null;
|
|
28450
28670
|
}
|
|
28451
|
-
|
|
28452
|
-
gridContainer.grid.
|
|
28453
|
-
|
|
28454
|
-
// Shift existing columns right
|
|
28455
|
-
for (var r = 1; r <= gridContainer.grid.rows; r++) {
|
|
28456
|
-
for (var c = gridContainer.grid.cols; c > newColNumber; c--) {
|
|
28457
|
-
var oldCell = "".concat(r, ".").concat(c - 1);
|
|
28458
|
-
var newCell = "".concat(r, ".").concat(c);
|
|
28459
|
-
if (oldCell in gridContainer.grid) {
|
|
28460
|
-
gridContainer.grid[newCell] = gridContainer.grid[oldCell];
|
|
28461
|
-
delete gridContainer.grid[oldCell];
|
|
28462
|
-
}
|
|
28463
|
-
}
|
|
28464
|
-
}
|
|
28465
|
-
|
|
28466
|
-
// Create new empty cells for the new column
|
|
28467
|
-
for (var _r10 = 1; _r10 <= gridContainer.grid.rows; _r10++) {
|
|
28468
|
-
var cellNumber = "".concat(_r10, ".").concat(newColNumber);
|
|
28469
|
-
gridContainer.grid[cellNumber] = {
|
|
28470
|
-
component: null,
|
|
28471
|
-
hide: false
|
|
28472
|
-
};
|
|
28473
|
-
}
|
|
28474
|
-
|
|
28475
|
-
// Shift colModes keys right (columns after insertion point move +1)
|
|
28476
|
-
if (gridContainer.grid.colModes) {
|
|
28477
|
-
var shifted = {};
|
|
28478
|
-
for (var _i13 = 0, _Object$entries6 = Object.entries(gridContainer.grid.colModes); _i13 < _Object$entries6.length; _i13++) {
|
|
28479
|
-
var _Object$entries6$_i = _slicedToArray(_Object$entries6[_i13], 2),
|
|
28480
|
-
key = _Object$entries6$_i[0],
|
|
28481
|
-
mode = _Object$entries6$_i[1];
|
|
28482
|
-
var colNum = Number(key);
|
|
28483
|
-
shifted[String(colNum >= newColNumber ? colNum + 1 : colNum)] = mode;
|
|
28484
|
-
}
|
|
28485
|
-
gridContainer.grid.colModes = Object.keys(shifted).length > 0 ? shifted : undefined;
|
|
28486
|
-
}
|
|
28671
|
+
// Slice 11: pure helper.
|
|
28672
|
+
gridContainer.grid = addGridColumnOp(gridContainer.grid, afterCol);
|
|
28487
28673
|
this._normalizeGrid(gridContainer.grid);
|
|
28488
28674
|
this.updateLayoutItem(gridContainer);
|
|
28489
28675
|
return gridContainer.grid;
|
|
@@ -28509,41 +28695,20 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
28509
28695
|
if (gridContainer.grid.cols <= 1) {
|
|
28510
28696
|
return null;
|
|
28511
28697
|
}
|
|
28512
|
-
|
|
28513
|
-
|
|
28514
|
-
|
|
28515
|
-
|
|
28516
|
-
|
|
28517
|
-
|
|
28518
|
-
|
|
28519
|
-
|
|
28520
|
-
|
|
28521
|
-
|
|
28522
|
-
// Shift columns left
|
|
28523
|
-
for (var _r11 = 1; _r11 <= gridContainer.grid.rows; _r11++) {
|
|
28524
|
-
for (var c = colNumber + 1; c <= gridContainer.grid.cols; c++) {
|
|
28525
|
-
var oldCell = "".concat(_r11, ".").concat(c);
|
|
28526
|
-
var newCell = "".concat(_r11, ".").concat(c - 1);
|
|
28527
|
-
if (oldCell in gridContainer.grid) {
|
|
28528
|
-
gridContainer.grid[newCell] = gridContainer.grid[oldCell];
|
|
28529
|
-
delete gridContainer.grid[oldCell];
|
|
28530
|
-
}
|
|
28531
|
-
}
|
|
28532
|
-
}
|
|
28533
|
-
gridContainer.grid.cols -= 1;
|
|
28534
|
-
|
|
28535
|
-
// Shift colModes keys left and remove the deleted column's entry
|
|
28536
|
-
if (gridContainer.grid.colModes) {
|
|
28537
|
-
var shifted = {};
|
|
28538
|
-
for (var _i14 = 0, _Object$entries7 = Object.entries(gridContainer.grid.colModes); _i14 < _Object$entries7.length; _i14++) {
|
|
28539
|
-
var _Object$entries7$_i = _slicedToArray(_Object$entries7[_i14], 2),
|
|
28540
|
-
key = _Object$entries7$_i[0],
|
|
28541
|
-
mode = _Object$entries7$_i[1];
|
|
28542
|
-
var colNum = Number(key);
|
|
28543
|
-
if (colNum === colNumber) continue;
|
|
28544
|
-
shifted[String(colNum > colNumber ? colNum - 1 : colNum)] = mode;
|
|
28698
|
+
// Slice 11: pure helper.
|
|
28699
|
+
var result = deleteGridColumnOp(gridContainer.grid, colNumber);
|
|
28700
|
+
gridContainer.grid = result.grid;
|
|
28701
|
+
var _iterator3 = _createForOfIteratorHelper$m(result.orphanedComponents),
|
|
28702
|
+
_step3;
|
|
28703
|
+
try {
|
|
28704
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
28705
|
+
var componentId = _step3.value;
|
|
28706
|
+
this.removeItemFromLayout(componentId);
|
|
28545
28707
|
}
|
|
28546
|
-
|
|
28708
|
+
} catch (err) {
|
|
28709
|
+
_iterator3.e(err);
|
|
28710
|
+
} finally {
|
|
28711
|
+
_iterator3.f();
|
|
28547
28712
|
}
|
|
28548
28713
|
this._normalizeGrid(gridContainer.grid);
|
|
28549
28714
|
this.updateLayoutItem(gridContainer);
|
|
@@ -28628,14 +28793,14 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
28628
28793
|
try {
|
|
28629
28794
|
// Collect all item IDs actively referenced by grid cells
|
|
28630
28795
|
var activeItemIds = new Set();
|
|
28631
|
-
var
|
|
28632
|
-
|
|
28796
|
+
var _iterator4 = _createForOfIteratorHelper$m(this.layout),
|
|
28797
|
+
_step4;
|
|
28633
28798
|
try {
|
|
28634
|
-
for (
|
|
28635
|
-
var item =
|
|
28799
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
28800
|
+
var item = _step4.value;
|
|
28636
28801
|
if (item.grid && _typeof(item.grid) === "object") {
|
|
28637
|
-
for (var
|
|
28638
|
-
var key = _Object$
|
|
28802
|
+
for (var _i4 = 0, _Object$keys3 = Object.keys(item.grid); _i4 < _Object$keys3.length; _i4++) {
|
|
28803
|
+
var key = _Object$keys3[_i4];
|
|
28639
28804
|
var cell = item.grid[key];
|
|
28640
28805
|
if (cell && _typeof(cell) === "object" && cell.component) {
|
|
28641
28806
|
activeItemIds.add(cell.component);
|
|
@@ -28648,9 +28813,9 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
28648
28813
|
|
|
28649
28814
|
// If no grid containers exist, nothing to clean
|
|
28650
28815
|
} catch (err) {
|
|
28651
|
-
|
|
28816
|
+
_iterator4.e(err);
|
|
28652
28817
|
} finally {
|
|
28653
|
-
|
|
28818
|
+
_iterator4.f();
|
|
28654
28819
|
}
|
|
28655
28820
|
if (activeItemIds.size === 0) return;
|
|
28656
28821
|
|
|
@@ -28668,17 +28833,17 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
28668
28833
|
});
|
|
28669
28834
|
|
|
28670
28835
|
// Clean listener references on remaining items for each removed orphan
|
|
28671
|
-
var
|
|
28672
|
-
|
|
28836
|
+
var _iterator5 = _createForOfIteratorHelper$m(orphanedIds),
|
|
28837
|
+
_step5;
|
|
28673
28838
|
try {
|
|
28674
|
-
for (
|
|
28675
|
-
var id =
|
|
28839
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
28840
|
+
var id = _step5.value;
|
|
28676
28841
|
this._cleanupListenerReferencesForId(id);
|
|
28677
28842
|
}
|
|
28678
28843
|
} catch (err) {
|
|
28679
|
-
|
|
28844
|
+
_iterator5.e(err);
|
|
28680
28845
|
} finally {
|
|
28681
|
-
|
|
28846
|
+
_iterator5.f();
|
|
28682
28847
|
}
|
|
28683
28848
|
} catch (e) {
|
|
28684
28849
|
}
|