@trops/dash-core 0.1.21 → 0.1.22
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 +259 -78
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +259 -78
- 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
|
|
@@ -13982,7 +14074,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
13982
14074
|
id: "grid-container-".concat(id),
|
|
13983
14075
|
className: "grid flex-1 p-4 gap-5",
|
|
13984
14076
|
style: {
|
|
13985
|
-
gridTemplateRows: "repeat(".concat(item.grid.rows, ", minmax(0, 1fr))"),
|
|
14077
|
+
gridTemplateRows: hasExplicitRowModes() ? getRowTemplate(item.grid) : "repeat(".concat(item.grid.rows, ", minmax(0, 1fr))"),
|
|
13986
14078
|
gridTemplateColumns: "repeat(".concat(item.grid.cols, ", 1fr)"),
|
|
13987
14079
|
overflow: "hidden"
|
|
13988
14080
|
},
|
|
@@ -14093,7 +14185,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
14093
14185
|
id: "grid-container-".concat(id),
|
|
14094
14186
|
className: "absolute inset-0 grid p-3 ".concat(item.grid.gap || "gap-2"),
|
|
14095
14187
|
style: {
|
|
14096
|
-
gridTemplateRows: "repeat(".concat(item.grid.rows, ", minmax(0, 1fr))"),
|
|
14188
|
+
gridTemplateRows: hasExplicitRowModes() ? getRowTemplate(item.grid) : "repeat(".concat(item.grid.rows, ", minmax(0, 1fr))"),
|
|
14097
14189
|
gridTemplateColumns: "repeat(".concat(item.grid.cols, ", 1fr)"),
|
|
14098
14190
|
overflow: "hidden"
|
|
14099
14191
|
},
|
|
@@ -14186,6 +14278,8 @@ var _renderLayout = function renderLayout(_ref) {
|
|
|
14186
14278
|
onDeleteGridColumn = _ref$onDeleteGridColu === void 0 ? null : _ref$onDeleteGridColu,
|
|
14187
14279
|
_ref$onChangeRowHeigh = _ref.onChangeRowHeight,
|
|
14188
14280
|
onChangeRowHeight = _ref$onChangeRowHeigh === void 0 ? null : _ref$onChangeRowHeigh,
|
|
14281
|
+
_ref$onChangeRowMode = _ref.onChangeRowMode,
|
|
14282
|
+
onChangeRowMode = _ref$onChangeRowMode === void 0 ? null : _ref$onChangeRowMode,
|
|
14189
14283
|
_ref$onMoveWidgetToCe = _ref.onMoveWidgetToCell,
|
|
14190
14284
|
onMoveWidgetToCell = _ref$onMoveWidgetToCe === void 0 ? null : _ref$onMoveWidgetToCe,
|
|
14191
14285
|
_ref$onDropWidgetFrom = _ref.onDropWidgetFromSidebar,
|
|
@@ -14253,6 +14347,7 @@ var _renderLayout = function renderLayout(_ref) {
|
|
|
14253
14347
|
onAddGridColumn: onAddGridColumn,
|
|
14254
14348
|
onDeleteGridColumn: onDeleteGridColumn,
|
|
14255
14349
|
onChangeRowHeight: onChangeRowHeight,
|
|
14350
|
+
onChangeRowMode: onChangeRowMode,
|
|
14256
14351
|
onMoveWidgetToCell: onMoveWidgetToCell,
|
|
14257
14352
|
onDropWidgetFromSidebar: onDropWidgetFromSidebar,
|
|
14258
14353
|
children: id > 0 && _renderLayout({
|
|
@@ -14289,6 +14384,7 @@ var _renderLayout = function renderLayout(_ref) {
|
|
|
14289
14384
|
onAddGridColumn: onAddGridColumn,
|
|
14290
14385
|
onDeleteGridColumn: onDeleteGridColumn,
|
|
14291
14386
|
onChangeRowHeight: onChangeRowHeight,
|
|
14387
|
+
onChangeRowMode: onChangeRowMode,
|
|
14292
14388
|
onMoveWidgetToCell: onMoveWidgetToCell,
|
|
14293
14389
|
onDropWidgetFromSidebar: onDropWidgetFromSidebar
|
|
14294
14390
|
})
|
|
@@ -17068,6 +17164,20 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17068
17164
|
delete grid["".concat(grid.rows, ".").concat(_c7)];
|
|
17069
17165
|
}
|
|
17070
17166
|
grid.rows--;
|
|
17167
|
+
|
|
17168
|
+
// Shift rowModes keys up and remove the compacted row's entry
|
|
17169
|
+
if (grid.rowModes) {
|
|
17170
|
+
var shifted = {};
|
|
17171
|
+
for (var _i2 = 0, _Object$entries = Object.entries(grid.rowModes); _i2 < _Object$entries.length; _i2++) {
|
|
17172
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i2], 2),
|
|
17173
|
+
_key2 = _Object$entries$_i[0],
|
|
17174
|
+
mode = _Object$entries$_i[1];
|
|
17175
|
+
var rowNum = Number(_key2);
|
|
17176
|
+
if (rowNum === _r6) continue;
|
|
17177
|
+
shifted[String(rowNum > _r6 ? rowNum - 1 : rowNum)] = mode;
|
|
17178
|
+
}
|
|
17179
|
+
grid.rowModes = Object.keys(shifted).length > 0 ? shifted : undefined;
|
|
17180
|
+
}
|
|
17071
17181
|
}
|
|
17072
17182
|
|
|
17073
17183
|
// --- Phase 3: Full normalization (steps 1-5) on the compacted grid ---
|
|
@@ -17101,14 +17211,14 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17101
17211
|
|
|
17102
17212
|
// 2. Remove out-of-bounds cell keys
|
|
17103
17213
|
var cellKeyPattern = /^(\d+)\.(\d+)$/;
|
|
17104
|
-
for (var
|
|
17105
|
-
var
|
|
17106
|
-
var match =
|
|
17214
|
+
for (var _i3 = 0, _Object$keys2 = Object.keys(grid); _i3 < _Object$keys2.length; _i3++) {
|
|
17215
|
+
var _key3 = _Object$keys2[_i3];
|
|
17216
|
+
var match = _key3.match(cellKeyPattern);
|
|
17107
17217
|
if (match) {
|
|
17108
17218
|
var _r7 = Number(match[1]);
|
|
17109
17219
|
var _c8 = Number(match[2]);
|
|
17110
17220
|
if (_r7 < 1 || _r7 > rows || _c8 < 1 || _c8 > cols) {
|
|
17111
|
-
delete grid[
|
|
17221
|
+
delete grid[_key3];
|
|
17112
17222
|
}
|
|
17113
17223
|
}
|
|
17114
17224
|
}
|
|
@@ -17139,13 +17249,13 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17139
17249
|
var covered = new Set();
|
|
17140
17250
|
for (var _r0 = 1; _r0 <= rows; _r0++) {
|
|
17141
17251
|
for (var _c1 = 1; _c1 <= cols; _c1++) {
|
|
17142
|
-
var
|
|
17143
|
-
var _cell5 = grid[
|
|
17252
|
+
var _key4 = "".concat(_r0, ".").concat(_c1);
|
|
17253
|
+
var _cell5 = grid[_key4];
|
|
17144
17254
|
if (!_cell5.span) continue;
|
|
17145
17255
|
|
|
17146
17256
|
// If this cell is already covered by an earlier span,
|
|
17147
17257
|
// remove its span to resolve the conflict
|
|
17148
|
-
if (covered.has(
|
|
17258
|
+
if (covered.has(_key4)) {
|
|
17149
17259
|
delete _cell5.span;
|
|
17150
17260
|
continue;
|
|
17151
17261
|
}
|
|
@@ -17165,7 +17275,7 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17165
17275
|
covered.add(coveredKey);
|
|
17166
17276
|
}
|
|
17167
17277
|
}
|
|
17168
|
-
covered.add(
|
|
17278
|
+
covered.add(_key4);
|
|
17169
17279
|
}
|
|
17170
17280
|
}
|
|
17171
17281
|
}
|
|
@@ -17251,8 +17361,8 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17251
17361
|
var visibleCells = [];
|
|
17252
17362
|
for (var r = 1; r <= grid.rows; r++) {
|
|
17253
17363
|
for (var c = 1; c <= oldCols; c++) {
|
|
17254
|
-
var
|
|
17255
|
-
var cell = grid[
|
|
17364
|
+
var _key5 = "".concat(r, ".").concat(c);
|
|
17365
|
+
var cell = grid[_key5];
|
|
17256
17366
|
if (cell && !cell.hide) {
|
|
17257
17367
|
var _cell$span, _cell$span2;
|
|
17258
17368
|
visibleCells.push({
|
|
@@ -17267,20 +17377,20 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17267
17377
|
}
|
|
17268
17378
|
|
|
17269
17379
|
// 2. Clear all cell keys
|
|
17270
|
-
for (var
|
|
17271
|
-
var
|
|
17272
|
-
if (/^\d+\.\d+$/.test(
|
|
17380
|
+
for (var _i4 = 0, _Object$keys3 = Object.keys(grid); _i4 < _Object$keys3.length; _i4++) {
|
|
17381
|
+
var _key6 = _Object$keys3[_i4];
|
|
17382
|
+
if (/^\d+\.\d+$/.test(_key6)) delete grid[_key6];
|
|
17273
17383
|
}
|
|
17274
17384
|
|
|
17275
17385
|
// 3. Update grid dimensions
|
|
17276
17386
|
grid.cols = oldCols * count;
|
|
17277
17387
|
|
|
17278
17388
|
// 4. Reposition all cells with scaled positions and spans
|
|
17279
|
-
for (var
|
|
17280
|
-
var vc = _visibleCells[
|
|
17389
|
+
for (var _i5 = 0, _visibleCells = visibleCells; _i5 < _visibleCells.length; _i5++) {
|
|
17390
|
+
var vc = _visibleCells[_i5];
|
|
17281
17391
|
var newCol = (vc.col - 1) * count + 1;
|
|
17282
|
-
var
|
|
17283
|
-
grid[
|
|
17392
|
+
var _key7 = "".concat(vc.row, ".").concat(newCol);
|
|
17393
|
+
grid[_key7] = _objectSpread$f(_objectSpread$f({}, vc.data), {}, {
|
|
17284
17394
|
hide: false,
|
|
17285
17395
|
span: {
|
|
17286
17396
|
row: vc.spanRow,
|
|
@@ -17295,16 +17405,16 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17295
17405
|
var _subSpan = newTargetSpan / count;
|
|
17296
17406
|
var _component = targetCell === null || targetCell === void 0 ? void 0 : targetCell.component;
|
|
17297
17407
|
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:
|
|
17408
|
+
for (var _i6 = 0; _i6 < count; _i6++) {
|
|
17409
|
+
var _key8 = "".concat(row, ".").concat(newTargetCol + _i6 * _subSpan);
|
|
17410
|
+
grid[_key8] = {
|
|
17411
|
+
component: _i6 === 0 ? _component : null,
|
|
17302
17412
|
hide: false
|
|
17303
17413
|
};
|
|
17304
17414
|
if (_subSpan > 1 || rowSpan > 1) {
|
|
17305
|
-
grid[
|
|
17306
|
-
if (_subSpan > 1) grid[
|
|
17307
|
-
if (rowSpan > 1) grid[
|
|
17415
|
+
grid[_key8].span = {};
|
|
17416
|
+
if (_subSpan > 1) grid[_key8].span.col = _subSpan;
|
|
17417
|
+
if (rowSpan > 1) grid[_key8].span.row = rowSpan;
|
|
17308
17418
|
}
|
|
17309
17419
|
}
|
|
17310
17420
|
}
|
|
@@ -17327,16 +17437,16 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17327
17437
|
delete targetCell.span;
|
|
17328
17438
|
|
|
17329
17439
|
// Create subdivided cells
|
|
17330
|
-
for (var
|
|
17331
|
-
var
|
|
17332
|
-
grid[
|
|
17333
|
-
component:
|
|
17440
|
+
for (var _i7 = 0; _i7 < count; _i7++) {
|
|
17441
|
+
var _key9 = "".concat(row + _i7 * _subSpan2, ".").concat(col);
|
|
17442
|
+
grid[_key9] = {
|
|
17443
|
+
component: _i7 === 0 ? _component2 : null,
|
|
17334
17444
|
hide: false
|
|
17335
17445
|
};
|
|
17336
17446
|
if (_subSpan2 > 1 || _targetSpanCol > 1) {
|
|
17337
|
-
grid[
|
|
17338
|
-
if (_subSpan2 > 1) grid[
|
|
17339
|
-
if (_targetSpanCol > 1) grid[
|
|
17447
|
+
grid[_key9].span = {};
|
|
17448
|
+
if (_subSpan2 > 1) grid[_key9].span.row = _subSpan2;
|
|
17449
|
+
if (_targetSpanCol > 1) grid[_key9].span.col = _targetSpanCol;
|
|
17340
17450
|
}
|
|
17341
17451
|
}
|
|
17342
17452
|
} else {
|
|
@@ -17348,8 +17458,8 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17348
17458
|
var _visibleCells2 = [];
|
|
17349
17459
|
for (var _r1 = 1; _r1 <= oldRows; _r1++) {
|
|
17350
17460
|
for (var _c10 = 1; _c10 <= grid.cols; _c10++) {
|
|
17351
|
-
var
|
|
17352
|
-
var _cell6 = grid[
|
|
17461
|
+
var _key0 = "".concat(_r1, ".").concat(_c10);
|
|
17462
|
+
var _cell6 = grid[_key0];
|
|
17353
17463
|
if (_cell6 && !_cell6.hide) {
|
|
17354
17464
|
var _cell6$span, _cell6$span2;
|
|
17355
17465
|
_visibleCells2.push({
|
|
@@ -17364,20 +17474,20 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17364
17474
|
}
|
|
17365
17475
|
|
|
17366
17476
|
// 2. Clear all cell keys
|
|
17367
|
-
for (var
|
|
17368
|
-
var
|
|
17369
|
-
if (/^\d+\.\d+$/.test(
|
|
17477
|
+
for (var _i8 = 0, _Object$keys4 = Object.keys(grid); _i8 < _Object$keys4.length; _i8++) {
|
|
17478
|
+
var _key1 = _Object$keys4[_i8];
|
|
17479
|
+
if (/^\d+\.\d+$/.test(_key1)) delete grid[_key1];
|
|
17370
17480
|
}
|
|
17371
17481
|
|
|
17372
17482
|
// 3. Update grid dimensions
|
|
17373
17483
|
grid.rows = oldRows * count;
|
|
17374
17484
|
|
|
17375
17485
|
// 4. Reposition all cells with scaled positions and spans
|
|
17376
|
-
for (var
|
|
17377
|
-
var _vc = _visibleCells3[
|
|
17486
|
+
for (var _i9 = 0, _visibleCells3 = _visibleCells2; _i9 < _visibleCells3.length; _i9++) {
|
|
17487
|
+
var _vc = _visibleCells3[_i9];
|
|
17378
17488
|
var newRow = (_vc.row - 1) * count + 1;
|
|
17379
|
-
var
|
|
17380
|
-
grid[
|
|
17489
|
+
var _key10 = "".concat(newRow, ".").concat(_vc.col);
|
|
17490
|
+
grid[_key10] = _objectSpread$f(_objectSpread$f({}, _vc.data), {}, {
|
|
17381
17491
|
hide: false,
|
|
17382
17492
|
span: {
|
|
17383
17493
|
row: _vc.spanRow * count,
|
|
@@ -17392,16 +17502,16 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17392
17502
|
var _subSpan3 = _newTargetSpan / count;
|
|
17393
17503
|
var _component3 = targetCell === null || targetCell === void 0 ? void 0 : targetCell.component;
|
|
17394
17504
|
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:
|
|
17505
|
+
for (var _i0 = 0; _i0 < count; _i0++) {
|
|
17506
|
+
var _key11 = "".concat(newTargetRow + _i0 * _subSpan3, ".").concat(col);
|
|
17507
|
+
grid[_key11] = {
|
|
17508
|
+
component: _i0 === 0 ? _component3 : null,
|
|
17399
17509
|
hide: false
|
|
17400
17510
|
};
|
|
17401
17511
|
if (_subSpan3 > 1 || colSpan > 1) {
|
|
17402
|
-
grid[
|
|
17403
|
-
if (_subSpan3 > 1) grid[
|
|
17404
|
-
if (colSpan > 1) grid[
|
|
17512
|
+
grid[_key11].span = {};
|
|
17513
|
+
if (_subSpan3 > 1) grid[_key11].span.row = _subSpan3;
|
|
17514
|
+
if (colSpan > 1) grid[_key11].span.col = colSpan;
|
|
17405
17515
|
}
|
|
17406
17516
|
}
|
|
17407
17517
|
}
|
|
@@ -17553,6 +17663,50 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17553
17663
|
}
|
|
17554
17664
|
}
|
|
17555
17665
|
|
|
17666
|
+
/**
|
|
17667
|
+
* Change the sizing mode for a grid row
|
|
17668
|
+
* @param {Number} itemId The id of the grid container
|
|
17669
|
+
* @param {Number} rowNumber The row number (1-indexed)
|
|
17670
|
+
* @param {String} mode The sizing mode: "shrink", "grow", or "fixed"
|
|
17671
|
+
* @returns {Object} Updated grid or null on error
|
|
17672
|
+
*/
|
|
17673
|
+
}, {
|
|
17674
|
+
key: "changeRowMode",
|
|
17675
|
+
value: function changeRowMode(itemId, rowNumber, mode) {
|
|
17676
|
+
try {
|
|
17677
|
+
var gridContainer = this.getComponentById(itemId);
|
|
17678
|
+
if (!gridContainer || !gridContainer.grid) {
|
|
17679
|
+
return null;
|
|
17680
|
+
}
|
|
17681
|
+
var grid = gridContainer.grid;
|
|
17682
|
+
grid.rowModes = grid.rowModes || {};
|
|
17683
|
+
if (mode === "fixed" || !mode) {
|
|
17684
|
+
delete grid.rowModes[String(rowNumber)];
|
|
17685
|
+
} else {
|
|
17686
|
+
grid.rowModes[String(rowNumber)] = mode;
|
|
17687
|
+
}
|
|
17688
|
+
|
|
17689
|
+
// When switching away from fixed, clear the rowHeights entry for that row
|
|
17690
|
+
if (mode === "shrink" || mode === "grow") {
|
|
17691
|
+
if (grid.rowHeights) {
|
|
17692
|
+
delete grid.rowHeights[String(rowNumber)];
|
|
17693
|
+
if (Object.keys(grid.rowHeights).length === 0) {
|
|
17694
|
+
delete grid.rowHeights;
|
|
17695
|
+
}
|
|
17696
|
+
}
|
|
17697
|
+
}
|
|
17698
|
+
|
|
17699
|
+
// Clean up empty object
|
|
17700
|
+
if (Object.keys(grid.rowModes).length === 0) {
|
|
17701
|
+
delete grid.rowModes;
|
|
17702
|
+
}
|
|
17703
|
+
this.updateLayoutItem(gridContainer);
|
|
17704
|
+
return grid;
|
|
17705
|
+
} catch (e) {
|
|
17706
|
+
return null;
|
|
17707
|
+
}
|
|
17708
|
+
}
|
|
17709
|
+
|
|
17556
17710
|
/**
|
|
17557
17711
|
* Add a new row to the grid
|
|
17558
17712
|
* @param {Number} itemId The id of the grid container
|
|
@@ -17595,15 +17749,28 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17595
17749
|
// Shift rowHeights keys down (rows after insertion point move +1)
|
|
17596
17750
|
if (gridContainer.grid.rowHeights) {
|
|
17597
17751
|
var shifted = {};
|
|
17598
|
-
for (var
|
|
17599
|
-
var _Object$
|
|
17600
|
-
key = _Object$
|
|
17601
|
-
mult = _Object$
|
|
17752
|
+
for (var _i1 = 0, _Object$entries2 = Object.entries(gridContainer.grid.rowHeights); _i1 < _Object$entries2.length; _i1++) {
|
|
17753
|
+
var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i1], 2),
|
|
17754
|
+
key = _Object$entries2$_i[0],
|
|
17755
|
+
mult = _Object$entries2$_i[1];
|
|
17602
17756
|
var rowNum = Number(key);
|
|
17603
17757
|
shifted[String(rowNum >= newRowNumber ? rowNum + 1 : rowNum)] = mult;
|
|
17604
17758
|
}
|
|
17605
17759
|
gridContainer.grid.rowHeights = Object.keys(shifted).length > 0 ? shifted : undefined;
|
|
17606
17760
|
}
|
|
17761
|
+
|
|
17762
|
+
// Shift rowModes keys down (rows after insertion point move +1)
|
|
17763
|
+
if (gridContainer.grid.rowModes) {
|
|
17764
|
+
var _shifted = {};
|
|
17765
|
+
for (var _i10 = 0, _Object$entries3 = Object.entries(gridContainer.grid.rowModes); _i10 < _Object$entries3.length; _i10++) {
|
|
17766
|
+
var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i10], 2),
|
|
17767
|
+
_key12 = _Object$entries3$_i[0],
|
|
17768
|
+
mode = _Object$entries3$_i[1];
|
|
17769
|
+
var _rowNum = Number(_key12);
|
|
17770
|
+
_shifted[String(_rowNum >= newRowNumber ? _rowNum + 1 : _rowNum)] = mode;
|
|
17771
|
+
}
|
|
17772
|
+
gridContainer.grid.rowModes = Object.keys(_shifted).length > 0 ? _shifted : undefined;
|
|
17773
|
+
}
|
|
17607
17774
|
this._normalizeGrid(gridContainer.grid);
|
|
17608
17775
|
this.updateLayoutItem(gridContainer);
|
|
17609
17776
|
return gridContainer.grid;
|
|
@@ -17655,16 +17822,30 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
17655
17822
|
// Shift rowHeights keys up and remove the deleted row's entry
|
|
17656
17823
|
if (gridContainer.grid.rowHeights) {
|
|
17657
17824
|
var shifted = {};
|
|
17658
|
-
for (var
|
|
17659
|
-
var _Object$
|
|
17660
|
-
key = _Object$
|
|
17661
|
-
mult = _Object$
|
|
17825
|
+
for (var _i11 = 0, _Object$entries4 = Object.entries(gridContainer.grid.rowHeights); _i11 < _Object$entries4.length; _i11++) {
|
|
17826
|
+
var _Object$entries4$_i = _slicedToArray(_Object$entries4[_i11], 2),
|
|
17827
|
+
key = _Object$entries4$_i[0],
|
|
17828
|
+
mult = _Object$entries4$_i[1];
|
|
17662
17829
|
var rowNum = Number(key);
|
|
17663
17830
|
if (rowNum === rowNumber) continue;
|
|
17664
17831
|
shifted[String(rowNum > rowNumber ? rowNum - 1 : rowNum)] = mult;
|
|
17665
17832
|
}
|
|
17666
17833
|
gridContainer.grid.rowHeights = Object.keys(shifted).length > 0 ? shifted : undefined;
|
|
17667
17834
|
}
|
|
17835
|
+
|
|
17836
|
+
// Shift rowModes keys up and remove the deleted row's entry
|
|
17837
|
+
if (gridContainer.grid.rowModes) {
|
|
17838
|
+
var _shifted2 = {};
|
|
17839
|
+
for (var _i12 = 0, _Object$entries5 = Object.entries(gridContainer.grid.rowModes); _i12 < _Object$entries5.length; _i12++) {
|
|
17840
|
+
var _Object$entries5$_i = _slicedToArray(_Object$entries5[_i12], 2),
|
|
17841
|
+
_key13 = _Object$entries5$_i[0],
|
|
17842
|
+
mode = _Object$entries5$_i[1];
|
|
17843
|
+
var _rowNum2 = Number(_key13);
|
|
17844
|
+
if (_rowNum2 === rowNumber) continue;
|
|
17845
|
+
_shifted2[String(_rowNum2 > rowNumber ? _rowNum2 - 1 : _rowNum2)] = mode;
|
|
17846
|
+
}
|
|
17847
|
+
gridContainer.grid.rowModes = Object.keys(_shifted2).length > 0 ? _shifted2 : undefined;
|
|
17848
|
+
}
|
|
17668
17849
|
this._normalizeGrid(gridContainer.grid);
|
|
17669
17850
|
this.updateLayoutItem(gridContainer);
|
|
17670
17851
|
return gridContainer.grid;
|