@trops/dash-core 0.1.490 → 0.1.492
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/electron/index.js +347 -62
- package/dist/electron/index.js.map +1 -1
- package/dist/index.esm.js +345 -182
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +345 -182
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1644,9 +1644,11 @@ var ElectronDashboardApi = /*#__PURE__*/function () {
|
|
|
1644
1644
|
key: "mcpStartServer",
|
|
1645
1645
|
value: function mcpStartServer(serverName, mcpConfig, credentials, onSuccess, onError) {
|
|
1646
1646
|
var _this20 = this;
|
|
1647
|
+
var workspaceId = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
|
|
1648
|
+
var pathScope = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
|
|
1647
1649
|
if (this.api !== null) {
|
|
1648
1650
|
try {
|
|
1649
|
-
this.api.mcp.startServer(serverName, mcpConfig, credentials).then(function (result) {
|
|
1651
|
+
this.api.mcp.startServer(serverName, mcpConfig, credentials, workspaceId, pathScope).then(function (result) {
|
|
1650
1652
|
onSuccess(_this20.events.MCP_START_SERVER_COMPLETE, result);
|
|
1651
1653
|
})["catch"](function (error) {
|
|
1652
1654
|
onError(_this20.events.MCP_START_SERVER_ERROR, error);
|
|
@@ -1665,9 +1667,10 @@ var ElectronDashboardApi = /*#__PURE__*/function () {
|
|
|
1665
1667
|
key: "mcpStopServer",
|
|
1666
1668
|
value: function mcpStopServer(serverName, onSuccess, onError) {
|
|
1667
1669
|
var _this21 = this;
|
|
1670
|
+
var workspaceId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
1668
1671
|
if (this.api !== null) {
|
|
1669
1672
|
try {
|
|
1670
|
-
this.api.mcp.stopServer(serverName).then(function (result) {
|
|
1673
|
+
this.api.mcp.stopServer(serverName, workspaceId).then(function (result) {
|
|
1671
1674
|
onSuccess(_this21.events.MCP_STOP_SERVER_COMPLETE, result);
|
|
1672
1675
|
})["catch"](function (error) {
|
|
1673
1676
|
onError(_this21.events.MCP_STOP_SERVER_ERROR, error);
|
|
@@ -1686,9 +1689,13 @@ var ElectronDashboardApi = /*#__PURE__*/function () {
|
|
|
1686
1689
|
key: "mcpCallTool",
|
|
1687
1690
|
value: function mcpCallTool(serverName, toolName, args, allowedTools, onSuccess, onError) {
|
|
1688
1691
|
var _this22 = this;
|
|
1692
|
+
var workspaceId = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
|
|
1689
1693
|
if (this.api !== null) {
|
|
1690
1694
|
try {
|
|
1691
|
-
|
|
1695
|
+
// widgetId is not threaded here; mcpApi.callTool defaults it to
|
|
1696
|
+
// null. Slice 3a: workspaceId scopes the MCP server process per
|
|
1697
|
+
// workspace.
|
|
1698
|
+
this.api.mcp.callTool(serverName, toolName, args, allowedTools, null, workspaceId).then(function (result) {
|
|
1692
1699
|
onSuccess(_this22.events.MCP_CALL_TOOL_COMPLETE, result);
|
|
1693
1700
|
})["catch"](function (error) {
|
|
1694
1701
|
onError(_this22.events.MCP_CALL_TOOL_ERROR, error);
|
|
@@ -1707,9 +1714,10 @@ var ElectronDashboardApi = /*#__PURE__*/function () {
|
|
|
1707
1714
|
key: "mcpListTools",
|
|
1708
1715
|
value: function mcpListTools(serverName, onSuccess, onError) {
|
|
1709
1716
|
var _this23 = this;
|
|
1717
|
+
var workspaceId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
1710
1718
|
if (this.api !== null) {
|
|
1711
1719
|
try {
|
|
1712
|
-
this.api.mcp.listTools(serverName).then(function (result) {
|
|
1720
|
+
this.api.mcp.listTools(serverName, workspaceId).then(function (result) {
|
|
1713
1721
|
onSuccess(_this23.events.MCP_LIST_TOOLS_COMPLETE, result);
|
|
1714
1722
|
})["catch"](function (error) {
|
|
1715
1723
|
onError(_this23.events.MCP_LIST_TOOLS_ERROR, error);
|
|
@@ -1728,9 +1736,10 @@ var ElectronDashboardApi = /*#__PURE__*/function () {
|
|
|
1728
1736
|
key: "mcpListResources",
|
|
1729
1737
|
value: function mcpListResources(serverName, onSuccess, onError) {
|
|
1730
1738
|
var _this24 = this;
|
|
1739
|
+
var workspaceId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
1731
1740
|
if (this.api !== null) {
|
|
1732
1741
|
try {
|
|
1733
|
-
this.api.mcp.listResources(serverName).then(function (result) {
|
|
1742
|
+
this.api.mcp.listResources(serverName, workspaceId).then(function (result) {
|
|
1734
1743
|
onSuccess(_this24.events.MCP_LIST_RESOURCES_COMPLETE, result);
|
|
1735
1744
|
})["catch"](function (error) {
|
|
1736
1745
|
onError(_this24.events.MCP_LIST_RESOURCES_ERROR, error);
|
|
@@ -1749,9 +1758,10 @@ var ElectronDashboardApi = /*#__PURE__*/function () {
|
|
|
1749
1758
|
key: "mcpReadResource",
|
|
1750
1759
|
value: function mcpReadResource(serverName, uri, onSuccess, onError) {
|
|
1751
1760
|
var _this25 = this;
|
|
1761
|
+
var workspaceId = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
|
|
1752
1762
|
if (this.api !== null) {
|
|
1753
1763
|
try {
|
|
1754
|
-
this.api.mcp.readResource(serverName, uri).then(function (result) {
|
|
1764
|
+
this.api.mcp.readResource(serverName, uri, workspaceId).then(function (result) {
|
|
1755
1765
|
onSuccess(_this25.events.MCP_READ_RESOURCE_COMPLETE, result);
|
|
1756
1766
|
})["catch"](function (error) {
|
|
1757
1767
|
onError(_this25.events.MCP_READ_RESOURCE_ERROR, error);
|
|
@@ -1770,9 +1780,10 @@ var ElectronDashboardApi = /*#__PURE__*/function () {
|
|
|
1770
1780
|
key: "mcpGetServerStatus",
|
|
1771
1781
|
value: function mcpGetServerStatus(serverName, onSuccess, onError) {
|
|
1772
1782
|
var _this26 = this;
|
|
1783
|
+
var workspaceId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
1773
1784
|
if (this.api !== null) {
|
|
1774
1785
|
try {
|
|
1775
|
-
this.api.mcp.getServerStatus(serverName).then(function (result) {
|
|
1786
|
+
this.api.mcp.getServerStatus(serverName, workspaceId).then(function (result) {
|
|
1776
1787
|
onSuccess(_this26.events.MCP_SERVER_STATUS_COMPLETE, result);
|
|
1777
1788
|
})["catch"](function (error) {
|
|
1778
1789
|
onError(_this26.events.MCP_SERVER_STATUS_ERROR, error);
|
|
@@ -3108,9 +3119,9 @@ var LayoutContainer = function LayoutContainer(_ref) {
|
|
|
3108
3119
|
|
|
3109
3120
|
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; }
|
|
3110
3121
|
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; }
|
|
3111
|
-
function _createForOfIteratorHelper$
|
|
3112
|
-
function _unsupportedIterableToArray$
|
|
3113
|
-
function _arrayLikeToArray$
|
|
3122
|
+
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; } } }; }
|
|
3123
|
+
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; } }
|
|
3124
|
+
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; }
|
|
3114
3125
|
/**
|
|
3115
3126
|
* Layout template definitions for the dashboard template picker.
|
|
3116
3127
|
*
|
|
@@ -3384,7 +3395,7 @@ function createLayoutFromTemplate(template) {
|
|
|
3384
3395
|
cols: template.cols,
|
|
3385
3396
|
gap: "gap-2"
|
|
3386
3397
|
};
|
|
3387
|
-
var _iterator = _createForOfIteratorHelper$
|
|
3398
|
+
var _iterator = _createForOfIteratorHelper$A(template.cells),
|
|
3388
3399
|
_step;
|
|
3389
3400
|
try {
|
|
3390
3401
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -4565,9 +4576,9 @@ var DashboardInstallOptionsModal = function DashboardInstallOptionsModal(_ref) {
|
|
|
4565
4576
|
});
|
|
4566
4577
|
};
|
|
4567
4578
|
|
|
4568
|
-
function _createForOfIteratorHelper$
|
|
4569
|
-
function _unsupportedIterableToArray$
|
|
4570
|
-
function _arrayLikeToArray$
|
|
4579
|
+
function _createForOfIteratorHelper$z(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$z(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; } } }; }
|
|
4580
|
+
function _unsupportedIterableToArray$z(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$z(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$z(r, a) : void 0; } }
|
|
4581
|
+
function _arrayLikeToArray$z(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; }
|
|
4571
4582
|
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; }
|
|
4572
4583
|
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; }
|
|
4573
4584
|
var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
|
|
@@ -4925,7 +4936,7 @@ var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
|
|
|
4925
4936
|
toInstall = 0,
|
|
4926
4937
|
unavailable = 0,
|
|
4927
4938
|
hasUnavailableRequired = false;
|
|
4928
|
-
var _iterator = _createForOfIteratorHelper$
|
|
4939
|
+
var _iterator = _createForOfIteratorHelper$z(widgetDeps),
|
|
4929
4940
|
_step;
|
|
4930
4941
|
try {
|
|
4931
4942
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -6570,9 +6581,9 @@ function cleanIpcError(message) {
|
|
|
6570
6581
|
return match ? match[1] : message;
|
|
6571
6582
|
}
|
|
6572
6583
|
|
|
6573
|
-
function _createForOfIteratorHelper$
|
|
6574
|
-
function _unsupportedIterableToArray$
|
|
6575
|
-
function _arrayLikeToArray$
|
|
6584
|
+
function _createForOfIteratorHelper$y(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$y(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; } } }; }
|
|
6585
|
+
function _unsupportedIterableToArray$y(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$y(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$y(r, a) : void 0; } }
|
|
6586
|
+
function _arrayLikeToArray$y(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; }
|
|
6576
6587
|
|
|
6577
6588
|
/**
|
|
6578
6589
|
* useRegistrySearch — shared hook for browsing and installing registry packages.
|
|
@@ -6686,13 +6697,13 @@ var useRegistrySearch = function useRegistrySearch() {
|
|
|
6686
6697
|
return c.toLowerCase();
|
|
6687
6698
|
}));
|
|
6688
6699
|
widgets = [];
|
|
6689
|
-
_iterator = _createForOfIteratorHelper$
|
|
6700
|
+
_iterator = _createForOfIteratorHelper$y(pkgs);
|
|
6690
6701
|
try {
|
|
6691
6702
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
6692
6703
|
pkg = _step.value;
|
|
6693
6704
|
// Compute missing APIs for the entire package
|
|
6694
6705
|
allApiProviders = [];
|
|
6695
|
-
_iterator2 = _createForOfIteratorHelper$
|
|
6706
|
+
_iterator2 = _createForOfIteratorHelper$y(pkg.providers || []);
|
|
6696
6707
|
try {
|
|
6697
6708
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
6698
6709
|
p = _step2.value;
|
|
@@ -6705,11 +6716,11 @@ var useRegistrySearch = function useRegistrySearch() {
|
|
|
6705
6716
|
} finally {
|
|
6706
6717
|
_iterator2.f();
|
|
6707
6718
|
}
|
|
6708
|
-
_iterator3 = _createForOfIteratorHelper$
|
|
6719
|
+
_iterator3 = _createForOfIteratorHelper$y(pkg.widgets || []);
|
|
6709
6720
|
try {
|
|
6710
6721
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
6711
6722
|
w = _step3.value;
|
|
6712
|
-
_iterator5 = _createForOfIteratorHelper$
|
|
6723
|
+
_iterator5 = _createForOfIteratorHelper$y(w.providers || []);
|
|
6713
6724
|
try {
|
|
6714
6725
|
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
6715
6726
|
_p = _step5.value;
|
|
@@ -6731,7 +6742,7 @@ var useRegistrySearch = function useRegistrySearch() {
|
|
|
6731
6742
|
missingApis = _toConsumableArray(new Set(allApiProviders)).filter(function (api) {
|
|
6732
6743
|
return !capSet.has(api.toLowerCase());
|
|
6733
6744
|
});
|
|
6734
|
-
_iterator4 = _createForOfIteratorHelper$
|
|
6745
|
+
_iterator4 = _createForOfIteratorHelper$y(pkg.widgets || []);
|
|
6735
6746
|
try {
|
|
6736
6747
|
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
6737
6748
|
widget = _step4.value;
|
|
@@ -7438,9 +7449,9 @@ function applyFilters(items, filters, mode) {
|
|
|
7438
7449
|
});
|
|
7439
7450
|
}
|
|
7440
7451
|
|
|
7441
|
-
function _createForOfIteratorHelper$
|
|
7442
|
-
function _unsupportedIterableToArray$
|
|
7443
|
-
function _arrayLikeToArray$
|
|
7452
|
+
function _createForOfIteratorHelper$x(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$x(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; } } }; }
|
|
7453
|
+
function _unsupportedIterableToArray$x(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$x(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$x(r, a) : void 0; } }
|
|
7454
|
+
function _arrayLikeToArray$x(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; }
|
|
7444
7455
|
var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
|
|
7445
7456
|
var _state$selectedDashbo, _state$selectedDashbo2;
|
|
7446
7457
|
var state = _ref.state,
|
|
@@ -7659,7 +7670,7 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
|
|
|
7659
7670
|
installedNames = new Set(installedList.map(function (w) {
|
|
7660
7671
|
return w.name;
|
|
7661
7672
|
}));
|
|
7662
|
-
_iterator = _createForOfIteratorHelper$
|
|
7673
|
+
_iterator = _createForOfIteratorHelper$x(state.selectedWidgets);
|
|
7663
7674
|
_context2.prev = 12;
|
|
7664
7675
|
_iterator.s();
|
|
7665
7676
|
case 13:
|
|
@@ -9229,9 +9240,9 @@ var PanelEditItem = function PanelEditItem(_ref) {
|
|
|
9229
9240
|
};
|
|
9230
9241
|
|
|
9231
9242
|
var _excluded$6 = ["rows", "cols"];
|
|
9232
|
-
function _createForOfIteratorHelper$
|
|
9233
|
-
function _unsupportedIterableToArray$
|
|
9234
|
-
function _arrayLikeToArray$
|
|
9243
|
+
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; } } }; }
|
|
9244
|
+
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; } }
|
|
9245
|
+
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; }
|
|
9235
9246
|
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; }
|
|
9236
9247
|
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; }
|
|
9237
9248
|
var defaultGrid = {
|
|
@@ -9384,7 +9395,7 @@ function GridEditor(_ref) {
|
|
|
9384
9395
|
function sortObjectByKeys(obj) {
|
|
9385
9396
|
var sortedKeys = Object.keys(obj).sort();
|
|
9386
9397
|
var sortedObj = {};
|
|
9387
|
-
var _iterator = _createForOfIteratorHelper$
|
|
9398
|
+
var _iterator = _createForOfIteratorHelper$w(sortedKeys),
|
|
9388
9399
|
_step;
|
|
9389
9400
|
try {
|
|
9390
9401
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -9857,9 +9868,9 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
|
|
|
9857
9868
|
});
|
|
9858
9869
|
};
|
|
9859
9870
|
|
|
9860
|
-
function _createForOfIteratorHelper$
|
|
9861
|
-
function _unsupportedIterableToArray$
|
|
9862
|
-
function _arrayLikeToArray$
|
|
9871
|
+
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; } } }; }
|
|
9872
|
+
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; } }
|
|
9873
|
+
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; }
|
|
9863
9874
|
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; }
|
|
9864
9875
|
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; }
|
|
9865
9876
|
var DAYS = [{
|
|
@@ -10188,7 +10199,7 @@ var PanelEditItemSchedule = function PanelEditItemSchedule(_ref2) {
|
|
|
10188
10199
|
setIsLoading(true);
|
|
10189
10200
|
window.mainApi.scheduler.getTasks(widgetUuid).then(function (tasks) {
|
|
10190
10201
|
var stateMap = {};
|
|
10191
|
-
var _iterator = _createForOfIteratorHelper$
|
|
10202
|
+
var _iterator = _createForOfIteratorHelper$v(tasks || []),
|
|
10192
10203
|
_step;
|
|
10193
10204
|
try {
|
|
10194
10205
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -10447,9 +10458,9 @@ function isUserWidget(item) {
|
|
|
10447
10458
|
return true;
|
|
10448
10459
|
}
|
|
10449
10460
|
|
|
10450
|
-
function _createForOfIteratorHelper$
|
|
10451
|
-
function _unsupportedIterableToArray$
|
|
10452
|
-
function _arrayLikeToArray$
|
|
10461
|
+
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; } } }; }
|
|
10462
|
+
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; } }
|
|
10463
|
+
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; }
|
|
10453
10464
|
|
|
10454
10465
|
/**
|
|
10455
10466
|
* Resolve which provider name a given widget instance would bind to for
|
|
@@ -10481,7 +10492,7 @@ function resolveProviderName(_ref) {
|
|
|
10481
10492
|
// array. Support both because different callers shape it either way.
|
|
10482
10493
|
if (appProviders) {
|
|
10483
10494
|
if (Array.isArray(appProviders)) {
|
|
10484
|
-
var _iterator = _createForOfIteratorHelper$
|
|
10495
|
+
var _iterator = _createForOfIteratorHelper$u(appProviders),
|
|
10485
10496
|
_step;
|
|
10486
10497
|
try {
|
|
10487
10498
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -10541,7 +10552,7 @@ function forEachWidget(workspace, visit) {
|
|
|
10541
10552
|
};
|
|
10542
10553
|
var _walk = function walk(items) {
|
|
10543
10554
|
if (!Array.isArray(items)) return;
|
|
10544
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
10555
|
+
var _iterator2 = _createForOfIteratorHelper$u(items),
|
|
10545
10556
|
_step2;
|
|
10546
10557
|
try {
|
|
10547
10558
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -10582,7 +10593,7 @@ function forEachWidget(workspace, visit) {
|
|
|
10582
10593
|
// widgets that only live there (e.g. AI-place writes that bypass
|
|
10583
10594
|
// the page handler).
|
|
10584
10595
|
if (Array.isArray(workspace.pages)) {
|
|
10585
|
-
var _iterator3 = _createForOfIteratorHelper$
|
|
10596
|
+
var _iterator3 = _createForOfIteratorHelper$u(workspace.pages),
|
|
10586
10597
|
_step3;
|
|
10587
10598
|
try {
|
|
10588
10599
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
@@ -10633,7 +10644,7 @@ function getUnresolvedProviders(_ref2) {
|
|
|
10633
10644
|
// the same `type` listed twice (a Claude code-gen quirk), which
|
|
10634
10645
|
// would otherwise produce duplicate rows in the Providers tab.
|
|
10635
10646
|
var seenTypes = new Set();
|
|
10636
|
-
var _iterator4 = _createForOfIteratorHelper$
|
|
10647
|
+
var _iterator4 = _createForOfIteratorHelper$u(requirements),
|
|
10637
10648
|
_step4;
|
|
10638
10649
|
try {
|
|
10639
10650
|
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
@@ -10676,7 +10687,7 @@ function getUnresolvedProviders(_ref2) {
|
|
|
10676
10687
|
*/
|
|
10677
10688
|
function groupByProviderType(unresolved) {
|
|
10678
10689
|
var byType = new Map();
|
|
10679
|
-
var _iterator5 = _createForOfIteratorHelper$
|
|
10690
|
+
var _iterator5 = _createForOfIteratorHelper$u(unresolved || []),
|
|
10680
10691
|
_step5;
|
|
10681
10692
|
try {
|
|
10682
10693
|
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
@@ -10718,7 +10729,7 @@ function getAllProviderBindings(_ref3) {
|
|
|
10718
10729
|
// quirk) which would otherwise duplicate the per-widget row in
|
|
10719
10730
|
// the Providers tab.
|
|
10720
10731
|
var seenTypes = new Set();
|
|
10721
|
-
var _iterator6 = _createForOfIteratorHelper$
|
|
10732
|
+
var _iterator6 = _createForOfIteratorHelper$u(requirements),
|
|
10722
10733
|
_step6;
|
|
10723
10734
|
try {
|
|
10724
10735
|
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
@@ -10760,9 +10771,9 @@ function getAllProviderBindings(_ref3) {
|
|
|
10760
10771
|
|
|
10761
10772
|
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; }
|
|
10762
10773
|
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; }
|
|
10763
|
-
function _createForOfIteratorHelper$
|
|
10764
|
-
function _unsupportedIterableToArray$
|
|
10765
|
-
function _arrayLikeToArray$
|
|
10774
|
+
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; } } }; }
|
|
10775
|
+
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; } }
|
|
10776
|
+
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; }
|
|
10766
10777
|
var EVENT_STRING_RE = /^([^[]+)\[([^\]]+)\]\.(.+)$/;
|
|
10767
10778
|
|
|
10768
10779
|
/** Parse "Component[itemId].event" → { component, itemId, event }. */
|
|
@@ -10932,7 +10943,7 @@ function getCurrentWiring(workspace) {
|
|
|
10932
10943
|
// Live format is array; defensive guard for legacy object
|
|
10933
10944
|
// form (a single source widget keyed under the handler).
|
|
10934
10945
|
var events = Array.isArray(eventList) ? eventList : typeof eventList === "string" ? [eventList] : [];
|
|
10935
|
-
var _iterator = _createForOfIteratorHelper$
|
|
10946
|
+
var _iterator = _createForOfIteratorHelper$t(events),
|
|
10936
10947
|
_step;
|
|
10937
10948
|
try {
|
|
10938
10949
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -10995,7 +11006,7 @@ function getOrphanedListeners(workspace, getWidgetConfig) {
|
|
|
10995
11006
|
if (!byItemId.has(id)) byItemId.set(id, meta);
|
|
10996
11007
|
});
|
|
10997
11008
|
var orphans = [];
|
|
10998
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
11009
|
+
var _iterator2 = _createForOfIteratorHelper$t(wiring),
|
|
10999
11010
|
_step2;
|
|
11000
11011
|
try {
|
|
11001
11012
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -11061,7 +11072,7 @@ function pruneDeadListenerReferences(workspace) {
|
|
|
11061
11072
|
var liveKeys = new Set();
|
|
11062
11073
|
var _walkForLive = function walkForLive(items) {
|
|
11063
11074
|
if (!Array.isArray(items)) return;
|
|
11064
|
-
var _iterator3 = _createForOfIteratorHelper$
|
|
11075
|
+
var _iterator3 = _createForOfIteratorHelper$t(items),
|
|
11065
11076
|
_step3;
|
|
11066
11077
|
try {
|
|
11067
11078
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
@@ -11082,7 +11093,7 @@ function pruneDeadListenerReferences(workspace) {
|
|
|
11082
11093
|
};
|
|
11083
11094
|
_walkForLive(workspace.layout);
|
|
11084
11095
|
if (Array.isArray(workspace.pages)) {
|
|
11085
|
-
var _iterator4 = _createForOfIteratorHelper$
|
|
11096
|
+
var _iterator4 = _createForOfIteratorHelper$t(workspace.pages),
|
|
11086
11097
|
_step4;
|
|
11087
11098
|
try {
|
|
11088
11099
|
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
@@ -11099,7 +11110,7 @@ function pruneDeadListenerReferences(workspace) {
|
|
|
11099
11110
|
var removed = 0;
|
|
11100
11111
|
var _pruneListeners = function pruneListeners(items) {
|
|
11101
11112
|
if (!Array.isArray(items)) return;
|
|
11102
|
-
var _iterator5 = _createForOfIteratorHelper$
|
|
11113
|
+
var _iterator5 = _createForOfIteratorHelper$t(items),
|
|
11103
11114
|
_step5;
|
|
11104
11115
|
try {
|
|
11105
11116
|
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
@@ -11111,7 +11122,7 @@ function pruneDeadListenerReferences(workspace) {
|
|
|
11111
11122
|
var events = item.listeners[handler];
|
|
11112
11123
|
if (!Array.isArray(events)) continue;
|
|
11113
11124
|
var kept = [];
|
|
11114
|
-
var _iterator6 = _createForOfIteratorHelper$
|
|
11125
|
+
var _iterator6 = _createForOfIteratorHelper$t(events),
|
|
11115
11126
|
_step6;
|
|
11116
11127
|
try {
|
|
11117
11128
|
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
@@ -11146,7 +11157,7 @@ function pruneDeadListenerReferences(workspace) {
|
|
|
11146
11157
|
};
|
|
11147
11158
|
_pruneListeners(workspace.layout);
|
|
11148
11159
|
if (Array.isArray(workspace.pages)) {
|
|
11149
|
-
var _iterator7 = _createForOfIteratorHelper$
|
|
11160
|
+
var _iterator7 = _createForOfIteratorHelper$t(workspace.pages),
|
|
11150
11161
|
_step7;
|
|
11151
11162
|
try {
|
|
11152
11163
|
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
@@ -11190,7 +11201,7 @@ function applyWiringChanges(workspace, _ref) {
|
|
|
11190
11201
|
});
|
|
11191
11202
|
return byReceiver.get(id);
|
|
11192
11203
|
};
|
|
11193
|
-
var _iterator8 = _createForOfIteratorHelper$
|
|
11204
|
+
var _iterator8 = _createForOfIteratorHelper$t(adds),
|
|
11194
11205
|
_step8;
|
|
11195
11206
|
try {
|
|
11196
11207
|
for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
|
|
@@ -11203,7 +11214,7 @@ function applyWiringChanges(workspace, _ref) {
|
|
|
11203
11214
|
} finally {
|
|
11204
11215
|
_iterator8.f();
|
|
11205
11216
|
}
|
|
11206
|
-
var _iterator9 = _createForOfIteratorHelper$
|
|
11217
|
+
var _iterator9 = _createForOfIteratorHelper$t(removes),
|
|
11207
11218
|
_step9;
|
|
11208
11219
|
try {
|
|
11209
11220
|
for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
|
|
@@ -11277,7 +11288,7 @@ function applyToItem(listeners, _ref2) {
|
|
|
11277
11288
|
}
|
|
11278
11289
|
|
|
11279
11290
|
// Removes first so a re-add (rare) lands.
|
|
11280
|
-
var _iterator0 = _createForOfIteratorHelper$
|
|
11291
|
+
var _iterator0 = _createForOfIteratorHelper$t(removes),
|
|
11281
11292
|
_step0;
|
|
11282
11293
|
try {
|
|
11283
11294
|
var _loop = function _loop() {
|
|
@@ -11306,7 +11317,7 @@ function applyToItem(listeners, _ref2) {
|
|
|
11306
11317
|
} finally {
|
|
11307
11318
|
_iterator0.f();
|
|
11308
11319
|
}
|
|
11309
|
-
var _iterator1 = _createForOfIteratorHelper$
|
|
11320
|
+
var _iterator1 = _createForOfIteratorHelper$t(adds),
|
|
11310
11321
|
_step1;
|
|
11311
11322
|
try {
|
|
11312
11323
|
for (_iterator1.s(); !(_step1 = _iterator1.n()).done;) {
|
|
@@ -14279,9 +14290,9 @@ function mcpJsonToFormState(jsonString, nextRowId) {
|
|
|
14279
14290
|
return result;
|
|
14280
14291
|
}
|
|
14281
14292
|
|
|
14282
|
-
function _createForOfIteratorHelper$
|
|
14283
|
-
function _unsupportedIterableToArray$
|
|
14284
|
-
function _arrayLikeToArray$
|
|
14293
|
+
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; } } }; }
|
|
14294
|
+
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; } }
|
|
14295
|
+
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; }
|
|
14285
14296
|
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; }
|
|
14286
14297
|
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; }
|
|
14287
14298
|
var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
@@ -14566,11 +14577,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
14566
14577
|
|
|
14567
14578
|
// Flatten all widgets from all packages for the widget list
|
|
14568
14579
|
flatWidgets = [];
|
|
14569
|
-
_iterator = _createForOfIteratorHelper$
|
|
14580
|
+
_iterator = _createForOfIteratorHelper$s(result.packages || []);
|
|
14570
14581
|
try {
|
|
14571
14582
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
14572
14583
|
pkg = _step.value;
|
|
14573
|
-
_iterator2 = _createForOfIteratorHelper$
|
|
14584
|
+
_iterator2 = _createForOfIteratorHelper$s(pkg.widgets || []);
|
|
14574
14585
|
try {
|
|
14575
14586
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
14576
14587
|
widget = _step2.value;
|
|
@@ -16464,9 +16475,9 @@ var useWidgetSchedulerStatus = function useWidgetSchedulerStatus(widgetId) {
|
|
|
16464
16475
|
};
|
|
16465
16476
|
};
|
|
16466
16477
|
|
|
16467
|
-
function _createForOfIteratorHelper$
|
|
16468
|
-
function _unsupportedIterableToArray$
|
|
16469
|
-
function _arrayLikeToArray$
|
|
16478
|
+
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; } } }; }
|
|
16479
|
+
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; } }
|
|
16480
|
+
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; }
|
|
16470
16481
|
function formatCountdown(ms) {
|
|
16471
16482
|
if (ms == null || ms < 0) return "--";
|
|
16472
16483
|
if (ms < 1000) return "< 1s";
|
|
@@ -16583,7 +16594,7 @@ var WidgetCardStatusBar = function WidgetCardStatusBar(_ref) {
|
|
|
16583
16594
|
|
|
16584
16595
|
// Find soonest countdown among enabled tasks
|
|
16585
16596
|
var soonestMs = null;
|
|
16586
|
-
var _iterator = _createForOfIteratorHelper$
|
|
16597
|
+
var _iterator = _createForOfIteratorHelper$r(enabledTasks),
|
|
16587
16598
|
_step;
|
|
16588
16599
|
try {
|
|
16589
16600
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -21902,9 +21913,9 @@ var ExternalWidget = function ExternalWidget(_ref) {
|
|
|
21902
21913
|
var GRID_CELL_WIDGET_TYPE = "grid-cell-widget";
|
|
21903
21914
|
var SIDEBAR_WIDGET_TYPE = "sidebar-widget";
|
|
21904
21915
|
|
|
21905
|
-
function _createForOfIteratorHelper$
|
|
21906
|
-
function _unsupportedIterableToArray$
|
|
21907
|
-
function _arrayLikeToArray$
|
|
21916
|
+
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; } } }; }
|
|
21917
|
+
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; } }
|
|
21918
|
+
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; }
|
|
21908
21919
|
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; }
|
|
21909
21920
|
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; }
|
|
21910
21921
|
|
|
@@ -22527,7 +22538,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
22527
22538
|
return selectable["delete"](cn);
|
|
22528
22539
|
});
|
|
22529
22540
|
var resolved = new Set();
|
|
22530
|
-
var _iterator = _createForOfIteratorHelper$
|
|
22541
|
+
var _iterator = _createForOfIteratorHelper$q(selectable),
|
|
22531
22542
|
_step;
|
|
22532
22543
|
try {
|
|
22533
22544
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -24936,9 +24947,9 @@ function migrateBareComponentName(componentMap, component) {
|
|
|
24936
24947
|
|
|
24937
24948
|
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; }
|
|
24938
24949
|
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; }
|
|
24939
|
-
function _createForOfIteratorHelper$
|
|
24940
|
-
function _unsupportedIterableToArray$
|
|
24941
|
-
function _arrayLikeToArray$
|
|
24950
|
+
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; } } }; }
|
|
24951
|
+
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; } }
|
|
24952
|
+
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; }
|
|
24942
24953
|
/**
|
|
24943
24954
|
* The model for all layout components used primarily in the renderLayout method
|
|
24944
24955
|
* @param {Object} layoutItem an object containing various attributes of the layout item
|
|
@@ -24950,7 +24961,7 @@ function _arrayLikeToArray$o(r, a) { (null == a || a > r.length) && (a = r.lengt
|
|
|
24950
24961
|
function sortObjectByKeys(obj) {
|
|
24951
24962
|
var sortedKeys = Object.keys(obj).sort();
|
|
24952
24963
|
var sortedObj = {};
|
|
24953
|
-
var _iterator = _createForOfIteratorHelper$
|
|
24964
|
+
var _iterator = _createForOfIteratorHelper$p(sortedKeys),
|
|
24954
24965
|
_step;
|
|
24955
24966
|
try {
|
|
24956
24967
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -25262,9 +25273,9 @@ var SettingsModel = function SettingsModel() {
|
|
|
25262
25273
|
return obj;
|
|
25263
25274
|
};
|
|
25264
25275
|
|
|
25265
|
-
function _createForOfIteratorHelper$
|
|
25266
|
-
function _unsupportedIterableToArray$
|
|
25267
|
-
function _arrayLikeToArray$
|
|
25276
|
+
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; } } }; }
|
|
25277
|
+
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; } }
|
|
25278
|
+
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; }
|
|
25268
25279
|
|
|
25269
25280
|
/**
|
|
25270
25281
|
* Workspace-level pre-pass that migrates legacy bare component
|
|
@@ -25339,7 +25350,7 @@ function migrateScopedIdsInWorkspace(workspace, componentMap) {
|
|
|
25339
25350
|
};
|
|
25340
25351
|
var _walk = function walk(items) {
|
|
25341
25352
|
if (!Array.isArray(items)) return;
|
|
25342
|
-
var _iterator = _createForOfIteratorHelper$
|
|
25353
|
+
var _iterator = _createForOfIteratorHelper$o(items),
|
|
25343
25354
|
_step;
|
|
25344
25355
|
try {
|
|
25345
25356
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -25361,7 +25372,7 @@ function migrateScopedIdsInWorkspace(workspace, componentMap) {
|
|
|
25361
25372
|
};
|
|
25362
25373
|
_walk(workspace.layout);
|
|
25363
25374
|
if (Array.isArray(workspace.pages)) {
|
|
25364
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
25375
|
+
var _iterator2 = _createForOfIteratorHelper$o(workspace.pages),
|
|
25365
25376
|
_step2;
|
|
25366
25377
|
try {
|
|
25367
25378
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -25378,9 +25389,9 @@ function migrateScopedIdsInWorkspace(workspace, componentMap) {
|
|
|
25378
25389
|
return counts;
|
|
25379
25390
|
}
|
|
25380
25391
|
|
|
25381
|
-
function _createForOfIteratorHelper$
|
|
25382
|
-
function _unsupportedIterableToArray$
|
|
25383
|
-
function _arrayLikeToArray$
|
|
25392
|
+
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; } } }; }
|
|
25393
|
+
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; } }
|
|
25394
|
+
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; }
|
|
25384
25395
|
/**
|
|
25385
25396
|
* cleanForeignWidgetsFromWorkspace.js
|
|
25386
25397
|
*
|
|
@@ -25421,7 +25432,7 @@ function cleanForeignWidgetsFromWorkspace(workspace) {
|
|
|
25421
25432
|
var _cleanList = function cleanList(items) {
|
|
25422
25433
|
if (!Array.isArray(items)) return items;
|
|
25423
25434
|
var kept = [];
|
|
25424
|
-
var _iterator = _createForOfIteratorHelper$
|
|
25435
|
+
var _iterator = _createForOfIteratorHelper$n(items),
|
|
25425
25436
|
_step;
|
|
25426
25437
|
try {
|
|
25427
25438
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -25458,7 +25469,7 @@ function cleanForeignWidgetsFromWorkspace(workspace) {
|
|
|
25458
25469
|
workspace.sidebarLayout = _cleanList(workspace.sidebarLayout);
|
|
25459
25470
|
}
|
|
25460
25471
|
if (Array.isArray(workspace.pages)) {
|
|
25461
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
25472
|
+
var _iterator2 = _createForOfIteratorHelper$n(workspace.pages),
|
|
25462
25473
|
_step2;
|
|
25463
25474
|
try {
|
|
25464
25475
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -25476,9 +25487,9 @@ function cleanForeignWidgetsFromWorkspace(workspace) {
|
|
|
25476
25487
|
return summary;
|
|
25477
25488
|
}
|
|
25478
25489
|
|
|
25479
|
-
function _createForOfIteratorHelper$
|
|
25480
|
-
function _unsupportedIterableToArray$
|
|
25481
|
-
function _arrayLikeToArray$
|
|
25490
|
+
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; } } }; }
|
|
25491
|
+
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; } }
|
|
25492
|
+
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; }
|
|
25482
25493
|
/**
|
|
25483
25494
|
* migrateLayoutItemTypes.js
|
|
25484
25495
|
*
|
|
@@ -25540,7 +25551,7 @@ function migrateLayoutItemTypes(workspace) {
|
|
|
25540
25551
|
};
|
|
25541
25552
|
var _walk = function walk(items) {
|
|
25542
25553
|
if (!Array.isArray(items)) return;
|
|
25543
|
-
var _iterator = _createForOfIteratorHelper$
|
|
25554
|
+
var _iterator = _createForOfIteratorHelper$m(items),
|
|
25544
25555
|
_step;
|
|
25545
25556
|
try {
|
|
25546
25557
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -25558,7 +25569,7 @@ function migrateLayoutItemTypes(workspace) {
|
|
|
25558
25569
|
};
|
|
25559
25570
|
_walk(workspace.layout);
|
|
25560
25571
|
if (Array.isArray(workspace.pages)) {
|
|
25561
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
25572
|
+
var _iterator2 = _createForOfIteratorHelper$m(workspace.pages),
|
|
25562
25573
|
_step2;
|
|
25563
25574
|
try {
|
|
25564
25575
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -25939,9 +25950,9 @@ var ThemeModel = function ThemeModel() {
|
|
|
25939
25950
|
}
|
|
25940
25951
|
};
|
|
25941
25952
|
|
|
25942
|
-
function _createForOfIteratorHelper$
|
|
25943
|
-
function _unsupportedIterableToArray$
|
|
25944
|
-
function _arrayLikeToArray$
|
|
25953
|
+
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; } } }; }
|
|
25954
|
+
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; } }
|
|
25955
|
+
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; }
|
|
25945
25956
|
/*
|
|
25946
25957
|
"component": AnalyticsReportsWidget,
|
|
25947
25958
|
"type":"widget",
|
|
@@ -26059,7 +26070,7 @@ var ComponentConfigModel = function ComponentConfigModel() {
|
|
|
26059
26070
|
if ("providers" in obj && Array.isArray(obj.providers)) {
|
|
26060
26071
|
var seen = new Set();
|
|
26061
26072
|
var cleaned = [];
|
|
26062
|
-
var _iterator = _createForOfIteratorHelper$
|
|
26073
|
+
var _iterator = _createForOfIteratorHelper$l(obj.providers),
|
|
26063
26074
|
_step;
|
|
26064
26075
|
try {
|
|
26065
26076
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -26107,9 +26118,9 @@ var MenuItemModel = function MenuItemModel() {
|
|
|
26107
26118
|
|
|
26108
26119
|
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; }
|
|
26109
26120
|
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; }
|
|
26110
|
-
function _createForOfIteratorHelper$
|
|
26111
|
-
function _unsupportedIterableToArray$
|
|
26112
|
-
function _arrayLikeToArray$
|
|
26121
|
+
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; } } }; }
|
|
26122
|
+
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; } }
|
|
26123
|
+
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; }
|
|
26113
26124
|
/**
|
|
26114
26125
|
* A Model for a Workspace (Dashboard)
|
|
26115
26126
|
* The Dashboard in this instance is the entire Layout inclusive of the workspaces and widgets
|
|
@@ -26181,7 +26192,7 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
26181
26192
|
|
|
26182
26193
|
// Also normalize grids within pages
|
|
26183
26194
|
if (this.pages.length > 0) {
|
|
26184
|
-
var _iterator = _createForOfIteratorHelper$
|
|
26195
|
+
var _iterator = _createForOfIteratorHelper$k(this.pages),
|
|
26185
26196
|
_step;
|
|
26186
26197
|
try {
|
|
26187
26198
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -28157,7 +28168,7 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
28157
28168
|
try {
|
|
28158
28169
|
// Collect all item IDs actively referenced by grid cells
|
|
28159
28170
|
var activeItemIds = new Set();
|
|
28160
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
28171
|
+
var _iterator2 = _createForOfIteratorHelper$k(this.layout),
|
|
28161
28172
|
_step2;
|
|
28162
28173
|
try {
|
|
28163
28174
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -28197,7 +28208,7 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
28197
28208
|
});
|
|
28198
28209
|
|
|
28199
28210
|
// Clean listener references on remaining items for each removed orphan
|
|
28200
|
-
var _iterator3 = _createForOfIteratorHelper$
|
|
28211
|
+
var _iterator3 = _createForOfIteratorHelper$k(orphanedIds),
|
|
28201
28212
|
_step3;
|
|
28202
28213
|
try {
|
|
28203
28214
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
@@ -29018,9 +29029,9 @@ var useDashboard = function useDashboard() {
|
|
|
29018
29029
|
});
|
|
29019
29030
|
};
|
|
29020
29031
|
|
|
29021
|
-
function _createForOfIteratorHelper$
|
|
29022
|
-
function _unsupportedIterableToArray$
|
|
29023
|
-
function _arrayLikeToArray$
|
|
29032
|
+
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; } } }; }
|
|
29033
|
+
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; } }
|
|
29034
|
+
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; }
|
|
29024
29035
|
|
|
29025
29036
|
/**
|
|
29026
29037
|
* useWidgetProviders Hook
|
|
@@ -29076,7 +29087,7 @@ var useWidgetProviders = function useWidgetProviders() {
|
|
|
29076
29087
|
// 1. Widget-level: stored directly on the layout item by handleSelectProvider
|
|
29077
29088
|
// 2. Workspace-level: stored as workspace.selectedProviders[widgetId][providerType]
|
|
29078
29089
|
var providers = {};
|
|
29079
|
-
var _iterator = _createForOfIteratorHelper$
|
|
29090
|
+
var _iterator = _createForOfIteratorHelper$j(providerDeclarations),
|
|
29080
29091
|
_step;
|
|
29081
29092
|
try {
|
|
29082
29093
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -29118,19 +29129,104 @@ var useWidgetProviders = function useWidgetProviders() {
|
|
|
29118
29129
|
};
|
|
29119
29130
|
};
|
|
29120
29131
|
|
|
29132
|
+
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; } } }; }
|
|
29133
|
+
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; } }
|
|
29134
|
+
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; }
|
|
29135
|
+
|
|
29121
29136
|
/**
|
|
29122
29137
|
* Module-level shared state for MCP server connections.
|
|
29123
|
-
* Prevents multiple hook instances (e.g., 4 widgets
|
|
29124
|
-
* each firing their own IPC startServer call.
|
|
29138
|
+
* Prevents multiple hook instances (e.g., 4 widgets on the same dashboard
|
|
29139
|
+
* using "slack") from each firing their own IPC startServer call.
|
|
29140
|
+
*
|
|
29141
|
+
* Slice 3a: keys are scoped per `(workspaceId, serverName)` so two
|
|
29142
|
+
* dashboards using the same provider name don't share renderer state
|
|
29143
|
+
* (the main process spawns separate server instances for each).
|
|
29125
29144
|
*
|
|
29126
|
-
* serverStates: tracks connection result + consumer reference count
|
|
29127
|
-
* pendingConnects: deduplicates in-flight IPC calls
|
|
29145
|
+
* serverStates: tracks connection result + consumer reference count
|
|
29146
|
+
* pendingConnects: deduplicates in-flight IPC calls
|
|
29128
29147
|
*/
|
|
29129
29148
|
var serverStates = new Map();
|
|
29130
|
-
// Map
|
|
29149
|
+
// Map<`${workspaceId}::${serverName}`, { status, tools, resources, consumerCount }>
|
|
29131
29150
|
|
|
29132
29151
|
var pendingConnects$1 = new Map();
|
|
29133
|
-
// Map
|
|
29152
|
+
// Map<`${workspaceId}::${serverName}`, Promise<result>>
|
|
29153
|
+
|
|
29154
|
+
var NO_WORKSPACE = "__no_workspace__";
|
|
29155
|
+
function rendererStateKey(workspaceId, serverName) {
|
|
29156
|
+
var wid = workspaceId && typeof workspaceId === "string" ? workspaceId : NO_WORKSPACE;
|
|
29157
|
+
return wid + "::" + serverName;
|
|
29158
|
+
}
|
|
29159
|
+
|
|
29160
|
+
/**
|
|
29161
|
+
* Slice 3b: compute the union of granted paths for a server across a
|
|
29162
|
+
* set of widgets. Mirrors electron/utils/mcpScopeResolver.unionPathScope
|
|
29163
|
+
* but inline here because the electron/ helper isn't reachable from the
|
|
29164
|
+
* renderer build. The mainline path-scope test runs against the
|
|
29165
|
+
* electron-side helper; this one is exercised at runtime when widgets
|
|
29166
|
+
* connect.
|
|
29167
|
+
*/
|
|
29168
|
+
function unionPathScope(grants, serverName) {
|
|
29169
|
+
var reads = new Set();
|
|
29170
|
+
var writes = new Set();
|
|
29171
|
+
if (!Array.isArray(grants)) {
|
|
29172
|
+
return {
|
|
29173
|
+
readPaths: [],
|
|
29174
|
+
writePaths: [],
|
|
29175
|
+
allowedPaths: []
|
|
29176
|
+
};
|
|
29177
|
+
}
|
|
29178
|
+
var _iterator = _createForOfIteratorHelper$i(grants),
|
|
29179
|
+
_step;
|
|
29180
|
+
try {
|
|
29181
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
29182
|
+
var entry = _step.value;
|
|
29183
|
+
if (!entry || _typeof(entry) !== "object") continue;
|
|
29184
|
+
var granted = entry.granted;
|
|
29185
|
+
if (!granted || _typeof(granted) !== "object") continue;
|
|
29186
|
+
var servers = granted.servers;
|
|
29187
|
+
if (!servers || _typeof(servers) !== "object") continue;
|
|
29188
|
+
var serverPerms = servers[serverName];
|
|
29189
|
+
if (!serverPerms || _typeof(serverPerms) !== "object") continue;
|
|
29190
|
+
if (Array.isArray(serverPerms.readPaths)) {
|
|
29191
|
+
var _iterator2 = _createForOfIteratorHelper$i(serverPerms.readPaths),
|
|
29192
|
+
_step2;
|
|
29193
|
+
try {
|
|
29194
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
29195
|
+
var p = _step2.value;
|
|
29196
|
+
if (typeof p === "string" && p) reads.add(p);
|
|
29197
|
+
}
|
|
29198
|
+
} catch (err) {
|
|
29199
|
+
_iterator2.e(err);
|
|
29200
|
+
} finally {
|
|
29201
|
+
_iterator2.f();
|
|
29202
|
+
}
|
|
29203
|
+
}
|
|
29204
|
+
if (Array.isArray(serverPerms.writePaths)) {
|
|
29205
|
+
var _iterator3 = _createForOfIteratorHelper$i(serverPerms.writePaths),
|
|
29206
|
+
_step3;
|
|
29207
|
+
try {
|
|
29208
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
29209
|
+
var _p = _step3.value;
|
|
29210
|
+
if (typeof _p === "string" && _p) writes.add(_p);
|
|
29211
|
+
}
|
|
29212
|
+
} catch (err) {
|
|
29213
|
+
_iterator3.e(err);
|
|
29214
|
+
} finally {
|
|
29215
|
+
_iterator3.f();
|
|
29216
|
+
}
|
|
29217
|
+
}
|
|
29218
|
+
}
|
|
29219
|
+
} catch (err) {
|
|
29220
|
+
_iterator.e(err);
|
|
29221
|
+
} finally {
|
|
29222
|
+
_iterator.f();
|
|
29223
|
+
}
|
|
29224
|
+
return {
|
|
29225
|
+
readPaths: _toConsumableArray(reads),
|
|
29226
|
+
writePaths: _toConsumableArray(writes),
|
|
29227
|
+
allowedPaths: _toConsumableArray(new Set([].concat(_toConsumableArray(reads), _toConsumableArray(writes))))
|
|
29228
|
+
};
|
|
29229
|
+
}
|
|
29134
29230
|
|
|
29135
29231
|
/**
|
|
29136
29232
|
* useMcpProvider Hook
|
|
@@ -29299,7 +29395,8 @@ var useMcpProvider = function useMcpProvider(providerType) {
|
|
|
29299
29395
|
* even when multiple hook instances call connect() simultaneously.
|
|
29300
29396
|
*/
|
|
29301
29397
|
var connect = React.useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
29302
|
-
var
|
|
29398
|
+
var _workspace$workspaceD2;
|
|
29399
|
+
var workspaceId, stateKey, pathScope, _workspace$workspaceD3, _window$mainApi, wsBindings, widgetIdsOnServer, _i2, _Object$entries2, _Object$entries2$_i, wId, bindings, allGrants, relevant, cached, statusResult, result, state, connectPromise, _result, _t, _t4, _t5;
|
|
29303
29400
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
29304
29401
|
while (1) switch (_context.prev = _context.next) {
|
|
29305
29402
|
case 0:
|
|
@@ -29330,96 +29427,150 @@ var useMcpProvider = function useMcpProvider(providerType) {
|
|
|
29330
29427
|
setError("Provider \"".concat(selectedProviderName, "\" has no MCP configuration"));
|
|
29331
29428
|
return _context.abrupt("return");
|
|
29332
29429
|
case 4:
|
|
29430
|
+
// Slice 3a: scope state per (workspace, provider). Two dashboards
|
|
29431
|
+
// using the same provider name get separate server instances in the
|
|
29432
|
+
// main process, so the renderer state must mirror that or one
|
|
29433
|
+
// dashboard's "connected" cache will short-circuit a second
|
|
29434
|
+
// dashboard's connect that needs its own backing process.
|
|
29435
|
+
workspaceId = (workspace === null || workspace === void 0 || (_workspace$workspaceD2 = workspace.workspaceData) === null || _workspace$workspaceD2 === void 0 ? void 0 : _workspace$workspaceD2.id) || null;
|
|
29436
|
+
stateKey = rendererStateKey(workspaceId, selectedProviderName); // Slice 3b: compute the workspace's path-scope union from grants.
|
|
29437
|
+
// Enumerate widgets on this workspace that bind to this server,
|
|
29438
|
+
// look up their grants, union the read+write paths. Server spawns
|
|
29439
|
+
// with that union as its allowed-paths. Widget-level bindings on
|
|
29440
|
+
// layout items that aren't reflected in workspaceData.selectedProviders
|
|
29441
|
+
// are not enumerated — those widgets must rely on workspace-level
|
|
29442
|
+
// bindings to contribute to the union (known limitation).
|
|
29443
|
+
pathScope = null;
|
|
29444
|
+
_context.prev = 5;
|
|
29445
|
+
wsBindings = workspace === null || workspace === void 0 || (_workspace$workspaceD3 = workspace.workspaceData) === null || _workspace$workspaceD3 === void 0 ? void 0 : _workspace$workspaceD3.selectedProviders;
|
|
29446
|
+
widgetIdsOnServer = new Set(); // Always include the calling widget itself.
|
|
29447
|
+
if (widgetId) widgetIdsOnServer.add(widgetId);
|
|
29448
|
+
if (wsBindings && _typeof(wsBindings) === "object") {
|
|
29449
|
+
for (_i2 = 0, _Object$entries2 = Object.entries(wsBindings); _i2 < _Object$entries2.length; _i2++) {
|
|
29450
|
+
_Object$entries2$_i = _slicedToArray(_Object$entries2[_i2], 2), wId = _Object$entries2$_i[0], bindings = _Object$entries2$_i[1];
|
|
29451
|
+
if (bindings && _typeof(bindings) === "object" && bindings[providerType] === selectedProviderName) {
|
|
29452
|
+
widgetIdsOnServer.add(wId);
|
|
29453
|
+
}
|
|
29454
|
+
}
|
|
29455
|
+
}
|
|
29456
|
+
if (!(widgetIdsOnServer.size > 0 && (_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && (_window$mainApi = _window$mainApi.widgetMcp) !== null && _window$mainApi !== void 0 && _window$mainApi.listAll)) {
|
|
29457
|
+
_context.next = 8;
|
|
29458
|
+
break;
|
|
29459
|
+
}
|
|
29460
|
+
_context.next = 6;
|
|
29461
|
+
return window.mainApi.widgetMcp.listAll();
|
|
29462
|
+
case 6:
|
|
29463
|
+
_t = _context.sent;
|
|
29464
|
+
if (_t) {
|
|
29465
|
+
_context.next = 7;
|
|
29466
|
+
break;
|
|
29467
|
+
}
|
|
29468
|
+
_t = [];
|
|
29469
|
+
case 7:
|
|
29470
|
+
allGrants = _t;
|
|
29471
|
+
relevant = allGrants.filter(function (g) {
|
|
29472
|
+
return widgetIdsOnServer.has(g.widgetId);
|
|
29473
|
+
});
|
|
29474
|
+
if (relevant.length > 0) {
|
|
29475
|
+
pathScope = unionPathScope(relevant, selectedProviderName);
|
|
29476
|
+
}
|
|
29477
|
+
case 8:
|
|
29478
|
+
_context.next = 10;
|
|
29479
|
+
break;
|
|
29480
|
+
case 9:
|
|
29481
|
+
_context.prev = 9;
|
|
29482
|
+
_context["catch"](5);
|
|
29483
|
+
case 10:
|
|
29333
29484
|
// 1. Already connected at module level? Verify with main process before trusting cache.
|
|
29334
29485
|
// The server may have been stopped externally (e.g., Test Connection in settings).
|
|
29335
|
-
cached = serverStates.get(
|
|
29486
|
+
cached = serverStates.get(stateKey);
|
|
29336
29487
|
if (!(cached && cached.status === "connected")) {
|
|
29337
|
-
_context.next =
|
|
29488
|
+
_context.next = 15;
|
|
29338
29489
|
break;
|
|
29339
29490
|
}
|
|
29340
|
-
_context.prev =
|
|
29341
|
-
_context.next =
|
|
29491
|
+
_context.prev = 11;
|
|
29492
|
+
_context.next = 12;
|
|
29342
29493
|
return new Promise(function (resolve, reject) {
|
|
29343
29494
|
dashApi.mcpGetServerStatus(selectedProviderName, function (event, result) {
|
|
29344
29495
|
return resolve(result);
|
|
29345
29496
|
}, function (event, err) {
|
|
29346
29497
|
return reject(err);
|
|
29347
|
-
});
|
|
29498
|
+
}, workspaceId);
|
|
29348
29499
|
});
|
|
29349
|
-
case
|
|
29500
|
+
case 12:
|
|
29350
29501
|
statusResult = _context.sent;
|
|
29351
29502
|
if (!((statusResult === null || statusResult === void 0 ? void 0 : statusResult.status) === "connected")) {
|
|
29352
|
-
_context.next =
|
|
29503
|
+
_context.next = 13;
|
|
29353
29504
|
break;
|
|
29354
29505
|
}
|
|
29355
29506
|
cached.consumerCount++;
|
|
29356
29507
|
applyResult(cached);
|
|
29357
29508
|
return _context.abrupt("return");
|
|
29358
|
-
case
|
|
29509
|
+
case 13:
|
|
29359
29510
|
// Server was stopped externally — clear stale cache and reconnect
|
|
29360
|
-
serverStates["delete"](
|
|
29361
|
-
_context.next =
|
|
29511
|
+
serverStates["delete"](stateKey);
|
|
29512
|
+
_context.next = 15;
|
|
29362
29513
|
break;
|
|
29363
|
-
case
|
|
29364
|
-
_context.prev =
|
|
29365
|
-
_context["catch"](
|
|
29366
|
-
serverStates["delete"](
|
|
29367
|
-
case
|
|
29514
|
+
case 14:
|
|
29515
|
+
_context.prev = 14;
|
|
29516
|
+
_context["catch"](11);
|
|
29517
|
+
serverStates["delete"](stateKey);
|
|
29518
|
+
case 15:
|
|
29368
29519
|
setIsConnecting(true);
|
|
29369
29520
|
setError(null);
|
|
29370
29521
|
|
|
29371
29522
|
// 2. Another hook instance already connecting? Piggyback on its promise
|
|
29372
|
-
if (!pendingConnects$1.has(
|
|
29373
|
-
_context.next =
|
|
29523
|
+
if (!pendingConnects$1.has(stateKey)) {
|
|
29524
|
+
_context.next = 23;
|
|
29374
29525
|
break;
|
|
29375
29526
|
}
|
|
29376
|
-
_context.prev =
|
|
29377
|
-
_context.next =
|
|
29378
|
-
return pendingConnects$1.get(
|
|
29379
|
-
case
|
|
29527
|
+
_context.prev = 16;
|
|
29528
|
+
_context.next = 17;
|
|
29529
|
+
return pendingConnects$1.get(stateKey);
|
|
29530
|
+
case 17:
|
|
29380
29531
|
result = _context.sent;
|
|
29381
29532
|
if (mountedRef.current) {
|
|
29382
|
-
_context.next =
|
|
29533
|
+
_context.next = 18;
|
|
29383
29534
|
break;
|
|
29384
29535
|
}
|
|
29385
29536
|
return _context.abrupt("return");
|
|
29386
|
-
case
|
|
29537
|
+
case 18:
|
|
29387
29538
|
if (!result.error) {
|
|
29388
|
-
_context.next =
|
|
29539
|
+
_context.next = 19;
|
|
29389
29540
|
break;
|
|
29390
29541
|
}
|
|
29391
29542
|
setError(result.message);
|
|
29392
29543
|
setIsConnecting(false);
|
|
29393
29544
|
setStatus("error");
|
|
29394
29545
|
return _context.abrupt("return");
|
|
29395
|
-
case
|
|
29546
|
+
case 19:
|
|
29396
29547
|
// Increment consumer count and apply
|
|
29397
|
-
state = serverStates.get(
|
|
29548
|
+
state = serverStates.get(stateKey);
|
|
29398
29549
|
if (state) state.consumerCount++;
|
|
29399
29550
|
applyResult(result);
|
|
29400
|
-
_context.next =
|
|
29551
|
+
_context.next = 22;
|
|
29401
29552
|
break;
|
|
29402
|
-
case
|
|
29403
|
-
_context.prev =
|
|
29404
|
-
|
|
29553
|
+
case 20:
|
|
29554
|
+
_context.prev = 20;
|
|
29555
|
+
_t4 = _context["catch"](16);
|
|
29405
29556
|
if (mountedRef.current) {
|
|
29406
|
-
_context.next =
|
|
29557
|
+
_context.next = 21;
|
|
29407
29558
|
break;
|
|
29408
29559
|
}
|
|
29409
29560
|
return _context.abrupt("return");
|
|
29410
|
-
case
|
|
29411
|
-
setError((
|
|
29561
|
+
case 21:
|
|
29562
|
+
setError((_t4 === null || _t4 === void 0 ? void 0 : _t4.message) || "Failed to connect to MCP server");
|
|
29412
29563
|
setIsConnecting(false);
|
|
29413
29564
|
setStatus("error");
|
|
29414
|
-
case
|
|
29565
|
+
case 22:
|
|
29415
29566
|
return _context.abrupt("return");
|
|
29416
|
-
case
|
|
29567
|
+
case 23:
|
|
29417
29568
|
// 3. First caller — fire the IPC call and share the promise
|
|
29418
29569
|
connectPromise = new Promise(function (resolve, reject) {
|
|
29419
29570
|
dashApi.mcpStartServer(selectedProviderName, provider.mcpConfig, provider.credentials, function (event, result) {
|
|
29420
|
-
pendingConnects$1["delete"](
|
|
29571
|
+
pendingConnects$1["delete"](stateKey);
|
|
29421
29572
|
if (result.error) {
|
|
29422
|
-
serverStates.set(
|
|
29573
|
+
serverStates.set(stateKey, {
|
|
29423
29574
|
status: "error",
|
|
29424
29575
|
tools: [],
|
|
29425
29576
|
resources: [],
|
|
@@ -29430,7 +29581,7 @@ var useMcpProvider = function useMcpProvider(providerType) {
|
|
|
29430
29581
|
}
|
|
29431
29582
|
|
|
29432
29583
|
// Store in module-level shared state
|
|
29433
|
-
serverStates.set(
|
|
29584
|
+
serverStates.set(stateKey, {
|
|
29434
29585
|
status: "connected",
|
|
29435
29586
|
tools: result.tools || [],
|
|
29436
29587
|
resources: result.resources || [],
|
|
@@ -29438,65 +29589,66 @@ var useMcpProvider = function useMcpProvider(providerType) {
|
|
|
29438
29589
|
});
|
|
29439
29590
|
resolve(result);
|
|
29440
29591
|
}, function (event, err) {
|
|
29441
|
-
pendingConnects$1["delete"](
|
|
29442
|
-
serverStates.set(
|
|
29592
|
+
pendingConnects$1["delete"](stateKey);
|
|
29593
|
+
serverStates.set(stateKey, {
|
|
29443
29594
|
status: "error",
|
|
29444
29595
|
tools: [],
|
|
29445
29596
|
resources: [],
|
|
29446
29597
|
consumerCount: 0
|
|
29447
29598
|
});
|
|
29448
29599
|
reject(err);
|
|
29449
|
-
});
|
|
29600
|
+
}, workspaceId, pathScope);
|
|
29450
29601
|
});
|
|
29451
|
-
pendingConnects$1.set(
|
|
29452
|
-
_context.prev =
|
|
29453
|
-
_context.next =
|
|
29602
|
+
pendingConnects$1.set(stateKey, connectPromise);
|
|
29603
|
+
_context.prev = 24;
|
|
29604
|
+
_context.next = 25;
|
|
29454
29605
|
return connectPromise;
|
|
29455
|
-
case
|
|
29606
|
+
case 25:
|
|
29456
29607
|
_result = _context.sent;
|
|
29457
29608
|
if (mountedRef.current) {
|
|
29458
|
-
_context.next =
|
|
29609
|
+
_context.next = 26;
|
|
29459
29610
|
break;
|
|
29460
29611
|
}
|
|
29461
29612
|
return _context.abrupt("return");
|
|
29462
|
-
case
|
|
29613
|
+
case 26:
|
|
29463
29614
|
if (!_result.error) {
|
|
29464
|
-
_context.next =
|
|
29615
|
+
_context.next = 27;
|
|
29465
29616
|
break;
|
|
29466
29617
|
}
|
|
29467
29618
|
setError(_result.message);
|
|
29468
29619
|
setIsConnecting(false);
|
|
29469
29620
|
setStatus("error");
|
|
29470
29621
|
return _context.abrupt("return");
|
|
29471
|
-
case
|
|
29622
|
+
case 27:
|
|
29472
29623
|
applyResult(_result);
|
|
29473
|
-
_context.next =
|
|
29624
|
+
_context.next = 30;
|
|
29474
29625
|
break;
|
|
29475
|
-
case
|
|
29476
|
-
_context.prev =
|
|
29477
|
-
|
|
29626
|
+
case 28:
|
|
29627
|
+
_context.prev = 28;
|
|
29628
|
+
_t5 = _context["catch"](24);
|
|
29478
29629
|
if (mountedRef.current) {
|
|
29479
|
-
_context.next =
|
|
29630
|
+
_context.next = 29;
|
|
29480
29631
|
break;
|
|
29481
29632
|
}
|
|
29482
29633
|
return _context.abrupt("return");
|
|
29483
|
-
case
|
|
29484
|
-
setError((
|
|
29634
|
+
case 29:
|
|
29635
|
+
setError((_t5 === null || _t5 === void 0 ? void 0 : _t5.message) || "Failed to connect to MCP server");
|
|
29485
29636
|
setIsConnecting(false);
|
|
29486
29637
|
setStatus("error");
|
|
29487
|
-
case
|
|
29638
|
+
case 30:
|
|
29488
29639
|
case "end":
|
|
29489
29640
|
return _context.stop();
|
|
29490
29641
|
}
|
|
29491
|
-
}, _callee, null, [[5,
|
|
29492
|
-
})), [dashApi, provider, providerType, selectedProviderName, applyResult]);
|
|
29642
|
+
}, _callee, null, [[5, 9], [11, 14], [16, 20], [24, 28]]);
|
|
29643
|
+
})), [dashApi, provider, providerType, selectedProviderName, applyResult, workspace]);
|
|
29493
29644
|
|
|
29494
29645
|
/**
|
|
29495
29646
|
* Disconnect from the MCP server.
|
|
29496
29647
|
* Only sends the IPC stop call when this is the last consumer.
|
|
29497
29648
|
*/
|
|
29498
29649
|
var disconnect = React.useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
29499
|
-
var
|
|
29650
|
+
var _workspace$workspaceD4;
|
|
29651
|
+
var workspaceId, stateKey, state;
|
|
29500
29652
|
return _regeneratorRuntime.wrap(function (_context2) {
|
|
29501
29653
|
while (1) switch (_context2.prev = _context2.next) {
|
|
29502
29654
|
case 0:
|
|
@@ -29506,7 +29658,9 @@ var useMcpProvider = function useMcpProvider(providerType) {
|
|
|
29506
29658
|
}
|
|
29507
29659
|
return _context2.abrupt("return");
|
|
29508
29660
|
case 1:
|
|
29509
|
-
|
|
29661
|
+
workspaceId = (workspace === null || workspace === void 0 || (_workspace$workspaceD4 = workspace.workspaceData) === null || _workspace$workspaceD4 === void 0 ? void 0 : _workspace$workspaceD4.id) || null;
|
|
29662
|
+
stateKey = rendererStateKey(workspaceId, selectedProviderName);
|
|
29663
|
+
state = serverStates.get(stateKey);
|
|
29510
29664
|
if (!state) {
|
|
29511
29665
|
_context2.next = 3;
|
|
29512
29666
|
break;
|
|
@@ -29525,7 +29679,7 @@ var useMcpProvider = function useMcpProvider(providerType) {
|
|
|
29525
29679
|
return _context2.abrupt("return");
|
|
29526
29680
|
case 2:
|
|
29527
29681
|
// Last consumer — actually stop the server
|
|
29528
|
-
serverStates["delete"](
|
|
29682
|
+
serverStates["delete"](stateKey);
|
|
29529
29683
|
case 3:
|
|
29530
29684
|
// Clear state synchronously BEFORE the IPC call so that
|
|
29531
29685
|
// a subsequent connect() won't short-circuit on stale connectedRef
|
|
@@ -29534,29 +29688,31 @@ var useMcpProvider = function useMcpProvider(providerType) {
|
|
|
29534
29688
|
setResources([]);
|
|
29535
29689
|
setStatus("disconnected");
|
|
29536
29690
|
connectedRef.current = false;
|
|
29537
|
-
pendingConnects$1["delete"](
|
|
29691
|
+
pendingConnects$1["delete"](stateKey);
|
|
29538
29692
|
return _context2.abrupt("return", new Promise(function (resolve) {
|
|
29539
29693
|
dashApi.mcpStopServer(selectedProviderName, function () {
|
|
29540
29694
|
return resolve();
|
|
29541
29695
|
}, function (event, err) {
|
|
29542
29696
|
resolve();
|
|
29543
|
-
});
|
|
29697
|
+
}, workspaceId);
|
|
29544
29698
|
}));
|
|
29545
29699
|
case 4:
|
|
29546
29700
|
case "end":
|
|
29547
29701
|
return _context2.stop();
|
|
29548
29702
|
}
|
|
29549
29703
|
}, _callee2);
|
|
29550
|
-
})), [dashApi, selectedProviderName]);
|
|
29704
|
+
})), [dashApi, selectedProviderName, workspace]);
|
|
29551
29705
|
|
|
29552
29706
|
/**
|
|
29553
29707
|
* Call a tool on the MCP server
|
|
29554
29708
|
*/
|
|
29555
29709
|
var callTool = React.useCallback(/*#__PURE__*/function () {
|
|
29556
29710
|
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(toolName) {
|
|
29711
|
+
var _workspace$workspaceD5;
|
|
29557
29712
|
var args,
|
|
29558
29713
|
widgetRequiredTools,
|
|
29559
29714
|
isRequired,
|
|
29715
|
+
workspaceId,
|
|
29560
29716
|
_args3 = arguments;
|
|
29561
29717
|
return _regeneratorRuntime.wrap(function (_context3) {
|
|
29562
29718
|
while (1) switch (_context3.prev = _context3.next) {
|
|
@@ -29583,6 +29739,10 @@ var useMcpProvider = function useMcpProvider(providerType) {
|
|
|
29583
29739
|
isRequired = widgetRequiredTools === null || widgetRequiredTools === void 0 ? void 0 : widgetRequiredTools.includes(toolName);
|
|
29584
29740
|
throw new Error("Tool \"".concat(toolName, "\" is not allowed for this widget. Allowed tools: ").concat(effectiveAllowedTools.join(", ")).concat(isRequired ? ". Note: \"".concat(toolName, "\" is declared as a required tool by this widget \u2014 update the provider's allowed tools in Settings \u2192 Providers.") : ""));
|
|
29585
29741
|
case 2:
|
|
29742
|
+
// Slice 3a: scope the MCP server process per workspace. The
|
|
29743
|
+
// workspace UUID is the canonical "current dashboard" identity
|
|
29744
|
+
// (see useNotifications, useScheduler for the same pattern).
|
|
29745
|
+
workspaceId = (workspace === null || workspace === void 0 || (_workspace$workspaceD5 = workspace.workspaceData) === null || _workspace$workspaceD5 === void 0 ? void 0 : _workspace$workspaceD5.id) || null;
|
|
29586
29746
|
return _context3.abrupt("return", new Promise(function (resolve, reject) {
|
|
29587
29747
|
var timeout = setTimeout(function () {
|
|
29588
29748
|
reject(new Error("Tool call \"".concat(toolName, "\" timed out after 30s")));
|
|
@@ -29597,7 +29757,7 @@ var useMcpProvider = function useMcpProvider(providerType) {
|
|
|
29597
29757
|
}, function (event, err) {
|
|
29598
29758
|
clearTimeout(timeout);
|
|
29599
29759
|
reject(new Error((err === null || err === void 0 ? void 0 : err.message) || "Failed to call MCP tool"));
|
|
29600
|
-
});
|
|
29760
|
+
}, workspaceId);
|
|
29601
29761
|
}));
|
|
29602
29762
|
case 3:
|
|
29603
29763
|
case "end":
|
|
@@ -29608,7 +29768,7 @@ var useMcpProvider = function useMcpProvider(providerType) {
|
|
|
29608
29768
|
return function (_x) {
|
|
29609
29769
|
return _ref3.apply(this, arguments);
|
|
29610
29770
|
};
|
|
29611
|
-
}(), [dashApi, selectedProviderName, effectiveAllowedTools, widgetData, providerType]);
|
|
29771
|
+
}(), [dashApi, selectedProviderName, effectiveAllowedTools, widgetData, providerType, workspace]);
|
|
29612
29772
|
|
|
29613
29773
|
/**
|
|
29614
29774
|
* Read a resource from the MCP server
|
|
@@ -29666,7 +29826,10 @@ var useMcpProvider = function useMcpProvider(providerType) {
|
|
|
29666
29826
|
|
|
29667
29827
|
// Decrement consumer count; only stop server if last consumer
|
|
29668
29828
|
if (connectedRef.current && dashApi && selectedProviderName) {
|
|
29669
|
-
var
|
|
29829
|
+
var _workspace$workspaceD6;
|
|
29830
|
+
var workspaceId = (workspace === null || workspace === void 0 || (_workspace$workspaceD6 = workspace.workspaceData) === null || _workspace$workspaceD6 === void 0 ? void 0 : _workspace$workspaceD6.id) || null;
|
|
29831
|
+
var stateKey = rendererStateKey(workspaceId, selectedProviderName);
|
|
29832
|
+
var state = serverStates.get(stateKey);
|
|
29670
29833
|
if (state) {
|
|
29671
29834
|
state.consumerCount = Math.max(0, state.consumerCount - 1);
|
|
29672
29835
|
if (state.consumerCount > 0) {
|
|
@@ -29675,12 +29838,12 @@ var useMcpProvider = function useMcpProvider(providerType) {
|
|
|
29675
29838
|
}
|
|
29676
29839
|
|
|
29677
29840
|
// Last consumer — stop the server
|
|
29678
|
-
serverStates["delete"](
|
|
29841
|
+
serverStates["delete"](stateKey);
|
|
29679
29842
|
}
|
|
29680
|
-
dashApi.mcpStopServer(selectedProviderName, function () {}, function () {});
|
|
29843
|
+
dashApi.mcpStopServer(selectedProviderName, function () {}, function () {}, workspaceId);
|
|
29681
29844
|
}
|
|
29682
29845
|
};
|
|
29683
|
-
}, [dashApi, selectedProviderName]);
|
|
29846
|
+
}, [dashApi, selectedProviderName, workspace]);
|
|
29684
29847
|
return {
|
|
29685
29848
|
isConnected: isConnected,
|
|
29686
29849
|
isConnecting: isConnecting,
|