@trops/dash-core 0.1.147 → 0.1.149

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
  }
@@ -2343,6 +2343,13 @@ var AppWrapper = function AppWrapper(_ref) {
2343
2343
  saveSettings(s);
2344
2344
  return s;
2345
2345
  });
2346
+ if (to) {
2347
+ var _window$mainApi;
2348
+ (_window$mainApi = window.mainApi) === null || _window$mainApi === void 0 || (_window$mainApi = _window$mainApi.debug) === null || _window$mainApi === void 0 || _window$mainApi.open();
2349
+ } else {
2350
+ var _window$mainApi2;
2351
+ (_window$mainApi2 = window.mainApi) === null || _window$mainApi2 === void 0 || (_window$mainApi2 = _window$mainApi2.debug) === null || _window$mainApi2 === void 0 || _window$mainApi2.close();
2352
+ }
2346
2353
  }, [dashApi, credentials]);
2347
2354
  var changeApplicationTheme = React.useCallback(function (themeKey) {
2348
2355
  try {
@@ -2552,8 +2559,8 @@ var DashboardWrapper = function DashboardWrapper(_ref) {
2552
2559
  });
2553
2560
  };
2554
2561
 
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; }
2562
+ 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; }
2563
+ 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
2564
  var DashboardThemeProvider = function DashboardThemeProvider(_ref) {
2558
2565
  var themeKey = _ref.themeKey,
2559
2566
  children = _ref.children;
@@ -2565,7 +2572,7 @@ var DashboardThemeProvider = function DashboardThemeProvider(_ref) {
2565
2572
  var dashboardTheme = themes[themeKey];
2566
2573
  var themeValue = dashboardTheme ? dashboardTheme[themeVariant] || null : null;
2567
2574
  if (!themeValue) return null;
2568
- return _objectSpread$B(_objectSpread$B({}, parentContext), {}, {
2575
+ return _objectSpread$C(_objectSpread$C({}, parentContext), {}, {
2569
2576
  currentTheme: themeValue,
2570
2577
  currentThemeKey: themeKey,
2571
2578
  theme: themeValue,
@@ -2583,8 +2590,8 @@ var DashboardThemeProvider = function DashboardThemeProvider(_ref) {
2583
2590
  });
2584
2591
  };
2585
2592
 
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; }
2593
+ 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; }
2594
+ 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
2595
  var AppThemeScope = function AppThemeScope(_ref) {
2589
2596
  var children = _ref.children;
2590
2597
  var ctx = React.useContext(DashReact.ThemeContext);
@@ -2592,7 +2599,7 @@ var AppThemeScope = function AppThemeScope(_ref) {
2592
2599
  children: children
2593
2600
  });
2594
2601
  return /*#__PURE__*/jsxRuntime.jsx(DashReact.ThemeContext.Provider, {
2595
- value: _objectSpread$A(_objectSpread$A({}, ctx), {}, {
2602
+ value: _objectSpread$B(_objectSpread$B({}, ctx), {}, {
2596
2603
  currentTheme: ctx.appTheme,
2597
2604
  currentThemeKey: ctx.appThemeKey,
2598
2605
  theme: ctx.appTheme,
@@ -2704,11 +2711,11 @@ var LayoutContainer = function LayoutContainer(_ref) {
2704
2711
  });
2705
2712
  };
2706
2713
 
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; }
2714
+ 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; }
2715
+ 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; }
2716
+ 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; } } }; }
2717
+ 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; } }
2718
+ 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
2719
  /**
2713
2720
  * Layout template definitions for the dashboard template picker.
2714
2721
  *
@@ -2944,12 +2951,12 @@ function createLayoutFromTemplate(template) {
2944
2951
  cols: template.cols,
2945
2952
  gap: "gap-2"
2946
2953
  };
2947
- var _iterator = _createForOfIteratorHelper$b(template.cells),
2954
+ var _iterator = _createForOfIteratorHelper$d(template.cells),
2948
2955
  _step;
2949
2956
  try {
2950
2957
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
2951
2958
  var cell = _step.value;
2952
- grid[cell.key] = _objectSpread$z({
2959
+ grid[cell.key] = _objectSpread$A({
2953
2960
  component: null,
2954
2961
  hide: cell.hide || false
2955
2962
  }, cell.span ? {
@@ -3963,8 +3970,8 @@ var DiscoverDashboardsDetail = function DiscoverDashboardsDetail(_ref) {
3963
3970
  });
3964
3971
  };
3965
3972
 
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; }
3973
+ 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; }
3974
+ 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
3975
  var LayoutManagerModal = function LayoutManagerModal(_ref) {
3969
3976
  var open = _ref.open,
3970
3977
  setIsOpen = _ref.setIsOpen,
@@ -4200,7 +4207,7 @@ var LayoutManagerModal = function LayoutManagerModal(_ref) {
4200
4207
  }
4201
4208
  return _context2.abrupt("return");
4202
4209
  case 6:
4203
- updatedWorkspace = _objectSpread$y(_objectSpread$y({}, importedWorkspace), {}, {
4210
+ updatedWorkspace = _objectSpread$z(_objectSpread$z({}, importedWorkspace), {}, {
4204
4211
  name: dashboardName.trim(),
4205
4212
  menuId: menuId,
4206
4213
  themeKey: selectedThemeKey
@@ -9555,8 +9562,8 @@ var deepEqual = function deepEqual(a, b, opts) {
9555
9562
 
9556
9563
  var deepEqual$1 = /*@__PURE__*/getDefaultExportFromCjs(deepEqual);
