@trops/dash-core 0.1.151 → 0.1.152
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.esm.js +343 -48
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +343 -47
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -2695,9 +2695,9 @@ var LayoutContainer = function LayoutContainer(_ref) {
|
|
|
2695
2695
|
|
|
2696
2696
|
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; }
|
|
2697
2697
|
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; }
|
|
2698
|
-
function _createForOfIteratorHelper$
|
|
2699
|
-
function _unsupportedIterableToArray$
|
|
2700
|
-
function _arrayLikeToArray$
|
|
2698
|
+
function _createForOfIteratorHelper$e(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$e(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; } } }; }
|
|
2699
|
+
function _unsupportedIterableToArray$e(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$e(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$e(r, a) : void 0; } }
|
|
2700
|
+
function _arrayLikeToArray$e(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; }
|
|
2701
2701
|
/**
|
|
2702
2702
|
* Layout template definitions for the dashboard template picker.
|
|
2703
2703
|
*
|
|
@@ -2933,7 +2933,7 @@ function createLayoutFromTemplate(template) {
|
|
|
2933
2933
|
cols: template.cols,
|
|
2934
2934
|
gap: "gap-2"
|
|
2935
2935
|
};
|
|
2936
|
-
var _iterator = _createForOfIteratorHelper$
|
|
2936
|
+
var _iterator = _createForOfIteratorHelper$e(template.cells),
|
|
2937
2937
|
_step;
|
|
2938
2938
|
try {
|
|
2939
2939
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -9776,9 +9776,9 @@ var PanelEditItem = function PanelEditItem(_ref) {
|
|
|
9776
9776
|
};
|
|
9777
9777
|
|
|
9778
9778
|
var _excluded$5 = ["rows", "cols"];
|
|
9779
|
-
function _createForOfIteratorHelper$
|
|
9780
|
-
function _unsupportedIterableToArray$
|
|
9781
|
-
function _arrayLikeToArray$
|
|
9779
|
+
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; } } }; }
|
|
9780
|
+
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; } }
|
|
9781
|
+
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; }
|
|
9782
9782
|
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; }
|
|
9783
9783
|
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; }
|
|
9784
9784
|
var defaultGrid = {
|
|
@@ -9931,7 +9931,7 @@ function GridEditor(_ref) {
|
|
|
9931
9931
|
function sortObjectByKeys(obj) {
|
|
9932
9932
|
var sortedKeys = Object.keys(obj).sort();
|
|
9933
9933
|
var sortedObj = {};
|
|
9934
|
-
var _iterator = _createForOfIteratorHelper$
|
|
9934
|
+
var _iterator = _createForOfIteratorHelper$d(sortedKeys),
|
|
9935
9935
|
_step;
|
|
9936
9936
|
try {
|
|
9937
9937
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -10404,9 +10404,9 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
|
|
|
10404
10404
|
});
|
|
10405
10405
|
};
|
|
10406
10406
|
|
|
10407
|
-
function _createForOfIteratorHelper$
|
|
10408
|
-
function _unsupportedIterableToArray$
|
|
10409
|
-
function _arrayLikeToArray$
|
|
10407
|
+
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; } } }; }
|
|
10408
|
+
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; } }
|
|
10409
|
+
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; }
|
|
10410
10410
|
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; }
|
|
10411
10411
|
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; }
|
|
10412
10412
|
var DAYS = [{
|
|
@@ -10735,7 +10735,7 @@ var PanelEditItemSchedule = function PanelEditItemSchedule(_ref2) {
|
|
|
10735
10735
|
setIsLoading(true);
|
|
10736
10736
|
window.mainApi.scheduler.getTasks(widgetUuid).then(function (tasks) {
|
|
10737
10737
|
var stateMap = {};
|
|
10738
|
-
var _iterator = _createForOfIteratorHelper$
|
|
10738
|
+
var _iterator = _createForOfIteratorHelper$c(tasks || []),
|
|
10739
10739
|
_step;
|
|
10740
10740
|
try {
|
|
10741
10741
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -13585,9 +13585,9 @@ var getUserConfigurableProviders = function getUserConfigurableProviders(provide
|
|
|
13585
13585
|
});
|
|
13586
13586
|
};
|
|
13587
13587
|
|
|
13588
|
-
function _createForOfIteratorHelper$
|
|
13589
|
-
function _unsupportedIterableToArray$
|
|
13590
|
-
function _arrayLikeToArray$
|
|
13588
|
+
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; } } }; }
|
|
13589
|
+
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; } }
|
|
13590
|
+
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; }
|
|
13591
13591
|
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; }
|
|
13592
13592
|
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; }
|
|
13593
13593
|
var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
@@ -13854,11 +13854,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
13854
13854
|
|
|
13855
13855
|
// Flatten all widgets from all packages for the widget list
|
|
13856
13856
|
flatWidgets = [];
|
|
13857
|
-
_iterator = _createForOfIteratorHelper$
|
|
13857
|
+
_iterator = _createForOfIteratorHelper$b(result.packages || []);
|
|
13858
13858
|
try {
|
|
13859
13859
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
13860
13860
|
pkg = _step.value;
|
|
13861
|
-
_iterator2 = _createForOfIteratorHelper$
|
|
13861
|
+
_iterator2 = _createForOfIteratorHelper$b(pkg.widgets || []);
|
|
13862
13862
|
try {
|
|
13863
13863
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
13864
13864
|
widget = _step2.value;
|
|
@@ -15414,9 +15414,9 @@ var ProviderBadge = function ProviderBadge(_ref) {
|
|
|
15414
15414
|
});
|
|
15415
15415
|
};
|
|
15416
15416
|
|
|
15417
|
-
function _createForOfIteratorHelper$
|
|
15418
|
-
function _unsupportedIterableToArray$
|
|
15419
|
-
function _arrayLikeToArray$
|
|
15417
|
+
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; } } }; }
|
|
15418
|
+
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; } }
|
|
15419
|
+
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; }
|
|
15420
15420
|
var WidgetCardHeader = function WidgetCardHeader(_ref) {
|
|
15421
15421
|
var item = _ref.item,
|
|
15422
15422
|
widget = _ref.widget,
|
|
@@ -15460,7 +15460,7 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
|
|
|
15460
15460
|
var el = headerRef.current;
|
|
15461
15461
|
if (!el) return;
|
|
15462
15462
|
var observer = new ResizeObserver(function (entries) {
|
|
15463
|
-
var _iterator = _createForOfIteratorHelper$
|
|
15463
|
+
var _iterator = _createForOfIteratorHelper$a(entries),
|
|
15464
15464
|
_step;
|
|
15465
15465
|
try {
|
|
15466
15466
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -15761,6 +15761,286 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
|
|
|
15761
15761
|
});
|
|
15762
15762
|
};
|
|
15763
15763
|
|
|
15764
|
+
/**
|
|
15765
|
+
* useWidgetSchedulerStatus
|
|
15766
|
+
*
|
|
15767
|
+
* Display-only hook for reading scheduler task state outside WidgetContext.
|
|
15768
|
+
* Used by WidgetCardStatusBar to show live timer status in the widget footer.
|
|
15769
|
+
*
|
|
15770
|
+
* Unlike useScheduler, this hook:
|
|
15771
|
+
* - Does NOT require WidgetContext (works outside the widget tree)
|
|
15772
|
+
* - Does NOT execute handlers — purely for display
|
|
15773
|
+
* - Calls mainApi.scheduler.getTasks() directly
|
|
15774
|
+
*
|
|
15775
|
+
* @param {string} widgetId - The widget instance UUID
|
|
15776
|
+
* @returns {{ tasks: Array, isLoading: boolean }}
|
|
15777
|
+
*/
|
|
15778
|
+
var useWidgetSchedulerStatus = function useWidgetSchedulerStatus(widgetId) {
|
|
15779
|
+
var _useState = useState([]),
|
|
15780
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
15781
|
+
tasks = _useState2[0],
|
|
15782
|
+
setTasks = _useState2[1];
|
|
15783
|
+
var _useState3 = useState(true),
|
|
15784
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
15785
|
+
isLoading = _useState4[0],
|
|
15786
|
+
setIsLoading = _useState4[1];
|
|
15787
|
+
var fetchTasks = useCallback(function () {
|
|
15788
|
+
var _window$mainApi;
|
|
15789
|
+
if (!widgetId || !((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && _window$mainApi.scheduler)) {
|
|
15790
|
+
setIsLoading(false);
|
|
15791
|
+
return;
|
|
15792
|
+
}
|
|
15793
|
+
window.mainApi.scheduler.getTasks(widgetId).then(function (result) {
|
|
15794
|
+
setTasks(result || []);
|
|
15795
|
+
setIsLoading(false);
|
|
15796
|
+
});
|
|
15797
|
+
}, [widgetId]);
|
|
15798
|
+
|
|
15799
|
+
// Load tasks on mount
|
|
15800
|
+
useEffect(function () {
|
|
15801
|
+
fetchTasks();
|
|
15802
|
+
}, [fetchTasks]);
|
|
15803
|
+
|
|
15804
|
+
// Subscribe to task-fired events to auto-refresh
|
|
15805
|
+
useEffect(function () {
|
|
15806
|
+
var _window$mainApi2;
|
|
15807
|
+
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;
|
|
15808
|
+
var removeListener = window.mainApi.scheduler.onTaskFired(function (data) {
|
|
15809
|
+
if (data.widgetId !== widgetId) return;
|
|
15810
|
+
fetchTasks();
|
|
15811
|
+
});
|
|
15812
|
+
return removeListener;
|
|
15813
|
+
}, [widgetId, fetchTasks]);
|
|
15814
|
+
return {
|
|
15815
|
+
tasks: tasks,
|
|
15816
|
+
isLoading: isLoading
|
|
15817
|
+
};
|
|
15818
|
+
};
|
|
15819
|
+
|
|
15820
|
+
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; } } }; }
|
|
15821
|
+
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; } }
|
|
15822
|
+
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; }
|
|
15823
|
+
function formatCountdown(ms) {
|
|
15824
|
+
if (ms == null || ms < 0) return "--";
|
|
15825
|
+
if (ms < 1000) return "< 1s";
|
|
15826
|
+
var totalSeconds = Math.floor(ms / 1000);
|
|
15827
|
+
var hours = Math.floor(totalSeconds / 3600);
|
|
15828
|
+
var minutes = Math.floor(totalSeconds % 3600 / 60);
|
|
15829
|
+
var seconds = totalSeconds % 60;
|
|
15830
|
+
if (hours > 0) return "".concat(hours, "h ").concat(minutes, "m");
|
|
15831
|
+
if (minutes > 0) return "".concat(minutes, "m ").concat(seconds, "s");
|
|
15832
|
+
return "".concat(seconds, "s");
|
|
15833
|
+
}
|
|
15834
|
+
|
|
15835
|
+
/**
|
|
15836
|
+
* Format a timestamp as relative time ago.
|
|
15837
|
+
* @param {number|string} timestamp - epoch ms or ISO string
|
|
15838
|
+
* @returns {string} e.g. "2m ago", "1h ago", "just now"
|
|
15839
|
+
*/
|
|
15840
|
+
function formatRelativeTime(timestamp) {
|
|
15841
|
+
if (!timestamp) return null;
|
|
15842
|
+
var ts = typeof timestamp === "string" ? new Date(timestamp).getTime() : timestamp;
|
|
15843
|
+
var diff = Date.now() - ts;
|
|
15844
|
+
if (diff < 60000) return "just now";
|
|
15845
|
+
if (diff < 3600000) return "".concat(Math.floor(diff / 60000), "m ago");
|
|
15846
|
+
if (diff < 86400000) return "".concat(Math.floor(diff / 3600000), "h ago");
|
|
15847
|
+
return "".concat(Math.floor(diff / 86400000), "d ago");
|
|
15848
|
+
}
|
|
15849
|
+
|
|
15850
|
+
/**
|
|
15851
|
+
* Format a task's schedule as a human-readable description.
|
|
15852
|
+
* @param {Object} task - scheduler task object
|
|
15853
|
+
* @returns {string} e.g. "Every 5 min", "Mon, Wed at 09:00"
|
|
15854
|
+
*/
|
|
15855
|
+
function formatScheduleDescription(task) {
|
|
15856
|
+
if (task.scheduleType === "interval" && task.intervalMs) {
|
|
15857
|
+
var totalSeconds = Math.floor(task.intervalMs / 1000);
|
|
15858
|
+
if (totalSeconds < 60) return "Every ".concat(totalSeconds, "s");
|
|
15859
|
+
var minutes = Math.floor(totalSeconds / 60);
|
|
15860
|
+
if (minutes < 60) return "Every ".concat(minutes, " min");
|
|
15861
|
+
var hours = Math.floor(minutes / 60);
|
|
15862
|
+
var remainingMin = minutes % 60;
|
|
15863
|
+
if (remainingMin === 0) return "Every ".concat(hours, " hr");
|
|
15864
|
+
return "Every ".concat(hours, "h ").concat(remainingMin, "m");
|
|
15865
|
+
}
|
|
15866
|
+
if (task.scheduleType === "dayTime") {
|
|
15867
|
+
var dayMap = {
|
|
15868
|
+
mon: "Mon",
|
|
15869
|
+
tue: "Tue",
|
|
15870
|
+
wed: "Wed",
|
|
15871
|
+
thu: "Thu",
|
|
15872
|
+
fri: "Fri",
|
|
15873
|
+
sat: "Sat",
|
|
15874
|
+
sun: "Sun"
|
|
15875
|
+
};
|
|
15876
|
+
var days = (task.days || []).map(function (d) {
|
|
15877
|
+
return dayMap[d] || d;
|
|
15878
|
+
});
|
|
15879
|
+
var time = task.time || "00:00";
|
|
15880
|
+
if (days.length === 7) return "Daily at ".concat(time);
|
|
15881
|
+
if (days.length === 5 && ["mon", "tue", "wed", "thu", "fri"].every(function (d) {
|
|
15882
|
+
return (task.days || []).includes(d);
|
|
15883
|
+
})) {
|
|
15884
|
+
return "Mon\u2013Fri at ".concat(time);
|
|
15885
|
+
}
|
|
15886
|
+
return "".concat(days.join(", "), " at ").concat(time);
|
|
15887
|
+
}
|
|
15888
|
+
return "Scheduled";
|
|
15889
|
+
}
|
|
15890
|
+
|
|
15891
|
+
// ── Component ───────────────────────────────────────────────────────
|
|
15892
|
+
|
|
15893
|
+
var WidgetCardStatusBar = function WidgetCardStatusBar(_ref) {
|
|
15894
|
+
var item = _ref.item,
|
|
15895
|
+
_ref$className = _ref.className,
|
|
15896
|
+
className = _ref$className === void 0 ? "" : _ref$className;
|
|
15897
|
+
var _useState = useState(false),
|
|
15898
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
15899
|
+
expanded = _useState2[0],
|
|
15900
|
+
setExpanded = _useState2[1];
|
|
15901
|
+
var _useState3 = useState(Date.now()),
|
|
15902
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
15903
|
+
now = _useState4[0],
|
|
15904
|
+
setNow = _useState4[1];
|
|
15905
|
+
|
|
15906
|
+
// Check if widget declares scheduledTasks in its config
|
|
15907
|
+
var widgetConfig = item !== null && item !== void 0 && item.component ? ComponentManager.config(item.component, item) : null;
|
|
15908
|
+
var declaredTasks = (widgetConfig === null || widgetConfig === void 0 ? void 0 : widgetConfig.scheduledTasks) || [];
|
|
15909
|
+
|
|
15910
|
+
// Fetch live task state from the scheduler
|
|
15911
|
+
var _useWidgetSchedulerSt = useWidgetSchedulerStatus(item === null || item === void 0 ? void 0 : item.uuid),
|
|
15912
|
+
tasks = _useWidgetSchedulerSt.tasks,
|
|
15913
|
+
isLoading = _useWidgetSchedulerSt.isLoading;
|
|
15914
|
+
|
|
15915
|
+
// Tick every second for live countdowns
|
|
15916
|
+
useEffect(function () {
|
|
15917
|
+
if (tasks.length === 0) return;
|
|
15918
|
+
var interval = setInterval(function () {
|
|
15919
|
+
return setNow(Date.now());
|
|
15920
|
+
}, 1000);
|
|
15921
|
+
return function () {
|
|
15922
|
+
return clearInterval(interval);
|
|
15923
|
+
};
|
|
15924
|
+
}, [tasks.length]);
|
|
15925
|
+
|
|
15926
|
+
// Don't render if widget doesn't declare scheduled tasks or none are configured
|
|
15927
|
+
if (declaredTasks.length === 0) return null;
|
|
15928
|
+
if (isLoading) return null;
|
|
15929
|
+
if (tasks.length === 0) return null;
|
|
15930
|
+
var enabledTasks = tasks.filter(function (t) {
|
|
15931
|
+
return t.enabled;
|
|
15932
|
+
});
|
|
15933
|
+
var allPaused = enabledTasks.length === 0;
|
|
15934
|
+
|
|
15935
|
+
// Find soonest countdown among enabled tasks
|
|
15936
|
+
var soonestMs = null;
|
|
15937
|
+
var _iterator = _createForOfIteratorHelper$9(enabledTasks),
|
|
15938
|
+
_step;
|
|
15939
|
+
try {
|
|
15940
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
15941
|
+
var _task = _step.value;
|
|
15942
|
+
if (_task.nextFireAt) {
|
|
15943
|
+
var remaining = _task.nextFireAt - now;
|
|
15944
|
+
if (soonestMs === null || remaining < soonestMs) {
|
|
15945
|
+
soonestMs = remaining;
|
|
15946
|
+
}
|
|
15947
|
+
}
|
|
15948
|
+
}
|
|
15949
|
+
|
|
15950
|
+
// Collapsed summary text
|
|
15951
|
+
} catch (err) {
|
|
15952
|
+
_iterator.e(err);
|
|
15953
|
+
} finally {
|
|
15954
|
+
_iterator.f();
|
|
15955
|
+
}
|
|
15956
|
+
var summaryText;
|
|
15957
|
+
if (allPaused) {
|
|
15958
|
+
summaryText = "".concat(tasks.length, " timer").concat(tasks.length > 1 ? "s" : "", " (paused)");
|
|
15959
|
+
} else if (tasks.length === 1) {
|
|
15960
|
+
var task = tasks[0];
|
|
15961
|
+
var label = task.displayName || task.taskKey;
|
|
15962
|
+
if (task.enabled && soonestMs != null) {
|
|
15963
|
+
summaryText = "".concat(label, " \xB7 ").concat(formatCountdown(soonestMs));
|
|
15964
|
+
} else {
|
|
15965
|
+
summaryText = "".concat(label, " (paused)");
|
|
15966
|
+
}
|
|
15967
|
+
} else {
|
|
15968
|
+
summaryText = "".concat(tasks.length, " timers \xB7 next in ").concat(formatCountdown(soonestMs));
|
|
15969
|
+
}
|
|
15970
|
+
return /*#__PURE__*/jsxs("div", {
|
|
15971
|
+
className: "border-t border-gray-700/50 bg-gray-900/30 select-none ".concat(className),
|
|
15972
|
+
children: [/*#__PURE__*/jsxs("button", {
|
|
15973
|
+
type: "button",
|
|
15974
|
+
onClick: function onClick() {
|
|
15975
|
+
return setExpanded(!expanded);
|
|
15976
|
+
},
|
|
15977
|
+
className: "flex items-center w-full px-3 py-1 text-xs gap-2 cursor-pointer transition-colors hover:bg-gray-800/40 ".concat(allPaused ? "text-gray-500" : "text-blue-400"),
|
|
15978
|
+
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
15979
|
+
icon: "clock",
|
|
15980
|
+
className: "text-[10px] shrink-0"
|
|
15981
|
+
}), /*#__PURE__*/jsx("span", {
|
|
15982
|
+
className: "truncate flex-1 text-left",
|
|
15983
|
+
children: summaryText
|
|
15984
|
+
}), /*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
15985
|
+
icon: expanded ? "chevron-up" : "chevron-down",
|
|
15986
|
+
className: "text-[10px] text-gray-500 shrink-0"
|
|
15987
|
+
})]
|
|
15988
|
+
}), expanded && /*#__PURE__*/jsxs("div", {
|
|
15989
|
+
className: "px-3 pb-2 pt-1 space-y-2",
|
|
15990
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
15991
|
+
className: "text-[10px] font-semibold text-gray-400 uppercase tracking-wider",
|
|
15992
|
+
children: "Scheduled Tasks"
|
|
15993
|
+
}), tasks.map(function (task) {
|
|
15994
|
+
var remaining = task.enabled && task.nextFireAt ? task.nextFireAt - now : null;
|
|
15995
|
+
var lastFiredText = formatRelativeTime(task.lastFiredAt);
|
|
15996
|
+
return /*#__PURE__*/jsxs("div", {
|
|
15997
|
+
className: "flex flex-col gap-0.5",
|
|
15998
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
15999
|
+
className: "flex items-center justify-between text-xs",
|
|
16000
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
16001
|
+
className: "flex items-center gap-1.5",
|
|
16002
|
+
children: [/*#__PURE__*/jsx("span", {
|
|
16003
|
+
className: "inline-block w-1.5 h-1.5 rounded-full ".concat(task.enabled ? "bg-green-500" : "bg-gray-600")
|
|
16004
|
+
}), /*#__PURE__*/jsx("span", {
|
|
16005
|
+
className: task.enabled ? "text-gray-200" : "text-gray-500",
|
|
16006
|
+
children: task.displayName || task.taskKey
|
|
16007
|
+
}), !task.enabled && /*#__PURE__*/jsx("span", {
|
|
16008
|
+
className: "text-gray-600 text-[10px]",
|
|
16009
|
+
children: "(paused)"
|
|
16010
|
+
})]
|
|
16011
|
+
}), /*#__PURE__*/jsx("span", {
|
|
16012
|
+
className: "text-gray-500 text-[10px]",
|
|
16013
|
+
children: formatScheduleDescription(task)
|
|
16014
|
+
})]
|
|
16015
|
+
}), task.enabled && /*#__PURE__*/jsxs("div", {
|
|
16016
|
+
className: "text-[10px] text-gray-500 pl-4 flex items-center gap-1.5",
|
|
16017
|
+
children: [/*#__PURE__*/jsxs("span", {
|
|
16018
|
+
children: ["Next in ", formatCountdown(remaining)]
|
|
16019
|
+
}), lastFiredText && /*#__PURE__*/jsxs(Fragment, {
|
|
16020
|
+
children: [/*#__PURE__*/jsx("span", {
|
|
16021
|
+
className: "text-gray-700",
|
|
16022
|
+
children: "\xB7"
|
|
16023
|
+
}), /*#__PURE__*/jsxs("span", {
|
|
16024
|
+
children: ["Last: ", lastFiredText]
|
|
16025
|
+
})]
|
|
16026
|
+
}), task.fireCount > 0 && /*#__PURE__*/jsxs(Fragment, {
|
|
16027
|
+
children: [/*#__PURE__*/jsx("span", {
|
|
16028
|
+
className: "text-gray-700",
|
|
16029
|
+
children: "\xB7"
|
|
16030
|
+
}), /*#__PURE__*/jsxs("span", {
|
|
16031
|
+
children: ["#", task.fireCount]
|
|
16032
|
+
})]
|
|
16033
|
+
})]
|
|
16034
|
+
}), !task.enabled && /*#__PURE__*/jsx("div", {
|
|
16035
|
+
className: "text-[10px] text-gray-600 pl-4",
|
|
16036
|
+
children: formatScheduleDescription(task)
|
|
16037
|
+
})]
|
|
16038
|
+
}, task.taskId);
|
|
16039
|
+
})]
|
|
16040
|
+
})]
|
|
16041
|
+
});
|
|
16042
|
+
};
|
|
16043
|
+
|
|
15764
16044
|
/**
|
|
15765
16045
|
* WidgetCard
|
|
15766
16046
|
*
|
|
@@ -15940,6 +16220,7 @@ var WidgetCard = function WidgetCard(_ref4) {
|
|
|
15940
16220
|
WidgetCard.Header = WidgetCardHeader_Component;
|
|
15941
16221
|
WidgetCard.Body = WidgetCardBody;
|
|
15942
16222
|
WidgetCard.Footer = WidgetCardFooter;
|
|
16223
|
+
WidgetCard.StatusBar = WidgetCardStatusBar;
|
|
15943
16224
|
|
|
15944
16225
|
var ProviderSelector = function ProviderSelector(_ref) {
|
|
15945
16226
|
var isOpen = _ref.isOpen,
|
|
@@ -18810,6 +19091,8 @@ var WidgetContainerGridItem = function WidgetContainerGridItem(_ref) {
|
|
|
18810
19091
|
}), /*#__PURE__*/jsx(WidgetCard.Footer, {
|
|
18811
19092
|
item: item,
|
|
18812
19093
|
onConfigure: handleOpenConfig
|
|
19094
|
+
}), /*#__PURE__*/jsx(WidgetCard.StatusBar, {
|
|
19095
|
+
item: item
|
|
18813
19096
|
})]
|
|
18814
19097
|
}), (item.type !== "widget") && /*#__PURE__*/jsxs(Fragment, {
|
|
18815
19098
|
children: [/*#__PURE__*/jsxs("div", {
|
|
@@ -18871,6 +19154,8 @@ var WidgetContainerGridItem = function WidgetContainerGridItem(_ref) {
|
|
|
18871
19154
|
}), /*#__PURE__*/jsx(WidgetCard.Footer, {
|
|
18872
19155
|
item: item,
|
|
18873
19156
|
onConfigure: handleOpenConfig
|
|
19157
|
+
}), /*#__PURE__*/jsx(WidgetCard.StatusBar, {
|
|
19158
|
+
item: item
|
|
18874
19159
|
})]
|
|
18875
19160
|
}), (item.type !== "widget") && /*#__PURE__*/jsxs(Fragment, {
|
|
18876
19161
|
children: [/*#__PURE__*/jsx("div", {
|
|
@@ -20054,38 +20339,48 @@ var WidgetRenderer = function WidgetRenderer(_ref) {
|
|
|
20054
20339
|
var widgetContextValue = {
|
|
20055
20340
|
widgetData: widgetData
|
|
20056
20341
|
};
|
|
20342
|
+
var hasScheduledTasks = ((config === null || config === void 0 ? void 0 : config.scheduledTasks) || []).length > 0;
|
|
20343
|
+
var widgetElement = children === null ? /*#__PURE__*/jsx(WidgetComponent, _objectSpread$m(_objectSpread$m(_objectSpread$m({
|
|
20344
|
+
id: "widget-nokids-".concat(widgetKey),
|
|
20345
|
+
listen: function listen(listeners, handlers) {
|
|
20346
|
+
return helpers.listen(listeners, handlers);
|
|
20347
|
+
},
|
|
20348
|
+
publishEvent: function publishEvent(eventName, payload) {
|
|
20349
|
+
return helpers.publishEvent(eventName, payload);
|
|
20350
|
+
},
|
|
20351
|
+
api: w
|
|
20352
|
+
}, params), userPrefs), {}, {
|
|
20353
|
+
backgroundColor: bgColor,
|
|
20354
|
+
widgetConfig: helpers.config(),
|
|
20355
|
+
widgetEventNames: helpers.events()
|
|
20356
|
+
}), "widget-nokids-".concat(widgetKey)) : /*#__PURE__*/jsx(WidgetComponent, _objectSpread$m(_objectSpread$m(_objectSpread$m({
|
|
20357
|
+
listen: function listen(listeners, handlers) {
|
|
20358
|
+
return helpers.listen(listeners, handlers);
|
|
20359
|
+
},
|
|
20360
|
+
publishEvent: function publishEvent(eventName, payload) {
|
|
20361
|
+
return helpers.publishEvent(eventName, payload);
|
|
20362
|
+
},
|
|
20363
|
+
api: w,
|
|
20364
|
+
id: "widget-kids-".concat(widgetKey)
|
|
20365
|
+
}, params), userPrefs), {}, {
|
|
20366
|
+
backgroundColor: bgColor,
|
|
20367
|
+
children: children
|
|
20368
|
+
}), "widget-kids-".concat(widgetKey));
|
|
20057
20369
|
|
|
20058
20370
|
// Wrap widget rendering with WidgetContext + error boundary
|
|
20059
20371
|
return /*#__PURE__*/jsx(WidgetContext.Provider, {
|
|
20060
20372
|
value: widgetContextValue,
|
|
20061
20373
|
children: /*#__PURE__*/jsx(WidgetErrorBoundary, {
|
|
20062
20374
|
widgetName: component,
|
|
20063
|
-
children:
|
|
20064
|
-
|
|
20065
|
-
|
|
20066
|
-
|
|
20067
|
-
|
|
20068
|
-
|
|
20069
|
-
|
|
20070
|
-
}
|
|
20071
|
-
|
|
20072
|
-
}, params), userPrefs), {}, {
|
|
20073
|
-
backgroundColor: bgColor,
|
|
20074
|
-
widgetConfig: helpers.config(),
|
|
20075
|
-
widgetEventNames: helpers.events()
|
|
20076
|
-
}), "widget-nokids-".concat(widgetKey)) : /*#__PURE__*/jsx(WidgetComponent, _objectSpread$m(_objectSpread$m(_objectSpread$m({
|
|
20077
|
-
listen: function listen(listeners, handlers) {
|
|
20078
|
-
return helpers.listen(listeners, handlers);
|
|
20079
|
-
},
|
|
20080
|
-
publishEvent: function publishEvent(eventName, payload) {
|
|
20081
|
-
return helpers.publishEvent(eventName, payload);
|
|
20082
|
-
},
|
|
20083
|
-
api: w,
|
|
20084
|
-
id: "widget-kids-".concat(widgetKey)
|
|
20085
|
-
}, params), userPrefs), {}, {
|
|
20086
|
-
backgroundColor: bgColor,
|
|
20087
|
-
children: children
|
|
20088
|
-
}), "widget-kids-".concat(widgetKey))
|
|
20375
|
+
children: hasScheduledTasks ? /*#__PURE__*/jsxs("div", {
|
|
20376
|
+
className: "flex flex-col w-full h-full min-h-0",
|
|
20377
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
20378
|
+
className: "flex-1 min-h-0 overflow-auto",
|
|
20379
|
+
children: widgetElement
|
|
20380
|
+
}), /*#__PURE__*/jsx(WidgetCardStatusBar, {
|
|
20381
|
+
item: params
|
|
20382
|
+
})]
|
|
20383
|
+
}) : widgetElement
|
|
20089
20384
|
})
|
|
20090
20385
|
});
|
|
20091
20386
|
}
|
|
@@ -45734,5 +46029,5 @@ var WorkspaceMenu = function WorkspaceMenu(_ref) {
|
|
|
45734
46029
|
|
|
45735
46030
|
ComponentManager.registerContainerTypes(LayoutContainer, LayoutGridContainer);
|
|
45736
46031
|
|
|
45737
|
-
export { ALGOLIA_ANALYTICS_FOR_QUERY, ALGOLIA_ANALYTICS_FOR_QUERY_COMPLETE, ALGOLIA_ANALYTICS_FOR_QUERY_ERROR, ALGOLIA_LIST_INDICES, ALGOLIA_LIST_INDICES_COMPLETE, ALGOLIA_LIST_INDICES_ERROR, AVAILABLE_COLORS, AddMenuItemModal, AdvancedMcpConfig, AppContext, AppSettingsModal, AppThemeScope, AppWrapper, CHOOSE_FILE, CHOOSE_FILE_COMPLETE, CHOOSE_FILE_ERROR, ColorModel, ComponentConfigModel, ComponentManager, ContextModel, DATA_JSON_TO_CSV_FILE, DATA_JSON_TO_CSV_FILE_COMPLETE, DATA_JSON_TO_CSV_FILE_ERROR, DATA_JSON_TO_CSV_STRING, DATA_JSON_TO_CSV_STRING_COMPLETE, DATA_JSON_TO_CSV_STRING_ERROR, DATA_READ_FROM_FILE, DATA_READ_FROM_FILE_COMPLETE, DATA_READ_FROM_FILE_ERROR, DATA_SAVE_TO_FILE, DATA_SAVE_TO_FILE_COMPLETE, DATA_SAVE_TO_FILE_ERROR, DashCommandPalette, DashNavbar, DashSidebar, DashTabBar, DashboardStage as Dashboard, DashboardApi, DashboardContext, DashboardFooter, DashboardHeader, DashboardMenuItem, DashboardModel, DashboardMonitor, DashboardPublisher, DashboardStage, DashboardThemeProvider, DashboardWrapper, ElectronDashboardApi, ErrorBoundary, ExternalWidget, GRID_CELL_WIDGET_TYPE, HARMONY_STRATEGIES, LAYOUT_LIST, LAYOUT_LIST_COMPLETE, LAYOUT_LIST_ERROR, LAYOUT_SAVE, LAYOUT_SAVE_COMPLETE, LAYOUT_SAVE_ERROR, Layout, LayoutBuilder, LayoutBuilderAddItemModal, LayoutBuilderConfigContainerMenuItem, LayoutBuilderConfigMenuItem, LayoutBuilderConfigModal, LayoutBuilderEditItemModal, LayoutBuilderEventModal, LayoutBuilderGridItem, LayoutContainer, LayoutDragBuilder, LayoutDragBuilderEdit, LayoutGridContainer, LayoutManagerModal, LayoutModel, LayoutQuickAddMenu, MCP_CALL_TOOL_COMPLETE, MCP_CALL_TOOL_ERROR, MCP_GET_CATALOG_COMPLETE, MCP_GET_CATALOG_ERROR, MCP_LIST_RESOURCES_COMPLETE, MCP_LIST_RESOURCES_ERROR, MCP_LIST_TOOLS_COMPLETE, MCP_LIST_TOOLS_ERROR, MCP_READ_RESOURCE_COMPLETE, MCP_READ_RESOURCE_ERROR, MCP_RUN_AUTH_COMPLETE, MCP_RUN_AUTH_ERROR, MCP_SERVER_STATUS_COMPLETE, MCP_SERVER_STATUS_ERROR, MCP_START_SERVER_COMPLETE, MCP_START_SERVER_ERROR, MCP_STOP_SERVER_COMPLETE, MCP_STOP_SERVER_ERROR, MENU_ITEMS_DELETE, MENU_ITEMS_DELETE_COMPLETE, MENU_ITEMS_DELETE_ERROR, MENU_ITEMS_LIST, MENU_ITEMS_LIST_COMPLETE, MENU_ITEMS_LIST_ERROR, MENU_ITEMS_SAVE, MENU_ITEMS_SAVE_COMPLETE, MENU_ITEMS_SAVE_ERROR, MainMenu, MainMenuItem, MainMenuSection, McpServerPicker, MenuItemModel, MenuSlideOverlay, MergeCellsModal, MissingProviderPrompt, MockDashboardApi, PROVIDER_DELETE_COMPLETE, PROVIDER_DELETE_ERROR, PROVIDER_GET_COMPLETE, PROVIDER_GET_ERROR, PROVIDER_LIST_COMPLETE, PROVIDER_LIST_ERROR, PROVIDER_SAVE_COMPLETE, PROVIDER_SAVE_ERROR, PanelCode, PanelEditItem, PanelEditItemHandlers, PanelEditItemNotifications, ProviderContext, ProviderErrorBoundary, ProviderForm, ProviderSelector, SECURE_STORAGE_ENCRYPT_STRING, SECURE_STORAGE_ENCRYPT_STRING_COMPLETE, SECURE_STORAGE_ENCRYPT_STRING_ERROR, SECURE_STORE_ENCRYPTION_CHECK, SECURE_STORE_ENCRYPTION_CHECK_COMPLETE, SECURE_STORE_ENCRYPTION_CHECK_ERROR, SECURE_STORE_GET_DATA, SECURE_STORE_GET_DATA_COMPLETE, SECURE_STORE_GET_DATA_ERROR, SECURE_STORE_SET_DATA, SECURE_STORE_SET_DATA_COMPLETE, SECURE_STORE_SET_DATA_ERROR, SETTINGS_GET, SETTINGS_GET_COMPLETE, SETTINGS_GET_ERROR, SETTINGS_SAVE, SETTINGS_SAVE_COMPLETE, SETTINGS_SAVE_ERROR, SIDEBAR_WIDGET_TYPE, SettingsModel, SideMenu, SplitCellModal, THEME_DELETE, THEME_DELETE_COMPLETE, THEME_DELETE_ERROR, THEME_LIST, THEME_LIST_COMPLETE, THEME_LIST_ERROR, THEME_SAVE, THEME_SAVE_COMPLETE, THEME_SAVE_ERROR, ThemeApi, ThemeColorDots, ThemeManagerModal, ThemeModel, ThemeWrapper, WORKSPACE_DELETE, WORKSPACE_DELETE_COMPLETE, WORKSPACE_DELETE_ERROR, WORKSPACE_LIST, WORKSPACE_LIST_COMPLETE, WORKSPACE_LIST_ERROR, WORKSPACE_SAVE, WORKSPACE_SAVE_COMPLETE, WORKSPACE_SAVE_ERROR, WebDashboardApi, Widget, WidgetApi, WidgetConfigPanel, WidgetContext, WidgetFactory, WidgetPopoutStage, WidgetProviderWrapper, WidgetSidebar, Workspace, WorkspaceContext, WorkspaceFooter, WorkspaceMenu, WorkspaceModel, addChildToLayoutItem, addItemToItemLayout, buildMcpConfigFromOverrides, canHaveChildren, changeDirectionForLayoutItem, createProviderRegistry, deriveFormFields, envMappingToRows, evaluateBundle, extractWidgetConfigs, formStateToMcpJson, formatFieldName, generateCustomTheme, generateHarmonyTheme, generateRandomTheme, generateThemeName, getBorderStyle, getChildrenForLayoutItem, getComponentInLayout, getContainerBorderColor, getContainerColor, getIndexOfLayoutChildrenForItem, getIndexOfLayoutItem, getLayoutItemById, getLayoutItemForWorkspace, getNearestParentWorkspace, getNextHighestId, getNextHighestItemInLayout, getNextHighestOrder, getNextHighestParentId, getNextLowestItemInLayout, getParentForLayoutItem, getParentWorkspaceForItem, getThemePresets, getUserConfigurableProviders, getWidgetsForWorkspace, getWorkspacesForWorkspace, headerTemplateToRows, isContainer, isLikelySecret, isMaxOrderForItem, isMinOrderForItem, isWidget, isWidgetResolvable, isWorkspace, layoutItemHasWorkspaceAsChild, loadWidgetBundle, mcpJsonToFormState, numChildrenForLayout, removeItemFromLayout, renderComponent, renderGridLayout, renderGridLayoutFlow, _renderLayout as renderLayout, renderLayoutMenu, replaceItemInLayout, resolveIcon, setHostModules, traverseParentTree, updateLayoutItem, updateParentForItem, useDashboard, useMcpProvider, useNotifications, useProvider, useProviderClient, useScheduler, useWidgetEvents, useWidgetProviders, validateCellMerge, validateGridCell, validateGridPlacement, validateWidgetPlacement, withProviderDetection };
|
|
46032
|
+
export { ALGOLIA_ANALYTICS_FOR_QUERY, ALGOLIA_ANALYTICS_FOR_QUERY_COMPLETE, ALGOLIA_ANALYTICS_FOR_QUERY_ERROR, ALGOLIA_LIST_INDICES, ALGOLIA_LIST_INDICES_COMPLETE, ALGOLIA_LIST_INDICES_ERROR, AVAILABLE_COLORS, AddMenuItemModal, AdvancedMcpConfig, AppContext, AppSettingsModal, AppThemeScope, AppWrapper, CHOOSE_FILE, CHOOSE_FILE_COMPLETE, CHOOSE_FILE_ERROR, ColorModel, ComponentConfigModel, ComponentManager, ContextModel, DATA_JSON_TO_CSV_FILE, DATA_JSON_TO_CSV_FILE_COMPLETE, DATA_JSON_TO_CSV_FILE_ERROR, DATA_JSON_TO_CSV_STRING, DATA_JSON_TO_CSV_STRING_COMPLETE, DATA_JSON_TO_CSV_STRING_ERROR, DATA_READ_FROM_FILE, DATA_READ_FROM_FILE_COMPLETE, DATA_READ_FROM_FILE_ERROR, DATA_SAVE_TO_FILE, DATA_SAVE_TO_FILE_COMPLETE, DATA_SAVE_TO_FILE_ERROR, DashCommandPalette, DashNavbar, DashSidebar, DashTabBar, DashboardStage as Dashboard, DashboardApi, DashboardContext, DashboardFooter, DashboardHeader, DashboardMenuItem, DashboardModel, DashboardMonitor, DashboardPublisher, DashboardStage, DashboardThemeProvider, DashboardWrapper, ElectronDashboardApi, ErrorBoundary, ExternalWidget, GRID_CELL_WIDGET_TYPE, HARMONY_STRATEGIES, LAYOUT_LIST, LAYOUT_LIST_COMPLETE, LAYOUT_LIST_ERROR, LAYOUT_SAVE, LAYOUT_SAVE_COMPLETE, LAYOUT_SAVE_ERROR, Layout, LayoutBuilder, LayoutBuilderAddItemModal, LayoutBuilderConfigContainerMenuItem, LayoutBuilderConfigMenuItem, LayoutBuilderConfigModal, LayoutBuilderEditItemModal, LayoutBuilderEventModal, LayoutBuilderGridItem, LayoutContainer, LayoutDragBuilder, LayoutDragBuilderEdit, LayoutGridContainer, LayoutManagerModal, LayoutModel, LayoutQuickAddMenu, MCP_CALL_TOOL_COMPLETE, MCP_CALL_TOOL_ERROR, MCP_GET_CATALOG_COMPLETE, MCP_GET_CATALOG_ERROR, MCP_LIST_RESOURCES_COMPLETE, MCP_LIST_RESOURCES_ERROR, MCP_LIST_TOOLS_COMPLETE, MCP_LIST_TOOLS_ERROR, MCP_READ_RESOURCE_COMPLETE, MCP_READ_RESOURCE_ERROR, MCP_RUN_AUTH_COMPLETE, MCP_RUN_AUTH_ERROR, MCP_SERVER_STATUS_COMPLETE, MCP_SERVER_STATUS_ERROR, MCP_START_SERVER_COMPLETE, MCP_START_SERVER_ERROR, MCP_STOP_SERVER_COMPLETE, MCP_STOP_SERVER_ERROR, MENU_ITEMS_DELETE, MENU_ITEMS_DELETE_COMPLETE, MENU_ITEMS_DELETE_ERROR, MENU_ITEMS_LIST, MENU_ITEMS_LIST_COMPLETE, MENU_ITEMS_LIST_ERROR, MENU_ITEMS_SAVE, MENU_ITEMS_SAVE_COMPLETE, MENU_ITEMS_SAVE_ERROR, MainMenu, MainMenuItem, MainMenuSection, McpServerPicker, MenuItemModel, MenuSlideOverlay, MergeCellsModal, MissingProviderPrompt, MockDashboardApi, PROVIDER_DELETE_COMPLETE, PROVIDER_DELETE_ERROR, PROVIDER_GET_COMPLETE, PROVIDER_GET_ERROR, PROVIDER_LIST_COMPLETE, PROVIDER_LIST_ERROR, PROVIDER_SAVE_COMPLETE, PROVIDER_SAVE_ERROR, PanelCode, PanelEditItem, PanelEditItemHandlers, PanelEditItemNotifications, ProviderContext, ProviderErrorBoundary, ProviderForm, ProviderSelector, SECURE_STORAGE_ENCRYPT_STRING, SECURE_STORAGE_ENCRYPT_STRING_COMPLETE, SECURE_STORAGE_ENCRYPT_STRING_ERROR, SECURE_STORE_ENCRYPTION_CHECK, SECURE_STORE_ENCRYPTION_CHECK_COMPLETE, SECURE_STORE_ENCRYPTION_CHECK_ERROR, SECURE_STORE_GET_DATA, SECURE_STORE_GET_DATA_COMPLETE, SECURE_STORE_GET_DATA_ERROR, SECURE_STORE_SET_DATA, SECURE_STORE_SET_DATA_COMPLETE, SECURE_STORE_SET_DATA_ERROR, SETTINGS_GET, SETTINGS_GET_COMPLETE, SETTINGS_GET_ERROR, SETTINGS_SAVE, SETTINGS_SAVE_COMPLETE, SETTINGS_SAVE_ERROR, SIDEBAR_WIDGET_TYPE, SettingsModel, SideMenu, SplitCellModal, THEME_DELETE, THEME_DELETE_COMPLETE, THEME_DELETE_ERROR, THEME_LIST, THEME_LIST_COMPLETE, THEME_LIST_ERROR, THEME_SAVE, THEME_SAVE_COMPLETE, THEME_SAVE_ERROR, ThemeApi, ThemeColorDots, ThemeManagerModal, ThemeModel, ThemeWrapper, WORKSPACE_DELETE, WORKSPACE_DELETE_COMPLETE, WORKSPACE_DELETE_ERROR, WORKSPACE_LIST, WORKSPACE_LIST_COMPLETE, WORKSPACE_LIST_ERROR, WORKSPACE_SAVE, WORKSPACE_SAVE_COMPLETE, WORKSPACE_SAVE_ERROR, WebDashboardApi, Widget, WidgetApi, WidgetConfigPanel, WidgetContext, WidgetFactory, WidgetPopoutStage, WidgetProviderWrapper, WidgetSidebar, Workspace, WorkspaceContext, WorkspaceFooter, WorkspaceMenu, WorkspaceModel, addChildToLayoutItem, addItemToItemLayout, buildMcpConfigFromOverrides, canHaveChildren, changeDirectionForLayoutItem, createProviderRegistry, deriveFormFields, envMappingToRows, evaluateBundle, extractWidgetConfigs, formStateToMcpJson, formatFieldName, generateCustomTheme, generateHarmonyTheme, generateRandomTheme, generateThemeName, getBorderStyle, getChildrenForLayoutItem, getComponentInLayout, getContainerBorderColor, getContainerColor, getIndexOfLayoutChildrenForItem, getIndexOfLayoutItem, getLayoutItemById, getLayoutItemForWorkspace, getNearestParentWorkspace, getNextHighestId, getNextHighestItemInLayout, getNextHighestOrder, getNextHighestParentId, getNextLowestItemInLayout, getParentForLayoutItem, getParentWorkspaceForItem, getThemePresets, getUserConfigurableProviders, getWidgetsForWorkspace, getWorkspacesForWorkspace, headerTemplateToRows, isContainer, isLikelySecret, isMaxOrderForItem, isMinOrderForItem, isWidget, isWidgetResolvable, isWorkspace, layoutItemHasWorkspaceAsChild, loadWidgetBundle, mcpJsonToFormState, numChildrenForLayout, removeItemFromLayout, renderComponent, renderGridLayout, renderGridLayoutFlow, _renderLayout as renderLayout, renderLayoutMenu, replaceItemInLayout, resolveIcon, setHostModules, traverseParentTree, updateLayoutItem, updateParentForItem, useDashboard, useMcpProvider, useNotifications, useProvider, useProviderClient, useScheduler, useWidgetEvents, useWidgetProviders, useWidgetSchedulerStatus, validateCellMerge, validateGridCell, validateGridPlacement, validateWidgetPlacement, withProviderDetection };
|
|
45738
46033
|
//# sourceMappingURL=index.esm.js.map
|