@trops/dash-core 0.1.147 → 0.1.148

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.js CHANGED
@@ -49,8 +49,8 @@ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
49
49
  var jsxRuntime__namespace = /*#__PURE__*/_interopNamespaceDefault(jsxRuntime);
50
50
  var ReactDOM__namespace = /*#__PURE__*/_interopNamespaceDefault(ReactDOM);
51
51
 
52
- 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; }
53
- 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; }
52
+ 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; }
53
+ 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; }
54
54
  var event = {
55
55
  list: new Map(),
56
56
  // Map(1) { '<widget-UUID>' => { 'CustomSearchbar[10].searchQueryChanged': [] } }
@@ -112,7 +112,7 @@ var event = {
112
112
  uuid: subscriber["uuid"]
113
113
  };
114
114
  if ("action" in subscriber && subscriber.action !== undefined) {
115
- subscriber["action"](_objectSpread$C({}, objectToSend));
115
+ subscriber["action"](_objectSpread$D({}, objectToSend));
116
116
  }
117
117
  });
118
118
  }
@@ -2552,8 +2552,8 @@ var DashboardWrapper = function DashboardWrapper(_ref) {
2552
2552
  });
2553
2553
  };
2554
2554
 
2555
- function ownKeys$B(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2556
- function _objectSpread$B(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$B(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$B(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2555
+ 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; }
2556
+ 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; }
2557
2557
  var DashboardThemeProvider = function DashboardThemeProvider(_ref) {
2558
2558
  var themeKey = _ref.themeKey,
2559
2559
  children = _ref.children;
@@ -2565,7 +2565,7 @@ var DashboardThemeProvider = function DashboardThemeProvider(_ref) {
2565
2565
  var dashboardTheme = themes[themeKey];
2566
2566
  var themeValue = dashboardTheme ? dashboardTheme[themeVariant] || null : null;
2567
2567
  if (!themeValue) return null;
2568
- return _objectSpread$B(_objectSpread$B({}, parentContext), {}, {
2568
+ return _objectSpread$C(_objectSpread$C({}, parentContext), {}, {
2569
2569
  currentTheme: themeValue,
2570
2570
  currentThemeKey: themeKey,
2571
2571
  theme: themeValue,
@@ -2583,8 +2583,8 @@ var DashboardThemeProvider = function DashboardThemeProvider(_ref) {
2583
2583
  });
2584
2584
  };
2585
2585
 
2586
- function ownKeys$A(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2587
- function _objectSpread$A(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$A(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$A(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2586
+ function ownKeys$B(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2587
+ function _objectSpread$B(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$B(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$B(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2588
2588
  var AppThemeScope = function AppThemeScope(_ref) {
2589
2589
  var children = _ref.children;
2590
2590
  var ctx = React.useContext(DashReact.ThemeContext);
@@ -2592,7 +2592,7 @@ var AppThemeScope = function AppThemeScope(_ref) {
2592
2592
  children: children
2593
2593
  });
2594
2594
  return /*#__PURE__*/jsxRuntime.jsx(DashReact.ThemeContext.Provider, {
2595
- value: _objectSpread$A(_objectSpread$A({}, ctx), {}, {
2595
+ value: _objectSpread$B(_objectSpread$B({}, ctx), {}, {
2596
2596
  currentTheme: ctx.appTheme,
2597
2597
  currentThemeKey: ctx.appThemeKey,
2598
2598
  theme: ctx.appTheme,
@@ -2704,11 +2704,11 @@ var LayoutContainer = function LayoutContainer(_ref) {
2704
2704
  });
2705
2705
  };
2706
2706
 
2707
- 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; }
2708
- 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; }
2709
- function _createForOfIteratorHelper$b(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$b(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
2710
- function _unsupportedIterableToArray$b(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$b(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$b(r, a) : void 0; } }
2711
- function _arrayLikeToArray$b(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
2707
+ function ownKeys$A(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2708
+ function _objectSpread$A(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$A(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$A(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2709
+ function _createForOfIteratorHelper$d(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$d(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
2710
+ function _unsupportedIterableToArray$d(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$d(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$d(r, a) : void 0; } }
2711
+ function _arrayLikeToArray$d(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
2712
2712
  /**
2713
2713
  * Layout template definitions for the dashboard template picker.
2714
2714
  *
@@ -2944,12 +2944,12 @@ function createLayoutFromTemplate(template) {
2944
2944
  cols: template.cols,
2945
2945
  gap: "gap-2"
2946
2946
  };
2947
- var _iterator = _createForOfIteratorHelper$b(template.cells),
2947
+ var _iterator = _createForOfIteratorHelper$d(template.cells),
2948
2948
  _step;
2949
2949
  try {
2950
2950
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
2951
2951
  var cell = _step.value;
2952
- grid[cell.key] = _objectSpread$z({
2952
+ grid[cell.key] = _objectSpread$A({
2953
2953
  component: null,
2954
2954
  hide: cell.hide || false
2955
2955
  }, cell.span ? {
@@ -3963,8 +3963,8 @@ var DiscoverDashboardsDetail = function DiscoverDashboardsDetail(_ref) {
3963
3963
  });
3964
3964
  };
3965
3965
 
3966
- 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; }
3967
- 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; }
3966
+ 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; }
3967
+ 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; }
3968
3968
  var LayoutManagerModal = function LayoutManagerModal(_ref) {
3969
3969
  var open = _ref.open,
3970
3970
  setIsOpen = _ref.setIsOpen,
@@ -4200,7 +4200,7 @@ var LayoutManagerModal = function LayoutManagerModal(_ref) {
4200
4200
  }
4201
4201
  return _context2.abrupt("return");
4202
4202
  case 6:
4203
- updatedWorkspace = _objectSpread$y(_objectSpread$y({}, importedWorkspace), {}, {
4203
+ updatedWorkspace = _objectSpread$z(_objectSpread$z({}, importedWorkspace), {}, {
4204
4204
  name: dashboardName.trim(),
4205
4205
  menuId: menuId,
4206
4206
  themeKey: selectedThemeKey
@@ -9555,8 +9555,8 @@ var deepEqual = function deepEqual(a, b, opts) {
9555
9555
 
9556
9556
  var deepEqual$1 = /*@__PURE__*/getDefaultExportFromCjs(deepEqual);
9557
9557
 
9558
- 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; }
9559
- 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; }
9558
+ 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; }
9559
+ 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; }
9560
9560
  var PanelEditItem = function PanelEditItem(_ref) {
9561
9561
  var _ComponentManager$get;
9562
9562
  var workspace = _ref.workspace,
@@ -9616,7 +9616,7 @@ var PanelEditItem = function PanelEditItem(_ref) {
9616
9616
  var uuid = newItem.uuid || newItem.uuidString;
9617
9617
  if (uuid) {
9618
9618
  workspaceTemp.selectedProviders = workspaceTemp.selectedProviders || {};
9619
- workspaceTemp.selectedProviders[uuid] = _objectSpread$x(_objectSpread$x({}, workspaceTemp.selectedProviders[uuid] || {}), {}, _defineProperty({}, providerType, providerId));
9619
+ workspaceTemp.selectedProviders[uuid] = _objectSpread$y(_objectSpread$y({}, workspaceTemp.selectedProviders[uuid] || {}), {}, _defineProperty({}, providerType, providerId));
9620
9620
  }
9621
9621
  onUpdate(newItem, workspaceTemp);
9622
9622
  forceUpdate();
@@ -9745,7 +9745,7 @@ var PanelEditItem = function PanelEditItem(_ref) {
9745
9745
  var _ref5 = _slicedToArray(_ref4, 2),
9746
9746
  name = _ref5[0],
9747
9747
  p = _ref5[1];
9748
- return _objectSpread$x({
9748
+ return _objectSpread$y({
9749
9749
  name: name
9750
9750
  }, p);
9751
9751
  });
@@ -9787,11 +9787,11 @@ var PanelEditItem = function PanelEditItem(_ref) {
9787
9787
  };
9788
9788
 
9789
9789
  var _excluded$5 = ["rows", "cols"];
9790
- 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; } } }; }
9791
- 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; } }
9792
- 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; }
9793
- 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; }
9794
- 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; }
9790
+ function _createForOfIteratorHelper$c(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$c(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
9791
+ function _unsupportedIterableToArray$c(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$c(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$c(r, a) : void 0; } }
9792
+ function _arrayLikeToArray$c(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
9793
+ 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; }
9794
+ 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; }
9795
9795
  var defaultGrid = {
9796
9796
  rows: 1,
9797
9797
  cols: 1,
@@ -9812,7 +9812,7 @@ function GridEditor(_ref) {
9812
9812
  setGrid = _useState2[1];
9813
9813
  var addRow = function addRow() {
9814
9814
  var newRow = grid.rows;
9815
- var newGrid = _objectSpread$w(_objectSpread$w({}, grid), {}, {
9815
+ var newGrid = _objectSpread$x(_objectSpread$x({}, grid), {}, {
9816
9816
  rows: grid.rows + 1
9817
9817
  });
9818
9818
  for (var col = 0; col < grid.cols; col++) {
@@ -9827,7 +9827,7 @@ function GridEditor(_ref) {
9827
9827
  };
9828
9828
  var addColumn = function addColumn() {
9829
9829
  var newCol = grid.cols;
9830
- var newGrid = _objectSpread$w(_objectSpread$w({}, grid), {}, {
9830
+ var newGrid = _objectSpread$x(_objectSpread$x({}, grid), {}, {
9831
9831
  cols: grid.cols + 1
9832
9832
  });
9833
9833
  for (var row = 0; row < grid.rows; row++) {
@@ -9860,8 +9860,8 @@ function GridEditor(_ref) {
9860
9860
  });
9861
9861
  }
9862
9862
  if (grid[nextKey]) {
9863
- var newGrid = _objectSpread$w({}, grid);
9864
- newGrid[currentKey] = _objectSpread$w(_objectSpread$w({}, newGrid[currentKey]), {}, {
9863
+ var newGrid = _objectSpread$x({}, grid);
9864
+ newGrid[currentKey] = _objectSpread$x(_objectSpread$x({}, newGrid[currentKey]), {}, {
9865
9865
  colSpan: newGrid[currentKey].colSpan + 1
9866
9866
  });
9867
9867
  delete newGrid[nextKey];
@@ -9874,8 +9874,8 @@ function GridEditor(_ref) {
9874
9874
  var currentKey = "".concat(row, ".").concat(col);
9875
9875
  var belowKey = "".concat(row + 1, ".").concat(col);
9876
9876
  if (grid[belowKey]) {
9877
- var newGrid = _objectSpread$w({}, grid);
9878
- newGrid[currentKey] = _objectSpread$w(_objectSpread$w({}, newGrid[currentKey]), {}, {
9877
+ var newGrid = _objectSpread$x({}, grid);
9878
+ newGrid[currentKey] = _objectSpread$x(_objectSpread$x({}, newGrid[currentKey]), {}, {
9879
9879
  rowSpan: newGrid[currentKey].rowSpan + 1
9880
9880
  });
9881
9881
  delete newGrid[belowKey];
@@ -9892,7 +9892,7 @@ function GridEditor(_ref) {
9892
9892
  var splitCell = function splitCell(row, col) {
9893
9893
  var key = "".concat(row, ".").concat(col);
9894
9894
  var cell = grid[key];
9895
- var newGrid = _objectSpread$w({}, grid);
9895
+ var newGrid = _objectSpread$x({}, grid);
9896
9896
 
9897
9897
  // we have to check the colspan, and since the colspan is greater than 1
9898
9898
  // Only handle horizontal split if colSpan > 1
@@ -9908,13 +9908,13 @@ function GridEditor(_ref) {
9908
9908
  var oldKey = "".concat(row, ".").concat(c);
9909
9909
  var newKey = "".concat(row, ".").concat(c + 1);
9910
9910
  if (newGrid[oldKey]) {
9911
- newGrid[newKey] = _objectSpread$w({}, newGrid[oldKey]);
9911
+ newGrid[newKey] = _objectSpread$x({}, newGrid[oldKey]);
9912
9912
  delete newGrid[oldKey];
9913
9913
  }
9914
9914
  }
9915
9915
 
9916
9916
  // Update the original cell's colSpan
9917
- newGrid[key] = _objectSpread$w(_objectSpread$w({}, cell), {}, {
9917
+ newGrid[key] = _objectSpread$x(_objectSpread$x({}, cell), {}, {
9918
9918
  colSpan: cell.colSpan - 1
9919
9919
  });
9920
9920
 
@@ -9926,7 +9926,7 @@ function GridEditor(_ref) {
9926
9926
  };
9927
9927
  }
9928
9928
  if (cell.rowSpan > 1) {
9929
- newGrid[key] = _objectSpread$w(_objectSpread$w({}, newGrid[key]), {}, {
9929
+ newGrid[key] = _objectSpread$x(_objectSpread$x({}, newGrid[key]), {}, {
9930
9930
  rowSpan: cell.rowSpan - 1
9931
9931
  });
9932
9932
  newGrid["".concat(row + 1, ".").concat(col)] = {
@@ -9942,7 +9942,7 @@ function GridEditor(_ref) {
9942
9942
  function sortObjectByKeys(obj) {
9943
9943
  var sortedKeys = Object.keys(obj).sort();
9944
9944
  var sortedObj = {};
9945
- var _iterator = _createForOfIteratorHelper$a(sortedKeys),
9945
+ var _iterator = _createForOfIteratorHelper$c(sortedKeys),
9946
9946
  _step;
9947
9947
  try {
9948
9948
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -10045,7 +10045,7 @@ function GridEditor(_ref) {
10045
10045
  var fromKey = "".concat(from.row, ".").concat(from.col);
10046
10046
  var toKey = "".concat(to.row, ".").concat(to.col);
10047
10047
  if (fromKey === toKey) return;
10048
- var newGrid = _objectSpread$w({}, grid);
10048
+ var newGrid = _objectSpread$x({}, grid);
10049
10049
 
10050
10050
  // Swap the cells
10051
10051
  var temp = newGrid[fromKey];
@@ -10071,7 +10071,7 @@ function GridEditor(_ref) {
10071
10071
  // console.log("Grid updated:", sequencedGrid);
10072
10072
  }
10073
10073
  function resetGridLayout() {
10074
- var newGrid = _objectSpread$w({}, defaultGrid);
10074
+ var newGrid = _objectSpread$x({}, defaultGrid);
10075
10075
  setGrid(newGrid);
10076
10076
  onUpdate(newGrid);
10077
10077
  }
@@ -10349,8 +10349,8 @@ var PanelEditItemGrid = function PanelEditItemGrid(_ref) {
10349
10349
  });
10350
10350
  };
10351
10351
 
10352
- 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; }
10353
- 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; }
10352
+ 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; }
10353
+ 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; }
10354
10354
  var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
10355
10355
  var item = _ref.item;
10356
10356
  _ref.workspace;
@@ -10373,7 +10373,7 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
10373
10373
  }, [widgetUuid, notificationDefs.length]);
10374
10374
  function handleNotifToggle(typeKey, value) {
10375
10375
  var _window$mainApi2;
10376
- var updated = _objectSpread$v(_objectSpread$v({}, notifPrefs), {}, _defineProperty({}, typeKey, value));
10376
+ var updated = _objectSpread$w(_objectSpread$w({}, notifPrefs), {}, _defineProperty({}, typeKey, value));
10377
10377
  setNotifPrefs(updated);
10378
10378
  if ((_window$mainApi2 = window.mainApi) !== null && _window$mainApi2 !== void 0 && (_window$mainApi2 = _window$mainApi2.notifications) !== null && _window$mainApi2 !== void 0 && _window$mainApi2.setPreferences && widgetUuid) {
10379
10379
  window.mainApi.notifications.setPreferences(widgetUuid, _defineProperty({}, typeKey, value));
@@ -10415,6 +10415,366 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
10415
10415
  });
10416
10416
  };
10417
10417
 
10418
+ function _createForOfIteratorHelper$b(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$b(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
10419
+ function _unsupportedIterableToArray$b(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$b(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$b(r, a) : void 0; } }
10420
+ function _arrayLikeToArray$b(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
10421
+ 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; }
10422
+ 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; }
10423
+ var DAYS = [{
10424
+ key: "mon",
10425
+ label: "Mon"
10426
+ }, {
10427
+ key: "tue",
10428
+ label: "Tue"
10429
+ }, {
10430
+ key: "wed",
10431
+ label: "Wed"
10432
+ }, {
10433
+ key: "thu",
10434
+ label: "Thu"
10435
+ }, {
10436
+ key: "fri",
10437
+ label: "Fri"
10438
+ }, {
10439
+ key: "sat",
10440
+ label: "Sat"
10441
+ }, {
10442
+ key: "sun",
10443
+ label: "Sun"
10444
+ }];
10445
+ var INTERVAL_UNITS = [{
10446
+ value: "seconds",
10447
+ displayName: "Seconds"
10448
+ }, {
10449
+ value: "minutes",
10450
+ displayName: "Minutes"
10451
+ }, {
10452
+ value: "hours",
10453
+ displayName: "Hours"
10454
+ }];
10455
+ function intervalToMs(value, unit) {
10456
+ var num = parseInt(value, 10);
10457
+ if (isNaN(num) || num <= 0) return null;
10458
+ switch (unit) {
10459
+ case "seconds":
10460
+ return num * 1000;
10461
+ case "minutes":
10462
+ return num * 60 * 1000;
10463
+ case "hours":
10464
+ return num * 60 * 60 * 1000;
10465
+ default:
10466
+ return num * 60 * 1000;
10467
+ }
10468
+ }
10469
+ function msToInterval(ms) {
10470
+ if (!ms) return {
10471
+ value: 5,
10472
+ unit: "minutes"
10473
+ };
10474
+ if (ms >= 3600000 && ms % 3600000 === 0) return {
10475
+ value: ms / 3600000,
10476
+ unit: "hours"
10477
+ };
10478
+ if (ms >= 60000 && ms % 60000 === 0) return {
10479
+ value: ms / 60000,
10480
+ unit: "minutes"
10481
+ };
10482
+ return {
10483
+ value: ms / 1000,
10484
+ unit: "seconds"
10485
+ };
10486
+ }
10487
+ function TaskScheduleEditor(_ref) {
10488
+ var taskDef = _ref.taskDef,
10489
+ taskState = _ref.taskState,
10490
+ widgetId = _ref.widgetId,
10491
+ widgetName = _ref.widgetName,
10492
+ workspaceId = _ref.workspaceId;
10493
+ var _useState = React.useState((taskState === null || taskState === void 0 ? void 0 : taskState.enabled) || false),
10494
+ _useState2 = _slicedToArray(_useState, 2),
10495
+ enabled = _useState2[0],
10496
+ setEnabled = _useState2[1];
10497
+ var _useState3 = React.useState((taskState === null || taskState === void 0 ? void 0 : taskState.scheduleType) || "interval"),
10498
+ _useState4 = _slicedToArray(_useState3, 2),
10499
+ scheduleType = _useState4[0],
10500
+ setScheduleType = _useState4[1];
10501
+ var initialInterval = msToInterval(taskState === null || taskState === void 0 ? void 0 : taskState.intervalMs);
10502
+ var _useState5 = React.useState(initialInterval.value),
10503
+ _useState6 = _slicedToArray(_useState5, 2),
10504
+ intervalValue = _useState6[0],
10505
+ setIntervalValue = _useState6[1];
10506
+ var _useState7 = React.useState(initialInterval.unit),
10507
+ _useState8 = _slicedToArray(_useState7, 2),
10508
+ intervalUnit = _useState8[0],
10509
+ setIntervalUnit = _useState8[1];
10510
+ var _useState9 = React.useState((taskState === null || taskState === void 0 ? void 0 : taskState.days) || ["every"]),
10511
+ _useState0 = _slicedToArray(_useState9, 2),
10512
+ days = _useState0[0],
10513
+ setDays = _useState0[1];
10514
+ var _useState1 = React.useState((taskState === null || taskState === void 0 ? void 0 : taskState.time) || "09:00"),
10515
+ _useState10 = _slicedToArray(_useState1, 2),
10516
+ time = _useState10[0],
10517
+ setTime = _useState10[1];
10518
+ var hasSchedule = !!taskState;
10519
+ function saveTask() {
10520
+ var _window$mainApi;
10521
+ var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
10522
+ if (!((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && (_window$mainApi = _window$mainApi.scheduler) !== null && _window$mainApi !== void 0 && _window$mainApi.registerTask)) return;
10523
+ var payload = _objectSpread$v({
10524
+ widgetId: widgetId,
10525
+ widgetName: widgetName,
10526
+ workspaceId: workspaceId || "",
10527
+ taskKey: taskDef.key,
10528
+ handler: taskDef.handler,
10529
+ displayName: taskDef.displayName,
10530
+ scheduleType: scheduleType,
10531
+ intervalMs: intervalToMs(intervalValue, intervalUnit),
10532
+ days: days,
10533
+ time: time,
10534
+ enabled: enabled
10535
+ }, overrides);
10536
+ window.mainApi.scheduler.registerTask(payload);
10537
+ }
10538
+ function handleToggle(value) {
10539
+ setEnabled(value);
10540
+ if (!hasSchedule && value) {
10541
+ // First enable — register with default schedule
10542
+ saveTask({
10543
+ enabled: true
10544
+ });
10545
+ } else if (hasSchedule) {
10546
+ var taskId = "".concat(widgetId, ":").concat(taskDef.key);
10547
+ if (value) {
10548
+ var _window$mainApi2;
10549
+ (_window$mainApi2 = window.mainApi) === null || _window$mainApi2 === void 0 || (_window$mainApi2 = _window$mainApi2.scheduler) === null || _window$mainApi2 === void 0 || _window$mainApi2.enableTask(taskId);
10550
+ } else {
10551
+ var _window$mainApi3;
10552
+ (_window$mainApi3 = window.mainApi) === null || _window$mainApi3 === void 0 || (_window$mainApi3 = _window$mainApi3.scheduler) === null || _window$mainApi3 === void 0 || _window$mainApi3.disableTask(taskId);
10553
+ }
10554
+ }
10555
+ }
10556
+ function handleScheduleTypeChange(type) {
10557
+ setScheduleType(type);
10558
+ saveTask({
10559
+ scheduleType: type,
10560
+ enabled: true
10561
+ });
10562
+ if (!enabled) setEnabled(true);
10563
+ }
10564
+ function handleIntervalChange(val, unit) {
10565
+ setIntervalValue(val);
10566
+ if (unit) setIntervalUnit(unit);
10567
+ var ms = intervalToMs(val, unit || intervalUnit);
10568
+ if (ms) {
10569
+ saveTask({
10570
+ scheduleType: "interval",
10571
+ intervalMs: ms,
10572
+ enabled: true
10573
+ });
10574
+ if (!enabled) setEnabled(true);
10575
+ }
10576
+ }
10577
+ function handleDayToggle(dayKey) {
10578
+ var newDays;
10579
+ if (dayKey === "every") {
10580
+ newDays = days.includes("every") ? [] : ["every"];
10581
+ } else {
10582
+ // Remove "every" if it's there, toggle the specific day
10583
+ var filtered = days.filter(function (d) {
10584
+ return d !== "every";
10585
+ });
10586
+ if (filtered.includes(dayKey)) {
10587
+ newDays = filtered.filter(function (d) {
10588
+ return d !== dayKey;
10589
+ });
10590
+ } else {
10591
+ newDays = [].concat(_toConsumableArray(filtered), [dayKey]);
10592
+ }
10593
+ if (newDays.length === 0) newDays = ["every"];
10594
+ }
10595
+ setDays(newDays);
10596
+ saveTask({
10597
+ scheduleType: "dayTime",
10598
+ days: newDays,
10599
+ time: time,
10600
+ enabled: true
10601
+ });
10602
+ if (!enabled) setEnabled(true);
10603
+ }
10604
+ function handleTimeChange(newTime) {
10605
+ setTime(newTime);
10606
+ saveTask({
10607
+ scheduleType: "dayTime",
10608
+ days: days,
10609
+ time: newTime,
10610
+ enabled: true
10611
+ });
10612
+ if (!enabled) setEnabled(true);
10613
+ }
10614
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
10615
+ className: "border border-white/10 rounded-lg p-4 space-y-3",
10616
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
10617
+ className: "flex flex-row items-center justify-between",
10618
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
10619
+ className: "flex flex-col",
10620
+ children: [/*#__PURE__*/jsxRuntime.jsx("span", {
10621
+ className: "text-sm font-medium",
10622
+ children: taskDef.displayName
10623
+ }), taskDef.description && /*#__PURE__*/jsxRuntime.jsx("span", {
10624
+ className: "text-xs opacity-50",
10625
+ children: taskDef.description
10626
+ })]
10627
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Switch, {
10628
+ checked: enabled,
10629
+ onChange: handleToggle
10630
+ })]
10631
+ }), enabled && /*#__PURE__*/jsxRuntime.jsxs("div", {
10632
+ className: "space-y-3 pt-1",
10633
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
10634
+ className: "flex flex-row space-x-4",
10635
+ children: [/*#__PURE__*/jsxRuntime.jsxs("label", {
10636
+ className: "flex items-center space-x-2 cursor-pointer text-sm",
10637
+ children: [/*#__PURE__*/jsxRuntime.jsx("input", {
10638
+ type: "radio",
10639
+ name: "schedule-type-".concat(taskDef.key),
10640
+ checked: scheduleType === "interval",
10641
+ onChange: function onChange() {
10642
+ return handleScheduleTypeChange("interval");
10643
+ },
10644
+ className: "accent-blue-500"
10645
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
10646
+ children: "Interval"
10647
+ })]
10648
+ }), /*#__PURE__*/jsxRuntime.jsxs("label", {
10649
+ className: "flex items-center space-x-2 cursor-pointer text-sm",
10650
+ children: [/*#__PURE__*/jsxRuntime.jsx("input", {
10651
+ type: "radio",
10652
+ name: "schedule-type-".concat(taskDef.key),
10653
+ checked: scheduleType === "dayTime",
10654
+ onChange: function onChange() {
10655
+ return handleScheduleTypeChange("dayTime");
10656
+ },
10657
+ className: "accent-blue-500"
10658
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
10659
+ children: "Day & Time"
10660
+ })]
10661
+ })]
10662
+ }), scheduleType === "interval" && /*#__PURE__*/jsxRuntime.jsxs("div", {
10663
+ className: "flex flex-row items-end space-x-2",
10664
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.InputText, {
10665
+ label: "Every",
10666
+ type: "number",
10667
+ value: String(intervalValue),
10668
+ onChange: function onChange(e) {
10669
+ return handleIntervalChange(e.target.value, intervalUnit);
10670
+ },
10671
+ className: "w-24",
10672
+ min: "1"
10673
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.SelectInput, {
10674
+ value: intervalUnit,
10675
+ onChange: function onChange(val) {
10676
+ return handleIntervalChange(intervalValue, val);
10677
+ },
10678
+ options: INTERVAL_UNITS,
10679
+ className: "w-32"
10680
+ })]
10681
+ }), scheduleType === "dayTime" && /*#__PURE__*/jsxRuntime.jsxs("div", {
10682
+ className: "space-y-3",
10683
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
10684
+ className: "flex flex-col space-y-2",
10685
+ children: [/*#__PURE__*/jsxRuntime.jsx("span", {
10686
+ className: "text-xs opacity-70",
10687
+ children: "Days"
10688
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
10689
+ className: "flex flex-row flex-wrap gap-2",
10690
+ children: [DAYS.map(function (day) {
10691
+ var isSelected = days.includes(day.key) || days.includes("every");
10692
+ return /*#__PURE__*/jsxRuntime.jsx("button", {
10693
+ onClick: function onClick() {
10694
+ return handleDayToggle(day.key);
10695
+ },
10696
+ className: "px-2.5 py-1 text-xs rounded border transition-colors ".concat(isSelected ? "bg-blue-600 border-blue-500 text-white" : "border-white/20 text-white/60 hover:border-white/40"),
10697
+ children: day.label
10698
+ }, day.key);
10699
+ }), /*#__PURE__*/jsxRuntime.jsx("button", {
10700
+ onClick: function onClick() {
10701
+ return handleDayToggle("every");
10702
+ },
10703
+ className: "px-2.5 py-1 text-xs rounded border transition-colors ".concat(days.includes("every") ? "bg-blue-600 border-blue-500 text-white" : "border-white/20 text-white/60 hover:border-white/40"),
10704
+ children: "Every day"
10705
+ })]
10706
+ })]
10707
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.InputText, {
10708
+ label: "Time",
10709
+ type: "time",
10710
+ value: time,
10711
+ onChange: function onChange(e) {
10712
+ return handleTimeChange(e.target.value);
10713
+ },
10714
+ className: "w-36"
10715
+ })]
10716
+ }), (taskState === null || taskState === void 0 ? void 0 : taskState.lastFiredAt) && /*#__PURE__*/jsxRuntime.jsxs("div", {
10717
+ className: "text-xs opacity-40",
10718
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
10719
+ icon: "clock",
10720
+ className: "h-3 w-3 mr-1"
10721
+ }), "Last fired: ", new Date(taskState.lastFiredAt).toLocaleString(), taskState.fireCount > 0 && " (".concat(taskState.fireCount, " total)")]
10722
+ })]
10723
+ })]
10724
+ });
10725
+ }
10726
+ var PanelEditItemSchedule = function PanelEditItemSchedule(_ref2) {
10727
+ var item = _ref2.item,
10728
+ workspace = _ref2.workspace;
10729
+ _ref2.onUpdate;
10730
+ var widgetConfig = item ? ComponentManager.config(item.component, item) : null;
10731
+ var scheduledTaskDefs = (widgetConfig === null || widgetConfig === void 0 ? void 0 : widgetConfig.scheduledTasks) || [];
10732
+ var widgetUuid = (item === null || item === void 0 ? void 0 : item.uuid) || (item === null || item === void 0 ? void 0 : item.uuidString);
10733
+ var widgetName = item === null || item === void 0 ? void 0 : item.component;
10734
+ var workspaceId = workspace === null || workspace === void 0 ? void 0 : workspace.id;
10735
+ var _useState11 = React.useState({}),
10736
+ _useState12 = _slicedToArray(_useState11, 2),
10737
+ taskStates = _useState12[0],
10738
+ setTaskStates = _useState12[1];
10739
+ React.useEffect(function () {
10740
+ var _window$mainApi4;
10741
+ if (scheduledTaskDefs.length > 0 && widgetUuid && (_window$mainApi4 = window.mainApi) !== null && _window$mainApi4 !== void 0 && (_window$mainApi4 = _window$mainApi4.scheduler) !== null && _window$mainApi4 !== void 0 && _window$mainApi4.getTasks) {
10742
+ window.mainApi.scheduler.getTasks(widgetUuid).then(function (tasks) {
10743
+ var stateMap = {};
10744
+ var _iterator = _createForOfIteratorHelper$b(tasks || []),
10745
+ _step;
10746
+ try {
10747
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
10748
+ var task = _step.value;
10749
+ stateMap[task.taskKey] = task;
10750
+ }
10751
+ } catch (err) {
10752
+ _iterator.e(err);
10753
+ } finally {
10754
+ _iterator.f();
10755
+ }
10756
+ setTaskStates(stateMap);
10757
+ });
10758
+ }
10759
+ }, [widgetUuid, scheduledTaskDefs.length]);
10760
+ if (!item || scheduledTaskDefs.length === 0) return null;
10761
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
10762
+ className: "flex flex-col flex-1 min-h-0 overflow-y-auto p-6 space-y-4",
10763
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading3, {
10764
+ title: "Schedule",
10765
+ padding: false
10766
+ }), scheduledTaskDefs.map(function (taskDef) {
10767
+ return /*#__PURE__*/jsxRuntime.jsx(TaskScheduleEditor, {
10768
+ taskDef: taskDef,
10769
+ taskState: taskStates[taskDef.key] || null,
10770
+ widgetId: widgetUuid,
10771
+ widgetName: widgetName,
10772
+ workspaceId: workspaceId
10773
+ }, taskDef.key);
10774
+ })]
10775
+ });
10776
+ };
10777
+
10418
10778
  var PanelCode = function PanelCode(_ref) {
10419
10779
  var workspace = _ref.workspace,
10420
10780
  onUpdate = _ref.onUpdate,
@@ -10748,9 +11108,10 @@ var PanelEditItemHandlers = function PanelEditItemHandlers(_ref) {
10748
11108
  };
10749
11109
 
10750
11110
  var getSections = function getSections(item) {
10751
- var _widgetConfig$notific;
11111
+ var _widgetConfig$notific, _widgetConfig$schedul;
10752
11112
  var widgetConfig = item ? ComponentManager.config(item.component, item) : null;
10753
11113
  var hasNotifications = (widgetConfig === null || widgetConfig === void 0 || (_widgetConfig$notific = widgetConfig.notifications) === null || _widgetConfig$notific === void 0 ? void 0 : _widgetConfig$notific.length) > 0;
11114
+ var hasScheduledTasks = (widgetConfig === null || widgetConfig === void 0 || (_widgetConfig$schedul = widgetConfig.scheduledTasks) === null || _widgetConfig$schedul === void 0 ? void 0 : _widgetConfig$schedul.length) > 0;
10754
11115
  return [{
10755
11116
  key: "edit",
10756
11117
  label: "Settings",
@@ -10763,6 +11124,10 @@ var getSections = function getSections(item) {
10763
11124
  key: "notifications",
10764
11125
  label: "Notifications",
10765
11126
  icon: "bell"
11127
+ }] : []), _toConsumableArray(hasScheduledTasks ? [{
11128
+ key: "schedule",
11129
+ label: "Schedule",
11130
+ icon: "clock"
10766
11131
  }] : []), _toConsumableArray((item === null || item === void 0 ? void 0 : item.workspace) !== "layout" ? [{
10767
11132
  key: "handlers",
10768
11133
  label: "Listeners",
@@ -10881,6 +11246,10 @@ var LayoutBuilderConfigModal = function LayoutBuilderConfigModal(_ref) {
10881
11246
  item: itemSelected,
10882
11247
  onUpdate: handleEditChange,
10883
11248
  workspace: workspaceSelected
11249
+ }), activeSection === "schedule" && /*#__PURE__*/jsxRuntime.jsx(PanelEditItemSchedule, {
11250
+ item: itemSelected,
11251
+ onUpdate: handleEditChange,
11252
+ workspace: workspaceSelected
10884
11253
  }), activeSection === "handlers" && /*#__PURE__*/jsxRuntime.jsx(PanelEditItemHandlers, {
10885
11254
  item: itemSelected,
10886
11255
  onUpdate: handleEditChange,
@@ -13207,9 +13576,9 @@ var getUserConfigurableProviders = function getUserConfigurableProviders(provide
13207
13576
  });
13208
13577
  };
13209
13578
 
13210
- function _createForOfIteratorHelper$9(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$9(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
13211
- function _unsupportedIterableToArray$9(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$9(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$9(r, a) : void 0; } }
13212
- function _arrayLikeToArray$9(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
13579
+ 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; } } }; }
13580
+ 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; } }
13581
+ 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; }
13213
13582
  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; }
13214
13583
  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; }
13215
13584
  var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
@@ -13476,11 +13845,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
13476
13845
 
13477
13846
  // Flatten all widgets from all packages for the widget list
13478
13847
  flatWidgets = [];
13479
- _iterator = _createForOfIteratorHelper$9(result.packages || []);
13848
+ _iterator = _createForOfIteratorHelper$a(result.packages || []);
13480
13849
  try {
13481
13850
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
13482
13851
  pkg = _step.value;
13483
- _iterator2 = _createForOfIteratorHelper$9(pkg.widgets || []);
13852
+ _iterator2 = _createForOfIteratorHelper$a(pkg.widgets || []);
13484
13853
  try {
13485
13854
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
13486
13855
  widget = _step2.value;
@@ -15036,9 +15405,9 @@ var ProviderBadge = function ProviderBadge(_ref) {
15036
15405
  });
15037
15406
  };
15038
15407
 
15039
- function _createForOfIteratorHelper$8(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$8(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
15040
- function _unsupportedIterableToArray$8(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$8(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$8(r, a) : void 0; } }
15041
- function _arrayLikeToArray$8(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
15408
+ function _createForOfIteratorHelper$9(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$9(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
15409
+ function _unsupportedIterableToArray$9(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$9(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$9(r, a) : void 0; } }
15410
+ function _arrayLikeToArray$9(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
15042
15411
  var WidgetCardHeader = function WidgetCardHeader(_ref) {
15043
15412
  var item = _ref.item,
15044
15413
  widget = _ref.widget,
@@ -15082,7 +15451,7 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
15082
15451
  var el = headerRef.current;
15083
15452
  if (!el) return;
15084
15453
  var observer = new ResizeObserver(function (entries) {
15085
- var _iterator = _createForOfIteratorHelper$8(entries),
15454
+ var _iterator = _createForOfIteratorHelper$9(entries),
15086
15455
  _step;
15087
15456
  try {
15088
15457
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -19874,9 +20243,9 @@ var ExternalWidget = function ExternalWidget(_ref) {
19874
20243
  var GRID_CELL_WIDGET_TYPE = "grid-cell-widget";
19875
20244
  var SIDEBAR_WIDGET_TYPE = "sidebar-widget";
19876
20245
 
19877
- function _createForOfIteratorHelper$7(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$7(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
19878
- function _unsupportedIterableToArray$7(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$7(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$7(r, a) : void 0; } }
19879
- function _arrayLikeToArray$7(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
20246
+ function _createForOfIteratorHelper$8(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$8(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
20247
+ function _unsupportedIterableToArray$8(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$8(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$8(r, a) : void 0; } }
20248
+ function _arrayLikeToArray$8(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
19880
20249
  function ownKeys$l(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
19881
20250
  function _objectSpread$l(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$l(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$l(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
19882
20251
  var DraggableDroppableCellBody = function DraggableDroppableCellBody(_ref) {
@@ -20440,7 +20809,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
20440
20809
  return selectable["delete"](cn);
20441
20810
  });
20442
20811
  var resolved = new Set();
20443
- var _iterator = _createForOfIteratorHelper$7(selectable),
20812
+ var _iterator = _createForOfIteratorHelper$8(selectable),
20444
20813
  _step;
20445
20814
  try {
20446
20815
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -22580,9 +22949,9 @@ function isWidgetResolvable(componentKey) {
22580
22949
 
22581
22950
  function ownKeys$k(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
22582
22951
  function _objectSpread$k(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$k(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$k(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
22583
- function _createForOfIteratorHelper$6(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$6(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
22584
- function _unsupportedIterableToArray$6(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$6(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$6(r, a) : void 0; } }
22585
- function _arrayLikeToArray$6(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
22952
+ function _createForOfIteratorHelper$7(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$7(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
22953
+ function _unsupportedIterableToArray$7(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$7(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$7(r, a) : void 0; } }
22954
+ function _arrayLikeToArray$7(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
22586
22955
  /**
22587
22956
  * The model for all layout components used primarily in the renderLayout method
22588
22957
  * @param {Object} layoutItem an object containing various attributes of the layout item
@@ -22594,7 +22963,7 @@ function _arrayLikeToArray$6(r, a) { (null == a || a > r.length) && (a = r.lengt
22594
22963
  function sortObjectByKeys(obj) {
22595
22964
  var sortedKeys = Object.keys(obj).sort();
22596
22965
  var sortedObj = {};
22597
- var _iterator = _createForOfIteratorHelper$6(sortedKeys),
22966
+ var _iterator = _createForOfIteratorHelper$7(sortedKeys),
22598
22967
  _step;
22599
22968
  try {
22600
22969
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -23243,6 +23612,13 @@ var ComponentConfigModel = function ComponentConfigModel() {
23243
23612
  * Each entry: { key, displayName, description, defaultEnabled }
23244
23613
  */
23245
23614
  obj.notifications = "notifications" in obj ? obj["notifications"] : [];
23615
+
23616
+ /**
23617
+ * scheduledTasks
23618
+ * Scheduled task handlers this widget exposes.
23619
+ * Each entry: { key, handler, displayName, description }
23620
+ */
23621
+ obj.scheduledTasks = "scheduledTasks" in obj ? obj["scheduledTasks"] : [];
23246
23622
  return obj;
23247
23623
  };
23248
23624
 
@@ -25852,9 +26228,9 @@ var useDashboard = function useDashboard() {
25852
26228
  });
25853
26229
  };
25854
26230
 
25855
- function _createForOfIteratorHelper$5(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$5(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
25856
- function _unsupportedIterableToArray$5(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$5(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$5(r, a) : void 0; } }
25857
- function _arrayLikeToArray$5(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
26231
+ function _createForOfIteratorHelper$6(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$6(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
26232
+ function _unsupportedIterableToArray$6(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$6(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$6(r, a) : void 0; } }
26233
+ function _arrayLikeToArray$6(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
25858
26234
 
25859
26235
  /**
25860
26236
  * useWidgetProviders Hook
@@ -25905,7 +26281,7 @@ var useWidgetProviders = function useWidgetProviders() {
25905
26281
  // 1. Widget-level: stored directly on the layout item by handleSelectProvider
25906
26282
  // 2. Workspace-level: stored as workspace.selectedProviders[widgetId][providerType]
25907
26283
  var providers = {};
25908
- var _iterator = _createForOfIteratorHelper$5(providerDeclarations),
26284
+ var _iterator = _createForOfIteratorHelper$6(providerDeclarations),
25909
26285
  _step;
25910
26286
  try {
25911
26287
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -26640,6 +27016,146 @@ var useNotifications = function useNotifications() {
26640
27016
  };
26641
27017
  };
26642
27018
 
27019
+ function _createForOfIteratorHelper$5(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$5(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
27020
+ function _unsupportedIterableToArray$5(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$5(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$5(r, a) : void 0; } }
27021
+ function _arrayLikeToArray$5(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
27022
+
27023
+ /**
27024
+ * useScheduler Hook
27025
+ *
27026
+ * Provides scheduled task functionality for widgets.
27027
+ * The widget provides handler functions keyed by the task handler names
27028
+ * declared in the widget's .dash.js config (scheduledTasks[].handler).
27029
+ *
27030
+ * Tasks are registered/configured via the settings panel (PanelEditItemSchedule).
27031
+ * This hook listens for task-fired events and calls the matching handler.
27032
+ *
27033
+ * @param {Object} handlers - { [handlerName]: async () => void }
27034
+ * @returns {Object}
27035
+ * - tasks: TaskEntry[] — current schedule state
27036
+ * - lastFire: { taskId, taskKey, firedAt } | null — latest fire event
27037
+ * - pendingResults: fires that happened while widget was unmounted
27038
+ */
27039
+ var useScheduler = function useScheduler() {
27040
+ var _workspaceContext$wor;
27041
+ var handlers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
27042
+ var widgetContext = React.useContext(WidgetContext);
27043
+ var workspaceContext = React.useContext(WorkspaceContext);
27044
+ if (!widgetContext) {
27045
+ throw new Error("useScheduler must be used within a Widget component. " + "Make sure your component is rendered inside <Widget> and within a DashboardWrapper.");
27046
+ }
27047
+ var _ref = widgetContext.widgetData || {},
27048
+ componentName = _ref.componentName,
27049
+ uuid = _ref.uuid,
27050
+ scheduledTasks = _ref.scheduledTasks;
27051
+ var widgetId = uuid;
27052
+ workspaceContext === null || workspaceContext === void 0 || (_workspaceContext$wor = workspaceContext.workspaceData) === null || _workspaceContext$wor === void 0 ? void 0 : _workspaceContext$wor.id;
27053
+ var _useState = React.useState([]),
27054
+ _useState2 = _slicedToArray(_useState, 2),
27055
+ tasks = _useState2[0],
27056
+ setTasks = _useState2[1];
27057
+ var _useState3 = React.useState(null),
27058
+ _useState4 = _slicedToArray(_useState3, 2),
27059
+ lastFire = _useState4[0],
27060
+ setLastFire = _useState4[1];
27061
+ var _useState5 = React.useState([]),
27062
+ _useState6 = _slicedToArray(_useState5, 2),
27063
+ pendingResults = _useState6[0],
27064
+ setPendingResults = _useState6[1];
27065
+
27066
+ // Keep handlers in a ref so the event listener always has the latest
27067
+ var handlersRef = React.useRef(handlers);
27068
+ handlersRef.current = handlers;
27069
+
27070
+ // Validate handler keys against widget's declared scheduledTasks
27071
+ React.useEffect(function () {
27072
+ if (!scheduledTasks || scheduledTasks.length === 0) return;
27073
+ var declaredHandlers = scheduledTasks.map(function (t) {
27074
+ return t.handler;
27075
+ });
27076
+ for (var _i = 0, _Object$keys = Object.keys(handlers); _i < _Object$keys.length; _i++) {
27077
+ var key = _Object$keys[_i];
27078
+ if (!declaredHandlers.includes(key)) ;
27079
+ }
27080
+ // eslint-disable-next-line react-hooks/exhaustive-deps
27081
+ }, [componentName, scheduledTasks]);
27082
+
27083
+ // Load existing tasks and pending results on mount
27084
+ React.useEffect(function () {
27085
+ var _window$mainApi;
27086
+ if (!widgetId || !((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && _window$mainApi.scheduler)) return;
27087
+ window.mainApi.scheduler.getTasks(widgetId).then(function (existingTasks) {
27088
+ setTasks(existingTasks || []);
27089
+ });
27090
+ window.mainApi.scheduler.getPending(widgetId).then(function (pending) {
27091
+ if (pending && pending.length > 0) {
27092
+ setPendingResults(pending);
27093
+ // Call handlers for each pending result
27094
+ var _iterator = _createForOfIteratorHelper$5(pending),
27095
+ _step;
27096
+ try {
27097
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
27098
+ var result = _step.value;
27099
+ var handlerFn = handlersRef.current[result.taskKey];
27100
+ if (handlerFn) {
27101
+ try {
27102
+ handlerFn();
27103
+ } catch (err) {
27104
+ }
27105
+ }
27106
+ }
27107
+ } catch (err) {
27108
+ _iterator.e(err);
27109
+ } finally {
27110
+ _iterator.f();
27111
+ }
27112
+ }
27113
+ });
27114
+ }, [widgetId]);
27115
+
27116
+ // Subscribe to task-fired events
27117
+ React.useEffect(function () {
27118
+ var _window$mainApi2;
27119
+ if (!widgetId || !((_window$mainApi2 = window.mainApi) !== null && _window$mainApi2 !== void 0 && (_window$mainApi2 = _window$mainApi2.scheduler) !== null && _window$mainApi2 !== void 0 && _window$mainApi2.onTaskFired)) return;
27120
+ var removeListener = window.mainApi.scheduler.onTaskFired(function (data) {
27121
+ if (data.widgetId !== widgetId) return;
27122
+ setLastFire({
27123
+ taskId: data.taskId,
27124
+ taskKey: data.taskKey,
27125
+ firedAt: data.firedAt
27126
+ });
27127
+
27128
+ // Refresh tasks to get updated lastFiredAt / fireCount
27129
+ window.mainApi.scheduler.getTasks(widgetId).then(function (updated) {
27130
+ setTasks(updated || []);
27131
+ });
27132
+
27133
+ // Call the matching handler
27134
+ var handlerFn = handlersRef.current[data.taskKey];
27135
+ if (handlerFn) {
27136
+ try {
27137
+ handlerFn();
27138
+ } catch (err) {
27139
+ }
27140
+ }
27141
+ });
27142
+ return removeListener;
27143
+ }, [widgetId]);
27144
+ var refreshTasks = React.useCallback(function () {
27145
+ var _window$mainApi3;
27146
+ if (!widgetId || !((_window$mainApi3 = window.mainApi) !== null && _window$mainApi3 !== void 0 && _window$mainApi3.scheduler)) return;
27147
+ window.mainApi.scheduler.getTasks(widgetId).then(function (updated) {
27148
+ setTasks(updated || []);
27149
+ });
27150
+ }, [widgetId]);
27151
+ return {
27152
+ tasks: tasks,
27153
+ lastFire: lastFire,
27154
+ pendingResults: pendingResults,
27155
+ refreshTasks: refreshTasks
27156
+ };
27157
+ };
27158
+
26643
27159
  function ownKeys$h(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
26644
27160
  function _objectSpread$h(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$h(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$h(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
26645
27161
  var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
@@ -45464,6 +45980,7 @@ exports.useMcpProvider = useMcpProvider;
45464
45980
  exports.useNotifications = useNotifications;
45465
45981
  exports.useProvider = useProvider;
45466
45982
  exports.useProviderClient = useProviderClient;
45983
+ exports.useScheduler = useScheduler;
45467
45984
  exports.useWidgetEvents = useWidgetEvents;
45468
45985
  exports.useWidgetProviders = useWidgetProviders;
45469
45986
  exports.validateCellMerge = validateCellMerge;