@trops/dash-core 0.1.21 → 0.1.23
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 +263 -79
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +263 -79
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -10573,6 +10573,18 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
10573
10573
|
} catch (e) {
|
|
10574
10574
|
}
|
|
10575
10575
|
}
|
|
10576
|
+
function handleChangeRowMode(gridContainerId, rowNumber, mode) {
|
|
10577
|
+
try {
|
|
10578
|
+
var dashboard = new DashboardModel(currentWorkspace);
|
|
10579
|
+
var result = dashboard.changeRowMode(gridContainerId, rowNumber, mode);
|
|
10580
|
+
if (result) {
|
|
10581
|
+
var newWorkspace = dashboard.workspace();
|
|
10582
|
+
setCurrentWorkspace(newWorkspace);
|
|
10583
|
+
} else {
|
|
10584
|
+
}
|
|
10585
|
+
} catch (e) {
|
|
10586
|
+
}
|
|
10587
|
+
}
|
|
10576
10588
|
|
|
10577
10589
|
/**
|
|
10578
10590
|
* handle the click of a cell in a grid that does not contain a widget yet
|
|
@@ -10658,6 +10670,7 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
10658
10670
|
onAddGridColumn: handleAddGridColumn,
|
|
10659
10671
|
onDeleteGridColumn: handleDeleteGridColumn,
|
|
10660
10672
|
onChangeRowHeight: handleChangeRowHeight,
|
|
10673
|
+
onChangeRowMode: handleChangeRowMode,
|
|
10661
10674
|
onMoveWidgetToCell: handleMoveWidgetToCell
|
|
10662
10675
|
}, "layout-drag-".concat(dashboardId)), preview === false && editMode === "all" && /*#__PURE__*/jsx(LayoutDragBuilderEdit, {
|
|
10663
10676
|
dashboardId: dashboardId,
|
|
@@ -10702,6 +10715,7 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
10702
10715
|
onAddGridColumn: handleAddGridColumn,
|
|
10703
10716
|
onDeleteGridColumn: handleDeleteGridColumn,
|
|
10704
10717
|
onChangeRowHeight: handleChangeRowHeight,
|
|
10718
|
+
onChangeRowMode: handleChangeRowMode,
|
|
10705
10719
|
onMoveWidgetToCell: handleMoveWidgetToCell,
|
|
10706
10720
|
onDropWidgetFromSidebar: handleDropWidgetFromSidebar
|
|
10707
10721
|
}, "layout-drag-edit-".concat(dashboardId))]
|
|
@@ -10791,7 +10805,9 @@ var LayoutDragBuilder = function LayoutDragBuilder(_ref) {
|
|
|
10791
10805
|
_ref$onDeleteGridColu = _ref.onDeleteGridColumn,
|
|
10792
10806
|
onDeleteGridColumn = _ref$onDeleteGridColu === void 0 ? null : _ref$onDeleteGridColu,
|
|
10793
10807
|
_ref$onChangeRowHeigh = _ref.onChangeRowHeight,
|
|
10794
|
-
onChangeRowHeight = _ref$onChangeRowHeigh === void 0 ? null : _ref$onChangeRowHeigh
|
|
10808
|
+
onChangeRowHeight = _ref$onChangeRowHeigh === void 0 ? null : _ref$onChangeRowHeigh,
|
|
10809
|
+
_ref$onChangeRowMode = _ref.onChangeRowMode,
|
|
10810
|
+
onChangeRowMode = _ref$onChangeRowMode === void 0 ? null : _ref$onChangeRowMode;
|
|
10795
10811
|
return isDraggable === true ? /*#__PURE__*/jsx(DndProvider, {
|
|
10796
10812
|
backend: HTML5Backend,
|
|
10797
10813
|
children: _renderLayout({
|
|
@@ -10821,7 +10837,8 @@ var LayoutDragBuilder = function LayoutDragBuilder(_ref) {
|
|
|
10821
10837
|
onDeleteGridRow: onDeleteGridRow,
|
|
10822
10838
|
onAddGridColumn: onAddGridColumn,
|
|
10823
10839
|
onDeleteGridColumn: onDeleteGridColumn,
|
|
10824
|
-
onChangeRowHeight: onChangeRowHeight
|
|
10840
|
+
onChangeRowHeight: onChangeRowHeight,
|
|
10841
|
+
onChangeRowMode: onChangeRowMode
|
|
10825
10842
|
})
|
|
10826
10843
|
}, "dnd-provider") : _renderLayout({
|
|
10827
10844
|
dashboardId: dashboardId,
|
|
@@ -10850,7 +10867,8 @@ var LayoutDragBuilder = function LayoutDragBuilder(_ref) {
|
|
|
10850
10867
|
onDeleteGridRow: onDeleteGridRow,
|
|
10851
10868
|
onAddGridColumn: onAddGridColumn,
|
|
10852
10869
|
onDeleteGridColumn: onDeleteGridColumn,
|
|
10853
|
-
onChangeRowHeight: onChangeRowHeight
|
|
10870
|
+
onChangeRowHeight: onChangeRowHeight,
|
|
10871
|
+
onChangeRowMode: onChangeRowMode
|
|
10854
10872
|
});
|
|
10855
10873
|
};
|
|
10856
10874
|
|
|
@@ -10898,6 +10916,8 @@ var LayoutDragBuilderEdit = function LayoutDragBuilderEdit(_ref) {
|
|
|
10898
10916
|
onDeleteGridColumn = _ref$onDeleteGridColu === void 0 ? null : _ref$onDeleteGridColu,
|
|
10899
10917
|
_ref$onChangeRowHeigh = _ref.onChangeRowHeight,
|
|
10900
10918
|
onChangeRowHeight = _ref$onChangeRowHeigh === void 0 ? null : _ref$onChangeRowHeigh,
|
|
10919
|
+
_ref$onChangeRowMode = _ref.onChangeRowMode,
|
|
10920
|
+
onChangeRowMode = _ref$onChangeRowMode === void 0 ? null : _ref$onChangeRowMode,
|
|
10901
10921
|
_ref$onMoveWidgetToCe = _ref.onMoveWidgetToCell,
|
|
10902
10922
|
onMoveWidgetToCell = _ref$onMoveWidgetToCe === void 0 ? null : _ref$onMoveWidgetToCe,
|
|
10903
10923
|
_ref$onDropWidgetFrom = _ref.onDropWidgetFromSidebar,
|
|
@@ -10936,6 +10956,7 @@ var LayoutDragBuilderEdit = function LayoutDragBuilderEdit(_ref) {
|
|
|
10936
10956
|
onAddGridColumn: onAddGridColumn,
|
|
10937
10957
|
onDeleteGridColumn: onDeleteGridColumn,
|
|
10938
10958
|
onChangeRowHeight: onChangeRowHeight,
|
|
10959
|
+
onChangeRowMode: onChangeRowMode,
|
|
10939
10960
|
onMoveWidgetToCell: onMoveWidgetToCell,
|
|
10940
10961
|
onDropWidgetFromSidebar: onDropWidgetFromSidebar
|
|
10941
10962
|
});
|
|
@@ -13166,6 +13187,8 @@ var LayoutGridContainer = /*#__PURE__*/memo(function (_ref3) {
|
|
|
13166
13187
|
onDeleteGridColumn = _ref3$onDeleteGridCol === void 0 ? null : _ref3$onDeleteGridCol,
|
|
13167
13188
|
_ref3$onChangeRowHeig = _ref3.onChangeRowHeight,
|
|
13168
13189
|
onChangeRowHeight = _ref3$onChangeRowHeig === void 0 ? null : _ref3$onChangeRowHeig,
|
|
13190
|
+
_ref3$onChangeRowMode = _ref3.onChangeRowMode,
|
|
13191
|
+
onChangeRowMode = _ref3$onChangeRowMode === void 0 ? null : _ref3$onChangeRowMode,
|
|
13169
13192
|
_ref3$onMoveWidgetToC = _ref3.onMoveWidgetToCell,
|
|
13170
13193
|
onMoveWidgetToCell = _ref3$onMoveWidgetToC === void 0 ? null : _ref3$onMoveWidgetToC,
|
|
13171
13194
|
_ref3$onDropWidgetFro = _ref3.onDropWidgetFromSidebar,
|
|
@@ -13196,18 +13219,39 @@ var LayoutGridContainer = /*#__PURE__*/memo(function (_ref3) {
|
|
|
13196
13219
|
var GRID_PAD = 16; // px — matches p-4 (1rem)
|
|
13197
13220
|
var GRID_GAP = 20; // px — matches gap-5 (1.25rem)
|
|
13198
13221
|
|
|
13199
|
-
// Compute
|
|
13222
|
+
// Compute row template tracks respecting rowModes and rowHeights
|
|
13200
13223
|
function getRowTemplate(grid) {
|
|
13201
13224
|
var unit = grid.rowUnit || 300;
|
|
13202
13225
|
var heights = grid.rowHeights || {};
|
|
13226
|
+
var modes = grid.rowModes || {};
|
|
13203
13227
|
var tracks = [];
|
|
13204
13228
|
for (var r = 1; r <= grid.rows; r++) {
|
|
13205
|
-
var
|
|
13206
|
-
|
|
13229
|
+
var mode = modes[String(r)] || "fixed";
|
|
13230
|
+
switch (mode) {
|
|
13231
|
+
case "shrink":
|
|
13232
|
+
tracks.push("auto");
|
|
13233
|
+
break;
|
|
13234
|
+
case "grow":
|
|
13235
|
+
tracks.push("minmax(0, 1fr)");
|
|
13236
|
+
break;
|
|
13237
|
+
default:
|
|
13238
|
+
{
|
|
13239
|
+
var mult = heights[String(r)] || 1;
|
|
13240
|
+
tracks.push("".concat(unit * mult, "px"));
|
|
13241
|
+
break;
|
|
13242
|
+
}
|
|
13243
|
+
}
|
|
13207
13244
|
}
|
|
13208
13245
|
return tracks.join(" ");
|
|
13209
13246
|
}
|
|
13210
13247
|
|
|
13248
|
+
// Check if any row has an explicit mode set
|
|
13249
|
+
function hasExplicitRowModes() {
|
|
13250
|
+
if (!hasGrid) return false;
|
|
13251
|
+
var modes = item.grid.rowModes;
|
|
13252
|
+
return modes && Object.keys(modes).length > 0;
|
|
13253
|
+
}
|
|
13254
|
+
|
|
13211
13255
|
// Get the current multiplier for a row
|
|
13212
13256
|
function getRowMultiplier(row) {
|
|
13213
13257
|
var _item$grid$rowHeights;
|
|
@@ -13215,15 +13259,54 @@ var LayoutGridContainer = /*#__PURE__*/memo(function (_ref3) {
|
|
|
13215
13259
|
return ((_item$grid$rowHeights = item.grid.rowHeights) === null || _item$grid$rowHeights === void 0 ? void 0 : _item$grid$rowHeights[String(row)]) || 1;
|
|
13216
13260
|
}
|
|
13217
13261
|
|
|
13218
|
-
//
|
|
13219
|
-
function
|
|
13220
|
-
var
|
|
13221
|
-
|
|
13222
|
-
|
|
13223
|
-
|
|
13262
|
+
// Get the current mode for a row
|
|
13263
|
+
function getRowMode(row) {
|
|
13264
|
+
var _item$grid$rowModes;
|
|
13265
|
+
if (!hasGrid) return "fixed";
|
|
13266
|
+
return ((_item$grid$rowModes = item.grid.rowModes) === null || _item$grid$rowModes === void 0 ? void 0 : _item$grid$rowModes[String(row)]) || "fixed";
|
|
13267
|
+
}
|
|
13268
|
+
|
|
13269
|
+
// Unified cycle: shrink → grow → fixed 1x → fixed 2x → fixed 3x → shrink
|
|
13270
|
+
function handleCycleRowSizing(row) {
|
|
13271
|
+
var mode = getRowMode(row);
|
|
13272
|
+
var mult = getRowMultiplier(row);
|
|
13273
|
+
if (mode === "shrink") {
|
|
13274
|
+
// shrink → grow
|
|
13275
|
+
if (onChangeRowMode) onChangeRowMode(id, row, "grow");
|
|
13276
|
+
} else if (mode === "grow") {
|
|
13277
|
+
// grow → fixed 1x
|
|
13278
|
+
if (onChangeRowMode) onChangeRowMode(id, row, "fixed");
|
|
13279
|
+
} else {
|
|
13280
|
+
// fixed: cycle 1x → 2x → 3x → shrink
|
|
13281
|
+
if (mult >= 3) {
|
|
13282
|
+
if (onChangeRowMode) onChangeRowMode(id, row, "shrink");
|
|
13283
|
+
} else {
|
|
13284
|
+
if (onChangeRowHeight) onChangeRowHeight(id, row, mult + 1);
|
|
13285
|
+
}
|
|
13224
13286
|
}
|
|
13225
13287
|
}
|
|
13226
13288
|
|
|
13289
|
+
// Get display label and color for current row sizing
|
|
13290
|
+
function getRowSizingDisplay(row) {
|
|
13291
|
+
var mode = getRowMode(row);
|
|
13292
|
+
if (mode === "shrink") return {
|
|
13293
|
+
label: "S",
|
|
13294
|
+
color: "text-amber-400",
|
|
13295
|
+
hoverBg: "hover:bg-amber-400/10"
|
|
13296
|
+
};
|
|
13297
|
+
if (mode === "grow") return {
|
|
13298
|
+
label: "G",
|
|
13299
|
+
color: "text-green-400",
|
|
13300
|
+
hoverBg: "hover:bg-green-400/10"
|
|
13301
|
+
};
|
|
13302
|
+
var mult = getRowMultiplier(row);
|
|
13303
|
+
return {
|
|
13304
|
+
label: "".concat(mult, "x"),
|
|
13305
|
+
color: mult > 1 ? "text-blue-400" : "text-gray-500",
|
|
13306
|
+
hoverBg: mult > 1 ? "hover:bg-blue-400/10" : "hover:bg-gray-400/10"
|
|
13307
|
+
};
|
|
13308
|
+
}
|
|
13309
|
+
|
|
13227
13310
|
// Modal state for grid operations
|
|
13228
13311
|
var _useState = useState(false),
|
|
13229
13312
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -13524,14 +13607,23 @@ var LayoutGridContainer = /*#__PURE__*/memo(function (_ref3) {
|
|
|
13524
13607
|
}), /*#__PURE__*/jsxs("span", {
|
|
13525
13608
|
className: "text-[11px] text-gray-400 group-hover:text-gray-200 select-none font-mono font-medium",
|
|
13526
13609
|
children: ["R", row]
|
|
13527
|
-
}),
|
|
13528
|
-
|
|
13529
|
-
|
|
13530
|
-
|
|
13531
|
-
|
|
13532
|
-
|
|
13533
|
-
|
|
13534
|
-
|
|
13610
|
+
}), function () {
|
|
13611
|
+
var _getRowSizingDisplay = getRowSizingDisplay(row),
|
|
13612
|
+
label = _getRowSizingDisplay.label,
|
|
13613
|
+
color = _getRowSizingDisplay.color,
|
|
13614
|
+
hoverBg = _getRowSizingDisplay.hoverBg;
|
|
13615
|
+
var mode = getRowMode(row);
|
|
13616
|
+
var mult = getRowMultiplier(row);
|
|
13617
|
+
var titleParts = mode === "shrink" ? "Shrink (auto)" : mode === "grow" ? "Grow (1fr)" : "Fixed ".concat(mult, "x");
|
|
13618
|
+
return /*#__PURE__*/jsx("button", {
|
|
13619
|
+
className: "w-5 h-5 flex items-center justify-center rounded text-[10px] ".concat(color, " opacity-40 hover:opacity-100 ").concat(hoverBg, " transition-all font-mono font-bold select-none"),
|
|
13620
|
+
onClick: function onClick() {
|
|
13621
|
+
return handleCycleRowSizing(row);
|
|
13622
|
+
},
|
|
13623
|
+
title: "Row sizing: ".concat(titleParts, " (click to cycle)"),
|
|
13624
|
+
children: label
|
|
13625
|
+
});
|
|
13626
|
+
}(), /*#__PURE__*/jsx("button", {
|
|
13535
13627
|
className: "w-5 h-5 flex items-center justify-center rounded text-[10px] text-gray-600 opacity-40 hover:opacity-100 hover:text-green-400 hover:bg-green-400/10 transition-all",
|
|
13536
13628
|
onClick: function onClick() {
|
|
13537
13629
|
return handleAddRow(row);
|
|
@@ -13568,7 +13660,7 @@ var LayoutGridContainer = /*#__PURE__*/memo(function (_ref3) {
|
|
|
13568
13660
|
}), /*#__PURE__*/jsx("div", {
|
|
13569
13661
|
className: "grid ".concat(scrollable ? "" : "flex-1"),
|
|
13570
13662
|
style: {
|
|
13571
|
-
gridTemplateRows: scrollable ? getRowTemplate(item.grid) : "repeat(".concat(rows, ", minmax(0, 1fr))"),
|
|
13663
|
+
gridTemplateRows: scrollable ? getRowTemplate(item.grid) : hasExplicitRowModes() ? getRowTemplate(item.grid) : "repeat(".concat(rows, ", minmax(0, 1fr))"),
|
|
13572
13664
|
gap: GRID_GAP
|
|
13573
13665
|
},
|
|
13574
13666
|
children: rowItems
|
|
@@ -13702,8 +13794,11 @@ var LayoutGridContainer = /*#__PURE__*/memo(function (_ref3) {
|
|
|
13702
13794
|
}
|
|
13703
13795
|
}
|
|
13704
13796
|
var isCellSelected = selectedCellsForMerge.includes(cellNumber);
|
|
13797
|
+
var rowModes = item.grid.rowModes || {};
|
|
13798
|
+
var rowMode = rowModes[String(row)] || "fixed";
|
|
13799
|
+
var heightClass = rowMode === "shrink" ? "" : "h-full";
|
|
13705
13800
|
cells.push(/*#__PURE__*/jsx("div", {
|
|
13706
|
-
className: "flex w-full
|
|
13801
|
+
className: "flex w-full ".concat(heightClass, " min-h-0 min-w-0 overflow-hidden relative ").concat(isCellSelected ? "ring-2 ring-blue-500 ring-inset rounded" : ""),
|
|
13707
13802
|
"data-cell": cellNumber,
|
|
13708
13803
|
style: spanStyle,
|
|
13709
13804
|
children: preview ? cellDef.component ? renderCellComponent(cellDef.component) : renderPreviewEmptyCell(cellNumber) : renderEditCell(cellNumber, cellDef, selectableSet)
|
|
@@ -13963,7 +14058,7 @@ var LayoutGridContainer = /*#__PURE__*/memo(function (_ref3) {
|
|
|
13963
14058
|
id: "grid-container-".concat(id),
|
|
13964
14059
|
className: "grid flex-1 p-4 gap-5",
|
|
13965
14060
|
style: {
|
|
13966
|
-
gridTemplateRows: "repeat(".concat(item.grid.rows, ", minmax(0, 1fr))"),
|
|
14061
|
+
gridTemplateRows: hasExplicitRowModes() ? getRowTemplate(item.grid) : "repeat(".concat(item.grid.rows, ", minmax(0, 1fr))"),
|
|
13967
14062
|
gridTemplateColumns: "repeat(".concat(item.grid.cols, ", 1fr)"),
|
|
13968
14063
|
overflow: "hidden"
|
|
13969
14064
|
},
|
|
@@ -14074,7 +14169,7 @@ var LayoutGridContainer = /*#__PURE__*/memo(function (_ref3) {
|
|
|
14074
14169
|
id: "grid-container-".concat(id),
|
|
14075
14170
|
className: "absolute inset-0 grid p-3 ".concat(item.grid.gap || "gap-2"),
|
|
14076
14171
|
style: {
|
|
14077
|
-
gridTemplateRows: "repeat(".concat(item.grid.rows, ", minmax(0, 1fr))"),
|
|
14172
|
+
gridTemplateRows: hasExplicitRowModes() ? getRowTemplate(item.grid) : "repeat(".concat(item.grid.rows, ", minmax(0, 1fr))"),
|
|
14078
14173
|
gridTemplateColumns: "repeat(".concat(item.grid.cols, ", 1fr)"),
|
|
14079
14174
|
overflow: "hidden"
|
|
14080
14175
|
},
|
|
@@ -14167,6 +14262,8 @@ var _renderLayout = function renderLayout(_ref) {
|
|
|
14167
14262
|
onDeleteGridColumn = _ref$onDeleteGridColu === void 0 ? null : _ref$onDeleteGridColu,
|
|
14168
14263
|
_ref$onChangeRowHeigh = _ref.onChangeRowHeight,
|
|
14169
14264
|
onChangeRowHeight = _ref$onChangeRowHeigh === void 0 ? null : _ref$onChangeRowHeigh,
|
|
14265
|
+
_ref$onChangeRowMode = _ref.onChangeRowMode,
|
|
14266
|
+
onChangeRowMode = _ref$onChangeRowMode === void 0 ? null : _ref$onChangeRowMode,
|
|
14170
14267
|
_ref$onMoveWidgetToCe = _ref.onMoveWidgetToCell,
|
|
14171
14268
|
onMoveWidgetToCell = _ref$onMoveWidgetToCe === void 0 ? null : _ref$onMoveWidgetToCe,
|
|
14172
14269
|
_ref$onDropWidgetFrom = _ref.onDropWidgetFromSidebar,
|
|
@@ -14234,6 +14331,7 @@ var _renderLayout = function renderLayout(_ref) {
|
|
|
14234
14331
|
onAddGridColumn: onAddGridColumn,
|
|
14235
14332
|
onDeleteGridColumn: onDeleteGridColumn,
|
|
14236
14333
|
onChangeRowHeight: onChangeRowHeight,
|
|
14334
|
+
onChangeRowMode: onChangeRowMode,
|
|
14237
14335
|
onMoveWidgetToCell: onMoveWidgetToCell,
|
|
14238
14336
|
onDropWidgetFromSidebar: onDropWidgetFromSidebar,
|
|
14239
14337
|
children: id > 0 && _renderLayout({
|
|
@@ -14270,6 +14368,7 @@ var _renderLayout = function renderLayout(_ref) {
|
|
|
14270
14368
|
onAddGridColumn: onAddGridColumn,
|
|
14271
14369
|
onDeleteGridColumn: onDeleteGridColumn,
|
|
14272
14370
|
onChangeRowHeight: onChangeRowHeight,
|
|
14371
|
+
onChangeRowMode: onChangeRowMode,
|
|
14273
14372
|
onMoveWidgetToCell: onMoveWidgetToCell,
|
|
14274
14373
|
onDropWidgetFromSidebar: onDropWidgetFromSidebar
|
|
14275
14374
|
})
|
|
@@ -17049,6 +17148,20 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17049
17148
|
delete grid["".concat(grid.rows, ".").concat(_c7)];
|
|
17050
17149
|
}
|
|
17051
17150
|
grid.rows--;
|
|
17151
|
+
|
|
17152
|
+
// Shift rowModes keys up and remove the compacted row's entry
|
|
17153
|
+
if (grid.rowModes) {
|
|
17154
|
+
var shifted = {};
|
|
17155
|
+
for (var _i2 = 0, _Object$entries = Object.entries(grid.rowModes); _i2 < _Object$entries.length; _i2++) {
|
|
17156
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i2], 2),
|
|
17157
|
+
_key2 = _Object$entries$_i[0],
|
|
17158
|
+
mode = _Object$entries$_i[1];
|
|
17159
|
+
var rowNum = Number(_key2);
|
|
17160
|
+
if (rowNum === _r6) continue;
|
|
17161
|
+
shifted[String(rowNum > _r6 ? rowNum - 1 : rowNum)] = mode;
|
|
17162
|
+
}
|
|
17163
|
+
grid.rowModes = Object.keys(shifted).length > 0 ? shifted : undefined;
|
|
17164
|
+
}
|
|
17052
17165
|
}
|
|
17053
17166
|
|
|
17054
17167
|
// --- Phase 3: Full normalization (steps 1-5) on the compacted grid ---
|
|
@@ -17082,14 +17195,14 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17082
17195
|
|
|
17083
17196
|
// 2. Remove out-of-bounds cell keys
|
|
17084
17197
|
var cellKeyPattern = /^(\d+)\.(\d+)$/;
|
|
17085
|
-
for (var
|
|
17086
|
-
var
|
|
17087
|
-
var match =
|
|
17198
|
+
for (var _i3 = 0, _Object$keys2 = Object.keys(grid); _i3 < _Object$keys2.length; _i3++) {
|
|
17199
|
+
var _key3 = _Object$keys2[_i3];
|
|
17200
|
+
var match = _key3.match(cellKeyPattern);
|
|
17088
17201
|
if (match) {
|
|
17089
17202
|
var _r7 = Number(match[1]);
|
|
17090
17203
|
var _c8 = Number(match[2]);
|
|
17091
17204
|
if (_r7 < 1 || _r7 > rows || _c8 < 1 || _c8 > cols) {
|
|
17092
|
-
delete grid[
|
|
17205
|
+
delete grid[_key3];
|
|
17093
17206
|
}
|
|
17094
17207
|
}
|
|
17095
17208
|
}
|
|
@@ -17120,13 +17233,13 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17120
17233
|
var covered = new Set();
|
|
17121
17234
|
for (var _r0 = 1; _r0 <= rows; _r0++) {
|
|
17122
17235
|
for (var _c1 = 1; _c1 <= cols; _c1++) {
|
|
17123
|
-
var
|
|
17124
|
-
var _cell5 = grid[
|
|
17236
|
+
var _key4 = "".concat(_r0, ".").concat(_c1);
|
|
17237
|
+
var _cell5 = grid[_key4];
|
|
17125
17238
|
if (!_cell5.span) continue;
|
|
17126
17239
|
|
|
17127
17240
|
// If this cell is already covered by an earlier span,
|
|
17128
17241
|
// remove its span to resolve the conflict
|
|
17129
|
-
if (covered.has(
|
|
17242
|
+
if (covered.has(_key4)) {
|
|
17130
17243
|
delete _cell5.span;
|
|
17131
17244
|
continue;
|
|
17132
17245
|
}
|
|
@@ -17146,7 +17259,7 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17146
17259
|
covered.add(coveredKey);
|
|
17147
17260
|
}
|
|
17148
17261
|
}
|
|
17149
|
-
covered.add(
|
|
17262
|
+
covered.add(_key4);
|
|
17150
17263
|
}
|
|
17151
17264
|
}
|
|
17152
17265
|
}
|
|
@@ -17232,8 +17345,8 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17232
17345
|
var visibleCells = [];
|
|
17233
17346
|
for (var r = 1; r <= grid.rows; r++) {
|
|
17234
17347
|
for (var c = 1; c <= oldCols; c++) {
|
|
17235
|
-
var
|
|
17236
|
-
var cell = grid[
|
|
17348
|
+
var _key5 = "".concat(r, ".").concat(c);
|
|
17349
|
+
var cell = grid[_key5];
|
|
17237
17350
|
if (cell && !cell.hide) {
|
|
17238
17351
|
var _cell$span, _cell$span2;
|
|
17239
17352
|
visibleCells.push({
|
|
@@ -17248,20 +17361,20 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17248
17361
|
}
|
|
17249
17362
|
|
|
17250
17363
|
// 2. Clear all cell keys
|
|
17251
|
-
for (var
|
|
17252
|
-
var
|
|
17253
|
-
if (/^\d+\.\d+$/.test(
|
|
17364
|
+
for (var _i4 = 0, _Object$keys3 = Object.keys(grid); _i4 < _Object$keys3.length; _i4++) {
|
|
17365
|
+
var _key6 = _Object$keys3[_i4];
|
|
17366
|
+
if (/^\d+\.\d+$/.test(_key6)) delete grid[_key6];
|
|
17254
17367
|
}
|
|
17255
17368
|
|
|
17256
17369
|
// 3. Update grid dimensions
|
|
17257
17370
|
grid.cols = oldCols * count;
|
|
17258
17371
|
|
|
17259
17372
|
// 4. Reposition all cells with scaled positions and spans
|
|
17260
|
-
for (var
|
|
17261
|
-
var vc = _visibleCells[
|
|
17373
|
+
for (var _i5 = 0, _visibleCells = visibleCells; _i5 < _visibleCells.length; _i5++) {
|
|
17374
|
+
var vc = _visibleCells[_i5];
|
|
17262
17375
|
var newCol = (vc.col - 1) * count + 1;
|
|
17263
|
-
var
|
|
17264
|
-
grid[
|
|
17376
|
+
var _key7 = "".concat(vc.row, ".").concat(newCol);
|
|
17377
|
+
grid[_key7] = _objectSpread$f(_objectSpread$f({}, vc.data), {}, {
|
|
17265
17378
|
hide: false,
|
|
17266
17379
|
span: {
|
|
17267
17380
|
row: vc.spanRow,
|
|
@@ -17276,16 +17389,16 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17276
17389
|
var _subSpan = newTargetSpan / count;
|
|
17277
17390
|
var _component = targetCell === null || targetCell === void 0 ? void 0 : targetCell.component;
|
|
17278
17391
|
var rowSpan = (targetCell === null || targetCell === void 0 || (_targetCell$span4 = targetCell.span) === null || _targetCell$span4 === void 0 ? void 0 : _targetCell$span4.row) || 1;
|
|
17279
|
-
for (var
|
|
17280
|
-
var
|
|
17281
|
-
grid[
|
|
17282
|
-
component:
|
|
17392
|
+
for (var _i6 = 0; _i6 < count; _i6++) {
|
|
17393
|
+
var _key8 = "".concat(row, ".").concat(newTargetCol + _i6 * _subSpan);
|
|
17394
|
+
grid[_key8] = {
|
|
17395
|
+
component: _i6 === 0 ? _component : null,
|
|
17283
17396
|
hide: false
|
|
17284
17397
|
};
|
|
17285
17398
|
if (_subSpan > 1 || rowSpan > 1) {
|
|
17286
|
-
grid[
|
|
17287
|
-
if (_subSpan > 1) grid[
|
|
17288
|
-
if (rowSpan > 1) grid[
|
|
17399
|
+
grid[_key8].span = {};
|
|
17400
|
+
if (_subSpan > 1) grid[_key8].span.col = _subSpan;
|
|
17401
|
+
if (rowSpan > 1) grid[_key8].span.row = rowSpan;
|
|
17289
17402
|
}
|
|
17290
17403
|
}
|
|
17291
17404
|
}
|
|
@@ -17308,16 +17421,16 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17308
17421
|
delete targetCell.span;
|
|
17309
17422
|
|
|
17310
17423
|
// Create subdivided cells
|
|
17311
|
-
for (var
|
|
17312
|
-
var
|
|
17313
|
-
grid[
|
|
17314
|
-
component:
|
|
17424
|
+
for (var _i7 = 0; _i7 < count; _i7++) {
|
|
17425
|
+
var _key9 = "".concat(row + _i7 * _subSpan2, ".").concat(col);
|
|
17426
|
+
grid[_key9] = {
|
|
17427
|
+
component: _i7 === 0 ? _component2 : null,
|
|
17315
17428
|
hide: false
|
|
17316
17429
|
};
|
|
17317
17430
|
if (_subSpan2 > 1 || _targetSpanCol > 1) {
|
|
17318
|
-
grid[
|
|
17319
|
-
if (_subSpan2 > 1) grid[
|
|
17320
|
-
if (_targetSpanCol > 1) grid[
|
|
17431
|
+
grid[_key9].span = {};
|
|
17432
|
+
if (_subSpan2 > 1) grid[_key9].span.row = _subSpan2;
|
|
17433
|
+
if (_targetSpanCol > 1) grid[_key9].span.col = _targetSpanCol;
|
|
17321
17434
|
}
|
|
17322
17435
|
}
|
|
17323
17436
|
} else {
|
|
@@ -17329,8 +17442,8 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17329
17442
|
var _visibleCells2 = [];
|
|
17330
17443
|
for (var _r1 = 1; _r1 <= oldRows; _r1++) {
|
|
17331
17444
|
for (var _c10 = 1; _c10 <= grid.cols; _c10++) {
|
|
17332
|
-
var
|
|
17333
|
-
var _cell6 = grid[
|
|
17445
|
+
var _key0 = "".concat(_r1, ".").concat(_c10);
|
|
17446
|
+
var _cell6 = grid[_key0];
|
|
17334
17447
|
if (_cell6 && !_cell6.hide) {
|
|
17335
17448
|
var _cell6$span, _cell6$span2;
|
|
17336
17449
|
_visibleCells2.push({
|
|
@@ -17345,20 +17458,20 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17345
17458
|
}
|
|
17346
17459
|
|
|
17347
17460
|
// 2. Clear all cell keys
|
|
17348
|
-
for (var
|
|
17349
|
-
var
|
|
17350
|
-
if (/^\d+\.\d+$/.test(
|
|
17461
|
+
for (var _i8 = 0, _Object$keys4 = Object.keys(grid); _i8 < _Object$keys4.length; _i8++) {
|
|
17462
|
+
var _key1 = _Object$keys4[_i8];
|
|
17463
|
+
if (/^\d+\.\d+$/.test(_key1)) delete grid[_key1];
|
|
17351
17464
|
}
|
|
17352
17465
|
|
|
17353
17466
|
// 3. Update grid dimensions
|
|
17354
17467
|
grid.rows = oldRows * count;
|
|
17355
17468
|
|
|
17356
17469
|
// 4. Reposition all cells with scaled positions and spans
|
|
17357
|
-
for (var
|
|
17358
|
-
var _vc = _visibleCells3[
|
|
17470
|
+
for (var _i9 = 0, _visibleCells3 = _visibleCells2; _i9 < _visibleCells3.length; _i9++) {
|
|
17471
|
+
var _vc = _visibleCells3[_i9];
|
|
17359
17472
|
var newRow = (_vc.row - 1) * count + 1;
|
|
17360
|
-
var
|
|
17361
|
-
grid[
|
|
17473
|
+
var _key10 = "".concat(newRow, ".").concat(_vc.col);
|
|
17474
|
+
grid[_key10] = _objectSpread$f(_objectSpread$f({}, _vc.data), {}, {
|
|
17362
17475
|
hide: false,
|
|
17363
17476
|
span: {
|
|
17364
17477
|
row: _vc.spanRow * count,
|
|
@@ -17373,16 +17486,16 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17373
17486
|
var _subSpan3 = _newTargetSpan / count;
|
|
17374
17487
|
var _component3 = targetCell === null || targetCell === void 0 ? void 0 : targetCell.component;
|
|
17375
17488
|
var colSpan = (targetCell === null || targetCell === void 0 || (_targetCell$span8 = targetCell.span) === null || _targetCell$span8 === void 0 ? void 0 : _targetCell$span8.col) || 1;
|
|
17376
|
-
for (var
|
|
17377
|
-
var
|
|
17378
|
-
grid[
|
|
17379
|
-
component:
|
|
17489
|
+
for (var _i0 = 0; _i0 < count; _i0++) {
|
|
17490
|
+
var _key11 = "".concat(newTargetRow + _i0 * _subSpan3, ".").concat(col);
|
|
17491
|
+
grid[_key11] = {
|
|
17492
|
+
component: _i0 === 0 ? _component3 : null,
|
|
17380
17493
|
hide: false
|
|
17381
17494
|
};
|
|
17382
17495
|
if (_subSpan3 > 1 || colSpan > 1) {
|
|
17383
|
-
grid[
|
|
17384
|
-
if (_subSpan3 > 1) grid[
|
|
17385
|
-
if (colSpan > 1) grid[
|
|
17496
|
+
grid[_key11].span = {};
|
|
17497
|
+
if (_subSpan3 > 1) grid[_key11].span.row = _subSpan3;
|
|
17498
|
+
if (colSpan > 1) grid[_key11].span.col = colSpan;
|
|
17386
17499
|
}
|
|
17387
17500
|
}
|
|
17388
17501
|
}
|
|
@@ -17534,6 +17647,50 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17534
17647
|
}
|
|
17535
17648
|
}
|
|
17536
17649
|
|
|
17650
|
+
/**
|
|
17651
|
+
* Change the sizing mode for a grid row
|
|
17652
|
+
* @param {Number} itemId The id of the grid container
|
|
17653
|
+
* @param {Number} rowNumber The row number (1-indexed)
|
|
17654
|
+
* @param {String} mode The sizing mode: "shrink", "grow", or "fixed"
|
|
17655
|
+
* @returns {Object} Updated grid or null on error
|
|
17656
|
+
*/
|
|
17657
|
+
}, {
|
|
17658
|
+
key: "changeRowMode",
|
|
17659
|
+
value: function changeRowMode(itemId, rowNumber, mode) {
|
|
17660
|
+
try {
|
|
17661
|
+
var gridContainer = this.getComponentById(itemId);
|
|
17662
|
+
if (!gridContainer || !gridContainer.grid) {
|
|
17663
|
+
return null;
|
|
17664
|
+
}
|
|
17665
|
+
var grid = gridContainer.grid;
|
|
17666
|
+
grid.rowModes = grid.rowModes || {};
|
|
17667
|
+
if (mode === "fixed" || !mode) {
|
|
17668
|
+
delete grid.rowModes[String(rowNumber)];
|
|
17669
|
+
} else {
|
|
17670
|
+
grid.rowModes[String(rowNumber)] = mode;
|
|
17671
|
+
}
|
|
17672
|
+
|
|
17673
|
+
// When switching away from fixed, clear the rowHeights entry for that row
|
|
17674
|
+
if (mode === "shrink" || mode === "grow") {
|
|
17675
|
+
if (grid.rowHeights) {
|
|
17676
|
+
delete grid.rowHeights[String(rowNumber)];
|
|
17677
|
+
if (Object.keys(grid.rowHeights).length === 0) {
|
|
17678
|
+
delete grid.rowHeights;
|
|
17679
|
+
}
|
|
17680
|
+
}
|
|
17681
|
+
}
|
|
17682
|
+
|
|
17683
|
+
// Clean up empty object
|
|
17684
|
+
if (Object.keys(grid.rowModes).length === 0) {
|
|
17685
|
+
delete grid.rowModes;
|
|
17686
|
+
}
|
|
17687
|
+
this.updateLayoutItem(gridContainer);
|
|
17688
|
+
return grid;
|
|
17689
|
+
} catch (e) {
|
|
17690
|
+
return null;
|
|
17691
|
+
}
|
|
17692
|
+
}
|
|
17693
|
+
|
|
17537
17694
|
/**
|
|
17538
17695
|
* Add a new row to the grid
|
|
17539
17696
|
* @param {Number} itemId The id of the grid container
|
|
@@ -17576,15 +17733,28 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17576
17733
|
// Shift rowHeights keys down (rows after insertion point move +1)
|
|
17577
17734
|
if (gridContainer.grid.rowHeights) {
|
|
17578
17735
|
var shifted = {};
|
|
17579
|
-
for (var
|
|
17580
|
-
var _Object$
|
|
17581
|
-
key = _Object$
|
|
17582
|
-
mult = _Object$
|
|
17736
|
+
for (var _i1 = 0, _Object$entries2 = Object.entries(gridContainer.grid.rowHeights); _i1 < _Object$entries2.length; _i1++) {
|
|
17737
|
+
var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i1], 2),
|
|
17738
|
+
key = _Object$entries2$_i[0],
|
|
17739
|
+
mult = _Object$entries2$_i[1];
|
|
17583
17740
|
var rowNum = Number(key);
|
|
17584
17741
|
shifted[String(rowNum >= newRowNumber ? rowNum + 1 : rowNum)] = mult;
|
|
17585
17742
|
}
|
|
17586
17743
|
gridContainer.grid.rowHeights = Object.keys(shifted).length > 0 ? shifted : undefined;
|
|
17587
17744
|
}
|
|
17745
|
+
|
|
17746
|
+
// Shift rowModes keys down (rows after insertion point move +1)
|
|
17747
|
+
if (gridContainer.grid.rowModes) {
|
|
17748
|
+
var _shifted = {};
|
|
17749
|
+
for (var _i10 = 0, _Object$entries3 = Object.entries(gridContainer.grid.rowModes); _i10 < _Object$entries3.length; _i10++) {
|
|
17750
|
+
var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i10], 2),
|
|
17751
|
+
_key12 = _Object$entries3$_i[0],
|
|
17752
|
+
mode = _Object$entries3$_i[1];
|
|
17753
|
+
var _rowNum = Number(_key12);
|
|
17754
|
+
_shifted[String(_rowNum >= newRowNumber ? _rowNum + 1 : _rowNum)] = mode;
|
|
17755
|
+
}
|
|
17756
|
+
gridContainer.grid.rowModes = Object.keys(_shifted).length > 0 ? _shifted : undefined;
|
|
17757
|
+
}
|
|
17588
17758
|
this._normalizeGrid(gridContainer.grid);
|
|
17589
17759
|
this.updateLayoutItem(gridContainer);
|
|
17590
17760
|
return gridContainer.grid;
|
|
@@ -17636,16 +17806,30 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17636
17806
|
// Shift rowHeights keys up and remove the deleted row's entry
|
|
17637
17807
|
if (gridContainer.grid.rowHeights) {
|
|
17638
17808
|
var shifted = {};
|
|
17639
|
-
for (var
|
|
17640
|
-
var _Object$
|
|
17641
|
-
key = _Object$
|
|
17642
|
-
mult = _Object$
|
|
17809
|
+
for (var _i11 = 0, _Object$entries4 = Object.entries(gridContainer.grid.rowHeights); _i11 < _Object$entries4.length; _i11++) {
|
|
17810
|
+
var _Object$entries4$_i = _slicedToArray(_Object$entries4[_i11], 2),
|
|
17811
|
+
key = _Object$entries4$_i[0],
|
|
17812
|
+
mult = _Object$entries4$_i[1];
|
|
17643
17813
|
var rowNum = Number(key);
|
|
17644
17814
|
if (rowNum === rowNumber) continue;
|
|
17645
17815
|
shifted[String(rowNum > rowNumber ? rowNum - 1 : rowNum)] = mult;
|
|
17646
17816
|
}
|
|
17647
17817
|
gridContainer.grid.rowHeights = Object.keys(shifted).length > 0 ? shifted : undefined;
|
|
17648
17818
|
}
|
|
17819
|
+
|
|
17820
|
+
// Shift rowModes keys up and remove the deleted row's entry
|
|
17821
|
+
if (gridContainer.grid.rowModes) {
|
|
17822
|
+
var _shifted2 = {};
|
|
17823
|
+
for (var _i12 = 0, _Object$entries5 = Object.entries(gridContainer.grid.rowModes); _i12 < _Object$entries5.length; _i12++) {
|
|
17824
|
+
var _Object$entries5$_i = _slicedToArray(_Object$entries5[_i12], 2),
|
|
17825
|
+
_key13 = _Object$entries5$_i[0],
|
|
17826
|
+
mode = _Object$entries5$_i[1];
|
|
17827
|
+
var _rowNum2 = Number(_key13);
|
|
17828
|
+
if (_rowNum2 === rowNumber) continue;
|
|
17829
|
+
_shifted2[String(_rowNum2 > rowNumber ? _rowNum2 - 1 : _rowNum2)] = mode;
|
|
17830
|
+
}
|
|
17831
|
+
gridContainer.grid.rowModes = Object.keys(_shifted2).length > 0 ? _shifted2 : undefined;
|
|
17832
|
+
}
|
|
17649
17833
|
this._normalizeGrid(gridContainer.grid);
|
|
17650
17834
|
this.updateLayoutItem(gridContainer);
|
|
17651
17835
|
return gridContainer.grid;
|