@dexteel/mesf-core 4.26.4 → 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, Select, Card, CardContent, CardActions, Snackbar, CircularProgress, Paper, InputLabel, 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"
@@ -858,19 +869,20 @@ var SimpleTextAreaControl = /** @class */ (function (_super) {
858
869
  return SimpleTextAreaControl;
859
870
  }(Component));
860
871
  function SimpleSelectorControl(_a) {
861
- var title = _a.title, dataSource = _a.dataSource, selectedValue = _a.selectedValue, onChange = _a.onChange, showColor = _a.showColor, styleLabel = _a.styleLabel, styleList = _a.styleList, hasChoose = _a.hasChoose;
862
- var options = dataSource.map(function (item, index) { return (React__default.createElement(MenuItem, { value: item.id.toString(), key: index },
863
- showColor === true && (React__default.createElement("i", { className: "fas fa-square mr-2", style: { color: item.color || "#FFFFFF" } })),
864
- React__default.createElement("span", null, item.description))); });
865
- return (React__default.createElement(React__default.Fragment, null,
866
- React__default.createElement("div", { className: "input-group" },
867
- React__default.createElement("div", { className: "input-group-prepend" },
868
- React__default.createElement("span", { className: "input-group-text", style: styleLabel || {} }, title)),
869
- React__default.createElement(Select, { className: "custom-select mes-custom-select", onChange: function (e) {
870
- return onChange(e.target.value === "DEFAULT" ? "" : e.target.value);
871
- }, value: selectedValue || "DEFAULT", style: styleList || {} },
872
- hasChoose && (React__default.createElement(MenuItem, { value: "DEFAULT" }, "Choose " + title)),
873
- options))));
872
+ var title = _a.title, _b = _a.dataSource, dataSource = _b === void 0 ? [] : _b, selectedValue = _a.selectedValue, onChange = _a.onChange, showColor = _a.showColor, styleList = _a.styleList, hasChoose = _a.hasChoose;
873
+ return (React__default.createElement(TextField, { select: true, label: title, variant: "outlined", value: selectedValue || "DEFAULT", onChange: function (e) {
874
+ return onChange && onChange(e.target.value === "DEFAULT" ? "" : e.target.value);
875
+ }, style: styleList, size: "small" },
876
+ hasChoose && React__default.createElement(MenuItem, { value: "DEFAULT" }, "Choose ".concat(title)),
877
+ dataSource.map(function (item, index) { return (React__default.createElement(MenuItem, { value: item.id.toString(), key: index },
878
+ showColor && (React__default.createElement("span", { style: {
879
+ display: "inline-block",
880
+ width: 12,
881
+ height: 12,
882
+ marginRight: 8,
883
+ backgroundColor: item.color || "#FFFFFF"
884
+ } })),
885
+ item.description)); })));
874
886
  }
