@trops/dash-core 0.1.397 → 0.1.399
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 +1864 -680
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +1864 -680
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -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$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; }
|
|
36
|
+
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; }
|
|
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$W({}, 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$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; }
|
|
2877
|
+
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; }
|
|
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$V(_objectSpread$V({}, 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$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; }
|
|
2938
|
+
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; }
|
|
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$U(_objectSpread$U({}, ctx), {}, {
|
|
2947
2947
|
currentTheme: ctx.appTheme,
|
|
2948
2948
|
currentThemeKey: ctx.appThemeKey,
|
|
2949
2949
|
theme: ctx.appTheme,
|
|
@@ -3055,11 +3055,11 @@ var LayoutContainer = function LayoutContainer(_ref) {
|
|
|
3055
3055
|
});
|
|
3056
3056
|
};
|
|
3057
3057
|
|
|
3058
|
-
function ownKeys$
|
|
3059
|
-
function _objectSpread$
|
|
3060
|
-
function _createForOfIteratorHelper$
|
|
3061
|
-
function _unsupportedIterableToArray$
|
|
3062
|
-
function _arrayLikeToArray$
|
|
3058
|
+
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; }
|
|
3059
|
+
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; }
|
|
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
|
+
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
|
+
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; }
|
|
3063
3063
|
/**
|
|
3064
3064
|
* Layout template definitions for the dashboard template picker.
|
|
3065
3065
|
*
|
|
@@ -3333,12 +3333,12 @@ function createLayoutFromTemplate(template) {
|
|
|
3333
3333
|
cols: template.cols,
|
|
3334
3334
|
gap: "gap-2"
|
|
3335
3335
|
};
|
|
3336
|
-
var _iterator = _createForOfIteratorHelper$
|
|
3336
|
+
var _iterator = _createForOfIteratorHelper$t(template.cells),
|
|
3337
3337
|
_step;
|
|
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$T({
|
|
3342
3342
|
component: null,
|
|
3343
3343
|
hide: cell.hide || false
|
|
3344
3344
|
}, cell.span ? {
|
|
@@ -4264,11 +4264,11 @@ var RegistryAuthModal = function RegistryAuthModal(_ref) {
|
|
|
4264
4264
|
});
|
|
4265
4265
|
};
|
|
4266
4266
|
|
|
4267
|
-
function _createForOfIteratorHelper$
|
|
4268
|
-
function _unsupportedIterableToArray$
|
|
4269
|
-
function _arrayLikeToArray$
|
|
4270
|
-
function ownKeys$
|
|
4271
|
-
function _objectSpread$
|
|
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
|
+
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
|
+
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$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; }
|
|
4271
|
+
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; }
|
|
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$S(_objectSpread$S({}, 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$S({}, raw.widgets);
|
|
4484
4484
|
var fixedCount = 0;
|
|
4485
4485
|
var _loop = function _loop() {
|
|
4486
4486
|
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
@@ -4507,7 +4507,7 @@ var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
|
|
|
4507
4507
|
toInstall = 0,
|
|
4508
4508
|
unavailable = 0,
|
|
4509
4509
|
hasUnavailableRequired = false;
|
|
4510
|
-
var _iterator = _createForOfIteratorHelper$
|
|
4510
|
+
var _iterator = _createForOfIteratorHelper$s(widgetDeps),
|
|
4511
4511
|
_step;
|
|
4512
4512
|
try {
|
|
4513
4513
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -5063,8 +5063,8 @@ var DiscoverDashboardsDetail = function DiscoverDashboardsDetail(_ref) {
|
|
|
5063
5063
|
});
|
|
5064
5064
|
};
|
|
5065
5065
|
|
|
5066
|
-
function ownKeys$
|
|
5067
|
-
function _objectSpread$
|
|
5066
|
+
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; }
|
|
5067
|
+
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; }
|
|
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$R(_objectSpread$R({}, importedWorkspace), {}, {
|
|
5313
5313
|
name: dashboardName.trim(),
|
|
5314
5314
|
menuId: menuId,
|
|
5315
5315
|
themeKey: selectedThemeKey
|
|
@@ -6282,9 +6282,9 @@ function cleanIpcError(message) {
|
|
|
6282
6282
|
return match ? match[1] : message;
|
|
6283
6283
|
}
|
|
6284
6284
|
|
|
6285
|
-
function _createForOfIteratorHelper$
|
|
6286
|
-
function _unsupportedIterableToArray$
|
|
6287
|
-
function _arrayLikeToArray$
|
|
6285
|
+
function _createForOfIteratorHelper$r(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$r(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; } } }; }
|
|
6286
|
+
function _unsupportedIterableToArray$r(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$r(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$r(r, a) : void 0; } }
|
|
6287
|
+
function _arrayLikeToArray$r(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; }
|
|
6288
6288
|
|
|
6289
6289
|
/**
|
|
6290
6290
|
* useRegistrySearch — shared hook for browsing and installing registry packages.
|
|
@@ -6398,13 +6398,13 @@ var useRegistrySearch = function useRegistrySearch() {
|
|
|
6398
6398
|
return c.toLowerCase();
|
|
6399
6399
|
}));
|
|
6400
6400
|
widgets = [];
|
|
6401
|
-
_iterator = _createForOfIteratorHelper$
|
|
6401
|
+
_iterator = _createForOfIteratorHelper$r(pkgs);
|
|
6402
6402
|
try {
|
|
6403
6403
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
6404
6404
|
pkg = _step.value;
|
|
6405
6405
|
// Compute missing APIs for the entire package
|
|
6406
6406
|
allApiProviders = [];
|
|
6407
|
-
_iterator2 = _createForOfIteratorHelper$
|
|
6407
|
+
_iterator2 = _createForOfIteratorHelper$r(pkg.providers || []);
|
|
6408
6408
|
try {
|
|
6409
6409
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
6410
6410
|
p = _step2.value;
|
|
@@ -6417,11 +6417,11 @@ var useRegistrySearch = function useRegistrySearch() {
|
|
|
6417
6417
|
} finally {
|
|
6418
6418
|
_iterator2.f();
|
|
6419
6419
|
}
|
|
6420
|
-
_iterator3 = _createForOfIteratorHelper$
|
|
6420
|
+
_iterator3 = _createForOfIteratorHelper$r(pkg.widgets || []);
|
|
6421
6421
|
try {
|
|
6422
6422
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
6423
6423
|
w = _step3.value;
|
|
6424
|
-
_iterator5 = _createForOfIteratorHelper$
|
|
6424
|
+
_iterator5 = _createForOfIteratorHelper$r(w.providers || []);
|
|
6425
6425
|
try {
|
|
6426
6426
|
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
6427
6427
|
_p = _step5.value;
|
|
@@ -6443,7 +6443,7 @@ var useRegistrySearch = function useRegistrySearch() {
|
|
|
6443
6443
|
missingApis = _toConsumableArray(new Set(allApiProviders)).filter(function (api) {
|
|
6444
6444
|
return !capSet.has(api.toLowerCase());
|
|
6445
6445
|
});
|
|
6446
|
-
_iterator4 = _createForOfIteratorHelper$
|
|
6446
|
+
_iterator4 = _createForOfIteratorHelper$r(pkg.widgets || []);
|
|
6447
6447
|
try {
|
|
6448
6448
|
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
6449
6449
|
widget = _step4.value;
|
|
@@ -7064,11 +7064,11 @@ function applyFilters(items, filters, mode) {
|
|
|
7064
7064
|
});
|
|
7065
7065
|
}
|
|
7066
7066
|
|
|
7067
|
-
function _createForOfIteratorHelper$
|
|
7068
|
-
function _unsupportedIterableToArray$
|
|
7069
|
-
function _arrayLikeToArray$
|
|
7070
|
-
function ownKeys$
|
|
7071
|
-
function _objectSpread$
|
|
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
|
+
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
|
+
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$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; }
|
|
7071
|
+
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; }
|
|
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$Q(_objectSpread$Q({}, installResult.workspace), {}, {
|
|
7242
7242
|
name: name.trim(),
|
|
7243
7243
|
menuId: menuId || 1,
|
|
7244
7244
|
themeKey: theme
|
|
@@ -7290,7 +7290,7 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
|
|
|
7290
7290
|
installedNames = new Set(installedList.map(function (w) {
|
|
7291
7291
|
return w.name;
|
|
7292
7292
|
}));
|
|
7293
|
-
_iterator = _createForOfIteratorHelper$
|
|
7293
|
+
_iterator = _createForOfIteratorHelper$q(state.selectedWidgets);
|
|
7294
7294
|
_context2.prev = 13;
|
|
7295
7295
|
_iterator.s();
|
|
7296
7296
|
case 14:
|
|
@@ -7993,8 +7993,8 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
|
|
|
7993
7993
|
});
|
|
7994
7994
|
};
|
|
7995
7995
|
|
|
7996
|
-
function ownKeys$
|
|
7997
|
-
function _objectSpread$
|
|
7996
|
+
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; }
|
|
7997
|
+
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; }
|
|
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$P(_objectSpread$P({}, state), {}, {
|
|
8024
8024
|
step: action.payload
|
|
8025
8025
|
});
|
|
8026
8026
|
case "SET_FILTERS":
|
|
8027
|
-
return _objectSpread$
|
|
8028
|
-
filters: _objectSpread$
|
|
8027
|
+
return _objectSpread$P(_objectSpread$P({}, state), {}, {
|
|
8028
|
+
filters: _objectSpread$P(_objectSpread$P({}, 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$P(_objectSpread$P({}, state), {}, {
|
|
8036
|
+
filters: _objectSpread$P(_objectSpread$P({}, 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$P(_objectSpread$P({}, state), {}, {
|
|
8047
|
+
filters: _objectSpread$P(_objectSpread$P({}, 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$P(_objectSpread$P({}, state), {}, {
|
|
8054
|
+
filters: _objectSpread$P(_objectSpread$P({}, 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$P(_objectSpread$P({}, 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$P(_objectSpread$P({}, 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$P(_objectSpread$P({}, state), {}, {
|
|
8094
8094
|
selectedDashboard: action.payload
|
|
8095
8095
|
});
|
|
8096
8096
|
case "SET_PATH":
|
|
8097
|
-
return _objectSpread$
|
|
8097
|
+
return _objectSpread$P(_objectSpread$P({}, state), {}, {
|
|
8098
8098
|
path: action.payload
|
|
8099
8099
|
});
|
|
8100
8100
|
case "SET_LAYOUT":
|
|
8101
|
-
return _objectSpread$
|
|
8101
|
+
return _objectSpread$P(_objectSpread$P({}, state), {}, {
|
|
8102
8102
|
layout: action.payload
|
|
8103
8103
|
});
|
|
8104
8104
|
case "REORDER_WIDGETS":
|
|
8105
|
-
return _objectSpread$
|
|
8106
|
-
layout: _objectSpread$
|
|
8105
|
+
return _objectSpread$P(_objectSpread$P({}, state), {}, {
|
|
8106
|
+
layout: _objectSpread$P(_objectSpread$P({}, 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$P(_objectSpread$P({}, state), {}, {
|
|
8112
|
+
customization: _objectSpread$P(_objectSpread$P({}, state.customization), action.payload)
|
|
8113
8113
|
});
|
|
8114
8114
|
case "RESET":
|
|
8115
|
-
return _objectSpread$
|
|
8115
|
+
return _objectSpread$P({}, initialState);
|
|
8116
8116
|
default:
|
|
8117
8117
|
return state;
|
|
8118
8118
|
}
|
|
@@ -12764,8 +12764,8 @@ var deepEqual = function deepEqual(a, b, opts) {
|
|
|
12764
12764
|
|
|
12765
12765
|
var deepEqual$1 = /*@__PURE__*/getDefaultExportFromCjs(deepEqual);
|
|
12766
12766
|
|
|
12767
|
-
function ownKeys$
|
|
12768
|
-
function _objectSpread$
|
|
12767
|
+
function ownKeys$O(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; }
|
|
12768
|
+
function _objectSpread$O(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$O(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$O(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12769
12769
|
var PanelEditItem = function PanelEditItem(_ref) {
|
|
12770
12770
|
var _ComponentManager$get;
|
|
12771
12771
|
var workspace = _ref.workspace,
|
|
@@ -12825,7 +12825,7 @@ var PanelEditItem = function PanelEditItem(_ref) {
|
|
|
12825
12825
|
var uuid = newItem.uuid || newItem.uuidString;
|
|
12826
12826
|
if (uuid) {
|
|
12827
12827
|
workspaceTemp.selectedProviders = workspaceTemp.selectedProviders || {};
|
|
12828
|
-
workspaceTemp.selectedProviders[uuid] = _objectSpread$
|
|
12828
|
+
workspaceTemp.selectedProviders[uuid] = _objectSpread$O(_objectSpread$O({}, workspaceTemp.selectedProviders[uuid] || {}), {}, _defineProperty({}, providerType, providerId));
|
|
12829
12829
|
}
|
|
12830
12830
|
onUpdate(newItem, workspaceTemp);
|
|
12831
12831
|
forceUpdate();
|
|
@@ -12954,7 +12954,7 @@ var PanelEditItem = function PanelEditItem(_ref) {
|
|
|
12954
12954
|
var _ref5 = _slicedToArray(_ref4, 2),
|
|
12955
12955
|
name = _ref5[0],
|
|
12956
12956
|
p = _ref5[1];
|
|
12957
|
-
return _objectSpread$
|
|
12957
|
+
return _objectSpread$O({
|
|
12958
12958
|
name: name
|
|
12959
12959
|
}, p);
|
|
12960
12960
|
});
|
|
@@ -12996,11 +12996,11 @@ var PanelEditItem = function PanelEditItem(_ref) {
|
|
|
12996
12996
|
};
|
|
12997
12997
|
|
|
12998
12998
|
var _excluded$6 = ["rows", "cols"];
|
|
12999
|
-
function _createForOfIteratorHelper$
|
|
13000
|
-
function _unsupportedIterableToArray$
|
|
13001
|
-
function _arrayLikeToArray$
|
|
13002
|
-
function ownKeys$
|
|
13003
|
-
function _objectSpread$
|
|
12999
|
+
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; } } }; }
|
|
13000
|
+
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; } }
|
|
13001
|
+
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; }
|
|
13002
|
+
function ownKeys$N(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; }
|
|
13003
|
+
function _objectSpread$N(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$N(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$N(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13004
13004
|
var defaultGrid = {
|
|
13005
13005
|
rows: 1,
|
|
13006
13006
|
cols: 1,
|
|
@@ -13021,7 +13021,7 @@ function GridEditor(_ref) {
|
|
|
13021
13021
|
setGrid = _useState2[1];
|
|
13022
13022
|
var addRow = function addRow() {
|
|
13023
13023
|
var newRow = grid.rows;
|
|
13024
|
-
var newGrid = _objectSpread$
|
|
13024
|
+
var newGrid = _objectSpread$N(_objectSpread$N({}, grid), {}, {
|
|
13025
13025
|
rows: grid.rows + 1
|
|
13026
13026
|
});
|
|
13027
13027
|
for (var col = 0; col < grid.cols; col++) {
|
|
@@ -13036,7 +13036,7 @@ function GridEditor(_ref) {
|
|
|
13036
13036
|
};
|
|
13037
13037
|
var addColumn = function addColumn() {
|
|
13038
13038
|
var newCol = grid.cols;
|
|
13039
|
-
var newGrid = _objectSpread$
|
|
13039
|
+
var newGrid = _objectSpread$N(_objectSpread$N({}, grid), {}, {
|
|
13040
13040
|
cols: grid.cols + 1
|
|
13041
13041
|
});
|
|
13042
13042
|
for (var row = 0; row < grid.rows; row++) {
|
|
@@ -13069,8 +13069,8 @@ function GridEditor(_ref) {
|
|
|
13069
13069
|
});
|
|
13070
13070
|
}
|
|
13071
13071
|
if (grid[nextKey]) {
|
|
13072
|
-
var newGrid = _objectSpread$
|
|
13073
|
-
newGrid[currentKey] = _objectSpread$
|
|
13072
|
+
var newGrid = _objectSpread$N({}, grid);
|
|
13073
|
+
newGrid[currentKey] = _objectSpread$N(_objectSpread$N({}, newGrid[currentKey]), {}, {
|
|
13074
13074
|
colSpan: newGrid[currentKey].colSpan + 1
|
|
13075
13075
|
});
|
|
13076
13076
|
delete newGrid[nextKey];
|
|
@@ -13083,8 +13083,8 @@ function GridEditor(_ref) {
|
|
|
13083
13083
|
var currentKey = "".concat(row, ".").concat(col);
|
|
13084
13084
|
var belowKey = "".concat(row + 1, ".").concat(col);
|
|
13085
13085
|
if (grid[belowKey]) {
|
|
13086
|
-
var newGrid = _objectSpread$
|
|
13087
|
-
newGrid[currentKey] = _objectSpread$
|
|
13086
|
+
var newGrid = _objectSpread$N({}, grid);
|
|
13087
|
+
newGrid[currentKey] = _objectSpread$N(_objectSpread$N({}, newGrid[currentKey]), {}, {
|
|
13088
13088
|
rowSpan: newGrid[currentKey].rowSpan + 1
|
|
13089
13089
|
});
|
|
13090
13090
|
delete newGrid[belowKey];
|
|
@@ -13101,7 +13101,7 @@ function GridEditor(_ref) {
|
|
|
13101
13101
|
var splitCell = function splitCell(row, col) {
|
|
13102
13102
|
var key = "".concat(row, ".").concat(col);
|
|
13103
13103
|
var cell = grid[key];
|
|
13104
|
-
var newGrid = _objectSpread$
|
|
13104
|
+
var newGrid = _objectSpread$N({}, grid);
|
|
13105
13105
|
|
|
13106
13106
|
// we have to check the colspan, and since the colspan is greater than 1
|
|
13107
13107
|
// Only handle horizontal split if colSpan > 1
|
|
@@ -13117,13 +13117,13 @@ function GridEditor(_ref) {
|
|
|
13117
13117
|
var oldKey = "".concat(row, ".").concat(c);
|
|
13118
13118
|
var newKey = "".concat(row, ".").concat(c + 1);
|
|
13119
13119
|
if (newGrid[oldKey]) {
|
|
13120
|
-
newGrid[newKey] = _objectSpread$
|
|
13120
|
+
newGrid[newKey] = _objectSpread$N({}, newGrid[oldKey]);
|
|
13121
13121
|
delete newGrid[oldKey];
|
|
13122
13122
|
}
|
|
13123
13123
|
}
|
|
13124
13124
|
|
|
13125
13125
|
// Update the original cell's colSpan
|
|
13126
|
-
newGrid[key] = _objectSpread$
|
|
13126
|
+
newGrid[key] = _objectSpread$N(_objectSpread$N({}, cell), {}, {
|
|
13127
13127
|
colSpan: cell.colSpan - 1
|
|
13128
13128
|
});
|
|
13129
13129
|
|
|
@@ -13135,7 +13135,7 @@ function GridEditor(_ref) {
|
|
|
13135
13135
|
};
|
|
13136
13136
|
}
|
|
13137
13137
|
if (cell.rowSpan > 1) {
|
|
13138
|
-
newGrid[key] = _objectSpread$
|
|
13138
|
+
newGrid[key] = _objectSpread$N(_objectSpread$N({}, newGrid[key]), {}, {
|
|
13139
13139
|
rowSpan: cell.rowSpan - 1
|
|
13140
13140
|
});
|
|
13141
13141
|
newGrid["".concat(row + 1, ".").concat(col)] = {
|
|
@@ -13151,7 +13151,7 @@ function GridEditor(_ref) {
|
|
|
13151
13151
|
function sortObjectByKeys(obj) {
|
|
13152
13152
|
var sortedKeys = Object.keys(obj).sort();
|
|
13153
13153
|
var sortedObj = {};
|
|
13154
|
-
var _iterator = _createForOfIteratorHelper$
|
|
13154
|
+
var _iterator = _createForOfIteratorHelper$p(sortedKeys),
|
|
13155
13155
|
_step;
|
|
13156
13156
|
try {
|
|
13157
13157
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -13254,7 +13254,7 @@ function GridEditor(_ref) {
|
|
|
13254
13254
|
var fromKey = "".concat(from.row, ".").concat(from.col);
|
|
13255
13255
|
var toKey = "".concat(to.row, ".").concat(to.col);
|
|
13256
13256
|
if (fromKey === toKey) return;
|
|
13257
|
-
var newGrid = _objectSpread$
|
|
13257
|
+
var newGrid = _objectSpread$N({}, grid);
|
|
13258
13258
|
|
|
13259
13259
|
// Swap the cells
|
|
13260
13260
|
var temp = newGrid[fromKey];
|
|
@@ -13280,7 +13280,7 @@ function GridEditor(_ref) {
|
|
|
13280
13280
|
// console.log("Grid updated:", sequencedGrid);
|
|
13281
13281
|
}
|
|
13282
13282
|
function resetGridLayout() {
|
|
13283
|
-
var newGrid = _objectSpread$
|
|
13283
|
+
var newGrid = _objectSpread$N({}, defaultGrid);
|
|
13284
13284
|
setGrid(newGrid);
|
|
13285
13285
|
onUpdate(newGrid);
|
|
13286
13286
|
}
|
|
@@ -13558,8 +13558,8 @@ var PanelEditItemGrid = function PanelEditItemGrid(_ref) {
|
|
|
13558
13558
|
});
|
|
13559
13559
|
};
|
|
13560
13560
|
|
|
13561
|
-
function ownKeys$
|
|
13562
|
-
function _objectSpread$
|
|
13561
|
+
function ownKeys$M(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; }
|
|
13562
|
+
function _objectSpread$M(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$M(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$M(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13563
13563
|
var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
|
|
13564
13564
|
var item = _ref.item;
|
|
13565
13565
|
_ref.workspace;
|
|
@@ -13582,7 +13582,7 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
|
|
|
13582
13582
|
}, [widgetUuid, notificationDefs.length]);
|
|
13583
13583
|
function handleNotifToggle(typeKey, value) {
|
|
13584
13584
|
var _window$mainApi2;
|
|
13585
|
-
var updated = _objectSpread$
|
|
13585
|
+
var updated = _objectSpread$M(_objectSpread$M({}, notifPrefs), {}, _defineProperty({}, typeKey, value));
|
|
13586
13586
|
setNotifPrefs(updated);
|
|
13587
13587
|
if ((_window$mainApi2 = window.mainApi) !== null && _window$mainApi2 !== void 0 && (_window$mainApi2 = _window$mainApi2.notifications) !== null && _window$mainApi2 !== void 0 && _window$mainApi2.setPreferences && widgetUuid) {
|
|
13588
13588
|
window.mainApi.notifications.setPreferences(widgetUuid, _defineProperty({}, typeKey, value));
|
|
@@ -13624,11 +13624,11 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
|
|
|
13624
13624
|
});
|
|
13625
13625
|
};
|
|
13626
13626
|
|
|
13627
|
-
function _createForOfIteratorHelper$
|
|
13628
|
-
function _unsupportedIterableToArray$
|
|
13629
|
-
function _arrayLikeToArray$
|
|
13630
|
-
function ownKeys$
|
|
13631
|
-
function _objectSpread$
|
|
13627
|
+
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; } } }; }
|
|
13628
|
+
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; } }
|
|
13629
|
+
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; }
|
|
13630
|
+
function ownKeys$L(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; }
|
|
13631
|
+
function _objectSpread$L(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$L(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$L(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13632
13632
|
var DAYS = [{
|
|
13633
13633
|
key: "mon",
|
|
13634
13634
|
label: "Mon"
|
|
@@ -13729,7 +13729,7 @@ function TaskScheduleEditor(_ref) {
|
|
|
13729
13729
|
var _window$mainApi;
|
|
13730
13730
|
var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
13731
13731
|
if (!((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && (_window$mainApi = _window$mainApi.scheduler) !== null && _window$mainApi !== void 0 && _window$mainApi.registerTask)) return;
|
|
13732
|
-
var payload = _objectSpread$
|
|
13732
|
+
var payload = _objectSpread$L({
|
|
13733
13733
|
widgetId: widgetId,
|
|
13734
13734
|
widgetName: widgetName,
|
|
13735
13735
|
workspaceId: workspaceId || "",
|
|
@@ -13955,7 +13955,7 @@ var PanelEditItemSchedule = function PanelEditItemSchedule(_ref2) {
|
|
|
13955
13955
|
setIsLoading(true);
|
|
13956
13956
|
window.mainApi.scheduler.getTasks(widgetUuid).then(function (tasks) {
|
|
13957
13957
|
var stateMap = {};
|
|
13958
|
-
var _iterator = _createForOfIteratorHelper$
|
|
13958
|
+
var _iterator = _createForOfIteratorHelper$o(tasks || []),
|
|
13959
13959
|
_step;
|
|
13960
13960
|
try {
|
|
13961
13961
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -16014,8 +16014,8 @@ var WidgetIcon = function WidgetIcon(_ref) {
|
|
|
16014
16014
|
});
|
|
16015
16015
|
};
|
|
16016
16016
|
|
|
16017
|
-
function ownKeys$
|
|
16018
|
-
function _objectSpread$
|
|
16017
|
+
function ownKeys$K(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; }
|
|
16018
|
+
function _objectSpread$K(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$K(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$K(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
16019
16019
|
var ProviderForm = function ProviderForm(_ref) {
|
|
16020
16020
|
var credentialSchema = _ref.credentialSchema,
|
|
16021
16021
|
_ref$initialValues = _ref.initialValues,
|
|
@@ -16060,14 +16060,14 @@ var ProviderForm = function ProviderForm(_ref) {
|
|
|
16060
16060
|
var oldKey = f.key;
|
|
16061
16061
|
if (oldKey && formData[oldKey] !== undefined) {
|
|
16062
16062
|
setFormData(function (fd) {
|
|
16063
|
-
var updated = _objectSpread$
|
|
16063
|
+
var updated = _objectSpread$K({}, fd);
|
|
16064
16064
|
var val = updated[oldKey];
|
|
16065
16065
|
delete updated[oldKey];
|
|
16066
16066
|
if (newKey.trim()) updated[newKey] = val;
|
|
16067
16067
|
return updated;
|
|
16068
16068
|
});
|
|
16069
16069
|
}
|
|
16070
|
-
return _objectSpread$
|
|
16070
|
+
return _objectSpread$K(_objectSpread$K({}, f), {}, {
|
|
16071
16071
|
key: newKey
|
|
16072
16072
|
});
|
|
16073
16073
|
});
|
|
@@ -16079,14 +16079,14 @@ var ProviderForm = function ProviderForm(_ref) {
|
|
|
16079
16079
|
});
|
|
16080
16080
|
if (field !== null && field !== void 0 && field.key) {
|
|
16081
16081
|
setFormData(function (prev) {
|
|
16082
|
-
return _objectSpread$
|
|
16082
|
+
return _objectSpread$K(_objectSpread$K({}, prev), {}, _defineProperty({}, field.key, value));
|
|
16083
16083
|
});
|
|
16084
16084
|
}
|
|
16085
16085
|
};
|
|
16086
16086
|
var handleDynamicSecretToggle = function handleDynamicSecretToggle(id) {
|
|
16087
16087
|
setDynamicFields(function (prev) {
|
|
16088
16088
|
return prev.map(function (f) {
|
|
16089
|
-
return f.id === id ? _objectSpread$
|
|
16089
|
+
return f.id === id ? _objectSpread$K(_objectSpread$K({}, f), {}, {
|
|
16090
16090
|
secret: !f.secret
|
|
16091
16091
|
}) : f;
|
|
16092
16092
|
});
|
|
@@ -16108,7 +16108,7 @@ var ProviderForm = function ProviderForm(_ref) {
|
|
|
16108
16108
|
});
|
|
16109
16109
|
if (field !== null && field !== void 0 && field.key) {
|
|
16110
16110
|
setFormData(function (prev) {
|
|
16111
|
-
var updated = _objectSpread$
|
|
16111
|
+
var updated = _objectSpread$K({}, prev);
|
|
16112
16112
|
delete updated[field.key];
|
|
16113
16113
|
return updated;
|
|
16114
16114
|
});
|
|
@@ -16150,13 +16150,13 @@ var ProviderForm = function ProviderForm(_ref) {
|
|
|
16150
16150
|
*/
|
|
16151
16151
|
var handleInputChange = function handleInputChange(fieldName, value) {
|
|
16152
16152
|
setFormData(function (prev) {
|
|
16153
|
-
return _objectSpread$
|
|
16153
|
+
return _objectSpread$K(_objectSpread$K({}, prev), {}, _defineProperty({}, fieldName, value));
|
|
16154
16154
|
});
|
|
16155
16155
|
|
|
16156
16156
|
// Clear error for this field if it was filled
|
|
16157
16157
|
if (errors[fieldName] && value !== null && value !== void 0 && value.trim()) {
|
|
16158
16158
|
setErrors(function (prev) {
|
|
16159
|
-
var newErrors = _objectSpread$
|
|
16159
|
+
var newErrors = _objectSpread$K({}, prev);
|
|
16160
16160
|
delete newErrors[fieldName];
|
|
16161
16161
|
return newErrors;
|
|
16162
16162
|
});
|
|
@@ -16194,7 +16194,7 @@ var ProviderForm = function ProviderForm(_ref) {
|
|
|
16194
16194
|
// Clear error if filled
|
|
16195
16195
|
if (errors.providerName && value !== null && value !== void 0 && value.trim()) {
|
|
16196
16196
|
setErrors(function (prev) {
|
|
16197
|
-
var newErrors = _objectSpread$
|
|
16197
|
+
var newErrors = _objectSpread$K({}, prev);
|
|
16198
16198
|
delete newErrors.providerName;
|
|
16199
16199
|
return newErrors;
|
|
16200
16200
|
});
|
|
@@ -16431,8 +16431,8 @@ var ToolSelector$1 = function ToolSelector(_ref) {
|
|
|
16431
16431
|
});
|
|
16432
16432
|
};
|
|
16433
16433
|
|
|
16434
|
-
function ownKeys$
|
|
16435
|
-
function _objectSpread$
|
|
16434
|
+
function ownKeys$J(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; }
|
|
16435
|
+
function _objectSpread$J(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$J(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$J(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
16436
16436
|
/**
|
|
16437
16437
|
* Shared MCP utility functions.
|
|
16438
16438
|
*
|
|
@@ -16560,7 +16560,7 @@ function buildMcpConfigFromOverrides(baseMcpConfig, envMappingRows, headerRows)
|
|
|
16560
16560
|
headerTemplate[name] = value;
|
|
16561
16561
|
}
|
|
16562
16562
|
});
|
|
16563
|
-
var config = _objectSpread$
|
|
16563
|
+
var config = _objectSpread$J({}, baseMcpConfig);
|
|
16564
16564
|
if (Object.keys(headerTemplate).length > 0) {
|
|
16565
16565
|
config.headerTemplate = headerTemplate;
|
|
16566
16566
|
} else {
|
|
@@ -16578,7 +16578,7 @@ function buildMcpConfigFromOverrides(baseMcpConfig, envMappingRows, headerRows)
|
|
|
16578
16578
|
envMapping[env] = cred;
|
|
16579
16579
|
}
|
|
16580
16580
|
});
|
|
16581
|
-
return _objectSpread$
|
|
16581
|
+
return _objectSpread$J(_objectSpread$J({}, baseMcpConfig), {}, {
|
|
16582
16582
|
envMapping: envMapping
|
|
16583
16583
|
});
|
|
16584
16584
|
}
|
|
@@ -16819,11 +16819,11 @@ var getUserConfigurableProviders = function getUserConfigurableProviders(provide
|
|
|
16819
16819
|
});
|
|
16820
16820
|
};
|
|
16821
16821
|
|
|
16822
|
-
function _createForOfIteratorHelper$
|
|
16823
|
-
function _unsupportedIterableToArray$
|
|
16824
|
-
function _arrayLikeToArray$
|
|
16825
|
-
function ownKeys$
|
|
16826
|
-
function _objectSpread$
|
|
16822
|
+
function _createForOfIteratorHelper$n(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$n(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; } } }; }
|
|
16823
|
+
function _unsupportedIterableToArray$n(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$n(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$n(r, a) : void 0; } }
|
|
16824
|
+
function _arrayLikeToArray$n(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; }
|
|
16825
|
+
function ownKeys$I(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; }
|
|
16826
|
+
function _objectSpread$I(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$I(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$I(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
16827
16827
|
var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
16828
16828
|
var isOpen = _ref.isOpen,
|
|
16829
16829
|
onClose = _ref.onClose,
|
|
@@ -17018,7 +17018,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
17018
17018
|
.map(function (entry) {
|
|
17019
17019
|
var widget = allWidgets[entry.widgetKey];
|
|
17020
17020
|
if (!widget) return null; // Widget no longer exists
|
|
17021
|
-
return _objectSpread$
|
|
17021
|
+
return _objectSpread$I(_objectSpread$I({
|
|
17022
17022
|
key: entry.widgetKey
|
|
17023
17023
|
}, widget), {}, {
|
|
17024
17024
|
savedProviders: entry.providers || {},
|
|
@@ -17106,11 +17106,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
17106
17106
|
|
|
17107
17107
|
// Flatten all widgets from all packages for the widget list
|
|
17108
17108
|
flatWidgets = [];
|
|
17109
|
-
_iterator = _createForOfIteratorHelper$
|
|
17109
|
+
_iterator = _createForOfIteratorHelper$n(result.packages || []);
|
|
17110
17110
|
try {
|
|
17111
17111
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
17112
17112
|
pkg = _step.value;
|
|
17113
|
-
_iterator2 = _createForOfIteratorHelper$
|
|
17113
|
+
_iterator2 = _createForOfIteratorHelper$n(pkg.widgets || []);
|
|
17114
17114
|
try {
|
|
17115
17115
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
17116
17116
|
widget = _step2.value;
|
|
@@ -17169,7 +17169,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
17169
17169
|
// Get widgets from ComponentManager
|
|
17170
17170
|
var allWidgets = ComponentManager.map();
|
|
17171
17171
|
var widgetList = Object.keys(allWidgets).map(function (key) {
|
|
17172
|
-
return _objectSpread$
|
|
17172
|
+
return _objectSpread$I({
|
|
17173
17173
|
key: key
|
|
17174
17174
|
}, allWidgets[key]);
|
|
17175
17175
|
}).filter(function (widget) {
|
|
@@ -17400,7 +17400,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
17400
17400
|
setInlineCreateType(null);
|
|
17401
17401
|
setInlineCreateSchema({});
|
|
17402
17402
|
setInlineCreateError(null);
|
|
17403
|
-
setSelectedProviders(_objectSpread$
|
|
17403
|
+
setSelectedProviders(_objectSpread$I(_objectSpread$I({}, selectedProviders), {}, _defineProperty({}, providerType, providerName)));
|
|
17404
17404
|
}
|
|
17405
17405
|
};
|
|
17406
17406
|
var handleInlineProviderSubmit = function handleInlineProviderSubmit(formData) {
|
|
@@ -17421,7 +17421,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
17421
17421
|
|
|
17422
17422
|
// Auto-select the newly created provider
|
|
17423
17423
|
setSelectedProviders(function (prev) {
|
|
17424
|
-
return _objectSpread$
|
|
17424
|
+
return _objectSpread$I(_objectSpread$I({}, prev), {}, _defineProperty({}, providerType, providerName));
|
|
17425
17425
|
});
|
|
17426
17426
|
|
|
17427
17427
|
// Collapse the inline form
|
|
@@ -17475,11 +17475,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
17475
17475
|
};
|
|
17476
17476
|
var inlineHandleCredentialChange = function inlineHandleCredentialChange(fieldName, value) {
|
|
17477
17477
|
setInlineCredentialData(function (prev) {
|
|
17478
|
-
return _objectSpread$
|
|
17478
|
+
return _objectSpread$I(_objectSpread$I({}, prev), {}, _defineProperty({}, fieldName, value));
|
|
17479
17479
|
});
|
|
17480
17480
|
if (inlineFormErrors[fieldName] && value !== null && value !== void 0 && value.trim()) {
|
|
17481
17481
|
setInlineFormErrors(function (prev) {
|
|
17482
|
-
var next = _objectSpread$
|
|
17482
|
+
var next = _objectSpread$I({}, prev);
|
|
17483
17483
|
delete next[fieldName];
|
|
17484
17484
|
return next;
|
|
17485
17485
|
});
|
|
@@ -17572,7 +17572,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
17572
17572
|
refreshProviders();
|
|
17573
17573
|
}
|
|
17574
17574
|
setSelectedProviders(function (prev) {
|
|
17575
|
-
return _objectSpread$
|
|
17575
|
+
return _objectSpread$I(_objectSpread$I({}, prev), {}, _defineProperty({}, providerType, providerName));
|
|
17576
17576
|
});
|
|
17577
17577
|
|
|
17578
17578
|
// Reset stepper state
|
|
@@ -17593,7 +17593,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
17593
17593
|
});
|
|
17594
17594
|
};
|
|
17595
17595
|
var handleConfigChange = function handleConfigChange(key, value) {
|
|
17596
|
-
setUserConfigValues(_objectSpread$
|
|
17596
|
+
setUserConfigValues(_objectSpread$I(_objectSpread$I({}, userConfigValues), {}, _defineProperty({}, key, value)));
|
|
17597
17597
|
};
|
|
17598
17598
|
|
|
17599
17599
|
// Install a package from the registry
|
|
@@ -17659,7 +17659,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
17659
17659
|
// Mark items as installed
|
|
17660
17660
|
setProgressWidgets(function (prev) {
|
|
17661
17661
|
return prev.map(function (w) {
|
|
17662
|
-
return _objectSpread$
|
|
17662
|
+
return _objectSpread$I(_objectSpread$I({}, w), {}, {
|
|
17663
17663
|
status: "installed"
|
|
17664
17664
|
});
|
|
17665
17665
|
});
|
|
@@ -17678,7 +17678,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
17678
17678
|
setInstallError(msg);
|
|
17679
17679
|
setProgressWidgets(function (prev) {
|
|
17680
17680
|
return prev.map(function (w) {
|
|
17681
|
-
return _objectSpread$
|
|
17681
|
+
return _objectSpread$I(_objectSpread$I({}, w), {}, {
|
|
17682
17682
|
status: "failed",
|
|
17683
17683
|
error: msg
|
|
17684
17684
|
});
|
|
@@ -17752,7 +17752,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
17752
17752
|
|
|
17753
17753
|
// Phase 3: Save to recent widgets
|
|
17754
17754
|
saveToRecent(selectedWidget, selectedProviders, userConfigValues);
|
|
17755
|
-
onSelectWidget(_objectSpread$
|
|
17755
|
+
onSelectWidget(_objectSpread$I(_objectSpread$I({}, selectedWidget), {}, {
|
|
17756
17756
|
selectedProviders: selectedProviders,
|
|
17757
17757
|
// Pass to parent
|
|
17758
17758
|
userConfigValues: userConfigValues // Pass to parent
|
|
@@ -18389,7 +18389,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
18389
18389
|
setInlineProviderName(value);
|
|
18390
18390
|
if (inlineFormErrors.providerName && value !== null && value !== void 0 && value.trim()) {
|
|
18391
18391
|
setInlineFormErrors(function (prev) {
|
|
18392
|
-
var next = _objectSpread$
|
|
18392
|
+
var next = _objectSpread$I({}, prev);
|
|
18393
18393
|
delete next.providerName;
|
|
18394
18394
|
return next;
|
|
18395
18395
|
});
|
|
@@ -18748,9 +18748,9 @@ var ProviderBadge = function ProviderBadge(_ref) {
|
|
|
18748
18748
|
});
|
|
18749
18749
|
};
|
|
18750
18750
|
|
|
18751
|
-
function _createForOfIteratorHelper$
|
|
18752
|
-
function _unsupportedIterableToArray$
|
|
18753
|
-
function _arrayLikeToArray$
|
|
18751
|
+
function _createForOfIteratorHelper$m(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$m(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; } } }; }
|
|
18752
|
+
function _unsupportedIterableToArray$m(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$m(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$m(r, a) : void 0; } }
|
|
18753
|
+
function _arrayLikeToArray$m(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; }
|
|
18754
18754
|
var WidgetCardHeader = function WidgetCardHeader(_ref) {
|
|
18755
18755
|
var item = _ref.item,
|
|
18756
18756
|
widget = _ref.widget,
|
|
@@ -18795,7 +18795,7 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
|
|
|
18795
18795
|
var el = headerRef.current;
|
|
18796
18796
|
if (!el) return;
|
|
18797
18797
|
var observer = new ResizeObserver(function (entries) {
|
|
18798
|
-
var _iterator = _createForOfIteratorHelper$
|
|
18798
|
+
var _iterator = _createForOfIteratorHelper$m(entries),
|
|
18799
18799
|
_step;
|
|
18800
18800
|
try {
|
|
18801
18801
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -19187,9 +19187,9 @@ var useWidgetSchedulerStatus = function useWidgetSchedulerStatus(widgetId) {
|
|
|
19187
19187
|
};
|
|
19188
19188
|
};
|
|
19189
19189
|
|
|
19190
|
-
function _createForOfIteratorHelper$
|
|
19191
|
-
function _unsupportedIterableToArray$
|
|
19192
|
-
function _arrayLikeToArray$
|
|
19190
|
+
function _createForOfIteratorHelper$l(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$l(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; } } }; }
|
|
19191
|
+
function _unsupportedIterableToArray$l(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$l(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$l(r, a) : void 0; } }
|
|
19192
|
+
function _arrayLikeToArray$l(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; }
|
|
19193
19193
|
function formatCountdown(ms) {
|
|
19194
19194
|
if (ms == null || ms < 0) return "--";
|
|
19195
19195
|
if (ms < 1000) return "< 1s";
|
|
@@ -19306,7 +19306,7 @@ var WidgetCardStatusBar = function WidgetCardStatusBar(_ref) {
|
|
|
19306
19306
|
|
|
19307
19307
|
// Find soonest countdown among enabled tasks
|
|
19308
19308
|
var soonestMs = null;
|
|
19309
|
-
var _iterator = _createForOfIteratorHelper$
|
|
19309
|
+
var _iterator = _createForOfIteratorHelper$l(enabledTasks),
|
|
19310
19310
|
_step;
|
|
19311
19311
|
try {
|
|
19312
19312
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -19759,8 +19759,8 @@ var ProviderSelector = function ProviderSelector(_ref) {
|
|
|
19759
19759
|
});
|
|
19760
19760
|
};
|
|
19761
19761
|
|
|
19762
|
-
function ownKeys$
|
|
19763
|
-
function _objectSpread$
|
|
19762
|
+
function ownKeys$H(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; }
|
|
19763
|
+
function _objectSpread$H(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$H(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$H(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
19764
19764
|
var AdvancedMcpConfig = function AdvancedMcpConfig(_ref) {
|
|
19765
19765
|
var transport = _ref.transport,
|
|
19766
19766
|
envMappingRows = _ref.envMappingRows,
|
|
@@ -19789,7 +19789,7 @@ var AdvancedMcpConfig = function AdvancedMcpConfig(_ref) {
|
|
|
19789
19789
|
var updateEnvRow = function updateEnvRow(id, field, value) {
|
|
19790
19790
|
onEnvMappingRowsChange(function (prev) {
|
|
19791
19791
|
return prev.map(function (row) {
|
|
19792
|
-
return row.id === id ? _objectSpread$
|
|
19792
|
+
return row.id === id ? _objectSpread$H(_objectSpread$H({}, row), {}, _defineProperty({}, field, value)) : row;
|
|
19793
19793
|
});
|
|
19794
19794
|
});
|
|
19795
19795
|
};
|
|
@@ -19814,7 +19814,7 @@ var AdvancedMcpConfig = function AdvancedMcpConfig(_ref) {
|
|
|
19814
19814
|
var updateHeaderRow = function updateHeaderRow(id, field, value) {
|
|
19815
19815
|
onHeaderRowsChange(function (prev) {
|
|
19816
19816
|
return prev.map(function (row) {
|
|
19817
|
-
return row.id === id ? _objectSpread$
|
|
19817
|
+
return row.id === id ? _objectSpread$H(_objectSpread$H({}, row), {}, _defineProperty({}, field, value)) : row;
|
|
19818
19818
|
});
|
|
19819
19819
|
});
|
|
19820
19820
|
};
|
|
@@ -19963,8 +19963,8 @@ var AdvancedMcpConfig = function AdvancedMcpConfig(_ref) {
|
|
|
19963
19963
|
});
|
|
19964
19964
|
};
|
|
19965
19965
|
|
|
19966
|
-
function ownKeys$
|
|
19967
|
-
function _objectSpread$
|
|
19966
|
+
function ownKeys$G(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; }
|
|
19967
|
+
function _objectSpread$G(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$G(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$G(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
19968
19968
|
var McpServerPicker = function McpServerPicker(_ref) {
|
|
19969
19969
|
var _testResult$tools;
|
|
19970
19970
|
var isOpen = _ref.isOpen,
|
|
@@ -20143,11 +20143,11 @@ var McpServerPicker = function McpServerPicker(_ref) {
|
|
|
20143
20143
|
// Handle credential field changes
|
|
20144
20144
|
var handleCredentialChange = function handleCredentialChange(fieldName, value) {
|
|
20145
20145
|
setCredentialData(function (prev) {
|
|
20146
|
-
return _objectSpread$
|
|
20146
|
+
return _objectSpread$G(_objectSpread$G({}, prev), {}, _defineProperty({}, fieldName, value));
|
|
20147
20147
|
});
|
|
20148
20148
|
if (formErrors[fieldName] && value !== null && value !== void 0 && value.trim()) {
|
|
20149
20149
|
setFormErrors(function (prev) {
|
|
20150
|
-
var next = _objectSpread$
|
|
20150
|
+
var next = _objectSpread$G({}, prev);
|
|
20151
20151
|
delete next[fieldName];
|
|
20152
20152
|
return next;
|
|
20153
20153
|
});
|
|
@@ -20485,7 +20485,7 @@ var McpServerPicker = function McpServerPicker(_ref) {
|
|
|
20485
20485
|
setProviderName(value);
|
|
20486
20486
|
if (formErrors.providerName && value !== null && value !== void 0 && value.trim()) {
|
|
20487
20487
|
setFormErrors(function (prev) {
|
|
20488
|
-
var next = _objectSpread$
|
|
20488
|
+
var next = _objectSpread$G({}, prev);
|
|
20489
20489
|
delete next.providerName;
|
|
20490
20490
|
return next;
|
|
20491
20491
|
});
|
|
@@ -20675,8 +20675,8 @@ var McpServerPicker = function McpServerPicker(_ref) {
|
|
|
20675
20675
|
});
|
|
20676
20676
|
};
|
|
20677
20677
|
|
|
20678
|
-
function ownKeys$
|
|
20679
|
-
function _objectSpread$
|
|
20678
|
+
function ownKeys$F(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; }
|
|
20679
|
+
function _objectSpread$F(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$F(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$F(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
20680
20680
|
var USE_ENHANCED_WIDGET_SELECTOR = true; // Set to false to use original modal
|
|
20681
20681
|
|
|
20682
20682
|
/**
|
|
@@ -20722,7 +20722,7 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
20722
20722
|
var _ref3 = _slicedToArray(_ref2, 2),
|
|
20723
20723
|
id = _ref3[0],
|
|
20724
20724
|
p = _ref3[1];
|
|
20725
|
-
return _objectSpread$
|
|
20725
|
+
return _objectSpread$F(_objectSpread$F({}, p), {}, {
|
|
20726
20726
|
id: id,
|
|
20727
20727
|
name: p.name || id
|
|
20728
20728
|
});
|
|
@@ -20809,7 +20809,7 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
20809
20809
|
// so we use its layout to replace any corrupted grid data.
|
|
20810
20810
|
if (workspace && workspace["layout"]) {
|
|
20811
20811
|
var model = new DashboardModel(workspace);
|
|
20812
|
-
setCurrentWorkspace(_objectSpread$
|
|
20812
|
+
setCurrentWorkspace(_objectSpread$F(_objectSpread$F({}, workspace), {}, {
|
|
20813
20813
|
layout: model.layout
|
|
20814
20814
|
}));
|
|
20815
20815
|
} else {
|
|
@@ -20858,7 +20858,7 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
20858
20858
|
}
|
|
20859
20859
|
try {
|
|
20860
20860
|
var hasChildren = config.type === "workspace";
|
|
20861
|
-
var newLayout = addItemToItemLayout(ws.layout, gridItem.id, _objectSpread$
|
|
20861
|
+
var newLayout = addItemToItemLayout(ws.layout, gridItem.id, _objectSpread$F(_objectSpread$F({}, config), {}, {
|
|
20862
20862
|
component: widgetComponentName
|
|
20863
20863
|
}), hasChildren);
|
|
20864
20864
|
var newWidgetId = newLayout[newLayout.length - 1].id;
|
|
@@ -21286,7 +21286,7 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
21286
21286
|
var uuid = widget.uuid || widget.uuidString;
|
|
21287
21287
|
if (uuid) {
|
|
21288
21288
|
newWorkspace.selectedProviders = newWorkspace.selectedProviders || {};
|
|
21289
|
-
newWorkspace.selectedProviders[uuid] = _objectSpread$
|
|
21289
|
+
newWorkspace.selectedProviders[uuid] = _objectSpread$F(_objectSpread$F({}, newWorkspace.selectedProviders[uuid] || {}), {}, _defineProperty({}, providerType, providerId));
|
|
21290
21290
|
}
|
|
21291
21291
|
setCurrentWorkspace(newWorkspace);
|
|
21292
21292
|
}
|
|
@@ -21422,7 +21422,7 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
21422
21422
|
var _gridContainer$grid;
|
|
21423
21423
|
var config = ComponentManager.config(widgetKey);
|
|
21424
21424
|
if (!config) return;
|
|
21425
|
-
var widgetItem = _objectSpread$
|
|
21425
|
+
var widgetItem = _objectSpread$F(_objectSpread$F({}, config), {}, {
|
|
21426
21426
|
component: widgetKey,
|
|
21427
21427
|
key: widgetKey
|
|
21428
21428
|
});
|
|
@@ -21676,7 +21676,7 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
21676
21676
|
onSelectWidget: function onSelectWidget(widget) {
|
|
21677
21677
|
|
|
21678
21678
|
// Add component property from widget.key
|
|
21679
|
-
var widgetWithComponent = _objectSpread$
|
|
21679
|
+
var widgetWithComponent = _objectSpread$F(_objectSpread$F({}, widget), {}, {
|
|
21680
21680
|
component: widget.key
|
|
21681
21681
|
});
|
|
21682
21682
|
handleClickConfirmAdd(widgetWithComponent, dropdownTarget);
|
|
@@ -23305,8 +23305,8 @@ var MissingProviderPrompt = function MissingProviderPrompt(_ref) {
|
|
|
23305
23305
|
});
|
|
23306
23306
|
};
|
|
23307
23307
|
|
|
23308
|
-
function ownKeys$
|
|
23309
|
-
function _objectSpread$
|
|
23308
|
+
function ownKeys$E(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; }
|
|
23309
|
+
function _objectSpread$E(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$E(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$E(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
23310
23310
|
function _callSuper$4(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$4() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
23311
23311
|
function _isNativeReflectConstruct$4() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$4 = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
23312
23312
|
var ProviderErrorBoundary = /*#__PURE__*/function (_Component) {
|
|
@@ -23361,7 +23361,7 @@ var ProviderErrorBoundary = /*#__PURE__*/function (_Component) {
|
|
|
23361
23361
|
_defineProperty(_this, "handleProviderSelect", function (providerType, providerName, credentials) {
|
|
23362
23362
|
|
|
23363
23363
|
// Update local selected providers state
|
|
23364
|
-
var updatedSelected = _objectSpread$
|
|
23364
|
+
var updatedSelected = _objectSpread$E(_objectSpread$E({}, _this.state.selectedProviders), {}, _defineProperty({}, providerType, providerName));
|
|
23365
23365
|
_this.setState({
|
|
23366
23366
|
selectedProviders: updatedSelected
|
|
23367
23367
|
}, function () {
|
|
@@ -23435,8 +23435,8 @@ var ProviderErrorBoundary = /*#__PURE__*/function (_Component) {
|
|
|
23435
23435
|
}(Component);
|
|
23436
23436
|
_defineProperty(ProviderErrorBoundary, "contextType", ProviderContext);
|
|
23437
23437
|
|
|
23438
|
-
function ownKeys$
|
|
23439
|
-
function _objectSpread$
|
|
23438
|
+
function ownKeys$D(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; }
|
|
23439
|
+
function _objectSpread$D(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$D(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$D(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
23440
23440
|
var withProviderDetection = function withProviderDetection(Component) {
|
|
23441
23441
|
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
23442
23442
|
_ref$requiredProvider = _ref.requiredProviders,
|
|
@@ -23461,7 +23461,7 @@ var withProviderDetection = function withProviderDetection(Component) {
|
|
|
23461
23461
|
onProviderSelect: onProviderSelect
|
|
23462
23462
|
});
|
|
23463
23463
|
}
|
|
23464
|
-
return /*#__PURE__*/jsx(Component, _objectSpread$
|
|
23464
|
+
return /*#__PURE__*/jsx(Component, _objectSpread$D({}, props));
|
|
23465
23465
|
};
|
|
23466
23466
|
};
|
|
23467
23467
|
|
|
@@ -24137,8 +24137,8 @@ var WidgetNotFound = function WidgetNotFound(_ref) {
|
|
|
24137
24137
|
});
|
|
24138
24138
|
};
|
|
24139
24139
|
|
|
24140
|
-
function ownKeys$
|
|
24141
|
-
function _objectSpread$
|
|
24140
|
+
function ownKeys$C(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; }
|
|
24141
|
+
function _objectSpread$C(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$C(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$C(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
24142
24142
|
function _callSuper$2(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$2() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
24143
24143
|
function _isNativeReflectConstruct$2() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$2 = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
24144
24144
|
var WidgetErrorBoundary = /*#__PURE__*/function (_Component) {
|
|
@@ -24221,6 +24221,35 @@ var WidgetRenderer = function WidgetRenderer(_ref) {
|
|
|
24221
24221
|
children = _ref$children === void 0 ? null : _ref$children;
|
|
24222
24222
|
var _useContext = useContext(DashboardContext),
|
|
24223
24223
|
dashApi = _useContext.dashApi;
|
|
24224
|
+
|
|
24225
|
+
// When a widget package is updated via Settings > Widgets (or the AI
|
|
24226
|
+
// Widget Builder), the main process broadcasts "widget:installed"
|
|
24227
|
+
// and Dash.js rebroadcasts a "dash:widget-installed" CustomEvent on
|
|
24228
|
+
// window. We listen here, per-instance, and bump a local version
|
|
24229
|
+
// counter when OUR component is the one that was updated. The counter
|
|
24230
|
+
// is embedded in the child's React key so only matching instances
|
|
24231
|
+
// re-mount — unrelated widgets, the sidebar, and the Settings modal
|
|
24232
|
+
// are untouched. Replaces the old global stageKey remount in Dash.js.
|
|
24233
|
+
var _useState = useState(0),
|
|
24234
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
24235
|
+
componentVersion = _useState2[0],
|
|
24236
|
+
setComponentVersion = _useState2[1];
|
|
24237
|
+
useEffect(function () {
|
|
24238
|
+
var onWidgetInstalled = function onWidgetInstalled(e) {
|
|
24239
|
+
var _e$detail;
|
|
24240
|
+
var installed = e === null || e === void 0 || (_e$detail = e.detail) === null || _e$detail === void 0 ? void 0 : _e$detail.widgetName;
|
|
24241
|
+
if (!installed) return;
|
|
24242
|
+
if (installed === component) {
|
|
24243
|
+
setComponentVersion(function (v) {
|
|
24244
|
+
return v + 1;
|
|
24245
|
+
});
|
|
24246
|
+
}
|
|
24247
|
+
};
|
|
24248
|
+
window.addEventListener("dash:widget-installed", onWidgetInstalled);
|
|
24249
|
+
return function () {
|
|
24250
|
+
return window.removeEventListener("dash:widget-installed", onWidgetInstalled);
|
|
24251
|
+
};
|
|
24252
|
+
}, [component]);
|
|
24224
24253
|
try {
|
|
24225
24254
|
var m = ComponentManager.componentMap();
|
|
24226
24255
|
if (component && m) {
|
|
@@ -24269,7 +24298,7 @@ var WidgetRenderer = function WidgetRenderer(_ref) {
|
|
|
24269
24298
|
|
|
24270
24299
|
// Build widgetData for WidgetContext — hooks read from this
|
|
24271
24300
|
var uuidString = getUUID(params.uuid);
|
|
24272
|
-
var widgetData = _objectSpread$
|
|
24301
|
+
var widgetData = _objectSpread$C(_objectSpread$C({}, params), {}, {
|
|
24273
24302
|
uuidString: uuidString,
|
|
24274
24303
|
providers: (config === null || config === void 0 ? void 0 : config.providers) || [],
|
|
24275
24304
|
notifications: (config === null || config === void 0 ? void 0 : config.notifications) || []
|
|
@@ -24293,7 +24322,7 @@ var WidgetRenderer = function WidgetRenderer(_ref) {
|
|
|
24293
24322
|
widgetData: widgetData
|
|
24294
24323
|
};
|
|
24295
24324
|
var hasScheduledTasks = ((config === null || config === void 0 ? void 0 : config.scheduledTasks) || []).length > 0;
|
|
24296
|
-
var widgetElement = children === null ? /*#__PURE__*/jsx(WidgetComponent, _objectSpread$
|
|
24325
|
+
var widgetElement = children === null ? /*#__PURE__*/jsx(WidgetComponent, _objectSpread$C(_objectSpread$C(_objectSpread$C({
|
|
24297
24326
|
id: "widget-nokids-".concat(widgetKey),
|
|
24298
24327
|
listen: function listen(listeners, handlers) {
|
|
24299
24328
|
return helpers.listen(listeners, handlers);
|
|
@@ -24307,7 +24336,7 @@ var WidgetRenderer = function WidgetRenderer(_ref) {
|
|
|
24307
24336
|
backgroundColor: bgColor,
|
|
24308
24337
|
widgetConfig: helpers.config(),
|
|
24309
24338
|
widgetEventNames: helpers.events()
|
|
24310
|
-
}), "widget-nokids-".concat(widgetKey)) : /*#__PURE__*/jsx(WidgetComponent, _objectSpread$
|
|
24339
|
+
}), "widget-nokids-".concat(widgetKey, "-v").concat(componentVersion)) : /*#__PURE__*/jsx(WidgetComponent, _objectSpread$C(_objectSpread$C(_objectSpread$C({
|
|
24311
24340
|
listen: function listen(listeners, handlers) {
|
|
24312
24341
|
return helpers.listen(listeners, handlers);
|
|
24313
24342
|
},
|
|
@@ -24320,7 +24349,7 @@ var WidgetRenderer = function WidgetRenderer(_ref) {
|
|
|
24320
24349
|
}, params), userPrefs), {}, {
|
|
24321
24350
|
backgroundColor: bgColor,
|
|
24322
24351
|
children: children
|
|
24323
|
-
}), "widget-kids-".concat(widgetKey));
|
|
24352
|
+
}), "widget-kids-".concat(widgetKey, "-v").concat(componentVersion));
|
|
24324
24353
|
|
|
24325
24354
|
// Wrap widget rendering with WidgetContext + error boundary
|
|
24326
24355
|
return /*#__PURE__*/jsx(WidgetContext.Provider, {
|
|
@@ -24507,11 +24536,11 @@ var ExternalWidget = function ExternalWidget(_ref) {
|
|
|
24507
24536
|
var GRID_CELL_WIDGET_TYPE = "grid-cell-widget";
|
|
24508
24537
|
var SIDEBAR_WIDGET_TYPE = "sidebar-widget";
|
|
24509
24538
|
|
|
24510
|
-
function _createForOfIteratorHelper$
|
|
24511
|
-
function _unsupportedIterableToArray$
|
|
24512
|
-
function _arrayLikeToArray$
|
|
24513
|
-
function ownKeys$
|
|
24514
|
-
function _objectSpread$
|
|
24539
|
+
function _createForOfIteratorHelper$k(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$k(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; } } }; }
|
|
24540
|
+
function _unsupportedIterableToArray$k(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$k(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$k(r, a) : void 0; } }
|
|
24541
|
+
function _arrayLikeToArray$k(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; }
|
|
24542
|
+
function ownKeys$B(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; }
|
|
24543
|
+
function _objectSpread$B(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$B(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$B(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
24515
24544
|
var DraggableDroppableCellBody = function DraggableDroppableCellBody(_ref) {
|
|
24516
24545
|
var cellNumber = _ref.cellNumber,
|
|
24517
24546
|
gridContainerId = _ref.gridContainerId,
|
|
@@ -24709,7 +24738,7 @@ var LayoutGridContainer = /*#__PURE__*/memo(function (_ref3) {
|
|
|
24709
24738
|
var _ref5 = _slicedToArray(_ref4, 2),
|
|
24710
24739
|
id = _ref5[0],
|
|
24711
24740
|
provider = _ref5[1];
|
|
24712
|
-
return _objectSpread$
|
|
24741
|
+
return _objectSpread$B({
|
|
24713
24742
|
id: id
|
|
24714
24743
|
}, provider);
|
|
24715
24744
|
}) : [];
|
|
@@ -25084,7 +25113,7 @@ var LayoutGridContainer = /*#__PURE__*/memo(function (_ref3) {
|
|
|
25084
25113
|
return selectable["delete"](cn);
|
|
25085
25114
|
});
|
|
25086
25115
|
var resolved = new Set();
|
|
25087
|
-
var _iterator = _createForOfIteratorHelper$
|
|
25116
|
+
var _iterator = _createForOfIteratorHelper$k(selectable),
|
|
25088
25117
|
_step;
|
|
25089
25118
|
try {
|
|
25090
25119
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -25753,7 +25782,7 @@ var LayoutGridContainer = /*#__PURE__*/memo(function (_ref3) {
|
|
|
25753
25782
|
var widgetSpecificSelections = (workspace === null || workspace === void 0 || (_workspace$selectedPr = workspace.selectedProviders) === null || _workspace$selectedPr === void 0 ? void 0 : _workspace$selectedPr[id]) || {};
|
|
25754
25783
|
|
|
25755
25784
|
// Add provider-related props from workspace
|
|
25756
|
-
var itemWithProviders = _objectSpread$
|
|
25785
|
+
var itemWithProviders = _objectSpread$B(_objectSpread$B({}, item), {}, {
|
|
25757
25786
|
selectedProviders: widgetSpecificSelections,
|
|
25758
25787
|
onProviderSelect: onProviderSelect
|
|
25759
25788
|
});
|
|
@@ -27258,11 +27287,11 @@ function isWidgetResolvable(componentKey) {
|
|
|
27258
27287
|
// isMinOrderForItem
|
|
27259
27288
|
// }
|
|
27260
27289
|
|
|
27261
|
-
function ownKeys$
|
|
27262
|
-
function _objectSpread$
|
|
27263
|
-
function _createForOfIteratorHelper$
|
|
27264
|
-
function _unsupportedIterableToArray$
|
|
27265
|
-
function _arrayLikeToArray$
|
|
27290
|
+
function ownKeys$A(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; }
|
|
27291
|
+
function _objectSpread$A(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$A(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$A(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
27292
|
+
function _createForOfIteratorHelper$j(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$j(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; } } }; }
|
|
27293
|
+
function _unsupportedIterableToArray$j(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$j(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$j(r, a) : void 0; } }
|
|
27294
|
+
function _arrayLikeToArray$j(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; }
|
|
27266
27295
|
/**
|
|
27267
27296
|
* The model for all layout components used primarily in the renderLayout method
|
|
27268
27297
|
* @param {Object} layoutItem an object containing various attributes of the layout item
|
|
@@ -27274,7 +27303,7 @@ function _arrayLikeToArray$i(r, a) { (null == a || a > r.length) && (a = r.lengt
|
|
|
27274
27303
|
function sortObjectByKeys(obj) {
|
|
27275
27304
|
var sortedKeys = Object.keys(obj).sort();
|
|
27276
27305
|
var sortedObj = {};
|
|
27277
|
-
var _iterator = _createForOfIteratorHelper$
|
|
27306
|
+
var _iterator = _createForOfIteratorHelper$j(sortedKeys),
|
|
27278
27307
|
_step;
|
|
27279
27308
|
try {
|
|
27280
27309
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -27415,7 +27444,7 @@ var LayoutModel = function LayoutModel(layoutItem, workspaceLayout, dashboardId)
|
|
|
27415
27444
|
|
|
27416
27445
|
// Merge user-entered config values (from EnhancedWidgetDropdown) into userPrefs
|
|
27417
27446
|
if ("userConfigValues" in obj && obj.userConfigValues) {
|
|
27418
|
-
layout.userPrefs = _objectSpread$
|
|
27447
|
+
layout.userPrefs = _objectSpread$A(_objectSpread$A({}, layout.userPrefs), obj.userConfigValues);
|
|
27419
27448
|
}
|
|
27420
27449
|
|
|
27421
27450
|
// Preserve provider selections for this widget
|
|
@@ -27546,6 +27575,822 @@ var SettingsModel = function SettingsModel() {
|
|
|
27546
27575
|
return obj;
|
|
27547
27576
|
};
|
|
27548
27577
|
|
|
27578
|
+
function _createForOfIteratorHelper$i(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$i(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; } } }; }
|
|
27579
|
+
function _unsupportedIterableToArray$i(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$i(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$i(r, a) : void 0; } }
|
|
27580
|
+
function _arrayLikeToArray$i(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; }
|
|
27581
|
+
/**
|
|
27582
|
+
* providerResolution.js
|
|
27583
|
+
*
|
|
27584
|
+
* Shared helpers for walking a workspace and figuring out which widgets
|
|
27585
|
+
* have required providers that are still unresolved after the 3-layer
|
|
27586
|
+
* resolution (widget → workspace → app-default → null). Used by:
|
|
27587
|
+
*
|
|
27588
|
+
* - DashboardConfigModal to render the Providers tab
|
|
27589
|
+
* - DashboardStage toolbar to show the unresolved-count badge
|
|
27590
|
+
*
|
|
27591
|
+
* Both places need the same answer, so keep the logic here to avoid drift
|
|
27592
|
+
* with the resolution inside `useMcpProvider` / `useWebSocketProvider`.
|
|
27593
|
+
*/
|
|
27594
|
+
|
|
27595
|
+
/**
|
|
27596
|
+
* Resolve which provider name a given widget instance would bind to for
|
|
27597
|
+
* the given provider type. Mirrors the 3-layer chain in useMcpProvider
|
|
27598
|
+
* and useWebSocketProvider exactly:
|
|
27599
|
+
*
|
|
27600
|
+
* 1. widget-level override (layoutItem.selectedProviders[type])
|
|
27601
|
+
* 2. workspace-level binding (workspace.selectedProviders[id][type])
|
|
27602
|
+
* 3. app default (any provider of matching type flagged
|
|
27603
|
+
* `isDefaultForType` in appProviders)
|
|
27604
|
+
* 4. null (truly unresolved)
|
|
27605
|
+
*/
|
|
27606
|
+
function resolveProviderName(_ref) {
|
|
27607
|
+
var _layoutItem$selectedP, _workspace$selectedPr;
|
|
27608
|
+
var providerType = _ref.providerType,
|
|
27609
|
+
layoutItem = _ref.layoutItem,
|
|
27610
|
+
widgetId = _ref.widgetId,
|
|
27611
|
+
workspace = _ref.workspace,
|
|
27612
|
+
appProviders = _ref.appProviders;
|
|
27613
|
+
// 1. Widget-level
|
|
27614
|
+
var widgetLevel = layoutItem === null || layoutItem === void 0 || (_layoutItem$selectedP = layoutItem.selectedProviders) === null || _layoutItem$selectedP === void 0 ? void 0 : _layoutItem$selectedP[providerType];
|
|
27615
|
+
if (widgetLevel) return widgetLevel;
|
|
27616
|
+
|
|
27617
|
+
// 2. Workspace-level
|
|
27618
|
+
var workspaceLevel = widgetId && (workspace === null || workspace === void 0 || (_workspace$selectedPr = workspace.selectedProviders) === null || _workspace$selectedPr === void 0 || (_workspace$selectedPr = _workspace$selectedPr[widgetId]) === null || _workspace$selectedPr === void 0 ? void 0 : _workspace$selectedPr[providerType]);
|
|
27619
|
+
if (workspaceLevel) return workspaceLevel;
|
|
27620
|
+
|
|
27621
|
+
// 3. App default — appProviders is either a map keyed by name or an
|
|
27622
|
+
// array. Support both because different callers shape it either way.
|
|
27623
|
+
if (appProviders) {
|
|
27624
|
+
if (Array.isArray(appProviders)) {
|
|
27625
|
+
var _iterator = _createForOfIteratorHelper$i(appProviders),
|
|
27626
|
+
_step;
|
|
27627
|
+
try {
|
|
27628
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
27629
|
+
var data = _step.value;
|
|
27630
|
+
if ((data === null || data === void 0 ? void 0 : data.type) === providerType && (data === null || data === void 0 ? void 0 : data.isDefaultForType) === true) {
|
|
27631
|
+
return data.name;
|
|
27632
|
+
}
|
|
27633
|
+
}
|
|
27634
|
+
} catch (err) {
|
|
27635
|
+
_iterator.e(err);
|
|
27636
|
+
} finally {
|
|
27637
|
+
_iterator.f();
|
|
27638
|
+
}
|
|
27639
|
+
} else if (_typeof(appProviders) === "object") {
|
|
27640
|
+
for (var _i = 0, _Object$entries = Object.entries(appProviders); _i < _Object$entries.length; _i++) {
|
|
27641
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
27642
|
+
name = _Object$entries$_i[0],
|
|
27643
|
+
_data = _Object$entries$_i[1];
|
|
27644
|
+
if ((_data === null || _data === void 0 ? void 0 : _data.type) === providerType && (_data === null || _data === void 0 ? void 0 : _data.isDefaultForType) === true) {
|
|
27645
|
+
return name;
|
|
27646
|
+
}
|
|
27647
|
+
}
|
|
27648
|
+
}
|
|
27649
|
+
}
|
|
27650
|
+
return null;
|
|
27651
|
+
}
|
|
27652
|
+
|
|
27653
|
+
/**
|
|
27654
|
+
* Walk every layout container in a workspace and yield each widget
|
|
27655
|
+
* instance with its concrete layout item. Handles the main layout,
|
|
27656
|
+
* per-page layouts, the sidebar, and nested LayoutGridContainers whose
|
|
27657
|
+
* children are stored on `items`/`layout`.
|
|
27658
|
+
*
|
|
27659
|
+
* Deduplicates by object identity AND by stable id so that shared
|
|
27660
|
+
* references across pages (or two structurally-distinct items that
|
|
27661
|
+
* carry the same uuidString / id, which is the wiring key) are
|
|
27662
|
+
* visited exactly once. Pipeline-style workspaces re-reference the
|
|
27663
|
+
* same widget objects across page layouts; without this dedupe the
|
|
27664
|
+
* Providers/Listeners tabs render one row per reference.
|
|
27665
|
+
*/
|
|
27666
|
+
function forEachWidget(workspace, visit) {
|
|
27667
|
+
if (!workspace) return;
|
|
27668
|
+
var visitedObjects = new WeakSet();
|
|
27669
|
+
var visitedIds = new Set();
|
|
27670
|
+
var stableId = function stableId(item) {
|
|
27671
|
+
return (item === null || item === void 0 ? void 0 : item.uuidString) || (item === null || item === void 0 ? void 0 : item.uuid) || ((item === null || item === void 0 ? void 0 : item.component) != null && (item === null || item === void 0 ? void 0 : item.id) != null ? "".concat(item.component, "|").concat(item.id) : null);
|
|
27672
|
+
};
|
|
27673
|
+
var _walk = function walk(items) {
|
|
27674
|
+
if (!Array.isArray(items)) return;
|
|
27675
|
+
var _iterator2 = _createForOfIteratorHelper$i(items),
|
|
27676
|
+
_step2;
|
|
27677
|
+
try {
|
|
27678
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
27679
|
+
var item = _step2.value;
|
|
27680
|
+
if (!item || _typeof(item) !== "object") continue;
|
|
27681
|
+
// A "widget" is any layout item with a component name.
|
|
27682
|
+
// Containers can have both a component name AND nested items
|
|
27683
|
+
// (e.g. LayoutGridContainer), so still recurse.
|
|
27684
|
+
if (item.component) {
|
|
27685
|
+
var id = stableId(item);
|
|
27686
|
+
var alreadyByRef = visitedObjects.has(item);
|
|
27687
|
+
var alreadyById = id != null && visitedIds.has(id);
|
|
27688
|
+
if (!alreadyByRef && !alreadyById) {
|
|
27689
|
+
visitedObjects.add(item);
|
|
27690
|
+
if (id != null) visitedIds.add(id);
|
|
27691
|
+
visit(item);
|
|
27692
|
+
}
|
|
27693
|
+
}
|
|
27694
|
+
if (Array.isArray(item.items)) _walk(item.items);
|
|
27695
|
+
if (Array.isArray(item.layout)) _walk(item.layout);
|
|
27696
|
+
}
|
|
27697
|
+
} catch (err) {
|
|
27698
|
+
_iterator2.e(err);
|
|
27699
|
+
} finally {
|
|
27700
|
+
_iterator2.f();
|
|
27701
|
+
}
|
|
27702
|
+
};
|
|
27703
|
+
_walk(workspace.layout);
|
|
27704
|
+
if (Array.isArray(workspace.pages)) {
|
|
27705
|
+
var _iterator3 = _createForOfIteratorHelper$i(workspace.pages),
|
|
27706
|
+
_step3;
|
|
27707
|
+
try {
|
|
27708
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
27709
|
+
var page = _step3.value;
|
|
27710
|
+
_walk(page === null || page === void 0 ? void 0 : page.layout);
|
|
27711
|
+
}
|
|
27712
|
+
} catch (err) {
|
|
27713
|
+
_iterator3.e(err);
|
|
27714
|
+
} finally {
|
|
27715
|
+
_iterator3.f();
|
|
27716
|
+
}
|
|
27717
|
+
}
|
|
27718
|
+
_walk(workspace.sidebarLayout);
|
|
27719
|
+
}
|
|
27720
|
+
|
|
27721
|
+
/**
|
|
27722
|
+
* Compute the list of unresolved required providers across a workspace.
|
|
27723
|
+
*
|
|
27724
|
+
* @param {object} args
|
|
27725
|
+
* @param {object} args.workspace The workspace (with layout/pages/sidebarLayout/selectedProviders).
|
|
27726
|
+
* @param {object|Array} args.appProviders
|
|
27727
|
+
* Map keyed by provider name, or an array of provider objects. Each
|
|
27728
|
+
* entry has at least `{ type, isDefaultForType }`.
|
|
27729
|
+
* @param {(componentName: string) => Array<{type, required?, providerClass?}>} args.getWidgetRequirements
|
|
27730
|
+
* Returns the `providers: [...]` declaration from the component's
|
|
27731
|
+
* `.dash.js` (via `ComponentManager.componentMap()[name].providers`).
|
|
27732
|
+
*
|
|
27733
|
+
* @returns {Array<{ widgetId, component, providerType, providerClass, layoutItem }>}
|
|
27734
|
+
* One entry per (widget instance, required provider type) that lacks
|
|
27735
|
+
* a binding.
|
|
27736
|
+
*/
|
|
27737
|
+
function getUnresolvedProviders(_ref2) {
|
|
27738
|
+
var workspace = _ref2.workspace,
|
|
27739
|
+
appProviders = _ref2.appProviders,
|
|
27740
|
+
getWidgetRequirements = _ref2.getWidgetRequirements;
|
|
27741
|
+
if (!workspace || typeof getWidgetRequirements !== "function") return [];
|
|
27742
|
+
var unresolved = [];
|
|
27743
|
+
forEachWidget(workspace, function (item) {
|
|
27744
|
+
var requirements = getWidgetRequirements(item.component) || [];
|
|
27745
|
+
if (!Array.isArray(requirements) || requirements.length === 0) return;
|
|
27746
|
+
var widgetId = item.uuidString || item.uuid || item.id || null;
|
|
27747
|
+
var _iterator4 = _createForOfIteratorHelper$i(requirements),
|
|
27748
|
+
_step4;
|
|
27749
|
+
try {
|
|
27750
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
27751
|
+
var req = _step4.value;
|
|
27752
|
+
if (!req || !req.type) continue;
|
|
27753
|
+
if (req.required === false) continue; // optional, skip
|
|
27754
|
+
|
|
27755
|
+
var name = resolveProviderName({
|
|
27756
|
+
providerType: req.type,
|
|
27757
|
+
layoutItem: item,
|
|
27758
|
+
widgetId: widgetId,
|
|
27759
|
+
workspace: workspace,
|
|
27760
|
+
appProviders: appProviders
|
|
27761
|
+
});
|
|
27762
|
+
if (!name) {
|
|
27763
|
+
unresolved.push({
|
|
27764
|
+
widgetId: widgetId,
|
|
27765
|
+
component: item.component,
|
|
27766
|
+
providerType: req.type,
|
|
27767
|
+
providerClass: req.providerClass || null,
|
|
27768
|
+
layoutItem: item
|
|
27769
|
+
});
|
|
27770
|
+
}
|
|
27771
|
+
}
|
|
27772
|
+
} catch (err) {
|
|
27773
|
+
_iterator4.e(err);
|
|
27774
|
+
} finally {
|
|
27775
|
+
_iterator4.f();
|
|
27776
|
+
}
|
|
27777
|
+
});
|
|
27778
|
+
return unresolved;
|
|
27779
|
+
}
|
|
27780
|
+
|
|
27781
|
+
/**
|
|
27782
|
+
* Group an unresolved-provider list (or any `{widget, providerType}` list)
|
|
27783
|
+
* by provider type, so the Providers tab can render one row per unique
|
|
27784
|
+
* type with N widgets beneath.
|
|
27785
|
+
*/
|
|
27786
|
+
function groupByProviderType(unresolved) {
|
|
27787
|
+
var byType = new Map();
|
|
27788
|
+
var _iterator5 = _createForOfIteratorHelper$i(unresolved || []),
|
|
27789
|
+
_step5;
|
|
27790
|
+
try {
|
|
27791
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
27792
|
+
var u = _step5.value;
|
|
27793
|
+
if (!(u !== null && u !== void 0 && u.providerType)) continue;
|
|
27794
|
+
if (!byType.has(u.providerType)) byType.set(u.providerType, []);
|
|
27795
|
+
byType.get(u.providerType).push(u);
|
|
27796
|
+
}
|
|
27797
|
+
} catch (err) {
|
|
27798
|
+
_iterator5.e(err);
|
|
27799
|
+
} finally {
|
|
27800
|
+
_iterator5.f();
|
|
27801
|
+
}
|
|
27802
|
+
return byType;
|
|
27803
|
+
}
|
|
27804
|
+
|
|
27805
|
+
/**
|
|
27806
|
+
* Summarize every widget in the workspace that requires ANY provider,
|
|
27807
|
+
* regardless of whether it's already resolved. Drives the Providers tab's
|
|
27808
|
+
* "show per-widget overrides" expansion — the modal lists all widgets so
|
|
27809
|
+
* the user can change an explicit override even for types that are
|
|
27810
|
+
* already resolved via the app default.
|
|
27811
|
+
*/
|
|
27812
|
+
function getAllProviderBindings(_ref3) {
|
|
27813
|
+
var workspace = _ref3.workspace,
|
|
27814
|
+
appProviders = _ref3.appProviders,
|
|
27815
|
+
getWidgetRequirements = _ref3.getWidgetRequirements;
|
|
27816
|
+
if (!workspace || typeof getWidgetRequirements !== "function") return [];
|
|
27817
|
+
var bindings = [];
|
|
27818
|
+
forEachWidget(workspace, function (item) {
|
|
27819
|
+
var requirements = getWidgetRequirements(item.component) || [];
|
|
27820
|
+
if (!Array.isArray(requirements) || requirements.length === 0) return;
|
|
27821
|
+
var widgetId = item.uuidString || item.uuid || item.id || null;
|
|
27822
|
+
var _iterator6 = _createForOfIteratorHelper$i(requirements),
|
|
27823
|
+
_step6;
|
|
27824
|
+
try {
|
|
27825
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
27826
|
+
var req = _step6.value;
|
|
27827
|
+
if (!req || !req.type) continue;
|
|
27828
|
+
var name = resolveProviderName({
|
|
27829
|
+
providerType: req.type,
|
|
27830
|
+
layoutItem: item,
|
|
27831
|
+
widgetId: widgetId,
|
|
27832
|
+
workspace: workspace,
|
|
27833
|
+
appProviders: appProviders
|
|
27834
|
+
});
|
|
27835
|
+
bindings.push({
|
|
27836
|
+
widgetId: widgetId,
|
|
27837
|
+
component: item.component,
|
|
27838
|
+
providerType: req.type,
|
|
27839
|
+
providerClass: req.providerClass || null,
|
|
27840
|
+
required: req.required !== false,
|
|
27841
|
+
resolvedProviderName: name,
|
|
27842
|
+
layoutItem: item
|
|
27843
|
+
});
|
|
27844
|
+
}
|
|
27845
|
+
} catch (err) {
|
|
27846
|
+
_iterator6.e(err);
|
|
27847
|
+
} finally {
|
|
27848
|
+
_iterator6.f();
|
|
27849
|
+
}
|
|
27850
|
+
});
|
|
27851
|
+
return bindings;
|
|
27852
|
+
}
|
|
27853
|
+
|
|
27854
|
+
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; }
|
|
27855
|
+
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; }
|
|
27856
|
+
function _createForOfIteratorHelper$h(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$h(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; } } }; }
|
|
27857
|
+
function _unsupportedIterableToArray$h(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$h(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$h(r, a) : void 0; } }
|
|
27858
|
+
function _arrayLikeToArray$h(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; }
|
|
27859
|
+
var EVENT_STRING_RE = /^([^[]+)\[([^\]]+)\]\.(.+)$/;
|
|
27860
|
+
|
|
27861
|
+
/** Parse "Component[itemId].event" → { component, itemId, event }. */
|
|
27862
|
+
function parseEventString(eventString) {
|
|
27863
|
+
if (typeof eventString !== "string") return null;
|
|
27864
|
+
var m = eventString.match(EVENT_STRING_RE);
|
|
27865
|
+
if (!m) return null;
|
|
27866
|
+
return {
|
|
27867
|
+
component: m[1],
|
|
27868
|
+
itemId: m[2],
|
|
27869
|
+
event: m[3]
|
|
27870
|
+
};
|
|
27871
|
+
}
|
|
27872
|
+
|
|
27873
|
+
/** Build an event string in the canonical runtime format. */
|
|
27874
|
+
function formatEventString(component, itemId, event) {
|
|
27875
|
+
return "".concat(component, "[").concat(itemId, "].").concat(event);
|
|
27876
|
+
}
|
|
27877
|
+
|
|
27878
|
+
/**
|
|
27879
|
+
* Get a stable id for a layout item. Layout items historically used
|
|
27880
|
+
* numeric `id`; some newer flows also carry `uuidString`/`uuid`. The
|
|
27881
|
+
* runtime event-string format uses whichever is `item.id`, so we
|
|
27882
|
+
* default to that and fall back to the others for resilience.
|
|
27883
|
+
*/
|
|
27884
|
+
function itemIdOf(item) {
|
|
27885
|
+
if (item == null) return null;
|
|
27886
|
+
if (item.id !== undefined && item.id !== null) return String(item.id);
|
|
27887
|
+
if (item.uuidString) return item.uuidString;
|
|
27888
|
+
if (item.uuid) return item.uuid;
|
|
27889
|
+
return null;
|
|
27890
|
+
}
|
|
27891
|
+
|
|
27892
|
+
/**
|
|
27893
|
+
* Best-effort human label for a layout item: explicit title, then
|
|
27894
|
+
* widget config display name, then component name + short id.
|
|
27895
|
+
*/
|
|
27896
|
+
function labelFor(item, getWidgetConfig) {
|
|
27897
|
+
var _item$userPrefs, _item$userConfig;
|
|
27898
|
+
var cfg = (getWidgetConfig === null || getWidgetConfig === void 0 ? void 0 : getWidgetConfig(item.component)) || null;
|
|
27899
|
+
var explicit = (item === null || item === void 0 || (_item$userPrefs = item.userPrefs) === null || _item$userPrefs === void 0 ? void 0 : _item$userPrefs.title) || (item === null || item === void 0 || (_item$userConfig = item.userConfig) === null || _item$userConfig === void 0 ? void 0 : _item$userConfig.title);
|
|
27900
|
+
if (explicit) return explicit;
|
|
27901
|
+
if (cfg !== null && cfg !== void 0 && cfg.displayName) return cfg.displayName;
|
|
27902
|
+
var id = itemIdOf(item);
|
|
27903
|
+
return "".concat(item.component || "widget").concat(id ? "[".concat(String(id).slice(0, 6), "]") : "");
|
|
27904
|
+
}
|
|
27905
|
+
|
|
27906
|
+
/**
|
|
27907
|
+
* Read the events/eventHandlers metadata for a widget. Items can carry
|
|
27908
|
+
* the arrays inline (older pattern where they got cached onto the
|
|
27909
|
+
* layout item); the current component config carries them via the
|
|
27910
|
+
* ComponentManager catalog. We UNION both so we don't flag a binding
|
|
27911
|
+
* as orphaned just because an inline cache is stale — if the current
|
|
27912
|
+
* widget code declares the event/handler, the binding is valid.
|
|
27913
|
+
*/
|
|
27914
|
+
function eventsOf(item, getWidgetConfig) {
|
|
27915
|
+
var inline = Array.isArray(item.events) ? item.events : [];
|
|
27916
|
+
var cfg = (getWidgetConfig === null || getWidgetConfig === void 0 ? void 0 : getWidgetConfig(item.component)) || {};
|
|
27917
|
+
var fromCfg = Array.isArray(cfg.events) ? cfg.events : [];
|
|
27918
|
+
return _toConsumableArray(new Set([].concat(_toConsumableArray(inline), _toConsumableArray(fromCfg))));
|
|
27919
|
+
}
|
|
27920
|
+
function eventHandlersOf(item, getWidgetConfig) {
|
|
27921
|
+
var inline = Array.isArray(item.eventHandlers) ? item.eventHandlers : [];
|
|
27922
|
+
var cfg = (getWidgetConfig === null || getWidgetConfig === void 0 ? void 0 : getWidgetConfig(item.component)) || {};
|
|
27923
|
+
var fromCfg = Array.isArray(cfg.eventHandlers) ? cfg.eventHandlers : [];
|
|
27924
|
+
return _toConsumableArray(new Set([].concat(_toConsumableArray(inline), _toConsumableArray(fromCfg))));
|
|
27925
|
+
}
|
|
27926
|
+
|
|
27927
|
+
/**
|
|
27928
|
+
* Every widget instance in the workspace that emits at least one event.
|
|
27929
|
+
* Deduplicated by `${component}|${itemId}` — the same compound key that
|
|
27930
|
+
* event strings use at runtime, so any "duplicate" in the tree (same
|
|
27931
|
+
* widget referenced across pages) resolves to the same wiring target.
|
|
27932
|
+
* @returns {Array<{ itemId, component, label, events: string[], key: string }>}
|
|
27933
|
+
*/
|
|
27934
|
+
function getEmitters(workspace, getWidgetConfig) {
|
|
27935
|
+
var byKey = new Map();
|
|
27936
|
+
forEachWidget(workspace, function (item) {
|
|
27937
|
+
var events = eventsOf(item, getWidgetConfig);
|
|
27938
|
+
if (events.length === 0) return;
|
|
27939
|
+
var itemId = itemIdOf(item);
|
|
27940
|
+
if (itemId == null) return;
|
|
27941
|
+
var key = "".concat(item.component, "|").concat(itemId);
|
|
27942
|
+
if (byKey.has(key)) return;
|
|
27943
|
+
byKey.set(key, {
|
|
27944
|
+
key: key,
|
|
27945
|
+
itemId: itemId,
|
|
27946
|
+
component: item.component,
|
|
27947
|
+
label: labelFor(item, getWidgetConfig),
|
|
27948
|
+
events: events
|
|
27949
|
+
});
|
|
27950
|
+
});
|
|
27951
|
+
return Array.from(byKey.values());
|
|
27952
|
+
}
|
|
27953
|
+
|
|
27954
|
+
/**
|
|
27955
|
+
* Every widget instance in the workspace that accepts at least one
|
|
27956
|
+
* handler. Used to populate the receiver dropdown. Deduplicated by
|
|
27957
|
+
* `${component}|${itemId}` (see getEmitters).
|
|
27958
|
+
* @returns {Array<{ itemId, component, label, eventHandlers: string[], listeners: object, key: string }>}
|
|
27959
|
+
*/
|
|
27960
|
+
function getReceivers(workspace, getWidgetConfig) {
|
|
27961
|
+
var byKey = new Map();
|
|
27962
|
+
forEachWidget(workspace, function (item) {
|
|
27963
|
+
var handlers = eventHandlersOf(item, getWidgetConfig);
|
|
27964
|
+
if (handlers.length === 0) return;
|
|
27965
|
+
var itemId = itemIdOf(item);
|
|
27966
|
+
if (itemId == null) return;
|
|
27967
|
+
var key = "".concat(item.component, "|").concat(itemId);
|
|
27968
|
+
if (byKey.has(key)) return;
|
|
27969
|
+
byKey.set(key, {
|
|
27970
|
+
key: key,
|
|
27971
|
+
itemId: itemId,
|
|
27972
|
+
component: item.component,
|
|
27973
|
+
label: labelFor(item, getWidgetConfig),
|
|
27974
|
+
eventHandlers: handlers,
|
|
27975
|
+
listeners: item.listeners || {}
|
|
27976
|
+
});
|
|
27977
|
+
});
|
|
27978
|
+
return Array.from(byKey.values());
|
|
27979
|
+
}
|
|
27980
|
+
|
|
27981
|
+
/**
|
|
27982
|
+
* Flatten every listener binding in the workspace into a list of
|
|
27983
|
+
* { receiverItemId, receiverComponent, handlerName, sourceComponent,
|
|
27984
|
+
* sourceItemId, eventName, raw } tuples. `raw` is the original
|
|
27985
|
+
* event string for round-trip fidelity on remove.
|
|
27986
|
+
*/
|
|
27987
|
+
function getCurrentWiring(workspace) {
|
|
27988
|
+
var wiring = [];
|
|
27989
|
+
forEachWidget(workspace, function (item) {
|
|
27990
|
+
var receiverItemId = itemIdOf(item);
|
|
27991
|
+
if (receiverItemId == null) return;
|
|
27992
|
+
var listeners = item.listeners;
|
|
27993
|
+
if (!listeners || _typeof(listeners) !== "object") return;
|
|
27994
|
+
for (var _i = 0, _Object$entries = Object.entries(listeners); _i < _Object$entries.length; _i++) {
|
|
27995
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
27996
|
+
handlerName = _Object$entries$_i[0],
|
|
27997
|
+
eventList = _Object$entries$_i[1];
|
|
27998
|
+
// Live format is array; defensive guard for legacy object
|
|
27999
|
+
// form (a single source widget keyed under the handler).
|
|
28000
|
+
var events = Array.isArray(eventList) ? eventList : typeof eventList === "string" ? [eventList] : [];
|
|
28001
|
+
var _iterator = _createForOfIteratorHelper$h(events),
|
|
28002
|
+
_step;
|
|
28003
|
+
try {
|
|
28004
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
28005
|
+
var raw = _step.value;
|
|
28006
|
+
var parsed = parseEventString(raw);
|
|
28007
|
+
if (!parsed) continue;
|
|
28008
|
+
wiring.push({
|
|
28009
|
+
receiverItemId: receiverItemId,
|
|
28010
|
+
receiverComponent: item.component,
|
|
28011
|
+
handlerName: handlerName,
|
|
28012
|
+
sourceComponent: parsed.component,
|
|
28013
|
+
sourceItemId: parsed.itemId,
|
|
28014
|
+
eventName: parsed.event,
|
|
28015
|
+
raw: raw
|
|
28016
|
+
});
|
|
28017
|
+
}
|
|
28018
|
+
} catch (err) {
|
|
28019
|
+
_iterator.e(err);
|
|
28020
|
+
} finally {
|
|
28021
|
+
_iterator.f();
|
|
28022
|
+
}
|
|
28023
|
+
}
|
|
28024
|
+
});
|
|
28025
|
+
return wiring;
|
|
28026
|
+
}
|
|
28027
|
+
|
|
28028
|
+
/**
|
|
28029
|
+
* Detect listener bindings that are no longer valid: the source widget
|
|
28030
|
+
* doesn't exist in the workspace anymore, or the source widget doesn't
|
|
28031
|
+
* declare the event, or the receiver doesn't declare the handler.
|
|
28032
|
+
* Each entry includes a `reason` so the modal can show a sensible
|
|
28033
|
+
* message.
|
|
28034
|
+
*/
|
|
28035
|
+
function getOrphanedListeners(workspace, getWidgetConfig) {
|
|
28036
|
+
var wiring = getCurrentWiring(workspace);
|
|
28037
|
+
if (wiring.length === 0) return [];
|
|
28038
|
+
|
|
28039
|
+
// Build two lookups:
|
|
28040
|
+
// byCompositeKey: `${component}|${itemId}` → widget meta (primary)
|
|
28041
|
+
// byItemId: `${itemId}` → widget meta (fallback,
|
|
28042
|
+
// used only for the "source-missing" check where
|
|
28043
|
+
// the wiring's component can't be trusted yet)
|
|
28044
|
+
// The composite key matches how the runtime event-string
|
|
28045
|
+
// (`Component[itemId].event`) identifies a widget, so orphan
|
|
28046
|
+
// decisions line up with what actually fires at runtime.
|
|
28047
|
+
var byCompositeKey = new Map();
|
|
28048
|
+
var byItemId = new Map();
|
|
28049
|
+
forEachWidget(workspace, function (item) {
|
|
28050
|
+
var id = itemIdOf(item);
|
|
28051
|
+
if (id == null) return;
|
|
28052
|
+
var meta = {
|
|
28053
|
+
component: item.component,
|
|
28054
|
+
events: eventsOf(item, getWidgetConfig),
|
|
28055
|
+
eventHandlers: eventHandlersOf(item, getWidgetConfig)
|
|
28056
|
+
};
|
|
28057
|
+
byCompositeKey.set("".concat(item.component, "|").concat(id), meta);
|
|
28058
|
+
// First-seen wins on numeric-id collisions; good enough for the
|
|
28059
|
+
// "does any widget with this id exist?" fallback.
|
|
28060
|
+
if (!byItemId.has(id)) byItemId.set(id, meta);
|
|
28061
|
+
});
|
|
28062
|
+
var orphans = [];
|
|
28063
|
+
var _iterator2 = _createForOfIteratorHelper$h(wiring),
|
|
28064
|
+
_step2;
|
|
28065
|
+
try {
|
|
28066
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
28067
|
+
var w = _step2.value;
|
|
28068
|
+
var srcKey = "".concat(w.sourceComponent, "|").concat(w.sourceItemId);
|
|
28069
|
+
var src = byCompositeKey.get(srcKey);
|
|
28070
|
+
if (!src) {
|
|
28071
|
+
// No (component, id) match. If some OTHER widget still owns
|
|
28072
|
+
// this id, the source component changed; otherwise it's truly
|
|
28073
|
+
// missing. Preserves the user's ability to see whether a
|
|
28074
|
+
// rename happened vs. a delete.
|
|
28075
|
+
var fallback = byItemId.get(String(w.sourceItemId));
|
|
28076
|
+
orphans.push(_objectSpread$z(_objectSpread$z({}, w), {}, {
|
|
28077
|
+
reason: fallback ? "source-component-mismatch" : "source-missing"
|
|
28078
|
+
}));
|
|
28079
|
+
continue;
|
|
28080
|
+
}
|
|
28081
|
+
if (!src.events.includes(w.eventName)) {
|
|
28082
|
+
orphans.push(_objectSpread$z(_objectSpread$z({}, w), {}, {
|
|
28083
|
+
reason: "event-not-emitted"
|
|
28084
|
+
}));
|
|
28085
|
+
continue;
|
|
28086
|
+
}
|
|
28087
|
+
var receiverKey = "".concat(w.receiverComponent, "|").concat(w.receiverItemId);
|
|
28088
|
+
var receiver = byCompositeKey.get(receiverKey);
|
|
28089
|
+
if (receiver && !receiver.eventHandlers.includes(w.handlerName)) {
|
|
28090
|
+
orphans.push(_objectSpread$z(_objectSpread$z({}, w), {}, {
|
|
28091
|
+
reason: "handler-not-declared"
|
|
28092
|
+
}));
|
|
28093
|
+
}
|
|
28094
|
+
}
|
|
28095
|
+
} catch (err) {
|
|
28096
|
+
_iterator2.e(err);
|
|
28097
|
+
} finally {
|
|
28098
|
+
_iterator2.f();
|
|
28099
|
+
}
|
|
28100
|
+
return orphans;
|
|
28101
|
+
}
|
|
28102
|
+
|
|
28103
|
+
/**
|
|
28104
|
+
* Mutate a workspace tree in place, removing listener bindings whose
|
|
28105
|
+
* source widget is not present in the workspace. Pure: doesn't need
|
|
28106
|
+
* ComponentManager, so it's safe to call from WorkspaceModel during
|
|
28107
|
+
* load — the workspace's own tree is the only source of truth.
|
|
28108
|
+
*
|
|
28109
|
+
* Handles the four cases producing a "source-missing" orphan:
|
|
28110
|
+
* - the emitter widget was deleted
|
|
28111
|
+
* - the emitter widget's id now belongs to a different component
|
|
28112
|
+
* (stored binding has stale component name)
|
|
28113
|
+
* - the source string failed to parse (legacy/garbage data)
|
|
28114
|
+
*
|
|
28115
|
+
* Leaves "event-not-emitted" / "handler-not-declared" cases untouched
|
|
28116
|
+
* because they require the current widget catalog to decide — those
|
|
28117
|
+
* are handled at runtime with full ComponentManager access.
|
|
28118
|
+
*
|
|
28119
|
+
* @returns {number} count of bindings removed (for logging/diagnostics)
|
|
28120
|
+
*/
|
|
28121
|
+
function pruneDeadListenerReferences(workspace) {
|
|
28122
|
+
if (!workspace) return 0;
|
|
28123
|
+
|
|
28124
|
+
// Build the set of live widgets in the tree, keyed by the same
|
|
28125
|
+
// `${component}|${itemId}` the runtime uses to resolve events.
|
|
28126
|
+
var liveKeys = new Set();
|
|
28127
|
+
var _walkForLive = function walkForLive(items) {
|
|
28128
|
+
if (!Array.isArray(items)) return;
|
|
28129
|
+
var _iterator3 = _createForOfIteratorHelper$h(items),
|
|
28130
|
+
_step3;
|
|
28131
|
+
try {
|
|
28132
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
28133
|
+
var item = _step3.value;
|
|
28134
|
+
if (!item || _typeof(item) !== "object") continue;
|
|
28135
|
+
if (item.component) {
|
|
28136
|
+
var id = itemIdOf(item);
|
|
28137
|
+
if (id != null) liveKeys.add("".concat(item.component, "|").concat(id));
|
|
28138
|
+
}
|
|
28139
|
+
if (Array.isArray(item.items)) _walkForLive(item.items);
|
|
28140
|
+
if (Array.isArray(item.layout)) _walkForLive(item.layout);
|
|
28141
|
+
}
|
|
28142
|
+
} catch (err) {
|
|
28143
|
+
_iterator3.e(err);
|
|
28144
|
+
} finally {
|
|
28145
|
+
_iterator3.f();
|
|
28146
|
+
}
|
|
28147
|
+
};
|
|
28148
|
+
_walkForLive(workspace.layout);
|
|
28149
|
+
if (Array.isArray(workspace.pages)) {
|
|
28150
|
+
var _iterator4 = _createForOfIteratorHelper$h(workspace.pages),
|
|
28151
|
+
_step4;
|
|
28152
|
+
try {
|
|
28153
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
28154
|
+
var page = _step4.value;
|
|
28155
|
+
_walkForLive(page === null || page === void 0 ? void 0 : page.layout);
|
|
28156
|
+
}
|
|
28157
|
+
} catch (err) {
|
|
28158
|
+
_iterator4.e(err);
|
|
28159
|
+
} finally {
|
|
28160
|
+
_iterator4.f();
|
|
28161
|
+
}
|
|
28162
|
+
}
|
|
28163
|
+
_walkForLive(workspace.sidebarLayout);
|
|
28164
|
+
var removed = 0;
|
|
28165
|
+
var _pruneListeners = function pruneListeners(items) {
|
|
28166
|
+
if (!Array.isArray(items)) return;
|
|
28167
|
+
var _iterator5 = _createForOfIteratorHelper$h(items),
|
|
28168
|
+
_step5;
|
|
28169
|
+
try {
|
|
28170
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
28171
|
+
var item = _step5.value;
|
|
28172
|
+
if (!item || _typeof(item) !== "object") continue;
|
|
28173
|
+
if (item.listeners && _typeof(item.listeners) === "object") {
|
|
28174
|
+
for (var _i2 = 0, _Object$keys = Object.keys(item.listeners); _i2 < _Object$keys.length; _i2++) {
|
|
28175
|
+
var handler = _Object$keys[_i2];
|
|
28176
|
+
var events = item.listeners[handler];
|
|
28177
|
+
if (!Array.isArray(events)) continue;
|
|
28178
|
+
var kept = [];
|
|
28179
|
+
var _iterator6 = _createForOfIteratorHelper$h(events),
|
|
28180
|
+
_step6;
|
|
28181
|
+
try {
|
|
28182
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
28183
|
+
var raw = _step6.value;
|
|
28184
|
+
var parsed = parseEventString(raw);
|
|
28185
|
+
if (parsed && liveKeys.has("".concat(parsed.component, "|").concat(parsed.itemId))) {
|
|
28186
|
+
kept.push(raw);
|
|
28187
|
+
} else {
|
|
28188
|
+
removed += 1;
|
|
28189
|
+
}
|
|
28190
|
+
}
|
|
28191
|
+
} catch (err) {
|
|
28192
|
+
_iterator6.e(err);
|
|
28193
|
+
} finally {
|
|
28194
|
+
_iterator6.f();
|
|
28195
|
+
}
|
|
28196
|
+
if (kept.length === 0) {
|
|
28197
|
+
delete item.listeners[handler];
|
|
28198
|
+
} else if (kept.length !== events.length) {
|
|
28199
|
+
item.listeners[handler] = kept;
|
|
28200
|
+
}
|
|
28201
|
+
}
|
|
28202
|
+
}
|
|
28203
|
+
if (Array.isArray(item.items)) _pruneListeners(item.items);
|
|
28204
|
+
if (Array.isArray(item.layout)) _pruneListeners(item.layout);
|
|
28205
|
+
}
|
|
28206
|
+
} catch (err) {
|
|
28207
|
+
_iterator5.e(err);
|
|
28208
|
+
} finally {
|
|
28209
|
+
_iterator5.f();
|
|
28210
|
+
}
|
|
28211
|
+
};
|
|
28212
|
+
_pruneListeners(workspace.layout);
|
|
28213
|
+
if (Array.isArray(workspace.pages)) {
|
|
28214
|
+
var _iterator7 = _createForOfIteratorHelper$h(workspace.pages),
|
|
28215
|
+
_step7;
|
|
28216
|
+
try {
|
|
28217
|
+
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
28218
|
+
var _page = _step7.value;
|
|
28219
|
+
_pruneListeners(_page === null || _page === void 0 ? void 0 : _page.layout);
|
|
28220
|
+
}
|
|
28221
|
+
} catch (err) {
|
|
28222
|
+
_iterator7.e(err);
|
|
28223
|
+
} finally {
|
|
28224
|
+
_iterator7.f();
|
|
28225
|
+
}
|
|
28226
|
+
}
|
|
28227
|
+
_pruneListeners(workspace.sidebarLayout);
|
|
28228
|
+
return removed;
|
|
28229
|
+
}
|
|
28230
|
+
|
|
28231
|
+
/**
|
|
28232
|
+
* Apply a staged delta to a workspace's listener bindings and return a
|
|
28233
|
+
* NEW workspace object (deep-cloned along the modified path).
|
|
28234
|
+
*
|
|
28235
|
+
* `adds` / `removes` are arrays of
|
|
28236
|
+
* { receiverItemId, handlerName, sourceComponent, sourceItemId, eventName }
|
|
28237
|
+
*
|
|
28238
|
+
* Removes may also pass `raw` (the exact pre-existing event string) for
|
|
28239
|
+
* a precise match; otherwise we match on the canonical formatted form.
|
|
28240
|
+
*/
|
|
28241
|
+
function applyWiringChanges(workspace, _ref) {
|
|
28242
|
+
var _ref$adds = _ref.adds,
|
|
28243
|
+
adds = _ref$adds === void 0 ? [] : _ref$adds,
|
|
28244
|
+
_ref$removes = _ref.removes,
|
|
28245
|
+
removes = _ref$removes === void 0 ? [] : _ref$removes;
|
|
28246
|
+
if (!workspace) return workspace;
|
|
28247
|
+
if (adds.length === 0 && removes.length === 0) return workspace;
|
|
28248
|
+
|
|
28249
|
+
// Group changes by receiver for cheap per-item updates.
|
|
28250
|
+
var byReceiver = new Map();
|
|
28251
|
+
var ensure = function ensure(id) {
|
|
28252
|
+
if (!byReceiver.has(id)) byReceiver.set(id, {
|
|
28253
|
+
adds: [],
|
|
28254
|
+
removes: []
|
|
28255
|
+
});
|
|
28256
|
+
return byReceiver.get(id);
|
|
28257
|
+
};
|
|
28258
|
+
var _iterator8 = _createForOfIteratorHelper$h(adds),
|
|
28259
|
+
_step8;
|
|
28260
|
+
try {
|
|
28261
|
+
for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
|
|
28262
|
+
var a = _step8.value;
|
|
28263
|
+
if (!a.receiverItemId) continue;
|
|
28264
|
+
ensure(String(a.receiverItemId)).adds.push(a);
|
|
28265
|
+
}
|
|
28266
|
+
} catch (err) {
|
|
28267
|
+
_iterator8.e(err);
|
|
28268
|
+
} finally {
|
|
28269
|
+
_iterator8.f();
|
|
28270
|
+
}
|
|
28271
|
+
var _iterator9 = _createForOfIteratorHelper$h(removes),
|
|
28272
|
+
_step9;
|
|
28273
|
+
try {
|
|
28274
|
+
for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
|
|
28275
|
+
var r = _step9.value;
|
|
28276
|
+
if (!r.receiverItemId) continue;
|
|
28277
|
+
ensure(String(r.receiverItemId)).removes.push(r);
|
|
28278
|
+
}
|
|
28279
|
+
|
|
28280
|
+
// Walk the tree and rebuild listeners on every touched item. We do
|
|
28281
|
+
// shallow clones along the path so React change detection is
|
|
28282
|
+
// reliable — but the tree shape is preserved.
|
|
28283
|
+
} catch (err) {
|
|
28284
|
+
_iterator9.e(err);
|
|
28285
|
+
} finally {
|
|
28286
|
+
_iterator9.f();
|
|
28287
|
+
}
|
|
28288
|
+
var cloneList = function cloneList(items) {
|
|
28289
|
+
return Array.isArray(items) ? items.map(function (item) {
|
|
28290
|
+
return transform(item);
|
|
28291
|
+
}) : items;
|
|
28292
|
+
};
|
|
28293
|
+
var transform = function transform(item) {
|
|
28294
|
+
if (!item || _typeof(item) !== "object") return item;
|
|
28295
|
+
var next = item;
|
|
28296
|
+
var id = itemIdOf(item);
|
|
28297
|
+
var change = id != null ? byReceiver.get(String(id)) : null;
|
|
28298
|
+
if (change) {
|
|
28299
|
+
var newListeners = applyToItem(item.listeners || {}, change);
|
|
28300
|
+
next = _objectSpread$z(_objectSpread$z({}, next), {}, {
|
|
28301
|
+
listeners: newListeners
|
|
28302
|
+
});
|
|
28303
|
+
}
|
|
28304
|
+
if (Array.isArray(next.items)) {
|
|
28305
|
+
next = _objectSpread$z(_objectSpread$z({}, next), {}, {
|
|
28306
|
+
items: cloneList(next.items)
|
|
28307
|
+
});
|
|
28308
|
+
}
|
|
28309
|
+
if (Array.isArray(next.layout)) {
|
|
28310
|
+
next = _objectSpread$z(_objectSpread$z({}, next), {}, {
|
|
28311
|
+
layout: cloneList(next.layout)
|
|
28312
|
+
});
|
|
28313
|
+
}
|
|
28314
|
+
return next;
|
|
28315
|
+
};
|
|
28316
|
+
var updatedWs = _objectSpread$z({}, workspace);
|
|
28317
|
+
if (Array.isArray(workspace.layout)) {
|
|
28318
|
+
updatedWs.layout = cloneList(workspace.layout);
|
|
28319
|
+
}
|
|
28320
|
+
if (Array.isArray(workspace.pages)) {
|
|
28321
|
+
updatedWs.pages = workspace.pages.map(function (page) {
|
|
28322
|
+
return _objectSpread$z(_objectSpread$z({}, page), {}, {
|
|
28323
|
+
layout: cloneList(page.layout)
|
|
28324
|
+
});
|
|
28325
|
+
});
|
|
28326
|
+
}
|
|
28327
|
+
if (Array.isArray(workspace.sidebarLayout)) {
|
|
28328
|
+
updatedWs.sidebarLayout = cloneList(workspace.sidebarLayout);
|
|
28329
|
+
}
|
|
28330
|
+
return updatedWs;
|
|
28331
|
+
}
|
|
28332
|
+
function applyToItem(listeners, _ref2) {
|
|
28333
|
+
var adds = _ref2.adds,
|
|
28334
|
+
removes = _ref2.removes;
|
|
28335
|
+
// Deep enough clone for handler arrays.
|
|
28336
|
+
var next = {};
|
|
28337
|
+
for (var _i3 = 0, _Object$entries2 = Object.entries(listeners); _i3 < _Object$entries2.length; _i3++) {
|
|
28338
|
+
var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i3], 2),
|
|
28339
|
+
k = _Object$entries2$_i[0],
|
|
28340
|
+
v = _Object$entries2$_i[1];
|
|
28341
|
+
next[k] = Array.isArray(v) ? _toConsumableArray(v) : v;
|
|
28342
|
+
}
|
|
28343
|
+
|
|
28344
|
+
// Removes first so a re-add (rare) lands.
|
|
28345
|
+
var _iterator0 = _createForOfIteratorHelper$h(removes),
|
|
28346
|
+
_step0;
|
|
28347
|
+
try {
|
|
28348
|
+
var _loop = function _loop() {
|
|
28349
|
+
var r = _step0.value;
|
|
28350
|
+
var target = r.handlerName;
|
|
28351
|
+
if (!target) return 0; // continue
|
|
28352
|
+
var events = next[target];
|
|
28353
|
+
if (!Array.isArray(events)) return 0; // continue
|
|
28354
|
+
var eventStr = r.raw || formatEventString(r.sourceComponent, r.sourceItemId, r.eventName);
|
|
28355
|
+
var filtered = events.filter(function (e) {
|
|
28356
|
+
return e !== eventStr;
|
|
28357
|
+
});
|
|
28358
|
+
if (filtered.length === 0) {
|
|
28359
|
+
delete next[target];
|
|
28360
|
+
} else {
|
|
28361
|
+
next[target] = filtered;
|
|
28362
|
+
}
|
|
28363
|
+
},
|
|
28364
|
+
_ret;
|
|
28365
|
+
for (_iterator0.s(); !(_step0 = _iterator0.n()).done;) {
|
|
28366
|
+
_ret = _loop();
|
|
28367
|
+
if (_ret === 0) continue;
|
|
28368
|
+
}
|
|
28369
|
+
} catch (err) {
|
|
28370
|
+
_iterator0.e(err);
|
|
28371
|
+
} finally {
|
|
28372
|
+
_iterator0.f();
|
|
28373
|
+
}
|
|
28374
|
+
var _iterator1 = _createForOfIteratorHelper$h(adds),
|
|
28375
|
+
_step1;
|
|
28376
|
+
try {
|
|
28377
|
+
for (_iterator1.s(); !(_step1 = _iterator1.n()).done;) {
|
|
28378
|
+
var a = _step1.value;
|
|
28379
|
+
var target = a.handlerName;
|
|
28380
|
+
if (!target) continue;
|
|
28381
|
+
var eventStr = formatEventString(a.sourceComponent, a.sourceItemId, a.eventName);
|
|
28382
|
+
var existing = Array.isArray(next[target]) ? next[target] : [];
|
|
28383
|
+
if (existing.includes(eventStr)) continue;
|
|
28384
|
+
next[target] = [].concat(_toConsumableArray(existing), [eventStr]);
|
|
28385
|
+
}
|
|
28386
|
+
} catch (err) {
|
|
28387
|
+
_iterator1.e(err);
|
|
28388
|
+
} finally {
|
|
28389
|
+
_iterator1.f();
|
|
28390
|
+
}
|
|
28391
|
+
return next;
|
|
28392
|
+
}
|
|
28393
|
+
|
|
27549
28394
|
/**
|
|
27550
28395
|
* Default layout for a brand-new workspace: a single 1x1 grid container
|
|
27551
28396
|
* with one empty cell. Mirrors DashboardModel._initializeLayout().
|
|
@@ -27673,6 +28518,13 @@ var WorkspaceModel = function WorkspaceModel(workspaceItem) {
|
|
|
27673
28518
|
workspace.menuId = "menuId" in obj ? obj["menuId"] : 1;
|
|
27674
28519
|
workspace.selectedProviders = "selectedProviders" in obj ? obj["selectedProviders"] : {};
|
|
27675
28520
|
workspace.themeKey = "themeKey" in obj ? obj["themeKey"] : null;
|
|
28521
|
+
|
|
28522
|
+
// Strip any listener bindings whose source widget is no longer in
|
|
28523
|
+
// the tree. These "orphan" bindings are dead — they don't match any
|
|
28524
|
+
// live publisher and never fire — so they're safe to remove at load
|
|
28525
|
+
// time before the renderer wires up subscriptions. Keeps stored
|
|
28526
|
+
// workspaces self-consistent without the user having to do anything.
|
|
28527
|
+
pruneDeadListenerReferences(workspace);
|
|
27676
28528
|
return sanitizeWorkspaceObject(workspace);
|
|
27677
28529
|
// return workspace;
|
|
27678
28530
|
};
|
|
@@ -28009,9 +28861,9 @@ var MenuItemModel = function MenuItemModel() {
|
|
|
28009
28861
|
|
|
28010
28862
|
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; }
|
|
28011
28863
|
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; }
|
|
28012
|
-
function _createForOfIteratorHelper$
|
|
28013
|
-
function _unsupportedIterableToArray$
|
|
28014
|
-
function _arrayLikeToArray$
|
|
28864
|
+
function _createForOfIteratorHelper$g(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$g(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; } } }; }
|
|
28865
|
+
function _unsupportedIterableToArray$g(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$g(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$g(r, a) : void 0; } }
|
|
28866
|
+
function _arrayLikeToArray$g(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; }
|
|
28015
28867
|
/**
|
|
28016
28868
|
* A Model for a Workspace (Dashboard)
|
|
28017
28869
|
* The Dashboard in this instance is the entire Layout inclusive of the workspaces and widgets
|
|
@@ -28072,12 +28924,18 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
28072
28924
|
}
|
|
28073
28925
|
obj = null;
|
|
28074
28926
|
|
|
28927
|
+
// Strip any listener bindings whose source widget is no longer in
|
|
28928
|
+
// the tree — dead bindings never fire and just clutter the stored
|
|
28929
|
+
// workspace. Safe at model-init time because it's purely tree-local
|
|
28930
|
+
// (doesn't need ComponentManager).
|
|
28931
|
+
pruneDeadListenerReferences(this);
|
|
28932
|
+
|
|
28075
28933
|
// Normalize all grids on load to repair any persisted corruption
|
|
28076
28934
|
this._normalizeAllGrids();
|
|
28077
28935
|
|
|
28078
28936
|
// Also normalize grids within pages
|
|
28079
28937
|
if (this.pages.length > 0) {
|
|
28080
|
-
var _iterator = _createForOfIteratorHelper$
|
|
28938
|
+
var _iterator = _createForOfIteratorHelper$g(this.pages),
|
|
28081
28939
|
_step;
|
|
28082
28940
|
try {
|
|
28083
28941
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -30053,7 +30911,7 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
30053
30911
|
try {
|
|
30054
30912
|
// Collect all item IDs actively referenced by grid cells
|
|
30055
30913
|
var activeItemIds = new Set();
|
|
30056
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
30914
|
+
var _iterator2 = _createForOfIteratorHelper$g(this.layout),
|
|
30057
30915
|
_step2;
|
|
30058
30916
|
try {
|
|
30059
30917
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -30093,7 +30951,7 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
30093
30951
|
});
|
|
30094
30952
|
|
|
30095
30953
|
// Clean listener references on remaining items for each removed orphan
|
|
30096
|
-
var _iterator3 = _createForOfIteratorHelper$
|
|
30954
|
+
var _iterator3 = _createForOfIteratorHelper$g(orphanedIds),
|
|
30097
30955
|
_step3;
|
|
30098
30956
|
try {
|
|
30099
30957
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
@@ -30752,9 +31610,9 @@ var useDashboard = function useDashboard() {
|
|
|
30752
31610
|
});
|
|
30753
31611
|
};
|
|
30754
31612
|
|
|
30755
|
-
function _createForOfIteratorHelper$
|
|
30756
|
-
function _unsupportedIterableToArray$
|
|
30757
|
-
function _arrayLikeToArray$
|
|
31613
|
+
function _createForOfIteratorHelper$f(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$f(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; } } }; }
|
|
31614
|
+
function _unsupportedIterableToArray$f(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$f(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$f(r, a) : void 0; } }
|
|
31615
|
+
function _arrayLikeToArray$f(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; }
|
|
30758
31616
|
|
|
30759
31617
|
/**
|
|
30760
31618
|
* useWidgetProviders Hook
|
|
@@ -30805,7 +31663,7 @@ var useWidgetProviders = function useWidgetProviders() {
|
|
|
30805
31663
|
// 1. Widget-level: stored directly on the layout item by handleSelectProvider
|
|
30806
31664
|
// 2. Workspace-level: stored as workspace.selectedProviders[widgetId][providerType]
|
|
30807
31665
|
var providers = {};
|
|
30808
|
-
var _iterator = _createForOfIteratorHelper$
|
|
31666
|
+
var _iterator = _createForOfIteratorHelper$f(providerDeclarations),
|
|
30809
31667
|
_step;
|
|
30810
31668
|
try {
|
|
30811
31669
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -31560,9 +32418,9 @@ var useNotifications = function useNotifications() {
|
|
|
31560
32418
|
};
|
|
31561
32419
|
};
|
|
31562
32420
|
|
|
31563
|
-
function _createForOfIteratorHelper$
|
|
31564
|
-
function _unsupportedIterableToArray$
|
|
31565
|
-
function _arrayLikeToArray$
|
|
32421
|
+
function _createForOfIteratorHelper$e(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$e(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; } } }; }
|
|
32422
|
+
function _unsupportedIterableToArray$e(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$e(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$e(r, a) : void 0; } }
|
|
32423
|
+
function _arrayLikeToArray$e(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; }
|
|
31566
32424
|
|
|
31567
32425
|
/**
|
|
31568
32426
|
* useScheduler Hook
|
|
@@ -31635,7 +32493,7 @@ var useScheduler = function useScheduler() {
|
|
|
31635
32493
|
if (pending && pending.length > 0) {
|
|
31636
32494
|
setPendingResults(pending);
|
|
31637
32495
|
// Call handlers for each pending result
|
|
31638
|
-
var _iterator = _createForOfIteratorHelper$
|
|
32496
|
+
var _iterator = _createForOfIteratorHelper$e(pending),
|
|
31639
32497
|
_step;
|
|
31640
32498
|
try {
|
|
31641
32499
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -34662,9 +35520,9 @@ function loadWidgetBundle(source, widgetName) {
|
|
|
34662
35520
|
};
|
|
34663
35521
|
}
|
|
34664
35522
|
|
|
34665
|
-
function _createForOfIteratorHelper$
|
|
34666
|
-
function _unsupportedIterableToArray$
|
|
34667
|
-
function _arrayLikeToArray$
|
|
35523
|
+
function _createForOfIteratorHelper$d(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$d(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; } } }; }
|
|
35524
|
+
function _unsupportedIterableToArray$d(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$d(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$d(r, a) : void 0; } }
|
|
35525
|
+
function _arrayLikeToArray$d(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; }
|
|
34668
35526
|
/**
|
|
34669
35527
|
* Validation utilities for grid-first dashboard architecture
|
|
34670
35528
|
*
|
|
@@ -34903,7 +35761,7 @@ var validateCellMerge = function validateCellMerge(cellNumbers, grid) {
|
|
|
34903
35761
|
|
|
34904
35762
|
// Validate each cell
|
|
34905
35763
|
var cells = [];
|
|
34906
|
-
var _iterator = _createForOfIteratorHelper$
|
|
35764
|
+
var _iterator = _createForOfIteratorHelper$d(cellNumbers),
|
|
34907
35765
|
_step;
|
|
34908
35766
|
try {
|
|
34909
35767
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -35251,9 +36109,9 @@ var HARMONY_STRATEGIES = [{
|
|
|
35251
36109
|
label: "Custom"
|
|
35252
36110
|
}];
|
|
35253
36111
|
|
|
35254
|
-
function _createForOfIteratorHelper$
|
|
35255
|
-
function _unsupportedIterableToArray$
|
|
35256
|
-
function _arrayLikeToArray$
|
|
36112
|
+
function _createForOfIteratorHelper$c(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$c(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; } } }; }
|
|
36113
|
+
function _unsupportedIterableToArray$c(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$c(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$c(r, a) : void 0; } }
|
|
36114
|
+
function _arrayLikeToArray$c(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; }
|
|
35257
36115
|
/**
|
|
35258
36116
|
* markdownFormParser.js
|
|
35259
36117
|
*
|
|
@@ -35300,7 +36158,7 @@ function detectColumnType(header, cellValues) {
|
|
|
35300
36158
|
}
|
|
35301
36159
|
|
|
35302
36160
|
// Check if any cell has an enum pattern (template placeholders)
|
|
35303
|
-
var _iterator = _createForOfIteratorHelper$
|
|
36161
|
+
var _iterator = _createForOfIteratorHelper$c(cellValues),
|
|
35304
36162
|
_step;
|
|
35305
36163
|
try {
|
|
35306
36164
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -35309,7 +36167,7 @@ function detectColumnType(header, cellValues) {
|
|
|
35309
36167
|
if (options) {
|
|
35310
36168
|
// Include all unique existing cell values as valid options
|
|
35311
36169
|
var allOptions = new Set(options);
|
|
35312
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
36170
|
+
var _iterator2 = _createForOfIteratorHelper$c(cellValues),
|
|
35313
36171
|
_step2;
|
|
35314
36172
|
try {
|
|
35315
36173
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -35519,7 +36377,7 @@ function parse(markdown) {
|
|
|
35519
36377
|
*/
|
|
35520
36378
|
function serialize(blocks) {
|
|
35521
36379
|
var parts = [];
|
|
35522
|
-
var _iterator3 = _createForOfIteratorHelper$
|
|
36380
|
+
var _iterator3 = _createForOfIteratorHelper$c(blocks),
|
|
35523
36381
|
_step3;
|
|
35524
36382
|
try {
|
|
35525
36383
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
@@ -35534,7 +36392,7 @@ function serialize(blocks) {
|
|
|
35534
36392
|
parts.push("| " + block.columns.map(function () {
|
|
35535
36393
|
return "------";
|
|
35536
36394
|
}).join(" | ") + " |");
|
|
35537
|
-
var _iterator4 = _createForOfIteratorHelper$
|
|
36395
|
+
var _iterator4 = _createForOfIteratorHelper$c(block.rows),
|
|
35538
36396
|
_step4;
|
|
35539
36397
|
try {
|
|
35540
36398
|
var _loop2 = function _loop2() {
|
|
@@ -35555,7 +36413,7 @@ function serialize(blocks) {
|
|
|
35555
36413
|
break;
|
|
35556
36414
|
}
|
|
35557
36415
|
case "list":
|
|
35558
|
-
var _iterator5 = _createForOfIteratorHelper$
|
|
36416
|
+
var _iterator5 = _createForOfIteratorHelper$c(block.items),
|
|
35559
36417
|
_step5;
|
|
35560
36418
|
try {
|
|
35561
36419
|
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
@@ -35569,7 +36427,7 @@ function serialize(blocks) {
|
|
|
35569
36427
|
}
|
|
35570
36428
|
break;
|
|
35571
36429
|
case "blockquote":
|
|
35572
|
-
var _iterator6 = _createForOfIteratorHelper$
|
|
36430
|
+
var _iterator6 = _createForOfIteratorHelper$c(block.text.split("\n")),
|
|
35573
36431
|
_step6;
|
|
35574
36432
|
try {
|
|
35575
36433
|
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
@@ -39072,9 +39930,9 @@ var ThemeManagerModal = function ThemeManagerModal(_ref) {
|
|
|
39072
39930
|
|
|
39073
39931
|
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; }
|
|
39074
39932
|
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; }
|
|
39075
|
-
function _createForOfIteratorHelper$
|
|
39076
|
-
function _unsupportedIterableToArray$
|
|
39077
|
-
function _arrayLikeToArray$
|
|
39933
|
+
function _createForOfIteratorHelper$b(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$b(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; } } }; }
|
|
39934
|
+
function _unsupportedIterableToArray$b(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$b(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$b(r, a) : void 0; } }
|
|
39935
|
+
function _arrayLikeToArray$b(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; }
|
|
39078
39936
|
var DASHBOARD_TAGS = ["productivity", "monitoring", "analytics", "communication", "developer", "sales", "marketing", "finance", "project-management", "social", "news", "utilities"];
|
|
39079
39937
|
var BUMP_OPTIONS$1 = [{
|
|
39080
39938
|
value: "patch",
|
|
@@ -39148,7 +40006,7 @@ function collectComponentConfigs() {
|
|
|
39148
40006
|
// fixed "reference" entry.
|
|
39149
40007
|
function seedSelections(plan, dashboardVisibility) {
|
|
39150
40008
|
var selections = {};
|
|
39151
|
-
var _iterator = _createForOfIteratorHelper$
|
|
40009
|
+
var _iterator = _createForOfIteratorHelper$b(plan.widgets || []),
|
|
39152
40010
|
_step;
|
|
39153
40011
|
try {
|
|
39154
40012
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -39481,7 +40339,7 @@ var PublishDashboardModal = function PublishDashboardModal(_ref) {
|
|
|
39481
40339
|
break;
|
|
39482
40340
|
}
|
|
39483
40341
|
seenPackages = new Set();
|
|
39484
|
-
_iterator2 = _createForOfIteratorHelper$
|
|
40342
|
+
_iterator2 = _createForOfIteratorHelper$b(plan.widgets || []);
|
|
39485
40343
|
_context2.prev = 2;
|
|
39486
40344
|
_iterator2.s();
|
|
39487
40345
|
case 3:
|
|
@@ -40346,7 +41204,7 @@ function DependencyTable(_ref4) {
|
|
|
40346
41204
|
// row. Each row shows the list of component widgets that live inside it
|
|
40347
41205
|
// so the user knows what's getting published.
|
|
40348
41206
|
var byKey = new Map();
|
|
40349
|
-
var _iterator3 = _createForOfIteratorHelper$
|
|
41207
|
+
var _iterator3 = _createForOfIteratorHelper$b(plan.widgets || []),
|
|
40350
41208
|
_step4;
|
|
40351
41209
|
try {
|
|
40352
41210
|
for (_iterator3.s(); !(_step4 = _iterator3.n()).done;) {
|
|
@@ -43976,9 +44834,9 @@ var McpCatalogDetail = function McpCatalogDetail(_ref) {
|
|
|
43976
44834
|
|
|
43977
44835
|
function ownKeys$j(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; }
|
|
43978
44836
|
function _objectSpread$j(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$j(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$j(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
43979
|
-
function _createForOfIteratorHelper$
|
|
43980
|
-
function _unsupportedIterableToArray$
|
|
43981
|
-
function _arrayLikeToArray$
|
|
44837
|
+
function _createForOfIteratorHelper$a(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$a(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; } } }; }
|
|
44838
|
+
function _unsupportedIterableToArray$a(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$a(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$a(r, a) : void 0; } }
|
|
44839
|
+
function _arrayLikeToArray$a(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; }
|
|
43982
44840
|
function isValidWsUrl(url) {
|
|
43983
44841
|
if (!url) return false;
|
|
43984
44842
|
try {
|
|
@@ -44025,7 +44883,7 @@ function extractCredentialFields(url, headerRows) {
|
|
|
44025
44883
|
fields.add(match[1]);
|
|
44026
44884
|
}
|
|
44027
44885
|
}
|
|
44028
|
-
var _iterator = _createForOfIteratorHelper$
|
|
44886
|
+
var _iterator = _createForOfIteratorHelper$a(headerRows),
|
|
44029
44887
|
_step;
|
|
44030
44888
|
try {
|
|
44031
44889
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -44128,7 +44986,7 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
|
|
|
44128
44986
|
if (!url.trim()) errs.url = "WebSocket URL is required";else if (!isValidWsUrl(url)) errs.url = "URL must start with ws:// or wss://";
|
|
44129
44987
|
|
|
44130
44988
|
// Check required credential fields are filled
|
|
44131
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
44989
|
+
var _iterator2 = _createForOfIteratorHelper$a(credentialFields),
|
|
44132
44990
|
_step2;
|
|
44133
44991
|
try {
|
|
44134
44992
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -44151,7 +45009,7 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
|
|
|
44151
45009
|
|
|
44152
45010
|
// Build headers object from rows
|
|
44153
45011
|
var headers = {};
|
|
44154
|
-
var _iterator3 = _createForOfIteratorHelper$
|
|
45012
|
+
var _iterator3 = _createForOfIteratorHelper$a(headerRows),
|
|
44155
45013
|
_step3;
|
|
44156
45014
|
try {
|
|
44157
45015
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
@@ -44220,7 +45078,7 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
|
|
|
44220
45078
|
|
|
44221
45079
|
// Build config from current form state (same as handleSave)
|
|
44222
45080
|
headers = {};
|
|
44223
|
-
_iterator4 = _createForOfIteratorHelper$
|
|
45081
|
+
_iterator4 = _createForOfIteratorHelper$a(headerRows);
|
|
44224
45082
|
try {
|
|
44225
45083
|
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
44226
45084
|
row = _step4.value;
|
|
@@ -47379,9 +48237,9 @@ var InstallWidgetPicker = function InstallWidgetPicker(_ref2) {
|
|
|
47379
48237
|
|
|
47380
48238
|
function ownKeys$g(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; }
|
|
47381
48239
|
function _objectSpread$g(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$g(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$g(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
47382
|
-
function _createForOfIteratorHelper$
|
|
47383
|
-
function _unsupportedIterableToArray$
|
|
47384
|
-
function _arrayLikeToArray$
|
|
48240
|
+
function _createForOfIteratorHelper$9(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$9(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; } } }; }
|
|
48241
|
+
function _unsupportedIterableToArray$9(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$9(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$9(r, a) : void 0; } }
|
|
48242
|
+
function _arrayLikeToArray$9(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; }
|
|
47385
48243
|
var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
|
|
47386
48244
|
var onBack = _ref.onBack;
|
|
47387
48245
|
var _useContext = useContext(ThemeContext),
|
|
@@ -47488,7 +48346,7 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
|
|
|
47488
48346
|
case 1:
|
|
47489
48347
|
widgets = _context2.sent;
|
|
47490
48348
|
names = new Set();
|
|
47491
|
-
_iterator = _createForOfIteratorHelper$
|
|
48349
|
+
_iterator = _createForOfIteratorHelper$9(widgets);
|
|
47492
48350
|
try {
|
|
47493
48351
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
47494
48352
|
w = _step.value;
|
|
@@ -47594,12 +48452,12 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
|
|
|
47594
48452
|
var checkToolConflicts = function checkToolConflicts(widget) {
|
|
47595
48453
|
var conflicts = [];
|
|
47596
48454
|
var packageWidgets = widget.packageWidgets || [];
|
|
47597
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
48455
|
+
var _iterator2 = _createForOfIteratorHelper$9(packageWidgets),
|
|
47598
48456
|
_step2;
|
|
47599
48457
|
try {
|
|
47600
48458
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
47601
48459
|
var w = _step2.value;
|
|
47602
|
-
var _iterator3 = _createForOfIteratorHelper$
|
|
48460
|
+
var _iterator3 = _createForOfIteratorHelper$9(w.providers || []),
|
|
47603
48461
|
_step3;
|
|
47604
48462
|
try {
|
|
47605
48463
|
var _loop = function _loop() {
|
|
@@ -47612,7 +48470,7 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
|
|
|
47612
48470
|
prov = _ref5[1];
|
|
47613
48471
|
return prov.type === p.type && prov.providerClass === "mcp" && prov.allowedTools;
|
|
47614
48472
|
});
|
|
47615
|
-
var _iterator4 = _createForOfIteratorHelper$
|
|
48473
|
+
var _iterator4 = _createForOfIteratorHelper$9(matchingProviders),
|
|
47616
48474
|
_step4;
|
|
47617
48475
|
try {
|
|
47618
48476
|
var _loop2 = function _loop2() {
|
|
@@ -47935,9 +48793,9 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
|
|
|
47935
48793
|
});
|
|
47936
48794
|
};
|
|
47937
48795
|
|
|
47938
|
-
function _createForOfIteratorHelper$
|
|
47939
|
-
function _unsupportedIterableToArray$
|
|
47940
|
-
function _arrayLikeToArray$
|
|
48796
|
+
function _createForOfIteratorHelper$8(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$8(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; } } }; }
|
|
48797
|
+
function _unsupportedIterableToArray$8(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$8(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$8(r, a) : void 0; } }
|
|
48798
|
+
function _arrayLikeToArray$8(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; }
|
|
47941
48799
|
|
|
47942
48800
|
/**
|
|
47943
48801
|
* Walk a workspace layout and collect widget component keys that are
|
|
@@ -47951,7 +48809,7 @@ function collectComponentsFromLayout(layout) {
|
|
|
47951
48809
|
|
|
47952
48810
|
// Collect IDs of layout items that are actively referenced by grid cells
|
|
47953
48811
|
var activeItemIds = new Set();
|
|
47954
|
-
var _iterator = _createForOfIteratorHelper$
|
|
48812
|
+
var _iterator = _createForOfIteratorHelper$8(layout),
|
|
47955
48813
|
_step;
|
|
47956
48814
|
try {
|
|
47957
48815
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -47971,7 +48829,7 @@ function collectComponentsFromLayout(layout) {
|
|
|
47971
48829
|
} finally {
|
|
47972
48830
|
_iterator.f();
|
|
47973
48831
|
}
|
|
47974
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
48832
|
+
var _iterator2 = _createForOfIteratorHelper$8(layout),
|
|
47975
48833
|
_step2;
|
|
47976
48834
|
try {
|
|
47977
48835
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -48005,7 +48863,7 @@ function findWidgetUsage(componentNames, workspaces) {
|
|
|
48005
48863
|
if (!(componentNames !== null && componentNames !== void 0 && componentNames.length) || !(workspaces !== null && workspaces !== void 0 && workspaces.length)) return [];
|
|
48006
48864
|
var nameSet = new Set(componentNames);
|
|
48007
48865
|
var results = [];
|
|
48008
|
-
var _iterator3 = _createForOfIteratorHelper$
|
|
48866
|
+
var _iterator3 = _createForOfIteratorHelper$8(workspaces),
|
|
48009
48867
|
_step3;
|
|
48010
48868
|
try {
|
|
48011
48869
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
@@ -48240,9 +49098,9 @@ var useInstalledWidgets = function useInstalledWidgets() {
|
|
|
48240
49098
|
};
|
|
48241
49099
|
};
|
|
48242
49100
|
|
|
48243
|
-
function _createForOfIteratorHelper$
|
|
48244
|
-
function _unsupportedIterableToArray$
|
|
48245
|
-
function _arrayLikeToArray$
|
|
49101
|
+
function _createForOfIteratorHelper$7(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$7(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; } } }; }
|
|
49102
|
+
function _unsupportedIterableToArray$7(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$7(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$7(r, a) : void 0; } }
|
|
49103
|
+
function _arrayLikeToArray$7(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; }
|
|
48246
49104
|
|
|
48247
49105
|
/**
|
|
48248
49106
|
* useWidgetUpdates — checks the registry for newer versions of installed widgets
|
|
@@ -48372,7 +49230,7 @@ function useWidgetUpdates() {
|
|
|
48372
49230
|
// (install replaces the entire package, not just one widget)
|
|
48373
49231
|
setUpdates(function (prev) {
|
|
48374
49232
|
var next = new Map(prev);
|
|
48375
|
-
var _iterator = _createForOfIteratorHelper$
|
|
49233
|
+
var _iterator = _createForOfIteratorHelper$7(next),
|
|
48376
49234
|
_step;
|
|
48377
49235
|
try {
|
|
48378
49236
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -52013,9 +52871,9 @@ var PopoverItem = function PopoverItem(_ref6) {
|
|
|
52013
52871
|
});
|
|
52014
52872
|
};
|
|
52015
52873
|
|
|
52016
|
-
function _createForOfIteratorHelper$
|
|
52017
|
-
function _unsupportedIterableToArray$
|
|
52018
|
-
function _arrayLikeToArray$
|
|
52874
|
+
function _createForOfIteratorHelper$6(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$6(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; } } }; }
|
|
52875
|
+
function _unsupportedIterableToArray$6(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$6(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$6(r, a) : void 0; } }
|
|
52876
|
+
function _arrayLikeToArray$6(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; }
|
|
52019
52877
|
function ownKeys$9(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; }
|
|
52020
52878
|
function _objectSpread$9(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$9(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$9(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
52021
52879
|
var DraggableWidgetItem = function DraggableWidgetItem(_ref) {
|
|
@@ -52557,7 +53415,7 @@ var WidgetSidebar = function WidgetSidebar(_ref4) {
|
|
|
52557
53415
|
return _context2.abrupt("return");
|
|
52558
53416
|
case 2:
|
|
52559
53417
|
names = new Set();
|
|
52560
|
-
_iterator = _createForOfIteratorHelper$
|
|
53418
|
+
_iterator = _createForOfIteratorHelper$6(widgets);
|
|
52561
53419
|
try {
|
|
52562
53420
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
52563
53421
|
w = _step.value;
|
|
@@ -52945,9 +53803,9 @@ var useMissingWidgets = function useMissingWidgets(workspace) {
|
|
|
52945
53803
|
|
|
52946
53804
|
function ownKeys$8(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; }
|
|
52947
53805
|
function _objectSpread$8(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$8(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$8(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
52948
|
-
function _createForOfIteratorHelper$
|
|
52949
|
-
function _unsupportedIterableToArray$
|
|
52950
|
-
function _arrayLikeToArray$
|
|
53806
|
+
function _createForOfIteratorHelper$5(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$5(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; } } }; }
|
|
53807
|
+
function _unsupportedIterableToArray$5(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$5(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$5(r, a) : void 0; } }
|
|
53808
|
+
function _arrayLikeToArray$5(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; }
|
|
52951
53809
|
var MissingWidgetsModal = function MissingWidgetsModal(_ref) {
|
|
52952
53810
|
var _ref$missingComponent = _ref.missingComponents,
|
|
52953
53811
|
missingComponents = _ref$missingComponent === void 0 ? [] : _ref$missingComponent,
|
|
@@ -52998,7 +53856,7 @@ var MissingWidgetsModal = function MissingWidgetsModal(_ref) {
|
|
|
52998
53856
|
case 0:
|
|
52999
53857
|
results = [];
|
|
53000
53858
|
seen = new Set();
|
|
53001
|
-
_iterator = _createForOfIteratorHelper$
|
|
53859
|
+
_iterator = _createForOfIteratorHelper$5(missingComponents);
|
|
53002
53860
|
_context2.prev = 1;
|
|
53003
53861
|
_loop = /*#__PURE__*/_regeneratorRuntime.mark(function _loop() {
|
|
53004
53862
|
var componentKey, _getWidgetSearchQuery, packageName, widgetName, pkg, result;
|
|
@@ -53319,261 +54177,6 @@ var MissingWidgetsModal = function MissingWidgetsModal(_ref) {
|
|
|
53319
54177
|
});
|
|
53320
54178
|
};
|
|
53321
54179
|
|
|
53322
|
-
function _createForOfIteratorHelper$5(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$5(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; } } }; }
|
|
53323
|
-
function _unsupportedIterableToArray$5(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$5(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$5(r, a) : void 0; } }
|
|
53324
|
-
function _arrayLikeToArray$5(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; }
|
|
53325
|
-
/**
|
|
53326
|
-
* providerResolution.js
|
|
53327
|
-
*
|
|
53328
|
-
* Shared helpers for walking a workspace and figuring out which widgets
|
|
53329
|
-
* have required providers that are still unresolved after the 3-layer
|
|
53330
|
-
* resolution (widget → workspace → app-default → null). Used by:
|
|
53331
|
-
*
|
|
53332
|
-
* - DashboardConfigModal to render the Providers tab
|
|
53333
|
-
* - DashboardStage toolbar to show the unresolved-count badge
|
|
53334
|
-
*
|
|
53335
|
-
* Both places need the same answer, so keep the logic here to avoid drift
|
|
53336
|
-
* with the resolution inside `useMcpProvider` / `useWebSocketProvider`.
|
|
53337
|
-
*/
|
|
53338
|
-
|
|
53339
|
-
/**
|
|
53340
|
-
* Resolve which provider name a given widget instance would bind to for
|
|
53341
|
-
* the given provider type. Mirrors the 3-layer chain in useMcpProvider
|
|
53342
|
-
* and useWebSocketProvider exactly:
|
|
53343
|
-
*
|
|
53344
|
-
* 1. widget-level override (layoutItem.selectedProviders[type])
|
|
53345
|
-
* 2. workspace-level binding (workspace.selectedProviders[id][type])
|
|
53346
|
-
* 3. app default (any provider of matching type flagged
|
|
53347
|
-
* `isDefaultForType` in appProviders)
|
|
53348
|
-
* 4. null (truly unresolved)
|
|
53349
|
-
*/
|
|
53350
|
-
function resolveProviderName(_ref) {
|
|
53351
|
-
var _layoutItem$selectedP, _workspace$selectedPr;
|
|
53352
|
-
var providerType = _ref.providerType,
|
|
53353
|
-
layoutItem = _ref.layoutItem,
|
|
53354
|
-
widgetId = _ref.widgetId,
|
|
53355
|
-
workspace = _ref.workspace,
|
|
53356
|
-
appProviders = _ref.appProviders;
|
|
53357
|
-
// 1. Widget-level
|
|
53358
|
-
var widgetLevel = layoutItem === null || layoutItem === void 0 || (_layoutItem$selectedP = layoutItem.selectedProviders) === null || _layoutItem$selectedP === void 0 ? void 0 : _layoutItem$selectedP[providerType];
|
|
53359
|
-
if (widgetLevel) return widgetLevel;
|
|
53360
|
-
|
|
53361
|
-
// 2. Workspace-level
|
|
53362
|
-
var workspaceLevel = widgetId && (workspace === null || workspace === void 0 || (_workspace$selectedPr = workspace.selectedProviders) === null || _workspace$selectedPr === void 0 || (_workspace$selectedPr = _workspace$selectedPr[widgetId]) === null || _workspace$selectedPr === void 0 ? void 0 : _workspace$selectedPr[providerType]);
|
|
53363
|
-
if (workspaceLevel) return workspaceLevel;
|
|
53364
|
-
|
|
53365
|
-
// 3. App default — appProviders is either a map keyed by name or an
|
|
53366
|
-
// array. Support both because different callers shape it either way.
|
|
53367
|
-
if (appProviders) {
|
|
53368
|
-
if (Array.isArray(appProviders)) {
|
|
53369
|
-
var _iterator = _createForOfIteratorHelper$5(appProviders),
|
|
53370
|
-
_step;
|
|
53371
|
-
try {
|
|
53372
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
53373
|
-
var data = _step.value;
|
|
53374
|
-
if ((data === null || data === void 0 ? void 0 : data.type) === providerType && (data === null || data === void 0 ? void 0 : data.isDefaultForType) === true) {
|
|
53375
|
-
return data.name;
|
|
53376
|
-
}
|
|
53377
|
-
}
|
|
53378
|
-
} catch (err) {
|
|
53379
|
-
_iterator.e(err);
|
|
53380
|
-
} finally {
|
|
53381
|
-
_iterator.f();
|
|
53382
|
-
}
|
|
53383
|
-
} else if (_typeof(appProviders) === "object") {
|
|
53384
|
-
for (var _i = 0, _Object$entries = Object.entries(appProviders); _i < _Object$entries.length; _i++) {
|
|
53385
|
-
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
53386
|
-
name = _Object$entries$_i[0],
|
|
53387
|
-
_data = _Object$entries$_i[1];
|
|
53388
|
-
if ((_data === null || _data === void 0 ? void 0 : _data.type) === providerType && (_data === null || _data === void 0 ? void 0 : _data.isDefaultForType) === true) {
|
|
53389
|
-
return name;
|
|
53390
|
-
}
|
|
53391
|
-
}
|
|
53392
|
-
}
|
|
53393
|
-
}
|
|
53394
|
-
return null;
|
|
53395
|
-
}
|
|
53396
|
-
|
|
53397
|
-
/**
|
|
53398
|
-
* Walk every layout container in a workspace and yield each widget
|
|
53399
|
-
* instance with its concrete layout item. Handles the main layout,
|
|
53400
|
-
* per-page layouts, the sidebar, and nested LayoutGridContainers whose
|
|
53401
|
-
* children are stored on `items`/`layout`.
|
|
53402
|
-
*/
|
|
53403
|
-
function forEachWidget(workspace, visit) {
|
|
53404
|
-
if (!workspace) return;
|
|
53405
|
-
var _walk = function walk(items) {
|
|
53406
|
-
if (!Array.isArray(items)) return;
|
|
53407
|
-
var _iterator2 = _createForOfIteratorHelper$5(items),
|
|
53408
|
-
_step2;
|
|
53409
|
-
try {
|
|
53410
|
-
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
53411
|
-
var item = _step2.value;
|
|
53412
|
-
if (!item || _typeof(item) !== "object") continue;
|
|
53413
|
-
// A "widget" is any layout item with a component name.
|
|
53414
|
-
// Containers can have both a component name AND nested items
|
|
53415
|
-
// (e.g. LayoutGridContainer), so still recurse.
|
|
53416
|
-
if (item.component) visit(item);
|
|
53417
|
-
if (Array.isArray(item.items)) _walk(item.items);
|
|
53418
|
-
if (Array.isArray(item.layout)) _walk(item.layout);
|
|
53419
|
-
}
|
|
53420
|
-
} catch (err) {
|
|
53421
|
-
_iterator2.e(err);
|
|
53422
|
-
} finally {
|
|
53423
|
-
_iterator2.f();
|
|
53424
|
-
}
|
|
53425
|
-
};
|
|
53426
|
-
_walk(workspace.layout);
|
|
53427
|
-
if (Array.isArray(workspace.pages)) {
|
|
53428
|
-
var _iterator3 = _createForOfIteratorHelper$5(workspace.pages),
|
|
53429
|
-
_step3;
|
|
53430
|
-
try {
|
|
53431
|
-
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
53432
|
-
var page = _step3.value;
|
|
53433
|
-
_walk(page === null || page === void 0 ? void 0 : page.layout);
|
|
53434
|
-
}
|
|
53435
|
-
} catch (err) {
|
|
53436
|
-
_iterator3.e(err);
|
|
53437
|
-
} finally {
|
|
53438
|
-
_iterator3.f();
|
|
53439
|
-
}
|
|
53440
|
-
}
|
|
53441
|
-
_walk(workspace.sidebarLayout);
|
|
53442
|
-
}
|
|
53443
|
-
|
|
53444
|
-
/**
|
|
53445
|
-
* Compute the list of unresolved required providers across a workspace.
|
|
53446
|
-
*
|
|
53447
|
-
* @param {object} args
|
|
53448
|
-
* @param {object} args.workspace The workspace (with layout/pages/sidebarLayout/selectedProviders).
|
|
53449
|
-
* @param {object|Array} args.appProviders
|
|
53450
|
-
* Map keyed by provider name, or an array of provider objects. Each
|
|
53451
|
-
* entry has at least `{ type, isDefaultForType }`.
|
|
53452
|
-
* @param {(componentName: string) => Array<{type, required?, providerClass?}>} args.getWidgetRequirements
|
|
53453
|
-
* Returns the `providers: [...]` declaration from the component's
|
|
53454
|
-
* `.dash.js` (via `ComponentManager.componentMap()[name].providers`).
|
|
53455
|
-
*
|
|
53456
|
-
* @returns {Array<{ widgetId, component, providerType, providerClass, layoutItem }>}
|
|
53457
|
-
* One entry per (widget instance, required provider type) that lacks
|
|
53458
|
-
* a binding.
|
|
53459
|
-
*/
|
|
53460
|
-
function getUnresolvedProviders(_ref2) {
|
|
53461
|
-
var workspace = _ref2.workspace,
|
|
53462
|
-
appProviders = _ref2.appProviders,
|
|
53463
|
-
getWidgetRequirements = _ref2.getWidgetRequirements;
|
|
53464
|
-
if (!workspace || typeof getWidgetRequirements !== "function") return [];
|
|
53465
|
-
var unresolved = [];
|
|
53466
|
-
forEachWidget(workspace, function (item) {
|
|
53467
|
-
var requirements = getWidgetRequirements(item.component) || [];
|
|
53468
|
-
if (!Array.isArray(requirements) || requirements.length === 0) return;
|
|
53469
|
-
var widgetId = item.uuidString || item.uuid || item.id || null;
|
|
53470
|
-
var _iterator4 = _createForOfIteratorHelper$5(requirements),
|
|
53471
|
-
_step4;
|
|
53472
|
-
try {
|
|
53473
|
-
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
53474
|
-
var req = _step4.value;
|
|
53475
|
-
if (!req || !req.type) continue;
|
|
53476
|
-
if (req.required === false) continue; // optional, skip
|
|
53477
|
-
|
|
53478
|
-
var name = resolveProviderName({
|
|
53479
|
-
providerType: req.type,
|
|
53480
|
-
layoutItem: item,
|
|
53481
|
-
widgetId: widgetId,
|
|
53482
|
-
workspace: workspace,
|
|
53483
|
-
appProviders: appProviders
|
|
53484
|
-
});
|
|
53485
|
-
if (!name) {
|
|
53486
|
-
unresolved.push({
|
|
53487
|
-
widgetId: widgetId,
|
|
53488
|
-
component: item.component,
|
|
53489
|
-
providerType: req.type,
|
|
53490
|
-
providerClass: req.providerClass || null,
|
|
53491
|
-
layoutItem: item
|
|
53492
|
-
});
|
|
53493
|
-
}
|
|
53494
|
-
}
|
|
53495
|
-
} catch (err) {
|
|
53496
|
-
_iterator4.e(err);
|
|
53497
|
-
} finally {
|
|
53498
|
-
_iterator4.f();
|
|
53499
|
-
}
|
|
53500
|
-
});
|
|
53501
|
-
return unresolved;
|
|
53502
|
-
}
|
|
53503
|
-
|
|
53504
|
-
/**
|
|
53505
|
-
* Group an unresolved-provider list (or any `{widget, providerType}` list)
|
|
53506
|
-
* by provider type, so the Providers tab can render one row per unique
|
|
53507
|
-
* type with N widgets beneath.
|
|
53508
|
-
*/
|
|
53509
|
-
function groupByProviderType(unresolved) {
|
|
53510
|
-
var byType = new Map();
|
|
53511
|
-
var _iterator5 = _createForOfIteratorHelper$5(unresolved || []),
|
|
53512
|
-
_step5;
|
|
53513
|
-
try {
|
|
53514
|
-
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
53515
|
-
var u = _step5.value;
|
|
53516
|
-
if (!(u !== null && u !== void 0 && u.providerType)) continue;
|
|
53517
|
-
if (!byType.has(u.providerType)) byType.set(u.providerType, []);
|
|
53518
|
-
byType.get(u.providerType).push(u);
|
|
53519
|
-
}
|
|
53520
|
-
} catch (err) {
|
|
53521
|
-
_iterator5.e(err);
|
|
53522
|
-
} finally {
|
|
53523
|
-
_iterator5.f();
|
|
53524
|
-
}
|
|
53525
|
-
return byType;
|
|
53526
|
-
}
|
|
53527
|
-
|
|
53528
|
-
/**
|
|
53529
|
-
* Summarize every widget in the workspace that requires ANY provider,
|
|
53530
|
-
* regardless of whether it's already resolved. Drives the Providers tab's
|
|
53531
|
-
* "show per-widget overrides" expansion — the modal lists all widgets so
|
|
53532
|
-
* the user can change an explicit override even for types that are
|
|
53533
|
-
* already resolved via the app default.
|
|
53534
|
-
*/
|
|
53535
|
-
function getAllProviderBindings(_ref3) {
|
|
53536
|
-
var workspace = _ref3.workspace,
|
|
53537
|
-
appProviders = _ref3.appProviders,
|
|
53538
|
-
getWidgetRequirements = _ref3.getWidgetRequirements;
|
|
53539
|
-
if (!workspace || typeof getWidgetRequirements !== "function") return [];
|
|
53540
|
-
var bindings = [];
|
|
53541
|
-
forEachWidget(workspace, function (item) {
|
|
53542
|
-
var requirements = getWidgetRequirements(item.component) || [];
|
|
53543
|
-
if (!Array.isArray(requirements) || requirements.length === 0) return;
|
|
53544
|
-
var widgetId = item.uuidString || item.uuid || item.id || null;
|
|
53545
|
-
var _iterator6 = _createForOfIteratorHelper$5(requirements),
|
|
53546
|
-
_step6;
|
|
53547
|
-
try {
|
|
53548
|
-
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
53549
|
-
var req = _step6.value;
|
|
53550
|
-
if (!req || !req.type) continue;
|
|
53551
|
-
var name = resolveProviderName({
|
|
53552
|
-
providerType: req.type,
|
|
53553
|
-
layoutItem: item,
|
|
53554
|
-
widgetId: widgetId,
|
|
53555
|
-
workspace: workspace,
|
|
53556
|
-
appProviders: appProviders
|
|
53557
|
-
});
|
|
53558
|
-
bindings.push({
|
|
53559
|
-
widgetId: widgetId,
|
|
53560
|
-
component: item.component,
|
|
53561
|
-
providerType: req.type,
|
|
53562
|
-
providerClass: req.providerClass || null,
|
|
53563
|
-
required: req.required !== false,
|
|
53564
|
-
resolvedProviderName: name,
|
|
53565
|
-
layoutItem: item
|
|
53566
|
-
});
|
|
53567
|
-
}
|
|
53568
|
-
} catch (err) {
|
|
53569
|
-
_iterator6.e(err);
|
|
53570
|
-
} finally {
|
|
53571
|
-
_iterator6.f();
|
|
53572
|
-
}
|
|
53573
|
-
});
|
|
53574
|
-
return bindings;
|
|
53575
|
-
}
|
|
53576
|
-
|
|
53577
54180
|
function _createForOfIteratorHelper$4(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$4(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; } } }; }
|
|
53578
54181
|
function _unsupportedIterableToArray$4(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$4(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$4(r, a) : void 0; } }
|
|
53579
54182
|
function _arrayLikeToArray$4(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; }
|
|
@@ -53585,19 +54188,43 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
53585
54188
|
workspace = _ref.workspace,
|
|
53586
54189
|
appProviders = _ref.appProviders,
|
|
53587
54190
|
getWidgetRequirements = _ref.getWidgetRequirements,
|
|
53588
|
-
|
|
54191
|
+
_ref$getWidgetConfig = _ref.getWidgetConfig,
|
|
54192
|
+
getWidgetConfig = _ref$getWidgetConfig === void 0 ? null : _ref$getWidgetConfig,
|
|
54193
|
+
onSaveBindings = _ref.onSaveBindings,
|
|
54194
|
+
onSaveListeners = _ref.onSaveListeners,
|
|
54195
|
+
_ref$initialTab = _ref.initialTab,
|
|
54196
|
+
initialTab = _ref$initialTab === void 0 ? "providers" : _ref$initialTab;
|
|
53589
54197
|
var _useContext = useContext(ThemeContext),
|
|
53590
54198
|
currentTheme = _useContext.currentTheme;
|
|
53591
54199
|
var panelStyles = getStylesForItem(themeObjects.PANEL, currentTheme, {
|
|
53592
54200
|
grow: false
|
|
53593
54201
|
});
|
|
53594
54202
|
|
|
54203
|
+
// Active tab. Defaults to whatever the parent requested via
|
|
54204
|
+
// `initialTab`. Resets on each open via the modal's mount cycle.
|
|
54205
|
+
var _useState = useState(initialTab),
|
|
54206
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
54207
|
+
activeTab = _useState2[0],
|
|
54208
|
+
setActiveTab = _useState2[1];
|
|
54209
|
+
|
|
53595
54210
|
// Staged changes: widgetId -> { [providerType]: providerName }. Empty
|
|
53596
54211
|
// until the user picks something; applied on Save via onSaveBindings.
|
|
53597
|
-
var
|
|
53598
|
-
|
|
53599
|
-
staged =
|
|
53600
|
-
setStaged =
|
|
54212
|
+
var _useState3 = useState({}),
|
|
54213
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
54214
|
+
staged = _useState4[0],
|
|
54215
|
+
setStaged = _useState4[1];
|
|
54216
|
+
|
|
54217
|
+
// Staged listener changes — collected in the Listeners tab's UI and
|
|
54218
|
+
// committed alongside provider changes when the user clicks Save.
|
|
54219
|
+
// Shape: { adds: [...], removes: [...] } where each item is
|
|
54220
|
+
// { receiverItemId, handlerName, sourceComponent, sourceItemId, eventName, raw? }.
|
|
54221
|
+
var _useState5 = useState({
|
|
54222
|
+
adds: [],
|
|
54223
|
+
removes: []
|
|
54224
|
+
}),
|
|
54225
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
54226
|
+
stagedListeners = _useState6[0],
|
|
54227
|
+
setStagedListeners = _useState6[1];
|
|
53601
54228
|
var bindings = useMemo(function () {
|
|
53602
54229
|
return getAllProviderBindings({
|
|
53603
54230
|
workspace: workspace,
|
|
@@ -53663,9 +54290,98 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
53663
54290
|
var unresolvedCount = effectiveBindings.filter(function (b) {
|
|
53664
54291
|
return b.required && !b.resolvedProviderName;
|
|
53665
54292
|
}).length;
|
|
54293
|
+
|
|
54294
|
+
// Listeners tab data — emitter list, receiver list, current wiring,
|
|
54295
|
+
// orphans. All recompute when the workspace or staged delta changes
|
|
54296
|
+
// so the UI reflects pending edits without saving first.
|
|
54297
|
+
var wConfig = useMemo(function () {
|
|
54298
|
+
return typeof getWidgetConfig === "function" ? getWidgetConfig : function () {
|
|
54299
|
+
return null;
|
|
54300
|
+
};
|
|
54301
|
+
}, [getWidgetConfig]);
|
|
54302
|
+
var emitters = useMemo(function () {
|
|
54303
|
+
return getEmitters(workspace, wConfig);
|
|
54304
|
+
}, [workspace, wConfig]);
|
|
54305
|
+
var receivers = useMemo(function () {
|
|
54306
|
+
return getReceivers(workspace, wConfig);
|
|
54307
|
+
}, [workspace, wConfig]);
|
|
54308
|
+
var persistedWiring = useMemo(function () {
|
|
54309
|
+
return getCurrentWiring(workspace);
|
|
54310
|
+
}, [workspace]);
|
|
54311
|
+
var orphans = useMemo(function () {
|
|
54312
|
+
return getOrphanedListeners(workspace, wConfig);
|
|
54313
|
+
}, [workspace, wConfig]);
|
|
54314
|
+
var effectiveWiring = useMemo(function () {
|
|
54315
|
+
// Apply staged removes/adds to the persisted wiring for an
|
|
54316
|
+
// accurate "what will be there after save" view, then annotate
|
|
54317
|
+
// each entry with its orphan reason (if any) so HandlerCard chips
|
|
54318
|
+
// can render a stale-binding warning inline.
|
|
54319
|
+
var next = persistedWiring;
|
|
54320
|
+
if (stagedListeners.removes.length > 0) {
|
|
54321
|
+
next = next.filter(function (w) {
|
|
54322
|
+
return !stagedListeners.removes.some(function (r) {
|
|
54323
|
+
return sameWiringEntry(r, w);
|
|
54324
|
+
});
|
|
54325
|
+
});
|
|
54326
|
+
}
|
|
54327
|
+
if (stagedListeners.adds.length > 0) {
|
|
54328
|
+
// Append; avoid duplicates against current state.
|
|
54329
|
+
var _iterator2 = _createForOfIteratorHelper$4(stagedListeners.adds),
|
|
54330
|
+
_step2;
|
|
54331
|
+
try {
|
|
54332
|
+
var _loop = function _loop() {
|
|
54333
|
+
var a = _step2.value;
|
|
54334
|
+
if (!next.some(function (w) {
|
|
54335
|
+
return sameWiringEntry(w, a);
|
|
54336
|
+
})) {
|
|
54337
|
+
next = [].concat(_toConsumableArray(next), [_objectSpread$7(_objectSpread$7({}, a), {}, {
|
|
54338
|
+
raw: formatEventString(a.sourceComponent, a.sourceItemId, a.eventName)
|
|
54339
|
+
})]);
|
|
54340
|
+
}
|
|
54341
|
+
};
|
|
54342
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
54343
|
+
_loop();
|
|
54344
|
+
}
|
|
54345
|
+
} catch (err) {
|
|
54346
|
+
_iterator2.e(err);
|
|
54347
|
+
} finally {
|
|
54348
|
+
_iterator2.f();
|
|
54349
|
+
}
|
|
54350
|
+
}
|
|
54351
|
+
if (orphans.length === 0) return next;
|
|
54352
|
+
var orphanIndex = new Map();
|
|
54353
|
+
var _iterator3 = _createForOfIteratorHelper$4(orphans),
|
|
54354
|
+
_step3;
|
|
54355
|
+
try {
|
|
54356
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
54357
|
+
var o = _step3.value;
|
|
54358
|
+
orphanIndex.set("".concat(o.receiverItemId, "|").concat(o.handlerName, "|").concat(o.sourceComponent, "|").concat(o.sourceItemId, "|").concat(o.eventName), o.reason);
|
|
54359
|
+
}
|
|
54360
|
+
} catch (err) {
|
|
54361
|
+
_iterator3.e(err);
|
|
54362
|
+
} finally {
|
|
54363
|
+
_iterator3.f();
|
|
54364
|
+
}
|
|
54365
|
+
return next.map(function (w) {
|
|
54366
|
+
var key = "".concat(w.receiverItemId, "|").concat(w.handlerName, "|").concat(w.sourceComponent, "|").concat(w.sourceItemId, "|").concat(w.eventName);
|
|
54367
|
+
var reason = orphanIndex.get(key);
|
|
54368
|
+
return reason ? _objectSpread$7(_objectSpread$7({}, w), {}, {
|
|
54369
|
+
isOrphan: true,
|
|
54370
|
+
orphanReason: reason
|
|
54371
|
+
}) : w;
|
|
54372
|
+
});
|
|
54373
|
+
}, [persistedWiring, stagedListeners, orphans]);
|
|
54374
|
+
// Orphans reduced by what the user has already staged for removal.
|
|
54375
|
+
useMemo(function () {
|
|
54376
|
+
return orphans.filter(function (o) {
|
|
54377
|
+
return !stagedListeners.removes.some(function (r) {
|
|
54378
|
+
return sameWiringEntry(r, o);
|
|
54379
|
+
});
|
|
54380
|
+
});
|
|
54381
|
+
}, [orphans, stagedListeners.removes]);
|
|
53666
54382
|
var hasStagedChanges = Object.keys(staged).some(function (wid) {
|
|
53667
54383
|
return Object.keys(staged[wid] || {}).length > 0;
|
|
53668
|
-
});
|
|
54384
|
+
}) || stagedListeners.adds.length > 0 || stagedListeners.removes.length > 0;
|
|
53669
54385
|
function stageBinding(widgetId, providerType, providerName) {
|
|
53670
54386
|
setStaged(function (prev) {
|
|
53671
54387
|
var next = _objectSpread$7({}, prev);
|
|
@@ -53685,24 +54401,75 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
53685
54401
|
});
|
|
53686
54402
|
setStaged(function (prev) {
|
|
53687
54403
|
var next = _objectSpread$7({}, prev);
|
|
53688
|
-
var
|
|
53689
|
-
|
|
54404
|
+
var _iterator4 = _createForOfIteratorHelper$4(affected),
|
|
54405
|
+
_step4;
|
|
53690
54406
|
try {
|
|
53691
|
-
for (
|
|
53692
|
-
var b =
|
|
54407
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
54408
|
+
var b = _step4.value;
|
|
53693
54409
|
if (!b.widgetId) continue;
|
|
53694
54410
|
next[b.widgetId] = _objectSpread$7(_objectSpread$7({}, next[b.widgetId] || {}), {}, _defineProperty({}, providerType, providerName || ""));
|
|
53695
54411
|
}
|
|
53696
54412
|
} catch (err) {
|
|
53697
|
-
|
|
54413
|
+
_iterator4.e(err);
|
|
53698
54414
|
} finally {
|
|
53699
|
-
|
|
54415
|
+
_iterator4.f();
|
|
53700
54416
|
}
|
|
53701
54417
|
return next;
|
|
53702
54418
|
});
|
|
53703
54419
|
}
|
|
54420
|
+
|
|
54421
|
+
// Listener tab staging helpers. We treat add/remove as queue
|
|
54422
|
+
// operations so the user can build up several edits before
|
|
54423
|
+
// committing. Toggling a binding that's already staged in the
|
|
54424
|
+
// opposite direction cancels the staged change rather than queuing
|
|
54425
|
+
// both — keeps the diff minimal and the save predictable.
|
|
54426
|
+
var stageListenerAdd = function stageListenerAdd(entry) {
|
|
54427
|
+
setStagedListeners(function (prev) {
|
|
54428
|
+
var removeIdx = prev.removes.findIndex(function (r) {
|
|
54429
|
+
return sameWiringEntry(r, entry);
|
|
54430
|
+
});
|
|
54431
|
+
if (removeIdx >= 0) {
|
|
54432
|
+
return {
|
|
54433
|
+
adds: prev.adds,
|
|
54434
|
+
removes: prev.removes.filter(function (_, i) {
|
|
54435
|
+
return i !== removeIdx;
|
|
54436
|
+
})
|
|
54437
|
+
};
|
|
54438
|
+
}
|
|
54439
|
+
if (prev.adds.some(function (a) {
|
|
54440
|
+
return sameWiringEntry(a, entry);
|
|
54441
|
+
})) return prev;
|
|
54442
|
+
return {
|
|
54443
|
+
adds: [].concat(_toConsumableArray(prev.adds), [entry]),
|
|
54444
|
+
removes: prev.removes
|
|
54445
|
+
};
|
|
54446
|
+
});
|
|
54447
|
+
};
|
|
54448
|
+
var stageListenerRemove = function stageListenerRemove(entry) {
|
|
54449
|
+
setStagedListeners(function (prev) {
|
|
54450
|
+
var addIdx = prev.adds.findIndex(function (a) {
|
|
54451
|
+
return sameWiringEntry(a, entry);
|
|
54452
|
+
});
|
|
54453
|
+
if (addIdx >= 0) {
|
|
54454
|
+
return {
|
|
54455
|
+
adds: prev.adds.filter(function (_, i) {
|
|
54456
|
+
return i !== addIdx;
|
|
54457
|
+
}),
|
|
54458
|
+
removes: prev.removes
|
|
54459
|
+
};
|
|
54460
|
+
}
|
|
54461
|
+
if (prev.removes.some(function (r) {
|
|
54462
|
+
return sameWiringEntry(r, entry);
|
|
54463
|
+
})) return prev;
|
|
54464
|
+
return {
|
|
54465
|
+
adds: prev.adds,
|
|
54466
|
+
removes: [].concat(_toConsumableArray(prev.removes), [entry])
|
|
54467
|
+
};
|
|
54468
|
+
});
|
|
54469
|
+
};
|
|
53704
54470
|
function handleSave() {
|
|
53705
|
-
|
|
54471
|
+
// Provider changes
|
|
54472
|
+
var providerChanges = [];
|
|
53706
54473
|
for (var _i2 = 0, _Object$entries2 = Object.entries(staged); _i2 < _Object$entries2.length; _i2++) {
|
|
53707
54474
|
var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i2], 2),
|
|
53708
54475
|
widgetId = _Object$entries2$_i[0],
|
|
@@ -53711,31 +54478,44 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
53711
54478
|
var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i3], 2),
|
|
53712
54479
|
providerType = _Object$entries3$_i[0],
|
|
53713
54480
|
providerName = _Object$entries3$_i[1];
|
|
53714
|
-
|
|
54481
|
+
providerChanges.push({
|
|
53715
54482
|
widgetId: widgetId,
|
|
53716
54483
|
providerType: providerType,
|
|
53717
54484
|
providerName: providerName || null
|
|
53718
54485
|
});
|
|
53719
54486
|
}
|
|
53720
54487
|
}
|
|
53721
|
-
if (typeof onSaveBindings === "function")
|
|
54488
|
+
if (providerChanges.length > 0 && typeof onSaveBindings === "function") {
|
|
54489
|
+
onSaveBindings(providerChanges);
|
|
54490
|
+
}
|
|
54491
|
+
|
|
54492
|
+
// Listener changes
|
|
54493
|
+
if ((stagedListeners.adds.length > 0 || stagedListeners.removes.length > 0) && typeof onSaveListeners === "function") {
|
|
54494
|
+
onSaveListeners(stagedListeners);
|
|
54495
|
+
}
|
|
53722
54496
|
setStaged({});
|
|
54497
|
+
setStagedListeners({
|
|
54498
|
+
adds: [],
|
|
54499
|
+
removes: []
|
|
54500
|
+
});
|
|
53723
54501
|
setIsOpen(false);
|
|
53724
54502
|
}
|
|
53725
54503
|
function handleCancel() {
|
|
53726
54504
|
setStaged({});
|
|
54505
|
+
setStagedListeners({
|
|
54506
|
+
adds: [],
|
|
54507
|
+
removes: []
|
|
54508
|
+
});
|
|
53727
54509
|
setIsOpen(false);
|
|
53728
54510
|
}
|
|
53729
54511
|
if (!isOpen) return null;
|
|
53730
54512
|
return /*#__PURE__*/jsx(Modal, {
|
|
53731
54513
|
isOpen: isOpen,
|
|
53732
54514
|
setIsOpen: handleCancel,
|
|
53733
|
-
width: "w-
|
|
54515
|
+
width: "w-11/12 xl:w-5/6",
|
|
54516
|
+
height: "h-5/6",
|
|
53734
54517
|
children: /*#__PURE__*/jsxs("div", {
|
|
53735
|
-
className: "flex flex-col rounded-lg overflow-clip border ".concat(panelStyles.backgroundColor || "", " ").concat(panelStyles.borderColor || "", " ").concat(panelStyles.textColor || ""),
|
|
53736
|
-
style: {
|
|
53737
|
-
maxHeight: "80vh"
|
|
53738
|
-
},
|
|
54518
|
+
className: "flex flex-col h-full w-full rounded-lg overflow-clip border ".concat(panelStyles.backgroundColor || "", " ").concat(panelStyles.borderColor || "", " ").concat(panelStyles.textColor || ""),
|
|
53739
54519
|
children: [/*#__PURE__*/jsxs("div", {
|
|
53740
54520
|
className: "flex-shrink-0 flex flex-row items-center justify-between p-4 border-b border-white/10",
|
|
53741
54521
|
children: [/*#__PURE__*/jsxs("div", {
|
|
@@ -53761,47 +54541,37 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
53761
54541
|
})]
|
|
53762
54542
|
}), /*#__PURE__*/jsxs("div", {
|
|
53763
54543
|
className: "flex-shrink-0 flex flex-row items-center gap-2 px-4 pt-3 border-b border-white/10",
|
|
53764
|
-
children: [/*#__PURE__*/
|
|
53765
|
-
|
|
53766
|
-
|
|
53767
|
-
|
|
53768
|
-
|
|
53769
|
-
|
|
53770
|
-
|
|
53771
|
-
|
|
53772
|
-
|
|
53773
|
-
|
|
53774
|
-
|
|
53775
|
-
|
|
53776
|
-
|
|
53777
|
-
|
|
53778
|
-
|
|
53779
|
-
|
|
53780
|
-
var options = providersByType.get(providerType) || [];
|
|
53781
|
-
var unresolvedHere = rows.filter(function (r) {
|
|
53782
|
-
return r.required && !r.resolvedProviderName;
|
|
53783
|
-
}).length;
|
|
53784
|
-
// The "top" dropdown reflects the currently-agreeable choice:
|
|
53785
|
-
// if every row has the same resolved value, show it; otherwise
|
|
53786
|
-
// show "" (mixed) so the dropdown is neutral.
|
|
53787
|
-
var allSame = rows.every(function (r) {
|
|
53788
|
-
return r.resolvedProviderName === rows[0].resolvedProviderName;
|
|
53789
|
-
});
|
|
53790
|
-
var topValue = allSame ? rows[0].resolvedProviderName || "" : "";
|
|
53791
|
-
return /*#__PURE__*/jsx(ProviderTypeRow, {
|
|
53792
|
-
providerType: providerType,
|
|
53793
|
-
rows: rows,
|
|
53794
|
-
options: options,
|
|
53795
|
-
topValue: topValue,
|
|
53796
|
-
unresolvedHere: unresolvedHere,
|
|
53797
|
-
onBulk: function onBulk(name) {
|
|
53798
|
-
return stageBulk(providerType, name);
|
|
53799
|
-
},
|
|
53800
|
-
onPerWidget: function onPerWidget(widgetId, name) {
|
|
53801
|
-
return stageBinding(widgetId, providerType, name);
|
|
53802
|
-
}
|
|
53803
|
-
}, providerType);
|
|
54544
|
+
children: [/*#__PURE__*/jsxs("button", {
|
|
54545
|
+
type: "button",
|
|
54546
|
+
onClick: function onClick() {
|
|
54547
|
+
return setActiveTab("providers");
|
|
54548
|
+
},
|
|
54549
|
+
className: "px-3 py-1.5 text-sm font-medium -mb-px border-b-2 ".concat(activeTab === "providers" ? "border-indigo-400" : "border-transparent opacity-60 hover:opacity-100"),
|
|
54550
|
+
children: ["Providers", unresolvedCount > 0 && /*#__PURE__*/jsx("span", {
|
|
54551
|
+
className: "ml-2 inline-block h-1.5 w-1.5 rounded-full bg-amber-400 align-middle"
|
|
54552
|
+
})]
|
|
54553
|
+
}), /*#__PURE__*/jsx("button", {
|
|
54554
|
+
type: "button",
|
|
54555
|
+
onClick: function onClick() {
|
|
54556
|
+
return setActiveTab("listeners");
|
|
54557
|
+
},
|
|
54558
|
+
className: "px-3 py-1.5 text-sm font-medium -mb-px border-b-2 ".concat(activeTab === "listeners" ? "border-indigo-400" : "border-transparent opacity-60 hover:opacity-100"),
|
|
54559
|
+
children: "Listeners"
|
|
53804
54560
|
})]
|
|
54561
|
+
}), /*#__PURE__*/jsx("div", {
|
|
54562
|
+
className: "p-5 flex-1 min-h-0",
|
|
54563
|
+
children: activeTab === "listeners" ? /*#__PURE__*/jsx(ListenersTab, {
|
|
54564
|
+
emitters: emitters,
|
|
54565
|
+
receivers: receivers,
|
|
54566
|
+
wiring: effectiveWiring,
|
|
54567
|
+
onAdd: stageListenerAdd,
|
|
54568
|
+
onRemove: stageListenerRemove
|
|
54569
|
+
}) : /*#__PURE__*/jsx(ProvidersTab, {
|
|
54570
|
+
grouped: grouped,
|
|
54571
|
+
providersByType: providersByType,
|
|
54572
|
+
onBulk: stageBulk,
|
|
54573
|
+
onPerWidget: stageBinding
|
|
54574
|
+
})
|
|
53805
54575
|
}), /*#__PURE__*/jsxs("div", {
|
|
53806
54576
|
className: "flex-shrink-0 flex flex-row justify-end gap-2 p-4 border-t border-white/10",
|
|
53807
54577
|
children: [/*#__PURE__*/jsx(Button3, {
|
|
@@ -53818,114 +54588,507 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
53818
54588
|
};
|
|
53819
54589
|
|
|
53820
54590
|
/**
|
|
53821
|
-
*
|
|
53822
|
-
*
|
|
54591
|
+
* Providers tab with a sidebar/detail layout mirroring the Listeners
|
|
54592
|
+
* tab. Column 1 lists provider types in this workspace (with an amber
|
|
54593
|
+
* dot per-type when any widget of that type is unresolved). Column 2
|
|
54594
|
+
* shows the selected type's bulk dropdown + per-widget dropdowns.
|
|
53823
54595
|
*/
|
|
53824
|
-
function
|
|
53825
|
-
var
|
|
53826
|
-
|
|
53827
|
-
|
|
53828
|
-
|
|
53829
|
-
|
|
53830
|
-
|
|
53831
|
-
|
|
53832
|
-
|
|
53833
|
-
|
|
53834
|
-
|
|
53835
|
-
|
|
53836
|
-
|
|
54596
|
+
function ProvidersTab(_ref2) {
|
|
54597
|
+
var _typeEntries$, _selectedRows$;
|
|
54598
|
+
var grouped = _ref2.grouped,
|
|
54599
|
+
providersByType = _ref2.providersByType,
|
|
54600
|
+
onBulk = _ref2.onBulk,
|
|
54601
|
+
onPerWidget = _ref2.onPerWidget;
|
|
54602
|
+
var typeEntries = useMemo(function () {
|
|
54603
|
+
return Array.from(grouped.entries());
|
|
54604
|
+
}, [grouped]);
|
|
54605
|
+
var _useState7 = useState(((_typeEntries$ = typeEntries[0]) === null || _typeEntries$ === void 0 ? void 0 : _typeEntries$[0]) || null),
|
|
54606
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
54607
|
+
selectedType = _useState8[0],
|
|
54608
|
+
setSelectedType = _useState8[1];
|
|
54609
|
+
|
|
54610
|
+
// If the selected type disappears (workspace changed), fall back.
|
|
54611
|
+
useMemo(function () {
|
|
54612
|
+
if (selectedType && !grouped.has(selectedType)) {
|
|
54613
|
+
var _typeEntries$2;
|
|
54614
|
+
setSelectedType(((_typeEntries$2 = typeEntries[0]) === null || _typeEntries$2 === void 0 ? void 0 : _typeEntries$2[0]) || null);
|
|
54615
|
+
}
|
|
54616
|
+
}, [grouped, selectedType, typeEntries]);
|
|
54617
|
+
if (typeEntries.length === 0) {
|
|
54618
|
+
return /*#__PURE__*/jsx("div", {
|
|
54619
|
+
className: "text-sm opacity-60 text-center py-6",
|
|
54620
|
+
children: "No widgets in this dashboard require providers."
|
|
54621
|
+
});
|
|
54622
|
+
}
|
|
54623
|
+
var selectedRows = selectedType ? grouped.get(selectedType) || [] : [];
|
|
54624
|
+
var selectedOptions = selectedType ? providersByType.get(selectedType) || [] : [];
|
|
54625
|
+
var allSame = selectedRows.length > 0 && selectedRows.every(function (r) {
|
|
54626
|
+
return r.resolvedProviderName === selectedRows[0].resolvedProviderName;
|
|
54627
|
+
});
|
|
54628
|
+
var topValue = allSame ? ((_selectedRows$ = selectedRows[0]) === null || _selectedRows$ === void 0 ? void 0 : _selectedRows$.resolvedProviderName) || "" : "";
|
|
53837
54629
|
return /*#__PURE__*/jsxs("div", {
|
|
53838
|
-
className: "
|
|
54630
|
+
className: "flex flex-row gap-3 h-full min-h-0",
|
|
53839
54631
|
children: [/*#__PURE__*/jsxs("div", {
|
|
53840
|
-
className: "
|
|
54632
|
+
className: "w-56 flex-shrink-0 bg-white/5 border border-white/10 rounded-lg overflow-hidden flex flex-col",
|
|
53841
54633
|
children: [/*#__PURE__*/jsx("div", {
|
|
53842
|
-
className: "
|
|
53843
|
-
children:
|
|
53844
|
-
|
|
53845
|
-
|
|
53846
|
-
|
|
53847
|
-
|
|
53848
|
-
|
|
53849
|
-
|
|
53850
|
-
|
|
53851
|
-
|
|
53852
|
-
|
|
53853
|
-
|
|
53854
|
-
|
|
53855
|
-
|
|
53856
|
-
|
|
53857
|
-
|
|
54634
|
+
className: "px-3 py-2 text-xs font-semibold opacity-50 uppercase tracking-wider border-b border-white/10",
|
|
54635
|
+
children: "Provider Types"
|
|
54636
|
+
}), /*#__PURE__*/jsx("div", {
|
|
54637
|
+
className: "overflow-y-auto flex-1",
|
|
54638
|
+
children: typeEntries.map(function (_ref3) {
|
|
54639
|
+
var _ref4 = _slicedToArray(_ref3, 2),
|
|
54640
|
+
providerType = _ref4[0],
|
|
54641
|
+
rows = _ref4[1];
|
|
54642
|
+
var isActive = selectedType === providerType;
|
|
54643
|
+
var unresolvedHere = rows.filter(function (r) {
|
|
54644
|
+
return r.required && !r.resolvedProviderName;
|
|
54645
|
+
}).length;
|
|
54646
|
+
return /*#__PURE__*/jsxs("button", {
|
|
54647
|
+
type: "button",
|
|
54648
|
+
onClick: function onClick() {
|
|
54649
|
+
return setSelectedType(providerType);
|
|
54650
|
+
},
|
|
54651
|
+
className: "w-full text-left px-3 py-2 border-l-2 ".concat(isActive ? "bg-indigo-900/30 border-indigo-400" : "border-transparent hover:bg-white/5"),
|
|
54652
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
54653
|
+
className: "flex items-center gap-2",
|
|
54654
|
+
children: [/*#__PURE__*/jsx("span", {
|
|
54655
|
+
className: "text-sm font-medium truncate",
|
|
54656
|
+
children: providerType
|
|
54657
|
+
}), unresolvedHere > 0 && /*#__PURE__*/jsxs("span", {
|
|
54658
|
+
className: "text-[10px] text-amber-300 flex items-center gap-1",
|
|
54659
|
+
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
54660
|
+
icon: "triangle-exclamation",
|
|
54661
|
+
className: "h-2.5 w-2.5"
|
|
54662
|
+
}), unresolvedHere]
|
|
54663
|
+
})]
|
|
54664
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
54665
|
+
className: "text-xs opacity-50 mt-0.5",
|
|
54666
|
+
children: [rows.length, " widget", rows.length === 1 ? "" : "s"]
|
|
54667
|
+
})]
|
|
54668
|
+
}, providerType);
|
|
53858
54669
|
})
|
|
53859
|
-
}), /*#__PURE__*/jsxs("select", {
|
|
53860
|
-
value: topValue,
|
|
53861
|
-
onChange: function onChange(e) {
|
|
53862
|
-
return onBulk(e.target.value);
|
|
53863
|
-
},
|
|
53864
|
-
className: "bg-gray-800 border border-white/10 rounded px-3 py-1.5 text-sm min-w-[14rem]",
|
|
53865
|
-
children: [/*#__PURE__*/jsx("option", {
|
|
53866
|
-
value: "",
|
|
53867
|
-
children: "\u2014 Select provider \u2014"
|
|
53868
|
-
}), options.map(function (opt) {
|
|
53869
|
-
return /*#__PURE__*/jsxs("option", {
|
|
53870
|
-
value: opt.name,
|
|
53871
|
-
children: [opt.name, opt.isDefaultForType ? " (default)" : ""]
|
|
53872
|
-
}, opt.name);
|
|
53873
|
-
})]
|
|
53874
54670
|
})]
|
|
53875
|
-
}), /*#__PURE__*/
|
|
53876
|
-
|
|
53877
|
-
|
|
53878
|
-
|
|
53879
|
-
|
|
53880
|
-
});
|
|
53881
|
-
},
|
|
53882
|
-
className: "text-xs opacity-60 hover:opacity-100 flex items-center gap-1",
|
|
53883
|
-
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
53884
|
-
icon: expanded ? "chevron-down" : "chevron-right",
|
|
53885
|
-
className: "h-3 w-3"
|
|
53886
|
-
}), expanded ? "Hide" : "Show", " per-widget overrides"]
|
|
53887
|
-
}), expanded && /*#__PURE__*/jsx("div", {
|
|
53888
|
-
className: "pl-3 border-l border-white/10 space-y-2",
|
|
53889
|
-
children: rows.map(function (row) {
|
|
53890
|
-
var _row$layoutItem;
|
|
53891
|
-
var hasExplicitOverride = !!((_row$layoutItem = row.layoutItem) !== null && _row$layoutItem !== void 0 && (_row$layoutItem = _row$layoutItem.selectedProviders) !== null && _row$layoutItem !== void 0 && _row$layoutItem[providerType]);
|
|
53892
|
-
return /*#__PURE__*/jsxs("div", {
|
|
53893
|
-
className: "flex flex-row items-center gap-3",
|
|
54671
|
+
}), /*#__PURE__*/jsx("div", {
|
|
54672
|
+
className: "flex-1 min-w-0 bg-white/5 border border-white/10 rounded-lg overflow-hidden flex flex-col",
|
|
54673
|
+
children: selectedType ? /*#__PURE__*/jsxs(Fragment, {
|
|
54674
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
54675
|
+
className: "px-4 py-3 border-b border-white/10 flex-shrink-0",
|
|
53894
54676
|
children: [/*#__PURE__*/jsxs("div", {
|
|
53895
|
-
className: "
|
|
54677
|
+
className: "text-sm font-semibold",
|
|
54678
|
+
children: [selectedType, " ", /*#__PURE__*/jsx("span", {
|
|
54679
|
+
className: "opacity-60 font-normal",
|
|
54680
|
+
children: "provider"
|
|
54681
|
+
})]
|
|
54682
|
+
}), /*#__PURE__*/jsx("div", {
|
|
54683
|
+
className: "text-xs opacity-60 mt-1",
|
|
54684
|
+
children: "Apply one provider to every widget of this type, or adjust per-widget below."
|
|
54685
|
+
})]
|
|
54686
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
54687
|
+
className: "flex-1 overflow-y-auto p-4 space-y-4",
|
|
54688
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
54689
|
+
className: "flex items-center gap-3",
|
|
53896
54690
|
children: [/*#__PURE__*/jsx("span", {
|
|
53897
|
-
className: "
|
|
53898
|
-
children:
|
|
53899
|
-
}), /*#__PURE__*/
|
|
53900
|
-
|
|
53901
|
-
|
|
53902
|
-
|
|
53903
|
-
|
|
53904
|
-
|
|
53905
|
-
|
|
53906
|
-
|
|
53907
|
-
|
|
53908
|
-
|
|
53909
|
-
|
|
53910
|
-
|
|
54691
|
+
className: "text-xs opacity-60 flex-shrink-0 w-20",
|
|
54692
|
+
children: "Bulk assign"
|
|
54693
|
+
}), /*#__PURE__*/jsxs("select", {
|
|
54694
|
+
value: topValue,
|
|
54695
|
+
onChange: function onChange(e) {
|
|
54696
|
+
return onBulk(selectedType, e.target.value);
|
|
54697
|
+
},
|
|
54698
|
+
className: "flex-1 bg-gray-800 border border-white/10 rounded px-3 py-1.5 text-sm",
|
|
54699
|
+
children: [/*#__PURE__*/jsx("option", {
|
|
54700
|
+
value: "",
|
|
54701
|
+
children: "\u2014 Select provider \u2014"
|
|
54702
|
+
}), selectedOptions.map(function (opt) {
|
|
54703
|
+
return /*#__PURE__*/jsxs("option", {
|
|
54704
|
+
value: opt.name,
|
|
54705
|
+
children: [opt.name, opt.isDefaultForType ? " (default)" : ""]
|
|
54706
|
+
}, opt.name);
|
|
54707
|
+
})]
|
|
53911
54708
|
})]
|
|
53912
|
-
}), /*#__PURE__*/jsxs("
|
|
53913
|
-
|
|
53914
|
-
|
|
53915
|
-
|
|
53916
|
-
},
|
|
53917
|
-
|
|
53918
|
-
|
|
53919
|
-
|
|
53920
|
-
|
|
53921
|
-
|
|
53922
|
-
|
|
53923
|
-
|
|
53924
|
-
|
|
53925
|
-
|
|
54709
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
54710
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
54711
|
+
className: "text-xs font-semibold opacity-50 uppercase tracking-wider mb-2",
|
|
54712
|
+
children: "Per-widget"
|
|
54713
|
+
}), /*#__PURE__*/jsx("div", {
|
|
54714
|
+
children: selectedRows.map(function (row) {
|
|
54715
|
+
var _row$layoutItem;
|
|
54716
|
+
var hasExplicitOverride = !!((_row$layoutItem = row.layoutItem) !== null && _row$layoutItem !== void 0 && (_row$layoutItem = _row$layoutItem.selectedProviders) !== null && _row$layoutItem !== void 0 && _row$layoutItem[selectedType]);
|
|
54717
|
+
var isRequired = !!row.required;
|
|
54718
|
+
var isMissing = !row.resolvedProviderName;
|
|
54719
|
+
var needsAttention = isRequired && isMissing;
|
|
54720
|
+
return /*#__PURE__*/jsxs("div", {
|
|
54721
|
+
className: "flex flex-row items-center gap-3 py-2 px-2 rounded border-l-2 ".concat(needsAttention ? "bg-red-900 border-red-500" : "border-transparent"),
|
|
54722
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
54723
|
+
className: "flex-1 min-w-0",
|
|
54724
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
54725
|
+
className: "text-sm truncate flex items-center gap-1.5 ".concat(needsAttention ? "font-semibold text-red-100" : "font-medium"),
|
|
54726
|
+
children: [/*#__PURE__*/jsx("span", {
|
|
54727
|
+
className: "truncate",
|
|
54728
|
+
children: row.component || "widget"
|
|
54729
|
+
}), isRequired && /*#__PURE__*/jsx("span", {
|
|
54730
|
+
className: needsAttention ? "text-red-300" : "text-indigo-300",
|
|
54731
|
+
title: "Required provider",
|
|
54732
|
+
"aria-label": "required",
|
|
54733
|
+
children: "*"
|
|
54734
|
+
})]
|
|
54735
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
54736
|
+
className: "flex items-center gap-1.5 mt-1 text-[10px]",
|
|
54737
|
+
children: [/*#__PURE__*/jsx("span", {
|
|
54738
|
+
className: "uppercase tracking-wide px-1.5 py-0.5 rounded font-semibold ".concat(needsAttention ? "bg-red-600 text-white" : isRequired ? "bg-indigo-800 text-indigo-100" : "bg-gray-700 text-gray-300"),
|
|
54739
|
+
children: isRequired ? "required" : "optional"
|
|
54740
|
+
}), hasExplicitOverride && /*#__PURE__*/jsx("span", {
|
|
54741
|
+
className: "uppercase tracking-wide px-1.5 py-0.5 rounded font-semibold bg-indigo-900 text-indigo-200",
|
|
54742
|
+
children: "override"
|
|
54743
|
+
}), /*#__PURE__*/jsx("span", {
|
|
54744
|
+
className: "opacity-40 truncate ml-1",
|
|
54745
|
+
children: (row.widgetId || "").slice(0, 8)
|
|
54746
|
+
})]
|
|
54747
|
+
})]
|
|
54748
|
+
}), /*#__PURE__*/jsxs("select", {
|
|
54749
|
+
value: row.resolvedProviderName || "",
|
|
54750
|
+
onChange: function onChange(e) {
|
|
54751
|
+
return onPerWidget(row.widgetId, selectedType, e.target.value);
|
|
54752
|
+
},
|
|
54753
|
+
className: "bg-gray-800 border rounded px-2 py-1 text-xs min-w-[12rem] ".concat(needsAttention ? "border-red-400" : "border-gray-700"),
|
|
54754
|
+
children: [/*#__PURE__*/jsx("option", {
|
|
54755
|
+
value: "",
|
|
54756
|
+
children: "\u2014 none \u2014"
|
|
54757
|
+
}), selectedOptions.map(function (opt) {
|
|
54758
|
+
return /*#__PURE__*/jsxs("option", {
|
|
54759
|
+
value: opt.name,
|
|
54760
|
+
children: [opt.name, opt.isDefaultForType ? " (default)" : ""]
|
|
54761
|
+
}, opt.name);
|
|
54762
|
+
})]
|
|
54763
|
+
})]
|
|
54764
|
+
}, "".concat(row.widgetId, ":").concat(row.providerType));
|
|
54765
|
+
})
|
|
54766
|
+
})]
|
|
54767
|
+
})]
|
|
54768
|
+
})]
|
|
54769
|
+
}) : /*#__PURE__*/jsx("div", {
|
|
54770
|
+
className: "flex-1 flex items-center justify-center text-sm opacity-60",
|
|
54771
|
+
children: "Pick a provider type to bulk-assign or adjust per widget."
|
|
54772
|
+
})
|
|
54773
|
+
})]
|
|
54774
|
+
});
|
|
54775
|
+
}
|
|
54776
|
+
|
|
54777
|
+
// ─── Listeners tab ──────────────────────────────────────────────────────────
|
|
54778
|
+
|
|
54779
|
+
/**
|
|
54780
|
+
* Match two wiring entries on the four fields that uniquely identify
|
|
54781
|
+
* a listener binding (receiver + handler + source + event). Used to
|
|
54782
|
+
* dedupe stages, cancel opposite-direction stages, and detect "is
|
|
54783
|
+
* this binding already there".
|
|
54784
|
+
*/
|
|
54785
|
+
function sameWiringEntry(a, b) {
|
|
54786
|
+
if (!a || !b) return false;
|
|
54787
|
+
return String(a.receiverItemId) === String(b.receiverItemId) && a.handlerName === b.handlerName && a.sourceComponent === b.sourceComponent && String(a.sourceItemId) === String(b.sourceItemId) && a.eventName === b.eventName;
|
|
54788
|
+
}
|
|
54789
|
+
|
|
54790
|
+
/**
|
|
54791
|
+
* Receiver-centric sidebar/detail layout. Mirrors the per-widget
|
|
54792
|
+
* PanelEditItemHandlers pattern (handler-by-handler editing) but
|
|
54793
|
+
* scoped to the whole dashboard. Picking a widget on the left shows
|
|
54794
|
+
* its handlers + currently wired sources on the right; the user
|
|
54795
|
+
* adjusts wiring per handler from a single dropdown of all emitters'
|
|
54796
|
+
* (widget × event) pairs.
|
|
54797
|
+
*/
|
|
54798
|
+
function ListenersTab(_ref6) {
|
|
54799
|
+
var _receivers$;
|
|
54800
|
+
var emitters = _ref6.emitters,
|
|
54801
|
+
receivers = _ref6.receivers,
|
|
54802
|
+
wiring = _ref6.wiring,
|
|
54803
|
+
onAdd = _ref6.onAdd,
|
|
54804
|
+
onRemove = _ref6.onRemove;
|
|
54805
|
+
var _useState1 = useState(((_receivers$ = receivers[0]) === null || _receivers$ === void 0 ? void 0 : _receivers$.key) || null),
|
|
54806
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
54807
|
+
selectedReceiverKey = _useState10[0],
|
|
54808
|
+
setSelectedReceiverKey = _useState10[1];
|
|
54809
|
+
var _useState11 = useState(null),
|
|
54810
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
54811
|
+
selectedHandler = _useState12[0],
|
|
54812
|
+
setSelectedHandler = _useState12[1];
|
|
54813
|
+
|
|
54814
|
+
// Re-anchor selection if the previously-selected widget disappeared
|
|
54815
|
+
// (workspace switched, widget deleted, etc.).
|
|
54816
|
+
useMemo(function () {
|
|
54817
|
+
if (selectedReceiverKey && !receivers.some(function (r) {
|
|
54818
|
+
return r.key === selectedReceiverKey;
|
|
54819
|
+
})) {
|
|
54820
|
+
var _receivers$2;
|
|
54821
|
+
setSelectedReceiverKey(((_receivers$2 = receivers[0]) === null || _receivers$2 === void 0 ? void 0 : _receivers$2.key) || null);
|
|
54822
|
+
}
|
|
54823
|
+
}, [receivers, selectedReceiverKey]);
|
|
54824
|
+
|
|
54825
|
+
// Receiver lookup (by composite key) for label resolution in chips.
|
|
54826
|
+
var receiverByKey = useMemo(function () {
|
|
54827
|
+
var m = new Map();
|
|
54828
|
+
var _iterator5 = _createForOfIteratorHelper$4(receivers),
|
|
54829
|
+
_step5;
|
|
54830
|
+
try {
|
|
54831
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
54832
|
+
var r = _step5.value;
|
|
54833
|
+
m.set(r.key, r);
|
|
54834
|
+
}
|
|
54835
|
+
} catch (err) {
|
|
54836
|
+
_iterator5.e(err);
|
|
54837
|
+
} finally {
|
|
54838
|
+
_iterator5.f();
|
|
54839
|
+
}
|
|
54840
|
+
return m;
|
|
54841
|
+
}, [receivers]);
|
|
54842
|
+
if (receivers.length === 0) {
|
|
54843
|
+
return /*#__PURE__*/jsx("div", {
|
|
54844
|
+
className: "flex items-center justify-center h-full text-sm opacity-60 text-center",
|
|
54845
|
+
children: /*#__PURE__*/jsxs("div", {
|
|
54846
|
+
children: ["No widgets in this dashboard declare event handlers.", emitters.length > 0 && /*#__PURE__*/jsxs("div", {
|
|
54847
|
+
className: "mt-2",
|
|
54848
|
+
children: ["(", emitters.length, " widget", emitters.length === 1 ? "" : "s", " emit events but nothing is set up to receive.)"]
|
|
54849
|
+
})]
|
|
54850
|
+
})
|
|
54851
|
+
});
|
|
54852
|
+
}
|
|
54853
|
+
var selectedReceiver = selectedReceiverKey ? receiverByKey.get(selectedReceiverKey) || null : null;
|
|
54854
|
+
return /*#__PURE__*/jsx("div", {
|
|
54855
|
+
className: "flex flex-col gap-3 h-full min-h-0",
|
|
54856
|
+
children: /*#__PURE__*/jsxs("div", {
|
|
54857
|
+
className: "flex flex-row gap-3 flex-1 min-h-0",
|
|
54858
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
54859
|
+
className: "w-56 flex-shrink-0 bg-white/5 border border-white/10 rounded-lg overflow-hidden flex flex-col",
|
|
54860
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
54861
|
+
className: "px-3 py-2 text-xs font-semibold opacity-50 uppercase tracking-wider border-b border-white/10",
|
|
54862
|
+
children: "Widgets"
|
|
54863
|
+
}), /*#__PURE__*/jsx("div", {
|
|
54864
|
+
className: "overflow-y-auto flex-1",
|
|
54865
|
+
children: receivers.map(function (r) {
|
|
54866
|
+
var isActive = r.key === selectedReceiverKey;
|
|
54867
|
+
return /*#__PURE__*/jsx("button", {
|
|
54868
|
+
type: "button",
|
|
54869
|
+
onClick: function onClick() {
|
|
54870
|
+
return setSelectedReceiverKey(r.key);
|
|
54871
|
+
},
|
|
54872
|
+
className: "w-full text-left px-3 py-2 border-l-2 ".concat(isActive ? "bg-indigo-900/30 border-indigo-400" : "border-transparent hover:bg-white/5"),
|
|
54873
|
+
children: /*#__PURE__*/jsx("span", {
|
|
54874
|
+
className: "text-sm font-medium truncate",
|
|
54875
|
+
children: r.label
|
|
54876
|
+
})
|
|
54877
|
+
}, r.key);
|
|
54878
|
+
})
|
|
54879
|
+
})]
|
|
54880
|
+
}), selectedReceiver ? /*#__PURE__*/jsxs(Fragment, {
|
|
54881
|
+
children: [/*#__PURE__*/jsx(HandlersColumn, {
|
|
54882
|
+
receiver: selectedReceiver,
|
|
54883
|
+
myWiring: wiring.filter(function (w) {
|
|
54884
|
+
return w.receiverComponent === selectedReceiver.component && String(w.receiverItemId) === String(selectedReceiver.itemId);
|
|
54885
|
+
}),
|
|
54886
|
+
selectedHandler: selectedHandler && selectedReceiver.eventHandlers.includes(selectedHandler) ? selectedHandler : null,
|
|
54887
|
+
onSelectHandler: setSelectedHandler
|
|
54888
|
+
}), /*#__PURE__*/jsx(EventsColumn, {
|
|
54889
|
+
receiver: selectedReceiver,
|
|
54890
|
+
handlerName: selectedHandler && selectedReceiver.eventHandlers.includes(selectedHandler) ? selectedHandler : null,
|
|
54891
|
+
myWiring: wiring.filter(function (w) {
|
|
54892
|
+
return w.receiverComponent === selectedReceiver.component && String(w.receiverItemId) === String(selectedReceiver.itemId);
|
|
54893
|
+
}),
|
|
54894
|
+
emitters: emitters,
|
|
54895
|
+
onAdd: onAdd,
|
|
54896
|
+
onRemove: onRemove
|
|
54897
|
+
})]
|
|
54898
|
+
}) : /*#__PURE__*/jsx("div", {
|
|
54899
|
+
className: "flex-1 min-w-0 bg-white/5 border border-white/10 rounded-lg flex items-center justify-center text-sm opacity-60",
|
|
54900
|
+
children: "Pick a widget on the left to wire its handlers."
|
|
54901
|
+
})]
|
|
54902
|
+
})
|
|
54903
|
+
});
|
|
54904
|
+
}
|
|
54905
|
+
|
|
54906
|
+
/**
|
|
54907
|
+
* Second column (within ListenersTab): the selected receiver's
|
|
54908
|
+
* handlers with connection counts. Picking one lights up the
|
|
54909
|
+
* third column. Matches the left-column look from
|
|
54910
|
+
* PanelEditItemHandlers.
|
|
54911
|
+
*/
|
|
54912
|
+
function HandlersColumn(_ref8) {
|
|
54913
|
+
var receiver = _ref8.receiver,
|
|
54914
|
+
myWiring = _ref8.myWiring,
|
|
54915
|
+
selectedHandler = _ref8.selectedHandler,
|
|
54916
|
+
onSelectHandler = _ref8.onSelectHandler;
|
|
54917
|
+
var countsByHandler = useMemo(function () {
|
|
54918
|
+
var m = new Map();
|
|
54919
|
+
var _iterator6 = _createForOfIteratorHelper$4(myWiring),
|
|
54920
|
+
_step6;
|
|
54921
|
+
try {
|
|
54922
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
54923
|
+
var w = _step6.value;
|
|
54924
|
+
m.set(w.handlerName, (m.get(w.handlerName) || 0) + 1);
|
|
54925
|
+
}
|
|
54926
|
+
} catch (err) {
|
|
54927
|
+
_iterator6.e(err);
|
|
54928
|
+
} finally {
|
|
54929
|
+
_iterator6.f();
|
|
54930
|
+
}
|
|
54931
|
+
return m;
|
|
54932
|
+
}, [myWiring]);
|
|
54933
|
+
return /*#__PURE__*/jsxs("div", {
|
|
54934
|
+
className: "w-56 flex-shrink-0 bg-white/5 border border-white/10 rounded-lg overflow-hidden flex flex-col",
|
|
54935
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
54936
|
+
className: "px-3 py-2 text-xs font-semibold opacity-50 uppercase tracking-wider border-b border-white/10",
|
|
54937
|
+
children: "Event Handlers"
|
|
54938
|
+
}), /*#__PURE__*/jsx("div", {
|
|
54939
|
+
className: "overflow-y-auto flex-1",
|
|
54940
|
+
children: receiver.eventHandlers.length === 0 ? /*#__PURE__*/jsx("div", {
|
|
54941
|
+
className: "text-xs opacity-50 text-center py-6 px-3",
|
|
54942
|
+
children: "This widget declares no event handlers."
|
|
54943
|
+
}) : receiver.eventHandlers.map(function (h) {
|
|
54944
|
+
var isActive = h === selectedHandler;
|
|
54945
|
+
var count = countsByHandler.get(h) || 0;
|
|
54946
|
+
return /*#__PURE__*/jsxs("button", {
|
|
54947
|
+
type: "button",
|
|
54948
|
+
onClick: function onClick() {
|
|
54949
|
+
return onSelectHandler(h);
|
|
54950
|
+
},
|
|
54951
|
+
className: "w-full text-left px-3 py-2 text-sm flex items-center justify-between gap-2 border-l-2 ".concat(isActive ? "bg-indigo-900/30 border-indigo-400" : "border-transparent hover:bg-white/5"),
|
|
54952
|
+
children: [/*#__PURE__*/jsxs("span", {
|
|
54953
|
+
className: "flex items-center gap-2 min-w-0",
|
|
54954
|
+
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
54955
|
+
icon: "bolt",
|
|
54956
|
+
className: "h-3 w-3 opacity-60 flex-shrink-0"
|
|
54957
|
+
}), /*#__PURE__*/jsx("code", {
|
|
54958
|
+
className: "truncate",
|
|
54959
|
+
children: h
|
|
53926
54960
|
})]
|
|
54961
|
+
}), /*#__PURE__*/jsx("span", {
|
|
54962
|
+
className: "text-xs opacity-60 flex-shrink-0",
|
|
54963
|
+
children: count
|
|
53927
54964
|
})]
|
|
53928
|
-
},
|
|
54965
|
+
}, h);
|
|
54966
|
+
})
|
|
54967
|
+
})]
|
|
54968
|
+
});
|
|
54969
|
+
}
|
|
54970
|
+
|
|
54971
|
+
/**
|
|
54972
|
+
* Third column: for the selected (receiver, handler), show every
|
|
54973
|
+
* emitter widget as a section with a checkbox list of its events.
|
|
54974
|
+
* Checked = wired; toggling commits an add/remove. Mirrors the
|
|
54975
|
+
* right-column UX of PanelEditItemHandlers.
|
|
54976
|
+
*/
|
|
54977
|
+
function EventsColumn(_ref9) {
|
|
54978
|
+
var receiver = _ref9.receiver,
|
|
54979
|
+
handlerName = _ref9.handlerName,
|
|
54980
|
+
myWiring = _ref9.myWiring,
|
|
54981
|
+
emitters = _ref9.emitters,
|
|
54982
|
+
onAdd = _ref9.onAdd,
|
|
54983
|
+
onRemove = _ref9.onRemove;
|
|
54984
|
+
// Wired-for-this-handler: dedupe defensively (legacy workspaces
|
|
54985
|
+
// occasionally contain duplicate entries under the same handler).
|
|
54986
|
+
var wiredHere = useMemo(function () {
|
|
54987
|
+
var seen = new Set();
|
|
54988
|
+
var out = [];
|
|
54989
|
+
var _iterator7 = _createForOfIteratorHelper$4(myWiring),
|
|
54990
|
+
_step7;
|
|
54991
|
+
try {
|
|
54992
|
+
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
54993
|
+
var w = _step7.value;
|
|
54994
|
+
if (w.handlerName !== handlerName) continue;
|
|
54995
|
+
var key = "".concat(w.sourceComponent, "|").concat(w.sourceItemId, "|").concat(w.eventName);
|
|
54996
|
+
if (seen.has(key)) continue;
|
|
54997
|
+
seen.add(key);
|
|
54998
|
+
out.push(w);
|
|
54999
|
+
}
|
|
55000
|
+
} catch (err) {
|
|
55001
|
+
_iterator7.e(err);
|
|
55002
|
+
} finally {
|
|
55003
|
+
_iterator7.f();
|
|
55004
|
+
}
|
|
55005
|
+
return out;
|
|
55006
|
+
}, [myWiring, handlerName]);
|
|
55007
|
+
var wiredKeys = useMemo(function () {
|
|
55008
|
+
return new Set(wiredHere.map(function (w) {
|
|
55009
|
+
return "".concat(w.sourceComponent, "|").concat(w.sourceItemId, "|").concat(w.eventName);
|
|
55010
|
+
}));
|
|
55011
|
+
}, [wiredHere]);
|
|
55012
|
+
|
|
55013
|
+
// Separate orphans — these reference sources no longer in the
|
|
55014
|
+
// workspace, so they don't appear in the emitter sections below.
|
|
55015
|
+
wiredHere.filter(function (w) {
|
|
55016
|
+
return w.isOrphan;
|
|
55017
|
+
});
|
|
55018
|
+
if (!handlerName) {
|
|
55019
|
+
return /*#__PURE__*/jsx("div", {
|
|
55020
|
+
className: "flex-1 min-w-0 bg-white/5 border border-white/10 rounded-lg flex items-center justify-center text-sm opacity-60",
|
|
55021
|
+
children: "Select a handler to view available events."
|
|
55022
|
+
});
|
|
55023
|
+
}
|
|
55024
|
+
function toggle(source) {
|
|
55025
|
+
var key = "".concat(source.sourceComponent, "|").concat(source.sourceItemId, "|").concat(source.eventName);
|
|
55026
|
+
if (wiredKeys.has(key)) {
|
|
55027
|
+
var existing = wiredHere.find(function (w) {
|
|
55028
|
+
return "".concat(w.sourceComponent, "|").concat(w.sourceItemId, "|").concat(w.eventName) === key;
|
|
55029
|
+
});
|
|
55030
|
+
onRemove(existing);
|
|
55031
|
+
} else {
|
|
55032
|
+
onAdd({
|
|
55033
|
+
receiverItemId: receiver.itemId,
|
|
55034
|
+
receiverComponent: receiver.component,
|
|
55035
|
+
handlerName: handlerName,
|
|
55036
|
+
sourceComponent: source.sourceComponent,
|
|
55037
|
+
sourceItemId: source.sourceItemId,
|
|
55038
|
+
eventName: source.eventName
|
|
55039
|
+
});
|
|
55040
|
+
}
|
|
55041
|
+
}
|
|
55042
|
+
|
|
55043
|
+
// Hide the selected receiver from its own emitter list — a widget
|
|
55044
|
+
// listening to its own events is almost always a mistake.
|
|
55045
|
+
var emittersForList = emitters.filter(function (e) {
|
|
55046
|
+
return !(e.component === receiver.component && String(e.itemId) === String(receiver.itemId));
|
|
55047
|
+
});
|
|
55048
|
+
return /*#__PURE__*/jsxs("div", {
|
|
55049
|
+
className: "flex-1 min-w-0 bg-white/5 border border-white/10 rounded-lg overflow-hidden flex flex-col",
|
|
55050
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
55051
|
+
className: "flex-shrink-0 px-4 py-2 border-b border-white/10 text-xs opacity-60",
|
|
55052
|
+
children: ["Check an event to fire", " ", /*#__PURE__*/jsx("code", {
|
|
55053
|
+
className: "text-xs",
|
|
55054
|
+
children: handlerName
|
|
55055
|
+
}), " on", " ", /*#__PURE__*/jsx("span", {
|
|
55056
|
+
className: "font-medium",
|
|
55057
|
+
children: receiver.label
|
|
55058
|
+
}), "."]
|
|
55059
|
+
}), /*#__PURE__*/jsx("div", {
|
|
55060
|
+
className: "flex-1 overflow-y-auto p-4 space-y-5",
|
|
55061
|
+
children: emittersForList.length === 0 ? /*#__PURE__*/jsx("div", {
|
|
55062
|
+
className: "text-sm opacity-60",
|
|
55063
|
+
children: "No other widgets in this dashboard emit events."
|
|
55064
|
+
}) : emittersForList.map(function (e) {
|
|
55065
|
+
return /*#__PURE__*/jsxs("div", {
|
|
55066
|
+
className: "space-y-1",
|
|
55067
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
55068
|
+
className: "text-xs font-semibold opacity-50 uppercase tracking-wider",
|
|
55069
|
+
children: e.label
|
|
55070
|
+
}), e.events.map(function (eventName) {
|
|
55071
|
+
var key = "".concat(e.component, "|").concat(e.itemId, "|").concat(eventName);
|
|
55072
|
+
var selected = wiredKeys.has(key);
|
|
55073
|
+
return /*#__PURE__*/jsxs("label", {
|
|
55074
|
+
className: "flex items-center gap-3 px-3 py-1.5 rounded-md cursor-pointer text-sm ".concat(selected ? "opacity-100" : "opacity-70 hover:opacity-100"),
|
|
55075
|
+
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
55076
|
+
icon: selected ? "square-check" : "square",
|
|
55077
|
+
className: "h-4 w-4 flex-shrink-0",
|
|
55078
|
+
onClick: function onClick(ev) {
|
|
55079
|
+
ev.preventDefault();
|
|
55080
|
+
toggle({
|
|
55081
|
+
sourceComponent: e.component,
|
|
55082
|
+
sourceItemId: e.itemId,
|
|
55083
|
+
eventName: eventName
|
|
55084
|
+
});
|
|
55085
|
+
}
|
|
55086
|
+
}), /*#__PURE__*/jsx("span", {
|
|
55087
|
+
children: eventName
|
|
55088
|
+
})]
|
|
55089
|
+
}, key);
|
|
55090
|
+
})]
|
|
55091
|
+
}, e.key || "".concat(e.component, "|").concat(e.itemId));
|
|
53929
55092
|
})
|
|
53930
55093
|
})]
|
|
53931
55094
|
});
|
|
@@ -54192,7 +55355,7 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
54192
55355
|
_useState42 = _slicedToArray(_useState41, 2),
|
|
54193
55356
|
isConfigModalOpen = _useState42[0],
|
|
54194
55357
|
setIsConfigModalOpen = _useState42[1];
|
|
54195
|
-
|
|
55358
|
+
useRef(new Set());
|
|
54196
55359
|
var _useState43 = useState(new Set()),
|
|
54197
55360
|
_useState44 = _slicedToArray(_useState43, 2),
|
|
54198
55361
|
dismissedUnresolvedForWorkspace = _useState44[0],
|
|
@@ -54727,7 +55890,29 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
54727
55890
|
}
|
|
54728
55891
|
}
|
|
54729
55892
|
|
|
54730
|
-
// ───
|
|
55893
|
+
// ─── Bulk listener binding save ──────────────────────────────────
|
|
55894
|
+
// Takes { adds, removes } from the Dashboard Config modal's
|
|
55895
|
+
// Listeners tab and writes the updated workspace once. Applies the
|
|
55896
|
+
// delta via applyWiringChanges (uses item.listeners directly so the
|
|
55897
|
+
// existing PanelEditItemHandlers / runtime stays consistent).
|
|
55898
|
+
function handleBulkListenerBindings(changes) {
|
|
55899
|
+
if (!workspaceSelected || !dashApi || !(credentials !== null && credentials !== void 0 && credentials.appId)) return;
|
|
55900
|
+
if (!changes || (!changes.adds || changes.adds.length === 0) && (!changes.removes || changes.removes.length === 0)) {
|
|
55901
|
+
return;
|
|
55902
|
+
}
|
|
55903
|
+
var updatedWorkspace = applyWiringChanges(workspaceSelected, changes);
|
|
55904
|
+
updateTabWorkspace(updatedWorkspace);
|
|
55905
|
+
try {
|
|
55906
|
+
dashApi.saveWorkspace(credentials.appId, updatedWorkspace, function (e, result) {
|
|
55907
|
+
return (void 0);
|
|
55908
|
+
}, function (e, error) {
|
|
55909
|
+
return (void 0);
|
|
55910
|
+
});
|
|
55911
|
+
} catch (e) {
|
|
55912
|
+
}
|
|
55913
|
+
}
|
|
55914
|
+
|
|
55915
|
+
// ─── Unresolved providers + listener orphans (modal + auto-open) ─
|
|
54731
55916
|
var unresolvedProviders = useMemo(function () {
|
|
54732
55917
|
return getUnresolvedProviders({
|
|
54733
55918
|
workspace: workspaceSelected,
|
|
@@ -54738,19 +55923,16 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
54738
55923
|
}
|
|
54739
55924
|
});
|
|
54740
55925
|
}, [workspaceSelected, appContext === null || appContext === void 0 ? void 0 : appContext.providers]);
|
|
54741
|
-
var
|
|
55926
|
+
var unresolvedProvidersCount = unresolvedProviders.length;
|
|
55927
|
+
// Listener orphans are pruned in WorkspaceModel / DashboardModel at
|
|
55928
|
+
// load time, so the badge only counts unresolved provider bindings.
|
|
55929
|
+
var unresolvedCount = unresolvedProvidersCount;
|
|
54742
55930
|
|
|
54743
|
-
//
|
|
54744
|
-
//
|
|
54745
|
-
//
|
|
54746
|
-
|
|
54747
|
-
|
|
54748
|
-
if (unresolvedCount === 0) return;
|
|
54749
|
-
if (configModalAutoOpenedFor.current.has(workspaceSelected.id)) return;
|
|
54750
|
-
if (dismissedUnresolvedForWorkspace.has(workspaceSelected.id)) return;
|
|
54751
|
-
configModalAutoOpenedFor.current.add(workspaceSelected.id);
|
|
54752
|
-
setIsConfigModalOpen(true);
|
|
54753
|
-
}, [workspaceSelected === null || workspaceSelected === void 0 ? void 0 : workspaceSelected.id, unresolvedCount, dismissedUnresolvedForWorkspace]);
|
|
55931
|
+
// (No auto-open.) Earlier versions popped the modal on first load
|
|
55932
|
+
// when anything was unresolved — turned out to be jarring,
|
|
55933
|
+
// especially on dashboards that had a long-standing orphan list.
|
|
55934
|
+
// Awareness is delivered passively now: the gear icon's amber dot
|
|
55935
|
+
// and the banner. The user opens the modal when they're ready.
|
|
54754
55936
|
|
|
54755
55937
|
// ─── Sidebar State ────────────────────────────────────────────────
|
|
54756
55938
|
var sidebarEnabled = (workspaceSelected === null || workspaceSelected === void 0 ? void 0 : workspaceSelected.sidebarEnabled) || false;
|
|
@@ -55502,7 +56684,7 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
55502
56684
|
onSidebarChange: popout ? null : handleSidebarToggle,
|
|
55503
56685
|
scrollableEnabled: workspacePages.length <= 1 ? getRootScrollable() : undefined,
|
|
55504
56686
|
onScrollableChange: workspacePages.length <= 1 && !popout ? handleScrollableChange : null,
|
|
55505
|
-
onOpenConfig: popout ? null : function () {
|
|
56687
|
+
onOpenConfig: popout || previewMode ? null : function () {
|
|
55506
56688
|
return setIsConfigModalOpen(true);
|
|
55507
56689
|
},
|
|
55508
56690
|
configUnresolvedCount: unresolvedCount
|
|
@@ -55536,14 +56718,14 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
55536
56718
|
className: "h-3 w-3"
|
|
55537
56719
|
})
|
|
55538
56720
|
})]
|
|
55539
|
-
}), unresolvedCount > 0 && !dismissedUnresolvedForWorkspace.has(workspaceSelected === null || workspaceSelected === void 0 ? void 0 : workspaceSelected.id) && /*#__PURE__*/jsxs("div", {
|
|
56721
|
+
}), unresolvedCount > 0 && !previewMode && !dismissedUnresolvedForWorkspace.has(workspaceSelected === null || workspaceSelected === void 0 ? void 0 : workspaceSelected.id) && /*#__PURE__*/jsxs("div", {
|
|
55540
56722
|
className: "flex items-center gap-2 px-4 py-2 bg-amber-500/10 border-b border-amber-500/20 flex-shrink-0",
|
|
55541
56723
|
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
55542
56724
|
icon: "triangle-exclamation",
|
|
55543
56725
|
className: "h-3.5 w-3.5 text-amber-400 flex-shrink-0"
|
|
55544
|
-
}), /*#__PURE__*/
|
|
56726
|
+
}), /*#__PURE__*/jsx("span", {
|
|
55545
56727
|
className: "text-xs text-amber-300/90 flex-1",
|
|
55546
|
-
children: [
|
|
56728
|
+
children: [unresolvedProvidersCount > 0 && "".concat(unresolvedProvidersCount, " widget").concat(unresolvedProvidersCount === 1 ? "" : "s", " need").concat(unresolvedProvidersCount === 1 ? "s" : "", " a provider")].filter(Boolean).join(" · ")
|
|
55547
56729
|
}), /*#__PURE__*/jsx("button", {
|
|
55548
56730
|
type: "button",
|
|
55549
56731
|
onClick: function onClick() {
|
|
@@ -55732,7 +56914,12 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
55732
56914
|
var _ComponentManager$com2;
|
|
55733
56915
|
return name && ((_ComponentManager$com2 = ComponentManager.componentMap()[name]) === null || _ComponentManager$com2 === void 0 ? void 0 : _ComponentManager$com2.providers) || [];
|
|
55734
56916
|
},
|
|
55735
|
-
|
|
56917
|
+
getWidgetConfig: function getWidgetConfig(name) {
|
|
56918
|
+
return name && ComponentManager.componentMap()[name] || null;
|
|
56919
|
+
},
|
|
56920
|
+
onSaveBindings: handleBulkProviderBindings,
|
|
56921
|
+
onSaveListeners: handleBulkListenerBindings,
|
|
56922
|
+
initialTab: "providers"
|
|
55736
56923
|
})]
|
|
55737
56924
|
})]
|
|
55738
56925
|
}), !popout && /*#__PURE__*/jsx(DashCommandPalette, {
|
|
@@ -55976,10 +57163,7 @@ var DashboardHeader = function DashboardHeader(_ref) {
|
|
|
55976
57163
|
className: "font-bold text-base"
|
|
55977
57164
|
}), /*#__PURE__*/jsxs("div", {
|
|
55978
57165
|
className: "flex flex-row items-center gap-1",
|
|
55979
|
-
children: [
|
|
55980
|
-
onClick: onOpenConfig,
|
|
55981
|
-
unresolvedCount: configUnresolvedCount
|
|
55982
|
-
}), onPopout !== null && /*#__PURE__*/jsx(ButtonIcon, {
|
|
57166
|
+
children: [onPopout !== null && /*#__PURE__*/jsx(ButtonIcon, {
|
|
55983
57167
|
icon: "arrow-up-right-from-square",
|
|
55984
57168
|
onClick: onPopout,
|
|
55985
57169
|
hoverBackgroundColor: "hover:bg-indigo-700"
|