@dexteel/mesf-core 4.26.5 → 4.27.0

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  export { LicenseManager } from 'ag-grid-enterprise';
2
- import { withStyles, DialogTitle as DialogTitle$1, DialogContent as DialogContent$1, DialogActions as DialogActions$1, createStyles, Grid, Button, alpha, makeStyles, Dialog as Dialog$1, SvgIcon, Collapse, Typography as Typography$1, Checkbox, TextField, InputAdornment, IconButton as IconButton$1, MenuItem, Card, CardContent, CardActions, Snackbar, CircularProgress, Paper, InputLabel, Select, FormHelperText, DialogContentText, FormControlLabel, Badge, useTheme, FormControl, Input, Chip, Tooltip, ListItemIcon, Box, List, ListItem, ListItemText, MenuList, Divider, debounce } from '@material-ui/core';
3
- import { get as get$1, isNil as isNil$1, isEmpty, values, round, isNaN, isNumber } from 'lodash-es';
2
+ import { withStyles, DialogTitle as DialogTitle$1, DialogContent as DialogContent$1, DialogActions as DialogActions$1, createStyles, Grid, Button, alpha, makeStyles, Dialog as Dialog$1, SvgIcon, Collapse, Typography as Typography$1, Checkbox, TextField, InputAdornment, IconButton as IconButton$1, MenuItem, Card, CardContent, CardActions, CircularProgress, Snackbar, FormControlLabel, Switch, Paper, InputLabel, Select, FormHelperText, DialogContentText, Badge, useTheme, FormControl, Input, Chip, Tooltip, ListItemIcon, Box, List, ListItem, ListItemText, MenuList, Divider, debounce } from '@material-ui/core';
3
+ import { isNil, get, isEmpty, values, round, isNaN, isNumber } from 'lodash-es';
4
4
  import * as React from 'react';
5
5
  import React__default, { useState, useRef, useEffect, useMemo, Component, createContext, useContext, useCallback, lazy, Suspense } from 'react';
6
6
  import { ArrowRight, ArrowBackRounded, ArrowForwardRounded, SkipNext, ChevronLeft, ChevronRight, Send } from '@material-ui/icons';
@@ -18,13 +18,13 @@ import { HTML5Backend } from 'react-dnd-html5-backend';
18
18
  import { AgGridReact } from 'ag-grid-react';
19
19
  import MomentUtils from '@date-io/moment';
20
20
  import { MuiPickersUtilsProvider, KeyboardDatePicker, KeyboardTimePicker } from '@material-ui/pickers';
21
- import moment$4 from 'moment';
21
+ import moment$7 from 'moment';
22
22
  import EditIcon from '@material-ui/icons/Edit';
23
23
  import PlaylistAddIcon from '@material-ui/icons/PlaylistAdd';
24
- import { isNil, get } from 'lodash';
24
+ import { isNil as isNil$1, get as get$1 } from 'lodash';
25
25
  import { HubConnectionBuilder, LogLevel as LogLevel$1 } from '@microsoft/signalr';
26
26
  export * from '@microsoft/signalr';
27
- import { Alert as Alert$3, Autocomplete } from '@material-ui/lab';
27
+ import { Alert as Alert$2, Autocomplete } from '@material-ui/lab';
28
28
  import { useForm, Controller } from 'react-hook-form';
29
29
  import 'ag-grid-community/styles/ag-theme-material.min.css';
30
30
  import SearchIcon from '@material-ui/icons/Search';
@@ -44,9 +44,9 @@ import InsertChartIcon from '@material-ui/icons/InsertChart';
44
44
  import ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';
45
45
  import SkipNextIcon from '@material-ui/icons/SkipNext';
46
46
  import { Line } from 'react-chartjs-2';
47
- import { ClearIcon, DatePicker as DatePicker$1, CalendarIcon, LocalizationProvider } from '@mui/x-date-pickers';
47
+ import { ClearIcon, DateTimePicker, DatePicker as DatePicker$1, CalendarIcon, LocalizationProvider } from '@mui/x-date-pickers';
48
48
  import { AdapterMoment } from '@mui/x-date-pickers/AdapterMoment';
49
- import moment$5 from 'moment-timezone';
49
+ import moment$6 from 'moment-timezone';
50
50
  import PersonPinCircleIcon from '@material-ui/icons/PersonPinCircle';
51
51
  import Dialog from '@material-ui/core/Dialog';
52
52
  import IconButton from '@material-ui/core/IconButton';
@@ -62,14 +62,14 @@ import { useSpring, animated } from '@react-spring/web';
62
62
  import { DataGrid, GridOverlay } from '@material-ui/data-grid';
63
63
  import { format, fromZonedTime, formatInTimeZone } from 'date-fns-tz';
64
64
  import { findIana } from 'windows-iana';
65
- import Alert$2 from '@material-ui/lab/Alert';
65
+ import 'ag-grid-community/styles/ag-grid.css';
66
66
  import RefreshIcon from '@material-ui/icons/Refresh';
67
67
  import ReplayIcon from '@material-ui/icons/Replay';
68
68
  import ToggleOfIcon from '@material-ui/icons/ToggleOff';
69
69
  import ToggleOnIcon from '@material-ui/icons/ToggleOn';
70
+ import Alert$3 from '@material-ui/lab/Alert';
70
71
  import 'ag-grid-enterprise/styles/ag-grid.css';
71
72
  import 'ag-grid-enterprise/styles/ag-theme-balham.min.css';
72
- import 'ag-grid-community/styles/ag-grid.css';
73
73
  import 'ag-grid-community/styles/ag-theme-alpine.css';
74
74
  import AddBoxIcon from '@material-ui/icons/AddBox';
75
75
  import FindInPageIcon from '@material-ui/icons/FindInPage';
