@trops/dash-core 0.1.441 → 0.1.443
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 +297 -139
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +249 -73
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3075,9 +3075,9 @@ var LayoutContainer = function LayoutContainer(_ref) {
|
|
|
3075
3075
|
|
|
3076
3076
|
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; }
|
|
3077
3077
|
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; }
|
|
3078
|
-
function _createForOfIteratorHelper$
|
|
3079
|
-
function _unsupportedIterableToArray$
|
|
3080
|
-
function _arrayLikeToArray$
|
|
3078
|
+
function _createForOfIteratorHelper$w(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$w(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$w(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$w(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$w(r, a) : void 0; } }
|
|
3080
|
+
function _arrayLikeToArray$w(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,7 +3351,7 @@ function createLayoutFromTemplate(template) {
|
|
|
3351
3351
|
cols: template.cols,
|
|
3352
3352
|
gap: "gap-2"
|
|
3353
3353
|
};
|
|
3354
|
-
var _iterator = _createForOfIteratorHelper$
|
|
3354
|
+
var _iterator = _createForOfIteratorHelper$w(template.cells),
|
|
3355
3355
|
_step;
|
|
3356
3356
|
try {
|
|
3357
3357
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -4282,9 +4282,9 @@ var RegistryAuthModal = function RegistryAuthModal(_ref) {
|
|
|
4282
4282
|
});
|
|
4283
4283
|
};
|
|
4284
4284
|
|
|
4285
|
-
function _createForOfIteratorHelper$
|
|
4286
|
-
function _unsupportedIterableToArray$
|
|
4287
|
-
function _arrayLikeToArray$
|
|
4285
|
+
function _createForOfIteratorHelper$v(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$v(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$v(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$v(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$v(r, a) : void 0; } }
|
|
4287
|
+
function _arrayLikeToArray$v(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
4288
|
function ownKeys$X(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
4289
4289
|
function _objectSpread$X(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$X(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$X(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4290
4290
|
var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
|
|
@@ -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$v(widgetDeps),
|
|
4529
4529
|
_step;
|
|
4530
4530
|
try {
|
|
4531
4531
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -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$u(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$u(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$u(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$u(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$u(r, a) : void 0; } }
|
|
6305
|
+
function _arrayLikeToArray$u(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$u(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$u(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$u(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$u(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$u(pkg.widgets || []);
|
|
6465
6465
|
try {
|
|
6466
6466
|
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
6467
6467
|
widget = _step4.value;
|
|
@@ -7082,9 +7082,9 @@ function applyFilters(items, filters, mode) {
|
|
|
7082
7082
|
});
|
|
7083
7083
|
}
|
|
7084
7084
|
|
|
7085
|
-
function _createForOfIteratorHelper$
|
|
7086
|
-
function _unsupportedIterableToArray$
|
|
7087
|
-
function _arrayLikeToArray$
|
|
7085
|
+
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; } } }; }
|
|
7086
|
+
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; } }
|
|
7087
|
+
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; }
|
|
7088
7088
|
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; }
|
|
7089
7089
|
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; }
|
|
7090
7090
|
var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
|
|
@@ -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$t(state.selectedWidgets);
|
|
7312
7312
|
_context2.prev = 13;
|
|
7313
7313
|
_iterator.s();
|
|
7314
7314
|
case 14:
|
|
@@ -12996,9 +12996,9 @@ var PanelEditItem = function PanelEditItem(_ref) {
|
|
|
12996
12996
|
};
|
|
12997
12997
|
|
|
12998
12998
|
var _excluded$6 = ["rows", "cols"];
|
|
12999
|
-
function _createForOfIteratorHelper$
|
|
13000
|
-
function _unsupportedIterableToArray$
|
|
13001
|
-
function _arrayLikeToArray$
|
|
12999
|
+
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; } } }; }
|
|
13000
|
+
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; } }
|
|
13001
|
+
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; }
|
|
13002
13002
|
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; }
|
|
13003
13003
|
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; }
|
|
13004
13004
|
var defaultGrid = {
|
|
@@ -13151,7 +13151,7 @@ function GridEditor(_ref) {
|
|
|
13151
13151
|
function sortObjectByKeys(obj) {
|
|
13152
13152
|
var sortedKeys = Object.keys(obj).sort();
|
|
13153
13153
|
var sortedObj = {};
|
|
13154
|
-
var _iterator = _createForOfIteratorHelper$
|
|
13154
|
+
var _iterator = _createForOfIteratorHelper$s(sortedKeys),
|
|
13155
13155
|
_step;
|
|
13156
13156
|
try {
|
|
13157
13157
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -13624,9 +13624,9 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
|
|
|
13624
13624
|
});
|
|
13625
13625
|
};
|
|
13626
13626
|
|
|
13627
|
-
function _createForOfIteratorHelper$
|
|
13628
|
-
function _unsupportedIterableToArray$
|
|
13629
|
-
function _arrayLikeToArray$
|
|
13627
|
+
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; } } }; }
|
|
13628
|
+
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; } }
|
|
13629
|
+
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; }
|
|
13630
13630
|
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; }
|
|
13631
13631
|
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; }
|
|
13632
13632
|
var DAYS = [{
|
|
@@ -13955,7 +13955,7 @@ var PanelEditItemSchedule = function PanelEditItemSchedule(_ref2) {
|
|
|
13955
13955
|
setIsLoading(true);
|
|
13956
13956
|
window.mainApi.scheduler.getTasks(widgetUuid).then(function (tasks) {
|
|
13957
13957
|
var stateMap = {};
|
|
13958
|
-
var _iterator = _createForOfIteratorHelper$
|
|
13958
|
+
var _iterator = _createForOfIteratorHelper$r(tasks || []),
|
|
13959
13959
|
_step;
|
|
13960
13960
|
try {
|
|
13961
13961
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -14164,9 +14164,59 @@ function pickWidgetRef(item) {
|
|
|
14164
14164
|
return parts.length === 3 ? c : null;
|
|
14165
14165
|
}
|
|
14166
14166
|
|
|
14167
|
-
|
|
14168
|
-
|
|
14169
|
-
|
|
14167
|
+
/**
|
|
14168
|
+
* Cross-dashboard isolation gate. Layout items carry a `dashboardId`
|
|
14169
|
+
* stamp from `LayoutModel`; this helper drops items whose stamp
|
|
14170
|
+
* doesn't match the surrounding workspace's id. Used at every
|
|
14171
|
+
* workspace-walking surface (Listeners / Providers / Widgets tabs,
|
|
14172
|
+
* bulk-edit panes, dependency resolution) to prevent items leaked
|
|
14173
|
+
* from another dashboard's tree from showing up.
|
|
14174
|
+
*
|
|
14175
|
+
* STRICT mode (workspace has an id): item must have a matching
|
|
14176
|
+
* `dashboardId`. No dashboardId → reject. Different dashboardId → reject.
|
|
14177
|
+
*
|
|
14178
|
+
* PERMISSIVE mode (workspace has no id — synthetic test fixtures
|
|
14179
|
+
* and in-memory sandboxes): everything passes.
|
|
14180
|
+
*
|
|
14181
|
+
* @param {Object} item
|
|
14182
|
+
* @param {Object} workspace
|
|
14183
|
+
* @returns {boolean}
|
|
14184
|
+
*/
|
|
14185
|
+
function belongsToWorkspace(item, workspace) {
|
|
14186
|
+
var wsId = workspace === null || workspace === void 0 ? void 0 : workspace.id;
|
|
14187
|
+
if (wsId === undefined || wsId === null) return true;
|
|
14188
|
+
var itemDashId = item === null || item === void 0 ? void 0 : item.dashboardId;
|
|
14189
|
+
if (itemDashId === undefined || itemDashId === null) return false;
|
|
14190
|
+
return String(itemDashId) === String(wsId);
|
|
14191
|
+
}
|
|
14192
|
+
var FRAMEWORK_CONTAINER_COMPONENTS = new Set(["LayoutGridContainer", "Container", "LayoutContainer"]);
|
|
14193
|
+
|
|
14194
|
+
/**
|
|
14195
|
+
* Is this layout item a USER widget (i.e. something the user added
|
|
14196
|
+
* via the widget sidebar / drag-drop)? False for framework chrome —
|
|
14197
|
+
* `LayoutGridContainer`, `Container`, `LayoutContainer` — which the
|
|
14198
|
+
* dashboard config UI shouldn't expose as a configurable widget,
|
|
14199
|
+
* even though the layout walker visits them.
|
|
14200
|
+
*
|
|
14201
|
+
* Filter is by COMPONENT NAME only, not by `item.type`.
|
|
14202
|
+
* `LayoutModel` defaults `type: "layout"` when the source data
|
|
14203
|
+
* doesn't set it explicitly (`layout.type = "type" in obj ? obj.type
|
|
14204
|
+
* : "layout"`), and most persisted user widgets fall into that
|
|
14205
|
+
* default — so a `type !== "widget"` check would silently drop
|
|
14206
|
+
* legitimate widgets from every list.
|
|
14207
|
+
*
|
|
14208
|
+
* @param {Object} item
|
|
14209
|
+
* @returns {boolean}
|
|
14210
|
+
*/
|
|
14211
|
+
function isUserWidget(item) {
|
|
14212
|
+
if (!item || _typeof(item) !== "object" || !item.component) return false;
|
|
14213
|
+
if (FRAMEWORK_CONTAINER_COMPONENTS.has(item.component)) return false;
|
|
14214
|
+
return true;
|
|
14215
|
+
}
|
|
14216
|
+
|
|
14217
|
+
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; } } }; }
|
|
14218
|
+
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; } }
|
|
14219
|
+
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; }
|
|
14170
14220
|
|
|
14171
14221
|
/**
|
|
14172
14222
|
* Resolve which provider name a given widget instance would bind to for
|
|
@@ -14198,7 +14248,7 @@ function resolveProviderName(_ref) {
|
|
|
14198
14248
|
// array. Support both because different callers shape it either way.
|
|
14199
14249
|
if (appProviders) {
|
|
14200
14250
|
if (Array.isArray(appProviders)) {
|
|
14201
|
-
var _iterator = _createForOfIteratorHelper$
|
|
14251
|
+
var _iterator = _createForOfIteratorHelper$q(appProviders),
|
|
14202
14252
|
_step;
|
|
14203
14253
|
try {
|
|
14204
14254
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -14258,7 +14308,7 @@ function forEachWidget(workspace, visit) {
|
|
|
14258
14308
|
};
|
|
14259
14309
|
var _walk = function walk(items) {
|
|
14260
14310
|
if (!Array.isArray(items)) return;
|
|
14261
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
14311
|
+
var _iterator2 = _createForOfIteratorHelper$q(items),
|
|
14262
14312
|
_step2;
|
|
14263
14313
|
try {
|
|
14264
14314
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -14288,7 +14338,7 @@ function forEachWidget(workspace, visit) {
|
|
|
14288
14338
|
};
|
|
14289
14339
|
_walk(workspace.layout);
|
|
14290
14340
|
if (Array.isArray(workspace.pages)) {
|
|
14291
|
-
var _iterator3 = _createForOfIteratorHelper$
|
|
14341
|
+
var _iterator3 = _createForOfIteratorHelper$q(workspace.pages),
|
|
14292
14342
|
_step3;
|
|
14293
14343
|
try {
|
|
14294
14344
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
@@ -14327,10 +14377,12 @@ function getUnresolvedProviders(_ref2) {
|
|
|
14327
14377
|
if (!workspace || typeof getWidgetRequirements !== "function") return [];
|
|
14328
14378
|
var unresolved = [];
|
|
14329
14379
|
forEachWidget(workspace, function (item) {
|
|
14380
|
+
if (!isUserWidget(item)) return;
|
|
14381
|
+
if (!belongsToWorkspace(item, workspace)) return;
|
|
14330
14382
|
var requirements = getWidgetRequirements(item.component) || [];
|
|
14331
14383
|
if (!Array.isArray(requirements) || requirements.length === 0) return;
|
|
14332
14384
|
var widgetId = item.uuidString || item.uuid || item.id || null;
|
|
14333
|
-
var _iterator4 = _createForOfIteratorHelper$
|
|
14385
|
+
var _iterator4 = _createForOfIteratorHelper$q(requirements),
|
|
14334
14386
|
_step4;
|
|
14335
14387
|
try {
|
|
14336
14388
|
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
@@ -14371,7 +14423,7 @@ function getUnresolvedProviders(_ref2) {
|
|
|
14371
14423
|
*/
|
|
14372
14424
|
function groupByProviderType(unresolved) {
|
|
14373
14425
|
var byType = new Map();
|
|
14374
|
-
var _iterator5 = _createForOfIteratorHelper$
|
|
14426
|
+
var _iterator5 = _createForOfIteratorHelper$q(unresolved || []),
|
|
14375
14427
|
_step5;
|
|
14376
14428
|
try {
|
|
14377
14429
|
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
@@ -14402,10 +14454,12 @@ function getAllProviderBindings(_ref3) {
|
|
|
14402
14454
|
if (!workspace || typeof getWidgetRequirements !== "function") return [];
|
|
14403
14455
|
var bindings = [];
|
|
14404
14456
|
forEachWidget(workspace, function (item) {
|
|
14457
|
+
if (!isUserWidget(item)) return;
|
|
14458
|
+
if (!belongsToWorkspace(item, workspace)) return;
|
|
14405
14459
|
var requirements = getWidgetRequirements(item.component) || [];
|
|
14406
14460
|
if (!Array.isArray(requirements) || requirements.length === 0) return;
|
|
14407
14461
|
var widgetId = item.uuidString || item.uuid || item.id || null;
|
|
14408
|
-
var _iterator6 = _createForOfIteratorHelper$
|
|
14462
|
+
var _iterator6 = _createForOfIteratorHelper$q(requirements),
|
|
14409
14463
|
_step6;
|
|
14410
14464
|
try {
|
|
14411
14465
|
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
@@ -14445,9 +14499,9 @@ function getAllProviderBindings(_ref3) {
|
|
|
14445
14499
|
|
|
14446
14500
|
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; }
|
|
14447
14501
|
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; }
|
|
14448
|
-
function _createForOfIteratorHelper$
|
|
14449
|
-
function _unsupportedIterableToArray$
|
|
14450
|
-
function _arrayLikeToArray$
|
|
14502
|
+
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; } } }; }
|
|
14503
|
+
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; } }
|
|
14504
|
+
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; }
|
|
14451
14505
|
var EVENT_STRING_RE = /^([^[]+)\[([^\]]+)\]\.(.+)$/;
|
|
14452
14506
|
|
|
14453
14507
|
/** Parse "Component[itemId].event" → { component, itemId, event }. */
|
|
@@ -14534,6 +14588,10 @@ function eventHandlersOf(item, getWidgetConfig) {
|
|
|
14534
14588
|
return _toConsumableArray(new Set([].concat(_toConsumableArray(inline), _toConsumableArray(fromCfg))));
|
|
14535
14589
|
}
|
|
14536
14590
|
|
|
14591
|
+
// belongsToWorkspace lives in `widgetIdentity.js` (imported above) so
|
|
14592
|
+
// every workspace-walker — Listeners, Providers, Widgets, bulk-edit
|
|
14593
|
+
// panes — uses the same cross-dashboard isolation gate.
|
|
14594
|
+
|
|
14537
14595
|
/**
|
|
14538
14596
|
* Every widget instance in the workspace that emits at least one event.
|
|
14539
14597
|
* Deduplicated by `${component}|${itemId}` — the same compound key that
|
|
@@ -14544,6 +14602,8 @@ function eventHandlersOf(item, getWidgetConfig) {
|
|
|
14544
14602
|
function getEmitters(workspace, getWidgetConfig) {
|
|
14545
14603
|
var byKey = new Map();
|
|
14546
14604
|
forEachWidget(workspace, function (item) {
|
|
14605
|
+
if (!isUserWidget(item)) return;
|
|
14606
|
+
if (!belongsToWorkspace(item, workspace)) return;
|
|
14547
14607
|
var events = eventsOf(item, getWidgetConfig);
|
|
14548
14608
|
if (events.length === 0) return;
|
|
14549
14609
|
var key = canonicalItemKey(item);
|
|
@@ -14570,6 +14630,8 @@ function getEmitters(workspace, getWidgetConfig) {
|
|
|
14570
14630
|
function getReceivers(workspace, getWidgetConfig) {
|
|
14571
14631
|
var byKey = new Map();
|
|
14572
14632
|
forEachWidget(workspace, function (item) {
|
|
14633
|
+
if (!isUserWidget(item)) return;
|
|
14634
|
+
if (!belongsToWorkspace(item, workspace)) return;
|
|
14573
14635
|
var handlers = eventHandlersOf(item, getWidgetConfig);
|
|
14574
14636
|
if (handlers.length === 0) return;
|
|
14575
14637
|
var key = canonicalItemKey(item);
|
|
@@ -14597,6 +14659,7 @@ function getReceivers(workspace, getWidgetConfig) {
|
|
|
14597
14659
|
function getCurrentWiring(workspace) {
|
|
14598
14660
|
var wiring = [];
|
|
14599
14661
|
forEachWidget(workspace, function (item) {
|
|
14662
|
+
if (!belongsToWorkspace(item, workspace)) return;
|
|
14600
14663
|
var receiverItemId = itemIdOf(item);
|
|
14601
14664
|
if (receiverItemId == null) return;
|
|
14602
14665
|
var listeners = item.listeners;
|
|
@@ -14608,7 +14671,7 @@ function getCurrentWiring(workspace) {
|
|
|
14608
14671
|
// Live format is array; defensive guard for legacy object
|
|
14609
14672
|
// form (a single source widget keyed under the handler).
|
|
14610
14673
|
var events = Array.isArray(eventList) ? eventList : typeof eventList === "string" ? [eventList] : [];
|
|
14611
|
-
var _iterator = _createForOfIteratorHelper$
|
|
14674
|
+
var _iterator = _createForOfIteratorHelper$p(events),
|
|
14612
14675
|
_step;
|
|
14613
14676
|
try {
|
|
14614
14677
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -14657,6 +14720,7 @@ function getOrphanedListeners(workspace, getWidgetConfig) {
|
|
|
14657
14720
|
var byCompositeKey = new Map();
|
|
14658
14721
|
var byItemId = new Map();
|
|
14659
14722
|
forEachWidget(workspace, function (item) {
|
|
14723
|
+
if (!belongsToWorkspace(item, workspace)) return;
|
|
14660
14724
|
var id = itemIdOf(item);
|
|
14661
14725
|
if (id == null) return;
|
|
14662
14726
|
var meta = {
|
|
@@ -14670,7 +14734,7 @@ function getOrphanedListeners(workspace, getWidgetConfig) {
|
|
|
14670
14734
|
if (!byItemId.has(id)) byItemId.set(id, meta);
|
|
14671
14735
|
});
|
|
14672
14736
|
var orphans = [];
|
|
14673
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
14737
|
+
var _iterator2 = _createForOfIteratorHelper$p(wiring),
|
|
14674
14738
|
_step2;
|
|
14675
14739
|
try {
|
|
14676
14740
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -14736,7 +14800,7 @@ function pruneDeadListenerReferences(workspace) {
|
|
|
14736
14800
|
var liveKeys = new Set();
|
|
14737
14801
|
var _walkForLive = function walkForLive(items) {
|
|
14738
14802
|
if (!Array.isArray(items)) return;
|
|
14739
|
-
var _iterator3 = _createForOfIteratorHelper$
|
|
14803
|
+
var _iterator3 = _createForOfIteratorHelper$p(items),
|
|
14740
14804
|
_step3;
|
|
14741
14805
|
try {
|
|
14742
14806
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
@@ -14757,7 +14821,7 @@ function pruneDeadListenerReferences(workspace) {
|
|
|
14757
14821
|
};
|
|
14758
14822
|
_walkForLive(workspace.layout);
|
|
14759
14823
|
if (Array.isArray(workspace.pages)) {
|
|
14760
|
-
var _iterator4 = _createForOfIteratorHelper$
|
|
14824
|
+
var _iterator4 = _createForOfIteratorHelper$p(workspace.pages),
|
|
14761
14825
|
_step4;
|
|
14762
14826
|
try {
|
|
14763
14827
|
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
@@ -14774,7 +14838,7 @@ function pruneDeadListenerReferences(workspace) {
|
|
|
14774
14838
|
var removed = 0;
|
|
14775
14839
|
var _pruneListeners = function pruneListeners(items) {
|
|
14776
14840
|
if (!Array.isArray(items)) return;
|
|
14777
|
-
var _iterator5 = _createForOfIteratorHelper$
|
|
14841
|
+
var _iterator5 = _createForOfIteratorHelper$p(items),
|
|
14778
14842
|
_step5;
|
|
14779
14843
|
try {
|
|
14780
14844
|
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
@@ -14786,7 +14850,7 @@ function pruneDeadListenerReferences(workspace) {
|
|
|
14786
14850
|
var events = item.listeners[handler];
|
|
14787
14851
|
if (!Array.isArray(events)) continue;
|
|
14788
14852
|
var kept = [];
|
|
14789
|
-
var _iterator6 = _createForOfIteratorHelper$
|
|
14853
|
+
var _iterator6 = _createForOfIteratorHelper$p(events),
|
|
14790
14854
|
_step6;
|
|
14791
14855
|
try {
|
|
14792
14856
|
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
@@ -14821,7 +14885,7 @@ function pruneDeadListenerReferences(workspace) {
|
|
|
14821
14885
|
};
|
|
14822
14886
|
_pruneListeners(workspace.layout);
|
|
14823
14887
|
if (Array.isArray(workspace.pages)) {
|
|
14824
|
-
var _iterator7 = _createForOfIteratorHelper$
|
|
14888
|
+
var _iterator7 = _createForOfIteratorHelper$p(workspace.pages),
|
|
14825
14889
|
_step7;
|
|
14826
14890
|
try {
|
|
14827
14891
|
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
@@ -14865,7 +14929,7 @@ function applyWiringChanges(workspace, _ref) {
|
|
|
14865
14929
|
});
|
|
14866
14930
|
return byReceiver.get(id);
|
|
14867
14931
|
};
|
|
14868
|
-
var _iterator8 = _createForOfIteratorHelper$
|
|
14932
|
+
var _iterator8 = _createForOfIteratorHelper$p(adds),
|
|
14869
14933
|
_step8;
|
|
14870
14934
|
try {
|
|
14871
14935
|
for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
|
|
@@ -14878,7 +14942,7 @@ function applyWiringChanges(workspace, _ref) {
|
|
|
14878
14942
|
} finally {
|
|
14879
14943
|
_iterator8.f();
|
|
14880
14944
|
}
|
|
14881
|
-
var _iterator9 = _createForOfIteratorHelper$
|
|
14945
|
+
var _iterator9 = _createForOfIteratorHelper$p(removes),
|
|
14882
14946
|
_step9;
|
|
14883
14947
|
try {
|
|
14884
14948
|
for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
|
|
@@ -14952,7 +15016,7 @@ function applyToItem(listeners, _ref2) {
|
|
|
14952
15016
|
}
|
|
14953
15017
|
|
|
14954
15018
|
// Removes first so a re-add (rare) lands.
|
|
14955
|
-
var _iterator0 = _createForOfIteratorHelper$
|
|
15019
|
+
var _iterator0 = _createForOfIteratorHelper$p(removes),
|
|
14956
15020
|
_step0;
|
|
14957
15021
|
try {
|
|
14958
15022
|
var _loop = function _loop() {
|
|
@@ -14981,7 +15045,7 @@ function applyToItem(listeners, _ref2) {
|
|
|
14981
15045
|
} finally {
|
|
14982
15046
|
_iterator0.f();
|
|
14983
15047
|
}
|
|
14984
|
-
var _iterator1 = _createForOfIteratorHelper$
|
|
15048
|
+
var _iterator1 = _createForOfIteratorHelper$p(adds),
|
|
14985
15049
|
_step1;
|
|
14986
15050
|
try {
|
|
14987
15051
|
for (_iterator1.s(); !(_step1 = _iterator1.n()).done;) {
|
|
@@ -17928,9 +17992,9 @@ function mcpJsonToFormState(jsonString, nextRowId) {
|
|
|
17928
17992
|
return result;
|
|
17929
17993
|
}
|
|
17930
17994
|
|
|
17931
|
-
function _createForOfIteratorHelper$
|
|
17932
|
-
function _unsupportedIterableToArray$
|
|
17933
|
-
function _arrayLikeToArray$
|
|
17995
|
+
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; } } }; }
|
|
17996
|
+
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; } }
|
|
17997
|
+
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; }
|
|
17934
17998
|
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; }
|
|
17935
17999
|
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; }
|
|
17936
18000
|
var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
@@ -18215,11 +18279,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
18215
18279
|
|
|
18216
18280
|
// Flatten all widgets from all packages for the widget list
|
|
18217
18281
|
flatWidgets = [];
|
|
18218
|
-
_iterator = _createForOfIteratorHelper$
|
|
18282
|
+
_iterator = _createForOfIteratorHelper$o(result.packages || []);
|
|
18219
18283
|
try {
|
|
18220
18284
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
18221
18285
|
pkg = _step.value;
|
|
18222
|
-
_iterator2 = _createForOfIteratorHelper$
|
|
18286
|
+
_iterator2 = _createForOfIteratorHelper$o(pkg.widgets || []);
|
|
18223
18287
|
try {
|
|
18224
18288
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
18225
18289
|
widget = _step2.value;
|
|
@@ -20113,9 +20177,9 @@ var useWidgetSchedulerStatus = function useWidgetSchedulerStatus(widgetId) {
|
|
|
20113
20177
|
};
|
|
20114
20178
|
};
|
|
20115
20179
|
|
|
20116
|
-
function _createForOfIteratorHelper$
|
|
20117
|
-
function _unsupportedIterableToArray$
|
|
20118
|
-
function _arrayLikeToArray$
|
|
20180
|
+
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; } } }; }
|
|
20181
|
+
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; } }
|
|
20182
|
+
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; }
|
|
20119
20183
|
function formatCountdown(ms) {
|
|
20120
20184
|
if (ms == null || ms < 0) return "--";
|
|
20121
20185
|
if (ms < 1000) return "< 1s";
|
|
@@ -20232,7 +20296,7 @@ var WidgetCardStatusBar = function WidgetCardStatusBar(_ref) {
|
|
|
20232
20296
|
|
|
20233
20297
|
// Find soonest countdown among enabled tasks
|
|
20234
20298
|
var soonestMs = null;
|
|
20235
|
-
var _iterator = _createForOfIteratorHelper$
|
|
20299
|
+
var _iterator = _createForOfIteratorHelper$n(enabledTasks),
|
|
20236
20300
|
_step;
|
|
20237
20301
|
try {
|
|
20238
20302
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -25489,9 +25553,9 @@ var ExternalWidget = function ExternalWidget(_ref) {
|
|
|
25489
25553
|
var GRID_CELL_WIDGET_TYPE = "grid-cell-widget";
|
|
25490
25554
|
var SIDEBAR_WIDGET_TYPE = "sidebar-widget";
|
|
25491
25555
|
|
|
25492
|
-
function _createForOfIteratorHelper$
|
|
25493
|
-
function _unsupportedIterableToArray$
|
|
25494
|
-
function _arrayLikeToArray$
|
|
25556
|
+
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; } } }; }
|
|
25557
|
+
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; } }
|
|
25558
|
+
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; }
|
|
25495
25559
|
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; }
|
|
25496
25560
|
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; }
|
|
25497
25561
|
|
|
@@ -26114,7 +26178,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
26114
26178
|
return selectable["delete"](cn);
|
|
26115
26179
|
});
|
|
26116
26180
|
var resolved = new Set();
|
|
26117
|
-
var _iterator = _createForOfIteratorHelper$
|
|
26181
|
+
var _iterator = _createForOfIteratorHelper$m(selectable),
|
|
26118
26182
|
_step;
|
|
26119
26183
|
try {
|
|
26120
26184
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -28523,9 +28587,9 @@ function migrateBareComponentName(componentMap, component) {
|
|
|
28523
28587
|
|
|
28524
28588
|
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; }
|
|
28525
28589
|
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; }
|
|
28526
|
-
function _createForOfIteratorHelper$
|
|
28527
|
-
function _unsupportedIterableToArray$
|
|
28528
|
-
function _arrayLikeToArray$
|
|
28590
|
+
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; } } }; }
|
|
28591
|
+
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; } }
|
|
28592
|
+
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; }
|
|
28529
28593
|
/**
|
|
28530
28594
|
* The model for all layout components used primarily in the renderLayout method
|
|
28531
28595
|
* @param {Object} layoutItem an object containing various attributes of the layout item
|
|
@@ -28537,7 +28601,7 @@ function _arrayLikeToArray$k(r, a) { (null == a || a > r.length) && (a = r.lengt
|
|
|
28537
28601
|
function sortObjectByKeys(obj) {
|
|
28538
28602
|
var sortedKeys = Object.keys(obj).sort();
|
|
28539
28603
|
var sortedObj = {};
|
|
28540
|
-
var _iterator = _createForOfIteratorHelper$
|
|
28604
|
+
var _iterator = _createForOfIteratorHelper$l(sortedKeys),
|
|
28541
28605
|
_step;
|
|
28542
28606
|
try {
|
|
28543
28607
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -28831,9 +28895,9 @@ var SettingsModel = function SettingsModel() {
|
|
|
28831
28895
|
return obj;
|
|
28832
28896
|
};
|
|
28833
28897
|
|
|
28834
|
-
function _createForOfIteratorHelper$
|
|
28835
|
-
function _unsupportedIterableToArray$
|
|
28836
|
-
function _arrayLikeToArray$
|
|
28898
|
+
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; } } }; }
|
|
28899
|
+
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; } }
|
|
28900
|
+
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; }
|
|
28837
28901
|
|
|
28838
28902
|
/**
|
|
28839
28903
|
* Workspace-level pre-pass that migrates legacy bare component
|
|
@@ -28908,7 +28972,7 @@ function migrateScopedIdsInWorkspace(workspace, componentMap) {
|
|
|
28908
28972
|
};
|
|
28909
28973
|
var _walk = function walk(items) {
|
|
28910
28974
|
if (!Array.isArray(items)) return;
|
|
28911
|
-
var _iterator = _createForOfIteratorHelper$
|
|
28975
|
+
var _iterator = _createForOfIteratorHelper$k(items),
|
|
28912
28976
|
_step;
|
|
28913
28977
|
try {
|
|
28914
28978
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -28930,7 +28994,7 @@ function migrateScopedIdsInWorkspace(workspace, componentMap) {
|
|
|
28930
28994
|
};
|
|
28931
28995
|
_walk(workspace.layout);
|
|
28932
28996
|
if (Array.isArray(workspace.pages)) {
|
|
28933
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
28997
|
+
var _iterator2 = _createForOfIteratorHelper$k(workspace.pages),
|
|
28934
28998
|
_step2;
|
|
28935
28999
|
try {
|
|
28936
29000
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -28947,6 +29011,104 @@ function migrateScopedIdsInWorkspace(workspace, componentMap) {
|
|
|
28947
29011
|
return counts;
|
|
28948
29012
|
}
|
|
28949
29013
|
|
|
29014
|
+
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; } } }; }
|
|
29015
|
+
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; } }
|
|
29016
|
+
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; }
|
|
29017
|
+
/**
|
|
29018
|
+
* cleanForeignWidgetsFromWorkspace.js
|
|
29019
|
+
*
|
|
29020
|
+
* One-shot data cleanup that runs at workspace load time. Removes
|
|
29021
|
+
* any layout item whose `dashboardId` doesn't match the workspace's
|
|
29022
|
+
* own id. These are "foreign" items — leaked into this workspace's
|
|
29023
|
+
* tree by some earlier bug (most commonly a shared array reference
|
|
29024
|
+
* across two open dashboards' sidebar layouts).
|
|
29025
|
+
*
|
|
29026
|
+
* Without this pass, the items linger in `workspaces.json` forever
|
|
29027
|
+
* and re-appear in every Listeners / Providers / Widgets tab the
|
|
29028
|
+
* user opens. Filtering at the UI layer hides them but doesn't fix
|
|
29029
|
+
* the persistent state. This utility writes the corrupted items
|
|
29030
|
+
* out so the next save persists the cleaned shape.
|
|
29031
|
+
*
|
|
29032
|
+
* Mutates in place. Idempotent — running twice on a clean workspace
|
|
29033
|
+
* is a no-op. Returns a summary of what was removed for diagnostics
|
|
29034
|
+
* (callers can log it to surface the cleanup to the user).
|
|
29035
|
+
*
|
|
29036
|
+
* Items WITHOUT a `dashboardId` stamp are NOT removed — they're
|
|
29037
|
+
* either deeply-nested items LayoutModel didn't reach OR legacy
|
|
29038
|
+
* pre-stamping data. Stripping them would lose legitimate widgets.
|
|
29039
|
+
* They're stamped with the workspace's id instead, which is
|
|
29040
|
+
* idempotent and self-correcting.
|
|
29041
|
+
*
|
|
29042
|
+
* @param {Object} workspace - workspace object (mutated in place)
|
|
29043
|
+
* @returns {{ removed: number, stamped: number }}
|
|
29044
|
+
*/
|
|
29045
|
+
function cleanForeignWidgetsFromWorkspace(workspace) {
|
|
29046
|
+
var summary = {
|
|
29047
|
+
removed: 0,
|
|
29048
|
+
stamped: 0
|
|
29049
|
+
};
|
|
29050
|
+
if (!workspace || workspace.id === undefined || workspace.id === null) {
|
|
29051
|
+
return summary;
|
|
29052
|
+
}
|
|
29053
|
+
var wsId = String(workspace.id);
|
|
29054
|
+
var _cleanList = function cleanList(items) {
|
|
29055
|
+
if (!Array.isArray(items)) return items;
|
|
29056
|
+
var kept = [];
|
|
29057
|
+
var _iterator = _createForOfIteratorHelper$j(items),
|
|
29058
|
+
_step;
|
|
29059
|
+
try {
|
|
29060
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
29061
|
+
var item = _step.value;
|
|
29062
|
+
if (!item || _typeof(item) !== "object") continue;
|
|
29063
|
+
var stamp = item.dashboardId;
|
|
29064
|
+
if (stamp !== undefined && stamp !== null && String(stamp) !== wsId) {
|
|
29065
|
+
// Foreign item — drop it.
|
|
29066
|
+
summary.removed += 1;
|
|
29067
|
+
continue;
|
|
29068
|
+
}
|
|
29069
|
+
if (stamp === undefined || stamp === null) {
|
|
29070
|
+
// Unstamped — adopt into this workspace.
|
|
29071
|
+
item.dashboardId = workspace.id;
|
|
29072
|
+
summary.stamped += 1;
|
|
29073
|
+
}
|
|
29074
|
+
// Recurse into nested arrays so foreign items inside grid
|
|
29075
|
+
// containers' `items` / nested `layout` are caught too.
|
|
29076
|
+
if (Array.isArray(item.items)) item.items = _cleanList(item.items);
|
|
29077
|
+
if (Array.isArray(item.layout)) item.layout = _cleanList(item.layout);
|
|
29078
|
+
kept.push(item);
|
|
29079
|
+
}
|
|
29080
|
+
} catch (err) {
|
|
29081
|
+
_iterator.e(err);
|
|
29082
|
+
} finally {
|
|
29083
|
+
_iterator.f();
|
|
29084
|
+
}
|
|
29085
|
+
return kept;
|
|
29086
|
+
};
|
|
29087
|
+
if (Array.isArray(workspace.layout)) {
|
|
29088
|
+
workspace.layout = _cleanList(workspace.layout);
|
|
29089
|
+
}
|
|
29090
|
+
if (Array.isArray(workspace.sidebarLayout)) {
|
|
29091
|
+
workspace.sidebarLayout = _cleanList(workspace.sidebarLayout);
|
|
29092
|
+
}
|
|
29093
|
+
if (Array.isArray(workspace.pages)) {
|
|
29094
|
+
var _iterator2 = _createForOfIteratorHelper$j(workspace.pages),
|
|
29095
|
+
_step2;
|
|
29096
|
+
try {
|
|
29097
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
29098
|
+
var page = _step2.value;
|
|
29099
|
+
if (page && Array.isArray(page.layout)) {
|
|
29100
|
+
page.layout = _cleanList(page.layout);
|
|
29101
|
+
}
|
|
29102
|
+
}
|
|
29103
|
+
} catch (err) {
|
|
29104
|
+
_iterator2.e(err);
|
|
29105
|
+
} finally {
|
|
29106
|
+
_iterator2.f();
|
|
29107
|
+
}
|
|
29108
|
+
}
|
|
29109
|
+
return summary;
|
|
29110
|
+
}
|
|
29111
|
+
|
|
28950
29112
|
/**
|
|
28951
29113
|
* Default layout for a brand-new workspace: a single 1x1 grid container
|
|
28952
29114
|
* with one empty cell. Mirrors DashboardModel._initializeLayout().
|
|
@@ -29083,6 +29245,13 @@ var WorkspaceModel = function WorkspaceModel(workspaceItem) {
|
|
|
29083
29245
|
workspace.selectedProviders = "selectedProviders" in obj ? obj["selectedProviders"] : {};
|
|
29084
29246
|
workspace.themeKey = "themeKey" in obj ? obj["themeKey"] : null;
|
|
29085
29247
|
|
|
29248
|
+
// Cross-dashboard contamination cleanup. Some earlier code path
|
|
29249
|
+
// (most likely a shared sidebarLayout array reference between two
|
|
29250
|
+
// open dashboards) leaked items from other workspaces' trees into
|
|
29251
|
+
// this one. Running on every load means the next save writes the
|
|
29252
|
+
// cleaned shape; corrupted state is self-healing.
|
|
29253
|
+
cleanForeignWidgetsFromWorkspace(workspace);
|
|
29254
|
+
|
|
29086
29255
|
// Migrate legacy bare component refs (`PipelineKanban`) and the
|
|
29087
29256
|
// listener event strings that reference them (`PipelineKanban[5].evt`)
|
|
29088
29257
|
// to the canonical scoped form (`trops.pipeline.PipelineKanban`).
|
|
@@ -55345,6 +55514,13 @@ var WidgetsTab = function WidgetsTab(_ref) {
|
|
|
55345
55514
|
var result = [];
|
|
55346
55515
|
var pushFromSection = function pushFromSection(section) {
|
|
55347
55516
|
return function (item) {
|
|
55517
|
+
// Skip framework chrome (LayoutGridContainer / Container) —
|
|
55518
|
+
// the WidgetsTab is for user-configurable widgets only.
|
|
55519
|
+
if (!isUserWidget(item)) return;
|
|
55520
|
+
// Cross-dashboard isolation: skip items whose dashboardId
|
|
55521
|
+
// stamp doesn't match this workspace. Closes the same leak
|
|
55522
|
+
// the Listeners tab already filters against.
|
|
55523
|
+
if (!belongsToWorkspace(item, workspace)) return;
|
|
55348
55524
|
var id = item.uuidString || item.uuid || item.id;
|
|
55349
55525
|
if (!id || seen.has(id)) return;
|
|
55350
55526
|
seen.add(id);
|