@dexteel/mesf-core 5.13.1 → 5.14.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
@@ -10,16 +10,18 @@ import CloseIcon from '@material-ui/icons/Close';
10
10
  import Alert$3 from '@material-ui/lab/Alert';
11
11
  import { ArrowBackRounded, ArrowForwardRounded, SkipNext, ChevronLeft, ChevronRight, ArrowRight, Send, Menu as Menu$1, People, Storage, Group, Assignment, Chat, Timeline, ViewList, Build, Settings as Settings$2 } from '@material-ui/icons';
12
12
  import { DatePicker } from '@mui/x-date-pickers/DatePicker';
13
- import moment$2 from 'moment-timezone';
13
+ import moment$1 from 'moment-timezone';
14
14
  import { useParams, useNavigate, useSearchParams, Link, Navigate, Routes, Route, useLocation, BrowserRouter } from 'react-router-dom';
15
+ import { Alert as Alert$2, AlertTitle, Autocomplete } from '@material-ui/lab';
15
16
  import AccountCircleIcon from '@material-ui/icons/AccountCircle';
16
17
  import { Helmet, HelmetProvider } from 'react-helmet-async';
18
+ import { useQuery, QueryClient, QueryClientProvider } from '@tanstack/react-query';
17
19
  import { themeMaterial } from 'ag-grid-community';
18
20
  import { AgGridReact } from 'ag-grid-react';
19
21
  import MomentUtils from '@date-io/moment';
20
22
  import { MuiPickersUtilsProvider, KeyboardDatePicker, KeyboardTimePicker } from '@material-ui/pickers';
21
- import moment$3 from 'moment';
22
- import { isNil as isNil$1, get as get$1 } from 'lodash';
23
+ import moment$2 from 'moment';
24
+ import { get as get$1, isNil as isNil$1 } from 'lodash';
23
25
  import EditIcon from '@material-ui/icons/Edit';
24
26
  import PlaylistAddIcon from '@material-ui/icons/PlaylistAdd';
25
27
  import { DndProvider } from 'react-dnd';
@@ -34,7 +36,6 @@ import { AdapterMoment } from '@mui/x-date-pickers/AdapterMoment';
34
36
  import MenuIcon from '@material-ui/icons/Menu';
35
37
  import Settings$1 from '@material-ui/icons/Settings';
36
38
  import ShowChartIcon from '@material-ui/icons/ShowChart';
37
- import { Alert as Alert$2, Autocomplete } from '@material-ui/lab';
38
39
  import SearchIcon from '@material-ui/icons/Search';
39
40
  import FormatListBulletedSharpIcon from '@material-ui/icons/FormatListBulletedSharp';
40
41
  import axios from 'axios';
@@ -1734,13 +1735,13 @@ var ShiftDayNavigatorControl = function (_a) {
1734
1735
  case 2:
1735
1736
  resp = _a.sent();
1736
1737
  if (resp.ok) {
1737
- shift = __assign(__assign({}, resp.data), { CurrentProductionDate: moment$2
1738
+ shift = __assign(__assign({}, resp.data), { CurrentProductionDate: moment$1
1738
1739
  .utc(resp.data.CurrentProductionDate)
1739
- .toDate(), CurrentStart: moment$2.utc(resp.data.CurrentStart).toDate(), CurrentEnd: moment$2.utc(resp.data.CurrentEnd).toDate(), PreviousProductionDate: moment$2
1740
+ .toDate(), CurrentStart: moment$1.utc(resp.data.CurrentStart).toDate(), CurrentEnd: moment$1.utc(resp.data.CurrentEnd).toDate(), PreviousProductionDate: moment$1
1740
1741
  .utc(resp.data.PreviousProductionDate)
1741
- .toDate(), PreviousStart: moment$2.utc(resp.data.PreviousStart).toDate(), PreviousEnd: moment$2.utc(resp.data.PreviousEnd).toDate(), LastProductionDate: moment$2
1742
+ .toDate(), PreviousStart: moment$1.utc(resp.data.PreviousStart).toDate(), PreviousEnd: moment$1.utc(resp.data.PreviousEnd).toDate(), LastProductionDate: moment$1
1742
1743
  .utc(resp.data.LastProductionDate)
1743
- .toDate(), LastStart: moment$2.utc(resp.data.LastStart).toDate(), LastEnd: moment$2.utc(resp.data.LastEnd).toDate() });
1744
+ .toDate(), LastStart: moment$1.utc(resp.data.LastStart).toDate(), LastEnd: moment$1.utc(resp.data.LastEnd).toDate() });
1744
1745
  setShiftInfoCopy(shift);
1745
1746
  }
1746
1747
  return [3 /*break*/, 4];
@@ -1784,7 +1785,7 @@ var ShiftDayNavigatorControl = function (_a) {
1784
1785
  }, size: "small" },
1785
1786
  React__default.createElement(ArrowBackRounded, null)))),