9557
9564
 
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; }
9565
+ 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; }
9566
+ 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
9567
  var PanelEditItem = function PanelEditItem(_ref) {
9561
9568
  var _ComponentManager$get;
9562
9569
  var workspace = _ref.workspace,
@@ -9616,7 +9623,7 @@ var PanelEditItem = function PanelEditItem(_ref) {
9616
9623
  var uuid = newItem.uuid || newItem.uuidString;
9617
9624
  if (uuid) {
9618
9625
  workspaceTemp.selectedProviders = workspaceTemp.selectedProviders || {};
9619
- workspaceTemp.selectedProviders[uuid] = _objectSpread$x(_objectSpread$x({}, workspaceTemp.selectedProviders[uuid] || {}), {}, _defineProperty({}, providerType, providerId));
9626
+ workspaceTemp.selectedProviders[uuid] = _objectSpread$y(_objectSpread$y({}, workspaceTemp.selectedProviders[uuid] || {}), {}, _defineProperty({}, providerType, providerId));
9620
9627
  }
9621
9628
  onUpdate(newItem, workspaceTemp);
9622
9629
  forceUpdate();
@@ -9745,7 +9752,7 @@ var PanelEditItem = function PanelEditItem(_ref) {
9745
9752
  var _ref5 = _slicedToArray(_ref4, 2),
9746
9753
  name = _ref5[0],
9747
9754
  p = _ref5[1];
9748
- return _objectSpread$x({
9755
+ return _objectSpread$y({
9749
9756
  name: name
9750
9757
  }, p);
9751
9758
  });
@@ -9787,11 +9794,11 @@ var PanelEditItem = function PanelEditItem(_ref) {
9787
9794
  };
9788
9795
 
9789
9796
  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; }
9797
+ 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; } } }; }
9798
+ 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; } }
9799
+ 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; }
9800
+ 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; }
9801
+ 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
9802
  var defaultGrid = {
9796
9803
  rows: 1,
9797
9804
  cols: 1,
@@ -9812,7 +9819,7 @@ function GridEditor(_ref) {
9812
9819
  setGrid = _useState2[1];
9813
9820
  var addRow = function addRow() {
9814
9821
  var newRow = grid.rows;
9815
- var newGrid = _objectSpread$w(_objectSpread$w({}, grid), {}, {
9822
+ var newGrid = _objectSpread$x(_objectSpread$x({}, grid), {}, {
9816
9823
  rows: grid.rows + 1
9817
9824
  });
9818
9825
  for (var col = 0; col < grid.cols; col++) {
@@ -9827,7 +9834,7 @@ function GridEditor(_ref) {
9827
9834
  };
9828
9835
  var addColumn = function addColumn() {
9829
9836
  var newCol = grid.cols;
9830
- var newGrid = _objectSpread$w(_objectSpread$w({}, grid), {}, {
9837
+ var newGrid = _objectSpread$x(_objectSpread$x({}, grid), {}, {
9831
9838
  cols: grid.cols + 1
9832
9839
  });
9833
9840
  for (var row = 0; row < grid.rows; row++) {
@@ -9860,8 +9867,8 @@ function GridEditor(_ref) {
9860
9867
  });
9861
9868
  }
9862
9869
  if (grid[nextKey]) {
9863
- var newGrid = _objectSpread$w({}, grid);
9864
- newGrid[currentKey] = _objectSpread$w(_objectSpread$w({}, newGrid[currentKey]), {}, {
9870
+ var newGrid = _objectSpread$x({}, grid);
9871
+ newGrid[currentKey] = _objectSpread$x(_objectSpread$x({}, newGrid[currentKey]), {}, {
9865
9872
  colSpan: newGrid[currentKey].colSpan + 1
9866
9873
  });
9867
9874
  delete newGrid[nextKey];
@@ -9874,8 +9881,8 @@ function GridEditor(_ref) {
9874
9881
  var currentKey = "".concat(row, ".").concat(col);
9875
9882
  var belowKey = "".concat(row + 1, ".").concat(col);
9876
9883
  if (grid[belowKey]) {
9877
- var newGrid = _objectSpread$w({}, grid);
9878
- newGrid[currentKey] = _objectSpread$w(_objectSpread$w({}, newGrid[currentKey]), {}, {
9884
+ var newGrid = _objectSpread$x({}, grid);
9885
+ newGrid[currentKey] = _objectSpread$x(_objectSpread$x({}, newGrid[currentKey]), {}, {
9879
9886
  rowSpan: newGrid[currentKey].rowSpan + 1
9880
9887
  });
9881
9888
  delete newGrid[belowKey];
@@ -9892,7 +9899,7 @@ function GridEditor(_ref) {
9892
9899
  var splitCell = function splitCell(row, col) {
9893
9900
  var key = "".concat(row, ".").concat(col);
9894
9901
  var cell = grid[key];
9895
- var newGrid = _objectSpread$w({}, grid);
9902
+ var newGrid = _objectSpread$x({}, grid);
9896
9903
 
9897
9904
  // we have to check the colspan, and since the colspan is greater than 1
9898
9905
  // Only handle horizontal split if colSpan > 1
@@ -9908,13 +9915,13 @@ function GridEditor(_ref) {
9908
9915
  var oldKey = "".concat(row, ".").concat(c);
9909
9916
  var newKey = "".concat(row, ".").concat(c + 1);
9910
9917
  if (newGrid[oldKey]) {
9911
- newGrid[newKey] = _objectSpread$w({}, newGrid[oldKey]);
9918
+ newGrid[newKey] = _objectSpread$x({}, newGrid[oldKey]);
9912
9919
  delete newGrid[oldKey];
9913
9920
  }
9914
9921
  }
9915
9922
 
9916
9923
  // Update the original cell's colSpan
9917
- newGrid[key] = _objectSpread$w(_objectSpread$w({}, cell), {}, {
9924
+ newGrid[key] = _objectSpread$x(_objectSpread$x({}, cell), {}, {
9918
9925
  colSpan: cell.colSpan - 1
9919
9926
  });
9920
9927
 
@@ -9926,7 +9933,7 @@ function GridEditor(_ref) {
9926
9933
  };
9927
9934
  }
9928
9935
  if (cell.rowSpan > 1) {
9929
- newGrid[key] = _objectSpread$w(_objectSpread$w({}, newGrid[key]), {}, {
9936
+ newGrid[key] = _objectSpread$x(_objectSpread$x({}, newGrid[key]), {}, {
9930
9937
  rowSpan: cell.rowSpan - 1
9931
9938
  });
9932
9939
  newGrid["".concat(row + 1, ".").concat(col)] = {
@@ -9942,7 +9949,7 @@ function GridEditor(_ref) {
9942
9949
  function sortObjectByKeys(obj) {
9943
9950
  var sortedKeys = Object.keys(obj).sort();
9944
9951
  var sortedObj = {};
9945
- var _iterator = _createForOfIteratorHelper$a(sortedKeys),
9952
+ var _iterator = _createForOfIteratorHelper$c(sortedKeys),
9946
9953
  _step;
9947
9954
  try {
9948
9955
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -10045,7 +10052,7 @@ function GridEditor(_ref) {
10045
10052
  var fromKey = "".concat(from.row, ".").concat(from.col);
10046
10053
  var toKey = "".concat(to.row, ".").concat(to.col);
10047
10054
  if (fromKey === toKey) return;
10048
- var newGrid = _objectSpread$w({}, grid);
10055
+ var newGrid = _objectSpread$x({}, grid);
10049
10056
 
10050
10057
  // Swap the cells
10051
10058
  var temp = newGrid[fromKey];
@@ -10071,7 +10078,7 @@ function GridEditor(_ref) {
10071
10078
  // console.log("Grid updated:", sequencedGrid);
10072
10079
  }
10073
10080
  function resetGridLayout() {
10074
- var newGrid = _objectSpread$w({}, defaultGrid);
10081
+ var newGrid = _objectSpread$x({}, defaultGrid);
10075
10082
  setGrid(newGrid);
10076
10083
  onUpdate(newGrid);
10077
10084
  }
@@ -10349,8 +10356,8 @@ var PanelEditItemGrid = function PanelEditItemGrid(_ref) {
10349
10356
  });
10350
10357
  };
10351
10358
 
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; }
10359
+ 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; }
10360
+ 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
10361
  var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
10355
10362
  var item = _ref.item;
10356
10363
  _ref.workspace;
@@ -10373,7 +10380,7 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
10373
10380
  }, [widgetUuid, notificationDefs.length]);
10374
10381
  function handleNotifToggle(typeKey, value) {
10375
10382
  var _window$mainApi2;
10376
- var updated = _objectSpread$v(_objectSpread$v({}, notifPrefs), {}, _defineProperty({}, typeKey, value));
10383
+ var updated = _objectSpread$w(_objectSpread$w({}, notifPrefs), {}, _defineProperty({}, typeKey, value));
10377
10384
  setNotifPrefs(updated);
10378
10385
  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
10386
  window.mainApi.notifications.setPreferences(widgetUuid, _defineProperty({}, typeKey, value));
@@ -10415,6 +10422,366 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
10415
10422
  });
10416
10423
  };
10417
10424
 
10425
+ 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; } } }; }
10426
+ 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; } }
10427
+ 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; }
10428
+ 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; }
10429
+ 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; }
10430
+ var DAYS = [{
10431
+ key: "mon",
10432
+ label: "Mon"
10433
+ }, {
10434
+ key: "tue",
10435
+ label: "Tue"
10436
+ }, {
10437
+ key: "wed",
10438
+ label: "Wed"
10439
+ }, {
10440
+ key: "thu",
10441
+ label: "Thu"
10442
+ }, {
10443
+ key: "fri",
10444
+ label: "Fri"
10445
+ }, {
10446
+ key: "sat",
10447
+ label: "Sat"
10448
+ }, {
10449
+ key: "sun",
10450
+ label: "Sun"
10451
+ }];
10452
+ var INTERVAL_UNITS = [{
10453
+ value: "seconds",
10454
+ displayName: "Seconds"
10455
+ }, {
10456
+ value: "minutes",
10457
+ displayName: "Minutes"
10458
+ }, {
10459
+ value: "hours",
10460
+ displayName: "Hours"
10461
+ }];
10462
+ function intervalToMs(value, unit) {
10463
+ var num = parseInt(value, 10);
10464
+ if (isNaN(num) || num <= 0) return null;
10465
+ switch (unit) {
10466
+ case "seconds":
10467
+ return num * 1000;
10468
+ case "minutes":
10469
+ return num * 60 * 1000;
10470
+ case "hours":
10471
+ return num * 60 * 60 * 1000;
10472
+ default:
10473
+ return num * 60 * 1000;
10474
+ }
10475
+ }
10476
+ function msToInterval(ms) {
10477
+ if (!ms) return {
10478
+ value: 5,
10479
+ unit: "minutes"
10480
+ };
10481
+ if (ms >= 3600000 && ms % 3600000 === 0) return {
10482
+ value: ms / 3600000,
10483
+ unit: "hours"
10484
+ };
10485
+ if (ms >= 60000 && ms % 60000 === 0) return {
10486
+ value: ms / 60000,
10487
+ unit: "minutes"
10488
+ };
10489
+ return {
10490
+ value: ms / 1000,
10491
+ unit: "seconds"
10492
+ };
10493
+ }
10494
+ function TaskScheduleEditor(_ref) {
10495
+ var taskDef = _ref.taskDef,
10496
+ taskState = _ref.taskState,
10497
+ widgetId = _ref.widgetId,
10498
+ widgetName = _ref.widgetName,
10499
+ workspaceId = _ref.workspaceId;
10500
+ var _useState = React.useState((taskState === null || taskState === void 0 ? void 0 : taskState.enabled) || false),
10501
+ _useState2 = _slicedToArray(_useState, 2),
10502
+ enabled = _useState2[0],
10503
+ setEnabled = _useState2[1];
10504
+ var _useState3 = React.useState((taskState === null || taskState === void 0 ? void 0 : taskState.scheduleType) || "interval"),
10505
+ _useState4 = _slicedToArray(_useState3, 2),
10506
+ scheduleType = _useState4[0],
10507
+ setScheduleType = _useState4[1];
10508
+ var initialInterval = msToInterval(taskState === null || taskState === void 0 ? void 0 : taskState.intervalMs);
10509
+ var _useState5 = React.useState(initialInterval.value),
10510
+ _useState6 = _slicedToArray(_useState5, 2),
10511
+ intervalValue = _useState6[0],
10512
+ setIntervalValue = _useState6[1];
10513
+ var _useState7 = React.useState(initialInterval.unit),
10514
+ _useState8 = _slicedToArray(_useState7, 2),
10515
+ intervalUnit = _useState8[0],
10516
+ setIntervalUnit = _useState8[1];
10517
+ var _useState9 = React.useState((taskState === null || taskState === void 0 ? void 0 : taskState.days) || ["every"]),
10518
+ _useState0 = _slicedToArray(_useState9, 2),
10519
+ days = _useState0[0],
10520
+ setDays = _useState0[1];
10521
+ var _useState1 = React.useState((taskState === null || taskState === void 0 ? void 0 : taskState.time) || "09:00"),
10522
+ _useState10 = _slicedToArray(_useState1, 2),
10523
+ time = _useState10[0],
10524
+ setTime = _useState10[1];
10525
+ var hasSchedule = !!taskState;
10526
+ function saveTask() {
10527
+ var _window$mainApi;
10528
+ var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
10529
+ if (!((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && (_window$mainApi = _window$mainApi.scheduler) !== null && _window$mainApi !== void 0 && _window$mainApi.registerTask)) return;
10530
+ var payload = _objectSpread$v({
10531
+ widgetId: widgetId,
10532
+ widgetName: widgetName,
10533
+ workspaceId: workspaceId || "",
10534
+ taskKey: taskDef.key,
10535
+ handler: taskDef.handler,
10536
+ displayName: taskDef.displayName,
10537
+ scheduleType: scheduleType,
10538
+ intervalMs: intervalToMs(intervalValue, intervalUnit),
10539
+ days: days,
10540
+ time: time,
10541
+ enabled: enabled
10542
+ }, overrides);
10543
+ window.mainApi.scheduler.registerTask(payload);
10544
+ }
10545
+ function handleToggle(value) {
10546
+ setEnabled(value);
10547
+ if (!hasSchedule && value) {
10548
+ // First enable — register with default schedule
10549
+ saveTask({
10550
+ enabled: true
10551
+ });
10552
+ } else if (hasSchedule) {
10553
+ var taskId = "".concat(widgetId, ":").concat(taskDef.key);
10554
+ if (value) {
10555
+ var _window$mainApi2;
10556
+ (_window$mainApi2 = window.mainApi) === null || _window$mainApi2 === void 0 || (_window$mainApi2 = _window$mainApi2.scheduler) === null || _window$mainApi2 === void 0 || _window$mainApi2.enableTask(taskId);
10557
+ } else {
10558
+ var _window$mainApi3;
10559
+ (_window$mainApi3 = window.mainApi) === null || _window$mainApi3 === void 0 || (_window$mainApi3 = _window$mainApi3.scheduler) === null || _window$mainApi3 === void 0 || _window$mainApi3.disableTask(taskId);
10560
+ }
10561
+ }
10562
+ }
10563
+ function handleScheduleTypeChange(type) {
10564
+ setScheduleType(type);
10565
+ saveTask({
10566
+ scheduleType: type,
10567
+ enabled: true
10568
+ });
10569
+ if (!enabled) setEnabled(true);
10570
+ }
10571
+ function handleIntervalChange(val, unit) {
10572
+ setIntervalValue(val);
10573
+ if (unit) setIntervalUnit(unit);
10574
+ var ms = intervalToMs(val, unit || intervalUnit);
10575
+ if (ms) {
10576
+ saveTask({
10577
+ scheduleType: "interval",
10578
+ intervalMs: ms,
10579
+ enabled: true
10580
+ });
10581
+ if (!enabled) setEnabled(true);
10582
+ }
10583
+ }
10584
+ function handleDayToggle(dayKey) {
10585
+ var newDays;
10586
+ if (dayKey === "every") {
10587
+ newDays = days.includes("every") ? [] : ["every"];
10588
+ } else {
10589
+ // Remove "every" if it's there, toggle the specific day
10590
+ var filtered = days.filter(function (d) {
10591
+ return d !== "every";
10592
+ });
10593
+ if (filtered.includes(dayKey)) {
10594
+ newDays = filtered.filter(function (d) {
10595
+ return d !== dayKey;
10596
+ });
10597
+ } else {
10598
+ newDays = [].concat(_toConsumableArray(filtered), [dayKey]);
10599
+ }
10600
+ if (newDays.length === 0) newDays = ["every"];
10601
+ }
10602
+ setDays(newDays);
10603
+ saveTask({
10604
+ scheduleType: "dayTime",
10605
+ days: newDays,
10606
+ time: time,
10607
+ enabled: true
10608
+ });
10609
+ if (!enabled) setEnabled(true);
10610
+ }
10611
+ function handleTimeChange(newTime) {
10612
+ setTime(newTime);
10613
+ saveTask({
10614
+ scheduleType: "dayTime",
10615
+ days: days,
10616
+ time: newTime,
10617
+ enabled: true
10618
+ });
10619
+ if (!enabled) setEnabled(true);
10620
+ }
10621
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
10622
+ className: "border border-white/10 rounded-lg p-4 space-y-3",
10623
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
10624
+ className: "flex flex-row items-center justify-between",
10625
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
10626
+ className: "flex flex-col",
10627
+ children: [/*#__PURE__*/jsxRuntime.jsx("span", {
10628
+ className: "text-sm font-medium",
10629
+ children: taskDef.displayName
10630
+ }), taskDef.description && /*#__PURE__*/jsxRuntime.jsx("span", {
10631
+ className: "text-xs opacity-50",
10632
+ children: taskDef.description
10633
+ })]
10634
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Switch, {
10635
+ checked: enabled,
10636
+ onChange: handleToggle
10637
+ })]
10638
+ }), enabled && /*#__PURE__*/jsxRuntime.jsxs("div", {
10639
+ className: "space-y-3 pt-1",
10640
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
10641
+ className: "flex flex-row space-x-4",
10642
+ children: [/*#__PURE__*/jsxRuntime.jsxs("label", {
10643
+ className: "flex items-center space-x-2 cursor-pointer text-sm",
10644
+ children: [/*#__PURE__*/jsxRuntime.jsx("input", {
10645
+ type: "radio",
10646
+ name: "schedule-type-".concat(taskDef.key),
10647
+ checked: scheduleType === "interval",
10648
+ onChange: function onChange() {
10649
+ return handleScheduleTypeChange("interval");
10650
+ },
10651
+ className: "accent-blue-500"
10652
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
10653
+ children: "Interval"
10654
+ })]
10655
+ }), /*#__PURE__*/jsxRuntime.jsxs("label", {
10656
+ className: "flex items-center space-x-2 cursor-pointer text-sm",
10657
+ children: [/*#__PURE__*/jsxRuntime.jsx("input", {
10658
+ type: "radio",
10659
+ name: "schedule-type-".concat(taskDef.key),
10660
+ checked: scheduleType === "dayTime",
10661
+ onChange: function onChange() {
10662
+ return handleScheduleTypeChange("dayTime");
10663
+ },
10664
+ className: "accent-blue-500"
10665
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
10666
+ children: "Day & Time"
10667
+ })]
10668
+ })]
10669
+ }), scheduleType === "interval" && /*#__PURE__*/jsxRuntime.jsxs("div", {
10670
+ className: "flex flex-row items-end space-x-2",
10671
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.InputText, {
10672
+ label: "Every",
10673
+ type: "number",
10674
+ value: String(intervalValue),
10675
+ onChange: function onChange(e) {
10676
+ return handleIntervalChange(e.target.value, intervalUnit);
10677
+ },
10678
+ className: "w-24",
10679
+ min: "1"
10680
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.SelectInput, {
10681
+ value: intervalUnit,
10682
+ onChange: function onChange(val) {
10683
+ return handleIntervalChange(intervalValue, val);
10684
+ },
10685
+ options: INTERVAL_UNITS,
10686
+ className: "w-32"
10687
+ })]
10688
+ }), scheduleType === "dayTime" && /*#__PURE__*/jsxRuntime.jsxs("div", {
10689
+ className: "space-y-3",
10690
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
10691
+ className: "flex flex-col space-y-2",
10692
+ children: [/*#__PURE__*/jsxRuntime.jsx("span", {
10693
+ className: "text-xs opacity-70",
10694
+ children: "Days"
10695
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
10696
+ className: "flex flex-row flex-wrap gap-2",
10697
+ children: [DAYS.map(function (day) {
10698
+ var isSelected = days.includes(day.key) || days.includes("every");
10699
+ return /*#__PURE__*/jsxRuntime.jsx("button", {
10700
+ onClick: function onClick() {
10701
+ return handleDayToggle(day.key);
10702
+ },
10703
+ 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"),
10704
+ children: day.label
10705
+ }, day.key);
10706
+ }), /*#__PURE__*/jsxRuntime.jsx("button", {
10707
+ onClick: function onClick() {
10708
+ return handleDayToggle("every");
10709
+ },
10710
+ 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"),
10711
+ children: "Every day"
10712
+ })]
10713
+ })]
10714
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.InputText, {
10715
+ label: "Time",
10716
+ type: "time",
10717
+ value: time,
10718
+ onChange: function onChange(e) {
10719
+ return handleTimeChange(e.target.value);
10720
+ },
10721
+ className: "w-36"
10722
+ })]
10723
+ }), (taskState === null || taskState === void 0 ? void 0 : taskState.lastFiredAt) && /*#__PURE__*/jsxRuntime.jsxs("div", {
10724
+ className: "text-xs opacity-40",
10725
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
10726
+ icon: "clock",
10727
+ className: "h-3 w-3 mr-1"
10728
+ }), "Last fired: ", new Date(taskState.lastFiredAt).toLocaleString(), taskState.fireCount > 0 && " (".concat(taskState.fireCount, " total)")]
10729
+ })]
10730
+ })]
10731
+ });
10732
+ }
10733
+ var PanelEditItemSchedule = function PanelEditItemSchedule(_ref2) {
10734
+ var item = _ref2.item,
10735
+ workspace = _ref2.workspace;
10736
+ _ref2.onUpdate;
10737
+ var widgetConfig = item ? ComponentManager.config(item.component, item) : null;
10738
+ var scheduledTaskDefs = (widgetConfig === null || widgetConfig === void 0 ? void 0 : widgetConfig.scheduledTasks) || [];
10739
+ var widgetUuid = (item === null || item === void 0 ? void 0 : item.uuid) || (item === null || item === void 0 ? void 0 : item.uuidString);
10740
+ var widgetName = item === null || item === void 0 ? void 0 : item.component;
10741
+ var workspaceId = workspace === null || workspace === void 0 ? void 0 : workspace.id;
10742
+ var _useState11 = React.useState({}),
10743
+ _useState12 = _slicedToArray(_useState11, 2),
10744
+ taskStates = _useState12[0],
10745
+ setTaskStates = _useState12[1];
10746
+ React.useEffect(function () {
10747
+ var _window$mainApi4;
10748
+ 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) {
10749
+ window.mainApi.scheduler.getTasks(widgetUuid).then(function (tasks) {
10750
+ var stateMap = {};
10751
+ var _iterator = _createForOfIteratorHelper$b(tasks || []),
10752
+ _step;
10753
+ try {
10754
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
10755
+ var task = _step.value;
10756
+ stateMap[task.taskKey] = task;
10757
+ }
10758
+ } catch (err) {
10759
+ _iterator.e(err);
10760
+ } finally {
10761
+ _iterator.f();
10762
+ }
10763
+ setTaskStates(stateMap);
10764
+ });
10765
+ }
10766
+ }, [widgetUuid, scheduledTaskDefs.length]);
10767
+ if (!item || scheduledTaskDefs.length === 0) return null;
10768
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
10769
+ className: "flex flex-col flex-1 min-h-0 overflow-y-auto p-6 space-y-4",
10770
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading3, {
10771
+ title: "Schedule",
10772
+ padding: false
10773
+ }), scheduledTaskDefs.map(function (taskDef) {
10774
+ return /*#__PURE__*/jsxRuntime.jsx(TaskScheduleEditor, {
10775
+ taskDef: taskDef,
10776
+ taskState: taskStates[taskDef.key] || null,
10777
+ widgetId: widgetUuid,
10778
+ widgetName: widgetName,
10779
+ workspaceId: workspaceId
10780
+ }, taskDef.key);
10781
+ })]
10782
+ });
10783
+ };
10784
+
10418
10785
  var PanelCode = function PanelCode(_ref) {
10419
10786
  var workspace = _ref.workspace,
10420
10787
  onUpdate = _ref.onUpdate,
@@ -10748,9 +11115,10 @@ var PanelEditItemHandlers = function PanelEditItemHandlers(_ref) {
10748
11115
  };
10749
11116
 
10750
11117
  var getSections = function getSections(item) {
10751
- var _widgetConfig$notific;
11118
+ var _widgetConfig$notific, _widgetConfig$schedul;
10752
11119
  var widgetConfig = item ? ComponentManager.config(item.component, item) : null;
10753
11120
  var hasNotifications = (widgetConfig === null || widgetConfig === void 0 || (_widgetConfig$notific = widgetConfig.notifications) === null || _widgetConfig$notific === void 0 ? void 0 : _widgetConfig$notific.length) > 0;
11121
+ var hasScheduledTasks = (widgetConfig === null || widgetConfig === void 0 || (_widgetConfig$schedul = widgetConfig.scheduledTasks) === null || _widgetConfig$schedul === void 0 ? void 0 : _widgetConfig$schedul.length) > 0;
10754
11122
  return [{
10755
11123
  key: "edit",
10756
11124
  label: "Settings",
@@ -10763,6 +11131,10 @@ var getSections = function getSections(item) {
10763
11131
  key: "notifications",
10764
11132
  label: "Notifications",
10765
11133
  icon: "bell"
11134
+ }] : []), _toConsumableArray(hasScheduledTasks ? [{
11135
+ key: "schedule",
11136
+ label: "Schedule",
11137
+ icon: "clock"
10766
11138
  }] : []), _toConsumableArray((item === null || item === void 0 ? void 0 : item.workspace) !== "layout" ? [{
10767
11139
  key: "handlers",
10768
11140
  label: "Listeners",
@@ -10881,6 +11253,10 @@ var LayoutBuilderConfigModal = function LayoutBuilderConfigModal(_ref) {
10881
11253
  item: itemSelected,
10882
11254
  onUpdate: handleEditChange,
10883
11255
  workspace: workspaceSelected
11256
+ }), activeSection === "schedule" && /*#__PURE__*/jsxRuntime.jsx(PanelEditItemSchedule, {
11257
+ item: itemSelected,
11258
+ onUpdate: handleEditChange,
11259
+ workspace: workspaceSelected
10884
11260
  }), activeSection === "handlers" && /*#__PURE__*/jsxRuntime.jsx(PanelEditItemHandlers, {
10885
11261
  item: itemSelected,
10886
11262
  onUpdate: handleEditChange,
@@ -13207,9 +13583,9 @@ var getUserConfigurableProviders = function getUserConfigurableProviders(provide
13207
13583
  });
13208
13584
  };
13209
13585
 
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; }
13586
+ 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; } } }; }
13587
+ 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; } }
13588
+ 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
13589
  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