@@ -406,6 +406,9 @@ var useTreviewStyle = makeStyles(function (theme) { return ({
406
406
  textDecoration: "line-through",
407
407
  textDecorationColor: "red"
408
408
  },
409
+ treeLabelUnselectable: {
410
+ color: "grey"
411
+ },
409
412
  smallCheckbox: {
410
413
  transform: "scale(0.8)"
411
414
  }
@@ -511,6 +514,11 @@ var ModalTreeFilterControl = function (props) {
511
514
  setExpanded(expandedNode);
512
515
  };
513
516
  var handleChange = function (event, nodeIds) {
517
+ var findNode = getNodeData(data, nodeIds !== undefined ? Number.parseInt(nodeIds) : -1);
518
+ if ((findNode === null || findNode === void 0 ? void 0 : findNode.hasOwnProperty("isSelectable")) &&
519
+ findNode.isSelectable === false) {
520
+ return;
521
+ }
514
522
  setValue(Number.parseInt(nodeIds));
515
523
  };
516
524
  var handleToogle = function (event, nodeIds) {
@@ -552,7 +560,10 @@ var ModalTreeFilterControl = function (props) {
552
560
  var renderTree = function (nodes) { return (React__default.createElement(StyledTreeItem, { isChecked: selectedNodes.includes(nodes.id), key: nodes.id, nodeId: nodes.id.toString(), label: React__default.createElement("div", { className: classes.treeLabelRoot },
553
561
  nodes.isCode === true && (React__default.createElement(Code, { className: classes.treLabelIcon, htmlColor: "#1ABC9C" })),
554
562
  nodes.isCode === false && (React__default.createElement(FolderIcon, { className: classes.treLabelIcon, htmlColor: "#F1C40F" })),
555
- React__default.createElement(Typography$1, { variant: "body2", className: "".concat(classes.treeLabelText, " ").concat(!nodes.isActive ? classes.treeLabelInactive : "") },
563
+ React__default.createElement(Typography$1, { variant: "body2", className: "\n\t\t\t\t\t\t\t".concat(classes.treeLabelText, "\n\t\t\t\t\t\t\t").concat(!nodes.isActive ? classes.treeLabelInactive : "", "\n\t\t\t\t\t\t\t").concat((nodes === null || nodes === void 0 ? void 0 : nodes.hasOwnProperty("isSelectable")) &&
564
+ nodes.isSelectable === false
565
+ ? classes.treeLabelUnselectable
566
+ : "", "\n\t\t\t\t\t\t") },
556
567
  React__default.createElement("span", null,
557
568
  nodes.isCode && (React__default.createElement("i", { className: "fas fa-square mr-2", style: { color: nodes.delayCategoryColor || "#FFFFFF" } })),
558
569
  nodes.name)),
@@ -728,7 +739,7 @@ var TreePickerControlV2 = function (props) {
728
739
  style: {
729
740
  color: disabled ? "grey" : "black",
730
741
  cursor: "pointer",
731
- paddingRight: 45
742
+ paddingRight: 25
732
743
  },
733
744
  endAdornment: (React__default.createElement(InputAdornment, { position: "end", style: {
734
745
  cursor: "pointer"
@@ -739,7 +750,7 @@ var TreePickerControlV2 = function (props) {
739
750
  }, style: {
740
751
  cursor: "pointer",
741
752
  zIndex: 100
742
- }, edge: "end" },
753
+ }, edge: "end", size: "small" },
743
754
  React__default.createElement(ClearIcon, null))) : null,
744
755
  React__default.createElement(AccountTreeIcon, { style: {
745
756
  cursor: "pointer"
@@ -1139,45 +1150,73 @@ var LongFilterPanel = /** @class */ (function (_super) {
1139
1150
  return LongFilterPanel;
1140
1151
  }(Component));
1141
1152
 
1142
- var Alert = function (props) {
1143
- return React__default.createElement(Alert$2, __assign({ elevation: 6, variant: "filled" }, props));
1144
- };
1145
-
1146
- var JobsInitialState = {
1147
- jobsData: [],
1148
- blockButtons: false
1149
- };
1150
- var JobsReducer = createSlice({
1151
- name: "__",
1152
- initialState: JobsInitialState,
1153
- reducers: {
1154
- setJobs: function (state, _a) {
1155
- var payload = _a.payload;
1156
- state.jobsData = payload;
1157
- },
1158
- setBlockButtons: function (state, _a) {
1159
- var payload = _a.payload;
1160
- state.blockButtons = payload;
1161
- }
1153
+ var TimeService = /** @class */ (function () {
1154
+ function TimeService() {
1155
+ this.timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
1162
1156
  }
1163
- });
1164
-
1165
- var JobsContext = createContext({
1166
- state: JobsReducer.getInitialState(),
1167
- actions: JobsReducer.actions
1168
- });
1169
- var useJobsContext = function () { return useContext(JobsContext); };
1170
- var JobsProvider = function (_a) {
1171
- var children = _a.children;
1172
- var _b = useComplexState({
1173
- initialState: JobsReducer.getInitialState(),
1174
- reducers: JobsReducer.caseReducers
1175
- }), state = _b[0], actions = _b[1];
1176
- return (React__default.createElement(JobsContext.Provider, { value: { state: state, actions: actions } }, children));
1177
- };
1157
+ TimeService.getInstance = function () {
1158
+ if (!TimeService.instance) {
1159
+ TimeService.instance = new TimeService();
1160
+ }
1161
+ return TimeService.instance;
1162
+ };
1163
+ TimeService.prototype.setTimeZone = function (timeZone) {
1164
+ var ianaTimeZones = findIana(timeZone);
1165
+ if (ianaTimeZones.length) {
1166
+ this.timeZone = ianaTimeZones[0];
1167
+ }
1168
+ else {
1169
+ this.timeZone = timeZone;
1170
+ }
1171
+ moment$6.tz.setDefault(this.timeZone);
1172
+ };
1173
+ TimeService.prototype.toUTC = function (datetime, format$1) {
1174
+ try {
1175
+ if (datetime instanceof Date) {
1176
+ return format(datetime, format$1);
1177
+ }
1178
+ return format(fromZonedTime(datetime, TimeService.instance.timeZone), format$1);
1179
+ }
1180
+ catch (e) {
1181
+ console.log({ datetime: datetime, e: e });
1182
+ return "";
1183
+ }
1184
+ };
1185
+ TimeService.prototype.toLocalServerTime = function (datetime, format) {
1186
+ try {
1187
+ if (isNil(datetime) || !datetime) {
1188
+ return "";
1189
+ }
1190
+ if (typeof datetime === "string") {
1191
+ if (datetime.includes("Z")) {
1192
+ datetime = new Date(datetime);
1193
+ }
1194
+ else {
1195
+ datetime = new Date("".concat(datetime, "Z"));
1196
+ }
1197
+ }
1198
+ return formatInTimeZone(datetime, TimeService.instance.timeZone, format);
1199
+ }
1200
+ catch (e) {
1201
+ console.log({ datetime: datetime, e: e });
1202
+ return "";
1203
+ }
1204
+ };
1205
+ TimeService.prototype.getServerTimeZone = function () {
1206
+ return this.timeZone;
1207
+ };
1208
+ return TimeService;
1209
+ }());
1210
+ var getMomentTz = function () { return moment$6; };
1211
+ var dxtServerTimeZone = function () {
1212
+ return TimeService.getInstance().getServerTimeZone;
1213
+ };
1214
+ var dxtToUTC = TimeService.getInstance().toUTC;
1215
+ var dxtToLocalServerTime = TimeService.getInstance().toLocalServerTime;
1178
1216
 
1217
+ var moment$5 = getMomentTz();
1179
1218
  var GetJobsStatus = function () { return __awaiter(void 0, void 0, void 0, function () {
1180
- var apiService, resp;
1219
+ var apiService, resp, rows;
1181
1220
  return __generator(this, function (_a) {
1182
1221
  switch (_a.label) {
1183
1222
  case 0:
@@ -1185,67 +1224,99 @@ var GetJobsStatus = function () { return __awaiter(void 0, void 0, void 0, funct
1185
1224
  return [4 /*yield*/, apiService.callV2("[SYSTEM].[GetJobsStatus]", [])];
1186
1225
  case 1:
1187
1226
  resp = _a.sent();
1188
- return [2 /*return*/, resp];
1227
+ if (resp.ok) {
1228
+ rows = get(resp, "data.tables[0].rows", []);
1229
+ rows = rows.map(function (job) { return (__assign(__assign({}, job), { LastStarted: job.LastStarted
1230
+ ? moment$5.utc(job["LastStarted"]).toDate()
1231
+ : null, LastContact: job.LastContact
1232
+ ? moment$5.utc(job["LastContact"]).toDate()
1233
+ : null, LastCounter: job.LastCounter
1234
+ ? moment$5.utc(job["LastCounter"]).toDate()
1235
+ : null, StartTime: job.StartTime ? moment$5.utc(job["StartTime"]).toDate() : null, NextExecutionTime: job.NextExecutionTime
1236
+ ? moment$5.utc(job["NextExecutionTime"]).toDate()
1237
+ : null, LastExecutionTime: job.LastExecutionTime
1238
+ ? moment$5.utc(job["LastExecutionTime"]).toDate()
1239
+ : null })); });
1240
+ return [2 /*return*/, {
1241
+ ok: true,
1242
+ data: rows
1243
+ }];
1244
+ }
1245
+ else {
1246
+ return [2 /*return*/, {
1247
+ ok: false,
1248
+ message: resp.message
1249
+ }];
1250
+ }
1189
1251
  }
1190
1252
  });
1191
1253
  }); };
1192
- var SetJobEnable = function (Enable, sProcedure) { return __awaiter(void 0, void 0, void 0, function () {
1193
- var apiService, parameters, resp;
1254
+ var upsertJob = function (job) { return __awaiter(void 0, void 0, void 0, function () {
1255
+ var apiService, parameters;
1194
1256
  return __generator(this, function (_a) {
1195
1257
  switch (_a.label) {
1196
1258
  case 0:
1197
1259
  apiService = new MESApiService();
1198
- parameters = [];
1199
- parameters.push({ name: "Enable", value: !Enable });
1200
- parameters.push({ name: "sProcedure", value: sProcedure });
1260
+ parameters = [
1261
+ { name: "JobId", value: job.JobId },
1262
+ { name: "sProcedure", value: job.sProcedure },
1263
+ { name: "StartTime", value: job.StartTime },
1264
+ { name: "PeriodTime", value: job.PeriodTime },
1265
+ { name: "RestartAfterFailure", value: job.RestartAfterFailure },
1266
+ ];
1267
+ return [4 /*yield*/, apiService.callV2("[SYSTEM].[UpsertJob]", parameters)];
1268
+ case 1: return [2 /*return*/, _a.sent()];
1269
+ }
1270
+ });
1271
+ }); };
1272
+ var SetJobEnable = function (enabled, jobId) { return __awaiter(void 0, void 0, void 0, function () {
1273
+ var apiService, parameters;
1274
+ return __generator(this, function (_a) {
1275
+ switch (_a.label) {
1276
+ case 0:
1277
+ apiService = new MESApiService();
1278
+ parameters = [
1279
+ { name: "Enabled", value: enabled !== null && enabled !== void 0 ? enabled : true },
1280
+ { name: "JobId", value: jobId },
1281
+ ];
1201
1282
  return [4 /*yield*/, apiService.callV2("[SYSTEM].[SetJobEnable]", parameters)];
1202
- case 1:
1203
- resp = _a.sent();
1204
- return [2 /*return*/, resp];
1283
+ case 1: return [2 /*return*/, _a.sent()];
1205
1284
  }
1206
1285
  });
1207
1286
  }); };
1208
- var RestartJob = function (sProcedure) { return __awaiter(void 0, void 0, void 0, function () {
1209
- var apiService, parameters, resp;
1287
+ var RestartJob = function (jobId) { return __awaiter(void 0, void 0, void 0, function () {
1288
+ var apiService, parameters;
1210
1289
  return __generator(this, function (_a) {
1211
1290
  switch (_a.label) {
1212
1291
  case 0:
1213
1292
  apiService = new MESApiService();
1214
- parameters = [];
1215
- parameters.push({ name: "sProcedure", value: sProcedure });
1293
+ parameters = [{ name: "JobId", value: jobId }];
1216
1294
  return [4 /*yield*/, apiService.callV2("[SYSTEM].[RestartJob]", parameters)];
1217
- case 1:
1218
- resp = _a.sent();
1219
- return [2 /*return*/, resp];
1295
+ case 1: return [2 /*return*/, _a.sent()];
1220
1296
  }
1221
1297
  });
1222
1298
  }); };
1223
1299
 
1224
1300
  var ResetJob = function (_a) {
1225
- var rowSelected = _a.rowSelected, show = _a.show, onHide = _a.onHide, setSnackbarLoading = _a.setSnackbarLoading, setSnackbarSuccessfulMessage = _a.setSnackbarSuccessfulMessage;
1301
+ var jobSelected = _a.jobSelected, show = _a.show, onHide = _a.onHide;
1226
1302
  var _b = useState(""), error = _b[0], setError = _b[1];
1227
1303
  var _c = useState(false), isLoading = _c[0], setIsLoading = _c[1];
1228
- var setBlockButtons = useJobsContext().actions.setBlockButtons;
1304
+ var _d = useState(false), openSnackbar = _d[0], setOpenSnackbar = _d[1];
1229
1305
  var onSubmit = function () { return __awaiter(void 0, void 0, void 0, function () {
1230
- var sProcedure;
1231
- return __generator(this, function (_a) {
1232
- sProcedure = rowSelected.sProcedure;
1233
- setSnackbarLoading(true);
1234
- setBlockButtons(true);
1306
+ var _a;
1307
+ return __generator(this, function (_b) {
1235
1308
  setIsLoading(true);
1236
- RestartJob(sProcedure)
1309
+ RestartJob((_a = jobSelected === null || jobSelected === void 0 ? void 0 : jobSelected.JobId) !== null && _a !== void 0 ? _a : null)
1237
1310
  .then(function (res) {
1238
1311
  if (res.ok) {
1239
1312
  onHide(true);
1240
- setSnackbarSuccessfulMessage(true);
1313
+ setOpenSnackbar(true);
1241
1314
  }
1242
1315
  else {
1243
1316
  setError(res.message);
1244
1317
  }
1245
1318
  })["finally"](function () {
1246
1319
  setIsLoading(false);
1247
- setSnackbarLoading(false);
1248
- setBlockButtons(false);
1249
1320
  });
1250
1321
  return [2 /*return*/];
1251
1322
  });
@@ -1254,81 +1325,229 @@ var ResetJob = function (_a) {
1254
1325
  React__default.createElement(MesfModal, { title: "RESET JOB", open: show, handleClose: function () { return onHide(false); }, id: "reset-job-modal" },
1255
1326
  React__default.createElement(MesfModal.Content, null, "Are you sure you want to reset? This action leaves the task in enable"),
1256
1327
  React__default.createElement(MesfModal.Actions, { style: { padding: "16px 24px" } },
1257
- React__default.createElement(Button, { onClick: function () { return onHide(false); }, autoFocus: true, color: "default" }, "DISAGREE"),
1258
- React__default.createElement(Button, { onClick: function () {
1259
- onSubmit();
1260
- }, disabled: isLoading, variant: "outlined", color: "primary" }, "AGREE"))),
1261
- React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
1328
+ React__default.createElement(Grid, { container: true, spacing: 2, justifyContent: "flex-end" },
1329
+ React__default.createElement(Grid, { item: true, md: 3, xs: 12, style: { margin: 0 } },
1330
+ React__default.createElement(Button, { fullWidth: true, variant: "contained", color: "default", onClick: function () { return onHide(false); } }, "Disagree")),
1331
+ React__default.createElement(Grid, { item: true, md: 3, xs: 12, style: { margin: 0 } },
1332
+ React__default.createElement(Button, { fullWidth: true, startIcon: isLoading && React__default.createElement(CircularProgress, { size: "1rem" }), onClick: function () { return onSubmit(); }, disabled: isLoading, variant: "contained", color: "primary" }, "Agree"))))),
1333
+ React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } }),
1334
+ React__default.createElement(Snackbar, { open: openSnackbar, autoHideDuration: 2500, onClose: function () { return setOpenSnackbar(false); } },
1335
+ React__default.createElement(Alert$2, { severity: "success", onClose: function () { return setOpenSnackbar(false); } }, "The job was reseted succesfully"))));
1262
1336
  };
1263
1337
 
1264
1338
  var OnEnableJob = function (_a) {
1265
- var rowSelected = _a.rowSelected, show = _a.show, onHide = _a.onHide;
1339
+ var jobSelected = _a.jobSelected, show = _a.show, onHide = _a.onHide;
1266
1340
  var _b = useState(""), error = _b[0], setError = _b[1];
1267
1341
  var _c = useState(false), isLoading = _c[0], setIsLoading = _c[1];
1268
- var setBlockButtons = useJobsContext().actions.setBlockButtons;
1342
+ var _d = useState(false), openSnackbar = _d[0], setOpenSnackbar = _d[1];
1269
1343
  var onSubmit = function () { return __awaiter(void 0, void 0, void 0, function () {
1270
- var Enabled, sProcedure;
1344
+ var resp;
1271
1345
  return __generator(this, function (_a) {
1272
- Enabled = rowSelected.Enabled, sProcedure = rowSelected.sProcedure;
1273
- setBlockButtons(true);
1274
- setIsLoading(true);
1275
- SetJobEnable(Enabled, sProcedure)
1276
- .then(function (res) {
1277
- if (res.ok) {
1278
- onHide(true);
1279
- }
1280
- else {
1281
- setError(res.message);
1282
- }
1283
- })["finally"](function () {
1284
- setIsLoading(false);
1285
- setBlockButtons(false);
1286
- });
1287
- return [2 /*return*/];
1346
+ switch (_a.label) {
1347
+ case 0:
1348
+ setIsLoading(true);
1349
+ return [4 /*yield*/, SetJobEnable(!(jobSelected === null || jobSelected === void 0 ? void 0 : jobSelected.Enabled), jobSelected === null || jobSelected === void 0 ? void 0 : jobSelected.JobId)];
1350
+ case 1:
1351
+ resp = _a.sent();
1352
+ if (resp.ok) {
1353
+ setOpenSnackbar(true);
1354
+ onHide(true);
1355
+ }
1356
+ else {
1357
+ setError(resp.message);
1358
+ onHide(false);
1359
+ }
1360
+ setIsLoading(false);
1361
+ return [2 /*return*/];
1362
+ }
1288
1363
  });
1289
1364
  }); };
1290
1365
  return (React__default.createElement(React__default.Fragment, null,
1291
- React__default.createElement(MesfModal, { title: "ENABLE JOB", open: show, handleClose: function () { return onHide(false); }, id: "enable-job-modal" },
1292
- React__default.createElement(MesfModal.Content, null, "Are you sure you want to reset? This action leaves the task in enable"),
1366
+ React__default.createElement(MesfModal, { title: "".concat((jobSelected === null || jobSelected === void 0 ? void 0 : jobSelected.Enabled) ? "DISABLE" : "ENABLE", " JOB"), open: show, handleClose: function () { return onHide(false); }, id: "enable-job-modal" },
1367
+ React__default.createElement(MesfModal.Content, null,
1368
+ "Are you sure you want to ",
1369
+ (jobSelected === null || jobSelected === void 0 ? void 0 : jobSelected.Enabled) ? "disable" : "enable",
1370
+ " ",
1371
+ "the job?"),
1293
1372
  React__default.createElement(MesfModal.Actions, { style: { padding: "16px 24px" } },
1294
- React__default.createElement(Button, { onClick: function () { return onHide(false); }, autoFocus: true, color: "default" }, "DISAGREE"),
1295
- React__default.createElement(Button, { onClick: function () {
1296
- onSubmit();
1297
- }, disabled: isLoading, variant: "outlined", color: "primary" }, "AGREE"))),
1373
+ React__default.createElement(Grid, { container: true, spacing: 2, justifyContent: "flex-end" },
1374
+ React__default.createElement(Grid, { item: true, md: 3, xs: 12, style: { margin: 0 } },
1375
+ React__default.createElement(Button, { fullWidth: true, variant: "contained", color: "default", onClick: function () { return onHide(false); } }, "Disagree")),
1376
+ React__default.createElement(Grid, { item: true, md: 3, xs: 12, style: { margin: 0 } },
1377
+ React__default.createElement(Button, { fullWidth: true, startIcon: isLoading && React__default.createElement(CircularProgress, { size: "1rem" }), onClick: function () { return onSubmit(); }, disabled: isLoading, variant: "contained", color: "primary" }, "Agree"))))),
1378
+ React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } }),
1379
+ React__default.createElement(Snackbar, { open: openSnackbar, autoHideDuration: 2500, onClose: function () { return setOpenSnackbar(false); } },
1380
+ React__default.createElement(Alert$2, { severity: "success", onClose: function () { return setOpenSnackbar(false); } },
1381
+ "The job was ",
1382
+ (jobSelected === null || jobSelected === void 0 ? void 0 : jobSelected.Enabled) ? "disabled" : "enabled",
1383
+ " ",
1384
+ "succesfully"))));
1385
+ };
1386
+
1387
+ var moment$4 = getMomentTz();
1388
+ var JobDetails = function (_a) {
1389
+ var job = _a.job, modal = _a.modal, onHide = _a.onHide;
1390
+ var _b = useState(false), isSubmitLoading = _b[0], setIsSubmitLoading = _b[1];
1391
+ var _c = useState(""), error = _c[0], setError = _c[1];
1392
+ var _d = useState(false), openSnackbar = _d[0], setOpenSnackbar = _d[1];
1393
+ var _e = useForm({
1394
+ mode: "onChange"
1395
+ }), control = _e.control, reset = _e.reset, handleSubmit = _e.handleSubmit, dirtyFields = _e.formState.dirtyFields;
1396
+ var isFormDirty = !(Object.keys(dirtyFields).length === 0);
1397
+ var onSubmit = function (data) { return __awaiter(void 0, void 0, void 0, function () {
1398
+ var resp;
1399
+ return __generator(this, function (_a) {
1400
+ switch (_a.label) {
1401
+ case 0:
1402
+ setIsSubmitLoading(true);
1403
+ if (!(modal !== "reset")) return [3 /*break*/, 2];
1404
+ return [4 /*yield*/, upsertJob(data)];
1405
+ case 1:
1406
+ resp = _a.sent();
1407
+ if (resp.ok) {
1408
+ setOpenSnackbar(true);
1409
+ onHide({ close: false, entityId: resp.data.returnValue });
1410
+ }
1411
+ else {
1412
+ setError(resp.message);
1413
+ }
1414
+ _a.label = 2;
1415
+ case 2:
1416
+ setIsSubmitLoading(false);
1417
+ return [2 /*return*/];
1418
+ }
1419
+ });
1420
+ }); };
1421
+ useEffect(function () {
1422
+ if (modal === "create" || modal === "update") {
1423
+ reset(job || {
1424
+ sProcedure: "",
1425
+ RestartAfterFailure: true,
1426
+ PeriodTime: null,
1427
+ StartTime: null,
1428
+ LastStatus: null,
1429
+ LastExecutionTime: null,
1430
+ LastExecutionResult: "",
1431
+ NextExecutionTime: null
1432
+ });
1433
+ setIsSubmitLoading(false);
1434
+ }
1435
+ }, [modal, job]);
1436
+ return (React__default.createElement(React__default.Fragment, null,
1437
+ (job === null || modal !== "update") && modal !== "create" ? (React__default.createElement("div", { style: {
1438
+ display: "flex",
1439
+ justifyContent: "center",
1440
+ alignItems: "center",
1441
+ height: "100%",
1442
+ width: "100%"
1443
+ } },
1444
+ React__default.createElement(Typography$1, null, "Select a job or create a new one"))) : (React__default.createElement("form", { onSubmit: handleSubmit(onSubmit) },
1445
+ React__default.createElement(Grid, { container: true, spacing: 1 },
1446
+ React__default.createElement(Grid, { item: true, xs: 12, md: 12 },
1447
+ React__default.createElement(Controller, { name: "sProcedure", control: control, rules: { required: "Name is required" }, render: function (_a) {
1448
+ var _b;
1449
+ var field = _a.field, error = _a.fieldState.error;
1450
+ return (React__default.createElement(TextField, { label: "Name", value: (_b = field.value) !== null && _b !== void 0 ? _b : "", onChange: field.onChange, variant: "outlined", size: "small", fullWidth: true, error: !!error, helperText: error === null || error === void 0 ? void 0 : error.message }));
1451
+ } })),
1452
+ React__default.createElement(Grid, { item: true, xs: 12, md: 6 },
1453
+ React__default.createElement(Controller, { name: "RestartAfterFailure", control: control, render: function (_a) {
1454
+ var field = _a.field;
1455
+ return (React__default.createElement(FormControlLabel, { control: React__default.createElement(Checkbox, { checked: !!field.value, onChange: field.onChange, name: "RestartAfterFailure", color: "primary" }), label: "Restart After Failure" }));
1456
+ } })),
1457
+ React__default.createElement(Grid, { item: true, xs: 12, md: 6, style: { marginTop: -7 } },
1458
+ React__default.createElement(Controller, { name: "PeriodTime", control: control, rules: { required: "Period time is required" }, render: function (_a) {
1459
+ var _b;
1460
+ var field = _a.field, error = _a.fieldState.error;
1461
+ return (React__default.createElement(TextField, { label: "Period Time", value: (_b = field.value) !== null && _b !== void 0 ? _b : "", onChange: field.onChange, variant: "outlined", size: "small", margin: "dense", fullWidth: true, error: !!error, helperText: error === null || error === void 0 ? void 0 : error.message }));
1462
+ } })),
1463
+ React__default.createElement(Grid, { item: true, xs: 12, md: 6 },
1464
+ React__default.createElement(Controller, { name: "StartTime", control: control, render: function (_a) {
1465
+ var field = _a.field, error = _a.fieldState.error;
1466
+ return (React__default.createElement(React__default.Fragment, null,
1467
+ React__default.createElement(DateTimePicker, { label: "Start Time", value: field.value ? moment$4(field.value) : null, onChange: field.onChange, format: "MM/DD/YYYY HH:mm:ss", views: ["year", "month", "day", "hours", "minutes"], ampm: false, timezone: TimeService.getInstance().getServerTimeZone(), slotProps: {
1468
+ textField: {
1469
+ size: "small",
1470
+ margin: "none",
1471
+ error: !!error
1472
+ }
1473
+ } })));
1474
+ } })),
1475
+ React__default.createElement(Grid, { item: true, xs: 12, md: 6 },
1476
+ React__default.createElement(Controller, { name: "LastStatus", control: control, render: function (_a) {
1477
+ var _b;
1478
+ var field = _a.field;
1479
+ return (React__default.createElement(TextField, { label: "Last Status", value: (_b = field.value) !== null && _b !== void 0 ? _b : "", variant: "outlined", size: "small", fullWidth: true, disabled: true }));
1480
+ } })),
1481
+ React__default.createElement(Grid, { item: true, xs: 12, md: 6 },
1482
+ React__default.createElement(Controller, { name: "LastExecutionTime", control: control, render: function (_a) {
1483
+ var field = _a.field;
1484
+ return (React__default.createElement(DateTimePicker, { label: "Last Execution Time", value: field.value ? moment$4(field.value) : null, format: "MM/DD/YYYY HH:mm:ss", views: ["year", "month", "day", "hours", "minutes"], ampm: false, timezone: TimeService.getInstance().getServerTimeZone(), disabled: true, slotProps: {
1485
+ textField: {
1486
+ size: "small",
1487
+ margin: "none"
1488
+ }
1489
+ } }));
1490
+ } })),
1491
+ React__default.createElement(Grid, { item: true, xs: 12, md: 6 },
1492
+ React__default.createElement(Controller, { name: "NextExecutionTime", control: control, render: function (_a) {
1493
+ var field = _a.field;
1494
+ return (React__default.createElement(DateTimePicker, { label: "Next Execution Time", value: field.value ? moment$4(field.value) : null, format: "MM/DD/YYYY HH:mm:ss", views: ["year", "month", "day", "hours", "minutes"], ampm: false, timezone: TimeService.getInstance().getServerTimeZone(), disabled: true, slotProps: {
1495
+ textField: {
1496
+ size: "small",
1497
+ margin: "none"
1498
+ }
1499
+ } }));
1500
+ } })),
1501
+ React__default.createElement(Grid, { item: true, xs: 12, md: 12 },
1502
+ React__default.createElement(Controller, { name: "LastExecutionResult", control: control, render: function (_a) {
1503
+ var _b;
1504
+ var field = _a.field;
1505
+ return (React__default.createElement(TextField, { label: "Last Execution Result", value: (_b = field.value) !== null && _b !== void 0 ? _b : "", variant: "outlined", size: "small", margin: "dense", fullWidth: true, multiline: true, minRows: 2, maxRows: 2, disabled: true }));
1506
+ } })),
1507
+ React__default.createElement(Grid, { container: true, spacing: 2, justifyContent: "flex-end", style: { margin: 15 } },
1508
+ React__default.createElement(Grid, { container: true, spacing: 2, justifyContent: "flex-end" },
1509
+ React__default.createElement(Grid, { item: true, md: 3, xs: 12, style: { margin: 0 } },
1510
+ React__default.createElement(Button, { fullWidth: true, variant: "contained", color: "default", onClick: function () { return onHide({ close: true }); } }, "Close")),
1511
+ React__default.createElement(Grid, { item: true, md: 3, xs: 12, style: { margin: 0 } },
1512
+ React__default.createElement(Button, { fullWidth: true, startIcon: isSubmitLoading && React__default.createElement(CircularProgress, { size: "1rem" }), disabled: isSubmitLoading || !isFormDirty, variant: "contained", color: "primary", type: "submit" }, "Save"))))))),
1513
+ React__default.createElement(Snackbar, { open: openSnackbar, autoHideDuration: 2500, onClose: function () { return setOpenSnackbar(false); } },
1514
+ React__default.createElement(Alert$2, { severity: "success", onClose: function () { return setOpenSnackbar(false); } }, "The job was updated succesfully")),
1298
1515
  React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
1299
1516
  };
1300
1517
 
1301
1518
  var useJobsOptionsFunctions = function (_a) {
1302
- var getJobsFromAPI = _a.getJobsFromAPI, setRowSelected = _a.setRowSelected;
1519
+ var setShowModal = _a.setShowModal, setJobSelected = _a.setJobSelected, getJobsFromAPI = _a.getJobsFromAPI;
1303
1520
  var getMenuOptions = function (data) {
1304
1521
  var options = [];
1305
- if (!data) {
1306
- options = options.concat([
1307
- {
1308
- name: "Refresh Job",
1309
- key: "refresh_job",
1310
- onClick: function () {
1311
- getJobsFromAPI();
1312
- },
1313
- icon: React__default.createElement(RefreshIcon, null)
1522
+ options = options.concat([
1523
+ {
1524
+ name: "New Job",
1525
+ key: "new_job",
1526
+ onClick: function () {
1527
+ setShowModal("create");
1314
1528
  },
1315
- ]);
1316
- }
1317
- else {
1529
+ icon: React__default.createElement(PlaylistAddIcon, null)
1530
+ },
1531
+ ]);
1532
+ if (data) {
1318
1533
  options = options.concat([
1319
1534
  {
1320
1535
  name: "Enable Job",
1321
1536
  key: "enable_job",
1537
+ disabled: data.Enabled ? true : false,
1322
1538
  onClick: function () {
1323
- setRowSelected(data);
1539
+ setShowModal("enable");
1540
+ setJobSelected(data);
1324
1541
  },
1325
1542
  icon: React__default.createElement(ToggleOnIcon, null)
1326
1543
  },
1327
1544
  {
1328
1545
  name: "Disable Job",
1329
1546
  key: "disable_job",
1547
+ disabled: data.Enabled ? false : true,
1330
1548
  onClick: function () {
1331
- setRowSelected(data);
1549
+ setShowModal("enable");
1550
+ setJobSelected(data);
1332
1551
  },
1333
1552
  icon: React__default.createElement(ToggleOfIcon, null)
1334
1553
  },
@@ -1336,20 +1555,23 @@ var useJobsOptionsFunctions = function (_a) {
1336
1555
  name: "Reset Job",
1337
1556
  key: "reset_job",
1338
1557
  onClick: function () {
1339
- setRowSelected(data);
1558
+ setShowModal("reset");
1559
+ setJobSelected(data);
1340
1560
  },
1341
1561
  icon: React__default.createElement(ReplayIcon, null)
1342
1562
  },
1343
- {
1344
- name: "Refresh Job",
1345
- key: "refresh_job",
1346
- onClick: function () {
1347
- getJobsFromAPI();
1348
- },
1349
- icon: React__default.createElement(RefreshIcon, null)
1350
- },
1351
1563
  ]);
1352
1564
  }
1565
+ options = options.concat([
1566
+ {
1567
+ name: "Refresh Job",
1568
+ key: "refresh_job",
1569
+ onClick: function () {
1570
+ getJobsFromAPI();
1571
+ },
1572
+ icon: React__default.createElement(RefreshIcon, null)
1573
+ },
1574
+ ]);
1353
1575
  return options;
1354
1576
  };
1355
1577
  return {
@@ -1357,6 +1579,39 @@ var useJobsOptionsFunctions = function (_a) {
1357
1579
  };
1358
1580
  };
1359
1581
 
1582
+ var JobsInitialState = {
1583
+ jobsData: [],
1584
+ blockButtons: false
1585
+ };
1586
+ var JobsReducer = createSlice({
1587
+ name: "__",
1588
+ initialState: JobsInitialState,
1589
+ reducers: {
1590
+ setJobs: function (state, _a) {
1591
+ var payload = _a.payload;
1592
+ state.jobsData = payload;
1593
+ },
1594
+ setBlockButtons: function (state, _a) {
1595
+ var payload = _a.payload;
1596
+ state.blockButtons = payload;
1597
+ }
1598
+ }
1599
+ });
1600
+
1601
+ var JobsContext = createContext({
1602
+ state: JobsReducer.getInitialState(),
1603
+ actions: JobsReducer.actions
1604
+ });
1605
+ var useJobsContext = function () { return useContext(JobsContext); };
1606
+ var JobsProvider = function (_a) {
1607
+ var children = _a.children;
1608
+ var _b = useComplexState({
1609
+ initialState: JobsReducer.getInitialState(),
1610
+ reducers: JobsReducer.caseReducers
1611
+ }), state = _b[0], actions = _b[1];
1612
+ return (React__default.createElement(JobsContext.Provider, { value: { state: state, actions: actions } }, children));
1613
+ };
1614
+
1360
1615
  var useStyles$z = makeStyles(function (theme) { return ({
1361
1616
  buttons: {
1362
1617
  opacity: 0,
@@ -1373,63 +1628,9 @@ var useStyles$z = makeStyles(function (theme) { return ({
1373
1628
  }
1374
1629
  }); });
1375
1630
  var useJobsTableData = function (_a) {
1376
- var setRowSelected = _a.setRowSelected, showContextMenu = _a.showContextMenu;
1377
- var _b = useJobsContext().state, jobsData = _b.jobsData, blockButtons = _b.blockButtons;
1631
+ var setShowModal = _a.setShowModal, setJobSelected = _a.setJobSelected, showContextMenu = _a.showContextMenu;
1632
+ var rows = useJobsContext().state.jobsData;
1378
1633
  var classes = useStyles$z();
1379
- var rows = jobsData.map(function (_a) {
1380
- var JobId = _a.JobId, sProcedure = _a.sProcedure, Running = _a.Running, LastStarted = _a.LastStarted, LastCounter = _a.LastCounter, Enabled = _a.Enabled, RestartAfterFailure = _a.RestartAfterFailure, PeriodTime = _a.PeriodTime, StartTime = _a.StartTime, NextExecutionTime = _a.NextExecutionTime;
1381
- return ({
1382
- id: JobId,
1383
- sProcedure: sProcedure,
1384
- Running: Running,
1385
- LastStarted: LastStarted,
1386
- LastCounter: LastCounter,
1387
- Enabled: Enabled,
1388
- RestartAfterFailure: RestartAfterFailure,
1389
- PeriodTime: PeriodTime,
1390
- StartTime: StartTime,
1391
- NextExecutionTime: NextExecutionTime
1392
- });
1393
- });
1394
- var renderButtonEnable = function (params) {
1395
- var isDisabled = params.data.Enabled || blockButtons;
1396
- return (React__default.createElement("div", { style: {
1397
- display: "flex",
1398
- justifyContent: "center",
1399
- alignItems: "center",
1400
- height: "100%",
1401
- padding: 5
1402
- } },
1403
- React__default.createElement(Button, { style: { height: "100%", maxHeight: "27px" }, variant: "contained", fullWidth: true, color: "primary", onClick: function () {
1404
- setRowSelected(params.data);
1405
- }, disabled: isDisabled }, "ENABLE")));
1406
- };
1407
- var renderButtonDisable = function (params) {
1408
- var isDisabled = !params.data.Enabled || blockButtons;
1409
- return (React__default.createElement("div", { style: {
1410
- display: "flex",
1411
- justifyContent: "center",
1412
- alignItems: "center",
1413
- height: "100%",
1414
- padding: 5
1415
- } },
1416
- React__default.createElement(Button, { style: { height: "100%", maxHeight: "27px" }, variant: "contained", fullWidth: true, color: "secondary", onClick: function () {
1417
- setRowSelected(params.data);
1418
- }, disabled: isDisabled }, "DISABLE")));
1419
- };
1420
- var renderButtonReset = function (params) {
1421
- var isDisabled = !params.data.Enabled || blockButtons;
1422
- return (React__default.createElement("div", { style: {
1423
- display: "flex",
1424
- justifyContent: "center",
1425
- alignItems: "center",
1426
- height: "100%",
1427
- padding: 5
1428
- } },
1429
- React__default.createElement(Button, { style: { height: "100%", maxHeight: "27px" }, variant: "contained", fullWidth: true, color: "primary", onClick: function () {
1430
- setRowSelected(params.data);
1431
- }, disabled: isDisabled }, "RESET")));
1432
- };
1433
1634
  var renderButtonMenu = function (params) {
1434
1635
  return (React__default.createElement(Grid, { container: true, style: {
1435
1636
  height: "100%",
@@ -1437,90 +1638,21 @@ var useJobsTableData = function (_a) {
1437
1638
  justifyContent: "center",
1438
1639
  alignItems: "center"
1439
1640
  }, className: classes.buttons },
1440
- React__default.createElement(Grid, { item: true, xs: 12, md: 12, style: {
1441
- display: "flex",
1442
- justifyContent: "center",
1443
- alignItems: "center"
1444
- } },
1445
- React__default.createElement(Button, { style: {}, onClick: function (e) { return showContextMenu(e, params.data); } },
1446
- React__default.createElement(FormatListBulletedSharpIcon, { style: { height: "auto" }, color: "action" })))));
1447
- };
1448
- var columnDefs = [
1449
- {
1450
- field: "sProcedure",
1451
- minWidth: 260,
1452
- headerName: "Procedure",
1453
- type: "string",
1454
- flex: 2,
1455
- cellStyle: {
1456
- display: "flex",
1457
- alignItems: "center",
1458
- justifyContent: "center"
1459
- }
1460
- },
1461
- {
1462
- field: "Running",
1463
- minWidth: 60,
1464
- maxWidth: 60,
1465
- headerName: "Status",
1466
- valueFormatter: function (_a) {
1467
- var value = _a.value;
1468
- return (value ? "Running" : "Inactive");
1469
- },
1470
- flex: 1,
1471
- cellStyle: {
1472
- display: "flex",
1473
- alignItems: "center",
1474
- justifyContent: "center"
1475
- }
1476
- },
1477
- {
1478
- field: "PeriodTime",
1479
- minWidth: 80,
1480
- maxWidth: 80,
1481
- headerName: "Period Time",
1482
- flex: 1,
1483
- valueFormatter: function (_a) {
1484
- var value = _a.value;
1485
- if (value === null || value === undefined)
1486
- return "";
1487
- var horas = Math.floor(value / 3600);
1488
- var minutos = Math.floor((value % 3600) / 60);
1489
- var segundos = value % 60;
1490
- return "".concat(horas, "h ").concat(minutos, "min ").concat(segundos, "s");
1491
- },
1492
- cellStyle: {
1493
- display: "flex",
1494
- alignItems: "center",
1495
- justifyContent: "center"
1496
- }
1497
- },
1498
- {
1499
- field: "StartTime",
1500
- minWidth: 130,
1501
- maxWidth: 130,
1502
- headerName: "Start Time",
1503
- valueFormatter: function (_a) {
1504
- var value = _a.value;
1505
- return value === null ? "NULL" : moment$4(value).format("DD/MM/YYYY HH:mm");
1506
- },
1507
- flex: 1,
1508
- cellStyle: {
1509
- display: "flex",
1510
- alignItems: "center",
1511
- justifyContent: "center"
1512
- }
1513
- },
1641
+ React__default.createElement(Grid, { item: true, xs: 12, md: 12, style: {
1642
+ display: "flex",
1643
+ justifyContent: "center",
1644
+ alignItems: "center"
1645
+ } },
1646
+ React__default.createElement(Button, { style: {}, onClick: function (e) { return showContextMenu(e, params.data, "jobsContext"); } },
1647
+ React__default.createElement(FormatListBulletedSharpIcon, { style: { height: "auto" }, color: "action" })))));
1648
+ };
1649
+ var columnDefs = [
1514
1650
  {
1515
- field: "NextExecutionTime",
1516
- minWidth: 115,
1517
- maxWidth: 115,
1518
- headerName: "Next Execution",
1519
- valueFormatter: function (_a) {
1520
- var value = _a.value;
1521
- return value === null ? "NULL" : moment$4(value).format("DD/MM/YYYY HH:mm");
1522
- },
1523
- flex: 1,
1651
+ field: "sProcedure",
1652
+ minWidth: 240,
1653
+ headerName: "Procedures",
1654
+ type: "string",
1655
+ flex: 2,
1524
1656
  cellStyle: {
1525
1657
  display: "flex",
1526
1658
  alignItems: "center",
@@ -1528,15 +1660,20 @@ var useJobsTableData = function (_a) {
1528
1660
  }
1529
1661
  },
1530
1662
  {
1531
- field: "LastStarted",
1532
- minWidth: 100,
1533
- maxWidth: 100,
1534
- headerName: "Started",
1663
+ field: "PeriodTime",
1664
+ minWidth: 90,
1665
+ maxWidth: 90,
1666
+ headerName: "Period Time",
1667
+ flex: 1,
1535
1668
  valueFormatter: function (_a) {
1536
1669
  var value = _a.value;
1537
- return value === null ? "NULL" : moment$4(value).format("DD/MM/YYYY HH:mm");
1670
+ if (value === null || value === undefined)
1671
+ return "";
1672
+ var horas = Math.floor(value / 3600);
1673
+ var minutos = Math.floor((value % 3600) / 60);
1674
+ var segundos = value % 60;
1675
+ return "".concat(horas, "h ").concat(minutos, "min ").concat(segundos, "s");
1538
1676
  },
1539
- flex: 1,
1540
1677
  cellStyle: {
1541
1678
  display: "flex",
1542
1679
  alignItems: "center",
@@ -1544,15 +1681,15 @@ var useJobsTableData = function (_a) {
1544
1681
  }
1545
1682
  },
1546
1683
  {
1547
- field: "LastCounter",
1684
+ field: "NextExecutionTime",
1548
1685
  minWidth: 115,
1549
- maxWidth: 115,
1550
- headerName: "Last Seen",
1686
+ maxWidth: 125,
1687
+ headerName: "Next Execution",
1551
1688
  valueFormatter: function (_a) {
1552
1689
  var value = _a.value;
1553
- return value === null ? "NULL" : moment$4(value).format("DD/MM/YYYY HH:mm");
1690
+ return value === null ? "" : moment$7(value).format("DD/MM/YYYY HH:mm");
1554
1691
  },
1555
- flex: 2,
1692
+ flex: 1,
1556
1693
  cellStyle: {
1557
1694
  display: "flex",
1558
1695
  alignItems: "center",
@@ -1561,9 +1698,9 @@ var useJobsTableData = function (_a) {
1561
1698
  },
1562
1699
  {
1563
1700
  field: "Enabled",
1701
+ headerName: "Enabled",
1564
1702
  minWidth: 50,
1565
1703
  maxWidth: 50,
1566
- headerName: "Enabled",
1567
1704
  valueFormatter: function (_a) {
1568
1705
  var value = _a.value;
1569
1706
  return (!value ? "N" : "Y");
@@ -1573,77 +1710,15 @@ var useJobsTableData = function (_a) {
1573
1710
  display: "flex",
1574
1711
  alignItems: "center",
1575
1712
  justifyContent: "center"
1576
- }
1577
- },
1578
- {
1579
- field: "RestartAfterFailure",
1580
- minWidth: 70,
1581
- maxWidth: 70,
1582
- headerName: "AutoRecover",
1583
- valueFormatter: function (_a) {
1584
- var value = _a.value;
1585
- return (!value ? "N" : "Y");
1586
1713
  },
1587
- flex: 1,
1588
- cellStyle: {
1589
- display: "flex",
1590
- alignItems: "center",
1591
- justifyContent: "center"
1592
- }
1714
+ cellRenderer: function (params) { return (React__default.createElement(Switch, { checked: !!params.data.Enabled, color: "primary", size: "small", onChange: function (event, checked) {
1715
+ setJobSelected(params.data);
1716
+ setShowModal("enable");
1717
+ } })); }
1593
1718
  },
1594
1719
  {
1595
- field: "Enable",
1720
+ field: "-",
1596
1721
  headerName: "",
1597
- minWidth: 80,
1598
- cellRenderer: renderButtonEnable,
1599
- flex: 1,
1600
- wrapText: false,
1601
- autoHeight: false,
1602
- wrapHeaderText: false,
1603
- sortable: false,
1604
- cellStyle: {
1605
- display: "flex",
1606
- alignItems: "center",
1607
- justifyContent: "center"
1608
- }
1609
- },
1610
- {
1611
- field: "Disable",
1612
- headerName: "Actions",
1613
- minWidth: 80,
1614
- cellRenderer: renderButtonDisable,
1615
- flex: 1,
1616
- wrapText: false,
1617
- autoHeight: false,
1618
- wrapHeaderText: false,
1619
- sortable: false,
1620
- cellStyle: {
1621
- display: "flex",
1622
- alignItems: "center",
1623
- justifyContent: "center"
1624
- }
1625
- },
1626
- {
1627
- field: "Reset",
1628
- headerName: " ",
1629
- minWidth: 80,
1630
- cellRenderer: renderButtonReset,
1631
- flex: 1,
1632
- wrapText: false,
1633
- autoHeight: false,
1634
- wrapHeaderText: false,
1635
- sortable: false,
1636
- cellStyle: {
1637
- display: "flex",
1638
- alignItems: "center",
1639
- justifyContent: "center"
1640
- }
1641
- },
1642
- {
1643
- field: "Menu",
1644
- headerName: " ",
1645
- minWidth: 80,
1646
- maxWidth: 80,
1647
1722
  cellRenderer: renderButtonMenu,
1648
1723
  flex: 1,
1649
1724
  wrapText: false,
@@ -1660,6 +1735,11 @@ var useJobsTableData = function (_a) {
1660
1735
  return { rows: rows, columnDefs: columnDefs };
1661
1736
  };
1662
1737
 
1738
+ var CustomStatusPanel = function (_a) {
1739
+ var handleNew = _a.handleNew;
1740
+ return (React.createElement(IconButton$1, { onClick: handleNew, color: "primary", style: { marginLeft: -15 } },
1741
+ React.createElement(PlaylistAddIcon, { style: { width: 30, height: 30 } })));
1742
+ };
1663
1743
  var useStyles$y = makeStyles(function (theme) { return ({
1664
1744
  root: {
1665
1745
  "& .MuiDataGrid-row": {
@@ -1719,16 +1799,27 @@ var useStyles$y = makeStyles(function (theme) { return ({
1719
1799
  form: {
1720
1800
  display: "flex",
1721
1801
  flexDirection: "column"
1802
+ },
1803
+ table: {
1804
+ "& .ag-header-cell": {
1805
+ padding: "2px !important",
1806
+ fontSize: 11,
1807
+ display: "flex",
1808
+ alignItems: "center",
1809
+ justifyContent: "center"
1810
+ },
1811
+ "& .ag-header-cell-label": {
1812
+ justifyContent: "center"
1813
+ }
1722
1814
  }
1723
1815
  }); });
1724
1816
  var TableJobs = function (_a) {
1725
1817
  var getJobsFromAPI = _a.getJobsFromAPI, isLoading = _a.isLoading;
1726
1818
  var classes = useStyles$y();
1727
- var _b = useState(null), rowSelected = _b[0], setRowSelected = _b[1];
1728
- var _c = useState(false), snackbarLoading = _c[0], setSnackbarLoading = _c[1];
1729
- var _d = useState(false), snackbarSuccessfulMessage = _d[0], setSnackbarSuccessfulMessage = _d[1];
1730
- var gridStyle = useMemo(function () { return ({ height: "100%", width: "100%" }); }, []);
1731
- var _e = useState(null), gridApi = _e[0], setGridApi = _e[1];
1819
+ var _b = useState(null), jobSelected = _b[0], setJobSelected = _b[1];
1820
+ var _c = useState(null), gridApi = _c[0], setGridApi = _c[1];
1821
+ var _d = useState(""), errorMessage = _d[0], setErrorMessage = _d[1];
1822
+ var _e = useState(""), showModal = _e[0], setShowModal = _e[1];
1732
1823
  var defaultColDef = useMemo(function () {
1733
1824
  return {
1734
1825
  sortable: true,
@@ -1737,32 +1828,77 @@ var TableJobs = function (_a) {
1737
1828
  wrapHeaderText: true
1738
1829
  };
1739
1830
  }, []);
1740
- var loadingOverlayComponent = useMemo(function () {
1741
- return LazyLoading;
1742
- }, []);
1743
- var handleClose = function (event, reason) {
1744
- if (reason === "clickaway") {
1745
- return;
1831
+ var onRowSelected = function (event) {
1832
+ var cell = gridApi === null || gridApi === void 0 ? void 0 : gridApi.getFocusedCell();
1833
+ if ((cell === null || cell === void 0 ? void 0 : cell.column.getColId()) !== "-" && event.node.isSelected()) {
1834
+ setJobSelected(event.data);
1835
+ setShowModal("update");
1836
+ }
1837
+ if ((cell === null || cell === void 0 ? void 0 : cell.column.getColId()) === "Enabled") {
1838
+ setJobSelected(event.data);
1839
+ setShowModal("enable");
1746
1840
  }
1747
- setSnackbarSuccessfulMessage(false);
1748
1841
  };
1842
+ var _f = useContextMenuMESF(), showContextMenu = _f.showContextMenu, registerConfig = _f.registerConfig;
1749
1843
  var getMenuOptions = useJobsOptionsFunctions({
1750
- getJobsFromAPI: getJobsFromAPI,
1751
- setRowSelected: setRowSelected
1844
+ setShowModal: setShowModal,
1845
+ setJobSelected: setJobSelected,
1846
+ getJobsFromAPI: getJobsFromAPI
1752
1847
  }).getMenuOptions;
1753
- var _f = useContextMenuMESF(), showContextMenu = _f.showContextMenu, registerConfig = _f.registerConfig;
1754
1848
  var _g = useJobsTableData({
1755
- setRowSelected: setRowSelected,
1849
+ setJobSelected: setJobSelected,
1850
+ setShowModal: setShowModal,
1756
1851
  showContextMenu: showContextMenu
1757
1852
  }), rows = _g.rows, columnDefs = _g.columnDefs;
1758
1853
  var getContextMenuItems = function (params) {
1759
1854
  var _a, _b;
1760
1855
  var data = (_a = params.node) === null || _a === void 0 ? void 0 : _a.data;
1761
- params.api.deselectAll();
1762
- (_b = params.node) === null || _b === void 0 ? void 0 : _b.setSelected(true);
1763
- showContextMenu(event, data, "TableJobs");
1856
+ showContextMenu(event, data, "jobContext");
1857
+ if (data) {
1858
+ params.api.deselectAll();
1859
+ (_b = params.node) === null || _b === void 0 ? void 0 : _b.setSelected(true);
1860
+ }
1764
1861
  return [];
1765
1862
  };
1863
+ var handleNewJob = function () {
1864
+ if (gridApi)
1865
+ gridApi.deselectAll();
1866
+ setShowModal("create");
1867
+ setJobSelected(null);
1868
+ };
1869
+ var onDetailsHide = function (_a) {
1870
+ var close = _a.close, entityId = _a.entityId;
1871
+ return __awaiter(void 0, void 0, void 0, function () {
1872
+ return __generator(this, function (_b) {
1873
+ switch (_b.label) {
1874
+ case 0:
1875
+ if (close) {
1876
+ setShowModal("");
1877
+ setJobSelected(null);
1878
+ if (gridApi)
1879
+ gridApi === null || gridApi === void 0 ? void 0 : gridApi.deselectAll();
1880
+ return [2 /*return*/];
1881
+ }
1882
+ return [4 /*yield*/, getJobsFromAPI().then(function () {
1883
+ if (entityId) {
1884
+ setTimeout(function () {
1885
+ var _a;
1886
+ var rowNode = gridApi === null || gridApi === void 0 ? void 0 : gridApi.getRowNode(String(entityId));
1887
+ if (rowNode) {
1888
+ gridApi === null || gridApi === void 0 ? void 0 : gridApi.ensureIndexVisible((_a = rowNode === null || rowNode === void 0 ? void 0 : rowNode.rowIndex) !== null && _a !== void 0 ? _a : 0);
1889
+ rowNode === null || rowNode === void 0 ? void 0 : rowNode.setSelected(true);
1890
+ setJobSelected(rowNode === null || rowNode === void 0 ? void 0 : rowNode.data);
1891
+ }
1892
+ }, 0);
1893
+ }
1894
+ })];
1895
+ case 1:
1896
+ _b.sent();
1897
+ return [2 /*return*/];
1898
+ }
1899
+ });
1900
+ });
1901
+ };
1766
1902
  useEffect(function () {
1767
1903
  if (isLoading) {
1768
1904
  gridApi === null || gridApi === void 0 ? void 0 : gridApi.showLoadingOverlay();
@@ -1770,79 +1906,96 @@ var TableJobs = function (_a) {
1770
1906
  else {
1771
1907
  gridApi === null || gridApi === void 0 ? void 0 : gridApi.hideOverlay();
1772
1908
  }
1773
- }, [isLoading, rows, gridApi]);
1909
+ }, [isLoading, gridApi]);
1774
1910
  useEffect(function () {
1775
1911
  registerConfig({
1776
- id: "TableJobs",
1912
+ id: "jobsContext",
1777
1913
  getOptions: getMenuOptions
1778
1914
  });
1779
1915
  }, []);
1780
- return (React.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center", className: classes.root },
1781
- React.createElement(Grid, { item: true, md: 12, xs: 12, style: { padding: "0 15px" }, className: classes.filters },
1782
- React.createElement(Typography$1, { variant: "h5", style: { margin: "20px 0 20px", fontWeight: 600 } }, "System Jobs"),
1783
- React.createElement(Grid, { item: true, md: 12, xs: 12, style: {
1784
- height: "70vh",
1785
- border: "4px solid #ccc",
1786
- borderRadius: 10,
1787
- padding: 10,
1788
- margin: "20px 0 10px"
1789
- } },
1790
- React.createElement("div", { style: gridStyle, className: "ag-theme-alpine" },
1791
- React.createElement(AgGridReact, { rowData: rows, columnDefs: columnDefs, defaultColDef: defaultColDef, suppressContextMenu: false, getContextMenuItems: getContextMenuItems, loadingOverlayComponent: loadingOverlayComponent, rowHeight: 34, headerHeight: 34, animateRows: true, pagination: true, rowSelection: "single", onGridReady: function (params) { return setGridApi(params.api); } })),
1792
- React.createElement(ResetJob, { show: !!rowSelected, setSnackbarLoading: setSnackbarLoading, setSnackbarSuccessfulMessage: setSnackbarSuccessfulMessage, onHide: function (shouldUpdate) {
1793
- setRowSelected(null);
1794
- if (shouldUpdate) {
1795
- getJobsFromAPI();
1796
- }
1797
- }, rowSelected: rowSelected }),
1798
- React.createElement(OnEnableJob, { show: !!rowSelected, onHide: function (shouldUpdate) {
1799
- setRowSelected(null);
1800
- if (shouldUpdate) {
1801
- getJobsFromAPI();
1802
- }
1803
- }, rowSelected: rowSelected }),
1804
- React.createElement(Snackbar, { open: snackbarLoading, autoHideDuration: 3500, onClose: handleClose },
1805
- React.createElement(Alert, { style: {
1806
- width: "250px",
1807
- justifyContent: "center",
1808
- alignItems: "center"
1809
- }, severity: "info" },
1810
- React.createElement(Grid, { container: true, alignItems: "center", spacing: 2 },
1811
- React.createElement(Grid, { item: true }, "Waiting for reset"),
1812
- React.createElement(Grid, { item: true },
1813
- React.createElement(CircularProgress, { style: {
1814
- color: "#FFF",
1815
- width: 18,
1816
- height: 18,
1817
- marginTop: 4
1818
- } }))))),
1819
- React.createElement(Snackbar, { open: snackbarSuccessfulMessage, autoHideDuration: 2500, onClose: handleClose },
1820
- React.createElement(Alert, { style: {
1821
- width: "250px",
1822
- justifyContent: "center",
1823
- alignItems: "center"
1824
- }, severity: "success" }, "Reset was successful"))))));
1916
+ return (React.createElement(React.Fragment, null,
1917
+ React.createElement(Grid, { container: true, justifyContent: "center" },
1918
+ React.createElement(Grid, { item: true, md: 12, xs: 12, style: { padding: "0 15px", margin: "10px 0px" } },
1919
+ React.createElement(Typography$1, { variant: "h5", style: { fontWeight: 600 } }, "System Jobs")),
1920
+ React.createElement(Grid, { container: true, justifyContent: "flex-start", alignItems: "center", className: classes.root, style: { width: "100%", padding: "0 10px" }, spacing: 2 },
1921
+ React.createElement(Grid, { item: true, md: 6, xs: 12 },
1922
+ React.createElement(Paper, { elevation: 2, style: { height: "70vh", width: "100%" }, className: "".concat(classes.table, " ag-theme-material") },
1923
+ React.createElement(AgGridReact, { rowData: rows, columnDefs: columnDefs, defaultColDef: defaultColDef, getContextMenuItems: getContextMenuItems, loadingOverlayComponent: LazyLoading, suppressContextMenu: false, rowHeight: 34, headerHeight: 34, animateRows: true, pagination: false, rowSelection: "single", onGridReady: function (params) { return setGridApi(params.api); }, getRowId: function (params) { return "".concat(params.data.JobId); }, onRowSelected: onRowSelected, gridOptions: {
1924
+ statusBar: {
1925
+ statusPanels: [
1926
+ {
1927
+ statusPanel: "agTotalRowCountComponent",
1928
+ align: "right"
1929
+ },
1930
+ {
1931
+ statusPanel: function (params) { return (React.createElement(CustomStatusPanel, { handleNew: handleNewJob })); },
1932
+ align: "left"
1933
+ },
1934
+ ]
1935
+ }
1936
+ } }))),
1937
+ React.createElement(Grid, { item: true, md: 6, xs: 12 },
1938
+ React.createElement(Paper, { elevation: 2, style: { height: "70vh", width: "100%", padding: 15 }, className: "".concat(classes.table, " ag-theme-material") },
1939
+ React.createElement(JobDetails, { job: jobSelected, modal: showModal, onHide: onDetailsHide }))))),
1940
+ React.createElement(ResetJob, { show: showModal === "reset", onHide: function (shouldUpdate) { return __awaiter(void 0, void 0, void 0, function () {
1941
+ return __generator(this, function (_a) {
1942
+ switch (_a.label) {
1943
+ case 0:
1944
+ setShowModal("");
1945
+ setJobSelected(null);
1946
+ if (gridApi) {
1947
+ gridApi.deselectAll();
1948
+ }
1949
+ if (!shouldUpdate) return [3 /*break*/, 2];
1950
+ return [4 /*yield*/, getJobsFromAPI()];
1951
+ case 1:
1952
+ _a.sent();
1953
+ _a.label = 2;
1954
+ case 2: return [2 /*return*/];
1955
+ }
1956
+ });
1957
+ }); }, jobSelected: jobSelected }),
1958
+ React.createElement(OnEnableJob, { show: showModal === "enable", onHide: function (shouldUpdate) { return __awaiter(void 0, void 0, void 0, function () {
1959
+ return __generator(this, function (_a) {
1960
+ switch (_a.label) {
1961
+ case 0:
1962
+ setShowModal("");
1963
+ setJobSelected(null);
1964
+ if (gridApi) {
1965
+ gridApi.deselectAll();
1966
+ }
1967
+ if (!shouldUpdate) return [3 /*break*/, 2];
1968
+ return [4 /*yield*/, getJobsFromAPI()];
1969
+ case 1:
1970
+ _a.sent();
1971
+ _a.label = 2;
1972
+ case 2: return [2 /*return*/];
1973
+ }
1974
+ });
1975
+ }); }, jobSelected: jobSelected }),
1976
+ React.createElement(ErrorModal, { error: errorMessage, onHide: function () { return setErrorMessage(""); } })));
1825
1977
  };
1826
1978
 
1827
1979
  var Jobs = function (prop) {
1828
- var _a = useJobsContext(), state = _a.state, actions = _a.actions;
1980
+ var _a = useJobsContext(); _a.state; var actions = _a.actions;
1829
1981
  var _b = useState(true), isLoading = _b[0], setIsLoading = _b[1];
1830
1982
  var _c = useState(""), error = _c[0], setError = _c[1];
1831
1983
  var getJobsFromAPI = function () { return __awaiter(void 0, void 0, void 0, function () {
1832
1984
  var resp;
1833
- return __generator(this, function (_a) {
1834
- switch (_a.label) {
1985
+ var _a;
1986
+ return __generator(this, function (_b) {
1987
+ switch (_b.label) {
1835
1988
  case 0:
1836
1989
  setIsLoading(true);
1837
1990
  return [4 /*yield*/, GetJobsStatus()];
1838
1991
  case 1:
1839
- resp = _a.sent();
1992
+ resp = _b.sent();
1840
1993
  if (resp.ok) {
1841
- actions.setJobs(resp.data.tables[0].rows);
1994
+ actions.setJobs(resp.data);
1842
1995
  setIsLoading(false);
1843
1996
  }
1844
1997
  else {
1845
- setError(resp.message);
1998
+ setError((_a = resp.message) !== null && _a !== void 0 ? _a : "Error loading jobs");
1846
1999
  setIsLoading(false);
1847
2000
  }
1848
2001
  return [2 /*return*/];
@@ -1852,24 +2005,15 @@ var Jobs = function (prop) {
1852
2005
  useEffect(function () {
1853
2006
  getJobsFromAPI();
1854
2007
  }, []);
1855
- if (state.jobsData)
1856
- return (React.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center" },
1857
- React.createElement(Grid, { item: true, md: 12, xs: 12, style: { margin: 0 } },
1858
- React.createElement(Paper, { elevation: 1, style: {
1859
- width: "100%",
1860
- padding: "10px 0 20px",
1861
- borderRadius: "0.75rem"
1862
- } },
1863
- React.createElement(TableJobs, { isLoading: isLoading, getJobsFromAPI: getJobsFromAPI }))),
1864
- React.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
1865
- else
1866
- return (React.createElement("div", { style: {
1867
- display: "flex",
1868
- justifyContent: "center",
1869
- alignItems: "center",
1870
- height: "100vh"
1871
- } },
1872
- React.createElement(LazyLoading, null)));
2008
+ return (React.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center" },
2009
+ React.createElement(Grid, { item: true, md: 12, xs: 12, style: { margin: 0 } },
2010
+ React.createElement(Paper, { elevation: 1, style: {
2011
+ width: "100%",
2012
+ padding: "10px 0 20px",
2013
+ borderRadius: "0.75rem"
2014
+ } },
2015
+ React.createElement(TableJobs, { isLoading: isLoading, getJobsFromAPI: getJobsFromAPI }))),
2016
+ React.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
1873
2017
  };
1874
2018
 
1875
2019
  var JobsPage = function (props) {
@@ -1880,8 +2024,8 @@ var JobsPage = function (props) {
1880
2024
  var LogsInitialState = {
1881
2025
  logs: [],
1882
2026
  searchData: {
1883
- Start: moment$4().add(-5, "days").hour(0).minute(0).second(0).toDate(),
1884
- End: moment$4().hour(23).minute(59).second(59).toDate(),
2027
+ Start: moment$7().add(-5, "days").hour(0).minute(0).second(0).toDate(),
2028
+ End: moment$7().hour(23).minute(59).second(59).toDate(),
1885
2029
  Search: "",
1886
2030
  LogTypeCode: "A"
1887
2031
  }
@@ -1917,8 +2061,8 @@ var LogsReducer = createSlice({
1917
2061
  resetFilters: function (state, _a) {
1918
2062
  _a.payload;
1919
2063
  state.searchData = {
1920
- Start: moment$4().add(-5, "days").hour(0).minute(0).second(0).toDate(),
1921
- End: moment$4().hour(23).minute(59).second(59).toDate(),
2064
+ Start: moment$7().add(-5, "days").hour(0).minute(0).second(0).toDate(),
2065
+ End: moment$7().hour(23).minute(59).second(59).toDate(),
1922
2066
  Search: "",
1923
2067
  LogTypeCode: "A"
1924
2068
  };
@@ -2083,10 +2227,10 @@ var useLogTableData = function () {
2083
2227
  return (nowTime.toLocaleDateString("en-US") + " " + nowTime.toLocaleTimeString());
2084
2228
  };
2085
2229
  var getLogTypeByCodeId = function (logTypeCodeId) {
2086
- return get(LOG_TYPE_CODES, "".concat(logTypeCodeId, ".description"), " -");
2230
+ return get$1(LOG_TYPE_CODES, "".concat(logTypeCodeId, ".description"), " -");
2087
2231
  };
2088
2232
  var backgroundColor = function (logTypeCode) {
2089
- return get(LOG_TYPE_CODES, "".concat(logTypeCode[0], ".color"), "#BBBBBB");
2233
+ return get$1(LOG_TYPE_CODES, "".concat(logTypeCode[0], ".color"), "#BBBBBB");
2090
2234
  };
2091
2235
  var rows = (_a = state.logs) === null || _a === void 0 ? void 0 : _a.map(function (_a) {
2092
2236
  var LogId = _a.LogId, Timestamp = _a.Timestamp, Source = _a.Source, Message = _a.Message, LogTypeCode = _a.LogTypeCode, User = _a.User;
@@ -2094,7 +2238,7 @@ var useLogTableData = function () {
2094
2238
  id: LogId,
2095
2239
  Timestamp: Timestamp === null ? null : new Date(Timestamp),
2096
2240
  Source: Source,
2097
- Message: isNil(Message) ? "" : Message.replaceAll("Added", " Added"),
2241
+ Message: isNil$1(Message) ? "" : Message.replaceAll("Added", " Added"),
2098
2242
  LogTypeCode: getLogTypeByCodeId(LogTypeCode),
2099
2243
  User: User
2100
2244
  });
@@ -2319,8 +2463,8 @@ var TableLogs = function (_a) {
2319
2463
  var handleResetButtonClick = function () {
2320
2464
  resetFilter();
2321
2465
  refreshData({
2322
- Start: moment$4().add(-5, "days").hour(0).minute(0).second(0).toDate(),
2323
- End: moment$4().hour(23).minute(59).second(59).toDate(),
2466
+ Start: moment$7().add(-5, "days").hour(0).minute(0).second(0).toDate(),
2467
+ End: moment$7().hour(23).minute(59).second(59).toDate(),
2324
2468
  Search: "",
2325
2469
  LogTypeCode: "A"
2326
2470
  });
@@ -2446,7 +2590,7 @@ var Logs = function (prop) {
2446
2590
  case 1:
2447
2591
  res = _a.sent();
2448
2592
  if (res.ok) {
2449
- logs = get$1(res, "data.tables[0].rows", []);
2593
+ logs = get(res, "data.tables[0].rows", []);
2450
2594
  if (canceled)
2451
2595
  return [2 /*return*/];
2452
2596
  actions.setLogs(logs);
@@ -2482,6 +2626,10 @@ var LogsPage = function (props) {
2482
2626
  React.createElement(Logs, null)));
2483
2627
  };
2484
2628
 
2629
+ var Alert = function (props) {
2630
+ return React__default.createElement(Alert$3, __assign({ elevation: 6, variant: "filled" }, props));
2631
+ };
2632
+
2485
2633
  var INITIAL_VALUES$3 = {
2486
2634
  ProfileId: null,
2487
2635
  ProfileName: ""
@@ -2802,7 +2950,7 @@ var DataTable = function (_a) {
2802
2950
  var onFirstDataRendered = useCallback(function (params) {
2803
2951
  params.api.forEachNode(function (node) {
2804
2952
  node.setSelected(!!node.data &&
2805
- !isNil$1(actionsOfProfile.find(function (p) { return p.ActionId === node.data.ActionId; })));
2953
+ !isNil(actionsOfProfile.find(function (p) { return p.ActionId === node.data.ActionId; })));
2806
2954
  });
2807
2955
  sortRows(params);
2808
2956
  }, [sortRows]);
@@ -2822,7 +2970,7 @@ var DataTable = function (_a) {
2822
2970
  case 1:
2823
2971
  resp = _a.sent();
2824
2972
  if (resp.ok)
2825
- setAllActions(get$1(resp, "data.tables[0].rows", []));
2973
+ setAllActions(get(resp, "data.tables[0].rows", []));
2826
2974
  else
2827
2975
  setError(resp.message);
2828
2976
  return [2 /*return*/];
@@ -2918,7 +3066,7 @@ var ActionsOfProfile = function (_a) {
2918
3066
  case 1:
2919
3067
  resp = _a.sent();
2920
3068
  if (resp.ok)
2921
- setActionsOfProfile(get$1(resp, "data.tables[0].rows", []));
3069
+ setActionsOfProfile(get(resp, "data.tables[0].rows", []));
2922
3070
  else
2923
3071
  setError(resp.message);
2924
3072
  setIsLoading(false);
@@ -3300,7 +3448,7 @@ var Profiles = function (prop) {
3300
3448
  case 1:
3301
3449
  resp = _a.sent();
3302
3450
  if (resp.ok) {
3303
- profiles = get(resp, "data.tables[0].rows", []);
3451
+ profiles = get$1(resp, "data.tables[0].rows", []);
3304
3452
  actions.setProfiles(profiles);
3305
3453
  setIsLoading(false);
3306
3454
  }
@@ -4166,7 +4314,7 @@ var useTableData$2 = function (_a) {
4166
4314
  headerName: "Pattern Start",
4167
4315
  valueFormatter: function (_a) {
4168
4316
  var value = _a.value;
4169
- return "".concat(moment$4(value).format("L"), ", ").concat(moment$4(value).format("LTS"));
4317
+ return "".concat(moment$7(value).format("L"), ", ").concat(moment$7(value).format("LTS"));
4170
4318
  },
4171
4319
  minWidth: 180,
4172
4320
  flex: 4,
@@ -4672,7 +4820,7 @@ var useSearchAssets$1 = function (_a) {
4672
4820
  getAssets().then(function (res) {
4673
4821
  if (res.ok) {
4674
4822
  var mydataSource_1 = [];
4675
- var rows = get$1(res, "data.tables[0].rows", []);
4823
+ var rows = get(res, "data.tables[0].rows", []);
4676
4824
  var areas = rows.filter(function (asset) { return asset.CanBeDefaultAsset; });
4677
4825
  setAllAssets(rows);
4678
4826
  setAreasList(areas);
@@ -4970,7 +5118,7 @@ var CreateNewAssetDialog = function (_a) {
4970
5118
  React__default.createElement(Button, { fullWidth: true, startIcon: isCreateSubmitLoading && (React__default.createElement(CircularProgress, { size: "1rem" })), disabled: isCreateSubmitLoading, variant: "contained", color: "primary", type: "submit" }, "Save")))))))))),
4971
5119
  React__default.createElement(ErrorModal, { error: errorCreateAsset, onHide: function () { return setErrorCreateAsset(""); } }),
4972
5120
  React__default.createElement(Snackbar, { open: assetCreatedSuccess, autoHideDuration: 2500, onClose: handleClose },
4973
- React__default.createElement(Alert$2, { severity: "info", onClose: handleClose }, "Document created succesfully"))));
5121
+ React__default.createElement(Alert$3, { severity: "info", onClose: handleClose }, "Document created succesfully"))));
4974
5122
  };
4975
5123
 
4976
5124
  var useStyles$k = makeStyles(function (theme) { return ({
@@ -5138,7 +5286,7 @@ var EditAssetDialog = function (_a) {
5138
5286
  React__default.createElement(Button, { fullWidth: true, startIcon: isEditSubmitLoading && (React__default.createElement(CircularProgress, { size: "1rem" })), disabled: isEditSubmitLoading, variant: "contained", color: "primary", type: "submit" }, "Save"))))),
5139
5287
  React__default.createElement(ErrorModal, { error: errorEditAsset, onHide: function () { return setErrorEditAsset(""); } }),
5140
5288
  React__default.createElement(Snackbar, { open: assetEditedSuccess, autoHideDuration: 2500, onClose: handleClose },
5141
- React__default.createElement(Alert$3, { severity: "info", onClose: handleClose }, "Document created succesfully")))))))));
5289
+ React__default.createElement(Alert$2, { severity: "info", onClose: handleClose }, "Document created succesfully")))))))));
5142
5290
  };
5143
5291
 
5144
5292
  var useStyles$j = makeStyles(function (theme) { return ({
@@ -5241,7 +5389,7 @@ var RemoveAssetDialog = function (_a) {
5241
5389
  React__default.createElement(Button, { autoFocus: true, color: "secondary", startIcon: isCreateSubmitLoading && React__default.createElement(CircularProgress, { size: "1rem" }), onClick: handleRemoveAsset }, "Delete"))),
5242
5390
  React__default.createElement(ErrorModal, { error: errorRemoveAsset, onHide: function () { return setErrorRemoveAsset(""); } }),
5243
5391
  React__default.createElement(Snackbar, { open: assetRemovedSuccess, autoHideDuration: 2500, onClose: handleClose },
5244
- React__default.createElement(Alert$2, { severity: "info", onClose: handleClose }, "Asset removed succesfully"))));
5392
+ React__default.createElement(Alert$3, { severity: "info", onClose: handleClose }, "Asset removed succesfully"))));
5245
5393
  };
5246
5394
 
5247
5395
  var useStyles$i = makeStyles(function (theme) { return ({
@@ -5863,7 +6011,7 @@ var AssetViewComponent = function () {
5863
6011
  }
5864
6012
  } }))),
5865
6013
  React__default.createElement(Snackbar, { open: updatedSuccessfullyMessage, autoHideDuration: 2500, onClose: handleClose },
5866
- React__default.createElement(Alert$3, { severity: "success", onClose: handleClose }, "Asset updated successfully"))),
6014
+ React__default.createElement(Alert$2, { severity: "success", onClose: handleClose }, "Asset updated successfully"))),
5867
6015
  showContextMenu && !isDoubleClick ? (React__default.createElement("ul", { className: classes.contextMenu, style: { top: y, left: x, padding: "6px 0" } },
5868
6016
  React__default.createElement(MenuItem, { className: classes.menuItem, onClick: function () { return setShowViewerAssetDialog(true); } },
5869
6017
  React__default.createElement(Grid, { container: true, style: { alignItems: "center" } },
@@ -6159,7 +6307,7 @@ var AuthTypeSelector = function (_a) {
6159
6307
  setIsLoading(true);
6160
6308
  getAuthTypes().then(function (resp) {
6161
6309
  if (resp.ok) {
6162
- setAuthTypes(get$1(resp, "data.tables[0].rows", []));
6310
+ setAuthTypes(get(resp, "data.tables[0].rows", []));
6163
6311
  setIsLoading(false);
6164
6312
  }
6165
6313
  else {
@@ -6225,7 +6373,7 @@ var ProfilesPicker = function (_a) {
6225
6373
  getProfiles()
6226
6374
  .then(function (res) {
6227
6375
  if (res.ok) {
6228
- var profilesData = get$1(res, "data.tables[0].rows", null);
6376
+ var profilesData = get(res, "data.tables[0].rows", null);
6229
6377
  if (profilesData) {
6230
6378
  if (canceled)
6231
6379
  return;
@@ -7270,12 +7418,12 @@ axiosInstance.interceptors.response.use(function (res) { return res; }, function
7270
7418
  }); });
7271
7419
 
7272
7420
  var getError = function (error) {
7273
- var arrayOfErrors = values(get$1(error, "response.data.errors", null));
7421
+ var arrayOfErrors = values(get(error, "response.data.errors", null));
7274
7422
  var allErrors = "";
7275
7423
  if (arrayOfErrors.length) {
7276
7424
  allErrors = concatErrorMessagges(arrayOfErrors, allErrors);
7277
7425
  }
7278
- return get$1(error, "response.data.result", get$1(error, "response.data.message", get$1(error, "internalError.message", get$1(error, "response.data.detail", get$1(error, "response.data.title", error.toString()) + " " + allErrors))));
7426
+ return get(error, "response.data.result", get(error, "response.data.message", get(error, "internalError.message", get(error, "response.data.detail", get(error, "response.data.title", error.toString()) + " " + allErrors))));
7279
7427
  };
7280
7428
  var concatErrorMessagges = function (arrayOfErrors, string) {
7281
7429
  arrayOfErrors.forEach(function (element, index) {
@@ -7518,7 +7666,7 @@ var MESApiService = /** @class */ (function () {
7518
7666
  data.dataBaseName = database;
7519
7667
  data.parameters = formattedParameters;
7520
7668
  Date.prototype.toJSON = function () {
7521
- return moment$4(this).format("YYYY-MM-DDTHH:mm:ss");
7669
+ return moment$7(this).format("YYYY-MM-DDTHH:mm:ss");
7522
7670
  }; // eslint-disable-line
7523
7671
  isError = { ok: true };
7524
7672
  return [2 /*return*/, fetch(this.config.API_PROCEDURE_URL + "/Execute", {
@@ -7577,7 +7725,7 @@ var MESApiService = /** @class */ (function () {
7577
7725
  data.dataBaseName = database;
7578
7726
  data.parameters = formattedParameters;
7579
7727
  Date.prototype.toJSON = function () {
7580
- return moment$4(this).format("YYYY-MM-DDTHH:mm:ss");
7728
+ return moment$7(this).format("YYYY-MM-DDTHH:mm:ss");
7581
7729
  }; // eslint-disable-line
7582
7730
  curatedMethod = procedure.replace(/[\[\]]/g, "");
7583
7731
  _a.label = 1;
@@ -7631,7 +7779,7 @@ var MESApiService = /** @class */ (function () {
7631
7779
  data.dataBaseName = database;
7632
7780
  data.parameters = formattedParameters;
7633
7781
  Date.prototype.toJSON = function () {
7634
- return moment$4(this).format("YYYY-MM-DDTHH:mm:ss");
7782
+ return moment$7(this).format("YYYY-MM-DDTHH:mm:ss");
7635
7783
  }; // eslint-disable-line
7636
7784
  isError = { ok: true };
7637
7785
  return [2 /*return*/, fetch(this.config.API_PROCEDURE_URL + "/ExecuteJSON", {
@@ -7686,7 +7834,7 @@ var MESApiService = /** @class */ (function () {
7686
7834
  formattedParameters.push(formattedParameter);
7687
7835
  });
7688
7836
  Date.prototype.toJSON = function () {
7689
- return moment$4(this).format("YYYY-MM-DDTHH:mm:ss");
7837
+ return moment$7(this).format("YYYY-MM-DDTHH:mm:ss");
7690
7838
  }; // eslint-disable-line
7691
7839
  isError = { ok: true };
7692
7840
  files.forEach(function (element) {
@@ -7751,7 +7899,7 @@ var MESApiService = /** @class */ (function () {
7751
7899
  data.parameters = formattedParameters;
7752
7900
  data.fileName = fileName || "Default.xlsx";
7753
7901
  Date.prototype.toJSON = function () {
7754
- return moment$4(this).format("YYYY-MM-DDTHH:mm:ss");
7902
+ return moment$7(this).format("YYYY-MM-DDTHH:mm:ss");
7755
7903
  }; // eslint-disable-line
7756
7904
  isError = { ok: true };
7757
7905
  return [2 /*return*/, fetch(this.config.API_PROCEDURE_URL + "/Export", {
@@ -7827,7 +7975,7 @@ var MESApiService = /** @class */ (function () {
7827
7975
  data.parameters = formattedParameters;
7828
7976
  data.fileName = fileName || "Default.xlsx";
7829
7977
  Date.prototype.toJSON = function () {
7830
- return moment$4(this).format("YYYY-MM-DDTHH:mm:ss");
7978
+ return moment$7(this).format("YYYY-MM-DDTHH:mm:ss");
7831
7979
  }; // eslint-disable-line
7832
7980
  isError = { ok: true };
7833
7981
  return [2 /*return*/, fetch(this.config.API_PROCEDURE_URL + "/ExportExcel", {
@@ -7896,70 +8044,6 @@ var MESApiService = /** @class */ (function () {
7896
8044
  return MESApiService;
7897
8045
  }());
7898
8046
 
7899
- var TimeService = /** @class */ (function () {
7900
- function TimeService() {
7901
- this.timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
7902
- }
7903
- TimeService.getInstance = function () {
7904
- if (!TimeService.instance) {
7905
- TimeService.instance = new TimeService();
7906
- }
7907
- return TimeService.instance;
7908
- };
7909
- TimeService.prototype.setTimeZone = function (timeZone) {
7910
- var ianaTimeZones = findIana(timeZone);
7911
- if (ianaTimeZones.length) {
7912
- this.timeZone = ianaTimeZones[0];
7913
- }
7914
- else {
7915
- this.timeZone = timeZone;
7916
- }
7917
- moment$5.tz.setDefault(this.timeZone);
7918
- };
7919
- TimeService.prototype.toUTC = function (datetime, format$1) {
7920
- try {
7921
- if (datetime instanceof Date) {
7922
- return format(datetime, format$1);
7923
- }
7924
- return format(fromZonedTime(datetime, TimeService.instance.timeZone), format$1);
7925
- }
7926
- catch (e) {
7927
- console.log({ datetime: datetime, e: e });
7928
- return "";
7929
- }
7930
- };
7931
- TimeService.prototype.toLocalServerTime = function (datetime, format) {
7932
- try {
7933
- if (isNil$1(datetime) || !datetime) {
7934
- return "";
7935
- }
7936
- if (typeof datetime === "string") {
7937
- if (datetime.includes("Z")) {
7938
- datetime = new Date(datetime);
7939
- }
7940
- else {
7941
- datetime = new Date("".concat(datetime, "Z"));
7942
- }
7943
- }
7944
- return formatInTimeZone(datetime, TimeService.instance.timeZone, format);
7945
- }
7946
- catch (e) {
7947
- console.log({ datetime: datetime, e: e });
7948
- return "";
7949
- }
7950
- };
7951
- TimeService.prototype.getServerTimeZone = function () {
7952
- return this.timeZone;
7953
- };
7954
- return TimeService;
7955
- }());
7956
- var getMomentTz = function () { return moment$5; };
7957
- var dxtServerTimeZone = function () {
7958
- return TimeService.getInstance().getServerTimeZone;
7959
- };
7960
- var dxtToUTC = TimeService.getInstance().toUTC;
7961
- var dxtToLocalServerTime = TimeService.getInstance().toLocalServerTime;
7962
-
7963
8047
  var getShiftByParameters = function (parameters) { return __awaiter(void 0, void 0, void 0, function () {
7964
8048
  var utcString, sqlParameters, apiService, resp, e_1;
7965
8049
  var _a;
@@ -7986,7 +8070,7 @@ var getShiftByParameters = function (parameters) { return __awaiter(void 0, void
7986
8070
  if (resp.ok) {
7987
8071
  return [2 /*return*/, {
7988
8072
  ok: true,
7989
- data: get$1(resp.data, "tables[0].rows[0]", {})
8073
+ data: get(resp.data, "tables[0].rows[0]", {})
7990
8074
  }];
7991
8075
  }
7992
8076
  else {
@@ -8013,7 +8097,7 @@ var useShiftNavigatorManager = function () {
8013
8097
  return __generator(this, function (_a) {
8014
8098
  switch (_a.label) {
8015
8099
  case 0:
8016
- if (isNil$1(shiftInfo)) {
8100
+ if (isNil(shiftInfo)) {
8017
8101
  return [2 /*return*/];
8018
8102
  }
8019
8103
  setIsShiftInfoLoading(true);
@@ -8465,7 +8549,7 @@ var ShiftPeriodNavigatorControl = function (_a) {
8465
8549
  case 2:
8466
8550
  res = _c.sent();
8467
8551
  if (res.ok) {
8468
- rowsSource = get$1(res, "data.tables[0].rows", []);
8552
+ rowsSource = get(res, "data.tables[0].rows", []);
8469
8553
  setShiftPeriodList(rowsSource);
8470
8554
  if (rowsSource.length >= 2) {
8471
8555
  onChange({
@@ -8953,7 +9037,7 @@ var Account = function () {
8953
9037
  case 1:
8954
9038
  resp = _j.sent();
8955
9039
  if (resp.ok) {
8956
- userData = get$1(resp, "data.tables[0].rows", null);
9040
+ userData = get(resp, "data.tables[0].rows", null);
8957
9041
  setUserName((_a = userData[0]) === null || _a === void 0 ? void 0 : _a.UserName);
8958
9042
  setUserLastName((_b = userData[0]) === null || _b === void 0 ? void 0 : _b.LastName);
8959
9043
  setUserFirstName((_c = userData[0]) === null || _c === void 0 ? void 0 : _c.FirstName);
@@ -9331,10 +9415,10 @@ function Login(_a) {
9331
9415
  var params = useRef(new URL(document.location).searchParams);
9332
9416
  var _b = useState(false), open = _b[0], setOpen = _b[1];
9333
9417
  var _c = useState(""), message = _c[0], setMessage = _c[1];
9334
- var useEmailAndPassword = get$1(authConfig, "useEmailAndPassword", true);
9335
- var useAzureAD = get$1(authConfig, "useAzureAD", false);
9336
- var useWindowsAuth = get$1(authConfig, "useWindowsAuth", false);
9337
- var guestIsEnabled = get$1(authConfig, "guestIsEnabled", false);
9418
+ var useEmailAndPassword = get(authConfig, "useEmailAndPassword", true);
9419
+ var useAzureAD = get(authConfig, "useAzureAD", false);
9420
+ var useWindowsAuth = get(authConfig, "useWindowsAuth", false);
9421
+ var guestIsEnabled = get(authConfig, "guestIsEnabled", false);
9338
9422
  var handleClose = function () {
9339
9423
  setOpen(false);
9340
9424
  params.current["delete"]("message");
@@ -9410,7 +9494,7 @@ var useSearchAssets = function (setError) {
9410
9494
  switch (_a.label) {
9411
9495
  case 0:
9412
9496
  if (!res.ok) return [3 /*break*/, 2];
9413
- rows = get$1(res, "data.tables[0].rows", []);
9497
+ rows = get(res, "data.tables[0].rows", []);
9414
9498
  return [4 /*yield*/, rows.filter(function (asset) { return asset.CanBeDefaultAsset; })];
9415
9499
  case 1:
9416
9500
  areas = _a.sent();
@@ -9483,7 +9567,7 @@ var useSearchUTLSettings = function (_a) {
9483
9567
  case 1:
9484
9568
  res = _a.sent();
9485
9569
  if (res.ok) {
9486
- settings = get$1(res, "data.tables[0].rows", []);
9570
+ settings = get(res, "data.tables[0].rows", []);
9487
9571
  initSettings(settings);
9488
9572
  }
9489
9573
  else {
@@ -10591,7 +10675,7 @@ var SettingsPage = function () {
10591
10675
  case 1:
10592
10676
  res = _a.sent();
10593
10677
  if (res.ok) {
10594
- settings = get$1(res, "data.tables[0].rows", []);
10678
+ settings = get(res, "data.tables[0].rows", []);
10595
10679
  actions.setSettings(settings);
10596
10680
  }
10597
10681
  else {
@@ -10741,7 +10825,7 @@ const FORMATS = {
10741
10825
  year: 'YYYY'
10742
10826
  };
10743
10827
 
10744
- _adapters._date.override(typeof moment$4 === 'function' ? {
10828
+ _adapters._date.override(typeof moment$7 === 'function' ? {
10745
10829
  _id: 'moment', // DEBUG ONLY
10746
10830
 
10747
10831
  formats: function() {
@@ -10750,27 +10834,27 @@ _adapters._date.override(typeof moment$4 === 'function' ? {
10750
10834
 
10751
10835
  parse: function(value, format) {
10752
10836
  if (typeof value === 'string' && typeof format === 'string') {
10753
- value = moment$4(value, format);
10754
- } else if (!(value instanceof moment$4)) {
10755
- value = moment$4(value);
10837
+ value = moment$7(value, format);
10838
+ } else if (!(value instanceof moment$7)) {
10839
+ value = moment$7(value);
10756
10840
  }
10757
10841
  return value.isValid() ? value.valueOf() : null;
10758
10842
  },
10759
10843
 
10760
10844
  format: function(time, format) {
10761
- return moment$4(time).format(format);
10845
+ return moment$7(time).format(format);
10762
10846
  },
10763
10847
 
10764
10848
  add: function(time, amount, unit) {
10765
- return moment$4(time).add(amount, unit).valueOf();
10849
+ return moment$7(time).add(amount, unit).valueOf();
10766
10850
  },
10767
10851
 
10768
10852
  diff: function(max, min, unit) {
10769
- return moment$4(max).diff(moment$4(min), unit);
10853
+ return moment$7(max).diff(moment$7(min), unit);
10770
10854
  },
10771
10855
 
10772
10856
  startOf: function(time, unit, weekday) {
10773
- time = moment$4(time);
10857
+ time = moment$7(time);
10774
10858
  if (unit === 'isoWeek') {
10775
10859
  weekday = Math.trunc(Math.min(Math.max(0, weekday), 6));
10776
10860
  return time.isoWeekday(weekday).startOf('day').valueOf();
@@ -10779,7 +10863,7 @@ _adapters._date.override(typeof moment$4 === 'function' ? {
10779
10863
  },
10780
10864
 
10781
10865
  endOf: function(time, unit) {
10782
- return moment$4(time).endOf(unit).valueOf();
10866
+ return moment$7(time).endOf(unit).valueOf();
10783
10867
  }
10784
10868
  } : {});
10785
10869
 
@@ -10873,7 +10957,7 @@ var ColorPicker = function (_a) {
10873
10957
  };
10874
10958
 
10875
10959
  var TrendingsInitialState = {
10876
- timeScopeStart: moment$4(new Date()).subtract(1, "days").toDate(),
10960
+ timeScopeStart: moment$7(new Date()).subtract(1, "days").toDate(),
10877
10961
  timeScopeEnd: new Date(),
10878
10962
  scope: "1 day",
10879
10963
  graphPan: false,
@@ -10900,45 +10984,45 @@ var TrendingsReducer = createSlice({
10900
10984
  var payload = _a.payload; _a.type;
10901
10985
  state.shouldRefetchSeries += 1;
10902
10986
  state.graphShouldUpdate += 1;
10903
- if (!isNil$1(payload.start) &&
10904
- !isNil$1(payload.end) &&
10905
- !isNil$1(payload.scope)) {
10987
+ if (!isNil(payload.start) &&
10988
+ !isNil(payload.end) &&
10989
+ !isNil(payload.scope)) {
10906
10990
  //from arrow navigators
10907
10991
  state.timeScopeStart = payload.start;
10908
10992
  state.timeScopeEnd = payload.end;
10909
10993
  state.scope = payload.scope;
10910
10994
  return;
10911
10995
  }
10912
- if (!isNil$1(payload.scope)) {
10996
+ if (!isNil(payload.scope)) {
10913
10997
  if (payload.scope !== "custom") {
10914
10998
  switch (payload.scope) {
10915
10999
  case "10 min":
10916
- state.timeScopeStart = moment$4(state.timeScopeEnd)
11000
+ state.timeScopeStart = moment$7(state.timeScopeEnd)
10917
11001
  .subtract(10, "minutes")
10918
11002
  .toDate();
10919
11003
  break;
10920
11004
  case "1 hour":
10921
- state.timeScopeStart = moment$4(state.timeScopeEnd)
11005
+ state.timeScopeStart = moment$7(state.timeScopeEnd)
10922
11006
  .subtract(1, "hours")
10923
11007
  .toDate();
10924
11008
  break;
10925
11009
  case "4 hours":
10926
- state.timeScopeStart = moment$4(state.timeScopeEnd)
11010
+ state.timeScopeStart = moment$7(state.timeScopeEnd)
10927
11011
  .subtract(4, "hours")
10928
11012
  .toDate();
10929
11013
  break;
10930
11014
  case "12 hours":
10931
- state.timeScopeStart = moment$4(state.timeScopeEnd)
11015
+ state.timeScopeStart = moment$7(state.timeScopeEnd)
10932
11016
  .subtract(12, "hours")
10933
11017
  .toDate();
10934
11018
  break;
10935
11019
  case "1 day":
10936
- state.timeScopeStart = moment$4(state.timeScopeEnd)
11020
+ state.timeScopeStart = moment$7(state.timeScopeEnd)
10937
11021
  .subtract(1, "days")
10938
11022
  .toDate();
10939
11023
  break;
10940
11024
  case "10 days":
10941
- state.timeScopeStart = moment$4(state.timeScopeEnd)
11025
+ state.timeScopeStart = moment$7(state.timeScopeEnd)
10942
11026
  .subtract(10, "days")
10943
11027
  .toDate();
10944
11028
  break;
@@ -10947,54 +11031,54 @@ var TrendingsReducer = createSlice({
10947
11031
  state.scope = payload.scope;
10948
11032
  return;
10949
11033
  }
10950
- if (!isNil$1(payload.start) &&
10951
- !isNil$1(payload.end) &&
10952
- isNil$1(payload.graphPan)) {
11034
+ if (!isNil(payload.start) &&
11035
+ !isNil(payload.end) &&
11036
+ isNil(payload.graphPan)) {
10953
11037
  // from zoom
10954
11038
  state.timeScopeStart = payload.start;
10955
11039
  state.timeScopeEnd = payload.end;
10956
11040
  state.scope = "custom";
10957
11041
  return;
10958
11042
  }
10959
- if (!isNil$1(payload.start) &&
10960
- !isNil$1(payload.end) &&
10961
- !isNil$1(payload.graphPan)) {
11043
+ if (!isNil(payload.start) &&
11044
+ !isNil(payload.end) &&
11045
+ !isNil(payload.graphPan)) {
10962
11046
  // from pan
10963
11047
  state.timeScopeStart = payload.start;
10964
11048
  state.timeScopeEnd = payload.end;
10965
11049
  return;
10966
11050
  }
10967
- if (!isNil$1(payload.start)) {
11051
+ if (!isNil(payload.start)) {
10968
11052
  state.timeScopeStart = payload.start;
10969
11053
  if (state.scope !== "custom") {
10970
11054
  switch (state.scope) {
10971
11055
  case "10 min":
10972
- state.timeScopeEnd = moment$4(payload.start)
11056
+ state.timeScopeEnd = moment$7(payload.start)
10973
11057
  .add(10, "minutes")
10974
11058
  .toDate();
10975
11059
  break;
10976
11060
  case "1 hour":
10977
- state.timeScopeEnd = moment$4(payload.start)
11061
+ state.timeScopeEnd = moment$7(payload.start)
10978
11062
  .add(1, "hours")
10979
11063
  .toDate();
10980
11064
  break;
10981
11065
  case "4 hours":
10982
- state.timeScopeEnd = moment$4(payload.start)
11066
+ state.timeScopeEnd = moment$7(payload.start)
10983
11067
  .add(4, "hours")
10984
11068
  .toDate();
10985
11069
  break;
10986
11070
  case "12 hours":
10987
- state.timeScopeEnd = moment$4(payload.start)
11071
+ state.timeScopeEnd = moment$7(payload.start)
10988
11072
  .add(12, "hours")
10989
11073
  .toDate();
10990
11074
  break;
10991
11075
  case "1 day":
10992
- state.timeScopeEnd = moment$4(payload.start)
11076
+ state.timeScopeEnd = moment$7(payload.start)
10993
11077
  .add(1, "days")
10994
11078
  .toDate();
10995
11079
  break;
10996
11080
  case "10 days":
10997
- state.timeScopeEnd = moment$4(payload.start)
11081
+ state.timeScopeEnd = moment$7(payload.start)
10998
11082
  .add(10, "days")
10999
11083
  .toDate();
11000
11084
  break;
@@ -11002,37 +11086,37 @@ var TrendingsReducer = createSlice({
11002
11086
  }
11003
11087
  return;
11004
11088
  }
11005
- if (!isNil$1(payload.end)) {
11089
+ if (!isNil(payload.end)) {
11006
11090
  state.timeScopeEnd = payload.end;
11007
11091
  if (state.scope !== "custom") {
11008
11092
  switch (state.scope) {
11009
11093
  case "10 min":
11010
- state.timeScopeStart = moment$4(payload.end)
11094
+ state.timeScopeStart = moment$7(payload.end)
11011
11095
  .subtract(10, "minutes")
11012
11096
  .toDate();
11013
11097
  break;
11014
11098
  case "1 hour":
11015
- state.timeScopeStart = moment$4(payload.end)
11099
+ state.timeScopeStart = moment$7(payload.end)
11016
11100
  .subtract(1, "hours")
11017
11101
  .toDate();
11018
11102
  break;
11019
11103
  case "4 hours":
11020
- state.timeScopeStart = moment$4(payload.end)
11104
+ state.timeScopeStart = moment$7(payload.end)
11021
11105
  .subtract(4, "hours")
11022
11106
  .toDate();
11023
11107
  break;
11024
11108
  case "12 hours":
11025
- state.timeScopeStart = moment$4(payload.end)
11109
+ state.timeScopeStart = moment$7(payload.end)
11026
11110
  .subtract(12, "hours")
11027
11111
  .toDate();
11028
11112
  break;
11029
11113
  case "1 day":
11030
- state.timeScopeStart = moment$4(payload.end)
11114
+ state.timeScopeStart = moment$7(payload.end)
11031
11115
  .subtract(1, "days")
11032
11116
  .toDate();
11033
11117
  break;
11034
11118
  case "10 days":
11035
- state.timeScopeStart = moment$4(payload.end)
11119
+ state.timeScopeStart = moment$7(payload.end)
11036
11120
  .subtract(10, "days")
11037
11121
  .toDate();
11038
11122
  break;
@@ -11405,7 +11489,7 @@ var DeleteViewModal = function (_a) {
11405
11489
  switch (_a.label) {
11406
11490
  case 0:
11407
11491
  setIsLoading(true);
11408
- if (!!isNil$1(view)) return [3 /*break*/, 2];
11492
+ if (!!isNil(view)) return [3 /*break*/, 2];
11409
11493
  return [4 /*yield*/, deleteView(view.ViewId)];
11410
11494
  case 1:
11411
11495
  resp = _a.sent();
@@ -11425,7 +11509,7 @@ var DeleteViewModal = function (_a) {
11425
11509
  return (React__default.createElement(React__default.Fragment, null,
11426
11510
  React__default.createElement(MesfModal, { open: open, handleClose: function () { return handleClose(false); }, maxWidth: "xl", "aria-labelledby": "modal-modal-title", "aria-describedby": "modal-modal-description", title: "Delete View" },
11427
11511
  React__default.createElement(Divider, null),
11428
- React__default.createElement(MesfModal.Content, null, !isNil$1(view) ? (React__default.createElement(Grid, { container: true, spacing: 5, style: { padding: "2rem" } },
11512
+ React__default.createElement(MesfModal.Content, null, !isNil(view) ? (React__default.createElement(Grid, { container: true, spacing: 5, style: { padding: "2rem" } },
11429
11513
  React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { padding: "10px", width: "100%" } },
11430
11514
  React__default.createElement(Typography$1, null,
11431
11515
  "Are yu sure you want to delete",
@@ -11441,7 +11525,7 @@ var DeleteViewModal = function (_a) {
11441
11525
  } },
11442
11526
  React__default.createElement(Grid, { item: true },
11443
11527
  React__default.createElement(Button, { variant: "outlined", color: "secondary", onClick: function () { return handleClose(false); } }, "Cancel")),
11444
- React__default.createElement(Grid, { item: true }, !isNil$1(view) ? (React__default.createElement(ButtonWithLoading, { variant: "contained", color: "secondary", onClick: handleSubmit, isLoading: isLoading }, "Delete")) : (React__default.createElement(Button, { variant: "contained", style: { marginRight: "1rem" }, color: "primary", onClick: function () { return handleClose(false); } }, "Ok")))))),
11528
+ React__default.createElement(Grid, { item: true }, !isNil(view) ? (React__default.createElement(ButtonWithLoading, { variant: "contained", color: "secondary", onClick: handleSubmit, isLoading: isLoading }, "Delete")) : (React__default.createElement(Button, { variant: "contained", style: { marginRight: "1rem" }, color: "primary", onClick: function () { return handleClose(false); } }, "Ok")))))),
11445
11529
  React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
11446
11530
  };
11447
11531
 
@@ -11458,7 +11542,7 @@ var EditViewModal = function (_a) {
11458
11542
  switch (_a.label) {
11459
11543
  case 0:
11460
11544
  setIsLoading(true);
11461
- if (!!isNil$1(view)) return [3 /*break*/, 2];
11545
+ if (!!isNil(view)) return [3 /*break*/, 2];
11462
11546
  return [4 /*yield*/, upsertView(view.ViewId, newName, isPublic)];
11463
11547
  case 1:
11464
11548
  resp = _a.sent();
@@ -11490,7 +11574,7 @@ var EditViewModal = function (_a) {
11490
11574
  return (React__default.createElement(React__default.Fragment, null,
11491
11575
  React__default.createElement(MesfModal, { open: open, handleClose: function () { return handleClose(false); }, maxWidth: "xl", "aria-labelledby": "modal-modal-title", "aria-describedby": "modal-modal-description", title: "Update View" },
11492
11576
  React__default.createElement(Divider, null),
11493
- React__default.createElement(MesfModal.Content, null, !isNil$1(view) ? (React__default.createElement(Grid, { container: true, spacing: 5, style: { padding: "2rem" } },
11577
+ React__default.createElement(MesfModal.Content, null, !isNil(view) ? (React__default.createElement(Grid, { container: true, spacing: 5, style: { padding: "2rem" } },
11494
11578
  React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { padding: "10px", width: "100%" } },
11495
11579
  React__default.createElement(TextField, { required: true, className: classes.inputCustom, id: "viewName", label: "Name", variant: "outlined", onChange: handleChangeInput, value: newName })),
11496
11580
  React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { paddingTop: "2rem" }, className: classes.isPublicCheckbox },
@@ -11506,7 +11590,7 @@ var EditViewModal = function (_a) {
11506
11590
  } },
11507
11591
  React__default.createElement(Grid, { item: true },
11508
11592
  React__default.createElement(Button, { variant: "outlined", color: "secondary", onClick: function () { return handleClose(false); } }, "Cancel")),
11509
- React__default.createElement(Grid, { item: true }, !isNil$1(view) ? (React__default.createElement(ButtonWithLoading, { variant: "contained", color: "primary", onClick: handleSubmit, isLoading: isLoading }, "Update")) : (React__default.createElement(Button, { variant: "contained", style: { marginRight: "1rem" }, color: "primary", onClick: function () { return handleClose(false); } }, "Ok")))))),
11593
+ React__default.createElement(Grid, { item: true }, !isNil(view) ? (React__default.createElement(ButtonWithLoading, { variant: "contained", color: "primary", onClick: handleSubmit, isLoading: isLoading }, "Update")) : (React__default.createElement(Button, { variant: "contained", style: { marginRight: "1rem" }, color: "primary", onClick: function () { return handleClose(false); } }, "Ok")))))),
11510
11594
  React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
11511
11595
  };
11512
11596
 
@@ -11533,7 +11617,7 @@ var LoadViewModal = function (_a) {
11533
11617
  viewTagsResp = _a.sent();
11534
11618
  if (viewTagsResp.ok) {
11535
11619
  setViewTagsAndRefetch(viewTagsResp.data.tables[0].rows.reduce(function (carr, curr, idx) {
11536
- if (isNil$1(curr.Color)) {
11620
+ if (isNil(curr.Color)) {
11537
11621
  curr.Color = getRandomColor();
11538
11622
  }
11539
11623
  carr[curr.TagId] = {
@@ -12497,7 +12581,7 @@ var TableComponent = function (_a) {
12497
12581
  };
12498
12582
  var handleDelete = function () { return __awaiter(void 0, void 0, void 0, function () {
12499
12583
  return __generator(this, function (_a) {
12500
- if (!isNil$1(viewTagForDelete)) {
12584
+ if (!isNil(viewTagForDelete)) {
12501
12585
  if (viewSelected === null || viewSelected === void 0 ? void 0 : viewSelected.ViewId) {
12502
12586
  handleDeleteTag(viewTagForDelete.TagId);
12503
12587
  }
@@ -12836,7 +12920,7 @@ var TableComponent = function (_a) {
12836
12920
  } })),
12837
12921
  React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } }),
12838
12922
  React__default.createElement(Snackbar, { open: !!snackbarMessage, autoHideDuration: 800, onClose: handleCloseSnackbar },
12839
- React__default.createElement(Alert$3, { onClose: handleCloseSnackbar, severity: "success" }, snackbarMessage))));
12923
+ React__default.createElement(Alert$2, { onClose: handleCloseSnackbar, severity: "success" }, snackbarMessage))));
12840
12924
  };
12841
12925
 
12842
12926
  var formatDateTimeToString = function (date) {
@@ -12991,21 +13075,21 @@ var dateNavigator = function (startDate, endDate, scope, operator, current) {
12991
13075
  }
12992
13076
  else {
12993
13077
  var _a = scope.split(" "), quantity = _a[0], duration = _a[1];
12994
- newStartDate = moment$4(newEndDate)
13078
+ newStartDate = moment$7(newEndDate)
12995
13079
  .subtract(quantity, duration[0])
12996
13080
  .toDate();
12997
13081
  }
12998
13082
  }
12999
13083
  else {
13000
13084
  if (scope === "custom") {
13001
- var durationInMs = moment$4(endDate).diff(moment$4(startDate));
13002
- newStartDate = moment$4(startDate)[operator](durationInMs).toDate();
13085
+ var durationInMs = moment$7(endDate).diff(moment$7(startDate));
13086
+ newStartDate = moment$7(startDate)[operator](durationInMs).toDate();
13003
13087
  }
13004
13088
  else {
13005
13089
  var _b = scope.split(" "), quantity = _b[0], duration = _b[1];
13006
- newStartDate = moment$4(startDate)[operator](quantity, duration[0])
13090
+ newStartDate = moment$7(startDate)[operator](quantity, duration[0])
13007
13091
  .toDate();
13008
- newEndDate = moment$4(endDate)[operator](quantity, duration[0])
13092
+ newEndDate = moment$7(endDate)[operator](quantity, duration[0])
13009
13093
  .toDate();
13010
13094
  }
13011
13095
  }
@@ -13034,7 +13118,7 @@ var Header = function (_a) {
13034
13118
  var handleDateChange = function (newValue, key) {
13035
13119
  var _a;
13036
13120
  //@ts-ignore
13037
- actions.setTotalScope((_a = {}, _a[key] = moment$4(newValue).toDate(), _a));
13121
+ actions.setTotalScope((_a = {}, _a[key] = moment$7(newValue).toDate(), _a));
13038
13122
  };
13039
13123
  var handleChangeScope = function (e) {
13040
13124
  var newScope = e.target.value;
@@ -13070,7 +13154,7 @@ var Header = function (_a) {
13070
13154
  React__default.createElement(IconButton$1, { color: "primary", onClick: function () { return handleDateNavigator("subtract"); }, className: classes.navigatorButton },
13071
13155
  React__default.createElement(ChevronLeft, { fontSize: "large" }))),
13072
13156
  React__default.createElement(Grid, { item: true },
13073
- React__default.createElement(TextField, { type: "datetime-local", className: classes.datetimePicker, label: "Start", variant: "outlined", value: moment$4(state.timeScopeStart).format("YYYY-MM-DDTHH:mm:ss"), onChange: function (e) { return handleDateChange(e.target.value, "start"); }, InputLabelProps: {
13157
+ React__default.createElement(TextField, { type: "datetime-local", className: classes.datetimePicker, label: "Start", variant: "outlined", value: moment$7(state.timeScopeStart).format("YYYY-MM-DDTHH:mm:ss"), onChange: function (e) { return handleDateChange(e.target.value, "start"); }, InputLabelProps: {
13074
13158
  shrink: true,
13075
13159
  style: { marginLeft: "10px" }
13076
13160
  }, InputProps: {
@@ -13087,7 +13171,7 @@ var Header = function (_a) {
13087
13171
  React__default.createElement(MenuItem, { value: "10 days" }, "10 days"),
13088
13172
  React__default.createElement(MenuItem, { value: "custom" }, "Custom")))),
13089
13173
  React__default.createElement(Grid, { item: true },
13090
- React__default.createElement(TextField, { label: "End", variant: "outlined", className: classes.datetimePicker, type: "datetime-local", value: moment$4(state.timeScopeEnd).format("YYYY-MM-DDTHH:mm:ss"), onChange: function (e) { return handleDateChange(e.target.value, "end"); }, InputLabelProps: {
13174
+ React__default.createElement(TextField, { label: "End", variant: "outlined", className: classes.datetimePicker, type: "datetime-local", value: moment$7(state.timeScopeEnd).format("YYYY-MM-DDTHH:mm:ss"), onChange: function (e) { return handleDateChange(e.target.value, "end"); }, InputLabelProps: {
13091
13175
  shrink: true,
13092
13176
  style: { marginLeft: "10px" }
13093
13177
  } })),
@@ -13267,10 +13351,10 @@ var useYAxisPlugin = function () {
13267
13351
  };
13268
13352
 
13269
13353
  var areRangesSimilar = function (tag1, tag2) {
13270
- if (isNil$1(tag1.MaxScale) ||
13271
- isNil$1(tag1.MinScale) ||
13272
- isNil$1(tag2.MaxScale) ||
13273
- isNil$1(tag2.MinScale))
13354
+ if (isNil(tag1.MaxScale) ||
13355
+ isNil(tag1.MinScale) ||
13356
+ isNil(tag2.MaxScale) ||
13357
+ isNil(tag2.MinScale))
13274
13358
  return;
13275
13359
  var range1 = tag1.MaxScale - tag1.MinScale; // Rango de la primera etiqueta
13276
13360
  var range2 = tag2.MaxScale - tag2.MinScale; // Rango de la segunda etiqueta
@@ -13585,7 +13669,7 @@ var TrendingsPage = function (props) {
13585
13669
  viewTagsResp = _a.sent();
13586
13670
  if (viewTagsResp.ok) {
13587
13671
  viewTags = viewTagsResp.data.tables[0].rows.reduce(function (carr, curr, idx) {
13588
- if (isNil$1(curr.Color)) {
13672
+ if (isNil(curr.Color)) {
13589
13673
  curr.Color = getRandomColor();
13590
13674
  }
13591
13675
  carr[curr.TagId] = {
@@ -13688,12 +13772,12 @@ var css = "body {\n\tmargin: 0;\n\tfont-family: -apple-system, BlinkMacSystemFon
13688
13772
  n(css,{});
13689
13773
 
13690
13774
  var timezone = TimeService.getInstance().getServerTimeZone();
13691
- moment$5.tz.setDefault(timezone);
13775
+ moment$6.tz.setDefault(timezone);
13692
13776
  var base = document.getElementsByTagName("base")[0].getAttribute("href") || "/";
13693
13777
  function MESFMain(_a) {
13694
13778
  var authentication = _a.authentication, routes = _a.routes, navbar = _a.navbar, _b = _a.navbarTitle, navbarTitle = _b === void 0 ? "MESF" : _b, configurations = _a.configurations, _c = _a.showAreaSelector, showAreaSelector = _c === void 0 ? false : _c, _d = _a.showTrendingsIcon, showTrendingsIcon = _d === void 0 ? true : _d;
13695
13779
  return (React__default.createElement(AuthProvider, { authConfig: authentication },
13696
- React__default.createElement(LocalizationProvider, { dateAdapter: AdapterMoment, dateLibInstance: moment$5 },
13780
+ React__default.createElement(LocalizationProvider, { dateAdapter: AdapterMoment, dateLibInstance: moment$6 },
13697
13781
  React__default.createElement(UserProvider, null,
13698
13782
  React__default.createElement(AssetProvider, null,
13699
13783
  React__default.createElement(UTLSettingsProvider, null,
@@ -13744,7 +13828,7 @@ var useDefaultAreaId = function (setError) {
13744
13828
  if (userId) {
13745
13829
  getUser(userId, null).then(function (res) {
13746
13830
  if (res.ok) {
13747
- var userDefaultAreaId = get$1(res, "data.tables[0].rows[0].DefaultAssetId", null);
13831
+ var userDefaultAreaId = get(res, "data.tables[0].rows[0].DefaultAssetId", null);
13748
13832
  if (userDefaultAreaId) {
13749
13833
  setDefaultAreaId(userDefaultAreaId);
13750
13834
  }