1786
1787
  React__default.createElement(Grid, { item: true },
1787
- React__default.createElement(DatePicker, { label: "Current Date", timezone: "UTC", format: "MM/DD/YYYY", maxDate: moment$2(), closeOnSelect: true, formatDensity: "dense", value: moment$2(shiftInfo === null || shiftInfo === void 0 ? void 0 : shiftInfo.CurrentProductionDate), onChange: function (date) {
1788
+ React__default.createElement(DatePicker, { label: "Current Date", timezone: "UTC", format: "MM/DD/YYYY", maxDate: moment$1(), closeOnSelect: true, formatDensity: "dense", value: moment$1(shiftInfo === null || shiftInfo === void 0 ? void 0 : shiftInfo.CurrentProductionDate), onChange: function (date) {
1788
1789
  if (date) {
1789
1790
  getShiftDataFromAPI(date.toDate(), 0).then(function () { });
1790
1791
  }
@@ -1866,8 +1867,8 @@ var getShiftsRangeByParameters = function (period_1) {
1866
1867
  if (resp.ok) {
1867
1868
  data = resp.data;
1868
1869
  data.tables[0].rows.map(function (shift) {
1869
- shift.Start = moment$2.utc(shift["Start"]).toDate();
1870
- shift.End = moment$2.utc(shift["End"]).toDate();
1870
+ shift.Start = moment$1.utc(shift["Start"]).toDate();
1871
+ shift.End = moment$1.utc(shift["End"]).toDate();
1871
1872
  });
1872
1873
  return [2 /*return*/, {
1873
1874
  ok: true,
@@ -1952,13 +1953,13 @@ var ShiftPeriodNavigatorControl = function (_a) {
1952
1953
  case 1:
1953
1954
  _a.trys.push([1, 6, , 7]);
1954
1955
  if (!(direction === "prev" && (startShift === null || startShift === void 0 ? void 0 : startShift.Start))) return [3 /*break*/, 3];
1955
- return [4 /*yield*/, searchShiftsRangeByParameters(period, moment$2(startShift.Start).toDate(), null, false, "prev")];
1956
+ return [4 /*yield*/, searchShiftsRangeByParameters(period, moment$1(startShift.Start).toDate(), null, false, "prev")];
1956
1957
  case 2:
1957
1958
  _a.sent();
1958
1959
  return [3 /*break*/, 5];
1959
1960
  case 3:
1960
1961
  if (!(direction === "next" && (endShift === null || endShift === void 0 ? void 0 : endShift.End))) return [3 /*break*/, 5];
1961
- return [4 /*yield*/, searchShiftsRangeByParameters(period, null, moment$2(endShift.End).toDate(), false, "next")];
1962
+ return [4 /*yield*/, searchShiftsRangeByParameters(period, null, moment$1(endShift.End).toDate(), false, "next")];
1962
1963
  case 4:
1963
1964
  _a.sent();
1964
1965
  _a.label = 5;
@@ -2114,8 +2115,8 @@ var ShiftPeriodNavigatorControl = function (_a) {
2114
2115
  newPeriod = e.target.value;
2115
2116
  setPeriod(newPeriod);
2116
2117
  if (!(newPeriod === "Custom")) return [3 /*break*/, 2];
2117
- today = moment$2();
2118
- yesterday = moment$2().subtract(1, "day");
2118
+ today = moment$1();
2119
+ yesterday = moment$1().subtract(1, "day");
2119
2120
  setCustomStartDate(yesterday);
2120
2121
  setCustomEndDate(today);
2121
2122
  return [4 /*yield*/, searchShiftsRangeByParameters("Custom", yesterday.toDate(), today.toDate(), false)];
@@ -2125,7 +2126,7 @@ var ShiftPeriodNavigatorControl = function (_a) {
2125
2126
  case 2:
2126
2127
  setCustomStartDate(null);
2127
2128
  setCustomEndDate(null);
2128
- return [4 /*yield*/, searchShiftsRangeByParameters(newPeriod, null, (endShift === null || endShift === void 0 ? void 0 : endShift.Start) ? moment$2(endShift.Start).toDate() : null, false)];
2129
+ return [4 /*yield*/, searchShiftsRangeByParameters(newPeriod, null, (endShift === null || endShift === void 0 ? void 0 : endShift.Start) ? moment$1(endShift.Start).toDate() : null, false)];
2129
2130
  case 3:
2130
2131
  _a.sent();
2131
2132
  _a.label = 4;
@@ -2165,10 +2166,10 @@ var ShiftPeriodNavigatorControl = function (_a) {
2165
2166
  React__default.createElement(ChevronLeft, null))),
2166
2167
  React__default.createElement("div", { className: "".concat(classes.gridItem, " ").concat(classes.datePickerWrapper) },
2167
2168
  React__default.createElement(DatePicker$1, { label: "Start", format: dateFormat, value: isCustomMode
2168
- ? customStartDate || moment$2().subtract(1, "day")
2169
- : moment$2((startShift === null || startShift === void 0 ? void 0 : startShift.Start) || moment$2().subtract(1, "day")), onChange: function (value) {
2170
- return handleDateChange(value ? moment$2(value) : null, "start");
2171
- }, disabled: loadingShiftPeriodList, maxDate: isCustomMode ? moment$2() : undefined, enableAccessibleFieldDOMStructure: false, slots: {
2169
+ ? customStartDate || moment$1().subtract(1, "day")
2170
+ : moment$1((startShift === null || startShift === void 0 ? void 0 : startShift.Start) || moment$1().subtract(1, "day")), onChange: function (value) {
2171
+ return handleDateChange(value ? moment$1(value) : null, "start");
2172
+ }, disabled: loadingShiftPeriodList, maxDate: isCustomMode ? moment$1() : undefined, enableAccessibleFieldDOMStructure: false, slots: {
2172
2173
  textField: function (props) { return (React__default.createElement(TextField, __assign({}, props, { size: "small", variant: "outlined", fullWidth: true, style: { width: "100%" }, InputProps: __assign(__assign({}, props.InputProps), { style: { paddingTop: "2px" } }) }))); },
2173
2174
  openPickerIcon: function () { return (React__default.createElement("div", { style: {
2174
2175
  display: "flex",
@@ -2187,10 +2188,10 @@ var ShiftPeriodNavigatorControl = function (_a) {
2187
2188
  } }, periodOptions.map(function (option) { return (React__default.createElement(MenuItem, { key: option.value, value: option.value }, option.label)); })))),
2188
2189
  React__default.createElement("div", { className: "".concat(classes.gridItem, " ").concat(classes.datePickerWrapper) },
2189
2190
  React__default.createElement(DatePicker$1, { label: "End", format: dateFormat, value: isCustomMode
2190
- ? customEndDate || moment$2()
2191
- : moment$2((endShift === null || endShift === void 0 ? void 0 : endShift.End) || (endShift === null || endShift === void 0 ? void 0 : endShift.Start) || moment$2()), onChange: function (value) {
2192
- return handleDateChange(value ? moment$2(value) : null, "end");
2193
- }, disabled: loadingShiftPeriodList, minDate: isCustomMode && customStartDate ? customStartDate : undefined, maxDate: isCustomMode ? moment$2() : undefined, enableAccessibleFieldDOMStructure: false, slots: {
2191
+ ? customEndDate || moment$1()
2192
+ : moment$1((endShift === null || endShift === void 0 ? void 0 : endShift.End) || (endShift === null || endShift === void 0 ? void 0 : endShift.Start) || moment$1()), onChange: function (value) {
2193
+ return handleDateChange(value ? moment$1(value) : null, "end");
2194
+ }, disabled: loadingShiftPeriodList, minDate: isCustomMode && customStartDate ? customStartDate : undefined, maxDate: isCustomMode ? moment$1() : undefined, enableAccessibleFieldDOMStructure: false, slots: {
2194
2195
  textField: function (props) { return (React__default.createElement(TextField, __assign({}, props, { size: "small", variant: "outlined", fullWidth: true, style: { width: "100%" }, InputProps: __assign(__assign({}, props.InputProps), { style: { paddingTop: "2px" } }) }))); },
2195
2196
  openPickerIcon: function () { return (React__default.createElement("div", { style: {
2196
2197
  display: "flex",
@@ -2354,15 +2355,15 @@ var GetJobsStatus = function () { return __awaiter(void 0, void 0, void 0, funct
2354
2355
  if (resp.ok) {
2355
2356
  rows = get(resp, "data.tables[0].rows", []);
2356
2357
  rows = rows.map(function (job) { return (__assign(__assign({}, job), { LastStarted: job.LastStarted
2357
- ? moment$2.utc(job["LastStarted"]).toDate()
2358
+ ? moment$1.utc(job["LastStarted"]).toDate()
2358
2359
  : null, LastContact: job.LastContact
2359
- ? moment$2.utc(job["LastContact"]).toDate()
2360
+ ? moment$1.utc(job["LastContact"]).toDate()
2360
2361
  : null, LastCounter: job.LastCounter
2361
- ? moment$2.utc(job["LastCounter"]).toDate()
2362
- : null, StartTime: job.StartTime ? moment$2.utc(job["StartTime"]).toDate() : null, NextExecutionTime: job.NextExecutionTime
2363
- ? moment$2.utc(job["NextExecutionTime"]).toDate()
2362
+ ? moment$1.utc(job["LastCounter"]).toDate()
2363
+ : null, StartTime: job.StartTime ? moment$1.utc(job["StartTime"]).toDate() : null, NextExecutionTime: job.NextExecutionTime
2364
+ ? moment$1.utc(job["NextExecutionTime"]).toDate()
2364
2365
  : null, LastExecutionTime: job.LastExecutionTime
2365
- ? moment$2.utc(job["LastExecutionTime"]).toDate()
2366
+ ? moment$1.utc(job["LastExecutionTime"]).toDate()
2366
2367
  : null })); });
2367
2368
  return [2 /*return*/, {
2368
2369
  ok: true,
@@ -2592,7 +2593,7 @@ var JobDetails = function (_a) {
2592
2593
  React__default.createElement(Controller, { name: "StartTime", control: control, render: function (_a) {
2593
2594
  var field = _a.field, error = _a.fieldState.error;
2594
2595
  return (React__default.createElement(React__default.Fragment, null,
2595
- React__default.createElement(DateTimePicker, { label: "Start Time", value: field.value ? moment$2(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: {
2596
+ React__default.createElement(DateTimePicker, { label: "Start Time", value: field.value ? moment$1(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: {
2596
2597
  textField: {
2597
2598
  size: "small",
2598
2599
  margin: "none",
@@ -2609,7 +2610,7 @@ var JobDetails = function (_a) {
2609
2610
  React__default.createElement(Grid, { item: true, xs: 12, md: 6 },
2610
2611
  React__default.createElement(Controller, { name: "LastExecutionTime", control: control, render: function (_a) {
2611
2612
  var field = _a.field;
2612
- return (React__default.createElement(DateTimePicker, { label: "Last Execution Time", value: field.value ? moment$2(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: {
2613
+ return (React__default.createElement(DateTimePicker, { label: "Last Execution Time", value: field.value ? moment$1(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: {
2613
2614
  textField: {
2614
2615
  size: "small",
2615
2616
  margin: "none",
@@ -2619,7 +2620,7 @@ var JobDetails = function (_a) {
2619
2620
  React__default.createElement(Grid, { item: true, xs: 12, md: 6 },
2620
2621
  React__default.createElement(Controller, { name: "NextExecutionTime", control: control, render: function (_a) {
2621
2622
  var field = _a.field;
2622
- return (React__default.createElement(DateTimePicker, { label: "Next Execution Time", value: field.value ? moment$2(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: {
2623
+ return (React__default.createElement(DateTimePicker, { label: "Next Execution Time", value: field.value ? moment$1(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: {
2623
2624
  textField: {
2624
2625
  size: "small",
2625
2626
  margin: "none",
@@ -2802,7 +2803,7 @@ var useJobsTableData = function (_a) {
2802
2803
  headerName: "Next Execution",
2803
2804
  valueFormatter: function (_a) {
2804
2805
  var value = _a.value;
2805
- return value === null ? "" : moment$3(value).format("DD/MM/YYYY HH:mm");
2806
+ return value === null ? "" : moment$2(value).format("DD/MM/YYYY HH:mm");
2806
2807
  },
2807
2808
  flex: 1,
2808
2809
  cellStyle: {
@@ -3136,138 +3137,6 @@ var JobsPage = function (props) {
3136
3137
  React.createElement(Jobs, null)));
3137
3138
  };
3138
3139
 
3139
- var TimeService = /** @class */ (function () {
3140
- function TimeService() {
3141
- this.timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
3142
- }
3143
- TimeService.getInstance = function () {
3144
- if (!TimeService.instance) {
3145
- TimeService.instance = new TimeService();
3146
- }
3147
- return TimeService.instance;
3148
- };
3149
- TimeService.prototype.setTimeZone = function (timeZone) {
3150
- var ianaTimeZones = findIana(timeZone);
3151
- if (ianaTimeZones.length) {
3152
- this.timeZone = ianaTimeZones[0];
3153
- }
3154
- else {
3155
- this.timeZone = timeZone;
3156
- }
3157
- moment$2.tz.setDefault(this.timeZone);
3158
- };
3159
- TimeService.prototype.toUTC = function (datetime, format$1) {
3160
- try {
3161
- if (datetime instanceof Date) {
3162
- return format(datetime, format$1);
3163
- }
3164
- return format(fromZonedTime(datetime, TimeService.instance.timeZone), format$1);
3165
- }
3166
- catch (e) {
3167
- console.log({ datetime: datetime, e: e });
3168
- return "";
3169
- }
3170
- };
3171
- TimeService.prototype.toLocalServerTime = function (datetime, format) {
3172
- try {
3173
- if (isNil(datetime) || !datetime) {
3174
- return "";
3175
- }
3176
- if (typeof datetime === "string") {
3177
- if (datetime.includes("Z")) {
3178
- datetime = new Date(datetime);
3179
- }
3180
- else {
3181
- datetime = new Date("".concat(datetime, "Z"));
3182
- }
3183
- }
3184
- return formatInTimeZone(datetime, TimeService.instance.timeZone, format);
3185
- }
3186
- catch (e) {
3187
- console.log({ datetime: datetime, e: e });
3188
- return "";
3189
- }
3190
- };
3191
- TimeService.prototype.getServerTimeZone = function () {
3192
- return this.timeZone;
3193
- };
3194
- return TimeService;
3195
- }());
3196
- var getMomentTz = function () { return moment$2; };
3197
- var dxtServerTimeZone = function () {
3198
- return TimeService.getInstance().getServerTimeZone;
3199
- };
3200
- var dxtToUTC = TimeService.getInstance().toUTC;
3201
- var dxtToLocalServerTime = TimeService.getInstance().toLocalServerTime;
3202
-
3203
- var LogsInitialState = {
3204
- logs: [],
3205
- searchData: {
3206
- Start: moment$3().add(-5, "days").hour(0).minute(0).second(0).toDate(),
3207
- End: moment$3().hour(23).minute(59).second(59).toDate(),
3208
- Search: "",
3209
- LogTypeCode: "A",
3210
- },
3211
- Timezone: "UTC",
3212
- };
3213
- var LogsReducer = createSlice({
3214
- name: "__",
3215
- initialState: LogsInitialState,
3216
- reducers: {
3217
- setLogs: function (state, _a) {
3218
- var payload = _a.payload;
3219
- state.logs = payload;
3220
- },
3221
- setSearchData: function (state, _a) {
3222
- var payload = _a.payload;
3223
- state.searchData = payload;
3224
- },
3225
- setStartFilter: function (state, _a) {
3226
- var payload = _a.payload;
3227
- state.searchData.Start = payload;
3228
- },
3229
- setEndFilter: function (state, _a) {
3230
- var payload = _a.payload;
3231
- state.searchData.End = payload;
3232
- },
3233
- setSearchFilter: function (state, _a) {
3234
- var payload = _a.payload;
3235
- state.searchData.Search = payload;
3236
- },
3237
- setLogTypeCodeFilter: function (state, _a) {
3238
- var payload = _a.payload;
3239
- state.searchData.LogTypeCode = payload;
3240
- },
3241
- resetFilters: function (state, _a) {
3242
- _a.payload;
3243
- state.searchData = {
3244
- Start: moment$3().add(-5, "days").hour(0).minute(0).second(0).toDate(),
3245
- End: moment$3().hour(23).minute(59).second(59).toDate(),
3246
- Search: "",
3247
- LogTypeCode: "A",
3248
- };
3249
- },
3250
- setTimezone: function (state, _a) {
3251
- var payload = _a.payload;
3252
- state.Timezone = payload;
3253
- },
3254
- },
3255
- });
3256
-
3257
- var LogsContext = createContext({
3258
- state: LogsReducer.getInitialState(),
3259
- actions: LogsReducer.actions,
3260
- });
3261
- var useLogsContext = function () { return useContext(LogsContext); };
3262
- var LogsProvider = function (_a) {
3263
- var children = _a.children;
3264
- var _b = useComplexState({
3265
- initialState: LogsReducer.getInitialState(),
3266
- reducers: LogsReducer.caseReducers,
3267
- }), state = _b[0], actions = _b[1];
3268
- return (React__default.createElement(LogsContext.Provider, { value: { state: state, actions: actions } }, children));
3269
- };
3270
-
3271
3140
  var LOG_TYPE_CODES = {
3272
3141
  A: { id: "A", description: "All" },
3273
3142
  I: { id: "I", color: "#3f51b5", description: "Info" },
@@ -3294,7 +3163,7 @@ var DateFilter = function (_a) {
3294
3163
  }
3295
3164
  };
3296
3165
  return (React__default.createElement(MuiPickersUtilsProvider, { utils: MomentUtils },
3297
- React__default.createElement(KeyboardDatePicker, { disableToolbar: true, variant: "inline", format: "MM/DD/yyyy", id: "date-picker-inline", autoOk: true, minDate: minDate, maxDate: maxDate || moment$3().toDate(), style: {
3166
+ React__default.createElement(KeyboardDatePicker, { disableToolbar: true, variant: "inline", format: "MM/DD/yyyy", id: "date-picker-inline", autoOk: true, minDate: minDate, maxDate: maxDate || moment$2().toDate(), style: {
3298
3167
  minWidth: "100%",
3299
3168
  borderTopLeftRadius: 3,
3300
3169
  borderTopRightRadius: 3,
@@ -3378,29 +3247,10 @@ var ModalLogSelected = function (_a) {
3378
3247
  React__default.createElement(Button, { fullWidth: true, variant: "contained", color: "default", onClick: function () { return onHide(true); } }, "Close"))))))));
3379
3248
  };
3380
3249
 
3381
- var moment$1 = getMomentTz();
3382
3250
  var useLogTableData = function () {
3383
- var _a;
3384
- var state = useLogsContext().state;
3385
- var getLogTypeByCodeId = function (logTypeCodeId) {
3386
- return get$1(LOG_TYPE_CODES, "".concat(logTypeCodeId, ".description"), " -");
3387
- };
3388
3251
  var backgroundColor = function (logTypeCode) {
3389
3252
  return get$1(LOG_TYPE_CODES, "".concat(logTypeCode[0], ".color"), "#BBBBBB");
3390
3253
  };
3391
- var rows = (_a = state.logs) === null || _a === void 0 ? void 0 : _a.map(function (_a) {
3392
- var LogId = _a.LogId, Timestamp = _a.Timestamp, Source = _a.Source, Message = _a.Message, LogTypeCode = _a.LogTypeCode, User = _a.User;
3393
- return ({
3394
- id: LogId,
3395
- Timestamp: state.Timezone === "UTC"
3396
- ? moment$1(Timestamp).utc().format("YYYY-MM-DD HH:mm:ss z")
3397
- : dxtToLocalServerTime(Timestamp, "yyyy-MM-dd HH:mm:ss z"),
3398
- Source: Source,
3399
- Message: isNil$1(Message) ? "" : Message.replaceAll("Added", " Added"),
3400
- LogTypeCode: getLogTypeByCodeId(LogTypeCode),
3401
- User: User,
3402
- });
3403
- });
3404
3254
  var columnDefs = useState([
3405
3255
  {
3406
3256
  field: "Timestamp",
@@ -3480,7 +3330,18 @@ var useLogTableData = function () {
3480
3330
  headerClass: "ag-header-cell-centered",
3481
3331
  },
3482
3332
  ])[0];
3483
- return { rows: rows, columnDefs: columnDefs };
3333
+ return { columnDefs: columnDefs };
3334
+ };
3335
+
3336
+ var CenteredLazyLoading = function () {
3337
+ return (React__default.createElement("div", { style: {
3338
+ width: "100%",
3339
+ height: "100%",
3340
+ display: "flex",
3341
+ justifyContent: "center",
3342
+ alignItems: "center",
3343
+ } },
3344
+ React__default.createElement(LazyLoading, null)));
3484
3345
  };
3485
3346
 
3486
3347
  var useStyles$y = makeStyles(function (theme) { return ({
@@ -3549,19 +3410,44 @@ var useLogsOptionsFunctions = function (_a) {
3549
3410
  };
3550
3411
  };
3551
3412
 
3552
- var TableLogs = function (_a) {
3553
- var isLoading = _a.isLoading; _a.rowData; var refreshData = _a.refreshData;
3554
- var _b = useLogsContext(), _c = _b.state, Timezone = _c.Timezone, _d = _c.searchData, Start = _d.Start, End = _d.End, Search = _d.Search, LogTypeCode = _d.LogTypeCode, _e = _b.actions, setLogTypeCodeFilter = _e.setLogTypeCodeFilter, setEndFilter = _e.setEndFilter, setStartFilter = _e.setStartFilter, setSearchFilter = _e.setSearchFilter, setTimezone = _e.setTimezone;
3413
+ var getLogTypeByCodeId = function (logTypeCodeId) {
3414
+ return get(LOG_TYPE_CODES, "".concat(logTypeCodeId, ".description"), " -");
3415
+ };
3416
+ var TableLogs = function () {
3555
3417
  var classes = useStyles$y();
3556
- var gridStyle = useMemo(function () { return ({ height: "100%", width: "100%" }); }, []);
3557
- var _f = useState(null); _f[0]; var setGridAPI = _f[1];
3558
- var _g = useState(false), showLogModal = _g[0], setShowLogModal = _g[1];
3559
- var _h = useState(undefined), selectedLog = _h[0], setSelectedLog = _h[1];
3560
- var _j = useState(""), error = _j[0], setError = _j[1];
3418
+ var _a = useState(moment$2().add(-5, "days").hour(0).minute(0).second(0).toDate()), startDate = _a[0], setStartDate = _a[1];
3419
+ var _b = useState(moment$2().hour(23).minute(59).second(59).toDate()), endDate = _b[0], setEndDate = _b[1];
3420
+ var _c = useState("UTC"), timezone = _c[0], setTimezone = _c[1];
3421
+ var _d = useState(""), search = _d[0], setSearch = _d[1];
3422
+ var _e = useState("A"), logTypeCode = _e[0], setLogTypeCode = _e[1];
3423
+ var _f = useState(false), autoRefresh = _f[0], setAutoRefresh = _f[1];
3424
+ var _g = useState(null), gridAPI = _g[0], setGridAPI = _g[1];
3425
+ var _h = useState(""), error = _h[0], setError = _h[1];
3426
+ var _j = useState(false), showLogModal = _j[0], setShowLogModal = _j[1];
3427
+ var _k = useState(undefined), selectedLog = _k[0], setSelectedLog = _k[1];
3428
+ var _l = useLogs({
3429
+ startDate: startDate,
3430
+ endDate: endDate,
3431
+ logTypeCode: logTypeCode,
3432
+ autoRefresh: autoRefresh,
3433
+ }), rows = _l.data, isLoading = _l.isLoading, refetch = _l.refetch, isError = _l.isError, e = _l.error;
3561
3434
  var onGridReady = function (params) {
3562
3435
  setGridAPI(params.api);
3563
3436
  };
3564
- var _k = useLogTableData(), rows = _k.rows, columnDefs = _k.columnDefs;
3437
+ var formattedRows = rows === null || rows === void 0 ? void 0 : rows.map(function (_a) {
3438
+ var LogId = _a.LogId, Timestamp = _a.Timestamp, Source = _a.Source, Message = _a.Message, LogTypeCode = _a.LogTypeCode, User = _a.User;
3439
+ return ({
3440
+ id: LogId,
3441
+ Timestamp: timezone === "UTC"
3442
+ ? moment$2(Timestamp).utc().format("YYYY-MM-DD HH:mm:ss z")
3443
+ : dxtToLocalServerTime(Timestamp, "yyyy-MM-dd HH:mm:ss z"),
3444
+ Source: Source,
3445
+ Message: isNil(Message) ? "" : Message.replaceAll("Added", " Added"),
3446
+ LogTypeCode: getLogTypeByCodeId(LogTypeCode),
3447
+ User: User,
3448
+ });
3449
+ });
3450
+ var columnDefs = useLogTableData().columnDefs;
3565
3451
  var defaultColDef = useMemo(function () {
3566
3452
  return {
3567
3453
  sortable: true,
@@ -3570,58 +3456,24 @@ var TableLogs = function (_a) {
3570
3456
  wrapHeaderText: true,
3571
3457
  };
3572
3458
  }, []);
3573
- var _l = useContextMenuMESF(), showContextMenu = _l.showContextMenu, registerConfig = _l.registerConfig;
3574
- // Debounced search timer ref
3575
- var searchTimeoutRef = useRef(null);
3576
- // Store current values in ref to avoid closure issues
3577
- var currentValues = useRef({ Start: Start, End: End, Search: Search, LogTypeCode: LogTypeCode });
3578
- currentValues.current = { Start: Start, End: End, Search: Search, LogTypeCode: LogTypeCode };
3579
- // Auto search when Search filter changes (with debounce)
3580
- useEffect(function () {
3581
- if (searchTimeoutRef.current) {
3582
- clearTimeout(searchTimeoutRef.current);
3583
- }
3584
- searchTimeoutRef.current = setTimeout(function () {
3585
- var _a = currentValues.current, currentStart = _a.Start, currentEnd = _a.End, currentSearch = _a.Search, currentLogTypeCode = _a.LogTypeCode;
3586
- refreshData({
3587
- Start: currentStart,
3588
- End: currentEnd,
3589
- Search: currentSearch,
3590
- LogTypeCode: currentLogTypeCode,
3591
- });
3592
- }, 500);
3593
- return function () {
3594
- if (searchTimeoutRef.current) {
3595
- clearTimeout(searchTimeoutRef.current);
3596
- }
3597
- };
3598
- }, [Search]);
3459
+ var _m = useContextMenuMESF(), showContextMenu = _m.showContextMenu, registerConfig = _m.registerConfig;
3599
3460
  var handleResetButtonClick = function () {
3600
3461
  resetFilter();
3601
- refreshData({
3602
- Start: moment$3().add(-5, "days").hour(0).minute(0).second(0).toDate(),
3603
- End: moment$3().hour(23).minute(59).second(59).toDate(),
3604
- Search: "",
3605
- LogTypeCode: "A",
3606
- });
3462
+ setStartDate(moment$2().add(-5, "days").hour(0).minute(0).second(0).toDate());
3463
+ setEndDate(moment$2().hour(23).minute(59).second(59).toDate());
3464
+ setSearch("");
3465
+ gridAPI === null || gridAPI === void 0 ? void 0 : gridAPI.setGridOption("quickFilterText", "");
3466
+ setLogTypeCode("A");
3467
+ refetch();
3607
3468
  setError("");
3608
3469
  };
3609
- var loadingOverlayComponent = useMemo(function () {
3610
- return (React.createElement("div", { style: {
3611
- width: "100%",
3612
- height: "100%",
3613
- display: "flex",
3614
- justifyContent: "center",
3615
- alignItems: "center",
3616
- } },
3617
- React.createElement(LazyLoading, null)));
3618
- }, [isLoading]);
3619
3470
  // Btn reset data
3620
3471
  var resetFilter = function () {
3621
- setStartFilter(moment$3().add(-5, "days").hour(0).minute(0).second(0).toDate());
3622
- setEndFilter(moment$3().hour(23).minute(59).second(59).toDate());
3623
- setSearchFilter("");
3624
- setLogTypeCodeFilter("A");
3472
+ setStartDate(moment$2().add(-5, "days").hour(0).minute(0).second(0).toDate());
3473
+ setEndDate(moment$2().hour(23).minute(59).second(59).toDate());
3474
+ setSearch("");
3475
+ gridAPI === null || gridAPI === void 0 ? void 0 : gridAPI.setGridOption("quickFilterText", "");
3476
+ setLogTypeCode("A");
3625
3477
  setSelectedLog(undefined);
3626
3478
  };
3627
3479
  var rowClicked = function (rowClickedEvent) {
@@ -3651,8 +3503,10 @@ var TableLogs = function (_a) {
3651
3503
  });
3652
3504
  }, []);
3653
3505
  useEffect(function () {
3654
- refreshData({ Start: Start, End: End, Search: Search, LogTypeCode: LogTypeCode }).then(function (r) { });
3655
- }, [Start, End, LogTypeCode]);
3506
+ if (isError && e) {
3507
+ setError(e.message);
3508
+ }
3509
+ }, [isError, e]);
3656
3510
  return (React.createElement(Grid, { spacing: 0, container: true, justifyContent: "center", alignItems: "center", className: classes.root },
3657
3511
  React.createElement(Grid, { item: true, md: 12, xs: 12, className: classes.filters },
3658
3512
  React.createElement(ModalLogSelected, { show: showLogModal, onHide: function () { return setShowLogModal(false); }, selectedLog: selectedLog, suffixTitle: "MES and System Logs" }),
@@ -3663,99 +3517,108 @@ var TableLogs = function (_a) {
3663
3517
  React.createElement(CardContent, { style: { padding: "6px !important", width: "100%" } },
3664
3518
  React.createElement(Grid, { container: true, alignItems: "center", direction: "row", spacing: 1 },
3665
3519
  React.createElement(Grid, { item: true, md: 2, xs: 12 },
3666
- React.createElement(DateFilter, { label: "From", date: Start, setDate: setStartFilter, maxDate: End })),
3520
+ React.createElement(DateFilter, { label: "From", date: startDate, setDate: function (date) {
3521
+ return setStartDate(date || new Date());
3522
+ }, maxDate: endDate !== null && endDate !== void 0 ? endDate : undefined })),
3667
3523
  React.createElement(Grid, { item: true, md: 2, xs: 12 },
3668
- React.createElement(DateFilter, { label: "To", date: End, setDate: setEndFilter, minDate: Start })),
3524
+ React.createElement(DateFilter, { label: "To", date: endDate, setDate: function (date) {
3525
+ if (date) {
3526
+ setEndDate(date);
3527
+ setAutoRefresh(false);
3528
+ }
3529
+ }, minDate: startDate })),
3669
3530
  React.createElement(Grid, { item: true, md: 1, xs: 12 },
3670
- React.createElement(CodeFilter, { LogTypeCode: LogTypeCode, setLogTypeCodeFilter: setLogTypeCodeFilter })),
3671
- React.createElement(Grid, { item: true, md: 2, xs: 12 },
3672
- React.createElement(TimezoneSelector, { value: Timezone, onChange: setTimezone })),
3531
+ React.createElement(CodeFilter, { LogTypeCode: logTypeCode, setLogTypeCodeFilter: setLogTypeCode })),
3532
+ React.createElement(Grid, { item: true, md: 1, xs: 12 },
3533
+ React.createElement(TimezoneSelector, { value: timezone, onChange: setTimezone })),
3534
+ React.createElement(Grid, { item: true, md: 1, xs: 12 },
3535
+ React.createElement(FormControlLabel, { checked: autoRefresh, control: React.createElement(Switch, { color: "primary" }), label: "Auto Refresh", onChange: function (e, checked) {
3536
+ if (checked) {
3537
+ setEndDate(null);
3538
+ }
3539
+ else {
3540
+ setEndDate(moment$2().hour(23).minute(59).second(59).toDate());
3541
+ }
3542
+ setAutoRefresh(checked);
3543
+ } })),
3673
3544
  React.createElement(Grid, { item: true, md: 4, xs: 12 },
3674
- React.createElement(SearchFilter, { search: Search, setSearch: setSearchFilter })),
3545
+ React.createElement(SearchFilter, { search: search, setSearch: function (search) {
3546
+ setSearch(search);
3547
+ gridAPI === null || gridAPI === void 0 ? void 0 : gridAPI.setGridOption("quickFilterText", search);
3548
+ } })),
3675
3549
  React.createElement(Grid, { item: true, md: 1, xs: 12, style: { paddingTop: 8 } },
3676
3550
  React.createElement(Button, { variant: "contained", color: "default", onClick: handleResetButtonClick, fullWidth: true, size: "small" }, "Reset")))))),
3677
3551
  React.createElement(Grid, { item: true, md: 12, xs: 12, style: {
3678
3552
  height: "70vh",
3679
3553
  } },
3680
- React.createElement(Paper, { style: gridStyle },
3681
- React.createElement(AgGridReact, { gridOptions: {
3554
+ React.createElement(Paper, { style: { height: "100%", width: "100%" } },
3555
+ React.createElement(AgGridReact, { loading: isLoading, gridOptions: {
3682
3556
  theme: themeMaterial.withParams({
3683
3557
  spacing: 2,
3684
3558
  }),
3685
- }, rowData: rows, columnDefs: columnDefs, defaultColDef: defaultColDef, onGridReady: onGridReady, getRowId: function (params) { return params.data.id; }, rowHeight: 34, headerHeight: 40, animateRows: true, loadingOverlayComponent: loadingOverlayComponent, getContextMenuItems: function (e) { return getContextMenuItems(e); }, rowSelection: "single", onRowDoubleClicked: function (e) {
3559
+ }, rowData: formattedRows, columnDefs: columnDefs, defaultColDef: defaultColDef, onGridReady: onGridReady, getRowId: function (params) { return params.data.id; }, rowHeight: 34, headerHeight: 40, animateRows: true, loadingOverlayComponent: CenteredLazyLoading, getContextMenuItems: function (e) { return getContextMenuItems(e); }, rowSelection: "single", onRowDoubleClicked: function (e) {
3686
3560
  rowClicked(e);
3687
3561
  } }))))),
3688
3562
  React.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
3689
3563
  };
3690
3564
 
3565
+ var moment = getMomentTz();
3691
3566
  //fx obtener logs
3692
- var getLogs = function (Start, End, Search, LogTypeCode) { return __awaiter(void 0, void 0, void 0, function () {
3693
- var apiService, parameters, resp;
3694
- return __generator(this, function (_a) {
3695
- switch (_a.label) {
3567
+ var getLogs = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
3568
+ var apiService, tomorrow, end, parameters, resp, rows;
3569
+ var startDate = _b.startDate, endDate = _b.endDate, logTypeCode = _b.logTypeCode;
3570
+ return __generator(this, function (_c) {
3571
+ switch (_c.label) {
3696
3572
  case 0:
3697
3573
  apiService = new MESApiService();
3698
- parameters = [];
3699
- parameters.push({ name: "Start", value: Start });
3700
- parameters.push({ name: "End", value: End });
3701
- parameters.push({ name: "Search", value: Search });
3702
- parameters.push({
3703
- name: "LogTypeCode",
3704
- value: LogTypeCode === "A" ? null : LogTypeCode,
3705
- });
3574
+ tomorrow = new Date();
3575
+ tomorrow.setDate(tomorrow.getDate() + 1);
3576
+ end = endDate ? endDate : tomorrow;
3577
+ parameters = [
3578
+ { name: "Start", value: startDate },
3579
+ { name: "End", value: end },
3580
+ {
3581
+ name: "LogTypeCode",
3582
+ value: logTypeCode === "A" ? null : logTypeCode,
3583
+ },
3584
+ ];
3706
3585
  return [4 /*yield*/, apiService.callV2("[MES].[GetLogs]", parameters)];
3707
3586
  case 1:
3708
- resp = _a.sent();
3709
- return [2 /*return*/, resp];
3587
+ resp = _c.sent();
3588
+ if (resp.ok) {
3589
+ rows = get(resp, "data.tables[0].rows", []);
3590
+ rows = rows.map(function (log) { return (__assign(__assign({}, log), { Timestamp: log.Timestamp ? moment.utc(log["Timestamp"]).toDate() : null })); });
3591
+ return [2 /*return*/, rows];
3592
+ }
3593
+ else {
3594
+ throw new Error(resp.message || "Error fetching logs");
3595
+ }
3710
3596
  }
3711
3597
  });
3712
3598
  }); };
3713
3599
 
3714
- var moment = getMomentTz();
3600
+ var useLogs = function (_a) {
3601
+ var startDate = _a.startDate, endDate = _a.endDate, logTypeCode = _a.logTypeCode, autoRefresh = _a.autoRefresh;
3602
+ return useQuery({
3603
+ queryKey: ["logs", startDate, endDate, logTypeCode],
3604
+ queryFn: function () {
3605
+ return getLogs({
3606
+ startDate: startDate,
3607
+ endDate: endDate,
3608
+ logTypeCode: logTypeCode,
3609
+ });
3610
+ },
3611
+ refetchInterval: autoRefresh ? 5000 : false,
3612
+ });
3613
+ };
3715
3614
  var Logs = function (prop) {
3716
- var _a = useState(true), loading = _a[0], setLoading = _a[1];
3717
- var _b = useState(""), error = _b[0], setError = _b[1];
3718
- var _c = useLogsContext(), _d = _c.state.searchData, Start = _d.Start, End = _d.End, Search = _d.Search, LogTypeCode = _d.LogTypeCode, state = _c.state, actions = _c.actions;
3719
- var getLogsFromAPI = function () { return __awaiter(void 0, void 0, void 0, function () {
3720
- var canceled, res, logs;
3721
- return __generator(this, function (_a) {
3722
- switch (_a.label) {
3723
- case 0:
3724
- canceled = false;
3725
- setLoading(true);
3726
- return [4 /*yield*/, getLogs(Start, End, Search, LogTypeCode)];
3727
- case 1:
3728
- res = _a.sent();
3729
- if (res.ok) {
3730
- logs = get(res, "data.tables[0].rows", []);
3731
- if (canceled)
3732
- return [2 /*return*/];
3733
- logs = logs.map(function (log) { return (__assign(__assign({}, log), { Timestamp: moment.utc(log["Timestamp"]).toDate() })); });
3734
- actions.setLogs(logs);
3735
- }
3736
- else
3737
- setError(res.message);
3738
- if (canceled)
3739
- return [2 /*return*/];
3740
- setLoading(false);
3741
- return [2 /*return*/, function () {
3742
- canceled = true;
3743
- }];
3744
- }
3745
- });
3746
- }); };
3747
- useEffect(function () {
3748
- getLogsFromAPI();
3749
- }, []);
3750
3615
  return (React__default.createElement(React__default.Fragment, null,
3751
3616
  React__default.createElement(HelmetDexteel, { title: "MES and System Logs" }),
3752
- React__default.createElement(TableLogs, { isLoading: loading, rowData: state.logs, refreshData: getLogsFromAPI }),
3753
- React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
3617
+ React__default.createElement(TableLogs, null)));
3754
3618
  };
3755
3619
 
3756
3620
  var LogsPage = function (props) {
3757
- return (React.createElement(LogsProvider, null,
3758
- React.createElement(Logs, null)));
3621
+ return React.createElement(Logs, null);
3759
3622
  };
3760
3623
 
3761
3624
  var Alert = function (props) {
@@ -5446,7 +5309,7 @@ var useTableData$2 = function (_a) {
5446
5309
  headerName: "Pattern Start",
5447
5310
  valueFormatter: function (_a) {
5448
5311
  var value = _a.value;
5449
- return "".concat(moment$3(value).format("L"), ", ").concat(moment$3(value).format("LTS"));
5312
+ return "".concat(moment$2(value).format("L"), ", ").concat(moment$2(value).format("LTS"));
5450
5313
  },
5451
5314
  minWidth: 180,
5452
5315
  flex: 4,
@@ -9076,7 +8939,7 @@ var MESApiService = /** @class */ (function () {
9076
8939
  data.dataBaseName = database;
9077
8940
  data.parameters = formattedParameters;
9078
8941
  Date.prototype.toJSON = function () {
9079
- return moment$3(this).format("YYYY-MM-DDTHH:mm:ss");
8942
+ return moment$2(this).format("YYYY-MM-DDTHH:mm:ss");
9080
8943
  }; // eslint-disable-line
9081
8944
  isError = { ok: true };
9082
8945
  return [2 /*return*/, fetch(this.config.API_PROCEDURE_URL + "/Execute", {
@@ -9115,10 +8978,9 @@ var MESApiService = /** @class */ (function () {
9115
8978
  });
9116
8979
  });
9117
8980
  };
9118
- MESApiService.prototype.callV2 = function (procedure_1, parameters_1) {
9119
- return __awaiter(this, arguments, void 0, function (procedure, parameters, database) {
8981
+ MESApiService.prototype.callV2 = function (procedure, parameters, signal) {
8982
+ return __awaiter(this, void 0, void 0, function () {
9120
8983
  var data, formattedParameters, curatedMethod, response, err_1;
9121
- if (database === void 0) { database = ""; }
9122
8984
  return __generator(this, function (_a) {
9123
8985
  switch (_a.label) {
9124
8986
  case 0:
@@ -9134,16 +8996,16 @@ var MESApiService = /** @class */ (function () {
9134
8996
  formattedParameters.push(formattedParameter);
9135
8997
  });
9136
8998
  data.method = procedure;
9137
- data.dataBaseName = database;
9138
8999
  data.parameters = formattedParameters;
9139
9000
  Date.prototype.toJSON = function () {
9140
- return moment$3(this).format("YYYY-MM-DDTHH:mm:ss");
9001
+ return moment$2(this).format("YYYY-MM-DDTHH:mm:ss");
9141
9002
  }; // eslint-disable-line
9142
9003
  curatedMethod = procedure.replace(/[\[\]]/g, "");
9143
9004
  _a.label = 1;
9144
9005
  case 1:
9145
9006
  _a.trys.push([1, 3, , 4]);
9146
9007
  return [4 /*yield*/, axiosInstance.post("/action/".concat(curatedMethod), data, {
9008
+ signal: signal,
9147
9009
  params: data.parameters.map(function (param) {
9148
9010
  var _a, _b;
9149
9011
  var mapKey = param.name.replace("@", "");
@@ -9191,7 +9053,7 @@ var MESApiService = /** @class */ (function () {
9191
9053
  data.dataBaseName = database;
9192
9054
  data.parameters = formattedParameters;
9193
9055
  Date.prototype.toJSON = function () {
9194
- return moment$3(this).format("YYYY-MM-DDTHH:mm:ss");
9056
+ return moment$2(this).format("YYYY-MM-DDTHH:mm:ss");
9195
9057
  }; // eslint-disable-line
9196
9058
  isError = { ok: true };
9197
9059
  return [2 /*return*/, fetch(this.config.API_PROCEDURE_URL + "/ExecuteJSON", {
@@ -9248,7 +9110,7 @@ var MESApiService = /** @class */ (function () {
9248
9110
  formattedParameters.push(formattedParameter);
9249
9111
  });
9250
9112
  Date.prototype.toJSON = function () {
9251
- return moment$3(this).format("YYYY-MM-DDTHH:mm:ss");
9113
+ return moment$2(this).format("YYYY-MM-DDTHH:mm:ss");
9252
9114
  }; // eslint-disable-line
9253
9115
  isError = { ok: true };
9254
9116
  files.forEach(function (element) {
@@ -9315,7 +9177,7 @@ var MESApiService = /** @class */ (function () {
9315
9177
  data.parameters = formattedParameters;
9316
9178
  data.fileName = fileName || "Default.xlsx";
9317
9179
  Date.prototype.toJSON = function () {
9318
- return moment$3(this).format("YYYY-MM-DDTHH:mm:ss");
9180
+ return moment$2(this).format("YYYY-MM-DDTHH:mm:ss");
9319
9181
  }; // eslint-disable-line
9320
9182
  isError = { ok: true };
9321
9183
  return [2 /*return*/, fetch(this.config.API_PROCEDURE_URL + "/Export", {
@@ -9393,7 +9255,7 @@ var MESApiService = /** @class */ (function () {
9393
9255
  data.parameters = formattedParameters;
9394
9256
  data.fileName = fileName || "Default.xlsx";
9395
9257
  Date.prototype.toJSON = function () {
9396
- return moment$3(this).format("YYYY-MM-DDTHH:mm:ss");
9258
+ return moment$2(this).format("YYYY-MM-DDTHH:mm:ss");
9397
9259
  }; // eslint-disable-line
9398
9260
  isError = { ok: true };
9399
9261
  return [2 /*return*/, fetch(this.config.API_PROCEDURE_URL + "/ExportExcel", {
@@ -9464,6 +9326,70 @@ var MESApiService = /** @class */ (function () {
9464
9326
  return MESApiService;
9465
9327
  }());
9466
9328
 
9329
+ var TimeService = /** @class */ (function () {
9330
+ function TimeService() {
9331
+ this.timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
9332
+ }
9333
+ TimeService.getInstance = function () {
9334
+ if (!TimeService.instance) {
9335
+ TimeService.instance = new TimeService();
9336
+ }
9337
+ return TimeService.instance;
9338
+ };
9339
+ TimeService.prototype.setTimeZone = function (timeZone) {
9340
+ var ianaTimeZones = findIana(timeZone);
9341
+ if (ianaTimeZones.length) {
9342
+ this.timeZone = ianaTimeZones[0];
9343
+ }
9344
+ else {
9345
+ this.timeZone = timeZone;
9346
+ }
9347
+ moment$1.tz.setDefault(this.timeZone);
9348
+ };
9349
+ TimeService.prototype.toUTC = function (datetime, format$1) {
9350
+ try {
9351
+ if (datetime instanceof Date) {
9352
+ return format(datetime, format$1);
9353
+ }
9354
+ return format(fromZonedTime(datetime, TimeService.instance.timeZone), format$1);
9355
+ }
9356
+ catch (e) {
9357
+ console.log({ datetime: datetime, e: e });
9358
+ return "";
9359
+ }
9360
+ };
9361
+ TimeService.prototype.toLocalServerTime = function (datetime, format) {
9362
+ try {
9363
+ if (isNil(datetime) || !datetime) {
9364
+ return "";
9365
+ }
9366
+ if (typeof datetime === "string") {
9367
+ if (datetime.includes("Z")) {
9368
+ datetime = new Date(datetime);
9369
+ }
9370
+ else {
9371
+ datetime = new Date("".concat(datetime, "Z"));
9372
+ }
9373
+ }
9374
+ return formatInTimeZone(datetime, TimeService.instance.timeZone, format);
9375
+ }
9376
+ catch (e) {
9377
+ console.log({ datetime: datetime, e: e });
9378
+ return "";
9379
+ }
9380
+ };
9381
+ TimeService.prototype.getServerTimeZone = function () {
9382
+ return this.timeZone;
9383
+ };
9384
+ return TimeService;
9385
+ }());
9386
+ var getMomentTz = function () { return moment$1; };
9387
+ var dxtServerTimeZone = function () {
9388
+ return TimeService.getInstance().getServerTimeZone;
9389
+ };
9390
+ var dxtToUTC = TimeService.getInstance().toUTC;
9391
+ var dxtToLocalServerTime = TimeService.getInstance().toLocalServerTime;
9392
+
9467
9393
  var getUsers = function () { return __awaiter(void 0, void 0, void 0, function () {
9468
9394
  var apiService, resp;
9469
9395
  return __generator(this, function (_a) {
@@ -10480,15 +10406,41 @@ function Logout() {
10480
10406
  var clearUserData = useContext(AuthContext).clearUserData;
10481
10407
  var navigate = useNavigate();
10482
10408
  var _a = useSearchParams(), params = _a[0]; _a[1];
10409
+ var _b = useState(""), message = _b[0], setMessage = _b[1];
10483
10410
  var logout = function () {
10411
+ // Clear any auto-logout data from localStorage
10412
+ localStorage.removeItem("shiftAutoLogout");
10484
10413
  clearUserData();
10485
- navigate("/?".concat(params.toString()));
10414
+ // Check if there's a message parameter
10415
+ var messageParam = params.get("message");
10416
+ if (messageParam) {
10417
+ // Remove message from params before redirecting
10418
+ var newParams = new URLSearchParams(params);
10419
+ newParams.delete("message");
10420
+ navigate("/?".concat(newParams.toString()));
10421
+ }
10422
+ else {
10423
+ navigate("/?".concat(params.toString()));
10424
+ }
10486
10425
  };
10487
10426
  useEffect(function () {
10488
- logout();
10427
+ // Check for message parameter
10428
+ var messageParam = params.get("message");
10429
+ if (messageParam) {
10430
+ setMessage(decodeURIComponent(messageParam));
10431
+ }
10432
+ // Perform logout after a brief delay to show the message
10433
+ var timer = setTimeout(function () {
10434
+ logout();
10435
+ }, message ? 2000 : 0);
10436
+ return function () { return clearTimeout(timer); };
10489
10437
  }, []);
10490
10438
  return (React__default.createElement(React__default.Fragment, null,
10491
- React__default.createElement("div", null, "logging out!!!")));
10439
+ React__default.createElement(Box, { display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", minHeight: "100vh" },
10440
+ message && (React__default.createElement(Alert$2, { severity: "info", style: { marginBottom: 20 } },
10441
+ React__default.createElement(AlertTitle, null, "Session Ended"),
10442
+ React__default.createElement(Typography$1, null, message))),
10443
+ React__default.createElement(Typography$1, { variant: "h6" }, "Logging out..."))));
10492
10444
  }
10493
10445
 
10494
10446
  var useStyles$6 = makeStyles(function (theme) { return ({
@@ -12127,7 +12079,7 @@ const FORMATS = {
12127
12079
  year: 'YYYY'
12128
12080
  };
12129
12081
 
12130
- _adapters._date.override(typeof moment$3 === 'function' ? {
12082
+ _adapters._date.override(typeof moment$2 === 'function' ? {
12131
12083
  _id: 'moment', // DEBUG ONLY
12132
12084
 
12133
12085
  formats: function() {
@@ -12136,27 +12088,27 @@ _adapters._date.override(typeof moment$3 === 'function' ? {
12136
12088
 
12137
12089
  parse: function(value, format) {
12138
12090
  if (typeof value === 'string' && typeof format === 'string') {
12139
- value = moment$3(value, format);
12140
- } else if (!(value instanceof moment$3)) {
12141
- value = moment$3(value);
12091
+ value = moment$2(value, format);
12092
+ } else if (!(value instanceof moment$2)) {
12093
+ value = moment$2(value);
12142
12094
  }
12143
12095
  return value.isValid() ? value.valueOf() : null;
12144
12096
  },
12145
12097
 
12146
12098
  format: function(time, format) {
12147
- return moment$3(time).format(format);
12099
+ return moment$2(time).format(format);
12148
12100
  },
12149
12101
 
12150
12102
  add: function(time, amount, unit) {
12151
- return moment$3(time).add(amount, unit).valueOf();
12103
+ return moment$2(time).add(amount, unit).valueOf();
12152
12104
  },
12153
12105
 
12154
12106
  diff: function(max, min, unit) {
12155
- return moment$3(max).diff(moment$3(min), unit);
12107
+ return moment$2(max).diff(moment$2(min), unit);
12156
12108
  },
12157
12109
 
12158
12110
  startOf: function(time, unit, weekday) {
12159
- time = moment$3(time);
12111
+ time = moment$2(time);
12160
12112
  if (unit === 'isoWeek') {
12161
12113
  weekday = Math.trunc(Math.min(Math.max(0, weekday), 6));
12162
12114
  return time.isoWeekday(weekday).startOf('day').valueOf();
@@ -12165,7 +12117,7 @@ _adapters._date.override(typeof moment$3 === 'function' ? {
12165
12117
  },
12166
12118
 
12167
12119
  endOf: function(time, unit) {
12168
- return moment$3(time).endOf(unit).valueOf();
12120
+ return moment$2(time).endOf(unit).valueOf();
12169
12121
  }
12170
12122
  } : {});
12171
12123
 
@@ -12259,7 +12211,7 @@ var ColorPicker = function (_a) {
12259
12211
  };
12260
12212
 
12261
12213
  var TrendingsInitialState = {
12262
- timeScopeStart: moment$3(new Date()).subtract(1, "days").toDate(),
12214
+ timeScopeStart: moment$2(new Date()).subtract(1, "days").toDate(),
12263
12215
  timeScopeEnd: new Date(),
12264
12216
  scope: "1 day",
12265
12217
  graphPan: false,
@@ -12299,32 +12251,32 @@ var TrendingsReducer = createSlice({
12299
12251
  if (payload.scope !== "custom") {
12300
12252
  switch (payload.scope) {
12301
12253
  case "10 min":
12302
- state.timeScopeStart = moment$3(state.timeScopeEnd)
12254
+ state.timeScopeStart = moment$2(state.timeScopeEnd)
12303
12255
  .subtract(10, "minutes")
12304
12256
  .toDate();
12305
12257
  break;
12306
12258
  case "1 hour":
12307
- state.timeScopeStart = moment$3(state.timeScopeEnd)
12259
+ state.timeScopeStart = moment$2(state.timeScopeEnd)
12308
12260
  .subtract(1, "hours")
12309
12261
  .toDate();
12310
12262
  break;
12311
12263
  case "4 hours":
12312
- state.timeScopeStart = moment$3(state.timeScopeEnd)
12264
+ state.timeScopeStart = moment$2(state.timeScopeEnd)
12313
12265
  .subtract(4, "hours")
12314
12266
  .toDate();
12315
12267
  break;
12316
12268
  case "12 hours":
12317
- state.timeScopeStart = moment$3(state.timeScopeEnd)
12269
+ state.timeScopeStart = moment$2(state.timeScopeEnd)
12318
12270
  .subtract(12, "hours")
12319
12271
  .toDate();
12320
12272
  break;
12321
12273
  case "1 day":
12322
- state.timeScopeStart = moment$3(state.timeScopeEnd)
12274
+ state.timeScopeStart = moment$2(state.timeScopeEnd)
12323
12275
  .subtract(1, "days")
12324
12276
  .toDate();
12325
12277
  break;
12326
12278
  case "10 days":
12327
- state.timeScopeStart = moment$3(state.timeScopeEnd)
12279
+ state.timeScopeStart = moment$2(state.timeScopeEnd)
12328
12280
  .subtract(10, "days")
12329
12281
  .toDate();
12330
12282
  break;
@@ -12355,32 +12307,32 @@ var TrendingsReducer = createSlice({
12355
12307
  if (state.scope !== "custom") {
12356
12308
  switch (state.scope) {
12357
12309
  case "10 min":
12358
- state.timeScopeEnd = moment$3(payload.start)
12310
+ state.timeScopeEnd = moment$2(payload.start)
12359
12311
  .add(10, "minutes")
12360
12312
  .toDate();
12361
12313
  break;
12362
12314
  case "1 hour":
12363
- state.timeScopeEnd = moment$3(payload.start)
12315
+ state.timeScopeEnd = moment$2(payload.start)
12364
12316
  .add(1, "hours")
12365
12317
  .toDate();
12366
12318
  break;
12367
12319
  case "4 hours":
12368
- state.timeScopeEnd = moment$3(payload.start)
12320
+ state.timeScopeEnd = moment$2(payload.start)
12369
12321
  .add(4, "hours")
12370
12322
  .toDate();
12371
12323
  break;
12372
12324
  case "12 hours":
12373
- state.timeScopeEnd = moment$3(payload.start)
12325
+ state.timeScopeEnd = moment$2(payload.start)
12374
12326
  .add(12, "hours")
12375
12327
  .toDate();
12376
12328
  break;
12377
12329
  case "1 day":
12378
- state.timeScopeEnd = moment$3(payload.start)
12330
+ state.timeScopeEnd = moment$2(payload.start)
12379
12331
  .add(1, "days")
12380
12332
  .toDate();
12381
12333
  break;
12382
12334
  case "10 days":
12383
- state.timeScopeEnd = moment$3(payload.start)
12335
+ state.timeScopeEnd = moment$2(payload.start)
12384
12336
  .add(10, "days")
12385
12337
  .toDate();
12386
12338
  break;
@@ -12393,32 +12345,32 @@ var TrendingsReducer = createSlice({
12393
12345
  if (state.scope !== "custom") {
12394
12346
  switch (state.scope) {
12395
12347
  case "10 min":
12396
- state.timeScopeStart = moment$3(payload.end)
12348
+ state.timeScopeStart = moment$2(payload.end)
12397
12349
  .subtract(10, "minutes")
12398
12350
  .toDate();
12399
12351
  break;
12400
12352
  case "1 hour":
12401
- state.timeScopeStart = moment$3(payload.end)
12353
+ state.timeScopeStart = moment$2(payload.end)
12402
12354
  .subtract(1, "hours")
12403
12355
  .toDate();
12404
12356
  break;
12405
12357
  case "4 hours":
12406
- state.timeScopeStart = moment$3(payload.end)
12358
+ state.timeScopeStart = moment$2(payload.end)
12407
12359
  .subtract(4, "hours")
12408
12360
  .toDate();
12409
12361
  break;
12410
12362
  case "12 hours":
12411
- state.timeScopeStart = moment$3(payload.end)
12363
+ state.timeScopeStart = moment$2(payload.end)
12412
12364
  .subtract(12, "hours")
12413
12365
  .toDate();
12414
12366
  break;
12415
12367
  case "1 day":
12416
- state.timeScopeStart = moment$3(payload.end)
12368
+ state.timeScopeStart = moment$2(payload.end)
12417
12369
  .subtract(1, "days")
12418
12370
  .toDate();
12419
12371
  break;
12420
12372
  case "10 days":
12421
- state.timeScopeStart = moment$3(payload.end)
12373
+ state.timeScopeStart = moment$2(payload.end)
12422
12374
  .subtract(10, "days")
12423
12375
  .toDate();
12424
12376
  break;
@@ -14377,21 +14329,21 @@ var dateNavigator = function (startDate, endDate, scope, operator, current) {
14377
14329
  }
14378
14330
  else {
14379
14331
  var _a = scope.split(" "), quantity = _a[0], duration = _a[1];
14380
- newStartDate = moment$3(newEndDate)
14332
+ newStartDate = moment$2(newEndDate)
14381
14333
  .subtract(quantity, duration[0])
14382
14334
  .toDate();
14383
14335
  }
14384
14336
  }
14385
14337
  else {
14386
14338
  if (scope === "custom") {
14387
- var durationInMs = moment$3(endDate).diff(moment$3(startDate));
14388
- newStartDate = moment$3(startDate)[operator](durationInMs).toDate();
14339
+ var durationInMs = moment$2(endDate).diff(moment$2(startDate));
14340
+ newStartDate = moment$2(startDate)[operator](durationInMs).toDate();
14389
14341
  }
14390
14342
  else {
14391
14343
  var _b = scope.split(" "), quantity = _b[0], duration = _b[1];
14392
- newStartDate = moment$3(startDate)[operator](quantity, duration[0])
14344
+ newStartDate = moment$2(startDate)[operator](quantity, duration[0])
14393
14345
  .toDate();
14394
- newEndDate = moment$3(endDate)[operator](quantity, duration[0])
14346
+ newEndDate = moment$2(endDate)[operator](quantity, duration[0])
14395
14347
  .toDate();
14396
14348
  }
14397
14349
  }
@@ -14420,7 +14372,7 @@ var Header = function (_a) {
14420
14372
  var handleDateChange = function (newValue, key) {
14421
14373
  var _a;
14422
14374
  //@ts-ignore
14423
- actions.setTotalScope((_a = {}, _a[key] = moment$3(newValue).toDate(), _a));
14375
+ actions.setTotalScope((_a = {}, _a[key] = moment$2(newValue).toDate(), _a));
14424
14376
  };
14425
14377
  var handleChangeScope = function (e) {
14426
14378
  var newScope = e.target.value;
@@ -14456,7 +14408,7 @@ var Header = function (_a) {
14456
14408
  React__default.createElement(IconButton$1, { color: "primary", onClick: function () { return handleDateNavigator("subtract"); }, className: classes.navigatorButton },
14457
14409
  React__default.createElement(ChevronLeft, { fontSize: "large" }))),
14458
14410
  React__default.createElement(Grid, { item: true },
14459
- React__default.createElement(TextField, { type: "datetime-local", className: classes.datetimePicker, label: "Start", variant: "outlined", value: moment$3(state.timeScopeStart).format("YYYY-MM-DDTHH:mm:ss"), onChange: function (e) { return handleDateChange(e.target.value, "start"); }, InputLabelProps: {
14411
+ React__default.createElement(TextField, { type: "datetime-local", className: classes.datetimePicker, label: "Start", variant: "outlined", value: moment$2(state.timeScopeStart).format("YYYY-MM-DDTHH:mm:ss"), onChange: function (e) { return handleDateChange(e.target.value, "start"); }, InputLabelProps: {
14460
14412
  shrink: true,
14461
14413
  style: { marginLeft: "10px" },
14462
14414
  }, InputProps: {
@@ -14473,7 +14425,7 @@ var Header = function (_a) {
14473
14425
  React__default.createElement(MenuItem, { value: "10 days" }, "10 days"),
14474
14426
  React__default.createElement(MenuItem, { value: "custom" }, "Custom")))),
14475
14427
  React__default.createElement(Grid, { item: true },
14476
- React__default.createElement(TextField, { label: "End", variant: "outlined", className: classes.datetimePicker, type: "datetime-local", value: moment$3(state.timeScopeEnd).format("YYYY-MM-DDTHH:mm:ss"), onChange: function (e) { return handleDateChange(e.target.value, "end"); }, InputLabelProps: {
14428
+ React__default.createElement(TextField, { label: "End", variant: "outlined", className: classes.datetimePicker, type: "datetime-local", value: moment$2(state.timeScopeEnd).format("YYYY-MM-DDTHH:mm:ss"), onChange: function (e) { return handleDateChange(e.target.value, "end"); }, InputLabelProps: {
14477
14429
  shrink: true,
14478
14430
  style: { marginLeft: "10px" },
14479
14431
  } })),
@@ -15098,30 +15050,39 @@ var ProvidersLoader = function (_a) {
15098
15050
  };
15099
15051
 
15100
15052
  var timezone = TimeService.getInstance().getServerTimeZone();
15101
- moment$2.tz.setDefault(timezone);
15053
+ moment$1.tz.setDefault(timezone);
15102
15054
  var base = document.getElementsByTagName("base")[0].getAttribute("href") || "/";
15055
+ var queryClient = new QueryClient({
15056
+ defaultOptions: {
15057
+ queries: {
15058
+ refetchOnWindowFocus: false,
15059
+ cacheTime: 1000 * 60,
15060
+ },
15061
+ },
15062
+ });
15103
15063
  function MESFMain(_a) {
15104
15064
  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, _e = _a.byPassHeaderRoutes, byPassHeaderRoutes = _e === void 0 ? [] : _e, _f = _a.plantAssetId, plantAssetId = _f === void 0 ? 1 : _f, _g = _a.theme, theme = _g === void 0 ? themeMESF : _g;
15105
15065
  return (React__default.createElement(React__default.Fragment, null,
15106
15066
  React__default.createElement(CssBaseline, null),
15107
15067
  React__default.createElement(HelmetProvider, null,
15108
15068
  React__default.createElement(HelmetDexteelProvider, { navbarTitle: navbarTitle },
15109
- React__default.createElement(ThemeProvider, { theme: theme },
15110
- React__default.createElement(AuthProvider, { authConfig: authentication },
15111
- React__default.createElement(LocalizationProvider, { dateAdapter: AdapterMoment, dateLibInstance: moment$2 },
15112
- React__default.createElement(UserProvider, null,
15113
- React__default.createElement(UTLSettingsProvider, null,
15114
- React__default.createElement(ProvidersLoader, null,
15115
- React__default.createElement(AssetProvider, { plantAssetId: plantAssetId },
15116
- React__default.createElement(RouterContext.Provider, { value: routes },
15117
- React__default.createElement(NavbarContext.Provider, { value: navbar },
15118
- React__default.createElement(ConfigurationContext.Provider, { value: configurations },
15119
- React__default.createElement(ShiftNavigatorProvider, null,
15120
- React__default.createElement(ContextMenuMESFProvider, null,
15121
- React__default.createElement(BrowserRouter, { basename: base },
15122
- React__default.createElement(Routes, null,
15123
- React__default.createElement(Route, { path: "/logout", element: React__default.createElement(Logout, null) })),
15124
- React__default.createElement(Navigation, { showAreaSelector: showAreaSelector, showTrendingsIcon: showTrendingsIcon, navbarTitle: navbarTitle, byPassHeaderRoutes: byPassHeaderRoutes }))))))))))))))))));
15069
+ React__default.createElement(QueryClientProvider, { client: queryClient },
15070
+ React__default.createElement(ThemeProvider, { theme: theme },
15071
+ React__default.createElement(AuthProvider, { authConfig: authentication },
15072
+ React__default.createElement(LocalizationProvider, { dateAdapter: AdapterMoment, dateLibInstance: moment$1 },
15073
+ React__default.createElement(UserProvider, null,
15074
+ React__default.createElement(UTLSettingsProvider, null,
15075
+ React__default.createElement(ProvidersLoader, null,
15076
+ React__default.createElement(AssetProvider, { plantAssetId: plantAssetId },
15077
+ React__default.createElement(RouterContext.Provider, { value: routes },
15078
+ React__default.createElement(NavbarContext.Provider, { value: navbar },
15079
+ React__default.createElement(ConfigurationContext.Provider, { value: configurations },
15080
+ React__default.createElement(ShiftNavigatorProvider, null,
15081
+ React__default.createElement(ContextMenuMESFProvider, null,
15082
+ React__default.createElement(BrowserRouter, { basename: base },
15083
+ React__default.createElement(Routes, null,
15084
+ React__default.createElement(Route, { path: "/logout", element: React__default.createElement(Logout, null) })),
15085
+ React__default.createElement(Navigation, { showAreaSelector: showAreaSelector, showTrendingsIcon: showTrendingsIcon, navbarTitle: navbarTitle, byPassHeaderRoutes: byPassHeaderRoutes })))))))))))))))))));
15125
15086
  }
15126
15087
 
15127
15088
  var useDefaultAreaId = function (setError) {