@trops/dash-core 0.1.422 → 0.1.426

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -2,7 +2,7 @@ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
2
  import _typeof from '@babel/runtime/helpers/typeof';
3
3
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
4
  import * as DashReact from '@trops/dash-react';
5
- import { isObject, ThemeContext, deepCopy, MainSection, getUUID, getStylesForItem, themeObjects, Heading, SearchInput, ButtonIcon, SubHeading3, InputText, Button, FontAwesomeIcon, Tag, Modal, Paragraph, Sidebar, Panel, Stepper, Tag2, Tag3, Card2, Card3, Heading3, MenuItem3, FormLabel, SelectMenu, Switch, SelectInput, CodeEditorInline, SettingsModal, SubHeading2, tailwindHeightFractions, Menu3, Panel3, ButtonIcon2, DropdownPanel, MenuItem2, DragComponent, ConfirmationModal, DropComponent, getStyleName, capitalizeFirstLetter, colorTypes, getCSSStyleForClassname, Panel2, Heading2, SubHeading, Paragraph2, Paragraph3, Button2, Button3, MenuItem, ButtonIcon3, DashPanel, colorNames, shades, themeVariants, Tabs3, DataList, Checkbox, StatCard, Card, Tabs, Accordion, Alert, Toast, ProgressBar, Toggle, Breadcrumbs, Tabs2, Accordion2, Alert2, Toast2, ProgressBar2, Toggle2, Breadcrumbs2, Accordion3, Alert3, Toast3, ProgressBar3, Toggle3, Breadcrumbs3, ThemeFromUrlPane, TextArea, Icon2, AlgoliaSearchBox, CommandPalette, useSidebar, EmptyState, Navbar, withRouter, Menu as Menu$1 } from '@trops/dash-react';
5
+ import { isObject, ThemeContext, deepCopy, MainSection, getUUID, getStylesForItem, themeObjects, Heading, SearchInput, ButtonIcon, SubHeading3, InputText, Button, FontAwesomeIcon, Tag, Modal, Paragraph, Sidebar, Panel, Stepper, Tag2, Tag3, Card2, Card3, Heading3, MenuItem3, FormLabel, SelectMenu, Switch, SelectInput, CodeEditorVS, SettingsModal, SubHeading2, tailwindHeightFractions, Menu3, Panel3, ButtonIcon2, DropdownPanel, MenuItem2, DragComponent, ConfirmationModal, DropComponent, getStyleName, capitalizeFirstLetter, colorTypes, getCSSStyleForClassname, Panel2, Heading2, SubHeading, Paragraph2, Paragraph3, Button2, Button3, MenuItem, ButtonIcon3, DashPanel, colorNames, shades, themeVariants, Tabs3, DataList, Checkbox, StatCard, Card, Tabs, Accordion, Alert, Toast, ProgressBar, Toggle, Breadcrumbs, Tabs2, Accordion2, Alert2, Toast2, ProgressBar2, Toggle2, Breadcrumbs2, Accordion3, Alert3, Toast3, ProgressBar3, Toggle3, Breadcrumbs3, ThemeFromUrlPane, TextArea, CodeEditorInline, Icon2, AlgoliaSearchBox, CommandPalette, useSidebar, EmptyState, Navbar, withRouter, Menu as Menu$1 } from '@trops/dash-react';
6
6
  export * from '@trops/dash-react';
7
7
  export { ThemeContext } from '@trops/dash-react';
8
8
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
@@ -32,8 +32,8 @@ import { InstantSearch, Hits } from 'react-instantsearch-hooks-web';
32
32
  import { Link } from 'react-router-dom';
33
33
  import { marked } from 'marked';
34
34
 
