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