@trops/dash-core 0.1.81 → 0.1.82
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 +369 -55
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +369 -55
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -11947,6 +11947,30 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
11947
11947
|
} catch (e) {
|
|
11948
11948
|
}
|
|
11949
11949
|
}
|
|
11950
|
+
function handleChangeRowSizing(gridContainerId, rowNumber, mode, multiplier) {
|
|
11951
|
+
try {
|
|
11952
|
+
var dashboard = new DashboardModel(currentWorkspace);
|
|
11953
|
+
dashboard.changeRowMode(gridContainerId, rowNumber, mode);
|
|
11954
|
+
if (multiplier !== undefined) {
|
|
11955
|
+
dashboard.changeRowHeight(gridContainerId, rowNumber, multiplier);
|
|
11956
|
+
}
|
|
11957
|
+
var newWorkspace = dashboard.workspace();
|
|
11958
|
+
setCurrentWorkspace(newWorkspace);
|
|
11959
|
+
} catch (e) {
|
|
11960
|
+
}
|
|
11961
|
+
}
|
|
11962
|
+
function handleChangeColMode(gridContainerId, colNumber, mode) {
|
|
11963
|
+
try {
|
|
11964
|
+
var dashboard = new DashboardModel(currentWorkspace);
|
|
11965
|
+
var result = dashboard.changeColMode(gridContainerId, colNumber, mode);
|
|
11966
|
+
if (result) {
|
|
11967
|
+
var newWorkspace = dashboard.workspace();
|
|
11968
|
+
setCurrentWorkspace(newWorkspace);
|
|
11969
|
+
} else {
|
|
11970
|
+
}
|
|
11971
|
+
} catch (e) {
|
|
11972
|
+
}
|
|
11973
|
+
}
|
|
11950
11974
|
|
|
11951
11975
|
/**
|
|
11952
11976
|
* handle the click of a cell in a grid that does not contain a widget yet
|
|
@@ -12033,6 +12057,8 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
12033
12057
|
onDeleteGridColumn: handleDeleteGridColumn,
|
|
12034
12058
|
onChangeRowHeight: handleChangeRowHeight,
|
|
12035
12059
|
onChangeRowMode: handleChangeRowMode,
|
|
12060
|
+
onChangeRowSizing: handleChangeRowSizing,
|
|
12061
|
+
onChangeColMode: handleChangeColMode,
|
|
12036
12062
|
onMoveWidgetToCell: handleMoveWidgetToCell,
|
|
12037
12063
|
onWidgetPopout: onWidgetPopout
|
|
12038
12064
|
}, "layout-drag-".concat(dashboardId)), preview === false && editMode === "all" && /*#__PURE__*/jsxRuntime.jsx(LayoutDragBuilderEdit, {
|
|
@@ -12079,6 +12105,8 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
12079
12105
|
onDeleteGridColumn: handleDeleteGridColumn,
|
|
12080
12106
|
onChangeRowHeight: handleChangeRowHeight,
|
|
12081
12107
|
onChangeRowMode: handleChangeRowMode,
|
|
12108
|
+
onChangeRowSizing: handleChangeRowSizing,
|
|
12109
|
+
onChangeColMode: handleChangeColMode,
|
|
12082
12110
|
onMoveWidgetToCell: handleMoveWidgetToCell,
|
|
12083
12111
|
onDropWidgetFromSidebar: handleDropWidgetFromSidebar
|
|
12084
12112
|
}, "layout-drag-edit-".concat(dashboardId))]
|
|
@@ -12172,6 +12200,10 @@ var LayoutDragBuilder = function LayoutDragBuilder(_ref) {
|
|
|
12172
12200
|
onChangeRowHeight = _ref$onChangeRowHeigh === void 0 ? null : _ref$onChangeRowHeigh,
|
|
12173
12201
|
_ref$onChangeRowMode = _ref.onChangeRowMode,
|
|
12174
12202
|
onChangeRowMode = _ref$onChangeRowMode === void 0 ? null : _ref$onChangeRowMode,
|
|
12203
|
+
_ref$onChangeRowSizin = _ref.onChangeRowSizing,
|
|
12204
|
+
onChangeRowSizing = _ref$onChangeRowSizin === void 0 ? null : _ref$onChangeRowSizin,
|
|
12205
|
+
_ref$onChangeColMode = _ref.onChangeColMode,
|
|
12206
|
+
onChangeColMode = _ref$onChangeColMode === void 0 ? null : _ref$onChangeColMode,
|
|
12175
12207
|
_ref$onWidgetPopout = _ref.onWidgetPopout,
|
|
12176
12208
|
onWidgetPopout = _ref$onWidgetPopout === void 0 ? null : _ref$onWidgetPopout;
|
|
12177
12209
|
return isDraggable === true ? /*#__PURE__*/jsxRuntime.jsx(reactDnd.DndProvider, {
|
|
@@ -12205,6 +12237,8 @@ var LayoutDragBuilder = function LayoutDragBuilder(_ref) {
|
|
|
12205
12237
|
onDeleteGridColumn: onDeleteGridColumn,
|
|
12206
12238
|
onChangeRowHeight: onChangeRowHeight,
|
|
12207
12239
|
onChangeRowMode: onChangeRowMode,
|
|
12240
|
+
onChangeRowSizing: onChangeRowSizing,
|
|
12241
|
+
onChangeColMode: onChangeColMode,
|
|
12208
12242
|
onWidgetPopout: onWidgetPopout
|
|
12209
12243
|
})
|
|
12210
12244
|
}, "dnd-provider") : _renderLayout({
|
|
@@ -12236,6 +12270,7 @@ var LayoutDragBuilder = function LayoutDragBuilder(_ref) {
|
|
|
12236
12270
|
onDeleteGridColumn: onDeleteGridColumn,
|
|
12237
12271
|
onChangeRowHeight: onChangeRowHeight,
|
|
12238
12272
|
onChangeRowMode: onChangeRowMode,
|
|
12273
|
+
onChangeColMode: onChangeColMode,
|
|
12239
12274
|
onWidgetPopout: onWidgetPopout
|
|
12240
12275
|
});
|
|
12241
12276
|
};
|
|
@@ -12286,6 +12321,10 @@ var LayoutDragBuilderEdit = function LayoutDragBuilderEdit(_ref) {
|
|
|
12286
12321
|
onChangeRowHeight = _ref$onChangeRowHeigh === void 0 ? null : _ref$onChangeRowHeigh,
|
|
12287
12322
|
_ref$onChangeRowMode = _ref.onChangeRowMode,
|
|
12288
12323
|
onChangeRowMode = _ref$onChangeRowMode === void 0 ? null : _ref$onChangeRowMode,
|
|
12324
|
+
_ref$onChangeRowSizin = _ref.onChangeRowSizing,
|
|
12325
|
+
onChangeRowSizing = _ref$onChangeRowSizin === void 0 ? null : _ref$onChangeRowSizin,
|
|
12326
|
+
_ref$onChangeColMode = _ref.onChangeColMode,
|
|
12327
|
+
onChangeColMode = _ref$onChangeColMode === void 0 ? null : _ref$onChangeColMode,
|
|
12289
12328
|
_ref$onMoveWidgetToCe = _ref.onMoveWidgetToCell,
|
|
12290
12329
|
onMoveWidgetToCell = _ref$onMoveWidgetToCe === void 0 ? null : _ref$onMoveWidgetToCe,
|
|
12291
12330
|
_ref$onDropWidgetFrom = _ref.onDropWidgetFromSidebar,
|
|
@@ -12325,6 +12364,8 @@ var LayoutDragBuilderEdit = function LayoutDragBuilderEdit(_ref) {
|
|
|
12325
12364
|
onDeleteGridColumn: onDeleteGridColumn,
|
|
12326
12365
|
onChangeRowHeight: onChangeRowHeight,
|
|
12327
12366
|
onChangeRowMode: onChangeRowMode,
|
|
12367
|
+
onChangeRowSizing: onChangeRowSizing,
|
|
12368
|
+
onChangeColMode: onChangeColMode,
|
|
12328
12369
|
onMoveWidgetToCell: onMoveWidgetToCell,
|
|
12329
12370
|
onDropWidgetFromSidebar: onDropWidgetFromSidebar
|
|
12330
12371
|
});
|
|
@@ -14552,11 +14593,13 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
14552
14593
|
_ref3$onAddGridColumn = _ref3.onAddGridColumn,
|
|
14553
14594
|
onAddGridColumn = _ref3$onAddGridColumn === void 0 ? null : _ref3$onAddGridColumn,
|
|
14554
14595
|
_ref3$onDeleteGridCol = _ref3.onDeleteGridColumn,
|
|
14555
|
-
onDeleteGridColumn = _ref3$onDeleteGridCol === void 0 ? null : _ref3$onDeleteGridCol
|
|
14556
|
-
_ref3
|
|
14557
|
-
|
|
14558
|
-
_ref3$
|
|
14559
|
-
|
|
14596
|
+
onDeleteGridColumn = _ref3$onDeleteGridCol === void 0 ? null : _ref3$onDeleteGridCol;
|
|
14597
|
+
_ref3.onChangeRowHeight;
|
|
14598
|
+
_ref3.onChangeRowMode;
|
|
14599
|
+
var _ref3$onChangeRowSizi = _ref3.onChangeRowSizing,
|
|
14600
|
+
onChangeRowSizing = _ref3$onChangeRowSizi === void 0 ? null : _ref3$onChangeRowSizi,
|
|
14601
|
+
_ref3$onChangeColMode = _ref3.onChangeColMode,
|
|
14602
|
+
onChangeColMode = _ref3$onChangeColMode === void 0 ? null : _ref3$onChangeColMode,
|
|
14560
14603
|
_ref3$onMoveWidgetToC = _ref3.onMoveWidgetToCell,
|
|
14561
14604
|
onMoveWidgetToCell = _ref3$onMoveWidgetToC === void 0 ? null : _ref3$onMoveWidgetToC,
|
|
14562
14605
|
_ref3$onDropWidgetFro = _ref3.onDropWidgetFromSidebar,
|
|
@@ -14636,26 +14679,6 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
14636
14679
|
return ((_item$grid$rowModes = item.grid.rowModes) === null || _item$grid$rowModes === void 0 ? void 0 : _item$grid$rowModes[String(row)]) || "fixed";
|
|
14637
14680
|
}
|
|
14638
14681
|
|
|
14639
|
-
// Unified cycle: shrink → grow → fixed 1x → fixed 2x → fixed 3x → shrink
|
|
14640
|
-
function handleCycleRowSizing(row) {
|
|
14641
|
-
var mode = getRowMode(row);
|
|
14642
|
-
var mult = getRowMultiplier(row);
|
|
14643
|
-
if (mode === "shrink") {
|
|
14644
|
-
// shrink → grow
|
|
14645
|
-
if (onChangeRowMode) onChangeRowMode(id, row, "grow");
|
|
14646
|
-
} else if (mode === "grow") {
|
|
14647
|
-
// grow → fixed 1x
|
|
14648
|
-
if (onChangeRowMode) onChangeRowMode(id, row, "fixed");
|
|
14649
|
-
} else {
|
|
14650
|
-
// fixed: cycle 1x → 2x → 3x → shrink
|
|
14651
|
-
if (mult >= 3) {
|
|
14652
|
-
if (onChangeRowMode) onChangeRowMode(id, row, "shrink");
|
|
14653
|
-
} else {
|
|
14654
|
-
if (onChangeRowHeight) onChangeRowHeight(id, row, mult + 1);
|
|
14655
|
-
}
|
|
14656
|
-
}
|
|
14657
|
-
}
|
|
14658
|
-
|
|
14659
14682
|
// Get display label and color for current row sizing
|
|
14660
14683
|
function getRowSizingDisplay(row) {
|
|
14661
14684
|
var mode = getRowMode(row);
|
|
@@ -14677,26 +14700,224 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
14677
14700
|
};
|
|
14678
14701
|
}
|
|
14679
14702
|
|
|
14680
|
-
//
|
|
14681
|
-
|
|
14703
|
+
// Compute column template tracks respecting colModes
|
|
14704
|
+
function getColTemplate(grid) {
|
|
14705
|
+
var modes = grid.colModes || {};
|
|
14706
|
+
var tracks = [];
|
|
14707
|
+
for (var c = 1; c <= grid.cols; c++) {
|
|
14708
|
+
var mode = modes[String(c)] || "grow";
|
|
14709
|
+
switch (mode) {
|
|
14710
|
+
case "shrink":
|
|
14711
|
+
tracks.push("auto");
|
|
14712
|
+
break;
|
|
14713
|
+
case "1/4":
|
|
14714
|
+
tracks.push("25%");
|
|
14715
|
+
break;
|
|
14716
|
+
case "1/3":
|
|
14717
|
+
tracks.push("33.333%");
|
|
14718
|
+
break;
|
|
14719
|
+
case "1/2":
|
|
14720
|
+
tracks.push("50%");
|
|
14721
|
+
break;
|
|
14722
|
+
case "2/3":
|
|
14723
|
+
tracks.push("66.667%");
|
|
14724
|
+
break;
|
|
14725
|
+
default:
|
|
14726
|
+
tracks.push("minmax(0, 1fr)");
|
|
14727
|
+
break;
|
|
14728
|
+
}
|
|
14729
|
+
}
|
|
14730
|
+
return tracks.join(" ");
|
|
14731
|
+
}
|
|
14732
|
+
function hasExplicitColModes() {
|
|
14733
|
+
if (!hasGrid) return false;
|
|
14734
|
+
var modes = item.grid.colModes;
|
|
14735
|
+
return modes && Object.keys(modes).length > 0;
|
|
14736
|
+
}
|
|
14737
|
+
function getColMode(col) {
|
|
14738
|
+
var _item$grid$colModes;
|
|
14739
|
+
if (!hasGrid) return "grow";
|
|
14740
|
+
return ((_item$grid$colModes = item.grid.colModes) === null || _item$grid$colModes === void 0 ? void 0 : _item$grid$colModes[String(col)]) || "grow";
|
|
14741
|
+
}
|
|
14742
|
+
function getColSizingDisplay(col) {
|
|
14743
|
+
var mode = getColMode(col);
|
|
14744
|
+
if (mode === "shrink") return {
|
|
14745
|
+
label: "S",
|
|
14746
|
+
color: "text-amber-400",
|
|
14747
|
+
hoverBg: "hover:bg-amber-400/10"
|
|
14748
|
+
};
|
|
14749
|
+
if (mode === "1/4") return {
|
|
14750
|
+
label: "1/4",
|
|
14751
|
+
color: "text-blue-400",
|
|
14752
|
+
hoverBg: "hover:bg-blue-400/10"
|
|
14753
|
+
};
|
|
14754
|
+
if (mode === "1/3") return {
|
|
14755
|
+
label: "1/3",
|
|
14756
|
+
color: "text-blue-400",
|
|
14757
|
+
hoverBg: "hover:bg-blue-400/10"
|
|
14758
|
+
};
|
|
14759
|
+
if (mode === "1/2") return {
|
|
14760
|
+
label: "1/2",
|
|
14761
|
+
color: "text-blue-400",
|
|
14762
|
+
hoverBg: "hover:bg-blue-400/10"
|
|
14763
|
+
};
|
|
14764
|
+
if (mode === "2/3") return {
|
|
14765
|
+
label: "2/3",
|
|
14766
|
+
color: "text-blue-400",
|
|
14767
|
+
hoverBg: "hover:bg-blue-400/10"
|
|
14768
|
+
};
|
|
14769
|
+
// default: grow
|
|
14770
|
+
return {
|
|
14771
|
+
label: "G",
|
|
14772
|
+
color: "text-green-400",
|
|
14773
|
+
hoverBg: "hover:bg-green-400/10"
|
|
14774
|
+
};
|
|
14775
|
+
}
|
|
14776
|
+
|
|
14777
|
+
// Sizing popover state
|
|
14778
|
+
var _useState = React.useState(null),
|
|
14682
14779
|
_useState2 = _slicedToArray(_useState, 2),
|
|
14683
|
-
|
|
14684
|
-
|
|
14685
|
-
var
|
|
14780
|
+
sizingPopover = _useState2[0],
|
|
14781
|
+
setSizingPopover = _useState2[1]; // { type: "row"|"col", index: number }
|
|
14782
|
+
var popoverRef = React.useRef(null);
|
|
14783
|
+
var popoverTriggerRef = React.useRef(null);
|
|
14784
|
+
React.useEffect(function () {
|
|
14785
|
+
if (!sizingPopover) return;
|
|
14786
|
+
function handleClickOutside(e) {
|
|
14787
|
+
if (popoverRef.current && !popoverRef.current.contains(e.target) && popoverTriggerRef.current && !popoverTriggerRef.current.contains(e.target)) {
|
|
14788
|
+
setSizingPopover(null);
|
|
14789
|
+
}
|
|
14790
|
+
}
|
|
14791
|
+
function handleEscape(e) {
|
|
14792
|
+
if (e.key === "Escape") setSizingPopover(null);
|
|
14793
|
+
}
|
|
14794
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
14795
|
+
document.addEventListener("keydown", handleEscape);
|
|
14796
|
+
return function () {
|
|
14797
|
+
document.removeEventListener("mousedown", handleClickOutside);
|
|
14798
|
+
document.removeEventListener("keydown", handleEscape);
|
|
14799
|
+
};
|
|
14800
|
+
}, [sizingPopover]);
|
|
14801
|
+
var ROW_OPTIONS = [{
|
|
14802
|
+
mode: "shrink",
|
|
14803
|
+
label: "S"
|
|
14804
|
+
}, {
|
|
14805
|
+
mode: "grow",
|
|
14806
|
+
label: "G"
|
|
14807
|
+
}, {
|
|
14808
|
+
mode: "fixed-1",
|
|
14809
|
+
label: "1x"
|
|
14810
|
+
}, {
|
|
14811
|
+
mode: "fixed-2",
|
|
14812
|
+
label: "2x"
|
|
14813
|
+
}, {
|
|
14814
|
+
mode: "fixed-3",
|
|
14815
|
+
label: "3x"
|
|
14816
|
+
}];
|
|
14817
|
+
var COL_OPTIONS = [{
|
|
14818
|
+
mode: "grow",
|
|
14819
|
+
label: "G"
|
|
14820
|
+
}, {
|
|
14821
|
+
mode: "shrink",
|
|
14822
|
+
label: "S"
|
|
14823
|
+
}, {
|
|
14824
|
+
mode: "1/4",
|
|
14825
|
+
label: "1/4"
|
|
14826
|
+
}, {
|
|
14827
|
+
mode: "1/3",
|
|
14828
|
+
label: "1/3"
|
|
14829
|
+
}, {
|
|
14830
|
+
mode: "1/2",
|
|
14831
|
+
label: "1/2"
|
|
14832
|
+
}, {
|
|
14833
|
+
mode: "2/3",
|
|
14834
|
+
label: "2/3"
|
|
14835
|
+
}];
|
|
14836
|
+
function getActiveRowOption(row) {
|
|
14837
|
+
var mode = getRowMode(row);
|
|
14838
|
+
var mult = getRowMultiplier(row);
|
|
14839
|
+
if (mode === "shrink") return "shrink";
|
|
14840
|
+
if (mode === "grow") return "grow";
|
|
14841
|
+
return "fixed-".concat(mult);
|
|
14842
|
+
}
|
|
14843
|
+
function handleRowOptionSelect(row, optionMode) {
|
|
14844
|
+
if (onChangeRowSizing) {
|
|
14845
|
+
if (optionMode === "shrink" || optionMode === "grow") {
|
|
14846
|
+
onChangeRowSizing(id, row, optionMode);
|
|
14847
|
+
} else if (optionMode.startsWith("fixed-")) {
|
|
14848
|
+
var mult = Number(optionMode.split("-")[1]);
|
|
14849
|
+
onChangeRowSizing(id, row, "fixed", mult);
|
|
14850
|
+
}
|
|
14851
|
+
}
|
|
14852
|
+
}
|
|
14853
|
+
function handleColOptionSelect(col, optionMode) {
|
|
14854
|
+
if (onChangeColMode) onChangeColMode(id, col, optionMode);
|
|
14855
|
+
}
|
|
14856
|
+
function getOptionColor(optionMode, type) {
|
|
14857
|
+
if (type === "row") {
|
|
14858
|
+
if (optionMode === "shrink") return "text-amber-400";
|
|
14859
|
+
if (optionMode === "grow") return "text-green-400";
|
|
14860
|
+
return "text-blue-400";
|
|
14861
|
+
}
|
|
14862
|
+
// col
|
|
14863
|
+
if (optionMode === "grow") return "text-green-400";
|
|
14864
|
+
if (optionMode === "shrink") return "text-amber-400";
|
|
14865
|
+
return "text-blue-400";
|
|
14866
|
+
}
|
|
14867
|
+
function renderSizingPopover(type, index, triggerEl) {
|
|
14868
|
+
if (!sizingPopover || sizingPopover.type !== type || sizingPopover.index !== index) return null;
|
|
14869
|
+
var options = type === "row" ? ROW_OPTIONS : COL_OPTIONS;
|
|
14870
|
+
var activeMode = type === "row" ? getActiveRowOption(index) : getColMode(index);
|
|
14871
|
+
var isRow = type === "row";
|
|
14872
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
14873
|
+
ref: popoverRef,
|
|
14874
|
+
className: "absolute z-50 bg-gray-800 border border-gray-600 rounded-lg shadow-xl p-1 flex flex-row gap-0.5",
|
|
14875
|
+
style: isRow ? {
|
|
14876
|
+
left: "100%",
|
|
14877
|
+
top: "50%",
|
|
14878
|
+
transform: "translateY(-50%)",
|
|
14879
|
+
marginLeft: 4
|
|
14880
|
+
} : {
|
|
14881
|
+
top: "100%",
|
|
14882
|
+
left: "50%",
|
|
14883
|
+
transform: "translateX(-50%)",
|
|
14884
|
+
marginTop: 4
|
|
14885
|
+
},
|
|
14886
|
+
children: options.map(function (opt) {
|
|
14887
|
+
var isActive = opt.mode === activeMode;
|
|
14888
|
+
var color = getOptionColor(opt.mode, type);
|
|
14889
|
+
return /*#__PURE__*/jsxRuntime.jsx("button", {
|
|
14890
|
+
className: "px-1.5 py-0.5 rounded text-[10px] font-mono font-bold transition-all whitespace-nowrap ".concat(isActive ? "".concat(color, " bg-white/20") : "text-gray-400 hover:text-gray-200 hover:bg-white/10"),
|
|
14891
|
+
onClick: function onClick() {
|
|
14892
|
+
if (type === "row") handleRowOptionSelect(index, opt.mode);else handleColOptionSelect(index, opt.mode);
|
|
14893
|
+
},
|
|
14894
|
+
title: opt.label,
|
|
14895
|
+
children: opt.label
|
|
14896
|
+
}, opt.mode);
|
|
14897
|
+
})
|
|
14898
|
+
});
|
|
14899
|
+
}
|
|
14900
|
+
|
|
14901
|
+
// Modal state for grid operations
|
|
14902
|
+
var _useState3 = React.useState(false),
|
|
14686
14903
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
14687
|
-
|
|
14688
|
-
|
|
14689
|
-
var _useState5 = React.useState(
|
|
14904
|
+
mergeModalOpen = _useState4[0],
|
|
14905
|
+
setMergeModalOpen = _useState4[1];
|
|
14906
|
+
var _useState5 = React.useState([]),
|
|
14690
14907
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
14691
|
-
|
|
14692
|
-
|
|
14693
|
-
var _useState7 = React.useState(
|
|
14908
|
+
selectedCellsForMerge = _useState6[0],
|
|
14909
|
+
setSelectedCellsForMerge = _useState6[1];
|
|
14910
|
+
var _useState7 = React.useState(null),
|
|
14911
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
14912
|
+
contextMenuCell = _useState8[0],
|
|
14913
|
+
setContextMenuCell = _useState8[1];
|
|
14914
|
+
var _useState9 = React.useState({
|
|
14694
14915
|
x: 0,
|
|
14695
14916
|
y: 0
|
|
14696
14917
|
}),
|
|
14697
|
-
|
|
14698
|
-
contextMenuPosition =
|
|
14699
|
-
setContextMenuPosition =
|
|
14918
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
14919
|
+
contextMenuPosition = _useState0[0],
|
|
14920
|
+
setContextMenuPosition = _useState0[1];
|
|
14700
14921
|
|
|
14701
14922
|
// Grid operation handlers
|
|
14702
14923
|
function handleInstantSplit(cellNumber, direction) {
|
|
@@ -14982,16 +15203,20 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
14982
15203
|
label = _getRowSizingDisplay.label,
|
|
14983
15204
|
color = _getRowSizingDisplay.color,
|
|
14984
15205
|
hoverBg = _getRowSizingDisplay.hoverBg;
|
|
14985
|
-
|
|
14986
|
-
|
|
14987
|
-
|
|
14988
|
-
|
|
14989
|
-
|
|
14990
|
-
|
|
14991
|
-
|
|
14992
|
-
|
|
14993
|
-
|
|
14994
|
-
|
|
15206
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
15207
|
+
className: "relative",
|
|
15208
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("button", {
|
|
15209
|
+
ref: (sizingPopover === null || sizingPopover === void 0 ? void 0 : sizingPopover.type) === "row" && (sizingPopover === null || sizingPopover === void 0 ? void 0 : sizingPopover.index) === row ? popoverTriggerRef : undefined,
|
|
15210
|
+
className: "w-5 h-5 flex items-center justify-center rounded text-[10px] ".concat(color, " ").concat((sizingPopover === null || sizingPopover === void 0 ? void 0 : sizingPopover.type) === "row" && (sizingPopover === null || sizingPopover === void 0 ? void 0 : sizingPopover.index) === row ? "opacity-100" : "opacity-40", " hover:opacity-100 ").concat(hoverBg, " transition-all font-mono font-bold select-none"),
|
|
15211
|
+
onClick: function onClick() {
|
|
15212
|
+
return setSizingPopover((sizingPopover === null || sizingPopover === void 0 ? void 0 : sizingPopover.type) === "row" && (sizingPopover === null || sizingPopover === void 0 ? void 0 : sizingPopover.index) === row ? null : {
|
|
15213
|
+
type: "row",
|
|
15214
|
+
index: row
|
|
15215
|
+
});
|
|
15216
|
+
},
|
|
15217
|
+
title: "Row sizing (click to change)",
|
|
15218
|
+
children: label
|
|
15219
|
+
}), renderSizingPopover("row", row)]
|
|
14995
15220
|
});
|
|
14996
15221
|
}(), /*#__PURE__*/jsxRuntime.jsx("button", {
|
|
14997
15222
|
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",
|
|
@@ -15074,7 +15299,27 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
15074
15299
|
}), /*#__PURE__*/jsxRuntime.jsxs("span", {
|
|
15075
15300
|
className: "text-[11px] text-gray-400 group-hover:text-gray-200 select-none font-mono font-medium",
|
|
15076
15301
|
children: ["C", col]
|
|
15077
|
-
}),
|
|
15302
|
+
}), function () {
|
|
15303
|
+
var _getColSizingDisplay = getColSizingDisplay(col),
|
|
15304
|
+
label = _getColSizingDisplay.label,
|
|
15305
|
+
color = _getColSizingDisplay.color,
|
|
15306
|
+
hoverBg = _getColSizingDisplay.hoverBg;
|
|
15307
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
15308
|
+
className: "relative",
|
|
15309
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("button", {
|
|
15310
|
+
ref: (sizingPopover === null || sizingPopover === void 0 ? void 0 : sizingPopover.type) === "col" && (sizingPopover === null || sizingPopover === void 0 ? void 0 : sizingPopover.index) === col ? popoverTriggerRef : undefined,
|
|
15311
|
+
className: "w-5 h-5 flex items-center justify-center rounded text-[10px] ".concat(color, " ").concat((sizingPopover === null || sizingPopover === void 0 ? void 0 : sizingPopover.type) === "col" && (sizingPopover === null || sizingPopover === void 0 ? void 0 : sizingPopover.index) === col ? "opacity-100" : "opacity-40", " hover:opacity-100 ").concat(hoverBg, " transition-all font-mono font-bold select-none"),
|
|
15312
|
+
onClick: function onClick() {
|
|
15313
|
+
return setSizingPopover((sizingPopover === null || sizingPopover === void 0 ? void 0 : sizingPopover.type) === "col" && (sizingPopover === null || sizingPopover === void 0 ? void 0 : sizingPopover.index) === col ? null : {
|
|
15314
|
+
type: "col",
|
|
15315
|
+
index: col
|
|
15316
|
+
});
|
|
15317
|
+
},
|
|
15318
|
+
title: "Column sizing (click to change)",
|
|
15319
|
+
children: label
|
|
15320
|
+
}), renderSizingPopover("col", col)]
|
|
15321
|
+
});
|
|
15322
|
+
}(), /*#__PURE__*/jsxRuntime.jsx("button", {
|
|
15078
15323
|
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",
|
|
15079
15324
|
onClick: function onClick() {
|
|
15080
15325
|
return handleAddColumn(col);
|
|
@@ -15112,7 +15357,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
15112
15357
|
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
15113
15358
|
className: "grid flex-1",
|
|
15114
15359
|
style: {
|
|
15115
|
-
gridTemplateColumns: "repeat(".concat(cols, ", 1fr)"),
|
|
15360
|
+
gridTemplateColumns: hasExplicitColModes() ? getColTemplate(item.grid) : "repeat(".concat(cols, ", 1fr)"),
|
|
15116
15361
|
gap: GRID_GAP
|
|
15117
15362
|
},
|
|
15118
15363
|
children: colItems
|
|
@@ -15455,7 +15700,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
15455
15700
|
className: "grid flex-1 min-h-24 p-4 gap-5",
|
|
15456
15701
|
style: {
|
|
15457
15702
|
gridTemplateRows: getRowTemplate(item.grid),
|
|
15458
|
-
gridTemplateColumns: "repeat(".concat(item.grid.cols, ", 1fr)")
|
|
15703
|
+
gridTemplateColumns: hasExplicitColModes() ? getColTemplate(item.grid) : "repeat(".concat(item.grid.cols, ", 1fr)")
|
|
15459
15704
|
},
|
|
15460
15705
|
children: renderGridCells()
|
|
15461
15706
|
})]
|
|
@@ -15469,7 +15714,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
15469
15714
|
className: "grid flex-1 p-4 gap-5",
|
|
15470
15715
|
style: {
|
|
15471
15716
|
gridTemplateRows: hasExplicitRowModes() ? getRowTemplate(item.grid) : "repeat(".concat(item.grid.rows, ", minmax(0, 1fr))"),
|
|
15472
|
-
gridTemplateColumns: "repeat(".concat(item.grid.cols, ", 1fr)"),
|
|
15717
|
+
gridTemplateColumns: hasExplicitColModes() ? getColTemplate(item.grid) : "repeat(".concat(item.grid.cols, ", 1fr)"),
|
|
15473
15718
|
overflow: "hidden"
|
|
15474
15719
|
},
|
|
15475
15720
|
children: renderGridCells()
|
|
@@ -15569,7 +15814,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
15569
15814
|
className: "grid w-full min-h-24 p-3 ".concat(item.grid.gap || "gap-2"),
|
|
15570
15815
|
style: {
|
|
15571
15816
|
gridTemplateRows: getRowTemplate(item.grid),
|
|
15572
|
-
gridTemplateColumns: "repeat(".concat(item.grid.cols, ", 1fr)"),
|
|
15817
|
+
gridTemplateColumns: hasExplicitColModes() ? getColTemplate(item.grid) : "repeat(".concat(item.grid.cols, ", 1fr)"),
|
|
15573
15818
|
overflow: "auto"
|
|
15574
15819
|
},
|
|
15575
15820
|
children: renderGridCells()
|
|
@@ -15580,7 +15825,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
15580
15825
|
className: "absolute inset-0 grid p-3 ".concat(item.grid.gap || "gap-2"),
|
|
15581
15826
|
style: {
|
|
15582
15827
|
gridTemplateRows: hasExplicitRowModes() ? getRowTemplate(item.grid) : "repeat(".concat(item.grid.rows, ", minmax(0, 1fr))"),
|
|
15583
|
-
gridTemplateColumns: "repeat(".concat(item.grid.cols, ", 1fr)"),
|
|
15828
|
+
gridTemplateColumns: hasExplicitColModes() ? getColTemplate(item.grid) : "repeat(".concat(item.grid.cols, ", 1fr)"),
|
|
15584
15829
|
overflow: "hidden"
|
|
15585
15830
|
},
|
|
15586
15831
|
children: renderGridCells()
|
|
@@ -15674,6 +15919,10 @@ var _renderLayout = function renderLayout(_ref) {
|
|
|
15674
15919
|
onChangeRowHeight = _ref$onChangeRowHeigh === void 0 ? null : _ref$onChangeRowHeigh,
|
|
15675
15920
|
_ref$onChangeRowMode = _ref.onChangeRowMode,
|
|
15676
15921
|
onChangeRowMode = _ref$onChangeRowMode === void 0 ? null : _ref$onChangeRowMode,
|
|
15922
|
+
_ref$onChangeRowSizin = _ref.onChangeRowSizing,
|
|
15923
|
+
onChangeRowSizing = _ref$onChangeRowSizin === void 0 ? null : _ref$onChangeRowSizin,
|
|
15924
|
+
_ref$onChangeColMode = _ref.onChangeColMode,
|
|
15925
|
+
onChangeColMode = _ref$onChangeColMode === void 0 ? null : _ref$onChangeColMode,
|
|
15677
15926
|
_ref$onMoveWidgetToCe = _ref.onMoveWidgetToCell,
|
|
15678
15927
|
onMoveWidgetToCell = _ref$onMoveWidgetToCe === void 0 ? null : _ref$onMoveWidgetToCe,
|
|
15679
15928
|
_ref$onDropWidgetFrom = _ref.onDropWidgetFromSidebar,
|
|
@@ -15744,6 +15993,8 @@ var _renderLayout = function renderLayout(_ref) {
|
|
|
15744
15993
|
onDeleteGridColumn: onDeleteGridColumn,
|
|
15745
15994
|
onChangeRowHeight: onChangeRowHeight,
|
|
15746
15995
|
onChangeRowMode: onChangeRowMode,
|
|
15996
|
+
onChangeRowSizing: onChangeRowSizing,
|
|
15997
|
+
onChangeColMode: onChangeColMode,
|
|
15747
15998
|
onMoveWidgetToCell: onMoveWidgetToCell,
|
|
15748
15999
|
onDropWidgetFromSidebar: onDropWidgetFromSidebar,
|
|
15749
16000
|
onWidgetPopout: onWidgetPopout,
|
|
@@ -15782,6 +16033,8 @@ var _renderLayout = function renderLayout(_ref) {
|
|
|
15782
16033
|
onDeleteGridColumn: onDeleteGridColumn,
|
|
15783
16034
|
onChangeRowHeight: onChangeRowHeight,
|
|
15784
16035
|
onChangeRowMode: onChangeRowMode,
|
|
16036
|
+
onChangeRowSizing: onChangeRowSizing,
|
|
16037
|
+
onChangeColMode: onChangeColMode,
|
|
15785
16038
|
onMoveWidgetToCell: onMoveWidgetToCell,
|
|
15786
16039
|
onDropWidgetFromSidebar: onDropWidgetFromSidebar,
|
|
15787
16040
|
onWidgetPopout: onWidgetPopout
|
|
@@ -19283,6 +19536,40 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
19283
19536
|
}
|
|
19284
19537
|
}
|
|
19285
19538
|
|
|
19539
|
+
/**
|
|
19540
|
+
* Change the sizing mode for a column
|
|
19541
|
+
* @param {String} itemId The id of the grid container
|
|
19542
|
+
* @param {Number} colNumber The column number (1-indexed)
|
|
19543
|
+
* @param {String} mode The sizing mode: "grow" (default), "shrink", "1/4", "1/3", "1/2", "2/3"
|
|
19544
|
+
* @returns {Object} Updated grid or null on error
|
|
19545
|
+
*/
|
|
19546
|
+
}, {
|
|
19547
|
+
key: "changeColMode",
|
|
19548
|
+
value: function changeColMode(itemId, colNumber, mode) {
|
|
19549
|
+
try {
|
|
19550
|
+
var gridContainer = this.getComponentById(itemId);
|
|
19551
|
+
if (!gridContainer || !gridContainer.grid) {
|
|
19552
|
+
return null;
|
|
19553
|
+
}
|
|
19554
|
+
var grid = gridContainer.grid;
|
|
19555
|
+
grid.colModes = grid.colModes || {};
|
|
19556
|
+
if (mode === "grow" || !mode) {
|
|
19557
|
+
delete grid.colModes[String(colNumber)];
|
|
19558
|
+
} else {
|
|
19559
|
+
grid.colModes[String(colNumber)] = mode;
|
|
19560
|
+
}
|
|
19561
|
+
|
|
19562
|
+
// Clean up empty object
|
|
19563
|
+
if (Object.keys(grid.colModes).length === 0) {
|
|
19564
|
+
delete grid.colModes;
|
|
19565
|
+
}
|
|
19566
|
+
this.updateLayoutItem(gridContainer);
|
|
19567
|
+
return grid;
|
|
19568
|
+
} catch (e) {
|
|
19569
|
+
return null;
|
|
19570
|
+
}
|
|
19571
|
+
}
|
|
19572
|
+
|
|
19286
19573
|
/**
|
|
19287
19574
|
* Add a new column to the grid
|
|
19288
19575
|
* @param {Number} itemId The id of the grid container
|
|
@@ -19321,6 +19608,19 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
19321
19608
|
hide: false
|
|
19322
19609
|
};
|
|
19323
19610
|
}
|
|
19611
|
+
|
|
19612
|
+
// Shift colModes keys right (columns after insertion point move +1)
|
|
19613
|
+
if (gridContainer.grid.colModes) {
|
|
19614
|
+
var shifted = {};
|
|
19615
|
+
for (var _i13 = 0, _Object$entries6 = Object.entries(gridContainer.grid.colModes); _i13 < _Object$entries6.length; _i13++) {
|
|
19616
|
+
var _Object$entries6$_i = _slicedToArray(_Object$entries6[_i13], 2),
|
|
19617
|
+
key = _Object$entries6$_i[0],
|
|
19618
|
+
mode = _Object$entries6$_i[1];
|
|
19619
|
+
var colNum = Number(key);
|
|
19620
|
+
shifted[String(colNum >= newColNumber ? colNum + 1 : colNum)] = mode;
|
|
19621
|
+
}
|
|
19622
|
+
gridContainer.grid.colModes = Object.keys(shifted).length > 0 ? shifted : undefined;
|
|
19623
|
+
}
|
|
19324
19624
|
this._normalizeGrid(gridContainer.grid);
|
|
19325
19625
|
this.updateLayoutItem(gridContainer);
|
|
19326
19626
|
return gridContainer.grid;
|
|
@@ -19368,6 +19668,20 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
19368
19668
|
}
|
|
19369
19669
|
}
|
|
19370
19670
|
gridContainer.grid.cols -= 1;
|
|
19671
|
+
|
|
19672
|
+
// Shift colModes keys left and remove the deleted column's entry
|
|
19673
|
+
if (gridContainer.grid.colModes) {
|
|
19674
|
+
var shifted = {};
|
|
19675
|
+
for (var _i14 = 0, _Object$entries7 = Object.entries(gridContainer.grid.colModes); _i14 < _Object$entries7.length; _i14++) {
|
|
19676
|
+
var _Object$entries7$_i = _slicedToArray(_Object$entries7[_i14], 2),
|
|
19677
|
+
key = _Object$entries7$_i[0],
|
|
19678
|
+
mode = _Object$entries7$_i[1];
|
|
19679
|
+
var colNum = Number(key);
|
|
19680
|
+
if (colNum === colNumber) continue;
|
|
19681
|
+
shifted[String(colNum > colNumber ? colNum - 1 : colNum)] = mode;
|
|
19682
|
+
}
|
|
19683
|
+
gridContainer.grid.colModes = Object.keys(shifted).length > 0 ? shifted : undefined;
|
|
19684
|
+
}
|
|
19371
19685
|
this._normalizeGrid(gridContainer.grid);
|
|
19372
19686
|
this.updateLayoutItem(gridContainer);
|
|
19373
19687
|
return gridContainer.grid;
|