13590
  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
13591
  var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
@@ -13476,11 +13852,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
13476
13852
 
13477
13853
  // Flatten all widgets from all packages for the widget list
13478
13854
  flatWidgets = [];
13479
- _iterator = _createForOfIteratorHelper$9(result.packages || []);
13855
+ _iterator = _createForOfIteratorHelper$a(result.packages || []);
13480
13856
  try {
13481
13857
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
13482
13858
  pkg = _step.value;
13483
- _iterator2 = _createForOfIteratorHelper$9(pkg.widgets || []);
13859
+ _iterator2 = _createForOfIteratorHelper$a(pkg.widgets || []);
13484
13860
  try {
13485
13861
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
13486
13862
  widget = _step2.value;
@@ -15036,9 +15412,9 @@ var ProviderBadge = function ProviderBadge(_ref) {
15036
15412
  });
15037
15413
  };
15038
15414
 
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; }
15415
+ 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; } } }; }
15416
+ 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; } }
15417
+ 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
15418
  var WidgetCardHeader = function WidgetCardHeader(_ref) {
15043
15419
  var item = _ref.item,
15044
15420
  widget = _ref.widget,
@@ -15082,7 +15458,7 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
15082
15458
  var el = headerRef.current;
15083
15459
  if (!el) return;
15084
15460
  var observer = new ResizeObserver(function (entries) {
15085
- var _iterator = _createForOfIteratorHelper$8(entries),
15461
+ var _iterator = _createForOfIteratorHelper$9(entries),
15086
15462
  _step;
15087
15463
  try {
15088
15464
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -19874,9 +20250,9 @@ var ExternalWidget = function ExternalWidget(_ref) {
19874
20250
  var GRID_CELL_WIDGET_TYPE = "grid-cell-widget";
19875
20251
  var SIDEBAR_WIDGET_TYPE = "sidebar-widget";
19876
20252
 
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; }
20253
+ 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; } } }; }
20254
+ 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; } }
20255
+ 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
20256
  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
