@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.esm.js
CHANGED
|
@@ -9271,7 +9271,7 @@ function _objectSpread$Z(e) { for (var r = 1; r < arguments.length; r++) { var t
|
|
|
9271
9271
|
* multi-cell selections — that's a separate code path.
|
|
9272
9272
|
*/
|
|
9273
9273
|
|
|
9274
|
-
var META_KEYS = new Set(["rows", "cols", "gap"]);
|
|
9274
|
+
var META_KEYS$5 = new Set(["rows", "cols", "gap"]);
|
|
9275
9275
|
|
|
9276
9276
|
/**
|
|
9277
9277
|
* Merge `(row, col)` with the cell to its right. Skips empty
|
|
@@ -9290,7 +9290,7 @@ function mergeRightOp(grid, row, col) {
|
|
|
9290
9290
|
var bestCol = Infinity;
|
|
9291
9291
|
for (var _i = 0, _Object$keys = Object.keys(grid); _i < _Object$keys.length; _i++) {
|
|
9292
9292
|
var k = _Object$keys[_i];
|
|
9293
|
-
if (META_KEYS.has(k)) continue;
|
|
9293
|
+
if (META_KEYS$5.has(k)) continue;
|
|
9294
9294
|
var _k$split$map = k.split(".").map(function (n) {
|
|
9295
9295
|
return parseInt(n, 10);
|
|
9296
9296
|
}),
|
|
@@ -26616,6 +26616,497 @@ function mergeGridCellsOp(grid, cellNumbers, keepComponentId) {
|
|
|
26616
26616
|
|
|
26617
26617
|
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; }
|
|
26618
26618
|
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; }
|
|
26619
|
+
/**
|
|
26620
|
+
* splitGridCellOp
|
|
26621
|
+
*
|
|
26622
|
+
* Pure helper for `DashboardModel.splitGridCell`. Splits a single
|
|
26623
|
+
* cell horizontally or vertically into `count` sub-cells.
|
|
26624
|
+
*
|
|
26625
|
+
* Two regimes (preserving original DashboardModel semantics):
|
|
26626
|
+
*
|
|
26627
|
+
* CASE A — divisible span: when the target cell already has a span
|
|
26628
|
+
* in the split direction that's divisible by count, simply
|
|
26629
|
+
* subdivide the span into count pieces. No grid resolution change.
|
|
26630
|
+
*
|
|
26631
|
+
* CASE B — non-divisible span (typical for an unspanned cell with
|
|
26632
|
+
* count=2): multiply the entire grid's resolution in the split
|
|
26633
|
+
* direction by count, reposition every visible cell to its
|
|
26634
|
+
* equivalent location, and place the count sub-cells at the
|
|
26635
|
+
* scaled target position.
|
|
26636
|
+
*
|
|
26637
|
+
* In both regimes the widget on the original target cell ends up on
|
|
26638
|
+
* the FIRST sub-cell. The other sub-cells are empty.
|
|
26639
|
+
*
|
|
26640
|
+
* Pure — input grid is never mutated.
|
|
26641
|
+
*/
|
|
26642
|
+
|
|
26643
|
+
var META_KEYS$4 = new Set(["rows", "cols", "gap", "rowHeights", "rowModes", "colModes", "colWidths"]);
|
|
26644
|
+
function _isCellKey$4(key) {
|
|
26645
|
+
return /^\d+\.\d+$/.test(key);
|
|
26646
|
+
}
|
|
26647
|
+
function _cloneShallow(grid) {
|
|
26648
|
+
var out = {};
|
|
26649
|
+
for (var _i = 0, _Object$keys = Object.keys(grid); _i < _Object$keys.length; _i++) {
|
|
26650
|
+
var k = _Object$keys[_i];
|
|
26651
|
+
if (META_KEYS$4.has(k)) {
|
|
26652
|
+
out[k] = grid[k];
|
|
26653
|
+
} else if (_isCellKey$4(k)) {
|
|
26654
|
+
var cell = grid[k];
|
|
26655
|
+
out[k] = _objectSpread$D({}, cell);
|
|
26656
|
+
if (cell.span) out[k].span = _objectSpread$D({}, cell.span);
|
|
26657
|
+
}
|
|
26658
|
+
}
|
|
26659
|
+
return out;
|
|
26660
|
+
}
|
|
26661
|
+
function _stripSpan(span, removeKey) {
|
|
26662
|
+
if (!span) return undefined;
|
|
26663
|
+
var out = _objectSpread$D({}, span);
|
|
26664
|
+
delete out[removeKey];
|
|
26665
|
+
return Object.keys(out).length > 0 ? out : undefined;
|
|
26666
|
+
}
|
|
26667
|
+
function _splitCaseADivisibleSpan(grid, row, col, direction, count) {
|
|
26668
|
+
var _targetCell$span, _targetCell$span2;
|
|
26669
|
+
// direction: "horizontal" splits col span; "vertical" splits row span.
|
|
26670
|
+
var isHorizontal = direction === "horizontal";
|
|
26671
|
+
var targetCell = grid["".concat(row, ".").concat(col)];
|
|
26672
|
+
var targetSpanCol = ((_targetCell$span = targetCell.span) === null || _targetCell$span === void 0 ? void 0 : _targetCell$span.col) || 1;
|
|
26673
|
+
var targetSpanRow = ((_targetCell$span2 = targetCell.span) === null || _targetCell$span2 === void 0 ? void 0 : _targetCell$span2.row) || 1;
|
|
26674
|
+
var splitSpan = isHorizontal ? targetSpanCol : targetSpanRow;
|
|
26675
|
+
var otherSpan = isHorizontal ? targetSpanRow : targetSpanCol;
|
|
26676
|
+
var subSpan = splitSpan / count;
|
|
26677
|
+
var component = targetCell.component;
|
|
26678
|
+
var out = _cloneShallow(grid);
|
|
26679
|
+
|
|
26680
|
+
// Unhide cells previously covered by the old span.
|
|
26681
|
+
for (var sr = row; sr < row + targetSpanRow; sr++) {
|
|
26682
|
+
for (var sc = col; sc < col + targetSpanCol; sc++) {
|
|
26683
|
+
var k = "".concat(sr, ".").concat(sc);
|
|
26684
|
+
if (out[k]) out[k] = _objectSpread$D(_objectSpread$D({}, out[k]), {}, {
|
|
26685
|
+
hide: false
|
|
26686
|
+
});
|
|
26687
|
+
}
|
|
26688
|
+
}
|
|
26689
|
+
|
|
26690
|
+
// Drop the old span on the target.
|
|
26691
|
+
if (out["".concat(row, ".").concat(col)].span) {
|
|
26692
|
+
delete out["".concat(row, ".").concat(col)].span;
|
|
26693
|
+
}
|
|
26694
|
+
|
|
26695
|
+
// Create the count sub-cells.
|
|
26696
|
+
for (var i = 0; i < count; i++) {
|
|
26697
|
+
var subRow = isHorizontal ? row : row + i * subSpan;
|
|
26698
|
+
var subCol = isHorizontal ? col + i * subSpan : col;
|
|
26699
|
+
var key = "".concat(subRow, ".").concat(subCol);
|
|
26700
|
+
var sub = {
|
|
26701
|
+
component: i === 0 ? component : null,
|
|
26702
|
+
hide: false
|
|
26703
|
+
};
|
|
26704
|
+
if (subSpan > 1 || otherSpan > 1) {
|
|
26705
|
+
sub.span = {};
|
|
26706
|
+
if (isHorizontal) {
|
|
26707
|
+
if (subSpan > 1) sub.span.col = subSpan;
|
|
26708
|
+
if (otherSpan > 1) sub.span.row = otherSpan;
|
|
26709
|
+
} else {
|
|
26710
|
+
if (subSpan > 1) sub.span.row = subSpan;
|
|
26711
|
+
if (otherSpan > 1) sub.span.col = otherSpan;
|
|
26712
|
+
}
|
|
26713
|
+
}
|
|
26714
|
+
out[key] = sub;
|
|
26715
|
+
}
|
|
26716
|
+
return out;
|
|
26717
|
+
}
|
|
26718
|
+
function _splitCaseBResolutionMultiply(grid, row, col, direction, count) {
|
|
26719
|
+
var _targetCell$span3, _targetCell$span4, _targetCell$span5, _targetCell$span6;
|
|
26720
|
+
var isHorizontal = direction === "horizontal";
|
|
26721
|
+
var targetCell = grid["".concat(row, ".").concat(col)];
|
|
26722
|
+
var oldRows = grid.rows || 1;
|
|
26723
|
+
var oldCols = grid.cols || 1;
|
|
26724
|
+
var component = targetCell.component;
|
|
26725
|
+
|
|
26726
|
+
// 1. Collect every visible cell's data + position + spans.
|
|
26727
|
+
var visibleCells = [];
|
|
26728
|
+
for (var r = 1; r <= oldRows; r++) {
|
|
26729
|
+
for (var c = 1; c <= oldCols; c++) {
|
|
26730
|
+
var key = "".concat(r, ".").concat(c);
|
|
26731
|
+
var c0 = grid[key];
|
|
26732
|
+
if (c0 && !c0.hide) {
|
|
26733
|
+
var _c0$span, _c0$span2;
|
|
26734
|
+
visibleCells.push({
|
|
26735
|
+
row: r,
|
|
26736
|
+
col: c,
|
|
26737
|
+
data: _objectSpread$D({}, c0),
|
|
26738
|
+
spanRow: ((_c0$span = c0.span) === null || _c0$span === void 0 ? void 0 : _c0$span.row) || 1,
|
|
26739
|
+
spanCol: ((_c0$span2 = c0.span) === null || _c0$span2 === void 0 ? void 0 : _c0$span2.col) || 1
|
|
26740
|
+
});
|
|
26741
|
+
}
|
|
26742
|
+
}
|
|
26743
|
+
}
|
|
26744
|
+
|
|
26745
|
+
// 2. Build the new grid: copy meta keys, drop all cell keys.
|
|
26746
|
+
var out = {};
|
|
26747
|
+
for (var _i2 = 0, _Object$keys2 = Object.keys(grid); _i2 < _Object$keys2.length; _i2++) {
|
|
26748
|
+
var k = _Object$keys2[_i2];
|
|
26749
|
+
if (META_KEYS$4.has(k)) out[k] = grid[k];
|
|
26750
|
+
}
|
|
26751
|
+
if (isHorizontal) {
|
|
26752
|
+
out.cols = oldCols * count;
|
|
26753
|
+
out.rows = oldRows;
|
|
26754
|
+
} else {
|
|
26755
|
+
out.rows = oldRows * count;
|
|
26756
|
+
out.cols = oldCols;
|
|
26757
|
+
}
|
|
26758
|
+
|
|
26759
|
+
// 3. Reposition every visible cell to its scaled position with the
|
|
26760
|
+
// span scaled in the split direction.
|
|
26761
|
+
for (var _i3 = 0, _visibleCells = visibleCells; _i3 < _visibleCells.length; _i3++) {
|
|
26762
|
+
var vc = _visibleCells[_i3];
|
|
26763
|
+
var newRow = isHorizontal ? vc.row : (vc.row - 1) * count + 1;
|
|
26764
|
+
var newCol = isHorizontal ? (vc.col - 1) * count + 1 : vc.col;
|
|
26765
|
+
var _key = "".concat(newRow, ".").concat(newCol);
|
|
26766
|
+
var repositioned = _objectSpread$D(_objectSpread$D({}, vc.data), {}, {
|
|
26767
|
+
hide: false,
|
|
26768
|
+
span: {
|
|
26769
|
+
row: isHorizontal ? vc.spanRow : vc.spanRow * count,
|
|
26770
|
+
col: isHorizontal ? vc.spanCol * count : vc.spanCol
|
|
26771
|
+
}
|
|
26772
|
+
});
|
|
26773
|
+
out[_key] = repositioned;
|
|
26774
|
+
}
|
|
26775
|
+
|
|
26776
|
+
// 4. Replace the target cell's repositioned entry with count sub-cells.
|
|
26777
|
+
var newTargetRow = isHorizontal ? row : (row - 1) * count + 1;
|
|
26778
|
+
var newTargetCol = isHorizontal ? (col - 1) * count + 1 : col;
|
|
26779
|
+
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;
|
|
26780
|
+
var subSpan = newTargetSpanInSplitDir / count;
|
|
26781
|
+
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;
|
|
26782
|
+
for (var i = 0; i < count; i++) {
|
|
26783
|
+
var subRow = isHorizontal ? newTargetRow : newTargetRow + i * subSpan;
|
|
26784
|
+
var subCol = isHorizontal ? newTargetCol + i * subSpan : newTargetCol;
|
|
26785
|
+
var _key2 = "".concat(subRow, ".").concat(subCol);
|
|
26786
|
+
var sub = {
|
|
26787
|
+
component: i === 0 ? component : null,
|
|
26788
|
+
hide: false
|
|
26789
|
+
};
|
|
26790
|
+
if (subSpan > 1 || otherSpan > 1) {
|
|
26791
|
+
sub.span = {};
|
|
26792
|
+
if (isHorizontal) {
|
|
26793
|
+
if (subSpan > 1) sub.span.col = subSpan;
|
|
26794
|
+
if (otherSpan > 1) sub.span.row = otherSpan;
|
|
26795
|
+
} else {
|
|
26796
|
+
if (subSpan > 1) sub.span.row = subSpan;
|
|
26797
|
+
if (otherSpan > 1) sub.span.col = otherSpan;
|
|
26798
|
+
}
|
|
26799
|
+
}
|
|
26800
|
+
out[_key2] = sub;
|
|
26801
|
+
}
|
|
26802
|
+
return out;
|
|
26803
|
+
}
|
|
26804
|
+
function splitGridCellOp(grid, cellNumber, direction) {
|
|
26805
|
+
var _targetCell$span7, _targetCell$span8;
|
|
26806
|
+
var count = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 2;
|
|
26807
|
+
if (!grid) return grid;
|
|
26808
|
+
var targetCell = grid[cellNumber];
|
|
26809
|
+
if (!targetCell) return grid;
|
|
26810
|
+
if (direction !== "horizontal" && direction !== "vertical") return grid;
|
|
26811
|
+
if (!Number.isFinite(count) || count < 2) return grid;
|
|
26812
|
+
var _cellNumber$split$map = cellNumber.split(".").map(Number),
|
|
26813
|
+
_cellNumber$split$map2 = _slicedToArray(_cellNumber$split$map, 2),
|
|
26814
|
+
row = _cellNumber$split$map2[0],
|
|
26815
|
+
col = _cellNumber$split$map2[1];
|
|
26816
|
+
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;
|
|
26817
|
+
if (targetSpanInSplitDir % count === 0) {
|
|
26818
|
+
return _splitCaseADivisibleSpan(grid, row, col, direction, count);
|
|
26819
|
+
}
|
|
26820
|
+
return _splitCaseBResolutionMultiply(grid, row, col, direction, count);
|
|
26821
|
+
}
|
|
26822
|
+
|
|
26823
|
+
// Exposed for tests / DashboardModel utility (kept private until needed).
|
|
26824
|
+
splitGridCellOp._stripSpan = _stripSpan;
|
|
26825
|
+
|
|
26826
|
+
/**
|
|
26827
|
+
* addGridRowOp
|
|
26828
|
+
*
|
|
26829
|
+
* Pure helper for `DashboardModel.addGridRow`. Inserts a new empty row
|
|
26830
|
+
* after the supplied row number (afterRow=0 inserts at the top). All
|
|
26831
|
+
* rows at or after the insertion point shift down by one. rowHeights
|
|
26832
|
+
* and rowModes maps shift correspondingly so that per-row sizing/mode
|
|
26833
|
+
* state tracks the original rows.
|
|
26834
|
+
*
|
|
26835
|
+
* Pure — input grid is never mutated.
|
|
26836
|
+
*/
|
|
26837
|
+
|
|
26838
|
+
var META_KEYS$3 = new Set(["rows", "cols", "gap", "rowHeights", "rowModes", "colWidths"]);
|
|
26839
|
+
function _isCellKey$3(key) {
|
|
26840
|
+
return /^\d+\.\d+$/.test(key);
|
|
26841
|
+
}
|
|
26842
|
+
function _shiftKeyMap$1(map, insertAt) {
|
|
26843
|
+
if (!map) return undefined;
|
|
26844
|
+
var shifted = {};
|
|
26845
|
+
for (var _i = 0, _Object$entries = Object.entries(map); _i < _Object$entries.length; _i++) {
|
|
26846
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
26847
|
+
key = _Object$entries$_i[0],
|
|
26848
|
+
value = _Object$entries$_i[1];
|
|
26849
|
+
var n = Number(key);
|
|
26850
|
+
shifted[String(n >= insertAt ? n + 1 : n)] = value;
|
|
26851
|
+
}
|
|
26852
|
+
return Object.keys(shifted).length > 0 ? shifted : undefined;
|
|
26853
|
+
}
|
|
26854
|
+
function addGridRowOp(grid) {
|
|
26855
|
+
var afterRow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
26856
|
+
if (!grid) return grid;
|
|
26857
|
+
var newRowNumber = afterRow + 1;
|
|
26858
|
+
var out = {};
|
|
26859
|
+
// Copy meta keys forward.
|
|
26860
|
+
for (var _i2 = 0, _Object$keys = Object.keys(grid); _i2 < _Object$keys.length; _i2++) {
|
|
26861
|
+
var k = _Object$keys[_i2];
|
|
26862
|
+
if (META_KEYS$3.has(k)) out[k] = grid[k];
|
|
26863
|
+
}
|
|
26864
|
+
out.rows = (grid.rows || 0) + 1;
|
|
26865
|
+
out.cols = grid.cols;
|
|
26866
|
+
|
|
26867
|
+
// Walk every cell. Cells at row >= insertion point shift down by 1.
|
|
26868
|
+
for (var _i3 = 0, _Object$keys2 = Object.keys(grid); _i3 < _Object$keys2.length; _i3++) {
|
|
26869
|
+
var _k = _Object$keys2[_i3];
|
|
26870
|
+
if (!_isCellKey$3(_k)) continue;
|
|
26871
|
+
var _k$split$map = _k.split(".").map(Number),
|
|
26872
|
+
_k$split$map2 = _slicedToArray(_k$split$map, 2),
|
|
26873
|
+
r = _k$split$map2[0],
|
|
26874
|
+
c = _k$split$map2[1];
|
|
26875
|
+
var newRow = r >= newRowNumber ? r + 1 : r;
|
|
26876
|
+
out["".concat(newRow, ".").concat(c)] = grid[_k];
|
|
26877
|
+
}
|
|
26878
|
+
|
|
26879
|
+
// Insert empty cells in the new row.
|
|
26880
|
+
var cols = grid.cols || 0;
|
|
26881
|
+
for (var _c = 1; _c <= cols; _c++) {
|
|
26882
|
+
out["".concat(newRowNumber, ".").concat(_c)] = {
|
|
26883
|
+
component: null,
|
|
26884
|
+
hide: false
|
|
26885
|
+
};
|
|
26886
|
+
}
|
|
26887
|
+
|
|
26888
|
+
// Shift rowHeights / rowModes keys to track original rows.
|
|
26889
|
+
var newRowHeights = _shiftKeyMap$1(grid.rowHeights, newRowNumber);
|
|
26890
|
+
if (newRowHeights) out.rowHeights = newRowHeights;else delete out.rowHeights;
|
|
26891
|
+
var newRowModes = _shiftKeyMap$1(grid.rowModes, newRowNumber);
|
|
26892
|
+
if (newRowModes) out.rowModes = newRowModes;else delete out.rowModes;
|
|
26893
|
+
return out;
|
|
26894
|
+
}
|
|
26895
|
+
|
|
26896
|
+
/**
|
|
26897
|
+
* deleteGridRowOp
|
|
26898
|
+
*
|
|
26899
|
+
* Pure helper for `DashboardModel.deleteGridRow`. Removes the row at
|
|
26900
|
+
* `rowNumber`, shifts everything below up by one, and **returns the
|
|
26901
|
+
* list of widget component ids that lived on the deleted row** so the
|
|
26902
|
+
* caller can remove them from the layout (or surface them to a
|
|
26903
|
+
* confirm-before-delete UX in the future).
|
|
26904
|
+
*
|
|
26905
|
+
* Refuses to delete the only remaining row (returns the input grid
|
|
26906
|
+
* unchanged + empty orphans list — same fail-safe the model had).
|
|
26907
|
+
*/
|
|
26908
|
+
|
|
26909
|
+
var META_KEYS$2 = new Set(["rows", "cols", "gap", "rowHeights", "rowModes", "colModes", "colWidths"]);
|
|
26910
|
+
function _isCellKey$2(key) {
|
|
26911
|
+
return /^\d+\.\d+$/.test(key);
|
|
26912
|
+
}
|
|
26913
|
+
function _shiftKeyMapDown$1(map, deletedAt) {
|
|
26914
|
+
if (!map) return undefined;
|
|
26915
|
+
var shifted = {};
|
|
26916
|
+
for (var _i = 0, _Object$entries = Object.entries(map); _i < _Object$entries.length; _i++) {
|
|
26917
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
26918
|
+
key = _Object$entries$_i[0],
|
|
26919
|
+
value = _Object$entries$_i[1];
|
|
26920
|
+
var n = Number(key);
|
|
26921
|
+
if (n === deletedAt) continue;
|
|
26922
|
+
shifted[String(n > deletedAt ? n - 1 : n)] = value;
|
|
26923
|
+
}
|
|
26924
|
+
return Object.keys(shifted).length > 0 ? shifted : undefined;
|
|
26925
|
+
}
|
|
26926
|
+
function deleteGridRowOp(grid, rowNumber) {
|
|
26927
|
+
if (!grid) return {
|
|
26928
|
+
grid: grid,
|
|
26929
|
+
orphanedComponents: []
|
|
26930
|
+
};
|
|
26931
|
+
if ((grid.rows || 0) <= 1) {
|
|
26932
|
+
// Can't delete the only row — fail-safe no-op.
|
|
26933
|
+
return {
|
|
26934
|
+
grid: grid,
|
|
26935
|
+
orphanedComponents: []
|
|
26936
|
+
};
|
|
26937
|
+
}
|
|
26938
|
+
var out = {};
|
|
26939
|
+
var orphanedComponents = [];
|
|
26940
|
+
for (var _i2 = 0, _Object$keys = Object.keys(grid); _i2 < _Object$keys.length; _i2++) {
|
|
26941
|
+
var k = _Object$keys[_i2];
|
|
26942
|
+
if (META_KEYS$2.has(k)) {
|
|
26943
|
+
out[k] = grid[k];
|
|
26944
|
+
continue;
|
|
26945
|
+
}
|
|
26946
|
+
if (!_isCellKey$2(k)) continue;
|
|
26947
|
+
var _k$split$map = k.split(".").map(Number),
|
|
26948
|
+
_k$split$map2 = _slicedToArray(_k$split$map, 2),
|
|
26949
|
+
r = _k$split$map2[0],
|
|
26950
|
+
c = _k$split$map2[1];
|
|
26951
|
+
if (r === rowNumber) {
|
|
26952
|
+
// Cell is in the row being deleted — collect its component (if
|
|
26953
|
+
// any) as an orphan, drop the cell entirely.
|
|
26954
|
+
var comp = grid[k] && grid[k].component;
|
|
26955
|
+
if (comp != null) orphanedComponents.push(comp);
|
|
26956
|
+
continue;
|
|
26957
|
+
}
|
|
26958
|
+
if (r > rowNumber) {
|
|
26959
|
+
// Cells below the deleted row shift up by one.
|
|
26960
|
+
out["".concat(r - 1, ".").concat(c)] = grid[k];
|
|
26961
|
+
} else {
|
|
26962
|
+
// Cells above the deleted row are unchanged.
|
|
26963
|
+
out[k] = grid[k];
|
|
26964
|
+
}
|
|
26965
|
+
}
|
|
26966
|
+
out.rows = (grid.rows || 0) - 1;
|
|
26967
|
+
out.cols = grid.cols;
|
|
26968
|
+
var newRowHeights = _shiftKeyMapDown$1(grid.rowHeights, rowNumber);
|
|
26969
|
+
if (newRowHeights) out.rowHeights = newRowHeights;else delete out.rowHeights;
|
|
26970
|
+
var newRowModes = _shiftKeyMapDown$1(grid.rowModes, rowNumber);
|
|
26971
|
+
if (newRowModes) out.rowModes = newRowModes;else delete out.rowModes;
|
|
26972
|
+
return {
|
|
26973
|
+
grid: out,
|
|
26974
|
+
orphanedComponents: orphanedComponents
|
|
26975
|
+
};
|
|
26976
|
+
}
|
|
26977
|
+
|
|
26978
|
+
/**
|
|
26979
|
+
* addGridColumnOp
|
|
26980
|
+
*
|
|
26981
|
+
* Pure helper for `DashboardModel.addGridColumn`. Symmetric to
|
|
26982
|
+
* `addGridRowOp` but for columns. Inserts an empty column after the
|
|
26983
|
+
* supplied column number (afterCol=0 inserts at the left edge).
|
|
26984
|
+
* colModes shifts to track its original columns. (Original code
|
|
26985
|
+
* doesn't track colWidths, so we don't either; can be added later.)
|
|
26986
|
+
*/
|
|
26987
|
+
|
|
26988
|
+
var META_KEYS$1 = new Set(["rows", "cols", "gap", "rowHeights", "rowModes", "colModes", "colWidths"]);
|
|
26989
|
+
function _isCellKey$1(key) {
|
|
26990
|
+
return /^\d+\.\d+$/.test(key);
|
|
26991
|
+
}
|
|
26992
|
+
function _shiftKeyMap(map, insertAt) {
|
|
26993
|
+
if (!map) return undefined;
|
|
26994
|
+
var shifted = {};
|
|
26995
|
+
for (var _i = 0, _Object$entries = Object.entries(map); _i < _Object$entries.length; _i++) {
|
|
26996
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
26997
|
+
key = _Object$entries$_i[0],
|
|
26998
|
+
value = _Object$entries$_i[1];
|
|
26999
|
+
var n = Number(key);
|
|
27000
|
+
shifted[String(n >= insertAt ? n + 1 : n)] = value;
|
|
27001
|
+
}
|
|
27002
|
+
return Object.keys(shifted).length > 0 ? shifted : undefined;
|
|
27003
|
+
}
|
|
27004
|
+
function addGridColumnOp(grid) {
|
|
27005
|
+
var afterCol = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
27006
|
+
if (!grid) return grid;
|
|
27007
|
+
var newColNumber = afterCol + 1;
|
|
27008
|
+
var out = {};
|
|
27009
|
+
for (var _i2 = 0, _Object$keys = Object.keys(grid); _i2 < _Object$keys.length; _i2++) {
|
|
27010
|
+
var k = _Object$keys[_i2];
|
|
27011
|
+
if (META_KEYS$1.has(k)) out[k] = grid[k];
|
|
27012
|
+
}
|
|
27013
|
+
out.cols = (grid.cols || 0) + 1;
|
|
27014
|
+
out.rows = grid.rows;
|
|
27015
|
+
for (var _i3 = 0, _Object$keys2 = Object.keys(grid); _i3 < _Object$keys2.length; _i3++) {
|
|
27016
|
+
var _k = _Object$keys2[_i3];
|
|
27017
|
+
if (!_isCellKey$1(_k)) continue;
|
|
27018
|
+
var _k$split$map = _k.split(".").map(Number),
|
|
27019
|
+
_k$split$map2 = _slicedToArray(_k$split$map, 2),
|
|
27020
|
+
r = _k$split$map2[0],
|
|
27021
|
+
c = _k$split$map2[1];
|
|
27022
|
+
var newCol = c >= newColNumber ? c + 1 : c;
|
|
27023
|
+
out["".concat(r, ".").concat(newCol)] = grid[_k];
|
|
27024
|
+
}
|
|
27025
|
+
var rows = grid.rows || 0;
|
|
27026
|
+
for (var _r = 1; _r <= rows; _r++) {
|
|
27027
|
+
out["".concat(_r, ".").concat(newColNumber)] = {
|
|
27028
|
+
component: null,
|
|
27029
|
+
hide: false
|
|
27030
|
+
};
|
|
27031
|
+
}
|
|
27032
|
+
var newColModes = _shiftKeyMap(grid.colModes, newColNumber);
|
|
27033
|
+
if (newColModes) out.colModes = newColModes;else delete out.colModes;
|
|
27034
|
+
return out;
|
|
27035
|
+
}
|
|
27036
|
+
|
|
27037
|
+
/**
|
|
27038
|
+
* deleteGridColumnOp
|
|
27039
|
+
*
|
|
27040
|
+
* Pure helper for `DashboardModel.deleteGridColumn`. Symmetric to
|
|
27041
|
+
* `deleteGridRowOp` — removes the column at `colNumber`, shifts
|
|
27042
|
+
* everything to the right left by one, returns orphaned widget ids.
|
|
27043
|
+
*
|
|
27044
|
+
* Refuses to delete the only remaining column (returns input grid
|
|
27045
|
+
* unchanged + empty orphans list).
|
|
27046
|
+
*/
|
|
27047
|
+
|
|
27048
|
+
var META_KEYS = new Set(["rows", "cols", "gap", "rowHeights", "rowModes", "colModes", "colWidths"]);
|
|
27049
|
+
function _isCellKey(key) {
|
|
27050
|
+
return /^\d+\.\d+$/.test(key);
|
|
27051
|
+
}
|
|
27052
|
+
function _shiftKeyMapDown(map, deletedAt) {
|
|
27053
|
+
if (!map) return undefined;
|
|
27054
|
+
var shifted = {};
|
|
27055
|
+
for (var _i = 0, _Object$entries = Object.entries(map); _i < _Object$entries.length; _i++) {
|
|
27056
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
27057
|
+
key = _Object$entries$_i[0],
|
|
27058
|
+
value = _Object$entries$_i[1];
|
|
27059
|
+
var n = Number(key);
|
|
27060
|
+
if (n === deletedAt) continue;
|
|
27061
|
+
shifted[String(n > deletedAt ? n - 1 : n)] = value;
|
|
27062
|
+
}
|
|
27063
|
+
return Object.keys(shifted).length > 0 ? shifted : undefined;
|
|
27064
|
+
}
|
|
27065
|
+
function deleteGridColumnOp(grid, colNumber) {
|
|
27066
|
+
if (!grid) return {
|
|
27067
|
+
grid: grid,
|
|
27068
|
+
orphanedComponents: []
|
|
27069
|
+
};
|
|
27070
|
+
if ((grid.cols || 0) <= 1) {
|
|
27071
|
+
return {
|
|
27072
|
+
grid: grid,
|
|
27073
|
+
orphanedComponents: []
|
|
27074
|
+
};
|
|
27075
|
+
}
|
|
27076
|
+
var out = {};
|
|
27077
|
+
var orphanedComponents = [];
|
|
27078
|
+
for (var _i2 = 0, _Object$keys = Object.keys(grid); _i2 < _Object$keys.length; _i2++) {
|
|
27079
|
+
var k = _Object$keys[_i2];
|
|
27080
|
+
if (META_KEYS.has(k)) {
|
|
27081
|
+
out[k] = grid[k];
|
|
27082
|
+
continue;
|
|
27083
|
+
}
|
|
27084
|
+
if (!_isCellKey(k)) continue;
|
|
27085
|
+
var _k$split$map = k.split(".").map(Number),
|
|
27086
|
+
_k$split$map2 = _slicedToArray(_k$split$map, 2),
|
|
27087
|
+
r = _k$split$map2[0],
|
|
27088
|
+
c = _k$split$map2[1];
|
|
27089
|
+
if (c === colNumber) {
|
|
27090
|
+
var comp = grid[k] && grid[k].component;
|
|
27091
|
+
if (comp != null) orphanedComponents.push(comp);
|
|
27092
|
+
continue;
|
|
27093
|
+
}
|
|
27094
|
+
if (c > colNumber) {
|
|
27095
|
+
out["".concat(r, ".").concat(c - 1)] = grid[k];
|
|
27096
|
+
} else {
|
|
27097
|
+
out[k] = grid[k];
|
|
27098
|
+
}
|
|
27099
|
+
}
|
|
27100
|
+
out.cols = (grid.cols || 0) - 1;
|
|
27101
|
+
out.rows = grid.rows;
|
|
27102
|
+
var newColModes = _shiftKeyMapDown(grid.colModes, colNumber);
|
|
27103
|
+
if (newColModes) out.colModes = newColModes;else delete out.colModes;
|
|
27104
|
+
return {
|
|
27105
|
+
grid: out,
|
|
27106
|
+
orphanedComponents: orphanedComponents
|
|
27107
|
+
};
|
|
27108
|
+
}
|
|
27109
|
+
|
|
26619
27110
|
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; } } }; }
|
|
26620
27111
|
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; } }
|
|
26621
27112
|
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; }
|
|
@@ -27897,210 +28388,18 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
27897
28388
|
if (!gridContainer || !gridContainer.grid) {
|
|
27898
28389
|
return null;
|
|
27899
28390
|
}
|
|
27900
|
-
|
|
27901
|
-
|
|
27902
|
-
|
|
27903
|
-
|
|
27904
|
-
|
|
27905
|
-
var
|
|
27906
|
-
if (
|
|
27907
|
-
|
|
27908
|
-
|
|
27909
|
-
|
|
27910
|
-
if (targetSpanCol % count === 0) {
|
|
27911
|
-
// CASE A: Span is divisible — simple subdivision, no grid resize
|
|
27912
|
-
var subSpan = targetSpanCol / count;
|
|
27913
|
-
var component = targetCell === null || targetCell === void 0 ? void 0 : targetCell.component;
|
|
27914
|
-
|
|
27915
|
-
// Unhide cells covered by the old span
|
|
27916
|
-
for (var sr = row; sr < row + targetSpanRow; sr++) {
|
|
27917
|
-
for (var sc = col; sc < col + targetSpanCol; sc++) {
|
|
27918
|
-
var k = "".concat(sr, ".").concat(sc);
|
|
27919
|
-
if (grid[k]) grid[k].hide = false;
|
|
27920
|
-
}
|
|
27921
|
-
}
|
|
27922
|
-
delete targetCell.span;
|
|
27923
|
-
|
|
27924
|
-
// Create subdivided cells
|
|
27925
|
-
for (var i = 0; i < count; i++) {
|
|
27926
|
-
var key = "".concat(row, ".").concat(col + i * subSpan);
|
|
27927
|
-
grid[key] = {
|
|
27928
|
-
component: i === 0 ? component : null,
|
|
27929
|
-
hide: false
|
|
27930
|
-
};
|
|
27931
|
-
if (subSpan > 1 || targetSpanRow > 1) {
|
|
27932
|
-
grid[key].span = {};
|
|
27933
|
-
if (subSpan > 1) grid[key].span.col = subSpan;
|
|
27934
|
-
if (targetSpanRow > 1) grid[key].span.row = targetSpanRow;
|
|
27935
|
-
}
|
|
27936
|
-
}
|
|
27937
|
-
} else {
|
|
27938
|
-
var _targetCell$span3, _targetCell$span4;
|
|
27939
|
-
// CASE B: Multiply grid resolution by count
|
|
27940
|
-
var oldCols = grid.cols;
|
|
27941
|
-
|
|
27942
|
-
// 1. Collect all visible cells
|
|
27943
|
-
var visibleCells = [];
|
|
27944
|
-
for (var r = 1; r <= grid.rows; r++) {
|
|
27945
|
-
for (var c = 1; c <= oldCols; c++) {
|
|
27946
|
-
var _key5 = "".concat(r, ".").concat(c);
|
|
27947
|
-
var cell = grid[_key5];
|
|
27948
|
-
if (cell && !cell.hide) {
|
|
27949
|
-
var _cell$span, _cell$span2;
|
|
27950
|
-
visibleCells.push({
|
|
27951
|
-
row: r,
|
|
27952
|
-
col: c,
|
|
27953
|
-
data: _objectSpread$D({}, cell),
|
|
27954
|
-
spanCol: ((_cell$span = cell.span) === null || _cell$span === void 0 ? void 0 : _cell$span.col) || 1,
|
|
27955
|
-
spanRow: ((_cell$span2 = cell.span) === null || _cell$span2 === void 0 ? void 0 : _cell$span2.row) || 1
|
|
27956
|
-
});
|
|
27957
|
-
}
|
|
27958
|
-
}
|
|
27959
|
-
}
|
|
27960
|
-
|
|
27961
|
-
// 2. Clear all cell keys
|
|
27962
|
-
for (var _i4 = 0, _Object$keys3 = Object.keys(grid); _i4 < _Object$keys3.length; _i4++) {
|
|
27963
|
-
var _key6 = _Object$keys3[_i4];
|
|
27964
|
-
if (/^\d+\.\d+$/.test(_key6)) delete grid[_key6];
|
|
27965
|
-
}
|
|
27966
|
-
|
|
27967
|
-
// 3. Update grid dimensions
|
|
27968
|
-
grid.cols = oldCols * count;
|
|
27969
|
-
|
|
27970
|
-
// 4. Reposition all cells with scaled positions and spans
|
|
27971
|
-
for (var _i5 = 0, _visibleCells = visibleCells; _i5 < _visibleCells.length; _i5++) {
|
|
27972
|
-
var vc = _visibleCells[_i5];
|
|
27973
|
-
var newCol = (vc.col - 1) * count + 1;
|
|
27974
|
-
var _key7 = "".concat(vc.row, ".").concat(newCol);
|
|
27975
|
-
grid[_key7] = _objectSpread$D(_objectSpread$D({}, vc.data), {}, {
|
|
27976
|
-
hide: false,
|
|
27977
|
-
span: {
|
|
27978
|
-
row: vc.spanRow,
|
|
27979
|
-
col: vc.spanCol * count
|
|
27980
|
-
}
|
|
27981
|
-
});
|
|
27982
|
-
}
|
|
27983
|
-
|
|
27984
|
-
// 5. Split the target cell into count sub-cells
|
|
27985
|
-
var newTargetCol = (col - 1) * count + 1;
|
|
27986
|
-
var newTargetSpan = ((targetCell === null || targetCell === void 0 || (_targetCell$span3 = targetCell.span) === null || _targetCell$span3 === void 0 ? void 0 : _targetCell$span3.col) || 1) * count;
|
|
27987
|
-
var _subSpan = newTargetSpan / count;
|
|
27988
|
-
var _component = targetCell === null || targetCell === void 0 ? void 0 : targetCell.component;
|
|
27989
|
-
var rowSpan = (targetCell === null || targetCell === void 0 || (_targetCell$span4 = targetCell.span) === null || _targetCell$span4 === void 0 ? void 0 : _targetCell$span4.row) || 1;
|
|
27990
|
-
for (var _i6 = 0; _i6 < count; _i6++) {
|
|
27991
|
-
var _key8 = "".concat(row, ".").concat(newTargetCol + _i6 * _subSpan);
|
|
27992
|
-
grid[_key8] = {
|
|
27993
|
-
component: _i6 === 0 ? _component : null,
|
|
27994
|
-
hide: false
|
|
27995
|
-
};
|
|
27996
|
-
if (_subSpan > 1 || rowSpan > 1) {
|
|
27997
|
-
grid[_key8].span = {};
|
|
27998
|
-
if (_subSpan > 1) grid[_key8].span.col = _subSpan;
|
|
27999
|
-
if (rowSpan > 1) grid[_key8].span.row = rowSpan;
|
|
28000
|
-
}
|
|
28001
|
-
}
|
|
28002
|
-
}
|
|
28003
|
-
} else if (direction === "vertical") {
|
|
28004
|
-
var _targetCell$span5, _targetCell$span6;
|
|
28005
|
-
var _targetSpanRow = (targetCell === null || targetCell === void 0 || (_targetCell$span5 = targetCell.span) === null || _targetCell$span5 === void 0 ? void 0 : _targetCell$span5.row) || 1;
|
|
28006
|
-
var _targetSpanCol = (targetCell === null || targetCell === void 0 || (_targetCell$span6 = targetCell.span) === null || _targetCell$span6 === void 0 ? void 0 : _targetCell$span6.col) || 1;
|
|
28007
|
-
if (_targetSpanRow % count === 0) {
|
|
28008
|
-
// CASE A: Span is divisible — simple subdivision, no grid resize
|
|
28009
|
-
var _subSpan2 = _targetSpanRow / count;
|
|
28010
|
-
var _component2 = targetCell === null || targetCell === void 0 ? void 0 : targetCell.component;
|
|
28011
|
-
|
|
28012
|
-
// Unhide cells covered by the old span
|
|
28013
|
-
for (var _sr2 = row; _sr2 < row + _targetSpanRow; _sr2++) {
|
|
28014
|
-
for (var _sc2 = col; _sc2 < col + _targetSpanCol; _sc2++) {
|
|
28015
|
-
var _k = "".concat(_sr2, ".").concat(_sc2);
|
|
28016
|
-
if (grid[_k]) grid[_k].hide = false;
|
|
28017
|
-
}
|
|
28018
|
-
}
|
|
28019
|
-
delete targetCell.span;
|
|
28020
|
-
|
|
28021
|
-
// Create subdivided cells
|
|
28022
|
-
for (var _i7 = 0; _i7 < count; _i7++) {
|
|
28023
|
-
var _key9 = "".concat(row + _i7 * _subSpan2, ".").concat(col);
|
|
28024
|
-
grid[_key9] = {
|
|
28025
|
-
component: _i7 === 0 ? _component2 : null,
|
|
28026
|
-
hide: false
|
|
28027
|
-
};
|
|
28028
|
-
if (_subSpan2 > 1 || _targetSpanCol > 1) {
|
|
28029
|
-
grid[_key9].span = {};
|
|
28030
|
-
if (_subSpan2 > 1) grid[_key9].span.row = _subSpan2;
|
|
28031
|
-
if (_targetSpanCol > 1) grid[_key9].span.col = _targetSpanCol;
|
|
28032
|
-
}
|
|
28033
|
-
}
|
|
28034
|
-
} else {
|
|
28035
|
-
var _targetCell$span7, _targetCell$span8;
|
|
28036
|
-
// CASE B: Multiply grid resolution by count
|
|
28037
|
-
var oldRows = grid.rows;
|
|
28038
|
-
|
|
28039
|
-
// 1. Collect all visible cells
|
|
28040
|
-
var _visibleCells2 = [];
|
|
28041
|
-
for (var _r1 = 1; _r1 <= oldRows; _r1++) {
|
|
28042
|
-
for (var _c10 = 1; _c10 <= grid.cols; _c10++) {
|
|
28043
|
-
var _key0 = "".concat(_r1, ".").concat(_c10);
|
|
28044
|
-
var _cell6 = grid[_key0];
|
|
28045
|
-
if (_cell6 && !_cell6.hide) {
|
|
28046
|
-
var _cell6$span, _cell6$span2;
|
|
28047
|
-
_visibleCells2.push({
|
|
28048
|
-
row: _r1,
|
|
28049
|
-
col: _c10,
|
|
28050
|
-
data: _objectSpread$D({}, _cell6),
|
|
28051
|
-
spanRow: ((_cell6$span = _cell6.span) === null || _cell6$span === void 0 ? void 0 : _cell6$span.row) || 1,
|
|
28052
|
-
spanCol: ((_cell6$span2 = _cell6.span) === null || _cell6$span2 === void 0 ? void 0 : _cell6$span2.col) || 1
|
|
28053
|
-
});
|
|
28054
|
-
}
|
|
28055
|
-
}
|
|
28056
|
-
}
|
|
28057
|
-
|
|
28058
|
-
// 2. Clear all cell keys
|
|
28059
|
-
for (var _i8 = 0, _Object$keys4 = Object.keys(grid); _i8 < _Object$keys4.length; _i8++) {
|
|
28060
|
-
var _key1 = _Object$keys4[_i8];
|
|
28061
|
-
if (/^\d+\.\d+$/.test(_key1)) delete grid[_key1];
|
|
28062
|
-
}
|
|
28063
|
-
|
|
28064
|
-
// 3. Update grid dimensions
|
|
28065
|
-
grid.rows = oldRows * count;
|
|
28066
|
-
|
|
28067
|
-
// 4. Reposition all cells with scaled positions and spans
|
|
28068
|
-
for (var _i9 = 0, _visibleCells3 = _visibleCells2; _i9 < _visibleCells3.length; _i9++) {
|
|
28069
|
-
var _vc = _visibleCells3[_i9];
|
|
28070
|
-
var newRow = (_vc.row - 1) * count + 1;
|
|
28071
|
-
var _key10 = "".concat(newRow, ".").concat(_vc.col);
|
|
28072
|
-
grid[_key10] = _objectSpread$D(_objectSpread$D({}, _vc.data), {}, {
|
|
28073
|
-
hide: false,
|
|
28074
|
-
span: {
|
|
28075
|
-
row: _vc.spanRow * count,
|
|
28076
|
-
col: _vc.spanCol
|
|
28077
|
-
}
|
|
28078
|
-
});
|
|
28079
|
-
}
|
|
28080
|
-
|
|
28081
|
-
// 5. Split the target cell into count sub-cells
|
|
28082
|
-
var newTargetRow = (row - 1) * count + 1;
|
|
28083
|
-
var _newTargetSpan = ((targetCell === null || targetCell === void 0 || (_targetCell$span7 = targetCell.span) === null || _targetCell$span7 === void 0 ? void 0 : _targetCell$span7.row) || 1) * count;
|
|
28084
|
-
var _subSpan3 = _newTargetSpan / count;
|
|
28085
|
-
var _component3 = targetCell === null || targetCell === void 0 ? void 0 : targetCell.component;
|
|
28086
|
-
var colSpan = (targetCell === null || targetCell === void 0 || (_targetCell$span8 = targetCell.span) === null || _targetCell$span8 === void 0 ? void 0 : _targetCell$span8.col) || 1;
|
|
28087
|
-
for (var _i0 = 0; _i0 < count; _i0++) {
|
|
28088
|
-
var _key11 = "".concat(newTargetRow + _i0 * _subSpan3, ".").concat(col);
|
|
28089
|
-
grid[_key11] = {
|
|
28090
|
-
component: _i0 === 0 ? _component3 : null,
|
|
28091
|
-
hide: false
|
|
28092
|
-
};
|
|
28093
|
-
if (_subSpan3 > 1 || colSpan > 1) {
|
|
28094
|
-
grid[_key11].span = {};
|
|
28095
|
-
if (_subSpan3 > 1) grid[_key11].span.row = _subSpan3;
|
|
28096
|
-
if (colSpan > 1) grid[_key11].span.col = colSpan;
|
|
28097
|
-
}
|
|
28098
|
-
}
|
|
28099
|
-
}
|
|
28391
|
+
// Slice 11: pure helper handles both CASE A (divisible span)
|
|
28392
|
+
// and CASE B (resolution multiply). Falls through to the legacy
|
|
28393
|
+
// inline path below if the helper somehow returns the same
|
|
28394
|
+
// grid (defensive — shouldn't happen for a valid cellNumber +
|
|
28395
|
+
// direction).
|
|
28396
|
+
var newGrid = splitGridCellOp(gridContainer.grid, cellNumber, direction, count);
|
|
28397
|
+
if (newGrid !== gridContainer.grid) {
|
|
28398
|
+
gridContainer.grid = newGrid;
|
|
28399
|
+
this._normalizeGrid(gridContainer.grid);
|
|
28400
|
+
this.updateLayoutItem(gridContainer);
|
|
28100
28401
|
}
|
|
28101
|
-
|
|
28102
|
-
this.updateLayoutItem(gridContainer);
|
|
28103
|
-
return grid;
|
|
28402
|
+
return gridContainer.grid;
|
|
28104
28403
|
} catch (e) {
|
|
28105
28404
|
return null;
|
|
28106
28405
|
}
|
|
@@ -28249,55 +28548,8 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
28249
28548
|
if (!gridContainer || !gridContainer.grid) {
|
|
28250
28549
|
return null;
|
|
28251
28550
|
}
|
|
28252
|
-
|
|
28253
|
-
gridContainer.grid.
|
|
28254
|
-
|
|
28255
|
-
// Shift existing rows down
|
|
28256
|
-
for (var r = gridContainer.grid.rows; r > newRowNumber; r--) {
|
|
28257
|
-
for (var c = 1; c <= gridContainer.grid.cols; c++) {
|
|
28258
|
-
var oldCell = "".concat(r - 1, ".").concat(c);
|
|
28259
|
-
var newCell = "".concat(r, ".").concat(c);
|
|
28260
|
-
if (oldCell in gridContainer.grid) {
|
|
28261
|
-
gridContainer.grid[newCell] = gridContainer.grid[oldCell];
|
|
28262
|
-
delete gridContainer.grid[oldCell];
|
|
28263
|
-
}
|
|
28264
|
-
}
|
|
28265
|
-
}
|
|
28266
|
-
|
|
28267
|
-
// Create new empty cells for the new row
|
|
28268
|
-
for (var _c11 = 1; _c11 <= gridContainer.grid.cols; _c11++) {
|
|
28269
|
-
var cellNumber = "".concat(newRowNumber, ".").concat(_c11);
|
|
28270
|
-
gridContainer.grid[cellNumber] = {
|
|
28271
|
-
component: null,
|
|
28272
|
-
hide: false
|
|
28273
|
-
};
|
|
28274
|
-
}
|
|
28275
|
-
|
|
28276
|
-
// Shift rowHeights keys down (rows after insertion point move +1)
|
|
28277
|
-
if (gridContainer.grid.rowHeights) {
|
|
28278
|
-
var shifted = {};
|
|
28279
|
-
for (var _i1 = 0, _Object$entries2 = Object.entries(gridContainer.grid.rowHeights); _i1 < _Object$entries2.length; _i1++) {
|
|
28280
|
-
var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i1], 2),
|
|
28281
|
-
key = _Object$entries2$_i[0],
|
|
28282
|
-
mult = _Object$entries2$_i[1];
|
|
28283
|
-
var rowNum = Number(key);
|
|
28284
|
-
shifted[String(rowNum >= newRowNumber ? rowNum + 1 : rowNum)] = mult;
|
|
28285
|
-
}
|
|
28286
|
-
gridContainer.grid.rowHeights = Object.keys(shifted).length > 0 ? shifted : undefined;
|
|
28287
|
-
}
|
|
28288
|
-
|
|
28289
|
-
// Shift rowModes keys down (rows after insertion point move +1)
|
|
28290
|
-
if (gridContainer.grid.rowModes) {
|
|
28291
|
-
var _shifted = {};
|
|
28292
|
-
for (var _i10 = 0, _Object$entries3 = Object.entries(gridContainer.grid.rowModes); _i10 < _Object$entries3.length; _i10++) {
|
|
28293
|
-
var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i10], 2),
|
|
28294
|
-
_key12 = _Object$entries3$_i[0],
|
|
28295
|
-
mode = _Object$entries3$_i[1];
|
|
28296
|
-
var _rowNum = Number(_key12);
|
|
28297
|
-
_shifted[String(_rowNum >= newRowNumber ? _rowNum + 1 : _rowNum)] = mode;
|
|
28298
|
-
}
|
|
28299
|
-
gridContainer.grid.rowModes = Object.keys(_shifted).length > 0 ? _shifted : undefined;
|
|
28300
|
-
}
|
|
28551
|
+
// Slice 11: pure helper handles the row-insertion + shifting.
|
|
28552
|
+
gridContainer.grid = addGridRowOp(gridContainer.grid, afterRow);
|
|
28301
28553
|
this._normalizeGrid(gridContainer.grid);
|
|
28302
28554
|
this.updateLayoutItem(gridContainer);
|
|
28303
28555
|
return gridContainer.grid;
|
|
@@ -28323,55 +28575,23 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
28323
28575
|
if (gridContainer.grid.rows <= 1) {
|
|
28324
28576
|
return null;
|
|
28325
28577
|
}
|
|
28326
|
-
|
|
28327
|
-
//
|
|
28328
|
-
|
|
28329
|
-
|
|
28330
|
-
|
|
28331
|
-
|
|
28332
|
-
|
|
28333
|
-
|
|
28334
|
-
|
|
28335
|
-
|
|
28336
|
-
|
|
28337
|
-
|
|
28338
|
-
for (var _c12 = 1; _c12 <= gridContainer.grid.cols; _c12++) {
|
|
28339
|
-
var oldCell = "".concat(r, ".").concat(_c12);
|
|
28340
|
-
var newCell = "".concat(r - 1, ".").concat(_c12);
|
|
28341
|
-
if (oldCell in gridContainer.grid) {
|
|
28342
|
-
gridContainer.grid[newCell] = gridContainer.grid[oldCell];
|
|
28343
|
-
delete gridContainer.grid[oldCell];
|
|
28344
|
-
}
|
|
28578
|
+
// Slice 11: pure helper returns the updated grid + the list of
|
|
28579
|
+
// widget components that lived on the deleted row. We remove
|
|
28580
|
+
// those from the layout here to preserve the original
|
|
28581
|
+
// destructive-delete behavior.
|
|
28582
|
+
var result = deleteGridRowOp(gridContainer.grid, rowNumber);
|
|
28583
|
+
gridContainer.grid = result.grid;
|
|
28584
|
+
var _iterator2 = _createForOfIteratorHelper$m(result.orphanedComponents),
|
|
28585
|
+
_step2;
|
|
28586
|
+
try {
|
|
28587
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
28588
|
+
var componentId = _step2.value;
|
|
28589
|
+
this.removeItemFromLayout(componentId);
|
|
28345
28590
|
}
|
|
28346
|
-
}
|
|
28347
|
-
|
|
28348
|
-
|
|
28349
|
-
|
|
28350
|
-
if (gridContainer.grid.rowHeights) {
|
|
28351
|
-
var shifted = {};
|
|
28352
|
-
for (var _i11 = 0, _Object$entries4 = Object.entries(gridContainer.grid.rowHeights); _i11 < _Object$entries4.length; _i11++) {
|
|
28353
|
-
var _Object$entries4$_i = _slicedToArray(_Object$entries4[_i11], 2),
|
|
28354
|
-
key = _Object$entries4$_i[0],
|
|
28355
|
-
mult = _Object$entries4$_i[1];
|
|
28356
|
-
var rowNum = Number(key);
|
|
28357
|
-
if (rowNum === rowNumber) continue;
|
|
28358
|
-
shifted[String(rowNum > rowNumber ? rowNum - 1 : rowNum)] = mult;
|
|
28359
|
-
}
|
|
28360
|
-
gridContainer.grid.rowHeights = Object.keys(shifted).length > 0 ? shifted : undefined;
|
|
28361
|
-
}
|
|
28362
|
-
|
|
28363
|
-
// Shift rowModes keys up and remove the deleted row's entry
|
|
28364
|
-
if (gridContainer.grid.rowModes) {
|
|
28365
|
-
var _shifted2 = {};
|
|
28366
|
-
for (var _i12 = 0, _Object$entries5 = Object.entries(gridContainer.grid.rowModes); _i12 < _Object$entries5.length; _i12++) {
|
|
28367
|
-
var _Object$entries5$_i = _slicedToArray(_Object$entries5[_i12], 2),
|
|
28368
|
-
_key13 = _Object$entries5$_i[0],
|
|
28369
|
-
mode = _Object$entries5$_i[1];
|
|
28370
|
-
var _rowNum2 = Number(_key13);
|
|
28371
|
-
if (_rowNum2 === rowNumber) continue;
|
|
28372
|
-
_shifted2[String(_rowNum2 > rowNumber ? _rowNum2 - 1 : _rowNum2)] = mode;
|
|
28373
|
-
}
|
|
28374
|
-
gridContainer.grid.rowModes = Object.keys(_shifted2).length > 0 ? _shifted2 : undefined;
|
|
28591
|
+
} catch (err) {
|
|
28592
|
+
_iterator2.e(err);
|
|
28593
|
+
} finally {
|
|
28594
|
+
_iterator2.f();
|
|
28375
28595
|
}
|
|
28376
28596
|
this._normalizeGrid(gridContainer.grid);
|
|
28377
28597
|
this.updateLayoutItem(gridContainer);
|
|
@@ -28430,42 +28650,8 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
28430
28650
|
if (!gridContainer || !gridContainer.grid) {
|
|
28431
28651
|
return null;
|
|
28432
28652
|
}
|
|
28433
|
-
|
|
28434
|
-
gridContainer.grid.
|
|
28435
|
-
|
|
28436
|
-
// Shift existing columns right
|
|
28437
|
-
for (var r = 1; r <= gridContainer.grid.rows; r++) {
|
|
28438
|
-
for (var c = gridContainer.grid.cols; c > newColNumber; c--) {
|
|
28439
|
-
var oldCell = "".concat(r, ".").concat(c - 1);
|
|
28440
|
-
var newCell = "".concat(r, ".").concat(c);
|
|
28441
|
-
if (oldCell in gridContainer.grid) {
|
|
28442
|
-
gridContainer.grid[newCell] = gridContainer.grid[oldCell];
|
|
28443
|
-
delete gridContainer.grid[oldCell];
|
|
28444
|
-
}
|
|
28445
|
-
}
|
|
28446
|
-
}
|
|
28447
|
-
|
|
28448
|
-
// Create new empty cells for the new column
|
|
28449
|
-
for (var _r10 = 1; _r10 <= gridContainer.grid.rows; _r10++) {
|
|
28450
|
-
var cellNumber = "".concat(_r10, ".").concat(newColNumber);
|
|
28451
|
-
gridContainer.grid[cellNumber] = {
|
|
28452
|
-
component: null,
|
|
28453
|
-
hide: false
|
|
28454
|
-
};
|
|
28455
|
-
}
|
|
28456
|
-
|
|
28457
|
-
// Shift colModes keys right (columns after insertion point move +1)
|
|
28458
|
-
if (gridContainer.grid.colModes) {
|
|
28459
|
-
var shifted = {};
|
|
28460
|
-
for (var _i13 = 0, _Object$entries6 = Object.entries(gridContainer.grid.colModes); _i13 < _Object$entries6.length; _i13++) {
|
|
28461
|
-
var _Object$entries6$_i = _slicedToArray(_Object$entries6[_i13], 2),
|
|
28462
|
-
key = _Object$entries6$_i[0],
|
|
28463
|
-
mode = _Object$entries6$_i[1];
|
|
28464
|
-
var colNum = Number(key);
|
|
28465
|
-
shifted[String(colNum >= newColNumber ? colNum + 1 : colNum)] = mode;
|
|
28466
|
-
}
|
|
28467
|
-
gridContainer.grid.colModes = Object.keys(shifted).length > 0 ? shifted : undefined;
|
|
28468
|
-
}
|
|
28653
|
+
// Slice 11: pure helper.
|
|
28654
|
+
gridContainer.grid = addGridColumnOp(gridContainer.grid, afterCol);
|
|
28469
28655
|
this._normalizeGrid(gridContainer.grid);
|
|
28470
28656
|
this.updateLayoutItem(gridContainer);
|
|
28471
28657
|
return gridContainer.grid;
|
|
@@ -28491,41 +28677,20 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
28491
28677
|
if (gridContainer.grid.cols <= 1) {
|
|
28492
28678
|
return null;
|
|
28493
28679
|
}
|
|
28494
|
-
|
|
28495
|
-
|
|
28496
|
-
|
|
28497
|
-
|
|
28498
|
-
|
|
28499
|
-
|
|
28500
|
-
|
|
28501
|
-
|
|
28502
|
-
|
|
28503
|
-
|
|
28504
|
-
// Shift columns left
|
|
28505
|
-
for (var _r11 = 1; _r11 <= gridContainer.grid.rows; _r11++) {
|
|
28506
|
-
for (var c = colNumber + 1; c <= gridContainer.grid.cols; c++) {
|
|
28507
|
-
var oldCell = "".concat(_r11, ".").concat(c);
|
|
28508
|
-
var newCell = "".concat(_r11, ".").concat(c - 1);
|
|
28509
|
-
if (oldCell in gridContainer.grid) {
|
|
28510
|
-
gridContainer.grid[newCell] = gridContainer.grid[oldCell];
|
|
28511
|
-
delete gridContainer.grid[oldCell];
|
|
28512
|
-
}
|
|
28513
|
-
}
|
|
28514
|
-
}
|
|
28515
|
-
gridContainer.grid.cols -= 1;
|
|
28516
|
-
|
|
28517
|
-
// Shift colModes keys left and remove the deleted column's entry
|
|
28518
|
-
if (gridContainer.grid.colModes) {
|
|
28519
|
-
var shifted = {};
|
|
28520
|
-
for (var _i14 = 0, _Object$entries7 = Object.entries(gridContainer.grid.colModes); _i14 < _Object$entries7.length; _i14++) {
|
|
28521
|
-
var _Object$entries7$_i = _slicedToArray(_Object$entries7[_i14], 2),
|
|
28522
|
-
key = _Object$entries7$_i[0],
|
|
28523
|
-
mode = _Object$entries7$_i[1];
|
|
28524
|
-
var colNum = Number(key);
|
|
28525
|
-
if (colNum === colNumber) continue;
|
|
28526
|
-
shifted[String(colNum > colNumber ? colNum - 1 : colNum)] = mode;
|
|
28680
|
+
// Slice 11: pure helper.
|
|
28681
|
+
var result = deleteGridColumnOp(gridContainer.grid, colNumber);
|
|
28682
|
+
gridContainer.grid = result.grid;
|
|
28683
|
+
var _iterator3 = _createForOfIteratorHelper$m(result.orphanedComponents),
|
|
28684
|
+
_step3;
|
|
28685
|
+
try {
|
|
28686
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
28687
|
+
var componentId = _step3.value;
|
|
28688
|
+
this.removeItemFromLayout(componentId);
|
|
28527
28689
|
}
|
|
28528
|
-
|
|
28690
|
+
} catch (err) {
|
|
28691
|
+
_iterator3.e(err);
|
|
28692
|
+
} finally {
|
|
28693
|
+
_iterator3.f();
|
|
28529
28694
|
}
|
|
28530
28695
|
this._normalizeGrid(gridContainer.grid);
|
|
28531
28696
|
this.updateLayoutItem(gridContainer);
|
|
@@ -28610,14 +28775,14 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
28610
28775
|
try {
|
|
28611
28776
|
// Collect all item IDs actively referenced by grid cells
|
|
28612
28777
|
var activeItemIds = new Set();
|
|
28613
|
-
var
|
|
28614
|
-
|
|
28778
|
+
var _iterator4 = _createForOfIteratorHelper$m(this.layout),
|
|
28779
|
+
_step4;
|
|
28615
28780
|
try {
|
|
28616
|
-
for (
|
|
28617
|
-
var item =
|
|
28781
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
28782
|
+
var item = _step4.value;
|
|
28618
28783
|
if (item.grid && _typeof(item.grid) === "object") {
|
|
28619
|
-
for (var
|
|
28620
|
-
var key = _Object$
|
|
28784
|
+
for (var _i4 = 0, _Object$keys3 = Object.keys(item.grid); _i4 < _Object$keys3.length; _i4++) {
|
|
28785
|
+
var key = _Object$keys3[_i4];
|
|
28621
28786
|
var cell = item.grid[key];
|
|
28622
28787
|
if (cell && _typeof(cell) === "object" && cell.component) {
|
|
28623
28788
|
activeItemIds.add(cell.component);
|
|
@@ -28630,9 +28795,9 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
28630
28795
|
|
|
28631
28796
|
// If no grid containers exist, nothing to clean
|
|
28632
28797
|
} catch (err) {
|
|
28633
|
-
|
|
28798
|
+
_iterator4.e(err);
|
|
28634
28799
|
} finally {
|
|
28635
|
-
|
|
28800
|
+
_iterator4.f();
|
|
28636
28801
|
}
|
|
28637
28802
|
if (activeItemIds.size === 0) return;
|
|
28638
28803
|
|
|
@@ -28650,17 +28815,17 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
28650
28815
|
});
|
|
28651
28816
|
|
|
28652
28817
|
// Clean listener references on remaining items for each removed orphan
|
|
28653
|
-
var
|
|
28654
|
-
|
|
28818
|
+
var _iterator5 = _createForOfIteratorHelper$m(orphanedIds),
|
|
28819
|
+
_step5;
|
|
28655
28820
|
try {
|
|
28656
|
-
for (
|
|
28657
|
-
var id =
|
|
28821
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
28822
|
+
var id = _step5.value;
|
|
28658
28823
|
this._cleanupListenerReferencesForId(id);
|
|
28659
28824
|
}
|
|
28660
28825
|
} catch (err) {
|
|
28661
|
-
|
|
28826
|
+
_iterator5.e(err);
|
|
28662
28827
|
} finally {
|
|
28663
|
-
|
|
28828
|
+
_iterator5.f();
|
|
28664
28829
|
}
|
|
28665
28830
|
} catch (e) {
|
|
28666
28831
|
}
|