@trops/dash-core 0.1.150 → 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 +363 -48
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +363 -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 = [{
|
|
@@ -10725,12 +10725,17 @@ var PanelEditItemSchedule = function PanelEditItemSchedule(_ref2) {
|
|
|
10725
10725
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
10726
10726
|
taskStates = _useState12[0],
|
|
10727
10727
|
setTaskStates = _useState12[1];
|
|
10728
|
+
var _useState13 = useState(true),
|
|
10729
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
10730
|
+
isLoading = _useState14[0],
|
|
10731
|
+
setIsLoading = _useState14[1];
|
|
10728
10732
|
useEffect(function () {
|
|
10729
10733
|
var _window$mainApi4;
|
|
10730
10734
|
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) {
|
|
10735
|
+
setIsLoading(true);
|
|
10731
10736
|
window.mainApi.scheduler.getTasks(widgetUuid).then(function (tasks) {
|
|
10732
10737
|
var stateMap = {};
|
|
10733
|
-
var _iterator = _createForOfIteratorHelper$
|
|
10738
|
+
var _iterator = _createForOfIteratorHelper$c(tasks || []),
|
|
10734
10739
|
_step;
|
|
10735
10740
|
try {
|
|
10736
10741
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -10743,10 +10748,25 @@ var PanelEditItemSchedule = function PanelEditItemSchedule(_ref2) {
|
|
|
10743
10748
|
_iterator.f();
|
|
10744
10749
|
}
|
|
10745
10750
|
setTaskStates(stateMap);
|
|
10751
|
+
setIsLoading(false);
|
|
10746
10752
|
});
|
|
10753
|
+
} else {
|
|
10754
|
+
setIsLoading(false);
|
|
10747
10755
|
}
|
|
10748
10756
|
}, [widgetUuid, scheduledTaskDefs.length]);
|
|
10749
10757
|
if (!item || scheduledTaskDefs.length === 0) return null;
|
|
10758
|
+
if (isLoading) {
|
|
10759
|
+
return /*#__PURE__*/jsxs("div", {
|
|
10760
|
+
className: "flex flex-col flex-1 min-h-0 p-6",
|
|
10761
|
+
children: [/*#__PURE__*/jsx(SubHeading3, {
|
|
10762
|
+
title: "Schedule",
|
|
10763
|
+
padding: false
|
|
10764
|
+
}), /*#__PURE__*/jsx("div", {
|
|
10765
|
+
className: "text-sm opacity-50 mt-4",
|
|
10766
|
+
children: "Loading schedules..."
|
|
10767
|
+
})]
|
|
10768
|
+
});
|
|
10769
|
+
}
|
|
10750
10770
|
return /*#__PURE__*/jsxs("div", {
|
|
10751
10771
|
className: "flex flex-col flex-1 min-h-0 overflow-y-auto p-6 space-y-4",
|
|
10752
10772
|
children: [/*#__PURE__*/jsx(SubHeading3, {
|
|
@@ -13565,9 +13585,9 @@ var getUserConfigurableProviders = function getUserConfigurableProviders(provide
|
|
|
13565
13585
|
});
|
|
13566
13586
|
};
|
|
13567
13587
|
|
|
13568
|
-
function _createForOfIteratorHelper$
|
|
13569
|
-
function _unsupportedIterableToArray$
|
|
13570
|
-
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; }
|
|
13571
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; }
|
|
13572
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; }
|
|
13573
13593
|
var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
@@ -13834,11 +13854,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
|
|
|
13834
13854
|
|
|
13835
13855
|
// Flatten all widgets from all packages for the widget list
|
|
13836
13856
|
flatWidgets = [];
|
|
13837
|
-
_iterator = _createForOfIteratorHelper$
|
|
13857
|
+
_iterator = _createForOfIteratorHelper$b(result.packages || []);
|
|
13838
13858
|
try {
|
|
13839
13859
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
13840
13860
|
pkg = _step.value;
|
|
13841
|
-
_iterator2 = _createForOfIteratorHelper$
|
|
13861
|
+
_iterator2 = _createForOfIteratorHelper$b(pkg.widgets || []);
|
|
13842
13862
|
try {
|
|
13843
13863
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
13844
13864
|
widget = _step2.value;
|
|
@@ -15394,9 +15414,9 @@ var ProviderBadge = function ProviderBadge(_ref) {
|
|
|
15394
15414
|
});
|
|
15395
15415
|
};
|
|
15396
15416
|
|
|
15397
|
-
function _createForOfIteratorHelper$
|
|
15398
|
-
function _unsupportedIterableToArray$
|
|
15399
|
-
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; }
|
|
15400
15420
|
var WidgetCardHeader = function WidgetCardHeader(_ref) {
|
|
15401
15421
|
var item = _ref.item,
|
|
15402
15422
|
widget = _ref.widget,
|
|
@@ -15440,7 +15460,7 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
|
|
|
15440
15460
|
var el = headerRef.current;
|
|
15441
15461
|
if (!el) return;
|
|
15442
15462
|
var observer = new ResizeObserver(function (entries) {
|
|
15443
|
-
var _iterator = _createForOfIteratorHelper$
|
|
15463
|
+
var _iterator = _createForOfIteratorHelper$a(entries),
|
|
15444
15464
|
_step;
|
|
15445
15465
|
try {
|
|
15446
15466
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -15741,6 +15761,286 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
|
|
|
15741
15761
|
});
|
|
15742
15762
|
};
|
|
15743
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
|
+
|
|
15744
16044
|
/**
|
|
15745
16045
|
* WidgetCard
|
|
15746
16046
|
*
|
|
@@ -15920,6 +16220,7 @@ var WidgetCard = function WidgetCard(_ref4) {
|
|
|
15920
16220
|
WidgetCard.Header = WidgetCardHeader_Component;
|
|
15921
16221
|
WidgetCard.Body = WidgetCardBody;
|
|
15922
16222
|
WidgetCard.Footer = WidgetCardFooter;
|
|
16223
|
+
WidgetCard.StatusBar = WidgetCardStatusBar;
|
|
15923
16224
|
|
|
15924
16225
|
var ProviderSelector = function ProviderSelector(_ref) {
|
|
15925
16226
|
var isOpen = _ref.isOpen,
|
|
@@ -18790,6 +19091,8 @@ var WidgetContainerGridItem = function WidgetContainerGridItem(_ref) {
|
|
|
18790
19091
|
}), /*#__PURE__*/jsx(WidgetCard.Footer, {
|
|
18791
19092
|
item: item,
|
|
18792
19093
|
onConfigure: handleOpenConfig
|
|
19094
|
+
}), /*#__PURE__*/jsx(WidgetCard.StatusBar, {
|
|
19095
|
+
item: item
|
|
18793
19096
|
})]
|
|
18794
19097
|
}), (item.type !== "widget") && /*#__PURE__*/jsxs(Fragment, {
|
|
18795
19098
|
children: [/*#__PURE__*/jsxs("div", {
|
|
@@ -18851,6 +19154,8 @@ var WidgetContainerGridItem = function WidgetContainerGridItem(_ref) {
|
|
|
18851
19154
|
}), /*#__PURE__*/jsx(WidgetCard.Footer, {
|
|
18852
19155
|
item: item,
|
|
18853
19156
|
onConfigure: handleOpenConfig
|
|
19157
|
+
}), /*#__PURE__*/jsx(WidgetCard.StatusBar, {
|
|
19158
|
+
item: item
|
|
18854
19159
|
})]
|
|
18855
19160
|
}), (item.type !== "widget") && /*#__PURE__*/jsxs(Fragment, {
|
|
18856
19161
|
children: [/*#__PURE__*/jsx("div", {
|
|
@@ -20034,38 +20339,48 @@ var WidgetRenderer = function WidgetRenderer(_ref) {
|
|
|
20034
20339
|
var widgetContextValue = {
|
|
20035
20340
|
widgetData: widgetData
|
|
20036
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));
|
|
20037
20369
|
|
|
20038
20370
|
// Wrap widget rendering with WidgetContext + error boundary
|
|
20039
20371
|
return /*#__PURE__*/jsx(WidgetContext.Provider, {
|
|
20040
20372
|
value: widgetContextValue,
|
|
20041
20373
|
children: /*#__PURE__*/jsx(WidgetErrorBoundary, {
|
|
20042
20374
|
widgetName: component,
|
|
20043
|
-
children:
|
|
20044
|
-
|
|
20045
|
-
|
|
20046
|
-
|
|
20047
|
-
|
|
20048
|
-
|
|
20049
|
-
|
|
20050
|
-
}
|
|
20051
|
-
|
|
20052
|
-
}, params), userPrefs), {}, {
|
|
20053
|
-
backgroundColor: bgColor,
|
|
20054
|
-
widgetConfig: helpers.config(),
|
|
20055
|
-
widgetEventNames: helpers.events()
|
|
20056
|
-
}), "widget-nokids-".concat(widgetKey)) : /*#__PURE__*/jsx(WidgetComponent, _objectSpread$m(_objectSpread$m(_objectSpread$m({
|
|
20057
|
-
listen: function listen(listeners, handlers) {
|
|
20058
|
-
return helpers.listen(listeners, handlers);
|
|
20059
|
-
},
|
|
20060
|
-
publishEvent: function publishEvent(eventName, payload) {
|
|
20061
|
-
return helpers.publishEvent(eventName, payload);
|
|
20062
|
-
},
|
|
20063
|
-
api: w,
|
|
20064
|
-
id: "widget-kids-".concat(widgetKey)
|
|
20065
|
-
}, params), userPrefs), {}, {
|
|
20066
|
-
backgroundColor: bgColor,
|
|
20067
|
-
children: children
|
|
20068
|
-
}), "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
|
|
20069
20384
|
})
|
|
20070
20385
|
});
|
|
20071
20386
|
}
|
|
@@ -45714,5 +46029,5 @@ var WorkspaceMenu = function WorkspaceMenu(_ref) {
|
|
|
45714
46029
|
|
|
45715
46030
|
ComponentManager.registerContainerTypes(LayoutContainer, LayoutGridContainer);
|
|
45716
46031
|
|
|
45717
|
-
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 };
|
|
45718
46033
|
//# sourceMappingURL=index.esm.js.map
|