@trops/dash-core 0.1.396 → 0.1.398
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 +1870 -678
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +1870 -678
- 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) {
|
|
@@ -24269,7 +24269,7 @@ var WidgetRenderer = function WidgetRenderer(_ref) {
|
|
|
24269
24269
|
|
|
24270
24270
|
// Build widgetData for WidgetContext — hooks read from this
|
|
24271
24271
|
var uuidString = getUUID(params.uuid);
|
|
24272
|
-
var widgetData = _objectSpread$
|
|
24272
|
+
var widgetData = _objectSpread$C(_objectSpread$C({}, params), {}, {
|
|
24273
24273
|
uuidString: uuidString,
|
|
24274
24274
|
providers: (config === null || config === void 0 ? void 0 : config.providers) || [],
|
|
24275
24275
|
notifications: (config === null || config === void 0 ? void 0 : config.notifications) || []
|
|
@@ -24293,7 +24293,7 @@ var WidgetRenderer = function WidgetRenderer(_ref) {
|
|
|
24293
24293
|
widgetData: widgetData
|
|
24294
24294
|
};
|
|
24295
24295
|
var hasScheduledTasks = ((config === null || config === void 0 ? void 0 : config.scheduledTasks) || []).length > 0;
|
|
24296
|
-
var widgetElement = children === null ? /*#__PURE__*/jsx(WidgetComponent, _objectSpread$
|
|
24296
|
+
var widgetElement = children === null ? /*#__PURE__*/jsx(WidgetComponent, _objectSpread$C(_objectSpread$C(_objectSpread$C({
|
|
24297
24297
|
id: "widget-nokids-".concat(widgetKey),
|
|
24298
24298
|
listen: function listen(listeners, handlers) {
|
|
24299
24299
|
return helpers.listen(listeners, handlers);
|
|
@@ -24307,7 +24307,7 @@ var WidgetRenderer = function WidgetRenderer(_ref) {
|
|
|
24307
24307
|
backgroundColor: bgColor,
|
|
24308
24308
|
widgetConfig: helpers.config(),
|
|
24309
24309
|
widgetEventNames: helpers.events()
|
|
24310
|
-
}), "widget-nokids-".concat(widgetKey)) : /*#__PURE__*/jsx(WidgetComponent, _objectSpread$
|
|
24310
|
+
}), "widget-nokids-".concat(widgetKey)) : /*#__PURE__*/jsx(WidgetComponent, _objectSpread$C(_objectSpread$C(_objectSpread$C({
|
|
24311
24311
|
listen: function listen(listeners, handlers) {
|
|
24312
24312
|
return helpers.listen(listeners, handlers);
|
|
24313
24313
|
},
|
|
@@ -24507,11 +24507,11 @@ var ExternalWidget = function ExternalWidget(_ref) {
|
|
|
24507
24507
|
var GRID_CELL_WIDGET_TYPE = "grid-cell-widget";
|
|
24508
24508
|
var SIDEBAR_WIDGET_TYPE = "sidebar-widget";
|
|
24509
24509
|
|
|
24510
|
-
function _createForOfIteratorHelper$
|
|
24511
|
-
function _unsupportedIterableToArray$
|
|
24512
|
-
function _arrayLikeToArray$
|
|
24513
|
-
function ownKeys$
|
|
24514
|
-
function _objectSpread$
|
|
24510
|
+
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; } } }; }
|
|
24511
|
+
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; } }
|
|
24512
|
+
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; }
|
|
24513
|
+
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; }
|
|
24514
|
+
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
24515
|
var DraggableDroppableCellBody = function DraggableDroppableCellBody(_ref) {
|
|
24516
24516
|
var cellNumber = _ref.cellNumber,
|
|
24517
24517
|
gridContainerId = _ref.gridContainerId,
|
|
@@ -24709,7 +24709,7 @@ var LayoutGridContainer = /*#__PURE__*/memo(function (_ref3) {
|
|
|
24709
24709
|
var _ref5 = _slicedToArray(_ref4, 2),
|
|
24710
24710
|
id = _ref5[0],
|
|
24711
24711
|
provider = _ref5[1];
|
|
24712
|
-
return _objectSpread$
|
|
24712
|
+
return _objectSpread$B({
|
|
24713
24713
|
id: id
|
|
24714
24714
|
}, provider);
|
|
24715
24715
|
}) : [];
|
|
@@ -25084,7 +25084,7 @@ var LayoutGridContainer = /*#__PURE__*/memo(function (_ref3) {
|
|
|
25084
25084
|
return selectable["delete"](cn);
|
|
25085
25085
|
});
|
|
25086
25086
|
var resolved = new Set();
|
|
25087
|
-
var _iterator = _createForOfIteratorHelper$
|
|
25087
|
+
var _iterator = _createForOfIteratorHelper$k(selectable),
|
|
25088
25088
|
_step;
|
|
25089
25089
|
try {
|
|
25090
25090
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -25753,7 +25753,7 @@ var LayoutGridContainer = /*#__PURE__*/memo(function (_ref3) {
|
|
|
25753
25753
|
var widgetSpecificSelections = (workspace === null || workspace === void 0 || (_workspace$selectedPr = workspace.selectedProviders) === null || _workspace$selectedPr === void 0 ? void 0 : _workspace$selectedPr[id]) || {};
|
|
25754
25754
|
|
|
25755
25755
|
// Add provider-related props from workspace
|
|
25756
|
-
var itemWithProviders = _objectSpread$
|
|
25756
|
+
var itemWithProviders = _objectSpread$B(_objectSpread$B({}, item), {}, {
|
|
25757
25757
|
selectedProviders: widgetSpecificSelections,
|
|
25758
25758
|
onProviderSelect: onProviderSelect
|
|
25759
25759
|
});
|
|
@@ -27258,11 +27258,11 @@ function isWidgetResolvable(componentKey) {
|
|
|
27258
27258
|
// isMinOrderForItem
|
|
27259
27259
|
// }
|
|
27260
27260
|
|
|
27261
|
-
function ownKeys$
|
|
27262
|
-
function _objectSpread$
|
|
27263
|
-
function _createForOfIteratorHelper$
|
|
27264
|
-
function _unsupportedIterableToArray$
|
|
27265
|
-
function _arrayLikeToArray$
|
|
27261
|
+
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; }
|
|
27262
|
+
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; }
|
|
27263
|
+
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; } } }; }
|
|
27264
|
+
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; } }
|
|
27265
|
+
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
27266
|
/**
|
|
27267
27267
|
* The model for all layout components used primarily in the renderLayout method
|
|
27268
27268
|
* @param {Object} layoutItem an object containing various attributes of the layout item
|
|
@@ -27274,7 +27274,7 @@ function _arrayLikeToArray$i(r, a) { (null == a || a > r.length) && (a = r.lengt
|
|
|
27274
27274
|
function sortObjectByKeys(obj) {
|
|
27275
27275
|
var sortedKeys = Object.keys(obj).sort();
|
|
27276
27276
|
var sortedObj = {};
|
|
27277
|
-
var _iterator = _createForOfIteratorHelper$
|
|
27277
|
+
var _iterator = _createForOfIteratorHelper$j(sortedKeys),
|
|
27278
27278
|
_step;
|
|
27279
27279
|
try {
|
|
27280
27280
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -27415,7 +27415,7 @@ var LayoutModel = function LayoutModel(layoutItem, workspaceLayout, dashboardId)
|
|
|
27415
27415
|
|
|
27416
27416
|
// Merge user-entered config values (from EnhancedWidgetDropdown) into userPrefs
|
|
27417
27417
|
if ("userConfigValues" in obj && obj.userConfigValues) {
|
|
27418
|
-
layout.userPrefs = _objectSpread$
|
|
27418
|
+
layout.userPrefs = _objectSpread$A(_objectSpread$A({}, layout.userPrefs), obj.userConfigValues);
|
|
27419
27419
|
}
|
|
27420
27420
|
|
|
27421
27421
|
// Preserve provider selections for this widget
|
|
@@ -27546,6 +27546,822 @@ var SettingsModel = function SettingsModel() {
|
|
|
27546
27546
|
return obj;
|
|
27547
27547
|
};
|
|
27548
27548
|
|
|
27549
|
+
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; } } }; }
|
|
27550
|
+
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; } }
|
|
27551
|
+
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; }
|
|
27552
|
+
/**
|
|
27553
|
+
* providerResolution.js
|
|
27554
|
+
*
|
|
27555
|
+
* Shared helpers for walking a workspace and figuring out which widgets
|
|
27556
|
+
* have required providers that are still unresolved after the 3-layer
|
|
27557
|
+
* resolution (widget → workspace → app-default → null). Used by:
|
|
27558
|
+
*
|
|
27559
|
+
* - DashboardConfigModal to render the Providers tab
|
|
27560
|
+
* - DashboardStage toolbar to show the unresolved-count badge
|
|
27561
|
+
*
|
|
27562
|
+
* Both places need the same answer, so keep the logic here to avoid drift
|
|
27563
|
+
* with the resolution inside `useMcpProvider` / `useWebSocketProvider`.
|
|
27564
|
+
*/
|
|
27565
|
+
|
|
27566
|
+
/**
|
|
27567
|
+
* Resolve which provider name a given widget instance would bind to for
|
|
27568
|
+
* the given provider type. Mirrors the 3-layer chain in useMcpProvider
|
|
27569
|
+
* and useWebSocketProvider exactly:
|
|
27570
|
+
*
|
|
27571
|
+
* 1. widget-level override (layoutItem.selectedProviders[type])
|
|
27572
|
+
* 2. workspace-level binding (workspace.selectedProviders[id][type])
|
|
27573
|
+
* 3. app default (any provider of matching type flagged
|
|
27574
|
+
* `isDefaultForType` in appProviders)
|
|
27575
|
+
* 4. null (truly unresolved)
|
|
27576
|
+
*/
|
|
27577
|
+
function resolveProviderName(_ref) {
|
|
27578
|
+
var _layoutItem$selectedP, _workspace$selectedPr;
|
|
27579
|
+
var providerType = _ref.providerType,
|
|
27580
|
+
layoutItem = _ref.layoutItem,
|
|
27581
|
+
widgetId = _ref.widgetId,
|
|
27582
|
+
workspace = _ref.workspace,
|
|
27583
|
+
appProviders = _ref.appProviders;
|
|
27584
|
+
// 1. Widget-level
|
|
27585
|
+
var widgetLevel = layoutItem === null || layoutItem === void 0 || (_layoutItem$selectedP = layoutItem.selectedProviders) === null || _layoutItem$selectedP === void 0 ? void 0 : _layoutItem$selectedP[providerType];
|
|
27586
|
+
if (widgetLevel) return widgetLevel;
|
|
27587
|
+
|
|
27588
|
+
// 2. Workspace-level
|
|
27589
|
+
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]);
|
|
27590
|
+
if (workspaceLevel) return workspaceLevel;
|
|
27591
|
+
|
|
27592
|
+
// 3. App default — appProviders is either a map keyed by name or an
|
|
27593
|
+
// array. Support both because different callers shape it either way.
|
|
27594
|
+
if (appProviders) {
|
|
27595
|
+
if (Array.isArray(appProviders)) {
|
|
27596
|
+
var _iterator = _createForOfIteratorHelper$i(appProviders),
|
|
27597
|
+
_step;
|
|
27598
|
+
try {
|
|
27599
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
27600
|
+
var data = _step.value;
|
|
27601
|
+
if ((data === null || data === void 0 ? void 0 : data.type) === providerType && (data === null || data === void 0 ? void 0 : data.isDefaultForType) === true) {
|
|
27602
|
+
return data.name;
|
|
27603
|
+
}
|
|
27604
|
+
}
|
|
27605
|
+
} catch (err) {
|
|
27606
|
+
_iterator.e(err);
|
|
27607
|
+
} finally {
|
|
27608
|
+
_iterator.f();
|
|
27609
|
+
}
|
|
27610
|
+
} else if (_typeof(appProviders) === "object") {
|
|
27611
|
+
for (var _i = 0, _Object$entries = Object.entries(appProviders); _i < _Object$entries.length; _i++) {
|
|
27612
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
27613
|
+
name = _Object$entries$_i[0],
|
|
27614
|
+
_data = _Object$entries$_i[1];
|
|
27615
|
+
if ((_data === null || _data === void 0 ? void 0 : _data.type) === providerType && (_data === null || _data === void 0 ? void 0 : _data.isDefaultForType) === true) {
|
|
27616
|
+
return name;
|
|
27617
|
+
}
|
|
27618
|
+
}
|
|
27619
|
+
}
|
|
27620
|
+
}
|
|
27621
|
+
return null;
|
|
27622
|
+
}
|
|
27623
|
+
|
|
27624
|
+
/**
|
|
27625
|
+
* Walk every layout container in a workspace and yield each widget
|
|
27626
|
+
* instance with its concrete layout item. Handles the main layout,
|
|
27627
|
+
* per-page layouts, the sidebar, and nested LayoutGridContainers whose
|
|
27628
|
+
* children are stored on `items`/`layout`.
|
|
27629
|
+
*
|
|
27630
|
+
* Deduplicates by object identity AND by stable id so that shared
|
|
27631
|
+
* references across pages (or two structurally-distinct items that
|
|
27632
|
+
* carry the same uuidString / id, which is the wiring key) are
|
|
27633
|
+
* visited exactly once. Pipeline-style workspaces re-reference the
|
|
27634
|
+
* same widget objects across page layouts; without this dedupe the
|
|
27635
|
+
* Providers/Listeners tabs render one row per reference.
|
|
27636
|
+
*/
|
|
27637
|
+
function forEachWidget(workspace, visit) {
|
|
27638
|
+
if (!workspace) return;
|
|
27639
|
+
var visitedObjects = new WeakSet();
|
|
27640
|
+
var visitedIds = new Set();
|
|
27641
|
+
var stableId = function stableId(item) {
|
|
27642
|
+
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);
|
|
27643
|
+
};
|
|
27644
|
+
var _walk = function walk(items) {
|
|
27645
|
+
if (!Array.isArray(items)) return;
|
|
27646
|
+
var _iterator2 = _createForOfIteratorHelper$i(items),
|
|
27647
|
+
_step2;
|
|
27648
|
+
try {
|
|
27649
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
27650
|
+
var item = _step2.value;
|
|
27651
|
+
if (!item || _typeof(item) !== "object") continue;
|
|
27652
|
+
// A "widget" is any layout item with a component name.
|
|
27653
|
+
// Containers can have both a component name AND nested items
|
|
27654
|
+
// (e.g. LayoutGridContainer), so still recurse.
|
|
27655
|
+
if (item.component) {
|
|
27656
|
+
var id = stableId(item);
|
|
27657
|
+
var alreadyByRef = visitedObjects.has(item);
|
|
27658
|
+
var alreadyById = id != null && visitedIds.has(id);
|
|
27659
|
+
if (!alreadyByRef && !alreadyById) {
|
|
27660
|
+
visitedObjects.add(item);
|
|
27661
|
+
if (id != null) visitedIds.add(id);
|
|
27662
|
+
visit(item);
|
|
27663
|
+
}
|
|
27664
|
+
}
|
|
27665
|
+
if (Array.isArray(item.items)) _walk(item.items);
|
|
27666
|
+
if (Array.isArray(item.layout)) _walk(item.layout);
|
|
27667
|
+
}
|
|
27668
|
+
} catch (err) {
|
|
27669
|
+
_iterator2.e(err);
|
|
27670
|
+
} finally {
|
|
27671
|
+
_iterator2.f();
|
|
27672
|
+
}
|
|
27673
|
+
};
|
|
27674
|
+
_walk(workspace.layout);
|
|
27675
|
+
if (Array.isArray(workspace.pages)) {
|
|
27676
|
+
var _iterator3 = _createForOfIteratorHelper$i(workspace.pages),
|
|
27677
|
+
_step3;
|
|
27678
|
+
try {
|
|
27679
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
27680
|
+
var page = _step3.value;
|
|
27681
|
+
_walk(page === null || page === void 0 ? void 0 : page.layout);
|
|
27682
|
+
}
|
|
27683
|
+
} catch (err) {
|
|
27684
|
+
_iterator3.e(err);
|
|
27685
|
+
} finally {
|
|
27686
|
+
_iterator3.f();
|
|
27687
|
+
}
|
|
27688
|
+
}
|
|
27689
|
+
_walk(workspace.sidebarLayout);
|
|
27690
|
+
}
|
|
27691
|
+
|
|
27692
|
+
/**
|
|
27693
|
+
* Compute the list of unresolved required providers across a workspace.
|
|
27694
|
+
*
|
|
27695
|
+
* @param {object} args
|
|
27696
|
+
* @param {object} args.workspace The workspace (with layout/pages/sidebarLayout/selectedProviders).
|
|
27697
|
+
* @param {object|Array} args.appProviders
|
|
27698
|
+
* Map keyed by provider name, or an array of provider objects. Each
|
|
27699
|
+
* entry has at least `{ type, isDefaultForType }`.
|
|
27700
|
+
* @param {(componentName: string) => Array<{type, required?, providerClass?}>} args.getWidgetRequirements
|
|
27701
|
+
* Returns the `providers: [...]` declaration from the component's
|
|
27702
|
+
* `.dash.js` (via `ComponentManager.componentMap()[name].providers`).
|
|
27703
|
+
*
|
|
27704
|
+
* @returns {Array<{ widgetId, component, providerType, providerClass, layoutItem }>}
|
|
27705
|
+
* One entry per (widget instance, required provider type) that lacks
|
|
27706
|
+
* a binding.
|
|
27707
|
+
*/
|
|
27708
|
+
function getUnresolvedProviders(_ref2) {
|
|
27709
|
+
var workspace = _ref2.workspace,
|
|
27710
|
+
appProviders = _ref2.appProviders,
|
|
27711
|
+
getWidgetRequirements = _ref2.getWidgetRequirements;
|
|
27712
|
+
if (!workspace || typeof getWidgetRequirements !== "function") return [];
|
|
27713
|
+
var unresolved = [];
|
|
27714
|
+
forEachWidget(workspace, function (item) {
|
|
27715
|
+
var requirements = getWidgetRequirements(item.component) || [];
|
|
27716
|
+
if (!Array.isArray(requirements) || requirements.length === 0) return;
|
|
27717
|
+
var widgetId = item.uuidString || item.uuid || item.id || null;
|
|
27718
|
+
var _iterator4 = _createForOfIteratorHelper$i(requirements),
|
|
27719
|
+
_step4;
|
|
27720
|
+
try {
|
|
27721
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
27722
|
+
var req = _step4.value;
|
|
27723
|
+
if (!req || !req.type) continue;
|
|
27724
|
+
if (req.required === false) continue; // optional, skip
|
|
27725
|
+
|
|
27726
|
+
var name = resolveProviderName({
|
|
27727
|
+
providerType: req.type,
|
|
27728
|
+
layoutItem: item,
|
|
27729
|
+
widgetId: widgetId,
|
|
27730
|
+
workspace: workspace,
|
|
27731
|
+
appProviders: appProviders
|
|
27732
|
+
});
|
|
27733
|
+
if (!name) {
|
|
27734
|
+
unresolved.push({
|
|
27735
|
+
widgetId: widgetId,
|
|
27736
|
+
component: item.component,
|
|
27737
|
+
providerType: req.type,
|
|
27738
|
+
providerClass: req.providerClass || null,
|
|
27739
|
+
layoutItem: item
|
|
27740
|
+
});
|
|
27741
|
+
}
|
|
27742
|
+
}
|
|
27743
|
+
} catch (err) {
|
|
27744
|
+
_iterator4.e(err);
|
|
27745
|
+
} finally {
|
|
27746
|
+
_iterator4.f();
|
|
27747
|
+
}
|
|
27748
|
+
});
|
|
27749
|
+
return unresolved;
|
|
27750
|
+
}
|
|
27751
|
+
|
|
27752
|
+
/**
|
|
27753
|
+
* Group an unresolved-provider list (or any `{widget, providerType}` list)
|
|
27754
|
+
* by provider type, so the Providers tab can render one row per unique
|
|
27755
|
+
* type with N widgets beneath.
|
|
27756
|
+
*/
|
|
27757
|
+
function groupByProviderType(unresolved) {
|
|
27758
|
+
var byType = new Map();
|
|
27759
|
+
var _iterator5 = _createForOfIteratorHelper$i(unresolved || []),
|
|
27760
|
+
_step5;
|
|
27761
|
+
try {
|
|
27762
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
27763
|
+
var u = _step5.value;
|
|
27764
|
+
if (!(u !== null && u !== void 0 && u.providerType)) continue;
|
|
27765
|
+
if (!byType.has(u.providerType)) byType.set(u.providerType, []);
|
|
27766
|
+
byType.get(u.providerType).push(u);
|
|
27767
|
+
}
|
|
27768
|
+
} catch (err) {
|
|
27769
|
+
_iterator5.e(err);
|
|
27770
|
+
} finally {
|
|
27771
|
+
_iterator5.f();
|
|
27772
|
+
}
|
|
27773
|
+
return byType;
|
|
27774
|
+
}
|
|
27775
|
+
|
|
27776
|
+
/**
|
|
27777
|
+
* Summarize every widget in the workspace that requires ANY provider,
|
|
27778
|
+
* regardless of whether it's already resolved. Drives the Providers tab's
|
|
27779
|
+
* "show per-widget overrides" expansion — the modal lists all widgets so
|
|
27780
|
+
* the user can change an explicit override even for types that are
|
|
27781
|
+
* already resolved via the app default.
|
|
27782
|
+
*/
|
|
27783
|
+
function getAllProviderBindings(_ref3) {
|
|
27784
|
+
var workspace = _ref3.workspace,
|
|
27785
|
+
appProviders = _ref3.appProviders,
|
|
27786
|
+
getWidgetRequirements = _ref3.getWidgetRequirements;
|
|
27787
|
+
if (!workspace || typeof getWidgetRequirements !== "function") return [];
|
|
27788
|
+
var bindings = [];
|
|
27789
|
+
forEachWidget(workspace, function (item) {
|
|
27790
|
+
var requirements = getWidgetRequirements(item.component) || [];
|
|
27791
|
+
if (!Array.isArray(requirements) || requirements.length === 0) return;
|
|
27792
|
+
var widgetId = item.uuidString || item.uuid || item.id || null;
|
|
27793
|
+
var _iterator6 = _createForOfIteratorHelper$i(requirements),
|
|
27794
|
+
_step6;
|
|
27795
|
+
try {
|
|
27796
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
27797
|
+
var req = _step6.value;
|
|
27798
|
+
if (!req || !req.type) continue;
|
|
27799
|
+
var name = resolveProviderName({
|
|
27800
|
+
providerType: req.type,
|
|
27801
|
+
layoutItem: item,
|
|
27802
|
+
widgetId: widgetId,
|
|
27803
|
+
workspace: workspace,
|
|
27804
|
+
appProviders: appProviders
|
|
27805
|
+
});
|
|
27806
|
+
bindings.push({
|
|
27807
|
+
widgetId: widgetId,
|
|
27808
|
+
component: item.component,
|
|
27809
|
+
providerType: req.type,
|
|
27810
|
+
providerClass: req.providerClass || null,
|
|
27811
|
+
required: req.required !== false,
|
|
27812
|
+
resolvedProviderName: name,
|
|
27813
|
+
layoutItem: item
|
|
27814
|
+
});
|
|
27815
|
+
}
|
|
27816
|
+
} catch (err) {
|
|
27817
|
+
_iterator6.e(err);
|
|
27818
|
+
} finally {
|
|
27819
|
+
_iterator6.f();
|
|
27820
|
+
}
|
|
27821
|
+
});
|
|
27822
|
+
return bindings;
|
|
27823
|
+
}
|
|
27824
|
+
|
|
27825
|
+
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; }
|
|
27826
|
+
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; }
|
|
27827
|
+
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; } } }; }
|
|
27828
|
+
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; } }
|
|
27829
|
+
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; }
|
|
27830
|
+
var EVENT_STRING_RE = /^([^[]+)\[([^\]]+)\]\.(.+)$/;
|
|
27831
|
+
|
|
27832
|
+
/** Parse "Component[itemId].event" → { component, itemId, event }. */
|
|
27833
|
+
function parseEventString(eventString) {
|
|
27834
|
+
if (typeof eventString !== "string") return null;
|
|
27835
|
+
var m = eventString.match(EVENT_STRING_RE);
|
|
27836
|
+
if (!m) return null;
|
|
27837
|
+
return {
|
|
27838
|
+
component: m[1],
|
|
27839
|
+
itemId: m[2],
|
|
27840
|
+
event: m[3]
|
|
27841
|
+
};
|
|
27842
|
+
}
|
|
27843
|
+
|
|
27844
|
+
/** Build an event string in the canonical runtime format. */
|
|
27845
|
+
function formatEventString(component, itemId, event) {
|
|
27846
|
+
return "".concat(component, "[").concat(itemId, "].").concat(event);
|
|
27847
|
+
}
|
|
27848
|
+
|
|
27849
|
+
/**
|
|
27850
|
+
* Get a stable id for a layout item. Layout items historically used
|
|
27851
|
+
* numeric `id`; some newer flows also carry `uuidString`/`uuid`. The
|
|
27852
|
+
* runtime event-string format uses whichever is `item.id`, so we
|
|
27853
|
+
* default to that and fall back to the others for resilience.
|
|
27854
|
+
*/
|
|
27855
|
+
function itemIdOf(item) {
|
|
27856
|
+
if (item == null) return null;
|
|
27857
|
+
if (item.id !== undefined && item.id !== null) return String(item.id);
|
|
27858
|
+
if (item.uuidString) return item.uuidString;
|
|
27859
|
+
if (item.uuid) return item.uuid;
|
|
27860
|
+
return null;
|
|
27861
|
+
}
|
|
27862
|
+
|
|
27863
|
+
/**
|
|
27864
|
+
* Best-effort human label for a layout item: explicit title, then
|
|
27865
|
+
* widget config display name, then component name + short id.
|
|
27866
|
+
*/
|
|
27867
|
+
function labelFor(item, getWidgetConfig) {
|
|
27868
|
+
var _item$userPrefs, _item$userConfig;
|
|
27869
|
+
var cfg = (getWidgetConfig === null || getWidgetConfig === void 0 ? void 0 : getWidgetConfig(item.component)) || null;
|
|
27870
|
+
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);
|
|
27871
|
+
if (explicit) return explicit;
|
|
27872
|
+
if (cfg !== null && cfg !== void 0 && cfg.displayName) return cfg.displayName;
|
|
27873
|
+
var id = itemIdOf(item);
|
|
27874
|
+
return "".concat(item.component || "widget").concat(id ? "[".concat(String(id).slice(0, 6), "]") : "");
|
|
27875
|
+
}
|
|
27876
|
+
|
|
27877
|
+
/**
|
|
27878
|
+
* Read the events/eventHandlers metadata for a widget. Items can carry
|
|
27879
|
+
* the arrays inline (older pattern where they got cached onto the
|
|
27880
|
+
* layout item); the current component config carries them via the
|
|
27881
|
+
* ComponentManager catalog. We UNION both so we don't flag a binding
|
|
27882
|
+
* as orphaned just because an inline cache is stale — if the current
|
|
27883
|
+
* widget code declares the event/handler, the binding is valid.
|
|
27884
|
+
*/
|
|
27885
|
+
function eventsOf(item, getWidgetConfig) {
|
|
27886
|
+
var inline = Array.isArray(item.events) ? item.events : [];
|
|
27887
|
+
var cfg = (getWidgetConfig === null || getWidgetConfig === void 0 ? void 0 : getWidgetConfig(item.component)) || {};
|
|
27888
|
+
var fromCfg = Array.isArray(cfg.events) ? cfg.events : [];
|
|
27889
|
+
return _toConsumableArray(new Set([].concat(_toConsumableArray(inline), _toConsumableArray(fromCfg))));
|
|
27890
|
+
}
|
|
27891
|
+
function eventHandlersOf(item, getWidgetConfig) {
|
|
27892
|
+
var inline = Array.isArray(item.eventHandlers) ? item.eventHandlers : [];
|
|
27893
|
+
var cfg = (getWidgetConfig === null || getWidgetConfig === void 0 ? void 0 : getWidgetConfig(item.component)) || {};
|
|
27894
|
+
var fromCfg = Array.isArray(cfg.eventHandlers) ? cfg.eventHandlers : [];
|
|
27895
|
+
return _toConsumableArray(new Set([].concat(_toConsumableArray(inline), _toConsumableArray(fromCfg))));
|
|
27896
|
+
}
|
|
27897
|
+
|
|
27898
|
+
/**
|
|
27899
|
+
* Every widget instance in the workspace that emits at least one event.
|
|
27900
|
+
* Deduplicated by `${component}|${itemId}` — the same compound key that
|
|
27901
|
+
* event strings use at runtime, so any "duplicate" in the tree (same
|
|
27902
|
+
* widget referenced across pages) resolves to the same wiring target.
|
|
27903
|
+
* @returns {Array<{ itemId, component, label, events: string[], key: string }>}
|
|
27904
|
+
*/
|
|
27905
|
+
function getEmitters(workspace, getWidgetConfig) {
|
|
27906
|
+
var byKey = new Map();
|
|
27907
|
+
forEachWidget(workspace, function (item) {
|
|
27908
|
+
var events = eventsOf(item, getWidgetConfig);
|
|
27909
|
+
if (events.length === 0) return;
|
|
27910
|
+
var itemId = itemIdOf(item);
|
|
27911
|
+
if (itemId == null) return;
|
|
27912
|
+
var key = "".concat(item.component, "|").concat(itemId);
|
|
27913
|
+
if (byKey.has(key)) return;
|
|
27914
|
+
byKey.set(key, {
|
|
27915
|
+
key: key,
|
|
27916
|
+
itemId: itemId,
|
|
27917
|
+
component: item.component,
|
|
27918
|
+
label: labelFor(item, getWidgetConfig),
|
|
27919
|
+
events: events
|
|
27920
|
+
});
|
|
27921
|
+
});
|
|
27922
|
+
return Array.from(byKey.values());
|
|
27923
|
+
}
|
|
27924
|
+
|
|
27925
|
+
/**
|
|
27926
|
+
* Every widget instance in the workspace that accepts at least one
|
|
27927
|
+
* handler. Used to populate the receiver dropdown. Deduplicated by
|
|
27928
|
+
* `${component}|${itemId}` (see getEmitters).
|
|
27929
|
+
* @returns {Array<{ itemId, component, label, eventHandlers: string[], listeners: object, key: string }>}
|
|
27930
|
+
*/
|
|
27931
|
+
function getReceivers(workspace, getWidgetConfig) {
|
|
27932
|
+
var byKey = new Map();
|
|
27933
|
+
forEachWidget(workspace, function (item) {
|
|
27934
|
+
var handlers = eventHandlersOf(item, getWidgetConfig);
|
|
27935
|
+
if (handlers.length === 0) return;
|
|
27936
|
+
var itemId = itemIdOf(item);
|
|
27937
|
+
if (itemId == null) return;
|
|
27938
|
+
var key = "".concat(item.component, "|").concat(itemId);
|
|
27939
|
+
if (byKey.has(key)) return;
|
|
27940
|
+
byKey.set(key, {
|
|
27941
|
+
key: key,
|
|
27942
|
+
itemId: itemId,
|
|
27943
|
+
component: item.component,
|
|
27944
|
+
label: labelFor(item, getWidgetConfig),
|
|
27945
|
+
eventHandlers: handlers,
|
|
27946
|
+
listeners: item.listeners || {}
|
|
27947
|
+
});
|
|
27948
|
+
});
|
|
27949
|
+
return Array.from(byKey.values());
|
|
27950
|
+
}
|
|
27951
|
+
|
|
27952
|
+
/**
|
|
27953
|
+
* Flatten every listener binding in the workspace into a list of
|
|
27954
|
+
* { receiverItemId, receiverComponent, handlerName, sourceComponent,
|
|
27955
|
+
* sourceItemId, eventName, raw } tuples. `raw` is the original
|
|
27956
|
+
* event string for round-trip fidelity on remove.
|
|
27957
|
+
*/
|
|
27958
|
+
function getCurrentWiring(workspace) {
|
|
27959
|
+
var wiring = [];
|
|
27960
|
+
forEachWidget(workspace, function (item) {
|
|
27961
|
+
var receiverItemId = itemIdOf(item);
|
|
27962
|
+
if (receiverItemId == null) return;
|
|
27963
|
+
var listeners = item.listeners;
|
|
27964
|
+
if (!listeners || _typeof(listeners) !== "object") return;
|
|
27965
|
+
for (var _i = 0, _Object$entries = Object.entries(listeners); _i < _Object$entries.length; _i++) {
|
|
27966
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
27967
|
+
handlerName = _Object$entries$_i[0],
|
|
27968
|
+
eventList = _Object$entries$_i[1];
|
|
27969
|
+
// Live format is array; defensive guard for legacy object
|
|
27970
|
+
// form (a single source widget keyed under the handler).
|
|
27971
|
+
var events = Array.isArray(eventList) ? eventList : typeof eventList === "string" ? [eventList] : [];
|
|
27972
|
+
var _iterator = _createForOfIteratorHelper$h(events),
|
|
27973
|
+
_step;
|
|
27974
|
+
try {
|
|
27975
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
27976
|
+
var raw = _step.value;
|
|
27977
|
+
var parsed = parseEventString(raw);
|
|
27978
|
+
if (!parsed) continue;
|
|
27979
|
+
wiring.push({
|
|
27980
|
+
receiverItemId: receiverItemId,
|
|
27981
|
+
receiverComponent: item.component,
|
|
27982
|
+
handlerName: handlerName,
|
|
27983
|
+
sourceComponent: parsed.component,
|
|
27984
|
+
sourceItemId: parsed.itemId,
|
|
27985
|
+
eventName: parsed.event,
|
|
27986
|
+
raw: raw
|
|
27987
|
+
});
|
|
27988
|
+
}
|
|
27989
|
+
} catch (err) {
|
|
27990
|
+
_iterator.e(err);
|
|
27991
|
+
} finally {
|
|
27992
|
+
_iterator.f();
|
|
27993
|
+
}
|
|
27994
|
+
}
|
|
27995
|
+
});
|
|
27996
|
+
return wiring;
|
|
27997
|
+
}
|
|
27998
|
+
|
|
27999
|
+
/**
|
|
28000
|
+
* Detect listener bindings that are no longer valid: the source widget
|
|
28001
|
+
* doesn't exist in the workspace anymore, or the source widget doesn't
|
|
28002
|
+
* declare the event, or the receiver doesn't declare the handler.
|
|
28003
|
+
* Each entry includes a `reason` so the modal can show a sensible
|
|
28004
|
+
* message.
|
|
28005
|
+
*/
|
|
28006
|
+
function getOrphanedListeners(workspace, getWidgetConfig) {
|
|
28007
|
+
var wiring = getCurrentWiring(workspace);
|
|
28008
|
+
if (wiring.length === 0) return [];
|
|
28009
|
+
|
|
28010
|
+
// Build two lookups:
|
|
28011
|
+
// byCompositeKey: `${component}|${itemId}` → widget meta (primary)
|
|
28012
|
+
// byItemId: `${itemId}` → widget meta (fallback,
|
|
28013
|
+
// used only for the "source-missing" check where
|
|
28014
|
+
// the wiring's component can't be trusted yet)
|
|
28015
|
+
// The composite key matches how the runtime event-string
|
|
28016
|
+
// (`Component[itemId].event`) identifies a widget, so orphan
|
|
28017
|
+
// decisions line up with what actually fires at runtime.
|
|
28018
|
+
var byCompositeKey = new Map();
|
|
28019
|
+
var byItemId = new Map();
|
|
28020
|
+
forEachWidget(workspace, function (item) {
|
|
28021
|
+
var id = itemIdOf(item);
|
|
28022
|
+
if (id == null) return;
|
|
28023
|
+
var meta = {
|
|
28024
|
+
component: item.component,
|
|
28025
|
+
events: eventsOf(item, getWidgetConfig),
|
|
28026
|
+
eventHandlers: eventHandlersOf(item, getWidgetConfig)
|
|
28027
|
+
};
|
|
28028
|
+
byCompositeKey.set("".concat(item.component, "|").concat(id), meta);
|
|
28029
|
+
// First-seen wins on numeric-id collisions; good enough for the
|
|
28030
|
+
// "does any widget with this id exist?" fallback.
|
|
28031
|
+
if (!byItemId.has(id)) byItemId.set(id, meta);
|
|
28032
|
+
});
|
|
28033
|
+
var orphans = [];
|
|
28034
|
+
var _iterator2 = _createForOfIteratorHelper$h(wiring),
|
|
28035
|
+
_step2;
|
|
28036
|
+
try {
|
|
28037
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
28038
|
+
var w = _step2.value;
|
|
28039
|
+
var srcKey = "".concat(w.sourceComponent, "|").concat(w.sourceItemId);
|
|
28040
|
+
var src = byCompositeKey.get(srcKey);
|
|
28041
|
+
if (!src) {
|
|
28042
|
+
// No (component, id) match. If some OTHER widget still owns
|
|
28043
|
+
// this id, the source component changed; otherwise it's truly
|
|
28044
|
+
// missing. Preserves the user's ability to see whether a
|
|
28045
|
+
// rename happened vs. a delete.
|
|
28046
|
+
var fallback = byItemId.get(String(w.sourceItemId));
|
|
28047
|
+
orphans.push(_objectSpread$z(_objectSpread$z({}, w), {}, {
|
|
28048
|
+
reason: fallback ? "source-component-mismatch" : "source-missing"
|
|
28049
|
+
}));
|
|
28050
|
+
continue;
|
|
28051
|
+
}
|
|
28052
|
+
if (!src.events.includes(w.eventName)) {
|
|
28053
|
+
orphans.push(_objectSpread$z(_objectSpread$z({}, w), {}, {
|
|
28054
|
+
reason: "event-not-emitted"
|
|
28055
|
+
}));
|
|
28056
|
+
continue;
|
|
28057
|
+
}
|
|
28058
|
+
var receiverKey = "".concat(w.receiverComponent, "|").concat(w.receiverItemId);
|
|
28059
|
+
var receiver = byCompositeKey.get(receiverKey);
|
|
28060
|
+
if (receiver && !receiver.eventHandlers.includes(w.handlerName)) {
|
|
28061
|
+
orphans.push(_objectSpread$z(_objectSpread$z({}, w), {}, {
|
|
28062
|
+
reason: "handler-not-declared"
|
|
28063
|
+
}));
|
|
28064
|
+
}
|
|
28065
|
+
}
|
|
28066
|
+
} catch (err) {
|
|
28067
|
+
_iterator2.e(err);
|
|
28068
|
+
} finally {
|
|
28069
|
+
_iterator2.f();
|
|
28070
|
+
}
|
|
28071
|
+
return orphans;
|
|
28072
|
+
}
|
|
28073
|
+
|
|
28074
|
+
/**
|
|
28075
|
+
* Mutate a workspace tree in place, removing listener bindings whose
|
|
28076
|
+
* source widget is not present in the workspace. Pure: doesn't need
|
|
28077
|
+
* ComponentManager, so it's safe to call from WorkspaceModel during
|
|
28078
|
+
* load — the workspace's own tree is the only source of truth.
|
|
28079
|
+
*
|
|
28080
|
+
* Handles the four cases producing a "source-missing" orphan:
|
|
28081
|
+
* - the emitter widget was deleted
|
|
28082
|
+
* - the emitter widget's id now belongs to a different component
|
|
28083
|
+
* (stored binding has stale component name)
|
|
28084
|
+
* - the source string failed to parse (legacy/garbage data)
|
|
28085
|
+
*
|
|
28086
|
+
* Leaves "event-not-emitted" / "handler-not-declared" cases untouched
|
|
28087
|
+
* because they require the current widget catalog to decide — those
|
|
28088
|
+
* are handled at runtime with full ComponentManager access.
|
|
28089
|
+
*
|
|
28090
|
+
* @returns {number} count of bindings removed (for logging/diagnostics)
|
|
28091
|
+
*/
|
|
28092
|
+
function pruneDeadListenerReferences(workspace) {
|
|
28093
|
+
if (!workspace) return 0;
|
|
28094
|
+
|
|
28095
|
+
// Build the set of live widgets in the tree, keyed by the same
|
|
28096
|
+
// `${component}|${itemId}` the runtime uses to resolve events.
|
|
28097
|
+
var liveKeys = new Set();
|
|
28098
|
+
var _walkForLive = function walkForLive(items) {
|
|
28099
|
+
if (!Array.isArray(items)) return;
|
|
28100
|
+
var _iterator3 = _createForOfIteratorHelper$h(items),
|
|
28101
|
+
_step3;
|
|
28102
|
+
try {
|
|
28103
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
28104
|
+
var item = _step3.value;
|
|
28105
|
+
if (!item || _typeof(item) !== "object") continue;
|
|
28106
|
+
if (item.component) {
|
|
28107
|
+
var id = itemIdOf(item);
|
|
28108
|
+
if (id != null) liveKeys.add("".concat(item.component, "|").concat(id));
|
|
28109
|
+
}
|
|
28110
|
+
if (Array.isArray(item.items)) _walkForLive(item.items);
|
|
28111
|
+
if (Array.isArray(item.layout)) _walkForLive(item.layout);
|
|
28112
|
+
}
|
|
28113
|
+
} catch (err) {
|
|
28114
|
+
_iterator3.e(err);
|
|
28115
|
+
} finally {
|
|
28116
|
+
_iterator3.f();
|
|
28117
|
+
}
|
|
28118
|
+
};
|
|
28119
|
+
_walkForLive(workspace.layout);
|
|
28120
|
+
if (Array.isArray(workspace.pages)) {
|
|
28121
|
+
var _iterator4 = _createForOfIteratorHelper$h(workspace.pages),
|
|
28122
|
+
_step4;
|
|
28123
|
+
try {
|
|
28124
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
28125
|
+
var page = _step4.value;
|
|
28126
|
+
_walkForLive(page === null || page === void 0 ? void 0 : page.layout);
|
|
28127
|
+
}
|
|
28128
|
+
} catch (err) {
|
|
28129
|
+
_iterator4.e(err);
|
|
28130
|
+
} finally {
|
|
28131
|
+
_iterator4.f();
|
|
28132
|
+
}
|
|
28133
|
+
}
|
|
28134
|
+
_walkForLive(workspace.sidebarLayout);
|
|
28135
|
+
var removed = 0;
|
|
28136
|
+
var _pruneListeners = function pruneListeners(items) {
|
|
28137
|
+
if (!Array.isArray(items)) return;
|
|
28138
|
+
var _iterator5 = _createForOfIteratorHelper$h(items),
|
|
28139
|
+
_step5;
|
|
28140
|
+
try {
|
|
28141
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
28142
|
+
var item = _step5.value;
|
|
28143
|
+
if (!item || _typeof(item) !== "object") continue;
|
|
28144
|
+
if (item.listeners && _typeof(item.listeners) === "object") {
|
|
28145
|
+
for (var _i2 = 0, _Object$keys = Object.keys(item.listeners); _i2 < _Object$keys.length; _i2++) {
|
|
28146
|
+
var handler = _Object$keys[_i2];
|
|
28147
|
+
var events = item.listeners[handler];
|
|
28148
|
+
if (!Array.isArray(events)) continue;
|
|
28149
|
+
var kept = [];
|
|
28150
|
+
var _iterator6 = _createForOfIteratorHelper$h(events),
|
|
28151
|
+
_step6;
|
|
28152
|
+
try {
|
|
28153
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
28154
|
+
var raw = _step6.value;
|
|
28155
|
+
var parsed = parseEventString(raw);
|
|
28156
|
+
if (parsed && liveKeys.has("".concat(parsed.component, "|").concat(parsed.itemId))) {
|
|
28157
|
+
kept.push(raw);
|
|
28158
|
+
} else {
|
|
28159
|
+
removed += 1;
|
|
28160
|
+
}
|
|
28161
|
+
}
|
|
28162
|
+
} catch (err) {
|
|
28163
|
+
_iterator6.e(err);
|
|
28164
|
+
} finally {
|
|
28165
|
+
_iterator6.f();
|
|
28166
|
+
}
|
|
28167
|
+
if (kept.length === 0) {
|
|
28168
|
+
delete item.listeners[handler];
|
|
28169
|
+
} else if (kept.length !== events.length) {
|
|
28170
|
+
item.listeners[handler] = kept;
|
|
28171
|
+
}
|
|
28172
|
+
}
|
|
28173
|
+
}
|
|
28174
|
+
if (Array.isArray(item.items)) _pruneListeners(item.items);
|
|
28175
|
+
if (Array.isArray(item.layout)) _pruneListeners(item.layout);
|
|
28176
|
+
}
|
|
28177
|
+
} catch (err) {
|
|
28178
|
+
_iterator5.e(err);
|
|
28179
|
+
} finally {
|
|
28180
|
+
_iterator5.f();
|
|
28181
|
+
}
|
|
28182
|
+
};
|
|
28183
|
+
_pruneListeners(workspace.layout);
|
|
28184
|
+
if (Array.isArray(workspace.pages)) {
|
|
28185
|
+
var _iterator7 = _createForOfIteratorHelper$h(workspace.pages),
|
|
28186
|
+
_step7;
|
|
28187
|
+
try {
|
|
28188
|
+
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
28189
|
+
var _page = _step7.value;
|
|
28190
|
+
_pruneListeners(_page === null || _page === void 0 ? void 0 : _page.layout);
|
|
28191
|
+
}
|
|
28192
|
+
} catch (err) {
|
|
28193
|
+
_iterator7.e(err);
|
|
28194
|
+
} finally {
|
|
28195
|
+
_iterator7.f();
|
|
28196
|
+
}
|
|
28197
|
+
}
|
|
28198
|
+
_pruneListeners(workspace.sidebarLayout);
|
|
28199
|
+
return removed;
|
|
28200
|
+
}
|
|
28201
|
+
|
|
28202
|
+
/**
|
|
28203
|
+
* Apply a staged delta to a workspace's listener bindings and return a
|
|
28204
|
+
* NEW workspace object (deep-cloned along the modified path).
|
|
28205
|
+
*
|
|
28206
|
+
* `adds` / `removes` are arrays of
|
|
28207
|
+
* { receiverItemId, handlerName, sourceComponent, sourceItemId, eventName }
|
|
28208
|
+
*
|
|
28209
|
+
* Removes may also pass `raw` (the exact pre-existing event string) for
|
|
28210
|
+
* a precise match; otherwise we match on the canonical formatted form.
|
|
28211
|
+
*/
|
|
28212
|
+
function applyWiringChanges(workspace, _ref) {
|
|
28213
|
+
var _ref$adds = _ref.adds,
|
|
28214
|
+
adds = _ref$adds === void 0 ? [] : _ref$adds,
|
|
28215
|
+
_ref$removes = _ref.removes,
|
|
28216
|
+
removes = _ref$removes === void 0 ? [] : _ref$removes;
|
|
28217
|
+
if (!workspace) return workspace;
|
|
28218
|
+
if (adds.length === 0 && removes.length === 0) return workspace;
|
|
28219
|
+
|
|
28220
|
+
// Group changes by receiver for cheap per-item updates.
|
|
28221
|
+
var byReceiver = new Map();
|
|
28222
|
+
var ensure = function ensure(id) {
|
|
28223
|
+
if (!byReceiver.has(id)) byReceiver.set(id, {
|
|
28224
|
+
adds: [],
|
|
28225
|
+
removes: []
|
|
28226
|
+
});
|
|
28227
|
+
return byReceiver.get(id);
|
|
28228
|
+
};
|
|
28229
|
+
var _iterator8 = _createForOfIteratorHelper$h(adds),
|
|
28230
|
+
_step8;
|
|
28231
|
+
try {
|
|
28232
|
+
for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
|
|
28233
|
+
var a = _step8.value;
|
|
28234
|
+
if (!a.receiverItemId) continue;
|
|
28235
|
+
ensure(String(a.receiverItemId)).adds.push(a);
|
|
28236
|
+
}
|
|
28237
|
+
} catch (err) {
|
|
28238
|
+
_iterator8.e(err);
|
|
28239
|
+
} finally {
|
|
28240
|
+
_iterator8.f();
|
|
28241
|
+
}
|
|
28242
|
+
var _iterator9 = _createForOfIteratorHelper$h(removes),
|
|
28243
|
+
_step9;
|
|
28244
|
+
try {
|
|
28245
|
+
for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
|
|
28246
|
+
var r = _step9.value;
|
|
28247
|
+
if (!r.receiverItemId) continue;
|
|
28248
|
+
ensure(String(r.receiverItemId)).removes.push(r);
|
|
28249
|
+
}
|
|
28250
|
+
|
|
28251
|
+
// Walk the tree and rebuild listeners on every touched item. We do
|
|
28252
|
+
// shallow clones along the path so React change detection is
|
|
28253
|
+
// reliable — but the tree shape is preserved.
|
|
28254
|
+
} catch (err) {
|
|
28255
|
+
_iterator9.e(err);
|
|
28256
|
+
} finally {
|
|
28257
|
+
_iterator9.f();
|
|
28258
|
+
}
|
|
28259
|
+
var cloneList = function cloneList(items) {
|
|
28260
|
+
return Array.isArray(items) ? items.map(function (item) {
|
|
28261
|
+
return transform(item);
|
|
28262
|
+
}) : items;
|
|
28263
|
+
};
|
|
28264
|
+
var transform = function transform(item) {
|
|
28265
|
+
if (!item || _typeof(item) !== "object") return item;
|
|
28266
|
+
var next = item;
|
|
28267
|
+
var id = itemIdOf(item);
|
|
28268
|
+
var change = id != null ? byReceiver.get(String(id)) : null;
|
|
28269
|
+
if (change) {
|
|
28270
|
+
var newListeners = applyToItem(item.listeners || {}, change);
|
|
28271
|
+
next = _objectSpread$z(_objectSpread$z({}, next), {}, {
|
|
28272
|
+
listeners: newListeners
|
|
28273
|
+
});
|
|
28274
|
+
}
|
|
28275
|
+
if (Array.isArray(next.items)) {
|
|
28276
|
+
next = _objectSpread$z(_objectSpread$z({}, next), {}, {
|
|
28277
|
+
items: cloneList(next.items)
|
|
28278
|
+
});
|
|
28279
|
+
}
|
|
28280
|
+
if (Array.isArray(next.layout)) {
|
|
28281
|
+
next = _objectSpread$z(_objectSpread$z({}, next), {}, {
|
|
28282
|
+
layout: cloneList(next.layout)
|
|
28283
|
+
});
|
|
28284
|
+
}
|
|
28285
|
+
return next;
|
|
28286
|
+
};
|
|
28287
|
+
var updatedWs = _objectSpread$z({}, workspace);
|
|
28288
|
+
if (Array.isArray(workspace.layout)) {
|
|
28289
|
+
updatedWs.layout = cloneList(workspace.layout);
|
|
28290
|
+
}
|
|
28291
|
+
if (Array.isArray(workspace.pages)) {
|
|
28292
|
+
updatedWs.pages = workspace.pages.map(function (page) {
|
|
28293
|
+
return _objectSpread$z(_objectSpread$z({}, page), {}, {
|
|
28294
|
+
layout: cloneList(page.layout)
|
|
28295
|
+
});
|
|
28296
|
+
});
|
|
28297
|
+
}
|
|
28298
|
+
if (Array.isArray(workspace.sidebarLayout)) {
|
|
28299
|
+
updatedWs.sidebarLayout = cloneList(workspace.sidebarLayout);
|
|
28300
|
+
}
|
|
28301
|
+
return updatedWs;
|
|
28302
|
+
}
|
|
28303
|
+
function applyToItem(listeners, _ref2) {
|
|
28304
|
+
var adds = _ref2.adds,
|
|
28305
|
+
removes = _ref2.removes;
|
|
28306
|
+
// Deep enough clone for handler arrays.
|
|
28307
|
+
var next = {};
|
|
28308
|
+
for (var _i3 = 0, _Object$entries2 = Object.entries(listeners); _i3 < _Object$entries2.length; _i3++) {
|
|
28309
|
+
var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i3], 2),
|
|
28310
|
+
k = _Object$entries2$_i[0],
|
|
28311
|
+
v = _Object$entries2$_i[1];
|
|
28312
|
+
next[k] = Array.isArray(v) ? _toConsumableArray(v) : v;
|
|
28313
|
+
}
|
|
28314
|
+
|
|
28315
|
+
// Removes first so a re-add (rare) lands.
|
|
28316
|
+
var _iterator0 = _createForOfIteratorHelper$h(removes),
|
|
28317
|
+
_step0;
|
|
28318
|
+
try {
|
|
28319
|
+
var _loop = function _loop() {
|
|
28320
|
+
var r = _step0.value;
|
|
28321
|
+
var target = r.handlerName;
|
|
28322
|
+
if (!target) return 0; // continue
|
|
28323
|
+
var events = next[target];
|
|
28324
|
+
if (!Array.isArray(events)) return 0; // continue
|
|
28325
|
+
var eventStr = r.raw || formatEventString(r.sourceComponent, r.sourceItemId, r.eventName);
|
|
28326
|
+
var filtered = events.filter(function (e) {
|
|
28327
|
+
return e !== eventStr;
|
|
28328
|
+
});
|
|
28329
|
+
if (filtered.length === 0) {
|
|
28330
|
+
delete next[target];
|
|
28331
|
+
} else {
|
|
28332
|
+
next[target] = filtered;
|
|
28333
|
+
}
|
|
28334
|
+
},
|
|
28335
|
+
_ret;
|
|
28336
|
+
for (_iterator0.s(); !(_step0 = _iterator0.n()).done;) {
|
|
28337
|
+
_ret = _loop();
|
|
28338
|
+
if (_ret === 0) continue;
|
|
28339
|
+
}
|
|
28340
|
+
} catch (err) {
|
|
28341
|
+
_iterator0.e(err);
|
|
28342
|
+
} finally {
|
|
28343
|
+
_iterator0.f();
|
|
28344
|
+
}
|
|
28345
|
+
var _iterator1 = _createForOfIteratorHelper$h(adds),
|
|
28346
|
+
_step1;
|
|
28347
|
+
try {
|
|
28348
|
+
for (_iterator1.s(); !(_step1 = _iterator1.n()).done;) {
|
|
28349
|
+
var a = _step1.value;
|
|
28350
|
+
var target = a.handlerName;
|
|
28351
|
+
if (!target) continue;
|
|
28352
|
+
var eventStr = formatEventString(a.sourceComponent, a.sourceItemId, a.eventName);
|
|
28353
|
+
var existing = Array.isArray(next[target]) ? next[target] : [];
|
|
28354
|
+
if (existing.includes(eventStr)) continue;
|
|
28355
|
+
next[target] = [].concat(_toConsumableArray(existing), [eventStr]);
|
|
28356
|
+
}
|
|
28357
|
+
} catch (err) {
|
|
28358
|
+
_iterator1.e(err);
|
|
28359
|
+
} finally {
|
|
28360
|
+
_iterator1.f();
|
|
28361
|
+
}
|
|
28362
|
+
return next;
|
|
28363
|
+
}
|
|
28364
|
+
|
|
27549
28365
|
/**
|
|
27550
28366
|
* Default layout for a brand-new workspace: a single 1x1 grid container
|
|
27551
28367
|
* with one empty cell. Mirrors DashboardModel._initializeLayout().
|
|
@@ -27673,6 +28489,13 @@ var WorkspaceModel = function WorkspaceModel(workspaceItem) {
|
|
|
27673
28489
|
workspace.menuId = "menuId" in obj ? obj["menuId"] : 1;
|
|
27674
28490
|
workspace.selectedProviders = "selectedProviders" in obj ? obj["selectedProviders"] : {};
|
|
27675
28491
|
workspace.themeKey = "themeKey" in obj ? obj["themeKey"] : null;
|
|
28492
|
+
|
|
28493
|
+
// Strip any listener bindings whose source widget is no longer in
|
|
28494
|
+
// the tree. These "orphan" bindings are dead — they don't match any
|
|
28495
|
+
// live publisher and never fire — so they're safe to remove at load
|
|
28496
|
+
// time before the renderer wires up subscriptions. Keeps stored
|
|
28497
|
+
// workspaces self-consistent without the user having to do anything.
|
|
28498
|
+
pruneDeadListenerReferences(workspace);
|
|
27676
28499
|
return sanitizeWorkspaceObject(workspace);
|
|
27677
28500
|
// return workspace;
|
|
27678
28501
|
};
|
|
@@ -28009,9 +28832,9 @@ var MenuItemModel = function MenuItemModel() {
|
|
|
28009
28832
|
|
|
28010
28833
|
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
28834
|
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$
|
|
28835
|
+
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; } } }; }
|
|
28836
|
+
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; } }
|
|
28837
|
+
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
28838
|
/**
|
|
28016
28839
|
* A Model for a Workspace (Dashboard)
|
|
28017
28840
|
* The Dashboard in this instance is the entire Layout inclusive of the workspaces and widgets
|
|
@@ -28072,12 +28895,18 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
28072
28895
|
}
|
|
28073
28896
|
obj = null;
|
|
28074
28897
|
|
|
28898
|
+
// Strip any listener bindings whose source widget is no longer in
|
|
28899
|
+
// the tree — dead bindings never fire and just clutter the stored
|
|
28900
|
+
// workspace. Safe at model-init time because it's purely tree-local
|
|
28901
|
+
// (doesn't need ComponentManager).
|
|
28902
|
+
pruneDeadListenerReferences(this);
|
|
28903
|
+
|
|
28075
28904
|
// Normalize all grids on load to repair any persisted corruption
|
|
28076
28905
|
this._normalizeAllGrids();
|
|
28077
28906
|
|
|
28078
28907
|
// Also normalize grids within pages
|
|
28079
28908
|
if (this.pages.length > 0) {
|
|
28080
|
-
var _iterator = _createForOfIteratorHelper$
|
|
28909
|
+
var _iterator = _createForOfIteratorHelper$g(this.pages),
|
|
28081
28910
|
_step;
|
|
28082
28911
|
try {
|
|
28083
28912
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -30053,7 +30882,7 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
30053
30882
|
try {
|
|
30054
30883
|
// Collect all item IDs actively referenced by grid cells
|
|
30055
30884
|
var activeItemIds = new Set();
|
|
30056
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
30885
|
+
var _iterator2 = _createForOfIteratorHelper$g(this.layout),
|
|
30057
30886
|
_step2;
|
|
30058
30887
|
try {
|
|
30059
30888
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -30093,7 +30922,7 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
30093
30922
|
});
|
|
30094
30923
|
|
|
30095
30924
|
// Clean listener references on remaining items for each removed orphan
|
|
30096
|
-
var _iterator3 = _createForOfIteratorHelper$
|
|
30925
|
+
var _iterator3 = _createForOfIteratorHelper$g(orphanedIds),
|
|
30097
30926
|
_step3;
|
|
30098
30927
|
try {
|
|
30099
30928
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
@@ -30752,9 +31581,9 @@ var useDashboard = function useDashboard() {
|
|
|
30752
31581
|
});
|
|
30753
31582
|
};
|
|
30754
31583
|
|
|
30755
|
-
function _createForOfIteratorHelper$
|
|
30756
|
-
function _unsupportedIterableToArray$
|
|
30757
|
-
function _arrayLikeToArray$
|
|
31584
|
+
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; } } }; }
|
|
31585
|
+
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; } }
|
|
31586
|
+
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
31587
|
|
|
30759
31588
|
/**
|
|
30760
31589
|
* useWidgetProviders Hook
|
|
@@ -30805,7 +31634,7 @@ var useWidgetProviders = function useWidgetProviders() {
|
|
|
30805
31634
|
// 1. Widget-level: stored directly on the layout item by handleSelectProvider
|
|
30806
31635
|
// 2. Workspace-level: stored as workspace.selectedProviders[widgetId][providerType]
|
|
30807
31636
|
var providers = {};
|
|
30808
|
-
var _iterator = _createForOfIteratorHelper$
|
|
31637
|
+
var _iterator = _createForOfIteratorHelper$f(providerDeclarations),
|
|
30809
31638
|
_step;
|
|
30810
31639
|
try {
|
|
30811
31640
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -31560,9 +32389,9 @@ var useNotifications = function useNotifications() {
|
|
|
31560
32389
|
};
|
|
31561
32390
|
};
|
|
31562
32391
|
|
|
31563
|
-
function _createForOfIteratorHelper$
|
|
31564
|
-
function _unsupportedIterableToArray$
|
|
31565
|
-
function _arrayLikeToArray$
|
|
32392
|
+
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; } } }; }
|
|
32393
|
+
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; } }
|
|
32394
|
+
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
32395
|
|
|
31567
32396
|
/**
|
|
31568
32397
|
* useScheduler Hook
|
|
@@ -31635,7 +32464,7 @@ var useScheduler = function useScheduler() {
|
|
|
31635
32464
|
if (pending && pending.length > 0) {
|
|
31636
32465
|
setPendingResults(pending);
|
|
31637
32466
|
// Call handlers for each pending result
|
|
31638
|
-
var _iterator = _createForOfIteratorHelper$
|
|
32467
|
+
var _iterator = _createForOfIteratorHelper$e(pending),
|
|
31639
32468
|
_step;
|
|
31640
32469
|
try {
|
|
31641
32470
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -34662,9 +35491,9 @@ function loadWidgetBundle(source, widgetName) {
|
|
|
34662
35491
|
};
|
|
34663
35492
|
}
|
|
34664
35493
|
|
|
34665
|
-
function _createForOfIteratorHelper$
|
|
34666
|
-
function _unsupportedIterableToArray$
|
|
34667
|
-
function _arrayLikeToArray$
|
|
35494
|
+
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; } } }; }
|
|
35495
|
+
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; } }
|
|
35496
|
+
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
35497
|
/**
|
|
34669
35498
|
* Validation utilities for grid-first dashboard architecture
|
|
34670
35499
|
*
|
|
@@ -34903,7 +35732,7 @@ var validateCellMerge = function validateCellMerge(cellNumbers, grid) {
|
|
|
34903
35732
|
|
|
34904
35733
|
// Validate each cell
|
|
34905
35734
|
var cells = [];
|
|
34906
|
-
var _iterator = _createForOfIteratorHelper$
|
|
35735
|
+
var _iterator = _createForOfIteratorHelper$d(cellNumbers),
|
|
34907
35736
|
_step;
|
|
34908
35737
|
try {
|
|
34909
35738
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -35251,9 +36080,9 @@ var HARMONY_STRATEGIES = [{
|
|
|
35251
36080
|
label: "Custom"
|
|
35252
36081
|
}];
|
|
35253
36082
|
|
|
35254
|
-
function _createForOfIteratorHelper$
|
|
35255
|
-
function _unsupportedIterableToArray$
|
|
35256
|
-
function _arrayLikeToArray$
|
|
36083
|
+
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; } } }; }
|
|
36084
|
+
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; } }
|
|
36085
|
+
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
36086
|
/**
|
|
35258
36087
|
* markdownFormParser.js
|
|
35259
36088
|
*
|
|
@@ -35300,7 +36129,7 @@ function detectColumnType(header, cellValues) {
|
|
|
35300
36129
|
}
|
|
35301
36130
|
|
|
35302
36131
|
// Check if any cell has an enum pattern (template placeholders)
|
|
35303
|
-
var _iterator = _createForOfIteratorHelper$
|
|
36132
|
+
var _iterator = _createForOfIteratorHelper$c(cellValues),
|
|
35304
36133
|
_step;
|
|
35305
36134
|
try {
|
|
35306
36135
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -35309,7 +36138,7 @@ function detectColumnType(header, cellValues) {
|
|
|
35309
36138
|
if (options) {
|
|
35310
36139
|
// Include all unique existing cell values as valid options
|
|
35311
36140
|
var allOptions = new Set(options);
|
|
35312
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
36141
|
+
var _iterator2 = _createForOfIteratorHelper$c(cellValues),
|
|
35313
36142
|
_step2;
|
|
35314
36143
|
try {
|
|
35315
36144
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -35519,7 +36348,7 @@ function parse(markdown) {
|
|
|
35519
36348
|
*/
|
|
35520
36349
|
function serialize(blocks) {
|
|
35521
36350
|
var parts = [];
|
|
35522
|
-
var _iterator3 = _createForOfIteratorHelper$
|
|
36351
|
+
var _iterator3 = _createForOfIteratorHelper$c(blocks),
|
|
35523
36352
|
_step3;
|
|
35524
36353
|
try {
|
|
35525
36354
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
@@ -35534,7 +36363,7 @@ function serialize(blocks) {
|
|
|
35534
36363
|
parts.push("| " + block.columns.map(function () {
|
|
35535
36364
|
return "------";
|
|
35536
36365
|
}).join(" | ") + " |");
|
|
35537
|
-
var _iterator4 = _createForOfIteratorHelper$
|
|
36366
|
+
var _iterator4 = _createForOfIteratorHelper$c(block.rows),
|
|
35538
36367
|
_step4;
|
|
35539
36368
|
try {
|
|
35540
36369
|
var _loop2 = function _loop2() {
|
|
@@ -35555,7 +36384,7 @@ function serialize(blocks) {
|
|
|
35555
36384
|
break;
|
|
35556
36385
|
}
|
|
35557
36386
|
case "list":
|
|
35558
|
-
var _iterator5 = _createForOfIteratorHelper$
|
|
36387
|
+
var _iterator5 = _createForOfIteratorHelper$c(block.items),
|
|
35559
36388
|
_step5;
|
|
35560
36389
|
try {
|
|
35561
36390
|
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
@@ -35569,7 +36398,7 @@ function serialize(blocks) {
|
|
|
35569
36398
|
}
|
|
35570
36399
|
break;
|
|
35571
36400
|
case "blockquote":
|
|
35572
|
-
var _iterator6 = _createForOfIteratorHelper$
|
|
36401
|
+
var _iterator6 = _createForOfIteratorHelper$c(block.text.split("\n")),
|
|
35573
36402
|
_step6;
|
|
35574
36403
|
try {
|
|
35575
36404
|
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
@@ -39072,9 +39901,9 @@ var ThemeManagerModal = function ThemeManagerModal(_ref) {
|
|
|
39072
39901
|
|
|
39073
39902
|
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
39903
|
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$
|
|
39904
|
+
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; } } }; }
|
|
39905
|
+
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; } }
|
|
39906
|
+
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
39907
|
var DASHBOARD_TAGS = ["productivity", "monitoring", "analytics", "communication", "developer", "sales", "marketing", "finance", "project-management", "social", "news", "utilities"];
|
|
39079
39908
|
var BUMP_OPTIONS$1 = [{
|
|
39080
39909
|
value: "patch",
|
|
@@ -39148,7 +39977,7 @@ function collectComponentConfigs() {
|
|
|
39148
39977
|
// fixed "reference" entry.
|
|
39149
39978
|
function seedSelections(plan, dashboardVisibility) {
|
|
39150
39979
|
var selections = {};
|
|
39151
|
-
var _iterator = _createForOfIteratorHelper$
|
|
39980
|
+
var _iterator = _createForOfIteratorHelper$b(plan.widgets || []),
|
|
39152
39981
|
_step;
|
|
39153
39982
|
try {
|
|
39154
39983
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -39481,7 +40310,7 @@ var PublishDashboardModal = function PublishDashboardModal(_ref) {
|
|
|
39481
40310
|
break;
|
|
39482
40311
|
}
|
|
39483
40312
|
seenPackages = new Set();
|
|
39484
|
-
_iterator2 = _createForOfIteratorHelper$
|
|
40313
|
+
_iterator2 = _createForOfIteratorHelper$b(plan.widgets || []);
|
|
39485
40314
|
_context2.prev = 2;
|
|
39486
40315
|
_iterator2.s();
|
|
39487
40316
|
case 3:
|
|
@@ -40346,7 +41175,7 @@ function DependencyTable(_ref4) {
|
|
|
40346
41175
|
// row. Each row shows the list of component widgets that live inside it
|
|
40347
41176
|
// so the user knows what's getting published.
|
|
40348
41177
|
var byKey = new Map();
|
|
40349
|
-
var _iterator3 = _createForOfIteratorHelper$
|
|
41178
|
+
var _iterator3 = _createForOfIteratorHelper$b(plan.widgets || []),
|
|
40350
41179
|
_step4;
|
|
40351
41180
|
try {
|
|
40352
41181
|
for (_iterator3.s(); !(_step4 = _iterator3.n()).done;) {
|
|
@@ -43976,9 +44805,9 @@ var McpCatalogDetail = function McpCatalogDetail(_ref) {
|
|
|
43976
44805
|
|
|
43977
44806
|
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
44807
|
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$
|
|
44808
|
+
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; } } }; }
|
|
44809
|
+
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; } }
|
|
44810
|
+
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
44811
|
function isValidWsUrl(url) {
|
|
43983
44812
|
if (!url) return false;
|
|
43984
44813
|
try {
|
|
@@ -44025,7 +44854,7 @@ function extractCredentialFields(url, headerRows) {
|
|
|
44025
44854
|
fields.add(match[1]);
|
|
44026
44855
|
}
|
|
44027
44856
|
}
|
|
44028
|
-
var _iterator = _createForOfIteratorHelper$
|
|
44857
|
+
var _iterator = _createForOfIteratorHelper$a(headerRows),
|
|
44029
44858
|
_step;
|
|
44030
44859
|
try {
|
|
44031
44860
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -44128,7 +44957,7 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
|
|
|
44128
44957
|
if (!url.trim()) errs.url = "WebSocket URL is required";else if (!isValidWsUrl(url)) errs.url = "URL must start with ws:// or wss://";
|
|
44129
44958
|
|
|
44130
44959
|
// Check required credential fields are filled
|
|
44131
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
44960
|
+
var _iterator2 = _createForOfIteratorHelper$a(credentialFields),
|
|
44132
44961
|
_step2;
|
|
44133
44962
|
try {
|
|
44134
44963
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -44151,7 +44980,7 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
|
|
|
44151
44980
|
|
|
44152
44981
|
// Build headers object from rows
|
|
44153
44982
|
var headers = {};
|
|
44154
|
-
var _iterator3 = _createForOfIteratorHelper$
|
|
44983
|
+
var _iterator3 = _createForOfIteratorHelper$a(headerRows),
|
|
44155
44984
|
_step3;
|
|
44156
44985
|
try {
|
|
44157
44986
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
@@ -44220,7 +45049,7 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
|
|
|
44220
45049
|
|
|
44221
45050
|
// Build config from current form state (same as handleSave)
|
|
44222
45051
|
headers = {};
|
|
44223
|
-
_iterator4 = _createForOfIteratorHelper$
|
|
45052
|
+
_iterator4 = _createForOfIteratorHelper$a(headerRows);
|
|
44224
45053
|
try {
|
|
44225
45054
|
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
44226
45055
|
row = _step4.value;
|
|
@@ -47379,9 +48208,9 @@ var InstallWidgetPicker = function InstallWidgetPicker(_ref2) {
|
|
|
47379
48208
|
|
|
47380
48209
|
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
48210
|
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$
|
|
48211
|
+
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; } } }; }
|
|
48212
|
+
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; } }
|
|
48213
|
+
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
48214
|
var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
|
|
47386
48215
|
var onBack = _ref.onBack;
|
|
47387
48216
|
var _useContext = useContext(ThemeContext),
|
|
@@ -47488,7 +48317,7 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
|
|
|
47488
48317
|
case 1:
|
|
47489
48318
|
widgets = _context2.sent;
|
|
47490
48319
|
names = new Set();
|
|
47491
|
-
_iterator = _createForOfIteratorHelper$
|
|
48320
|
+
_iterator = _createForOfIteratorHelper$9(widgets);
|
|
47492
48321
|
try {
|
|
47493
48322
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
47494
48323
|
w = _step.value;
|
|
@@ -47594,12 +48423,12 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
|
|
|
47594
48423
|
var checkToolConflicts = function checkToolConflicts(widget) {
|
|
47595
48424
|
var conflicts = [];
|
|
47596
48425
|
var packageWidgets = widget.packageWidgets || [];
|
|
47597
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
48426
|
+
var _iterator2 = _createForOfIteratorHelper$9(packageWidgets),
|
|
47598
48427
|
_step2;
|
|
47599
48428
|
try {
|
|
47600
48429
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
47601
48430
|
var w = _step2.value;
|
|
47602
|
-
var _iterator3 = _createForOfIteratorHelper$
|
|
48431
|
+
var _iterator3 = _createForOfIteratorHelper$9(w.providers || []),
|
|
47603
48432
|
_step3;
|
|
47604
48433
|
try {
|
|
47605
48434
|
var _loop = function _loop() {
|
|
@@ -47612,7 +48441,7 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
|
|
|
47612
48441
|
prov = _ref5[1];
|
|
47613
48442
|
return prov.type === p.type && prov.providerClass === "mcp" && prov.allowedTools;
|
|
47614
48443
|
});
|
|
47615
|
-
var _iterator4 = _createForOfIteratorHelper$
|
|
48444
|
+
var _iterator4 = _createForOfIteratorHelper$9(matchingProviders),
|
|
47616
48445
|
_step4;
|
|
47617
48446
|
try {
|
|
47618
48447
|
var _loop2 = function _loop2() {
|
|
@@ -47935,9 +48764,9 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
|
|
|
47935
48764
|
});
|
|
47936
48765
|
};
|
|
47937
48766
|
|
|
47938
|
-
function _createForOfIteratorHelper$
|
|
47939
|
-
function _unsupportedIterableToArray$
|
|
47940
|
-
function _arrayLikeToArray$
|
|
48767
|
+
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; } } }; }
|
|
48768
|
+
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; } }
|
|
48769
|
+
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
48770
|
|
|
47942
48771
|
/**
|
|
47943
48772
|
* Walk a workspace layout and collect widget component keys that are
|
|
@@ -47951,7 +48780,7 @@ function collectComponentsFromLayout(layout) {
|
|
|
47951
48780
|
|
|
47952
48781
|
// Collect IDs of layout items that are actively referenced by grid cells
|
|
47953
48782
|
var activeItemIds = new Set();
|
|
47954
|
-
var _iterator = _createForOfIteratorHelper$
|
|
48783
|
+
var _iterator = _createForOfIteratorHelper$8(layout),
|
|
47955
48784
|
_step;
|
|
47956
48785
|
try {
|
|
47957
48786
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -47971,7 +48800,7 @@ function collectComponentsFromLayout(layout) {
|
|
|
47971
48800
|
} finally {
|
|
47972
48801
|
_iterator.f();
|
|
47973
48802
|
}
|
|
47974
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
48803
|
+
var _iterator2 = _createForOfIteratorHelper$8(layout),
|
|
47975
48804
|
_step2;
|
|
47976
48805
|
try {
|
|
47977
48806
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -48005,7 +48834,7 @@ function findWidgetUsage(componentNames, workspaces) {
|
|
|
48005
48834
|
if (!(componentNames !== null && componentNames !== void 0 && componentNames.length) || !(workspaces !== null && workspaces !== void 0 && workspaces.length)) return [];
|
|
48006
48835
|
var nameSet = new Set(componentNames);
|
|
48007
48836
|
var results = [];
|
|
48008
|
-
var _iterator3 = _createForOfIteratorHelper$
|
|
48837
|
+
var _iterator3 = _createForOfIteratorHelper$8(workspaces),
|
|
48009
48838
|
_step3;
|
|
48010
48839
|
try {
|
|
48011
48840
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
@@ -48240,9 +49069,9 @@ var useInstalledWidgets = function useInstalledWidgets() {
|
|
|
48240
49069
|
};
|
|
48241
49070
|
};
|
|
48242
49071
|
|
|
48243
|
-
function _createForOfIteratorHelper$
|
|
48244
|
-
function _unsupportedIterableToArray$
|
|
48245
|
-
function _arrayLikeToArray$
|
|
49072
|
+
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; } } }; }
|
|
49073
|
+
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; } }
|
|
49074
|
+
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
49075
|
|
|
48247
49076
|
/**
|
|
48248
49077
|
* useWidgetUpdates — checks the registry for newer versions of installed widgets
|
|
@@ -48372,7 +49201,7 @@ function useWidgetUpdates() {
|
|
|
48372
49201
|
// (install replaces the entire package, not just one widget)
|
|
48373
49202
|
setUpdates(function (prev) {
|
|
48374
49203
|
var next = new Map(prev);
|
|
48375
|
-
var _iterator = _createForOfIteratorHelper$
|
|
49204
|
+
var _iterator = _createForOfIteratorHelper$7(next),
|
|
48376
49205
|
_step;
|
|
48377
49206
|
try {
|
|
48378
49207
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -52013,9 +52842,9 @@ var PopoverItem = function PopoverItem(_ref6) {
|
|
|
52013
52842
|
});
|
|
52014
52843
|
};
|
|
52015
52844
|
|
|
52016
|
-
function _createForOfIteratorHelper$
|
|
52017
|
-
function _unsupportedIterableToArray$
|
|
52018
|
-
function _arrayLikeToArray$
|
|
52845
|
+
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; } } }; }
|
|
52846
|
+
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; } }
|
|
52847
|
+
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
52848
|
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
52849
|
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
52850
|
var DraggableWidgetItem = function DraggableWidgetItem(_ref) {
|
|
@@ -52557,7 +53386,7 @@ var WidgetSidebar = function WidgetSidebar(_ref4) {
|
|
|
52557
53386
|
return _context2.abrupt("return");
|
|
52558
53387
|
case 2:
|
|
52559
53388
|
names = new Set();
|
|
52560
|
-
_iterator = _createForOfIteratorHelper$
|
|
53389
|
+
_iterator = _createForOfIteratorHelper$6(widgets);
|
|
52561
53390
|
try {
|
|
52562
53391
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
52563
53392
|
w = _step.value;
|
|
@@ -52945,9 +53774,9 @@ var useMissingWidgets = function useMissingWidgets(workspace) {
|
|
|
52945
53774
|
|
|
52946
53775
|
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
53776
|
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$
|
|
53777
|
+
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; } } }; }
|
|
53778
|
+
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; } }
|
|
53779
|
+
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
53780
|
var MissingWidgetsModal = function MissingWidgetsModal(_ref) {
|
|
52952
53781
|
var _ref$missingComponent = _ref.missingComponents,
|
|
52953
53782
|
missingComponents = _ref$missingComponent === void 0 ? [] : _ref$missingComponent,
|
|
@@ -52998,7 +53827,7 @@ var MissingWidgetsModal = function MissingWidgetsModal(_ref) {
|
|
|
52998
53827
|
case 0:
|
|
52999
53828
|
results = [];
|
|
53000
53829
|
seen = new Set();
|
|
53001
|
-
_iterator = _createForOfIteratorHelper$
|
|
53830
|
+
_iterator = _createForOfIteratorHelper$5(missingComponents);
|
|
53002
53831
|
_context2.prev = 1;
|
|
53003
53832
|
_loop = /*#__PURE__*/_regeneratorRuntime.mark(function _loop() {
|
|
53004
53833
|
var componentKey, _getWidgetSearchQuery, packageName, widgetName, pkg, result;
|
|
@@ -53319,261 +54148,6 @@ var MissingWidgetsModal = function MissingWidgetsModal(_ref) {
|
|
|
53319
54148
|
});
|
|
53320
54149
|
};
|
|
53321
54150
|
|
|
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
54151
|
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
54152
|
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
54153
|
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 +54159,43 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
53585
54159
|
workspace = _ref.workspace,
|
|
53586
54160
|
appProviders = _ref.appProviders,
|
|
53587
54161
|
getWidgetRequirements = _ref.getWidgetRequirements,
|
|
53588
|
-
|
|
54162
|
+
_ref$getWidgetConfig = _ref.getWidgetConfig,
|
|
54163
|
+
getWidgetConfig = _ref$getWidgetConfig === void 0 ? null : _ref$getWidgetConfig,
|
|
54164
|
+
onSaveBindings = _ref.onSaveBindings,
|
|
54165
|
+
onSaveListeners = _ref.onSaveListeners,
|
|
54166
|
+
_ref$initialTab = _ref.initialTab,
|
|
54167
|
+
initialTab = _ref$initialTab === void 0 ? "providers" : _ref$initialTab;
|
|
53589
54168
|
var _useContext = useContext(ThemeContext),
|
|
53590
54169
|
currentTheme = _useContext.currentTheme;
|
|
53591
54170
|
var panelStyles = getStylesForItem(themeObjects.PANEL, currentTheme, {
|
|
53592
54171
|
grow: false
|
|
53593
54172
|
});
|
|
53594
54173
|
|
|
54174
|
+
// Active tab. Defaults to whatever the parent requested via
|
|
54175
|
+
// `initialTab`. Resets on each open via the modal's mount cycle.
|
|
54176
|
+
var _useState = useState(initialTab),
|
|
54177
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
54178
|
+
activeTab = _useState2[0],
|
|
54179
|
+
setActiveTab = _useState2[1];
|
|
54180
|
+
|
|
53595
54181
|
// Staged changes: widgetId -> { [providerType]: providerName }. Empty
|
|
53596
54182
|
// until the user picks something; applied on Save via onSaveBindings.
|
|
53597
|
-
var
|
|
53598
|
-
|
|
53599
|
-
staged =
|
|
53600
|
-
setStaged =
|
|
54183
|
+
var _useState3 = useState({}),
|
|
54184
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
54185
|
+
staged = _useState4[0],
|
|
54186
|
+
setStaged = _useState4[1];
|
|
54187
|
+
|
|
54188
|
+
// Staged listener changes — collected in the Listeners tab's UI and
|
|
54189
|
+
// committed alongside provider changes when the user clicks Save.
|
|
54190
|
+
// Shape: { adds: [...], removes: [...] } where each item is
|
|
54191
|
+
// { receiverItemId, handlerName, sourceComponent, sourceItemId, eventName, raw? }.
|
|
54192
|
+
var _useState5 = useState({
|
|
54193
|
+
adds: [],
|
|
54194
|
+
removes: []
|
|
54195
|
+
}),
|
|
54196
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
54197
|
+
stagedListeners = _useState6[0],
|
|
54198
|
+
setStagedListeners = _useState6[1];
|
|
53601
54199
|
var bindings = useMemo(function () {
|
|
53602
54200
|
return getAllProviderBindings({
|
|
53603
54201
|
workspace: workspace,
|
|
@@ -53663,9 +54261,98 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
53663
54261
|
var unresolvedCount = effectiveBindings.filter(function (b) {
|
|
53664
54262
|
return b.required && !b.resolvedProviderName;
|
|
53665
54263
|
}).length;
|
|
54264
|
+
|
|
54265
|
+
// Listeners tab data — emitter list, receiver list, current wiring,
|
|
54266
|
+
// orphans. All recompute when the workspace or staged delta changes
|
|
54267
|
+
// so the UI reflects pending edits without saving first.
|
|
54268
|
+
var wConfig = useMemo(function () {
|
|
54269
|
+
return typeof getWidgetConfig === "function" ? getWidgetConfig : function () {
|
|
54270
|
+
return null;
|
|
54271
|
+
};
|
|
54272
|
+
}, [getWidgetConfig]);
|
|
54273
|
+
var emitters = useMemo(function () {
|
|
54274
|
+
return getEmitters(workspace, wConfig);
|
|
54275
|
+
}, [workspace, wConfig]);
|
|
54276
|
+
var receivers = useMemo(function () {
|
|
54277
|
+
return getReceivers(workspace, wConfig);
|
|
54278
|
+
}, [workspace, wConfig]);
|
|
54279
|
+
var persistedWiring = useMemo(function () {
|
|
54280
|
+
return getCurrentWiring(workspace);
|
|
54281
|
+
}, [workspace]);
|
|
54282
|
+
var orphans = useMemo(function () {
|
|
54283
|
+
return getOrphanedListeners(workspace, wConfig);
|
|
54284
|
+
}, [workspace, wConfig]);
|
|
54285
|
+
var effectiveWiring = useMemo(function () {
|
|
54286
|
+
// Apply staged removes/adds to the persisted wiring for an
|
|
54287
|
+
// accurate "what will be there after save" view, then annotate
|
|
54288
|
+
// each entry with its orphan reason (if any) so HandlerCard chips
|
|
54289
|
+
// can render a stale-binding warning inline.
|
|
54290
|
+
var next = persistedWiring;
|
|
54291
|
+
if (stagedListeners.removes.length > 0) {
|
|
54292
|
+
next = next.filter(function (w) {
|
|
54293
|
+
return !stagedListeners.removes.some(function (r) {
|
|
54294
|
+
return sameWiringEntry(r, w);
|
|
54295
|
+
});
|
|
54296
|
+
});
|
|
54297
|
+
}
|
|
54298
|
+
if (stagedListeners.adds.length > 0) {
|
|
54299
|
+
// Append; avoid duplicates against current state.
|
|
54300
|
+
var _iterator2 = _createForOfIteratorHelper$4(stagedListeners.adds),
|
|
54301
|
+
_step2;
|
|
54302
|
+
try {
|
|
54303
|
+
var _loop = function _loop() {
|
|
54304
|
+
var a = _step2.value;
|
|
54305
|
+
if (!next.some(function (w) {
|
|
54306
|
+
return sameWiringEntry(w, a);
|
|
54307
|
+
})) {
|
|
54308
|
+
next = [].concat(_toConsumableArray(next), [_objectSpread$7(_objectSpread$7({}, a), {}, {
|
|
54309
|
+
raw: formatEventString(a.sourceComponent, a.sourceItemId, a.eventName)
|
|
54310
|
+
})]);
|
|
54311
|
+
}
|
|
54312
|
+
};
|
|
54313
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
54314
|
+
_loop();
|
|
54315
|
+
}
|
|
54316
|
+
} catch (err) {
|
|
54317
|
+
_iterator2.e(err);
|
|
54318
|
+
} finally {
|
|
54319
|
+
_iterator2.f();
|
|
54320
|
+
}
|
|
54321
|
+
}
|
|
54322
|
+
if (orphans.length === 0) return next;
|
|
54323
|
+
var orphanIndex = new Map();
|
|
54324
|
+
var _iterator3 = _createForOfIteratorHelper$4(orphans),
|
|
54325
|
+
_step3;
|
|
54326
|
+
try {
|
|
54327
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
54328
|
+
var o = _step3.value;
|
|
54329
|
+
orphanIndex.set("".concat(o.receiverItemId, "|").concat(o.handlerName, "|").concat(o.sourceComponent, "|").concat(o.sourceItemId, "|").concat(o.eventName), o.reason);
|
|
54330
|
+
}
|
|
54331
|
+
} catch (err) {
|
|
54332
|
+
_iterator3.e(err);
|
|
54333
|
+
} finally {
|
|
54334
|
+
_iterator3.f();
|
|
54335
|
+
}
|
|
54336
|
+
return next.map(function (w) {
|
|
54337
|
+
var key = "".concat(w.receiverItemId, "|").concat(w.handlerName, "|").concat(w.sourceComponent, "|").concat(w.sourceItemId, "|").concat(w.eventName);
|
|
54338
|
+
var reason = orphanIndex.get(key);
|
|
54339
|
+
return reason ? _objectSpread$7(_objectSpread$7({}, w), {}, {
|
|
54340
|
+
isOrphan: true,
|
|
54341
|
+
orphanReason: reason
|
|
54342
|
+
}) : w;
|
|
54343
|
+
});
|
|
54344
|
+
}, [persistedWiring, stagedListeners, orphans]);
|
|
54345
|
+
// Orphans reduced by what the user has already staged for removal.
|
|
54346
|
+
useMemo(function () {
|
|
54347
|
+
return orphans.filter(function (o) {
|
|
54348
|
+
return !stagedListeners.removes.some(function (r) {
|
|
54349
|
+
return sameWiringEntry(r, o);
|
|
54350
|
+
});
|
|
54351
|
+
});
|
|
54352
|
+
}, [orphans, stagedListeners.removes]);
|
|
53666
54353
|
var hasStagedChanges = Object.keys(staged).some(function (wid) {
|
|
53667
54354
|
return Object.keys(staged[wid] || {}).length > 0;
|
|
53668
|
-
});
|
|
54355
|
+
}) || stagedListeners.adds.length > 0 || stagedListeners.removes.length > 0;
|
|
53669
54356
|
function stageBinding(widgetId, providerType, providerName) {
|
|
53670
54357
|
setStaged(function (prev) {
|
|
53671
54358
|
var next = _objectSpread$7({}, prev);
|
|
@@ -53685,24 +54372,75 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
53685
54372
|
});
|
|
53686
54373
|
setStaged(function (prev) {
|
|
53687
54374
|
var next = _objectSpread$7({}, prev);
|
|
53688
|
-
var
|
|
53689
|
-
|
|
54375
|
+
var _iterator4 = _createForOfIteratorHelper$4(affected),
|
|
54376
|
+
_step4;
|
|
53690
54377
|
try {
|
|
53691
|
-
for (
|
|
53692
|
-
var b =
|
|
54378
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
54379
|
+
var b = _step4.value;
|
|
53693
54380
|
if (!b.widgetId) continue;
|
|
53694
54381
|
next[b.widgetId] = _objectSpread$7(_objectSpread$7({}, next[b.widgetId] || {}), {}, _defineProperty({}, providerType, providerName || ""));
|
|
53695
54382
|
}
|
|
53696
54383
|
} catch (err) {
|
|
53697
|
-
|
|
54384
|
+
_iterator4.e(err);
|
|
53698
54385
|
} finally {
|
|
53699
|
-
|
|
54386
|
+
_iterator4.f();
|
|
53700
54387
|
}
|
|
53701
54388
|
return next;
|
|
53702
54389
|
});
|
|
53703
54390
|
}
|
|
54391
|
+
|
|
54392
|
+
// Listener tab staging helpers. We treat add/remove as queue
|
|
54393
|
+
// operations so the user can build up several edits before
|
|
54394
|
+
// committing. Toggling a binding that's already staged in the
|
|
54395
|
+
// opposite direction cancels the staged change rather than queuing
|
|
54396
|
+
// both — keeps the diff minimal and the save predictable.
|
|
54397
|
+
var stageListenerAdd = function stageListenerAdd(entry) {
|
|
54398
|
+
setStagedListeners(function (prev) {
|
|
54399
|
+
var removeIdx = prev.removes.findIndex(function (r) {
|
|
54400
|
+
return sameWiringEntry(r, entry);
|
|
54401
|
+
});
|
|
54402
|
+
if (removeIdx >= 0) {
|
|
54403
|
+
return {
|
|
54404
|
+
adds: prev.adds,
|
|
54405
|
+
removes: prev.removes.filter(function (_, i) {
|
|
54406
|
+
return i !== removeIdx;
|
|
54407
|
+
})
|
|
54408
|
+
};
|
|
54409
|
+
}
|
|
54410
|
+
if (prev.adds.some(function (a) {
|
|
54411
|
+
return sameWiringEntry(a, entry);
|
|
54412
|
+
})) return prev;
|
|
54413
|
+
return {
|
|
54414
|
+
adds: [].concat(_toConsumableArray(prev.adds), [entry]),
|
|
54415
|
+
removes: prev.removes
|
|
54416
|
+
};
|
|
54417
|
+
});
|
|
54418
|
+
};
|
|
54419
|
+
var stageListenerRemove = function stageListenerRemove(entry) {
|
|
54420
|
+
setStagedListeners(function (prev) {
|
|
54421
|
+
var addIdx = prev.adds.findIndex(function (a) {
|
|
54422
|
+
return sameWiringEntry(a, entry);
|
|
54423
|
+
});
|
|
54424
|
+
if (addIdx >= 0) {
|
|
54425
|
+
return {
|
|
54426
|
+
adds: prev.adds.filter(function (_, i) {
|
|
54427
|
+
return i !== addIdx;
|
|
54428
|
+
}),
|
|
54429
|
+
removes: prev.removes
|
|
54430
|
+
};
|
|
54431
|
+
}
|
|
54432
|
+
if (prev.removes.some(function (r) {
|
|
54433
|
+
return sameWiringEntry(r, entry);
|
|
54434
|
+
})) return prev;
|
|
54435
|
+
return {
|
|
54436
|
+
adds: prev.adds,
|
|
54437
|
+
removes: [].concat(_toConsumableArray(prev.removes), [entry])
|
|
54438
|
+
};
|
|
54439
|
+
});
|
|
54440
|
+
};
|
|
53704
54441
|
function handleSave() {
|
|
53705
|
-
|
|
54442
|
+
// Provider changes
|
|
54443
|
+
var providerChanges = [];
|
|
53706
54444
|
for (var _i2 = 0, _Object$entries2 = Object.entries(staged); _i2 < _Object$entries2.length; _i2++) {
|
|
53707
54445
|
var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i2], 2),
|
|
53708
54446
|
widgetId = _Object$entries2$_i[0],
|
|
@@ -53711,31 +54449,44 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
53711
54449
|
var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i3], 2),
|
|
53712
54450
|
providerType = _Object$entries3$_i[0],
|
|
53713
54451
|
providerName = _Object$entries3$_i[1];
|
|
53714
|
-
|
|
54452
|
+
providerChanges.push({
|
|
53715
54453
|
widgetId: widgetId,
|
|
53716
54454
|
providerType: providerType,
|
|
53717
54455
|
providerName: providerName || null
|
|
53718
54456
|
});
|
|
53719
54457
|
}
|
|
53720
54458
|
}
|
|
53721
|
-
if (typeof onSaveBindings === "function")
|
|
54459
|
+
if (providerChanges.length > 0 && typeof onSaveBindings === "function") {
|
|
54460
|
+
onSaveBindings(providerChanges);
|
|
54461
|
+
}
|
|
54462
|
+
|
|
54463
|
+
// Listener changes
|
|
54464
|
+
if ((stagedListeners.adds.length > 0 || stagedListeners.removes.length > 0) && typeof onSaveListeners === "function") {
|
|
54465
|
+
onSaveListeners(stagedListeners);
|
|
54466
|
+
}
|
|
53722
54467
|
setStaged({});
|
|
54468
|
+
setStagedListeners({
|
|
54469
|
+
adds: [],
|
|
54470
|
+
removes: []
|
|
54471
|
+
});
|
|
53723
54472
|
setIsOpen(false);
|
|
53724
54473
|
}
|
|
53725
54474
|
function handleCancel() {
|
|
53726
54475
|
setStaged({});
|
|
54476
|
+
setStagedListeners({
|
|
54477
|
+
adds: [],
|
|
54478
|
+
removes: []
|
|
54479
|
+
});
|
|
53727
54480
|
setIsOpen(false);
|
|
53728
54481
|
}
|
|
53729
54482
|
if (!isOpen) return null;
|
|
53730
54483
|
return /*#__PURE__*/jsx(Modal, {
|
|
53731
54484
|
isOpen: isOpen,
|
|
53732
54485
|
setIsOpen: handleCancel,
|
|
53733
|
-
width: "w-
|
|
54486
|
+
width: "w-11/12 xl:w-5/6",
|
|
54487
|
+
height: "h-5/6",
|
|
53734
54488
|
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
|
-
},
|
|
54489
|
+
className: "flex flex-col h-full w-full rounded-lg overflow-clip border ".concat(panelStyles.backgroundColor || "", " ").concat(panelStyles.borderColor || "", " ").concat(panelStyles.textColor || ""),
|
|
53739
54490
|
children: [/*#__PURE__*/jsxs("div", {
|
|
53740
54491
|
className: "flex-shrink-0 flex flex-row items-center justify-between p-4 border-b border-white/10",
|
|
53741
54492
|
children: [/*#__PURE__*/jsxs("div", {
|
|
@@ -53761,47 +54512,37 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
53761
54512
|
})]
|
|
53762
54513
|
}), /*#__PURE__*/jsxs("div", {
|
|
53763
54514
|
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);
|
|
54515
|
+
children: [/*#__PURE__*/jsxs("button", {
|
|
54516
|
+
type: "button",
|
|
54517
|
+
onClick: function onClick() {
|
|
54518
|
+
return setActiveTab("providers");
|
|
54519
|
+
},
|
|
54520
|
+
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"),
|
|
54521
|
+
children: ["Providers", unresolvedCount > 0 && /*#__PURE__*/jsx("span", {
|
|
54522
|
+
className: "ml-2 inline-block h-1.5 w-1.5 rounded-full bg-amber-400 align-middle"
|
|
54523
|
+
})]
|
|
54524
|
+
}), /*#__PURE__*/jsx("button", {
|
|
54525
|
+
type: "button",
|
|
54526
|
+
onClick: function onClick() {
|
|
54527
|
+
return setActiveTab("listeners");
|
|
54528
|
+
},
|
|
54529
|
+
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"),
|
|
54530
|
+
children: "Listeners"
|
|
53804
54531
|
})]
|
|
54532
|
+
}), /*#__PURE__*/jsx("div", {
|
|
54533
|
+
className: "p-5 flex-1 min-h-0",
|
|
54534
|
+
children: activeTab === "listeners" ? /*#__PURE__*/jsx(ListenersTab, {
|
|
54535
|
+
emitters: emitters,
|
|
54536
|
+
receivers: receivers,
|
|
54537
|
+
wiring: effectiveWiring,
|
|
54538
|
+
onAdd: stageListenerAdd,
|
|
54539
|
+
onRemove: stageListenerRemove
|
|
54540
|
+
}) : /*#__PURE__*/jsx(ProvidersTab, {
|
|
54541
|
+
grouped: grouped,
|
|
54542
|
+
providersByType: providersByType,
|
|
54543
|
+
onBulk: stageBulk,
|
|
54544
|
+
onPerWidget: stageBinding
|
|
54545
|
+
})
|
|
53805
54546
|
}), /*#__PURE__*/jsxs("div", {
|
|
53806
54547
|
className: "flex-shrink-0 flex flex-row justify-end gap-2 p-4 border-t border-white/10",
|
|
53807
54548
|
children: [/*#__PURE__*/jsx(Button3, {
|
|
@@ -53818,114 +54559,507 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
53818
54559
|
};
|
|
53819
54560
|
|
|
53820
54561
|
/**
|
|
53821
|
-
*
|
|
53822
|
-
*
|
|
54562
|
+
* Providers tab with a sidebar/detail layout mirroring the Listeners
|
|
54563
|
+
* tab. Column 1 lists provider types in this workspace (with an amber
|
|
54564
|
+
* dot per-type when any widget of that type is unresolved). Column 2
|
|
54565
|
+
* shows the selected type's bulk dropdown + per-widget dropdowns.
|
|
53823
54566
|
*/
|
|
53824
|
-
function
|
|
53825
|
-
var
|
|
53826
|
-
|
|
53827
|
-
|
|
53828
|
-
|
|
53829
|
-
|
|
53830
|
-
|
|
53831
|
-
|
|
53832
|
-
|
|
53833
|
-
|
|
53834
|
-
|
|
53835
|
-
|
|
53836
|
-
|
|
54567
|
+
function ProvidersTab(_ref2) {
|
|
54568
|
+
var _typeEntries$, _selectedRows$;
|
|
54569
|
+
var grouped = _ref2.grouped,
|
|
54570
|
+
providersByType = _ref2.providersByType,
|
|
54571
|
+
onBulk = _ref2.onBulk,
|
|
54572
|
+
onPerWidget = _ref2.onPerWidget;
|
|
54573
|
+
var typeEntries = useMemo(function () {
|
|
54574
|
+
return Array.from(grouped.entries());
|
|
54575
|
+
}, [grouped]);
|
|
54576
|
+
var _useState7 = useState(((_typeEntries$ = typeEntries[0]) === null || _typeEntries$ === void 0 ? void 0 : _typeEntries$[0]) || null),
|
|
54577
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
54578
|
+
selectedType = _useState8[0],
|
|
54579
|
+
setSelectedType = _useState8[1];
|
|
54580
|
+
|
|
54581
|
+
// If the selected type disappears (workspace changed), fall back.
|
|
54582
|
+
useMemo(function () {
|
|
54583
|
+
if (selectedType && !grouped.has(selectedType)) {
|
|
54584
|
+
var _typeEntries$2;
|
|
54585
|
+
setSelectedType(((_typeEntries$2 = typeEntries[0]) === null || _typeEntries$2 === void 0 ? void 0 : _typeEntries$2[0]) || null);
|
|
54586
|
+
}
|
|
54587
|
+
}, [grouped, selectedType, typeEntries]);
|
|
54588
|
+
if (typeEntries.length === 0) {
|
|
54589
|
+
return /*#__PURE__*/jsx("div", {
|
|
54590
|
+
className: "text-sm opacity-60 text-center py-6",
|
|
54591
|
+
children: "No widgets in this dashboard require providers."
|
|
54592
|
+
});
|
|
54593
|
+
}
|
|
54594
|
+
var selectedRows = selectedType ? grouped.get(selectedType) || [] : [];
|
|
54595
|
+
var selectedOptions = selectedType ? providersByType.get(selectedType) || [] : [];
|
|
54596
|
+
var allSame = selectedRows.length > 0 && selectedRows.every(function (r) {
|
|
54597
|
+
return r.resolvedProviderName === selectedRows[0].resolvedProviderName;
|
|
54598
|
+
});
|
|
54599
|
+
var topValue = allSame ? ((_selectedRows$ = selectedRows[0]) === null || _selectedRows$ === void 0 ? void 0 : _selectedRows$.resolvedProviderName) || "" : "";
|
|
53837
54600
|
return /*#__PURE__*/jsxs("div", {
|
|
53838
|
-
className: "
|
|
54601
|
+
className: "flex flex-row gap-3 h-full min-h-0",
|
|
53839
54602
|
children: [/*#__PURE__*/jsxs("div", {
|
|
53840
|
-
className: "
|
|
54603
|
+
className: "w-56 flex-shrink-0 bg-white/5 border border-white/10 rounded-lg overflow-hidden flex flex-col",
|
|
53841
54604
|
children: [/*#__PURE__*/jsx("div", {
|
|
53842
|
-
className: "
|
|
53843
|
-
children:
|
|
53844
|
-
|
|
53845
|
-
|
|
53846
|
-
|
|
53847
|
-
|
|
53848
|
-
|
|
53849
|
-
|
|
53850
|
-
|
|
53851
|
-
|
|
53852
|
-
|
|
53853
|
-
|
|
53854
|
-
|
|
53855
|
-
|
|
53856
|
-
|
|
53857
|
-
|
|
54605
|
+
className: "px-3 py-2 text-xs font-semibold opacity-50 uppercase tracking-wider border-b border-white/10",
|
|
54606
|
+
children: "Provider Types"
|
|
54607
|
+
}), /*#__PURE__*/jsx("div", {
|
|
54608
|
+
className: "overflow-y-auto flex-1",
|
|
54609
|
+
children: typeEntries.map(function (_ref3) {
|
|
54610
|
+
var _ref4 = _slicedToArray(_ref3, 2),
|
|
54611
|
+
providerType = _ref4[0],
|
|
54612
|
+
rows = _ref4[1];
|
|
54613
|
+
var isActive = selectedType === providerType;
|
|
54614
|
+
var unresolvedHere = rows.filter(function (r) {
|
|
54615
|
+
return r.required && !r.resolvedProviderName;
|
|
54616
|
+
}).length;
|
|
54617
|
+
return /*#__PURE__*/jsxs("button", {
|
|
54618
|
+
type: "button",
|
|
54619
|
+
onClick: function onClick() {
|
|
54620
|
+
return setSelectedType(providerType);
|
|
54621
|
+
},
|
|
54622
|
+
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"),
|
|
54623
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
54624
|
+
className: "flex items-center gap-2",
|
|
54625
|
+
children: [/*#__PURE__*/jsx("span", {
|
|
54626
|
+
className: "text-sm font-medium truncate",
|
|
54627
|
+
children: providerType
|
|
54628
|
+
}), unresolvedHere > 0 && /*#__PURE__*/jsxs("span", {
|
|
54629
|
+
className: "text-[10px] text-amber-300 flex items-center gap-1",
|
|
54630
|
+
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
54631
|
+
icon: "triangle-exclamation",
|
|
54632
|
+
className: "h-2.5 w-2.5"
|
|
54633
|
+
}), unresolvedHere]
|
|
54634
|
+
})]
|
|
54635
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
54636
|
+
className: "text-xs opacity-50 mt-0.5",
|
|
54637
|
+
children: [rows.length, " widget", rows.length === 1 ? "" : "s"]
|
|
54638
|
+
})]
|
|
54639
|
+
}, providerType);
|
|
53858
54640
|
})
|
|
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
54641
|
})]
|
|
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",
|
|
54642
|
+
}), /*#__PURE__*/jsx("div", {
|
|
54643
|
+
className: "flex-1 min-w-0 bg-white/5 border border-white/10 rounded-lg overflow-hidden flex flex-col",
|
|
54644
|
+
children: selectedType ? /*#__PURE__*/jsxs(Fragment, {
|
|
54645
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
54646
|
+
className: "px-4 py-3 border-b border-white/10 flex-shrink-0",
|
|
53894
54647
|
children: [/*#__PURE__*/jsxs("div", {
|
|
53895
|
-
className: "
|
|
54648
|
+
className: "text-sm font-semibold",
|
|
54649
|
+
children: [selectedType, " ", /*#__PURE__*/jsx("span", {
|
|
54650
|
+
className: "opacity-60 font-normal",
|
|
54651
|
+
children: "provider"
|
|
54652
|
+
})]
|
|
54653
|
+
}), /*#__PURE__*/jsx("div", {
|
|
54654
|
+
className: "text-xs opacity-60 mt-1",
|
|
54655
|
+
children: "Apply one provider to every widget of this type, or adjust per-widget below."
|
|
54656
|
+
})]
|
|
54657
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
54658
|
+
className: "flex-1 overflow-y-auto p-4 space-y-4",
|
|
54659
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
54660
|
+
className: "flex items-center gap-3",
|
|
53896
54661
|
children: [/*#__PURE__*/jsx("span", {
|
|
53897
|
-
className: "
|
|
53898
|
-
children:
|
|
53899
|
-
}), /*#__PURE__*/
|
|
53900
|
-
|
|
53901
|
-
|
|
53902
|
-
|
|
53903
|
-
|
|
53904
|
-
|
|
53905
|
-
|
|
53906
|
-
|
|
53907
|
-
|
|
53908
|
-
|
|
53909
|
-
|
|
53910
|
-
|
|
54662
|
+
className: "text-xs opacity-60 flex-shrink-0 w-20",
|
|
54663
|
+
children: "Bulk assign"
|
|
54664
|
+
}), /*#__PURE__*/jsxs("select", {
|
|
54665
|
+
value: topValue,
|
|
54666
|
+
onChange: function onChange(e) {
|
|
54667
|
+
return onBulk(selectedType, e.target.value);
|
|
54668
|
+
},
|
|
54669
|
+
className: "flex-1 bg-gray-800 border border-white/10 rounded px-3 py-1.5 text-sm",
|
|
54670
|
+
children: [/*#__PURE__*/jsx("option", {
|
|
54671
|
+
value: "",
|
|
54672
|
+
children: "\u2014 Select provider \u2014"
|
|
54673
|
+
}), selectedOptions.map(function (opt) {
|
|
54674
|
+
return /*#__PURE__*/jsxs("option", {
|
|
54675
|
+
value: opt.name,
|
|
54676
|
+
children: [opt.name, opt.isDefaultForType ? " (default)" : ""]
|
|
54677
|
+
}, opt.name);
|
|
54678
|
+
})]
|
|
53911
54679
|
})]
|
|
53912
|
-
}), /*#__PURE__*/jsxs("
|
|
53913
|
-
|
|
53914
|
-
|
|
53915
|
-
|
|
53916
|
-
},
|
|
53917
|
-
|
|
53918
|
-
|
|
53919
|
-
|
|
53920
|
-
|
|
53921
|
-
|
|
53922
|
-
|
|
53923
|
-
|
|
53924
|
-
|
|
53925
|
-
|
|
54680
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
54681
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
54682
|
+
className: "text-xs font-semibold opacity-50 uppercase tracking-wider mb-2",
|
|
54683
|
+
children: "Per-widget"
|
|
54684
|
+
}), /*#__PURE__*/jsx("div", {
|
|
54685
|
+
children: selectedRows.map(function (row) {
|
|
54686
|
+
var _row$layoutItem;
|
|
54687
|
+
var hasExplicitOverride = !!((_row$layoutItem = row.layoutItem) !== null && _row$layoutItem !== void 0 && (_row$layoutItem = _row$layoutItem.selectedProviders) !== null && _row$layoutItem !== void 0 && _row$layoutItem[selectedType]);
|
|
54688
|
+
var isRequired = !!row.required;
|
|
54689
|
+
var isMissing = !row.resolvedProviderName;
|
|
54690
|
+
var needsAttention = isRequired && isMissing;
|
|
54691
|
+
return /*#__PURE__*/jsxs("div", {
|
|
54692
|
+
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"),
|
|
54693
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
54694
|
+
className: "flex-1 min-w-0",
|
|
54695
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
54696
|
+
className: "text-sm truncate flex items-center gap-1.5 ".concat(needsAttention ? "font-semibold text-red-100" : "font-medium"),
|
|
54697
|
+
children: [/*#__PURE__*/jsx("span", {
|
|
54698
|
+
className: "truncate",
|
|
54699
|
+
children: row.component || "widget"
|
|
54700
|
+
}), isRequired && /*#__PURE__*/jsx("span", {
|
|
54701
|
+
className: needsAttention ? "text-red-300" : "text-indigo-300",
|
|
54702
|
+
title: "Required provider",
|
|
54703
|
+
"aria-label": "required",
|
|
54704
|
+
children: "*"
|
|
54705
|
+
})]
|
|
54706
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
54707
|
+
className: "flex items-center gap-1.5 mt-1 text-[10px]",
|
|
54708
|
+
children: [/*#__PURE__*/jsx("span", {
|
|
54709
|
+
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"),
|
|
54710
|
+
children: isRequired ? "required" : "optional"
|
|
54711
|
+
}), hasExplicitOverride && /*#__PURE__*/jsx("span", {
|
|
54712
|
+
className: "uppercase tracking-wide px-1.5 py-0.5 rounded font-semibold bg-indigo-900 text-indigo-200",
|
|
54713
|
+
children: "override"
|
|
54714
|
+
}), /*#__PURE__*/jsx("span", {
|
|
54715
|
+
className: "opacity-40 truncate ml-1",
|
|
54716
|
+
children: (row.widgetId || "").slice(0, 8)
|
|
54717
|
+
})]
|
|
54718
|
+
})]
|
|
54719
|
+
}), /*#__PURE__*/jsxs("select", {
|
|
54720
|
+
value: row.resolvedProviderName || "",
|
|
54721
|
+
onChange: function onChange(e) {
|
|
54722
|
+
return onPerWidget(row.widgetId, selectedType, e.target.value);
|
|
54723
|
+
},
|
|
54724
|
+
className: "bg-gray-800 border rounded px-2 py-1 text-xs min-w-[12rem] ".concat(needsAttention ? "border-red-400" : "border-gray-700"),
|
|
54725
|
+
children: [/*#__PURE__*/jsx("option", {
|
|
54726
|
+
value: "",
|
|
54727
|
+
children: "\u2014 none \u2014"
|
|
54728
|
+
}), selectedOptions.map(function (opt) {
|
|
54729
|
+
return /*#__PURE__*/jsxs("option", {
|
|
54730
|
+
value: opt.name,
|
|
54731
|
+
children: [opt.name, opt.isDefaultForType ? " (default)" : ""]
|
|
54732
|
+
}, opt.name);
|
|
54733
|
+
})]
|
|
54734
|
+
})]
|
|
54735
|
+
}, "".concat(row.widgetId, ":").concat(row.providerType));
|
|
54736
|
+
})
|
|
54737
|
+
})]
|
|
54738
|
+
})]
|
|
54739
|
+
})]
|
|
54740
|
+
}) : /*#__PURE__*/jsx("div", {
|
|
54741
|
+
className: "flex-1 flex items-center justify-center text-sm opacity-60",
|
|
54742
|
+
children: "Pick a provider type to bulk-assign or adjust per widget."
|
|
54743
|
+
})
|
|
54744
|
+
})]
|
|
54745
|
+
});
|
|
54746
|
+
}
|
|
54747
|
+
|
|
54748
|
+
// ─── Listeners tab ──────────────────────────────────────────────────────────
|
|
54749
|
+
|
|
54750
|
+
/**
|
|
54751
|
+
* Match two wiring entries on the four fields that uniquely identify
|
|
54752
|
+
* a listener binding (receiver + handler + source + event). Used to
|
|
54753
|
+
* dedupe stages, cancel opposite-direction stages, and detect "is
|
|
54754
|
+
* this binding already there".
|
|
54755
|
+
*/
|
|
54756
|
+
function sameWiringEntry(a, b) {
|
|
54757
|
+
if (!a || !b) return false;
|
|
54758
|
+
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;
|
|
54759
|
+
}
|
|
54760
|
+
|
|
54761
|
+
/**
|
|
54762
|
+
* Receiver-centric sidebar/detail layout. Mirrors the per-widget
|
|
54763
|
+
* PanelEditItemHandlers pattern (handler-by-handler editing) but
|
|
54764
|
+
* scoped to the whole dashboard. Picking a widget on the left shows
|
|
54765
|
+
* its handlers + currently wired sources on the right; the user
|
|
54766
|
+
* adjusts wiring per handler from a single dropdown of all emitters'
|
|
54767
|
+
* (widget × event) pairs.
|
|
54768
|
+
*/
|
|
54769
|
+
function ListenersTab(_ref6) {
|
|
54770
|
+
var _receivers$;
|
|
54771
|
+
var emitters = _ref6.emitters,
|
|
54772
|
+
receivers = _ref6.receivers,
|
|
54773
|
+
wiring = _ref6.wiring,
|
|
54774
|
+
onAdd = _ref6.onAdd,
|
|
54775
|
+
onRemove = _ref6.onRemove;
|
|
54776
|
+
var _useState1 = useState(((_receivers$ = receivers[0]) === null || _receivers$ === void 0 ? void 0 : _receivers$.key) || null),
|
|
54777
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
54778
|
+
selectedReceiverKey = _useState10[0],
|
|
54779
|
+
setSelectedReceiverKey = _useState10[1];
|
|
54780
|
+
var _useState11 = useState(null),
|
|
54781
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
54782
|
+
selectedHandler = _useState12[0],
|
|
54783
|
+
setSelectedHandler = _useState12[1];
|
|
54784
|
+
|
|
54785
|
+
// Re-anchor selection if the previously-selected widget disappeared
|
|
54786
|
+
// (workspace switched, widget deleted, etc.).
|
|
54787
|
+
useMemo(function () {
|
|
54788
|
+
if (selectedReceiverKey && !receivers.some(function (r) {
|
|
54789
|
+
return r.key === selectedReceiverKey;
|
|
54790
|
+
})) {
|
|
54791
|
+
var _receivers$2;
|
|
54792
|
+
setSelectedReceiverKey(((_receivers$2 = receivers[0]) === null || _receivers$2 === void 0 ? void 0 : _receivers$2.key) || null);
|
|
54793
|
+
}
|
|
54794
|
+
}, [receivers, selectedReceiverKey]);
|
|
54795
|
+
|
|
54796
|
+
// Receiver lookup (by composite key) for label resolution in chips.
|
|
54797
|
+
var receiverByKey = useMemo(function () {
|
|
54798
|
+
var m = new Map();
|
|
54799
|
+
var _iterator5 = _createForOfIteratorHelper$4(receivers),
|
|
54800
|
+
_step5;
|
|
54801
|
+
try {
|
|
54802
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
54803
|
+
var r = _step5.value;
|
|
54804
|
+
m.set(r.key, r);
|
|
54805
|
+
}
|
|
54806
|
+
} catch (err) {
|
|
54807
|
+
_iterator5.e(err);
|
|
54808
|
+
} finally {
|
|
54809
|
+
_iterator5.f();
|
|
54810
|
+
}
|
|
54811
|
+
return m;
|
|
54812
|
+
}, [receivers]);
|
|
54813
|
+
if (receivers.length === 0) {
|
|
54814
|
+
return /*#__PURE__*/jsx("div", {
|
|
54815
|
+
className: "flex items-center justify-center h-full text-sm opacity-60 text-center",
|
|
54816
|
+
children: /*#__PURE__*/jsxs("div", {
|
|
54817
|
+
children: ["No widgets in this dashboard declare event handlers.", emitters.length > 0 && /*#__PURE__*/jsxs("div", {
|
|
54818
|
+
className: "mt-2",
|
|
54819
|
+
children: ["(", emitters.length, " widget", emitters.length === 1 ? "" : "s", " emit events but nothing is set up to receive.)"]
|
|
54820
|
+
})]
|
|
54821
|
+
})
|
|
54822
|
+
});
|
|
54823
|
+
}
|
|
54824
|
+
var selectedReceiver = selectedReceiverKey ? receiverByKey.get(selectedReceiverKey) || null : null;
|
|
54825
|
+
return /*#__PURE__*/jsx("div", {
|
|
54826
|
+
className: "flex flex-col gap-3 h-full min-h-0",
|
|
54827
|
+
children: /*#__PURE__*/jsxs("div", {
|
|
54828
|
+
className: "flex flex-row gap-3 flex-1 min-h-0",
|
|
54829
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
54830
|
+
className: "w-56 flex-shrink-0 bg-white/5 border border-white/10 rounded-lg overflow-hidden flex flex-col",
|
|
54831
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
54832
|
+
className: "px-3 py-2 text-xs font-semibold opacity-50 uppercase tracking-wider border-b border-white/10",
|
|
54833
|
+
children: "Widgets"
|
|
54834
|
+
}), /*#__PURE__*/jsx("div", {
|
|
54835
|
+
className: "overflow-y-auto flex-1",
|
|
54836
|
+
children: receivers.map(function (r) {
|
|
54837
|
+
var isActive = r.key === selectedReceiverKey;
|
|
54838
|
+
return /*#__PURE__*/jsx("button", {
|
|
54839
|
+
type: "button",
|
|
54840
|
+
onClick: function onClick() {
|
|
54841
|
+
return setSelectedReceiverKey(r.key);
|
|
54842
|
+
},
|
|
54843
|
+
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"),
|
|
54844
|
+
children: /*#__PURE__*/jsx("span", {
|
|
54845
|
+
className: "text-sm font-medium truncate",
|
|
54846
|
+
children: r.label
|
|
54847
|
+
})
|
|
54848
|
+
}, r.key);
|
|
54849
|
+
})
|
|
54850
|
+
})]
|
|
54851
|
+
}), selectedReceiver ? /*#__PURE__*/jsxs(Fragment, {
|
|
54852
|
+
children: [/*#__PURE__*/jsx(HandlersColumn, {
|
|
54853
|
+
receiver: selectedReceiver,
|
|
54854
|
+
myWiring: wiring.filter(function (w) {
|
|
54855
|
+
return w.receiverComponent === selectedReceiver.component && String(w.receiverItemId) === String(selectedReceiver.itemId);
|
|
54856
|
+
}),
|
|
54857
|
+
selectedHandler: selectedHandler && selectedReceiver.eventHandlers.includes(selectedHandler) ? selectedHandler : null,
|
|
54858
|
+
onSelectHandler: setSelectedHandler
|
|
54859
|
+
}), /*#__PURE__*/jsx(EventsColumn, {
|
|
54860
|
+
receiver: selectedReceiver,
|
|
54861
|
+
handlerName: selectedHandler && selectedReceiver.eventHandlers.includes(selectedHandler) ? selectedHandler : null,
|
|
54862
|
+
myWiring: wiring.filter(function (w) {
|
|
54863
|
+
return w.receiverComponent === selectedReceiver.component && String(w.receiverItemId) === String(selectedReceiver.itemId);
|
|
54864
|
+
}),
|
|
54865
|
+
emitters: emitters,
|
|
54866
|
+
onAdd: onAdd,
|
|
54867
|
+
onRemove: onRemove
|
|
54868
|
+
})]
|
|
54869
|
+
}) : /*#__PURE__*/jsx("div", {
|
|
54870
|
+
className: "flex-1 min-w-0 bg-white/5 border border-white/10 rounded-lg flex items-center justify-center text-sm opacity-60",
|
|
54871
|
+
children: "Pick a widget on the left to wire its handlers."
|
|
54872
|
+
})]
|
|
54873
|
+
})
|
|
54874
|
+
});
|
|
54875
|
+
}
|
|
54876
|
+
|
|
54877
|
+
/**
|
|
54878
|
+
* Second column (within ListenersTab): the selected receiver's
|
|
54879
|
+
* handlers with connection counts. Picking one lights up the
|
|
54880
|
+
* third column. Matches the left-column look from
|
|
54881
|
+
* PanelEditItemHandlers.
|
|
54882
|
+
*/
|
|
54883
|
+
function HandlersColumn(_ref8) {
|
|
54884
|
+
var receiver = _ref8.receiver,
|
|
54885
|
+
myWiring = _ref8.myWiring,
|
|
54886
|
+
selectedHandler = _ref8.selectedHandler,
|
|
54887
|
+
onSelectHandler = _ref8.onSelectHandler;
|
|
54888
|
+
var countsByHandler = useMemo(function () {
|
|
54889
|
+
var m = new Map();
|
|
54890
|
+
var _iterator6 = _createForOfIteratorHelper$4(myWiring),
|
|
54891
|
+
_step6;
|
|
54892
|
+
try {
|
|
54893
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
54894
|
+
var w = _step6.value;
|
|
54895
|
+
m.set(w.handlerName, (m.get(w.handlerName) || 0) + 1);
|
|
54896
|
+
}
|
|
54897
|
+
} catch (err) {
|
|
54898
|
+
_iterator6.e(err);
|
|
54899
|
+
} finally {
|
|
54900
|
+
_iterator6.f();
|
|
54901
|
+
}
|
|
54902
|
+
return m;
|
|
54903
|
+
}, [myWiring]);
|
|
54904
|
+
return /*#__PURE__*/jsxs("div", {
|
|
54905
|
+
className: "w-56 flex-shrink-0 bg-white/5 border border-white/10 rounded-lg overflow-hidden flex flex-col",
|
|
54906
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
54907
|
+
className: "px-3 py-2 text-xs font-semibold opacity-50 uppercase tracking-wider border-b border-white/10",
|
|
54908
|
+
children: "Event Handlers"
|
|
54909
|
+
}), /*#__PURE__*/jsx("div", {
|
|
54910
|
+
className: "overflow-y-auto flex-1",
|
|
54911
|
+
children: receiver.eventHandlers.length === 0 ? /*#__PURE__*/jsx("div", {
|
|
54912
|
+
className: "text-xs opacity-50 text-center py-6 px-3",
|
|
54913
|
+
children: "This widget declares no event handlers."
|
|
54914
|
+
}) : receiver.eventHandlers.map(function (h) {
|
|
54915
|
+
var isActive = h === selectedHandler;
|
|
54916
|
+
var count = countsByHandler.get(h) || 0;
|
|
54917
|
+
return /*#__PURE__*/jsxs("button", {
|
|
54918
|
+
type: "button",
|
|
54919
|
+
onClick: function onClick() {
|
|
54920
|
+
return onSelectHandler(h);
|
|
54921
|
+
},
|
|
54922
|
+
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"),
|
|
54923
|
+
children: [/*#__PURE__*/jsxs("span", {
|
|
54924
|
+
className: "flex items-center gap-2 min-w-0",
|
|
54925
|
+
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
54926
|
+
icon: "bolt",
|
|
54927
|
+
className: "h-3 w-3 opacity-60 flex-shrink-0"
|
|
54928
|
+
}), /*#__PURE__*/jsx("code", {
|
|
54929
|
+
className: "truncate",
|
|
54930
|
+
children: h
|
|
53926
54931
|
})]
|
|
54932
|
+
}), /*#__PURE__*/jsx("span", {
|
|
54933
|
+
className: "text-xs opacity-60 flex-shrink-0",
|
|
54934
|
+
children: count
|
|
53927
54935
|
})]
|
|
53928
|
-
},
|
|
54936
|
+
}, h);
|
|
54937
|
+
})
|
|
54938
|
+
})]
|
|
54939
|
+
});
|
|
54940
|
+
}
|
|
54941
|
+
|
|
54942
|
+
/**
|
|
54943
|
+
* Third column: for the selected (receiver, handler), show every
|
|
54944
|
+
* emitter widget as a section with a checkbox list of its events.
|
|
54945
|
+
* Checked = wired; toggling commits an add/remove. Mirrors the
|
|
54946
|
+
* right-column UX of PanelEditItemHandlers.
|
|
54947
|
+
*/
|
|
54948
|
+
function EventsColumn(_ref9) {
|
|
54949
|
+
var receiver = _ref9.receiver,
|
|
54950
|
+
handlerName = _ref9.handlerName,
|
|
54951
|
+
myWiring = _ref9.myWiring,
|
|
54952
|
+
emitters = _ref9.emitters,
|
|
54953
|
+
onAdd = _ref9.onAdd,
|
|
54954
|
+
onRemove = _ref9.onRemove;
|
|
54955
|
+
// Wired-for-this-handler: dedupe defensively (legacy workspaces
|
|
54956
|
+
// occasionally contain duplicate entries under the same handler).
|
|
54957
|
+
var wiredHere = useMemo(function () {
|
|
54958
|
+
var seen = new Set();
|
|
54959
|
+
var out = [];
|
|
54960
|
+
var _iterator7 = _createForOfIteratorHelper$4(myWiring),
|
|
54961
|
+
_step7;
|
|
54962
|
+
try {
|
|
54963
|
+
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
54964
|
+
var w = _step7.value;
|
|
54965
|
+
if (w.handlerName !== handlerName) continue;
|
|
54966
|
+
var key = "".concat(w.sourceComponent, "|").concat(w.sourceItemId, "|").concat(w.eventName);
|
|
54967
|
+
if (seen.has(key)) continue;
|
|
54968
|
+
seen.add(key);
|
|
54969
|
+
out.push(w);
|
|
54970
|
+
}
|
|
54971
|
+
} catch (err) {
|
|
54972
|
+
_iterator7.e(err);
|
|
54973
|
+
} finally {
|
|
54974
|
+
_iterator7.f();
|
|
54975
|
+
}
|
|
54976
|
+
return out;
|
|
54977
|
+
}, [myWiring, handlerName]);
|
|
54978
|
+
var wiredKeys = useMemo(function () {
|
|
54979
|
+
return new Set(wiredHere.map(function (w) {
|
|
54980
|
+
return "".concat(w.sourceComponent, "|").concat(w.sourceItemId, "|").concat(w.eventName);
|
|
54981
|
+
}));
|
|
54982
|
+
}, [wiredHere]);
|
|
54983
|
+
|
|
54984
|
+
// Separate orphans — these reference sources no longer in the
|
|
54985
|
+
// workspace, so they don't appear in the emitter sections below.
|
|
54986
|
+
wiredHere.filter(function (w) {
|
|
54987
|
+
return w.isOrphan;
|
|
54988
|
+
});
|
|
54989
|
+
if (!handlerName) {
|
|
54990
|
+
return /*#__PURE__*/jsx("div", {
|
|
54991
|
+
className: "flex-1 min-w-0 bg-white/5 border border-white/10 rounded-lg flex items-center justify-center text-sm opacity-60",
|
|
54992
|
+
children: "Select a handler to view available events."
|
|
54993
|
+
});
|
|
54994
|
+
}
|
|
54995
|
+
function toggle(source) {
|
|
54996
|
+
var key = "".concat(source.sourceComponent, "|").concat(source.sourceItemId, "|").concat(source.eventName);
|
|
54997
|
+
if (wiredKeys.has(key)) {
|
|
54998
|
+
var existing = wiredHere.find(function (w) {
|
|
54999
|
+
return "".concat(w.sourceComponent, "|").concat(w.sourceItemId, "|").concat(w.eventName) === key;
|
|
55000
|
+
});
|
|
55001
|
+
onRemove(existing);
|
|
55002
|
+
} else {
|
|
55003
|
+
onAdd({
|
|
55004
|
+
receiverItemId: receiver.itemId,
|
|
55005
|
+
receiverComponent: receiver.component,
|
|
55006
|
+
handlerName: handlerName,
|
|
55007
|
+
sourceComponent: source.sourceComponent,
|
|
55008
|
+
sourceItemId: source.sourceItemId,
|
|
55009
|
+
eventName: source.eventName
|
|
55010
|
+
});
|
|
55011
|
+
}
|
|
55012
|
+
}
|
|
55013
|
+
|
|
55014
|
+
// Hide the selected receiver from its own emitter list — a widget
|
|
55015
|
+
// listening to its own events is almost always a mistake.
|
|
55016
|
+
var emittersForList = emitters.filter(function (e) {
|
|
55017
|
+
return !(e.component === receiver.component && String(e.itemId) === String(receiver.itemId));
|
|
55018
|
+
});
|
|
55019
|
+
return /*#__PURE__*/jsxs("div", {
|
|
55020
|
+
className: "flex-1 min-w-0 bg-white/5 border border-white/10 rounded-lg overflow-hidden flex flex-col",
|
|
55021
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
55022
|
+
className: "flex-shrink-0 px-4 py-2 border-b border-white/10 text-xs opacity-60",
|
|
55023
|
+
children: ["Check an event to fire", " ", /*#__PURE__*/jsx("code", {
|
|
55024
|
+
className: "text-xs",
|
|
55025
|
+
children: handlerName
|
|
55026
|
+
}), " on", " ", /*#__PURE__*/jsx("span", {
|
|
55027
|
+
className: "font-medium",
|
|
55028
|
+
children: receiver.label
|
|
55029
|
+
}), "."]
|
|
55030
|
+
}), /*#__PURE__*/jsx("div", {
|
|
55031
|
+
className: "flex-1 overflow-y-auto p-4 space-y-5",
|
|
55032
|
+
children: emittersForList.length === 0 ? /*#__PURE__*/jsx("div", {
|
|
55033
|
+
className: "text-sm opacity-60",
|
|
55034
|
+
children: "No other widgets in this dashboard emit events."
|
|
55035
|
+
}) : emittersForList.map(function (e) {
|
|
55036
|
+
return /*#__PURE__*/jsxs("div", {
|
|
55037
|
+
className: "space-y-1",
|
|
55038
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
55039
|
+
className: "text-xs font-semibold opacity-50 uppercase tracking-wider",
|
|
55040
|
+
children: e.label
|
|
55041
|
+
}), e.events.map(function (eventName) {
|
|
55042
|
+
var key = "".concat(e.component, "|").concat(e.itemId, "|").concat(eventName);
|
|
55043
|
+
var selected = wiredKeys.has(key);
|
|
55044
|
+
return /*#__PURE__*/jsxs("label", {
|
|
55045
|
+
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"),
|
|
55046
|
+
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
55047
|
+
icon: selected ? "square-check" : "square",
|
|
55048
|
+
className: "h-4 w-4 flex-shrink-0",
|
|
55049
|
+
onClick: function onClick(ev) {
|
|
55050
|
+
ev.preventDefault();
|
|
55051
|
+
toggle({
|
|
55052
|
+
sourceComponent: e.component,
|
|
55053
|
+
sourceItemId: e.itemId,
|
|
55054
|
+
eventName: eventName
|
|
55055
|
+
});
|
|
55056
|
+
}
|
|
55057
|
+
}), /*#__PURE__*/jsx("span", {
|
|
55058
|
+
children: eventName
|
|
55059
|
+
})]
|
|
55060
|
+
}, key);
|
|
55061
|
+
})]
|
|
55062
|
+
}, e.key || "".concat(e.component, "|").concat(e.itemId));
|
|
53929
55063
|
})
|
|
53930
55064
|
})]
|
|
53931
55065
|
});
|
|
@@ -54192,7 +55326,7 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
54192
55326
|
_useState42 = _slicedToArray(_useState41, 2),
|
|
54193
55327
|
isConfigModalOpen = _useState42[0],
|
|
54194
55328
|
setIsConfigModalOpen = _useState42[1];
|
|
54195
|
-
|
|
55329
|
+
useRef(new Set());
|
|
54196
55330
|
var _useState43 = useState(new Set()),
|
|
54197
55331
|
_useState44 = _slicedToArray(_useState43, 2),
|
|
54198
55332
|
dismissedUnresolvedForWorkspace = _useState44[0],
|
|
@@ -54727,7 +55861,29 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
54727
55861
|
}
|
|
54728
55862
|
}
|
|
54729
55863
|
|
|
54730
|
-
// ───
|
|
55864
|
+
// ─── Bulk listener binding save ──────────────────────────────────
|
|
55865
|
+
// Takes { adds, removes } from the Dashboard Config modal's
|
|
55866
|
+
// Listeners tab and writes the updated workspace once. Applies the
|
|
55867
|
+
// delta via applyWiringChanges (uses item.listeners directly so the
|
|
55868
|
+
// existing PanelEditItemHandlers / runtime stays consistent).
|
|
55869
|
+
function handleBulkListenerBindings(changes) {
|
|
55870
|
+
if (!workspaceSelected || !dashApi || !(credentials !== null && credentials !== void 0 && credentials.appId)) return;
|
|
55871
|
+
if (!changes || (!changes.adds || changes.adds.length === 0) && (!changes.removes || changes.removes.length === 0)) {
|
|
55872
|
+
return;
|
|
55873
|
+
}
|
|
55874
|
+
var updatedWorkspace = applyWiringChanges(workspaceSelected, changes);
|
|
55875
|
+
updateTabWorkspace(updatedWorkspace);
|
|
55876
|
+
try {
|
|
55877
|
+
dashApi.saveWorkspace(credentials.appId, updatedWorkspace, function (e, result) {
|
|
55878
|
+
return (void 0);
|
|
55879
|
+
}, function (e, error) {
|
|
55880
|
+
return (void 0);
|
|
55881
|
+
});
|
|
55882
|
+
} catch (e) {
|
|
55883
|
+
}
|
|
55884
|
+
}
|
|
55885
|
+
|
|
55886
|
+
// ─── Unresolved providers + listener orphans (modal + auto-open) ─
|
|
54731
55887
|
var unresolvedProviders = useMemo(function () {
|
|
54732
55888
|
return getUnresolvedProviders({
|
|
54733
55889
|
workspace: workspaceSelected,
|
|
@@ -54738,19 +55894,16 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
54738
55894
|
}
|
|
54739
55895
|
});
|
|
54740
55896
|
}, [workspaceSelected, appContext === null || appContext === void 0 ? void 0 : appContext.providers]);
|
|
54741
|
-
var
|
|
55897
|
+
var unresolvedProvidersCount = unresolvedProviders.length;
|
|
55898
|
+
// Listener orphans are pruned in WorkspaceModel / DashboardModel at
|
|
55899
|
+
// load time, so the badge only counts unresolved provider bindings.
|
|
55900
|
+
var unresolvedCount = unresolvedProvidersCount;
|
|
54742
55901
|
|
|
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]);
|
|
55902
|
+
// (No auto-open.) Earlier versions popped the modal on first load
|
|
55903
|
+
// when anything was unresolved — turned out to be jarring,
|
|
55904
|
+
// especially on dashboards that had a long-standing orphan list.
|
|
55905
|
+
// Awareness is delivered passively now: the gear icon's amber dot
|
|
55906
|
+
// and the banner. The user opens the modal when they're ready.
|
|
54754
55907
|
|
|
54755
55908
|
// ─── Sidebar State ────────────────────────────────────────────────
|
|
54756
55909
|
var sidebarEnabled = (workspaceSelected === null || workspaceSelected === void 0 ? void 0 : workspaceSelected.sidebarEnabled) || false;
|
|
@@ -55501,7 +56654,11 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
55501
56654
|
sidebarEnabled: sidebarEnabled,
|
|
55502
56655
|
onSidebarChange: popout ? null : handleSidebarToggle,
|
|
55503
56656
|
scrollableEnabled: workspacePages.length <= 1 ? getRootScrollable() : undefined,
|
|
55504
|
-
onScrollableChange: workspacePages.length <= 1 && !popout ? handleScrollableChange : null
|
|
56657
|
+
onScrollableChange: workspacePages.length <= 1 && !popout ? handleScrollableChange : null,
|
|
56658
|
+
onOpenConfig: popout || previewMode ? null : function () {
|
|
56659
|
+
return setIsConfigModalOpen(true);
|
|
56660
|
+
},
|
|
56661
|
+
configUnresolvedCount: unresolvedCount
|
|
55505
56662
|
}), /*#__PURE__*/jsxs(DashboardThemeProvider, {
|
|
55506
56663
|
themeKey: workspaceSelected === null || workspaceSelected === void 0 ? void 0 : workspaceSelected.themeKey,
|
|
55507
56664
|
children: [hasMissing && missingComponents.length >= 2 && !dismissedMissingForWorkspace.has(workspaceSelected === null || workspaceSelected === void 0 ? void 0 : workspaceSelected.id) && /*#__PURE__*/jsxs("div", {
|
|
@@ -55532,14 +56689,14 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
55532
56689
|
className: "h-3 w-3"
|
|
55533
56690
|
})
|
|
55534
56691
|
})]
|
|
55535
|
-
}), unresolvedCount > 0 && !dismissedUnresolvedForWorkspace.has(workspaceSelected === null || workspaceSelected === void 0 ? void 0 : workspaceSelected.id) && /*#__PURE__*/jsxs("div", {
|
|
56692
|
+
}), unresolvedCount > 0 && !previewMode && !dismissedUnresolvedForWorkspace.has(workspaceSelected === null || workspaceSelected === void 0 ? void 0 : workspaceSelected.id) && /*#__PURE__*/jsxs("div", {
|
|
55536
56693
|
className: "flex items-center gap-2 px-4 py-2 bg-amber-500/10 border-b border-amber-500/20 flex-shrink-0",
|
|
55537
56694
|
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
55538
56695
|
icon: "triangle-exclamation",
|
|
55539
56696
|
className: "h-3.5 w-3.5 text-amber-400 flex-shrink-0"
|
|
55540
|
-
}), /*#__PURE__*/
|
|
56697
|
+
}), /*#__PURE__*/jsx("span", {
|
|
55541
56698
|
className: "text-xs text-amber-300/90 flex-1",
|
|
55542
|
-
children: [
|
|
56699
|
+
children: [unresolvedProvidersCount > 0 && "".concat(unresolvedProvidersCount, " widget").concat(unresolvedProvidersCount === 1 ? "" : "s", " need").concat(unresolvedProvidersCount === 1 ? "s" : "", " a provider")].filter(Boolean).join(" · ")
|
|
55543
56700
|
}), /*#__PURE__*/jsx("button", {
|
|
55544
56701
|
type: "button",
|
|
55545
56702
|
onClick: function onClick() {
|
|
@@ -55728,7 +56885,12 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
55728
56885
|
var _ComponentManager$com2;
|
|
55729
56886
|
return name && ((_ComponentManager$com2 = ComponentManager.componentMap()[name]) === null || _ComponentManager$com2 === void 0 ? void 0 : _ComponentManager$com2.providers) || [];
|
|
55730
56887
|
},
|
|
55731
|
-
|
|
56888
|
+
getWidgetConfig: function getWidgetConfig(name) {
|
|
56889
|
+
return name && ComponentManager.componentMap()[name] || null;
|
|
56890
|
+
},
|
|
56891
|
+
onSaveBindings: handleBulkProviderBindings,
|
|
56892
|
+
onSaveListeners: handleBulkListenerBindings,
|
|
56893
|
+
initialTab: "providers"
|
|
55732
56894
|
})]
|
|
55733
56895
|
})]
|
|
55734
56896
|
}), !popout && /*#__PURE__*/jsx(DashCommandPalette, {
|
|
@@ -55941,7 +57103,11 @@ var DashboardHeader = function DashboardHeader(_ref) {
|
|
|
55941
57103
|
_ref$sidebarEnabled = _ref.sidebarEnabled,
|
|
55942
57104
|
sidebarEnabled = _ref$sidebarEnabled === void 0 ? false : _ref$sidebarEnabled,
|
|
55943
57105
|
_ref$onSidebarChange = _ref.onSidebarChange,
|
|
55944
|
-
onSidebarChange = _ref$onSidebarChange === void 0 ? null : _ref$onSidebarChange
|
|
57106
|
+
onSidebarChange = _ref$onSidebarChange === void 0 ? null : _ref$onSidebarChange,
|
|
57107
|
+
_ref$onOpenConfig = _ref.onOpenConfig,
|
|
57108
|
+
onOpenConfig = _ref$onOpenConfig === void 0 ? null : _ref$onOpenConfig,
|
|
57109
|
+
_ref$configUnresolved = _ref.configUnresolvedCount,
|
|
57110
|
+
configUnresolvedCount = _ref$configUnresolved === void 0 ? 0 : _ref$configUnresolved;
|
|
55945
57111
|
var _useState = useState(workspace),
|
|
55946
57112
|
_useState2 = _slicedToArray(_useState, 2),
|
|
55947
57113
|
workspaceSelected = _useState2[0],
|
|
@@ -56061,8 +57227,11 @@ var DashboardHeader = function DashboardHeader(_ref) {
|
|
|
56061
57227
|
setEnabled: onSidebarChange
|
|
56062
57228
|
})]
|
|
56063
57229
|
}), /*#__PURE__*/jsxs("div", {
|
|
56064
|
-
className: "flex flex-row space-x-1 shrink-0",
|
|
56065
|
-
children: [
|
|
57230
|
+
className: "flex flex-row space-x-1 shrink-0 items-center",
|
|
57231
|
+
children: [onOpenConfig !== null && /*#__PURE__*/jsx(DashboardConfigButton, {
|
|
57232
|
+
onClick: onOpenConfig,
|
|
57233
|
+
unresolvedCount: configUnresolvedCount
|
|
57234
|
+
}), onClickEdit !== null && /*#__PURE__*/jsx(ButtonIcon2, {
|
|
56066
57235
|
icon: "xmark",
|
|
56067
57236
|
text: "Cancel",
|
|
56068
57237
|
onClick: onClickEdit,
|
|
@@ -56079,6 +57248,29 @@ var DashboardHeader = function DashboardHeader(_ref) {
|
|
|
56079
57248
|
});
|
|
56080
57249
|
};
|
|
56081
57250
|
|
|
57251
|
+
/**
|
|
57252
|
+
* DashboardConfigButton — gear icon with an optional amber dot when the
|
|
57253
|
+
* current dashboard has unresolved provider bindings. Opens the
|
|
57254
|
+
* Dashboard Config modal. Kept local to DashboardHeader because no
|
|
57255
|
+
* other caller needs it.
|
|
57256
|
+
*/
|
|
57257
|
+
function DashboardConfigButton(_ref8) {
|
|
57258
|
+
var onClick = _ref8.onClick,
|
|
57259
|
+
_ref8$unresolvedCount = _ref8.unresolvedCount,
|
|
57260
|
+
unresolvedCount = _ref8$unresolvedCount === void 0 ? 0 : _ref8$unresolvedCount;
|
|
57261
|
+
return /*#__PURE__*/jsxs("div", {
|
|
57262
|
+
className: "relative inline-flex",
|
|
57263
|
+
children: [/*#__PURE__*/jsx(ButtonIcon, {
|
|
57264
|
+
icon: "sliders",
|
|
57265
|
+
onClick: onClick,
|
|
57266
|
+
hoverBackgroundColor: "hover:bg-indigo-700"
|
|
57267
|
+
}), unresolvedCount > 0 && /*#__PURE__*/jsx("span", {
|
|
57268
|
+
className: "absolute top-1 right-1 h-2 w-2 rounded-full bg-amber-400 border border-black/40 pointer-events-none",
|
|
57269
|
+
title: "".concat(unresolvedCount, " unresolved provider").concat(unresolvedCount === 1 ? "" : "s")
|
|
57270
|
+
})]
|
|
57271
|
+
});
|
|
57272
|
+
}
|
|
57273
|
+
|
|
56082
57274
|
function ownKeys$4(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; }
|
|
56083
57275
|
function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
56084
57276
|
var MAX_LOG_ENTRIES = 200;
|