20257
  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
20258
  var DraggableDroppableCellBody = function DraggableDroppableCellBody(_ref) {
@@ -20440,7 +20816,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
20440
20816
  return selectable["delete"](cn);
20441
20817
  });
20442
20818
  var resolved = new Set();
20443
- var _iterator = _createForOfIteratorHelper$7(selectable),
20819
+ var _iterator = _createForOfIteratorHelper$8(selectable),
20444
20820
  _step;
20445
20821
  try {
20446
20822
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -22580,9 +22956,9 @@ function isWidgetResolvable(componentKey) {
22580
22956
 
22581
22957
  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
22958
  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; }
22959
+ 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; } } }; }
22960
+ 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; } }
22961
+ 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
22962
  /**
22587
22963
  * The model for all layout components used primarily in the renderLayout method
22588
22964
  * @param {Object} layoutItem an object containing various attributes of the layout item
@@ -22594,7 +22970,7 @@ function _arrayLikeToArray$6(r, a) { (null == a || a > r.length) && (a = r.lengt
22594
22970
  function sortObjectByKeys(obj) {
22595
22971
  var sortedKeys = Object.keys(obj).sort();
22596
22972
  var sortedObj = {};
22597
- var _iterator = _createForOfIteratorHelper$6(sortedKeys),
22973
+ var _iterator = _createForOfIteratorHelper$7(sortedKeys),
22598
22974
  _step;
22599
22975
  try {
22600
22976
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -23243,6 +23619,13 @@ var ComponentConfigModel = function ComponentConfigModel() {
23243
23619
  * Each entry: { key, displayName, description, defaultEnabled }
23244
23620
  */
