@trops/dash-core 0.1.405 → 0.1.406
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 +50 -9
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +50 -9
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -55726,12 +55726,53 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
55726
55726
|
React.useEffect(function () {
|
|
55727
55727
|
if (popout) return;
|
|
55728
55728
|
var handler = function handler(e) {
|
|
55729
|
+
var _sidebarWorkspaceRef$;
|
|
55729
55730
|
var detail = (e === null || e === void 0 ? void 0 : e.detail) || {};
|
|
55730
55731
|
if (!workspaceSelected) return;
|
|
55731
|
-
|
|
55732
|
+
|
|
55733
|
+
// CRITICAL: LayoutBuilder edits (deletes, same-container moves,
|
|
55734
|
+
// new widget drops) live in each LayoutBuilder's internal state
|
|
55735
|
+
// and propagate upward only via refs — they never write back
|
|
55736
|
+
// into `workspaceSelected`. So we must overlay the LIVE refs
|
|
55737
|
+
// before applying the cross-container move, otherwise we'd base
|
|
55738
|
+
// the move on stale state and clobber the user's unsaved edits
|
|
55739
|
+
// (they'd see deleted widgets reappear after a cross-container
|
|
55740
|
+
// drop). This mirrors `handleClickSaveWorkspace`'s own logic.
|
|
55741
|
+
var liveWorkspace = JSON.parse(JSON.stringify(workspaceSelected));
|
|
55742
|
+
liveWorkspace.pages = (liveWorkspace.pages || []).map(function (page) {
|
|
55743
|
+
var _pageRef$current;
|
|
55744
|
+
var pageRef = pageRefsMap.current[page.id];
|
|
55745
|
+
var liveLayout = pageRef === null || pageRef === void 0 || (_pageRef$current = pageRef.current) === null || _pageRef$current === void 0 ? void 0 : _pageRef$current.layout;
|
|
55746
|
+
return liveLayout ? _objectSpread$6(_objectSpread$6({}, page), {}, {
|
|
55747
|
+
layout: liveLayout
|
|
55748
|
+
}) : page;
|
|
55749
|
+
});
|
|
55750
|
+
if ((_sidebarWorkspaceRef$ = sidebarWorkspaceRef.current) !== null && _sidebarWorkspaceRef$ !== void 0 && _sidebarWorkspaceRef$.layout && Array.isArray(sidebarWorkspaceRef.current.layout)) {
|
|
55751
|
+
liveWorkspace.sidebarLayout = sidebarWorkspaceRef.current.layout;
|
|
55752
|
+
}
|
|
55753
|
+
var updated = moveWidgetAcrossContainers(liveWorkspace, detail.sourceGridContainerId, detail.sourceCellNumber, detail.targetGridContainerId, detail.targetCellNumber);
|
|
55732
55754
|
if (!updated) {
|
|
55733
55755
|
return;
|
|
55734
55756
|
}
|
|
55757
|
+
|
|
55758
|
+
// Sync the refs so when LayoutBuilder's useEffect re-seeds
|
|
55759
|
+
// currentWorkspace from the new workspace prop below, and the
|
|
55760
|
+
// refs are also updated for the next save/cross-move.
|
|
55761
|
+
(updated.pages || []).forEach(function (page) {
|
|
55762
|
+
if (!pageRefsMap.current[page.id]) {
|
|
55763
|
+
pageRefsMap.current[page.id] = {
|
|
55764
|
+
current: null
|
|
55765
|
+
};
|
|
55766
|
+
}
|
|
55767
|
+
pageRefsMap.current[page.id].current = {
|
|
55768
|
+
layout: page.layout
|
|
55769
|
+
};
|
|
55770
|
+
});
|
|
55771
|
+
if (sidebarWorkspaceRef.current) {
|
|
55772
|
+
sidebarWorkspaceRef.current = _objectSpread$6(_objectSpread$6({}, sidebarWorkspaceRef.current || {}), {}, {
|
|
55773
|
+
layout: updated.sidebarLayout || []
|
|
55774
|
+
});
|
|
55775
|
+
}
|
|
55735
55776
|
updateTabWorkspace(updated);
|
|
55736
55777
|
if (dashApi && credentials !== null && credentials !== void 0 && credentials.appId) {
|
|
55737
55778
|
try {
|
|
@@ -56263,9 +56304,9 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
56263
56304
|
// adding a new page (especially relevant when going from 1 → 2
|
|
56264
56305
|
// pages where the lone page's tab is hidden but its grid is live).
|
|
56265
56306
|
var existingPages = workspacePages.map(function (p) {
|
|
56266
|
-
var _pageRef$
|
|
56307
|
+
var _pageRef$current2;
|
|
56267
56308
|
var pageRef = pageRefsMap.current[p.id];
|
|
56268
|
-
var liveLayout = pageRef === null || pageRef === void 0 || (_pageRef$
|
|
56309
|
+
var liveLayout = pageRef === null || pageRef === void 0 || (_pageRef$current2 = pageRef.current) === null || _pageRef$current2 === void 0 ? void 0 : _pageRef$current2.layout;
|
|
56269
56310
|
return liveLayout ? _objectSpread$6(_objectSpread$6({}, p), {}, {
|
|
56270
56311
|
layout: liveLayout
|
|
56271
56312
|
}) : p;
|
|
@@ -56502,11 +56543,11 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
56502
56543
|
|
|
56503
56544
|
// Derive scrollable state from the active page's root layout item
|
|
56504
56545
|
function getRootScrollable() {
|
|
56505
|
-
var _pageRef$
|
|
56546
|
+
var _pageRef$current3, _ws$pages;
|
|
56506
56547
|
var ws = currentWorkspaceRef.current || workspaceSelected;
|
|
56507
56548
|
if (!ws) return false;
|
|
56508
56549
|
var pageRef = pageRefsMap.current[currentActivePageId];
|
|
56509
|
-
var layout = (pageRef === null || pageRef === void 0 || (_pageRef$
|
|
56550
|
+
var layout = (pageRef === null || pageRef === void 0 || (_pageRef$current3 = pageRef.current) === null || _pageRef$current3 === void 0 ? void 0 : _pageRef$current3.layout) || ((_ws$pages = ws.pages) === null || _ws$pages === void 0 || (_ws$pages = _ws$pages.find(function (p) {
|
|
56510
56551
|
return p.id === currentActivePageId;
|
|
56511
56552
|
})) === null || _ws$pages === void 0 ? void 0 : _ws$pages.layout);
|
|
56512
56553
|
if (!layout) return false;
|
|
@@ -56517,15 +56558,15 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
56517
56558
|
}
|
|
56518
56559
|
function handleClickSaveWorkspace() {
|
|
56519
56560
|
try {
|
|
56520
|
-
var _sidebarWorkspaceRef
|
|
56561
|
+
var _sidebarWorkspaceRef$2;
|
|
56521
56562
|
// we have to remove the widgetConfig which contains the component
|
|
56522
56563
|
// sanitize the workspace layout remove widgetConfig items
|
|
56523
56564
|
// Gather latest layout from each page's LayoutBuilder ref
|
|
56524
56565
|
var workspaceToSave = DashReact.deepCopy(workspaceSelected);
|
|
56525
56566
|
workspaceToSave.pages = (workspaceToSave.pages || []).map(function (page) {
|
|
56526
|
-
var _pageRef$
|
|
56567
|
+
var _pageRef$current4;
|
|
56527
56568
|
var pageRef = pageRefsMap.current[page.id];
|
|
56528
|
-
var latestLayout = (pageRef === null || pageRef === void 0 || (_pageRef$
|
|
56569
|
+
var latestLayout = (pageRef === null || pageRef === void 0 || (_pageRef$current4 = pageRef.current) === null || _pageRef$current4 === void 0 ? void 0 : _pageRef$current4.layout) || page.layout || [];
|
|
56529
56570
|
return _objectSpread$6(_objectSpread$6({}, page), {}, {
|
|
56530
56571
|
layout: latestLayout.map(function (item) {
|
|
56531
56572
|
var copy = _objectSpread$6({}, item);
|
|
@@ -56544,7 +56585,7 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
56544
56585
|
}
|
|
56545
56586
|
|
|
56546
56587
|
// Gather sidebar layout from its LayoutBuilder ref
|
|
56547
|
-
if ((_sidebarWorkspaceRef$ = sidebarWorkspaceRef.current) !== null && _sidebarWorkspaceRef$ !== void 0 && _sidebarWorkspaceRef
|
|
56588
|
+
if ((_sidebarWorkspaceRef$2 = sidebarWorkspaceRef.current) !== null && _sidebarWorkspaceRef$2 !== void 0 && _sidebarWorkspaceRef$2.layout) {
|
|
56548
56589
|
workspaceToSave.sidebarLayout = sidebarWorkspaceRef.current.layout.map(function (item) {
|
|
56549
56590
|
var copy = _objectSpread$6({}, item);
|
|
56550
56591
|
delete copy.widgetConfig;
|