35
- function ownKeys$Z(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
36
- function _objectSpread$Z(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$Z(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$Z(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
35
+ function ownKeys$_(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
36
+ function _objectSpread$_(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$_(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$_(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
37
37
  var event = {
38
38
  list: new Map(),
39
39
  // Map(1) { '<widget-UUID>' => { 'CustomSearchbar[10].searchQueryChanged': [] } }
@@ -95,7 +95,7 @@ var event = {
95
95
  uuid: subscriber["uuid"]
96
96
  };
97
97
  if ("action" in subscriber && subscriber.action !== undefined) {
98
- subscriber["action"](_objectSpread$Z({}, objectToSend));
98
+ subscriber["action"](_objectSpread$_({}, objectToSend));
99
99
  }
100
100
  });
101
101
  }
@@ -2873,8 +2873,8 @@ var DashboardWrapper = function DashboardWrapper(_ref) {
2873
2873
  });
2874
2874
  };
2875
2875
 
2876
- function ownKeys$Y(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2877
- function _objectSpread$Y(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$Y(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$Y(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2876
+ function ownKeys$Z(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2877
+ function _objectSpread$Z(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$Z(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$Z(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2878
2878
  function ThemeBroadcast(_ref) {
2879
2879
  var ctx = _ref.ctx;
2880
2880
  useEffect(function () {
@@ -2907,7 +2907,7 @@ var DashboardThemeProvider = function DashboardThemeProvider(_ref2) {
2907
2907
  var dashboardTheme = themes[themeKey];
2908
2908
  var themeValue = dashboardTheme ? dashboardTheme[themeVariant] || null : null;
2909
2909
  if (!themeValue) return null;
2910
- return _objectSpread$Y(_objectSpread$Y({}, parentContext), {}, {
2910
+ return _objectSpread$Z(_objectSpread$Z({}, parentContext), {}, {
2911
2911
  currentTheme: themeValue,
2912
2912
  currentThemeKey: themeKey,
2913
2913
  theme: themeValue,
@@ -2934,8 +2934,8 @@ var DashboardThemeProvider = function DashboardThemeProvider(_ref2) {
2934
2934
  });
2935
2935
  };
2936
2936
 
2937
- function ownKeys$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; }
2938
- 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; }
2937
+ function ownKeys$Y(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2938
+ function _objectSpread$Y(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$Y(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$Y(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2939
2939
  var AppThemeScope = function AppThemeScope(_ref) {
2940
2940
  var children = _ref.children;
2941
2941
  var ctx = useContext(ThemeContext);
@@ -2943,7 +2943,7 @@ var AppThemeScope = function AppThemeScope(_ref) {
2943
2943
  children: children
2944
2944
  });
2945
2945
  return /*#__PURE__*/jsx(ThemeContext.Provider, {
2946
- value: _objectSpread$X(_objectSpread$X({}, ctx), {}, {
2946
+ value: _objectSpread$Y(_objectSpread$Y({}, ctx), {}, {
2947
2947
  currentTheme: ctx.appTheme,
2948
2948
  currentThemeKey: ctx.appThemeKey,
2949
2949
  theme: ctx.appTheme,
@@ -3055,8 +3055,8 @@ var LayoutContainer = function LayoutContainer(_ref) {
3055
3055
  });
3056
3056
  };
3057
3057
 
3058
- 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; }
3059
- 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; }
3058
+ 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; }
3059
+ 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; }
3060
3060
  function _createForOfIteratorHelper$t(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$t(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
3061
3061
  function _unsupportedIterableToArray$t(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$t(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$t(r, a) : void 0; } }
3062
3062
  function _arrayLikeToArray$t(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
@@ -3338,7 +3338,7 @@ function createLayoutFromTemplate(template) {
3338
3338
  try {
3339
3339
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
3340
3340
  var cell = _step.value;
3341
- grid[cell.key] = _objectSpread$W({
3341
+ grid[cell.key] = _objectSpread$X({
3342
3342
  component: null,
3343
3343
  hide: cell.hide || false
3344
3344
  }, cell.span ? {
@@ -4267,8 +4267,8 @@ var RegistryAuthModal = function RegistryAuthModal(_ref) {
4267
4267
  function _createForOfIteratorHelper$s(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$s(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
4268
4268
  function _unsupportedIterableToArray$s(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$s(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$s(r, a) : void 0; } }
4269
4269
  function _arrayLikeToArray$s(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
4270
- function ownKeys$V(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4271
- function _objectSpread$V(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$V(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$V(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4270
+ 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; }
4271
+ 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; }
4272
4272
  var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
4273
4273
  var dashboardPackage = _ref.dashboardPackage,
4274
4274
  appId = _ref.appId,
@@ -4384,7 +4384,7 @@ var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
4384
4384
  setProgressWidgets(function (prev) {
4385
4385
  var next = _toConsumableArray(prev);
4386
4386
  if (data.index >= 0 && data.index < next.length) {
4387
- next[data.index] = _objectSpread$V(_objectSpread$V({}, next[data.index]), {}, {
4387
+ next[data.index] = _objectSpread$W(_objectSpread$W({}, next[data.index]), {}, {
4388
4388
  status: data.status,
4389
4389
  error: data.error || null
4390
4390
  });
@@ -4480,7 +4480,7 @@ var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
4480
4480
  var raw = preview === null || preview === void 0 ? void 0 : preview.compatibility;
4481
4481
  if (!raw) return raw;
4482
4482
  var cMap = ComponentManager.componentMap();
4483
- var augWidgets = _objectSpread$V({}, raw.widgets);
4483
+ var augWidgets = _objectSpread$W({}, raw.widgets);
4484
4484
  var fixedCount = 0;
4485
4485
  var _loop = function _loop() {
4486
4486
  var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
@@ -5063,8 +5063,8 @@ var DiscoverDashboardsDetail = function DiscoverDashboardsDetail(_ref) {
5063
5063
  });
5064
5064
  };
5065
5065
 
5066
- 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; }
5067
- 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; }
5066
+ function ownKeys$V(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5067
+ function _objectSpread$V(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$V(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$V(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5068
5068
  var LayoutManagerModal = function LayoutManagerModal(_ref) {
5069
5069
  var open = _ref.open,
5070
5070
  setIsOpen = _ref.setIsOpen,
@@ -5309,7 +5309,7 @@ var LayoutManagerModal = function LayoutManagerModal(_ref) {
5309
5309
  }
5310
5310
  return _context2.abrupt("return");
5311
5311
  case 6:
5312
- updatedWorkspace = _objectSpread$U(_objectSpread$U({}, importedWorkspace), {}, {
5312
+ updatedWorkspace = _objectSpread$V(_objectSpread$V({}, importedWorkspace), {}, {
5313
5313
  name: dashboardName.trim(),
5314
5314
  menuId: menuId,
5315
5315
  themeKey: selectedThemeKey
@@ -7067,8 +7067,8 @@ function applyFilters(items, filters, mode) {
7067
7067
  function _createForOfIteratorHelper$q(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$q(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
7068
7068
  function _unsupportedIterableToArray$q(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$q(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$q(r, a) : void 0; } }
7069
7069
  function _arrayLikeToArray$q(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
7070
- function ownKeys$T(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
7071
- function _objectSpread$T(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$T(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$T(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7070
+ 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; }
7071
+ 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; }
7072
7072
  var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
7073
7073
  var _state$selectedDashbo, _state$selectedDashbo2;
7074
7074
  var state = _ref.state,
@@ -7238,7 +7238,7 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
7238
7238
  _context2.next = 7;
7239
7239
  break;
7240
7240
  }
7241
- updatedWorkspace = _objectSpread$T(_objectSpread$T({}, installResult.workspace), {}, {
7241
+ updatedWorkspace = _objectSpread$U(_objectSpread$U({}, installResult.workspace), {}, {
7242
7242
  name: name.trim(),
7243
7243
  menuId: menuId || 1,
7244
7244
  themeKey: theme
@@ -7993,8 +7993,8 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
7993
7993
  });
7994
7994
  };
7995
7995
 
7996
- 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; }
7997
- 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; }
7996
+ function ownKeys$T(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
7997
+ function _objectSpread$T(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$T(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$T(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7998
7998
  var TOTAL_STEPS = 2; // Steps 0-1: Discover, Customize
7999
7999
 
8000
8000
  var initialState = {
@@ -8020,20 +8020,20 @@ var initialState = {
8020
8020
  function wizardReducer(state, action) {
8021
8021
  switch (action.type) {
8022
8022
  case "SET_STEP":
8023
- return _objectSpread$S(_objectSpread$S({}, state), {}, {
8023
+ return _objectSpread$T(_objectSpread$T({}, state), {}, {
8024
8024
  step: action.payload
8025
8025
  });
8026
8026
  case "SET_FILTERS":
8027
- return _objectSpread$S(_objectSpread$S({}, state), {}, {
8028
- filters: _objectSpread$S(_objectSpread$S({}, state.filters), action.payload)
8027
+ return _objectSpread$T(_objectSpread$T({}, state), {}, {
8028
+ filters: _objectSpread$T(_objectSpread$T({}, state.filters), action.payload)
8029
8029
  });
8030
8030
  case "TOGGLE_FILTER_CATEGORY":
8031
8031
  {
8032
8032
  var categories = state.filters.categories.includes(action.payload) ? state.filters.categories.filter(function (c) {
8033
8033
  return c !== action.payload;
8034
8034
  }) : [].concat(_toConsumableArray(state.filters.categories), [action.payload]);
8035
- return _objectSpread$S(_objectSpread$S({}, state), {}, {
8036
- filters: _objectSpread$S(_objectSpread$S({}, state.filters), {}, {
8035
+ return _objectSpread$T(_objectSpread$T({}, state), {}, {
8036
+ filters: _objectSpread$T(_objectSpread$T({}, state.filters), {}, {
8037
8037
  categories: categories
8038
8038
  })
8039
8039
  });
@@ -8043,15 +8043,15 @@ function wizardReducer(state, action) {
8043
8043
  var providers = state.filters.providers.includes(action.payload) ? state.filters.providers.filter(function (p) {
8044
8044
  return p !== action.payload;
8045
8045
  }) : [].concat(_toConsumableArray(state.filters.providers), [action.payload]);
8046
- return _objectSpread$S(_objectSpread$S({}, state), {}, {
8047
- filters: _objectSpread$S(_objectSpread$S({}, state.filters), {}, {
8046
+ return _objectSpread$T(_objectSpread$T({}, state), {}, {
8047
+ filters: _objectSpread$T(_objectSpread$T({}, state.filters), {}, {
8048
8048
  providers: providers
8049
8049
  })
8050
8050
  });
8051
8051
  }
8052
8052
  case "SET_SEARCH_QUERY":
8053
- return _objectSpread$S(_objectSpread$S({}, state), {}, {
8054
- filters: _objectSpread$S(_objectSpread$S({}, state.filters), {}, {
8053
+ return _objectSpread$T(_objectSpread$T({}, state), {}, {
8054
+ filters: _objectSpread$T(_objectSpread$T({}, state.filters), {}, {
8055
8055
  query: action.payload
8056
8056
  })
8057
8057
  });
@@ -8061,7 +8061,7 @@ function wizardReducer(state, action) {
8061
8061
  var widgetOrder = action.payload.map(function (w) {
8062
8062
  return w.name || w.key;
8063
8063
  });
8064
- return _objectSpread$S(_objectSpread$S({}, state), {}, {
8064
+ return _objectSpread$T(_objectSpread$T({}, state), {}, {
8065
8065
  selectedWidgets: action.payload,
8066
8066
  layout: {
8067
8067
  templateKey: templateKey,
@@ -8081,7 +8081,7 @@ function wizardReducer(state, action) {
8081
8081
  var toggleWidgetOrder = selectedWidgets.map(function (w) {
8082
8082
  return w.name || w.key;
8083
8083
  });
8084
- return _objectSpread$S(_objectSpread$S({}, state), {}, {
8084
+ return _objectSpread$T(_objectSpread$T({}, state), {}, {
8085
8085
  selectedWidgets: selectedWidgets,
8086
8086
  layout: {
8087
8087
  templateKey: toggleTemplateKey,
@@ -8090,29 +8090,29 @@ function wizardReducer(state, action) {
8090
8090
  });
8091
8091
  }
8092
8092
  case "SET_SELECTED_DASHBOARD":
8093
- return _objectSpread$S(_objectSpread$S({}, state), {}, {
8093
+ return _objectSpread$T(_objectSpread$T({}, state), {}, {
8094
8094
  selectedDashboard: action.payload
8095
8095
  });
8096
8096
  case "SET_PATH":
8097
- return _objectSpread$S(_objectSpread$S({}, state), {}, {
8097
+ return _objectSpread$T(_objectSpread$T({}, state), {}, {
8098
8098
  path: action.payload
8099
8099
  });
8100
8100
  case "SET_LAYOUT":
8101
- return _objectSpread$S(_objectSpread$S({}, state), {}, {
8101
+ return _objectSpread$T(_objectSpread$T({}, state), {}, {
8102
8102
  layout: action.payload
8103
8103
  });
8104
8104
  case "REORDER_WIDGETS":
8105
- return _objectSpread$S(_objectSpread$S({}, state), {}, {
8106
- layout: _objectSpread$S(_objectSpread$S({}, state.layout), {}, {
8105
+ return _objectSpread$T(_objectSpread$T({}, state), {}, {
8106
+ layout: _objectSpread$T(_objectSpread$T({}, state.layout), {}, {
8107
8107
  widgetOrder: action.payload
8108
8108
  })
8109
8109
  });
8110
8110
  case "SET_CUSTOMIZATION":
8111
- return _objectSpread$S(_objectSpread$S({}, state), {}, {
8112
- customization: _objectSpread$S(_objectSpread$S({}, state.customization), action.payload)
8111
+ return _objectSpread$T(_objectSpread$T({}, state), {}, {
8112
+ customization: _objectSpread$T(_objectSpread$T({}, state.customization), action.payload)
8113
8113
  });
8114
8114
  case "RESET":
8115
- return _objectSpread$S({}, initialState);
8115
+ return _objectSpread$T({}, initialState);
8116
8116
  default:
8117
8117
  return state;
8118
8118
  }
@@ -12922,8 +12922,8 @@ var _excluded$6 = ["rows", "cols"];
12922
12922
  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; } } }; }
12923
12923
  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; } }
12924
12924
  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; }
12925
- function ownKeys$R(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12926
- function _objectSpread$R(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$R(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$R(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12925
+ 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; }
12926
+ 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; }
12927
12927
  var defaultGrid = {
12928
12928
  rows: 1,
12929
12929
  cols: 1,
@@ -12944,7 +12944,7 @@ function GridEditor(_ref) {
12944
12944
  setGrid = _useState2[1];
12945
12945
  var addRow = function addRow() {
12946
12946
  var newRow = grid.rows;
12947
- var newGrid = _objectSpread$R(_objectSpread$R({}, grid), {}, {
12947
+ var newGrid = _objectSpread$S(_objectSpread$S({}, grid), {}, {
12948
12948
  rows: grid.rows + 1
12949
12949
  });
12950
12950
  for (var col = 0; col < grid.cols; col++) {
@@ -12959,7 +12959,7 @@ function GridEditor(_ref) {
12959
12959
  };
12960
12960
  var addColumn = function addColumn() {
12961
12961
  var newCol = grid.cols;
12962
- var newGrid = _objectSpread$R(_objectSpread$R({}, grid), {}, {
12962
+ var newGrid = _objectSpread$S(_objectSpread$S({}, grid), {}, {
12963
12963
  cols: grid.cols + 1
12964
12964
  });
12965
12965
  for (var row = 0; row < grid.rows; row++) {
@@ -12992,8 +12992,8 @@ function GridEditor(_ref) {
12992
12992
  });
12993
12993
  }
12994
12994
  if (grid[nextKey]) {
12995
- var newGrid = _objectSpread$R({}, grid);
12996
- newGrid[currentKey] = _objectSpread$R(_objectSpread$R({}, newGrid[currentKey]), {}, {
12995
+ var newGrid = _objectSpread$S({}, grid);
12996
+ newGrid[currentKey] = _objectSpread$S(_objectSpread$S({}, newGrid[currentKey]), {}, {
12997
12997
  colSpan: newGrid[currentKey].colSpan + 1
12998
12998
  });
12999
12999
  delete newGrid[nextKey];
@@ -13006,8 +13006,8 @@ function GridEditor(_ref) {
13006
13006
  var currentKey = "".concat(row, ".").concat(col);
13007
13007
  var belowKey = "".concat(row + 1, ".").concat(col);
13008
13008
  if (grid[belowKey]) {
13009
- var newGrid = _objectSpread$R({}, grid);
13010
- newGrid[currentKey] = _objectSpread$R(_objectSpread$R({}, newGrid[currentKey]), {}, {
13009
+ var newGrid = _objectSpread$S({}, grid);
13010
+ newGrid[currentKey] = _objectSpread$S(_objectSpread$S({}, newGrid[currentKey]), {}, {
13011
13011
  rowSpan: newGrid[currentKey].rowSpan + 1
13012
13012
  });
13013
13013
  delete newGrid[belowKey];
@@ -13024,7 +13024,7 @@ function GridEditor(_ref) {
13024
13024
  var splitCell = function splitCell(row, col) {
13025
13025
  var key = "".concat(row, ".").concat(col);
13026
13026
  var cell = grid[key];
13027
- var newGrid = _objectSpread$R({}, grid);
13027
+ var newGrid = _objectSpread$S({}, grid);
13028
13028
 
13029
13029
  // we have to check the colspan, and since the colspan is greater than 1
13030
13030
  // Only handle horizontal split if colSpan > 1
@@ -13040,13 +13040,13 @@ function GridEditor(_ref) {
13040
13040
  var oldKey = "".concat(row, ".").concat(c);
13041
13041
  var newKey = "".concat(row, ".").concat(c + 1);
13042
13042
  if (newGrid[oldKey]) {
13043
- newGrid[newKey] = _objectSpread$R({}, newGrid[oldKey]);
13043
+ newGrid[newKey] = _objectSpread$S({}, newGrid[oldKey]);
13044
13044
  delete newGrid[oldKey];
13045
13045
  }
13046
13046
  }
13047
13047
 
13048
13048
  // Update the original cell's colSpan
13049
- newGrid[key] = _objectSpread$R(_objectSpread$R({}, cell), {}, {
13049
+ newGrid[key] = _objectSpread$S(_objectSpread$S({}, cell), {}, {
13050
13050
  colSpan: cell.colSpan - 1
13051
13051
  });
13052
13052
 
@@ -13058,7 +13058,7 @@ function GridEditor(_ref) {
13058
13058
  };
13059
13059
  }
13060
13060
  if (cell.rowSpan > 1) {
13061
- newGrid[key] = _objectSpread$R(_objectSpread$R({}, newGrid[key]), {}, {
13061
+ newGrid[key] = _objectSpread$S(_objectSpread$S({}, newGrid[key]), {}, {
13062
13062
  rowSpan: cell.rowSpan - 1
13063
13063
  });
13064
13064
  newGrid["".concat(row + 1, ".").concat(col)] = {
@@ -13177,7 +13177,7 @@ function GridEditor(_ref) {
13177
13177
  var fromKey = "".concat(from.row, ".").concat(from.col);
13178
13178
  var toKey = "".concat(to.row, ".").concat(to.col);
13179
13179
  if (fromKey === toKey) return;
13180
- var newGrid = _objectSpread$R({}, grid);
13180
+ var newGrid = _objectSpread$S({}, grid);
13181
13181
 
13182
13182
  // Swap the cells
13183
13183
  var temp = newGrid[fromKey];
@@ -13203,7 +13203,7 @@ function GridEditor(_ref) {
13203
13203
  // console.log("Grid updated:", sequencedGrid);
13204
13204
  }
13205
13205
  function resetGridLayout() {
13206
- var newGrid = _objectSpread$R({}, defaultGrid);
13206
+ var newGrid = _objectSpread$S({}, defaultGrid);
13207
13207
  setGrid(newGrid);
13208
13208
  onUpdate(newGrid);
13209
13209
  }
@@ -13481,8 +13481,8 @@ var PanelEditItemGrid = function PanelEditItemGrid(_ref) {
13481
13481
  });
13482
13482
  };
13483
13483
 
13484
- 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; }
13485
- 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; }
13484
+ function ownKeys$R(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13485
+ function _objectSpread$R(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$R(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$R(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13486
13486
  var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
13487
13487
  var item = _ref.item;
13488
13488
  _ref.workspace;
@@ -13505,7 +13505,7 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
13505
13505
  }, [widgetUuid, notificationDefs.length]);
13506
13506
  function handleNotifToggle(typeKey, value) {
13507
13507
  var _window$mainApi2;
13508
- var updated = _objectSpread$Q(_objectSpread$Q({}, notifPrefs), {}, _defineProperty({}, typeKey, value));
13508
+ var updated = _objectSpread$R(_objectSpread$R({}, notifPrefs), {}, _defineProperty({}, typeKey, value));
13509
13509
  setNotifPrefs(updated);
13510
13510
  if ((_window$mainApi2 = window.mainApi) !== null && _window$mainApi2 !== void 0 && (_window$mainApi2 = _window$mainApi2.notifications) !== null && _window$mainApi2 !== void 0 && _window$mainApi2.setPreferences && widgetUuid) {
13511
13511
  window.mainApi.notifications.setPreferences(widgetUuid, _defineProperty({}, typeKey, value));
@@ -13550,8 +13550,8 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
13550
13550
  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; } } }; }
13551
13551
  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; } }
13552
13552
  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; }
13553
- function ownKeys$P(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13554
- function _objectSpread$P(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$P(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$P(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13553
+ 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; }
13554
+ 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; }
13555
13555
  var DAYS = [{
13556
13556
  key: "mon",
13557
13557
  label: "Mon"
@@ -13652,7 +13652,7 @@ function TaskScheduleEditor(_ref) {
13652
13652
  var _window$mainApi;
13653
13653
  var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
13654
13654
  if (!((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && (_window$mainApi = _window$mainApi.scheduler) !== null && _window$mainApi !== void 0 && _window$mainApi.registerTask)) return;
13655
- var payload = _objectSpread$P({
13655
+ var payload = _objectSpread$Q({
13656
13656
  widgetId: widgetId,
13657
13657
  widgetName: widgetName,
13658
13658
  workspaceId: workspaceId || "",
@@ -13927,6 +13927,25 @@ var PanelEditItemSchedule = function PanelEditItemSchedule(_ref2) {
13927
13927
  });
13928
13928
  };
13929
13929
 
13930
+ function ownKeys$P(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13931
+ function _objectSpread$P(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$P(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$P(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13932
+ var DERIVED_FIELDS = ["widgetConfig",
13933
+ // biggest offender — full component definition blob
13934
+ "uuid", "dashboardId", "parentWorkspaceName", "componentName", "siblingCount", "hasChildren", "canHaveChildren", "events",
13935
+ // declared by the widget's .dash.js, not editable per-item
13936
+ "eventHandlers"];
13937
+ function stripDerivedFields(item) {
13938
+ if (!item || _typeof(item) !== "object") return item;
13939
+ var out = {};
13940
+ for (var _i = 0, _Object$entries = Object.entries(item); _i < _Object$entries.length; _i++) {
13941
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
13942
+ k = _Object$entries$_i[0],
13943
+ v = _Object$entries$_i[1];
13944
+ if (DERIVED_FIELDS.includes(k)) continue;
13945
+ out[k] = v;
13946
+ }
13947
+ return out;
13948
+ }
13930
13949
  var PanelCode = function PanelCode(_ref) {
13931
13950
  var workspace = _ref.workspace,
13932
13951
  onUpdate = _ref.onUpdate,
@@ -13961,18 +13980,43 @@ var PanelCode = function PanelCode(_ref) {
13961
13980
  }
13962
13981
  // eslint-disable-next-line react-hooks/exhaustive-deps
13963
13982
  }, [workspace, item]);
13983
+ var displayJson = useMemo(function () {
13984
+ if (!itemSelected) return "";
13985
+ return JSON.stringify(stripDerivedFields(itemSelected), null, 2);
13986
+ }, [itemSelected]);
13964
13987
  function handleCodeChange(code) {
13965
- var itemToSave = JSON.parse(code);
13966
- onUpdate(itemToSave, workspaceSelected);
13988
+ try {
13989
+ var edited = JSON.parse(code);
13990
+ // Preserve the derived fields from the live item so save +
13991
+ // re-render stays in sync with what the rest of the layout
13992
+ // expects. LayoutModel re-derives these on reload, but losing
13993
+ // them between render cycles can cause flashes of "unknown
13994
+ // widget" state.
13995
+ var merged = _objectSpread$P({}, itemSelected);
13996
+ for (var _i2 = 0, _Object$keys = Object.keys(edited); _i2 < _Object$keys.length; _i2++) {
13997
+ var k = _Object$keys[_i2];
13998
+ merged[k] = edited[k];
13999
+ }
14000
+ onUpdate(merged, workspaceSelected);
14001
+ } catch (_unused) {
14002
+ // Malformed JSON — leave state alone; the editor keeps the
14003
+ // user's text so they can fix it.
14004
+ }
13967
14005
  }
13968
14006
  return itemSelected && workspaceSelected && /*#__PURE__*/jsx("div", {
13969
14007
  className: "flex flex-col flex-1 min-h-0",
13970
14008
  children: /*#__PURE__*/jsx("div", {
13971
- className: "flex-1 min-h-0 overflow-hidden",
13972
- children: /*#__PURE__*/jsx(CodeEditorInline, {
13973
- code: JSON.stringify(itemSelected, null, 2),
13974
- className: "h-full",
13975
- setCode: handleCodeChange
14009
+ className: "flex-1 min-h-0 overflow-hidden relative",
14010
+ children: /*#__PURE__*/jsx("div", {
14011
+ className: "absolute inset-0",
14012
+ children: /*#__PURE__*/jsx(CodeEditorVS, {
14013
+ code: displayJson,
14014
+ language: "json",
14015
+ onChange: handleCodeChange,
14016
+ readOnly: false,
14017
+ minimapEnabled: false,
14018
+ padding: "p-0"
14019
+ })
13976
14020
  })
13977
14021
  })
13978
14022
  });
@@ -14273,10 +14317,22 @@ var PanelEditItemHandlers = function PanelEditItemHandlers(_ref) {
14273
14317
  });
14274
14318
  };
14275
14319
 
14320
+ /**
14321
+ * Return the subset of provider declarations that are user-configurable
14322
+ * (anything except `providerClass: "api"`, which is satisfied by the
14323
+ * app itself and not picked per widget).
14324
+ *
14325
+ * Tolerates malformed input: if the array contains `null`/`undefined`
14326
+ * slots (occasionally seen after a widget install where the registry
14327
+ * ships a sparse `providers` array), those entries are dropped instead
14328
+ * of crashing the whole renderer. Without the null-guard, any caller
14329
+ * inside a React `useMemo` (e.g. WidgetsSection's `uniqueProviders`)
14330
+ * throws at mount and takes the Settings → Widgets pane down with it.
14331
+ */
14276
14332
  var getUserConfigurableProviders = function getUserConfigurableProviders(providers) {
14277
- if (!providers) return [];
14333
+ if (!Array.isArray(providers)) return [];
14278
14334
  return providers.filter(function (p) {
14279
- return p.providerClass !== "api";
14335
+ return p && p.providerClass !== "api";
14280
14336
  });
14281
14337
  };
14282
14338
 
@@ -14508,6 +14564,39 @@ var LayoutBuilderConfigModal = function LayoutBuilderConfigModal(_ref) {
14508
14564
  var activeDef = sections.find(function (s) {
14509
14565
  return s.key === activeSection;
14510
14566
  }) || sections[0];
14567
+
14568
+ // Scope/package label for the footer so the user can tell which
14569
+ // package a widget comes from (ambiguous component names like
14570
+ // `ProspectListColumn` can live under either `@ai-built/…` or
14571
+ // `@trops/pipeline`). Same derivation order as WidgetCardHeader:
14572
+ // widget config id → widget config package → layout item workspace.
14573
+ var footerPackageLabel = function () {
14574
+ if (!itemSelected) return "";
14575
+ var cfg = ComponentManager.config(itemSelected.component, itemSelected);
14576
+ var dropTrailingComponent = function dropTrailingComponent(s) {
14577
+ if (typeof s !== "string") return "";
14578
+ var lastDot = s.lastIndexOf(".");
14579
+ return lastDot > 0 ? s.slice(0, lastDot) : s;
14580
+ };
14581
+ var fromId = dropTrailingComponent((cfg === null || cfg === void 0 ? void 0 : cfg.id) || "");
14582
+ if (fromId) return fromId;
14583
+ if (cfg !== null && cfg !== void 0 && cfg["package"]) return String(cfg["package"]);
14584
+ var ws = itemSelected.workspace;
14585
+ if (typeof ws === "string" && ws && ws !== "layout") {
14586
+ return ws.startsWith("@") ? ws : "@".concat(ws);
14587
+ }
14588
+ return "";
14589
+ }();
14590
+ var componentName = itemSelected ? itemSelected["component"] : "";
14591
+ var footerLeftContent = footerPackageLabel ? /*#__PURE__*/jsxs("span", {
14592
+ className: "flex flex-col leading-tight",
14593
+ children: [/*#__PURE__*/jsx("span", {
14594
+ children: componentName
14595
+ }), /*#__PURE__*/jsx("span", {
14596
+ className: "text-[10px] opacity-50",
14597
+ children: footerPackageLabel
14598
+ })]
14599
+ }) : componentName;
14511
14600
  return itemSelected !== null && /*#__PURE__*/jsxs(SettingsModal, {
14512
14601
  isOpen: open,
14513
14602
  setIsOpen: setIsOpen,
@@ -14570,7 +14659,7 @@ var LayoutBuilderConfigModal = function LayoutBuilderConfigModal(_ref) {
14570
14659
  workspace: workspaceSelected
14571
14660
  })]
14572
14661
  }), /*#__PURE__*/jsxs(SettingsModal.Footer, {
14573
- leftContent: itemSelected["component"],
14662
+ leftContent: footerLeftContent,
14574
14663
  children: [/*#__PURE__*/jsx(Button, {
14575
14664
  title: "Cancel",
14576
14665
  onClick: function onClick() {
@@ -20756,7 +20845,8 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
20756
20845
  try {
20757
20846
  var hasChildren = config.type === "workspace";
20758
20847
  var newLayout = addItemToItemLayout(ws.layout, gridItem.id, _objectSpread$I(_objectSpread$I({}, config), {}, {
20759
- component: widgetComponentName
20848
+ component: widgetComponentName,
20849
+ packageId: config._sourcePackage || config.packageId || null
20760
20850
  }), hasChildren);
20761
20851
  var newWidgetId = newLayout[newLayout.length - 1].id;
20762
20852
  var updatedGrid = newLayout.find(function (item) {
@@ -20800,7 +20890,11 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
20800
20890
  try {
20801
20891
  var newLayout = updateLayoutItem(ws.layout, {
20802
20892
  id: widgetId,
20803
- component: widgetComponentName
20893
+ component: widgetComponentName,
20894
+ // Stamp the replacement's source package onto the item so
20895
+ // publish-time attribution routes to the new package, not
20896
+ // whatever the item was previously carrying.
20897
+ packageId: config._sourcePackage || config.packageId || null
20804
20898
  });
20805
20899
  if (!newLayout) {
20806
20900
  return;
@@ -20909,13 +21003,11 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
20909
21003
  try {
20910
21004
  var dashboard = new DashboardModel(currentWorkspace);
20911
21005
  dashboard.removeItemFromLayout(id);
20912
- setCurrentWorkspace(dashboard.workspace());
20913
-
20914
- // const layout = currentWorkspace["layout"];
20915
- // const newLayout = removeItemFromLayout(layout, id);
20916
- // const newWorkspace = JSON.parse(JSON.stringify(currentWorkspace));
20917
- // newWorkspace["layout"] = newLayout;
20918
- // setCurrentWorkspace(newWorkspace);
21006
+ var nextWorkspace = dashboard.workspace();
21007
+ setCurrentWorkspace(nextWorkspace);
21008
+ if (typeof onWorkspaceChangeRef.current === "function") {
21009
+ onWorkspaceChangeRef.current(nextWorkspace);
21010
+ }
20919
21011
  } catch (e) {
20920
21012
  }
20921
21013
  }
@@ -21327,7 +21419,8 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
21327
21419
  if (!config) return;
21328
21420
  var widgetItem = _objectSpread$I(_objectSpread$I({}, config), {}, {
21329
21421
  component: widgetKey,
21330
- key: widgetKey
21422
+ key: widgetKey,
21423
+ packageId: config._sourcePackage || config.packageId || null
21331
21424
  });
21332
21425
 
21333
21426
  // Remove old widget from layout if the target cell is already occupied
@@ -21359,6 +21452,9 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
21359
21452
  var newWorkspace = JSON.parse(JSON.stringify(_workspace));
21360
21453
  newWorkspace["layout"] = newLayout;
21361
21454
  setCurrentWorkspace(newWorkspace);
21455
+ if (typeof onWorkspaceChangeRef.current === "function") {
21456
+ onWorkspaceChangeRef.current(newWorkspace);
21457
+ }
21362
21458
  } catch (e) {
21363
21459
  }
21364
21460
  }
@@ -21368,6 +21464,9 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
21368
21464
  dashboard.moveWidgetToCell(gridContainerId, sourceCellNumber, targetCellNumber);
21369
21465
  var newWorkspace = dashboard.workspace();
21370
21466
  setCurrentWorkspace(newWorkspace);
21467
+ if (typeof onWorkspaceChangeRef.current === "function") {
21468
+ onWorkspaceChangeRef.current(newWorkspace);
21469
+ }
21371
21470
  } catch (e) {
21372
21471
  }
21373
21472
  }
@@ -27579,6 +27678,17 @@ var LayoutModel = function LayoutModel(layoutItem, workspaceLayout, dashboardId)
27579
27678
  // Preserve provider selections for this widget
27580
27679
  layout.selectedProviders = "selectedProviders" in obj ? obj.selectedProviders : {};
27581
27680
 
27681
+ // Record the exact source package id (e.g. "@ai-built/pipeline")
27682
+ // from which this widget instance was added. Used by the publish
27683
+ // flow to attribute the widget to the correct package without
27684
+ // guessing when multiple installed packages declare the same
27685
+ // component name. Back-compat: read `_sourcePackage` (set by
27686
+ // dash-electron's widget registration) if `packageId` is missing.
27687
+ // Legacy layout items (added before this field existed) carry
27688
+ // neither — those still go through the ranking heuristic in
27689
+ // buildWidgetDependencies as a fallback.
27690
+ layout.packageId = "packageId" in obj ? obj["packageId"] : obj._sourcePackage ? obj._sourcePackage : null;
27691
+
27582
27692
  /**
27583
27693
  * @param {Object} grid Grid layout configuration
27584
27694
  * Structure: {
@@ -54968,6 +55078,139 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
54968
55078
  return b.required && !b.resolvedProviderName;
54969
55079
  }).length;
54970
55080
 
55081
+ // Dependencies tab data — groups every widget instance in the
55082
+ // workspace by the package it belongs to, so the user can audit
55083
+ // which packages the dashboard actually references (and see which
55084
+ // pages/sidebar hold each instance). Matches the same derivation
55085
+ // order we use in WidgetCardHeader / LayoutBuilderConfigModal's
55086
+ // footer so the same package label shows in every surface.
55087
+ var dependencies = useMemo(function () {
55088
+ var byPackage = new Map();
55089
+ var stripTrailingComponent = function stripTrailingComponent(s) {
55090
+ if (typeof s !== "string") return "";
55091
+ var lastDot = s.lastIndexOf(".");
55092
+ return lastDot > 0 ? s.slice(0, lastDot) : s;
55093
+ };
55094
+ var derivePackage = function derivePackage(item) {
55095
+ // The layout item records the exact source package id when the
55096
+ // widget was added. If present, trust it — no heuristics. This
55097
+ // matches the publish flow's attribution, so the Dependencies
55098
+ // tab and the Publish modal always agree.
55099
+ if (item !== null && item !== void 0 && item.packageId) return String(item.packageId);
55100
+ var cfg = typeof getWidgetConfig === "function" ? getWidgetConfig(item.component) : null;
55101
+ if (cfg !== null && cfg !== void 0 && cfg._sourcePackage) return String(cfg._sourcePackage);
55102
+ var fromId = stripTrailingComponent((cfg === null || cfg === void 0 ? void 0 : cfg.id) || "");
55103
+ if (fromId) return fromId;
55104
+ if (cfg !== null && cfg !== void 0 && cfg["package"]) return String(cfg["package"]);
55105
+ var ws = item === null || item === void 0 ? void 0 : item.workspace;
55106
+ if (typeof ws === "string" && ws && ws !== "layout") {
55107
+ return ws.startsWith("@") ? ws : "@".concat(ws);
55108
+ }
55109
+ return "(unknown)";
55110
+ };
55111
+
55112
+ // Tag each visit with its location so we can show users exactly
55113
+ // where in the tree a package is referenced. forEachWidget walks
55114
+ // the standard places but doesn't surface which one — so we do a
55115
+ // lightweight parallel walk and annotate.
55116
+ var annotatedWalks = [];
55117
+ if (Array.isArray(workspace === null || workspace === void 0 ? void 0 : workspace.layout)) {
55118
+ annotatedWalks.push({
55119
+ location: "root",
55120
+ layout: workspace.layout
55121
+ });
55122
+ }
55123
+ if (Array.isArray(workspace === null || workspace === void 0 ? void 0 : workspace.pages)) {
55124
+ var _iterator2 = _createForOfIteratorHelper$4(workspace.pages),
55125
+ _step2;
55126
+ try {
55127
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
55128
+ var page = _step2.value;
55129
+ if (Array.isArray(page === null || page === void 0 ? void 0 : page.layout)) {
55130
+ annotatedWalks.push({
55131
+ location: "page: ".concat(page.name || page.id || "?"),
55132
+ layout: page.layout
55133
+ });
55134
+ }
55135
+ }
55136
+ } catch (err) {
55137
+ _iterator2.e(err);
55138
+ } finally {
55139
+ _iterator2.f();
55140
+ }
55141
+ }
55142
+ if (Array.isArray(workspace === null || workspace === void 0 ? void 0 : workspace.sidebarLayout)) {
55143
+ annotatedWalks.push({
55144
+ location: "sidebar",
55145
+ layout: workspace.sidebarLayout
55146
+ });
55147
+ }
55148
+ var visitedByLocation = new WeakSet();
55149
+ var _collect = function collect(items, location) {
55150
+ if (!Array.isArray(items)) return;
55151
+ var _iterator3 = _createForOfIteratorHelper$4(items),
55152
+ _step3;
55153
+ try {
55154
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
55155
+ var item = _step3.value;
55156
+ if (!item || _typeof(item) !== "object") continue;
55157
+ if (item.component && !visitedByLocation.has(item)) {
55158
+ visitedByLocation.add(item);
55159
+ // Ignore layout containers — they're not widgets.
55160
+ if (item.component !== "Container" && item.component !== "LayoutGridContainer") {
55161
+ var pkg = derivePackage(item);
55162
+ if (!byPackage.has(pkg)) {
55163
+ byPackage.set(pkg, {
55164
+ packageLabel: pkg,
55165
+ components: new Map(),
55166
+ locations: new Set(),
55167
+ total: 0
55168
+ });
55169
+ }
55170
+ var entry = byPackage.get(pkg);
55171
+ entry.total += 1;
55172
+ entry.locations.add(location);
55173
+ var cKey = item.component;
55174
+ entry.components.set(cKey, (entry.components.get(cKey) || 0) + 1);
55175
+ }
55176
+ }
55177
+ if (Array.isArray(item.items)) _collect(item.items, location);
55178
+ if (Array.isArray(item.layout)) _collect(item.layout, location);
55179
+ }
55180
+ } catch (err) {
55181
+ _iterator3.e(err);
55182
+ } finally {
55183
+ _iterator3.f();
55184
+ }
55185
+ };
55186
+ for (var _i2 = 0, _annotatedWalks = annotatedWalks; _i2 < _annotatedWalks.length; _i2++) {
55187
+ var w = _annotatedWalks[_i2];
55188
+ _collect(w.layout, w.location);
55189
+ }
55190
+ return Array.from(byPackage.values()).map(function (e) {
55191
+ return _objectSpread$8(_objectSpread$8({}, e), {}, {
55192
+ components: Array.from(e.components.entries()).map(function (_ref2) {
55193
+ var _ref3 = _slicedToArray(_ref2, 2),
55194
+ component = _ref3[0],
55195
+ count = _ref3[1];
55196
+ return {
55197
+ component: component,
55198
+ count: count
55199
+ };
55200
+ }),
55201
+ locations: Array.from(e.locations)
55202
+ });
55203
+ }).sort(function (a, b) {
55204
+ return a.packageLabel.localeCompare(b.packageLabel);
55205
+ });
55206
+ }, [workspace, getWidgetConfig]);
55207
+ var dependencyCount = dependencies.length;
55208
+ // Second pass used for the badge when the user has an `(unknown)`
55209
+ // bucket — usually a sign of a stale reference they want to clean up.
55210
+ var hasUnknownDependency = dependencies.some(function (d) {
55211
+ return d.packageLabel === "(unknown)";
55212
+ });
55213
+
54971
55214
  // Listeners tab data — emitter list, receiver list, current wiring,
54972
55215
  // orphans. All recompute when the workspace or staged delta changes
54973
55216
  // so the UI reflects pending edits without saving first.
@@ -55003,11 +55246,11 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
55003
55246
  }
55004
55247
  if (stagedListeners.adds.length > 0) {
55005
55248
  // Append; avoid duplicates against current state.
55006
- var _iterator2 = _createForOfIteratorHelper$4(stagedListeners.adds),
55007
- _step2;
55249
+ var _iterator4 = _createForOfIteratorHelper$4(stagedListeners.adds),
55250
+ _step4;
55008
55251
  try {
55009
55252
  var _loop = function _loop() {
55010
- var a = _step2.value;
55253
+ var a = _step4.value;
55011
55254
  if (!next.some(function (w) {
55012
55255
  return sameWiringEntry(w, a);
55013
55256
  })) {
@@ -55016,28 +55259,28 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
55016
55259
  })]);
55017
55260
  }
55018
55261
  };
55019
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
55262
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
55020
55263
  _loop();
55021
55264
  }
55022
55265
  } catch (err) {
55023
- _iterator2.e(err);
55266
+ _iterator4.e(err);
55024
55267
  } finally {
55025
- _iterator2.f();
55268
+ _iterator4.f();
55026
55269
  }
55027
55270
  }
55028
55271
  if (orphans.length === 0) return next;
55029
55272
  var orphanIndex = new Map();
55030
- var _iterator3 = _createForOfIteratorHelper$4(orphans),
55031
- _step3;
55273
+ var _iterator5 = _createForOfIteratorHelper$4(orphans),
55274
+ _step5;
55032
55275
  try {
55033
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
55034
- var o = _step3.value;
55276
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
55277
+ var o = _step5.value;
55035
55278
  orphanIndex.set("".concat(o.receiverItemId, "|").concat(o.handlerName, "|").concat(o.sourceComponent, "|").concat(o.sourceItemId, "|").concat(o.eventName), o.reason);
55036
55279
  }
55037
55280
  } catch (err) {
55038
- _iterator3.e(err);
55281
+ _iterator5.e(err);
55039
55282
  } finally {
55040
- _iterator3.f();
55283
+ _iterator5.f();
55041
55284
  }
55042
55285
  return next.map(function (w) {
55043
55286
  var key = "".concat(w.receiverItemId, "|").concat(w.handlerName, "|").concat(w.sourceComponent, "|").concat(w.sourceItemId, "|").concat(w.eventName);
@@ -55069,17 +55312,17 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
55069
55312
  function stagePrefFieldForAll(targetWidgets, key, value) {
55070
55313
  setStagedPrefs(function (prev) {
55071
55314
  var next = _objectSpread$8({}, prev);
55072
- var _iterator4 = _createForOfIteratorHelper$4(targetWidgets),
55073
- _step4;
55315
+ var _iterator6 = _createForOfIteratorHelper$4(targetWidgets),
55316
+ _step6;
55074
55317
  try {
55075
- for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
55076
- var w = _step4.value;
55318
+ for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
55319
+ var w = _step6.value;
55077
55320
  next[w.id] = _objectSpread$8(_objectSpread$8({}, next[w.id] || {}), {}, _defineProperty({}, key, value));
55078
55321
  }
55079
55322
  } catch (err) {
55080
- _iterator4.e(err);
55323
+ _iterator6.e(err);
55081
55324
  } finally {
55082
- _iterator4.f();
55325
+ _iterator6.f();
55083
55326
  }
55084
55327
  return next;
55085
55328
  });
@@ -55103,18 +55346,18 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
55103
55346
  });
55104
55347
  setStaged(function (prev) {
55105
55348
  var next = _objectSpread$8({}, prev);
55106
- var _iterator5 = _createForOfIteratorHelper$4(affected),
55107
- _step5;
55349
+ var _iterator7 = _createForOfIteratorHelper$4(affected),
55350
+ _step7;
55108
55351
  try {
55109
- for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
55110
- var b = _step5.value;
55352
+ for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
55353
+ var b = _step7.value;
55111
55354
  if (!b.widgetId) continue;
55112
55355
  next[b.widgetId] = _objectSpread$8(_objectSpread$8({}, next[b.widgetId] || {}), {}, _defineProperty({}, providerType, providerName || ""));
55113
55356
  }
55114
55357
  } catch (err) {
55115
- _iterator5.e(err);
55358
+ _iterator7.e(err);
55116
55359
  } finally {
55117
- _iterator5.f();
55360
+ _iterator7.f();
55118
55361
  }
55119
55362
  return next;
55120
55363
  });
@@ -55172,12 +55415,12 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
55172
55415
  function handleSave() {
55173
55416
  // Provider changes
55174
55417
  var providerChanges = [];
55175
- for (var _i2 = 0, _Object$entries2 = Object.entries(staged); _i2 < _Object$entries2.length; _i2++) {
55176
- var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i2], 2),
55418
+ for (var _i3 = 0, _Object$entries2 = Object.entries(staged); _i3 < _Object$entries2.length; _i3++) {
55419
+ var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i3], 2),
55177
55420
  widgetId = _Object$entries2$_i[0],
55178
55421
  byType = _Object$entries2$_i[1];
55179
- for (var _i3 = 0, _Object$entries3 = Object.entries(byType); _i3 < _Object$entries3.length; _i3++) {
55180
- var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i3], 2),
55422
+ for (var _i4 = 0, _Object$entries3 = Object.entries(byType); _i4 < _Object$entries3.length; _i4++) {
55423
+ var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i4], 2),
55181
55424
  providerType = _Object$entries3$_i[0],
55182
55425
  providerName = _Object$entries3$_i[1];
55183
55426
  providerChanges.push({
@@ -55198,12 +55441,12 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
55198
55441
 
55199
55442
  // Widget userPrefs changes (Widgets tab)
55200
55443
  var prefChanges = [];
55201
- for (var _i4 = 0, _Object$entries4 = Object.entries(stagedPrefs); _i4 < _Object$entries4.length; _i4++) {
55202
- var _Object$entries4$_i = _slicedToArray(_Object$entries4[_i4], 2),
55444
+ for (var _i5 = 0, _Object$entries4 = Object.entries(stagedPrefs); _i5 < _Object$entries4.length; _i5++) {
55445
+ var _Object$entries4$_i = _slicedToArray(_Object$entries4[_i5], 2),
55203
55446
  _widgetId = _Object$entries4$_i[0],
55204
55447
  fields = _Object$entries4$_i[1];
55205
- for (var _i5 = 0, _Object$entries5 = Object.entries(fields); _i5 < _Object$entries5.length; _i5++) {
55206
- var _Object$entries5$_i = _slicedToArray(_Object$entries5[_i5], 2),
55448
+ for (var _i6 = 0, _Object$entries5 = Object.entries(fields); _i6 < _Object$entries5.length; _i6++) {
55449
+ var _Object$entries5$_i = _slicedToArray(_Object$entries5[_i6], 2),
55207
55450
  key = _Object$entries5$_i[0],
55208
55451
  value = _Object$entries5$_i[1];
55209
55452
  prefChanges.push({
@@ -55289,6 +55532,18 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
55289
55532
  },
55290
55533
  className: "px-3 py-1.5 text-sm font-medium -mb-px border-b-2 ".concat(activeTab === "widgets" ? "border-indigo-400" : "border-transparent opacity-60 hover:opacity-100"),
55291
55534
  children: "Widgets"
55535
+ }), /*#__PURE__*/jsxs("button", {
55536
+ type: "button",
55537
+ onClick: function onClick() {
55538
+ return setActiveTab("dependencies");
55539
+ },
55540
+ className: "px-3 py-1.5 text-sm font-medium -mb-px border-b-2 ".concat(activeTab === "dependencies" ? "border-indigo-400" : "border-transparent opacity-60 hover:opacity-100"),
55541
+ children: ["Dependencies", dependencyCount > 0 && /*#__PURE__*/jsxs("span", {
55542
+ className: "ml-2 text-[10px] opacity-60",
55543
+ children: ["(", dependencyCount, ")"]
55544
+ }), hasUnknownDependency && /*#__PURE__*/jsx("span", {
55545
+ className: "ml-1 inline-block h-1.5 w-1.5 rounded-full bg-amber-400 align-middle"
55546
+ })]
55292
55547
  })]
55293
55548
  }), /*#__PURE__*/jsxs("div", {
55294
55549
  className: "flex-1 min-h-0 ".concat(activeTab === "widgets" ? "" : "p-5"),
@@ -55309,6 +55564,8 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
55309
55564
  stagedPrefs: stagedPrefs,
55310
55565
  stagePrefField: stagePrefField,
55311
55566
  stagePrefFieldForAll: stagePrefFieldForAll
55567
+ }), activeTab === "dependencies" && /*#__PURE__*/jsx(DependenciesTab, {
55568
+ dependencies: dependencies
55312
55569
  })]
55313
55570
  }), /*#__PURE__*/jsxs("div", {
55314
55571
  className: "flex-shrink-0 flex flex-row justify-end gap-2 p-4 border-t border-white/10",
@@ -55331,12 +55588,12 @@ var DashboardConfigModal = function DashboardConfigModal(_ref) {
55331
55588
  * dot per-type when any widget of that type is unresolved). Column 2
55332
55589
  * shows the selected type's bulk dropdown + per-widget dropdowns.
55333
55590
  */
55334
- function ProvidersTab(_ref2) {
55591
+ function ProvidersTab(_ref4) {
55335
55592
  var _typeEntries$, _selectedRows$;
55336
- var grouped = _ref2.grouped,
55337
- providersByType = _ref2.providersByType,
55338
- onBulk = _ref2.onBulk,
55339
- onPerWidget = _ref2.onPerWidget;
55593
+ var grouped = _ref4.grouped,
55594
+ providersByType = _ref4.providersByType,
55595
+ onBulk = _ref4.onBulk,
55596
+ onPerWidget = _ref4.onPerWidget;
55340
55597
  var typeEntries = useMemo(function () {
55341
55598
  return Array.from(grouped.entries());
55342
55599
  }, [grouped]);
@@ -55373,10 +55630,10 @@ function ProvidersTab(_ref2) {
55373
55630
  children: "Provider Types"
55374
55631
  }), /*#__PURE__*/jsx("div", {
55375
55632
  className: "overflow-y-auto flex-1",
55376
- children: typeEntries.map(function (_ref3) {
55377
- var _ref4 = _slicedToArray(_ref3, 2),
55378
- providerType = _ref4[0],
55379
- rows = _ref4[1];
55633
+ children: typeEntries.map(function (_ref5) {
55634
+ var _ref6 = _slicedToArray(_ref5, 2),
55635
+ providerType = _ref6[0],
55636
+ rows = _ref6[1];
55380
55637
  var isActive = selectedType === providerType;
55381
55638
  var unresolvedHere = rows.filter(function (r) {
55382
55639
  return r.required && !r.resolvedProviderName;
@@ -55512,6 +55769,73 @@ function ProvidersTab(_ref2) {
55512
55769
  });
55513
55770
  }
55514
55771
 
55772
+ // ─── Dependencies tab ──────────────────────────────────────────────────────
55773
+
55774
+ /**
55775
+ * Read-only breakdown of every widget package referenced by the
55776
+ * workspace. Same source of truth as the dashboard publish plan (it
55777
+ * walks layout + pages + sidebar + nested LayoutGridContainer items),
55778
+ * surfaced earlier in the authoring flow so the user can verify which
55779
+ * packages the dashboard actually pulls in — and catch stale references
55780
+ * before hitting the Publish modal.
55781
+ *
55782
+ * `(unknown)` buckets mean a component we couldn't map back to a
55783
+ * package (no `config.id` / `config.package` / item.workspace hint).
55784
+ * Usually this is a stale layout item whose widget got uninstalled.
55785
+ */
55786
+ function DependenciesTab(_ref8) {
55787
+ var dependencies = _ref8.dependencies;
55788
+ if (!dependencies || dependencies.length === 0) {
55789
+ return /*#__PURE__*/jsx("div", {
55790
+ className: "flex items-center justify-center h-full text-sm opacity-60 text-center",
55791
+ children: /*#__PURE__*/jsx("div", {
55792
+ children: "No widget packages referenced by this dashboard."
55793
+ })
55794
+ });
55795
+ }
55796
+ return /*#__PURE__*/jsxs("div", {
55797
+ className: "flex flex-col h-full min-h-0 overflow-y-auto gap-3",
55798
+ children: [/*#__PURE__*/jsx("div", {
55799
+ className: "text-xs opacity-60",
55800
+ children: "Every widget instance in this workspace, grouped by the package it belongs to. Locations show where each package is referenced."
55801
+ }), dependencies.map(function (dep) {
55802
+ var isUnknown = dep.packageLabel === "(unknown)";
55803
+ return /*#__PURE__*/jsxs("div", {
55804
+ className: "border rounded-lg px-4 py-3 ".concat(isUnknown ? "bg-amber-900/10 border-amber-700/40" : "bg-white/5 border-white/10"),
55805
+ children: [/*#__PURE__*/jsxs("div", {
55806
+ className: "flex items-center gap-2 flex-wrap",
55807
+ children: [/*#__PURE__*/jsx("code", {
55808
+ className: "text-sm font-semibold ".concat(isUnknown ? "text-amber-200" : ""),
55809
+ children: dep.packageLabel
55810
+ }), /*#__PURE__*/jsxs("span", {
55811
+ className: "text-xs opacity-60",
55812
+ children: [dep.total, " instance", dep.total === 1 ? "" : "s"]
55813
+ }), isUnknown && /*#__PURE__*/jsx("span", {
55814
+ className: "text-[10px] text-amber-300 uppercase tracking-wide",
55815
+ children: "no package mapping"
55816
+ })]
55817
+ }), /*#__PURE__*/jsxs("div", {
55818
+ className: "mt-2 text-xs opacity-70",
55819
+ children: [/*#__PURE__*/jsxs("div", {
55820
+ children: [/*#__PURE__*/jsx("span", {
55821
+ className: "opacity-60 mr-1",
55822
+ children: "Widgets:"
55823
+ }), dep.components.map(function (c) {
55824
+ return "".concat(c.component).concat(c.count > 1 ? " \xD7".concat(c.count) : "");
55825
+ }).join(", ")]
55826
+ }), /*#__PURE__*/jsxs("div", {
55827
+ className: "mt-1",
55828
+ children: [/*#__PURE__*/jsx("span", {
55829
+ className: "opacity-60 mr-1",
55830
+ children: "Locations:"
55831
+ }), dep.locations.join(", ")]
55832
+ })]
55833
+ })]
55834
+ }, dep.packageLabel);
55835
+ })]
55836
+ });
55837
+ }
55838
+
55515
55839
  // ─── Listeners tab ──────────────────────────────────────────────────────────
55516
55840
 
55517
55841
  /**
@@ -55533,13 +55857,13 @@ function sameWiringEntry(a, b) {
55533
55857
  * adjusts wiring per handler from a single dropdown of all emitters'
55534
55858
  * (widget × event) pairs.
55535
55859
  */
55536
- function ListenersTab(_ref6) {
55860
+ function ListenersTab(_ref9) {
55537
55861
  var _receivers$;
55538
- var emitters = _ref6.emitters,
55539
- receivers = _ref6.receivers,
55540
- wiring = _ref6.wiring,
55541
- onAdd = _ref6.onAdd,
55542
- onRemove = _ref6.onRemove;
55862
+ var emitters = _ref9.emitters,
55863
+ receivers = _ref9.receivers,
55864
+ wiring = _ref9.wiring,
55865
+ onAdd = _ref9.onAdd,
55866
+ onRemove = _ref9.onRemove;
55543
55867
  var _useState11 = useState(((_receivers$ = receivers[0]) === null || _receivers$ === void 0 ? void 0 : _receivers$.key) || null),
55544
55868
  _useState12 = _slicedToArray(_useState11, 2),
55545
55869
  selectedReceiverKey = _useState12[0],
@@ -55563,17 +55887,17 @@ function ListenersTab(_ref6) {
55563
55887
  // Receiver lookup (by composite key) for label resolution in chips.
55564
55888
  var receiverByKey = useMemo(function () {
55565
55889
  var m = new Map();
55566
- var _iterator6 = _createForOfIteratorHelper$4(receivers),
55567
- _step6;
55890
+ var _iterator8 = _createForOfIteratorHelper$4(receivers),
55891
+ _step8;
55568
55892
  try {
55569
- for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
55570
- var r = _step6.value;
55893
+ for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
55894
+ var r = _step8.value;
55571
55895
  m.set(r.key, r);
55572
55896
  }
55573
55897
  } catch (err) {
55574
- _iterator6.e(err);
55898
+ _iterator8.e(err);
55575
55899
  } finally {
55576
- _iterator6.f();
55900
+ _iterator8.f();
55577
55901
  }
55578
55902
  return m;
55579
55903
  }, [receivers]);
@@ -55647,24 +55971,24 @@ function ListenersTab(_ref6) {
55647
55971
  * third column. Matches the left-column look from
55648
55972
  * PanelEditItemHandlers.
55649
55973
  */
55650
- function HandlersColumn(_ref8) {
55651
- var receiver = _ref8.receiver,
55652
- myWiring = _ref8.myWiring,
55653
- selectedHandler = _ref8.selectedHandler,
55654
- onSelectHandler = _ref8.onSelectHandler;
55974
+ function HandlersColumn(_ref1) {
55975
+ var receiver = _ref1.receiver,
55976
+ myWiring = _ref1.myWiring,
55977
+ selectedHandler = _ref1.selectedHandler,
55978
+ onSelectHandler = _ref1.onSelectHandler;
55655
55979
  var countsByHandler = useMemo(function () {
55656
55980
  var m = new Map();
55657
- var _iterator7 = _createForOfIteratorHelper$4(myWiring),
55658
- _step7;
55981
+ var _iterator9 = _createForOfIteratorHelper$4(myWiring),
55982
+ _step9;
55659
55983
  try {
55660
- for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
55661
- var w = _step7.value;
55984
+ for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
55985
+ var w = _step9.value;
55662
55986
  m.set(w.handlerName, (m.get(w.handlerName) || 0) + 1);
55663
55987
  }
55664
55988
  } catch (err) {
55665
- _iterator7.e(err);
55989
+ _iterator9.e(err);
55666
55990
  } finally {
55667
- _iterator7.f();
55991
+ _iterator9.f();
55668
55992
  }
55669
55993
  return m;
55670
55994
  }, [myWiring]);
@@ -55712,23 +56036,23 @@ function HandlersColumn(_ref8) {
55712
56036
  * Checked = wired; toggling commits an add/remove. Mirrors the
55713
56037
  * right-column UX of PanelEditItemHandlers.
55714
56038
  */
55715
- function EventsColumn(_ref9) {
55716
- var receiver = _ref9.receiver,
55717
- handlerName = _ref9.handlerName,
55718
- myWiring = _ref9.myWiring,
55719
- emitters = _ref9.emitters,
55720
- onAdd = _ref9.onAdd,
55721
- onRemove = _ref9.onRemove;
56039
+ function EventsColumn(_ref10) {
56040
+ var receiver = _ref10.receiver,
56041
+ handlerName = _ref10.handlerName,
56042
+ myWiring = _ref10.myWiring,
56043
+ emitters = _ref10.emitters,
56044
+ onAdd = _ref10.onAdd,
56045
+ onRemove = _ref10.onRemove;
55722
56046
  // Wired-for-this-handler: dedupe defensively (legacy workspaces
55723
56047
  // occasionally contain duplicate entries under the same handler).
55724
56048
  var wiredHere = useMemo(function () {
55725
56049
  var seen = new Set();
55726
56050
  var out = [];
55727
- var _iterator8 = _createForOfIteratorHelper$4(myWiring),
55728
- _step8;
56051
+ var _iterator0 = _createForOfIteratorHelper$4(myWiring),
56052
+ _step0;
55729
56053
  try {
55730
- for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
55731
- var w = _step8.value;
56054
+ for (_iterator0.s(); !(_step0 = _iterator0.n()).done;) {
56055
+ var w = _step0.value;
55732
56056
  if (w.handlerName !== handlerName) continue;
55733
56057
  var key = "".concat(w.sourceComponent, "|").concat(w.sourceItemId, "|").concat(w.eventName);
55734
56058
  if (seen.has(key)) continue;
@@ -55736,9 +56060,9 @@ function EventsColumn(_ref9) {
55736
56060
  out.push(w);
55737
56061
  }
55738
56062
  } catch (err) {
55739
- _iterator8.e(err);
56063
+ _iterator0.e(err);
55740
56064
  } finally {
55741
- _iterator8.f();
56065
+ _iterator0.f();
55742
56066
  }
55743
56067
  return out;
55744
56068
  }, [myWiring, handlerName]);
@@ -56888,6 +57212,42 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
56888
57212
  });
56889
57213
  });
56890
57214
  }
57215
+
57216
+ // Mirror the change into the layout refs so the save path always
57217
+ // sees the same truth regardless of whether it reads from refs or
57218
+ // state. Previously a mutation that propagated via
57219
+ // onWorkspaceChange (drag-drop, swap, place, delete) would update
57220
+ // openTabs but leave sidebarWorkspaceRef/pageRefsMap stale, and
57221
+ // `handleClickSaveWorkspace` reads from those refs FIRST — so it
57222
+ // clobbered the new sidebarLayout with the stale ref contents on
57223
+ // save. Keeping everything in sync here closes that window.
57224
+ if (Array.isArray(wsModel.sidebarLayout)) {
57225
+ sidebarWorkspaceRef.current = _objectSpread$6(_objectSpread$6({}, sidebarWorkspaceRef.current || {}), {}, {
57226
+ layout: wsModel.sidebarLayout
57227
+ });
57228
+ }
57229
+ if (Array.isArray(wsModel.pages)) {
57230
+ var _iterator = _createForOfIteratorHelper$3(wsModel.pages),
57231
+ _step;
57232
+ try {
57233
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
57234
+ var page = _step.value;
57235
+ if (!page || !page.id || !Array.isArray(page.layout)) continue;
57236
+ if (!pageRefsMap.current[page.id]) {
57237
+ pageRefsMap.current[page.id] = {
57238
+ current: null
57239
+ };
57240
+ }
57241
+ pageRefsMap.current[page.id].current = _objectSpread$6(_objectSpread$6({}, pageRefsMap.current[page.id].current || {}), {}, {
57242
+ layout: page.layout
57243
+ });
57244
+ }
57245
+ } catch (err) {
57246
+ _iterator.e(err);
57247
+ } finally {
57248
+ _iterator.f();
57249
+ }
57250
+ }
56891
57251
  }
56892
57252
  }
56893
57253
  function handleProviderSelect(event) {
@@ -56934,14 +57294,14 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
56934
57294
 
56935
57295
  // Start from the current map, layer changes on top.
56936
57296
  var nextSelectedProviders = _objectSpread$6({}, workspaceSelected.selectedProviders || {});
56937
- var _iterator = _createForOfIteratorHelper$3(changes),
56938
- _step;
57297
+ var _iterator2 = _createForOfIteratorHelper$3(changes),
57298
+ _step2;
56939
57299
  try {
56940
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
56941
- var _step$value = _step.value,
56942
- widgetId = _step$value.widgetId,
56943
- providerType = _step$value.providerType,
56944
- providerName = _step$value.providerName;
57300
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
57301
+ var _step2$value = _step2.value,
57302
+ widgetId = _step2$value.widgetId,
57303
+ providerType = _step2$value.providerType,
57304
+ providerName = _step2$value.providerName;
56945
57305
  if (!widgetId || !providerType) continue;
56946
57306
  var prevForWidget = nextSelectedProviders[widgetId] ? _objectSpread$6({}, nextSelectedProviders[widgetId]) : {};
56947
57307
  if (providerName) {
@@ -56954,9 +57314,9 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
56954
57314
  nextSelectedProviders[widgetId] = prevForWidget;
56955
57315
  }
56956
57316
  } catch (err) {
56957
- _iterator.e(err);
57317
+ _iterator2.e(err);
56958
57318
  } finally {
56959
- _iterator.f();
57319
+ _iterator2.f();
56960
57320
  }
56961
57321
  var updatedWorkspace = _objectSpread$6(_objectSpread$6({}, workspaceSelected), {}, {
56962
57322
  selectedProviders: nextSelectedProviders
@@ -56986,14 +57346,14 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
56986
57346
 
56987
57347
  // Group changes by widgetId so we can patch each item once.
56988
57348
  var byWidget = new Map();
56989
- var _iterator2 = _createForOfIteratorHelper$3(changes),
56990
- _step2;
57349
+ var _iterator3 = _createForOfIteratorHelper$3(changes),
57350
+ _step3;
56991
57351
  try {
56992
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
56993
- var _step2$value = _step2.value,
56994
- widgetId = _step2$value.widgetId,
56995
- key = _step2$value.key,
56996
- value = _step2$value.value;
57352
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
57353
+ var _step3$value = _step3.value,
57354
+ widgetId = _step3$value.widgetId,
57355
+ key = _step3$value.key,
57356
+ value = _step3$value.value;
56997
57357
  if (!widgetId || !key) continue;
56998
57358
  if (!byWidget.has(widgetId)) byWidget.set(widgetId, {});
56999
57359
  byWidget.get(widgetId)[key] = value;
@@ -57004,9 +57364,9 @@ var DashboardStageInner = function DashboardStageInner(_ref3) {
57004
57364
  // Uses forEachWidget's walk under the hood by visiting each item
57005
57365
  // in the cloned containers.
57006
57366
  } catch (err) {
57007
- _iterator2.e(err);
57367
+ _iterator3.e(err);
57008
57368
  } finally {
57009
- _iterator2.f();
57369
+ _iterator3.f();
57010
57370
  }
57011
57371
  var updatedWorkspace = JSON.parse(JSON.stringify(workspaceSelected));
57012
57372
  var patchItem = function patchItem(item) {