23245
23621
  obj.notifications = "notifications" in obj ? obj["notifications"] : [];
23622
+
23623
+ /**
23624
+ * scheduledTasks
23625
+ * Scheduled task handlers this widget exposes.
23626
+ * Each entry: { key, handler, displayName, description }
23627
+ */
23628
+ obj.scheduledTasks = "scheduledTasks" in obj ? obj["scheduledTasks"] : [];
23246
23629
  return obj;
23247
23630
  };
23248
23631
 
@@ -25852,9 +26235,9 @@ var useDashboard = function useDashboard() {
25852
26235
  });
25853
26236
  };
25854
26237
 
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; }
26238
+ 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; } } }; }
26239
+ 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; } }
26240
+ 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
26241
 
25859
26242
  /**
25860
26243
  * useWidgetProviders Hook
@@ -25905,7 +26288,7 @@ var useWidgetProviders = function useWidgetProviders() {
25905
26288
  // 1. Widget-level: stored directly on the layout item by handleSelectProvider
25906
26289
  // 2. Workspace-level: stored as workspace.selectedProviders[widgetId][providerType]
25907
26290
  var providers = {};
25908
- var _iterator = _createForOfIteratorHelper$5(providerDeclarations),
26291
+ var _iterator = _createForOfIteratorHelper$6(providerDeclarations),
25909
26292
  _step;
25910
26293
  try {
25911
26294
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -26640,6 +27023,146 @@ var useNotifications = function useNotifications() {
26640
27023
  };
26641
27024
  };
26642
27025
 
27026
+ 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; } } }; }
27027
+ 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; } }
27028
+ 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; }
27029
+
27030
+ /**
27031
+ * useScheduler Hook
27032
+ *
27033
+ * Provides scheduled task functionality for widgets.
27034
+ * The widget provides handler functions keyed by the task handler names
27035
+ * declared in the widget's .dash.js config (scheduledTasks[].handler).
27036
+ *
27037
+ * Tasks are registered/configured via the settings panel (PanelEditItemSchedule).
27038
+ * This hook listens for task-fired events and calls the matching handler.
27039
+ *
27040
+ * @param {Object} handlers - { [handlerName]: async () => void }
27041
+ * @returns {Object}
27042
+ * - tasks: TaskEntry[] — current schedule state
27043
+ * - lastFire: { taskId, taskKey, firedAt } | null — latest fire event
27044
+ * - pendingResults: fires that happened while widget was unmounted
27045
+ */
27046
+ var useScheduler = function useScheduler() {
27047
+ var _workspaceContext$wor;
27048
+ var handlers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
27049
+ var widgetContext = React.useContext(WidgetContext);
27050
+ var workspaceContext = React.useContext(WorkspaceContext);
27051
+ if (!widgetContext) {
27052
+ throw new Error("useScheduler must be used within a Widget component. " + "Make sure your component is rendered inside <Widget> and within a DashboardWrapper.");
27053
+ }
27054
+ var _ref = widgetContext.widgetData || {},
27055
+ componentName = _ref.componentName,
27056
+ uuid = _ref.uuid,
27057
+ scheduledTasks = _ref.scheduledTasks;
27058
+ var widgetId = uuid;
27059
+ workspaceContext === null || workspaceContext === void 0 || (_workspaceContext$wor = workspaceContext.workspaceData) === null || _workspaceContext$wor === void 0 ? void 0 : _workspaceContext$wor.id;
27060
+ var _useState = React.useState([]),
27061
+ _useState2 = _slicedToArray(_useState, 2),
27062
+ tasks = _useState2[0],
27063
+ setTasks = _useState2[1];
27064
+ var _useState3 = React.useState(null),
27065
+ _useState4 = _slicedToArray(_useState3, 2),
27066
+ lastFire = _useState4[0],
27067
+ setLastFire = _useState4[1];
27068
+ var _useState5 = React.useState([]),
27069
+ _useState6 = _slicedToArray(_useState5, 2),
27070
+ pendingResults = _useState6[0],
27071
+ setPendingResults = _useState6[1];
27072
+
27073
+ // Keep handlers in a ref so the event listener always has the latest
27074
+ var handlersRef = React.useRef(handlers);
27075
+ handlersRef.current = handlers;
27076
+
27077
+ // Validate handler keys against widget's declared scheduledTasks
27078
+ React.useEffect(function () {
27079
+ if (!scheduledTasks || scheduledTasks.length === 0) return;
27080
+ var declaredHandlers = scheduledTasks.map(function (t) {
27081
+ return t.handler;
27082
+ });
27083
+ for (var _i = 0, _Object$keys = Object.keys(handlers); _i < _Object$keys.length; _i++) {
27084
+ var key = _Object$keys[_i];
27085
+ if (!declaredHandlers.includes(key)) ;
27086
+ }
27087
+ // eslint-disable-next-line react-hooks/exhaustive-deps
27088
+ }, [componentName, scheduledTasks]);
27089
+
27090
+ // Load existing tasks and pending results on mount
27091
+ React.useEffect(function () {
27092
+ var _window$mainApi;
27093
+ if (!widgetId || !((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && _window$mainApi.scheduler)) return;
27094
+ window.mainApi.scheduler.getTasks(widgetId).then(function (existingTasks) {
27095
+ setTasks(existingTasks || []);
27096
+ });
27097
+ window.mainApi.scheduler.getPending(widgetId).then(function (pending) {
27098
+ if (pending && pending.length > 0) {
27099
+ setPendingResults(pending);
27100
+ // Call handlers for each pending result
27101
+ var _iterator = _createForOfIteratorHelper$5(pending),
27102
+ _step;
27103
+ try {
27104
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
27105
+ var result = _step.value;
27106
+ var handlerFn = handlersRef.current[result.taskKey];
27107
+ if (handlerFn) {
27108
+ try {
27109
+ handlerFn();
27110
+ } catch (err) {
27111
+ }
27112
+ }
27113
+ }
27114
+ } catch (err) {
27115
+ _iterator.e(err);
27116
+ } finally {
27117
+ _iterator.f();
27118
+ }
27119
+ }
27120
+ });
27121
+ }, [widgetId]);
27122
+
27123
+ // Subscribe to task-fired events
27124
+ React.useEffect(function () {
27125
+ var _window$mainApi2;
27126
+ 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;
27127
+ var removeListener = window.mainApi.scheduler.onTaskFired(function (data) {
27128
+ if (data.widgetId !== widgetId) return;
27129
+ setLastFire({
27130
+ taskId: data.taskId,
27131
+ taskKey: data.taskKey,
27132
+ firedAt: data.firedAt
27133
+ });
27134
+
27135
+ // Refresh tasks to get updated lastFiredAt / fireCount
27136
+ window.mainApi.scheduler.getTasks(widgetId).then(function (updated) {
27137
+ setTasks(updated || []);
27138
+ });
27139
+
27140
+ // Call the matching handler
27141
+ var handlerFn = handlersRef.current[data.taskKey];
27142
+ if (handlerFn) {
27143
+ try {
27144
+ handlerFn();
27145
+ } catch (err) {
27146
+ }
27147
+ }
27148
+ });
27149
+ return removeListener;
27150
+ }, [widgetId]);
27151
+ var refreshTasks = React.useCallback(function () {
27152
+ var _window$mainApi3;
27153
+ if (!widgetId || !((_window$mainApi3 = window.mainApi) !== null && _window$mainApi3 !== void 0 && _window$mainApi3.scheduler)) return;
27154
+ window.mainApi.scheduler.getTasks(widgetId).then(function (updated) {
27155
+ setTasks(updated || []);
27156
+ });
27157
+ }, [widgetId]);
27158
+ return {
27159
+ tasks: tasks,
27160
+ lastFire: lastFire,
27161
+ pendingResults: pendingResults,
27162
+ refreshTasks: refreshTasks
27163
+ };
27164
+ };
27165
+
26643
27166
  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
27167
  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
27168
  var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
@@ -45464,6 +45987,7 @@ exports.useMcpProvider = useMcpProvider;
45464
45987
  exports.useNotifications = useNotifications;
45465
45988
  exports.useProvider = useProvider;
45466
45989
  exports.useProviderClient = useProviderClient;
45990
+ exports.useScheduler = useScheduler;
45467
45991
  exports.useWidgetEvents = useWidgetEvents;
45468
45992
  exports.useWidgetProviders = useWidgetProviders;
45469
45993
  exports.validateCellMerge = validateCellMerge;