@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.js
CHANGED
|
@@ -50,8 +50,8 @@ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
|
50
50
|
var jsxRuntime__namespace = /*#__PURE__*/_interopNamespaceDefault(jsxRuntime);
|
|
51
51
|
var ReactDOM__namespace = /*#__PURE__*/_interopNamespaceDefault(ReactDOM);
|
|
52
52
|
|
|
53
|
-
function ownKeys$
|
|
54
|
-
function _objectSpread$
|
|
53
|
+
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; }
|
|
54
|
+
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; }
|
|
55
55
|
var event = {
|
|
56
56
|
list: new Map(),
|
|
57
57
|
// Map(1) { '<widget-UUID>' => { 'CustomSearchbar[10].searchQueryChanged': [] } }
|
|
@@ -113,7 +113,7 @@ var event = {
|
|
|
113
113
|
uuid: subscriber["uuid"]
|
|
114
114
|
};
|
|
115
115
|
if ("action" in subscriber && subscriber.action !== undefined) {
|
|
116
|
-
subscriber["action"](_objectSpread$
|
|
116
|
+
subscriber["action"](_objectSpread$W({}, objectToSend));
|
|
117
117
|
}
|
|
118
118
|
});
|
|
119
119
|
}
|
|
@@ -2891,8 +2891,8 @@ var DashboardWrapper = function DashboardWrapper(_ref) {
|
|
|
2891
2891
|
});
|
|
2892
2892
|
};
|
|
2893
2893
|
|
|
2894
|
-
function ownKeys$
|
|
2895
|
-
function _objectSpread$
|
|
2894
|
+
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; }
|
|
2895
|
+
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; }
|
|
2896
2896
|
function ThemeBroadcast(_ref) {
|
|
2897
2897
|
var ctx = _ref.ctx;
|
|
2898
2898
|
React.useEffect(function () {
|
|
@@ -2925,7 +2925,7 @@ var DashboardThemeProvider = function DashboardThemeProvider(_ref2) {
|
|
|
2925
2925
|
var dashboardTheme = themes[themeKey];
|
|
2926
2926
|
var themeValue = dashboardTheme ? dashboardTheme[themeVariant] || null : null;
|
|
2927
2927
|
if (!themeValue) return null;
|
|
2928
|
-
return _objectSpread$
|
|
2928
|
+
return _objectSpread$V(_objectSpread$V({}, parentContext), {}, {
|
|
2929
2929
|
currentTheme: themeValue,
|
|
2930
2930
|
currentThemeKey: themeKey,
|
|
2931
2931
|
theme: themeValue,
|
|
@@ -2952,8 +2952,8 @@ var DashboardThemeProvider = function DashboardThemeProvider(_ref2) {
|
|
|
2952
2952
|
});
|
|
2953
2953
|
};
|
|
2954
2954
|
|
|
2955
|
-
function ownKeys$
|
|
2956
|
-
function _objectSpread$
|
|
2955
|
+
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; }
|
|
2956
|
+
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; }
|
|
2957
2957
|
var AppThemeScope = function AppThemeScope(_ref) {
|
|
2958
2958
|
var children = _ref.children;
|
|
2959
2959
|
var ctx = React.useContext(DashReact.ThemeContext);
|
|
@@ -2961,7 +2961,7 @@ var AppThemeScope = function AppThemeScope(_ref) {
|
|
|
2961
2961
|
children: children
|
|
2962
2962
|
});
|
|
2963
2963
|
return /*#__PURE__*/jsxRuntime.jsx(DashReact.ThemeContext.Provider, {
|
|
2964
|
-
value: _objectSpread$
|
|
2964
|
+
value: _objectSpread$U(_objectSpread$U({}, ctx), {}, {
|
|
2965
2965
|
currentTheme: ctx.appTheme,
|
|
2966
2966
|
currentThemeKey: ctx.appThemeKey,
|
|
2967
2967
|
theme: ctx.appTheme,
|
|
@@ -3073,11 +3073,11 @@ var LayoutContainer = function LayoutContainer(_ref) {
|
|
|
3073
3073
|
});
|
|
3074
3074
|
};
|
|
3075
3075
|
|
|
3076
|
-
function ownKeys$
|
|
3077
|
-
function _objectSpread$
|
|
3078
|
-
function _createForOfIteratorHelper$
|
|
3079
|
-
function _unsupportedIterableToArray$
|
|
3080
|
-
function _arrayLikeToArray$
|
|
3076
|
+
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; }
|
|
3077
|
+
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; }
|
|
3078
|
+
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; } } }; }
|
|
3079
|
+
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; } }
|
|
3080
|
+
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; }
|
|
3081
3081
|
/**
|
|
3082
3082
|
* Layout template definitions for the dashboard template picker.
|
|
3083
3083
|
*
|
|
@@ -3351,12 +3351,12 @@ function createLayoutFromTemplate(template) {
|
|
|
3351
3351
|
cols: template.cols,
|
|
3352
3352
|
gap: "gap-2"
|
|
3353
3353
|
};
|
|
3354
|
-
var _iterator = _createForOfIteratorHelper$
|
|
3354
|
+
var _iterator = _createForOfIteratorHelper$t(template.cells),
|
|
3355
3355
|
_step;
|
|
3356
3356
|
try {
|
|
3357
3357
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
3358
3358
|
var cell = _step.value;
|
|
3359
|
-
grid[cell.key] = _objectSpread$
|
|
3359
|
+
grid[cell.key] = _objectSpread$T({
|
|
3360
3360
|
component: null,
|
|
3361
3361
|
hide: cell.hide || false
|
|
3362
3362
|
}, cell.span ? {
|
|
@@ -4282,11 +4282,11 @@ var RegistryAuthModal = function RegistryAuthModal(_ref) {
|
|
|
4282
4282
|
});
|
|
4283
4283
|
};
|
|
4284
4284
|
|
|
4285
|
-
function _createForOfIteratorHelper$
|
|
4286
|
-
function _unsupportedIterableToArray$
|
|
4287
|
-
function _arrayLikeToArray$
|
|
4288
|
-
function ownKeys$
|
|
4289
|
-
function _objectSpread$
|
|
4285
|
+
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; } } }; }
|
|
4286
|
+
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; } }
|
|
4287
|
+
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; }
|
|
4288
|
+
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; }
|
|
4289
|
+
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; }
|
|
4290
4290
|
var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
|
|
4291
4291
|
var dashboardPackage = _ref.dashboardPackage,
|
|
4292
4292
|
appId = _ref.appId,
|
|
@@ -4402,7 +4402,7 @@ var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
|
|
|
4402
4402
|
setProgressWidgets(function (prev) {
|
|
4403
4403
|
var next = _toConsumableArray(prev);
|
|
4404
4404
|
if (data.index >= 0 && data.index < next.length) {
|
|
4405
|
-
next[data.index] = _objectSpread$
|
|
4405
|
+
next[data.index] = _objectSpread$S(_objectSpread$S({}, next[data.index]), {}, {
|
|
4406
4406
|
status: data.status,
|
|
4407
4407
|
error: data.error || null
|
|
4408
4408
|
});
|
|
@@ -4498,7 +4498,7 @@ var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
|
|
|
4498
4498
|
var raw = preview === null || preview === void 0 ? void 0 : preview.compatibility;
|
|
4499
4499
|
if (!raw) return raw;
|
|
4500
4500
|
var cMap = ComponentManager.componentMap();
|
|
4501
|
-
var augWidgets = _objectSpread$
|
|
4501
|
+
var augWidgets = _objectSpread$S({}, raw.widgets);
|
|
4502
4502
|
var fixedCount = 0;
|
|
4503
4503
|
var _loop = function _loop() {
|
|
4504
4504
|
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
@@ -4525,7 +4525,7 @@ var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
|
|
|
4525
4525
|
toInstall = 0,
|
|
4526
4526
|
unavailable = 0,
|
|
4527
4527
|
hasUnavailableRequired = false;
|
|
4528
|
-
var _iterator = _createForOfIteratorHelper$
|
|
4528
|
+
var _iterator = _createForOfIteratorHelper$s(widgetDeps),
|
|
4529
4529
|
_step;
|
|
4530
4530
|
try {
|
|
4531
4531
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -5081,8 +5081,8 @@ var DiscoverDashboardsDetail = function DiscoverDashboardsDetail(_ref) {
|
|
|
5081
5081
|
});
|
|
5082
5082
|
};
|
|
5083
5083
|
|
|
5084
|
-
function ownKeys$
|
|
5085
|
-
function _objectSpread$
|
|
5084
|
+
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; }
|
|
5085
|
+
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; }
|
|
5086
5086
|
var LayoutManagerModal = function LayoutManagerModal(_ref) {
|
|
5087
5087
|
var open = _ref.open,
|
|
5088
5088
|
setIsOpen = _ref.setIsOpen,
|
|
@@ -5327,7 +5327,7 @@ var LayoutManagerModal = function LayoutManagerModal(_ref) {
|
|
|
5327
5327
|
}
|
|
5328
5328
|
return _context2.abrupt("return");
|
|
5329
5329
|
case 6:
|
|
5330
|
-
updatedWorkspace = _objectSpread$
|
|
5330
|
+
updatedWorkspace = _objectSpread$R(_objectSpread$R({}, importedWorkspace), {}, {
|
|
5331
5331
|
name: dashboardName.trim(),
|
|
5332
5332
|
menuId: menuId,
|
|
5333
5333
|
themeKey: selectedThemeKey
|
|
@@ -6300,9 +6300,9 @@ function cleanIpcError(message) {
|
|
|
6300
6300
|
return match ? match[1] : message;
|
|
6301
6301
|
}
|
|
6302
6302
|
|
|
6303
|
-
function _createForOfIteratorHelper$
|
|
6304
|
-
function _unsupportedIterableToArray$
|
|
6305
|
-
function _arrayLikeToArray$
|
|
6303
|
+
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; } } }; }
|
|
6304
|
+
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; } }
|
|
6305
|
+
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; }
|
|
6306
6306
|
|
|
6307
6307
|
/**
|
|
6308
6308
|
* useRegistrySearch — shared hook for browsing and installing registry packages.
|
|
@@ -6416,13 +6416,13 @@ var useRegistrySearch = function useRegistrySearch() {
|
|
|
6416
6416
|
return c.toLowerCase();
|
|
6417
6417
|
}));
|
|
6418
6418
|
widgets = [];
|
|
6419
|
-
_iterator = _createForOfIteratorHelper$
|
|
6419
|
+
_iterator = _createForOfIteratorHelper$r(pkgs);
|
|
6420
6420
|
try {
|
|
6421
6421
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
6422
6422
|
pkg = _step.value;
|
|
6423
6423
|
// Compute missing APIs for the entire package
|
|
6424
6424
|
allApiProviders = [];
|
|
6425
|
-
_iterator2 = _createForOfIteratorHelper$
|
|
6425
|
+
_iterator2 = _createForOfIteratorHelper$r(pkg.providers || []);
|
|
6426
6426
|
try {
|
|
6427
6427
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
6428
6428
|
p = _step2.value;
|
|
@@ -6435,11 +6435,11 @@ var useRegistrySearch = function useRegistrySearch() {
|
|
|
6435
6435
|
} finally {
|
|
6436
6436
|
_iterator2.f();
|
|
6437
6437
|
}
|
|
6438
|
-
_iterator3 = _createForOfIteratorHelper$
|
|
6438
|
+
_iterator3 = _createForOfIteratorHelper$r(pkg.widgets || []);
|
|
6439
6439
|
try {
|
|
6440
6440
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
6441
6441
|
w = _step3.value;
|
|
6442
|
-
_iterator5 = _createForOfIteratorHelper$
|
|
6442
|
+
_iterator5 = _createForOfIteratorHelper$r(w.providers || []);
|
|
6443
6443
|
try {
|
|
6444
6444
|
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
6445
6445
|
_p = _step5.value;
|
|
@@ -6461,7 +6461,7 @@ var useRegistrySearch = function useRegistrySearch() {
|
|
|
6461
6461
|
missingApis = _toConsumableArray(new Set(allApiProviders)).filter(function (api) {
|
|
6462
6462
|
return !capSet.has(api.toLowerCase());
|
|
6463
6463
|
});
|
|
6464
|
-
_iterator4 = _createForOfIteratorHelper$
|
|
6464
|
+
_iterator4 = _createForOfIteratorHelper$r(pkg.widgets || []);
|
|
6465
6465
|
try {
|
|
6466
6466
|
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
6467
6467
|
widget = _step4.value;
|
|
@@ -7082,11 +7082,11 @@ function applyFilters(items, filters, mode) {
|
|
|
7082
7082
|
});
|
|
7083
7083
|
}
|
|
7084
7084
|
|
|
7085
|
-
function _createForOfIteratorHelper$
|
|
7086
|
-
function _unsupportedIterableToArray$
|
|
7087
|
-
function _arrayLikeToArray$
|
|
7088
|
-
function ownKeys$
|
|
7089
|
-
function _objectSpread$
|
|
7085
|
+
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; } } }; }
|
|
7086
|
+
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; } }
|
|
7087
|
+
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; }
|
|
7088
|
+
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; }
|
|
7089
|
+
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; }
|
|
7090
7090
|
var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
|
|
7091
7091
|
var _state$selectedDashbo, _state$selectedDashbo2;
|
|
7092
7092
|
var state = _ref.state,
|
|
@@ -7256,7 +7256,7 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
|
|
|
7256
7256
|
_context2.next = 7;
|
|
7257
7257
|
break;
|
|
7258
7258
|
}
|
|
7259
|
-
updatedWorkspace = _objectSpread$
|
|
7259
|
+
updatedWorkspace = _objectSpread$Q(_objectSpread$Q({}, installResult.workspace), {}, {
|
|
7260
7260
|
name: name.trim(),
|
|
7261
7261
|
menuId: menuId || 1,
|
|
7262
7262
|
themeKey: theme
|
|
@@ -7308,7 +7308,7 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
|
|
|
7308
7308
|
installedNames = new Set(installedList.map(function (w) {
|
|
7309
7309
|
return w.name;
|
|
7310
7310
|
}));
|
|
7311
|
-
_iterator = _createForOfIteratorHelper$
|
|
7311
|
+
_iterator = _createForOfIteratorHelper$q(state.selectedWidgets);
|
|
7312
7312
|
_context2.prev = 13;
|
|
7313
7313
|
_iterator.s();
|
|
7314
7314
|
case 14:
|
|
@@ -8011,8 +8011,8 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
|
|
|
8011
8011
|
});
|
|
8012
8012
|
};
|
|
8013
8013
|
|
|
8014
|
-
function ownKeys$
|
|
8015
|
-
function _objectSpread$
|
|
8014
|
+
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; }
|
|
8015
|
+
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; }
|
|
8016
8016
|
var TOTAL_STEPS = 2; // Steps 0-1: Discover, Customize
|
|
8017
8017
|
|
|
8018
8018
|
var initialState = {
|
|
@@ -8038,20 +8038,20 @@ var initialState = {
|
|
|
8038
8038
|
function wizardReducer(state, action) {
|
|
8039
8039
|
switch (action.type) {
|
|
8040
8040
|
case "SET_STEP":
|
|
8041
|
-
return _objectSpread$
|
|
8041
|
+
return _objectSpread$P(_objectSpread$P({}, state), {}, {
|
|
8042
8042
|
step: action.payload
|
|
8043
8043
|
});
|
|
8044
8044
|
case "SET_FILTERS":
|
|
8045
|
-
return _objectSpread$
|
|
8046
|
-
filters: _objectSpread$
|
|
8045
|
+
return _objectSpread$P(_objectSpread$P({}, state), {}, {
|
|
8046
|
+
filters: _objectSpread$P(_objectSpread$P({}, state.filters), action.payload)
|
|
8047
8047
|
});
|
|
8048
8048
|
case "TOGGLE_FILTER_CATEGORY":
|
|
8049
8049
|
{
|
|
8050
8050
|
var categories = state.filters.categories.includes(action.payload) ? state.filters.categories.filter(function (c) {
|
|
8051
8051
|
return c !== action.payload;
|
|
8052
8052
|
}) : [].concat(_toConsumableArray(state.filters.categories), [action.payload]);
|
|
8053
|
-
return _objectSpread$
|
|
8054
|
-
filters: _objectSpread$
|
|
8053
|
+
return _objectSpread$P(_objectSpread$P({}, state), {}, {
|
|
8054
|
+
filters: _objectSpread$P(_objectSpread$P({}, state.filters), {}, {
|
|
8055
8055
|
categories: categories
|
|
8056
8056
|
})
|
|
8057
8057
|
});
|
|
@@ -8061,15 +8061,15 @@ function wizardReducer(state, action) {
|
|
|
8061
8061
|
var providers = state.filters.providers.includes(action.payload) ? state.filters.providers.filter(function (p) {
|
|
8062
8062
|
return p !== action.payload;
|
|
8063
8063
|
}) : [].concat(_toConsumableArray(state.filters.providers), [action.payload]);
|
|
8064
|
-
return _objectSpread$
|
|
8065
|
-
filters: _objectSpread$
|
|
8064
|
+
return _objectSpread$P(_objectSpread$P({}, state), {}, {
|
|
8065
|
+
filters: _objectSpread$P(_objectSpread$P({}, state.filters), {}, {
|
|
8066
8066
|
providers: providers
|
|
8067
8067
|
})
|
|
8068
8068
|
});
|
|
8069
8069
|
}
|
|
8070
8070
|
case "SET_SEARCH_QUERY":
|
|
8071
|
-
return _objectSpread$
|
|
8072
|
-
filters: _objectSpread$
|
|
8071
|
+
return _objectSpread$P(_objectSpread$P({}, state), {}, {
|
|
8072
|
+
filters: _objectSpread$P(_objectSpread$P({}, state.filters), {}, {
|
|
8073
8073
|
query: action.payload
|
|
8074
8074
|
})
|
|
8075
8075
|
});
|
|
@@ -8079,7 +8079,7 @@ function wizardReducer(state, action) {
|
|
|
8079
8079
|
var widgetOrder = action.payload.map(function (w) {
|
|
8080
8080
|
return w.name || w.key;
|
|
8081
8081
|
});
|
|
8082
|
-
return _objectSpread$
|
|
8082
|
+
return _objectSpread$P(_objectSpread$P({}, state), {}, {
|
|
8083
8083
|
selectedWidgets: action.payload,
|
|
8084
8084
|
layout: {
|
|
8085
8085
|
templateKey: templateKey,
|
|
@@ -8099,7 +8099,7 @@ function wizardReducer(state, action) {
|
|
|
8099
8099
|
var toggleWidgetOrder = selectedWidgets.map(function (w) {
|
|
8100
8100
|
return w.name || w.key;
|
|
8101
8101
|
});
|
|
8102
|
-
return _objectSpread$
|
|
8102
|
+
return _objectSpread$P(_objectSpread$P({}, state), {}, {
|
|
8103
8103
|
selectedWidgets: selectedWidgets,
|
|
8104
8104
|
layout: {
|
|
8105
8105
|
templateKey: toggleTemplateKey,
|
|
@@ -8108,29 +8108,29 @@ function wizardReducer(state, action) {
|
|
|
8108
8108
|
});
|
|
8109
8109
|
}
|
|
8110
8110
|
case "SET_SELECTED_DASHBOARD":
|
|
8111
|
-
return _objectSpread$
|
|
8111
|
+
return _objectSpread$P(_objectSpread$P({}, state), {}, {
|
|
8112
8112
|
selectedDashboard: action.payload
|
|
8113
8113
|
});
|
|
8114
8114
|
case "SET_PATH":
|
|
8115
|
-
return _objectSpread$
|
|
8115
|
+
return _objectSpread$P(_objectSpread$P({}, state), {}, {
|
|
8116
8116
|
path: action.payload
|
|
8117
8117
|
});
|
|
8118
8118
|
case "SET_LAYOUT":
|
|
8119
|
-
return _objectSpread$
|
|
8119
|
+
return _objectSpread$P(_objectSpread$P({}, state), {}, {
|
|
8120
8120
|
layout: action.payload
|
|
8121
8121
|
});
|
|
8122
8122
|
case "REORDER_WIDGETS":
|
|
8123
|
-
return _objectSpread$
|
|
8124
|
-
layout: _objectSpread$
|
|
8123
|
+
return _objectSpread$P(_objectSpread$P({}, state), {}, {
|
|
8124
|
+
layout: _objectSpread$P(_objectSpread$P({}, state.layout), {}, {
|
|
8125
8125
|
widgetOrder: action.payload
|
|
8126
8126
|
})
|
|
8127
8127
|
});
|
|
8128
8128
|
case "SET_CUSTOMIZATION":
|
|
8129
|
-
return _objectSpread$
|
|
8130
|
-
customization: _objectSpread$
|
|
8129
|
+
return _objectSpread$P(_objectSpread$P({}, state), {}, {
|
|
8130
|
+
customization: _objectSpread$P(_objectSpread$P({}, state.customization), action.payload)
|
|
8131
8131
|
});
|
|
8132
8132
|
case "RESET":
|
|
8133
|
-
return _objectSpread$
|
|
8133
|
+
return _objectSpread$P({}, initialState);
|
|
8134
8134
|
default:
|
|
8135
8135
|
return state;
|
|
8136
8136
|
}
|
|
@@ -12782,8 +12782,8 @@ var deepEqual = function deepEqual(a, b, opts) {
|
|
|
12782
12782
|
|
|
12783
12783
|
var deepEqual$1 = /*@__PURE__*/getDefaultExportFromCjs(deepEqual);
|
|
12784
12784
|
|
|
12785
|
-
function ownKeys$
|
|
12786
|
-
function _objectSpread$
|
|
12785
|
+
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; }
|
|
12786
|
+
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; }
|
|
12787
12787
|
var PanelEditItem = function PanelEditItem(_ref) {
|
|
12788
12788
|
var _ComponentManager$get;
|
|
12789
12789
|
var workspace = _ref.workspace,
|
|
@@ -12843,7 +12843,7 @@ var PanelEditItem = function PanelEditItem(_ref) {
|
|
|
12843
12843
|
var uuid = newItem.uuid || newItem.uuidString;
|
|
12844
12844
|
if (uuid) {
|
|
12845
12845
|
workspaceTemp.selectedProviders = workspaceTemp.selectedProviders || {};
|
|
12846
|
-
workspaceTemp.selectedProviders[uuid] = _objectSpread$
|
|
12846
|
+
workspaceTemp.selectedProviders[uuid] = _objectSpread$O(_objectSpread$O({}, workspaceTemp.selectedProviders[uuid] || {}), {}, _defineProperty({}, providerType, providerId));
|
|
12847
12847
|
}
|
|
12848
12848
|
onUpdate(newItem, workspaceTemp);
|
|
12849
12849
|
forceUpdate();
|
|
@@ -12972,7 +12972,7 @@ var PanelEditItem = function PanelEditItem(_ref) {
|
|
|
12972
12972
|
var _ref5 = _slicedToArray(_ref4, 2),
|
|
12973
12973
|
name = _ref5[0],
|
|
12974
12974
|
p = _ref5[1];
|
|
12975
|
-
return _objectSpread$
|
|
12975
|
+
return _objectSpread$O({
|
|
12976
12976
|
name: name
|
|
12977
12977
|
}, p);
|
|
12978
12978
|
});
|
|
@@ -13014,11 +13014,11 @@ var PanelEditItem = function PanelEditItem(_ref) {
|
|
|
13014
13014
|
};
|
|
13015
13015
|
|
|
13016
13016
|
var _excluded$6 = ["rows", "cols"];
|
|
13017
|
-
function _createForOfIteratorHelper$
|
|
13018
|
-
function _unsupportedIterableToArray$
|
|
13019
|
-
function _arrayLikeToArray$
|
|
13020
|
-
function ownKeys$
|
|
13021
|
-
function _objectSpread$
|
|
13017
|
+
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; } } }; }
|
|
13018
|
+
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; } }
|
|
13019
|
+
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; }
|
|
13020
|
+
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; }
|
|
13021
|
+
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; }
|
|
13022
13022
|
var defaultGrid = {
|
|
13023
13023
|
rows: 1,
|
|
13024
13024
|
cols: 1,
|
|
@@ -13039,7 +13039,7 @@ function GridEditor(_ref) {
|
|
|
13039
13039
|
setGrid = _useState2[1];
|
|
13040
13040
|
var addRow = function addRow() {
|
|
13041
13041
|
var newRow = grid.rows;
|
|
13042
|
-
var newGrid = _objectSpread$
|
|
13042
|
+
var newGrid = _objectSpread$N(_objectSpread$N({}, grid), {}, {
|
|
13043
13043
|
rows: grid.rows + 1
|
|
13044
13044
|
});
|
|
13045
13045
|
for (var col = 0; col < grid.cols; col++) {
|
|
@@ -13054,7 +13054,7 @@ function GridEditor(_ref) {
|
|
|
13054
13054
|
};
|
|
13055
13055
|
var addColumn = function addColumn() {
|
|
13056
13056
|
var newCol = grid.cols;
|
|
13057
|
-
var newGrid = _objectSpread$
|
|
13057
|
+
var newGrid = _objectSpread$N(_objectSpread$N({}, grid), {}, {
|
|
13058
13058
|
cols: grid.cols + 1
|
|
13059
13059
|
});
|
|
13060
13060
|
for (var row = 0; row < grid.rows; row++) {
|
|
@@ -13087,8 +13087,8 @@ function GridEditor(_ref) {
|
|
|
13087
13087
|
});
|
|
13088
13088
|
}
|
|
13089
13089
|
if (grid[nextKey]) {
|
|
13090
|
-
var newGrid = _objectSpread$
|
|
13091
|
-
newGrid[currentKey] = _objectSpread$
|
|
13090
|
+
var newGrid = _objectSpread$N({}, grid);
|
|
13091
|
+
newGrid[currentKey] = _objectSpread$N(_objectSpread$N({}, newGrid[currentKey]), {}, {
|
|
13092
13092
|
colSpan: newGrid[currentKey].colSpan + 1
|
|
13093
13093
|
});
|
|
13094
13094
|
delete newGrid[nextKey];
|
|
@@ -13101,8 +13101,8 @@ function GridEditor(_ref) {
|
|
|
13101
13101
|
var currentKey = "".concat(row, ".").concat(col);
|
|
13102
13102
|
var belowKey = "".concat(row + 1, ".").concat(col);
|
|
13103
13103
|
if (grid[belowKey]) {
|
|
13104
|
-
var newGrid = _objectSpread$
|
|
13105
|
-
newGrid[currentKey] = _objectSpread$
|
|
13104
|
+
var newGrid = _objectSpread$N({}, grid);
|
|
13105
|
+
newGrid[currentKey] = _objectSpread$N(_objectSpread$N({}, newGrid[currentKey]), {}, {
|
|
13106
13106
|
rowSpan: newGrid[currentKey].rowSpan + 1
|
|
13107
13107
|
});
|
|
13108
13108
|
delete newGrid[belowKey];
|
|
@@ -13119,7 +13119,7 @@ function GridEditor(_ref) {
|
|
|
13119
13119
|
var splitCell = function splitCell(row, col) {
|
|
13120
13120
|
var key = "".concat(row, ".").concat(col);
|
|
13121
13121
|
var cell = grid[key];
|
|
13122
|
-
var newGrid = _objectSpread$
|
|
13122
|
+
var newGrid = _objectSpread$N({}, grid);
|
|
13123
13123
|
|
|
13124
13124
|
// we have to check the colspan, and since the colspan is greater than 1
|
|
13125
13125
|
// Only handle horizontal split if colSpan > 1
|
|
@@ -13135,13 +13135,13 @@ function GridEditor(_ref) {
|
|
|
13135
13135
|
var oldKey = "".concat(row, ".").concat(c);
|
|
13136
13136
|
var newKey = "".concat(row, ".").concat(c + 1);
|
|
13137
13137
|
if (newGrid[oldKey]) {
|
|
13138
|
-
newGrid[newKey] = _objectSpread$
|
|
13138
|
+
newGrid[newKey] = _objectSpread$N({}, newGrid[oldKey]);
|
|
13139
13139
|
delete newGrid[oldKey];
|
|
13140
13140
|
}
|
|
13141
13141
|
}
|
|
13142
13142
|
|
|
13143
13143
|
// Update the original cell's colSpan
|
|
13144
|
-
newGrid[key] = _objectSpread$
|
|
13144
|
+
newGrid[key] = _objectSpread$N(_objectSpread$N({}, cell), {}, {
|
|
13145
13145
|
colSpan: cell.colSpan - 1
|
|
13146
13146
|
});
|
|
13147
13147
|
|
|
@@ -13153,7 +13153,7 @@ function GridEditor(_ref) {
|
|
|
13153
13153
|
};
|
|
13154
13154
|
}
|
|
13155
13155
|
if (cell.rowSpan > 1) {
|
|
13156
|
-
newGrid[key] = _objectSpread$
|
|
13156
|
+
newGrid[key] = _objectSpread$N(_objectSpread$N({}, newGrid[key]), {}, {
|
|
13157
13157
|
rowSpan: cell.rowSpan - 1
|
|
13158
13158
|
});
|
|
13159
13159
|
newGrid["".concat(row + 1, ".").concat(col)] = {
|
|
@@ -13169,7 +13169,7 @@ function GridEditor(_ref) {
|
|
|
13169
13169
|
function sortObjectByKeys(obj) {
|
|
13170
13170
|
var sortedKeys = Object.keys(obj).sort();
|
|
13171
13171
|
var sortedObj = {};
|
|
13172
|
-
var _iterator = _createForOfIteratorHelper$
|
|
13172
|
+
var _iterator = _createForOfIteratorHelper$p(sortedKeys),
|
|
13173
13173
|
_step;
|
|
13174
13174
|
try {
|
|
13175
13175
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -13272,7 +13272,7 @@ function GridEditor(_ref) {
|
|
|
13272
13272
|
var fromKey = "".concat(from.row, ".").concat(from.col);
|
|
13273
13273
|
var toKey = "".concat(to.row, ".").concat(to.col);
|
|
13274
13274
|
if (fromKey === toKey) return;
|
|
13275
|
-
var newGrid = _objectSpread$
|
|
13275
|
+
var newGrid = _objectSpread$N({}, grid);
|
|
13276
13276
|
|
|
13277
13277
|
// Swap the cells
|
|
13278
13278
|
var temp = newGrid[fromKey];
|
|
@@ -13298,7 +13298,7 @@ function GridEditor(_ref) {
|
|
|
13298
13298
|
// console.log("Grid updated:", sequencedGrid);
|
|
13299
13299
|
}
|
|
13300
13300
|
function resetGridLayout() {
|
|
13301
|
-
var newGrid = _objectSpread$
|
|
13301
|
+
var newGrid = _objectSpread$N({}, defaultGrid);
|
|
13302
13302
|
setGrid(newGrid);
|
|
13303
13303
|
onUpdate(newGrid);
|
|
13304
13304
|
}
|
|
@@ -13576,8 +13576,8 @@ var PanelEditItemGrid = function PanelEditItemGrid(_ref) {
|
|
|
13576
13576
|
});
|
|
13577
13577
|
};
|
|
13578
13578
|
|
|
13579
|
-
function ownKeys$
|
|
13580
|
-
function _objectSpread$
|
|
13579
|
+
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; }
|
|
13580
|
+
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; }
|
|
13581
13581
|
var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
|
|
13582
13582
|
var item = _ref.item;
|
|
13583
13583
|
_ref.workspace;
|
|
@@ -13600,7 +13600,7 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
|
|
|
13600
13600
|
}, [widgetUuid, notificationDefs.length]);
|
|
13601
13601
|
function handleNotifToggle(typeKey, value) {
|
|
13602
13602
|
var _window$mainApi2;
|
|
13603
|
-
var updated = _objectSpread$
|
|
13603
|
+
var updated = _objectSpread$M(_objectSpread$M({}, notifPrefs), {}, _defineProperty({}, typeKey, value));
|
|
13604
13604
|
setNotifPrefs(updated);
|
|
13605
13605
|
if ((_window$mainApi2 = window.mainApi) !== null && _window$mainApi2 !== void 0 && (_window$mainApi2 = _window$mainApi2.notifications) !== null && _window$mainApi2 !== void 0 && _window$mainApi2.setPreferences && widgetUuid) {
|
|
13606
13606
|
window.mainApi.notifications.setPreferences(widgetUuid, _defineProperty({}, typeKey, value));
|
|
@@ -13642,11 +13642,11 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
|
|
|
13642
13642
|
});
|
|
13643
13643
|
};
|
|
13644
13644
|
|
|
13645
|
-
function _createForOfIteratorHelper$
|
|
13646
|
-
function _unsupportedIterableToArray$
|
|
13647
|
-
function _arrayLikeToArray$
|
|
13648
|
-
function ownKeys$
|
|
13649
|
-
function _objectSpread$
|
|
13645
|
+
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; } } }; }
|
|
13646
|
+
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; } }
|
|
13647
|
+
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; }
|
|
13648
|
+
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; }
|
|
13649
|
+
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; }
|
|
13650
13650
|
var DAYS = [{
|
|
13651
13651
|
key: "mon",
|
|
13652
13652
|
label: "Mon"
|
|
@@ -13747,7 +13747,7 @@ function TaskScheduleEditor(_ref) {
|
|
|
13747
13747
|
var _window$mainApi;
|
|
13748
13748
|
var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
13749
13749
|
if (!((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && (_window$mainApi = _window$mainApi.scheduler) !== null && _window$mainApi !== void 0 && _window$mainApi.registerTask)) return;
|
|
13750
|
-
var payload = _objectSpread$
|
|
13750
|
+
var payload = _objectSpread$L({
|
|
13751
13751
|
widgetId: widgetId,
|
|
13752
13752
|
widgetName: widgetName,
|
|
13753
13753
|
workspaceId: workspaceId || "",
|
|
@@ -13973,7 +13973,7 @@ var PanelEditItemSchedule = function PanelEditItemSchedule(_ref2) {
|
|
|
13973
13973
|
setIsLoading(true);
|
|
13974
13974
|
window.mainApi.scheduler.getTasks(widgetUuid).then(function (tasks) {
|
|
13975
13975
|
var stateMap = {};
|
|
13976
|
-
var _iterator = _createForOfIteratorHelper$
|
|
13976
|
+
var _iterator = _createForOfIteratorHelper$o(tasks || []),
|
|
13977
13977
|
_step;
|
|
13978
13978
|
try {
|
|
13979
13979
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -16032,8 +16032,8 @@ var WidgetIcon = function WidgetIcon(_ref) {
|
|
|
16032
16032
|
});
|
|
16033
16033
|
};
|
|
16034
16034
|
|
|
16035
|
-
function ownKeys$
|
|
16036
|
-
function _objectSpread$
|
|
16035
|
+
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; }
|
|
16036
|
+
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; }
|
|
16037
16037
|
var ProviderForm = function ProviderForm(_ref) {
|
|
16038
16038
|
var credentialSchema = _ref.credentialSchema,
|
|
16039
16039
|
_ref$initialValues = _ref.initialValues,
|
|
@@ -16078,14 +16078,14 @@ var ProviderForm = function ProviderForm(_ref) {
|
|
|
16078
16078
|
var oldKey = f.key;
|
|
16079
16079
|
if (oldKey && formData[oldKey] !== undefined) {
|
|
16080
16080
|
setFormData(function (fd) {
|
|
16081
|
-
var updated = _objectSpread$
|
|
16081
|
+
var updated = _objectSpread$K({}, fd);
|
|
16082
16082
|
var val = updated[oldKey];
|
|
16083
16083
|
delete updated[oldKey];
|
|
16084
16084
|
if (newKey.trim()) updated[newKey] = val;
|
|
16085
16085
|
return updated;
|
|
16086
16086
|
});
|
|
16087
16087
|
}
|
|
16088
|
-
return _objectSpread$
|
|
16088
|
+
return _objectSpread$K(_objectSpread$K({}, f), {}, {
|
|
16089
16089
|
key: newKey
|
|
16090
16090
|
});
|
|
16091
16091
|
});
|
|
@@ -16097,14 +16097,14 @@ var ProviderForm = function ProviderForm(_ref) {
|
|
|
16097
16097
|
});
|
|
16098
16098
|
if (field !== null && field !== void 0 && field.key) {
|
|
16099
16099
|
setFormData(function (prev) {
|
|
16100
|
-
return _objectSpread$
|
|
16100
|
+
return _objectSpread$K(_objectSpread$K({}, prev), {}, _defineProperty({}, field.key, value));
|
|
16101
16101
|
});
|
|
16102
16102
|
}
|
|
16103
16103
|
};
|
|
16104
16104
|
var handleDynamicSecretToggle = function handleDynamicSecretToggle(id) {
|
|
16105
16105
|
setDynamicFields(function (prev) {
|
|
16106
16106
|
return prev.map(function (f) {
|
|
16107
|
-
return f.id === id ? _objectSpread$
|
|
16107
|
+
return f.id === id ? _objectSpread$K(_objectSpread$K({}, f), {}, {
|
|
16108
16108
|
secret: !f.secret
|
|
16109
16109
|
}) : f;
|
|
16110
16110
|
});
|
|
@@ -16126,7 +16126,7 @@ var ProviderForm = function ProviderForm(_ref) {
|
|
|
16126
16126
|
});
|
|
16127
16127
|
if (field !== null && field !== void 0 && field.key) {
|
|
16128
16128
|
setFormData(function (prev) {
|
|
16129
|
-
var updated = _objectSpread$
|
|
16129
|
+
var updated = _objectSpread$K({}, prev);
|
|
16130
16130
|
delete updated[field.key];
|
|
16131
16131
|
return updated;
|
|
16132
16132
|
});
|
|
@@ -16168,13 +16168,13 @@ var ProviderForm = function ProviderForm(_ref) {
|
|
|
16168
16168
|
*/
|
|
16169
16169
|
var handleInputChange = function handleInputChange(fieldName, value) {
|
|
16170
16170
|
setFormData(function (prev) {
|
|
16171
|
-
return _objectSpread$
|
|
16171
|
+
return _objectSpread$K(_objectSpread$K({}, prev), {}, _defineProperty({}, fieldName, value));
|
|
16172
16172
|
});
|
|
16173
16173
|
|
|
16174
16174
|
// Clear error for this field if it was filled
|
|
16175
16175
|
if (errors[fieldName] && value !== null && value !== void 0 && value.trim()) {
|
|
16176
16176
|
setErrors(function (prev) {
|
|
16177
|
-
var newErrors = _objectSpread$
|
|
16177
|
+
var newErrors = _objectSpread$K({}, prev);
|
|
16178
16178
|
delete newErrors[fieldName];
|
|
16179
16179
|
return newErrors;
|
|
16180
16180
|
});
|
|
@@ -16212,7 +16212,7 @@ var ProviderForm = function ProviderForm(_ref) {
|
|
|
16212
16212
|
// Clear error if filled
|
|
16213
16213
|
if (errors.providerName && value !== null && value !== void 0 && value.trim()) {
|
|
16214
16214
|
setErrors(function (prev) {
|
|
16215
|
-
var newErrors = _objectSpread$
|
|
16215
|
+
var newErrors = _objectSpread$K({}, prev);
|
|
16216
16216
|
delete newErrors.providerName;
|
|
16217
16217
|
return newErrors;
|
|
16218
16218
|
});
|
|
@@ -16449,8 +16449,8 @@ var ToolSelector$1 = function ToolSelector(_ref) {
|
|
|
16449
16449
|
});
|
|
16450
16450
|
};
|
|
16451
16451
|
|
|
16452
|
-
function ownKeys$
|
|
16453
|
-
function _objectSpread$
|
|
16452
|
+
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; }
|
|
16453
|
+
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; }
|
|
16454
16454
|
/**
|
|
16455
16455
|
* Shared MCP utility functions.
|
|
16456
16456
|
*
|
|
@@ -16578,7 +16578,7 @@ function buildMcpConfigFromOverrides(baseMcpConfig, envMappingRows, headerRows)
|
|
|
16578
16578
|
headerTemplate[name] = value;
|
|
16579
16579
|
}
|
|
16580
16580
|
});
|
|
16581
|
-
var config = _objectSpread$
|
|
16581
|
+
var config = _objectSpread$J({}, baseMcpConfig);
|
|
16582
16582
|
if (Object.keys(headerTemplate).length > 0) {
|
|
16583
16583
|
config.headerTemplate = headerTemplate;
|
|
16584
16584
|
} else {
|
|
@@ -16596,7 +16596,7 @@ function buildMcpConfigFromOverrides(baseMcpConfig, envMappingRows, headerRows)
|
|
|
16596
16596
|
envMapping[env] = cred;
|
|
16597
16597
|
}
|
|
16598
16598
|
});
|
|
16599
|
-
return _objectSpread$
|
|
16599
|
+
return _objectSpread$J(_objectSpread$J({}, baseMcpConfig), {}, {
|
|
16600
16600
|
envMapping: envMapping
|
|
16601
16601
|
});
|
|
16602
16602
|
}
|
|
@@ -16837,11 +16837,11 @@ var getUserConfigurableProviders = function getUserConfigurableProviders(provide
|
|
|
16837
16837
|
});
|
|
16838
16838
|
};
|
|
16839
16839
|
|
|
16840
|
-
function _createForOfIteratorHelper$
|
|
16841
|
-
function _unsupportedIterableToArray$
|
|
16842
|
-
function _arrayLikeToArray$
|
|
16843
|
-
function ownKeys$
|
|
16844
|
-
function _objectSpread$
|
|
16840
|
+
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; } } }; }
|
|
16841
|
+
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; } }
|
|
16842
|
+
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; }
|
|
16843
|
+
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; }
|
|
16844
|
+
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; }
|
|
16845
16845
|
var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
16846
16846
|
var isOpen = _ref.isOpen,
|
|
16847
16847
|
onClose = _ref.onClose,
|
|
@@ -17036,7 +17036,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
17036
17036
|
.map(function (entry) {
|
|
17037
17037
|
var widget = allWidgets[entry.widgetKey];
|
|
17038
17038
|
if (!widget) return null; // Widget no longer exists
|
|
17039
|
-
return _objectSpread$
|
|
17039
|
+
return _objectSpread$I(_objectSpread$I({
|
|
17040
17040
|
key: entry.widgetKey
|
|
17041
17041
|
}, widget), {}, {
|
|
17042
17042
|
savedProviders: entry.providers || {},
|
|
@@ -17124,11 +17124,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
17124
17124
|
|
|
17125
17125
|
// Flatten all widgets from all packages for the widget list
|
|
17126
17126
|
flatWidgets = [];
|
|
17127
|
-
_iterator = _createForOfIteratorHelper$
|
|
17127
|
+
_iterator = _createForOfIteratorHelper$n(result.packages || []);
|
|
17128
17128
|
try {
|
|
17129
17129
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
17130
17130
|
pkg = _step.value;
|
|
17131
|
-
_iterator2 = _createForOfIteratorHelper$
|
|
17131
|
+
_iterator2 = _createForOfIteratorHelper$n(pkg.widgets || []);
|
|
17132
17132
|
try {
|
|
17133
17133
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
17134
17134
|
widget = _step2.value;
|
|
@@ -17187,7 +17187,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
17187
17187
|
// Get widgets from ComponentManager
|
|
17188
17188
|
var allWidgets = ComponentManager.map();
|
|
17189
17189
|
var widgetList = Object.keys(allWidgets).map(function (key) {
|
|
17190
|
-
return _objectSpread$
|
|
17190
|
+
return _objectSpread$I({
|
|
17191
17191
|
key: key
|
|
17192
17192
|
}, allWidgets[key]);
|
|
17193
17193
|
}).filter(function (widget) {
|
|
@@ -17418,7 +17418,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
17418
17418
|
setInlineCreateType(null);
|
|
17419
17419
|
setInlineCreateSchema({});
|
|
17420
17420
|
setInlineCreateError(null);
|
|
17421
|
-
setSelectedProviders(_objectSpread$
|
|
17421
|
+
setSelectedProviders(_objectSpread$I(_objectSpread$I({}, selectedProviders), {}, _defineProperty({}, providerType, providerName)));
|
|
17422
17422
|
}
|
|
17423
17423
|
};
|
|
17424
17424
|
var handleInlineProviderSubmit = function handleInlineProviderSubmit(formData) {
|
|
@@ -17439,7 +17439,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
17439
17439
|
|
|
17440
17440
|
// Auto-select the newly created provider
|
|
17441
17441
|
setSelectedProviders(function (prev) {
|
|
17442
|
-
return _objectSpread$
|
|
17442
|
+
return _objectSpread$I(_objectSpread$I({}, prev), {}, _defineProperty({}, providerType, providerName));
|
|
17443
17443
|
});
|
|
17444
17444
|
|
|
17445
17445
|
// Collapse the inline form
|
|
@@ -17493,11 +17493,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
17493
17493
|
};
|
|
17494
17494
|
var inlineHandleCredentialChange = function inlineHandleCredentialChange(fieldName, value) {
|
|
17495
17495
|
setInlineCredentialData(function (prev) {
|
|
17496
|
-
return _objectSpread$
|
|
17496
|
+
return _objectSpread$I(_objectSpread$I({}, prev), {}, _defineProperty({}, fieldName, value));
|
|
17497
17497
|
});
|
|
17498
17498
|
if (inlineFormErrors[fieldName] && value !== null && value !== void 0 && value.trim()) {
|
|
17499
17499
|
setInlineFormErrors(function (prev) {
|
|
17500
|
-
var next = _objectSpread$
|
|
17500
|
+
var next = _objectSpread$I({}, prev);
|
|
17501
17501
|
delete next[fieldName];
|
|
17502
17502
|
return next;
|
|
17503
17503
|
});
|
|
@@ -17590,7 +17590,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
17590
17590
|
refreshProviders();
|
|
17591
17591
|
}
|
|
17592
17592
|
setSelectedProviders(function (prev) {
|
|
17593
|
-
return _objectSpread$
|
|
17593
|
+
return _objectSpread$I(_objectSpread$I({}, prev), {}, _defineProperty({}, providerType, providerName));
|
|
17594
17594
|
});
|
|
17595
17595
|
|
|
17596
17596
|
// Reset stepper state
|
|
@@ -17611,7 +17611,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
17611
17611
|
});
|
|
17612
17612
|
};
|
|
17613
17613
|
var handleConfigChange = function handleConfigChange(key, value) {
|
|
17614
|
-
setUserConfigValues(_objectSpread$
|
|
17614
|
+
setUserConfigValues(_objectSpread$I(_objectSpread$I({}, userConfigValues), {}, _defineProperty({}, key, value)));
|
|
17615
17615
|
};
|
|
17616
17616
|
|
|
17617
17617
|
// Install a package from the registry
|
|
@@ -17677,7 +17677,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
17677
17677
|
// Mark items as installed
|
|
17678
17678
|
setProgressWidgets(function (prev) {
|
|
17679
17679
|
return prev.map(function (w) {
|
|
17680
|
-
return _objectSpread$
|
|
17680
|
+
return _objectSpread$I(_objectSpread$I({}, w), {}, {
|
|
17681
17681
|
status: "installed"
|
|
17682
17682
|
});
|
|
17683
17683
|
});
|
|
@@ -17696,7 +17696,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
17696
17696
|
setInstallError(msg);
|
|
17697
17697
|
setProgressWidgets(function (prev) {
|
|
17698
17698
|
return prev.map(function (w) {
|
|
17699
|
-
return _objectSpread$
|
|
17699
|
+
return _objectSpread$I(_objectSpread$I({}, w), {}, {
|
|
17700
17700
|
status: "failed",
|
|
17701
17701
|
error: msg
|
|
17702
17702
|
});
|
|
@@ -17770,7 +17770,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
17770
17770
|
|
|
17771
17771
|
// Phase 3: Save to recent widgets
|
|
17772
17772
|
saveToRecent(selectedWidget, selectedProviders, userConfigValues);
|
|
17773
|
-
onSelectWidget(_objectSpread$
|
|
17773
|
+
onSelectWidget(_objectSpread$I(_objectSpread$I({}, selectedWidget), {}, {
|
|
17774
17774
|
selectedProviders: selectedProviders,
|
|
17775
17775
|
// Pass to parent
|
|
17776
17776
|
userConfigValues: userConfigValues // Pass to parent
|
|
@@ -18407,7 +18407,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
18407
18407
|
setInlineProviderName(value);
|
|
18408
18408
|
if (inlineFormErrors.providerName && value !== null && value !== void 0 && value.trim()) {
|
|
18409
18409
|
setInlineFormErrors(function (prev) {
|
|
18410
|
-
var next = _objectSpread$
|
|
18410
|
+
var next = _objectSpread$I({}, prev);
|
|
18411
18411
|
delete next.providerName;
|
|
18412
18412
|
return next;
|
|
18413
18413
|
});
|
|
@@ -18766,9 +18766,9 @@ var ProviderBadge = function ProviderBadge(_ref) {
|
|
|
18766
18766
|
});
|
|
18767
18767
|
};
|
|
18768
18768
|
|
|
18769
|
-
function _createForOfIteratorHelper$
|
|
18770
|
-
function _unsupportedIterableToArray$
|
|
18771
|
-
function _arrayLikeToArray$
|
|
18769
|
+
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; } } }; }
|
|
18770
|
+
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; } }
|
|
18771
|
+
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; }
|
|
18772
18772
|
var WidgetCardHeader = function WidgetCardHeader(_ref) {
|
|
18773
18773
|
var item = _ref.item,
|
|
18774
18774
|
widget = _ref.widget,
|
|
@@ -18813,7 +18813,7 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
|
|
|
18813
18813
|
var el = headerRef.current;
|
|
18814
18814
|
if (!el) return;
|
|
18815
18815
|
var observer = new ResizeObserver(function (entries) {
|
|
18816
|
-
var _iterator = _createForOfIteratorHelper$
|
|
18816
|
+
var _iterator = _createForOfIteratorHelper$m(entries),
|
|
18817
18817
|
_step;
|
|
18818
18818
|
try {
|
|
18819
18819
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -19205,9 +19205,9 @@ var useWidgetSchedulerStatus = function useWidgetSchedulerStatus(widgetId) {
|
|
|
19205
19205
|
};
|
|
19206
19206
|
};
|
|
19207
19207
|
|
|
19208
|
-
function _createForOfIteratorHelper$
|
|
19209
|
-
function _unsupportedIterableToArray$
|
|
19210
|
-
function _arrayLikeToArray$
|
|
19208
|
+
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; } } }; }
|
|
19209
|
+
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; } }
|
|
19210
|
+
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; }
|
|
19211
19211
|
function formatCountdown(ms) {
|
|
19212
19212
|
if (ms == null || ms < 0) return "--";
|
|
19213
19213
|
if (ms < 1000) return "< 1s";
|
|
@@ -19324,7 +19324,7 @@ var WidgetCardStatusBar = function WidgetCardStatusBar(_ref) {
|
|
|
19324
19324
|
|
|
19325
19325
|
// Find soonest countdown among enabled tasks
|
|
19326
19326
|
var soonestMs = null;
|
|
19327
|
-
var _iterator = _createForOfIteratorHelper$
|
|
19327
|
+
var _iterator = _createForOfIteratorHelper$l(enabledTasks),
|
|
19328
19328
|
_step;
|
|
19329
19329
|
try {
|
|
19330
19330
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -19777,8 +19777,8 @@ var ProviderSelector = function ProviderSelector(_ref) {
|
|
|
19777
19777
|
});
|
|
19778
19778
|
};
|
|
19779
19779
|
|
|
19780
|
-
function ownKeys$
|
|
19781
|
-
function _objectSpread$
|
|
19780
|
+
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; }
|
|
19781
|
+
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; }
|
|
19782
19782
|
var AdvancedMcpConfig = function AdvancedMcpConfig(_ref) {
|
|
19783
19783
|
var transport = _ref.transport,
|
|
19784
19784
|
envMappingRows = _ref.envMappingRows,
|
|
@@ -19807,7 +19807,7 @@ var AdvancedMcpConfig = function AdvancedMcpConfig(_ref) {
|
|
|
19807
19807
|
var updateEnvRow = function updateEnvRow(id, field, value) {
|
|
19808
19808
|
onEnvMappingRowsChange(function (prev) {
|
|
19809
19809
|
return prev.map(function (row) {
|
|
19810
|
-
return row.id === id ? _objectSpread$
|
|
19810
|
+
return row.id === id ? _objectSpread$H(_objectSpread$H({}, row), {}, _defineProperty({}, field, value)) : row;
|
|
19811
19811
|
});
|
|
19812
19812
|
});
|
|
19813
19813
|
};
|
|
@@ -19832,7 +19832,7 @@ var AdvancedMcpConfig = function AdvancedMcpConfig(_ref) {
|
|
|
19832
19832
|
var updateHeaderRow = function updateHeaderRow(id, field, value) {
|
|
19833
19833
|
onHeaderRowsChange(function (prev) {
|
|
19834
19834
|
return prev.map(function (row) {
|
|
19835
|
-
return row.id === id ? _objectSpread$
|
|
19835
|
+
return row.id === id ? _objectSpread$H(_objectSpread$H({}, row), {}, _defineProperty({}, field, value)) : row;
|
|
19836
19836
|
});
|
|
19837
19837
|
});
|
|
19838
19838
|
};
|
|
@@ -19981,8 +19981,8 @@ var AdvancedMcpConfig = function AdvancedMcpConfig(_ref) {
|
|
|
19981
19981
|
});
|
|
19982
19982
|
};
|
|
19983
19983
|
|
|
19984
|
-
function ownKeys$
|
|
19985
|
-
function _objectSpread$
|
|
19984
|
+
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; }
|
|
19985
|
+
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; }
|
|
19986
19986
|
var McpServerPicker = function McpServerPicker(_ref) {
|
|
19987
19987
|
var _testResult$tools;
|
|
19988
19988
|
var isOpen = _ref.isOpen,
|
|
@@ -20161,11 +20161,11 @@ var McpServerPicker = function McpServerPicker(_ref) {
|
|
|
20161
20161
|
// Handle credential field changes
|
|
20162
20162
|
var handleCredentialChange = function handleCredentialChange(fieldName, value) {
|
|
20163
20163
|
setCredentialData(function (prev) {
|
|
20164
|
-
return _objectSpread$
|
|
20164
|
+
return _objectSpread$G(_objectSpread$G({}, prev), {}, _defineProperty({}, fieldName, value));
|
|
20165
20165
|
});
|
|
20166
20166
|
if (formErrors[fieldName] && value !== null && value !== void 0 && value.trim()) {
|
|
20167
20167
|
setFormErrors(function (prev) {
|
|
20168
|
-
var next = _objectSpread$
|
|
20168
|
+
var next = _objectSpread$G({}, prev);
|
|
20169
20169
|
delete next[fieldName];
|
|
20170
20170
|
return next;
|
|
20171
20171
|
});
|
|
@@ -20503,7 +20503,7 @@ var McpServerPicker = function McpServerPicker(_ref) {
|
|
|
20503
20503
|
setProviderName(value);
|
|
20504
20504
|
if (formErrors.providerName && value !== null && value !== void 0 && value.trim()) {
|
|
20505
20505
|
setFormErrors(function (prev) {
|
|
20506
|
-
var next = _objectSpread$
|
|
20506
|
+
var next = _objectSpread$G({}, prev);
|
|
20507
20507
|
delete next.providerName;
|
|
20508
20508
|
return next;
|
|
20509
20509
|
});
|
|
@@ -20693,8 +20693,8 @@ var McpServerPicker = function McpServerPicker(_ref) {
|
|
|
20693
20693
|
});
|
|
20694
20694
|
};
|
|
20695
20695
|
|
|
20696
|
-
function ownKeys$
|
|
20697
|
-
function _objectSpread$
|
|
20696
|
+
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; }
|
|
20697
|
+
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; }
|
|
20698
20698
|
var USE_ENHANCED_WIDGET_SELECTOR = true; // Set to false to use original modal
|
|
20699
20699
|
|
|
20700
20700
|
/**
|
|
@@ -20740,7 +20740,7 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
20740
20740
|
var _ref3 = _slicedToArray(_ref2, 2),
|
|
20741
20741
|
id = _ref3[0],
|
|
20742
20742
|
p = _ref3[1];
|
|
20743
|
-
return _objectSpread$
|
|
20743
|
+
return _objectSpread$F(_objectSpread$F({}, p), {}, {
|
|
20744
20744
|
id: id,
|
|
20745
20745
|
name: p.name || id
|
|
20746
20746
|
});
|
|
@@ -20827,7 +20827,7 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
20827
20827
|
// so we use its layout to replace any corrupted grid data.
|
|
20828
20828
|
if (workspace && workspace["layout"]) {
|
|
20829
20829
|
var model = new DashboardModel(workspace);
|
|
20830
|
-
setCurrentWorkspace(_objectSpread$
|
|
20830
|
+
setCurrentWorkspace(_objectSpread$F(_objectSpread$F({}, workspace), {}, {
|
|
20831
20831
|
layout: model.layout
|
|
20832
20832
|
}));
|
|
20833
20833
|
} else {
|
|
@@ -20876,7 +20876,7 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
20876
20876
|
}
|
|
20877
20877
|
try {
|
|
20878
20878
|
var hasChildren = config.type === "workspace";
|
|
20879
|
-
var newLayout = addItemToItemLayout(ws.layout, gridItem.id, _objectSpread$
|
|
20879
|
+
var newLayout = addItemToItemLayout(ws.layout, gridItem.id, _objectSpread$F(_objectSpread$F({}, config), {}, {
|
|
20880
20880
|
component: widgetComponentName
|
|
20881
20881
|
}), hasChildren);
|
|
20882
20882
|
var newWidgetId = newLayout[newLayout.length - 1].id;
|
|
@@ -21304,7 +21304,7 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
21304
21304
|
var uuid = widget.uuid || widget.uuidString;
|
|
21305
21305
|
if (uuid) {
|
|
21306
21306
|
newWorkspace.selectedProviders = newWorkspace.selectedProviders || {};
|
|
21307
|
-
newWorkspace.selectedProviders[uuid] = _objectSpread$
|
|
21307
|
+
newWorkspace.selectedProviders[uuid] = _objectSpread$F(_objectSpread$F({}, newWorkspace.selectedProviders[uuid] || {}), {}, _defineProperty({}, providerType, providerId));
|
|
21308
21308
|
}
|
|
21309
21309
|
setCurrentWorkspace(newWorkspace);
|
|
21310
21310
|
}
|
|
@@ -21440,7 +21440,7 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
21440
21440
|
var _gridContainer$grid;
|
|
21441
21441
|
var config = ComponentManager.config(widgetKey);
|
|
21442
21442
|
if (!config) return;
|
|
21443
|
-
var widgetItem = _objectSpread$
|
|
21443
|
+
var widgetItem = _objectSpread$F(_objectSpread$F({}, config), {}, {
|
|
21444
21444
|
component: widgetKey,
|
|
21445
21445
|
key: widgetKey
|
|
21446
21446
|
});
|
|
@@ -21694,7 +21694,7 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
|
|
|
21694
21694
|
onSelectWidget: function onSelectWidget(widget) {
|
|
21695
21695
|
|
|
21696
21696
|
// Add component property from widget.key
|
|
21697
|
-
var widgetWithComponent = _objectSpread$
|
|
21697
|
+
var widgetWithComponent = _objectSpread$F(_objectSpread$F({}, widget), {}, {
|
|
21698
21698
|
component: widget.key
|
|
21699
21699
|
});
|
|
21700
21700
|
handleClickConfirmAdd(widgetWithComponent, dropdownTarget);
|
|
@@ -23323,8 +23323,8 @@ var MissingProviderPrompt = function MissingProviderPrompt(_ref) {
|
|
|
23323
23323
|
});
|
|
23324
23324
|
};
|
|
23325
23325
|
|
|
23326
|
-
function ownKeys$
|
|
23327
|
-
function _objectSpread$
|
|
23326
|
+
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; }
|
|
23327
|
+
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; }
|
|
23328
23328
|
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)); }
|
|
23329
23329
|
function _isNativeReflectConstruct$4() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$4 = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
23330
23330
|
var ProviderErrorBoundary = /*#__PURE__*/function (_Component) {
|
|
@@ -23379,7 +23379,7 @@ var ProviderErrorBoundary = /*#__PURE__*/function (_Component) {
|
|
|
23379
23379
|
_defineProperty(_this, "handleProviderSelect", function (providerType, providerName, credentials) {
|
|
23380
23380
|
|
|
23381
23381
|
// Update local selected providers state
|
|
23382
|
-
var updatedSelected = _objectSpread$
|
|
23382
|
+
var updatedSelected = _objectSpread$E(_objectSpread$E({}, _this.state.selectedProviders), {}, _defineProperty({}, providerType, providerName));
|
|
23383
23383
|
_this.setState({
|
|
23384
23384
|
selectedProviders: updatedSelected
|
|
23385
23385
|
}, function () {
|
|
@@ -23453,8 +23453,8 @@ var ProviderErrorBoundary = /*#__PURE__*/function (_Component) {
|
|
|
23453
23453
|
}(React.Component);
|
|
23454
23454
|
_defineProperty(ProviderErrorBoundary, "contextType", ProviderContext);
|
|
23455
23455
|
|
|
23456
|
-
function ownKeys$
|
|
23457
|
-
function _objectSpread$
|
|
23456
|
+
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; }
|
|
23457
|
+
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; }
|
|
23458
23458
|
var withProviderDetection = function withProviderDetection(Component) {
|
|
23459
23459
|
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
23460
23460
|
_ref$requiredProvider = _ref.requiredProviders,
|
|
@@ -23479,7 +23479,7 @@ var withProviderDetection = function withProviderDetection(Component) {
|
|
|
23479
23479
|
onProviderSelect: onProviderSelect
|
|
23480
23480
|
});
|
|
23481
23481
|
}
|
|
23482
|
-
return /*#__PURE__*/jsxRuntime.jsx(Component, _objectSpread$
|
|
23482
|
+
return /*#__PURE__*/jsxRuntime.jsx(Component, _objectSpread$D({}, props));
|
|
23483
23483
|
};
|
|
23484
23484
|
};
|
|
23485
23485
|
|
|
@@ -24155,8 +24155,8 @@ var WidgetNotFound = function WidgetNotFound(_ref) {
|
|
|
24155
24155
|
});
|
|
24156
24156
|
};
|
|
24157
24157
|
|
|
24158
|
-
function ownKeys$
|
|
24159
|
-
function _objectSpread$
|
|
24158
|
+
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; }
|
|
24159
|
+
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; }
|
|
24160
24160
|
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)); }
|
|
24161
24161
|
function _isNativeReflectConstruct$2() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$2 = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
24162
24162
|
var WidgetErrorBoundary = /*#__PURE__*/function (_Component) {
|
|
@@ -24287,7 +24287,7 @@ var WidgetRenderer = function WidgetRenderer(_ref) {
|
|
|
24287
24287
|
|
|
24288
24288
|
// Build widgetData for WidgetContext — hooks read from this
|
|
24289
24289
|
var uuidString = DashReact.getUUID(params.uuid);
|
|
24290
|
-
var widgetData = _objectSpread$
|
|
24290
|
+
var widgetData = _objectSpread$C(_objectSpread$C({}, params), {}, {
|
|
24291
24291
|
uuidString: uuidString,
|
|
24292
24292
|
providers: (config === null || config === void 0 ? void 0 : config.providers) || [],
|
|
24293
24293
|
notifications: (config === null || config === void 0 ? void 0 : config.notifications) || []
|
|
@@ -24311,7 +24311,7 @@ var WidgetRenderer = function WidgetRenderer(_ref) {
|
|
|
24311
24311
|
widgetData: widgetData
|
|
24312
24312
|
};
|
|
24313
24313
|
var hasScheduledTasks = ((config === null || config === void 0 ? void 0 : config.scheduledTasks) || []).length > 0;
|
|
24314
|
-
var widgetElement = children === null ? /*#__PURE__*/jsxRuntime.jsx(WidgetComponent, _objectSpread$
|
|
24314
|
+
var widgetElement = children === null ? /*#__PURE__*/jsxRuntime.jsx(WidgetComponent, _objectSpread$C(_objectSpread$C(_objectSpread$C({
|
|
24315
24315
|
id: "widget-nokids-".concat(widgetKey),
|
|
24316
24316
|
listen: function listen(listeners, handlers) {
|
|
24317
24317
|
return helpers.listen(listeners, handlers);
|
|
@@ -24325,7 +24325,7 @@ var WidgetRenderer = function WidgetRenderer(_ref) {
|
|
|
24325
24325
|
backgroundColor: bgColor,
|
|
24326
24326
|
widgetConfig: helpers.config(),
|
|
24327
24327
|
widgetEventNames: helpers.events()
|
|
24328
|
-
}), "widget-nokids-".concat(widgetKey)) : /*#__PURE__*/jsxRuntime.jsx(WidgetComponent, _objectSpread$
|
|
24328
|
+
}), "widget-nokids-".concat(widgetKey)) : /*#__PURE__*/jsxRuntime.jsx(WidgetComponent, _objectSpread$C(_objectSpread$C(_objectSpread$C({
|
|
24329
24329
|
listen: function listen(listeners, handlers) {
|
|
24330
24330
|
return helpers.listen(listeners, handlers);
|
|
24331
24331
|
},
|
|
@@ -24525,11 +24525,11 @@ var ExternalWidget = function ExternalWidget(_ref) {
|
|
|
24525
24525
|
var GRID_CELL_WIDGET_TYPE = "grid-cell-widget";
|
|
24526
24526
|
var SIDEBAR_WIDGET_TYPE = "sidebar-widget";
|
|
24527
24527
|
|
|
24528
|
-
function _createForOfIteratorHelper$
|
|
24529
|
-
function _unsupportedIterableToArray$
|
|
24530
|
-
function _arrayLikeToArray$
|
|
24531
|
-
function ownKeys$
|
|
24532
|
-
function _objectSpread$
|
|
24528
|
+
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; } } }; }
|
|
24529
|
+
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; } }
|
|
24530
|
+
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; }
|
|
24531
|
+
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; }
|
|
24532
|
+
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; }
|
|
24533
24533
|
var DraggableDroppableCellBody = function DraggableDroppableCellBody(_ref) {
|
|
24534
24534
|
var cellNumber = _ref.cellNumber,
|
|
24535
24535
|
gridContainerId = _ref.gridContainerId,
|
|
@@ -24727,7 +24727,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
24727
24727
|
var _ref5 = _slicedToArray(_ref4, 2),
|
|
24728
24728
|
id = _ref5[0],
|
|
24729
24729
|
provider = _ref5[1];
|
|
24730
|
-
return _objectSpread$
|
|
24730
|
+
return _objectSpread$B({
|
|
24731
24731
|
id: id
|
|
24732
24732
|
}, provider);
|
|
24733
24733
|
}) : [];
|
|
@@ -25102,7 +25102,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
25102
25102
|
return selectable["delete"](cn);
|
|
25103
25103
|
});
|
|
25104
25104
|
var resolved = new Set();
|
|
25105
|
-
var _iterator = _createForOfIteratorHelper$
|
|
25105
|
+
var _iterator = _createForOfIteratorHelper$k(selectable),
|
|
25106
25106
|
_step;
|
|
25107
25107
|
try {
|
|
25108
25108
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -25771,7 +25771,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
25771
25771
|
var widgetSpecificSelections = (workspace === null || workspace === void 0 || (_workspace$selectedPr = workspace.selectedProviders) === null || _workspace$selectedPr === void 0 ? void 0 : _workspace$selectedPr[id]) || {};
|
|
25772
25772
|
|
|
25773
25773
|
// Add provider-related props from workspace
|
|
25774
|
-
var itemWithProviders = _objectSpread$
|
|
25774
|
+
var itemWithProviders = _objectSpread$B(_objectSpread$B({}, item), {}, {
|
|
25775
25775
|
selectedProviders: widgetSpecificSelections,
|
|
25776
25776
|
onProviderSelect: onProviderSelect
|
|
25777
25777
|
});
|
|
@@ -27276,11 +27276,11 @@ function isWidgetResolvable(componentKey) {
|
|
|
27276
27276
|
// isMinOrderForItem
|
|
27277
27277
|
// }
|
|
27278
27278
|
|
|
27279
|
-
function ownKeys$
|
|
27280
|
-
function _objectSpread$
|
|
27281
|
-
function _createForOfIteratorHelper$
|
|
27282
|
-
function _unsupportedIterableToArray$
|
|
27283
|
-
function _arrayLikeToArray$
|
|
27279
|
+
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; }
|
|
27280
|
+
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; }
|
|
27281
|
+
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; } } }; }
|
|
27282
|
+
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; } }
|
|
27283
|
+
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; }
|
|
27284
27284
|
/**
|
|
27285
27285
|
* The model for all layout components used primarily in the renderLayout method
|
|
27286
27286
|
* @param {Object} layoutItem an object containing various attributes of the layout item
|
|
@@ -27292,7 +27292,7 @@ function _arrayLikeToArray$i(r, a) { (null == a || a > r.length) && (a = r.lengt
|
|
|
27292
27292
|
function sortObjectByKeys(obj) {
|
|
27293
27293
|
var sortedKeys = Object.keys(obj).sort();
|
|
27294
27294
|
var sortedObj = {};
|
|
27295
|
-
var _iterator = _createForOfIteratorHelper$
|
|
27295
|
+
var _iterator = _createForOfIteratorHelper$j(sortedKeys),
|
|
27296
27296
|
_step;
|
|
27297
27297
|
try {
|
|
27298
27298
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -27433,7 +27433,7 @@ var LayoutModel = function LayoutModel(layoutItem, workspaceLayout, dashboardId)
|
|
|
27433
27433
|
|
|
27434
27434
|
// Merge user-entered config values (from EnhancedWidgetDropdown) into userPrefs
|
|
27435
27435
|
if ("userConfigValues" in obj && obj.userConfigValues) {
|
|
27436
|
-
layout.userPrefs = _objectSpread$
|
|
27436
|
+
layout.userPrefs = _objectSpread$A(_objectSpread$A({}, layout.userPrefs), obj.userConfigValues);
|
|
27437
27437
|
}
|
|
27438
27438
|
|
|
27439
27439
|
// Preserve provider selections for this widget
|
|
@@ -27564,6 +27564,822 @@ var SettingsModel = function SettingsModel() {
|
|
|
27564
27564
|
return obj;
|
|
27565
27565
|
};
|
|
27566
27566
|
|
|
27567
|
+
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; } } }; }
|
|
27568
|
+
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; } }
|
|
27569
|
+
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; }
|
|
27570
|
+
/**
|
|
27571
|
+
* providerResolution.js
|
|
27572
|
+
*
|
|
27573
|
+
* Shared helpers for walking a workspace and figuring out which widgets
|
|
27574
|
+
* have required providers that are still unresolved after the 3-layer
|
|
27575
|
+
* resolution (widget → workspace → app-default → null). Used by:
|
|
27576
|
+
*
|
|
27577
|
+
* - DashboardConfigModal to render the Providers tab
|
|
27578
|
+
* - DashboardStage toolbar to show the unresolved-count badge
|
|
27579
|
+
*
|
|
27580
|
+
* Both places need the same answer, so keep the logic here to avoid drift
|
|
27581
|
+
* with the resolution inside `useMcpProvider` / `useWebSocketProvider`.
|
|
27582
|
+
*/
|
|
27583
|
+
|
|
27584
|
+
/**
|
|
27585
|
+
* Resolve which provider name a given widget instance would bind to for
|
|
27586
|
+
* the given provider type. Mirrors the 3-layer chain in useMcpProvider
|
|
27587
|
+
* and useWebSocketProvider exactly:
|
|
27588
|
+
*
|
|
27589
|
+
* 1. widget-level override (layoutItem.selectedProviders[type])
|
|
27590
|
+
* 2. workspace-level binding (workspace.selectedProviders[id][type])
|
|
27591
|
+
* 3. app default (any provider of matching type flagged
|
|
27592
|
+
* `isDefaultForType` in appProviders)
|
|
27593
|
+
* 4. null (truly unresolved)
|
|
27594
|
+
*/
|
|
27595
|
+
function resolveProviderName(_ref) {
|
|
27596
|
+
var _layoutItem$selectedP, _workspace$selectedPr;
|
|
27597
|
+
var providerType = _ref.providerType,
|
|
27598
|
+
layoutItem = _ref.layoutItem,
|
|
27599
|
+
widgetId = _ref.widgetId,
|
|
27600
|
+
workspace = _ref.workspace,
|
|
27601
|
+
appProviders = _ref.appProviders;
|
|
27602
|
+
// 1. Widget-level
|
|
27603
|
+
var widgetLevel = layoutItem === null || layoutItem === void 0 || (_layoutItem$selectedP = layoutItem.selectedProviders) === null || _layoutItem$selectedP === void 0 ? void 0 : _layoutItem$selectedP[providerType];
|
|
27604
|
+
if (widgetLevel) return widgetLevel;
|
|
27605
|
+
|
|
27606
|
+
// 2. Workspace-level
|
|
27607
|
+
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]);
|
|
27608
|
+
if (workspaceLevel) return workspaceLevel;
|
|
27609
|
+
|
|
27610
|
+
// 3. App default — appProviders is either a map keyed by name or an
|
|
27611
|
+
// array. Support both because different callers shape it either way.
|
|
27612
|
+
if (appProviders) {
|
|
27613
|
+
if (Array.isArray(appProviders)) {
|
|
27614
|
+
var _iterator = _createForOfIteratorHelper$i(appProviders),
|
|
27615
|
+
_step;
|
|
27616
|
+
try {
|
|
27617
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
27618
|
+
var data = _step.value;
|
|
27619
|
+
if ((data === null || data === void 0 ? void 0 : data.type) === providerType && (data === null || data === void 0 ? void 0 : data.isDefaultForType) === true) {
|
|
27620
|
+
return data.name;
|
|
27621
|
+
}
|
|
27622
|
+
}
|
|
27623
|
+
} catch (err) {
|
|
27624
|
+
_iterator.e(err);
|
|
27625
|
+
} finally {
|
|
27626
|
+
_iterator.f();
|
|
27627
|
+
}
|
|
27628
|
+
} else if (_typeof(appProviders) === "object") {
|
|
27629
|
+
for (var _i = 0, _Object$entries = Object.entries(appProviders); _i < _Object$entries.length; _i++) {
|
|
27630
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
27631
|
+
name = _Object$entries$_i[0],
|
|
27632
|
+
_data = _Object$entries$_i[1];
|
|
27633
|
+
if ((_data === null || _data === void 0 ? void 0 : _data.type) === providerType && (_data === null || _data === void 0 ? void 0 : _data.isDefaultForType) === true) {
|
|
27634
|
+
return name;
|
|
27635
|
+
}
|
|
27636
|
+
}
|
|
27637
|
+
}
|
|
27638
|
+
}
|
|
27639
|
+
return null;
|
|
27640
|
+
}
|
|
27641
|
+
|
|
27642
|
+
/**
|
|
27643
|
+
* Walk every layout container in a workspace and yield each widget
|
|
27644
|
+
* instance with its concrete layout item. Handles the main layout,
|
|
27645
|
+
* per-page layouts, the sidebar, and nested LayoutGridContainers whose
|
|
27646
|
+
* children are stored on `items`/`layout`.
|
|
27647
|
+
*
|
|
27648
|
+
* Deduplicates by object identity AND by stable id so that shared
|
|
27649
|
+
* references across pages (or two structurally-distinct items that
|
|
27650
|
+
* carry the same uuidString / id, which is the wiring key) are
|
|
27651
|
+
* visited exactly once. Pipeline-style workspaces re-reference the
|
|
27652
|
+
* same widget objects across page layouts; without this dedupe the
|
|
27653
|
+
* Providers/Listeners tabs render one row per reference.
|
|
27654
|
+
*/
|
|
27655
|
+
function forEachWidget(workspace, visit) {
|
|
27656
|
+
if (!workspace) return;
|
|
27657
|
+
var visitedObjects = new WeakSet();
|
|
27658
|
+
var visitedIds = new Set();
|
|
27659
|
+
var stableId = function stableId(item) {
|
|
27660
|
+
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);
|
|
27661
|
+
};
|
|
27662
|
+
var _walk = function walk(items) {
|
|
27663
|
+
if (!Array.isArray(items)) return;
|
|
27664
|
+
var _iterator2 = _createForOfIteratorHelper$i(items),
|
|
27665
|
+
_step2;
|
|
27666
|
+
try {
|
|
27667
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
27668
|
+
var item = _step2.value;
|
|
27669
|
+
if (!item || _typeof(item) !== "object") continue;
|
|
27670
|
+
// A "widget" is any layout item with a component name.
|
|
27671
|
+
// Containers can have both a component name AND nested items
|
|
27672
|
+
// (e.g. LayoutGridContainer), so still recurse.
|
|
27673
|
+
if (item.component) {
|
|
27674
|
+
var id = stableId(item);
|
|
27675
|
+
var alreadyByRef = visitedObjects.has(item);
|
|
27676
|
+
var alreadyById = id != null && visitedIds.has(id);
|
|
27677
|
+
if (!alreadyByRef && !alreadyById) {
|
|
27678
|
+
visitedObjects.add(item);
|
|
27679
|
+
if (id != null) visitedIds.add(id);
|
|
27680
|
+
visit(item);
|
|
27681
|
+
}
|
|
27682
|
+
}
|
|
27683
|
+
if (Array.isArray(item.items)) _walk(item.items);
|
|
27684
|
+
if (Array.isArray(item.layout)) _walk(item.layout);
|
|
27685
|
+
}
|
|
27686
|
+
} catch (err) {
|
|
27687
|
+
_iterator2.e(err);
|
|
27688
|
+
} finally {
|
|
27689
|
+
_iterator2.f();
|
|
27690
|
+
}
|
|
27691
|
+
};
|
|
27692
|
+
_walk(workspace.layout);
|
|
27693
|
+
if (Array.isArray(workspace.pages)) {
|
|
27694
|
+
var _iterator3 = _createForOfIteratorHelper$i(workspace.pages),
|
|
27695
|
+
_step3;
|
|
27696
|
+
try {
|
|
27697
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
27698
|
+
var page = _step3.value;
|
|
27699
|
+
_walk(page === null || page === void 0 ? void 0 : page.layout);
|
|
27700
|
+
}
|
|
27701
|
+
} catch (err) {
|
|
27702
|
+
_iterator3.e(err);
|
|
27703
|
+
} finally {
|
|
27704
|
+
_iterator3.f();
|
|
27705
|
+
}
|
|
27706
|
+
}
|
|
27707
|
+
_walk(workspace.sidebarLayout);
|
|
27708
|
+
}
|
|
27709
|
+
|
|
27710
|
+
/**
|
|
27711
|
+
* Compute the list of unresolved required providers across a workspace.
|
|
27712
|
+
*
|
|
27713
|
+
* @param {object} args
|
|
27714
|
+
* @param {object} args.workspace The workspace (with layout/pages/sidebarLayout/selectedProviders).
|
|
27715
|
+
* @param {object|Array} args.appProviders
|
|
27716
|
+
* Map keyed by provider name, or an array of provider objects. Each
|
|
27717
|
+
* entry has at least `{ type, isDefaultForType }`.
|
|
27718
|
+
* @param {(componentName: string) => Array<{type, required?, providerClass?}>} args.getWidgetRequirements
|
|
27719
|
+
* Returns the `providers: [...]` declaration from the component's
|
|
27720
|
+
* `.dash.js` (via `ComponentManager.componentMap()[name].providers`).
|
|
27721
|
+
*
|
|
27722
|
+
* @returns {Array<{ widgetId, component, providerType, providerClass, layoutItem }>}
|
|
27723
|
+
* One entry per (widget instance, required provider type) that lacks
|
|
27724
|
+
* a binding.
|
|
27725
|
+
*/
|
|
27726
|
+
function getUnresolvedProviders(_ref2) {
|
|
27727
|
+
var workspace = _ref2.workspace,
|
|
27728
|
+
appProviders = _ref2.appProviders,
|
|
27729
|
+
getWidgetRequirements = _ref2.getWidgetRequirements;
|
|
27730
|
+
if (!workspace || typeof getWidgetRequirements !== "function") return [];
|
|
27731
|
+
var unresolved = [];
|
|
27732
|
+
forEachWidget(workspace, function (item) {
|
|
27733
|
+
var requirements = getWidgetRequirements(item.component) || [];
|
|
27734
|
+
if (!Array.isArray(requirements) || requirements.length === 0) return;
|
|
27735
|
+
var widgetId = item.uuidString || item.uuid || item.id || null;
|
|
27736
|
+
var _iterator4 = _createForOfIteratorHelper$i(requirements),
|
|
27737
|
+
_step4;
|
|
27738
|
+
try {
|
|
27739
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
27740
|
+
var req = _step4.value;
|
|
27741
|
+
if (!req || !req.type) continue;
|
|
27742
|
+
if (req.required === false) continue; // optional, skip
|
|
27743
|
+
|
|
27744
|
+
var name = resolveProviderName({
|
|
27745
|
+
providerType: req.type,
|
|
27746
|
+
layoutItem: item,
|
|
27747
|
+
widgetId: widgetId,
|
|
27748
|
+
workspace: workspace,
|
|
27749
|
+
appProviders: appProviders
|
|
27750
|
+
});
|
|
27751
|
+
if (!name) {
|
|
27752
|
+
unresolved.push({
|
|
27753
|
+
widgetId: widgetId,
|
|
27754
|
+
component: item.component,
|
|
27755
|
+
providerType: req.type,
|
|
27756
|
+
providerClass: req.providerClass || null,
|
|
27757
|
+
layoutItem: item
|
|
27758
|
+
});
|
|
27759
|
+
}
|
|
27760
|
+
}
|
|
27761
|
+
} catch (err) {
|
|
27762
|
+
_iterator4.e(err);
|
|
27763
|
+
} finally {
|
|
27764
|
+
_iterator4.f();
|
|
27765
|
+
}
|
|
27766
|
+
});
|
|
27767
|
+
return unresolved;
|
|
27768
|
+
}
|
|
27769
|
+
|
|
27770
|
+
/**
|
|
27771
|
+
* Group an unresolved-provider list (or any `{widget, providerType}` list)
|
|
27772
|
+
* by provider type, so the Providers tab can render one row per unique
|
|
27773
|
+
* type with N widgets beneath.
|
|
27774
|
+
*/
|
|
27775
|
+
function groupByProviderType(unresolved) {
|
|
27776
|
+
var byType = new Map();
|
|
27777
|
+
var _iterator5 = _createForOfIteratorHelper$i(unresolved || []),
|
|
27778
|
+
_step5;
|
|
27779
|
+
try {
|
|
27780
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
27781
|
+
var u = _step5.value;
|
|
27782
|
+
if (!(u !== null && u !== void 0 && u.providerType)) continue;
|
|
27783
|
+
if (!byType.has(u.providerType)) byType.set(u.providerType, []);
|
|
27784
|
+
byType.get(u.providerType).push(u);
|
|
27785
|
+
}
|
|
27786
|
+
} catch (err) {
|
|
27787
|
+
_iterator5.e(err);
|
|
27788
|
+
} finally {
|
|
27789
|
+
_iterator5.f();
|
|
27790
|
+
}
|
|
27791
|
+
return byType;
|
|
27792
|
+
}
|
|
27793
|
+
|
|
27794
|
+
/**
|
|
27795
|
+
* Summarize every widget in the workspace that requires ANY provider,
|
|
27796
|
+
* regardless of whether it's already resolved. Drives the Providers tab's
|
|
27797
|
+
* "show per-widget overrides" expansion — the modal lists all widgets so
|
|
27798
|
+
* the user can change an explicit override even for types that are
|
|
27799
|
+
* already resolved via the app default.
|
|
27800
|
+
*/
|
|
27801
|
+
function getAllProviderBindings(_ref3) {
|
|
27802
|
+
var workspace = _ref3.workspace,
|
|
27803
|
+
appProviders = _ref3.appProviders,
|
|
27804
|
+
getWidgetRequirements = _ref3.getWidgetRequirements;
|
|
27805
|
+
if (!workspace || typeof getWidgetRequirements !== "function") return [];
|
|
27806
|
+
var bindings = [];
|
|
27807
|
+
forEachWidget(workspace, function (item) {
|
|
27808
|
+
var requirements = getWidgetRequirements(item.component) || [];
|
|
27809
|
+
if (!Array.isArray(requirements) || requirements.length === 0) return;
|
|
27810
|
+
var widgetId = item.uuidString || item.uuid || item.id || null;
|
|
27811
|
+
var _iterator6 = _createForOfIteratorHelper$i(requirements),
|
|
27812
|
+
_step6;
|
|
27813
|
+
try {
|
|
27814
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
27815
|
+
var req = _step6.value;
|
|
27816
|
+
if (!req || !req.type) continue;
|
|
27817
|
+
var name = resolveProviderName({
|
|
27818
|
+
providerType: req.type,
|
|
27819
|
+
layoutItem: item,
|
|
27820
|
+
widgetId: widgetId,
|
|
27821
|
+
workspace: workspace,
|
|
27822
|
+
appProviders: appProviders
|
|
27823
|
+
});
|
|
27824
|
+
bindings.push({
|
|
27825
|
+
widgetId: widgetId,
|
|
27826
|
+
component: item.component,
|
|
27827
|
+
providerType: req.type,
|
|
27828
|
+
providerClass: req.providerClass || null,
|
|
27829
|
+
required: req.required !== false,
|
|
27830
|
+
resolvedProviderName: name,
|
|
27831
|
+
layoutItem: item
|
|
27832
|
+
});
|
|
27833
|
+
}
|
|
27834
|
+
} catch (err) {
|
|
27835
|
+
_iterator6.e(err);
|
|
27836
|
+
} finally {
|
|
27837
|
+
_iterator6.f();
|
|
27838
|
+
}
|
|
27839
|
+
});
|
|
27840
|
+
return bindings;
|
|
27841
|
+
}
|
|
27842
|
+
|
|
27843
|
+
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; }
|
|
27844
|
+
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; }
|
|
27845
|
+
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; } } }; }
|
|
27846
|
+
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; } }
|
|
27847
|
+
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; }
|
|
27848
|
+
var EVENT_STRING_RE = /^([^[]+)\[([^\]]+)\]\.(.+)$/;
|
|
27849
|
+
|
|
27850
|
+
/** Parse "Component[itemId].event" → { component, itemId, event }. */
|
|
27851
|
+
function parseEventString(eventString) {
|
|
27852
|
+
if (typeof eventString !== "string") return null;
|
|
27853
|
+
var m = eventString.match(EVENT_STRING_RE);
|
|
27854
|
+
if (!m) return null;
|
|
27855
|
+
return {
|
|
27856
|
+
component: m[1],
|
|
27857
|
+
itemId: m[2],
|
|
27858
|
+
event: m[3]
|
|
27859
|
+
};
|
|
27860
|
+
}
|
|
27861
|
+
|
|
27862
|
+
/** Build an event string in the canonical runtime format. */
|
|
27863
|
+
function formatEventString(component, itemId, event) {
|
|
27864
|
+
return "".concat(component, "[").concat(itemId, "].").concat(event);
|
|
27865
|
+
}
|
|
27866
|
+
|
|
27867
|
+
/**
|
|
27868
|
+
* Get a stable id for a layout item. Layout items historically used
|
|
27869
|
+
* numeric `id`; some newer flows also carry `uuidString`/`uuid`. The
|
|
27870
|
+
* runtime event-string format uses whichever is `item.id`, so we
|
|
27871
|
+
* default to that and fall back to the others for resilience.
|
|
27872
|
+
*/
|
|
27873
|
+
function itemIdOf(item) {
|
|
27874
|
+
if (item == null) return null;
|
|
27875
|
+
if (item.id !== undefined && item.id !== null) return String(item.id);
|
|
27876
|
+
if (item.uuidString) return item.uuidString;
|
|
27877
|
+
if (item.uuid) return item.uuid;
|
|
27878
|
+
return null;
|
|
27879
|
+
}
|
|
27880
|
+
|
|
27881
|
+
/**
|
|
27882
|
+
* Best-effort human label for a layout item: explicit title, then
|
|
27883
|
+
* widget config display name, then component name + short id.
|
|
27884
|
+
*/
|
|
27885
|
+
function labelFor(item, getWidgetConfig) {
|
|
27886
|
+
var _item$userPrefs, _item$userConfig;
|
|
27887
|
+
var cfg = (getWidgetConfig === null || getWidgetConfig === void 0 ? void 0 : getWidgetConfig(item.component)) || null;
|
|
27888
|
+
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);
|
|
27889
|
+
if (explicit) return explicit;
|
|
27890
|
+
if (cfg !== null && cfg !== void 0 && cfg.displayName) return cfg.displayName;
|
|
27891
|
+
var id = itemIdOf(item);
|
|
27892
|
+
return "".concat(item.component || "widget").concat(id ? "[".concat(String(id).slice(0, 6), "]") : "");
|
|
27893
|
+
}
|
|
27894
|
+
|
|
27895
|
+
/**
|
|
27896
|
+
* Read the events/eventHandlers metadata for a widget. Items can carry
|
|
27897
|
+
* the arrays inline (older pattern where they got cached onto the
|
|
27898
|
+
* layout item); the current component config carries them via the
|
|
27899
|
+
* ComponentManager catalog. We UNION both so we don't flag a binding
|
|
27900
|
+
* as orphaned just because an inline cache is stale — if the current
|
|
27901
|
+
* widget code declares the event/handler, the binding is valid.
|
|
27902
|
+
*/
|
|
27903
|
+
function eventsOf(item, getWidgetConfig) {
|
|
27904
|
+
var inline = Array.isArray(item.events) ? item.events : [];
|
|
27905
|
+
var cfg = (getWidgetConfig === null || getWidgetConfig === void 0 ? void 0 : getWidgetConfig(item.component)) || {};
|
|
27906
|
+
var fromCfg = Array.isArray(cfg.events) ? cfg.events : [];
|
|
27907
|
+
return _toConsumableArray(new Set([].concat(_toConsumableArray(inline), _toConsumableArray(fromCfg))));
|
|
27908
|
+
}
|
|
27909
|
+
function eventHandlersOf(item, getWidgetConfig) {
|
|
27910
|
+
var inline = Array.isArray(item.eventHandlers) ? item.eventHandlers : [];
|
|
27911
|
+
var cfg = (getWidgetConfig === null || getWidgetConfig === void 0 ? void 0 : getWidgetConfig(item.component)) || {};
|
|
27912
|
+
var fromCfg = Array.isArray(cfg.eventHandlers) ? cfg.eventHandlers : [];
|
|
27913
|
+
return _toConsumableArray(new Set([].concat(_toConsumableArray(inline), _toConsumableArray(fromCfg))));
|
|
27914
|
+
}
|
|
27915
|
+
|
|
27916
|
+
/**
|
|
27917
|
+
* Every widget instance in the workspace that emits at least one event.
|
|
27918
|
+
* Deduplicated by `${component}|${itemId}` — the same compound key that
|
|
27919
|
+
* event strings use at runtime, so any "duplicate" in the tree (same
|
|
27920
|
+
* widget referenced across pages) resolves to the same wiring target.
|
|
27921
|
+
* @returns {Array<{ itemId, component, label, events: string[], key: string }>}
|
|
27922
|
+
*/
|
|
27923
|
+
function getEmitters(workspace, getWidgetConfig) {
|
|
27924
|
+
var byKey = new Map();
|
|
27925
|
+
forEachWidget(workspace, function (item) {
|
|
27926
|
+
var events = eventsOf(item, getWidgetConfig);
|
|
27927
|
+
if (events.length === 0) return;
|
|
27928
|
+
var itemId = itemIdOf(item);
|
|
27929
|
+
if (itemId == null) return;
|
|
27930
|
+
var key = "".concat(item.component, "|").concat(itemId);
|
|
27931
|
+
if (byKey.has(key)) return;
|
|
27932
|
+
byKey.set(key, {
|
|
27933
|
+
key: key,
|
|
27934
|
+
itemId: itemId,
|
|
27935
|
+
component: item.component,
|
|
27936
|
+
label: labelFor(item, getWidgetConfig),
|
|
27937
|
+
events: events
|
|
27938
|
+
});
|
|
27939
|
+
});
|
|
27940
|
+
return Array.from(byKey.values());
|
|
27941
|
+
}
|
|
27942
|
+
|
|
27943
|
+
/**
|
|
27944
|
+
* Every widget instance in the workspace that accepts at least one
|
|
27945
|
+
* handler. Used to populate the receiver dropdown. Deduplicated by
|
|
27946
|
+
* `${component}|${itemId}` (see getEmitters).
|
|
27947
|
+
* @returns {Array<{ itemId, component, label, eventHandlers: string[], listeners: object, key: string }>}
|
|
27948
|
+
*/
|
|
27949
|
+
function getReceivers(workspace, getWidgetConfig) {
|
|
27950
|
+
var byKey = new Map();
|
|
27951
|
+
forEachWidget(workspace, function (item) {
|
|
27952
|
+
var handlers = eventHandlersOf(item, getWidgetConfig);
|
|
27953
|
+
if (handlers.length === 0) return;
|
|
27954
|
+
var itemId = itemIdOf(item);
|
|
27955
|
+
if (itemId == null) return;
|
|
27956
|
+
var key = "".concat(item.component, "|").concat(itemId);
|
|
27957
|
+
if (byKey.has(key)) return;
|
|
27958
|
+
byKey.set(key, {
|
|
27959
|
+
key: key,
|
|
27960
|
+
itemId: itemId,
|
|
27961
|
+
component: item.component,
|
|
27962
|
+
label: labelFor(item, getWidgetConfig),
|
|
27963
|
+
eventHandlers: handlers,
|
|
27964
|
+
listeners: item.listeners || {}
|
|
27965
|
+
});
|
|
27966
|
+
});
|
|
27967
|
+
return Array.from(byKey.values());
|
|
27968
|
+
}
|
|
27969
|
+
|
|
27970
|
+
/**
|
|
27971
|
+
* Flatten every listener binding in the workspace into a list of
|
|
27972
|
+
* { receiverItemId, receiverComponent, handlerName, sourceComponent,
|
|
27973
|
+
* sourceItemId, eventName, raw } tuples. `raw` is the original
|
|
27974
|
+
* event string for round-trip fidelity on remove.
|
|
27975
|
+
*/
|
|
27976
|
+
function getCurrentWiring(workspace) {
|
|
27977
|
+
var wiring = [];
|
|
27978
|
+
forEachWidget(workspace, function (item) {
|
|
27979
|
+
var receiverItemId = itemIdOf(item);
|
|
27980
|
+
if (receiverItemId == null) return;
|
|
27981
|
+
var listeners = item.listeners;
|
|
27982
|
+
if (!listeners || _typeof(listeners) !== "object") return;
|
|
27983
|
+
for (var _i = 0, _Object$entries = Object.entries(listeners); _i < _Object$entries.length; _i++) {
|
|
27984
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
27985
|
+
handlerName = _Object$entries$_i[0],
|
|
27986
|
+
eventList = _Object$entries$_i[1];
|
|
27987
|
+
// Live format is array; defensive guard for legacy object
|
|
27988
|
+
// form (a single source widget keyed under the handler).
|
|
27989
|
+
var events = Array.isArray(eventList) ? eventList : typeof eventList === "string" ? [eventList] : [];
|
|
27990
|
+
var _iterator = _createForOfIteratorHelper$h(events),
|
|
27991
|
+
_step;
|
|
27992
|
+
try {
|
|
27993
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
27994
|
+
var raw = _step.value;
|
|
27995
|
+
var parsed = parseEventString(raw);
|
|
27996
|
+
if (!parsed) continue;
|
|
27997
|
+
wiring.push({
|
|
27998
|
+
receiverItemId: receiverItemId,
|
|
27999
|
+
receiverComponent: item.component,
|
|
28000
|
+
handlerName: handlerName,
|
|
28001
|
+
sourceComponent: parsed.component,
|
|
28002
|
+
sourceItemId: parsed.itemId,
|
|
28003
|
+
eventName: parsed.event,
|
|
28004
|
+
raw: raw
|
|
28005
|
+
});
|
|
28006
|
+
}
|
|
28007
|
+
} catch (err) {
|
|
28008
|
+
_iterator.e(err);
|
|
28009
|
+
} finally {
|
|
28010
|
+
_iterator.f();
|
|
28011
|
+
}
|
|
28012
|
+
}
|
|
28013
|
+
});
|
|
28014
|
+
return wiring;
|
|
28015
|
+
}
|
|
28016
|
+
|
|
28017
|
+
/**
|
|
28018
|
+
* Detect listener bindings that are no longer valid: the source widget
|
|
28019
|
+
* doesn't exist in the workspace anymore, or the source widget doesn't
|
|
28020
|
+
* declare the event, or the receiver doesn't declare the handler.
|
|
28021
|
+
* Each entry includes a `reason` so the modal can show a sensible
|
|
28022
|
+
* message.
|
|
28023
|
+
*/
|
|
28024
|
+
function getOrphanedListeners(workspace, getWidgetConfig) {
|
|
28025
|
+
var wiring = getCurrentWiring(workspace);
|
|
28026
|
+
if (wiring.length === 0) return [];
|
|
28027
|
+
|
|
28028
|
+
// Build two lookups:
|
|
28029
|
+
// byCompositeKey: `${component}|${itemId}` → widget meta (primary)
|
|
28030
|
+
// byItemId: `${itemId}` → widget meta (fallback,
|
|
28031
|
+
// used only for the "source-missing" check where
|
|
28032
|
+
// the wiring's component can't be trusted yet)
|
|
28033
|
+
// The composite key matches how the runtime event-string
|
|
28034
|
+
// (`Component[itemId].event`) identifies a widget, so orphan
|
|
28035
|
+
// decisions line up with what actually fires at runtime.
|
|
28036
|
+
var byCompositeKey = new Map();
|
|
28037
|
+
var byItemId = new Map();
|
|
28038
|
+
forEachWidget(workspace, function (item) {
|
|
28039
|
+
var id = itemIdOf(item);
|
|
28040
|
+
if (id == null) return;
|
|
28041
|
+
var meta = {
|
|
28042
|
+
component: item.component,
|
|
28043
|
+
events: eventsOf(item, getWidgetConfig),
|
|
28044
|
+
eventHandlers: eventHandlersOf(item, getWidgetConfig)
|
|
28045
|
+
};
|
|
28046
|
+
byCompositeKey.set("".concat(item.component, "|").concat(id), meta);
|
|
28047
|
+
// First-seen wins on numeric-id collisions; good enough for the
|
|
28048
|
+
// "does any widget with this id exist?" fallback.
|
|
28049
|
+
if (!byItemId.has(id)) byItemId.set(id, meta);
|
|
28050
|
+
});
|
|
28051
|
+
var orphans = [];
|
|
28052
|
+
var _iterator2 = _createForOfIteratorHelper$h(wiring),
|
|
28053
|
+
_step2;
|
|
28054
|
+
try {
|
|
28055
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
28056
|
+
var w = _step2.value;
|
|
28057
|
+
var srcKey = "".concat(w.sourceComponent, "|").concat(w.sourceItemId);
|
|
28058
|
+
var src = byCompositeKey.get(srcKey);
|
|
28059
|
+
if (!src) {
|
|
28060
|
+
// No (component, id) match. If some OTHER widget still owns
|
|
28061
|
+
// this id, the source component changed; otherwise it's truly
|
|
28062
|
+
// missing. Preserves the user's ability to see whether a
|
|
28063
|
+
// rename happened vs. a delete.
|
|
28064
|
+
var fallback = byItemId.get(String(w.sourceItemId));
|
|
28065
|
+
orphans.push(_objectSpread$z(_objectSpread$z({}, w), {}, {
|
|
28066
|
+
reason: fallback ? "source-component-mismatch" : "source-missing"
|
|
28067
|
+
}));
|
|
28068
|
+
continue;
|
|
28069
|
+
}
|
|
28070
|
+
if (!src.events.includes(w.eventName)) {
|
|
28071
|
+
orphans.push(_objectSpread$z(_objectSpread$z({}, w), {}, {
|
|
28072
|
+
reason: "event-not-emitted"
|
|
28073
|
+
}));
|
|
28074
|
+
continue;
|
|
28075
|
+
}
|
|
28076
|
+
var receiverKey = "".concat(w.receiverComponent, "|").concat(w.receiverItemId);
|
|
28077
|
+
var receiver = byCompositeKey.get(receiverKey);
|
|
28078
|
+
if (receiver && !receiver.eventHandlers.includes(w.handlerName)) {
|
|
28079
|
+
orphans.push(_objectSpread$z(_objectSpread$z({}, w), {}, {
|
|
28080
|
+
reason: "handler-not-declared"
|
|
28081
|
+
}));
|
|
28082
|
+
}
|
|
28083
|
+
}
|
|
28084
|
+
} catch (err) {
|
|
28085
|
+
_iterator2.e(err);
|
|
28086
|
+
} finally {
|
|
28087
|
+
_iterator2.f();
|
|
28088
|
+
}
|
|
28089
|
+
return orphans;
|
|
28090
|
+
}
|
|
28091
|
+
|
|
28092
|
+
/**
|
|
28093
|
+
* Mutate a workspace tree in place, removing listener bindings whose
|
|
28094
|
+
* source widget is not present in the workspace. Pure: doesn't need
|
|
28095
|
+
* ComponentManager, so it's safe to call from WorkspaceModel during
|
|
28096
|
+
* load — the workspace's own tree is the only source of truth.
|
|
28097
|
+
*
|
|
28098
|
+
* Handles the four cases producing a "source-missing" orphan:
|
|
28099
|
+
* - the emitter widget was deleted
|
|
28100
|
+
* - the emitter widget's id now belongs to a different component
|
|
28101
|
+
* (stored binding has stale component name)
|
|
28102
|
+
* - the source string failed to parse (legacy/garbage data)
|
|
28103
|
+
*
|
|
28104
|
+
* Leaves "event-not-emitted" / "handler-not-declared" cases untouched
|
|
28105
|
+
* because they require the current widget catalog to decide — those
|
|
28106
|
+
* are handled at runtime with full ComponentManager access.
|
|
28107
|
+
*
|
|
28108
|
+
* @returns {number} count of bindings removed (for logging/diagnostics)
|
|
28109
|
+
*/
|
|
28110
|
+
function pruneDeadListenerReferences(workspace) {
|
|
28111
|
+
if (!workspace) return 0;
|
|
28112
|
+
|
|
28113
|
+
// Build the set of live widgets in the tree, keyed by the same
|
|
28114
|
+
// `${component}|${itemId}` the runtime uses to resolve events.
|
|
28115
|
+
var liveKeys = new Set();
|
|
28116
|
+
var _walkForLive = function walkForLive(items) {
|
|
28117
|
+
if (!Array.isArray(items)) return;
|
|
28118
|
+
var _iterator3 = _createForOfIteratorHelper$h(items),
|
|
28119
|
+
_step3;
|
|
28120
|
+
try {
|
|
28121
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
28122
|
+
var item = _step3.value;
|
|
28123
|
+
if (!item || _typeof(item) !== "object") continue;
|
|
28124
|
+
if (item.component) {
|
|
28125
|
+
var id = itemIdOf(item);
|
|
28126
|
+
if (id != null) liveKeys.add("".concat(item.component, "|").concat(id));
|
|
28127
|
+
}
|
|
28128
|
+
if (Array.isArray(item.items)) _walkForLive(item.items);
|
|
28129
|
+
if (Array.isArray(item.layout)) _walkForLive(item.layout);
|
|
28130
|
+
}
|
|
28131
|
+
} catch (err) {
|
|
28132
|
+
_iterator3.e(err);
|
|
28133
|
+
} finally {
|
|
28134
|
+
_iterator3.f();
|
|
28135
|
+
}
|
|
28136
|
+
};
|
|
28137
|
+
_walkForLive(workspace.layout);
|
|
28138
|
+
if (Array.isArray(workspace.pages)) {
|
|
28139
|
+
var _iterator4 = _createForOfIteratorHelper$h(workspace.pages),
|
|
28140
|
+
_step4;
|
|
28141
|
+
try {
|
|
28142
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
28143
|
+
var page = _step4.value;
|
|
28144
|
+
_walkForLive(page === null || page === void 0 ? void 0 : page.layout);
|
|
28145
|
+
}
|
|
28146
|
+
} catch (err) {
|
|
28147
|
+
_iterator4.e(err);
|
|
28148
|
+
} finally {
|
|
28149
|
+
_iterator4.f();
|
|
28150
|
+
}
|
|
28151
|
+
}
|
|
28152
|
+
_walkForLive(workspace.sidebarLayout);
|
|
28153
|
+
var removed = 0;
|
|
28154
|
+
var _pruneListeners = function pruneListeners(items) {
|
|
28155
|
+
if (!Array.isArray(items)) return;
|
|
28156
|
+
var _iterator5 = _createForOfIteratorHelper$h(items),
|
|
28157
|
+
_step5;
|
|
28158
|
+
try {
|
|
28159
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
28160
|
+
var item = _step5.value;
|
|
28161
|
+
if (!item || _typeof(item) !== "object") continue;
|
|
28162
|
+
if (item.listeners && _typeof(item.listeners) === "object") {
|
|
28163
|
+
for (var _i2 = 0, _Object$keys = Object.keys(item.listeners); _i2 < _Object$keys.length; _i2++) {
|
|
28164
|
+
var handler = _Object$keys[_i2];
|
|
28165
|
+
var events = item.listeners[handler];
|
|
28166
|
+
if (!Array.isArray(events)) continue;
|
|
28167
|
+
var kept = [];
|
|
28168
|
+
var _iterator6 = _createForOfIteratorHelper$h(events),
|
|
28169
|
+
_step6;
|
|
28170
|
+
try {
|
|
28171
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
28172
|
+
var raw = _step6.value;
|
|
28173
|
+
var parsed = parseEventString(raw);
|
|
28174
|
+
if (parsed && liveKeys.has("".concat(parsed.component, "|").concat(parsed.itemId))) {
|
|
28175
|
+
kept.push(raw);
|
|
28176
|
+
} else {
|
|
28177
|
+
removed += 1;
|
|
28178
|
+
}
|
|
28179
|
+
}
|
|
28180
|
+
} catch (err) {
|
|
28181
|
+
_iterator6.e(err);
|
|
28182
|
+
} finally {
|
|
28183
|
+
_iterator6.f();
|
|
28184
|
+
}
|
|
28185
|
+
if (kept.length === 0) {
|
|
28186
|
+
delete item.listeners[handler];
|
|
28187
|
+
} else if (kept.length !== events.length) {
|
|
28188
|
+
item.listeners[handler] = kept;
|
|
28189
|
+
}
|
|
28190
|
+
}
|
|
28191
|
+
}
|
|
28192
|
+
if (Array.isArray(item.items)) _pruneListeners(item.items);
|
|
28193
|
+
if (Array.isArray(item.layout)) _pruneListeners(item.layout);
|
|
28194
|
+
}
|
|
28195
|
+
} catch (err) {
|
|
28196
|
+
_iterator5.e(err);
|
|
28197
|
+
} finally {
|
|
28198
|
+
_iterator5.f();
|
|
28199
|
+
}
|
|
28200
|
+
};
|
|
28201
|
+
_pruneListeners(workspace.layout);
|
|
28202
|
+
if (Array.isArray(workspace.pages)) {
|
|
28203
|
+
var _iterator7 = _createForOfIteratorHelper$h(workspace.pages),
|
|
28204
|
+
_step7;
|
|
28205
|
+
try {
|
|
28206
|
+
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
28207
|
+
var _page = _step7.value;
|
|
28208
|
+
_pruneListeners(_page === null || _page === void 0 ? void 0 : _page.layout);
|
|
28209
|
+
}
|
|
28210
|
+
} catch (err) {
|
|
28211
|
+
_iterator7.e(err);
|
|
28212
|
+
} finally {
|
|
28213
|
+
_iterator7.f();
|
|
28214
|
+
}
|
|
28215
|
+
}
|
|
28216
|
+
_pruneListeners(workspace.sidebarLayout);
|
|
28217
|
+
return removed;
|
|
28218
|
+
}
|
|
28219
|
+
|
|
28220
|
+
/**
|
|
28221
|
+
* Apply a staged delta to a workspace's listener bindings and return a
|
|
28222
|
+
* NEW workspace object (deep-cloned along the modified path).
|
|
28223
|
+
*
|
|
28224
|
+
* `adds` / `removes` are arrays of
|
|
28225
|
+
* { receiverItemId, handlerName, sourceComponent, sourceItemId, eventName }
|
|
28226
|
+
*
|
|
28227
|
+
* Removes may also pass `raw` (the exact pre-existing event string) for
|
|
28228
|
+
* a precise match; otherwise we match on the canonical formatted form.
|
|
28229
|
+
*/
|
|
28230
|
+
function applyWiringChanges(workspace, _ref) {
|
|
28231
|
+
var _ref$adds = _ref.adds,
|
|
28232
|
+
adds = _ref$adds === void 0 ? [] : _ref$adds,
|
|
28233
|
+
_ref$removes = _ref.removes,
|
|
28234
|
+
removes = _ref$removes === void 0 ? [] : _ref$removes;
|
|
28235
|
+
if (!workspace) return workspace;
|
|
28236
|
+
if (adds.length === 0 && removes.length === 0) return workspace;
|
|
28237
|
+
|
|
28238
|
+
// Group changes by receiver for cheap per-item updates.
|
|
28239
|
+
var byReceiver = new Map();
|
|
28240
|
+
var ensure = function ensure(id) {
|
|
28241
|
+
if (!byReceiver.has(id)) byReceiver.set(id, {
|
|
28242
|
+
adds: [],
|
|
28243
|
+
removes: []
|
|
28244
|
+
});
|
|
28245
|
+
return byReceiver.get(id);
|
|
28246
|
+
};
|
|
28247
|
+
var _iterator8 = _createForOfIteratorHelper$h(adds),
|
|
28248
|
+
_step8;
|
|
28249
|
+
try {
|
|
28250
|
+
for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
|
|
28251
|
+
var a = _step8.value;
|
|
28252
|
+
if (!a.receiverItemId) continue;
|
|
28253
|
+
ensure(String(a.receiverItemId)).adds.push(a);
|
|
28254
|
+
}
|
|
28255
|
+
} catch (err) {
|
|
28256
|
+
_iterator8.e(err);
|
|
28257
|
+
} finally {
|
|
28258
|
+
_iterator8.f();
|
|
28259
|
+
}
|
|
28260
|
+
var _iterator9 = _createForOfIteratorHelper$h(removes),
|
|
28261
|
+
_step9;
|
|
28262
|
+
try {
|
|
28263
|
+
for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
|
|
28264
|
+
var r = _step9.value;
|
|
28265
|
+
if (!r.receiverItemId) continue;
|
|
28266
|
+
ensure(String(r.receiverItemId)).removes.push(r);
|
|
28267
|
+
}
|
|
28268
|
+
|
|
28269
|
+
// Walk the tree and rebuild listeners on every touched item. We do
|
|
28270
|
+
// shallow clones along the path so React change detection is
|
|
28271
|
+
// reliable — but the tree shape is preserved.
|
|
28272
|
+
} catch (err) {
|
|
28273
|
+
_iterator9.e(err);
|
|
28274
|
+
} finally {
|
|
28275
|
+
_iterator9.f();
|
|
28276
|
+
}
|
|
28277
|
+
var cloneList = function cloneList(items) {
|
|
28278
|
+
return Array.isArray(items) ? items.map(function (item) {
|
|
28279
|
+
return transform(item);
|
|
28280
|
+
}) : items;
|
|
28281
|
+
};
|
|
28282
|
+
var transform = function transform(item) {
|
|
28283
|
+
if (!item || _typeof(item) !== "object") return item;
|
|
28284
|
+
var next = item;
|
|
28285
|
+
var id = itemIdOf(item);
|
|
28286
|
+
var change = id != null ? byReceiver.get(String(id)) : null;
|
|
28287
|
+
if (change) {
|
|
28288
|
+
var newListeners = applyToItem(item.listeners || {}, change);
|
|
28289
|
+
next = _objectSpread$z(_objectSpread$z({}, next), {}, {
|
|
28290
|
+
listeners: newListeners
|
|
28291
|
+
});
|
|
28292
|
+
}
|
|
28293
|
+
if (Array.isArray(next.items)) {
|
|
28294
|
+
next = _objectSpread$z(_objectSpread$z({}, next), {}, {
|
|
28295
|
+
items: cloneList(next.items)
|
|
28296
|
+
});
|
|
28297
|
+
}
|
|
28298
|
+
if (Array.isArray(next.layout)) {
|
|
28299
|
+
next = _objectSpread$z(_objectSpread$z({}, next), {}, {
|
|
28300
|
+
layout: cloneList(next.layout)
|
|
28301
|
+
});
|
|
28302
|
+
}
|
|
28303
|
+
return next;
|
|
28304
|
+
};
|
|
28305
|
+
var updatedWs = _objectSpread$z({}, workspace);
|
|
28306
|
+
if (Array.isArray(workspace.layout)) {
|
|
28307
|
+
updatedWs.layout = cloneList(workspace.layout);
|
|
28308
|
+
}
|
|
28309
|
+
if (Array.isArray(workspace.pages)) {
|
|
28310
|
+
updatedWs.pages = workspace.pages.map(function (page) {
|
|
28311
|
+
return _objectSpread$z(_objectSpread$z({}, page), {}, {
|
|
28312
|
+
layout: cloneList(page.layout)
|
|
28313
|
+
});
|
|
28314
|
+
});
|
|
28315
|
+
}
|
|
28316
|
+
if (Array.isArray(workspace.sidebarLayout)) {
|
|
28317
|
+
updatedWs.sidebarLayout = cloneList(workspace.sidebarLayout);
|
|
28318
|
+
}
|
|
28319
|
+
return updatedWs;
|
|
28320
|
+
}
|
|
28321
|
+
function applyToItem(listeners, _ref2) {
|
|
28322
|
+
var adds = _ref2.adds,
|
|
28323
|
+
removes = _ref2.removes;
|
|
28324
|
+
// Deep enough clone for handler arrays.
|
|
28325
|
+
var next = {};
|
|
28326
|
+
for (var _i3 = 0, _Object$entries2 = Object.entries(listeners); _i3 < _Object$entries2.length; _i3++) {
|
|
28327
|
+
var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i3], 2),
|
|
28328
|
+
k = _Object$entries2$_i[0],
|
|
28329
|
+
v = _Object$entries2$_i[1];
|
|
28330
|
+
next[k] = Array.isArray(v) ? _toConsumableArray(v) : v;
|
|
28331
|
+
}
|
|
28332
|
+
|
|
28333
|
+
// Removes first so a re-add (rare) lands.
|
|
28334
|
+
var _iterator0 = _createForOfIteratorHelper$h(removes),
|
|
28335
|
+
_step0;
|
|
28336
|
+
try {
|
|
28337
|
+
var _loop = function _loop() {
|
|
28338
|
+
var r = _step0.value;
|
|
28339
|
+
var target = r.handlerName;
|
|
28340
|
+
if (!target) return 0; // continue
|
|
28341
|
+
var events = next[target];
|
|
28342
|
+
if (!Array.isArray(events)) return 0; // continue
|
|
28343
|
+
var eventStr = r.raw || formatEventString(r.sourceComponent, r.sourceItemId, r.eventName);
|
|
28344
|
+
var filtered = events.filter(function (e) {
|
|
28345
|
+
return e !== eventStr;
|
|
28346
|
+
});
|
|
28347
|
+
if (filtered.length === 0) {
|
|
28348
|
+
delete next[target];
|
|
28349
|
+
} else {
|
|
28350
|
+
next[target] = filtered;
|
|
28351
|
+
}
|
|
28352
|
+
},
|
|
28353
|
+
_ret;
|
|
28354
|
+
for (_iterator0.s(); !(_step0 = _iterator0.n()).done;) {
|
|
28355
|
+
_ret = _loop();
|
|
28356
|
+
if (_ret === 0) continue;
|
|
28357
|
+
}
|
|
28358
|
+
} catch (err) {
|
|
28359
|
+
_iterator0.e(err);
|
|
28360
|
+
} finally {
|
|
28361
|
+
_iterator0.f();
|
|
28362
|
+
}
|
|
28363
|
+
var _iterator1 = _createForOfIteratorHelper$h(adds),
|
|
28364
|
+
_step1;
|
|
28365
|
+
try {
|
|
28366
|
+
for (_iterator1.s(); !(_step1 = _iterator1.n()).done;) {
|
|
28367
|
+
var a = _step1.value;
|
|
28368
|
+
var target = a.handlerName;
|
|
28369
|
+
if (!target) continue;
|
|
28370
|
+
var eventStr = formatEventString(a.sourceComponent, a.sourceItemId, a.eventName);
|
|
28371
|
+
var existing = Array.isArray(next[target]) ? next[target] : [];
|
|
28372
|
+
if (existing.includes(eventStr)) continue;
|
|
28373
|
+
next[target] = [].concat(_toConsumableArray(existing), [eventStr]);
|
|
28374
|
+
}
|
|
28375
|
+
} catch (err) {
|
|
28376
|
+
_iterator1.e(err);
|
|
28377
|
+
} finally {
|
|
28378
|
+
_iterator1.f();
|
|
28379
|
+
}
|
|
28380
|
+
return next;
|
|
28381
|
+
}
|
|
28382
|
+
|
|
27567
28383
|
/**
|
|
27568
28384
|
* Default layout for a brand-new workspace: a single 1x1 grid container
|
|
27569
28385
|
* with one empty cell. Mirrors DashboardModel._initializeLayout().
|
|
@@ -27691,6 +28507,13 @@ var WorkspaceModel = function WorkspaceModel(workspaceItem) {
|
|
|
27691
28507
|
workspace.menuId = "menuId" in obj ? obj["menuId"] : 1;
|
|
27692
28508
|
workspace.selectedProviders = "selectedProviders" in obj ? obj["selectedProviders"] : {};
|
|
27693
28509
|
workspace.themeKey = "themeKey" in obj ? obj["themeKey"] : null;
|
|
28510
|
+
|
|
28511
|
+
// Strip any listener bindings whose source widget is no longer in
|
|
28512
|
+
// the tree. These "orphan" bindings are dead — they don't match any
|
|
28513
|
+
// live publisher and never fire — so they're safe to remove at load
|
|
28514
|
+
// time before the renderer wires up subscriptions. Keeps stored
|
|
28515
|
+
// workspaces self-consistent without the user having to do anything.
|
|
28516
|
+
pruneDeadListenerReferences(workspace);
|
|
27694
28517
|
return sanitizeWorkspaceObject(workspace);
|
|
27695
28518
|
// return workspace;
|
|
27696
28519
|
};
|
|
@@ -28027,9 +28850,9 @@ var MenuItemModel = function MenuItemModel() {
|
|
|
28027
28850
|
|
|
28028
28851
|
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; }
|
|
28029
28852
|
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; }
|
|
28030
|
-
function _createForOfIteratorHelper$
|
|
28031
|
-
function _unsupportedIterableToArray$
|
|
28032
|
-
function _arrayLikeToArray$
|
|
28853
|
+
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; } } }; }
|
|
28854
|
+
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; } }
|
|
28855
|
+
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; }
|
|
28033
28856
|
/**
|
|
28034
28857
|
* A Model for a Workspace (Dashboard)
|
|
28035
28858
|
* The Dashboard in this instance is the entire Layout inclusive of the workspaces and widgets
|
|
@@ -28090,12 +28913,18 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
28090
28913
|
}
|
|
28091
28914
|
obj = null;
|
|
28092
28915
|
|
|
28916
|
+
// Strip any listener bindings whose source widget is no longer in
|
|
28917
|
+
// the tree — dead bindings never fire and just clutter the stored
|
|
28918
|
+
// workspace. Safe at model-init time because it's purely tree-local
|
|
28919
|
+
// (doesn't need ComponentManager).
|
|
28920
|
+
pruneDeadListenerReferences(this);
|
|
28921
|
+
|
|
28093
28922
|
// Normalize all grids on load to repair any persisted corruption
|
|
28094
28923
|
this._normalizeAllGrids();
|
|
28095
28924
|
|
|
28096
28925
|
// Also normalize grids within pages
|
|
28097
28926
|
if (this.pages.length > 0) {
|
|
28098
|
-
var _iterator = _createForOfIteratorHelper$
|
|
28927
|
+
var _iterator = _createForOfIteratorHelper$g(this.pages),
|
|
28099
28928
|
_step;
|
|
28100
28929
|
try {
|
|
28101
28930
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -30071,7 +30900,7 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
30071
30900
|
try {
|
|
30072
30901
|
// Collect all item IDs actively referenced by grid cells
|
|
30073
30902
|
var activeItemIds = new Set();
|
|
30074
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
30903
|
+
var _iterator2 = _createForOfIteratorHelper$g(this.layout),
|
|
30075
30904
|
_step2;
|
|
30076
30905
|
try {
|
|
30077
30906
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -30111,7 +30940,7 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
30111
30940
|
});
|
|
30112
30941
|
|
|
30113
30942
|
// Clean listener references on remaining items for each removed orphan
|
|
30114
|
-
var _iterator3 = _createForOfIteratorHelper$
|
|
30943
|
+
var _iterator3 = _createForOfIteratorHelper$g(orphanedIds),
|
|
30115
30944
|
_step3;
|
|
30116
30945
|
try {
|
|
30117
30946
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
@@ -30770,9 +31599,9 @@ var useDashboard = function useDashboard() {
|
|
|
30770
31599
|
});
|
|
30771
31600
|
};
|
|
30772
31601
|
|
|
30773
|
-
function _createForOfIteratorHelper$
|
|
30774
|
-
function _unsupportedIterableToArray$
|
|
30775
|
-
function _arrayLikeToArray$
|
|
31602
|
+
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; } } }; }
|
|
31603
|
+
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; } }
|
|
31604
|
+
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; }
|
|
30776
31605
|
|
|
30777
31606
|
/**
|
|
30778
31607
|
* useWidgetProviders Hook
|
|
@@ -30823,7 +31652,7 @@ var useWidgetProviders = function useWidgetProviders() {
|
|
|
30823
31652
|
// 1. Widget-level: stored directly on the layout item by handleSelectProvider
|
|
30824
31653
|
// 2. Workspace-level: stored as workspace.selectedProviders[widgetId][providerType]
|
|
30825
31654
|
var providers = {};
|
|
30826
|
-
var _iterator = _createForOfIteratorHelper$
|
|
31655
|
+
var _iterator = _createForOfIteratorHelper$f(providerDeclarations),
|
|
30827
31656
|
_step;
|
|
30828
31657
|
try {
|
|
30829
31658
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -31578,9 +32407,9 @@ var useNotifications = function useNotifications() {
|
|
|
31578
32407
|
};
|
|
31579
32408
|
};
|
|
31580
32409
|
|
|
31581
|
-
function _createForOfIteratorHelper$
|
|
31582
|
-
function _unsupportedIterableToArray$
|
|
31583
|
-
function _arrayLikeToArray$
|
|
32410
|
+
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; } } }; }
|
|
32411
|
+
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; } }
|
|
32412
|
+
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; }
|
|
31584
32413
|
|
|
31585
32414
|
/**
|
|
31586
32415
|
* useScheduler Hook
|
|
@@ -31653,7 +32482,7 @@ var useScheduler = function useScheduler() {
|
|
|
31653
32482
|
if (pending && pending.length > 0) {
|
|
31654
32483
|
setPendingResults(pending);
|
|
31655
32484
|
// Call handlers for each pending result
|
|
31656
|
-
var _iterator = _createForOfIteratorHelper$
|
|
32485
|
+
var _iterator = _createForOfIteratorHelper$e(pending),
|
|
31657
32486
|
_step;
|
|
31658
32487
|
try {
|
|
31659
32488
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -34680,9 +35509,9 @@ function loadWidgetBundle(source, widgetName) {
|
|
|
34680
35509
|
};
|
|
34681
35510
|
}
|
|
34682
35511
|
|
|
34683
|
-
function _createForOfIteratorHelper$
|
|
34684
|
-
function _unsupportedIterableToArray$
|
|
34685
|
-
function _arrayLikeToArray$
|
|
35512
|
+
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; } } }; }
|
|
35513
|
+
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; } }
|
|
35514
|
+
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; }
|
|
34686
35515
|
/**
|
|
34687
35516
|
* Validation utilities for grid-first dashboard architecture
|
|
34688
35517
|
*
|
|
@@ -34921,7 +35750,7 @@ var validateCellMerge = function validateCellMerge(cellNumbers, grid) {
|
|
|
34921
35750
|
|
|
34922
35751
|
// Validate each cell
|
|
34923
35752
|
var cells = [];
|
|
34924
|
-
var _iterator = _createForOfIteratorHelper$
|
|
35753
|
+
var _iterator = _createForOfIteratorHelper$d(cellNumbers),
|
|
34925
35754
|
_step;
|
|
34926
35755
|
try {
|
|
34927
35756
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -35269,9 +36098,9 @@ var HARMONY_STRATEGIES = [{
|
|
|
35269
36098
|
label: "Custom"
|
|
35270
36099
|
}];
|
|
35271
36100
|
|
|
35272
|
-
function _createForOfIteratorHelper$
|
|
35273
|
-
function _unsupportedIterableToArray$
|
|
35274
|
-
function _arrayLikeToArray$
|
|
36101
|
+
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; } } }; }
|
|
36102
|
+
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; } }
|
|
36103
|
+
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; }
|
|
35275
36104
|
/**
|
|
35276
36105
|
* markdownFormParser.js
|
|
35277
36106
|
*
|
|
@@ -35318,7 +36147,7 @@ function detectColumnType(header, cellValues) {
|
|
|
35318
36147
|
}
|
|
35319
36148
|
|
|
35320
36149
|
// Check if any cell has an enum pattern (template placeholders)
|
|
35321
|
-
var _iterator = _createForOfIteratorHelper$
|
|
36150
|
+
var _iterator = _createForOfIteratorHelper$c(cellValues),
|
|
35322
36151
|
_step;
|
|
35323
36152
|
try {
|
|
35324
36153
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -35327,7 +36156,7 @@ function detectColumnType(header, cellValues) {
|
|
|
35327
36156
|
if (options) {
|
|
35328
36157
|
// Include all unique existing cell values as valid options
|
|
35329
36158
|
var allOptions = new Set(options);
|
|
35330
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
36159
|
+
var _iterator2 = _createForOfIteratorHelper$c(cellValues),
|
|
35331
36160
|
_step2;
|
|
35332
36161
|
try {
|
|
35333
36162
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -35537,7 +36366,7 @@ function parse(markdown) {
|
|
|
35537
36366
|
*/
|
|
35538
36367
|
function serialize(blocks) {
|
|
35539
36368
|
var parts = [];
|
|
35540
|
-
var _iterator3 = _createForOfIteratorHelper$
|
|
36369
|
+
var _iterator3 = _createForOfIteratorHelper$c(blocks),
|
|
35541
36370
|
_step3;
|
|
35542
36371
|
try {
|
|
35543
36372
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
@@ -35552,7 +36381,7 @@ function serialize(blocks) {
|
|
|
35552
36381
|
parts.push("| " + block.columns.map(function () {
|
|
35553
36382
|
return "------";
|
|
35554
36383
|
}).join(" | ") + " |");
|
|
35555
|
-
var _iterator4 = _createForOfIteratorHelper$
|
|
36384
|
+
var _iterator4 = _createForOfIteratorHelper$c(block.rows),
|
|
35556
36385
|
_step4;
|
|
35557
36386
|
try {
|
|
35558
36387
|
var _loop2 = function _loop2() {
|
|
@@ -35573,7 +36402,7 @@ function serialize(blocks) {
|
|
|
35573
36402
|
break;
|
|
35574
36403
|
}
|
|
35575
36404
|
case "list":
|
|
35576
|
-
var _iterator5 = _createForOfIteratorHelper$
|
|
36405
|
+
var _iterator5 = _createForOfIteratorHelper$c(block.items),
|
|
35577
36406
|
_step5;
|
|
35578
36407
|
try {
|
|
35579
36408
|
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
@@ -35587,7 +36416,7 @@ function serialize(blocks) {
|
|
|
35587
36416
|
}
|
|
35588
36417
|
break;
|
|
35589
36418
|
case "blockquote":
|
|
35590
|
-
var _iterator6 = _createForOfIteratorHelper$
|
|
36419
|
+
var _iterator6 = _createForOfIteratorHelper$c(block.text.split("\n")),
|
|
35591
36420
|
_step6;
|
|
35592
36421
|
try {
|
|
35593
36422
|
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
@@ -39090,9 +39919,9 @@ var ThemeManagerModal = function ThemeManagerModal(_ref) {
|
|
|
39090
39919
|
|
|
39091
39920
|
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; }
|
|
39092
39921
|
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; }
|
|
39093
|
-
function _createForOfIteratorHelper$
|
|
39094
|
-
function _unsupportedIterableToArray$
|
|
39095
|
-
function _arrayLikeToArray$
|
|
39922
|
+
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; } } }; }
|
|
39923
|
+
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; } }
|
|
39924
|
+
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; }
|
|
39096
39925
|
var DASHBOARD_TAGS = ["productivity", "monitoring", "analytics", "communication", "developer", "sales", "marketing", "finance", "project-management", "social", "news", "utilities"];
|
|
39097
39926
|
var BUMP_OPTIONS$1 = [{
|
|
39098
39927
|
value: "patch",
|
|
@@ -39166,7 +39995,7 @@ function collectComponentConfigs() {
|
|
|
39166
39995
|
// fixed "reference" entry.
|
|
39167
39996
|
function seedSelections(plan, dashboardVisibility) {
|
|
39168
39997
|
var selections = {};
|
|
39169
|
-
var _iterator = _createForOfIteratorHelper$
|
|
39998
|
+
var _iterator = _createForOfIteratorHelper$b(plan.widgets || []),
|
|
39170
39999
|
_step;
|
|
39171
40000
|
try {
|
|
39172
40001
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -39499,7 +40328,7 @@ var PublishDashboardModal = function PublishDashboardModal(_ref) {
|
|
|
39499
40328
|
break;
|
|
39500
40329
|
}
|
|
39501
40330
|
seenPackages = new Set();
|
|
39502
|
-
_iterator2 = _createForOfIteratorHelper$
|
|
40331
|
+
_iterator2 = _createForOfIteratorHelper$b(plan.widgets || []);
|
|
39503
40332
|
_context2.prev = 2;
|
|
39504
40333
|
_iterator2.s();
|
|
39505
40334
|
case 3:
|
|
@@ -40364,7 +41193,7 @@ function DependencyTable(_ref4) {
|
|
|
40364
41193
|
// row. Each row shows the list of component widgets that live inside it
|
|
40365
41194
|
// so the user knows what's getting published.
|
|
40366
41195
|
var byKey = new Map();
|
|
40367
|
-
var _iterator3 = _createForOfIteratorHelper$
|
|
41196
|
+
var _iterator3 = _createForOfIteratorHelper$b(plan.widgets || []),
|
|
40368
41197
|
_step4;
|
|
40369
41198
|
try {
|
|
40370
41199
|
for (_iterator3.s(); !(_step4 = _iterator3.n()).done;) {
|
|
@@ -43994,9 +44823,9 @@ var McpCatalogDetail = function McpCatalogDetail(_ref) {
|
|
|
43994
44823
|
|
|
43995
44824
|
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; }
|
|
43996
44825
|
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; }
|
|
43997
|
-
function _createForOfIteratorHelper$
|
|
43998
|
-
function _unsupportedIterableToArray$
|
|
43999
|
-
function _arrayLikeToArray$
|
|
44826
|
+
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; } } }; }
|
|
44827
|
+
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; } }
|
|
44828
|
+
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; }
|
|
44000
44829
|
function isValidWsUrl(url) {
|
|
44001
44830
|
if (!url) return false;
|
|
44002
44831
|
try {
|
|
@@ -44043,7 +44872,7 @@ function extractCredentialFields(url, headerRows) {
|
|
|
44043
44872
|
fields.add(match[1]);
|
|
44044
44873
|
}
|
|
44045
44874
|
}
|
|
44046
|
-
var _iterator = _createForOfIteratorHelper$
|
|
44875
|
+
var _iterator = _createForOfIteratorHelper$a(headerRows),
|
|
44047
44876
|
_step;
|
|
44048
44877
|
try {
|
|
44049
44878
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -44146,7 +44975,7 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
|
|
|
44146
44975
|
if (!url.trim()) errs.url = "WebSocket URL is required";else if (!isValidWsUrl(url)) errs.url = "URL must start with ws:// or wss://";
|
|
44147
44976
|
|
|
44148
44977
|
// Check required credential fields are filled
|
|
44149
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
44978
|
+
var _iterator2 = _createForOfIteratorHelper$a(credentialFields),
|
|
44150
44979
|
_step2;
|
|
44151
44980
|
try {
|
|
44152
44981
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -44169,7 +44998,7 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
|
|
|
44169
44998
|
|
|
44170
44999
|
// Build headers object from rows
|
|
44171
45000
|
var headers = {};
|
|
44172
|
-
var _iterator3 = _createForOfIteratorHelper$
|
|
45001
|
+
var _iterator3 = _createForOfIteratorHelper$a(headerRows),
|
|
44173
45002
|
_step3;
|
|
44174
45003
|
try {
|
|
44175
45004
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
@@ -44238,7 +45067,7 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
|
|
|
44238
45067
|
|
|
44239
45068
|
// Build config from current form state (same as handleSave)
|
|
44240
45069
|
headers = {};
|
|
44241
|
-
_iterator4 = _createForOfIteratorHelper$
|
|
45070
|
+
_iterator4 = _createForOfIteratorHelper$a(headerRows);
|
|
44242
45071
|
try {
|
|
44243
45072
|
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
44244
45073
|
row = _step4.value;
|
|
@@ -47397,9 +48226,9 @@ var InstallWidgetPicker = function InstallWidgetPicker(_ref2) {
|
|
|
47397
48226
|
|
|
47398
48227
|
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; }
|
|
47399
48228
|
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; }
|
|
47400
|
-
function _createForOfIteratorHelper$
|
|
47401
|
-
function _unsupportedIterableToArray$
|
|
47402
|
-
function _arrayLikeToArray$
|
|
48229
|
+
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; } } }; }
|
|
48230
|
+
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; } }
|
|
48231
|
+
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; }
|
|
47403
48232
|
var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
|
|
47404
48233
|
var onBack = _ref.onBack;
|
|
47405
48234
|
var _useContext = React.useContext(DashReact.ThemeContext),
|
|
@@ -47506,7 +48335,7 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
|
|
|
47506
48335
|
case 1:
|
|
47507
48336
|
widgets = _context2.sent;
|
|
47508
48337
|
names = new Set();
|
|
47509
|
-
_iterator = _createForOfIteratorHelper$
|
|
48338
|
+
_iterator = _createForOfIteratorHelper$9(widgets);
|
|
47510
48339
|
try {
|
|
47511
48340
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
47512
48341
|
w = _step.value;
|
|
@@ -47612,12 +48441,12 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
|
|
|
47612
48441
|
var checkToolConflicts = function checkToolConflicts(widget) {
|
|
47613
48442
|
var conflicts = [];
|
|
47614
48443
|
var packageWidgets = widget.packageWidgets || [];
|
|
47615
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
48444
|
+
var _iterator2 = _createForOfIteratorHelper$9(packageWidgets),
|
|
47616
48445
|
_step2;
|
|
47617
48446
|
try {
|
|
47618
48447
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
47619
48448
|
var w = _step2.value;
|
|
47620
|
-
var _iterator3 = _createForOfIteratorHelper$
|
|
48449
|
+
var _iterator3 = _createForOfIteratorHelper$9(w.providers || []),
|
|
47621
48450
|
_step3;
|
|
47622
48451
|
try {
|
|
47623
48452
|
var _loop = function _loop() {
|
|
@@ -47630,7 +48459,7 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
|
|
|
47630
48459
|
prov = _ref5[1];
|
|
47631
48460
|
return prov.type === p.type && prov.providerClass === "mcp" && prov.allowedTools;
|
|
47632
48461
|
});
|
|
47633
|
-
var _iterator4 = _createForOfIteratorHelper$
|
|
48462
|
+
var _iterator4 = _createForOfIteratorHelper$9(matchingProviders),
|
|
47634
48463
|
_step4;
|
|
47635
48464
|
try {
|
|
47636
48465
|
var _loop2 = function _loop2() {
|
|
@@ -47953,9 +48782,9 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
|
|
|
47953
48782
|
});
|
|
47954
48783
|
};
|
|
47955
48784
|
|
|
47956
|
-
function _createForOfIteratorHelper$
|
|
47957
|
-
function _unsupportedIterableToArray$
|
|
47958
|
-
function _arrayLikeToArray$
|
|
48785
|
+
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; } } }; }
|
|
48786
|
+
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; } }
|
|
48787
|
+
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; }
|
|
47959
48788
|
|
|
47960
48789
|
/**
|
|
47961
48790
|
* Walk a workspace layout and collect widget component keys that are
|
|
@@ -47969,7 +48798,7 @@ function collectComponentsFromLayout(layout) {
|
|
|
47969
48798
|
|
|
47970
48799
|
// Collect IDs of layout items that are actively referenced by grid cells
|
|
47971
48800
|
var activeItemIds = new Set();
|
|
47972
|
-
var _iterator = _createForOfIteratorHelper$
|
|
48801
|
+
var _iterator = _createForOfIteratorHelper$8(layout),
|
|
47973
48802
|
_step;
|
|
47974
48803
|
try {
|
|
47975
48804
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -47989,7 +48818,7 @@ function collectComponentsFromLayout(layout) {
|
|
|
47989
48818
|
} finally {
|
|
47990
48819
|
_iterator.f();
|
|
47991
48820
|
}
|
|
47992
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
48821
|
+
var _iterator2 = _createForOfIteratorHelper$8(layout),
|
|
47993
48822
|
_step2;
|
|
47994
48823
|
try {
|
|
47995
48824
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -48023,7 +48852,7 @@ function findWidgetUsage(componentNames, workspaces) {
|
|
|
48023
48852
|
if (!(componentNames !== null && componentNames !== void 0 && componentNames.length) || !(workspaces !== null && workspaces !== void 0 && workspaces.length)) return [];
|
|
48024
48853
|
var nameSet = new Set(componentNames);
|
|
48025
48854
|
var results = [];
|
|
48026
|
-
var _iterator3 = _createForOfIteratorHelper$
|
|
48855
|
+
var _iterator3 = _createForOfIteratorHelper$8(workspaces),
|
|
48027
48856
|
_step3;
|
|
48028
48857
|
try {
|
|
48029
48858
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
@@ -48258,9 +49087,9 @@ var useInstalledWidgets = function useInstalledWidgets() {
|
|
|
48258
49087
|
};
|
|
48259
49088
|
};
|
|
48260
49089
|
|
|
48261
|
-
function _createForOfIteratorHelper$
|
|
48262
|
-
function _unsupportedIterableToArray$
|
|
48263
|
-
function _arrayLikeToArray$
|
|
49090
|
+
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; } } }; }
|
|
49091
|
+
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; } }
|
|
49092
|
+
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; }
|
|
48264
49093
|
|
|
48265
49094
|
/**
|
|
48266
49095
|
* useWidgetUpdates — checks the registry for newer versions of installed widgets
|
|
@@ -48390,7 +49219,7 @@ function useWidgetUpdates() {
|
|
|
48390
49219
|
// (install replaces the entire package, not just one widget)
|
|
48391
49220
|
setUpdates(function (prev) {
|
|
48392
49221
|
var next = new Map(prev);
|
|
48393
|
-
var _iterator = _createForOfIteratorHelper$
|
|
49222
|
+
var _iterator = _createForOfIteratorHelper$7(next),
|
|
48394
49223
|
_step;
|
|
48395
49224
|
try {
|
|
48396
49225
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -52031,9 +52860,9 @@ var PopoverItem = function PopoverItem(_ref6) {
|
|
|
52031
52860
|
});
|
|
52032
52861
|
};
|
|
52033
52862
|
|
|
52034
|
-
function _createForOfIteratorHelper$
|
|
52035
|
-
function _unsupportedIterableToArray$
|
|
52036
|
-
function _arrayLikeToArray$
|
|
52863
|
+
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; } } }; }
|
|
52864
|
+
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; } }
|
|
52865
|
+
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; }
|
|
52037
52866
|
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; }
|
|
52038
52867
|
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; }
|
|
52039
52868
|
var DraggableWidgetItem = function DraggableWidgetItem(_ref) {
|
|
@@ -52575,7 +53404,7 @@ var WidgetSidebar = function WidgetSidebar(_ref4) {
|
|
|
52575
53404
|
return _context2.abrupt("return");
|
|
52576
53405
|
case 2:
|
|
52577
53406
|
names = new Set();
|
|
52578
|
-
_iterator = _createForOfIteratorHelper$
|
|
53407
|
+
_iterator = _createForOfIteratorHelper$6(widgets);
|
|
52579
53408
|
try {
|
|
52580
53409
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
52581
53410
|
w = _step.value;
|
|
@@ -52963,9 +53792,9 @@ var useMissingWidgets = function useMissingWidgets(workspace) {
|
|
|
52963
53792
|
|
|
52964
53793
|
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; }
|
|
52965
53794
|
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; }
|
|
52966
|
-
function _createForOfIteratorHelper$
|
|
52967
|
-
function _unsupportedIterableToArray$
|
|
52968
|
-
function _arrayLikeToArray$
|
|
53795
|
+
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; } } }; }
|
|
53796
|
+
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; } }
|
|
53797
|
+
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; }
|
|
52969
53798
|
var MissingWidgetsModal = function MissingWidgetsModal(_ref) {
|
|
52970
53799
|
var _ref$missingComponent = _ref.missingComponents,
|
|
52971
53800
|
missingComponents = _ref$missingComponent === void 0 ? [] : _ref$missingComponent,
|
|
@@ -53016,7 +53845,7 @@ var MissingWidgetsModal = function MissingWidgetsModal(_ref) {
|
|
|
53016
53845
|
case 0:
|
|
53017
53846
|
results = [];
|
|
53018
53847
|
seen = new Set();
|
|
53019
|
-
_iterator = _createForOfIteratorHelper$
|
|
53848
|
+
_iterator = _createForOfIteratorHelper$5(missingComponents);
|
|
53020
53849
|
_context2.prev = 1;
|
|
53021
53850
|
_loop = /*#__PURE__*/_regeneratorRuntime.mark(function _loop() {
|
|
53022
53851
|
var componentKey, _getWidgetSearchQuery, packageName, widgetName, pkg, result;
|
|
@@ -53337,261 +54166,6 @@ var MissingWidgetsModal = function MissingWidgetsModal(_ref) {
|
|
|
53337
54166
|
});
|
|
53338
54167
|
};
|
|
53339
54168
|
|
|
53340
|
-
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; } } }; }
|
|
53341
|
-
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; } }
|
|
53342
|
-
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; }
|
|
53343
|
-
/**
|
|
53344
|
-
* providerResolution.js
|
|
53345
|
-
*
|
|
53346
|
-
* Shared helpers for walking a workspace and figuring out which widgets
|
|
53347
|
-
* have required providers that are still unresolved after the 3-layer
|
|
53348
|
-
* resolution (widget → workspace → app-default → null). Used by:
|
|
53349
|
-
*
|
|
53350
|
-
* - DashboardConfigModal to render the Providers tab
|
|
53351
|
-
* - DashboardStage toolbar to show the unresolved-count badge
|
|
53352
|
-
*
|
|
53353
|
-
* Both places need the same answer, so keep the logic here to avoid drift
|
|
53354
|
-
* with the resolution inside `useMcpProvider` / `useWebSocketProvider`.
|
|
53355
|
-
*/
|
|
53356
|
-
|
|
53357
|
-
/**
|
|
53358
|
-
* Resolve which provider name a given widget instance would bind to for
|
|
53359
|
-
* the given provider type. Mirrors the 3-layer chain in useMcpProvider
|
|
53360
|
-
* and useWebSocketProvider exactly:
|
|
53361
|
-
*
|
|
53362
|
-
* 1. widget-level override (layoutItem.selectedProviders[type])
|
|
53363
|
-
* 2. workspace-level binding (workspace.selectedProviders[id][type])
|
|
53364
|
-
* 3. app default (any provider of matching type flagged
|
|
53365
|
-
* `isDefaultForType` in appProviders)
|
|
53366
|
-
* 4. null (truly unresolved)
|
|
53367
|
-
*/
|
|
53368
|
-
function resolveProviderName(_ref) {
|
|
53369
|
-
var _layoutItem$selectedP, _workspace$selectedPr;
|
|
53370
|
-
var providerType = _ref.providerType,
|
|
53371
|
-
layoutItem = _ref.layoutItem,
|
|
53372
|
-
widgetId = _ref.widgetId,
|
|
53373
|
-
workspace = _ref.workspace,
|
|
53374
|
-
appProviders = _ref.appProviders;
|
|
53375
|
-
// 1. Widget-level
|
|
53376
|
-
var widgetLevel = layoutItem === null || layoutItem === void 0 || (_layoutItem$selectedP = layoutItem.selectedProviders) === null || _layoutItem$selectedP === void 0 ? void 0 : _layoutItem$selectedP[providerType];
|
|
53377
|
-
if (widgetLevel) return widgetLevel;
|
|
53378
|
-
|
|
53379
|
-
// 2. Workspace-level
|
|
53380
|
-
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]);
|
|
53381
|
-
if (workspaceLevel) return workspaceLevel;
|
|
53382
|
-
|
|
53383
|
-
// 3. App default — appProviders is either a map keyed by name or an
|
|
53384
|
-
// array. Support both because different callers shape it either way.
|
|
53385
|
-
if (appProviders) {
|
|
53386
|
-
if (Array.isArray(appProviders)) {
|
|
53387
|
-
var _iterator = _createForOfIteratorHelper$5(appProviders),
|
|
53388
|
-
_step;
|
|
53389
|
-
try {
|
|
53390
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
53391
|
-
var data = _step.value;
|
|
53392
|
-
if ((data === null || data === void 0 ? void 0 : data.type) === providerType && (data === null || data === void 0 ? void 0 : data.isDefaultForType) === true) {
|
|
53393
|
-
return data.name;
|
|
53394
|
-
}
|
|
53395
|
-
}
|
|
53396
|
-
} catch (err) {
|
|
53397
|
-
_iterator.e(err);
|
|
53398
|
-
} finally {
|
|
53399
|
-
_iterator.f();
|
|
53400
|
-
}
|
|
53401
|
-
} else if (_typeof(appProviders) === "object") {
|
|
53402
|
-
for (var _i = 0, _Object$entries = Object.entries(appProviders); _i < _Object$entries.length; _i++) {
|
|
53403
|
-
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
53404
|
-
name = _Object$entries$_i[0],
|
|
53405
|
-
_data = _Object$entries$_i[1];
|
|
53406
|
-
if ((_data === null || _data === void 0 ? void 0 : _data.type) === providerType && (_data === null || _data === void 0 ? void 0 : _data.isDefaultForType) === true) {
|
|
53407
|
-
return name;
|
|
53408
|
-
}
|
|
53409
|
-
}
|
|
53410
|
-
}
|
|
53411
|
-
}
|
|
53412
|
-
return null;
|
|
53413
|
-
}
|
|
53414
|
-
|
|
53415
|
-
/**
|
|
53416
|
-
* Walk every layout container in a workspace and yield each widget
|
|
53417
|
-
* instance with its concrete layout item. Handles the main layout,
|
|
53418
|
-
* per-page layouts, the sidebar, and nested LayoutGridContainers whose
|
|
53419
|
-
* children are stored on `items`/`layout`.
|
|
53420
|
-
*/
|
|
53421
|
-
function forEachWidget(workspace, visit) {
|
|
53422
|
-
if (!workspace) return;
|
|
53423
|
-
var _walk = function walk(items) {
|
|
53424
|
-
if (!Array.isArray(items)) return;
|
|
53425
|
-
var _iterator2 = _createForOfIteratorHelper$5(items),
|
|
53426
|
-
_step2;
|
|
53427
|
-
try {
|
|
53428
|
-
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
53429
|
-
var item = _step2.value;
|
|
53430
|
-
if (!item || _typeof(item) !== "object") continue;
|
|
53431
|
-
// A "widget" is any layout item with a component name.
|
|
53432
|
-
// Containers can have both a component name AND nested items
|
|
53433
|
-
// (e.g. LayoutGridContainer), so still recurse.
|
|
53434
|
-
if (item.component) visit(item);
|
|
53435
|
-
if (Array.isArray(item.items)) _walk(item.items);
|
|
53436
|
-
if (Array.isArray(item.layout)) _walk(item.layout);
|
|
53437
|
-
}
|
|
53438
|
-
} catch (err) {
|
|
53439
|
-
_iterator2.e(err);
|
|
53440
|
-
} finally {
|
|
53441
|
-
_iterator2.f();
|
|
53442
|
-
}
|
|
53443
|
-
};
|
|
53444
|
-
_walk(workspace.layout);
|
|
53445
|
-
if (Array.isArray(workspace.pages)) {
|
|
53446
|
-
var _iterator3 = _createForOfIteratorHelper$5(workspace.pages),
|
|
53447
|
-
_step3;
|
|
53448
|
-
try {
|
|
53449
|
-
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
53450
|
-
var page = _step3.value;
|
|
53451
|
-
_walk(page === null || page === void 0 ? void 0 : page.layout);
|
|
53452
|
-
}
|
|
53453
|
-
} catch (err) {
|
|
53454
|
-
_iterator3.e(err);
|
|
53455
|
-
} finally {
|
|
53456
|
-
_iterator3.f();
|
|
53457
|
-
}
|
|
53458
|
-
}
|
|
53459
|
-
_walk(workspace.sidebarLayout);
|
|
53460
|
-
}
|
|
53461
|
-
|
|
53462
|
-
/**
|
|
53463
|
-
* Compute the list of unresolved required providers across a workspace.
|
|
53464
|
-
*
|
|
53465
|
-
* @param {object} args
|
|
53466
|
-
* @param {object} args.workspace The workspace (with layout/pages/sidebarLayout/selectedProviders).
|
|
53467
|
-
* @param {object|Array} args.appProviders
|
|
53468
|
-
* Map keyed by provider name, or an array of provider objects. Each
|
|
53469
|
-
* entry has at least `{ type, isDefaultForType }`.
|
|
53470
|
-
* @param {(componentName: string) => Array<{type, required?, providerClass?}>} args.getWidgetRequirements
|
|
53471
|
-
* Returns the `providers: [...]` declaration from the component's
|
|
53472
|
-
* `.dash.js` (via `ComponentManager.componentMap()[name].providers`).
|
|
53473
|
-
*
|
|
53474
|
-
* @returns {Array<{ widgetId, component, providerType, providerClass, layoutItem }>}
|
|
53475
|
-
* One entry per (widget instance, required provider type) that lacks
|
|
53476
|
-
* a binding.
|
|
53477
|
-
*/
|
|
53478
|
-
function getUnresolvedProviders(_ref2) {
|
|
53479
|
-
var workspace = _ref2.workspace,
|
|
53480
|
-
appProviders = _ref2.appProviders,
|
|
53481
|
-
getWidgetRequirements = _ref2.getWidgetRequirements;
|
|
53482
|
-
if (!workspace || typeof getWidgetRequirements !== "function") return [];
|
|
53483
|
-
var unresolved = [];
|
|
53484
|
-
forEachWidget(workspace, function (item) {
|
|
53485
|
-
var requirements = getWidgetRequirements(item.component) || [];
|
|
53486
|
-
if (!Array.isArray(requirements) || requirements.length === 0) return;
|
|
53487
|
-
var widgetId = item.uuidString || item.uuid || item.id || null;
|
|
53488
|
-
var _iterator4 = _createForOfIteratorHelper$5(requirements),
|
|
53489
|
-
_step4;
|
|
53490
|
-
try {
|
|
53491
|
-
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
53492
|
-
var req = _step4.value;
|
|
53493
|
-
if (!req || !req.type) continue;
|
|
53494
|
-
if (req.required === false) continue; // optional, skip
|
|
53495
|
-
|
|
53496
|
-
var name = resolveProviderName({
|
|
53497
|
-
providerType: req.type,
|
|
53498
|
-
layoutItem: item,
|
|
53499
|
-
widgetId: widgetId,
|
|
53500
|
-
workspace: workspace,
|
|
53501
|
-
appProviders: appProviders
|
|
53502
|
-
});
|
|
53503
|
-
if (!name) {
|
|
53504
|
-
unresolved.push({
|
|
53505
|
-
widgetId: widgetId,
|
|
53506
|
-
component: item.component,
|
|
53507
|
-
providerType: req.type,
|
|
53508
|
-
providerClass: req.providerClass || null,
|
|
53509
|
-
layoutItem: item
|
|
53510
|
-
});
|
|
53511
|
-
}
|
|
53512
|
-
}
|
|
53513
|
-
} catch (err) {
|
|
53514
|
-
_iterator4.e(err);
|
|
53515
|
-
} finally {
|
|
53516
|
-
_iterator4.f();
|
|
53517
|
-
}
|
|
53518
|
-
});
|
|
53519
|
-
return unresolved;
|
|
53520
|
-
}
|
|
53521
|
-
|
|
53522
|
-
/**
|
|
53523
|
-
* Group an unresolved-provider list (or any `{widget, providerType}` list)
|
|
53524
|
-
* by provider type, so the Providers tab can render one row per unique
|
|
53525
|
-
* type with N widgets beneath.
|
|
53526
|
-
*/
|
|
53527
|
-
function groupByProviderType(unresolved) {
|
|
53528
|
-
var byType = new Map();
|
|
53529
|
-
var _iterator5 = _createForOfIteratorHelper$5(unresolved || []),
|
|
53530
|
-
_step5;
|
|
53531
|
-
try {
|
|
53532
|
-
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
53533
|
-
var u = _step5.value;
|
|
53534
|
-
if (!(u !== null && u !== void 0 && u.providerType)) continue;
|
|
53535
|
-
if (!byType.has(u.providerType)) byType.set(u.providerType, []);
|
|
53536
|
-
byType.get(u.providerType).push(u);
|
|
53537
|
-
}
|
|
53538
|
-
} catch (err) {
|
|
53539
|
-
_iterator5.e(err);
|
|
53540
|
-
} finally {
|
|
53541
|
-
_iterator5.f();
|
|
53542
|
-
}
|
|
53543
|
-
return byType;
|
|
53544
|
-
}
|
|
53545
|
-
|
|
53546
|
-
/**
|
|
53547
|
-
* Summarize every widget in the workspace that requires ANY provider,
|
|
53548
|
-
* regardless of whether it's already resolved. Drives the Providers tab's
|
|
53549
|
-
* "show per-widget overrides" expansion — the modal lists all widgets so
|
|
53550
|
-
* the user can change an explicit override even for types that are
|
|
53551
|
-
* already resolved via the app default.
|
|
53552
|
-
*/
|
|
53553
|
-
function getAllProviderBindings(_ref3) {
|
|
53554
|
-
var workspace = _ref3.workspace,
|
|
53555
|
-
appProviders = _ref3.appProviders,
|
|
53556
|
-
getWidgetRequirements = _ref3.getWidgetRequirements;
|
|
53557
|
-
if (!workspace || typeof getWidgetRequirements !== "function") return [];
|
|
53558
|
-
var bindings = [];
|
|
53559
|
-
forEachWidget(workspace, function (item) {
|
|
53560
|
-
var requirements = getWidgetRequirements(item.component) || [];
|
|
53561
|
-
if (!Array.isArray(requirements) || requirements.length === 0) return;
|
|
53562
|
-
var widgetId = item.uuidString || item.uuid || item.id || null;
|
|
53563
|
-
var _iterator6 = _createForOfIteratorHelper$5(requirements),
|
|
53564
|
-
_step6;
|
|
53565
|
-
try {
|
|
53566
|
-
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
53567
|
-
var req = _step6.value;
|
|
53568
|
-
if (!req || !req.type) continue;
|
|
53569
|
-
var name = resolveProviderName({
|
|
53570
|
-
providerType: req.type,
|
|
53571
|
-
layoutItem: item,
|
|
53572
|
-
widgetId: widgetId,
|
|
53573
|
-
workspace: workspace,
|
|
53574
|
-
appProviders: appProviders
|
|
53575
|
-
});
|
|
53576
|
-
bindings.push({
|
|
53577
|
-
widgetId: widgetId,
|
|
53578
|
-
component: item.component,
|
|
53579
|
-
providerType: req.type,
|
|
53580
|
-
providerClass: req.providerClass || null,
|
|
53581
|
-
required: req.required !== false,
|
|
53582
|
-
resolvedProviderName: name,
|
|
53583
|
-
layoutItem: item
|
|
53584
|
-
});
|
|
53585
|
-
}
|
|
53586
|
-
} catch (err) {
|
|
53587
|
-
_iterator6.e(err);
|
|
53588
|
-
} finally {
|
|
53589
|
-
_iterator6.f();
|
|
53590
|
-
}
|
|
53591
|
-
});
|
|
53592
|
-
return bindings;
|
|
53593
|
-
}
|
|
53594
|
-
|
|
53595
54169
|
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; } } }; }
|
|
53596
54170
|
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; } }
|
|
53597
54171
|
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; }
|
|
@@ -53603,19 +54177,43 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
53603
54177
|
workspace = _ref.workspace,
|
|
53604
54178
|
appProviders = _ref.appProviders,
|
|
53605
54179
|
getWidgetRequirements = _ref.getWidgetRequirements,
|
|
53606
|
-
|
|
54180
|
+
_ref$getWidgetConfig = _ref.getWidgetConfig,
|
|
54181
|
+
getWidgetConfig = _ref$getWidgetConfig === void 0 ? null : _ref$getWidgetConfig,
|
|
54182
|
+
onSaveBindings = _ref.onSaveBindings,
|
|
54183
|
+
onSaveListeners = _ref.onSaveListeners,
|
|
54184
|
+
_ref$initialTab = _ref.initialTab,
|
|
54185
|
+
initialTab = _ref$initialTab === void 0 ? "providers" : _ref$initialTab;
|
|
53607
54186
|
var _useContext = React.useContext(DashReact.ThemeContext),
|
|
53608
54187
|
currentTheme = _useContext.currentTheme;
|
|
53609
54188
|
var panelStyles = DashReact.getStylesForItem(DashReact.themeObjects.PANEL, currentTheme, {
|
|
53610
54189
|
grow: false
|
|
53611
54190
|
});
|
|
53612
54191
|
|
|
54192
|
+
// Active tab. Defaults to whatever the parent requested via
|
|
54193
|
+
// `initialTab`. Resets on each open via the modal's mount cycle.
|
|
54194
|
+
var _useState = React.useState(initialTab),
|
|
54195
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
54196
|
+
activeTab = _useState2[0],
|
|
54197
|
+
setActiveTab = _useState2[1];
|
|
54198
|
+
|
|
53613
54199
|
// Staged changes: widgetId -> { [providerType]: providerName }. Empty
|
|
53614
54200
|
// until the user picks something; applied on Save via onSaveBindings.
|
|
53615
|
-
var
|
|
53616
|
-
|
|
53617
|
-
staged =
|
|
53618
|
-
setStaged =
|
|
54201
|
+
var _useState3 = React.useState({}),
|
|
54202
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
54203
|
+
staged = _useState4[0],
|
|
54204
|
+
setStaged = _useState4[1];
|
|
54205
|
+
|
|
54206
|
+
// Staged listener changes — collected in the Listeners tab's UI and
|
|
54207
|
+
// committed alongside provider changes when the user clicks Save.
|
|
54208
|
+
// Shape: { adds: [...], removes: [...] } where each item is
|
|
54209
|
+
// { receiverItemId, handlerName, sourceComponent, sourceItemId, eventName, raw? }.
|
|
54210
|
+
var _useState5 = React.useState({
|
|
54211
|
+
adds: [],
|
|
54212
|
+
removes: []
|
|
54213
|
+
}),
|
|
54214
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
54215
|
+
stagedListeners = _useState6[0],
|
|
54216
|
+
setStagedListeners = _useState6[1];
|
|
53619
54217
|
var bindings = React.useMemo(function () {
|
|
53620
54218
|
return getAllProviderBindings({
|
|
53621
54219
|
workspace: workspace,
|
|
@@ -53681,9 +54279,98 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
53681
54279
|
var unresolvedCount = effectiveBindings.filter(function (b) {
|
|
53682
54280
|
return b.required && !b.resolvedProviderName;
|
|
53683
54281
|
}).length;
|
|
54282
|
+
|
|
54283
|
+
// Listeners tab data — emitter list, receiver list, current wiring,
|
|
54284
|
+
// orphans. All recompute when the workspace or staged delta changes
|
|
54285
|
+
// so the UI reflects pending edits without saving first.
|
|
54286
|
+
var wConfig = React.useMemo(function () {
|
|
54287
|
+
return typeof getWidgetConfig === "function" ? getWidgetConfig : function () {
|
|
54288
|
+
return null;
|
|
54289
|
+
};
|
|
54290
|
+
}, [getWidgetConfig]);
|
|
54291
|
+
var emitters = React.useMemo(function () {
|
|
54292
|
+
return getEmitters(workspace, wConfig);
|
|
54293
|
+
}, [workspace, wConfig]);
|
|
54294
|
+
var receivers = React.useMemo(function () {
|
|
54295
|
+
return getReceivers(workspace, wConfig);
|
|
54296
|
+
}, [workspace, wConfig]);
|
|
54297
|
+
var persistedWiring = React.useMemo(function () {
|
|
54298
|
+
return getCurrentWiring(workspace);
|
|
54299
|
+
}, [workspace]);
|
|
54300
|
+
var orphans = React.useMemo(function () {
|
|
54301
|
+
return getOrphanedListeners(workspace, wConfig);
|
|
54302
|
+
}, [workspace, wConfig]);
|
|
54303
|
+
var effectiveWiring = React.useMemo(function () {
|
|
54304
|
+
// Apply staged removes/adds to the persisted wiring for an
|
|
54305
|
+
// accurate "what will be there after save" view, then annotate
|
|
54306
|
+
// each entry with its orphan reason (if any) so HandlerCard chips
|
|
54307
|
+
// can render a stale-binding warning inline.
|
|
54308
|
+
var next = persistedWiring;
|
|
54309
|
+
if (stagedListeners.removes.length > 0) {
|
|
54310
|
+
next = next.filter(function (w) {
|
|
54311
|
+
return !stagedListeners.removes.some(function (r) {
|
|
54312
|
+
return sameWiringEntry(r, w);
|
|
54313
|
+
});
|
|
54314
|
+
});
|
|
54315
|
+
}
|
|
54316
|
+
if (stagedListeners.adds.length > 0) {
|
|
54317
|
+
// Append; avoid duplicates against current state.
|
|
54318
|
+
var _iterator2 = _createForOfIteratorHelper$4(stagedListeners.adds),
|
|
54319
|
+
_step2;
|
|
54320
|
+
try {
|
|
54321
|
+
var _loop = function _loop() {
|
|
54322
|
+
var a = _step2.value;
|
|
54323
|
+
if (!next.some(function (w) {
|
|
54324
|
+
return sameWiringEntry(w, a);
|
|
54325
|
+
})) {
|
|
54326
|
+
next = [].concat(_toConsumableArray(next), [_objectSpread$7(_objectSpread$7({}, a), {}, {
|
|
54327
|
+
raw: formatEventString(a.sourceComponent, a.sourceItemId, a.eventName)
|
|
54328
|
+
})]);
|
|
54329
|
+
}
|
|
54330
|
+
};
|
|
54331
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
54332
|
+
_loop();
|
|
54333
|
+
}
|
|
54334
|
+
} catch (err) {
|
|
54335
|
+
_iterator2.e(err);
|
|
54336
|
+
} finally {
|
|
54337
|
+
_iterator2.f();
|
|
54338
|
+
}
|
|
54339
|
+
}
|
|
54340
|
+
if (orphans.length === 0) return next;
|
|
54341
|
+
var orphanIndex = new Map();
|
|
54342
|
+
var _iterator3 = _createForOfIteratorHelper$4(orphans),
|
|
54343
|
+
_step3;
|
|
54344
|
+
try {
|
|
54345
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
54346
|
+
var o = _step3.value;
|
|
54347
|
+
orphanIndex.set("".concat(o.receiverItemId, "|").concat(o.handlerName, "|").concat(o.sourceComponent, "|").concat(o.sourceItemId, "|").concat(o.eventName), o.reason);
|
|
54348
|
+
}
|
|
54349
|
+
} catch (err) {
|
|
54350
|
+
_iterator3.e(err);
|
|
54351
|
+
} finally {
|
|
54352
|
+
_iterator3.f();
|
|
54353
|
+
}
|
|
54354
|
+
return next.map(function (w) {
|
|
54355
|
+
var key = "".concat(w.receiverItemId, "|").concat(w.handlerName, "|").concat(w.sourceComponent, "|").concat(w.sourceItemId, "|").concat(w.eventName);
|
|
54356
|
+
var reason = orphanIndex.get(key);
|
|
54357
|
+
return reason ? _objectSpread$7(_objectSpread$7({}, w), {}, {
|
|
54358
|
+
isOrphan: true,
|
|
54359
|
+
orphanReason: reason
|
|
54360
|
+
}) : w;
|
|
54361
|
+
});
|
|
54362
|
+
}, [persistedWiring, stagedListeners, orphans]);
|
|
54363
|
+
// Orphans reduced by what the user has already staged for removal.
|
|
54364
|
+
React.useMemo(function () {
|
|
54365
|
+
return orphans.filter(function (o) {
|
|
54366
|
+
return !stagedListeners.removes.some(function (r) {
|
|
54367
|
+
return sameWiringEntry(r, o);
|
|
54368
|
+
});
|
|
54369
|
+
});
|
|
54370
|
+
}, [orphans, stagedListeners.removes]);
|
|
53684
54371
|
var hasStagedChanges = Object.keys(staged).some(function (wid) {
|
|
53685
54372
|
return Object.keys(staged[wid] || {}).length > 0;
|
|
53686
|
-
});
|
|
54373
|
+
}) || stagedListeners.adds.length > 0 || stagedListeners.removes.length > 0;
|
|
53687
54374
|
function stageBinding(widgetId, providerType, providerName) {
|
|
53688
54375
|
setStaged(function (prev) {
|
|
53689
54376
|
var next = _objectSpread$7({}, prev);
|
|
@@ -53703,24 +54390,75 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
53703
54390
|
});
|
|
53704
54391
|
setStaged(function (prev) {
|
|
53705
54392
|
var next = _objectSpread$7({}, prev);
|
|
53706
|
-
var
|
|
53707
|
-
|
|
54393
|
+
var _iterator4 = _createForOfIteratorHelper$4(affected),
|
|
54394
|
+
_step4;
|
|
53708
54395
|
try {
|
|
53709
|
-
for (
|
|
53710
|
-
var b =
|
|
54396
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
54397
|
+
var b = _step4.value;
|
|
53711
54398
|
if (!b.widgetId) continue;
|
|
53712
54399
|
next[b.widgetId] = _objectSpread$7(_objectSpread$7({}, next[b.widgetId] || {}), {}, _defineProperty({}, providerType, providerName || ""));
|
|
53713
54400
|
}
|
|
53714
54401
|
} catch (err) {
|
|
53715
|
-
|
|
54402
|
+
_iterator4.e(err);
|
|
53716
54403
|
} finally {
|
|
53717
|
-
|
|
54404
|
+
_iterator4.f();
|
|
53718
54405
|
}
|
|
53719
54406
|
return next;
|
|
53720
54407
|
});
|
|
53721
54408
|
}
|
|
54409
|
+
|
|
54410
|
+
// Listener tab staging helpers. We treat add/remove as queue
|
|
54411
|
+
// operations so the user can build up several edits before
|
|
54412
|
+
// committing. Toggling a binding that's already staged in the
|
|
54413
|
+
// opposite direction cancels the staged change rather than queuing
|
|
54414
|
+
// both — keeps the diff minimal and the save predictable.
|
|
54415
|
+
var stageListenerAdd = function stageListenerAdd(entry) {
|
|
54416
|
+
setStagedListeners(function (prev) {
|
|
54417
|
+
var removeIdx = prev.removes.findIndex(function (r) {
|
|
54418
|
+
return sameWiringEntry(r, entry);
|
|
54419
|
+
});
|
|
54420
|
+
if (removeIdx >= 0) {
|
|
54421
|
+
return {
|
|
54422
|
+
adds: prev.adds,
|
|
54423
|
+
removes: prev.removes.filter(function (_, i) {
|
|
54424
|
+
return i !== removeIdx;
|
|
54425
|
+
})
|
|
54426
|
+
};
|
|
54427
|
+
}
|
|
54428
|
+
if (prev.adds.some(function (a) {
|
|
54429
|
+
return sameWiringEntry(a, entry);
|
|
54430
|
+
})) return prev;
|
|
54431
|
+
return {
|
|
54432
|
+
adds: [].concat(_toConsumableArray(prev.adds), [entry]),
|
|
54433
|
+
removes: prev.removes
|
|
54434
|
+
};
|
|
54435
|
+
});
|
|
54436
|
+
};
|
|
54437
|
+
var stageListenerRemove = function stageListenerRemove(entry) {
|
|
54438
|
+
setStagedListeners(function (prev) {
|
|
54439
|
+
var addIdx = prev.adds.findIndex(function (a) {
|
|
54440
|
+
return sameWiringEntry(a, entry);
|
|
54441
|
+
});
|
|
54442
|
+
if (addIdx >= 0) {
|
|
54443
|
+
return {
|
|
54444
|
+
adds: prev.adds.filter(function (_, i) {
|
|
54445
|
+
return i !== addIdx;
|
|
54446
|
+
}),
|
|
54447
|
+
removes: prev.removes
|
|
54448
|
+
};
|
|
54449
|
+
}
|
|
54450
|
+
if (prev.removes.some(function (r) {
|
|
54451
|
+
return sameWiringEntry(r, entry);
|
|
54452
|
+
})) return prev;
|
|
54453
|
+
return {
|
|
54454
|
+
adds: prev.adds,
|
|
54455
|
+
removes: [].concat(_toConsumableArray(prev.removes), [entry])
|
|
54456
|
+
};
|
|
54457
|
+
});
|
|
54458
|
+
};
|
|
53722
54459
|
function handleSave() {
|
|
53723
|
-
|
|
54460
|
+
// Provider changes
|
|
54461
|
+
var providerChanges = [];
|
|
53724
54462
|
for (var _i2 = 0, _Object$entries2 = Object.entries(staged); _i2 < _Object$entries2.length; _i2++) {
|
|
53725
54463
|
var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i2], 2),
|
|
53726
54464
|
widgetId = _Object$entries2$_i[0],
|
|
@@ -53729,31 +54467,44 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
53729
54467
|
var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i3], 2),
|
|
53730
54468
|
providerType = _Object$entries3$_i[0],
|
|
53731
54469
|
providerName = _Object$entries3$_i[1];
|
|
53732
|
-
|
|
54470
|
+
providerChanges.push({
|
|
53733
54471
|
widgetId: widgetId,
|
|
53734
54472
|
providerType: providerType,
|
|
53735
54473
|
providerName: providerName || null
|
|
53736
54474
|
});
|
|
53737
54475
|
}
|
|
53738
54476
|
}
|
|
53739
|
-
if (typeof onSaveBindings === "function")
|
|
54477
|
+
if (providerChanges.length > 0 && typeof onSaveBindings === "function") {
|
|
54478
|
+
onSaveBindings(providerChanges);
|
|
54479
|
+
}
|
|
54480
|
+
|
|
54481
|
+
// Listener changes
|
|
54482
|
+
if ((stagedListeners.adds.length > 0 || stagedListeners.removes.length > 0) && typeof onSaveListeners === "function") {
|
|
54483
|
+
onSaveListeners(stagedListeners);
|
|
54484
|
+
}
|
|
53740
54485
|
setStaged({});
|
|
54486
|
+
setStagedListeners({
|
|
54487
|
+
adds: [],
|
|
54488
|
+
removes: []
|
|
54489
|
+
});
|
|
53741
54490
|
setIsOpen(false);
|
|
53742
54491
|
}
|
|
53743
54492
|
function handleCancel() {
|
|
53744
54493
|
setStaged({});
|
|
54494
|
+
setStagedListeners({
|
|
54495
|
+
adds: [],
|
|
54496
|
+
removes: []
|
|
54497
|
+
});
|
|
53745
54498
|
setIsOpen(false);
|
|
53746
54499
|
}
|
|
53747
54500
|
if (!isOpen) return null;
|
|
53748
54501
|
return /*#__PURE__*/jsxRuntime.jsx(DashReact.Modal, {
|
|
53749
54502
|
isOpen: isOpen,
|
|
53750
54503
|
setIsOpen: handleCancel,
|
|
53751
|
-
width: "w-
|
|
54504
|
+
width: "w-11/12 xl:w-5/6",
|
|
54505
|
+
height: "h-5/6",
|
|
53752
54506
|
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
53753
|
-
className: "flex flex-col rounded-lg overflow-clip border ".concat(panelStyles.backgroundColor || "", " ").concat(panelStyles.borderColor || "", " ").concat(panelStyles.textColor || ""),
|
|
53754
|
-
style: {
|
|
53755
|
-
maxHeight: "80vh"
|
|
53756
|
-
},
|
|
54507
|
+
className: "flex flex-col h-full w-full rounded-lg overflow-clip border ".concat(panelStyles.backgroundColor || "", " ").concat(panelStyles.borderColor || "", " ").concat(panelStyles.textColor || ""),
|
|
53757
54508
|
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
53758
54509
|
className: "flex-shrink-0 flex flex-row items-center justify-between p-4 border-b border-white/10",
|
|
53759
54510
|
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
@@ -53779,47 +54530,37 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
53779
54530
|
})]
|
|
53780
54531
|
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
53781
54532
|
className: "flex-shrink-0 flex flex-row items-center gap-2 px-4 pt-3 border-b border-white/10",
|
|
53782
|
-
children: [/*#__PURE__*/jsxRuntime.
|
|
53783
|
-
|
|
53784
|
-
|
|
53785
|
-
|
|
53786
|
-
|
|
53787
|
-
|
|
53788
|
-
|
|
53789
|
-
|
|
53790
|
-
|
|
53791
|
-
|
|
53792
|
-
|
|
53793
|
-
|
|
53794
|
-
|
|
53795
|
-
|
|
53796
|
-
|
|
53797
|
-
|
|
53798
|
-
var options = providersByType.get(providerType) || [];
|
|
53799
|
-
var unresolvedHere = rows.filter(function (r) {
|
|
53800
|
-
return r.required && !r.resolvedProviderName;
|
|
53801
|
-
}).length;
|
|
53802
|
-
// The "top" dropdown reflects the currently-agreeable choice:
|
|
53803
|
-
// if every row has the same resolved value, show it; otherwise
|
|
53804
|
-
// show "" (mixed) so the dropdown is neutral.
|
|
53805
|
-
var allSame = rows.every(function (r) {
|
|
53806
|
-
return r.resolvedProviderName === rows[0].resolvedProviderName;
|
|
53807
|
-
});
|
|
53808
|
-
var topValue = allSame ? rows[0].resolvedProviderName || "" : "";
|
|
53809
|
-
return /*#__PURE__*/jsxRuntime.jsx(ProviderTypeRow, {
|
|
53810
|
-
providerType: providerType,
|
|
53811
|
-
rows: rows,
|
|
53812
|
-
options: options,
|
|
53813
|
-
topValue: topValue,
|
|
53814
|
-
unresolvedHere: unresolvedHere,
|
|
53815
|
-
onBulk: function onBulk(name) {
|
|
53816
|
-
return stageBulk(providerType, name);
|
|
53817
|
-
},
|
|
53818
|
-
onPerWidget: function onPerWidget(widgetId, name) {
|
|
53819
|
-
return stageBinding(widgetId, providerType, name);
|
|
53820
|
-
}
|
|
53821
|
-
}, providerType);
|
|
54533
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("button", {
|
|
54534
|
+
type: "button",
|
|
54535
|
+
onClick: function onClick() {
|
|
54536
|
+
return setActiveTab("providers");
|
|
54537
|
+
},
|
|
54538
|
+
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"),
|
|
54539
|
+
children: ["Providers", unresolvedCount > 0 && /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
54540
|
+
className: "ml-2 inline-block h-1.5 w-1.5 rounded-full bg-amber-400 align-middle"
|
|
54541
|
+
})]
|
|
54542
|
+
}), /*#__PURE__*/jsxRuntime.jsx("button", {
|
|
54543
|
+
type: "button",
|
|
54544
|
+
onClick: function onClick() {
|
|
54545
|
+
return setActiveTab("listeners");
|
|
54546
|
+
},
|
|
54547
|
+
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"),
|
|
54548
|
+
children: "Listeners"
|
|
53822
54549
|
})]
|
|
54550
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
54551
|
+
className: "p-5 flex-1 min-h-0",
|
|
54552
|
+
children: activeTab === "listeners" ? /*#__PURE__*/jsxRuntime.jsx(ListenersTab, {
|
|
54553
|
+
emitters: emitters,
|
|
54554
|
+
receivers: receivers,
|
|
54555
|
+
wiring: effectiveWiring,
|
|
54556
|
+
onAdd: stageListenerAdd,
|
|
54557
|
+
onRemove: stageListenerRemove
|
|
54558
|
+
}) : /*#__PURE__*/jsxRuntime.jsx(ProvidersTab, {
|
|
54559
|
+
grouped: grouped,
|
|
54560
|
+
providersByType: providersByType,
|
|
54561
|
+
onBulk: stageBulk,
|
|
54562
|
+
onPerWidget: stageBinding
|
|
54563
|
+
})
|
|
53823
54564
|
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
53824
54565
|
className: "flex-shrink-0 flex flex-row justify-end gap-2 p-4 border-t border-white/10",
|
|
53825
54566
|
children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Button3, {
|
|
@@ -53836,114 +54577,507 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
|
|
|
53836
54577
|
};
|
|
53837
54578
|
|
|
53838
54579
|
/**
|
|
53839
|
-
*
|
|
53840
|
-
*
|
|
54580
|
+
* Providers tab with a sidebar/detail layout mirroring the Listeners
|
|
54581
|
+
* tab. Column 1 lists provider types in this workspace (with an amber
|
|
54582
|
+
* dot per-type when any widget of that type is unresolved). Column 2
|
|
54583
|
+
* shows the selected type's bulk dropdown + per-widget dropdowns.
|
|
53841
54584
|
*/
|
|
53842
|
-
function
|
|
53843
|
-
var
|
|
53844
|
-
|
|
53845
|
-
|
|
53846
|
-
|
|
53847
|
-
|
|
53848
|
-
|
|
53849
|
-
|
|
53850
|
-
|
|
53851
|
-
|
|
53852
|
-
|
|
53853
|
-
|
|
53854
|
-
|
|
54585
|
+
function ProvidersTab(_ref2) {
|
|
54586
|
+
var _typeEntries$, _selectedRows$;
|
|
54587
|
+
var grouped = _ref2.grouped,
|
|
54588
|
+
providersByType = _ref2.providersByType,
|
|
54589
|
+
onBulk = _ref2.onBulk,
|
|
54590
|
+
onPerWidget = _ref2.onPerWidget;
|
|
54591
|
+
var typeEntries = React.useMemo(function () {
|
|
54592
|
+
return Array.from(grouped.entries());
|
|
54593
|
+
}, [grouped]);
|
|
54594
|
+
var _useState7 = React.useState(((_typeEntries$ = typeEntries[0]) === null || _typeEntries$ === void 0 ? void 0 : _typeEntries$[0]) || null),
|
|
54595
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
54596
|
+
selectedType = _useState8[0],
|
|
54597
|
+
setSelectedType = _useState8[1];
|
|
54598
|
+
|
|
54599
|
+
// If the selected type disappears (workspace changed), fall back.
|
|
54600
|
+
React.useMemo(function () {
|
|
54601
|
+
if (selectedType && !grouped.has(selectedType)) {
|
|
54602
|
+
var _typeEntries$2;
|
|
54603
|
+
setSelectedType(((_typeEntries$2 = typeEntries[0]) === null || _typeEntries$2 === void 0 ? void 0 : _typeEntries$2[0]) || null);
|
|
54604
|
+
}
|
|
54605
|
+
}, [grouped, selectedType, typeEntries]);
|
|
54606
|
+
if (typeEntries.length === 0) {
|
|
54607
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
54608
|
+
className: "text-sm opacity-60 text-center py-6",
|
|
54609
|
+
children: "No widgets in this dashboard require providers."
|
|
54610
|
+
});
|
|
54611
|
+
}
|
|
54612
|
+
var selectedRows = selectedType ? grouped.get(selectedType) || [] : [];
|
|
54613
|
+
var selectedOptions = selectedType ? providersByType.get(selectedType) || [] : [];
|
|
54614
|
+
var allSame = selectedRows.length > 0 && selectedRows.every(function (r) {
|
|
54615
|
+
return r.resolvedProviderName === selectedRows[0].resolvedProviderName;
|
|
54616
|
+
});
|
|
54617
|
+
var topValue = allSame ? ((_selectedRows$ = selectedRows[0]) === null || _selectedRows$ === void 0 ? void 0 : _selectedRows$.resolvedProviderName) || "" : "";
|
|
53855
54618
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
53856
|
-
className: "
|
|
54619
|
+
className: "flex flex-row gap-3 h-full min-h-0",
|
|
53857
54620
|
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
53858
|
-
className: "
|
|
54621
|
+
className: "w-56 flex-shrink-0 bg-white/5 border border-white/10 rounded-lg overflow-hidden flex flex-col",
|
|
53859
54622
|
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
53860
|
-
className: "
|
|
53861
|
-
children:
|
|
53862
|
-
|
|
53863
|
-
|
|
53864
|
-
|
|
53865
|
-
|
|
53866
|
-
|
|
53867
|
-
|
|
53868
|
-
|
|
53869
|
-
|
|
53870
|
-
|
|
53871
|
-
|
|
53872
|
-
|
|
53873
|
-
|
|
53874
|
-
|
|
53875
|
-
|
|
54623
|
+
className: "px-3 py-2 text-xs font-semibold opacity-50 uppercase tracking-wider border-b border-white/10",
|
|
54624
|
+
children: "Provider Types"
|
|
54625
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
54626
|
+
className: "overflow-y-auto flex-1",
|
|
54627
|
+
children: typeEntries.map(function (_ref3) {
|
|
54628
|
+
var _ref4 = _slicedToArray(_ref3, 2),
|
|
54629
|
+
providerType = _ref4[0],
|
|
54630
|
+
rows = _ref4[1];
|
|
54631
|
+
var isActive = selectedType === providerType;
|
|
54632
|
+
var unresolvedHere = rows.filter(function (r) {
|
|
54633
|
+
return r.required && !r.resolvedProviderName;
|
|
54634
|
+
}).length;
|
|
54635
|
+
return /*#__PURE__*/jsxRuntime.jsxs("button", {
|
|
54636
|
+
type: "button",
|
|
54637
|
+
onClick: function onClick() {
|
|
54638
|
+
return setSelectedType(providerType);
|
|
54639
|
+
},
|
|
54640
|
+
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"),
|
|
54641
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
54642
|
+
className: "flex items-center gap-2",
|
|
54643
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("span", {
|
|
54644
|
+
className: "text-sm font-medium truncate",
|
|
54645
|
+
children: providerType
|
|
54646
|
+
}), unresolvedHere > 0 && /*#__PURE__*/jsxRuntime.jsxs("span", {
|
|
54647
|
+
className: "text-[10px] text-amber-300 flex items-center gap-1",
|
|
54648
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
54649
|
+
icon: "triangle-exclamation",
|
|
54650
|
+
className: "h-2.5 w-2.5"
|
|
54651
|
+
}), unresolvedHere]
|
|
54652
|
+
})]
|
|
54653
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
54654
|
+
className: "text-xs opacity-50 mt-0.5",
|
|
54655
|
+
children: [rows.length, " widget", rows.length === 1 ? "" : "s"]
|
|
54656
|
+
})]
|
|
54657
|
+
}, providerType);
|
|
53876
54658
|
})
|
|
53877
|
-
}), /*#__PURE__*/jsxRuntime.jsxs("select", {
|
|
53878
|
-
value: topValue,
|
|
53879
|
-
onChange: function onChange(e) {
|
|
53880
|
-
return onBulk(e.target.value);
|
|
53881
|
-
},
|
|
53882
|
-
className: "bg-gray-800 border border-white/10 rounded px-3 py-1.5 text-sm min-w-[14rem]",
|
|
53883
|
-
children: [/*#__PURE__*/jsxRuntime.jsx("option", {
|
|
53884
|
-
value: "",
|
|
53885
|
-
children: "\u2014 Select provider \u2014"
|
|
53886
|
-
}), options.map(function (opt) {
|
|
53887
|
-
return /*#__PURE__*/jsxRuntime.jsxs("option", {
|
|
53888
|
-
value: opt.name,
|
|
53889
|
-
children: [opt.name, opt.isDefaultForType ? " (default)" : ""]
|
|
53890
|
-
}, opt.name);
|
|
53891
|
-
})]
|
|
53892
54659
|
})]
|
|
53893
|
-
}), /*#__PURE__*/jsxRuntime.
|
|
53894
|
-
|
|
53895
|
-
|
|
53896
|
-
|
|
53897
|
-
|
|
53898
|
-
});
|
|
53899
|
-
},
|
|
53900
|
-
className: "text-xs opacity-60 hover:opacity-100 flex items-center gap-1",
|
|
53901
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
53902
|
-
icon: expanded ? "chevron-down" : "chevron-right",
|
|
53903
|
-
className: "h-3 w-3"
|
|
53904
|
-
}), expanded ? "Hide" : "Show", " per-widget overrides"]
|
|
53905
|
-
}), expanded && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
53906
|
-
className: "pl-3 border-l border-white/10 space-y-2",
|
|
53907
|
-
children: rows.map(function (row) {
|
|
53908
|
-
var _row$layoutItem;
|
|
53909
|
-
var hasExplicitOverride = !!((_row$layoutItem = row.layoutItem) !== null && _row$layoutItem !== void 0 && (_row$layoutItem = _row$layoutItem.selectedProviders) !== null && _row$layoutItem !== void 0 && _row$layoutItem[providerType]);
|
|
53910
|
-
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
53911
|
-
className: "flex flex-row items-center gap-3",
|
|
54660
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
54661
|
+
className: "flex-1 min-w-0 bg-white/5 border border-white/10 rounded-lg overflow-hidden flex flex-col",
|
|
54662
|
+
children: selectedType ? /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
54663
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
54664
|
+
className: "px-4 py-3 border-b border-white/10 flex-shrink-0",
|
|
53912
54665
|
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
53913
|
-
className: "
|
|
54666
|
+
className: "text-sm font-semibold",
|
|
54667
|
+
children: [selectedType, " ", /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
54668
|
+
className: "opacity-60 font-normal",
|
|
54669
|
+
children: "provider"
|
|
54670
|
+
})]
|
|
54671
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
54672
|
+
className: "text-xs opacity-60 mt-1",
|
|
54673
|
+
children: "Apply one provider to every widget of this type, or adjust per-widget below."
|
|
54674
|
+
})]
|
|
54675
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
54676
|
+
className: "flex-1 overflow-y-auto p-4 space-y-4",
|
|
54677
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
54678
|
+
className: "flex items-center gap-3",
|
|
53914
54679
|
children: [/*#__PURE__*/jsxRuntime.jsx("span", {
|
|
53915
|
-
className: "
|
|
53916
|
-
children:
|
|
53917
|
-
}), /*#__PURE__*/jsxRuntime.
|
|
53918
|
-
|
|
53919
|
-
|
|
53920
|
-
|
|
53921
|
-
|
|
53922
|
-
|
|
53923
|
-
|
|
53924
|
-
|
|
53925
|
-
|
|
53926
|
-
|
|
53927
|
-
|
|
53928
|
-
|
|
54680
|
+
className: "text-xs opacity-60 flex-shrink-0 w-20",
|
|
54681
|
+
children: "Bulk assign"
|
|
54682
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("select", {
|
|
54683
|
+
value: topValue,
|
|
54684
|
+
onChange: function onChange(e) {
|
|
54685
|
+
return onBulk(selectedType, e.target.value);
|
|
54686
|
+
},
|
|
54687
|
+
className: "flex-1 bg-gray-800 border border-white/10 rounded px-3 py-1.5 text-sm",
|
|
54688
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("option", {
|
|
54689
|
+
value: "",
|
|
54690
|
+
children: "\u2014 Select provider \u2014"
|
|
54691
|
+
}), selectedOptions.map(function (opt) {
|
|
54692
|
+
return /*#__PURE__*/jsxRuntime.jsxs("option", {
|
|
54693
|
+
value: opt.name,
|
|
54694
|
+
children: [opt.name, opt.isDefaultForType ? " (default)" : ""]
|
|
54695
|
+
}, opt.name);
|
|
54696
|
+
})]
|
|
53929
54697
|
})]
|
|
53930
|
-
}), /*#__PURE__*/jsxRuntime.jsxs("
|
|
53931
|
-
|
|
53932
|
-
|
|
53933
|
-
|
|
53934
|
-
},
|
|
53935
|
-
|
|
53936
|
-
|
|
53937
|
-
|
|
53938
|
-
|
|
53939
|
-
|
|
53940
|
-
|
|
53941
|
-
|
|
53942
|
-
|
|
53943
|
-
|
|
54698
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
54699
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
54700
|
+
className: "text-xs font-semibold opacity-50 uppercase tracking-wider mb-2",
|
|
54701
|
+
children: "Per-widget"
|
|
54702
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
54703
|
+
children: selectedRows.map(function (row) {
|
|
54704
|
+
var _row$layoutItem;
|
|
54705
|
+
var hasExplicitOverride = !!((_row$layoutItem = row.layoutItem) !== null && _row$layoutItem !== void 0 && (_row$layoutItem = _row$layoutItem.selectedProviders) !== null && _row$layoutItem !== void 0 && _row$layoutItem[selectedType]);
|
|
54706
|
+
var isRequired = !!row.required;
|
|
54707
|
+
var isMissing = !row.resolvedProviderName;
|
|
54708
|
+
var needsAttention = isRequired && isMissing;
|
|
54709
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
54710
|
+
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"),
|
|
54711
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
54712
|
+
className: "flex-1 min-w-0",
|
|
54713
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
54714
|
+
className: "text-sm truncate flex items-center gap-1.5 ".concat(needsAttention ? "font-semibold text-red-100" : "font-medium"),
|
|
54715
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("span", {
|
|
54716
|
+
className: "truncate",
|
|
54717
|
+
children: row.component || "widget"
|
|
54718
|
+
}), isRequired && /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
54719
|
+
className: needsAttention ? "text-red-300" : "text-indigo-300",
|
|
54720
|
+
title: "Required provider",
|
|
54721
|
+
"aria-label": "required",
|
|
54722
|
+
children: "*"
|
|
54723
|
+
})]
|
|
54724
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
54725
|
+
className: "flex items-center gap-1.5 mt-1 text-[10px]",
|
|
54726
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("span", {
|
|
54727
|
+
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"),
|
|
54728
|
+
children: isRequired ? "required" : "optional"
|
|
54729
|
+
}), hasExplicitOverride && /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
54730
|
+
className: "uppercase tracking-wide px-1.5 py-0.5 rounded font-semibold bg-indigo-900 text-indigo-200",
|
|
54731
|
+
children: "override"
|
|
54732
|
+
}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
54733
|
+
className: "opacity-40 truncate ml-1",
|
|
54734
|
+
children: (row.widgetId || "").slice(0, 8)
|
|
54735
|
+
})]
|
|
54736
|
+
})]
|
|
54737
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("select", {
|
|
54738
|
+
value: row.resolvedProviderName || "",
|
|
54739
|
+
onChange: function onChange(e) {
|
|
54740
|
+
return onPerWidget(row.widgetId, selectedType, e.target.value);
|
|
54741
|
+
},
|
|
54742
|
+
className: "bg-gray-800 border rounded px-2 py-1 text-xs min-w-[12rem] ".concat(needsAttention ? "border-red-400" : "border-gray-700"),
|
|
54743
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("option", {
|
|
54744
|
+
value: "",
|
|
54745
|
+
children: "\u2014 none \u2014"
|
|
54746
|
+
}), selectedOptions.map(function (opt) {
|
|
54747
|
+
return /*#__PURE__*/jsxRuntime.jsxs("option", {
|
|
54748
|
+
value: opt.name,
|
|
54749
|
+
children: [opt.name, opt.isDefaultForType ? " (default)" : ""]
|
|
54750
|
+
}, opt.name);
|
|
54751
|
+
})]
|
|
54752
|
+
})]
|
|
54753
|
+
}, "".concat(row.widgetId, ":").concat(row.providerType));
|
|
54754
|
+
})
|
|
54755
|
+
})]
|
|
54756
|
+
})]
|
|
54757
|
+
})]
|
|
54758
|
+
}) : /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
54759
|
+
className: "flex-1 flex items-center justify-center text-sm opacity-60",
|
|
54760
|
+
children: "Pick a provider type to bulk-assign or adjust per widget."
|
|
54761
|
+
})
|
|
54762
|
+
})]
|
|
54763
|
+
});
|
|
54764
|
+
}
|
|
54765
|
+
|
|
54766
|
+
// ─── Listeners tab ──────────────────────────────────────────────────────────
|
|
54767
|
+
|
|
54768
|
+
/**
|
|
54769
|
+
* Match two wiring entries on the four fields that uniquely identify
|
|
54770
|
+
* a listener binding (receiver + handler + source + event). Used to
|
|
54771
|
+
* dedupe stages, cancel opposite-direction stages, and detect "is
|
|
54772
|
+
* this binding already there".
|
|
54773
|
+
*/
|
|
54774
|
+
function sameWiringEntry(a, b) {
|
|
54775
|
+
if (!a || !b) return false;
|
|
54776
|
+
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;
|
|
54777
|
+
}
|
|
54778
|
+
|
|
54779
|
+
/**
|
|
54780
|
+
* Receiver-centric sidebar/detail layout. Mirrors the per-widget
|
|
54781
|
+
* PanelEditItemHandlers pattern (handler-by-handler editing) but
|
|
54782
|
+
* scoped to the whole dashboard. Picking a widget on the left shows
|
|
54783
|
+
* its handlers + currently wired sources on the right; the user
|
|
54784
|
+
* adjusts wiring per handler from a single dropdown of all emitters'
|
|
54785
|
+
* (widget × event) pairs.
|
|
54786
|
+
*/
|
|
54787
|
+
function ListenersTab(_ref6) {
|
|
54788
|
+
var _receivers$;
|
|
54789
|
+
var emitters = _ref6.emitters,
|
|
54790
|
+
receivers = _ref6.receivers,
|
|
54791
|
+
wiring = _ref6.wiring,
|
|
54792
|
+
onAdd = _ref6.onAdd,
|
|
54793
|
+
onRemove = _ref6.onRemove;
|
|
54794
|
+
var _useState1 = React.useState(((_receivers$ = receivers[0]) === null || _receivers$ === void 0 ? void 0 : _receivers$.key) || null),
|
|
54795
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
54796
|
+
selectedReceiverKey = _useState10[0],
|
|
54797
|
+
setSelectedReceiverKey = _useState10[1];
|
|
54798
|
+
var _useState11 = React.useState(null),
|
|
54799
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
54800
|
+
selectedHandler = _useState12[0],
|
|
54801
|
+
setSelectedHandler = _useState12[1];
|
|
54802
|
+
|
|
54803
|
+
// Re-anchor selection if the previously-selected widget disappeared
|
|
54804
|
+
// (workspace switched, widget deleted, etc.).
|
|
54805
|
+
React.useMemo(function () {
|
|
54806
|
+
if (selectedReceiverKey && !receivers.some(function (r) {
|
|
54807
|
+
return r.key === selectedReceiverKey;
|
|
54808
|
+
})) {
|
|
54809
|
+
var _receivers$2;
|
|
54810
|
+
setSelectedReceiverKey(((_receivers$2 = receivers[0]) === null || _receivers$2 === void 0 ? void 0 : _receivers$2.key) || null);
|
|
54811
|
+
}
|
|
54812
|
+
}, [receivers, selectedReceiverKey]);
|
|
54813
|
+
|
|
54814
|
+
// Receiver lookup (by composite key) for label resolution in chips.
|
|
54815
|
+
var receiverByKey = React.useMemo(function () {
|
|
54816
|
+
var m = new Map();
|
|
54817
|
+
var _iterator5 = _createForOfIteratorHelper$4(receivers),
|
|
54818
|
+
_step5;
|
|
54819
|
+
try {
|
|
54820
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
54821
|
+
var r = _step5.value;
|
|
54822
|
+
m.set(r.key, r);
|
|
54823
|
+
}
|
|
54824
|
+
} catch (err) {
|
|
54825
|
+
_iterator5.e(err);
|
|
54826
|
+
} finally {
|
|
54827
|
+
_iterator5.f();
|
|
54828
|
+
}
|
|
54829
|
+
return m;
|
|
54830
|
+
}, [receivers]);
|
|
54831
|
+
if (receivers.length === 0) {
|
|
54832
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
54833
|
+
className: "flex items-center justify-center h-full text-sm opacity-60 text-center",
|
|
54834
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
54835
|
+
children: ["No widgets in this dashboard declare event handlers.", emitters.length > 0 && /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
54836
|
+
className: "mt-2",
|
|
54837
|
+
children: ["(", emitters.length, " widget", emitters.length === 1 ? "" : "s", " emit events but nothing is set up to receive.)"]
|
|
54838
|
+
})]
|
|
54839
|
+
})
|
|
54840
|
+
});
|
|
54841
|
+
}
|
|
54842
|
+
var selectedReceiver = selectedReceiverKey ? receiverByKey.get(selectedReceiverKey) || null : null;
|
|
54843
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
54844
|
+
className: "flex flex-col gap-3 h-full min-h-0",
|
|
54845
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
54846
|
+
className: "flex flex-row gap-3 flex-1 min-h-0",
|
|
54847
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
54848
|
+
className: "w-56 flex-shrink-0 bg-white/5 border border-white/10 rounded-lg overflow-hidden flex flex-col",
|
|
54849
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
54850
|
+
className: "px-3 py-2 text-xs font-semibold opacity-50 uppercase tracking-wider border-b border-white/10",
|
|
54851
|
+
children: "Widgets"
|
|
54852
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
54853
|
+
className: "overflow-y-auto flex-1",
|
|
54854
|
+
children: receivers.map(function (r) {
|
|
54855
|
+
var isActive = r.key === selectedReceiverKey;
|
|
54856
|
+
return /*#__PURE__*/jsxRuntime.jsx("button", {
|
|
54857
|
+
type: "button",
|
|
54858
|
+
onClick: function onClick() {
|
|
54859
|
+
return setSelectedReceiverKey(r.key);
|
|
54860
|
+
},
|
|
54861
|
+
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"),
|
|
54862
|
+
children: /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
54863
|
+
className: "text-sm font-medium truncate",
|
|
54864
|
+
children: r.label
|
|
54865
|
+
})
|
|
54866
|
+
}, r.key);
|
|
54867
|
+
})
|
|
54868
|
+
})]
|
|
54869
|
+
}), selectedReceiver ? /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
54870
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(HandlersColumn, {
|
|
54871
|
+
receiver: selectedReceiver,
|
|
54872
|
+
myWiring: wiring.filter(function (w) {
|
|
54873
|
+
return w.receiverComponent === selectedReceiver.component && String(w.receiverItemId) === String(selectedReceiver.itemId);
|
|
54874
|
+
}),
|
|
54875
|
+
selectedHandler: selectedHandler && selectedReceiver.eventHandlers.includes(selectedHandler) ? selectedHandler : null,
|
|
54876
|
+
onSelectHandler: setSelectedHandler
|
|
54877
|
+
}), /*#__PURE__*/jsxRuntime.jsx(EventsColumn, {
|
|
54878
|
+
receiver: selectedReceiver,
|
|
54879
|
+
handlerName: selectedHandler && selectedReceiver.eventHandlers.includes(selectedHandler) ? selectedHandler : null,
|
|
54880
|
+
myWiring: wiring.filter(function (w) {
|
|
54881
|
+
return w.receiverComponent === selectedReceiver.component && String(w.receiverItemId) === String(selectedReceiver.itemId);
|
|
54882
|
+
}),
|
|
54883
|
+
emitters: emitters,
|
|
54884
|
+
onAdd: onAdd,
|
|
54885
|
+
onRemove: onRemove
|
|
54886
|
+
})]
|
|
54887
|
+
}) : /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
54888
|
+
className: "flex-1 min-w-0 bg-white/5 border border-white/10 rounded-lg flex items-center justify-center text-sm opacity-60",
|
|
54889
|
+
children: "Pick a widget on the left to wire its handlers."
|
|
54890
|
+
})]
|
|
54891
|
+
})
|
|
54892
|
+
});
|
|
54893
|
+
}
|
|
54894
|
+
|
|
54895
|
+
/**
|
|
54896
|
+
* Second column (within ListenersTab): the selected receiver's
|
|
54897
|
+
* handlers with connection counts. Picking one lights up the
|
|
54898
|
+
* third column. Matches the left-column look from
|
|
54899
|
+
* PanelEditItemHandlers.
|
|
54900
|
+
*/
|
|
54901
|
+
function HandlersColumn(_ref8) {
|
|
54902
|
+
var receiver = _ref8.receiver,
|
|
54903
|
+
myWiring = _ref8.myWiring,
|
|
54904
|
+
selectedHandler = _ref8.selectedHandler,
|
|
54905
|
+
onSelectHandler = _ref8.onSelectHandler;
|
|
54906
|
+
var countsByHandler = React.useMemo(function () {
|
|
54907
|
+
var m = new Map();
|
|
54908
|
+
var _iterator6 = _createForOfIteratorHelper$4(myWiring),
|
|
54909
|
+
_step6;
|
|
54910
|
+
try {
|
|
54911
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
54912
|
+
var w = _step6.value;
|
|
54913
|
+
m.set(w.handlerName, (m.get(w.handlerName) || 0) + 1);
|
|
54914
|
+
}
|
|
54915
|
+
} catch (err) {
|
|
54916
|
+
_iterator6.e(err);
|
|
54917
|
+
} finally {
|
|
54918
|
+
_iterator6.f();
|
|
54919
|
+
}
|
|
54920
|
+
return m;
|
|
54921
|
+
}, [myWiring]);
|
|
54922
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
54923
|
+
className: "w-56 flex-shrink-0 bg-white/5 border border-white/10 rounded-lg overflow-hidden flex flex-col",
|
|
54924
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
54925
|
+
className: "px-3 py-2 text-xs font-semibold opacity-50 uppercase tracking-wider border-b border-white/10",
|
|
54926
|
+
children: "Event Handlers"
|
|
54927
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
54928
|
+
className: "overflow-y-auto flex-1",
|
|
54929
|
+
children: receiver.eventHandlers.length === 0 ? /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
54930
|
+
className: "text-xs opacity-50 text-center py-6 px-3",
|
|
54931
|
+
children: "This widget declares no event handlers."
|
|
54932
|
+
}) : receiver.eventHandlers.map(function (h) {
|
|
54933
|
+
var isActive = h === selectedHandler;
|
|
54934
|
+
var count = countsByHandler.get(h) || 0;
|
|
54935
|
+
return /*#__PURE__*/jsxRuntime.jsxs("button", {
|
|
54936
|
+
type: "button",
|
|
54937
|
+
onClick: function onClick() {
|
|
54938
|
+
return onSelectHandler(h);
|
|
54939
|
+
},
|
|
54940
|
+
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"),
|
|
54941
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("span", {
|
|
54942
|
+
className: "flex items-center gap-2 min-w-0",
|
|
54943
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
54944
|
+
icon: "bolt",
|
|
54945
|
+
className: "h-3 w-3 opacity-60 flex-shrink-0"
|
|
54946
|
+
}), /*#__PURE__*/jsxRuntime.jsx("code", {
|
|
54947
|
+
className: "truncate",
|
|
54948
|
+
children: h
|
|
53944
54949
|
})]
|
|
54950
|
+
}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
54951
|
+
className: "text-xs opacity-60 flex-shrink-0",
|
|
54952
|
+
children: count
|
|
53945
54953
|
})]
|
|
53946
|
-
},
|
|
54954
|
+
}, h);
|
|
54955
|
+
})
|
|
54956
|
+
})]
|
|
54957
|
+
});
|
|
54958
|
+
}
|
|
54959
|
+
|
|
54960
|
+
/**
|
|
54961
|
+
* Third column: for the selected (receiver, handler), show every
|
|
54962
|
+
* emitter widget as a section with a checkbox list of its events.
|
|
54963
|
+
* Checked = wired; toggling commits an add/remove. Mirrors the
|
|
54964
|
+
* right-column UX of PanelEditItemHandlers.
|
|
54965
|
+
*/
|
|
54966
|
+
function EventsColumn(_ref9) {
|
|
54967
|
+
var receiver = _ref9.receiver,
|
|
54968
|
+
handlerName = _ref9.handlerName,
|
|
54969
|
+
myWiring = _ref9.myWiring,
|
|
54970
|
+
emitters = _ref9.emitters,
|
|
54971
|
+
onAdd = _ref9.onAdd,
|
|
54972
|
+
onRemove = _ref9.onRemove;
|
|
54973
|
+
// Wired-for-this-handler: dedupe defensively (legacy workspaces
|
|
54974
|
+
// occasionally contain duplicate entries under the same handler).
|
|
54975
|
+
var wiredHere = React.useMemo(function () {
|
|
54976
|
+
var seen = new Set();
|
|
54977
|
+
var out = [];
|
|
54978
|
+
var _iterator7 = _createForOfIteratorHelper$4(myWiring),
|
|
54979
|
+
_step7;
|
|
54980
|
+
try {
|
|
54981
|
+
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
54982
|
+
var w = _step7.value;
|
|
54983
|
+
if (w.handlerName !== handlerName) continue;
|
|
54984
|
+
var key = "".concat(w.sourceComponent, "|").concat(w.sourceItemId, "|").concat(w.eventName);
|
|
54985
|
+
if (seen.has(key)) continue;
|
|
54986
|
+
seen.add(key);
|
|
54987
|
+
out.push(w);
|
|
54988
|
+
}
|
|
54989
|
+
} catch (err) {
|
|
54990
|
+
_iterator7.e(err);
|
|
54991
|
+
} finally {
|
|
54992
|
+
_iterator7.f();
|
|
54993
|
+
}
|
|
54994
|
+
return out;
|
|
54995
|
+
}, [myWiring, handlerName]);
|
|
54996
|
+
var wiredKeys = React.useMemo(function () {
|
|
54997
|
+
return new Set(wiredHere.map(function (w) {
|
|
54998
|
+
return "".concat(w.sourceComponent, "|").concat(w.sourceItemId, "|").concat(w.eventName);
|
|
54999
|
+
}));
|
|
55000
|
+
}, [wiredHere]);
|
|
55001
|
+
|
|
55002
|
+
// Separate orphans — these reference sources no longer in the
|
|
55003
|
+
// workspace, so they don't appear in the emitter sections below.
|
|
55004
|
+
wiredHere.filter(function (w) {
|
|
55005
|
+
return w.isOrphan;
|
|
55006
|
+
});
|
|
55007
|
+
if (!handlerName) {
|
|
55008
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
55009
|
+
className: "flex-1 min-w-0 bg-white/5 border border-white/10 rounded-lg flex items-center justify-center text-sm opacity-60",
|
|
55010
|
+
children: "Select a handler to view available events."
|
|
55011
|
+
});
|
|
55012
|
+
}
|
|
55013
|
+
function toggle(source) {
|
|
55014
|
+
var key = "".concat(source.sourceComponent, "|").concat(source.sourceItemId, "|").concat(source.eventName);
|
|
55015
|
+
if (wiredKeys.has(key)) {
|
|
55016
|
+
var existing = wiredHere.find(function (w) {
|
|
55017
|
+
return "".concat(w.sourceComponent, "|").concat(w.sourceItemId, "|").concat(w.eventName) === key;
|
|
55018
|
+
});
|
|
55019
|
+
onRemove(existing);
|
|
55020
|
+
} else {
|
|
55021
|
+
onAdd({
|
|
55022
|
+
receiverItemId: receiver.itemId,
|
|
55023
|
+
receiverComponent: receiver.component,
|
|
55024
|
+
handlerName: handlerName,
|
|
55025
|
+
sourceComponent: source.sourceComponent,
|
|
55026
|
+
sourceItemId: source.sourceItemId,
|
|
55027
|
+
eventName: source.eventName
|
|
55028
|
+
});
|
|
55029
|
+
}
|
|
55030
|
+
}
|
|
55031
|
+
|
|
55032
|
+
// Hide the selected receiver from its own emitter list — a widget
|
|
55033
|
+
// listening to its own events is almost always a mistake.
|
|
55034
|
+
var emittersForList = emitters.filter(function (e) {
|
|
55035
|
+
return !(e.component === receiver.component && String(e.itemId) === String(receiver.itemId));
|
|
55036
|
+
});
|
|
55037
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
55038
|
+
className: "flex-1 min-w-0 bg-white/5 border border-white/10 rounded-lg overflow-hidden flex flex-col",
|
|
55039
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
55040
|
+
className: "flex-shrink-0 px-4 py-2 border-b border-white/10 text-xs opacity-60",
|
|
55041
|
+
children: ["Check an event to fire", " ", /*#__PURE__*/jsxRuntime.jsx("code", {
|
|
55042
|
+
className: "text-xs",
|
|
55043
|
+
children: handlerName
|
|
55044
|
+
}), " on", " ", /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
55045
|
+
className: "font-medium",
|
|
55046
|
+
children: receiver.label
|
|
55047
|
+
}), "."]
|
|
55048
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
55049
|
+
className: "flex-1 overflow-y-auto p-4 space-y-5",
|
|
55050
|
+
children: emittersForList.length === 0 ? /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
55051
|
+
className: "text-sm opacity-60",
|
|
55052
|
+
children: "No other widgets in this dashboard emit events."
|
|
55053
|
+
}) : emittersForList.map(function (e) {
|
|
55054
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
55055
|
+
className: "space-y-1",
|
|
55056
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
55057
|
+
className: "text-xs font-semibold opacity-50 uppercase tracking-wider",
|
|
55058
|
+
children: e.label
|
|
55059
|
+
}), e.events.map(function (eventName) {
|
|
55060
|
+
var key = "".concat(e.component, "|").concat(e.itemId, "|").concat(eventName);
|
|
55061
|
+
var selected = wiredKeys.has(key);
|
|
55062
|
+
return /*#__PURE__*/jsxRuntime.jsxs("label", {
|
|
55063
|
+
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"),
|
|
55064
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
55065
|
+
icon: selected ? "square-check" : "square",
|
|
55066
|
+
className: "h-4 w-4 flex-shrink-0",
|
|
55067
|
+
onClick: function onClick(ev) {
|
|
55068
|
+
ev.preventDefault();
|
|
55069
|
+
toggle({
|
|
55070
|
+
sourceComponent: e.component,
|
|
55071
|
+
sourceItemId: e.itemId,
|
|
55072
|
+
eventName: eventName
|
|
55073
|
+
});
|
|
55074
|
+
}
|
|
55075
|
+
}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
55076
|
+
children: eventName
|
|
55077
|
+
})]
|
|
55078
|
+
}, key);
|
|
55079
|
+
})]
|
|
55080
|
+
}, e.key || "".concat(e.component, "|").concat(e.itemId));
|
|
53947
55081
|
})
|
|
53948
55082
|
})]
|
|
53949
55083
|
});
|
|
@@ -54210,7 +55344,7 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
54210
55344
|
_useState42 = _slicedToArray(_useState41, 2),
|
|
54211
55345
|
isConfigModalOpen = _useState42[0],
|
|
54212
55346
|
setIsConfigModalOpen = _useState42[1];
|
|
54213
|
-
|
|
55347
|
+
React.useRef(new Set());
|
|
54214
55348
|
var _useState43 = React.useState(new Set()),
|
|
54215
55349
|
_useState44 = _slicedToArray(_useState43, 2),
|
|
54216
55350
|
dismissedUnresolvedForWorkspace = _useState44[0],
|
|
@@ -54745,7 +55879,29 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
54745
55879
|
}
|
|
54746
55880
|
}
|
|
54747
55881
|
|
|
54748
|
-
// ───
|
|
55882
|
+
// ─── Bulk listener binding save ──────────────────────────────────
|
|
55883
|
+
// Takes { adds, removes } from the Dashboard Config modal's
|
|
55884
|
+
// Listeners tab and writes the updated workspace once. Applies the
|
|
55885
|
+
// delta via applyWiringChanges (uses item.listeners directly so the
|
|
55886
|
+
// existing PanelEditItemHandlers / runtime stays consistent).
|
|
55887
|
+
function handleBulkListenerBindings(changes) {
|
|
55888
|
+
if (!workspaceSelected || !dashApi || !(credentials !== null && credentials !== void 0 && credentials.appId)) return;
|
|
55889
|
+
if (!changes || (!changes.adds || changes.adds.length === 0) && (!changes.removes || changes.removes.length === 0)) {
|
|
55890
|
+
return;
|
|
55891
|
+
}
|
|
55892
|
+
var updatedWorkspace = applyWiringChanges(workspaceSelected, changes);
|
|
55893
|
+
updateTabWorkspace(updatedWorkspace);
|
|
55894
|
+
try {
|
|
55895
|
+
dashApi.saveWorkspace(credentials.appId, updatedWorkspace, function (e, result) {
|
|
55896
|
+
return (void 0);
|
|
55897
|
+
}, function (e, error) {
|
|
55898
|
+
return (void 0);
|
|
55899
|
+
});
|
|
55900
|
+
} catch (e) {
|
|
55901
|
+
}
|
|
55902
|
+
}
|
|
55903
|
+
|
|
55904
|
+
// ─── Unresolved providers + listener orphans (modal + auto-open) ─
|
|
54749
55905
|
var unresolvedProviders = React.useMemo(function () {
|
|
54750
55906
|
return getUnresolvedProviders({
|
|
54751
55907
|
workspace: workspaceSelected,
|
|
@@ -54756,19 +55912,16 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
54756
55912
|
}
|
|
54757
55913
|
});
|
|
54758
55914
|
}, [workspaceSelected, appContext === null || appContext === void 0 ? void 0 : appContext.providers]);
|
|
54759
|
-
var
|
|
55915
|
+
var unresolvedProvidersCount = unresolvedProviders.length;
|
|
55916
|
+
// Listener orphans are pruned in WorkspaceModel / DashboardModel at
|
|
55917
|
+
// load time, so the badge only counts unresolved provider bindings.
|
|
55918
|
+
var unresolvedCount = unresolvedProvidersCount;
|
|
54760
55919
|
|
|
54761
|
-
//
|
|
54762
|
-
//
|
|
54763
|
-
//
|
|
54764
|
-
|
|
54765
|
-
|
|
54766
|
-
if (unresolvedCount === 0) return;
|
|
54767
|
-
if (configModalAutoOpenedFor.current.has(workspaceSelected.id)) return;
|
|
54768
|
-
if (dismissedUnresolvedForWorkspace.has(workspaceSelected.id)) return;
|
|
54769
|
-
configModalAutoOpenedFor.current.add(workspaceSelected.id);
|
|
54770
|
-
setIsConfigModalOpen(true);
|
|
54771
|
-
}, [workspaceSelected === null || workspaceSelected === void 0 ? void 0 : workspaceSelected.id, unresolvedCount, dismissedUnresolvedForWorkspace]);
|
|
55920
|
+
// (No auto-open.) Earlier versions popped the modal on first load
|
|
55921
|
+
// when anything was unresolved — turned out to be jarring,
|
|
55922
|
+
// especially on dashboards that had a long-standing orphan list.
|
|
55923
|
+
// Awareness is delivered passively now: the gear icon's amber dot
|
|
55924
|
+
// and the banner. The user opens the modal when they're ready.
|
|
54772
55925
|
|
|
54773
55926
|
// ─── Sidebar State ────────────────────────────────────────────────
|
|
54774
55927
|
var sidebarEnabled = (workspaceSelected === null || workspaceSelected === void 0 ? void 0 : workspaceSelected.sidebarEnabled) || false;
|
|
@@ -55519,7 +56672,11 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
55519
56672
|
sidebarEnabled: sidebarEnabled,
|
|
55520
56673
|
onSidebarChange: popout ? null : handleSidebarToggle,
|
|
55521
56674
|
scrollableEnabled: workspacePages.length <= 1 ? getRootScrollable() : undefined,
|
|
55522
|
-
onScrollableChange: workspacePages.length <= 1 && !popout ? handleScrollableChange : null
|
|
56675
|
+
onScrollableChange: workspacePages.length <= 1 && !popout ? handleScrollableChange : null,
|
|
56676
|
+
onOpenConfig: popout || previewMode ? null : function () {
|
|
56677
|
+
return setIsConfigModalOpen(true);
|
|
56678
|
+
},
|
|
56679
|
+
configUnresolvedCount: unresolvedCount
|
|
55523
56680
|
}), /*#__PURE__*/jsxRuntime.jsxs(DashboardThemeProvider, {
|
|
55524
56681
|
themeKey: workspaceSelected === null || workspaceSelected === void 0 ? void 0 : workspaceSelected.themeKey,
|
|
55525
56682
|
children: [hasMissing && missingComponents.length >= 2 && !dismissedMissingForWorkspace.has(workspaceSelected === null || workspaceSelected === void 0 ? void 0 : workspaceSelected.id) && /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
@@ -55550,14 +56707,14 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
55550
56707
|
className: "h-3 w-3"
|
|
55551
56708
|
})
|
|
55552
56709
|
})]
|
|
55553
|
-
}), unresolvedCount > 0 && !dismissedUnresolvedForWorkspace.has(workspaceSelected === null || workspaceSelected === void 0 ? void 0 : workspaceSelected.id) && /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
56710
|
+
}), unresolvedCount > 0 && !previewMode && !dismissedUnresolvedForWorkspace.has(workspaceSelected === null || workspaceSelected === void 0 ? void 0 : workspaceSelected.id) && /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
55554
56711
|
className: "flex items-center gap-2 px-4 py-2 bg-amber-500/10 border-b border-amber-500/20 flex-shrink-0",
|
|
55555
56712
|
children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
55556
56713
|
icon: "triangle-exclamation",
|
|
55557
56714
|
className: "h-3.5 w-3.5 text-amber-400 flex-shrink-0"
|
|
55558
|
-
}), /*#__PURE__*/jsxRuntime.
|
|
56715
|
+
}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
55559
56716
|
className: "text-xs text-amber-300/90 flex-1",
|
|
55560
|
-
children: [
|
|
56717
|
+
children: [unresolvedProvidersCount > 0 && "".concat(unresolvedProvidersCount, " widget").concat(unresolvedProvidersCount === 1 ? "" : "s", " need").concat(unresolvedProvidersCount === 1 ? "s" : "", " a provider")].filter(Boolean).join(" · ")
|
|
55561
56718
|
}), /*#__PURE__*/jsxRuntime.jsx("button", {
|
|
55562
56719
|
type: "button",
|
|
55563
56720
|
onClick: function onClick() {
|
|
@@ -55746,7 +56903,12 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
|
|
|
55746
56903
|
var _ComponentManager$com2;
|
|
55747
56904
|
return name && ((_ComponentManager$com2 = ComponentManager.componentMap()[name]) === null || _ComponentManager$com2 === void 0 ? void 0 : _ComponentManager$com2.providers) || [];
|
|
55748
56905
|
},
|
|
55749
|
-
|
|
56906
|
+
getWidgetConfig: function getWidgetConfig(name) {
|
|
56907
|
+
return name && ComponentManager.componentMap()[name] || null;
|
|
56908
|
+
},
|
|
56909
|
+
onSaveBindings: handleBulkProviderBindings,
|
|
56910
|
+
onSaveListeners: handleBulkListenerBindings,
|
|
56911
|
+
initialTab: "providers"
|
|
55750
56912
|
})]
|
|
55751
56913
|
})]
|
|
55752
56914
|
}), !popout && /*#__PURE__*/jsxRuntime.jsx(DashCommandPalette, {
|
|
@@ -55959,7 +57121,11 @@ var DashboardHeader = function DashboardHeader(_ref) {
|
|
|
55959
57121
|
_ref$sidebarEnabled = _ref.sidebarEnabled,
|
|
55960
57122
|
sidebarEnabled = _ref$sidebarEnabled === void 0 ? false : _ref$sidebarEnabled,
|
|
55961
57123
|
_ref$onSidebarChange = _ref.onSidebarChange,
|
|
55962
|
-
onSidebarChange = _ref$onSidebarChange === void 0 ? null : _ref$onSidebarChange
|
|
57124
|
+
onSidebarChange = _ref$onSidebarChange === void 0 ? null : _ref$onSidebarChange,
|
|
57125
|
+
_ref$onOpenConfig = _ref.onOpenConfig,
|
|
57126
|
+
onOpenConfig = _ref$onOpenConfig === void 0 ? null : _ref$onOpenConfig,
|
|
57127
|
+
_ref$configUnresolved = _ref.configUnresolvedCount,
|
|
57128
|
+
configUnresolvedCount = _ref$configUnresolved === void 0 ? 0 : _ref$configUnresolved;
|
|
55963
57129
|
var _useState = React.useState(workspace),
|
|
55964
57130
|
_useState2 = _slicedToArray(_useState, 2),
|
|
55965
57131
|
workspaceSelected = _useState2[0],
|
|
@@ -56079,8 +57245,11 @@ var DashboardHeader = function DashboardHeader(_ref) {
|
|
|
56079
57245
|
setEnabled: onSidebarChange
|
|
56080
57246
|
})]
|
|
56081
57247
|
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
56082
|
-
className: "flex flex-row space-x-1 shrink-0",
|
|
56083
|
-
children: [
|
|
57248
|
+
className: "flex flex-row space-x-1 shrink-0 items-center",
|
|
57249
|
+
children: [onOpenConfig !== null && /*#__PURE__*/jsxRuntime.jsx(DashboardConfigButton, {
|
|
57250
|
+
onClick: onOpenConfig,
|
|
57251
|
+
unresolvedCount: configUnresolvedCount
|
|
57252
|
+
}), onClickEdit !== null && /*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon2, {
|
|
56084
57253
|
icon: "xmark",
|
|
56085
57254
|
text: "Cancel",
|
|
56086
57255
|
onClick: onClickEdit,
|
|
@@ -56097,6 +57266,29 @@ var DashboardHeader = function DashboardHeader(_ref) {
|
|
|
56097
57266
|
});
|
|
56098
57267
|
};
|
|
56099
57268
|
|
|
57269
|
+
/**
|
|
57270
|
+
* DashboardConfigButton — gear icon with an optional amber dot when the
|
|
57271
|
+
* current dashboard has unresolved provider bindings. Opens the
|
|
57272
|
+
* Dashboard Config modal. Kept local to DashboardHeader because no
|
|
57273
|
+
* other caller needs it.
|
|
57274
|
+
*/
|
|
57275
|
+
function DashboardConfigButton(_ref8) {
|
|
57276
|
+
var onClick = _ref8.onClick,
|
|
57277
|
+
_ref8$unresolvedCount = _ref8.unresolvedCount,
|
|
57278
|
+
unresolvedCount = _ref8$unresolvedCount === void 0 ? 0 : _ref8$unresolvedCount;
|
|
57279
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
57280
|
+
className: "relative inline-flex",
|
|
57281
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, {
|
|
57282
|
+
icon: "sliders",
|
|
57283
|
+
onClick: onClick,
|
|
57284
|
+
hoverBackgroundColor: "hover:bg-indigo-700"
|
|
57285
|
+
}), unresolvedCount > 0 && /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
57286
|
+
className: "absolute top-1 right-1 h-2 w-2 rounded-full bg-amber-400 border border-black/40 pointer-events-none",
|
|
57287
|
+
title: "".concat(unresolvedCount, " unresolved provider").concat(unresolvedCount === 1 ? "" : "s")
|
|
57288
|
+
})]
|
|
57289
|
+
});
|
|
57290
|
+
}
|
|
57291
|
+
|
|
56100
57292
|
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; }
|
|
56101
57293
|
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; }
|
|
56102
57294
|
var MAX_LOG_ENTRIES = 200;
|