@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.esm.js
CHANGED
|
@@ -1626,9 +1626,11 @@ var ElectronDashboardApi = /*#__PURE__*/function () {
|
|
|
1626
1626
|
key: "mcpStartServer",
|
|
1627
1627
|
value: function mcpStartServer(serverName, mcpConfig, credentials, onSuccess, onError) {
|
|
1628
1628
|
var _this20 = this;
|
|
1629
|
+
var workspaceId = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
|
|
1630
|
+
var pathScope = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
|
|
1629
1631
|
if (this.api !== null) {
|
|
1630
1632
|
try {
|
|
1631
|
-
this.api.mcp.startServer(serverName, mcpConfig, credentials).then(function (result) {
|
|
1633
|
+
this.api.mcp.startServer(serverName, mcpConfig, credentials, workspaceId, pathScope).then(function (result) {
|
|
1632
1634
|
onSuccess(_this20.events.MCP_START_SERVER_COMPLETE, result);
|
|
1633
1635
|
})["catch"](function (error) {
|
|
1634
1636
|
onError(_this20.events.MCP_START_SERVER_ERROR, error);
|
|
@@ -1647,9 +1649,10 @@ var ElectronDashboardApi = /*#__PURE__*/function () {
|
|
|
1647
1649
|
key: "mcpStopServer",
|
|
1648
1650
|
value: function mcpStopServer(serverName, onSuccess, onError) {
|
|
1649
1651
|
var _this21 = this;
|
|
1652
|
+
var workspaceId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
1650
1653
|
if (this.api !== null) {
|
|
1651
1654
|
try {
|
|
1652
|
-
this.api.mcp.stopServer(serverName).then(function (result) {
|
|
1655
|
+
this.api.mcp.stopServer(serverName, workspaceId).then(function (result) {
|
|
1653
1656
|
onSuccess(_this21.events.MCP_STOP_SERVER_COMPLETE, result);
|
|
1654
1657
|
})["catch"](function (error) {
|
|
1655
1658
|
onError(_this21.events.MCP_STOP_SERVER_ERROR, error);
|
|
@@ -1668,9 +1671,13 @@ var ElectronDashboardApi = /*#__PURE__*/function () {
|
|
|
1668
1671
|
key: "mcpCallTool",
|
|
1669
1672
|
value: function mcpCallTool(serverName, toolName, args, allowedTools, onSuccess, onError) {
|
|
1670
1673
|
var _this22 = this;
|
|
1674
|
+
var workspaceId = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
|
|
1671
1675
|
if (this.api !== null) {
|
|
1672
1676
|
try {
|
|
1673
|
-
|
|
1677
|
+
// widgetId is not threaded here; mcpApi.callTool defaults it to
|
|
1678
|
+
// null. Slice 3a: workspaceId scopes the MCP server process per
|
|
1679
|
+
// workspace.
|
|
1680
|
+
this.api.mcp.callTool(serverName, toolName, args, allowedTools, null, workspaceId).then(function (result) {
|
|
1674
1681
|
onSuccess(_this22.events.MCP_CALL_TOOL_COMPLETE, result);
|
|
1675
1682
|
})["catch"](function (error) {
|
|
1676
1683
|
onError(_this22.events.MCP_CALL_TOOL_ERROR, error);
|
|
@@ -1689,9 +1696,10 @@ var ElectronDashboardApi = /*#__PURE__*/function () {
|
|
|
1689
1696
|
key: "mcpListTools",
|
|
1690
1697
|
value: function mcpListTools(serverName, onSuccess, onError) {
|
|
1691
1698
|
var _this23 = this;
|
|
1699
|
+
var workspaceId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
1692
1700
|
if (this.api !== null) {
|
|
1693
1701
|
try {
|
|
1694
|
-
this.api.mcp.listTools(serverName).then(function (result) {
|
|
1702
|
+
this.api.mcp.listTools(serverName, workspaceId).then(function (result) {
|
|
1695
1703
|
onSuccess(_this23.events.MCP_LIST_TOOLS_COMPLETE, result);
|
|
1696
1704
|
})["catch"](function (error) {
|
|
1697
1705
|
onError(_this23.events.MCP_LIST_TOOLS_ERROR, error);
|
|
@@ -1710,9 +1718,10 @@ var ElectronDashboardApi = /*#__PURE__*/function () {
|
|
|
1710
1718
|
key: "mcpListResources",
|
|
1711
1719
|
value: function mcpListResources(serverName, onSuccess, onError) {
|
|
1712
1720
|
var _this24 = this;
|
|
1721
|
+
var workspaceId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
1713
1722
|
if (this.api !== null) {
|
|
1714
1723
|
try {
|
|
1715
|
-
this.api.mcp.listResources(serverName).then(function (result) {
|
|
1724
|
+
this.api.mcp.listResources(serverName, workspaceId).then(function (result) {
|
|
1716
1725
|
onSuccess(_this24.events.MCP_LIST_RESOURCES_COMPLETE, result);
|
|
1717
1726
|
})["catch"](function (error) {
|
|
1718
1727
|
onError(_this24.events.MCP_LIST_RESOURCES_ERROR, error);
|
|
@@ -1731,9 +1740,10 @@ var ElectronDashboardApi = /*#__PURE__*/function () {
|
|
|
1731
1740
|
key: "mcpReadResource",
|
|
1732
1741
|
value: function mcpReadResource(serverName, uri, onSuccess, onError) {
|
|
1733
1742
|
var _this25 = this;
|
|
1743
|
+
var workspaceId = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
|
|
1734
1744
|
if (this.api !== null) {
|
|
1735
1745
|
try {
|
|
1736
|
-
this.api.mcp.readResource(serverName, uri).then(function (result) {
|
|
1746
|
+
this.api.mcp.readResource(serverName, uri, workspaceId).then(function (result) {
|
|
1737
1747
|
onSuccess(_this25.events.MCP_READ_RESOURCE_COMPLETE, result);
|
|
1738
1748
|
})["catch"](function (error) {
|
|
1739
1749
|
onError(_this25.events.MCP_READ_RESOURCE_ERROR, error);
|
|
@@ -1752,9 +1762,10 @@ var ElectronDashboardApi = /*#__PURE__*/function () {
|
|
|
1752
1762
|
key: "mcpGetServerStatus",
|
|
1753
1763
|
value: function mcpGetServerStatus(serverName, onSuccess, onError) {
|
|
1754
1764
|
var _this26 = this;
|
|
1765
|
+
var workspaceId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
1755
1766
|
if (this.api !== null) {
|
|
1756
1767
|
try {
|
|
1757
|
-
this.api.mcp.getServerStatus(serverName).then(function (result) {
|
|
1768
|
+
this.api.mcp.getServerStatus(serverName, workspaceId).then(function (result) {
|
|
1758
1769
|
onSuccess(_this26.events.MCP_SERVER_STATUS_COMPLETE, result);
|
|
1759
1770
|
})["catch"](function (error) {
|
|
1760
1771
|
onError(_this26.events.MCP_SERVER_STATUS_ERROR, error);
|
|
@@ -3090,9 +3101,9 @@ var LayoutContainer = function LayoutContainer(_ref) {
|
|
|
3090
3101
|
|
|
3091
3102
|
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; }
|
|
3092
3103
|
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; }
|
|
3093
|
-
function _createForOfIteratorHelper$
|
|
3094
|
-
function _unsupportedIterableToArray$
|
|
3095
|
-
function _arrayLikeToArray$
|
|
3104
|
+
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; } } }; }
|
|
3105
|
+
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; } }
|
|
3106
|
+
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; }
|
|
3096
3107
|
/**
|
|
3097
3108
|
* Layout template definitions for the dashboard template picker.
|
|
3098
3109
|
*
|
|
@@ -3366,7 +3377,7 @@ function createLayoutFromTemplate(template) {
|
|
|
3366
3377
|
cols: template.cols,
|
|
3367
3378
|
gap: "gap-2"
|
|
3368
3379
|
};
|
|
3369
|
-
var _iterator = _createForOfIteratorHelper$
|
|
3380
|
+
var _iterator = _createForOfIteratorHelper$A(template.cells),
|
|
3370
3381
|
_step;
|
|
3371
3382
|
try {
|
|
3372
3383
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -4547,9 +4558,9 @@ var DashboardInstallOptionsModal = function DashboardInstallOptionsModal(_ref) {
|
|
|
4547
4558
|
});
|
|
4548
4559
|
};
|
|
4549
4560
|
|
|
4550
|
-
function _createForOfIteratorHelper$
|
|
4551
|
-
function _unsupportedIterableToArray$
|
|
4552
|
-
function _arrayLikeToArray$
|
|
4561
|
+
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; } } }; }
|
|
4562
|
+
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; } }
|
|
4563
|
+
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; }
|
|
4553
4564
|
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; }
|
|
4554
4565
|
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; }
|
|
4555
4566
|
var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
|
|
@@ -4907,7 +4918,7 @@ var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
|
|
|
4907
4918
|
toInstall = 0,
|
|
4908
4919
|
unavailable = 0,
|
|
4909
4920
|
hasUnavailableRequired = false;
|
|
4910
|
-
var _iterator = _createForOfIteratorHelper$
|
|
4921
|
+
var _iterator = _createForOfIteratorHelper$z(widgetDeps),
|
|
4911
4922
|
_step;
|
|
4912
4923
|
try {
|
|
4913
4924
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -6552,9 +6563,9 @@ function cleanIpcError(message) {
|
|
|
6552
6563
|
return match ? match[1] : message;
|
|
6553
6564
|
}
|
|
6554
6565
|
|
|
6555
|
-
function _createForOfIteratorHelper$
|
|
6556
|
-
function _unsupportedIterableToArray$
|
|
6557
|
-
function _arrayLikeToArray$
|
|
6566
|
+
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; } } }; }
|
|
6567
|
+
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; } }
|
|
6568
|
+
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; }
|
|
6558
6569
|
|
|
6559
6570
|
/**
|
|
6560
6571
|
* useRegistrySearch — shared hook for browsing and installing registry packages.
|
|
@@ -6668,13 +6679,13 @@ var useRegistrySearch = function useRegistrySearch() {
|
|
|
6668
6679
|
return c.toLowerCase();
|
|
6669
6680
|
}));
|
|
6670
6681
|
widgets = [];
|
|
6671
|
-
_iterator = _createForOfIteratorHelper$
|
|
6682
|
+
_iterator = _createForOfIteratorHelper$y(pkgs);
|
|
6672
6683
|
try {
|
|
6673
6684
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
6674
6685
|
pkg = _step.value;
|
|
6675
6686
|
// Compute missing APIs for the entire package
|
|
6676
6687
|
allApiProviders = [];
|
|
6677
|
-
_iterator2 = _createForOfIteratorHelper$
|
|
6688
|
+
_iterator2 = _createForOfIteratorHelper$y(pkg.providers || []);
|
|
6678
6689
|
try {
|
|
6679
6690
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
6680
6691
|
p = _step2.value;
|
|
@@ -6687,11 +6698,11 @@ var useRegistrySearch = function useRegistrySearch() {
|
|
|
6687
6698
|
} finally {
|
|
6688
6699
|
_iterator2.f();
|
|
6689
6700
|
}
|
|
6690
|
-
_iterator3 = _createForOfIteratorHelper$
|
|
6701
|
+
_iterator3 = _createForOfIteratorHelper$y(pkg.widgets || []);
|
|
6691
6702
|
try {
|
|
6692
6703
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
6693
6704
|
w = _step3.value;
|
|
6694
|
-
_iterator5 = _createForOfIteratorHelper$
|
|
6705
|
+
_iterator5 = _createForOfIteratorHelper$y(w.providers || []);
|
|
6695
6706
|
try {
|
|
6696
6707
|
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
6697
6708
|
_p = _step5.value;
|
|
@@ -6713,7 +6724,7 @@ var useRegistrySearch = function useRegistrySearch() {
|
|
|
6713
6724
|
missingApis = _toConsumableArray(new Set(allApiProviders)).filter(function (api) {
|
|
6714
6725
|
return !capSet.has(api.toLowerCase());
|
|
6715
6726
|
});
|
|
6716
|
-
_iterator4 = _createForOfIteratorHelper$
|
|
6727
|
+
_iterator4 = _createForOfIteratorHelper$y(pkg.widgets || []);
|
|
6717
6728
|
try {
|
|
6718
6729
|
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
6719
6730
|
widget = _step4.value;
|
|
@@ -7420,9 +7431,9 @@ function applyFilters(items, filters, mode) {
|
|
|
7420
7431
|
});
|
|
7421
7432
|
}
|
|
7422
7433
|
|
|
7423
|
-
function _createForOfIteratorHelper$
|
|
7424
|
-
function _unsupportedIterableToArray$
|
|
7425
|
-
function _arrayLikeToArray$
|
|
7434
|
+
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; } } }; }
|
|
7435
|
+
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; } }
|
|
7436
|
+
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; }
|
|
7426
7437
|
var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
|
|
7427
7438
|
var _state$selectedDashbo, _state$selectedDashbo2;
|
|
7428
7439
|
var state = _ref.state,
|
|
@@ -7641,7 +7652,7 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
|
|
|
7641
7652
|
installedNames = new Set(installedList.map(function (w) {
|
|
7642
7653
|
return w.name;
|
|
7643
7654
|
}));
|
|
7644
|
-
_iterator = _createForOfIteratorHelper$
|
|
7655
|
+
_iterator = _createForOfIteratorHelper$x(state.selectedWidgets);
|
|
7645
7656
|
_context2.prev = 12;
|
|
7646
7657
|
_iterator.s();
|
|
7647
7658
|
case 13:
|
|
@@ -9211,9 +9222,9 @@ var PanelEditItem = function PanelEditItem(_ref) {
|
|
|
9211
9222
|
};
|
|
9212
9223
|
|
|
9213
9224
|
var _excluded$6 = ["rows", "cols"];
|
|
9214
|
-
function _createForOfIteratorHelper$
|
|
9215
|
-
function _unsupportedIterableToArray$
|
|
9216
|
-
function _arrayLikeToArray$
|
|
9225
|
+
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; } } }; }
|
|
9226
|
+
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; } }
|
|
9227
|
+
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; }
|
|
9217
9228
|
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; }
|
|
9218
9229
|
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; }
|
|
9219
9230
|
var defaultGrid = {
|
|
@@ -9366,7 +9377,7 @@ function GridEditor(_ref) {
|
|
|
9366
9377
|
function sortObjectByKeys(obj) {
|
|
9367
9378
|
var sortedKeys = Object.keys(obj).sort();
|
|
9368
9379
|
var sortedObj = {};
|
|
9369
|
-
var _iterator = _createForOfIteratorHelper$
|
|
9380
|
+
var _iterator = _createForOfIteratorHelper$w(sortedKeys),
|
|
9370
9381
|
_step;
|
|
9371
9382
|
try {
|
|
9372
9383
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -9839,9 +9850,9 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
|
|
|
9839
9850
|
});
|
|
9840
9851
|
};
|
|
9841
9852
|
|
|
9842
|
-
function _createForOfIteratorHelper$
|
|
9843
|
-
function _unsupportedIterableToArray$
|
|
9844
|
-
function _arrayLikeToArray$
|
|
9853
|
+
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; } } }; }
|
|
9854
|
+
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; } }
|
|
9855
|
+
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; }
|
|
9845
9856
|
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; }
|
|
9846
9857
|
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; }
|
|
9847
9858
|
var DAYS = [{
|
|
@@ -10170,7 +10181,7 @@ var PanelEditItemSchedule = function PanelEditItemSchedule(_ref2) {
|
|
|
10170
10181
|
setIsLoading(true);
|
|
10171
10182
|
window.mainApi.scheduler.getTasks(widgetUuid).then(function (tasks) {
|
|
10172
10183
|
var stateMap = {};
|
|
10173
|
-
var _iterator = _createForOfIteratorHelper$
|
|
10184
|
+
var _iterator = _createForOfIteratorHelper$v(tasks || []),
|
|
10174
10185
|
_step;
|
|
10175
10186
|
try {
|
|
10176
10187
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -10429,9 +10440,9 @@ function isUserWidget(item) {
|
|
|
10429
10440
|
return true;
|
|
10430
10441
|
}
|
|
10431
10442
|
|
|
10432
|
-
function _createForOfIteratorHelper$
|
|
10433
|
-
function _unsupportedIterableToArray$
|
|
10434
|
-
function _arrayLikeToArray$
|
|
10443
|
+
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; } } }; }
|
|
10444
|
+
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; } }
|
|
10445
|
+
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; }
|
|
10435
10446
|
|
|
10436
10447
|
/**
|
|
10437
10448
|
* Resolve which provider name a given widget instance would bind to for
|
|
@@ -10463,7 +10474,7 @@ function resolveProviderName(_ref) {
|
|
|
10463
10474
|
// array. Support both because different callers shape it either way.
|
|
10464
10475
|
if (appProviders) {
|
|
10465
10476
|
if (Array.isArray(appProviders)) {
|
|
10466
|
-
var _iterator = _createForOfIteratorHelper$
|
|
10477
|
+
var _iterator = _createForOfIteratorHelper$u(appProviders),
|
|
10467
10478
|
_step;
|
|
10468
10479
|
try {
|
|
10469
10480
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -10523,7 +10534,7 @@ function forEachWidget(workspace, visit) {
|
|
|
10523
10534
|
};
|
|
10524
10535
|
var _walk = function walk(items) {
|
|
10525
10536
|
if (!Array.isArray(items)) return;
|
|
10526
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
10537
|
+
var _iterator2 = _createForOfIteratorHelper$u(items),
|
|
10527
10538
|
_step2;
|
|
10528
10539
|
try {
|
|
10529
10540
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -10564,7 +10575,7 @@ function forEachWidget(workspace, visit) {
|
|
|
10564
10575
|
// widgets that only live there (e.g. AI-place writes that bypass
|
|
10565
10576
|
// the page handler).
|
|
10566
10577
|
if (Array.isArray(workspace.pages)) {
|
|
10567
|
-
var _iterator3 = _createForOfIteratorHelper$
|
|
10578
|
+
var _iterator3 = _createForOfIteratorHelper$u(workspace.pages),
|
|
10568
10579
|
_step3;
|
|
10569
10580
|
try {
|
|
10570
10581
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
@@ -10615,7 +10626,7 @@ function getUnresolvedProviders(_ref2) {
|
|
|
10615
10626
|
// the same `type` listed twice (a Claude code-gen quirk), which
|
|
10616
10627
|
// would otherwise produce duplicate rows in the Providers tab.
|
|
10617
10628
|
var seenTypes = new Set();
|
|
10618
|
-
var _iterator4 = _createForOfIteratorHelper$
|
|
10629
|
+
var _iterator4 = _createForOfIteratorHelper$u(requirements),
|
|
10619
10630
|
_step4;
|
|
10620
10631
|
try {
|
|
10621
10632
|
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
@@ -10658,7 +10669,7 @@ function getUnresolvedProviders(_ref2) {
|
|
|
10658
10669
|
*/
|
|
10659
10670
|
function groupByProviderType(unresolved) {
|
|
10660
10671
|
var byType = new Map();
|
|
10661
|
-
var _iterator5 = _createForOfIteratorHelper$
|
|
10672
|
+
var _iterator5 = _createForOfIteratorHelper$u(unresolved || []),
|
|
10662
10673
|
_step5;
|
|
10663
10674
|
try {
|
|
10664
10675
|
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
@@ -10700,7 +10711,7 @@ function getAllProviderBindings(_ref3) {
|
|
|
10700
10711
|
// quirk) which would otherwise duplicate the per-widget row in
|
|
10701
10712
|
// the Providers tab.
|
|
10702
10713
|
var seenTypes = new Set();
|
|
10703
|
-
var _iterator6 = _createForOfIteratorHelper$
|
|
10714
|
+
var _iterator6 = _createForOfIteratorHelper$u(requirements),
|
|
10704
10715
|
_step6;
|
|
10705
10716
|
try {
|
|
10706
10717
|
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
@@ -10742,9 +10753,9 @@ function getAllProviderBindings(_ref3) {
|
|
|
10742
10753
|
|
|
10743
10754
|
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; }
|
|
10744
10755
|
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; }
|
|
10745
|
-
function _createForOfIteratorHelper$
|
|
10746
|
-
function _unsupportedIterableToArray$
|
|
10747
|
-
function _arrayLikeToArray$
|
|
10756
|
+
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; } } }; }
|
|
10757
|
+
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; } }
|
|
10758
|
+
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; }
|
|
10748
10759
|
var EVENT_STRING_RE = /^([^[]+)\[([^\]]+)\]\.(.+)$/;
|
|
10749
10760
|
|
|
10750
10761
|
/** Parse "Component[itemId].event" → { component, itemId, event }. */
|
|
@@ -10914,7 +10925,7 @@ function getCurrentWiring(workspace) {
|
|
|
10914
10925
|
// Live format is array; defensive guard for legacy object
|
|
10915
10926
|
// form (a single source widget keyed under the handler).
|
|
10916
10927
|
var events = Array.isArray(eventList) ? eventList : typeof eventList === "string" ? [eventList] : [];
|
|
10917
|
-
var _iterator = _createForOfIteratorHelper$
|
|
10928
|
+
var _iterator = _createForOfIteratorHelper$t(events),
|
|
10918
10929
|
_step;
|
|
10919
10930
|
try {
|
|
10920
10931
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -10977,7 +10988,7 @@ function getOrphanedListeners(workspace, getWidgetConfig) {
|
|
|
10977
10988
|
if (!byItemId.has(id)) byItemId.set(id, meta);
|
|
10978
10989
|
});
|
|
10979
10990
|
var orphans = [];
|
|
10980
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
10991
|
+
var _iterator2 = _createForOfIteratorHelper$t(wiring),
|
|
10981
10992
|
_step2;
|
|
10982
10993
|
try {
|
|
10983
10994
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -11043,7 +11054,7 @@ function pruneDeadListenerReferences(workspace) {
|
|
|
11043
11054
|
var liveKeys = new Set();
|
|
11044
11055
|
var _walkForLive = function walkForLive(items) {
|
|
11045
11056
|
if (!Array.isArray(items)) return;
|
|
11046
|
-
var _iterator3 = _createForOfIteratorHelper$
|
|
11057
|
+
var _iterator3 = _createForOfIteratorHelper$t(items),
|
|
11047
11058
|
_step3;
|
|
11048
11059
|
try {
|
|
11049
11060
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
@@ -11064,7 +11075,7 @@ function pruneDeadListenerReferences(workspace) {
|
|
|
11064
11075
|
};
|
|
11065
11076
|
_walkForLive(workspace.layout);
|
|
11066
11077
|
if (Array.isArray(workspace.pages)) {
|
|
11067
|
-
var _iterator4 = _createForOfIteratorHelper$
|
|
11078
|
+
var _iterator4 = _createForOfIteratorHelper$t(workspace.pages),
|
|
11068
11079
|
_step4;
|
|
11069
11080
|
try {
|
|
11070
11081
|
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
@@ -11081,7 +11092,7 @@ function pruneDeadListenerReferences(workspace) {
|
|
|
11081
11092
|
var removed = 0;
|
|
11082
11093
|
var _pruneListeners = function pruneListeners(items) {
|
|
11083
11094
|
if (!Array.isArray(items)) return;
|
|
11084
|
-
var _iterator5 = _createForOfIteratorHelper$
|
|
11095
|
+
var _iterator5 = _createForOfIteratorHelper$t(items),
|
|
11085
11096
|
_step5;
|
|
11086
11097
|
try {
|
|
11087
11098
|
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
@@ -11093,7 +11104,7 @@ function pruneDeadListenerReferences(workspace) {
|
|
|
11093
11104
|
var events = item.listeners[handler];
|
|
11094
11105
|
if (!Array.isArray(events)) continue;
|
|
11095
11106
|
var kept = [];
|
|
11096
|
-
var _iterator6 = _createForOfIteratorHelper$
|
|
11107
|
+
var _iterator6 = _createForOfIteratorHelper$t(events),
|
|
11097
11108
|
_step6;
|
|
11098
11109
|
try {
|
|
11099
11110
|
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
@@ -11128,7 +11139,7 @@ function pruneDeadListenerReferences(workspace) {
|
|
|
11128
11139
|
};
|
|
11129
11140
|
_pruneListeners(workspace.layout);
|
|
11130
11141
|
if (Array.isArray(workspace.pages)) {
|
|
11131
|
-
var _iterator7 = _createForOfIteratorHelper$
|
|
11142
|
+
var _iterator7 = _createForOfIteratorHelper$t(workspace.pages),
|
|
11132
11143
|
_step7;
|
|
11133
11144
|
try {
|
|
11134
11145
|
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
@@ -11172,7 +11183,7 @@ function applyWiringChanges(workspace, _ref) {
|
|
|
11172
11183
|
});
|
|
11173
11184
|
return byReceiver.get(id);
|
|
11174
11185
|
};
|
|
11175
|
-
var _iterator8 = _createForOfIteratorHelper$
|
|
11186
|
+
var _iterator8 = _createForOfIteratorHelper$t(adds),
|
|
11176
11187
|
_step8;
|
|
11177
11188
|
try {
|
|
11178
11189
|
for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
|
|
@@ -11185,7 +11196,7 @@ function applyWiringChanges(workspace, _ref) {
|
|
|
11185
11196
|
} finally {
|
|
11186
11197
|
_iterator8.f();
|
|
11187
11198
|
}
|
|
11188
|
-
var _iterator9 = _createForOfIteratorHelper$
|
|
11199
|
+
var _iterator9 = _createForOfIteratorHelper$t(removes),
|
|
11189
11200
|
_step9;
|
|
11190
11201
|
try {
|
|
11191
11202
|
for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
|
|
@@ -11259,7 +11270,7 @@ function applyToItem(listeners, _ref2) {
|
|
|
11259
11270
|
}
|
|
11260
11271
|
|
|
11261
11272
|
// Removes first so a re-add (rare) lands.
|
|
11262
|
-
var _iterator0 = _createForOfIteratorHelper$
|
|
11273
|
+
var _iterator0 = _createForOfIteratorHelper$t(removes),
|
|
11263
11274
|
_step0;
|
|
11264
11275
|
try {
|
|
11265
11276
|
var _loop = function _loop() {
|
|
@@ -11288,7 +11299,7 @@ function applyToItem(listeners, _ref2) {
|
|
|
11288
11299
|
} finally {
|
|
11289
11300
|
_iterator0.f();
|
|
11290
11301
|
}
|
|
11291
|
-
var _iterator1 = _createForOfIteratorHelper$
|
|
11302
|
+
var _iterator1 = _createForOfIteratorHelper$t(adds),
|
|
11292
11303
|
_step1;
|
|
11293
11304
|
try {
|
|
11294
11305
|
for (_iterator1.s(); !(_step1 = _iterator1.n()).done;) {
|
|
@@ -14261,9 +14272,9 @@ function mcpJsonToFormState(jsonString, nextRowId) {
|
|
|
14261
14272
|
return result;
|
|
14262
14273
|
}
|
|
14263
14274
|
|
|
14264
|
-
function _createForOfIteratorHelper$
|
|
14265
|
-
function _unsupportedIterableToArray$
|
|
14266
|
-
function _arrayLikeToArray$
|
|
14275
|
+
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; } } }; }
|
|
14276
|
+
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; } }
|
|
14277
|
+
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; }
|
|
14267
14278
|
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; }
|
|
14268
14279
|
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; }
|
|
14269
14280
|
var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
@@ -14548,11 +14559,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
14548
14559
|
|
|
14549
14560
|
// Flatten all widgets from all packages for the widget list
|
|
14550
14561
|
flatWidgets = [];
|
|
14551
|
-
_iterator = _createForOfIteratorHelper$
|
|
14562
|
+
_iterator = _createForOfIteratorHelper$s(result.packages || []);
|
|
14552
14563
|
try {
|
|
14553
14564
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
14554
14565
|
pkg = _step.value;
|
|
14555
|
-
_iterator2 = _createForOfIteratorHelper$
|
|
14566
|
+
_iterator2 = _createForOfIteratorHelper$s(pkg.widgets || []);
|
|
14556
14567
|
try {
|
|
14557
14568
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
14558
14569
|
widget = _step2.value;
|
|
@@ -16446,9 +16457,9 @@ var useWidgetSchedulerStatus = function useWidgetSchedulerStatus(widgetId) {
|
|
|
16446
16457
|
};
|
|
16447
16458
|
};
|
|
16448
16459
|
|
|
16449
|
-
function _createForOfIteratorHelper$
|
|
16450
|
-
function _unsupportedIterableToArray$
|
|
16451
|
-
function _arrayLikeToArray$
|
|
16460
|
+
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; } } }; }
|
|
16461
|
+
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; } }
|
|
16462
|
+
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; }
|
|
16452
16463
|
function formatCountdown(ms) {
|
|
16453
16464
|
if (ms == null || ms < 0) return "--";
|
|
16454
16465
|
if (ms < 1000) return "< 1s";
|
|
@@ -16565,7 +16576,7 @@ var WidgetCardStatusBar = function WidgetCardStatusBar(_ref) {
|
|
|
16565
16576
|
|
|
16566
16577
|
// Find soonest countdown among enabled tasks
|
|
16567
16578
|
var soonestMs = null;
|
|
16568
|
-
var _iterator = _createForOfIteratorHelper$
|
|
16579
|
+
var _iterator = _createForOfIteratorHelper$r(enabledTasks),
|
|
16569
16580
|
_step;
|
|
16570
16581
|
try {
|
|
16571
16582
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -21884,9 +21895,9 @@ var ExternalWidget = function ExternalWidget(_ref) {
|
|
|
21884
21895
|
var GRID_CELL_WIDGET_TYPE = "grid-cell-widget";
|
|
21885
21896
|
var SIDEBAR_WIDGET_TYPE = "sidebar-widget";
|
|
21886
21897
|
|
|
21887
|
-
function _createForOfIteratorHelper$
|
|
21888
|
-
function _unsupportedIterableToArray$
|
|
21889
|
-
function _arrayLikeToArray$
|
|
21898
|
+
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; } } }; }
|
|
21899
|
+
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; } }
|
|
21900
|
+
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; }
|
|
21890
21901
|
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; }
|
|
21891
21902
|
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; }
|
|
21892
21903
|
|
|
@@ -22509,7 +22520,7 @@ var LayoutGridContainer = /*#__PURE__*/memo(function (_ref3) {
|
|
|
22509
22520
|
return selectable["delete"](cn);
|
|
22510
22521
|
});
|
|
22511
22522
|
var resolved = new Set();
|
|
22512
|
-
var _iterator = _createForOfIteratorHelper$
|
|
22523
|
+
var _iterator = _createForOfIteratorHelper$q(selectable),
|
|
22513
22524
|
_step;
|
|
22514
22525
|
try {
|
|
22515
22526
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -24918,9 +24929,9 @@ function migrateBareComponentName(componentMap, component) {
|
|
|
24918
24929
|
|
|
24919
24930
|
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; }
|
|
24920
24931
|
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; }
|
|
24921
|
-
function _createForOfIteratorHelper$
|
|
24922
|
-
function _unsupportedIterableToArray$
|
|
24923
|
-
function _arrayLikeToArray$
|
|
24932
|
+
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; } } }; }
|
|
24933
|
+
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; } }
|
|
24934
|
+
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; }
|
|
24924
24935
|
/**
|
|
24925
24936
|
* The model for all layout components used primarily in the renderLayout method
|
|
24926
24937
|
* @param {Object} layoutItem an object containing various attributes of the layout item
|
|
@@ -24932,7 +24943,7 @@ function _arrayLikeToArray$o(r, a) { (null == a || a > r.length) && (a = r.lengt
|
|
|
24932
24943
|
function sortObjectByKeys(obj) {
|
|
24933
24944
|
var sortedKeys = Object.keys(obj).sort();
|
|
24934
24945
|
var sortedObj = {};
|
|
24935
|
-
var _iterator = _createForOfIteratorHelper$
|
|
24946
|
+
var _iterator = _createForOfIteratorHelper$p(sortedKeys),
|
|
24936
24947
|
_step;
|
|
24937
24948
|
try {
|
|
24938
24949
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -25244,9 +25255,9 @@ var SettingsModel = function SettingsModel() {
|
|
|
25244
25255
|
return obj;
|
|
25245
25256
|
};
|
|
25246
25257
|
|
|
25247
|
-
function _createForOfIteratorHelper$
|
|
25248
|
-
function _unsupportedIterableToArray$
|
|
25249
|
-
function _arrayLikeToArray$
|
|
25258
|
+
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; } } }; }
|
|
25259
|
+
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; } }
|
|
25260
|
+
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; }
|
|
25250
25261
|
|
|
25251
25262
|
/**
|
|
25252
25263
|
* Workspace-level pre-pass that migrates legacy bare component
|
|
@@ -25321,7 +25332,7 @@ function migrateScopedIdsInWorkspace(workspace, componentMap) {
|
|
|
25321
25332
|
};
|
|
25322
25333
|
var _walk = function walk(items) {
|
|
25323
25334
|
if (!Array.isArray(items)) return;
|
|
25324
|
-
var _iterator = _createForOfIteratorHelper$
|
|
25335
|
+
var _iterator = _createForOfIteratorHelper$o(items),
|
|
25325
25336
|
_step;
|
|
25326
25337
|
try {
|
|
25327
25338
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -25343,7 +25354,7 @@ function migrateScopedIdsInWorkspace(workspace, componentMap) {
|
|
|
25343
25354
|
};
|
|
25344
25355
|
_walk(workspace.layout);
|
|
25345
25356
|
if (Array.isArray(workspace.pages)) {
|
|
25346
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
25357
|
+
var _iterator2 = _createForOfIteratorHelper$o(workspace.pages),
|
|
25347
25358
|
_step2;
|
|
25348
25359
|
try {
|
|
25349
25360
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -25360,9 +25371,9 @@ function migrateScopedIdsInWorkspace(workspace, componentMap) {
|
|
|
25360
25371
|
return counts;
|
|
25361
25372
|
}
|
|
25362
25373
|
|
|
25363
|
-
function _createForOfIteratorHelper$
|
|
25364
|
-
function _unsupportedIterableToArray$
|
|
25365
|
-
function _arrayLikeToArray$
|
|
25374
|
+
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; } } }; }
|
|
25375
|
+
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; } }
|
|
25376
|
+
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; }
|
|
25366
25377
|
/**
|
|
25367
25378
|
* cleanForeignWidgetsFromWorkspace.js
|
|
25368
25379
|
*
|
|
@@ -25403,7 +25414,7 @@ function cleanForeignWidgetsFromWorkspace(workspace) {
|
|
|
25403
25414
|
var _cleanList = function cleanList(items) {
|
|
25404
25415
|
if (!Array.isArray(items)) return items;
|
|
25405
25416
|
var kept = [];
|
|
25406
|
-
var _iterator = _createForOfIteratorHelper$
|
|
25417
|
+
var _iterator = _createForOfIteratorHelper$n(items),
|
|
25407
25418
|
_step;
|
|
25408
25419
|
try {
|
|
25409
25420
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -25440,7 +25451,7 @@ function cleanForeignWidgetsFromWorkspace(workspace) {
|
|
|
25440
25451
|
workspace.sidebarLayout = _cleanList(workspace.sidebarLayout);
|
|
25441
25452
|
}
|
|
25442
25453
|
if (Array.isArray(workspace.pages)) {
|
|
25443
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
25454
|
+
var _iterator2 = _createForOfIteratorHelper$n(workspace.pages),
|
|
25444
25455
|
_step2;
|
|
25445
25456
|
try {
|
|
25446
25457
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -25458,9 +25469,9 @@ function cleanForeignWidgetsFromWorkspace(workspace) {
|
|
|
25458
25469
|
return summary;
|
|
25459
25470
|
}
|
|
25460
25471
|
|
|
25461
|
-
function _createForOfIteratorHelper$
|
|
25462
|
-
function _unsupportedIterableToArray$
|
|
25463
|
-
function _arrayLikeToArray$
|
|
25472
|
+
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; } } }; }
|
|
25473
|
+
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; } }
|
|
25474
|
+
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; }
|
|
25464
25475
|
/**
|
|
25465
25476
|
* migrateLayoutItemTypes.js
|
|
25466
25477
|
*
|
|
@@ -25522,7 +25533,7 @@ function migrateLayoutItemTypes(workspace) {
|
|
|
25522
25533
|
};
|
|
25523
25534
|
var _walk = function walk(items) {
|
|
25524
25535
|
if (!Array.isArray(items)) return;
|
|
25525
|
-
var _iterator = _createForOfIteratorHelper$
|
|
25536
|
+
var _iterator = _createForOfIteratorHelper$m(items),
|
|
25526
25537
|
_step;
|
|
25527
25538
|
try {
|
|
25528
25539
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -25540,7 +25551,7 @@ function migrateLayoutItemTypes(workspace) {
|
|
|
25540
25551
|
};
|
|
25541
25552
|
_walk(workspace.layout);
|
|
25542
25553
|
if (Array.isArray(workspace.pages)) {
|
|
25543
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
25554
|
+
var _iterator2 = _createForOfIteratorHelper$m(workspace.pages),
|
|
25544
25555
|
_step2;
|
|
25545
25556
|
try {
|
|
25546
25557
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -25921,9 +25932,9 @@ var ThemeModel = function ThemeModel() {
|
|
|
25921
25932
|
}
|
|
25922
25933
|
};
|
|
25923
25934
|
|
|
25924
|
-
function _createForOfIteratorHelper$
|
|
25925
|
-
function _unsupportedIterableToArray$
|
|
25926
|
-
function _arrayLikeToArray$
|
|
25935
|
+
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; } } }; }
|
|
25936
|
+
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; } }
|
|
25937
|
+
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; }
|
|
25927
25938
|
/*
|
|
25928
25939
|
"component": AnalyticsReportsWidget,
|
|
25929
25940
|
"type":"widget",
|
|
@@ -26041,7 +26052,7 @@ var ComponentConfigModel = function ComponentConfigModel() {
|
|
|
26041
26052
|
if ("providers" in obj && Array.isArray(obj.providers)) {
|
|
26042
26053
|
var seen = new Set();
|
|
26043
26054
|
var cleaned = [];
|
|
26044
|
-
var _iterator = _createForOfIteratorHelper$
|
|
26055
|
+
var _iterator = _createForOfIteratorHelper$l(obj.providers),
|
|
26045
26056
|
_step;
|
|
26046
26057
|
try {
|
|
26047
26058
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -26089,9 +26100,9 @@ var MenuItemModel = function MenuItemModel() {
|
|
|
26089
26100
|
|
|
26090
26101
|
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; }
|
|
26091
26102
|
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; }
|
|
26092
|
-
function _createForOfIteratorHelper$
|
|
26093
|
-
function _unsupportedIterableToArray$
|
|
26094
|
-
function _arrayLikeToArray$
|
|
26103
|
+
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; } } }; }
|
|
26104
|
+
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; } }
|
|
26105
|
+
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; }
|
|
26095
26106
|
/**
|
|
26096
26107
|
* A Model for a Workspace (Dashboard)
|
|
26097
26108
|
* The Dashboard in this instance is the entire Layout inclusive of the workspaces and widgets
|
|
@@ -26163,7 +26174,7 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
26163
26174
|
|
|
26164
26175
|
// Also normalize grids within pages
|
|
26165
26176
|
if (this.pages.length > 0) {
|
|
26166
|
-
var _iterator = _createForOfIteratorHelper$
|
|
26177
|
+
var _iterator = _createForOfIteratorHelper$k(this.pages),
|
|
26167
26178
|
_step;
|
|
26168
26179
|
try {
|
|
26169
26180
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -28139,7 +28150,7 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
28139
28150
|
try {
|
|
28140
28151
|
// Collect all item IDs actively referenced by grid cells
|
|
28141
28152
|
var activeItemIds = new Set();
|
|
28142
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
28153
|
+
var _iterator2 = _createForOfIteratorHelper$k(this.layout),
|
|
28143
28154
|
_step2;
|
|
28144
28155
|
try {
|
|
28145
28156
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -28179,7 +28190,7 @@ var DashboardModel = /*#__PURE__*/function () {
|
|
|
28179
28190
|
});
|
|
28180
28191
|
|
|
28181
28192
|
// Clean listener references on remaining items for each removed orphan
|
|
28182
|
-
var _iterator3 = _createForOfIteratorHelper$
|
|
28193
|
+
var _iterator3 = _createForOfIteratorHelper$k(orphanedIds),
|
|
28183
28194
|
_step3;
|
|
28184
28195
|
try {
|
|
28185
28196
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
@@ -29000,9 +29011,9 @@ var useDashboard = function useDashboard() {
|
|
|
29000
29011
|
});
|
|
29001
29012
|
};
|
|
29002
29013
|
|
|
29003
|
-
function _createForOfIteratorHelper$
|
|
29004
|
-
function _unsupportedIterableToArray$
|
|
29005
|
-
function _arrayLikeToArray$
|
|
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; }
|
|
29006
29017
|
|
|
29007
29018
|
/**
|
|
29008
29019
|
* useWidgetProviders Hook
|
|
@@ -29058,7 +29069,7 @@ var useWidgetProviders = function useWidgetProviders() {
|
|
|
29058
29069
|
// 1. Widget-level: stored directly on the layout item by handleSelectProvider
|
|
29059
29070
|
// 2. Workspace-level: stored as workspace.selectedProviders[widgetId][providerType]
|
|
29060
29071
|
var providers = {};
|
|
29061
|
-
var _iterator = _createForOfIteratorHelper$
|
|
29072
|
+
var _iterator = _createForOfIteratorHelper$j(providerDeclarations),
|
|
29062
29073
|
_step;
|
|
29063
29074
|
try {
|
|
29064
29075
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -29100,19 +29111,104 @@ var useWidgetProviders = function useWidgetProviders() {
|
|
|
29100
29111
|
};
|
|
29101
29112
|
};
|
|
29102
29113
|
|
|
29114
|
+
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; } } }; }
|
|
29115
|
+
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; } }
|
|
29116
|
+
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; }
|
|
29117
|
+
|
|
29103
29118
|
/**
|
|
29104
29119
|
* Module-level shared state for MCP server connections.
|
|
29105
|
-
* Prevents multiple hook instances (e.g., 4 widgets
|
|
29106
|
-
* each firing their own IPC startServer call.
|
|
29120
|
+
* Prevents multiple hook instances (e.g., 4 widgets on the same dashboard
|
|
29121
|
+
* using "slack") from each firing their own IPC startServer call.
|
|
29122
|
+
*
|
|
29123
|
+
* Slice 3a: keys are scoped per `(workspaceId, serverName)` so two
|
|
29124
|
+
* dashboards using the same provider name don't share renderer state
|
|
29125
|
+
* (the main process spawns separate server instances for each).
|
|
29107
29126
|
*
|
|
29108
|
-
* serverStates: tracks connection result + consumer reference count
|
|
29109
|
-
* pendingConnects: deduplicates in-flight IPC calls
|
|
29127
|
+
* serverStates: tracks connection result + consumer reference count
|
|
29128
|
+
* pendingConnects: deduplicates in-flight IPC calls
|
|
29110
29129
|
*/
|
|
29111
29130
|
var serverStates = new Map();
|
|
29112
|
-
// Map
|
|
29131
|
+
// Map<`${workspaceId}::${serverName}`, { status, tools, resources, consumerCount }>
|
|
29113
29132
|
|
|
29114
29133
|
var pendingConnects$1 = new Map();
|
|
29115
|
-
// Map
|
|
29134
|
+
// Map<`${workspaceId}::${serverName}`, Promise<result>>
|
|
29135
|
+
|
|
29136
|
+
var NO_WORKSPACE = "__no_workspace__";
|
|
29137
|
+
function rendererStateKey(workspaceId, serverName) {
|
|
29138
|
+
var wid = workspaceId && typeof workspaceId === "string" ? workspaceId : NO_WORKSPACE;
|
|
29139
|
+
return wid + "::" + serverName;
|
|
29140
|
+
}
|
|
29141
|
+
|
|
29142
|
+
/**
|
|
29143
|
+
* Slice 3b: compute the union of granted paths for a server across a
|
|
29144
|
+
* set of widgets. Mirrors electron/utils/mcpScopeResolver.unionPathScope
|
|
29145
|
+
* but inline here because the electron/ helper isn't reachable from the
|
|
29146
|
+
* renderer build. The mainline path-scope test runs against the
|
|
29147
|
+
* electron-side helper; this one is exercised at runtime when widgets
|
|
29148
|
+
* connect.
|
|
29149
|
+
*/
|
|
29150
|
+
function unionPathScope(grants, serverName) {
|
|
29151
|
+
var reads = new Set();
|
|
29152
|
+
var writes = new Set();
|
|
29153
|
+
if (!Array.isArray(grants)) {
|
|
29154
|
+
return {
|
|
29155
|
+
readPaths: [],
|
|
29156
|
+
writePaths: [],
|
|
29157
|
+
allowedPaths: []
|
|
29158
|
+
};
|
|
29159
|
+
}
|
|
29160
|
+
var _iterator = _createForOfIteratorHelper$i(grants),
|
|
29161
|
+
_step;
|
|
29162
|
+
try {
|
|
29163
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
29164
|
+
var entry = _step.value;
|
|
29165
|
+
if (!entry || _typeof(entry) !== "object") continue;
|
|
29166
|
+
var granted = entry.granted;
|
|
29167
|
+
if (!granted || _typeof(granted) !== "object") continue;
|
|
29168
|
+
var servers = granted.servers;
|
|
29169
|
+
if (!servers || _typeof(servers) !== "object") continue;
|
|
29170
|
+
var serverPerms = servers[serverName];
|
|
29171
|
+
if (!serverPerms || _typeof(serverPerms) !== "object") continue;
|
|
29172
|
+
if (Array.isArray(serverPerms.readPaths)) {
|
|
29173
|
+
var _iterator2 = _createForOfIteratorHelper$i(serverPerms.readPaths),
|
|
29174
|
+
_step2;
|
|
29175
|
+
try {
|
|
29176
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
29177
|
+
var p = _step2.value;
|
|
29178
|
+
if (typeof p === "string" && p) reads.add(p);
|
|
29179
|
+
}
|
|
29180
|
+
} catch (err) {
|
|
29181
|
+
_iterator2.e(err);
|
|
29182
|
+
} finally {
|
|
29183
|
+
_iterator2.f();
|
|
29184
|
+
}
|
|
29185
|
+
}
|
|
29186
|
+
if (Array.isArray(serverPerms.writePaths)) {
|
|
29187
|
+
var _iterator3 = _createForOfIteratorHelper$i(serverPerms.writePaths),
|
|
29188
|
+
_step3;
|
|
29189
|
+
try {
|
|
29190
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
29191
|
+
var _p = _step3.value;
|
|
29192
|
+
if (typeof _p === "string" && _p) writes.add(_p);
|
|
29193
|
+
}
|
|
29194
|
+
} catch (err) {
|
|
29195
|
+
_iterator3.e(err);
|
|
29196
|
+
} finally {
|
|
29197
|
+
_iterator3.f();
|
|
29198
|
+
}
|
|
29199
|
+
}
|
|
29200
|
+
}
|
|
29201
|
+
} catch (err) {
|
|
29202
|
+
_iterator.e(err);
|
|
29203
|
+
} finally {
|
|
29204
|
+
_iterator.f();
|
|
29205
|
+
}
|
|
29206
|
+
return {
|
|
29207
|
+
readPaths: _toConsumableArray(reads),
|
|
29208
|
+
writePaths: _toConsumableArray(writes),
|
|
29209
|
+
allowedPaths: _toConsumableArray(new Set([].concat(_toConsumableArray(reads), _toConsumableArray(writes))))
|
|
29210
|
+
};
|
|
29211
|
+
}
|
|
29116
29212
|
|
|
29117
29213
|
/**
|
|
29118
29214
|
* useMcpProvider Hook
|
|
@@ -29281,7 +29377,8 @@ var useMcpProvider = function useMcpProvider(providerType) {
|
|
|
29281
29377
|
* even when multiple hook instances call connect() simultaneously.
|
|
29282
29378
|
*/
|
|
29283
29379
|
var connect = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
29284
|
-
var
|
|
29380
|
+
var _workspace$workspaceD2;
|
|
29381
|
+
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;
|
|
29285
29382
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
29286
29383
|
while (1) switch (_context.prev = _context.next) {
|
|
29287
29384
|
case 0:
|
|
@@ -29312,96 +29409,150 @@ var useMcpProvider = function useMcpProvider(providerType) {
|
|
|
29312
29409
|
setError("Provider \"".concat(selectedProviderName, "\" has no MCP configuration"));
|
|
29313
29410
|
return _context.abrupt("return");
|
|
29314
29411
|
case 4:
|
|
29412
|
+
// Slice 3a: scope state per (workspace, provider). Two dashboards
|
|
29413
|
+
// using the same provider name get separate server instances in the
|
|
29414
|
+
// main process, so the renderer state must mirror that or one
|
|
29415
|
+
// dashboard's "connected" cache will short-circuit a second
|
|
29416
|
+
// dashboard's connect that needs its own backing process.
|
|
29417
|
+
workspaceId = (workspace === null || workspace === void 0 || (_workspace$workspaceD2 = workspace.workspaceData) === null || _workspace$workspaceD2 === void 0 ? void 0 : _workspace$workspaceD2.id) || null;
|
|
29418
|
+
stateKey = rendererStateKey(workspaceId, selectedProviderName); // Slice 3b: compute the workspace's path-scope union from grants.
|
|
29419
|
+
// Enumerate widgets on this workspace that bind to this server,
|
|
29420
|
+
// look up their grants, union the read+write paths. Server spawns
|
|
29421
|
+
// with that union as its allowed-paths. Widget-level bindings on
|
|
29422
|
+
// layout items that aren't reflected in workspaceData.selectedProviders
|
|
29423
|
+
// are not enumerated — those widgets must rely on workspace-level
|
|
29424
|
+
// bindings to contribute to the union (known limitation).
|
|
29425
|
+
pathScope = null;
|
|
29426
|
+
_context.prev = 5;
|
|
29427
|
+
wsBindings = workspace === null || workspace === void 0 || (_workspace$workspaceD3 = workspace.workspaceData) === null || _workspace$workspaceD3 === void 0 ? void 0 : _workspace$workspaceD3.selectedProviders;
|
|
29428
|
+
widgetIdsOnServer = new Set(); // Always include the calling widget itself.
|
|
29429
|
+
if (widgetId) widgetIdsOnServer.add(widgetId);
|
|
29430
|
+
if (wsBindings && _typeof(wsBindings) === "object") {
|
|
29431
|
+
for (_i2 = 0, _Object$entries2 = Object.entries(wsBindings); _i2 < _Object$entries2.length; _i2++) {
|
|
29432
|
+
_Object$entries2$_i = _slicedToArray(_Object$entries2[_i2], 2), wId = _Object$entries2$_i[0], bindings = _Object$entries2$_i[1];
|
|
29433
|
+
if (bindings && _typeof(bindings) === "object" && bindings[providerType] === selectedProviderName) {
|
|
29434
|
+
widgetIdsOnServer.add(wId);
|
|
29435
|
+
}
|
|
29436
|
+
}
|
|
29437
|
+
}
|
|
29438
|
+
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)) {
|
|
29439
|
+
_context.next = 8;
|
|
29440
|
+
break;
|
|
29441
|
+
}
|
|
29442
|
+
_context.next = 6;
|
|
29443
|
+
return window.mainApi.widgetMcp.listAll();
|
|
29444
|
+
case 6:
|
|
29445
|
+
_t = _context.sent;
|
|
29446
|
+
if (_t) {
|
|
29447
|
+
_context.next = 7;
|
|
29448
|
+
break;
|
|
29449
|
+
}
|
|
29450
|
+
_t = [];
|
|
29451
|
+
case 7:
|
|
29452
|
+
allGrants = _t;
|
|
29453
|
+
relevant = allGrants.filter(function (g) {
|
|
29454
|
+
return widgetIdsOnServer.has(g.widgetId);
|
|
29455
|
+
});
|
|
29456
|
+
if (relevant.length > 0) {
|
|
29457
|
+
pathScope = unionPathScope(relevant, selectedProviderName);
|
|
29458
|
+
}
|
|
29459
|
+
case 8:
|
|
29460
|
+
_context.next = 10;
|
|
29461
|
+
break;
|
|
29462
|
+
case 9:
|
|
29463
|
+
_context.prev = 9;
|
|
29464
|
+
_context["catch"](5);
|
|
29465
|
+
case 10:
|
|
29315
29466
|
// 1. Already connected at module level? Verify with main process before trusting cache.
|
|
29316
29467
|
// The server may have been stopped externally (e.g., Test Connection in settings).
|
|
29317
|
-
cached = serverStates.get(
|
|
29468
|
+
cached = serverStates.get(stateKey);
|
|
29318
29469
|
if (!(cached && cached.status === "connected")) {
|
|
29319
|
-
_context.next =
|
|
29470
|
+
_context.next = 15;
|
|
29320
29471
|
break;
|
|
29321
29472
|
}
|
|
29322
|
-
_context.prev =
|
|
29323
|
-
_context.next =
|
|
29473
|
+
_context.prev = 11;
|
|
29474
|
+
_context.next = 12;
|
|
29324
29475
|
return new Promise(function (resolve, reject) {
|
|
29325
29476
|
dashApi.mcpGetServerStatus(selectedProviderName, function (event, result) {
|
|
29326
29477
|
return resolve(result);
|
|
29327
29478
|
}, function (event, err) {
|
|
29328
29479
|
return reject(err);
|
|
29329
|
-
});
|
|
29480
|
+
}, workspaceId);
|
|
29330
29481
|
});
|
|
29331
|
-
case
|
|
29482
|
+
case 12:
|
|
29332
29483
|
statusResult = _context.sent;
|
|
29333
29484
|
if (!((statusResult === null || statusResult === void 0 ? void 0 : statusResult.status) === "connected")) {
|
|
29334
|
-
_context.next =
|
|
29485
|
+
_context.next = 13;
|
|
29335
29486
|
break;
|
|
29336
29487
|
}
|
|
29337
29488
|
cached.consumerCount++;
|
|
29338
29489
|
applyResult(cached);
|
|
29339
29490
|
return _context.abrupt("return");
|
|
29340
|
-
case
|
|
29491
|
+
case 13:
|
|
29341
29492
|
// Server was stopped externally — clear stale cache and reconnect
|
|
29342
|
-
serverStates["delete"](
|
|
29343
|
-
_context.next =
|
|
29493
|
+
serverStates["delete"](stateKey);
|
|
29494
|
+
_context.next = 15;
|
|
29344
29495
|
break;
|
|
29345
|
-
case
|
|
29346
|
-
_context.prev =
|
|
29347
|
-
_context["catch"](
|
|
29348
|
-
serverStates["delete"](
|
|
29349
|
-
case
|
|
29496
|
+
case 14:
|
|
29497
|
+
_context.prev = 14;
|
|
29498
|
+
_context["catch"](11);
|
|
29499
|
+
serverStates["delete"](stateKey);
|
|
29500
|
+
case 15:
|
|
29350
29501
|
setIsConnecting(true);
|
|
29351
29502
|
setError(null);
|
|
29352
29503
|
|
|
29353
29504
|
// 2. Another hook instance already connecting? Piggyback on its promise
|
|
29354
|
-
if (!pendingConnects$1.has(
|
|
29355
|
-
_context.next =
|
|
29505
|
+
if (!pendingConnects$1.has(stateKey)) {
|
|
29506
|
+
_context.next = 23;
|
|
29356
29507
|
break;
|
|
29357
29508
|
}
|
|
29358
|
-
_context.prev =
|
|
29359
|
-
_context.next =
|
|
29360
|
-
return pendingConnects$1.get(
|
|
29361
|
-
case
|
|
29509
|
+
_context.prev = 16;
|
|
29510
|
+
_context.next = 17;
|
|
29511
|
+
return pendingConnects$1.get(stateKey);
|
|
29512
|
+
case 17:
|
|
29362
29513
|
result = _context.sent;
|
|
29363
29514
|
if (mountedRef.current) {
|
|
29364
|
-
_context.next =
|
|
29515
|
+
_context.next = 18;
|
|
29365
29516
|
break;
|
|
29366
29517
|
}
|
|
29367
29518
|
return _context.abrupt("return");
|
|
29368
|
-
case
|
|
29519
|
+
case 18:
|
|
29369
29520
|
if (!result.error) {
|
|
29370
|
-
_context.next =
|
|
29521
|
+
_context.next = 19;
|
|
29371
29522
|
break;
|
|
29372
29523
|
}
|
|
29373
29524
|
setError(result.message);
|
|
29374
29525
|
setIsConnecting(false);
|
|
29375
29526
|
setStatus("error");
|
|
29376
29527
|
return _context.abrupt("return");
|
|
29377
|
-
case
|
|
29528
|
+
case 19:
|
|
29378
29529
|
// Increment consumer count and apply
|
|
29379
|
-
state = serverStates.get(
|
|
29530
|
+
state = serverStates.get(stateKey);
|
|
29380
29531
|
if (state) state.consumerCount++;
|
|
29381
29532
|
applyResult(result);
|
|
29382
|
-
_context.next =
|
|
29533
|
+
_context.next = 22;
|
|
29383
29534
|
break;
|
|
29384
|
-
case
|
|
29385
|
-
_context.prev =
|
|
29386
|
-
|
|
29535
|
+
case 20:
|
|
29536
|
+
_context.prev = 20;
|
|
29537
|
+
_t4 = _context["catch"](16);
|
|
29387
29538
|
if (mountedRef.current) {
|
|
29388
|
-
_context.next =
|
|
29539
|
+
_context.next = 21;
|
|
29389
29540
|
break;
|
|
29390
29541
|
}
|
|
29391
29542
|
return _context.abrupt("return");
|
|
29392
|
-
case
|
|
29393
|
-
setError((
|
|
29543
|
+
case 21:
|
|
29544
|
+
setError((_t4 === null || _t4 === void 0 ? void 0 : _t4.message) || "Failed to connect to MCP server");
|
|
29394
29545
|
setIsConnecting(false);
|
|
29395
29546
|
setStatus("error");
|
|
29396
|
-
case
|
|
29547
|
+
case 22:
|
|
29397
29548
|
return _context.abrupt("return");
|
|
29398
|
-
case
|
|
29549
|
+
case 23:
|
|
29399
29550
|
// 3. First caller — fire the IPC call and share the promise
|
|
29400
29551
|
connectPromise = new Promise(function (resolve, reject) {
|
|
29401
29552
|
dashApi.mcpStartServer(selectedProviderName, provider.mcpConfig, provider.credentials, function (event, result) {
|
|
29402
|
-
pendingConnects$1["delete"](
|
|
29553
|
+
pendingConnects$1["delete"](stateKey);
|
|
29403
29554
|
if (result.error) {
|
|
29404
|
-
serverStates.set(
|
|
29555
|
+
serverStates.set(stateKey, {
|
|
29405
29556
|
status: "error",
|
|
29406
29557
|
tools: [],
|
|
29407
29558
|
resources: [],
|
|
@@ -29412,7 +29563,7 @@ var useMcpProvider = function useMcpProvider(providerType) {
|
|
|
29412
29563
|
}
|
|
29413
29564
|
|
|
29414
29565
|
// Store in module-level shared state
|
|
29415
|
-
serverStates.set(
|
|
29566
|
+
serverStates.set(stateKey, {
|
|
29416
29567
|
status: "connected",
|
|
29417
29568
|
tools: result.tools || [],
|
|
29418
29569
|
resources: result.resources || [],
|
|
@@ -29420,65 +29571,66 @@ var useMcpProvider = function useMcpProvider(providerType) {
|
|
|
29420
29571
|
});
|
|
29421
29572
|
resolve(result);
|
|
29422
29573
|
}, function (event, err) {
|
|
29423
|
-
pendingConnects$1["delete"](
|
|
29424
|
-
serverStates.set(
|
|
29574
|
+
pendingConnects$1["delete"](stateKey);
|
|
29575
|
+
serverStates.set(stateKey, {
|
|
29425
29576
|
status: "error",
|
|
29426
29577
|
tools: [],
|
|
29427
29578
|
resources: [],
|
|
29428
29579
|
consumerCount: 0
|
|
29429
29580
|
});
|
|
29430
29581
|
reject(err);
|
|
29431
|
-
});
|
|
29582
|
+
}, workspaceId, pathScope);
|
|
29432
29583
|
});
|
|
29433
|
-
pendingConnects$1.set(
|
|
29434
|
-
_context.prev =
|
|
29435
|
-
_context.next =
|
|
29584
|
+
pendingConnects$1.set(stateKey, connectPromise);
|
|
29585
|
+
_context.prev = 24;
|
|
29586
|
+
_context.next = 25;
|
|
29436
29587
|
return connectPromise;
|
|
29437
|
-
case
|
|
29588
|
+
case 25:
|
|
29438
29589
|
_result = _context.sent;
|
|
29439
29590
|
if (mountedRef.current) {
|
|
29440
|
-
_context.next =
|
|
29591
|
+
_context.next = 26;
|
|
29441
29592
|
break;
|
|
29442
29593
|
}
|
|
29443
29594
|
return _context.abrupt("return");
|
|
29444
|
-
case
|
|
29595
|
+
case 26:
|
|
29445
29596
|
if (!_result.error) {
|
|
29446
|
-
_context.next =
|
|
29597
|
+
_context.next = 27;
|
|
29447
29598
|
break;
|
|
29448
29599
|
}
|
|
29449
29600
|
setError(_result.message);
|
|
29450
29601
|
setIsConnecting(false);
|
|
29451
29602
|
setStatus("error");
|
|
29452
29603
|
return _context.abrupt("return");
|
|
29453
|
-
case
|
|
29604
|
+
case 27:
|
|
29454
29605
|
applyResult(_result);
|
|
29455
|
-
_context.next =
|
|
29606
|
+
_context.next = 30;
|
|
29456
29607
|
break;
|
|
29457
|
-
case
|
|
29458
|
-
_context.prev =
|
|
29459
|
-
|
|
29608
|
+
case 28:
|
|
29609
|
+
_context.prev = 28;
|
|
29610
|
+
_t5 = _context["catch"](24);
|
|
29460
29611
|
if (mountedRef.current) {
|
|
29461
|
-
_context.next =
|
|
29612
|
+
_context.next = 29;
|
|
29462
29613
|
break;
|
|
29463
29614
|
}
|
|
29464
29615
|
return _context.abrupt("return");
|
|
29465
|
-
case
|
|
29466
|
-
setError((
|
|
29616
|
+
case 29:
|
|
29617
|
+
setError((_t5 === null || _t5 === void 0 ? void 0 : _t5.message) || "Failed to connect to MCP server");
|
|
29467
29618
|
setIsConnecting(false);
|
|
29468
29619
|
setStatus("error");
|
|
29469
|
-
case
|
|
29620
|
+
case 30:
|
|
29470
29621
|
case "end":
|
|
29471
29622
|
return _context.stop();
|
|
29472
29623
|
}
|
|
29473
|
-
}, _callee, null, [[5,
|
|
29474
|
-
})), [dashApi, provider, providerType, selectedProviderName, applyResult]);
|
|
29624
|
+
}, _callee, null, [[5, 9], [11, 14], [16, 20], [24, 28]]);
|
|
29625
|
+
})), [dashApi, provider, providerType, selectedProviderName, applyResult, workspace]);
|
|
29475
29626
|
|
|
29476
29627
|
/**
|
|
29477
29628
|
* Disconnect from the MCP server.
|
|
29478
29629
|
* Only sends the IPC stop call when this is the last consumer.
|
|
29479
29630
|
*/
|
|
29480
29631
|
var disconnect = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
29481
|
-
var
|
|
29632
|
+
var _workspace$workspaceD4;
|
|
29633
|
+
var workspaceId, stateKey, state;
|
|
29482
29634
|
return _regeneratorRuntime.wrap(function (_context2) {
|
|
29483
29635
|
while (1) switch (_context2.prev = _context2.next) {
|
|
29484
29636
|
case 0:
|
|
@@ -29488,7 +29640,9 @@ var useMcpProvider = function useMcpProvider(providerType) {
|
|
|
29488
29640
|
}
|
|
29489
29641
|
return _context2.abrupt("return");
|
|
29490
29642
|
case 1:
|
|
29491
|
-
|
|
29643
|
+
workspaceId = (workspace === null || workspace === void 0 || (_workspace$workspaceD4 = workspace.workspaceData) === null || _workspace$workspaceD4 === void 0 ? void 0 : _workspace$workspaceD4.id) || null;
|
|
29644
|
+
stateKey = rendererStateKey(workspaceId, selectedProviderName);
|
|
29645
|
+
state = serverStates.get(stateKey);
|
|
29492
29646
|
if (!state) {
|
|
29493
29647
|
_context2.next = 3;
|
|
29494
29648
|
break;
|
|
@@ -29507,7 +29661,7 @@ var useMcpProvider = function useMcpProvider(providerType) {
|
|
|
29507
29661
|
return _context2.abrupt("return");
|
|
29508
29662
|
case 2:
|
|
29509
29663
|
// Last consumer — actually stop the server
|
|
29510
|
-
serverStates["delete"](
|
|
29664
|
+
serverStates["delete"](stateKey);
|
|
29511
29665
|
case 3:
|
|
29512
29666
|
// Clear state synchronously BEFORE the IPC call so that
|
|
29513
29667
|
// a subsequent connect() won't short-circuit on stale connectedRef
|
|
@@ -29516,29 +29670,31 @@ var useMcpProvider = function useMcpProvider(providerType) {
|
|
|
29516
29670
|
setResources([]);
|
|
29517
29671
|
setStatus("disconnected");
|
|
29518
29672
|
connectedRef.current = false;
|
|
29519
|
-
pendingConnects$1["delete"](
|
|
29673
|
+
pendingConnects$1["delete"](stateKey);
|
|
29520
29674
|
return _context2.abrupt("return", new Promise(function (resolve) {
|
|
29521
29675
|
dashApi.mcpStopServer(selectedProviderName, function () {
|
|
29522
29676
|
return resolve();
|
|
29523
29677
|
}, function (event, err) {
|
|
29524
29678
|
resolve();
|
|
29525
|
-
});
|
|
29679
|
+
}, workspaceId);
|
|
29526
29680
|
}));
|
|
29527
29681
|
case 4:
|
|
29528
29682
|
case "end":
|
|
29529
29683
|
return _context2.stop();
|
|
29530
29684
|
}
|
|
29531
29685
|
}, _callee2);
|
|
29532
|
-
})), [dashApi, selectedProviderName]);
|
|
29686
|
+
})), [dashApi, selectedProviderName, workspace]);
|
|
29533
29687
|
|
|
29534
29688
|
/**
|
|
29535
29689
|
* Call a tool on the MCP server
|
|
29536
29690
|
*/
|
|
29537
29691
|
var callTool = useCallback(/*#__PURE__*/function () {
|
|
29538
29692
|
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(toolName) {
|
|
29693
|
+
var _workspace$workspaceD5;
|
|
29539
29694
|
var args,
|
|
29540
29695
|
widgetRequiredTools,
|
|
29541
29696
|
isRequired,
|
|
29697
|
+
workspaceId,
|
|
29542
29698
|
_args3 = arguments;
|
|
29543
29699
|
return _regeneratorRuntime.wrap(function (_context3) {
|
|
29544
29700
|
while (1) switch (_context3.prev = _context3.next) {
|
|
@@ -29565,6 +29721,10 @@ var useMcpProvider = function useMcpProvider(providerType) {
|
|
|
29565
29721
|
isRequired = widgetRequiredTools === null || widgetRequiredTools === void 0 ? void 0 : widgetRequiredTools.includes(toolName);
|
|
29566
29722
|
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.") : ""));
|
|
29567
29723
|
case 2:
|
|
29724
|
+
// Slice 3a: scope the MCP server process per workspace. The
|
|
29725
|
+
// workspace UUID is the canonical "current dashboard" identity
|
|
29726
|
+
// (see useNotifications, useScheduler for the same pattern).
|
|
29727
|
+
workspaceId = (workspace === null || workspace === void 0 || (_workspace$workspaceD5 = workspace.workspaceData) === null || _workspace$workspaceD5 === void 0 ? void 0 : _workspace$workspaceD5.id) || null;
|
|
29568
29728
|
return _context3.abrupt("return", new Promise(function (resolve, reject) {
|
|
29569
29729
|
var timeout = setTimeout(function () {
|
|
29570
29730
|
reject(new Error("Tool call \"".concat(toolName, "\" timed out after 30s")));
|
|
@@ -29579,7 +29739,7 @@ var useMcpProvider = function useMcpProvider(providerType) {
|
|
|
29579
29739
|
}, function (event, err) {
|
|
29580
29740
|
clearTimeout(timeout);
|
|
29581
29741
|
reject(new Error((err === null || err === void 0 ? void 0 : err.message) || "Failed to call MCP tool"));
|
|
29582
|
-
});
|
|
29742
|
+
}, workspaceId);
|
|
29583
29743
|
}));
|
|
29584
29744
|
case 3:
|
|
29585
29745
|
case "end":
|
|
@@ -29590,7 +29750,7 @@ var useMcpProvider = function useMcpProvider(providerType) {
|
|
|
29590
29750
|
return function (_x) {
|
|
29591
29751
|
return _ref3.apply(this, arguments);
|
|
29592
29752
|
};
|
|
29593
|
-
}(), [dashApi, selectedProviderName, effectiveAllowedTools, widgetData, providerType]);
|
|
29753
|
+
}(), [dashApi, selectedProviderName, effectiveAllowedTools, widgetData, providerType, workspace]);
|
|
29594
29754
|
|
|
29595
29755
|
/**
|
|
29596
29756
|
* Read a resource from the MCP server
|
|
@@ -29648,7 +29808,10 @@ var useMcpProvider = function useMcpProvider(providerType) {
|
|
|
29648
29808
|
|
|
29649
29809
|
// Decrement consumer count; only stop server if last consumer
|
|
29650
29810
|
if (connectedRef.current && dashApi && selectedProviderName) {
|
|
29651
|
-
var
|
|
29811
|
+
var _workspace$workspaceD6;
|
|
29812
|
+
var workspaceId = (workspace === null || workspace === void 0 || (_workspace$workspaceD6 = workspace.workspaceData) === null || _workspace$workspaceD6 === void 0 ? void 0 : _workspace$workspaceD6.id) || null;
|
|
29813
|
+
var stateKey = rendererStateKey(workspaceId, selectedProviderName);
|
|
29814
|
+
var state = serverStates.get(stateKey);
|
|
29652
29815
|
if (state) {
|
|
29653
29816
|
state.consumerCount = Math.max(0, state.consumerCount - 1);
|
|
29654
29817
|
if (state.consumerCount > 0) {
|
|
@@ -29657,12 +29820,12 @@ var useMcpProvider = function useMcpProvider(providerType) {
|
|
|
29657
29820
|
}
|
|
29658
29821
|
|
|
29659
29822
|
// Last consumer — stop the server
|
|
29660
|
-
serverStates["delete"](
|
|
29823
|
+
serverStates["delete"](stateKey);
|
|
29661
29824
|
}
|
|
29662
|
-
dashApi.mcpStopServer(selectedProviderName, function () {}, function () {});
|
|
29825
|
+
dashApi.mcpStopServer(selectedProviderName, function () {}, function () {}, workspaceId);
|
|
29663
29826
|
}
|
|
29664
29827
|
};
|
|
29665
|
-
}, [dashApi, selectedProviderName]);
|
|
29828
|
+
}, [dashApi, selectedProviderName, workspace]);
|
|
29666
29829
|
return {
|
|
29667
29830
|
isConnected: isConnected,
|
|
29668
29831
|
isConnecting: isConnecting,
|