@trops/dash-core 0.1.421 → 0.1.425
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/electron/index.js +188 -28
- package/dist/electron/index.js.map +1 -1
- package/dist/index.esm.js +580 -183
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +645 -230
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -2,7 +2,7 @@ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
|
2
2
|
import _typeof from '@babel/runtime/helpers/typeof';
|
|
3
3
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
4
4
|
import * as DashReact from '@trops/dash-react';
|
|
5
|
-
import { isObject, ThemeContext, deepCopy, MainSection, getUUID, getStylesForItem, themeObjects, Heading, SearchInput, ButtonIcon, SubHeading3, InputText, Button, FontAwesomeIcon, Tag, Modal, Paragraph, Sidebar, Panel, Stepper, Tag2, Tag3, Card2, Card3, Heading3, MenuItem3, FormLabel, SelectMenu, Switch, SelectInput,
|
|
5
|
+
import { isObject, ThemeContext, deepCopy, MainSection, getUUID, getStylesForItem, themeObjects, Heading, SearchInput, ButtonIcon, SubHeading3, InputText, Button, FontAwesomeIcon, Tag, Modal, Paragraph, Sidebar, Panel, Stepper, Tag2, Tag3, Card2, Card3, Heading3, MenuItem3, FormLabel, SelectMenu, Switch, SelectInput, CodeEditorVS, SettingsModal, SubHeading2, tailwindHeightFractions, Menu3, Panel3, ButtonIcon2, DropdownPanel, MenuItem2, DragComponent, ConfirmationModal, DropComponent, getStyleName, capitalizeFirstLetter, colorTypes, getCSSStyleForClassname, Panel2, Heading2, SubHeading, Paragraph2, Paragraph3, Button2, Button3, MenuItem, ButtonIcon3, DashPanel, colorNames, shades, themeVariants, Tabs3, DataList, Checkbox, StatCard, Card, Tabs, Accordion, Alert, Toast, ProgressBar, Toggle, Breadcrumbs, Tabs2, Accordion2, Alert2, Toast2, ProgressBar2, Toggle2, Breadcrumbs2, Accordion3, Alert3, Toast3, ProgressBar3, Toggle3, Breadcrumbs3, ThemeFromUrlPane, TextArea, CodeEditorInline, Icon2, AlgoliaSearchBox, CommandPalette, useSidebar, EmptyState, Navbar, withRouter, Menu as Menu$1 } from '@trops/dash-react';
|
|
6
6
|
export * from '@trops/dash-react';
|
|
7
7
|
export { ThemeContext } from '@trops/dash-react';
|
|
8
8
|
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
@@ -32,8 +32,8 @@ import { InstantSearch, Hits } from 'react-instantsearch-hooks-web';
|
|
|
32
32
|
import { Link } from 'react-router-dom';
|
|
33
33
|
import { marked } from 'marked';
|
|
34
34
|
|
|
35
|
-
function ownKeys$
|
|
36
|
-
function _objectSpread$
|
|
35
|
+
function ownKeys$_(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
36
|
+
function _objectSpread$_(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$_(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$_(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
37
37
|
var event = {
|
|
38
38
|
list: new Map(),
|
|
39
39
|
// Map(1) { '<widget-UUID>' => { 'CustomSearchbar[10].searchQueryChanged': [] } }
|
|
@@ -95,7 +95,7 @@ var event = {
|
|
|
95
95
|
uuid: subscriber["uuid"]
|
|
96
96
|
};
|
|
97
97
|
if ("action" in subscriber && subscriber.action !== undefined) {
|
|
98
|
-
subscriber["action"](_objectSpread$
|
|
98
|
+
subscriber["action"](_objectSpread$_({}, objectToSend));
|
|
99
99
|
}
|
|
100
100
|
});
|
|
101
101
|
}
|
|
@@ -2873,8 +2873,8 @@ var DashboardWrapper = function DashboardWrapper(_ref) {
|
|
|
2873
2873
|
});
|
|
2874
2874
|
};
|
|
2875
2875
|
|
|
2876
|
-
function ownKeys$
|
|
2877
|
-
function _objectSpread$
|
|
2876
|
+
function ownKeys$Z(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
2877
|
+
function _objectSpread$Z(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$Z(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$Z(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
2878
2878
|
function ThemeBroadcast(_ref) {
|
|
2879
2879
|
var ctx = _ref.ctx;
|
|
2880
2880
|
useEffect(function () {
|
|
@@ -2907,7 +2907,7 @@ var DashboardThemeProvider = function DashboardThemeProvider(_ref2) {
|
|
|
2907
2907
|
var dashboardTheme = themes[themeKey];
|
|
2908
2908
|
var themeValue = dashboardTheme ? dashboardTheme[themeVariant] || null : null;
|
|
2909
2909
|
if (!themeValue) return null;
|
|
2910
|
-
return _objectSpread$
|
|
2910
|
+
return _objectSpread$Z(_objectSpread$Z({}, parentContext), {}, {
|
|
2911
2911
|
currentTheme: themeValue,
|
|
2912
2912
|
currentThemeKey: themeKey,
|
|
2913
2913
|
theme: themeValue,
|
|
@@ -2934,8 +2934,8 @@ var DashboardThemeProvider = function DashboardThemeProvider(_ref2) {
|
|
|
2934
2934
|
});
|
|
2935
2935
|
};
|
|
2936
2936
|
|
|
2937
|
-
function ownKeys$
|
|
2938
|
-
function _objectSpread$
|
|
2937
|
+
function ownKeys$Y(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
2938
|
+
function _objectSpread$Y(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$Y(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$Y(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
2939
2939
|
var AppThemeScope = function AppThemeScope(_ref) {
|
|
2940
2940
|
var children = _ref.children;
|
|
2941
2941
|
var ctx = useContext(ThemeContext);
|
|
@@ -2943,7 +2943,7 @@ var AppThemeScope = function AppThemeScope(_ref) {
|
|
|
2943
2943
|
children: children
|
|
2944
2944
|
});
|
|
2945
2945
|
return /*#__PURE__*/jsx(ThemeContext.Provider, {
|
|
2946
|
-
value: _objectSpread$
|
|
2946
|
+
value: _objectSpread$Y(_objectSpread$Y({}, ctx), {}, {
|
|
2947
2947
|
currentTheme: ctx.appTheme,
|
|
2948
2948
|
currentThemeKey: ctx.appThemeKey,
|
|
2949
2949
|
theme: ctx.appTheme,
|
|
@@ -3055,8 +3055,8 @@ var LayoutContainer = function LayoutContainer(_ref) {
|
|
|
3055
3055
|
});
|
|
3056
3056
|
};
|
|
3057
3057
|
|
|
3058
|
-
function ownKeys$
|
|
3059
|
-
function _objectSpread$
|
|
3058
|
+
function ownKeys$X(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3059
|
+
function _objectSpread$X(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$X(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$X(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
3060
3060
|
function _createForOfIteratorHelper$t(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$t(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
3061
3061
|
function _unsupportedIterableToArray$t(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$t(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$t(r, a) : void 0; } }
|
|
3062
3062
|
function _arrayLikeToArray$t(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
@@ -3338,7 +3338,7 @@ function createLayoutFromTemplate(template) {
|
|
|
3338
3338
|
try {
|
|
3339
3339
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
3340
3340
|
var cell = _step.value;
|
|
3341
|
-
grid[cell.key] = _objectSpread$
|
|
3341
|
+
grid[cell.key] = _objectSpread$X({
|
|
3342
3342
|
component: null,
|
|
3343
3343
|
hide: cell.hide || false
|
|
3344
3344
|
}, cell.span ? {
|
|
@@ -4267,8 +4267,8 @@ var RegistryAuthModal = function RegistryAuthModal(_ref) {
|
|
|
4267
4267
|
function _createForOfIteratorHelper$s(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$s(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
4268
4268
|
function _unsupportedIterableToArray$s(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$s(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$s(r, a) : void 0; } }
|
|
4269
4269
|
function _arrayLikeToArray$s(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
4270
|
-
function ownKeys$
|
|
4271
|
-
function _objectSpread$
|
|
4270
|
+
function ownKeys$W(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
4271
|
+
function _objectSpread$W(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$W(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$W(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4272
4272
|
var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
|
|
4273
4273
|
var dashboardPackage = _ref.dashboardPackage,
|
|
4274
4274
|
appId = _ref.appId,
|
|
@@ -4384,7 +4384,7 @@ var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
|
|
|
4384
4384
|
setProgressWidgets(function (prev) {
|
|
4385
4385
|
var next = _toConsumableArray(prev);
|
|
4386
4386
|
if (data.index >= 0 && data.index < next.length) {
|
|
4387
|
-
next[data.index] = _objectSpread$
|
|
4387
|
+
next[data.index] = _objectSpread$W(_objectSpread$W({}, next[data.index]), {}, {
|
|
4388
4388
|
status: data.status,
|
|
4389
4389
|
error: data.error || null
|
|
4390
4390
|
});
|
|
@@ -4480,7 +4480,7 @@ var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
|
|
|
4480
4480
|
var raw = preview === null || preview === void 0 ? void 0 : preview.compatibility;
|
|
4481
4481
|
if (!raw) return raw;
|
|
4482
4482
|
var cMap = ComponentManager.componentMap();
|
|
4483
|
-
var augWidgets = _objectSpread$
|
|
4483
|
+
var augWidgets = _objectSpread$W({}, raw.widgets);
|
|
4484
4484
|
var fixedCount = 0;
|
|
4485
4485
|
var _loop = function _loop() {
|
|
4486
4486
|
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
@@ -5063,8 +5063,8 @@ var DiscoverDashboardsDetail = function DiscoverDashboardsDetail(_ref) {
|
|
|
5063
5063
|
});
|
|
5064
5064
|
};
|
|
5065
5065
|
|
|
5066
|
-
function ownKeys$
|
|
5067
|
-
function _objectSpread$
|
|
5066
|
+
function ownKeys$V(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
5067
|
+
function _objectSpread$V(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$V(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$V(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
5068
5068
|
var LayoutManagerModal = function LayoutManagerModal(_ref) {
|
|
5069
5069
|
var open = _ref.open,
|
|
5070
5070
|
setIsOpen = _ref.setIsOpen,
|
|
@@ -5309,7 +5309,7 @@ var LayoutManagerModal = function LayoutManagerModal(_ref) {
|
|
|
5309
5309
|
}
|
|
5310
5310
|
return _context2.abrupt("return");
|
|
5311
5311
|
case 6:
|
|
5312
|
-
updatedWorkspace = _objectSpread$
|
|
5312
|
+
updatedWorkspace = _objectSpread$V(_objectSpread$V({}, importedWorkspace), {}, {
|
|
5313
5313
|
name: dashboardName.trim(),
|
|
5314
5314
|
menuId: menuId,
|
|
5315
5315
|
themeKey: selectedThemeKey
|
|
@@ -7067,8 +7067,8 @@ function applyFilters(items, filters, mode) {
|
|
|
7067
7067
|
function _createForOfIteratorHelper$q(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$q(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
7068
7068
|
function _unsupportedIterableToArray$q(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$q(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$q(r, a) : void 0; } }
|
|
7069
7069
|
function _arrayLikeToArray$q(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
7070
|
-
function ownKeys$
|
|
7071
|
-
function _objectSpread$
|
|
7070
|
+
function ownKeys$U(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
7071
|
+
function _objectSpread$U(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$U(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$U(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
7072
7072
|
var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
|
|
7073
7073
|
var _state$selectedDashbo, _state$selectedDashbo2;
|
|
7074
7074
|
var state = _ref.state,
|
|
@@ -7238,7 +7238,7 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
|
|
|
7238
7238
|
_context2.next = 7;
|
|
7239
7239
|
break;
|
|
7240
7240
|
}
|
|
7241
|
-
updatedWorkspace = _objectSpread$
|
|
7241
|
+
updatedWorkspace = _objectSpread$U(_objectSpread$U({}, installResult.workspace), {}, {
|
|
7242
7242
|
name: name.trim(),
|
|
7243
7243
|
menuId: menuId || 1,
|
|
7244
7244
|
themeKey: theme
|
|
@@ -7993,8 +7993,8 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
|
|
|
7993
7993
|
});
|
|
7994
7994
|
};
|
|
7995
7995
|
|
|
7996
|
-
function ownKeys$
|
|
7997
|
-
function _objectSpread$
|
|
7996
|
+
function ownKeys$T(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
7997
|
+
function _objectSpread$T(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$T(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$T(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
7998
7998
|
var TOTAL_STEPS = 2; // Steps 0-1: Discover, Customize
|
|
7999
7999
|
|
|
8000
8000
|
var initialState = {
|
|
@@ -8020,20 +8020,20 @@ var initialState = {
|
|
|
8020
8020
|
function wizardReducer(state, action) {
|
|
8021
8021
|
switch (action.type) {
|
|
8022
8022
|
case "SET_STEP":
|
|
8023
|
-
return _objectSpread$
|
|
8023
|
+
return _objectSpread$T(_objectSpread$T({}, state), {}, {
|
|
8024
8024
|
step: action.payload
|
|
8025
8025
|
});
|
|
8026
8026
|
case "SET_FILTERS":
|
|
8027
|
-
return _objectSpread$
|
|
8028
|
-
filters: _objectSpread$
|
|
8027
|
+
return _objectSpread$T(_objectSpread$T({}, state), {}, {
|
|
8028
|
+
filters: _objectSpread$T(_objectSpread$T({}, state.filters), action.payload)
|
|
8029
8029
|
});
|
|
8030
8030
|
case "TOGGLE_FILTER_CATEGORY":
|
|
8031
8031
|
{
|
|
8032
8032
|
var categories = state.filters.categories.includes(action.payload) ? state.filters.categories.filter(function (c) {
|
|
8033
8033
|
return c !== action.payload;
|
|
8034
8034
|
}) : [].concat(_toConsumableArray(state.filters.categories), [action.payload]);
|
|
8035
|
-
return _objectSpread$
|
|
8036
|
-
filters: _objectSpread$
|
|
8035
|
+
return _objectSpread$T(_objectSpread$T({}, state), {}, {
|
|
8036
|
+
filters: _objectSpread$T(_objectSpread$T({}, state.filters), {}, {
|
|
8037
8037
|
categories: categories
|
|
8038
8038
|
})
|
|
8039
8039
|
});
|
|
@@ -8043,15 +8043,15 @@ function wizardReducer(state, action) {
|
|
|
8043
8043
|
var providers = state.filters.providers.includes(action.payload) ? state.filters.providers.filter(function (p) {
|
|
8044
8044
|
return p !== action.payload;
|
|
8045
8045
|
}) : [].concat(_toConsumableArray(state.filters.providers), [action.payload]);
|
|
8046
|
-
return _objectSpread$
|
|
8047
|
-
filters: _objectSpread$
|
|
8046
|
+
return _objectSpread$T(_objectSpread$T({}, state), {}, {
|
|
8047
|
+
filters: _objectSpread$T(_objectSpread$T({}, state.filters), {}, {
|
|
8048
8048
|
providers: providers
|
|
8049
8049
|
})
|
|
8050
8050
|
});
|
|
8051
8051
|
}
|
|
8052
8052
|
case "SET_SEARCH_QUERY":
|
|
8053
|
-
return _objectSpread$
|
|
8054
|
-
filters: _objectSpread$
|
|
8053
|
+
return _objectSpread$T(_objectSpread$T({}, state), {}, {
|
|
8054
|
+
filters: _objectSpread$T(_objectSpread$T({}, state.filters), {}, {
|
|
8055
8055
|
query: action.payload
|
|
8056
8056
|
})
|
|
8057
8057
|
});
|
|
@@ -8061,7 +8061,7 @@ function wizardReducer(state, action) {
|
|
|
8061
8061
|
var widgetOrder = action.payload.map(function (w) {
|
|
8062
8062
|
return w.name || w.key;
|
|
8063
8063
|
});
|
|
8064
|
-
return _objectSpread$
|
|
8064
|
+
return _objectSpread$T(_objectSpread$T({}, state), {}, {
|
|
8065
8065
|
selectedWidgets: action.payload,
|
|
8066
8066
|
layout: {
|
|
8067
8067
|
templateKey: templateKey,
|
|
@@ -8081,7 +8081,7 @@ function wizardReducer(state, action) {
|
|
|
8081
8081
|
var toggleWidgetOrder = selectedWidgets.map(function (w) {
|
|
8082
8082
|
return w.name || w.key;
|
|
8083
8083
|
});
|
|
8084
|
-
return _objectSpread$
|
|
8084
|
+
return _objectSpread$T(_objectSpread$T({}, state), {}, {
|
|
8085
8085
|
selectedWidgets: selectedWidgets,
|
|
8086
8086
|
layout: {
|
|
8087
8087
|
templateKey: toggleTemplateKey,
|
|
@@ -8090,29 +8090,29 @@ function wizardReducer(state, action) {
|
|
|
8090
8090
|
});
|
|
8091
8091
|
}
|
|
8092
8092
|
case "SET_SELECTED_DASHBOARD":
|
|
8093
|
-
return _objectSpread$
|
|
8093
|
+
return _objectSpread$T(_objectSpread$T({}, state), {}, {
|
|
8094
8094
|
selectedDashboard: action.payload
|
|
8095
8095
|
});
|
|
8096
8096
|
case "SET_PATH":
|
|
8097
|
-
return _objectSpread$
|
|
8097
|
+
return _objectSpread$T(_objectSpread$T({}, state), {}, {
|
|
8098
8098
|
path: action.payload
|
|
8099
8099
|
});
|
|
8100
8100
|
case "SET_LAYOUT":
|
|
8101
|
-
return _objectSpread$
|
|
8101
|
+
return _objectSpread$T(_objectSpread$T({}, state), {}, {
|
|
8102
8102
|
layout: action.payload
|
|
8103
8103
|
});
|
|
8104
8104
|
case "REORDER_WIDGETS":
|
|
8105
|
-
return _objectSpread$
|
|
8106
|
-
layout: _objectSpread$
|
|
8105
|
+
return _objectSpread$T(_objectSpread$T({}, state), {}, {
|
|
8106
|
+
layout: _objectSpread$T(_objectSpread$T({}, state.layout), {}, {
|
|
8107
8107
|
widgetOrder: action.payload
|
|
8108
8108
|
})
|
|
8109
8109
|
});
|
|
8110
8110
|
case "SET_CUSTOMIZATION":
|
|
8111
|
-
return _objectSpread$
|
|
8112
|
-
customization: _objectSpread$
|
|
8111
|
+
return _objectSpread$T(_objectSpread$T({}, state), {}, {
|
|
8112
|
+
customization: _objectSpread$T(_objectSpread$T({}, state.customization), action.payload)
|
|
8113
8113
|
});
|
|
8114
8114
|
case "RESET":
|
|
8115
|
-
return _objectSpread$
|
|
8115
|
+
return _objectSpread$T({}, initialState);
|
|
8116
8116
|
default:
|
|
8117
8117
|
return state;
|
|
8118
8118
|
}
|
|
@@ -12922,8 +12922,8 @@ var _excluded$6 = ["rows", "cols"];
|
|
|
12922
12922
|
function _createForOfIteratorHelper$p(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$p(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
12923
12923
|
function _unsupportedIterableToArray$p(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$p(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$p(r, a) : void 0; } }
|
|
12924
12924
|
function _arrayLikeToArray$p(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
12925
|
-
function ownKeys$
|
|
12926
|
-
function _objectSpread$
|
|
12925
|
+
function ownKeys$S(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12926
|
+
function _objectSpread$S(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$S(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$S(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12927
12927
|
var defaultGrid = {
|
|
12928
12928
|
rows: 1,
|
|
12929
12929
|
cols: 1,
|
|
@@ -12944,7 +12944,7 @@ function GridEditor(_ref) {
|
|
|
12944
12944
|
setGrid = _useState2[1];
|
|
12945
12945
|
var addRow = function addRow() {
|
|
12946
12946
|
var newRow = grid.rows;
|
|
12947
|
-
var newGrid = _objectSpread$
|
|
12947
|
+
var newGrid = _objectSpread$S(_objectSpread$S({}, grid), {}, {
|
|
12948
12948
|
rows: grid.rows + 1
|
|
12949
12949
|
});
|
|
12950
12950
|
for (var col = 0; col < grid.cols; col++) {
|
|
@@ -12959,7 +12959,7 @@ function GridEditor(_ref) {
|
|
|
12959
12959
|
};
|
|
12960
12960
|
var addColumn = function addColumn() {
|
|
12961
12961
|
var newCol = grid.cols;
|
|
12962
|
-
var newGrid = _objectSpread$
|
|
12962
|
+
var newGrid = _objectSpread$S(_objectSpread$S({}, grid), {}, {
|
|
12963
12963
|
cols: grid.cols + 1
|
|
12964
12964
|
});
|
|
12965
12965
|
for (var row = 0; row < grid.rows; row++) {
|
|
@@ -12992,8 +12992,8 @@ function GridEditor(_ref) {
|
|
|
12992
12992
|
});
|
|
12993
12993
|
}
|
|
12994
12994
|
if (grid[nextKey]) {
|
|
12995
|
-
var newGrid = _objectSpread$
|
|
12996
|
-
newGrid[currentKey] = _objectSpread$
|
|
12995
|
+
var newGrid = _objectSpread$S({}, grid);
|
|
12996
|
+
newGrid[currentKey] = _objectSpread$S(_objectSpread$S({}, newGrid[currentKey]), {}, {
|
|
12997
12997
|
colSpan: newGrid[currentKey].colSpan + 1
|
|
12998
12998
|
});
|
|
12999
12999
|
delete newGrid[nextKey];
|
|
@@ -13006,8 +13006,8 @@ function GridEditor(_ref) {
|
|
|
13006
13006
|
var currentKey = "".concat(row, ".").concat(col);
|
|
13007
13007
|
var belowKey = "".concat(row + 1, ".").concat(col);
|
|
13008
13008
|
if (grid[belowKey]) {
|
|
13009
|
-
var newGrid = _objectSpread$
|
|
13010
|
-
newGrid[currentKey] = _objectSpread$
|
|
13009
|
+
var newGrid = _objectSpread$S({}, grid);
|
|
13010
|
+
newGrid[currentKey] = _objectSpread$S(_objectSpread$S({}, newGrid[currentKey]), {}, {
|
|
13011
13011
|
rowSpan: newGrid[currentKey].rowSpan + 1
|
|
13012
13012
|
});
|
|
13013
13013
|
delete newGrid[belowKey];
|
|
@@ -13024,7 +13024,7 @@ function GridEditor(_ref) {
|
|
|
13024
13024
|
var splitCell = function splitCell(row, col) {
|
|
13025
13025
|
var key = "".concat(row, ".").concat(col);
|
|
13026
13026
|
var cell = grid[key];
|
|
13027
|
-
var newGrid = _objectSpread$
|
|
13027
|
+
var newGrid = _objectSpread$S({}, grid);
|
|
13028
13028
|
|
|
13029
13029
|
// we have to check the colspan, and since the colspan is greater than 1
|
|
13030
13030
|
// Only handle horizontal split if colSpan > 1
|
|
@@ -13040,13 +13040,13 @@ function GridEditor(_ref) {
|
|
|
13040
13040
|
var oldKey = "".concat(row, ".").concat(c);
|
|
13041
13041
|
var newKey = "".concat(row, ".").concat(c + 1);
|
|
13042
13042
|
if (newGrid[oldKey]) {
|
|
13043
|
-
newGrid[newKey] = _objectSpread$
|
|
13043
|
+
newGrid[newKey] = _objectSpread$S({}, newGrid[oldKey]);
|
|
13044
13044
|
delete newGrid[oldKey];
|
|
13045
13045
|
}
|
|
13046
13046
|
}
|
|
13047
13047
|
|
|
13048
13048
|
// Update the original cell's colSpan
|
|
13049
|
-
newGrid[key] = _objectSpread$
|
|
13049
|
+
newGrid[key] = _objectSpread$S(_objectSpread$S({}, cell), {}, {
|
|
13050
13050
|
colSpan: cell.colSpan - 1
|
|
13051
13051
|
});
|
|
13052
13052
|
|
|
@@ -13058,7 +13058,7 @@ function GridEditor(_ref) {
|
|
|
13058
13058
|
};
|
|
13059
13059
|
}
|
|
13060
13060
|
if (cell.rowSpan > 1) {
|
|
13061
|
-
newGrid[key] = _objectSpread$
|
|
13061
|
+
newGrid[key] = _objectSpread$S(_objectSpread$S({}, newGrid[key]), {}, {
|
|
13062
13062
|
rowSpan: cell.rowSpan - 1
|
|
13063
13063
|
});
|
|
13064
13064
|
newGrid["".concat(row + 1, ".").concat(col)] = {
|
|
@@ -13177,7 +13177,7 @@ function GridEditor(_ref) {
|
|
|
13177
13177
|
var fromKey = "".concat(from.row, ".").concat(from.col);
|
|
13178
13178
|
var toKey = "".concat(to.row, ".").concat(to.col);
|
|
13179
13179
|
if (fromKey === toKey) return;
|
|
13180
|
-
var newGrid = _objectSpread$
|
|
13180
|
+
var newGrid = _objectSpread$S({}, grid);
|
|
13181
13181
|
|
|
13182
13182
|
// Swap the cells
|
|
13183
13183
|
var temp = newGrid[fromKey];
|
|
@@ -13203,7 +13203,7 @@ function GridEditor(_ref) {
|
|
|
13203
13203
|
// console.log("Grid updated:", sequencedGrid);
|
|
13204
13204
|
}
|
|
13205
13205
|
function resetGridLayout() {
|
|
13206
|
-
var newGrid = _objectSpread$
|
|
13206
|
+
var newGrid = _objectSpread$S({}, defaultGrid);
|
|
13207
13207
|
setGrid(newGrid);
|
|
13208
13208
|
onUpdate(newGrid);
|
|
13209
13209
|
}
|
|
@@ -13481,8 +13481,8 @@ var PanelEditItemGrid = function PanelEditItemGrid(_ref) {
|
|
|
13481
13481
|
});
|
|
13482
13482
|
};
|
|
13483
13483
|
|
|
13484
|
-
function ownKeys$
|
|
13485
|
-
function _objectSpread$
|
|
13484
|
+
function ownKeys$R(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
13485
|
+
function _objectSpread$R(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$R(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$R(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13486
13486
|
var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
|
|
13487
13487
|
var item = _ref.item;
|
|
13488
13488
|
_ref.workspace;
|
|
@@ -13505,7 +13505,7 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
|
|
|
13505
13505
|
}, [widgetUuid, notificationDefs.length]);
|
|
13506
13506
|
function handleNotifToggle(typeKey, value) {
|
|
13507
13507
|
var _window$mainApi2;
|
|
13508
|
-
var updated = _objectSpread$
|
|
13508
|
+
var updated = _objectSpread$R(_objectSpread$R({}, notifPrefs), {}, _defineProperty({}, typeKey, value));
|
|
13509
13509
|
setNotifPrefs(updated);
|
|
13510
13510
|
if ((_window$mainApi2 = window.mainApi) !== null && _window$mainApi2 !== void 0 && (_window$mainApi2 = _window$mainApi2.notifications) !== null && _window$mainApi2 !== void 0 && _window$mainApi2.setPreferences && widgetUuid) {
|
|
13511
13511
|
window.mainApi.notifications.setPreferences(widgetUuid, _defineProperty({}, typeKey, value));
|
|
@@ -13550,8 +13550,8 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
|
|
|
13550
13550
|
function _createForOfIteratorHelper$o(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$o(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
13551
13551
|
function _unsupportedIterableToArray$o(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$o(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$o(r, a) : void 0; } }
|
|
13552
13552
|
function _arrayLikeToArray$o(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
13553
|
-
function ownKeys$
|
|
13554
|
-
function _objectSpread$
|
|
13553
|
+
function ownKeys$Q(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
13554
|
+
function _objectSpread$Q(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$Q(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$Q(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13555
13555
|
var DAYS = [{
|
|
13556
13556
|
key: "mon",
|
|
13557
13557
|
label: "Mon"
|
|
@@ -13652,7 +13652,7 @@ function TaskScheduleEditor(_ref) {
|
|
|
13652
13652
|
var _window$mainApi;
|
|
13653
13653
|
var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
13654
13654
|
if (!((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && (_window$mainApi = _window$mainApi.scheduler) !== null && _window$mainApi !== void 0 && _window$mainApi.registerTask)) return;
|
|
13655
|
-
var payload = _objectSpread$
|
|
13655
|
+
var payload = _objectSpread$Q({
|
|
13656
13656
|
widgetId: widgetId,
|
|
13657
13657
|
widgetName: widgetName,
|
|
13658
13658
|
workspaceId: workspaceId || "",
|
|
@@ -13927,6 +13927,25 @@ var PanelEditItemSchedule = function PanelEditItemSchedule(_ref2) {
|
|
|
13927
13927
|
});
|
|
13928
13928
|
};
|
|
13929
13929
|
|
|
13930
|
+
function ownKeys$P(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
13931
|
+
function _objectSpread$P(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$P(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$P(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13932
|
+
var DERIVED_FIELDS = ["widgetConfig",
|
|
13933
|
+
// biggest offender — full component definition blob
|
|
13934
|
+
"uuid", "dashboardId", "parentWorkspaceName", "componentName", "siblingCount", "hasChildren", "canHaveChildren", "events",
|
|
13935
|
+
// declared by the widget's .dash.js, not editable per-item
|
|
13936
|
+
"eventHandlers"];
|
|
13937
|
+
function stripDerivedFields(item) {
|
|
13938
|
+
if (!item || _typeof(item) !== "object") return item;
|
|
13939
|
+
var out = {};
|
|
13940
|
+
for (var _i = 0, _Object$entries = Object.entries(item); _i < _Object$entries.length; _i++) {
|
|
13941
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
13942
|
+
k = _Object$entries$_i[0],
|
|
13943
|
+
v = _Object$entries$_i[1];
|
|
13944
|
+
if (DERIVED_FIELDS.includes(k)) continue;
|
|
13945
|
+
out[k] = v;
|
|
13946
|
+
}
|
|
13947
|
+
return out;
|
|
13948
|
+
}
|
|
13930
13949
|
var PanelCode = function PanelCode(_ref) {
|
|
13931
13950
|
var workspace = _ref.workspace,
|
|
13932
13951
|
onUpdate = _ref.onUpdate,
|
|
@@ -13961,18 +13980,43 @@ var PanelCode = function PanelCode(_ref) {
|
|
|
13961
13980
|
}
|
|
13962
13981
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
13963
13982
|
}, [workspace, item]);
|
|
13983
|
+
var displayJson = useMemo(function () {
|
|
13984
|
+
if (!itemSelected) return "";
|
|
13985
|
+
return JSON.stringify(stripDerivedFields(itemSelected), null, 2);
|
|
13986
|
+
}, [itemSelected]);
|
|
13964
13987
|
function handleCodeChange(code) {
|
|
13965
|
-
|
|
13966
|
-
|
|
13988
|
+
try {
|
|
13989
|
+
var edited = JSON.parse(code);
|
|
13990
|
+
// Preserve the derived fields from the live item so save +
|
|
13991
|
+
// re-render stays in sync with what the rest of the layout
|
|
13992
|
+
// expects. LayoutModel re-derives these on reload, but losing
|
|
13993
|
+
// them between render cycles can cause flashes of "unknown
|
|
13994
|
+
// widget" state.
|
|
13995
|
+
var merged = _objectSpread$P({}, itemSelected);
|
|
13996
|
+
for (var _i2 = 0, _Object$keys = Object.keys(edited); _i2 < _Object$keys.length; _i2++) {
|
|
13997
|
+
var k = _Object$keys[_i2];
|
|
13998
|
+
merged[k] = edited[k];
|
|
13999
|
+
}
|
|
14000
|
+
onUpdate(merged, workspaceSelected);
|
|
14001
|
+
} catch (_unused) {
|
|
14002
|
+
// Malformed JSON — leave state alone; the editor keeps the
|
|
14003
|
+
// user's text so they can fix it.
|
|
14004
|
+
}
|
|
13967
14005
|
}
|
|
13968
14006
|
return itemSelected && workspaceSelected && /*#__PURE__*/jsx("div", {
|
|
13969
14007
|
className: "flex flex-col flex-1 min-h-0",
|
|
13970
14008
|
children: /*#__PURE__*/jsx("div", {
|
|
13971
|
-
className: "flex-1 min-h-0 overflow-hidden",
|
|
13972
|
-
children: /*#__PURE__*/jsx(
|
|
13973
|
-
|
|
13974
|
-
|
|
13975
|
-
|
|
14009
|
+
className: "flex-1 min-h-0 overflow-hidden relative",
|
|
14010
|
+
children: /*#__PURE__*/jsx("div", {
|
|
14011
|
+
className: "absolute inset-0",
|
|
14012
|
+
children: /*#__PURE__*/jsx(CodeEditorVS, {
|
|
14013
|
+
code: displayJson,
|
|
14014
|
+
language: "json",
|
|
14015
|
+
onChange: handleCodeChange,
|
|
14016
|
+
readOnly: false,
|
|
14017
|
+
minimapEnabled: false,
|
|
14018
|
+
padding: "p-0"
|
|
14019
|
+
})
|
|
13976
14020
|
})
|
|
13977
14021
|
})
|
|
13978
14022
|
});
|
|
@@ -14508,6 +14552,39 @@ var LayoutBuilderConfigModal = function LayoutBuilderConfigModal(_ref) {
|
|
|
14508
14552
|
var activeDef = sections.find(function (s) {
|
|
14509
14553
|
return s.key === activeSection;
|
|
14510
14554
|
}) || sections[0];
|
|
14555
|
+
|
|
14556
|
+
// Scope/package label for the footer so the user can tell which
|
|
14557
|
+
// package a widget comes from (ambiguous component names like
|
|
14558
|
+
// `ProspectListColumn` can live under either `@ai-built/…` or
|
|
14559
|
+
// `@trops/pipeline`). Same derivation order as WidgetCardHeader:
|
|
14560
|
+
// widget config id → widget config package → layout item workspace.
|
|
14561
|
+
var footerPackageLabel = function () {
|
|
14562
|
+
if (!itemSelected) return "";
|
|
14563
|
+
var cfg = ComponentManager.config(itemSelected.component, itemSelected);
|
|
14564
|
+
var dropTrailingComponent = function dropTrailingComponent(s) {
|
|
14565
|
+
if (typeof s !== "string") return "";
|
|
14566
|
+
var lastDot = s.lastIndexOf(".");
|
|
14567
|
+
return lastDot > 0 ? s.slice(0, lastDot) : s;
|
|
14568
|
+
};
|
|
14569
|
+
var fromId = dropTrailingComponent((cfg === null || cfg === void 0 ? void 0 : cfg.id) || "");
|
|
14570
|
+
if (fromId) return fromId;
|
|
14571
|
+
if (cfg !== null && cfg !== void 0 && cfg["package"]) return String(cfg["package"]);
|
|
14572
|
+
var ws = itemSelected.workspace;
|
|
14573
|
+
if (typeof ws === "string" && ws && ws !== "layout") {
|
|
14574
|
+
return ws.startsWith("@") ? ws : "@".concat(ws);
|
|
14575
|
+
}
|
|
14576
|
+
return "";
|
|
14577
|
+
}();
|
|
14578
|
+
var componentName = itemSelected ? itemSelected["component"] : "";
|
|
14579
|
+
var footerLeftContent = footerPackageLabel ? /*#__PURE__*/jsxs("span", {
|
|
14580
|
+
className: "flex flex-col leading-tight",
|
|
14581
|
+
children: [/*#__PURE__*/jsx("span", {
|
|
14582
|
+
children: componentName
|
|
14583
|
+
}), /*#__PURE__*/jsx("span", {
|
|
14584
|
+
className: "text-[10px] opacity-50",
|
|
14585
|
+
children: footerPackageLabel
|
|
14586
|
+
})]
|
|
14587
|
+
}) : componentName;
|
|
14511
14588
|
return itemSelected !== null && /*#__PURE__*/jsxs(SettingsModal, {
|
|
14512
14589
|
isOpen: open,
|
|
14513
14590
|
setIsOpen: setIsOpen,
|
|
@@ -14570,7 +14647,7 @@ var LayoutBuilderConfigModal = function LayoutBuilderConfigModal(_ref) {
|
|
|
14570
14647
|
workspace: workspaceSelected
|
|
14571
14648
|
})]
|
|
14572
14649
|
}), /*#__PURE__*/jsxs(SettingsModal.Footer, {
|
|
14573
|
-
leftContent:
|
|
14650
|
+
leftContent: footerLeftContent,
|
|
14574
14651
|
children: [/*#__PURE__*/jsx(Button, {
|
|
14575
14652
|
title: "Cancel",
|
|
14576
14653
|
onClick: function onClick() {
|
|
@@ -18794,7 +18871,32 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
|
|
|
18794
18871
|
var isWidgetMissing = (widgetItem === null || widgetItem === void 0 ? void 0 : widgetItem.component) && !widgetConfig;
|
|
18795
18872
|
|
|
18796
18873
|
// Get widget name from config or item
|
|
18797
|
-
var widgetName = (widgetConfig === null || widgetConfig === void 0 ? void 0 : widgetConfig.name) || (widgetItem === null || widgetItem === void 0 ? void 0 : widgetItem.name) || (widgetItem === null || widgetItem === void 0 ? void 0 : widgetItem.component);
|
|
18874
|
+
var widgetName = (widgetConfig === null || widgetConfig === void 0 ? void 0 : widgetConfig.displayName) || (widgetConfig === null || widgetConfig === void 0 ? void 0 : widgetConfig.name) || (widgetItem === null || widgetItem === void 0 ? void 0 : widgetItem.name) || (widgetItem === null || widgetItem === void 0 ? void 0 : widgetItem.component);
|
|
18875
|
+
|
|
18876
|
+
// Build a scope/package subtitle so ambiguous component names like
|
|
18877
|
+
// `ProspectListColumn` (which might come from `@ai-built/…` or
|
|
18878
|
+
// `@trops/pipeline`) are disambiguated in the layout builder. Derives
|
|
18879
|
+
// from whatever identity the config / layout item carries:
|
|
18880
|
+
// - widgetConfig.id: e.g. "@ai-built/prospectlistcolumn.ProspectListColumn"
|
|
18881
|
+
// - widgetConfig.package: e.g. "@ai-built/prospectlistcolumn"
|
|
18882
|
+
// - widgetItem.workspace: fallback hint ("ai-built" / "@trops/pipeline")
|
|
18883
|
+
// Falls back to empty string so we can skip rendering if we have
|
|
18884
|
+
// nothing meaningful beyond the component name itself.
|
|
18885
|
+
var packageLabel = function () {
|
|
18886
|
+
var dropTrailingComponent = function dropTrailingComponent(s) {
|
|
18887
|
+
if (typeof s !== "string") return "";
|
|
18888
|
+
var lastDot = s.lastIndexOf(".");
|
|
18889
|
+
return lastDot > 0 ? s.slice(0, lastDot) : s;
|
|
18890
|
+
};
|
|
18891
|
+
var fromId = dropTrailingComponent((widgetConfig === null || widgetConfig === void 0 ? void 0 : widgetConfig.id) || "");
|
|
18892
|
+
if (fromId) return fromId;
|
|
18893
|
+
if (widgetConfig !== null && widgetConfig !== void 0 && widgetConfig["package"]) return String(widgetConfig["package"]);
|
|
18894
|
+
var wsHint = widgetItem === null || widgetItem === void 0 ? void 0 : widgetItem.workspace;
|
|
18895
|
+
if (typeof wsHint === "string" && wsHint && wsHint !== "layout") {
|
|
18896
|
+
return wsHint.startsWith("@") ? wsHint : "@".concat(wsHint);
|
|
18897
|
+
}
|
|
18898
|
+
return "";
|
|
18899
|
+
}();
|
|
18798
18900
|
|
|
18799
18901
|
// Get provider requirements from widget config (not from item directly)
|
|
18800
18902
|
// Filter out providerClass: "api" so only user-configurable providers show badges
|
|
@@ -18933,11 +19035,18 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
|
|
|
18933
19035
|
children: [/*#__PURE__*/jsx(WidgetIcon, {
|
|
18934
19036
|
icon: isWidgetMissing ? "triangle-exclamation" : widgetConfig === null || widgetConfig === void 0 ? void 0 : widgetConfig.icon,
|
|
18935
19037
|
className: "h-4 w-4 flex-shrink-0 ".concat(isWidgetMissing ? "text-amber-500" : "text-white/60")
|
|
18936
|
-
}), /*#__PURE__*/jsxs("
|
|
18937
|
-
className: "
|
|
18938
|
-
children: [
|
|
18939
|
-
className: "text-
|
|
18940
|
-
children: "(
|
|
19038
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
19039
|
+
className: "flex flex-col min-w-0 leading-tight",
|
|
19040
|
+
children: [/*#__PURE__*/jsxs("span", {
|
|
19041
|
+
className: "font-medium text-sm text-gray-100 truncate",
|
|
19042
|
+
children: [widgetName || cellNumber || "Empty", isWidgetMissing && /*#__PURE__*/jsx("span", {
|
|
19043
|
+
className: "text-amber-500/70 font-normal ml-1",
|
|
19044
|
+
children: "(not found)"
|
|
19045
|
+
})]
|
|
19046
|
+
}), packageLabel && /*#__PURE__*/jsxs("span", {
|
|
19047
|
+
className: "text-[10px] text-gray-500 truncate",
|
|
19048
|
+
title: "".concat(packageLabel, " \xB7 ").concat((widgetItem === null || widgetItem === void 0 ? void 0 : widgetItem.component) || ""),
|
|
19049
|
+
children: [packageLabel, widgetItem !== null && widgetItem !== void 0 && widgetItem.component && widgetItem.component !== widgetName ? " \xB7 ".concat(widgetItem.component) : ""]
|
|
18941
19050
|
})]
|
|
18942
19051
|
})]
|
|
18943
19052
|
}), (providerRequirements.length > 0 || overflowActions.length > 0 || onMoreOptions) && /*#__PURE__*/jsxs("div", {
|
|
@@ -20692,6 +20801,17 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
20692
20801
|
wsRef.current = currentWorkspace;
|
|
20693
20802
|
}, [currentWorkspace]);
|
|
20694
20803
|
|
|
20804
|
+
// Stable ref to onWorkspaceChange so the window-event handlers below can
|
|
20805
|
+
// propagate mutations upstream without resubscribing on every render.
|
|
20806
|
+
// Without this, swap/place handlers only update LayoutBuilder-local
|
|
20807
|
+
// state — the parent (PinnedSidebar / PageLayoutBuilder) never learns
|
|
20808
|
+
// about the change, so the next parent re-render reverts it via the
|
|
20809
|
+
// `[workspace]` useEffect above and the save path reads stale state.
|
|
20810
|
+
var onWorkspaceChangeRef = useRef(onWorkspaceChange);
|
|
20811
|
+
useEffect(function () {
|
|
20812
|
+
onWorkspaceChangeRef.current = onWorkspaceChange;
|
|
20813
|
+
}, [onWorkspaceChange]);
|
|
20814
|
+
|
|
20695
20815
|
// Listen for AI widget builder placement — modifies layout state directly
|
|
20696
20816
|
useEffect(function () {
|
|
20697
20817
|
var handler = function handler(e) {
|
|
@@ -20713,7 +20833,8 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
20713
20833
|
try {
|
|
20714
20834
|
var hasChildren = config.type === "workspace";
|
|
20715
20835
|
var newLayout = addItemToItemLayout(ws.layout, gridItem.id, _objectSpread$I(_objectSpread$I({}, config), {}, {
|
|
20716
|
-
component: widgetComponentName
|
|
20836
|
+
component: widgetComponentName,
|
|
20837
|
+
packageId: config._sourcePackage || config.packageId || null
|
|
20717
20838
|
}), hasChildren);
|
|
20718
20839
|
var newWidgetId = newLayout[newLayout.length - 1].id;
|
|
20719
20840
|
var updatedGrid = newLayout.find(function (item) {
|
|
@@ -20728,6 +20849,9 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
20728
20849
|
var newWorkspace = JSON.parse(JSON.stringify(ws));
|
|
20729
20850
|
newWorkspace.layout = newLayout;
|
|
20730
20851
|
setCurrentWorkspace(newWorkspace);
|
|
20852
|
+
if (typeof onWorkspaceChangeRef.current === "function") {
|
|
20853
|
+
onWorkspaceChangeRef.current(newWorkspace);
|
|
20854
|
+
}
|
|
20731
20855
|
} catch (err) {
|
|
20732
20856
|
}
|
|
20733
20857
|
};
|
|
@@ -20754,7 +20878,11 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
20754
20878
|
try {
|
|
20755
20879
|
var newLayout = updateLayoutItem(ws.layout, {
|
|
20756
20880
|
id: widgetId,
|
|
20757
|
-
component: widgetComponentName
|
|
20881
|
+
component: widgetComponentName,
|
|
20882
|
+
// Stamp the replacement's source package onto the item so
|
|
20883
|
+
// publish-time attribution routes to the new package, not
|
|
20884
|
+
// whatever the item was previously carrying.
|
|
20885
|
+
packageId: config._sourcePackage || config.packageId || null
|
|
20758
20886
|
});
|
|
20759
20887
|
if (!newLayout) {
|
|
20760
20888
|
return;
|
|
@@ -20762,6 +20890,9 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
20762
20890
|
var newWorkspace = JSON.parse(JSON.stringify(ws));
|
|
20763
20891
|
newWorkspace.layout = newLayout;
|
|
20764
20892
|
setCurrentWorkspace(newWorkspace);
|
|
20893
|
+
if (typeof onWorkspaceChangeRef.current === "function") {
|
|
20894
|
+
onWorkspaceChangeRef.current(newWorkspace);
|
|
20895
|
+
}
|
|
20765
20896
|
} catch (err) {
|
|
20766
20897
|
}
|
|
20767
20898
|
};
|
|
@@ -20860,13 +20991,11 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
20860
20991
|
try {
|
|
20861
20992
|
var dashboard = new DashboardModel(currentWorkspace);
|
|
20862
20993
|
dashboard.removeItemFromLayout(id);
|
|
20863
|
-
|
|
20864
|
-
|
|
20865
|
-
|
|
20866
|
-
|
|
20867
|
-
|
|
20868
|
-
// newWorkspace["layout"] = newLayout;
|
|
20869
|
-
// setCurrentWorkspace(newWorkspace);
|
|
20994
|
+
var nextWorkspace = dashboard.workspace();
|
|
20995
|
+
setCurrentWorkspace(nextWorkspace);
|
|
20996
|
+
if (typeof onWorkspaceChangeRef.current === "function") {
|
|
20997
|
+
onWorkspaceChangeRef.current(nextWorkspace);
|
|
20998
|
+
}
|
|
20870
20999
|
} catch (e) {
|
|
20871
21000
|
}
|
|
20872
21001
|
}
|
|
@@ -21278,7 +21407,8 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
21278
21407
|
if (!config) return;
|
|
21279
21408
|
var widgetItem = _objectSpread$I(_objectSpread$I({}, config), {}, {
|
|
21280
21409
|
component: widgetKey,
|
|
21281
|
-
key: widgetKey
|
|
21410
|
+
key: widgetKey,
|
|
21411
|
+
packageId: config._sourcePackage || config.packageId || null
|
|
21282
21412
|
});
|
|
21283
21413
|
|
|
21284
21414
|
// Remove old widget from layout if the target cell is already occupied
|
|
@@ -21310,6 +21440,9 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
21310
21440
|
var newWorkspace = JSON.parse(JSON.stringify(_workspace));
|
|
21311
21441
|
newWorkspace["layout"] = newLayout;
|
|
21312
21442
|
setCurrentWorkspace(newWorkspace);
|
|
21443
|
+
if (typeof onWorkspaceChangeRef.current === "function") {
|
|
21444
|
+
onWorkspaceChangeRef.current(newWorkspace);
|
|
21445
|
+
}
|
|
21313
21446
|
} catch (e) {
|
|
21314
21447
|
}
|
|
21315
21448
|
}
|
|
@@ -21319,6 +21452,9 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
21319
21452
|
dashboard.moveWidgetToCell(gridContainerId, sourceCellNumber, targetCellNumber);
|
|
21320
21453
|
var newWorkspace = dashboard.workspace();
|
|
21321
21454
|
setCurrentWorkspace(newWorkspace);
|
|
21455
|
+
if (typeof onWorkspaceChangeRef.current === "function") {
|
|
21456
|
+
onWorkspaceChangeRef.current(newWorkspace);
|
|
21457
|
+
}
|
|
21322
21458
|
} catch (e) {
|
|
21323
21459
|
}
|
|
21324
21460
|
}
|
|
@@ -27530,6 +27666,17 @@ var LayoutModel = function LayoutModel(layoutItem, workspaceLayout, dashboardId)
|
|
|
27530
27666
|
// Preserve provider selections for this widget
|
|
27531
27667
|
layout.selectedProviders = "selectedProviders" in obj ? obj.selectedProviders : {};
|
|
27532
27668
|
|
|
27669
|
+
// Record the exact source package id (e.g. "@ai-built/pipeline")
|
|
27670
|
+
// from which this widget instance was added. Used by the publish
|
|
27671
|
+
// flow to attribute the widget to the correct package without
|
|
27672
|
+
// guessing when multiple installed packages declare the same
|
|
27673
|
+
// component name. Back-compat: read `_sourcePackage` (set by
|
|
27674
|
+
// dash-electron's widget registration) if `packageId` is missing.
|
|
27675
|
+
// Legacy layout items (added before this field existed) carry
|
|
27676
|
+
// neither — those still go through the ranking heuristic in
|
|
27677
|
+
// buildWidgetDependencies as a fallback.
|
|
27678
|
+
layout.packageId = "packageId" in obj ? obj["packageId"] : obj._sourcePackage ? obj._sourcePackage : null;
|
|
27679
|
+
|
|
27533
27680
|
/**
|
|
27534
27681
|
* @param {Object} grid Grid layout configuration
|
|
27535
27682
|
* Structure: {
|
|
@@ -54919,6 +55066,139 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
54919
55066
|
return b.required && !b.resolvedProviderName;
|
|
54920
55067
|
}).length;
|
|
54921
55068
|
|
|
55069
|
+
// Dependencies tab data — groups every widget instance in the
|
|
55070
|
+
// workspace by the package it belongs to, so the user can audit
|
|
55071
|
+
// which packages the dashboard actually references (and see which
|
|
55072
|
+
// pages/sidebar hold each instance). Matches the same derivation
|
|
55073
|
+
// order we use in WidgetCardHeader / LayoutBuilderConfigModal's
|
|
55074
|
+
// footer so the same package label shows in every surface.
|
|
55075
|
+
var dependencies = useMemo(function () {
|
|
55076
|
+
var byPackage = new Map();
|
|
55077
|
+
var stripTrailingComponent = function stripTrailingComponent(s) {
|
|
55078
|
+
if (typeof s !== "string") return "";
|
|
55079
|
+
var lastDot = s.lastIndexOf(".");
|
|
55080
|
+
return lastDot > 0 ? s.slice(0, lastDot) : s;
|
|
55081
|
+
};
|
|
55082
|
+
var derivePackage = function derivePackage(item) {
|
|
55083
|
+
// The layout item records the exact source package id when the
|
|
55084
|
+
// widget was added. If present, trust it — no heuristics. This
|
|
55085
|
+
// matches the publish flow's attribution, so the Dependencies
|
|
55086
|
+
// tab and the Publish modal always agree.
|
|
55087
|
+
if (item !== null && item !== void 0 && item.packageId) return String(item.packageId);
|
|
55088
|
+
var cfg = typeof getWidgetConfig === "function" ? getWidgetConfig(item.component) : null;
|
|
55089
|
+
if (cfg !== null && cfg !== void 0 && cfg._sourcePackage) return String(cfg._sourcePackage);
|
|
55090
|
+
var fromId = stripTrailingComponent((cfg === null || cfg === void 0 ? void 0 : cfg.id) || "");
|
|
55091
|
+
if (fromId) return fromId;
|
|
55092
|
+
if (cfg !== null && cfg !== void 0 && cfg["package"]) return String(cfg["package"]);
|
|
55093
|
+
var ws = item === null || item === void 0 ? void 0 : item.workspace;
|
|
55094
|
+
if (typeof ws === "string" && ws && ws !== "layout") {
|
|
55095
|
+
return ws.startsWith("@") ? ws : "@".concat(ws);
|
|
55096
|
+
}
|
|
55097
|
+
return "(unknown)";
|
|
55098
|
+
};
|
|
55099
|
+
|
|
55100
|
+
// Tag each visit with its location so we can show users exactly
|
|
55101
|
+
// where in the tree a package is referenced. forEachWidget walks
|
|
55102
|
+
// the standard places but doesn't surface which one — so we do a
|
|
55103
|
+
// lightweight parallel walk and annotate.
|
|
55104
|
+
var annotatedWalks = [];
|
|
55105
|
+
if (Array.isArray(workspace === null || workspace === void 0 ? void 0 : workspace.layout)) {
|
|
55106
|
+
annotatedWalks.push({
|
|
55107
|
+
location: "root",
|
|
55108
|
+
layout: workspace.layout
|
|
55109
|
+
});
|
|
55110
|
+
}
|
|
55111
|
+
if (Array.isArray(workspace === null || workspace === void 0 ? void 0 : workspace.pages)) {
|
|
55112
|
+
var _iterator2 = _createForOfIteratorHelper$4(workspace.pages),
|
|
55113
|
+
_step2;
|
|
55114
|
+
try {
|
|
55115
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
55116
|
+
var page = _step2.value;
|
|
55117
|
+
if (Array.isArray(page === null || page === void 0 ? void 0 : page.layout)) {
|
|
55118
|
+
annotatedWalks.push({
|
|
55119
|
+
location: "page: ".concat(page.name || page.id || "?"),
|
|
55120
|
+
layout: page.layout
|
|
55121
|
+
});
|
|
55122
|
+
}
|
|
55123
|
+
}
|
|
55124
|
+
} catch (err) {
|
|
55125
|
+
_iterator2.e(err);
|
|
55126
|
+
} finally {
|
|
55127
|
+
_iterator2.f();
|
|
55128
|
+
}
|
|
55129
|
+
}
|
|
55130
|
+
if (Array.isArray(workspace === null || workspace === void 0 ? void 0 : workspace.sidebarLayout)) {
|
|
55131
|
+
annotatedWalks.push({
|
|
55132
|
+
location: "sidebar",
|
|
55133
|
+
layout: workspace.sidebarLayout
|
|
55134
|
+
});
|
|
55135
|
+
}
|
|
55136
|
+
var visitedByLocation = new WeakSet();
|
|
55137
|
+
var _collect = function collect(items, location) {
|
|
55138
|
+
if (!Array.isArray(items)) return;
|
|
55139
|
+
var _iterator3 = _createForOfIteratorHelper$4(items),
|
|
55140
|
+
_step3;
|
|
55141
|
+
try {
|
|
55142
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
55143
|
+
var item = _step3.value;
|
|
55144
|
+
if (!item || _typeof(item) !== "object") continue;
|
|
55145
|
+
if (item.component && !visitedByLocation.has(item)) {
|
|
55146
|
+
visitedByLocation.add(item);
|
|
55147
|
+
// Ignore layout containers — they're not widgets.
|
|
55148
|
+
if (item.component !== "Container" && item.component !== "LayoutGridContainer") {
|
|
55149
|
+
var pkg = derivePackage(item);
|
|
55150
|
+
if (!byPackage.has(pkg)) {
|
|
55151
|
+
byPackage.set(pkg, {
|
|
55152
|
+
packageLabel: pkg,
|
|
55153
|
+
components: new Map(),
|
|
55154
|
+
locations: new Set(),
|
|
55155
|
+
total: 0
|
|
55156
|
+
});
|
|
55157
|
+
}
|
|
55158
|
+
var entry = byPackage.get(pkg);
|
|
55159
|
+
entry.total += 1;
|
|
55160
|
+
entry.locations.add(location);
|
|
55161
|
+
var cKey = item.component;
|
|
55162
|
+
entry.components.set(cKey, (entry.components.get(cKey) || 0) + 1);
|
|
55163
|
+
}
|
|
55164
|
+
}
|
|
55165
|
+
if (Array.isArray(item.items)) _collect(item.items, location);
|
|
55166
|
+
if (Array.isArray(item.layout)) _collect(item.layout, location);
|
|
55167
|
+
}
|
|
55168
|
+
} catch (err) {
|
|
55169
|
+
_iterator3.e(err);
|
|
55170
|
+
} finally {
|
|
55171
|
+
_iterator3.f();
|
|
55172
|
+
}
|
|
55173
|
+
};
|
|
55174
|
+
for (var _i2 = 0, _annotatedWalks = annotatedWalks; _i2 < _annotatedWalks.length; _i2++) {
|
|
55175
|
+
var w = _annotatedWalks[_i2];
|
|
55176
|
+
_collect(w.layout, w.location);
|
|
55177
|
+
}
|
|
55178
|
+
return Array.from(byPackage.values()).map(function (e) {
|
|
55179
|
+
return _objectSpread$8(_objectSpread$8({}, e), {}, {
|
|
55180
|
+
components: Array.from(e.components.entries()).map(function (_ref2) {
|
|
55181
|
+
var _ref3 = _slicedToArray(_ref2, 2),
|
|
55182
|
+
component = _ref3[0],
|
|
55183
|
+
count = _ref3[1];
|
|
55184
|
+
return {
|
|
55185
|
+
component: component,
|
|
55186
|
+
count: count
|
|
55187
|
+
};
|
|
55188
|
+
}),
|
|
55189
|
+
locations: Array.from(e.locations)
|
|
55190
|
+
});
|
|
55191
|
+
}).sort(function (a, b) {
|
|
55192
|
+
return a.packageLabel.localeCompare(b.packageLabel);
|
|
55193
|
+
});
|
|
55194
|
+
}, [workspace, getWidgetConfig]);
|
|
55195
|
+
var dependencyCount = dependencies.length;
|
|
55196
|
+
// Second pass used for the badge when the user has an `(unknown)`
|
|
55197
|
+
// bucket — usually a sign of a stale reference they want to clean up.
|
|
55198
|
+
var hasUnknownDependency = dependencies.some(function (d) {
|
|
55199
|
+
return d.packageLabel === "(unknown)";
|
|
55200
|
+
});
|
|
55201
|
+
|
|
54922
55202
|
// Listeners tab data — emitter list, receiver list, current wiring,
|
|
54923
55203
|
// orphans. All recompute when the workspace or staged delta changes
|
|
54924
55204
|
// so the UI reflects pending edits without saving first.
|
|
@@ -54954,11 +55234,11 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
54954
55234
|
}
|
|
54955
55235
|
if (stagedListeners.adds.length > 0) {
|
|
54956
55236
|
// Append; avoid duplicates against current state.
|
|
54957
|
-
var
|
|
54958
|
-
|
|
55237
|
+
var _iterator4 = _createForOfIteratorHelper$4(stagedListeners.adds),
|
|
55238
|
+
_step4;
|
|
54959
55239
|
try {
|
|
54960
55240
|
var _loop = function _loop() {
|
|
54961
|
-
var a =
|
|
55241
|
+
var a = _step4.value;
|
|
54962
55242
|
if (!next.some(function (w) {
|
|
54963
55243
|
return sameWiringEntry(w, a);
|
|
54964
55244
|
})) {
|
|
@@ -54967,28 +55247,28 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
54967
55247
|
})]);
|
|
54968
55248
|
}
|
|
54969
55249
|
};
|
|
54970
|
-
for (
|
|
55250
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
54971
55251
|
_loop();
|
|
54972
55252
|
}
|
|
54973
55253
|
} catch (err) {
|
|
54974
|
-
|
|
55254
|
+
_iterator4.e(err);
|
|
54975
55255
|
} finally {
|
|
54976
|
-
|
|
55256
|
+
_iterator4.f();
|
|
54977
55257
|
}
|
|
54978
55258
|
}
|
|
54979
55259
|
if (orphans.length === 0) return next;
|
|
54980
55260
|
var orphanIndex = new Map();
|
|
54981
|
-
var
|
|
54982
|
-
|
|
55261
|
+
var _iterator5 = _createForOfIteratorHelper$4(orphans),
|
|
55262
|
+
_step5;
|
|
54983
55263
|
try {
|
|
54984
|
-
for (
|
|
54985
|
-
var o =
|
|
55264
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
55265
|
+
var o = _step5.value;
|
|
54986
55266
|
orphanIndex.set("".concat(o.receiverItemId, "|").concat(o.handlerName, "|").concat(o.sourceComponent, "|").concat(o.sourceItemId, "|").concat(o.eventName), o.reason);
|
|
54987
55267
|
}
|
|
54988
55268
|
} catch (err) {
|
|
54989
|
-
|
|
55269
|
+
_iterator5.e(err);
|
|
54990
55270
|
} finally {
|
|
54991
|
-
|
|
55271
|
+
_iterator5.f();
|
|
54992
55272
|
}
|
|
54993
55273
|
return next.map(function (w) {
|
|
54994
55274
|
var key = "".concat(w.receiverItemId, "|").concat(w.handlerName, "|").concat(w.sourceComponent, "|").concat(w.sourceItemId, "|").concat(w.eventName);
|
|
@@ -55020,17 +55300,17 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
55020
55300
|
function stagePrefFieldForAll(targetWidgets, key, value) {
|
|
55021
55301
|
setStagedPrefs(function (prev) {
|
|
55022
55302
|
var next = _objectSpread$8({}, prev);
|
|
55023
|
-
var
|
|
55024
|
-
|
|
55303
|
+
var _iterator6 = _createForOfIteratorHelper$4(targetWidgets),
|
|
55304
|
+
_step6;
|
|
55025
55305
|
try {
|
|
55026
|
-
for (
|
|
55027
|
-
var w =
|
|
55306
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
55307
|
+
var w = _step6.value;
|
|
55028
55308
|
next[w.id] = _objectSpread$8(_objectSpread$8({}, next[w.id] || {}), {}, _defineProperty({}, key, value));
|
|
55029
55309
|
}
|
|
55030
55310
|
} catch (err) {
|
|
55031
|
-
|
|
55311
|
+
_iterator6.e(err);
|
|
55032
55312
|
} finally {
|
|
55033
|
-
|
|
55313
|
+
_iterator6.f();
|
|
55034
55314
|
}
|
|
55035
55315
|
return next;
|
|
55036
55316
|
});
|
|
@@ -55054,18 +55334,18 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
55054
55334
|
});
|
|
55055
55335
|
setStaged(function (prev) {
|
|
55056
55336
|
var next = _objectSpread$8({}, prev);
|
|
55057
|
-
var
|
|
55058
|
-
|
|
55337
|
+
var _iterator7 = _createForOfIteratorHelper$4(affected),
|
|
55338
|
+
_step7;
|
|
55059
55339
|
try {
|
|
55060
|
-
for (
|
|
55061
|
-
var b =
|
|
55340
|
+
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
55341
|
+
var b = _step7.value;
|
|
55062
55342
|
if (!b.widgetId) continue;
|
|
55063
55343
|
next[b.widgetId] = _objectSpread$8(_objectSpread$8({}, next[b.widgetId] || {}), {}, _defineProperty({}, providerType, providerName || ""));
|
|
55064
55344
|
}
|
|
55065
55345
|
} catch (err) {
|
|
55066
|
-
|
|
55346
|
+
_iterator7.e(err);
|
|
55067
55347
|
} finally {
|
|
55068
|
-
|
|
55348
|
+
_iterator7.f();
|
|
55069
55349
|
}
|
|
55070
55350
|
return next;
|
|
55071
55351
|
});
|
|
@@ -55123,12 +55403,12 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
55123
55403
|
function handleSave() {
|
|
55124
55404
|
// Provider changes
|
|
55125
55405
|
var providerChanges = [];
|
|
55126
|
-
for (var
|
|
55127
|
-
var _Object$entries2$_i = _slicedToArray(_Object$entries2[
|
|
55406
|
+
for (var _i3 = 0, _Object$entries2 = Object.entries(staged); _i3 < _Object$entries2.length; _i3++) {
|
|
55407
|
+
var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i3], 2),
|
|
55128
55408
|
widgetId = _Object$entries2$_i[0],
|
|
55129
55409
|
byType = _Object$entries2$_i[1];
|
|
55130
|
-
for (var
|
|
55131
|
-
var _Object$entries3$_i = _slicedToArray(_Object$entries3[
|
|
55410
|
+
for (var _i4 = 0, _Object$entries3 = Object.entries(byType); _i4 < _Object$entries3.length; _i4++) {
|
|
55411
|
+
var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i4], 2),
|
|
55132
55412
|
providerType = _Object$entries3$_i[0],
|
|
55133
55413
|
providerName = _Object$entries3$_i[1];
|
|
55134
55414
|
providerChanges.push({
|
|
@@ -55149,12 +55429,12 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
55149
55429
|
|
|
55150
55430
|
// Widget userPrefs changes (Widgets tab)
|
|
55151
55431
|
var prefChanges = [];
|
|
55152
|
-
for (var
|
|
55153
|
-
var _Object$entries4$_i = _slicedToArray(_Object$entries4[
|
|
55432
|
+
for (var _i5 = 0, _Object$entries4 = Object.entries(stagedPrefs); _i5 < _Object$entries4.length; _i5++) {
|
|
55433
|
+
var _Object$entries4$_i = _slicedToArray(_Object$entries4[_i5], 2),
|
|
55154
55434
|
_widgetId = _Object$entries4$_i[0],
|
|
55155
55435
|
fields = _Object$entries4$_i[1];
|
|
55156
|
-
for (var
|
|
55157
|
-
var _Object$entries5$_i = _slicedToArray(_Object$entries5[
|
|
55436
|
+
for (var _i6 = 0, _Object$entries5 = Object.entries(fields); _i6 < _Object$entries5.length; _i6++) {
|
|
55437
|
+
var _Object$entries5$_i = _slicedToArray(_Object$entries5[_i6], 2),
|
|
55158
55438
|
key = _Object$entries5$_i[0],
|
|
55159
55439
|
value = _Object$entries5$_i[1];
|
|
55160
55440
|
prefChanges.push({
|
|
@@ -55240,6 +55520,18 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
55240
55520
|
},
|
|
55241
55521
|
className: "px-3 py-1.5 text-sm font-medium -mb-px border-b-2 ".concat(activeTab === "widgets" ? "border-indigo-400" : "border-transparent opacity-60 hover:opacity-100"),
|
|
55242
55522
|
children: "Widgets"
|
|
55523
|
+
}), /*#__PURE__*/jsxs("button", {
|
|
55524
|
+
type: "button",
|
|
55525
|
+
onClick: function onClick() {
|
|
55526
|
+
return setActiveTab("dependencies");
|
|
55527
|
+
},
|
|
55528
|
+
className: "px-3 py-1.5 text-sm font-medium -mb-px border-b-2 ".concat(activeTab === "dependencies" ? "border-indigo-400" : "border-transparent opacity-60 hover:opacity-100"),
|
|
55529
|
+
children: ["Dependencies", dependencyCount > 0 && /*#__PURE__*/jsxs("span", {
|
|
55530
|
+
className: "ml-2 text-[10px] opacity-60",
|
|
55531
|
+
children: ["(", dependencyCount, ")"]
|
|
55532
|
+
}), hasUnknownDependency && /*#__PURE__*/jsx("span", {
|
|
55533
|
+
className: "ml-1 inline-block h-1.5 w-1.5 rounded-full bg-amber-400 align-middle"
|
|
55534
|
+
})]
|
|
55243
55535
|
})]
|
|
55244
55536
|
}), /*#__PURE__*/jsxs("div", {
|
|
55245
55537
|
className: "flex-1 min-h-0 ".concat(activeTab === "widgets" ? "" : "p-5"),
|
|
@@ -55260,6 +55552,8 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
55260
55552
|
stagedPrefs: stagedPrefs,
|
|
55261
55553
|
stagePrefField: stagePrefField,
|
|
55262
55554
|
stagePrefFieldForAll: stagePrefFieldForAll
|
|
55555
|
+
}), activeTab === "dependencies" && /*#__PURE__*/jsx(DependenciesTab, {
|
|
55556
|
+
dependencies: dependencies
|
|
55263
55557
|
})]
|
|
55264
55558
|
}), /*#__PURE__*/jsxs("div", {
|
|
55265
55559
|
className: "flex-shrink-0 flex flex-row justify-end gap-2 p-4 border-t border-white/10",
|
|
@@ -55282,12 +55576,12 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
55282
55576
|
* dot per-type when any widget of that type is unresolved). Column 2
|
|
55283
55577
|
* shows the selected type's bulk dropdown + per-widget dropdowns.
|
|
55284
55578
|
*/
|
|
55285
|
-
function ProvidersTab(
|
|
55579
|
+
function ProvidersTab(_ref4) {
|
|
55286
55580
|
var _typeEntries$, _selectedRows$;
|
|
55287
|
-
var grouped =
|
|
55288
|
-
providersByType =
|
|
55289
|
-
onBulk =
|
|
55290
|
-
onPerWidget =
|
|
55581
|
+
var grouped = _ref4.grouped,
|
|
55582
|
+
providersByType = _ref4.providersByType,
|
|
55583
|
+
onBulk = _ref4.onBulk,
|
|
55584
|
+
onPerWidget = _ref4.onPerWidget;
|
|
55291
55585
|
var typeEntries = useMemo(function () {
|
|
55292
55586
|
return Array.from(grouped.entries());
|
|
55293
55587
|
}, [grouped]);
|
|
@@ -55324,10 +55618,10 @@ function ProvidersTab(_ref2) {
|
|
|
55324
55618
|
children: "Provider Types"
|
|
55325
55619
|
}), /*#__PURE__*/jsx("div", {
|
|
55326
55620
|
className: "overflow-y-auto flex-1",
|
|
55327
|
-
children: typeEntries.map(function (
|
|
55328
|
-
var
|
|
55329
|
-
providerType =
|
|
55330
|
-
rows =
|
|
55621
|
+
children: typeEntries.map(function (_ref5) {
|
|
55622
|
+
var _ref6 = _slicedToArray(_ref5, 2),
|
|
55623
|
+
providerType = _ref6[0],
|
|
55624
|
+
rows = _ref6[1];
|
|
55331
55625
|
var isActive = selectedType === providerType;
|
|
55332
55626
|
var unresolvedHere = rows.filter(function (r) {
|
|
55333
55627
|
return r.required && !r.resolvedProviderName;
|
|
@@ -55463,6 +55757,73 @@ function ProvidersTab(_ref2) {
|
|
|
55463
55757
|
});
|
|
55464
55758
|
}
|
|
55465
55759
|
|
|
55760
|
+
// ─── Dependencies tab ──────────────────────────────────────────────────────
|
|
55761
|
+
|
|
55762
|
+
/**
|
|
55763
|
+
* Read-only breakdown of every widget package referenced by the
|
|
55764
|
+
* workspace. Same source of truth as the dashboard publish plan (it
|
|
55765
|
+
* walks layout + pages + sidebar + nested LayoutGridContainer items),
|
|
55766
|
+
* surfaced earlier in the authoring flow so the user can verify which
|
|
55767
|
+
* packages the dashboard actually pulls in — and catch stale references
|
|
55768
|
+
* before hitting the Publish modal.
|
|
55769
|
+
*
|
|
55770
|
+
* `(unknown)` buckets mean a component we couldn't map back to a
|
|
55771
|
+
* package (no `config.id` / `config.package` / item.workspace hint).
|
|
55772
|
+
* Usually this is a stale layout item whose widget got uninstalled.
|
|
55773
|
+
*/
|
|
55774
|
+
function DependenciesTab(_ref8) {
|
|
55775
|
+
var dependencies = _ref8.dependencies;
|
|
55776
|
+
if (!dependencies || dependencies.length === 0) {
|
|
55777
|
+
return /*#__PURE__*/jsx("div", {
|
|
55778
|
+
className: "flex items-center justify-center h-full text-sm opacity-60 text-center",
|
|
55779
|
+
children: /*#__PURE__*/jsx("div", {
|
|
55780
|
+
children: "No widget packages referenced by this dashboard."
|
|
55781
|
+
})
|
|
55782
|
+
});
|
|
55783
|
+
}
|
|
55784
|
+
return /*#__PURE__*/jsxs("div", {
|
|
55785
|
+
className: "flex flex-col h-full min-h-0 overflow-y-auto gap-3",
|
|
55786
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
55787
|
+
className: "text-xs opacity-60",
|
|
55788
|
+
children: "Every widget instance in this workspace, grouped by the package it belongs to. Locations show where each package is referenced."
|
|
55789
|
+
}), dependencies.map(function (dep) {
|
|
55790
|
+
var isUnknown = dep.packageLabel === "(unknown)";
|
|
55791
|
+
return /*#__PURE__*/jsxs("div", {
|
|
55792
|
+
className: "border rounded-lg px-4 py-3 ".concat(isUnknown ? "bg-amber-900/10 border-amber-700/40" : "bg-white/5 border-white/10"),
|
|
55793
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
55794
|
+
className: "flex items-center gap-2 flex-wrap",
|
|
55795
|
+
children: [/*#__PURE__*/jsx("code", {
|
|
55796
|
+
className: "text-sm font-semibold ".concat(isUnknown ? "text-amber-200" : ""),
|
|
55797
|
+
children: dep.packageLabel
|
|
55798
|
+
}), /*#__PURE__*/jsxs("span", {
|
|
55799
|
+
className: "text-xs opacity-60",
|
|
55800
|
+
children: [dep.total, " instance", dep.total === 1 ? "" : "s"]
|
|
55801
|
+
}), isUnknown && /*#__PURE__*/jsx("span", {
|
|
55802
|
+
className: "text-[10px] text-amber-300 uppercase tracking-wide",
|
|
55803
|
+
children: "no package mapping"
|
|
55804
|
+
})]
|
|
55805
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
55806
|
+
className: "mt-2 text-xs opacity-70",
|
|
55807
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
55808
|
+
children: [/*#__PURE__*/jsx("span", {
|
|
55809
|
+
className: "opacity-60 mr-1",
|
|
55810
|
+
children: "Widgets:"
|
|
55811
|
+
}), dep.components.map(function (c) {
|
|
55812
|
+
return "".concat(c.component).concat(c.count > 1 ? " \xD7".concat(c.count) : "");
|
|
55813
|
+
}).join(", ")]
|
|
55814
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
55815
|
+
className: "mt-1",
|
|
55816
|
+
children: [/*#__PURE__*/jsx("span", {
|
|
55817
|
+
className: "opacity-60 mr-1",
|
|
55818
|
+
children: "Locations:"
|
|
55819
|
+
}), dep.locations.join(", ")]
|
|
55820
|
+
})]
|
|
55821
|
+
})]
|
|
55822
|
+
}, dep.packageLabel);
|
|
55823
|
+
})]
|
|
55824
|
+
});
|
|
55825
|
+
}
|
|
55826
|
+
|
|
55466
55827
|
// ─── Listeners tab ──────────────────────────────────────────────────────────
|
|
55467
55828
|
|
|
55468
55829
|
/**
|
|
@@ -55484,13 +55845,13 @@ function sameWiringEntry(a, b) {
|
|
|
55484
55845
|
* adjusts wiring per handler from a single dropdown of all emitters'
|
|
55485
55846
|
* (widget × event) pairs.
|
|
55486
55847
|
*/
|
|
55487
|
-
function ListenersTab(
|
|
55848
|
+
function ListenersTab(_ref9) {
|
|
55488
55849
|
var _receivers$;
|
|
55489
|
-
var emitters =
|
|
55490
|
-
receivers =
|
|
55491
|
-
wiring =
|
|
55492
|
-
onAdd =
|
|
55493
|
-
onRemove =
|
|
55850
|
+
var emitters = _ref9.emitters,
|
|
55851
|
+
receivers = _ref9.receivers,
|
|
55852
|
+
wiring = _ref9.wiring,
|
|
55853
|
+
onAdd = _ref9.onAdd,
|
|
55854
|
+
onRemove = _ref9.onRemove;
|
|
55494
55855
|
var _useState11 = useState(((_receivers$ = receivers[0]) === null || _receivers$ === void 0 ? void 0 : _receivers$.key) || null),
|
|
55495
55856
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
55496
55857
|
selectedReceiverKey = _useState12[0],
|
|
@@ -55514,17 +55875,17 @@ function ListenersTab(_ref6) {
|
|
|
55514
55875
|
// Receiver lookup (by composite key) for label resolution in chips.
|
|
55515
55876
|
var receiverByKey = useMemo(function () {
|
|
55516
55877
|
var m = new Map();
|
|
55517
|
-
var
|
|
55518
|
-
|
|
55878
|
+
var _iterator8 = _createForOfIteratorHelper$4(receivers),
|
|
55879
|
+
_step8;
|
|
55519
55880
|
try {
|
|
55520
|
-
for (
|
|
55521
|
-
var r =
|
|
55881
|
+
for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
|
|
55882
|
+
var r = _step8.value;
|
|
55522
55883
|
m.set(r.key, r);
|
|
55523
55884
|
}
|
|
55524
55885
|
} catch (err) {
|
|
55525
|
-
|
|
55886
|
+
_iterator8.e(err);
|
|
55526
55887
|
} finally {
|
|
55527
|
-
|
|
55888
|
+
_iterator8.f();
|
|
55528
55889
|
}
|
|
55529
55890
|
return m;
|
|
55530
55891
|
}, [receivers]);
|
|
@@ -55598,24 +55959,24 @@ function ListenersTab(_ref6) {
|
|
|
55598
55959
|
* third column. Matches the left-column look from
|
|
55599
55960
|
* PanelEditItemHandlers.
|
|
55600
55961
|
*/
|
|
55601
|
-
function HandlersColumn(
|
|
55602
|
-
var receiver =
|
|
55603
|
-
myWiring =
|
|
55604
|
-
selectedHandler =
|
|
55605
|
-
onSelectHandler =
|
|
55962
|
+
function HandlersColumn(_ref1) {
|
|
55963
|
+
var receiver = _ref1.receiver,
|
|
55964
|
+
myWiring = _ref1.myWiring,
|
|
55965
|
+
selectedHandler = _ref1.selectedHandler,
|
|
55966
|
+
onSelectHandler = _ref1.onSelectHandler;
|
|
55606
55967
|
var countsByHandler = useMemo(function () {
|
|
55607
55968
|
var m = new Map();
|
|
55608
|
-
var
|
|
55609
|
-
|
|
55969
|
+
var _iterator9 = _createForOfIteratorHelper$4(myWiring),
|
|
55970
|
+
_step9;
|
|
55610
55971
|
try {
|
|
55611
|
-
for (
|
|
55612
|
-
var w =
|
|
55972
|
+
for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
|
|
55973
|
+
var w = _step9.value;
|
|
55613
55974
|
m.set(w.handlerName, (m.get(w.handlerName) || 0) + 1);
|
|
55614
55975
|
}
|
|
55615
55976
|
} catch (err) {
|
|
55616
|
-
|
|
55977
|
+
_iterator9.e(err);
|
|
55617
55978
|
} finally {
|
|
55618
|
-
|
|
55979
|
+
_iterator9.f();
|
|
55619
55980
|
}
|
|
55620
55981
|
return m;
|
|
55621
55982
|
}, [myWiring]);
|
|
@@ -55663,23 +56024,23 @@ function HandlersColumn(_ref8) {
|
|
|
55663
56024
|
* Checked = wired; toggling commits an add/remove. Mirrors the
|
|
55664
56025
|
* right-column UX of PanelEditItemHandlers.
|
|
55665
56026
|
*/
|
|
55666
|
-
function EventsColumn(
|
|
55667
|
-
var receiver =
|
|
55668
|
-
handlerName =
|
|
55669
|
-
myWiring =
|
|
55670
|
-
emitters =
|
|
55671
|
-
onAdd =
|
|
55672
|
-
onRemove =
|
|
56027
|
+
function EventsColumn(_ref10) {
|
|
56028
|
+
var receiver = _ref10.receiver,
|
|
56029
|
+
handlerName = _ref10.handlerName,
|
|
56030
|
+
myWiring = _ref10.myWiring,
|
|
56031
|
+
emitters = _ref10.emitters,
|
|
56032
|
+
onAdd = _ref10.onAdd,
|
|
56033
|
+
onRemove = _ref10.onRemove;
|
|
55673
56034
|
// Wired-for-this-handler: dedupe defensively (legacy workspaces
|
|
55674
56035
|
// occasionally contain duplicate entries under the same handler).
|
|
55675
56036
|
var wiredHere = useMemo(function () {
|
|
55676
56037
|
var seen = new Set();
|
|
55677
56038
|
var out = [];
|
|
55678
|
-
var
|
|
55679
|
-
|
|
56039
|
+
var _iterator0 = _createForOfIteratorHelper$4(myWiring),
|
|
56040
|
+
_step0;
|
|
55680
56041
|
try {
|
|
55681
|
-
for (
|
|
55682
|
-
var w =
|
|
56042
|
+
for (_iterator0.s(); !(_step0 = _iterator0.n()).done;) {
|
|
56043
|
+
var w = _step0.value;
|
|
55683
56044
|
if (w.handlerName !== handlerName) continue;
|
|
55684
56045
|
var key = "".concat(w.sourceComponent, "|").concat(w.sourceItemId, "|").concat(w.eventName);
|
|
55685
56046
|
if (seen.has(key)) continue;
|
|
@@ -55687,9 +56048,9 @@ function EventsColumn(_ref9) {
|
|
|
55687
56048
|
out.push(w);
|
|
55688
56049
|
}
|
|
55689
56050
|
} catch (err) {
|
|
55690
|
-
|
|
56051
|
+
_iterator0.e(err);
|
|
55691
56052
|
} finally {
|
|
55692
|
-
|
|
56053
|
+
_iterator0.f();
|
|
55693
56054
|
}
|
|
55694
56055
|
return out;
|
|
55695
56056
|
}, [myWiring, handlerName]);
|
|
@@ -56839,6 +57200,42 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
56839
57200
|
});
|
|
56840
57201
|
});
|
|
56841
57202
|
}
|
|
57203
|
+
|
|
57204
|
+
// Mirror the change into the layout refs so the save path always
|
|
57205
|
+
// sees the same truth regardless of whether it reads from refs or
|
|
57206
|
+
// state. Previously a mutation that propagated via
|
|
57207
|
+
// onWorkspaceChange (drag-drop, swap, place, delete) would update
|
|
57208
|
+
// openTabs but leave sidebarWorkspaceRef/pageRefsMap stale, and
|
|
57209
|
+
// `handleClickSaveWorkspace` reads from those refs FIRST — so it
|
|
57210
|
+
// clobbered the new sidebarLayout with the stale ref contents on
|
|
57211
|
+
// save. Keeping everything in sync here closes that window.
|
|
57212
|
+
if (Array.isArray(wsModel.sidebarLayout)) {
|
|
57213
|
+
sidebarWorkspaceRef.current = _objectSpread$6(_objectSpread$6({}, sidebarWorkspaceRef.current || {}), {}, {
|
|
57214
|
+
layout: wsModel.sidebarLayout
|
|
57215
|
+
});
|
|
57216
|
+
}
|
|
57217
|
+
if (Array.isArray(wsModel.pages)) {
|
|
57218
|
+
var _iterator = _createForOfIteratorHelper$3(wsModel.pages),
|
|
57219
|
+
_step;
|
|
57220
|
+
try {
|
|
57221
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
57222
|
+
var page = _step.value;
|
|
57223
|
+
if (!page || !page.id || !Array.isArray(page.layout)) continue;
|
|
57224
|
+
if (!pageRefsMap.current[page.id]) {
|
|
57225
|
+
pageRefsMap.current[page.id] = {
|
|
57226
|
+
current: null
|
|
57227
|
+
};
|
|
57228
|
+
}
|
|
57229
|
+
pageRefsMap.current[page.id].current = _objectSpread$6(_objectSpread$6({}, pageRefsMap.current[page.id].current || {}), {}, {
|
|
57230
|
+
layout: page.layout
|
|
57231
|
+
});
|
|
57232
|
+
}
|
|
57233
|
+
} catch (err) {
|
|
57234
|
+
_iterator.e(err);
|
|
57235
|
+
} finally {
|
|
57236
|
+
_iterator.f();
|
|
57237
|
+
}
|
|
57238
|
+
}
|
|
56842
57239
|
}
|
|
56843
57240
|
}
|
|
56844
57241
|
function handleProviderSelect(event) {
|
|
@@ -56885,14 +57282,14 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
56885
57282
|
|
|
56886
57283
|
// Start from the current map, layer changes on top.
|
|
56887
57284
|
var nextSelectedProviders = _objectSpread$6({}, workspaceSelected.selectedProviders || {});
|
|
56888
|
-
var
|
|
56889
|
-
|
|
57285
|
+
var _iterator2 = _createForOfIteratorHelper$3(changes),
|
|
57286
|
+
_step2;
|
|
56890
57287
|
try {
|
|
56891
|
-
for (
|
|
56892
|
-
var
|
|
56893
|
-
widgetId =
|
|
56894
|
-
providerType =
|
|
56895
|
-
providerName =
|
|
57288
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
57289
|
+
var _step2$value = _step2.value,
|
|
57290
|
+
widgetId = _step2$value.widgetId,
|
|
57291
|
+
providerType = _step2$value.providerType,
|
|
57292
|
+
providerName = _step2$value.providerName;
|
|
56896
57293
|
if (!widgetId || !providerType) continue;
|
|
56897
57294
|
var prevForWidget = nextSelectedProviders[widgetId] ? _objectSpread$6({}, nextSelectedProviders[widgetId]) : {};
|
|
56898
57295
|
if (providerName) {
|
|
@@ -56905,9 +57302,9 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
56905
57302
|
nextSelectedProviders[widgetId] = prevForWidget;
|
|
56906
57303
|
}
|
|
56907
57304
|
} catch (err) {
|
|
56908
|
-
|
|
57305
|
+
_iterator2.e(err);
|
|
56909
57306
|
} finally {
|
|
56910
|
-
|
|
57307
|
+
_iterator2.f();
|
|
56911
57308
|
}
|
|
56912
57309
|
var updatedWorkspace = _objectSpread$6(_objectSpread$6({}, workspaceSelected), {}, {
|
|
56913
57310
|
selectedProviders: nextSelectedProviders
|
|
@@ -56937,14 +57334,14 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
56937
57334
|
|
|
56938
57335
|
// Group changes by widgetId so we can patch each item once.
|
|
56939
57336
|
var byWidget = new Map();
|
|
56940
|
-
var
|
|
56941
|
-
|
|
57337
|
+
var _iterator3 = _createForOfIteratorHelper$3(changes),
|
|
57338
|
+
_step3;
|
|
56942
57339
|
try {
|
|
56943
|
-
for (
|
|
56944
|
-
var
|
|
56945
|
-
widgetId =
|
|
56946
|
-
key =
|
|
56947
|
-
value =
|
|
57340
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
57341
|
+
var _step3$value = _step3.value,
|
|
57342
|
+
widgetId = _step3$value.widgetId,
|
|
57343
|
+
key = _step3$value.key,
|
|
57344
|
+
value = _step3$value.value;
|
|
56948
57345
|
if (!widgetId || !key) continue;
|
|
56949
57346
|
if (!byWidget.has(widgetId)) byWidget.set(widgetId, {});
|
|
56950
57347
|
byWidget.get(widgetId)[key] = value;
|
|
@@ -56955,9 +57352,9 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
56955
57352
|
// Uses forEachWidget's walk under the hood by visiting each item
|
|
56956
57353
|
// in the cloned containers.
|
|
56957
57354
|
} catch (err) {
|
|
56958
|
-
|
|
57355
|
+
_iterator3.e(err);
|
|
56959
57356
|
} finally {
|
|
56960
|
-
|
|
57357
|
+
_iterator3.f();
|
|
56961
57358
|
}
|
|
56962
57359
|
var updatedWorkspace = JSON.parse(JSON.stringify(workspaceSelected));
|
|
56963
57360
|
var patchItem = function patchItem(item) {
|