875
887
  var MultipleSelectorControl = function (props) {
876
888
  var options = (props.dataSource || []).map(function (item, index) { return (React__default.createElement("option", { value: item[props.valueField], key: index, className: "p-1" }, item[props.textField])); });
@@ -1138,45 +1150,73 @@ var LongFilterPanel = /** @class */ (function (_super) {
1138
1150
  return LongFilterPanel;
1139
1151
  }(Component));
1140
1152
 
1141
- var Alert = function (props) {
1142
- return React__default.createElement(Alert$2, __assign({ elevation: 6, variant: "filled" }, props));
1143
- };
1144
-
1145
- var JobsInitialState = {
1146
- jobsData: [],
1147
- blockButtons: false
1148
- };
1149
- var JobsReducer = createSlice({
1150
- name: "__",
1151
- initialState: JobsInitialState,
1152
- reducers: {
1153
- setJobs: function (state, _a) {
1154
- var payload = _a.payload;
1155
- state.jobsData = payload;
1156
- },
1157
- setBlockButtons: function (state, _a) {
1158
- var payload = _a.payload;
1159
- state.blockButtons = payload;
1160
- }
1153
+ var TimeService = /** @class */ (function () {
1154
+ function TimeService() {
1155
+ this.timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
1161
1156
  }
1162
- });
1163
-
1164
- var JobsContext = createContext({
1165
- state: JobsReducer.getInitialState(),
1166
- actions: JobsReducer.actions
1167
- });
1168
- var useJobsContext = function () { return useContext(JobsContext); };
1169
- var JobsProvider = function (_a) {
1170
- var children = _a.children;
1171
- var _b = useComplexState({
1172
- initialState: JobsReducer.getInitialState(),
1173
- reducers: JobsReducer.caseReducers
1174
- }), state = _b[0], actions = _b[1];
1175
- return (React__default.createElement(JobsContext.Provider, { value: { state: state, actions: actions } }, children));
1176
- };
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;
1177
1216
 
1217
+ var moment$5 = getMomentTz();
1178
1218
  var GetJobsStatus = function () { return __awaiter(void 0, void 0, void 0, function () {
1179
- var apiService, resp;
1219
+ var apiService, resp, rows;
1180
1220
  return __generator(this, function (_a) {
1181
1221
  switch (_a.label) {
1182
1222
  case 0:
@@ -1184,67 +1224,99 @@ var GetJobsStatus = function () { return __awaiter(void 0, void 0, void 0, funct
1184
1224
  return [4 /*yield*/, apiService.callV2("[SYSTEM].[GetJobsStatus]", [])];
1185
1225
  case 1:
1186
1226
  resp = _a.sent();
1187
- 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
+ }
1188
1251
  }
1189
1252
  });
1190
1253
  }); };
1191
- var SetJobEnable = function (Enable, sProcedure) { return __awaiter(void 0, void 0, void 0, function () {
1192
- var apiService, parameters, resp;
1254
+ var upsertJob = function (job) { return __awaiter(void 0, void 0, void 0, function () {
1255
+ var apiService, parameters;
1193
1256
  return __generator(this, function (_a) {
1194
1257
  switch (_a.label) {
1195
1258
  case 0:
1196
1259
  apiService = new MESApiService();
1197
- parameters = [];
1198
- parameters.push({ name: "Enable", value: !Enable });
1199
- 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
+ ];
1200
1282
  return [4 /*yield*/, apiService.callV2("[SYSTEM].[SetJobEnable]", parameters)];
1201
- case 1:
1202
- resp = _a.sent();
1203
- return [2 /*return*/, resp];
1283
+ case 1: return [2 /*return*/, _a.sent()];
1204
1284
  }
1205
1285
  });
1206
1286
  }); };
1207
- var RestartJob = function (sProcedure) { return __awaiter(void 0, void 0, void 0, function () {
1208
- var apiService, parameters, resp;
1287
+ var RestartJob = function (jobId) { return __awaiter(void 0, void 0, void 0, function () {
1288
+ var apiService, parameters;
1209
1289
  return __generator(this, function (_a) {
1210
1290
  switch (_a.label) {
1211
1291
  case 0:
1212
1292
  apiService = new MESApiService();
1213
- parameters = [];
1214
- parameters.push({ name: "sProcedure", value: sProcedure });
1293
+ parameters = [{ name: "JobId", value: jobId }];
1215
1294
  return [4 /*yield*/, apiService.callV2("[SYSTEM].[RestartJob]", parameters)];
1216
- case 1:
1217
- resp = _a.sent();
1218
- return [2 /*return*/, resp];
1295
+ case 1: return [2 /*return*/, _a.sent()];
1219
1296
  }
1220
1297
  });
1221
1298
  }); };
1222
1299
 
1223
1300
  var ResetJob = function (_a) {
1224
- 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;
1225
1302
  var _b = useState(""), error = _b[0], setError = _b[1];
1226
1303
  var _c = useState(false), isLoading = _c[0], setIsLoading = _c[1];
1227
- var setBlockButtons = useJobsContext().actions.setBlockButtons;
1304
+ var _d = useState(false), openSnackbar = _d[0], setOpenSnackbar = _d[1];
1228
1305
  var onSubmit = function () { return __awaiter(void 0, void 0, void 0, function () {
1229
- var sProcedure;
1230
- return __generator(this, function (_a) {
1231
- sProcedure = rowSelected.sProcedure;
1232
- setSnackbarLoading(true);
1233
- setBlockButtons(true);
1306
+ var _a;
1307
+ return __generator(this, function (_b) {
1234
1308
  setIsLoading(true);
1235
- RestartJob(sProcedure)
1309
+ RestartJob((_a = jobSelected === null || jobSelected === void 0 ? void 0 : jobSelected.JobId) !== null && _a !== void 0 ? _a : null)
1236
1310
  .then(function (res) {
1237
1311
  if (res.ok) {
1238
1312
  onHide(true);
1239
- setSnackbarSuccessfulMessage(true);
1313
+ setOpenSnackbar(true);
1240
1314
  }
1241
1315
  else {
1242
1316
  setError(res.message);
1243
1317
  }
1244
1318
  })["finally"](function () {
1245
1319
  setIsLoading(false);
1246
- setSnackbarLoading(false);
1247
- setBlockButtons(false);
1248
1320
  });
1249
1321
  return [2 /*return*/];
1250
1322
  });
@@ -1253,81 +1325,229 @@ var ResetJob = function (_a) {
1253
1325
  React__default.createElement(MesfModal, { title: "RESET JOB", open: show, handleClose: function () { return onHide(false); }, id: "reset-job-modal" },
1254
1326
  React__default.createElement(MesfModal.Content, null, "Are you sure you want to reset? This action leaves the task in enable"),
1255
1327
  React__default.createElement(MesfModal.Actions, { style: { padding: "16px 24px" } },
1256
- React__default.createElement(Button, { onClick: function () { return onHide(false); }, autoFocus: true, color: "default" }, "DISAGREE"),
1257
- React__default.createElement(Button, { onClick: function () {
1258
- onSubmit();
1259
- }, disabled: isLoading, variant: "outlined", color: "primary" }, "AGREE"))),
1260
- 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"))));
1261
1336
  };
1262
1337
 
1263
1338
  var OnEnableJob = function (_a) {
1264
- var rowSelected = _a.rowSelected, show = _a.show, onHide = _a.onHide;
1339
+ var jobSelected = _a.jobSelected, show = _a.show, onHide = _a.onHide;
1265
1340
  var _b = useState(""), error = _b[0], setError = _b[1];
1266
1341
  var _c = useState(false), isLoading = _c[0], setIsLoading = _c[1];
1267
- var setBlockButtons = useJobsContext().actions.setBlockButtons;
1342
+ var _d = useState(false), openSnackbar = _d[0], setOpenSnackbar = _d[1];
1268
1343
  var onSubmit = function () { return __awaiter(void 0, void 0, void 0, function () {
1269
- var Enabled, sProcedure;
1344
+ var resp;
1270
1345
  return __generator(this, function (_a) {
1271
- Enabled = rowSelected.Enabled, sProcedure = rowSelected.sProcedure;
1272
- setBlockButtons(true);
1273
- setIsLoading(true);
1274
- SetJobEnable(Enabled, sProcedure)
1275
- .then(function (res) {
1276
- if (res.ok) {
1277
- onHide(true);
1278
- }
1279
- else {
1280
- setError(res.message);
1281
- }
1282
- })["finally"](function () {
1283
- setIsLoading(false);
1284
- setBlockButtons(false);
1285
- });
1286
- 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
+ }
1287
1363
  });
1288
1364
  }); };
1289
1365
  return (React__default.createElement(React__default.Fragment, null,
1290
- React__default.createElement(MesfModal, { title: "ENABLE JOB", open: show, handleClose: function () { return onHide(false); }, id: "enable-job-modal" },
1291
- 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?"),
1292
1372
  React__default.createElement(MesfModal.Actions, { style: { padding: "16px 24px" } },
1293
- React__default.createElement(Button, { onClick: function () { return onHide(false); }, autoFocus: true, color: "default" }, "DISAGREE"),
1294
- React__default.createElement(Button, { onClick: function () {
1295
- onSubmit();
1296
- }, 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")),
1297
1515
  React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
1298
1516
  };
1299
1517
 
1300
1518
  var useJobsOptionsFunctions = function (_a) {
1301
- var getJobsFromAPI = _a.getJobsFromAPI, setRowSelected = _a.setRowSelected;
1519
+ var setShowModal = _a.setShowModal, setJobSelected = _a.setJobSelected, getJobsFromAPI = _a.getJobsFromAPI;
1302
1520
  var getMenuOptions = function (data) {
1303
1521
  var options = [];
1304
- if (!data) {
1305
- options = options.concat([
1306
- {
1307
- name: "Refresh Job",
1308
- key: "refresh_job",
1309
- onClick: function () {
1310
- getJobsFromAPI();
1311
- },
1312
- 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");
1313
1528
  },
1314
- ]);
1315
- }
1316
- else {
1529
+ icon: React__default.createElement(PlaylistAddIcon, null)
1530
+ },
1531
+ ]);
1532
+ if (data) {
1317
1533
  options = options.concat([
1318
1534
  {
1319
1535
  name: "Enable Job",
1320
1536
  key: "enable_job",
1537
+ disabled: data.Enabled ? true : false,
1321
1538
  onClick: function () {
1322
- setRowSelected(data);
1539
+ setShowModal("enable");
1540
+ setJobSelected(data);
1323
1541
  },
1324
1542
  icon: React__default.createElement(ToggleOnIcon, null)
1325
1543
  },
1326
1544
  {
1327
1545
  name: "Disable Job",
1328
1546
  key: "disable_job",
1547
+ disabled: data.Enabled ? false : true,
1329
1548
  onClick: function () {
1330
- setRowSelected(data);
1549
+ setShowModal("enable");
1550
+ setJobSelected(data);
1331
1551
  },
1332
1552
  icon: React__default.createElement(ToggleOfIcon, null)
1333
1553
  },
@@ -1335,20 +1555,23 @@ var useJobsOptionsFunctions = function (_a) {
1335
1555
  name: "Reset Job",
1336
1556
  key: "reset_job",
1337
1557
  onClick: function () {
1338
- setRowSelected(data);
1558
+ setShowModal("reset");
1559
+ setJobSelected(data);
1339
1560
  },
1340
1561
  icon: React__default.createElement(ReplayIcon, null)
1341
1562
  },
1342
- {
1343
- name: "Refresh Job",
1344
- key: "refresh_job",
1345
- onClick: function () {
1346
- getJobsFromAPI();
1347
- },
1348
- icon: React__default.createElement(RefreshIcon, null)
1349
- },
1350
1563
  ]);
1351
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
+ ]);
1352
1575
  return options;
1353
1576
  };
1354
1577
  return {
@@ -1356,6 +1579,39 @@ var useJobsOptionsFunctions = function (_a) {
1356
1579
  };
1357
1580
  };
1358
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
+
1359
1615
  var useStyles$z = makeStyles(function (theme) { return ({
1360
1616
  buttons: {
1361
1617
  opacity: 0,
@@ -1372,63 +1628,9 @@ var useStyles$z = makeStyles(function (theme) { return ({
1372
1628
  }
1373
1629
  }); });
1374
1630
  var useJobsTableData = function (_a) {
1375
- var setRowSelected = _a.setRowSelected, showContextMenu = _a.showContextMenu;
1376
- 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;
1377
1633
  var classes = useStyles$z();
1378
- var rows = jobsData.map(function (_a) {
1379
- 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;
1380
- return ({
1381
- id: JobId,
1382
- sProcedure: sProcedure,
1383
- Running: Running,
1384
- LastStarted: LastStarted,
1385
- LastCounter: LastCounter,
1386
- Enabled: Enabled,
1387
- RestartAfterFailure: RestartAfterFailure,
1388
- PeriodTime: PeriodTime,
1389
- StartTime: StartTime,
1390
- NextExecutionTime: NextExecutionTime
1391
- });
1392
- });
1393
- var renderButtonEnable = function (params) {
1394
- var isDisabled = params.data.Enabled || blockButtons;
1395
- return (React__default.createElement("div", { style: {
1396
- display: "flex",
1397
- justifyContent: "center",
1398
- alignItems: "center",
1399
- height: "100%",
1400
- padding: 5
1401
- } },
1402
- React__default.createElement(Button, { style: { height: "100%", maxHeight: "27px" }, variant: "contained", fullWidth: true, color: "primary", onClick: function () {
1403
- setRowSelected(params.data);
1404
- }, disabled: isDisabled }, "ENABLE")));
1405
- };
1406
- var renderButtonDisable = function (params) {
1407
- var isDisabled = !params.data.Enabled || blockButtons;
1408
- return (React__default.createElement("div", { style: {
1409
- display: "flex",
1410
- justifyContent: "center",
1411
- alignItems: "center",
1412
- height: "100%",
1413
- padding: 5
1414
- } },
1415
- React__default.createElement(Button, { style: { height: "100%", maxHeight: "27px" }, variant: "contained", fullWidth: true, color: "secondary", onClick: function () {
1416
- setRowSelected(params.data);
1417
- }, disabled: isDisabled }, "DISABLE")));
1418
- };
1419
- var renderButtonReset = function (params) {
1420
- var isDisabled = !params.data.Enabled || blockButtons;
1421
- return (React__default.createElement("div", { style: {
1422
- display: "flex",
1423
- justifyContent: "center",
1424
- alignItems: "center",
1425
- height: "100%",
1426
- padding: 5
1427
- } },
1428
- React__default.createElement(Button, { style: { height: "100%", maxHeight: "27px" }, variant: "contained", fullWidth: true, color: "primary", onClick: function () {
1429
- setRowSelected(params.data);
1430
- }, disabled: isDisabled }, "RESET")));
1431
- };
1432
1634
  var renderButtonMenu = function (params) {
1433
1635
  return (React__default.createElement(Grid, { container: true, style: {
1434
1636
  height: "100%",
@@ -1436,90 +1638,21 @@ var useJobsTableData = function (_a) {
1436
1638
  justifyContent: "center",
1437
1639
  alignItems: "center"
1438
1640
  }, className: classes.buttons },
1439
- React__default.createElement(Grid, { item: true, xs: 12, md: 12, style: {
1440
- display: "flex",
1441
- justifyContent: "center",
1442
- alignItems: "center"
1443
- } },
1444
- React__default.createElement(Button, { style: {}, onClick: function (e) { return showContextMenu(e, params.data); } },
1445
- React__default.createElement(FormatListBulletedSharpIcon, { style: { height: "auto" }, color: "action" })))));
1446
- };
1447
- var columnDefs = [
1448
- {
1449
- field: "sProcedure",
1450
- minWidth: 260,
1451
- headerName: "Procedure",
1452
- type: "string",
1453
- flex: 2,
1454
- cellStyle: {
1455
- display: "flex",
1456
- alignItems: "center",
1457
- justifyContent: "center"
1458
- }
1459
- },
1460
- {
1461
- field: "Running",
1462
- minWidth: 60,
1463
- maxWidth: 60,
1464
- headerName: "Status",
1465
- valueFormatter: function (_a) {
1466
- var value = _a.value;
1467
- return (value ? "Running" : "Inactive");
1468
- },
1469
- flex: 1,
1470
- cellStyle: {
1471
- display: "flex",
1472
- alignItems: "center",
1473
- justifyContent: "center"
1474
- }
1475
- },
1476
- {
1477
- field: "PeriodTime",
1478
- minWidth: 80,
1479
- maxWidth: 80,
1480
- headerName: "Period Time",
1481
- flex: 1,
1482
- valueFormatter: function (_a) {
1483
- var value = _a.value;
1484
- if (value === null || value === undefined)
1485
- return "";
1486
- var horas = Math.floor(value / 3600);
1487
- var minutos = Math.floor((value % 3600) / 60);
1488
- var segundos = value % 60;
1489
- return "".concat(horas, "h ").concat(minutos, "min ").concat(segundos, "s");
1490
- },
1491
- cellStyle: {
1492
- display: "flex",
1493
- alignItems: "center",
1494
- justifyContent: "center"
1495
- }
1496
- },
1497
- {
1498
- field: "StartTime",
1499
- minWidth: 130,
1500
- maxWidth: 130,
1501
- headerName: "Start Time",
1502
- valueFormatter: function (_a) {
1503
- var value = _a.value;
1504
- return value === null ? "NULL" : moment$4(value).format("DD/MM/YYYY HH:mm");
1505
- },
1506
- flex: 1,
1507
- cellStyle: {
1508
- display: "flex",
1509
- alignItems: "center",
1510
- justifyContent: "center"
1511
- }
1512
- },
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 = [
1513
1650
  {
1514
- field: "NextExecutionTime",
1515
- minWidth: 115,
1516
- maxWidth: 115,
1517
- headerName: "Next Execution",
1518
- valueFormatter: function (_a) {
1519
- var value = _a.value;
1520
- return value === null ? "NULL" : moment$4(value).format("DD/MM/YYYY HH:mm");
1521
- },
1522
- flex: 1,
1651
+ field: "sProcedure",
1652
+ minWidth: 240,
1653
+ headerName: "Procedures",
1654
+ type: "string",
1655
+ flex: 2,
1523
1656
  cellStyle: {
1524
1657
  display: "flex",
1525
1658
  alignItems: "center",
@@ -1527,15 +1660,20 @@ var useJobsTableData = function (_a) {
1527
1660
  }
1528
1661
  },
1529
1662
  {
1530
- field: "LastStarted",
1531
- minWidth: 100,
1532
- maxWidth: 100,
1533
- headerName: "Started",
1663
+ field: "PeriodTime",
1664
+ minWidth: 90,
1665
+ maxWidth: 90,
1666
+ headerName: "Period Time",
1667
+ flex: 1,
1534
1668
  valueFormatter: function (_a) {
1535
1669
  var value = _a.value;
1536
- 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");
1537
1676
  },
1538
- flex: 1,
1539
1677
  cellStyle: {
1540
1678
  display: "flex",
1541
1679
  alignItems: "center",
@@ -1543,15 +1681,15 @@ var useJobsTableData = function (_a) {
1543
1681
  }
1544
1682
  },
1545
1683
  {
1546
- field: "LastCounter",
1684
+ field: "NextExecutionTime",
1547
1685
  minWidth: 115,
1548
- maxWidth: 115,
1549
- headerName: "Last Seen",
1686
+ maxWidth: 125,
1687
+ headerName: "Next Execution",
1550
1688
  valueFormatter: function (_a) {
1551
1689
  var value = _a.value;
1552
- 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");
1553
1691
  },
1554
- flex: 2,
1692
+ flex: 1,
1555
1693
  cellStyle: {
1556
1694
  display: "flex",
1557
1695
  alignItems: "center",
@@ -1560,9 +1698,9 @@ var useJobsTableData = function (_a) {
1560
1698
  },
1561
1699
  {
1562
1700
  field: "Enabled",
1701
+ headerName: "Enabled",
1563
1702
  minWidth: 50,
1564
1703
  maxWidth: 50,
1565
- headerName: "Enabled",
1566
1704
  valueFormatter: function (_a) {
1567
1705
  var value = _a.value;
1568
1706
  return (!value ? "N" : "Y");
@@ -1572,77 +1710,15 @@ var useJobsTableData = function (_a) {
1572
1710
  display: "flex",
1573
1711
  alignItems: "center",
1574
1712
  justifyContent: "center"
1575
- }
1576
- },
1577
- {
1578
- field: "RestartAfterFailure",
1579
- minWidth: 70,
1580
- maxWidth: 70,
1581
- headerName: "AutoRecover",
1582
- valueFormatter: function (_a) {
1583
- var value = _a.value;
1584
- return (!value ? "N" : "Y");
1585
1713
  },
1586
- flex: 1,
1587
- cellStyle: {
1588
- display: "flex",
1589
- alignItems: "center",
1590
- justifyContent: "center"
1591
- }
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
+ } })); }
1592
1718
  },
1593
1719
  {
1594
- field: "Enable",
1720
+ field: "-",
1595
1721
  headerName: "",
1596
- minWidth: 80,
1597
- cellRenderer: renderButtonEnable,
1598
- flex: 1,
1599
- wrapText: false,
1600
- autoHeight: false,
1601
- wrapHeaderText: false,
1602
- sortable: false,
1603
- cellStyle: {
1604
- display: "flex",
1605
- alignItems: "center",
1606
- justifyContent: "center"
1607
- }
1608
- },
1609
- {
1610
- field: "Disable",
1611
- headerName: "Actions",
1612
- minWidth: 80,
1613
- cellRenderer: renderButtonDisable,
1614
- flex: 1,
1615
- wrapText: false,
1616
- autoHeight: false,
1617
- wrapHeaderText: false,
1618
- sortable: false,
1619
- cellStyle: {
1620
- display: "flex",
1621
- alignItems: "center",
1622
- justifyContent: "center"
1623
- }
1624
- },
1625
- {
1626
- field: "Reset",
1627
- headerName: " ",
1628
- minWidth: 80,
1629
- cellRenderer: renderButtonReset,
1630
- flex: 1,
1631
- wrapText: false,
1632
- autoHeight: false,
1633
- wrapHeaderText: false,
1634
- sortable: false,
1635
- cellStyle: {
1636
- display: "flex",
1637
- alignItems: "center",
1638
- justifyContent: "center"
1639
- }
1640
- },
1641
- {
1642
- field: "Menu",
1643
- headerName: " ",
1644
- minWidth: 80,
1645
- maxWidth: 80,
1646
1722
  cellRenderer: renderButtonMenu,
1647
1723
  flex: 1,
1648
1724
  wrapText: false,
@@ -1659,6 +1735,11 @@ var useJobsTableData = function (_a) {
1659
1735
  return { rows: rows, columnDefs: columnDefs };
1660
1736
  };
1661
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
+ };
1662
1743
  var useStyles$y = makeStyles(function (theme) { return ({
1663
1744
  root: {
1664
1745
  "& .MuiDataGrid-row": {
@@ -1718,16 +1799,27 @@ var useStyles$y = makeStyles(function (theme) { return ({
1718
1799
  form: {
1719
1800
  display: "flex",
1720
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
+ }
1721
1814
  }
1722
1815
  }); });
1723
1816
  var TableJobs = function (_a) {
1724
1817
  var getJobsFromAPI = _a.getJobsFromAPI, isLoading = _a.isLoading;
1725
1818
  var classes = useStyles$y();
1726
- var _b = useState(null), rowSelected = _b[0], setRowSelected = _b[1];
1727
- var _c = useState(false), snackbarLoading = _c[0], setSnackbarLoading = _c[1];
1728
- var _d = useState(false), snackbarSuccessfulMessage = _d[0], setSnackbarSuccessfulMessage = _d[1];
1729
- var gridStyle = useMemo(function () { return ({ height: "100%", width: "100%" }); }, []);
1730
- 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];
1731
1823
  var defaultColDef = useMemo(function () {
1732
1824
  return {
1733
1825
  sortable: true,
@@ -1736,32 +1828,77 @@ var TableJobs = function (_a) {
1736
1828
  wrapHeaderText: true
1737
1829
  };
1738
1830
  }, []);
1739
- var loadingOverlayComponent = useMemo(function () {
1740
- return LazyLoading;
1741
- }, []);
1742
- var handleClose = function (event, reason) {
1743
- if (reason === "clickaway") {
1744
- 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");
1745
1840
  }
1746
- setSnackbarSuccessfulMessage(false);
1747
1841
  };
1842
+ var _f = useContextMenuMESF(), showContextMenu = _f.showContextMenu, registerConfig = _f.registerConfig;
1748
1843
  var getMenuOptions = useJobsOptionsFunctions({
1749
- getJobsFromAPI: getJobsFromAPI,
1750
- setRowSelected: setRowSelected
1844
+ setShowModal: setShowModal,
1845
+ setJobSelected: setJobSelected,
1846
+ getJobsFromAPI: getJobsFromAPI
1751
1847
  }).getMenuOptions;
1752
- var _f = useContextMenuMESF(), showContextMenu = _f.showContextMenu, registerConfig = _f.registerConfig;
1753
1848
  var _g = useJobsTableData({
1754
- setRowSelected: setRowSelected,
1849
+ setJobSelected: setJobSelected,
1850
+ setShowModal: setShowModal,
1755
1851
  showContextMenu: showContextMenu
1756
1852
  }), rows = _g.rows, columnDefs = _g.columnDefs;
1757
1853
  var getContextMenuItems = function (params) {
1758
1854
  var _a, _b;
1759
1855
  var data = (_a = params.node) === null || _a === void 0 ? void 0 : _a.data;
1760
- params.api.deselectAll();
1761
- (_b = params.node) === null || _b === void 0 ? void 0 : _b.setSelected(true);
1762
- 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
+ }
1763
1861
  return [];
1764
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
+ };
1765
1902
  useEffect(function () {
1766
1903
  if (isLoading) {
1767
1904
  gridApi === null || gridApi === void 0 ? void 0 : gridApi.showLoadingOverlay();
@@ -1769,79 +1906,96 @@ var TableJobs = function (_a) {
1769
1906
  else {
1770
1907
  gridApi === null || gridApi === void 0 ? void 0 : gridApi.hideOverlay();
1771
1908
  }
1772
- }, [isLoading, rows, gridApi]);
1909
+ }, [isLoading, gridApi]);
1773
1910
  useEffect(function () {
1774
1911
  registerConfig({
1775
- id: "TableJobs",
1912
+ id: "jobsContext",
1776
1913
  getOptions: getMenuOptions
1777
1914
  });
1778
1915
  }, []);
1779
- return (React.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center", className: classes.root },
1780
- React.createElement(Grid, { item: true, md: 12, xs: 12, style: { padding: "0 15px" }, className: classes.filters },
1781
- React.createElement(Typography$1, { variant: "h5", style: { margin: "20px 0 20px", fontWeight: 600 } }, "System Jobs"),
1782
- React.createElement(Grid, { item: true, md: 12, xs: 12, style: {
1783
- height: "70vh",
1784
- border: "4px solid #ccc",
1785
- borderRadius: 10,
1786
- padding: 10,
1787
- margin: "20px 0 10px"
1788
- } },
1789
- React.createElement("div", { style: gridStyle, className: "ag-theme-alpine" },
1790
- 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); } })),
1791
- React.createElement(ResetJob, { show: !!rowSelected, setSnackbarLoading: setSnackbarLoading, setSnackbarSuccessfulMessage: setSnackbarSuccessfulMessage, onHide: function (shouldUpdate) {
1792
- setRowSelected(null);
1793
- if (shouldUpdate) {
1794
- getJobsFromAPI();
1795
- }
1796
- }, rowSelected: rowSelected }),
1797
- React.createElement(OnEnableJob, { show: !!rowSelected, onHide: function (shouldUpdate) {
1798
- setRowSelected(null);
1799
- if (shouldUpdate) {
1800
- getJobsFromAPI();
1801
- }
1802
- }, rowSelected: rowSelected }),
1803
- React.createElement(Snackbar, { open: snackbarLoading, autoHideDuration: 3500, onClose: handleClose },
1804
- React.createElement(Alert, { style: {
1805
- width: "250px",
1806
- justifyContent: "center",
1807
- alignItems: "center"
1808
- }, severity: "info" },
1809
- React.createElement(Grid, { container: true, alignItems: "center", spacing: 2 },
1810
- React.createElement(Grid, { item: true }, "Waiting for reset"),
1811
- React.createElement(Grid, { item: true },
1812
- React.createElement(CircularProgress, { style: {
1813
- color: "#FFF",
1814
- width: 18,
1815
- height: 18,
1816
- marginTop: 4
1817
- } }))))),
1818
- React.createElement(Snackbar, { open: snackbarSuccessfulMessage, autoHideDuration: 2500, onClose: handleClose },
1819
- React.createElement(Alert, { style: {
1820
- width: "250px",
1821
- justifyContent: "center",
1822
- alignItems: "center"
1823
- }, 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(""); } })));
1824
1977
  };
1825
1978
 
1826
1979
  var Jobs = function (prop) {
1827
- var _a = useJobsContext(), state = _a.state, actions = _a.actions;
1980
+ var _a = useJobsContext(); _a.state; var actions = _a.actions;
1828
1981
  var _b = useState(true), isLoading = _b[0], setIsLoading = _b[1];
1829
1982
  var _c = useState(""), error = _c[0], setError = _c[1];
1830
1983
  var getJobsFromAPI = function () { return __awaiter(void 0, void 0, void 0, function () {
1831
1984
  var resp;
1832
- return __generator(this, function (_a) {
1833
- switch (_a.label) {
1985
+ var _a;
1986
+ return __generator(this, function (_b) {
1987
+ switch (_b.label) {
1834
1988
  case 0:
1835
1989
  setIsLoading(true);
1836
1990
  return [4 /*yield*/, GetJobsStatus()];
1837
1991
  case 1:
1838
- resp = _a.sent();
1992
+ resp = _b.sent();
1839
1993
  if (resp.ok) {
1840
- actions.setJobs(resp.data.tables[0].rows);
1994
+ actions.setJobs(resp.data);
1841
1995
  setIsLoading(false);
1842
1996
  }
1843
1997
  else {
1844
- setError(resp.message);
1998
+ setError((_a = resp.message) !== null && _a !== void 0 ? _a : "Error loading jobs");
1845
1999
  setIsLoading(false);
1846
2000
  }
1847
2001
  return [2 /*return*/];
@@ -1851,24 +2005,15 @@ var Jobs = function (prop) {
1851
2005
  useEffect(function () {
1852
2006
  getJobsFromAPI();
1853
2007
  }, []);
1854
- if (state.jobsData)
1855
- return (React.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center" },
1856
- React.createElement(Grid, { item: true, md: 12, xs: 12, style: { margin: 0 } },
1857
- React.createElement(Paper, { elevation: 1, style: {
1858
- width: "100%",
1859
- padding: "10px 0 20px",
1860
- borderRadius: "0.75rem"
1861
- } },
1862
- React.createElement(TableJobs, { isLoading: isLoading, getJobsFromAPI: getJobsFromAPI }))),
1863
- React.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
1864
- else
1865
- return (React.createElement("div", { style: {
1866
- display: "flex",
1867
- justifyContent: "center",
1868
- alignItems: "center",
1869
- height: "100vh"
1870
- } },
1871
- 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(""); } })));
1872
2017
  };
1873
2018
 
1874
2019
  var JobsPage = function (props) {
@@ -1879,8 +2024,8 @@ var JobsPage = function (props) {
1879
2024
  var LogsInitialState = {
1880
2025
  logs: [],
1881
2026
  searchData: {
1882
- Start: moment$4().add(-5, "days").hour(0).minute(0).second(0).toDate(),
1883
- 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(),
1884
2029
  Search: "",
1885
2030
  LogTypeCode: "A"
1886
2031
  }
@@ -1916,8 +2061,8 @@ var LogsReducer = createSlice({
1916
2061
  resetFilters: function (state, _a) {
1917
2062
  _a.payload;
1918
2063
  state.searchData = {
1919
- Start: moment$4().add(-5, "days").hour(0).minute(0).second(0).toDate(),
1920
- 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(),
1921
2066
  Search: "",
1922
2067
  LogTypeCode: "A"
1923
2068
  };
@@ -2082,10 +2227,10 @@ var useLogTableData = function () {
2082
2227
  return (nowTime.toLocaleDateString("en-US") + " " + nowTime.toLocaleTimeString());
2083
2228
  };
2084
2229
  var getLogTypeByCodeId = function (logTypeCodeId) {
2085
- return get(LOG_TYPE_CODES, "".concat(logTypeCodeId, ".description"), " -");
2230
+ return get$1(LOG_TYPE_CODES, "".concat(logTypeCodeId, ".description"), " -");
2086
2231
  };
2087
2232
  var backgroundColor = function (logTypeCode) {
2088
- return get(LOG_TYPE_CODES, "".concat(logTypeCode[0], ".color"), "#BBBBBB");
2233
+ return get$1(LOG_TYPE_CODES, "".concat(logTypeCode[0], ".color"), "#BBBBBB");
2089
2234
  };
2090
2235
  var rows = (_a = state.logs) === null || _a === void 0 ? void 0 : _a.map(function (_a) {
2091
2236
  var LogId = _a.LogId, Timestamp = _a.Timestamp, Source = _a.Source, Message = _a.Message, LogTypeCode = _a.LogTypeCode, User = _a.User;
@@ -2093,7 +2238,7 @@ var useLogTableData = function () {
2093
2238
  id: LogId,
2094
2239
  Timestamp: Timestamp === null ? null : new Date(Timestamp),
2095
2240
  Source: Source,
2096
- Message: isNil(Message) ? "" : Message.replaceAll("Added", " Added"),
2241
+ Message: isNil$1(Message) ? "" : Message.replaceAll("Added", " Added"),
2097
2242
  LogTypeCode: getLogTypeByCodeId(LogTypeCode),
2098
2243
  User: User
2099
2244
  });
@@ -2318,8 +2463,8 @@ var TableLogs = function (_a) {
2318
2463
  var handleResetButtonClick = function () {
2319
2464
  resetFilter();
2320
2465
  refreshData({
2321
- Start: moment$4().add(-5, "days").hour(0).minute(0).second(0).toDate(),
2322
- 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(),
2323
2468
  Search: "",
2324
2469
  LogTypeCode: "A"
2325
2470
  });
@@ -2445,7 +2590,7 @@ var Logs = function (prop) {
2445
2590
  case 1:
2446
2591
  res = _a.sent();
2447
2592
  if (res.ok) {
2448
- logs = get$1(res, "data.tables[0].rows", []);
2593
+ logs = get(res, "data.tables[0].rows", []);
2449
2594
  if (canceled)
2450
2595
  return [2 /*return*/];
2451
2596
  actions.setLogs(logs);
@@ -2481,6 +2626,10 @@ var LogsPage = function (props) {
2481
2626
  React.createElement(Logs, null)));
2482
2627
  };
2483
2628
 
2629
+ var Alert = function (props) {
2630
+ return React__default.createElement(Alert$3, __assign({ elevation: 6, variant: "filled" }, props));
2631
+ };
2632
+
2484
2633
  var INITIAL_VALUES$3 = {
2485
2634
  ProfileId: null,
2486
2635
  ProfileName: ""
@@ -2801,7 +2950,7 @@ var DataTable = function (_a) {
2801
2950
  var onFirstDataRendered = useCallback(function (params) {
2802
2951
  params.api.forEachNode(function (node) {
2803
2952
  node.setSelected(!!node.data &&
2804
- !isNil$1(actionsOfProfile.find(function (p) { return p.ActionId === node.data.ActionId; })));
2953
+ !isNil(actionsOfProfile.find(function (p) { return p.ActionId === node.data.ActionId; })));
2805
2954
  });
2806
2955
  sortRows(params);
2807
2956
  }, [sortRows]);
@@ -2821,7 +2970,7 @@ var DataTable = function (_a) {
2821
2970
  case 1:
2822
2971
  resp = _a.sent();
2823
2972
  if (resp.ok)
2824
- setAllActions(get$1(resp, "data.tables[0].rows", []));
2973
+ setAllActions(get(resp, "data.tables[0].rows", []));
2825
2974
  else
2826
2975
  setError(resp.message);
2827
2976
  return [2 /*return*/];
@@ -2917,7 +3066,7 @@ var ActionsOfProfile = function (_a) {
2917
3066
  case 1:
2918
3067
  resp = _a.sent();
2919
3068
  if (resp.ok)
2920
- setActionsOfProfile(get$1(resp, "data.tables[0].rows", []));
3069
+ setActionsOfProfile(get(resp, "data.tables[0].rows", []));
2921
3070
  else
2922
3071
  setError(resp.message);
2923
3072
  setIsLoading(false);
@@ -3299,7 +3448,7 @@ var Profiles = function (prop) {
3299
3448
  case 1:
3300
3449
  resp = _a.sent();
3301
3450
  if (resp.ok) {
3302
- profiles = get(resp, "data.tables[0].rows", []);
3451
+ profiles = get$1(resp, "data.tables[0].rows", []);
3303
3452
  actions.setProfiles(profiles);
3304
3453
  setIsLoading(false);
3305
3454
  }
@@ -4165,7 +4314,7 @@ var useTableData$2 = function (_a) {
4165
4314
  headerName: "Pattern Start",
4166
4315
  valueFormatter: function (_a) {
4167
4316
  var value = _a.value;
4168
- 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"));
4169
4318
  },
4170
4319
  minWidth: 180,
4171
4320
  flex: 4,
@@ -4671,7 +4820,7 @@ var useSearchAssets$1 = function (_a) {
4671
4820
  getAssets().then(function (res) {
4672
4821
  if (res.ok) {
4673
4822
  var mydataSource_1 = [];
4674
- var rows = get$1(res, "data.tables[0].rows", []);
4823
+ var rows = get(res, "data.tables[0].rows", []);
4675
4824
  var areas = rows.filter(function (asset) { return asset.CanBeDefaultAsset; });
4676
4825
  setAllAssets(rows);
4677
4826
  setAreasList(areas);
@@ -4969,7 +5118,7 @@ var CreateNewAssetDialog = function (_a) {
4969
5118
  React__default.createElement(Button, { fullWidth: true, startIcon: isCreateSubmitLoading && (React__default.createElement(CircularProgress, { size: "1rem" })), disabled: isCreateSubmitLoading, variant: "contained", color: "primary", type: "submit" }, "Save")))))))))),
4970
5119
  React__default.createElement(ErrorModal, { error: errorCreateAsset, onHide: function () { return setErrorCreateAsset(""); } }),
4971
5120
  React__default.createElement(Snackbar, { open: assetCreatedSuccess, autoHideDuration: 2500, onClose: handleClose },
4972
- 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"))));
4973
5122
  };
4974
5123
 
4975
5124
  var useStyles$k = makeStyles(function (theme) { return ({
@@ -5137,7 +5286,7 @@ var EditAssetDialog = function (_a) {
5137
5286
  React__default.createElement(Button, { fullWidth: true, startIcon: isEditSubmitLoading && (React__default.createElement(CircularProgress, { size: "1rem" })), disabled: isEditSubmitLoading, variant: "contained", color: "primary", type: "submit" }, "Save"))))),
5138
5287
  React__default.createElement(ErrorModal, { error: errorEditAsset, onHide: function () { return setErrorEditAsset(""); } }),
5139
5288
  React__default.createElement(Snackbar, { open: assetEditedSuccess, autoHideDuration: 2500, onClose: handleClose },
5140
- 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")))))))));
5141
5290
  };
5142
5291
 
5143
5292
  var useStyles$j = makeStyles(function (theme) { return ({
@@ -5240,7 +5389,7 @@ var RemoveAssetDialog = function (_a) {
5240
5389
  React__default.createElement(Button, { autoFocus: true, color: "secondary", startIcon: isCreateSubmitLoading && React__default.createElement(CircularProgress, { size: "1rem" }), onClick: handleRemoveAsset }, "Delete"))),
5241
5390
  React__default.createElement(ErrorModal, { error: errorRemoveAsset, onHide: function () { return setErrorRemoveAsset(""); } }),
5242
5391
  React__default.createElement(Snackbar, { open: assetRemovedSuccess, autoHideDuration: 2500, onClose: handleClose },
5243
- 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"))));
5244
5393
  };
5245
5394
 
5246
5395
  var useStyles$i = makeStyles(function (theme) { return ({
@@ -5862,7 +6011,7 @@ var AssetViewComponent = function () {
5862
6011
  }
5863
6012
  } }))),
5864
6013
  React__default.createElement(Snackbar, { open: updatedSuccessfullyMessage, autoHideDuration: 2500, onClose: handleClose },
5865
- 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"))),
5866
6015
  showContextMenu && !isDoubleClick ? (React__default.createElement("ul", { className: classes.contextMenu, style: { top: y, left: x, padding: "6px 0" } },
5867
6016
  React__default.createElement(MenuItem, { className: classes.menuItem, onClick: function () { return setShowViewerAssetDialog(true); } },
5868
6017
  React__default.createElement(Grid, { container: true, style: { alignItems: "center" } },
@@ -6158,7 +6307,7 @@ var AuthTypeSelector = function (_a) {
6158
6307
  setIsLoading(true);
6159
6308
  getAuthTypes().then(function (resp) {
6160
6309
  if (resp.ok) {
6161
- setAuthTypes(get$1(resp, "data.tables[0].rows", []));
6310
+ setAuthTypes(get(resp, "data.tables[0].rows", []));
6162
6311
  setIsLoading(false);
6163
6312
  }
6164
6313
  else {
@@ -6224,7 +6373,7 @@ var ProfilesPicker = function (_a) {
6224
6373
  getProfiles()
6225
6374
  .then(function (res) {
6226
6375
  if (res.ok) {
6227
- var profilesData = get$1(res, "data.tables[0].rows", null);
6376
+ var profilesData = get(res, "data.tables[0].rows", null);
6228
6377
  if (profilesData) {
6229
6378
  if (canceled)
6230
6379
  return;
@@ -7269,12 +7418,12 @@ axiosInstance.interceptors.response.use(function (res) { return res; }, function
7269
7418
  }); });
7270
7419
 
7271
7420
  var getError = function (error) {
7272
- var arrayOfErrors = values(get$1(error, "response.data.errors", null));
7421
+ var arrayOfErrors = values(get(error, "response.data.errors", null));
7273
7422
  var allErrors = "";
7274
7423
  if (arrayOfErrors.length) {
7275
7424
  allErrors = concatErrorMessagges(arrayOfErrors, allErrors);
7276
7425
  }
7277
- 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))));
7278
7427
  };
7279
7428
  var concatErrorMessagges = function (arrayOfErrors, string) {
7280
7429
  arrayOfErrors.forEach(function (element, index) {
@@ -7517,7 +7666,7 @@ var MESApiService = /** @class */ (function () {
7517
7666
  data.dataBaseName = database;
7518
7667
  data.parameters = formattedParameters;
7519
7668
  Date.prototype.toJSON = function () {
7520
- return moment$4(this).format("YYYY-MM-DDTHH:mm:ss");
7669
+ return moment$7(this).format("YYYY-MM-DDTHH:mm:ss");
7521
7670
  }; // eslint-disable-line
7522
7671
  isError = { ok: true };
7523
7672
  return [2 /*return*/, fetch(this.config.API_PROCEDURE_URL + "/Execute", {
@@ -7576,7 +7725,7 @@ var MESApiService = /** @class */ (function () {
7576
7725
  data.dataBaseName = database;
7577
7726
  data.parameters = formattedParameters;
7578
7727
  Date.prototype.toJSON = function () {
7579
- return moment$4(this).format("YYYY-MM-DDTHH:mm:ss");
7728
+ return moment$7(this).format("YYYY-MM-DDTHH:mm:ss");
7580
7729
  }; // eslint-disable-line
7581
7730
  curatedMethod = procedure.replace(/[\[\]]/g, "");
7582
7731
  _a.label = 1;
@@ -7630,7 +7779,7 @@ var MESApiService = /** @class */ (function () {
7630
7779
  data.dataBaseName = database;
7631
7780
  data.parameters = formattedParameters;
7632
7781
  Date.prototype.toJSON = function () {
7633
- return moment$4(this).format("YYYY-MM-DDTHH:mm:ss");
7782
+ return moment$7(this).format("YYYY-MM-DDTHH:mm:ss");
7634
7783
  }; // eslint-disable-line
7635
7784
  isError = { ok: true };
7636
7785
  return [2 /*return*/, fetch(this.config.API_PROCEDURE_URL + "/ExecuteJSON", {
@@ -7685,7 +7834,7 @@ var MESApiService = /** @class */ (function () {
7685
7834
  formattedParameters.push(formattedParameter);
7686
7835
  });
7687
7836
  Date.prototype.toJSON = function () {
7688
- return moment$4(this).format("YYYY-MM-DDTHH:mm:ss");
7837
+ return moment$7(this).format("YYYY-MM-DDTHH:mm:ss");
7689
7838
  }; // eslint-disable-line
7690
7839
  isError = { ok: true };
7691
7840
  files.forEach(function (element) {
@@ -7750,7 +7899,7 @@ var MESApiService = /** @class */ (function () {
7750
7899
  data.parameters = formattedParameters;
7751
7900
  data.fileName = fileName || "Default.xlsx";
7752
7901
  Date.prototype.toJSON = function () {
7753
- return moment$4(this).format("YYYY-MM-DDTHH:mm:ss");
7902
+ return moment$7(this).format("YYYY-MM-DDTHH:mm:ss");
7754
7903
  }; // eslint-disable-line
7755
7904
  isError = { ok: true };
7756
7905
  return [2 /*return*/, fetch(this.config.API_PROCEDURE_URL + "/Export", {
@@ -7826,7 +7975,7 @@ var MESApiService = /** @class */ (function () {
7826
7975
  data.parameters = formattedParameters;
7827
7976
  data.fileName = fileName || "Default.xlsx";
7828
7977
  Date.prototype.toJSON = function () {
7829
- return moment$4(this).format("YYYY-MM-DDTHH:mm:ss");
7978
+ return moment$7(this).format("YYYY-MM-DDTHH:mm:ss");
7830
7979
  }; // eslint-disable-line
7831
7980
  isError = { ok: true };
7832
7981
  return [2 /*return*/, fetch(this.config.API_PROCEDURE_URL + "/ExportExcel", {
@@ -7895,70 +8044,6 @@ var MESApiService = /** @class */ (function () {
7895
8044
  return MESApiService;
7896
8045
  }());
7897
8046
 
7898
- var TimeService = /** @class */ (function () {
7899
- function TimeService() {
7900
- this.timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
7901
- }
7902
- TimeService.getInstance = function () {
7903
- if (!TimeService.instance) {
7904
- TimeService.instance = new TimeService();
7905
- }
7906
- return TimeService.instance;
7907
- };
7908
- TimeService.prototype.setTimeZone = function (timeZone) {
7909
- var ianaTimeZones = findIana(timeZone);
7910
- if (ianaTimeZones.length) {
7911
- this.timeZone = ianaTimeZones[0];
7912
- }
7913
- else {
7914
- this.timeZone = timeZone;
7915
- }
7916
- moment$5.tz.setDefault(this.timeZone);
7917
- };
7918
- TimeService.prototype.toUTC = function (datetime, format$1) {
7919
- try {
7920
- if (datetime instanceof Date) {
7921
- return format(datetime, format$1);
7922
- }
7923
- return format(fromZonedTime(datetime, TimeService.instance.timeZone), format$1);
7924
- }
7925
- catch (e) {
7926
- console.log({ datetime: datetime, e: e });
7927
- return "";
7928
- }
7929
- };
7930
- TimeService.prototype.toLocalServerTime = function (datetime, format) {
7931
- try {
7932
- if (isNil$1(datetime) || !datetime) {
7933
- return "";
7934
- }
7935
- if (typeof datetime === "string") {
7936
- if (datetime.includes("Z")) {
7937
- datetime = new Date(datetime);
7938
- }
7939
- else {
7940
- datetime = new Date("".concat(datetime, "Z"));
7941
- }
7942
- }
7943
- return formatInTimeZone(datetime, TimeService.instance.timeZone, format);
7944
- }
7945
- catch (e) {
7946
- console.log({ datetime: datetime, e: e });
7947
- return "";
7948
- }
7949
- };
7950
- TimeService.prototype.getServerTimeZone = function () {
7951
- return this.timeZone;
7952
- };
7953
- return TimeService;
7954
- }());
7955
- var getMomentTz = function () { return moment$5; };
7956
- var dxtServerTimeZone = function () {
7957
- return TimeService.getInstance().getServerTimeZone;
7958
- };
7959
- var dxtToUTC = TimeService.getInstance().toUTC;
7960
- var dxtToLocalServerTime = TimeService.getInstance().toLocalServerTime;
7961
-
7962
8047
  var getShiftByParameters = function (parameters) { return __awaiter(void 0, void 0, void 0, function () {
7963
8048
  var utcString, sqlParameters, apiService, resp, e_1;
7964
8049
  var _a;
@@ -7985,7 +8070,7 @@ var getShiftByParameters = function (parameters) { return __awaiter(void 0, void
7985
8070
  if (resp.ok) {
7986
8071
  return [2 /*return*/, {
7987
8072
  ok: true,
7988
- data: get$1(resp.data, "tables[0].rows[0]", {})
8073
+ data: get(resp.data, "tables[0].rows[0]", {})
7989
8074
  }];
7990
8075
  }
7991
8076
  else {
@@ -8012,7 +8097,7 @@ var useShiftNavigatorManager = function () {
8012
8097
  return __generator(this, function (_a) {
8013
8098
  switch (_a.label) {
8014
8099
  case 0:
8015
- if (isNil$1(shiftInfo)) {
8100
+ if (isNil(shiftInfo)) {
8016
8101
  return [2 /*return*/];
8017
8102
  }
8018
8103
  setIsShiftInfoLoading(true);
@@ -8464,7 +8549,7 @@ var ShiftPeriodNavigatorControl = function (_a) {
8464
8549
  case 2:
8465
8550
  res = _c.sent();
8466
8551
  if (res.ok) {
8467
- rowsSource = get$1(res, "data.tables[0].rows", []);
8552
+ rowsSource = get(res, "data.tables[0].rows", []);
8468
8553
  setShiftPeriodList(rowsSource);
8469
8554
  if (rowsSource.length >= 2) {
8470
8555
  onChange({
@@ -8952,7 +9037,7 @@ var Account = function () {
8952
9037
  case 1:
8953
9038
  resp = _j.sent();
8954
9039
  if (resp.ok) {
8955
- userData = get$1(resp, "data.tables[0].rows", null);
9040
+ userData = get(resp, "data.tables[0].rows", null);
8956
9041
  setUserName((_a = userData[0]) === null || _a === void 0 ? void 0 : _a.UserName);
8957
9042
  setUserLastName((_b = userData[0]) === null || _b === void 0 ? void 0 : _b.LastName);
8958
9043
  setUserFirstName((_c = userData[0]) === null || _c === void 0 ? void 0 : _c.FirstName);
@@ -9330,10 +9415,10 @@ function Login(_a) {
9330
9415
  var params = useRef(new URL(document.location).searchParams);
9331
9416
  var _b = useState(false), open = _b[0], setOpen = _b[1];
9332
9417
  var _c = useState(""), message = _c[0], setMessage = _c[1];
9333
- var useEmailAndPassword = get$1(authConfig, "useEmailAndPassword", true);
9334
- var useAzureAD = get$1(authConfig, "useAzureAD", false);
9335
- var useWindowsAuth = get$1(authConfig, "useWindowsAuth", false);
9336
- 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);
9337
9422
  var handleClose = function () {
9338
9423
  setOpen(false);
9339
9424
  params.current["delete"]("message");
@@ -9409,7 +9494,7 @@ var useSearchAssets = function (setError) {
9409
9494
  switch (_a.label) {
9410
9495
  case 0:
9411
9496
  if (!res.ok) return [3 /*break*/, 2];
9412
- rows = get$1(res, "data.tables[0].rows", []);
9497
+ rows = get(res, "data.tables[0].rows", []);
9413
9498
  return [4 /*yield*/, rows.filter(function (asset) { return asset.CanBeDefaultAsset; })];
9414
9499
  case 1:
9415
9500
  areas = _a.sent();
@@ -9482,7 +9567,7 @@ var useSearchUTLSettings = function (_a) {
9482
9567
  case 1:
9483
9568
  res = _a.sent();
9484
9569
  if (res.ok) {
9485
- settings = get$1(res, "data.tables[0].rows", []);
9570
+ settings = get(res, "data.tables[0].rows", []);
9486
9571
  initSettings(settings);
9487
9572
  }
9488
9573
  else {
@@ -10590,7 +10675,7 @@ var SettingsPage = function () {
10590
10675
  case 1:
10591
10676
  res = _a.sent();
10592
10677
  if (res.ok) {
10593
- settings = get$1(res, "data.tables[0].rows", []);
10678
+ settings = get(res, "data.tables[0].rows", []);
10594
10679
  actions.setSettings(settings);
10595
10680
  }
10596
10681
  else {
@@ -10740,7 +10825,7 @@ const FORMATS = {
10740
10825
  year: 'YYYY'
10741
10826
  };
10742
10827
 
10743
- _adapters._date.override(typeof moment$4 === 'function' ? {
10828
+ _adapters._date.override(typeof moment$7 === 'function' ? {
10744
10829
  _id: 'moment', // DEBUG ONLY
10745
10830
 
10746
10831
  formats: function() {
@@ -10749,27 +10834,27 @@ _adapters._date.override(typeof moment$4 === 'function' ? {
10749
10834
 
10750
10835
  parse: function(value, format) {
10751
10836
  if (typeof value === 'string' && typeof format === 'string') {
10752
- value = moment$4(value, format);
10753
- } else if (!(value instanceof moment$4)) {
10754
- value = moment$4(value);
10837
+ value = moment$7(value, format);
10838
+ } else if (!(value instanceof moment$7)) {
10839
+ value = moment$7(value);
10755
10840
  }
10756
10841
  return value.isValid() ? value.valueOf() : null;
10757
10842
  },
10758
10843
 
10759
10844
  format: function(time, format) {
10760
- return moment$4(time).format(format);
10845
+ return moment$7(time).format(format);
10761
10846
  },
10762
10847
 
10763
10848
  add: function(time, amount, unit) {
10764
- return moment$4(time).add(amount, unit).valueOf();
10849
+ return moment$7(time).add(amount, unit).valueOf();
10765
10850
  },
10766
10851
 
10767
10852
  diff: function(max, min, unit) {
10768
- return moment$4(max).diff(moment$4(min), unit);
10853
+ return moment$7(max).diff(moment$7(min), unit);
10769
10854
  },
10770
10855
 
10771
10856
  startOf: function(time, unit, weekday) {
10772
- time = moment$4(time);
10857
+ time = moment$7(time);
10773
10858
  if (unit === 'isoWeek') {
10774
10859
  weekday = Math.trunc(Math.min(Math.max(0, weekday), 6));
10775
10860
  return time.isoWeekday(weekday).startOf('day').valueOf();
@@ -10778,7 +10863,7 @@ _adapters._date.override(typeof moment$4 === 'function' ? {
10778
10863
  },
10779
10864
 
10780
10865
  endOf: function(time, unit) {
10781
- return moment$4(time).endOf(unit).valueOf();
10866
+ return moment$7(time).endOf(unit).valueOf();
10782
10867
  }
10783
10868
  } : {});
10784
10869
 
@@ -10872,7 +10957,7 @@ var ColorPicker = function (_a) {
10872
10957
  };
10873
10958
 
10874
10959
  var TrendingsInitialState = {
10875
- timeScopeStart: moment$4(new Date()).subtract(1, "days").toDate(),
10960
+ timeScopeStart: moment$7(new Date()).subtract(1, "days").toDate(),
10876
10961
  timeScopeEnd: new Date(),
10877
10962
  scope: "1 day",
10878
10963
  graphPan: false,
@@ -10899,45 +10984,45 @@ var TrendingsReducer = createSlice({
10899
10984
  var payload = _a.payload; _a.type;
10900
10985
  state.shouldRefetchSeries += 1;
10901
10986
  state.graphShouldUpdate += 1;
10902
- if (!isNil$1(payload.start) &&
10903
- !isNil$1(payload.end) &&
10904
- !isNil$1(payload.scope)) {
10987
+ if (!isNil(payload.start) &&
10988
+ !isNil(payload.end) &&
10989
+ !isNil(payload.scope)) {
10905
10990
  //from arrow navigators
10906
10991
  state.timeScopeStart = payload.start;
10907
10992
  state.timeScopeEnd = payload.end;
10908
10993
  state.scope = payload.scope;
10909
10994
  return;
10910
10995
  }
10911
- if (!isNil$1(payload.scope)) {
10996
+ if (!isNil(payload.scope)) {
10912
10997
  if (payload.scope !== "custom") {
10913
10998
  switch (payload.scope) {
10914
10999
  case "10 min":
10915
- state.timeScopeStart = moment$4(state.timeScopeEnd)
11000
+ state.timeScopeStart = moment$7(state.timeScopeEnd)
10916
11001
  .subtract(10, "minutes")
10917
11002
  .toDate();
10918
11003
  break;
10919
11004
  case "1 hour":
10920
- state.timeScopeStart = moment$4(state.timeScopeEnd)
11005
+ state.timeScopeStart = moment$7(state.timeScopeEnd)
10921
11006
  .subtract(1, "hours")
10922
11007
  .toDate();
10923
11008
  break;
10924
11009
  case "4 hours":
10925
- state.timeScopeStart = moment$4(state.timeScopeEnd)
11010
+ state.timeScopeStart = moment$7(state.timeScopeEnd)
10926
11011
  .subtract(4, "hours")
10927
11012
  .toDate();
10928
11013
  break;
10929
11014
  case "12 hours":
10930
- state.timeScopeStart = moment$4(state.timeScopeEnd)
11015
+ state.timeScopeStart = moment$7(state.timeScopeEnd)
10931
11016
  .subtract(12, "hours")
10932
11017
  .toDate();
10933
11018
  break;
10934
11019
  case "1 day":
10935
- state.timeScopeStart = moment$4(state.timeScopeEnd)
11020
+ state.timeScopeStart = moment$7(state.timeScopeEnd)
10936
11021
  .subtract(1, "days")
10937
11022
  .toDate();
10938
11023
  break;
10939
11024
  case "10 days":
10940
- state.timeScopeStart = moment$4(state.timeScopeEnd)
11025
+ state.timeScopeStart = moment$7(state.timeScopeEnd)
10941
11026
  .subtract(10, "days")
10942
11027
  .toDate();
10943
11028
  break;
@@ -10946,54 +11031,54 @@ var TrendingsReducer = createSlice({
10946
11031
  state.scope = payload.scope;
10947
11032
  return;
10948
11033
  }
10949
- if (!isNil$1(payload.start) &&
10950
- !isNil$1(payload.end) &&
10951
- isNil$1(payload.graphPan)) {
11034
+ if (!isNil(payload.start) &&
11035
+ !isNil(payload.end) &&
11036
+ isNil(payload.graphPan)) {
10952
11037
  // from zoom
10953
11038
  state.timeScopeStart = payload.start;
10954
11039
  state.timeScopeEnd = payload.end;
10955
11040
  state.scope = "custom";
10956
11041
  return;
10957
11042
  }
10958
- if (!isNil$1(payload.start) &&
10959
- !isNil$1(payload.end) &&
10960
- !isNil$1(payload.graphPan)) {
11043
+ if (!isNil(payload.start) &&
11044
+ !isNil(payload.end) &&
11045
+ !isNil(payload.graphPan)) {
10961
11046
  // from pan
10962
11047
  state.timeScopeStart = payload.start;
10963
11048
  state.timeScopeEnd = payload.end;
10964
11049
  return;
10965
11050
  }
10966
- if (!isNil$1(payload.start)) {
11051
+ if (!isNil(payload.start)) {
10967
11052
  state.timeScopeStart = payload.start;
10968
11053
  if (state.scope !== "custom") {
10969
11054
  switch (state.scope) {
10970
11055
  case "10 min":
10971
- state.timeScopeEnd = moment$4(payload.start)
11056
+ state.timeScopeEnd = moment$7(payload.start)
10972
11057
  .add(10, "minutes")
10973
11058
  .toDate();
10974
11059
  break;
10975
11060
  case "1 hour":
10976
- state.timeScopeEnd = moment$4(payload.start)
11061
+ state.timeScopeEnd = moment$7(payload.start)
10977
11062
  .add(1, "hours")
10978
11063
  .toDate();
10979
11064
  break;
10980
11065
  case "4 hours":
10981
- state.timeScopeEnd = moment$4(payload.start)
11066
+ state.timeScopeEnd = moment$7(payload.start)
10982
11067
  .add(4, "hours")
10983
11068
  .toDate();
10984
11069
  break;
10985
11070
  case "12 hours":
10986
- state.timeScopeEnd = moment$4(payload.start)
11071
+ state.timeScopeEnd = moment$7(payload.start)
10987
11072
  .add(12, "hours")
10988
11073
  .toDate();
10989
11074
  break;
10990
11075
  case "1 day":
10991
- state.timeScopeEnd = moment$4(payload.start)
11076
+ state.timeScopeEnd = moment$7(payload.start)
10992
11077
  .add(1, "days")
10993
11078
  .toDate();
10994
11079
  break;
10995
11080
  case "10 days":
10996
- state.timeScopeEnd = moment$4(payload.start)
11081
+ state.timeScopeEnd = moment$7(payload.start)
10997
11082
  .add(10, "days")
10998
11083
  .toDate();
10999
11084
  break;
@@ -11001,37 +11086,37 @@ var TrendingsReducer = createSlice({
11001
11086
  }
11002
11087
  return;
11003
11088
  }
11004
- if (!isNil$1(payload.end)) {
11089
+ if (!isNil(payload.end)) {
11005
11090
  state.timeScopeEnd = payload.end;
11006
11091
  if (state.scope !== "custom") {
11007
11092
  switch (state.scope) {
11008
11093
  case "10 min":
11009
- state.timeScopeStart = moment$4(payload.end)
11094
+ state.timeScopeStart = moment$7(payload.end)
11010
11095
  .subtract(10, "minutes")
11011
11096
  .toDate();
11012
11097
  break;
11013
11098
  case "1 hour":
11014
- state.timeScopeStart = moment$4(payload.end)
11099
+ state.timeScopeStart = moment$7(payload.end)
11015
11100
  .subtract(1, "hours")
11016
11101
  .toDate();
11017
11102
  break;
11018
11103
  case "4 hours":
11019
- state.timeScopeStart = moment$4(payload.end)
11104
+ state.timeScopeStart = moment$7(payload.end)
11020
11105
  .subtract(4, "hours")
11021
11106
  .toDate();
11022
11107
  break;
11023
11108
  case "12 hours":
11024
- state.timeScopeStart = moment$4(payload.end)
11109
+ state.timeScopeStart = moment$7(payload.end)
11025
11110
  .subtract(12, "hours")
11026
11111
  .toDate();
11027
11112
  break;
11028
11113
  case "1 day":
11029
- state.timeScopeStart = moment$4(payload.end)
11114
+ state.timeScopeStart = moment$7(payload.end)
11030
11115
  .subtract(1, "days")
11031
11116
  .toDate();
11032
11117
  break;
11033
11118
  case "10 days":
11034
- state.timeScopeStart = moment$4(payload.end)
11119
+ state.timeScopeStart = moment$7(payload.end)
11035
11120
  .subtract(10, "days")
11036
11121
  .toDate();
11037
11122
  break;
@@ -11404,7 +11489,7 @@ var DeleteViewModal = function (_a) {
11404
11489
  switch (_a.label) {
11405
11490
  case 0:
11406
11491
  setIsLoading(true);
11407
- if (!!isNil$1(view)) return [3 /*break*/, 2];
11492
+ if (!!isNil(view)) return [3 /*break*/, 2];
11408
11493
  return [4 /*yield*/, deleteView(view.ViewId)];
11409
11494
  case 1:
11410
11495
  resp = _a.sent();
@@ -11424,7 +11509,7 @@ var DeleteViewModal = function (_a) {
11424
11509
  return (React__default.createElement(React__default.Fragment, null,
11425
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" },
11426
11511
  React__default.createElement(Divider, null),
11427
- 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" } },
11428
11513
  React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { padding: "10px", width: "100%" } },
11429
11514
  React__default.createElement(Typography$1, null,
11430
11515
  "Are yu sure you want to delete",
@@ -11440,7 +11525,7 @@ var DeleteViewModal = function (_a) {
11440
11525
  } },
11441
11526
  React__default.createElement(Grid, { item: true },
11442
11527
  React__default.createElement(Button, { variant: "outlined", color: "secondary", onClick: function () { return handleClose(false); } }, "Cancel")),
11443
- 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")))))),
11444
11529
  React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
11445
11530
  };
11446
11531
 
@@ -11457,7 +11542,7 @@ var EditViewModal = function (_a) {
11457
11542
  switch (_a.label) {
11458
11543
  case 0:
11459
11544
  setIsLoading(true);
11460
- if (!!isNil$1(view)) return [3 /*break*/, 2];
11545
+ if (!!isNil(view)) return [3 /*break*/, 2];
11461
11546
  return [4 /*yield*/, upsertView(view.ViewId, newName, isPublic)];
11462
11547
  case 1:
11463
11548
  resp = _a.sent();
@@ -11489,7 +11574,7 @@ var EditViewModal = function (_a) {
11489
11574
  return (React__default.createElement(React__default.Fragment, null,
11490
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" },
11491
11576
  React__default.createElement(Divider, null),
11492
- 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" } },
11493
11578
  React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { padding: "10px", width: "100%" } },
11494
11579
  React__default.createElement(TextField, { required: true, className: classes.inputCustom, id: "viewName", label: "Name", variant: "outlined", onChange: handleChangeInput, value: newName })),
11495
11580
  React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { paddingTop: "2rem" }, className: classes.isPublicCheckbox },
@@ -11505,7 +11590,7 @@ var EditViewModal = function (_a) {
11505
11590
  } },
11506
11591
  React__default.createElement(Grid, { item: true },
11507
11592
  React__default.createElement(Button, { variant: "outlined", color: "secondary", onClick: function () { return handleClose(false); } }, "Cancel")),
11508
- 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")))))),
11509
11594
  React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
11510
11595
  };
11511
11596
 
@@ -11532,7 +11617,7 @@ var LoadViewModal = function (_a) {
11532
11617
  viewTagsResp = _a.sent();
11533
11618
  if (viewTagsResp.ok) {
11534
11619
  setViewTagsAndRefetch(viewTagsResp.data.tables[0].rows.reduce(function (carr, curr, idx) {
11535
- if (isNil$1(curr.Color)) {
11620
+ if (isNil(curr.Color)) {
11536
11621
  curr.Color = getRandomColor();
11537
11622
  }
11538
11623
  carr[curr.TagId] = {
@@ -12496,7 +12581,7 @@ var TableComponent = function (_a) {
12496
12581
  };
12497
12582
  var handleDelete = function () { return __awaiter(void 0, void 0, void 0, function () {
12498
12583
  return __generator(this, function (_a) {
12499
- if (!isNil$1(viewTagForDelete)) {
12584
+ if (!isNil(viewTagForDelete)) {
12500
12585
  if (viewSelected === null || viewSelected === void 0 ? void 0 : viewSelected.ViewId) {
12501
12586
  handleDeleteTag(viewTagForDelete.TagId);
12502
12587
  }
@@ -12835,7 +12920,7 @@ var TableComponent = function (_a) {
12835
12920
  } })),
12836
12921
  React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } }),
12837
12922
  React__default.createElement(Snackbar, { open: !!snackbarMessage, autoHideDuration: 800, onClose: handleCloseSnackbar },
12838
- React__default.createElement(Alert$3, { onClose: handleCloseSnackbar, severity: "success" }, snackbarMessage))));
12923
+ React__default.createElement(Alert$2, { onClose: handleCloseSnackbar, severity: "success" }, snackbarMessage))));
12839
12924
  };
12840
12925
 
12841
12926
  var formatDateTimeToString = function (date) {
@@ -12990,21 +13075,21 @@ var dateNavigator = function (startDate, endDate, scope, operator, current) {
12990
13075
  }
12991
13076
  else {
12992
13077
  var _a = scope.split(" "), quantity = _a[0], duration = _a[1];
12993
- newStartDate = moment$4(newEndDate)
13078
+ newStartDate = moment$7(newEndDate)
12994
13079
  .subtract(quantity, duration[0])
12995
13080
  .toDate();
12996
13081
  }
12997
13082
  }
12998
13083
  else {
12999
13084
  if (scope === "custom") {
13000
- var durationInMs = moment$4(endDate).diff(moment$4(startDate));
13001
- 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();
13002
13087
  }
13003
13088
  else {
13004
13089
  var _b = scope.split(" "), quantity = _b[0], duration = _b[1];
13005
- newStartDate = moment$4(startDate)[operator](quantity, duration[0])
13090
+ newStartDate = moment$7(startDate)[operator](quantity, duration[0])
13006
13091
  .toDate();
13007
- newEndDate = moment$4(endDate)[operator](quantity, duration[0])
13092
+ newEndDate = moment$7(endDate)[operator](quantity, duration[0])
13008
13093
  .toDate();
13009
13094
  }
13010
13095
  }
@@ -13033,7 +13118,7 @@ var Header = function (_a) {
13033
13118
  var handleDateChange = function (newValue, key) {
13034
13119
  var _a;
13035
13120
  //@ts-ignore
13036
- actions.setTotalScope((_a = {}, _a[key] = moment$4(newValue).toDate(), _a));
13121
+ actions.setTotalScope((_a = {}, _a[key] = moment$7(newValue).toDate(), _a));
13037
13122
  };
13038
13123
  var handleChangeScope = function (e) {
13039
13124
  var newScope = e.target.value;
@@ -13069,7 +13154,7 @@ var Header = function (_a) {
13069
13154
  React__default.createElement(IconButton$1, { color: "primary", onClick: function () { return handleDateNavigator("subtract"); }, className: classes.navigatorButton },
13070
13155
  React__default.createElement(ChevronLeft, { fontSize: "large" }))),
13071
13156
  React__default.createElement(Grid, { item: true },
13072
- 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: {
13073
13158
  shrink: true,
13074
13159
  style: { marginLeft: "10px" }
13075
13160
  }, InputProps: {
@@ -13086,7 +13171,7 @@ var Header = function (_a) {
13086
13171
  React__default.createElement(MenuItem, { value: "10 days" }, "10 days"),
13087
13172
  React__default.createElement(MenuItem, { value: "custom" }, "Custom")))),
13088
13173
  React__default.createElement(Grid, { item: true },
13089
- 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: {
13090
13175
  shrink: true,
13091
13176
  style: { marginLeft: "10px" }
13092
13177
  } })),
@@ -13266,10 +13351,10 @@ var useYAxisPlugin = function () {
13266
13351
  };
13267
13352
 
13268
13353
  var areRangesSimilar = function (tag1, tag2) {
13269
- if (isNil$1(tag1.MaxScale) ||
13270
- isNil$1(tag1.MinScale) ||
13271
- isNil$1(tag2.MaxScale) ||
13272
- isNil$1(tag2.MinScale))
13354
+ if (isNil(tag1.MaxScale) ||
13355
+ isNil(tag1.MinScale) ||
13356
+ isNil(tag2.MaxScale) ||
13357
+ isNil(tag2.MinScale))
13273
13358
  return;
13274
13359
  var range1 = tag1.MaxScale - tag1.MinScale; // Rango de la primera etiqueta
13275
13360
  var range2 = tag2.MaxScale - tag2.MinScale; // Rango de la segunda etiqueta
@@ -13584,7 +13669,7 @@ var TrendingsPage = function (props) {
13584
13669
  viewTagsResp = _a.sent();
13585
13670
  if (viewTagsResp.ok) {
13586
13671
  viewTags = viewTagsResp.data.tables[0].rows.reduce(function (carr, curr, idx) {
13587
- if (isNil$1(curr.Color)) {
13672
+ if (isNil(curr.Color)) {
13588
13673
  curr.Color = getRandomColor();
13589
13674
  }
13590
13675
  carr[curr.TagId] = {
@@ -13687,12 +13772,12 @@ var css = "body {\n\tmargin: 0;\n\tfont-family: -apple-system, BlinkMacSystemFon
13687
13772
  n(css,{});
13688
13773
 
13689
13774
  var timezone = TimeService.getInstance().getServerTimeZone();
13690
- moment$5.tz.setDefault(timezone);
13775
+ moment$6.tz.setDefault(timezone);
13691
13776
  var base = document.getElementsByTagName("base")[0].getAttribute("href") || "/";
13692
13777
  function MESFMain(_a) {
13693
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;
13694
13779
  return (React__default.createElement(AuthProvider, { authConfig: authentication },
13695
- React__default.createElement(LocalizationProvider, { dateAdapter: AdapterMoment, dateLibInstance: moment$5 },
13780
+ React__default.createElement(LocalizationProvider, { dateAdapter: AdapterMoment, dateLibInstance: moment$6 },
13696
13781
  React__default.createElement(UserProvider, null,
13697
13782
  React__default.createElement(AssetProvider, null,
13698
13783
  React__default.createElement(UTLSettingsProvider, null,
@@ -13743,7 +13828,7 @@ var useDefaultAreaId = function (setError) {
13743
13828
  if (userId) {
13744
13829
  getUser(userId, null).then(function (res) {
13745
13830
  if (res.ok) {
13746
- var userDefaultAreaId = get$1(res, "data.tables[0].rows[0].DefaultAssetId", null);
13831
+ var userDefaultAreaId = get(res, "data.tables[0].rows[0].DefaultAssetId", null);
13747
13832
  if (userDefaultAreaId) {
13748
13833
  setDefaultAreaId(userDefaultAreaId);
13749
13834
  }