@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.js
CHANGED
|
@@ -10592,6 +10592,18 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
10592
10592
|
} catch (e) {
|
|
10593
10593
|
}
|
|
10594
10594
|
}
|
|
10595
|
+
function handleChangeRowMode(gridContainerId, rowNumber, mode) {
|
|
10596
|
+
try {
|
|
10597
|
+
var dashboard = new DashboardModel(currentWorkspace);
|
|
10598
|
+
var result = dashboard.changeRowMode(gridContainerId, rowNumber, mode);
|
|
10599
|
+
if (result) {
|
|
10600
|
+
var newWorkspace = dashboard.workspace();
|
|
10601
|
+
setCurrentWorkspace(newWorkspace);
|
|
10602
|
+
} else {
|
|
10603
|
+
}
|
|
10604
|
+
} catch (e) {
|
|
10605
|
+
}
|
|
10606
|
+
}
|
|
10595
10607
|
|
|
10596
10608
|
/**
|
|
10597
10609
|
* handle the click of a cell in a grid that does not contain a widget yet
|
|
@@ -10677,6 +10689,7 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
10677
10689
|
onAddGridColumn: handleAddGridColumn,
|
|
10678
10690
|
onDeleteGridColumn: handleDeleteGridColumn,
|
|
10679
10691
|
onChangeRowHeight: handleChangeRowHeight,
|
|
10692
|
+
onChangeRowMode: handleChangeRowMode,
|
|
10680
10693
|
onMoveWidgetToCell: handleMoveWidgetToCell
|
|
10681
10694
|
}, "layout-drag-".concat(dashboardId)), preview === false && editMode === "all" && /*#__PURE__*/jsxRuntime.jsx(LayoutDragBuilderEdit, {
|
|
10682
10695
|
dashboardId: dashboardId,
|
|
@@ -10721,6 +10734,7 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
10721
10734
|
onAddGridColumn: handleAddGridColumn,
|
|
10722
10735
|
onDeleteGridColumn: handleDeleteGridColumn,
|
|
10723
10736
|
onChangeRowHeight: handleChangeRowHeight,
|
|
10737
|
+
onChangeRowMode: handleChangeRowMode,
|
|
10724
10738
|
onMoveWidgetToCell: handleMoveWidgetToCell,
|
|
10725
10739
|
onDropWidgetFromSidebar: handleDropWidgetFromSidebar
|
|
10726
10740
|
}, "layout-drag-edit-".concat(dashboardId))]
|
|
@@ -10810,7 +10824,9 @@ var LayoutDragBuilder = function LayoutDragBuilder(_ref) {
|
|
|
10810
10824
|
_ref$onDeleteGridColu = _ref.onDeleteGridColumn,
|
|
10811
10825
|
onDeleteGridColumn = _ref$onDeleteGridColu === void 0 ? null : _ref$onDeleteGridColu,
|
|
10812
10826
|
_ref$onChangeRowHeigh = _ref.onChangeRowHeight,
|
|
10813
|
-
onChangeRowHeight = _ref$onChangeRowHeigh === void 0 ? null : _ref$onChangeRowHeigh
|
|
10827
|
+
onChangeRowHeight = _ref$onChangeRowHeigh === void 0 ? null : _ref$onChangeRowHeigh,
|
|
10828
|
+
_ref$onChangeRowMode = _ref.onChangeRowMode,
|
|
10829
|
+
onChangeRowMode = _ref$onChangeRowMode === void 0 ? null : _ref$onChangeRowMode;
|
|
10814
10830
|
return isDraggable === true ? /*#__PURE__*/jsxRuntime.jsx(reactDnd.DndProvider, {
|
|
10815
10831
|
backend: reactDndHtml5Backend.HTML5Backend,
|
|
10816
10832
|
children: _renderLayout({
|
|
@@ -10840,7 +10856,8 @@ var LayoutDragBuilder = function LayoutDragBuilder(_ref) {
|
|
|
10840
10856
|
onDeleteGridRow: onDeleteGridRow,
|
|
10841
10857
|
onAddGridColumn: onAddGridColumn,
|
|
10842
10858
|
onDeleteGridColumn: onDeleteGridColumn,
|
|
10843
|
-
onChangeRowHeight: onChangeRowHeight
|
|
10859
|
+
onChangeRowHeight: onChangeRowHeight,
|
|
10860
|
+
onChangeRowMode: onChangeRowMode
|
|
10844
10861
|
})
|
|
10845
10862
|
}, "dnd-provider") : _renderLayout({
|
|
10846
10863
|
dashboardId: dashboardId,
|
|
@@ -10869,7 +10886,8 @@ var LayoutDragBuilder = function LayoutDragBuilder(_ref) {
|
|
|
10869
10886
|
onDeleteGridRow: onDeleteGridRow,
|
|
10870
10887
|
onAddGridColumn: onAddGridColumn,
|
|
10871
10888
|
onDeleteGridColumn: onDeleteGridColumn,
|
|
10872
|
-
onChangeRowHeight: onChangeRowHeight
|
|
10889
|
+
onChangeRowHeight: onChangeRowHeight,
|
|
10890
|
+
onChangeRowMode: onChangeRowMode
|
|
10873
10891
|
});
|
|
10874
10892
|
};
|
|
10875
10893
|
|
|
@@ -10917,6 +10935,8 @@ var LayoutDragBuilderEdit = function LayoutDragBuilderEdit(_ref) {
|
|
|
10917
10935
|
onDeleteGridColumn = _ref$onDeleteGridColu === void 0 ? null : _ref$onDeleteGridColu,
|
|
10918
10936
|
_ref$onChangeRowHeigh = _ref.onChangeRowHeight,
|
|
10919
10937
|
onChangeRowHeight = _ref$onChangeRowHeigh === void 0 ? null : _ref$onChangeRowHeigh,
|
|
10938
|
+
_ref$onChangeRowMode = _ref.onChangeRowMode,
|
|
10939
|
+
onChangeRowMode = _ref$onChangeRowMode === void 0 ? null : _ref$onChangeRowMode,
|
|
10920
10940
|
_ref$onMoveWidgetToCe = _ref.onMoveWidgetToCell,
|
|
10921
10941
|
onMoveWidgetToCell = _ref$onMoveWidgetToCe === void 0 ? null : _ref$onMoveWidgetToCe,
|
|
10922
10942
|
_ref$onDropWidgetFrom = _ref.onDropWidgetFromSidebar,
|
|
@@ -10955,6 +10975,7 @@ var LayoutDragBuilderEdit = function LayoutDragBuilderEdit(_ref) {
|
|
|
10955
10975
|
onAddGridColumn: onAddGridColumn,
|
|
10956
10976
|
onDeleteGridColumn: onDeleteGridColumn,
|
|
10957
10977
|
onChangeRowHeight: onChangeRowHeight,
|
|
10978
|
+
onChangeRowMode: onChangeRowMode,
|
|
10958
10979
|
onMoveWidgetToCell: onMoveWidgetToCell,
|
|
10959
10980
|
onDropWidgetFromSidebar: onDropWidgetFromSidebar
|
|
10960
10981
|
});
|
|
@@ -13185,6 +13206,8 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
13185
13206
|
onDeleteGridColumn = _ref3$onDeleteGridCol === void 0 ? null : _ref3$onDeleteGridCol,
|
|
13186
13207
|
_ref3$onChangeRowHeig = _ref3.onChangeRowHeight,
|
|
13187
13208
|
onChangeRowHeight = _ref3$onChangeRowHeig === void 0 ? null : _ref3$onChangeRowHeig,
|
|
13209
|
+
_ref3$onChangeRowMode = _ref3.onChangeRowMode,
|
|
13210
|
+
onChangeRowMode = _ref3$onChangeRowMode === void 0 ? null : _ref3$onChangeRowMode,
|
|
13188
13211
|
_ref3$onMoveWidgetToC = _ref3.onMoveWidgetToCell,
|
|
13189
13212
|
onMoveWidgetToCell = _ref3$onMoveWidgetToC === void 0 ? null : _ref3$onMoveWidgetToC,
|
|
13190
13213
|
_ref3$onDropWidgetFro = _ref3.onDropWidgetFromSidebar,
|
|
@@ -13215,18 +13238,39 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
13215
13238
|
var GRID_PAD = 16; // px — matches p-4 (1rem)
|
|
13216
13239
|
var GRID_GAP = 20; // px — matches gap-5 (1.25rem)
|
|
13217
13240
|
|
|
13218
|
-
// Compute
|
|
13241
|
+
// Compute row template tracks respecting rowModes and rowHeights
|
|
13219
13242
|
function getRowTemplate(grid) {
|
|
13220
13243
|
var unit = grid.rowUnit || 300;
|
|
13221
13244
|
var heights = grid.rowHeights || {};
|
|
13245
|
+
var modes = grid.rowModes || {};
|
|
13222
13246
|
var tracks = [];
|
|
13223
13247
|
for (var r = 1; r <= grid.rows; r++) {
|
|
13224
|
-
var
|
|
13225
|
-
|
|
13248
|
+
var mode = modes[String(r)] || "fixed";
|
|
13249
|
+
switch (mode) {
|
|
13250
|
+
case "shrink":
|
|
13251
|
+
tracks.push("auto");
|
|
13252
|
+
break;
|
|
13253
|
+
case "grow":
|
|
13254
|
+
tracks.push("minmax(0, 1fr)");
|
|
13255
|
+
break;
|
|
13256
|
+
default:
|
|
13257
|
+
{
|
|
13258
|
+
var mult = heights[String(r)] || 1;
|
|
13259
|
+
tracks.push("".concat(unit * mult, "px"));
|
|
13260
|
+
break;
|
|
13261
|
+
}
|
|
13262
|
+
}
|
|
13226
13263
|
}
|
|
13227
13264
|
return tracks.join(" ");
|
|
13228
13265
|
}
|
|
13229
13266
|
|
|
13267
|
+
// Check if any row has an explicit mode set
|
|
13268
|
+
function hasExplicitRowModes() {
|
|
13269
|
+
if (!hasGrid) return false;
|
|
13270
|
+
var modes = item.grid.rowModes;
|
|
13271
|
+
return modes && Object.keys(modes).length > 0;
|
|
13272
|
+
}
|
|
13273
|
+
|
|
13230
13274
|
// Get the current multiplier for a row
|
|
13231
13275
|
function getRowMultiplier(row) {
|
|
13232
13276
|
var _item$grid$rowHeights;
|
|
@@ -13234,15 +13278,54 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
13234
13278
|
return ((_item$grid$rowHeights = item.grid.rowHeights) === null || _item$grid$rowHeights === void 0 ? void 0 : _item$grid$rowHeights[String(row)]) || 1;
|
|
13235
13279
|
}
|
|
13236
13280
|
|
|
13237
|
-
//
|
|
13238
|
-
function
|
|
13239
|
-
var
|
|
13240
|
-
|
|
13241
|
-
|
|
13242
|
-
|
|
13281
|
+
// Get the current mode for a row
|
|
13282
|
+
function getRowMode(row) {
|
|
13283
|
+
var _item$grid$rowModes;
|
|
13284
|
+
if (!hasGrid) return "fixed";
|
|
13285
|
+
return ((_item$grid$rowModes = item.grid.rowModes) === null || _item$grid$rowModes === void 0 ? void 0 : _item$grid$rowModes[String(row)]) || "fixed";
|
|
13286
|
+
}
|
|
13287
|
+
|
|
13288
|
+
// Unified cycle: shrink → grow → fixed 1x → fixed 2x → fixed 3x → shrink
|
|
13289
|
+
function handleCycleRowSizing(row) {
|
|
13290
|
+
var mode = getRowMode(row);
|
|
13291
|
+
var mult = getRowMultiplier(row);
|
|
13292
|
+
if (mode === "shrink") {
|
|
13293
|
+
// shrink → grow
|
|
13294
|
+
if (onChangeRowMode) onChangeRowMode(id, row, "grow");
|
|
13295
|
+
} else if (mode === "grow") {
|
|
13296
|
+
// grow → fixed 1x
|
|
13297
|
+
if (onChangeRowMode) onChangeRowMode(id, row, "fixed");
|
|
13298
|
+
} else {
|
|
13299
|
+
// fixed: cycle 1x → 2x → 3x → shrink
|
|
13300
|
+
if (mult >= 3) {
|
|
13301
|
+
if (onChangeRowMode) onChangeRowMode(id, row, "shrink");
|
|
13302
|
+
} else {
|
|
13303
|
+
if (onChangeRowHeight) onChangeRowHeight(id, row, mult + 1);
|
|
13304
|
+
}
|
|
13243
13305
|
}
|
|
13244
13306
|
}
|
|
13245
13307
|
|
|
13308
|
+
// Get display label and color for current row sizing
|
|
13309
|
+
function getRowSizingDisplay(row) {
|
|
13310
|
+
var mode = getRowMode(row);
|
|
13311
|
+
if (mode === "shrink") return {
|
|
13312
|
+
label: "S",
|
|
13313
|
+
color: "text-amber-400",
|
|
13314
|
+
hoverBg: "hover:bg-amber-400/10"
|
|
13315
|
+
};
|
|
13316
|
+
if (mode === "grow") return {
|
|
13317
|
+
label: "G",
|
|
13318
|
+
color: "text-green-400",
|
|
13319
|
+
hoverBg: "hover:bg-green-400/10"
|
|
13320
|
+
};
|
|
13321
|
+
var mult = getRowMultiplier(row);
|
|
13322
|
+
return {
|
|
13323
|
+
label: "".concat(mult, "x"),
|
|
13324
|
+
color: mult > 1 ? "text-blue-400" : "text-gray-500",
|
|
13325
|
+
hoverBg: mult > 1 ? "hover:bg-blue-400/10" : "hover:bg-gray-400/10"
|
|
13326
|
+
};
|
|
13327
|
+
}
|
|
13328
|
+
|
|
13246
13329
|
// Modal state for grid operations
|
|
13247
13330
|
var _useState = React.useState(false),
|
|
13248
13331
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -13543,14 +13626,23 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
13543
13626
|
}), /*#__PURE__*/jsxRuntime.jsxs("span", {
|
|
13544
13627
|
className: "text-[11px] text-gray-400 group-hover:text-gray-200 select-none font-mono font-medium",
|
|
13545
13628
|
children: ["R", row]
|
|
13546
|
-
}),
|
|
13547
|
-
|
|
13548
|
-
|
|
13549
|
-
|
|
13550
|
-
|
|
13551
|
-
|
|
13552
|
-
|
|
13553
|
-
|
|
13629
|
+
}), function () {
|
|
13630
|
+
var _getRowSizingDisplay = getRowSizingDisplay(row),
|
|
13631
|
+
label = _getRowSizingDisplay.label,
|
|
13632
|
+
color = _getRowSizingDisplay.color,
|
|
13633
|
+
hoverBg = _getRowSizingDisplay.hoverBg;
|
|
13634
|
+
var mode = getRowMode(row);
|
|
13635
|
+
var mult = getRowMultiplier(row);
|
|
13636
|
+
var titleParts = mode === "shrink" ? "Shrink (auto)" : mode === "grow" ? "Grow (1fr)" : "Fixed ".concat(mult, "x");
|
|
13637
|
+
return /*#__PURE__*/jsxRuntime.jsx("button", {
|
|
13638
|
+
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"),
|
|
13639
|
+
onClick: function onClick() {
|
|
13640
|
+
return handleCycleRowSizing(row);
|
|
13641
|
+
},
|
|
13642
|
+
title: "Row sizing: ".concat(titleParts, " (click to cycle)"),
|
|
13643
|
+
children: label
|
|
13644
|
+
});
|
|
13645
|
+
}(), /*#__PURE__*/jsxRuntime.jsx("button", {
|
|
13554
13646
|
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",
|
|
13555
13647
|
onClick: function onClick() {
|
|
13556
13648
|
return handleAddRow(row);
|
|
@@ -13587,7 +13679,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
13587
13679
|
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
13588
13680
|
className: "grid ".concat(scrollable ? "" : "flex-1"),
|
|
13589
13681
|
style: {
|
|
13590
|
-
gridTemplateRows: scrollable ? getRowTemplate(item.grid) : "repeat(".concat(rows, ", minmax(0, 1fr))"),
|
|
13682
|
+
gridTemplateRows: scrollable ? getRowTemplate(item.grid) : hasExplicitRowModes() ? getRowTemplate(item.grid) : "repeat(".concat(rows, ", minmax(0, 1fr))"),
|
|
13591
13683
|
gap: GRID_GAP
|
|
13592
13684
|
},
|
|
13593
13685
|
children: rowItems
|
|
@@ -13721,8 +13813,11 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
13721
13813
|
}
|
|
13722
13814
|
}
|
|
13723
13815
|
var isCellSelected = selectedCellsForMerge.includes(cellNumber);
|
|
13816
|
+
var rowModes = item.grid.rowModes || {};
|
|
13817
|
+
var rowMode = rowModes[String(row)] || "fixed";
|
|
13818
|
+
var heightClass = rowMode === "shrink" ? "" : "h-full";
|
|
13724
13819
|
cells.push(/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
13725
|
-
className: "flex w-full
|
|
13820
|
+
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" : ""),
|
|
13726
13821
|
"data-cell": cellNumber,
|
|
13727
13822
|
style: spanStyle,
|
|
13728
13823
|
children: preview ? cellDef.component ? renderCellComponent(cellDef.component) : renderPreviewEmptyCell(cellNumber) : renderEditCell(cellNumber, cellDef, selectableSet)
|
|
@@ -13982,7 +14077,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
13982
14077
|
id: "grid-container-".concat(id),
|
|
13983
14078
|
className: "grid flex-1 p-4 gap-5",
|
|
13984
14079
|
style: {
|
|
13985
|
-
gridTemplateRows: "repeat(".concat(item.grid.rows, ", minmax(0, 1fr))"),
|
|
14080
|
+
gridTemplateRows: hasExplicitRowModes() ? getRowTemplate(item.grid) : "repeat(".concat(item.grid.rows, ", minmax(0, 1fr))"),
|
|
13986
14081
|
gridTemplateColumns: "repeat(".concat(item.grid.cols, ", 1fr)"),
|
|
13987
14082
|
overflow: "hidden"
|
|
13988
14083
|
},
|
|
@@ -14093,7 +14188,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
14093
14188
|
id: "grid-container-".concat(id),
|
|
14094
14189
|
className: "absolute inset-0 grid p-3 ".concat(item.grid.gap || "gap-2"),
|
|
14095
14190
|
style: {
|
|
14096
|
-
gridTemplateRows: "repeat(".concat(item.grid.rows, ", minmax(0, 1fr))"),
|
|
14191
|
+
gridTemplateRows: hasExplicitRowModes() ? getRowTemplate(item.grid) : "repeat(".concat(item.grid.rows, ", minmax(0, 1fr))"),
|
|
14097
14192
|
gridTemplateColumns: "repeat(".concat(item.grid.cols, ", 1fr)"),
|
|
14098
14193
|
overflow: "hidden"
|
|
14099
14194
|
},
|
|
@@ -14186,6 +14281,8 @@ var _renderLayout = function renderLayout(_ref) {
|
|
|
14186
14281
|
onDeleteGridColumn = _ref$onDeleteGridColu === void 0 ? null : _ref$onDeleteGridColu,
|
|
14187
14282
|
_ref$onChangeRowHeigh = _ref.onChangeRowHeight,
|
|
14188
14283
|
onChangeRowHeight = _ref$onChangeRowHeigh === void 0 ? null : _ref$onChangeRowHeigh,
|
|
14284
|
+
_ref$onChangeRowMode = _ref.onChangeRowMode,
|
|
14285
|
+
onChangeRowMode = _ref$onChangeRowMode === void 0 ? null : _ref$onChangeRowMode,
|
|
14189
14286
|
_ref$onMoveWidgetToCe = _ref.onMoveWidgetToCell,
|
|
14190
14287
|
onMoveWidgetToCell = _ref$onMoveWidgetToCe === void 0 ? null : _ref$onMoveWidgetToCe,
|
|
14191
14288
|
_ref$onDropWidgetFrom = _ref.onDropWidgetFromSidebar,
|
|
@@ -14253,6 +14350,7 @@ var _renderLayout = function renderLayout(_ref) {
|
|
|
14253
14350
|
onAddGridColumn: onAddGridColumn,
|
|
14254
14351
|
onDeleteGridColumn: onDeleteGridColumn,
|
|
14255
14352
|
onChangeRowHeight: onChangeRowHeight,
|
|
14353
|
+
onChangeRowMode: onChangeRowMode,
|
|
14256
14354
|
onMoveWidgetToCell: onMoveWidgetToCell,
|
|
14257
14355
|
onDropWidgetFromSidebar: onDropWidgetFromSidebar,
|
|
14258
14356
|
children: id > 0 && _renderLayout({
|
|
@@ -14289,6 +14387,7 @@ var _renderLayout = function renderLayout(_ref) {
|
|
|
14289
14387
|
onAddGridColumn: onAddGridColumn,
|
|
14290
14388
|
onDeleteGridColumn: onDeleteGridColumn,
|
|
14291
14389
|
onChangeRowHeight: onChangeRowHeight,
|
|
14390
|
+
onChangeRowMode: onChangeRowMode,
|
|
14292
14391
|
onMoveWidgetToCell: onMoveWidgetToCell,
|
|
14293
14392
|
onDropWidgetFromSidebar: onDropWidgetFromSidebar
|
|
14294
14393
|
})
|
|
@@ -17068,6 +17167,20 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17068
17167
|
delete grid["".concat(grid.rows, ".").concat(_c7)];
|
|
17069
17168
|
}
|
|
17070
17169
|
grid.rows--;
|
|
17170
|
+
|
|
17171
|
+
// Shift rowModes keys up and remove the compacted row's entry
|
|
17172
|
+
if (grid.rowModes) {
|
|
17173
|
+
var shifted = {};
|
|
17174
|
+
for (var _i2 = 0, _Object$entries = Object.entries(grid.rowModes); _i2 < _Object$entries.length; _i2++) {
|
|
17175
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i2], 2),
|
|
17176
|
+
_key2 = _Object$entries$_i[0],
|
|
17177
|
+
mode = _Object$entries$_i[1];
|
|
17178
|
+
var rowNum = Number(_key2);
|
|
17179
|
+
if (rowNum === _r6) continue;
|
|
17180
|
+
shifted[String(rowNum > _r6 ? rowNum - 1 : rowNum)] = mode;
|
|
17181
|
+
}
|
|
17182
|
+
grid.rowModes = Object.keys(shifted).length > 0 ? shifted : undefined;
|
|
17183
|
+
}
|
|
17071
17184
|
}
|
|
17072
17185
|
|
|
17073
17186
|
// --- Phase 3: Full normalization (steps 1-5) on the compacted grid ---
|
|
@@ -17101,14 +17214,14 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17101
17214
|
|
|
17102
17215
|
// 2. Remove out-of-bounds cell keys
|
|
17103
17216
|
var cellKeyPattern = /^(\d+)\.(\d+)$/;
|
|
17104
|
-
for (var
|
|
17105
|
-
var
|
|
17106
|
-
var match =
|
|
17217
|
+
for (var _i3 = 0, _Object$keys2 = Object.keys(grid); _i3 < _Object$keys2.length; _i3++) {
|
|
17218
|
+
var _key3 = _Object$keys2[_i3];
|
|
17219
|
+
var match = _key3.match(cellKeyPattern);
|
|
17107
17220
|
if (match) {
|
|
17108
17221
|
var _r7 = Number(match[1]);
|
|
17109
17222
|
var _c8 = Number(match[2]);
|
|
17110
17223
|
if (_r7 < 1 || _r7 > rows || _c8 < 1 || _c8 > cols) {
|
|
17111
|
-
delete grid[
|
|
17224
|
+
delete grid[_key3];
|
|
17112
17225
|
}
|
|
17113
17226
|
}
|
|
17114
17227
|
}
|
|
@@ -17139,13 +17252,13 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17139
17252
|
var covered = new Set();
|
|
17140
17253
|
for (var _r0 = 1; _r0 <= rows; _r0++) {
|
|
17141
17254
|
for (var _c1 = 1; _c1 <= cols; _c1++) {
|
|
17142
|
-
var
|
|
17143
|
-
var _cell5 = grid[
|
|
17255
|
+
var _key4 = "".concat(_r0, ".").concat(_c1);
|
|
17256
|
+
var _cell5 = grid[_key4];
|
|
17144
17257
|
if (!_cell5.span) continue;
|
|
17145
17258
|
|
|
17146
17259
|
// If this cell is already covered by an earlier span,
|
|
17147
17260
|
// remove its span to resolve the conflict
|
|
17148
|
-
if (covered.has(
|
|
17261
|
+
if (covered.has(_key4)) {
|
|
17149
17262
|
delete _cell5.span;
|
|
17150
17263
|
continue;
|
|
17151
17264
|
}
|
|
@@ -17165,7 +17278,7 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17165
17278
|
covered.add(coveredKey);
|
|
17166
17279
|
}
|
|
17167
17280
|
}
|
|
17168
|
-
covered.add(
|
|
17281
|
+
covered.add(_key4);
|
|
17169
17282
|
}
|
|
17170
17283
|
}
|
|
17171
17284
|
}
|
|
@@ -17251,8 +17364,8 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17251
17364
|
var visibleCells = [];
|
|
17252
17365
|
for (var r = 1; r <= grid.rows; r++) {
|
|
17253
17366
|
for (var c = 1; c <= oldCols; c++) {
|
|
17254
|
-
var
|
|
17255
|
-
var cell = grid[
|
|
17367
|
+
var _key5 = "".concat(r, ".").concat(c);
|
|
17368
|
+
var cell = grid[_key5];
|
|
17256
17369
|
if (cell && !cell.hide) {
|
|
17257
17370
|
var _cell$span, _cell$span2;
|
|
17258
17371
|
visibleCells.push({
|
|
@@ -17267,20 +17380,20 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17267
17380
|
}
|
|
17268
17381
|
|
|
17269
17382
|
// 2. Clear all cell keys
|
|
17270
|
-
for (var
|
|
17271
|
-
var
|
|
17272
|
-
if (/^\d+\.\d+$/.test(
|
|
17383
|
+
for (var _i4 = 0, _Object$keys3 = Object.keys(grid); _i4 < _Object$keys3.length; _i4++) {
|
|
17384
|
+
var _key6 = _Object$keys3[_i4];
|
|
17385
|
+
if (/^\d+\.\d+$/.test(_key6)) delete grid[_key6];
|
|
17273
17386
|
}
|
|
17274
17387
|
|
|
17275
17388
|
// 3. Update grid dimensions
|
|
17276
17389
|
grid.cols = oldCols * count;
|
|
17277
17390
|
|
|
17278
17391
|
// 4. Reposition all cells with scaled positions and spans
|
|
17279
|
-
for (var
|
|
17280
|
-
var vc = _visibleCells[
|
|
17392
|
+
for (var _i5 = 0, _visibleCells = visibleCells; _i5 < _visibleCells.length; _i5++) {
|
|
17393
|
+
var vc = _visibleCells[_i5];
|
|
17281
17394
|
var newCol = (vc.col - 1) * count + 1;
|
|
17282
|
-
var
|
|
17283
|
-
grid[
|
|
17395
|
+
var _key7 = "".concat(vc.row, ".").concat(newCol);
|
|
17396
|
+
grid[_key7] = _objectSpread$f(_objectSpread$f({}, vc.data), {}, {
|
|
17284
17397
|
hide: false,
|
|
17285
17398
|
span: {
|
|
17286
17399
|
row: vc.spanRow,
|
|
@@ -17295,16 +17408,16 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17295
17408
|
var _subSpan = newTargetSpan / count;
|
|
17296
17409
|
var _component = targetCell === null || targetCell === void 0 ? void 0 : targetCell.component;
|
|
17297
17410
|
var rowSpan = (targetCell === null || targetCell === void 0 || (_targetCell$span4 = targetCell.span) === null || _targetCell$span4 === void 0 ? void 0 : _targetCell$span4.row) || 1;
|
|
17298
|
-
for (var
|
|
17299
|
-
var
|
|
17300
|
-
grid[
|
|
17301
|
-
component:
|
|
17411
|
+
for (var _i6 = 0; _i6 < count; _i6++) {
|
|
17412
|
+
var _key8 = "".concat(row, ".").concat(newTargetCol + _i6 * _subSpan);
|
|
17413
|
+
grid[_key8] = {
|
|
17414
|
+
component: _i6 === 0 ? _component : null,
|
|
17302
17415
|
hide: false
|
|
17303
17416
|
};
|
|
17304
17417
|
if (_subSpan > 1 || rowSpan > 1) {
|
|
17305
|
-
grid[
|
|
17306
|
-
if (_subSpan > 1) grid[
|
|
17307
|
-
if (rowSpan > 1) grid[
|
|
17418
|
+
grid[_key8].span = {};
|
|
17419
|
+
if (_subSpan > 1) grid[_key8].span.col = _subSpan;
|
|
17420
|
+
if (rowSpan > 1) grid[_key8].span.row = rowSpan;
|
|
17308
17421
|
}
|
|
17309
17422
|
}
|
|
17310
17423
|
}
|
|
@@ -17327,16 +17440,16 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17327
17440
|
delete targetCell.span;
|
|
17328
17441
|
|
|
17329
17442
|
// Create subdivided cells
|
|
17330
|
-
for (var
|
|
17331
|
-
var
|
|
17332
|
-
grid[
|
|
17333
|
-
component:
|
|
17443
|
+
for (var _i7 = 0; _i7 < count; _i7++) {
|
|
17444
|
+
var _key9 = "".concat(row + _i7 * _subSpan2, ".").concat(col);
|
|
17445
|
+
grid[_key9] = {
|
|
17446
|
+
component: _i7 === 0 ? _component2 : null,
|
|
17334
17447
|
hide: false
|
|
17335
17448
|
};
|
|
17336
17449
|
if (_subSpan2 > 1 || _targetSpanCol > 1) {
|
|
17337
|
-
grid[
|
|
17338
|
-
if (_subSpan2 > 1) grid[
|
|
17339
|
-
if (_targetSpanCol > 1) grid[
|
|
17450
|
+
grid[_key9].span = {};
|
|
17451
|
+
if (_subSpan2 > 1) grid[_key9].span.row = _subSpan2;
|
|
17452
|
+
if (_targetSpanCol > 1) grid[_key9].span.col = _targetSpanCol;
|
|
17340
17453
|
}
|
|
17341
17454
|
}
|
|
17342
17455
|
} else {
|
|
@@ -17348,8 +17461,8 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17348
17461
|
var _visibleCells2 = [];
|
|
17349
17462
|
for (var _r1 = 1; _r1 <= oldRows; _r1++) {
|
|
17350
17463
|
for (var _c10 = 1; _c10 <= grid.cols; _c10++) {
|
|
17351
|
-
var
|
|
17352
|
-
var _cell6 = grid[
|
|
17464
|
+
var _key0 = "".concat(_r1, ".").concat(_c10);
|
|
17465
|
+
var _cell6 = grid[_key0];
|
|
17353
17466
|
if (_cell6 && !_cell6.hide) {
|
|
17354
17467
|
var _cell6$span, _cell6$span2;
|
|
17355
17468
|
_visibleCells2.push({
|
|
@@ -17364,20 +17477,20 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17364
17477
|
}
|
|
17365
17478
|
|
|
17366
17479
|
// 2. Clear all cell keys
|
|
17367
|
-
for (var
|
|
17368
|
-
var
|
|
17369
|
-
if (/^\d+\.\d+$/.test(
|
|
17480
|
+
for (var _i8 = 0, _Object$keys4 = Object.keys(grid); _i8 < _Object$keys4.length; _i8++) {
|
|
17481
|
+
var _key1 = _Object$keys4[_i8];
|
|
17482
|
+
if (/^\d+\.\d+$/.test(_key1)) delete grid[_key1];
|
|
17370
17483
|
}
|
|
17371
17484
|
|
|
17372
17485
|
// 3. Update grid dimensions
|
|
17373
17486
|
grid.rows = oldRows * count;
|
|
17374
17487
|
|
|
17375
17488
|
// 4. Reposition all cells with scaled positions and spans
|
|
17376
|
-
for (var
|
|
17377
|
-
var _vc = _visibleCells3[
|
|
17489
|
+
for (var _i9 = 0, _visibleCells3 = _visibleCells2; _i9 < _visibleCells3.length; _i9++) {
|
|
17490
|
+
var _vc = _visibleCells3[_i9];
|
|
17378
17491
|
var newRow = (_vc.row - 1) * count + 1;
|
|
17379
|
-
var
|
|
17380
|
-
grid[
|
|
17492
|
+
var _key10 = "".concat(newRow, ".").concat(_vc.col);
|
|
17493
|
+
grid[_key10] = _objectSpread$f(_objectSpread$f({}, _vc.data), {}, {
|
|
17381
17494
|
hide: false,
|
|
17382
17495
|
span: {
|
|
17383
17496
|
row: _vc.spanRow * count,
|
|
@@ -17392,16 +17505,16 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17392
17505
|
var _subSpan3 = _newTargetSpan / count;
|
|
17393
17506
|
var _component3 = targetCell === null || targetCell === void 0 ? void 0 : targetCell.component;
|
|
17394
17507
|
var colSpan = (targetCell === null || targetCell === void 0 || (_targetCell$span8 = targetCell.span) === null || _targetCell$span8 === void 0 ? void 0 : _targetCell$span8.col) || 1;
|
|
17395
|
-
for (var
|
|
17396
|
-
var
|
|
17397
|
-
grid[
|
|
17398
|
-
component:
|
|
17508
|
+
for (var _i0 = 0; _i0 < count; _i0++) {
|
|
17509
|
+
var _key11 = "".concat(newTargetRow + _i0 * _subSpan3, ".").concat(col);
|
|
17510
|
+
grid[_key11] = {
|
|
17511
|
+
component: _i0 === 0 ? _component3 : null,
|
|
17399
17512
|
hide: false
|
|
17400
17513
|
};
|
|
17401
17514
|
if (_subSpan3 > 1 || colSpan > 1) {
|
|
17402
|
-
grid[
|
|
17403
|
-
if (_subSpan3 > 1) grid[
|
|
17404
|
-
if (colSpan > 1) grid[
|
|
17515
|
+
grid[_key11].span = {};
|
|
17516
|
+
if (_subSpan3 > 1) grid[_key11].span.row = _subSpan3;
|
|
17517
|
+
if (colSpan > 1) grid[_key11].span.col = colSpan;
|
|
17405
17518
|
}
|
|
17406
17519
|
}
|
|
17407
17520
|
}
|
|
@@ -17553,6 +17666,50 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17553
17666
|
}
|
|
17554
17667
|
}
|
|
17555
17668
|
|
|
17669
|
+
/**
|
|
17670
|
+
* Change the sizing mode for a grid row
|
|
17671
|
+
* @param {Number} itemId The id of the grid container
|
|
17672
|
+
* @param {Number} rowNumber The row number (1-indexed)
|
|
17673
|
+
* @param {String} mode The sizing mode: "shrink", "grow", or "fixed"
|
|
17674
|
+
* @returns {Object} Updated grid or null on error
|
|
17675
|
+
*/
|
|
17676
|
+
}, {
|
|
17677
|
+
key: "changeRowMode",
|
|
17678
|
+
value: function changeRowMode(itemId, rowNumber, mode) {
|
|
17679
|
+
try {
|
|
17680
|
+
var gridContainer = this.getComponentById(itemId);
|
|
17681
|
+
if (!gridContainer || !gridContainer.grid) {
|
|
17682
|
+
return null;
|
|
17683
|
+
}
|
|
17684
|
+
var grid = gridContainer.grid;
|
|
17685
|
+
grid.rowModes = grid.rowModes || {};
|
|
17686
|
+
if (mode === "fixed" || !mode) {
|
|
17687
|
+
delete grid.rowModes[String(rowNumber)];
|
|
17688
|
+
} else {
|
|
17689
|
+
grid.rowModes[String(rowNumber)] = mode;
|
|
17690
|
+
}
|
|
17691
|
+
|
|
17692
|
+
// When switching away from fixed, clear the rowHeights entry for that row
|
|
17693
|
+
if (mode === "shrink" || mode === "grow") {
|
|
17694
|
+
if (grid.rowHeights) {
|
|
17695
|
+
delete grid.rowHeights[String(rowNumber)];
|
|
17696
|
+
if (Object.keys(grid.rowHeights).length === 0) {
|
|
17697
|
+
delete grid.rowHeights;
|
|
17698
|
+
}
|
|
17699
|
+
}
|
|
17700
|
+
}
|
|
17701
|
+
|
|
17702
|
+
// Clean up empty object
|
|
17703
|
+
if (Object.keys(grid.rowModes).length === 0) {
|
|
17704
|
+
delete grid.rowModes;
|
|
17705
|
+
}
|
|
17706
|
+
this.updateLayoutItem(gridContainer);
|
|
17707
|
+
return grid;
|
|
17708
|
+
} catch (e) {
|
|
17709
|
+
return null;
|
|
17710
|
+
}
|
|
17711
|
+
}
|
|
17712
|
+
|
|
17556
17713
|
/**
|
|
17557
17714
|
* Add a new row to the grid
|
|
17558
17715
|
* @param {Number} itemId The id of the grid container
|
|
@@ -17595,15 +17752,28 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17595
17752
|
// Shift rowHeights keys down (rows after insertion point move +1)
|
|
17596
17753
|
if (gridContainer.grid.rowHeights) {
|
|
17597
17754
|
var shifted = {};
|
|
17598
|
-
for (var
|
|
17599
|
-
var _Object$
|
|
17600
|
-
key = _Object$
|
|
17601
|
-
mult = _Object$
|
|
17755
|
+
for (var _i1 = 0, _Object$entries2 = Object.entries(gridContainer.grid.rowHeights); _i1 < _Object$entries2.length; _i1++) {
|
|
17756
|
+
var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i1], 2),
|
|
17757
|
+
key = _Object$entries2$_i[0],
|
|
17758
|
+
mult = _Object$entries2$_i[1];
|
|
17602
17759
|
var rowNum = Number(key);
|
|
17603
17760
|
shifted[String(rowNum >= newRowNumber ? rowNum + 1 : rowNum)] = mult;
|
|
17604
17761
|
}
|
|
17605
17762
|
gridContainer.grid.rowHeights = Object.keys(shifted).length > 0 ? shifted : undefined;
|
|
17606
17763
|
}
|
|
17764
|
+
|
|
17765
|
+
// Shift rowModes keys down (rows after insertion point move +1)
|
|
17766
|
+
if (gridContainer.grid.rowModes) {
|
|
17767
|
+
var _shifted = {};
|
|
17768
|
+
for (var _i10 = 0, _Object$entries3 = Object.entries(gridContainer.grid.rowModes); _i10 < _Object$entries3.length; _i10++) {
|
|
17769
|
+
var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i10], 2),
|
|
17770
|
+
_key12 = _Object$entries3$_i[0],
|
|
17771
|
+
mode = _Object$entries3$_i[1];
|
|
17772
|
+
var _rowNum = Number(_key12);
|
|
17773
|
+
_shifted[String(_rowNum >= newRowNumber ? _rowNum + 1 : _rowNum)] = mode;
|
|
17774
|
+
}
|
|
17775
|
+
gridContainer.grid.rowModes = Object.keys(_shifted).length > 0 ? _shifted : undefined;
|
|
17776
|
+
}
|
|
17607
17777
|
this._normalizeGrid(gridContainer.grid);
|
|
17608
17778
|
this.updateLayoutItem(gridContainer);
|
|
17609
17779
|
return gridContainer.grid;
|
|
@@ -17655,16 +17825,30 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17655
17825
|
// Shift rowHeights keys up and remove the deleted row's entry
|
|
17656
17826
|
if (gridContainer.grid.rowHeights) {
|
|
17657
17827
|
var shifted = {};
|
|
17658
|
-
for (var
|
|
17659
|
-
var _Object$
|
|
17660
|
-
key = _Object$
|
|
17661
|
-
mult = _Object$
|
|
17828
|
+
for (var _i11 = 0, _Object$entries4 = Object.entries(gridContainer.grid.rowHeights); _i11 < _Object$entries4.length; _i11++) {
|
|
17829
|
+
var _Object$entries4$_i = _slicedToArray(_Object$entries4[_i11], 2),
|
|
17830
|
+
key = _Object$entries4$_i[0],
|
|
17831
|
+
mult = _Object$entries4$_i[1];
|
|
17662
17832
|
var rowNum = Number(key);
|
|
17663
17833
|
if (rowNum === rowNumber) continue;
|
|
17664
17834
|
shifted[String(rowNum > rowNumber ? rowNum - 1 : rowNum)] = mult;
|
|
17665
17835
|
}
|
|
17666
17836
|
gridContainer.grid.rowHeights = Object.keys(shifted).length > 0 ? shifted : undefined;
|
|
17667
17837
|
}
|
|
17838
|
+
|
|
17839
|
+
// Shift rowModes keys up and remove the deleted row's entry
|
|
17840
|
+
if (gridContainer.grid.rowModes) {
|
|
17841
|
+
var _shifted2 = {};
|
|
17842
|
+
for (var _i12 = 0, _Object$entries5 = Object.entries(gridContainer.grid.rowModes); _i12 < _Object$entries5.length; _i12++) {
|
|
17843
|
+
var _Object$entries5$_i = _slicedToArray(_Object$entries5[_i12], 2),
|
|
17844
|
+
_key13 = _Object$entries5$_i[0],
|
|
17845
|
+
mode = _Object$entries5$_i[1];
|
|
17846
|
+
var _rowNum2 = Number(_key13);
|
|
17847
|
+
if (_rowNum2 === rowNumber) continue;
|
|
17848
|
+
_shifted2[String(_rowNum2 > rowNumber ? _rowNum2 - 1 : _rowNum2)] = mode;
|
|
17849
|
+
}
|
|
17850
|
+
gridContainer.grid.rowModes = Object.keys(_shifted2).length > 0 ? _shifted2 : undefined;
|
|
17851
|
+
}
|
|
17668
17852
|
this._normalizeGrid(gridContainer.grid);
|
|
17669
17853
|
this.updateLayoutItem(gridContainer);
|
|
17670
17854
|
return gridContainer.grid;
|