@dexteel/mesf-core 5.12.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.
Files changed (36) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +53 -0
  3. package/dist/components/shared/CenteredLazyLoading.d.ts +2 -0
  4. package/dist/configuration/pages/asset/components/dialogs/create-new-asset-dialog.d.ts +2 -1
  5. package/dist/configuration/pages/asset/components/dialogs/edit-asset-dialog.d.ts +2 -1
  6. package/dist/configuration/pages/asset/components/dialogs/remove-asset-dialog.d.ts +2 -1
  7. package/dist/configuration/pages/asset/components/dialogs/viewer-asset-dialog.d.ts +2 -1
  8. package/dist/configuration/pages/job/components/JobsTable/JobsDetails.d.ts +2 -1
  9. package/dist/configuration/pages/log/LogsPage.d.ts +8 -0
  10. package/dist/configuration/pages/log/components/Filters/dateFilter.d.ts +2 -2
  11. package/dist/configuration/pages/log/components/LogsTable/TableLogs.d.ts +1 -9
  12. package/dist/configuration/pages/log/components/LogsTable/customHooks/useLogTableData.d.ts +0 -8
  13. package/dist/configuration/pages/log/components/ModalLogSelected/ModalLogSelected.d.ts +2 -1
  14. package/dist/configuration/pages/log/repositories/LogsRepository.d.ts +8 -1
  15. package/dist/configuration/pages/profiles/components/Create/CreateProfile.d.ts +2 -1
  16. package/dist/configuration/pages/profiles/components/Delete/DeleteProfile.d.ts +2 -1
  17. package/dist/configuration/pages/profiles/components/ProceduresOfProfile/ActionsOfProfile.d.ts +2 -1
  18. package/dist/configuration/pages/settings/components/upsertDelete/CreateSetting.d.ts +2 -1
  19. package/dist/configuration/pages/settings/components/upsertDelete/DeleteSetting.d.ts +2 -1
  20. package/dist/configuration/pages/settings/components/upsertDelete/EditSetting.d.ts +2 -1
  21. package/dist/configuration/pages/shifCrew/components/Create/CreateShift.d.ts +2 -1
  22. package/dist/configuration/pages/shifCrew/components/Delete/DeleteShift.d.ts +2 -1
  23. package/dist/configuration/pages/shifCrew/components/Edit/EditShift.d.ts +2 -1
  24. package/dist/configuration/pages/users/components/ChangePassword/ChangePassword.d.ts +2 -1
  25. package/dist/configuration/pages/users/components/Create/CreateUser.d.ts +2 -1
  26. package/dist/configuration/pages/users/components/Delete/DeleteUser.d.ts +2 -1
  27. package/dist/configuration/pages/users/components/EditUser/EditUser.d.ts +2 -1
  28. package/dist/helmet/HelmetDexteel.d.ts +4 -0
  29. package/dist/helmet/HelmetDexteelContext.d.ts +11 -0
  30. package/dist/index.d.ts +13 -12
  31. package/dist/index.esm.js +1065 -1032
  32. package/dist/index.esm.js.map +1 -1
  33. package/dist/services/ApiService.d.ts +1 -1
  34. package/package.json +4 -1
  35. package/dist/configuration/pages/log/context/LogsContext.d.ts +0 -77
  36. package/dist/configuration/pages/log/reducers/LogsReducer.d.ts +0 -72
package/dist/index.esm.js CHANGED
@@ -1,41 +1,43 @@
1
+ import { HubConnectionBuilder, LogLevel } from '@microsoft/signalr';
2
+ export * from '@microsoft/signalr';
1
3
  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, TextField, Paper, List, ListItem, ListItemIcon, ListItemText, Chip, SvgIcon, Collapse, Typography as Typography$1, Checkbox, InputAdornment, IconButton as IconButton$1, MenuItem, Box, Card, CardContent, CardActions, Tooltip, FormControl, InputLabel, Select, CircularProgress, Snackbar, FormControlLabel, Switch, DialogContentText, Popover, MenuList, Badge, useTheme, Input, Divider, CssBaseline, AppBar, Toolbar, Container, Menu, Hidden, Drawer, useMediaQuery, ListSubheader, debounce, createTheme, ThemeProvider } from '@material-ui/core';
4
+ import { withStyles, DialogTitle as DialogTitle$1, DialogContent as DialogContent$1, DialogActions as DialogActions$1, createStyles, Grid, Button, alpha, makeStyles, Dialog as Dialog$1, TextField, Paper, List, ListItem, ListItemIcon, ListItemText, Chip, SvgIcon, Collapse, Typography as Typography$1, Checkbox, InputAdornment, IconButton as IconButton$1, MenuItem, Box, Card, CardContent, CardActions, Tooltip, FormControl, InputLabel, Select, CircularProgress, Snackbar, FormControlLabel, Switch, DialogContentText, Popover, MenuList, Badge, useTheme, Input, Divider, CssBaseline, AppBar, Toolbar, Container, Menu, createTheme, Hidden, Drawer, useMediaQuery, ListSubheader, debounce, ThemeProvider } from '@material-ui/core';
3
5
  import { values, get, isNil, isEmpty, round, isNaN as isNaN$1, isNumber } from 'lodash-es';
4
6
  import * as React from 'react';
5
- import React__default, { useState, useRef, useEffect, useMemo, Component, createContext, useContext, useCallback, lazy, Suspense } from 'react';
7
+ import React__default, { createContext, useContext, useState, useRef, useEffect, useMemo, Component, useCallback, lazy, Suspense } from 'react';
6
8
  import IconButton from '@material-ui/core/IconButton';
7
9
  import CloseIcon from '@material-ui/icons/Close';
8
10
  import Alert$3 from '@material-ui/lab/Alert';
9
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';
10
12
  import { DatePicker } from '@mui/x-date-pickers/DatePicker';
11
- import moment$2 from 'moment-timezone';
13
+ import moment$1 from 'moment-timezone';
12
14
  import { useParams, useNavigate, useSearchParams, Link, Navigate, Routes, Route, useLocation, BrowserRouter } from 'react-router-dom';
13
- import { ClearIcon, DatePicker as DatePicker$1, CalendarIcon, DateTimePicker, LocalizationProvider } from '@mui/x-date-pickers';
14
- import { AdapterMoment } from '@mui/x-date-pickers/AdapterMoment';
15
- import MenuIcon from '@material-ui/icons/Menu';
16
- import Settings$1 from '@material-ui/icons/Settings';
17
- import ShowChartIcon from '@material-ui/icons/ShowChart';
15
+ import { Alert as Alert$2, AlertTitle, Autocomplete } from '@material-ui/lab';
18
16
  import AccountCircleIcon from '@material-ui/icons/AccountCircle';
19
- import { DndProvider } from 'react-dnd';
20
- import { HTML5Backend } from 'react-dnd-html5-backend';
17
+ import { Helmet, HelmetProvider } from 'react-helmet-async';
18
+ import { useQuery, QueryClient, QueryClientProvider } from '@tanstack/react-query';
21
19
  import { themeMaterial } from 'ag-grid-community';
22
20
  import { AgGridReact } from 'ag-grid-react';
23
21
  import MomentUtils from '@date-io/moment';
24
22
  import { MuiPickersUtilsProvider, KeyboardDatePicker, KeyboardTimePicker } from '@material-ui/pickers';
25
- import moment$3 from 'moment';
26
- 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';
27
25
  import EditIcon from '@material-ui/icons/Edit';
28
26
  import PlaylistAddIcon from '@material-ui/icons/PlaylistAdd';
29
- import { HubConnectionBuilder, LogLevel } from '@microsoft/signalr';
30
- export * from '@microsoft/signalr';
31
- import { Alert as Alert$2, Autocomplete } from '@material-ui/lab';
27
+ import { DndProvider } from 'react-dnd';
28
+ import { HTML5Backend } from 'react-dnd-html5-backend';
32
29
  import { useForm, Controller } from 'react-hook-form';
33
- import SearchIcon from '@material-ui/icons/Search';
30
+ import DeleteIcon from '@material-ui/icons/Delete';
31
+ import LockOutlinedIcon from '@material-ui/icons/LockOutlined';
34
32
  import { useComplexState } from 'use-complex-state';
35
33
  import { createSlice } from '@reduxjs/toolkit';
36
- import DeleteIcon from '@material-ui/icons/Delete';
34
+ import { ClearIcon, DatePicker as DatePicker$1, CalendarIcon, DateTimePicker, LocalizationProvider } from '@mui/x-date-pickers';
35
+ import { AdapterMoment } from '@mui/x-date-pickers/AdapterMoment';
36
+ import MenuIcon from '@material-ui/icons/Menu';
37
+ import Settings$1 from '@material-ui/icons/Settings';
38
+ import ShowChartIcon from '@material-ui/icons/ShowChart';
39
+ import SearchIcon from '@material-ui/icons/Search';
37
40
  import FormatListBulletedSharpIcon from '@material-ui/icons/FormatListBulletedSharp';
38
- import LockOutlinedIcon from '@material-ui/icons/LockOutlined';
39
41
  import axios from 'axios';
40
42
  import { _adapters, Chart, CategoryScale, LinearScale, PointElement, LineElement, Title, Tooltip as Tooltip$1, Legend, TimeScale } from 'chart.js';
41
43
  import zoomPlugin from 'chartjs-plugin-zoom';
@@ -251,6 +253,30 @@ var ErrorModal = function (_a) {
251
253
  } }, "Ok")))))) : null;
252
254
  };
253
255
 
256
+ // Create a new context file: src/context/HelmetContext.tsx
257
+ var HelmetDexteelContext = createContext(undefined);
258
+ var HelmetDexteelProvider = function (_a) {
259
+ var navbarTitle = _a.navbarTitle, children = _a.children;
260
+ return (React__default.createElement(HelmetDexteelContext.Provider, { value: { navbarTitle: navbarTitle } }, children));
261
+ };
262
+ var useHelmetDexteel = function () {
263
+ var context = useContext(HelmetDexteelContext);
264
+ if (context === undefined) {
265
+ throw new Error("useHelmet must be used within a HelmetProvider");
266
+ }
267
+ return context;
268
+ };
269
+
270
+ var HelmetDexteel = function (_a) {
271
+ var title = _a.title, props = __rest(_a, ["title"]);
272
+ var navbarTitle = useHelmetDexteel().navbarTitle;
273
+ return (React__default.createElement(Helmet, __assign({ defer: false }, props),
274
+ React__default.createElement("title", null,
275
+ title,
276
+ " - ",
277
+ navbarTitle)));
278
+ };
279
+
254
280
  var BarChartControl = function (props) {
255
281
  var height = props.height, minWidth = props.minWidth, data = props.data, keys = props.keys, indexBy = props.indexBy, legendX = props.legendX, legendY = props.legendY, colors = props.colors, other = __rest(props, ["height", "minWidth", "data", "keys", "indexBy", "legendX", "legendY", "colors"]);
256
282
  return (React__default.createElement(React__default.Fragment, null,
@@ -1709,13 +1735,13 @@ var ShiftDayNavigatorControl = function (_a) {
1709
1735
  case 2:
1710
1736
  resp = _a.sent();
1711
1737
  if (resp.ok) {
1712
- shift = __assign(__assign({}, resp.data), { CurrentProductionDate: moment$2
1738
+ shift = __assign(__assign({}, resp.data), { CurrentProductionDate: moment$1
1713
1739
  .utc(resp.data.CurrentProductionDate)
1714
- .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
1715
1741
  .utc(resp.data.PreviousProductionDate)
1716
- .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
1717
1743
  .utc(resp.data.LastProductionDate)
1718
- .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() });
1719
1745
  setShiftInfoCopy(shift);
1720
1746
  }
1721
1747
  return [3 /*break*/, 4];
@@ -1759,7 +1785,7 @@ var ShiftDayNavigatorControl = function (_a) {
1759
1785
  }, size: "small" },
1760
1786
  React__default.createElement(ArrowBackRounded, null)))),
1761
1787
  React__default.createElement(Grid, { item: true },
1762
- 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) {
1763
1789
  if (date) {
1764
1790
  getShiftDataFromAPI(date.toDate(), 0).then(function () { });
1765
1791
  }
@@ -1841,8 +1867,8 @@ var getShiftsRangeByParameters = function (period_1) {
1841
1867
  if (resp.ok) {
1842
1868
  data = resp.data;
1843
1869
  data.tables[0].rows.map(function (shift) {
1844
- shift.Start = moment$2.utc(shift["Start"]).toDate();
1845
- 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();
1846
1872
  });
1847
1873
  return [2 /*return*/, {
1848
1874
  ok: true,
@@ -1927,13 +1953,13 @@ var ShiftPeriodNavigatorControl = function (_a) {
1927
1953
  case 1:
1928
1954
  _a.trys.push([1, 6, , 7]);
1929
1955
  if (!(direction === "prev" && (startShift === null || startShift === void 0 ? void 0 : startShift.Start))) return [3 /*break*/, 3];
1930
- 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")];
1931
1957
  case 2:
1932
1958
  _a.sent();
1933
1959
  return [3 /*break*/, 5];
1934
1960
  case 3:
1935
1961
  if (!(direction === "next" && (endShift === null || endShift === void 0 ? void 0 : endShift.End))) return [3 /*break*/, 5];
1936
- 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")];
1937
1963
  case 4:
1938
1964
  _a.sent();
1939
1965
  _a.label = 5;
@@ -2089,8 +2115,8 @@ var ShiftPeriodNavigatorControl = function (_a) {
2089
2115
  newPeriod = e.target.value;
2090
2116
  setPeriod(newPeriod);
2091
2117
  if (!(newPeriod === "Custom")) return [3 /*break*/, 2];
2092
- today = moment$2();
2093
- yesterday = moment$2().subtract(1, "day");
2118
+ today = moment$1();
2119
+ yesterday = moment$1().subtract(1, "day");
2094
2120
  setCustomStartDate(yesterday);
2095
2121
  setCustomEndDate(today);
2096
2122
  return [4 /*yield*/, searchShiftsRangeByParameters("Custom", yesterday.toDate(), today.toDate(), false)];
@@ -2100,7 +2126,7 @@ var ShiftPeriodNavigatorControl = function (_a) {
2100
2126
  case 2:
2101
2127
  setCustomStartDate(null);
2102
2128
  setCustomEndDate(null);
2103
- 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)];
2104
2130
  case 3:
2105
2131
  _a.sent();
2106
2132
  _a.label = 4;
@@ -2140,10 +2166,10 @@ var ShiftPeriodNavigatorControl = function (_a) {
2140
2166
  React__default.createElement(ChevronLeft, null))),
2141
2167
  React__default.createElement("div", { className: "".concat(classes.gridItem, " ").concat(classes.datePickerWrapper) },
2142
2168
  React__default.createElement(DatePicker$1, { label: "Start", format: dateFormat, value: isCustomMode
2143
- ? customStartDate || moment$2().subtract(1, "day")
2144
- : moment$2((startShift === null || startShift === void 0 ? void 0 : startShift.Start) || moment$2().subtract(1, "day")), onChange: function (value) {
2145
- return handleDateChange(value ? moment$2(value) : null, "start");
2146
- }, 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: {
2147
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" } }) }))); },
2148
2174
  openPickerIcon: function () { return (React__default.createElement("div", { style: {
2149
2175
  display: "flex",
@@ -2162,10 +2188,10 @@ var ShiftPeriodNavigatorControl = function (_a) {
2162
2188
  } }, periodOptions.map(function (option) { return (React__default.createElement(MenuItem, { key: option.value, value: option.value }, option.label)); })))),
2163
2189
  React__default.createElement("div", { className: "".concat(classes.gridItem, " ").concat(classes.datePickerWrapper) },
2164
2190
  React__default.createElement(DatePicker$1, { label: "End", format: dateFormat, value: isCustomMode
2165
- ? customEndDate || moment$2()
2166
- : 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) {
2167
- return handleDateChange(value ? moment$2(value) : null, "end");
2168
- }, 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: {
2169
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" } }) }))); },
2170
2196
  openPickerIcon: function () { return (React__default.createElement("div", { style: {
2171
2197
  display: "flex",
@@ -2329,15 +2355,15 @@ var GetJobsStatus = function () { return __awaiter(void 0, void 0, void 0, funct
2329
2355
  if (resp.ok) {
2330
2356
  rows = get(resp, "data.tables[0].rows", []);
2331
2357
  rows = rows.map(function (job) { return (__assign(__assign({}, job), { LastStarted: job.LastStarted
2332
- ? moment$2.utc(job["LastStarted"]).toDate()
2358
+ ? moment$1.utc(job["LastStarted"]).toDate()
2333
2359
  : null, LastContact: job.LastContact
2334
- ? moment$2.utc(job["LastContact"]).toDate()
2360
+ ? moment$1.utc(job["LastContact"]).toDate()
2335
2361
  : null, LastCounter: job.LastCounter
2336
- ? moment$2.utc(job["LastCounter"]).toDate()
2337
- : null, StartTime: job.StartTime ? moment$2.utc(job["StartTime"]).toDate() : null, NextExecutionTime: job.NextExecutionTime
2338
- ? 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()
2339
2365
  : null, LastExecutionTime: job.LastExecutionTime
2340
- ? moment$2.utc(job["LastExecutionTime"]).toDate()
2366
+ ? moment$1.utc(job["LastExecutionTime"]).toDate()
2341
2367
  : null })); });
2342
2368
  return [2 /*return*/, {
2343
2369
  ok: true,
@@ -2488,7 +2514,7 @@ var OnEnableJob = function (_a) {
2488
2514
  };
2489
2515
 
2490
2516
  var JobDetails = function (_a) {
2491
- var job = _a.job, modal = _a.modal, onHide = _a.onHide;
2517
+ var job = _a.job, modal = _a.modal, onHide = _a.onHide, suffixTitle = _a.suffixTitle;
2492
2518
  var _b = useState(false), isSubmitLoading = _b[0], setIsSubmitLoading = _b[1];
2493
2519
  var _c = useState(""), error = _c[0], setError = _c[1];
2494
2520
  var _d = useState(false), openSnackbar = _d[0], setOpenSnackbar = _d[1];
@@ -2536,6 +2562,7 @@ var JobDetails = function (_a) {
2536
2562
  }
2537
2563
  }, [modal, job]);
2538
2564
  return (React__default.createElement(React__default.Fragment, null,
2565
+ (modal == "update" || modal == "create") && (React__default.createElement(HelmetDexteel, { title: "".concat(modal == "update" ? job === null || job === void 0 ? void 0 : job.sProcedure : "New Job").concat(suffixTitle ? " - ".concat(suffixTitle) : "") })),
2539
2566
  (job === null || modal !== "update") && modal !== "create" ? (React__default.createElement("div", { style: {
2540
2567
  display: "flex",
2541
2568
  justifyContent: "center",
@@ -2566,7 +2593,7 @@ var JobDetails = function (_a) {
2566
2593
  React__default.createElement(Controller, { name: "StartTime", control: control, render: function (_a) {
2567
2594
  var field = _a.field, error = _a.fieldState.error;
2568
2595
  return (React__default.createElement(React__default.Fragment, null,
2569
- 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: {
2570
2597
  textField: {
2571
2598
  size: "small",
2572
2599
  margin: "none",
@@ -2583,7 +2610,7 @@ var JobDetails = function (_a) {
2583
2610
  React__default.createElement(Grid, { item: true, xs: 12, md: 6 },
2584
2611
  React__default.createElement(Controller, { name: "LastExecutionTime", control: control, render: function (_a) {
2585
2612
  var field = _a.field;
2586
- 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: {
2587
2614
  textField: {
2588
2615
  size: "small",
2589
2616
  margin: "none",
@@ -2593,7 +2620,7 @@ var JobDetails = function (_a) {
2593
2620
  React__default.createElement(Grid, { item: true, xs: 12, md: 6 },
2594
2621
  React__default.createElement(Controller, { name: "NextExecutionTime", control: control, render: function (_a) {
2595
2622
  var field = _a.field;
2596
- 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: {
2597
2624
  textField: {
2598
2625
  size: "small",
2599
2626
  margin: "none",
@@ -2776,7 +2803,7 @@ var useJobsTableData = function (_a) {
2776
2803
  headerName: "Next Execution",
2777
2804
  valueFormatter: function (_a) {
2778
2805
  var value = _a.value;
2779
- 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");
2780
2807
  },
2781
2808
  flex: 1,
2782
2809
  cellStyle: {
@@ -3028,7 +3055,7 @@ var TableJobs = function (_a) {
3028
3055
  } }))),
3029
3056
  React.createElement(Grid, { item: true, md: 6, xs: 12 },
3030
3057
  React.createElement(Paper, { elevation: 2, style: { height: "70vh", width: "100%", padding: 15 }, className: "".concat(classes.table, " ag-theme-material") },
3031
- React.createElement(JobDetails, { job: jobSelected, modal: showModal, onHide: onDetailsHide }))))),
3058
+ React.createElement(JobDetails, { job: jobSelected, modal: showModal, onHide: onDetailsHide, suffixTitle: "System Jobs" }))))),
3032
3059
  React.createElement(ResetJob, { show: showModal === "reset", onHide: function (shouldUpdate) { return __awaiter(void 0, void 0, void 0, function () {
3033
3060
  return __generator(this, function (_a) {
3034
3061
  switch (_a.label) {
@@ -3097,10 +3124,12 @@ var Jobs = function (prop) {
3097
3124
  useEffect(function () {
3098
3125
  getJobsFromAPI();
3099
3126
  }, []);
3100
- return (React.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center" },
3101
- React.createElement(Grid, { item: true, md: 12, xs: 12, style: { margin: 0 } },
3102
- React.createElement(TableJobs, { isLoading: isLoading, getJobsFromAPI: getJobsFromAPI })),
3103
- React.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
3127
+ return (React.createElement(React.Fragment, null,
3128
+ React.createElement(HelmetDexteel, { title: "System Jobs" }),
3129
+ React.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center" },
3130
+ React.createElement(Grid, { item: true, md: 12, xs: 12, style: { margin: 0 } },
3131
+ React.createElement(TableJobs, { isLoading: isLoading, getJobsFromAPI: getJobsFromAPI })),
3132
+ React.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } }))));
3104
3133
  };
3105
3134
 
3106
3135
  var JobsPage = function (props) {
@@ -3108,138 +3137,6 @@ var JobsPage = function (props) {
3108
3137
  React.createElement(Jobs, null)));
3109
3138
  };
3110
3139
 
3111
- var TimeService = /** @class */ (function () {
3112
- function TimeService() {
3113
- this.timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
3114
- }
3115
- TimeService.getInstance = function () {
3116
- if (!TimeService.instance) {
3117
- TimeService.instance = new TimeService();
3118
- }
3119
- return TimeService.instance;
3120
- };
3121
- TimeService.prototype.setTimeZone = function (timeZone) {
3122
- var ianaTimeZones = findIana(timeZone);
3123
- if (ianaTimeZones.length) {
3124
- this.timeZone = ianaTimeZones[0];
3125
- }
3126
- else {
3127
- this.timeZone = timeZone;
3128
- }
3129
- moment$2.tz.setDefault(this.timeZone);
3130
- };
3131
- TimeService.prototype.toUTC = function (datetime, format$1) {
3132
- try {
3133
- if (datetime instanceof Date) {
3134
- return format(datetime, format$1);
3135
- }
3136
- return format(fromZonedTime(datetime, TimeService.instance.timeZone), format$1);
3137
- }
3138
- catch (e) {
3139
- console.log({ datetime: datetime, e: e });
3140
- return "";
3141
- }
3142
- };
3143
- TimeService.prototype.toLocalServerTime = function (datetime, format) {
3144
- try {
3145
- if (isNil(datetime) || !datetime) {
3146
- return "";
3147
- }
3148
- if (typeof datetime === "string") {
3149
- if (datetime.includes("Z")) {
3150
- datetime = new Date(datetime);
3151
- }
3152
- else {
3153
- datetime = new Date("".concat(datetime, "Z"));
3154
- }
3155
- }
3156
- return formatInTimeZone(datetime, TimeService.instance.timeZone, format);
3157
- }
3158
- catch (e) {
3159
- console.log({ datetime: datetime, e: e });
3160
- return "";
3161
- }
3162
- };
3163
- TimeService.prototype.getServerTimeZone = function () {
3164
- return this.timeZone;
3165
- };
3166
- return TimeService;
3167
- }());
3168
- var getMomentTz = function () { return moment$2; };
3169
- var dxtServerTimeZone = function () {
3170
- return TimeService.getInstance().getServerTimeZone;
3171
- };
3172
- var dxtToUTC = TimeService.getInstance().toUTC;
3173
- var dxtToLocalServerTime = TimeService.getInstance().toLocalServerTime;
3174
-
3175
- var LogsInitialState = {
3176
- logs: [],
3177
- searchData: {
3178
- Start: moment$3().add(-5, "days").hour(0).minute(0).second(0).toDate(),
3179
- End: moment$3().hour(23).minute(59).second(59).toDate(),
3180
- Search: "",
3181
- LogTypeCode: "A",
3182
- },
3183
- Timezone: "UTC",
3184
- };
3185
- var LogsReducer = createSlice({
3186
- name: "__",
3187
- initialState: LogsInitialState,
3188
- reducers: {
3189
- setLogs: function (state, _a) {
3190
- var payload = _a.payload;
3191
- state.logs = payload;
3192
- },
3193
- setSearchData: function (state, _a) {
3194
- var payload = _a.payload;
3195
- state.searchData = payload;
3196
- },
3197
- setStartFilter: function (state, _a) {
3198
- var payload = _a.payload;
3199
- state.searchData.Start = payload;
3200
- },
3201
- setEndFilter: function (state, _a) {
3202
- var payload = _a.payload;
3203
- state.searchData.End = payload;
3204
- },
3205
- setSearchFilter: function (state, _a) {
3206
- var payload = _a.payload;
3207
- state.searchData.Search = payload;
3208
- },
3209
- setLogTypeCodeFilter: function (state, _a) {
3210
- var payload = _a.payload;
3211
- state.searchData.LogTypeCode = payload;
3212
- },
3213
- resetFilters: function (state, _a) {
3214
- _a.payload;
3215
- state.searchData = {
3216
- Start: moment$3().add(-5, "days").hour(0).minute(0).second(0).toDate(),
3217
- End: moment$3().hour(23).minute(59).second(59).toDate(),
3218
- Search: "",
3219
- LogTypeCode: "A",
3220
- };
3221
- },
3222
- setTimezone: function (state, _a) {
3223
- var payload = _a.payload;
3224
- state.Timezone = payload;
3225
- },
3226
- },
3227
- });
3228
-
3229
- var LogsContext = createContext({
3230
- state: LogsReducer.getInitialState(),
3231
- actions: LogsReducer.actions,
3232
- });
3233
- var useLogsContext = function () { return useContext(LogsContext); };
3234
- var LogsProvider = function (_a) {
3235
- var children = _a.children;
3236
- var _b = useComplexState({
3237
- initialState: LogsReducer.getInitialState(),
3238
- reducers: LogsReducer.caseReducers,
3239
- }), state = _b[0], actions = _b[1];
3240
- return (React__default.createElement(LogsContext.Provider, { value: { state: state, actions: actions } }, children));
3241
- };
3242
-
3243
3140
  var LOG_TYPE_CODES = {
3244
3141
  A: { id: "A", description: "All" },
3245
3142
  I: { id: "I", color: "#3f51b5", description: "Info" },
@@ -3266,7 +3163,7 @@ var DateFilter = function (_a) {
3266
3163
  }
3267
3164
  };
3268
3165
  return (React__default.createElement(MuiPickersUtilsProvider, { utils: MomentUtils },
3269
- 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: {
3270
3167
  minWidth: "100%",
3271
3168
  borderTopLeftRadius: 3,
3272
3169
  borderTopRightRadius: 3,
@@ -3314,62 +3211,46 @@ var formatTime = function (nowTime) {
3314
3211
  return date.toLocaleDateString() + " " + date.toLocaleTimeString();
3315
3212
  };
3316
3213
  var ModalLogSelected = function (_a) {
3317
- var show = _a.show, onHide = _a.onHide, selectedLog = _a.selectedLog;
3214
+ var _b;
3215
+ var show = _a.show, onHide = _a.onHide, selectedLog = _a.selectedLog, suffixTitle = _a.suffixTitle;
3318
3216
  var classes = useStyles$z();
3319
- return (React__default.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center" },
3320
- React__default.createElement(MesfModal, { title: "LOG DETAILS", open: show, handleClose: function () { return onHide(false); }, maxWidth: "md", id: "log-details-modal" },
3321
- React__default.createElement(MesfModal.Content, { style: { padding: "15px 30px" } },
3322
- React__default.createElement(Grid, { container: true, spacing: 1, alignItems: "flex-start" },
3323
- React__default.createElement(Grid, { item: true, md: 6, xs: 12, style: { paddingRight: 20, paddingLeft: 5 } },
3324
- React__default.createElement(TextField, { variant: "standard", fullWidth: true, margin: "dense", label: "User", defaultValue: selectedLog === null || selectedLog === void 0 ? void 0 : selectedLog.User, InputProps: {
3325
- readOnly: true,
3326
- } })),
3327
- React__default.createElement(Grid, { item: true, md: 6, xs: 12, style: { paddingRight: 20, paddingLeft: 5 } },
3328
- React__default.createElement(TextField, { variant: "standard", fullWidth: true, margin: "dense", label: "Time", defaultValue: formatTime(selectedLog === null || selectedLog === void 0 ? void 0 : selectedLog.Timestamp), InputProps: {
3329
- readOnly: true,
3330
- } })),
3331
- React__default.createElement(Grid, { item: true, md: 6, xs: 12, style: { paddingRight: 20, paddingLeft: 5 } },
3332
- React__default.createElement(TextField, { variant: "standard", fullWidth: true, margin: "dense", label: "Source", defaultValue: selectedLog === null || selectedLog === void 0 ? void 0 : selectedLog.Source, InputProps: {
3333
- readOnly: true,
3334
- } })),
3335
- React__default.createElement(Grid, { item: true, md: 6, xs: 12, style: { paddingRight: 20, paddingLeft: 5 } },
3336
- React__default.createElement(TextField, { variant: "standard", fullWidth: true, margin: "dense", label: "Type", defaultValue: selectedLog === null || selectedLog === void 0 ? void 0 : selectedLog.LogTypeCode, InputProps: {
3337
- readOnly: true,
3338
- } })),
3339
- React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { paddingRight: 20, paddingLeft: 5, marginBottom: 20 } },
3340
- React__default.createElement(Card, { variant: "outlined", style: { backgroundColor: "#E9F2F8" } },
3341
- React__default.createElement(CardContent, null,
3342
- React__default.createElement(Typography$1, { className: classes.messageTitle }, "Message:"),
3343
- React__default.createElement(Typography$1, { style: { fontSize: 17 } }, selectedLog === null || selectedLog === void 0 ? void 0 : selectedLog.Message)))))),
3344
- React__default.createElement(MesfModal.Actions, { style: { padding: "20px 30px 30px" } },
3345
- React__default.createElement(Grid, { container: true, spacing: 2, justifyContent: "flex-end" },
3346
- React__default.createElement(Grid, { item: true, md: 3, xs: 12, style: { margin: 0 } },
3347
- React__default.createElement(Button, { fullWidth: true, variant: "contained", color: "default", onClick: function () { return onHide(true); } }, "Close")))))));
3217
+ return (React__default.createElement(React__default.Fragment, null,
3218
+ show && (React__default.createElement(HelmetDexteel, { title: "".concat((_b = selectedLog === null || selectedLog === void 0 ? void 0 : selectedLog.Source) !== null && _b !== void 0 ? _b : "", " - Log Details").concat(suffixTitle ? " - ".concat(suffixTitle) : "") })),
3219
+ React__default.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center" },
3220
+ React__default.createElement(MesfModal, { title: "LOG DETAILS", open: show, handleClose: function () { return onHide(false); }, maxWidth: "md", id: "log-details-modal" },
3221
+ React__default.createElement(MesfModal.Content, { style: { padding: "15px 30px" } },
3222
+ React__default.createElement(Grid, { container: true, spacing: 1, alignItems: "flex-start" },
3223
+ React__default.createElement(Grid, { item: true, md: 6, xs: 12, style: { paddingRight: 20, paddingLeft: 5 } },
3224
+ React__default.createElement(TextField, { variant: "standard", fullWidth: true, margin: "dense", label: "User", defaultValue: selectedLog === null || selectedLog === void 0 ? void 0 : selectedLog.User, InputProps: {
3225
+ readOnly: true,
3226
+ } })),
3227
+ React__default.createElement(Grid, { item: true, md: 6, xs: 12, style: { paddingRight: 20, paddingLeft: 5 } },
3228
+ React__default.createElement(TextField, { variant: "standard", fullWidth: true, margin: "dense", label: "Time", defaultValue: formatTime(selectedLog === null || selectedLog === void 0 ? void 0 : selectedLog.Timestamp), InputProps: {
3229
+ readOnly: true,
3230
+ } })),
3231
+ React__default.createElement(Grid, { item: true, md: 6, xs: 12, style: { paddingRight: 20, paddingLeft: 5 } },
3232
+ React__default.createElement(TextField, { variant: "standard", fullWidth: true, margin: "dense", label: "Source", defaultValue: selectedLog === null || selectedLog === void 0 ? void 0 : selectedLog.Source, InputProps: {
3233
+ readOnly: true,
3234
+ } })),
3235
+ React__default.createElement(Grid, { item: true, md: 6, xs: 12, style: { paddingRight: 20, paddingLeft: 5 } },
3236
+ React__default.createElement(TextField, { variant: "standard", fullWidth: true, margin: "dense", label: "Type", defaultValue: selectedLog === null || selectedLog === void 0 ? void 0 : selectedLog.LogTypeCode, InputProps: {
3237
+ readOnly: true,
3238
+ } })),
3239
+ React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { paddingRight: 20, paddingLeft: 5, marginBottom: 20 } },
3240
+ React__default.createElement(Card, { variant: "outlined", style: { backgroundColor: "#E9F2F8" } },
3241
+ React__default.createElement(CardContent, null,
3242
+ React__default.createElement(Typography$1, { className: classes.messageTitle }, "Message:"),
3243
+ React__default.createElement(Typography$1, { style: { fontSize: 17 } }, selectedLog === null || selectedLog === void 0 ? void 0 : selectedLog.Message)))))),
3244
+ React__default.createElement(MesfModal.Actions, { style: { padding: "20px 30px 30px" } },
3245
+ React__default.createElement(Grid, { container: true, spacing: 2, justifyContent: "flex-end" },
3246
+ React__default.createElement(Grid, { item: true, md: 3, xs: 12, style: { margin: 0 } },
3247
+ React__default.createElement(Button, { fullWidth: true, variant: "contained", color: "default", onClick: function () { return onHide(true); } }, "Close"))))))));
3348
3248
  };
3349
3249
 
3350
- var moment$1 = getMomentTz();
3351
3250
  var useLogTableData = function () {
3352
- var _a;
3353
- var state = useLogsContext().state;
3354
- var getLogTypeByCodeId = function (logTypeCodeId) {
3355
- return get$1(LOG_TYPE_CODES, "".concat(logTypeCodeId, ".description"), " -");
3356
- };
3357
3251
  var backgroundColor = function (logTypeCode) {
3358
3252
  return get$1(LOG_TYPE_CODES, "".concat(logTypeCode[0], ".color"), "#BBBBBB");
3359
3253
  };
3360
- var rows = (_a = state.logs) === null || _a === void 0 ? void 0 : _a.map(function (_a) {
3361
- var LogId = _a.LogId, Timestamp = _a.Timestamp, Source = _a.Source, Message = _a.Message, LogTypeCode = _a.LogTypeCode, User = _a.User;
3362
- return ({
3363
- id: LogId,
3364
- Timestamp: state.Timezone === "UTC"
3365
- ? moment$1(Timestamp).utc().format("YYYY-MM-DD HH:mm:ss z")
3366
- : dxtToLocalServerTime(Timestamp, "yyyy-MM-dd HH:mm:ss z"),
3367
- Source: Source,
3368
- Message: isNil$1(Message) ? "" : Message.replaceAll("Added", " Added"),
3369
- LogTypeCode: getLogTypeByCodeId(LogTypeCode),
3370
- User: User,
3371
- });
3372
- });
3373
3254
  var columnDefs = useState([
3374
3255
  {
3375
3256
  field: "Timestamp",
@@ -3449,7 +3330,18 @@ var useLogTableData = function () {
3449
3330
  headerClass: "ag-header-cell-centered",
3450
3331
  },
3451
3332
  ])[0];
3452
- 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)));
3453
3345
  };
3454
3346
 
3455
3347
  var useStyles$y = makeStyles(function (theme) { return ({
@@ -3518,19 +3410,44 @@ var useLogsOptionsFunctions = function (_a) {
3518
3410
  };
3519
3411
  };
3520
3412
 
3521
- var TableLogs = function (_a) {
3522
- var isLoading = _a.isLoading; _a.rowData; var refreshData = _a.refreshData;
3523
- 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 () {
3524
3417
  var classes = useStyles$y();
3525
- var gridStyle = useMemo(function () { return ({ height: "100%", width: "100%" }); }, []);
3526
- var _f = useState(null); _f[0]; var setGridAPI = _f[1];
3527
- var _g = useState(false), showLogModal = _g[0], setShowLogModal = _g[1];
3528
- var _h = useState(undefined), selectedLog = _h[0], setSelectedLog = _h[1];
3529
- 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;
3530
3434
  var onGridReady = function (params) {
3531
3435
  setGridAPI(params.api);
3532
3436
  };
3533
- 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;
3534
3451
  var defaultColDef = useMemo(function () {
3535
3452
  return {
3536
3453
  sortable: true,
@@ -3539,58 +3456,24 @@ var TableLogs = function (_a) {
3539
3456
  wrapHeaderText: true,
3540
3457
  };
3541
3458
  }, []);
3542
- var _l = useContextMenuMESF(), showContextMenu = _l.showContextMenu, registerConfig = _l.registerConfig;
3543
- // Debounced search timer ref
3544
- var searchTimeoutRef = useRef(null);
3545
- // Store current values in ref to avoid closure issues
3546
- var currentValues = useRef({ Start: Start, End: End, Search: Search, LogTypeCode: LogTypeCode });
3547
- currentValues.current = { Start: Start, End: End, Search: Search, LogTypeCode: LogTypeCode };
3548
- // Auto search when Search filter changes (with debounce)
3549
- useEffect(function () {
3550
- if (searchTimeoutRef.current) {
3551
- clearTimeout(searchTimeoutRef.current);
3552
- }
3553
- searchTimeoutRef.current = setTimeout(function () {
3554
- var _a = currentValues.current, currentStart = _a.Start, currentEnd = _a.End, currentSearch = _a.Search, currentLogTypeCode = _a.LogTypeCode;
3555
- refreshData({
3556
- Start: currentStart,
3557
- End: currentEnd,
3558
- Search: currentSearch,
3559
- LogTypeCode: currentLogTypeCode,
3560
- });
3561
- }, 500);
3562
- return function () {
3563
- if (searchTimeoutRef.current) {
3564
- clearTimeout(searchTimeoutRef.current);
3565
- }
3566
- };
3567
- }, [Search]);
3459
+ var _m = useContextMenuMESF(), showContextMenu = _m.showContextMenu, registerConfig = _m.registerConfig;
3568
3460
  var handleResetButtonClick = function () {
3569
3461
  resetFilter();
3570
- refreshData({
3571
- Start: moment$3().add(-5, "days").hour(0).minute(0).second(0).toDate(),
3572
- End: moment$3().hour(23).minute(59).second(59).toDate(),
3573
- Search: "",
3574
- LogTypeCode: "A",
3575
- });
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();
3576
3468
  setError("");
3577
3469
  };
3578
- var loadingOverlayComponent = useMemo(function () {
3579
- return (React.createElement("div", { style: {
3580
- width: "100%",
3581
- height: "100%",
3582
- display: "flex",
3583
- justifyContent: "center",
3584
- alignItems: "center",
3585
- } },
3586
- React.createElement(LazyLoading, null)));
3587
- }, [isLoading]);
3588
3470
  // Btn reset data
3589
3471
  var resetFilter = function () {
3590
- setStartFilter(moment$3().add(-5, "days").hour(0).minute(0).second(0).toDate());
3591
- setEndFilter(moment$3().hour(23).minute(59).second(59).toDate());
3592
- setSearchFilter("");
3593
- 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");
3594
3477
  setSelectedLog(undefined);
3595
3478
  };
3596
3479
  var rowClicked = function (rowClickedEvent) {
@@ -3620,11 +3503,13 @@ var TableLogs = function (_a) {
3620
3503
  });
3621
3504
  }, []);
3622
3505
  useEffect(function () {
3623
- refreshData({ Start: Start, End: End, Search: Search, LogTypeCode: LogTypeCode }).then(function (r) { });
3624
- }, [Start, End, LogTypeCode]);
3506
+ if (isError && e) {
3507
+ setError(e.message);
3508
+ }
3509
+ }, [isError, e]);
3625
3510
  return (React.createElement(Grid, { spacing: 0, container: true, justifyContent: "center", alignItems: "center", className: classes.root },
3626
3511
  React.createElement(Grid, { item: true, md: 12, xs: 12, className: classes.filters },
3627
- React.createElement(ModalLogSelected, { show: showLogModal, onHide: function () { return setShowLogModal(false); }, selectedLog: selectedLog }),
3512
+ React.createElement(ModalLogSelected, { show: showLogModal, onHide: function () { return setShowLogModal(false); }, selectedLog: selectedLog, suffixTitle: "MES and System Logs" }),
3628
3513
  React.createElement(Typography$1, { variant: "h5", style: { fontWeight: 600 } }, "MES and System Logs"),
3629
3514
  React.createElement(Grid, { container: true, direction: "row", spacing: 1 },
3630
3515
  React.createElement(Grid, { item: true, md: 12, xs: 12 },
@@ -3632,98 +3517,108 @@ var TableLogs = function (_a) {
3632
3517
  React.createElement(CardContent, { style: { padding: "6px !important", width: "100%" } },
3633
3518
  React.createElement(Grid, { container: true, alignItems: "center", direction: "row", spacing: 1 },
3634
3519
  React.createElement(Grid, { item: true, md: 2, xs: 12 },
3635
- 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 })),
3636
3523
  React.createElement(Grid, { item: true, md: 2, xs: 12 },
3637
- 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 })),
3638
3530
  React.createElement(Grid, { item: true, md: 1, xs: 12 },
3639
- React.createElement(CodeFilter, { LogTypeCode: LogTypeCode, setLogTypeCodeFilter: setLogTypeCodeFilter })),
3640
- React.createElement(Grid, { item: true, md: 2, xs: 12 },
3641
- 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
+ } })),
3642
3544
  React.createElement(Grid, { item: true, md: 4, xs: 12 },
3643
- 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
+ } })),
3644
3549
  React.createElement(Grid, { item: true, md: 1, xs: 12, style: { paddingTop: 8 } },
3645
3550
  React.createElement(Button, { variant: "contained", color: "default", onClick: handleResetButtonClick, fullWidth: true, size: "small" }, "Reset")))))),
3646
3551
  React.createElement(Grid, { item: true, md: 12, xs: 12, style: {
3647
3552
  height: "70vh",
3648
3553
  } },
3649
- React.createElement(Paper, { style: gridStyle },
3650
- React.createElement(AgGridReact, { gridOptions: {
3554
+ React.createElement(Paper, { style: { height: "100%", width: "100%" } },
3555
+ React.createElement(AgGridReact, { loading: isLoading, gridOptions: {
3651
3556
  theme: themeMaterial.withParams({
3652
3557
  spacing: 2,
3653
3558
  }),
3654
- }, 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) {
3655
3560
  rowClicked(e);
3656
3561
  } }))))),
3657
3562
  React.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
3658
3563
  };
3659
3564
 
3565
+ var moment = getMomentTz();
3660
3566
  //fx obtener logs
3661
- var getLogs = function (Start, End, Search, LogTypeCode) { return __awaiter(void 0, void 0, void 0, function () {
3662
- var apiService, parameters, resp;
3663
- return __generator(this, function (_a) {
3664
- 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) {
3665
3572
  case 0:
3666
3573
  apiService = new MESApiService();
3667
- parameters = [];
3668
- parameters.push({ name: "Start", value: Start });
3669
- parameters.push({ name: "End", value: End });
3670
- parameters.push({ name: "Search", value: Search });
3671
- parameters.push({
3672
- name: "LogTypeCode",
3673
- value: LogTypeCode === "A" ? null : LogTypeCode,
3674
- });
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
+ ];
3675
3585
  return [4 /*yield*/, apiService.callV2("[MES].[GetLogs]", parameters)];
3676
3586
  case 1:
3677
- resp = _a.sent();
3678
- 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
+ }
3679
3596
  }
3680
3597
  });
3681
3598
  }); };
3682
3599
 
3683
- 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
+ };
3684
3614
  var Logs = function (prop) {
3685
- var _a = useState(true), loading = _a[0], setLoading = _a[1];
3686
- var _b = useState(""), error = _b[0], setError = _b[1];
3687
- 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;
3688
- var getLogsFromAPI = function () { return __awaiter(void 0, void 0, void 0, function () {
3689
- var canceled, res, logs;
3690
- return __generator(this, function (_a) {
3691
- switch (_a.label) {
3692
- case 0:
3693
- canceled = false;
3694
- setLoading(true);
3695
- return [4 /*yield*/, getLogs(Start, End, Search, LogTypeCode)];
3696
- case 1:
3697
- res = _a.sent();
3698
- if (res.ok) {
3699
- logs = get(res, "data.tables[0].rows", []);
3700
- if (canceled)
3701
- return [2 /*return*/];
3702
- logs = logs.map(function (log) { return (__assign(__assign({}, log), { Timestamp: moment.utc(log["Timestamp"]).toDate() })); });
3703
- actions.setLogs(logs);
3704
- }
3705
- else
3706
- setError(res.message);
3707
- if (canceled)
3708
- return [2 /*return*/];
3709
- setLoading(false);
3710
- return [2 /*return*/, function () {
3711
- canceled = true;
3712
- }];
3713
- }
3714
- });
3715
- }); };
3716
- useEffect(function () {
3717
- getLogsFromAPI();
3718
- }, []);
3719
3615
  return (React__default.createElement(React__default.Fragment, null,
3720
- React__default.createElement(TableLogs, { isLoading: loading, rowData: state.logs, refreshData: getLogsFromAPI }),
3721
- React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
3616
+ React__default.createElement(HelmetDexteel, { title: "MES and System Logs" }),
3617
+ React__default.createElement(TableLogs, null)));
3722
3618
  };
3723
3619
 
3724
3620
  var LogsPage = function (props) {
3725
- return (React.createElement(LogsProvider, null,
3726
- React.createElement(Logs, null)));
3621
+ return React.createElement(Logs, null);
3727
3622
  };
3728
3623
 
3729
3624
  var Alert = function (props) {
@@ -3849,7 +3744,7 @@ var useStyles$x = makeStyles(function (theme) { return ({
3849
3744
  }); });
3850
3745
  var CreateProfile = function (_a) {
3851
3746
  var _b;
3852
- var show = _a.show, onHide = _a.onHide;
3747
+ var show = _a.show, onHide = _a.onHide, suffixTitle = _a.suffixTitle;
3853
3748
  var _c = useState(false), openSnackbar = _c[0], setOpenSnackbar = _c[1];
3854
3749
  var _d = useState(""), message = _d[0], setMessage = _d[1];
3855
3750
  var _e = useState(false), isSubmitLoading = _e[0], setIsSubmitLoading = _e[1];
@@ -3889,6 +3784,7 @@ var CreateProfile = function (_a) {
3889
3784
  }
3890
3785
  }, [show]);
3891
3786
  return (React.createElement(React.Fragment, null,
3787
+ show && (React.createElement(HelmetDexteel, { title: "New Profile".concat(suffixTitle ? " - ".concat(suffixTitle) : "") })),
3892
3788
  React.createElement(Grid, { container: true },
3893
3789
  React.createElement(Grid, { item: true },
3894
3790
  React.createElement(MesfModal, { title: "NEW PROFILE", open: show, handleClose: function () { return onHide(false); }, id: "create-profile-modal", maxWidth: "md" },
@@ -3911,7 +3807,7 @@ var CreateProfile = function (_a) {
3911
3807
  };
3912
3808
 
3913
3809
  var DeleteProfile = function (_a) {
3914
- var profile = _a.profile, show = _a.show, onHide = _a.onHide;
3810
+ var profile = _a.profile, show = _a.show, onHide = _a.onHide, suffixTitle = _a.suffixTitle;
3915
3811
  var _b = useState(false), open = _b[0], setOpen = _b[1];
3916
3812
  var _c = useState(""), error = _c[0], setError = _c[1];
3917
3813
  var _d = useState(true), isLoading = _d[0], setIsLoading = _d[1];
@@ -3953,6 +3849,7 @@ var DeleteProfile = function (_a) {
3953
3849
  });
3954
3850
  }); };
3955
3851
  return (React__default.createElement(React__default.Fragment, null,
3852
+ show && (React__default.createElement(HelmetDexteel, { title: "Delete Profile".concat(suffixTitle ? " - ".concat(suffixTitle) : "") })),
3956
3853
  React__default.createElement(MesfModal, { title: "DELETE PROFILE", open: show, handleClose: function () { return onHide(false); }, id: "delete-profile-modal", maxWidth: "md" },
3957
3854
  React__default.createElement("form", null,
3958
3855
  React__default.createElement(MesfModal.Content, { style: { padding: "15px 30px" } },
@@ -4098,7 +3995,7 @@ var useStyles$w = makeStyles(function (theme) { return ({
4098
3995
  },
4099
3996
  }); });
4100
3997
  var ActionsOfProfile = function (_a) {
4101
- var profileForEdit = _a.profileForEdit, show = _a.show, onHide = _a.onHide;
3998
+ var profileForEdit = _a.profileForEdit, show = _a.show, onHide = _a.onHide, suffixTitle = _a.suffixTitle;
4102
3999
  var classes = useStyles$w();
4103
4000
  var _b = useState(null), actionsOfProfile = _b[0], setActionsOfProfile = _b[1];
4104
4001
  var _c = useState(false), open = _c[0], setOpen = _c[1];
@@ -4179,6 +4076,7 @@ var ActionsOfProfile = function (_a) {
4179
4076
  }
4180
4077
  }, [show]);
4181
4078
  return (React.createElement(React.Fragment, null,
4079
+ show && (React.createElement(HelmetDexteel, { title: "Edit Profile".concat(suffixTitle ? " - ".concat(suffixTitle) : "") })),
4182
4080
  React.createElement(MesfModal, { title: "EDIT PROFILE", open: show, handleClose: function () { return onHide(false); }, id: "edit-profile-modal", maxWidth: "xl" },
4183
4081
  React.createElement("form", { onSubmit: handleSubmit(onSubmit) },
4184
4082
  React.createElement(MesfModal.Content, { style: { padding: "0 30px 15px" } },
@@ -4519,19 +4417,19 @@ var TableProfiles = function (_a) {
4519
4417
  setModalCreateActive(false);
4520
4418
  if (shouldUpdate)
4521
4419
  getProfilesFromAPI().then(function () { });
4522
- } }),
4420
+ }, suffixTitle: "Profile Management" }),
4523
4421
  React.createElement(DeleteProfile, { show: modalDeleteProfile, profile: profile, onHide: function (shouldUpdate) {
4524
4422
  setModalDeleteProfile(false);
4525
4423
  setProfile(null);
4526
4424
  if (shouldUpdate)
4527
4425
  getProfilesFromAPI().then(function () { });
4528
- } }),
4426
+ }, suffixTitle: "Profile Management" }),
4529
4427
  React.createElement(ActionsOfProfile, { show: modalProceduresProfile, profileForEdit: profile, onHide: function (shouldUpdate) {
4530
4428
  setModalProceduresProfile(false);
4531
4429
  setProfile(null);
4532
4430
  if (shouldUpdate)
4533
4431
  getProfilesFromAPI().then(function () { });
4534
- } })));
4432
+ }, suffixTitle: "Profile Management" })));
4535
4433
  };
4536
4434
 
4537
4435
  var Profiles = function (prop) {
@@ -4564,6 +4462,7 @@ var Profiles = function (prop) {
4564
4462
  }, []);
4565
4463
  if (state.profiles) {
4566
4464
  return (React.createElement(React.Fragment, null,
4465
+ React.createElement(HelmetDexteel, { title: "Profile Management" }),
4567
4466
  React.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center" },
4568
4467
  React.createElement(Grid, { item: true, md: 12, xs: 12, style: { margin: 0 } },
4569
4468
  React.createElement(TableProfiles, { isLoading: isLoading, getProfilesFromAPI: getProfilesFromAPI }))),
@@ -4702,7 +4601,7 @@ var useStyles$t = makeStyles(function (theme) { return ({
4702
4601
  }); });
4703
4602
  var CreateShift = function (_a) {
4704
4603
  var _b, _c;
4705
- var show = _a.show, onHide = _a.onHide;
4604
+ var show = _a.show, onHide = _a.onHide, suffixTitle = _a.suffixTitle;
4706
4605
  var _d = useState(false), open = _d[0], setOpen = _d[1];
4707
4606
  var _e = useState(false), isSubmitLoading = _e[0], setIsSubmitLoading = _e[1];
4708
4607
  var _f = useState(""), error = _f[0], setError = _f[1];
@@ -4759,6 +4658,7 @@ var CreateShift = function (_a) {
4759
4658
  }
4760
4659
  }, [show]);
4761
4660
  return (React.createElement(React.Fragment, null,
4661
+ show && (React.createElement(HelmetDexteel, { title: "New Shift/Crew".concat(suffixTitle ? " - ".concat(suffixTitle) : "") })),
4762
4662
  React.createElement(Grid, { container: true },
4763
4663
  React.createElement(Grid, { item: true },
4764
4664
  React.createElement(MesfModal, { title: "NEW SHIFT/CREW", open: show, handleClose: function () { return onHide(false); }, id: "create-shift-modal", maxWidth: "md" },
@@ -4930,7 +4830,7 @@ var useStyles$s = makeStyles(function (theme) { return ({
4930
4830
  }); });
4931
4831
  var DeleteShift = function (_a) {
4932
4832
  var _b;
4933
- var show = _a.show, onHide = _a.onHide;
4833
+ var show = _a.show, onHide = _a.onHide, suffixTitle = _a.suffixTitle;
4934
4834
  var _c = useState(false), open = _c[0], setOpen = _c[1];
4935
4835
  var _d = useState(false), isSubmitLoading = _d[0], setIsSubmitLoading = _d[1];
4936
4836
  var _e = useState(false), deleteAlert = _e[0], setDeleteAlert = _e[1];
@@ -4987,6 +4887,7 @@ var DeleteShift = function (_a) {
4987
4887
  }
4988
4888
  }, [show]);
4989
4889
  return (React.createElement(React.Fragment, null,
4890
+ show && (React.createElement(HelmetDexteel, { title: "Delete Shift".concat(suffixTitle ? " - ".concat(suffixTitle) : "") })),
4990
4891
  React.createElement(Grid, { container: true },
4991
4892
  React.createElement(Grid, { item: true },
4992
4893
  React.createElement(MesfModal, { title: "DELETE SHIFT", open: show, handleClose: function () { return onHide(false); }, id: "delete-shift-MesfModal", maxWidth: "md" },
@@ -5095,7 +4996,7 @@ var useStyles$r = makeStyles(function (theme) { return ({
5095
4996
  }); });
5096
4997
  var EditShift = function (_a) {
5097
4998
  var _b;
5098
- var show = _a.show, onHide = _a.onHide;
4999
+ var show = _a.show, onHide = _a.onHide, suffixTitle = _a.suffixTitle;
5099
5000
  var _c = useState(false), open = _c[0], setOpen = _c[1];
5100
5001
  var _d = useState(""), error = _d[0], setError = _d[1];
5101
5002
  var _e = useState(false), isSubmitLoading = _e[0], setIsSubmitLoading = _e[1];
@@ -5161,6 +5062,7 @@ var EditShift = function (_a) {
5161
5062
  setValue("NumberOfCrews", crewsCodes.length);
5162
5063
  }, [initialShiftPerDayAndCrewsNumber]);
5163
5064
  return (React.createElement(React.Fragment, null,
5065
+ show && (React.createElement(HelmetDexteel, { title: "Edit Shift".concat(suffixTitle ? " - ".concat(suffixTitle) : "") })),
5164
5066
  React.createElement(Grid, { container: true },
5165
5067
  React.createElement(Grid, { item: true },
5166
5068
  React.createElement(MesfModal, { title: "EDIT SHIFT", open: show, handleClose: function () { return onHide(false); }, id: "edit-shift-modal", maxWidth: "md" },
@@ -5407,7 +5309,7 @@ var useTableData$2 = function (_a) {
5407
5309
  headerName: "Pattern Start",
5408
5310
  valueFormatter: function (_a) {
5409
5311
  var value = _a.value;
5410
- 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"));
5411
5313
  },
5412
5314
  minWidth: 180,
5413
5315
  flex: 4,
@@ -5610,17 +5512,17 @@ var TableShiftsCrews = function (_a) {
5610
5512
  setOpenModalNew(false);
5611
5513
  if (shouldUpdate)
5612
5514
  getShiftsCrewsFromAPI();
5613
- } }),
5515
+ }, suffixTitle: "Shifts / Crew" }),
5614
5516
  React.createElement(EditShift, { show: openModalEditShift, onHide: function (shouldUpdate) {
5615
5517
  setOpenModalEditShift(false);
5616
5518
  if (shouldUpdate)
5617
5519
  getShiftsCrewsFromAPI();
5618
- } }),
5520
+ }, suffixTitle: "Shifts / Crew" }),
5619
5521
  React.createElement(DeleteShift, { show: openModalDeleteShift, onHide: function (shouldUpdate) {
5620
5522
  setOpenModalDeleteShift(false);
5621
5523
  if (shouldUpdate)
5622
5524
  getShiftsCrewsFromAPI();
5623
- } }),
5525
+ }, suffixTitle: "Shifts / Crew" }),
5624
5526
  React.createElement(Grid, { component: Paper, item: true, md: 12, xs: 12, style: {
5625
5527
  height: "70vh",
5626
5528
  } },
@@ -5668,6 +5570,7 @@ var ShiftsCrews = function (prop) {
5668
5570
  React.createElement(TableShiftsCrews, { isLoading: isLoading, getShiftsCrewsFromAPI: getShiftsCrewsFromAPI })));
5669
5571
  }
5670
5572
  return (React.createElement(React.Fragment, null,
5573
+ React.createElement(HelmetDexteel, { title: "Shifts and Crews" }),
5671
5574
  React.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center", style: { height: "70vh", width: "100%" } },
5672
5575
  React.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } }),
5673
5576
  React.createElement(LazyLoading, null))));
@@ -6091,7 +5994,7 @@ var useStyles$o = makeStyles(function (theme) { return ({
6091
5994
  },
6092
5995
  }); });
6093
5996
  var CreateNewAssetDialog = function (_a) {
6094
- var show = _a.show, onHide = _a.onHide;
5997
+ var show = _a.show, onHide = _a.onHide, suffixTitle = _a.suffixTitle;
6095
5998
  var classes = useStyles$o();
6096
5999
  var _b = useState(true), fullWidth = _b[0]; _b[1];
6097
6000
  var _c = useState("sm"), maxWidth = _c[0]; _c[1];
@@ -6170,54 +6073,56 @@ var CreateNewAssetDialog = function (_a) {
6170
6073
  }
6171
6074
  }
6172
6075
  }, [show]);
6173
- return (React__default.createElement("div", { className: classes.root },
6174
- React__default.createElement(Dialog$1, { fullWidth: fullWidth, maxWidth: maxWidth, open: show, onClose: function () { return handleCancel(); }, disableEnforceFocus: true, className: classes.root },
6175
- React__default.createElement("form", { onSubmit: handleFormSubmit },
6176
- React__default.createElement(Grid, { container: true, style: { padding: "15px 0 20px", height: "50%" } },
6177
- React__default.createElement(Grid, { container: true, item: true },
6178
- React__default.createElement(Grid, { item: true, md: 12, xs: 12 },
6179
- React__default.createElement(Typography$1, { style: { padding: "0 24px 12px", fontSize: 25 } }, "NEW ASSET"))),
6180
- React__default.createElement(Grid, { container: true, style: { alignItems: "center" } },
6181
- React__default.createElement(DialogContent$1, { dividers: true, style: { padding: "10px 24px 0" } },
6076
+ return (React__default.createElement(React__default.Fragment, null,
6077
+ show && (React__default.createElement(HelmetDexteel, { title: "New Asset".concat(suffixTitle ? " - ".concat(suffixTitle) : "") })),
6078
+ React__default.createElement("div", { className: classes.root },
6079
+ React__default.createElement(Dialog$1, { fullWidth: fullWidth, maxWidth: maxWidth, open: show, onClose: function () { return handleCancel(); }, disableEnforceFocus: true, className: classes.root },
6080
+ React__default.createElement("form", { onSubmit: handleFormSubmit },
6081
+ React__default.createElement(Grid, { container: true, style: { padding: "15px 0 20px", height: "50%" } },
6082
+ React__default.createElement(Grid, { container: true, item: true },
6182
6083
  React__default.createElement(Grid, { item: true, md: 12, xs: 12 },
6183
- React__default.createElement(Controller, { name: "AssetName", control: control, rules: {
6184
- validate: {
6185
- notEmpty: function (value) { return value.trim() !== ""; },
6186
- },
6187
- }, render: function (_a) {
6188
- var _b;
6189
- var _c = _a.field, onChange = _c.onChange, value = _c.value;
6190
- return (React__default.createElement(React__default.Fragment, null,
6191
- React__default.createElement(TextField, { label: "Asset Name", variant: "outlined", error: !!errors.AssetName, fullWidth: true, margin: "dense", autoComplete: "off", onChange: onChange, value: value }),
6192
- ((_b = errors.AssetName) === null || _b === void 0 ? void 0 : _b.type) === "notEmpty" && (React__default.createElement("span", { className: classes.errorLabel }, "Asset Name is required"))));
6193
- } })),
6194
- React__default.createElement(Grid, { container: true },
6195
- React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { marginBottom: "8px" } },
6196
- React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { padding: 0, marginTop: 10 } },
6197
- React__default.createElement(Controller, { name: "ParentAssetId", control: control, render: function (_a) {
6198
- var value = _a.field.value;
6199
- return (React__default.createElement(TreePickerControlV2, { inputTitle: "Asset", title: "Asset Parent", dataSource: assetCodes, value: value, onSelect: changeParentAssetId, selectBranch: true, selectActive: false, selectInternal: false }));
6200
- } }))),
6201
- React__default.createElement(Grid, { container: true, style: { marginTop: "10px 0", padding: "0" } },
6202
- React__default.createElement(Grid, { item: true, xs: 6, md: 6 },
6203
- React__default.createElement(Controller, { name: "CanBeDefaultAsset", control: control, defaultValue: false, render: function (_a) {
6204
- var field = _a.field;
6205
- return (React__default.createElement(FormControlLabel, { className: classes.checkbox, control: React__default.createElement(Checkbox, { checked: field.value, onChange: function (e) {
6206
- return field.onChange(e.target.checked);
6207
- }, name: "CanBeDefaultAsset", color: "primary" }), label: "Can be Default Asset" }));
6208
- } }))))),
6209
- React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { marginTop: "15px" } },
6210
- React__default.createElement(DialogActions$1, { style: { padding: "0px 24px" } },
6211
- React__default.createElement(Grid, { container: true, justifyContent: "flex-end", style: { margin: 0 } },
6212
- React__default.createElement(Grid, { container: true, item: true, style: {
6213
- marginLeft: "auto",
6214
- marginTop: 5,
6215
- marginBottom: 0,
6216
- } },
6217
- React__default.createElement(Grid, { item: true, md: 6, xs: 12, style: { paddingLeft: "0", paddingRight: "16px" } },
6218
- React__default.createElement(Button, { fullWidth: true, variant: "contained", color: "default", onClick: function () { return handleCancel(); } }, "Cancel")),
6219
- React__default.createElement(Grid, { item: true, md: 6, xs: 12 },
6220
- React__default.createElement(Button, { fullWidth: true, startIcon: isCreateSubmitLoading && (React__default.createElement(CircularProgress, { size: "1rem" })), disabled: isCreateSubmitLoading, variant: "contained", color: "primary", type: "submit" }, "Save")))))))))),
6084
+ React__default.createElement(Typography$1, { style: { padding: "0 24px 12px", fontSize: 25 } }, "NEW ASSET"))),
6085
+ React__default.createElement(Grid, { container: true, style: { alignItems: "center" } },
6086
+ React__default.createElement(DialogContent$1, { dividers: true, style: { padding: "10px 24px 0" } },
6087
+ React__default.createElement(Grid, { item: true, md: 12, xs: 12 },
6088
+ React__default.createElement(Controller, { name: "AssetName", control: control, rules: {
6089
+ validate: {
6090
+ notEmpty: function (value) { return value.trim() !== ""; },
6091
+ },
6092
+ }, render: function (_a) {
6093
+ var _b;
6094
+ var _c = _a.field, onChange = _c.onChange, value = _c.value;
6095
+ return (React__default.createElement(React__default.Fragment, null,
6096
+ React__default.createElement(TextField, { label: "Asset Name", variant: "outlined", error: !!errors.AssetName, fullWidth: true, margin: "dense", autoComplete: "off", onChange: onChange, value: value }),
6097
+ ((_b = errors.AssetName) === null || _b === void 0 ? void 0 : _b.type) === "notEmpty" && (React__default.createElement("span", { className: classes.errorLabel }, "Asset Name is required"))));
6098
+ } })),
6099
+ React__default.createElement(Grid, { container: true },
6100
+ React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { marginBottom: "8px" } },
6101
+ React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { padding: 0, marginTop: 10 } },
6102
+ React__default.createElement(Controller, { name: "ParentAssetId", control: control, render: function (_a) {
6103
+ var value = _a.field.value;
6104
+ return (React__default.createElement(TreePickerControlV2, { inputTitle: "Asset", title: "Asset Parent", dataSource: assetCodes, value: value, onSelect: changeParentAssetId, selectBranch: true, selectActive: false, selectInternal: false }));
6105
+ } }))),
6106
+ React__default.createElement(Grid, { container: true, style: { marginTop: "10px 0", padding: "0" } },
6107
+ React__default.createElement(Grid, { item: true, xs: 6, md: 6 },
6108
+ React__default.createElement(Controller, { name: "CanBeDefaultAsset", control: control, defaultValue: false, render: function (_a) {
6109
+ var field = _a.field;
6110
+ return (React__default.createElement(FormControlLabel, { className: classes.checkbox, control: React__default.createElement(Checkbox, { checked: field.value, onChange: function (e) {
6111
+ return field.onChange(e.target.checked);
6112
+ }, name: "CanBeDefaultAsset", color: "primary" }), label: "Can be Default Asset" }));
6113
+ } }))))),
6114
+ React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { marginTop: "15px" } },
6115
+ React__default.createElement(DialogActions$1, { style: { padding: "0px 24px" } },
6116
+ React__default.createElement(Grid, { container: true, justifyContent: "flex-end", style: { margin: 0 } },
6117
+ React__default.createElement(Grid, { container: true, item: true, style: {
6118
+ marginLeft: "auto",
6119
+ marginTop: 5,
6120
+ marginBottom: 0,
6121
+ } },
6122
+ React__default.createElement(Grid, { item: true, md: 6, xs: 12, style: { paddingLeft: "0", paddingRight: "16px" } },
6123
+ React__default.createElement(Button, { fullWidth: true, variant: "contained", color: "default", onClick: function () { return handleCancel(); } }, "Cancel")),
6124
+ React__default.createElement(Grid, { item: true, md: 6, xs: 12 },
6125
+ React__default.createElement(Button, { fullWidth: true, startIcon: isCreateSubmitLoading && (React__default.createElement(CircularProgress, { size: "1rem" })), disabled: isCreateSubmitLoading, variant: "contained", color: "primary", type: "submit" }, "Save"))))))))))),
6221
6126
  React__default.createElement(ErrorModal, { error: errorCreateAsset, onHide: function () { return setErrorCreateAsset(""); } }),
6222
6127
  React__default.createElement(Snackbar, { open: assetCreatedSuccess, autoHideDuration: 2500, onClose: handleClose },
6223
6128
  React__default.createElement(Alert$3, { severity: "info", onClose: handleClose }, "Document created successfully"))));
@@ -6270,7 +6175,7 @@ var useStyles$n = makeStyles(function (theme) { return ({
6270
6175
  },
6271
6176
  }); });
6272
6177
  var EditAssetDialog = function (_a) {
6273
- var show = _a.show, onHide = _a.onHide;
6178
+ var show = _a.show, onHide = _a.onHide, suffixTitle = _a.suffixTitle;
6274
6179
  var classes = useStyles$n();
6275
6180
  var _b = useState(true), fullWidth = _b[0]; _b[1];
6276
6181
  var _c = useState("sm"), maxWidth = _c[0]; _c[1];
@@ -6336,59 +6241,61 @@ var EditAssetDialog = function (_a) {
6336
6241
  setValue("CanBeDefaultAsset", assetNodeFromApi === null || assetNodeFromApi === void 0 ? void 0 : assetNodeFromApi.CanBeDefaultAsset);
6337
6242
  }
6338
6243
  }, [show]);
6339
- return (React__default.createElement("div", { className: classes.root },
6340
- React__default.createElement(Dialog$1, { fullWidth: fullWidth, maxWidth: maxWidth, open: show, onClose: function () { return handleCancel(); }, disableEnforceFocus: true, className: classes.root },
6341
- React__default.createElement("form", { onSubmit: handleFormSubmit },
6342
- React__default.createElement(Grid, { container: true, style: { padding: "15px 0 20px", height: "50%" } },
6343
- React__default.createElement(Grid, { container: true, item: true },
6344
- React__default.createElement(Grid, { item: true, md: 12, xs: 12 },
6345
- React__default.createElement(Typography$1, { style: { padding: "0 24px 12px", fontSize: 25 } }, assetNodeSelectedInTree === null || assetNodeSelectedInTree === void 0 ? void 0 : assetNodeSelectedInTree.AssetName))),
6346
- React__default.createElement(Grid, { container: true, style: { alignItems: "center" } },
6347
- React__default.createElement(DialogContent$1, { dividers: true, style: { padding: "10px 24px 0" } },
6244
+ return (React__default.createElement(React__default.Fragment, null,
6245
+ show && (React__default.createElement(HelmetDexteel, { title: "Edit Asset".concat(suffixTitle ? " - ".concat(suffixTitle) : "") })),
6246
+ React__default.createElement("div", { className: classes.root },
6247
+ React__default.createElement(Dialog$1, { fullWidth: fullWidth, maxWidth: maxWidth, open: show, onClose: function () { return handleCancel(); }, disableEnforceFocus: true, className: classes.root },
6248
+ React__default.createElement("form", { onSubmit: handleFormSubmit },
6249
+ React__default.createElement(Grid, { container: true, style: { padding: "15px 0 20px", height: "50%" } },
6250
+ React__default.createElement(Grid, { container: true, item: true },
6348
6251
  React__default.createElement(Grid, { item: true, md: 12, xs: 12 },
6349
- React__default.createElement(Controller, { name: "AssetName", control: control, render: function (_a) {
6350
- var _b = _a.field, onChange = _b.onChange, value = _b.value;
6351
- return (React__default.createElement(React__default.Fragment, null,
6352
- React__default.createElement(TextField, { label: "Asset Name", variant: "outlined", error: !!errors.AssetName, fullWidth: true, margin: "dense", autoComplete: "off", onChange: onChange, value: value })));
6353
- } })),
6354
- React__default.createElement(Grid, { container: true },
6355
- React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { marginBottom: "8px" } },
6356
- React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { padding: 0, marginTop: 10 } },
6357
- React__default.createElement(Controller, { name: "ParentAssetId", control: control, render: function (_a) { return (React__default.createElement("div", { title: "Parent Asset: ".concat(parentAsset) },
6358
- React__default.createElement(TreePickerControl, { inputTitle: parentAsset
6359
- ? "Parent Asset: ".concat(parentAsset)
6360
- : "Parent Asset", title: "Asset Parent", dataSource: assetCodes, value: (assetNodeSelectedInTree === null || assetNodeSelectedInTree === void 0 ? void 0 : assetNodeSelectedInTree.ParentAssetId) || 1, description: (assetNodeSelectedInTree === null || assetNodeSelectedInTree === void 0 ? void 0 : assetNodeSelectedInTree.ParentAssetName) ||
6361
- "Plant", onSelect: changeParentAssetId, selectBranch: true, selectActive: false, selectInternal: false }))); } })),
6362
- React__default.createElement(Grid, { container: true, style: { marginTop: "10px", padding: "0px" } },
6363
- React__default.createElement(Grid, { item: true, xs: 6, md: 6 },
6364
- React__default.createElement(Controller, { name: "IsBranch", control: control, defaultValue: false, render: function (_a) {
6365
- var field = _a.field;
6366
- return (React__default.createElement(FormControlLabel, { className: classes.checkbox, control: React__default.createElement(Checkbox, { checked: field.value, onChange: function (e) {
6367
- return field.onChange(e.target.checked);
6368
- }, name: "IsAsset", color: "primary", disabled: true }), label: "Has Children" }));
6369
- } })),
6370
- React__default.createElement(Grid, { item: true, xs: 6, md: 6 },
6371
- React__default.createElement(Controller, { name: "CanBeDefaultAsset", control: control, defaultValue: false, render: function (_a) {
6372
- var field = _a.field;
6373
- return (React__default.createElement(FormControlLabel, { className: classes.checkbox, control: React__default.createElement(Checkbox, { checked: field.value, onChange: function (e) {
6374
- return field.onChange(e.target.checked);
6375
- }, name: "CanBeDefaultAsset", color: "primary" }), label: "Can be Default Asset" }));
6376
- } })))))),
6377
- React__default.createElement(Grid, { item: true, md: 12, xs: 12, justifyContent: "flex-end", style: { marginTop: "15px" } },
6378
- React__default.createElement(DialogActions$1, { style: { padding: "0px 24px" } },
6379
- React__default.createElement(Grid, { container: true, justifyContent: "flex-end", style: { margin: 0 } },
6380
- React__default.createElement(Grid, { container: true, item: true, style: {
6381
- marginLeft: "auto",
6382
- marginTop: 5,
6383
- marginBottom: 0,
6384
- } },
6385
- React__default.createElement(Grid, { item: true, md: 6, xs: 12, style: { paddingLeft: "0", paddingRight: "16px" } },
6386
- React__default.createElement(Button, { fullWidth: true, variant: "contained", color: "default", onClick: function () { return handleCancel(); } }, "Cancel")),
6387
- React__default.createElement(Grid, { item: true, md: 6, xs: 12 },
6388
- React__default.createElement(Button, { fullWidth: true, startIcon: isEditSubmitLoading && (React__default.createElement(CircularProgress, { size: "1rem" })), disabled: isEditSubmitLoading, variant: "contained", color: "primary", type: "submit" }, "Save"))))),
6389
- React__default.createElement(ErrorModal, { error: errorEditAsset, onHide: function () { return setErrorEditAsset(""); } }),
6390
- React__default.createElement(Snackbar, { open: assetEditedSuccess, autoHideDuration: 2500, onClose: handleClose },
6391
- React__default.createElement(Alert$2, { severity: "info", onClose: handleClose }, "Document created succesfully")))))))));
6252
+ React__default.createElement(Typography$1, { style: { padding: "0 24px 12px", fontSize: 25 } }, assetNodeSelectedInTree === null || assetNodeSelectedInTree === void 0 ? void 0 : assetNodeSelectedInTree.AssetName))),
6253
+ React__default.createElement(Grid, { container: true, style: { alignItems: "center" } },
6254
+ React__default.createElement(DialogContent$1, { dividers: true, style: { padding: "10px 24px 0" } },
6255
+ React__default.createElement(Grid, { item: true, md: 12, xs: 12 },
6256
+ React__default.createElement(Controller, { name: "AssetName", control: control, render: function (_a) {
6257
+ var _b = _a.field, onChange = _b.onChange, value = _b.value;
6258
+ return (React__default.createElement(React__default.Fragment, null,
6259
+ React__default.createElement(TextField, { label: "Asset Name", variant: "outlined", error: !!errors.AssetName, fullWidth: true, margin: "dense", autoComplete: "off", onChange: onChange, value: value })));
6260
+ } })),
6261
+ React__default.createElement(Grid, { container: true },
6262
+ React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { marginBottom: "8px" } },
6263
+ React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { padding: 0, marginTop: 10 } },
6264
+ React__default.createElement(Controller, { name: "ParentAssetId", control: control, render: function (_a) { return (React__default.createElement("div", { title: "Parent Asset: ".concat(parentAsset) },
6265
+ React__default.createElement(TreePickerControl, { inputTitle: parentAsset
6266
+ ? "Parent Asset: ".concat(parentAsset)
6267
+ : "Parent Asset", title: "Asset Parent", dataSource: assetCodes, value: (assetNodeSelectedInTree === null || assetNodeSelectedInTree === void 0 ? void 0 : assetNodeSelectedInTree.ParentAssetId) || 1, description: (assetNodeSelectedInTree === null || assetNodeSelectedInTree === void 0 ? void 0 : assetNodeSelectedInTree.ParentAssetName) ||
6268
+ "Plant", onSelect: changeParentAssetId, selectBranch: true, selectActive: false, selectInternal: false }))); } })),
6269
+ React__default.createElement(Grid, { container: true, style: { marginTop: "10px", padding: "0px" } },
6270
+ React__default.createElement(Grid, { item: true, xs: 6, md: 6 },
6271
+ React__default.createElement(Controller, { name: "IsBranch", control: control, defaultValue: false, render: function (_a) {
6272
+ var field = _a.field;
6273
+ return (React__default.createElement(FormControlLabel, { className: classes.checkbox, control: React__default.createElement(Checkbox, { checked: field.value, onChange: function (e) {
6274
+ return field.onChange(e.target.checked);
6275
+ }, name: "IsAsset", color: "primary", disabled: true }), label: "Has Children" }));
6276
+ } })),
6277
+ React__default.createElement(Grid, { item: true, xs: 6, md: 6 },
6278
+ React__default.createElement(Controller, { name: "CanBeDefaultAsset", control: control, defaultValue: false, render: function (_a) {
6279
+ var field = _a.field;
6280
+ return (React__default.createElement(FormControlLabel, { className: classes.checkbox, control: React__default.createElement(Checkbox, { checked: field.value, onChange: function (e) {
6281
+ return field.onChange(e.target.checked);
6282
+ }, name: "CanBeDefaultAsset", color: "primary" }), label: "Can be Default Asset" }));
6283
+ } })))))),
6284
+ React__default.createElement(Grid, { item: true, md: 12, xs: 12, justifyContent: "flex-end", style: { marginTop: "15px" } },
6285
+ React__default.createElement(DialogActions$1, { style: { padding: "0px 24px" } },
6286
+ React__default.createElement(Grid, { container: true, justifyContent: "flex-end", style: { margin: 0 } },
6287
+ React__default.createElement(Grid, { container: true, item: true, style: {
6288
+ marginLeft: "auto",
6289
+ marginTop: 5,
6290
+ marginBottom: 0,
6291
+ } },
6292
+ React__default.createElement(Grid, { item: true, md: 6, xs: 12, style: { paddingLeft: "0", paddingRight: "16px" } },
6293
+ React__default.createElement(Button, { fullWidth: true, variant: "contained", color: "default", onClick: function () { return handleCancel(); } }, "Cancel")),
6294
+ React__default.createElement(Grid, { item: true, md: 6, xs: 12 },
6295
+ React__default.createElement(Button, { fullWidth: true, startIcon: isEditSubmitLoading && (React__default.createElement(CircularProgress, { size: "1rem" })), disabled: isEditSubmitLoading, variant: "contained", color: "primary", type: "submit" }, "Save"))))))))))),
6296
+ React__default.createElement(ErrorModal, { error: errorEditAsset, onHide: function () { return setErrorEditAsset(""); } }),
6297
+ React__default.createElement(Snackbar, { open: assetEditedSuccess, autoHideDuration: 2500, onClose: handleClose },
6298
+ React__default.createElement(Alert$2, { severity: "info", onClose: handleClose }, "Document created succesfully"))));
6392
6299
  };
6393
6300
 
6394
6301
  var useStyles$m = makeStyles(function (theme) { return ({
@@ -6434,7 +6341,7 @@ var useStyles$m = makeStyles(function (theme) { return ({
6434
6341
  },
6435
6342
  }); });
6436
6343
  var RemoveAssetDialog = function (_a) {
6437
- var show = _a.show, onHide = _a.onHide;
6344
+ var show = _a.show, onHide = _a.onHide, suffixTitle = _a.suffixTitle;
6438
6345
  var classes = useStyles$m();
6439
6346
  var _b = useState(true), fullWidth = _b[0]; _b[1];
6440
6347
  var _c = useState("sm"), maxWidth = _c[0]; _c[1];
@@ -6475,6 +6382,7 @@ var RemoveAssetDialog = function (_a) {
6475
6382
  });
6476
6383
  }); };
6477
6384
  return (React__default.createElement(React__default.Fragment, null,
6385
+ show && (React__default.createElement(HelmetDexteel, { title: "Delete Asset".concat(suffixTitle ? " - ".concat(suffixTitle) : "") })),
6478
6386
  React__default.createElement(Dialog$1, { fullWidth: fullWidth, maxWidth: maxWidth, open: show, onClose: function () { return handleCancel(); }, disableEnforceFocus: true, className: classes.root },
6479
6387
  React__default.createElement(DialogTitle$1, { id: "responsive-dialog-title" }, "WARNING"),
6480
6388
  React__default.createElement(DialogContent$1, null,
@@ -6544,7 +6452,7 @@ var useStyles$l = makeStyles(function (theme) { return ({
6544
6452
  },
6545
6453
  }); });
6546
6454
  var ViewerAssetDialog = function (_a) {
6547
- var show = _a.show, onHide = _a.onHide;
6455
+ var show = _a.show, onHide = _a.onHide, suffixTitle = _a.suffixTitle;
6548
6456
  var classes = useStyles$l();
6549
6457
  var _b = useState(true), fullWidth = _b[0]; _b[1];
6550
6458
  var _c = useState("sm"), maxWidth = _c[0]; _c[1];
@@ -6570,43 +6478,45 @@ var ViewerAssetDialog = function (_a) {
6570
6478
  setValue("CanBeDefaultAsset", assetNodeFromApi === null || assetNodeFromApi === void 0 ? void 0 : assetNodeFromApi.CanBeDefaultAsset);
6571
6479
  }
6572
6480
  }, [show]);
6573
- return (React__default.createElement("div", { className: classes.root },
6574
- React__default.createElement(Dialog$1, { fullWidth: fullWidth, maxWidth: maxWidth, open: show, onClose: function () { return handleCancel(); }, disableEnforceFocus: true, className: classes.root },
6575
- React__default.createElement("form", { onSubmit: function () { } },
6576
- React__default.createElement(Grid, { container: true, style: { padding: "15px 0", height: "50%" } },
6577
- React__default.createElement(Grid, { container: true, item: true },
6578
- React__default.createElement(Grid, { item: true, md: 12, xs: 12 },
6579
- React__default.createElement(Typography$1, { style: { padding: "0 24px 12px", fontSize: 25 } }, assetNodeSelectedInTree === null || assetNodeSelectedInTree === void 0 ? void 0 : assetNodeSelectedInTree.AssetName))),
6580
- React__default.createElement(Grid, { container: true, style: { alignItems: "center" } },
6581
- React__default.createElement(DialogContent$1, { dividers: true, style: { padding: "10px 24px 0" } },
6481
+ return (React__default.createElement(React__default.Fragment, null,
6482
+ show && (React__default.createElement(HelmetDexteel, { title: "View Asset".concat(suffixTitle ? " - ".concat(suffixTitle) : "") })),
6483
+ React__default.createElement("div", { className: classes.root },
6484
+ React__default.createElement(Dialog$1, { fullWidth: fullWidth, maxWidth: maxWidth, open: show, onClose: function () { return handleCancel(); }, disableEnforceFocus: true, className: classes.root },
6485
+ React__default.createElement("form", { onSubmit: function () { } },
6486
+ React__default.createElement(Grid, { container: true, style: { padding: "15px 0", height: "50%" } },
6487
+ React__default.createElement(Grid, { container: true, item: true },
6582
6488
  React__default.createElement(Grid, { item: true, md: 12, xs: 12 },
6583
- React__default.createElement(Controller, { name: "AssetName", control: control, render: function (_a) {
6584
- var _b = _a.field, onChange = _b.onChange, value = _b.value;
6585
- return (React__default.createElement(React__default.Fragment, null,
6586
- React__default.createElement(TextField, { label: "Asset Name", variant: "outlined", error: !!errors.AssetName, fullWidth: true, margin: "dense", autoComplete: "off", onChange: onChange, value: value, disabled: true })));
6587
- } })),
6588
- React__default.createElement(Grid, { container: true },
6589
- React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { marginBottom: "8px" } },
6590
- React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { padding: 0, marginTop: 10 } },
6591
- React__default.createElement(Controller, { name: "ParentAssetName", control: control, render: function (_a) {
6592
- var _b = _a.field, onChange = _b.onChange, value = _b.value;
6593
- return (React__default.createElement(React__default.Fragment, null, value ? (React__default.createElement(TextField, { label: "Parent Asset", variant: "outlined", error: !!errors.AssetName, fullWidth: true, margin: "dense", autoComplete: "off", onChange: onChange, value: value || "", disabled: true })) : (React__default.createElement(React__default.Fragment, null))));
6594
- } }))),
6595
- React__default.createElement(Grid, { container: true, style: { marginTop: "5px", padding: "0 8px" } },
6596
- React__default.createElement(Grid, { item: true, xs: 6, md: 6 },
6597
- React__default.createElement(Controller, { name: "IsBranch", control: control, defaultValue: false, render: function (_a) {
6598
- var field = _a.field;
6599
- return (React__default.createElement(FormControlLabel, { className: classes.checkbox, control: React__default.createElement(Checkbox, { checked: field.value, onChange: function (e) {
6600
- return field.onChange(e.target.checked);
6601
- }, name: "IsBranch", color: "primary", disabled: true }), label: "Has Children" }));
6602
- } })),
6603
- React__default.createElement(Grid, { item: true, xs: 6, md: 6 },
6604
- React__default.createElement(Controller, { name: "CanBeDefaultAsset", control: control, defaultValue: false, render: function (_a) {
6605
- var field = _a.field;
6606
- return (React__default.createElement(FormControlLabel, { className: classes.checkbox, control: React__default.createElement(Checkbox, { checked: field.value, onChange: function (e) {
6607
- return field.onChange(e.target.checked);
6608
- }, name: "CanBeDefaultAsset", color: "primary", disabled: true }), label: "Can be Default Asset" }));
6609
- } })))))))))));
6489
+ React__default.createElement(Typography$1, { style: { padding: "0 24px 12px", fontSize: 25 } }, assetNodeSelectedInTree === null || assetNodeSelectedInTree === void 0 ? void 0 : assetNodeSelectedInTree.AssetName))),
6490
+ React__default.createElement(Grid, { container: true, style: { alignItems: "center" } },
6491
+ React__default.createElement(DialogContent$1, { dividers: true, style: { padding: "10px 24px 0" } },
6492
+ React__default.createElement(Grid, { item: true, md: 12, xs: 12 },
6493
+ React__default.createElement(Controller, { name: "AssetName", control: control, render: function (_a) {
6494
+ var _b = _a.field, onChange = _b.onChange, value = _b.value;
6495
+ return (React__default.createElement(React__default.Fragment, null,
6496
+ React__default.createElement(TextField, { label: "Asset Name", variant: "outlined", error: !!errors.AssetName, fullWidth: true, margin: "dense", autoComplete: "off", onChange: onChange, value: value, disabled: true })));
6497
+ } })),
6498
+ React__default.createElement(Grid, { container: true },
6499
+ React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { marginBottom: "8px" } },
6500
+ React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { padding: 0, marginTop: 10 } },
6501
+ React__default.createElement(Controller, { name: "ParentAssetName", control: control, render: function (_a) {
6502
+ var _b = _a.field, onChange = _b.onChange, value = _b.value;
6503
+ return (React__default.createElement(React__default.Fragment, null, value ? (React__default.createElement(TextField, { label: "Parent Asset", variant: "outlined", error: !!errors.AssetName, fullWidth: true, margin: "dense", autoComplete: "off", onChange: onChange, value: value || "", disabled: true })) : (React__default.createElement(React__default.Fragment, null))));
6504
+ } }))),
6505
+ React__default.createElement(Grid, { container: true, style: { marginTop: "5px", padding: "0 8px" } },
6506
+ React__default.createElement(Grid, { item: true, xs: 6, md: 6 },
6507
+ React__default.createElement(Controller, { name: "IsBranch", control: control, defaultValue: false, render: function (_a) {
6508
+ var field = _a.field;
6509
+ return (React__default.createElement(FormControlLabel, { className: classes.checkbox, control: React__default.createElement(Checkbox, { checked: field.value, onChange: function (e) {
6510
+ return field.onChange(e.target.checked);
6511
+ }, name: "IsBranch", color: "primary", disabled: true }), label: "Has Children" }));
6512
+ } })),
6513
+ React__default.createElement(Grid, { item: true, xs: 6, md: 6 },
6514
+ React__default.createElement(Controller, { name: "CanBeDefaultAsset", control: control, defaultValue: false, render: function (_a) {
6515
+ var field = _a.field;
6516
+ return (React__default.createElement(FormControlLabel, { className: classes.checkbox, control: React__default.createElement(Checkbox, { checked: field.value, onChange: function (e) {
6517
+ return field.onChange(e.target.checked);
6518
+ }, name: "CanBeDefaultAsset", color: "primary", disabled: true }), label: "Can be Default Asset" }));
6519
+ } }))))))))))));
6610
6520
  };
6611
6521
 
6612
6522
  var useAssetActions = function (_a) {
@@ -7297,109 +7207,111 @@ var AssetViewComponent = function () {
7297
7207
  var openAssetsArray = useMemo(function () {
7298
7208
  return Object.keys(openAssets).map(function (el) { return Number.parseInt(el); });
7299
7209
  }, [openAssets]);
7300
- return (React__default.createElement("div", { style: { width: "100%", height: "100%" } },
7301
- React__default.createElement("div", { onClick: handleClick },
7302
- React__default.createElement("div", { onContextMenu: handleCreateNewContextMenu },
7303
- React__default.createElement("div", null,
7304
- React__default.createElement(Grid, { spacing: 0, container: true, justifyContent: "flex-start", alignItems: "flex-start", className: classes.root },
7305
- React__default.createElement(Typography$1, { variant: "h5", style: { margin: "20px 0 20px 20px", fontWeight: 600 } }, "Assets Tree"),
7306
- isLoading ? (React__default.createElement(Grid, { container: true, style: { width: "100%", height: "100%" } },
7307
- React__default.createElement(Grid, { item: true, xs: 12, md: 12, style: {
7308
- height: "71vh",
7309
- justifyContent: "center",
7310
- alignItems: "center",
7311
- } },
7312
- React__default.createElement("div", { style: {
7313
- width: "100%",
7314
- height: "100%",
7315
- display: "flex",
7210
+ return (React__default.createElement(React__default.Fragment, null,
7211
+ React__default.createElement(HelmetDexteel, { title: "Assets Tree" }),
7212
+ React__default.createElement("div", { style: { width: "100%", height: "100%" } },
7213
+ React__default.createElement("div", { onClick: handleClick },
7214
+ React__default.createElement("div", { onContextMenu: handleCreateNewContextMenu },
7215
+ React__default.createElement("div", null,
7216
+ React__default.createElement(Grid, { spacing: 0, container: true, justifyContent: "flex-start", alignItems: "flex-start", className: classes.root },
7217
+ React__default.createElement(Typography$1, { variant: "h5", style: { margin: "20px 0 20px 20px", fontWeight: 600 } }, "Assets Tree"),
7218
+ isLoading ? (React__default.createElement(Grid, { container: true, style: { width: "100%", height: "100%" } },
7219
+ React__default.createElement(Grid, { item: true, xs: 12, md: 12, style: {
7220
+ height: "71vh",
7316
7221
  justifyContent: "center",
7317
7222
  alignItems: "center",
7318
7223
  } },
7319
- React__default.createElement(LazyLoading, null))))) : (React__default.createElement(Paper, { elevation: 2, style: {
7320
- width: "100%",
7321
- padding: "15px 20px 10px",
7322
- borderRadius: "0.75rem",
7323
- } },
7324
- React__default.createElement(AssetSearchInput, { assetNodes: allAssetNodes, onSearchResultClick: handleSearchResultClick }),
7325
- React__default.createElement(Grid, { container: true, alignItems: "center" },
7326
- React__default.createElement(Grid, { container: true, style: {
7327
- height: "71vh",
7328
- overflowY: "auto",
7329
- paddingBottom: 10,
7330
- } },
7331
- React__default.createElement(Grid, null,
7332
- React__default.createElement(Tree, { rootId: -1, initialOpen: openAssetsArray, tree: allAssetNodes, enableAnimateExpand: true, classes: {
7333
- root: classes.assetRoot,
7334
- dropTarget: classes.dropTarget,
7335
- }, onDrop: handleDrop, onDragStart: handleDragStart, onDragEnd: handleDragEnd, canDrop: function (asset, options) {
7336
- return !selectedNodes.some(function (selectedNode) {
7337
- return selectedNode.id === options.dropTargetId;
7338
- });
7339
- }, render: function (node, options) {
7340
- var selected = selectedNodes.some(function (selectedNode) { return selectedNode.id === node.id; });
7341
- return (React__default.createElement(CustomNode, __assign({ setContextMenuOver: handleContextMenu, node: node }, options, { isSelected: selected, isDragging: selected && isDragging, onClick: handleCtrlClick, onDoubleClick: handleShowViewerAsset })));
7342
- }, dragPreviewRender: function (monitorProps) {
7343
- if (selectedNodes.length > 1) {
7344
- return (React__default.createElement(MultipleDragPreview, { dragSources: selectedNodes }));
7345
- }
7346
- return (React__default.createElement(CustomDragPreview$1, { monitorProps: monitorProps }));
7347
- } })))))),
7348
- React__default.createElement(CreateNewAssetDialog, { show: showCreateNewAssetDialog, onHide: function (shouldUpdate) {
7349
- setShowCreateNewAssetDialog(false);
7350
- if (shouldUpdate) {
7351
- searchAssets();
7352
- }
7353
- } }),
7354
- React__default.createElement(EditAssetDialog, { show: showEditAssetDialog, onHide: function (shouldUpdate) {
7355
- setShowEditAssetDialog(false);
7356
- if (shouldUpdate) {
7357
- searchAssets();
7358
- }
7359
- } }),
7360
- React__default.createElement(ViewerAssetDialog, { show: showViewerAssetDialog, onHide: function () { return handleOnHideViewer(); } }),
7361
- React__default.createElement(RemoveAssetDialog, { show: showRemoveAssetDialog, onHide: function (shouldUpdate) {
7362
- setShowRemoveAssetDialog(false);
7363
- if (shouldUpdate) {
7364
- searchAssets();
7365
- }
7366
- } })),
7367
- React__default.createElement(Snackbar, { open: updatedSuccessfullyMessage, autoHideDuration: 2500, onClose: handleClose },
7368
- React__default.createElement(Alert$2, { severity: "success", onClose: handleClose }, "Asset updated successfully"))),
7369
- showContextMenu && !isDoubleClick ? (React__default.createElement("ul", { className: classes.contextMenu, style: { top: y, left: x, padding: "6px 0" } },
7370
- React__default.createElement(MenuItem, { className: classes.menuItem, onClick: function () { return setShowViewerAssetDialog(true); } },
7371
- React__default.createElement(Grid, { container: true, style: { alignItems: "center" } },
7372
- React__default.createElement(Grid, { item: true, md: 2, xs: 3 },
7373
- React__default.createElement(FindInPageIcon, { style: { width: 18 } })),
7374
- React__default.createElement(Grid, { item: true, md: 9, xs: 9 },
7375
- React__default.createElement("div", { style: { marginLeft: 5 } }, "View Asset")))),
7376
- React__default.createElement(MenuItem, { className: classes.menuItem, onClick: function () { return setShowEditAssetDialog(true); } },
7377
- React__default.createElement(Grid, { container: true, style: { alignItems: "center" } },
7378
- React__default.createElement(Grid, { item: true, md: 2, xs: 3 },
7379
- React__default.createElement(EditIcon, { style: { width: 18 } })),
7380
- React__default.createElement(Grid, { item: true, md: 9, xs: 9 },
7381
- React__default.createElement("div", { style: { marginLeft: 5 } }, "Edit Asset")))),
7382
- React__default.createElement(MenuItem, { className: classes.menuItem, onClick: function () { return setShowCreateNewAssetDialog(true); } },
7383
- React__default.createElement(Grid, { container: true, style: { alignItems: "center" } },
7384
- React__default.createElement(Grid, { item: true, md: 2, xs: 3 },
7385
- React__default.createElement(AddBoxIcon, { style: { width: 18 } })),
7386
- React__default.createElement(Grid, { item: true, md: 9, xs: 9 },
7387
- React__default.createElement("div", { style: { marginLeft: 5 } }, "Create Asset")))),
7388
- (assetNodeSelectedInTree === null || assetNodeSelectedInTree === void 0 ? void 0 : assetNodeSelectedInTree.IsBranch) === false && (React__default.createElement(MenuItem, { className: classes.menuItem, onClick: function () { return setShowRemoveAssetDialog(true); } },
7389
- React__default.createElement(Grid, { container: true, style: { alignItems: "center" } },
7390
- React__default.createElement(Grid, { item: true, md: 2, xs: 3 },
7391
- React__default.createElement(DeleteIcon, { style: { width: 18 } })),
7392
- React__default.createElement(Grid, { item: true, md: 9, xs: 9 },
7393
- React__default.createElement("div", { style: { marginLeft: 5 } }, "Remove Asset"))))))) : (""),
7394
- showCreateNewContextMenu ? (React__default.createElement("ul", { className: classes.contextMenu, style: { top: y, left: x } },
7395
- React__default.createElement(MenuItem, { className: classes.menuItem, onClick: function () { return setShowCreateNewAssetDialog(true); } },
7396
- React__default.createElement(Grid, { container: true, style: { alignItems: "center" } },
7397
- React__default.createElement(Grid, { item: true, md: 2, xs: 3 },
7398
- React__default.createElement(AddBoxIcon, { style: { width: 18 } })),
7399
- React__default.createElement(Grid, { item: true, md: 9, xs: 9 },
7400
- React__default.createElement("div", { style: { marginLeft: 5 } }, "Create Asset")))))) : (""))),
7401
- React__default.createElement(ErrorModal, { error: errorUpdate, onHide: function () { return setErrorUpdate(""); } }),
7402
- React__default.createElement(ErrorModal, { error: searchError, onHide: function () { return setSearchError(""); } })));
7224
+ React__default.createElement("div", { style: {
7225
+ width: "100%",
7226
+ height: "100%",
7227
+ display: "flex",
7228
+ justifyContent: "center",
7229
+ alignItems: "center",
7230
+ } },
7231
+ React__default.createElement(LazyLoading, null))))) : (React__default.createElement(Paper, { elevation: 2, style: {
7232
+ width: "100%",
7233
+ padding: "15px 20px 10px",
7234
+ borderRadius: "0.75rem",
7235
+ } },
7236
+ React__default.createElement(AssetSearchInput, { assetNodes: allAssetNodes, onSearchResultClick: handleSearchResultClick }),
7237
+ React__default.createElement(Grid, { container: true, alignItems: "center" },
7238
+ React__default.createElement(Grid, { container: true, style: {
7239
+ height: "71vh",
7240
+ overflowY: "auto",
7241
+ paddingBottom: 10,
7242
+ } },
7243
+ React__default.createElement(Grid, null,
7244
+ React__default.createElement(Tree, { rootId: -1, initialOpen: openAssetsArray, tree: allAssetNodes, enableAnimateExpand: true, classes: {
7245
+ root: classes.assetRoot,
7246
+ dropTarget: classes.dropTarget,
7247
+ }, onDrop: handleDrop, onDragStart: handleDragStart, onDragEnd: handleDragEnd, canDrop: function (asset, options) {
7248
+ return !selectedNodes.some(function (selectedNode) {
7249
+ return selectedNode.id === options.dropTargetId;
7250
+ });
7251
+ }, render: function (node, options) {
7252
+ var selected = selectedNodes.some(function (selectedNode) { return selectedNode.id === node.id; });
7253
+ return (React__default.createElement(CustomNode, __assign({ setContextMenuOver: handleContextMenu, node: node }, options, { isSelected: selected, isDragging: selected && isDragging, onClick: handleCtrlClick, onDoubleClick: handleShowViewerAsset })));
7254
+ }, dragPreviewRender: function (monitorProps) {
7255
+ if (selectedNodes.length > 1) {
7256
+ return (React__default.createElement(MultipleDragPreview, { dragSources: selectedNodes }));
7257
+ }
7258
+ return (React__default.createElement(CustomDragPreview$1, { monitorProps: monitorProps }));
7259
+ } })))))),
7260
+ React__default.createElement(CreateNewAssetDialog, { show: showCreateNewAssetDialog, onHide: function (shouldUpdate) {
7261
+ setShowCreateNewAssetDialog(false);
7262
+ if (shouldUpdate) {
7263
+ searchAssets();
7264
+ }
7265
+ }, suffixTitle: "Assets Tree" }),
7266
+ React__default.createElement(EditAssetDialog, { show: showEditAssetDialog, onHide: function (shouldUpdate) {
7267
+ setShowEditAssetDialog(false);
7268
+ if (shouldUpdate) {
7269
+ searchAssets();
7270
+ }
7271
+ }, suffixTitle: "Assets Tree" }),
7272
+ React__default.createElement(ViewerAssetDialog, { show: showViewerAssetDialog, onHide: function () { return handleOnHideViewer(); }, suffixTitle: "Assets Tree" }),
7273
+ React__default.createElement(RemoveAssetDialog, { show: showRemoveAssetDialog, onHide: function (shouldUpdate) {
7274
+ setShowRemoveAssetDialog(false);
7275
+ if (shouldUpdate) {
7276
+ searchAssets();
7277
+ }
7278
+ }, suffixTitle: "Assets Tree" })),
7279
+ React__default.createElement(Snackbar, { open: updatedSuccessfullyMessage, autoHideDuration: 2500, onClose: handleClose },
7280
+ React__default.createElement(Alert$2, { severity: "success", onClose: handleClose }, "Asset updated successfully"))),
7281
+ showContextMenu && !isDoubleClick ? (React__default.createElement("ul", { className: classes.contextMenu, style: { top: y, left: x, padding: "6px 0" } },
7282
+ React__default.createElement(MenuItem, { className: classes.menuItem, onClick: function () { return setShowViewerAssetDialog(true); } },
7283
+ React__default.createElement(Grid, { container: true, style: { alignItems: "center" } },
7284
+ React__default.createElement(Grid, { item: true, md: 2, xs: 3 },
7285
+ React__default.createElement(FindInPageIcon, { style: { width: 18 } })),
7286
+ React__default.createElement(Grid, { item: true, md: 9, xs: 9 },
7287
+ React__default.createElement("div", { style: { marginLeft: 5 } }, "View Asset")))),
7288
+ React__default.createElement(MenuItem, { className: classes.menuItem, onClick: function () { return setShowEditAssetDialog(true); } },
7289
+ React__default.createElement(Grid, { container: true, style: { alignItems: "center" } },
7290
+ React__default.createElement(Grid, { item: true, md: 2, xs: 3 },
7291
+ React__default.createElement(EditIcon, { style: { width: 18 } })),
7292
+ React__default.createElement(Grid, { item: true, md: 9, xs: 9 },
7293
+ React__default.createElement("div", { style: { marginLeft: 5 } }, "Edit Asset")))),
7294
+ React__default.createElement(MenuItem, { className: classes.menuItem, onClick: function () { return setShowCreateNewAssetDialog(true); } },
7295
+ React__default.createElement(Grid, { container: true, style: { alignItems: "center" } },
7296
+ React__default.createElement(Grid, { item: true, md: 2, xs: 3 },
7297
+ React__default.createElement(AddBoxIcon, { style: { width: 18 } })),
7298
+ React__default.createElement(Grid, { item: true, md: 9, xs: 9 },
7299
+ React__default.createElement("div", { style: { marginLeft: 5 } }, "Create Asset")))),
7300
+ (assetNodeSelectedInTree === null || assetNodeSelectedInTree === void 0 ? void 0 : assetNodeSelectedInTree.IsBranch) === false && (React__default.createElement(MenuItem, { className: classes.menuItem, onClick: function () { return setShowRemoveAssetDialog(true); } },
7301
+ React__default.createElement(Grid, { container: true, style: { alignItems: "center" } },
7302
+ React__default.createElement(Grid, { item: true, md: 2, xs: 3 },
7303
+ React__default.createElement(DeleteIcon, { style: { width: 18 } })),
7304
+ React__default.createElement(Grid, { item: true, md: 9, xs: 9 },
7305
+ React__default.createElement("div", { style: { marginLeft: 5 } }, "Remove Asset"))))))) : (""),
7306
+ showCreateNewContextMenu ? (React__default.createElement("ul", { className: classes.contextMenu, style: { top: y, left: x } },
7307
+ React__default.createElement(MenuItem, { className: classes.menuItem, onClick: function () { return setShowCreateNewAssetDialog(true); } },
7308
+ React__default.createElement(Grid, { container: true, style: { alignItems: "center" } },
7309
+ React__default.createElement(Grid, { item: true, md: 2, xs: 3 },
7310
+ React__default.createElement(AddBoxIcon, { style: { width: 18 } })),
7311
+ React__default.createElement(Grid, { item: true, md: 9, xs: 9 },
7312
+ React__default.createElement("div", { style: { marginLeft: 5 } }, "Create Asset")))))) : (""))),
7313
+ React__default.createElement(ErrorModal, { error: errorUpdate, onHide: function () { return setErrorUpdate(""); } }),
7314
+ React__default.createElement(ErrorModal, { error: searchError, onHide: function () { return setSearchError(""); } }))));
7403
7315
  };
7404
7316
 
7405
7317
  var ConfigurationAssetComponent = function () {
@@ -7632,7 +7544,7 @@ var useStyles$e = makeStyles(function (theme) { return ({
7632
7544
  }); });
7633
7545
  var CreateUser = function (_a) {
7634
7546
  var _b, _c, _d;
7635
- var show = _a.show, onHide = _a.onHide;
7547
+ var show = _a.show, onHide = _a.onHide, suffixTitle = _a.suffixTitle;
7636
7548
  var _e = useState(false), open = _e[0], setOpen = _e[1];
7637
7549
  var _f = useState(false), isSubmitLoading = _f[0], setIsSubmitLoading = _f[1];
7638
7550
  var _g = useState(""), error = _g[0], setError = _g[1];
@@ -7684,6 +7596,7 @@ var CreateUser = function (_a) {
7684
7596
  }
7685
7597
  }, [show]);
7686
7598
  return (React.createElement(React.Fragment, null,
7599
+ show && (React.createElement(HelmetDexteel, { title: "New User".concat(suffixTitle ? " - ".concat(suffixTitle) : "") })),
7687
7600
  React.createElement(MesfModal, { title: "NEW USER", open: show, handleClose: function () { return onHide(false); }, id: "create-user-modal", maxWidth: "md" },
7688
7601
  React.createElement("form", { onSubmit: handleSubmit(onSubmit) },
7689
7602
  React.createElement(MesfModal.Content, { style: { padding: "15px 30px" } },
@@ -7733,7 +7646,7 @@ var CreateUser = function (_a) {
7733
7646
  };
7734
7647
 
7735
7648
  var DeleteUser = function (_a) {
7736
- var userId = _a.userId, show = _a.show, onHide = _a.onHide;
7649
+ var userId = _a.userId, show = _a.show, onHide = _a.onHide, suffixTitle = _a.suffixTitle;
7737
7650
  var _b = useState(false), open = _b[0], setOpen = _b[1];
7738
7651
  var _c = useState(false), isLoading = _c[0], setIsLoading = _c[1];
7739
7652
  var _d = useState(false), isSubmitLoading = _d[0], setIsSubmitLoading = _d[1];
@@ -7812,6 +7725,7 @@ var DeleteUser = function (_a) {
7812
7725
  }
7813
7726
  }, [show]);
7814
7727
  return (React__default.createElement(React__default.Fragment, null,
7728
+ show && (React__default.createElement(HelmetDexteel, { title: "Delete User".concat(suffixTitle ? " - ".concat(suffixTitle) : "") })),
7815
7729
  React__default.createElement(MesfModal, { title: "DELETE USER", open: show, handleClose: function () { return onHide(false); }, id: "delete-user-modal", maxWidth: "md" },
7816
7730
  React__default.createElement("form", null,
7817
7731
  React__default.createElement(MesfModal.Content, { style: { padding: "15px 30px" } },
@@ -8205,7 +8119,7 @@ var useStyles$d = makeStyles(function (theme) { return ({
8205
8119
  }); });
8206
8120
  var EditUser = function (_a) {
8207
8121
  var _b, _c, _d;
8208
- var userId = _a.userId, show = _a.show, onHide = _a.onHide;
8122
+ var userId = _a.userId, show = _a.show, onHide = _a.onHide, suffixTitle = _a.suffixTitle;
8209
8123
  var classes = useStyles$d();
8210
8124
  var _e = useState(false), open = _e[0], setOpen = _e[1];
8211
8125
  var _f = useState(false), isLoading = _f[0], setIsLoading = _f[1];
@@ -8298,6 +8212,7 @@ var EditUser = function (_a) {
8298
8212
  }
8299
8213
  }, [show]);
8300
8214
  return (React.createElement(React.Fragment, null,
8215
+ show && (React.createElement(HelmetDexteel, { title: "Edit User".concat(suffixTitle ? " - ".concat(suffixTitle) : "") })),
8301
8216
  React.createElement(MesfModal, { title: "EDIT USER", open: show, handleClose: function () { return onHide(false); }, id: "edit-user-modal", maxWidth: "md" },
8302
8217
  React.createElement("form", { onSubmit: handleSubmit(onSubmit) },
8303
8218
  React.createElement(MesfModal.Content, { className: classes.modalBody, style: { padding: "15px 30px" } },
@@ -8677,26 +8592,26 @@ var TableUsers = function (_a) {
8677
8592
  setUserId(null);
8678
8593
  if (shouldUpdate)
8679
8594
  getUsersFromAPI();
8680
- } }),
8595
+ }, suffixTitle: "User Management" }),
8681
8596
  React.createElement(EditUser, { show: openModalEditDataUser, userId: userId, onHide: function (shouldUpdate) {
8682
8597
  setOpenModalEditDataUser(false);
8683
8598
  setUserId(null);
8684
8599
  if (shouldUpdate)
8685
8600
  getUsersFromAPI();
8686
- } }),
8601
+ }, suffixTitle: "User Management" }),
8687
8602
  React.createElement(ChangePassword$1, { show: openModalChangePassword, userId: userId, onHide: function (shouldUpdate) {
8688
8603
  setOpenModalChangePasswordd(false);
8689
8604
  setUserId(null);
8690
8605
  if (shouldUpdate) {
8691
8606
  getUsersFromAPI();
8692
8607
  }
8693
- } }),
8608
+ }, suffixTitle: "User Management" }),
8694
8609
  React.createElement(DeleteUser, { show: openModalDeleteUser, userId: userId, onHide: function (shouldUpdate) {
8695
8610
  setOpenModalDeleteUser(false);
8696
8611
  setUserId(null);
8697
8612
  if (shouldUpdate)
8698
8613
  getUsersFromAPI();
8699
- } })));
8614
+ }, suffixTitle: "User Management" })));
8700
8615
  };
8701
8616
 
8702
8617
  var Users = function (prop) {
@@ -8726,10 +8641,12 @@ var Users = function (prop) {
8726
8641
  useEffect(function () {
8727
8642
  getUsersFromAPI();
8728
8643
  }, []);
8729
- return (React.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center" },
8730
- React.createElement(Grid, { item: true, xs: 12 },
8731
- React.createElement(TableUsers, { isLoading: isLoading, getUsersFromAPI: getUsersFromAPI })),
8732
- React.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
8644
+ return (React.createElement(React.Fragment, null,
8645
+ React.createElement(HelmetDexteel, { title: "User Management" }),
8646
+ React.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center" },
8647
+ React.createElement(Grid, { item: true, xs: 12 },
8648
+ React.createElement(TableUsers, { isLoading: isLoading, getUsersFromAPI: getUsersFromAPI })),
8649
+ React.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } }))));
8733
8650
  };
8734
8651
 
8735
8652
  var UsersPage = function (props) {
@@ -9022,7 +8939,7 @@ var MESApiService = /** @class */ (function () {
9022
8939
  data.dataBaseName = database;
9023
8940
  data.parameters = formattedParameters;
9024
8941
  Date.prototype.toJSON = function () {
9025
- return moment$3(this).format("YYYY-MM-DDTHH:mm:ss");
8942
+ return moment$2(this).format("YYYY-MM-DDTHH:mm:ss");
9026
8943
  }; // eslint-disable-line
9027
8944
  isError = { ok: true };
9028
8945
  return [2 /*return*/, fetch(this.config.API_PROCEDURE_URL + "/Execute", {
@@ -9061,10 +8978,9 @@ var MESApiService = /** @class */ (function () {
9061
8978
  });
9062
8979
  });
9063
8980
  };
9064
- MESApiService.prototype.callV2 = function (procedure_1, parameters_1) {
9065
- 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 () {
9066
8983
  var data, formattedParameters, curatedMethod, response, err_1;
9067
- if (database === void 0) { database = ""; }
9068
8984
  return __generator(this, function (_a) {
9069
8985
  switch (_a.label) {
9070
8986
  case 0:
@@ -9080,16 +8996,16 @@ var MESApiService = /** @class */ (function () {
9080
8996
  formattedParameters.push(formattedParameter);
9081
8997
  });
9082
8998
  data.method = procedure;
9083
- data.dataBaseName = database;
9084
8999
  data.parameters = formattedParameters;
9085
9000
  Date.prototype.toJSON = function () {
9086
- return moment$3(this).format("YYYY-MM-DDTHH:mm:ss");
9001
+ return moment$2(this).format("YYYY-MM-DDTHH:mm:ss");
9087
9002
  }; // eslint-disable-line
9088
9003
  curatedMethod = procedure.replace(/[\[\]]/g, "");
9089
9004
  _a.label = 1;
9090
9005
  case 1:
9091
9006
  _a.trys.push([1, 3, , 4]);
9092
9007
  return [4 /*yield*/, axiosInstance.post("/action/".concat(curatedMethod), data, {
9008
+ signal: signal,
9093
9009
  params: data.parameters.map(function (param) {
9094
9010
  var _a, _b;
9095
9011
  var mapKey = param.name.replace("@", "");
@@ -9137,7 +9053,7 @@ var MESApiService = /** @class */ (function () {
9137
9053
  data.dataBaseName = database;
9138
9054
  data.parameters = formattedParameters;
9139
9055
  Date.prototype.toJSON = function () {
9140
- return moment$3(this).format("YYYY-MM-DDTHH:mm:ss");
9056
+ return moment$2(this).format("YYYY-MM-DDTHH:mm:ss");
9141
9057
  }; // eslint-disable-line
9142
9058
  isError = { ok: true };
9143
9059
  return [2 /*return*/, fetch(this.config.API_PROCEDURE_URL + "/ExecuteJSON", {
@@ -9194,7 +9110,7 @@ var MESApiService = /** @class */ (function () {
9194
9110
  formattedParameters.push(formattedParameter);
9195
9111
  });
9196
9112
  Date.prototype.toJSON = function () {
9197
- return moment$3(this).format("YYYY-MM-DDTHH:mm:ss");
9113
+ return moment$2(this).format("YYYY-MM-DDTHH:mm:ss");
9198
9114
  }; // eslint-disable-line
9199
9115
  isError = { ok: true };
9200
9116
  files.forEach(function (element) {
@@ -9261,7 +9177,7 @@ var MESApiService = /** @class */ (function () {
9261
9177
  data.parameters = formattedParameters;
9262
9178
  data.fileName = fileName || "Default.xlsx";
9263
9179
  Date.prototype.toJSON = function () {
9264
- return moment$3(this).format("YYYY-MM-DDTHH:mm:ss");
9180
+ return moment$2(this).format("YYYY-MM-DDTHH:mm:ss");
9265
9181
  }; // eslint-disable-line
9266
9182
  isError = { ok: true };
9267
9183
  return [2 /*return*/, fetch(this.config.API_PROCEDURE_URL + "/Export", {
@@ -9339,7 +9255,7 @@ var MESApiService = /** @class */ (function () {
9339
9255
  data.parameters = formattedParameters;
9340
9256
  data.fileName = fileName || "Default.xlsx";
9341
9257
  Date.prototype.toJSON = function () {
9342
- return moment$3(this).format("YYYY-MM-DDTHH:mm:ss");
9258
+ return moment$2(this).format("YYYY-MM-DDTHH:mm:ss");
9343
9259
  }; // eslint-disable-line
9344
9260
  isError = { ok: true };
9345
9261
  return [2 /*return*/, fetch(this.config.API_PROCEDURE_URL + "/ExportExcel", {
@@ -9410,6 +9326,70 @@ var MESApiService = /** @class */ (function () {
9410
9326
  return MESApiService;
9411
9327
  }());
9412
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
+
9413
9393
  var getUsers = function () { return __awaiter(void 0, void 0, void 0, function () {
9414
9394
  var apiService, resp;
9415
9395
  return __generator(this, function (_a) {
@@ -9560,7 +9540,7 @@ var getUserPermissionsFromAPI = function (_a) { return __awaiter(void 0, [_a], v
9560
9540
  }); };
9561
9541
 
9562
9542
  var ChangePassword$1 = function (_a) {
9563
- var show = _a.show, userId = _a.userId, onHide = _a.onHide;
9543
+ var show = _a.show, userId = _a.userId, onHide = _a.onHide, suffixTitle = _a.suffixTitle;
9564
9544
  var _b = useState(""), password = _b[0], setPasswordText = _b[1];
9565
9545
  var _c = useState(false), isDirty = _c[0], setIsDirty = _c[1];
9566
9546
  var handleSubmit = useCallback(function (ev) { return __awaiter(void 0, void 0, void 0, function () {
@@ -9584,6 +9564,7 @@ var ChangePassword$1 = function (_a) {
9584
9564
  }, [show]);
9585
9565
  if (userId) {
9586
9566
  return (React.createElement(React.Fragment, null,
9567
+ show && (React.createElement(HelmetDexteel, { title: "Change Password".concat(suffixTitle ? " - ".concat(suffixTitle) : "") })),
9587
9568
  React.createElement(MesfModal, { title: "Change password", open: show, handleClose: function () { return onHide(false); }, maxWidth: "lg" },
9588
9569
  React.createElement(Grid, { container: true },
9589
9570
  React.createElement(Grid, { item: true, md: 12, xs: 12 },
@@ -9768,94 +9749,96 @@ var Account = function () {
9768
9749
  closeMessage();
9769
9750
  }
9770
9751
  }, [showSuccess]);
9771
- return (React__default.createElement(Box, { p: 3, maxWidth: "100%" },
9772
- showSuccess && (React__default.createElement(Paper, { elevation: 2, style: {
9773
- padding: 16,
9774
- marginBottom: 16,
9775
- backgroundColor: "#c8e6c9",
9776
- color: "#1b5e20",
9777
- display: "flex",
9778
- alignItems: "center",
9779
- } },
9780
- React__default.createElement(Typography$1, null, successMessage))),
9781
- React__default.createElement(Box, null,
9782
- React__default.createElement(Typography$1, { variant: "h5", component: "h1", gutterBottom: true, style: { fontWeight: 600, marginBottom: 16 } }, "Account Configuration"),
9783
- React__default.createElement(Grid, { container: true, spacing: 3 },
9784
- React__default.createElement(Grid, { item: true, xs: 12, md: 6 },
9785
- React__default.createElement(Paper, { style: { padding: 24, height: "100%", minHeight: "350px" } },
9786
- React__default.createElement(Typography$1, { variant: "h6", gutterBottom: true, style: { marginBottom: 24, fontWeight: 600 } }, "Account Information"),
9787
- React__default.createElement(Box, { mb: 2 },
9788
- React__default.createElement(TextField, { label: "Username", value: userName, variant: "outlined", fullWidth: true, style: {
9789
- pointerEvents: "none",
9790
- cursor: "default",
9791
- }, InputProps: {
9792
- readOnly: true,
9793
- }, tabIndex: -1 })),
9794
- React__default.createElement(Box, { mt: 3, display: "flex", flexDirection: "column", style: { gap: 4 } },
9795
- React__default.createElement(FormControlLabel, { control: React__default.createElement(Checkbox, { checked: userIsDomain, disabled: true }), label: "Domain User" }),
9796
- React__default.createElement(FormControlLabel, { control: React__default.createElement(Checkbox, { checked: userIsActive, disabled: true }), label: "Active Account" })))),
9797
- React__default.createElement(Grid, { item: true, xs: 12, md: 6 },
9798
- React__default.createElement(Paper, { style: { padding: 24, height: "100%", minHeight: "350px" } },
9799
- React__default.createElement(Typography$1, { variant: "h6", gutterBottom: true, style: { marginBottom: 24, fontWeight: 600 } }, "Personal Details"),
9800
- React__default.createElement(Box, { mb: 2 },
9801
- React__default.createElement(TextField, { label: "First Name", value: editFirstName, variant: "outlined", fullWidth: true, onChange: function (e) { return setEditFirstName(e.target.value); }, onKeyDown: handleKeyDown, error: !editFirstName.trim(), helperText: !editFirstName.trim() ? "First name is required" : "" })),
9802
- React__default.createElement(Box, { mb: 2 },
9803
- React__default.createElement(TextField, { label: "Last Name", value: editLastName, variant: "outlined", fullWidth: true, onChange: function (e) { return setEditLastName(e.target.value); }, onKeyDown: handleKeyDown, error: !editLastName.trim(), helperText: !editLastName.trim() ? "Last name is required" : "" })),
9804
- React__default.createElement(Divider, { style: { margin: "24px 0 20px" } }),
9805
- React__default.createElement(Box, { mt: 2, display: "flex", flexDirection: "column", style: { gap: 8 } },
9806
- React__default.createElement(Button, { fullWidth: true, startIcon: isSaving && React__default.createElement(CircularProgress, { size: "1rem" }), disabled: !hasChanges() ||
9807
- isSaving ||
9808
- !editFirstName.trim() ||
9809
- !editLastName.trim(), variant: "contained", color: "primary", onClick: handleSave, style: { marginBottom: "8px" } }, "Save Changes"),
9810
- React__default.createElement(Button, { fullWidth: true, variant: "contained", color: "primary", onClick: function () { return setShowPasswordModal(true); } }, "Change Password"))))),
9811
- React__default.createElement(Paper, { elevation: 2, style: { padding: 24, marginBottom: 24, marginTop: 24 } },
9812
- React__default.createElement(Typography$1, { variant: "h6", gutterBottom: true, style: { marginBottom: 24, fontWeight: 600 } }, "Permissions & Access"),
9752
+ return (React__default.createElement(React__default.Fragment, null,
9753
+ React__default.createElement(HelmetDexteel, { title: "Account Configuration" }),
9754
+ React__default.createElement(Box, { p: 3, maxWidth: "100%" },
9755
+ showSuccess && (React__default.createElement(Paper, { elevation: 2, style: {
9756
+ padding: 16,
9757
+ marginBottom: 16,
9758
+ backgroundColor: "#c8e6c9",
9759
+ color: "#1b5e20",
9760
+ display: "flex",
9761
+ alignItems: "center",
9762
+ } },
9763
+ React__default.createElement(Typography$1, null, successMessage))),
9764
+ React__default.createElement(Box, null,
9765
+ React__default.createElement(Typography$1, { variant: "h5", component: "h1", gutterBottom: true, style: { fontWeight: 600, marginBottom: 16 } }, "Account Configuration"),
9813
9766
  React__default.createElement(Grid, { container: true, spacing: 3 },
9814
- React__default.createElement(Grid, { item: true, xs: 12, md: 4 },
9815
- React__default.createElement(Typography$1, { variant: "body1", gutterBottom: true, color: "textSecondary" }, "Assigned Profiles"),
9816
- React__default.createElement("textarea", { style: {
9817
- width: "100%",
9818
- minHeight: "300px",
9819
- padding: 16,
9820
- fontFamily: "inherit",
9821
- fontSize: "14px",
9822
- lineHeight: "1.5",
9823
- border: "2px solid #e0e0e0",
9824
- borderRadius: 8,
9825
- backgroundColor: "#fff",
9826
- resize: "vertical",
9827
- outline: "none",
9828
- }, placeholder: "No profiles assigned", readOnly: true, value: userProfiles })),
9829
- React__default.createElement(Grid, { item: true, xs: 12, md: 4 },
9830
- React__default.createElement(Typography$1, { variant: "body1", gutterBottom: true, color: "textSecondary" }, "System Permissions"),
9831
- React__default.createElement("textarea", { style: {
9832
- width: "100%",
9833
- minHeight: "300px",
9834
- padding: 16,
9835
- fontFamily: "inherit",
9836
- fontSize: "14px",
9837
- lineHeight: "1.5",
9838
- border: "2px solid #e0e0e0",
9839
- borderRadius: 8,
9840
- backgroundColor: "#fff",
9841
- resize: "vertical",
9842
- outline: "none",
9843
- }, placeholder: "No permissions assigned", readOnly: true, value: userPermissions })),
9844
- React__default.createElement(Grid, { item: true, xs: 12, md: 4 },
9845
- React__default.createElement(Typography$1, { variant: "body1", gutterBottom: true, color: "textSecondary" }, "Available Procedures"),
9846
- React__default.createElement("textarea", { style: {
9847
- width: "100%",
9848
- minHeight: "300px",
9849
- padding: 16,
9850
- fontFamily: "inherit",
9851
- fontSize: "14px",
9852
- lineHeight: "1.5",
9853
- border: "2px solid #e0e0e0",
9854
- borderRadius: 8,
9855
- backgroundColor: "#fff",
9856
- resize: "vertical",
9857
- outline: "none",
9858
- }, placeholder: "No procedures available", readOnly: true, value: userProcedures }))))),
9767
+ React__default.createElement(Grid, { item: true, xs: 12, md: 6 },
9768
+ React__default.createElement(Paper, { style: { padding: 24, height: "100%", minHeight: "350px" } },
9769
+ React__default.createElement(Typography$1, { variant: "h6", gutterBottom: true, style: { marginBottom: 24, fontWeight: 600 } }, "Account Information"),
9770
+ React__default.createElement(Box, { mb: 2 },
9771
+ React__default.createElement(TextField, { label: "Username", value: userName, variant: "outlined", fullWidth: true, style: {
9772
+ pointerEvents: "none",
9773
+ cursor: "default",
9774
+ }, InputProps: {
9775
+ readOnly: true,
9776
+ }, tabIndex: -1 })),
9777
+ React__default.createElement(Box, { mt: 3, display: "flex", flexDirection: "column", style: { gap: 4 } },
9778
+ React__default.createElement(FormControlLabel, { control: React__default.createElement(Checkbox, { checked: userIsDomain, disabled: true }), label: "Domain User" }),
9779
+ React__default.createElement(FormControlLabel, { control: React__default.createElement(Checkbox, { checked: userIsActive, disabled: true }), label: "Active Account" })))),
9780
+ React__default.createElement(Grid, { item: true, xs: 12, md: 6 },
9781
+ React__default.createElement(Paper, { style: { padding: 24, height: "100%", minHeight: "350px" } },
9782
+ React__default.createElement(Typography$1, { variant: "h6", gutterBottom: true, style: { marginBottom: 24, fontWeight: 600 } }, "Personal Details"),
9783
+ React__default.createElement(Box, { mb: 2 },
9784
+ React__default.createElement(TextField, { label: "First Name", value: editFirstName, variant: "outlined", fullWidth: true, onChange: function (e) { return setEditFirstName(e.target.value); }, onKeyDown: handleKeyDown, error: !editFirstName.trim(), helperText: !editFirstName.trim() ? "First name is required" : "" })),
9785
+ React__default.createElement(Box, { mb: 2 },
9786
+ React__default.createElement(TextField, { label: "Last Name", value: editLastName, variant: "outlined", fullWidth: true, onChange: function (e) { return setEditLastName(e.target.value); }, onKeyDown: handleKeyDown, error: !editLastName.trim(), helperText: !editLastName.trim() ? "Last name is required" : "" })),
9787
+ React__default.createElement(Divider, { style: { margin: "24px 0 20px" } }),
9788
+ React__default.createElement(Box, { mt: 2, display: "flex", flexDirection: "column", style: { gap: 8 } },
9789
+ React__default.createElement(Button, { fullWidth: true, startIcon: isSaving && React__default.createElement(CircularProgress, { size: "1rem" }), disabled: !hasChanges() ||
9790
+ isSaving ||
9791
+ !editFirstName.trim() ||
9792
+ !editLastName.trim(), variant: "contained", color: "primary", onClick: handleSave, style: { marginBottom: "8px" } }, "Save Changes"),
9793
+ React__default.createElement(Button, { fullWidth: true, variant: "contained", color: "primary", onClick: function () { return setShowPasswordModal(true); } }, "Change Password"))))),
9794
+ React__default.createElement(Paper, { elevation: 2, style: { padding: 24, marginBottom: 24, marginTop: 24 } },
9795
+ React__default.createElement(Typography$1, { variant: "h6", gutterBottom: true, style: { marginBottom: 24, fontWeight: 600 } }, "Permissions & Access"),
9796
+ React__default.createElement(Grid, { container: true, spacing: 3 },
9797
+ React__default.createElement(Grid, { item: true, xs: 12, md: 4 },
9798
+ React__default.createElement(Typography$1, { variant: "body1", gutterBottom: true, color: "textSecondary" }, "Assigned Profiles"),
9799
+ React__default.createElement("textarea", { style: {
9800
+ width: "100%",
9801
+ minHeight: "300px",
9802
+ padding: 16,
9803
+ fontFamily: "inherit",
9804
+ fontSize: "14px",
9805
+ lineHeight: "1.5",
9806
+ border: "2px solid #e0e0e0",
9807
+ borderRadius: 8,
9808
+ backgroundColor: "#fff",
9809
+ resize: "vertical",
9810
+ outline: "none",
9811
+ }, placeholder: "No profiles assigned", readOnly: true, value: userProfiles })),
9812
+ React__default.createElement(Grid, { item: true, xs: 12, md: 4 },
9813
+ React__default.createElement(Typography$1, { variant: "body1", gutterBottom: true, color: "textSecondary" }, "System Permissions"),
9814
+ React__default.createElement("textarea", { style: {
9815
+ width: "100%",
9816
+ minHeight: "300px",
9817
+ padding: 16,
9818
+ fontFamily: "inherit",
9819
+ fontSize: "14px",
9820
+ lineHeight: "1.5",
9821
+ border: "2px solid #e0e0e0",
9822
+ borderRadius: 8,
9823
+ backgroundColor: "#fff",
9824
+ resize: "vertical",
9825
+ outline: "none",
9826
+ }, placeholder: "No permissions assigned", readOnly: true, value: userPermissions })),
9827
+ React__default.createElement(Grid, { item: true, xs: 12, md: 4 },
9828
+ React__default.createElement(Typography$1, { variant: "body1", gutterBottom: true, color: "textSecondary" }, "Available Procedures"),
9829
+ React__default.createElement("textarea", { style: {
9830
+ width: "100%",
9831
+ minHeight: "300px",
9832
+ padding: 16,
9833
+ fontFamily: "inherit",
9834
+ fontSize: "14px",
9835
+ lineHeight: "1.5",
9836
+ border: "2px solid #e0e0e0",
9837
+ borderRadius: 8,
9838
+ backgroundColor: "#fff",
9839
+ resize: "vertical",
9840
+ outline: "none",
9841
+ }, placeholder: "No procedures available", readOnly: true, value: userProcedures })))))),
9859
9842
  React__default.createElement(ErrorModal, { error: error, onHide: function () {
9860
9843
  setError("");
9861
9844
  } }),
@@ -10423,51 +10406,43 @@ function Logout() {
10423
10406
  var clearUserData = useContext(AuthContext).clearUserData;
10424
10407
  var navigate = useNavigate();
10425
10408
  var _a = useSearchParams(), params = _a[0]; _a[1];
10409
+ var _b = useState(""), message = _b[0], setMessage = _b[1];
10426
10410
  var logout = function () {
10411
+ // Clear any auto-logout data from localStorage
10412
+ localStorage.removeItem("shiftAutoLogout");
10427
10413
  clearUserData();
10428
- 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
+ }
10429
10425
  };
10430
10426
  useEffect(function () {
10431
- 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); };
10432
10437
  }, []);
10433
10438
  return (React__default.createElement(React__default.Fragment, null,
10434
- 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..."))));
10435
10444
  }
10436
10445
 
10437
- var RouterContext = createContext(function () { return React__default.createElement(React__default.Fragment, null); });
10438
- var ConfigurationContext = createContext([
10439
- [],
10440
- function () { return React__default.createElement(React__default.Fragment, null); },
10441
- ]);
10442
- var NavbarContext = createContext(function () { return React__default.createElement(React__default.Fragment, null); });
10443
-
10444
- var useSearchAssets = function (setError) {
10445
- var _a = useAssetContext().actions, setAllAssets = _a.setAllAssets, setAreasList = _a.setAreasList;
10446
- var searchAssets = function () {
10447
- getAssets().then(function (res) { return __awaiter(void 0, void 0, void 0, function () {
10448
- var rows, areas;
10449
- return __generator(this, function (_a) {
10450
- switch (_a.label) {
10451
- case 0:
10452
- if (!res.ok) return [3 /*break*/, 2];
10453
- rows = get(res, "data.tables[0].rows", []);
10454
- return [4 /*yield*/, rows.filter(function (asset) { return asset.CanBeDefaultAsset; })];
10455
- case 1:
10456
- areas = _a.sent();
10457
- setAllAssets(rows);
10458
- setAreasList(areas);
10459
- return [3 /*break*/, 3];
10460
- case 2:
10461
- setError(res.message);
10462
- _a.label = 3;
10463
- case 3: return [2 /*return*/];
10464
- }
10465
- });
10466
- }); });
10467
- };
10468
- return { searchAssets: searchAssets };
10469
- };
10470
-
10471
10446
  var useStyles$6 = makeStyles(function (theme) { return ({
10472
10447
  container: {
10473
10448
  display: "flex",
@@ -10528,39 +10503,206 @@ var TimeAndUserMenu = function (_a) {
10528
10503
  React__default.createElement(MenuItem, { component: "a", href: "logout" }, "Logout"))));
10529
10504
  };
10530
10505
 
10531
- var AreaSelector$1 = lazy(function () {
10532
- return Promise.resolve().then(function () { return areaSelector; }).then(function (mod) { return ({
10533
- default: mod.AreaSelector,
10534
- }); });
10535
- });
10536
- var useStyles$5 = makeStyles(function (theme) { return ({
10537
- appBar: {
10538
- // You can use dark or light variants of the primary color
10539
- // backgroundColor: theme.palette.primary.dark, // Darker shade
10540
- backgroundColor: theme.palette.primary.main, // Lighter shade
10541
- // Or use a specific opacity
10542
- // backgroundColor: alpha(theme.palette.primary.main, 0.9), // 90% opacity
10543
- },
10544
- title: {
10545
- flexGrow: 0,
10546
- marginRight: theme.spacing(2),
10547
- textDecoration: "none",
10548
- color: "white",
10549
- textWrap: "nowrap",
10550
- },
10551
- navContainer: {
10552
- display: "flex",
10553
- flexGrow: 1,
10554
- "& a": {
10555
- color: "white",
10506
+ var ButtonWithLoading = function (_a) {
10507
+ var children = _a.children, isLoading = _a.isLoading, props = __rest(_a, ["children", "isLoading"]);
10508
+ return (React__default.createElement(Button, __assign({}, props, { disabled: isLoading }),
10509
+ isLoading && React__default.createElement(CircularProgress, { size: "1rem" }),
10510
+ children));
10511
+ };
10512
+
10513
+ var UTLSettingsInitialState = {
10514
+ serverTimeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
10515
+ settings: {},
10516
+ };
10517
+ var UTLSettingsReducer = createSlice({
10518
+ name: "__",
10519
+ initialState: UTLSettingsInitialState,
10520
+ reducers: {
10521
+ setServerTimeZone: function (state, _a) {
10522
+ var payload = _a.payload;
10523
+ state.serverTimeZone = payload;
10556
10524
  },
10557
- },
10558
- rightItems: {
10559
- display: "flex",
10560
- alignItems: "center",
10561
- color: "white",
10562
- },
10563
- menuButton: {
10525
+ setSetting: function (state, _a) {
10526
+ var payload = _a.payload;
10527
+ state.settings[payload.key] = payload.value;
10528
+ },
10529
+ initSettings: function (state, _a) {
10530
+ var payload = _a.payload;
10531
+ state.settings = payload.reduce(function (acc, cur) {
10532
+ if (cur.SettingName.trim().toLowerCase() === "timezone") {
10533
+ var timeService = TimeService.getInstance();
10534
+ timeService.setTimeZone(cur.Value);
10535
+ }
10536
+ acc[cur.SettingName.trim()] = cur.Value;
10537
+ return acc;
10538
+ }, {});
10539
+ },
10540
+ },
10541
+ });
10542
+
10543
+ var UTLSettingsContext = createContext({
10544
+ state: UTLSettingsReducer.getInitialState(),
10545
+ actions: UTLSettingsReducer.actions,
10546
+ isLoading: true,
10547
+ });
10548
+ var useUTLSettingsContext = function () { return useContext(UTLSettingsContext); };
10549
+ var UTLSettingsProvider = function (_a) {
10550
+ var children = _a.children;
10551
+ var _b = useComplexState({
10552
+ initialState: UTLSettingsReducer.getInitialState(),
10553
+ reducers: UTLSettingsReducer.caseReducers,
10554
+ }), state = _b[0], actions = _b[1];
10555
+ var _c = useState(true), isLoading = _c[0], setIsLoading = _c[1];
10556
+ var searchUTLSettings = function () { return __awaiter(void 0, void 0, void 0, function () {
10557
+ var res, settings, settingsTrimmed;
10558
+ return __generator(this, function (_a) {
10559
+ switch (_a.label) {
10560
+ case 0: return [4 /*yield*/, getUTLSettings()];
10561
+ case 1:
10562
+ res = _a.sent();
10563
+ if (res.ok) {
10564
+ settings = get(res, "data.tables[0].rows", []);
10565
+ settingsTrimmed = settings.map(function (setting) { return (__assign(__assign({}, setting), { SettingName: setting.SettingName.trim() })); });
10566
+ actions.initSettings(settingsTrimmed);
10567
+ }
10568
+ else {
10569
+ console.error(res.message);
10570
+ }
10571
+ return [2 /*return*/];
10572
+ }
10573
+ });
10574
+ }); };
10575
+ useEffect(function () {
10576
+ setIsLoading(true);
10577
+ searchUTLSettings().then(function () {
10578
+ setIsLoading(false);
10579
+ });
10580
+ }, []);
10581
+ useMesfRealtime({
10582
+ onReceiveMessage: function (author, message) {
10583
+ if (message === "UTL.GetSettings") {
10584
+ searchUTLSettings();
10585
+ }
10586
+ },
10587
+ });
10588
+ return (React__default.createElement(UTLSettingsContext.Provider, { value: { state: state, actions: actions, isLoading: isLoading } }, children));
10589
+ };
10590
+
10591
+ var themeMESF = createTheme({
10592
+ palette: {
10593
+ type: "light",
10594
+ primary: {
10595
+ main: "#3f51b5",
10596
+ },
10597
+ secondary: {
10598
+ main: "#f50057",
10599
+ },
10600
+ },
10601
+ typography: {
10602
+ // Modify base font size
10603
+ fontSize: 14,
10604
+ // Customize specific variants
10605
+ h6: {
10606
+ fontSize: "1.1rem",
10607
+ fontWeight: 500,
10608
+ },
10609
+ subtitle1: {
10610
+ fontSize: "0.875rem",
10611
+ },
10612
+ body1: {
10613
+ fontSize: "0.875rem",
10614
+ },
10615
+ body2: {
10616
+ fontSize: "0.875rem",
10617
+ },
10618
+ },
10619
+ overrides: {
10620
+ MuiListItemText: {
10621
+ primary: {
10622
+ fontSize: "0.875rem",
10623
+ },
10624
+ },
10625
+ MuiListSubheader: {
10626
+ root: {
10627
+ fontSize: "0.875rem",
10628
+ fontWeight: 600,
10629
+ },
10630
+ },
10631
+ MuiListItemIcon: {
10632
+ root: {
10633
+ minWidth: "40px",
10634
+ },
10635
+ },
10636
+ },
10637
+ });
10638
+
10639
+ var RouterContext = createContext(function () { return React__default.createElement(React__default.Fragment, null); });
10640
+ var ConfigurationContext = createContext([
10641
+ [],
10642
+ function () { return React__default.createElement(React__default.Fragment, null); },
10643
+ ]);
10644
+ var NavbarContext = createContext(function () { return React__default.createElement(React__default.Fragment, null); });
10645
+
10646
+ var useSearchAssets = function (setError) {
10647
+ var _a = useAssetContext().actions, setAllAssets = _a.setAllAssets, setAreasList = _a.setAreasList;
10648
+ var searchAssets = function () {
10649
+ getAssets().then(function (res) { return __awaiter(void 0, void 0, void 0, function () {
10650
+ var rows, areas;
10651
+ return __generator(this, function (_a) {
10652
+ switch (_a.label) {
10653
+ case 0:
10654
+ if (!res.ok) return [3 /*break*/, 2];
10655
+ rows = get(res, "data.tables[0].rows", []);
10656
+ return [4 /*yield*/, rows.filter(function (asset) { return asset.CanBeDefaultAsset; })];
10657
+ case 1:
10658
+ areas = _a.sent();
10659
+ setAllAssets(rows);
10660
+ setAreasList(areas);
10661
+ return [3 /*break*/, 3];
10662
+ case 2:
10663
+ setError(res.message);
10664
+ _a.label = 3;
10665
+ case 3: return [2 /*return*/];
10666
+ }
10667
+ });
10668
+ }); });
10669
+ };
10670
+ return { searchAssets: searchAssets };
10671
+ };
10672
+
10673
+ var AreaSelector$1 = lazy(function () {
10674
+ return Promise.resolve().then(function () { return areaSelector; }).then(function (mod) { return ({
10675
+ default: mod.AreaSelector,
10676
+ }); });
10677
+ });
10678
+ var useStyles$5 = makeStyles(function (theme) { return ({
10679
+ appBar: {
10680
+ // You can use dark or light variants of the primary color
10681
+ // backgroundColor: theme.palette.primary.dark, // Darker shade
10682
+ backgroundColor: theme.palette.primary.main, // Lighter shade
10683
+ // Or use a specific opacity
10684
+ // backgroundColor: alpha(theme.palette.primary.main, 0.9), // 90% opacity
10685
+ },
10686
+ title: {
10687
+ flexGrow: 0,
10688
+ marginRight: theme.spacing(2),
10689
+ textDecoration: "none",
10690
+ color: "white",
10691
+ textWrap: "nowrap",
10692
+ },
10693
+ navContainer: {
10694
+ display: "flex",
10695
+ flexGrow: 1,
10696
+ "& a": {
10697
+ color: "white",
10698
+ },
10699
+ },
10700
+ rightItems: {
10701
+ display: "flex",
10702
+ alignItems: "center",
10703
+ color: "white",
10704
+ },
10705
+ menuButton: {
10564
10706
  marginRight: theme.spacing(2),
10565
10707
  color: "white",
10566
10708
  },
@@ -10783,26 +10925,28 @@ var ChatComponent = function () {
10783
10925
  }
10784
10926
  });
10785
10927
  }); };
10786
- return (React__default.createElement(Paper, { className: classes.root, elevation: 3 },
10787
- React__default.createElement(Box, { mb: 2 },
10788
- React__default.createElement(Chip, { label: connectionState.isConnected ? "Connected" : "Disconnected", color: connectionState.isConnected ? "primary" : "default", className: classes.statusChip }),
10789
- connectionState.error && (React__default.createElement(Typography$1, { color: "error" },
10790
- "Error: ",
10791
- connectionState.error.message))),
10792
- React__default.createElement(Paper, { className: classes.messageList, variant: "outlined" },
10793
- React__default.createElement(List, null,
10794
- messages.map(function (msg, index) { return (React__default.createElement(ListItem, { key: index },
10795
- React__default.createElement(ListItemText, { primary: React__default.createElement(Typography$1, null,
10796
- React__default.createElement("strong", null,
10797
- msg.user,
10798
- ":"),
10799
- " ",
10800
- msg.message), secondary: React__default.createElement("span", { className: classes.timestamp }, msg.timestamp.toLocaleTimeString()) }))); }),
10801
- React__default.createElement("div", { ref: messageEndRef }))),
10802
- React__default.createElement("form", { onSubmit: sendMessage, className: classes.messageForm },
10803
- React__default.createElement(TextField, { value: user, onChange: function (e) { return setUser(e.target.value); }, label: "Your name", variant: "outlined", size: "small" }),
10804
- React__default.createElement(TextField, { className: classes.messageInput, value: message, onChange: function (e) { return setMessage(e.target.value); }, label: "Type a message", variant: "outlined", size: "small" }),
10805
- React__default.createElement(Button, { type: "submit", variant: "contained", color: "primary", disabled: !connectionState.isConnected || !user || !message, endIcon: React__default.createElement(Send, null) }, "Send"))));
10928
+ return (React__default.createElement(React__default.Fragment, null,
10929
+ React__default.createElement(HelmetDexteel, { title: "Client - Real Time" }),
10930
+ React__default.createElement(Paper, { className: classes.root, elevation: 3 },
10931
+ React__default.createElement(Box, { mb: 2 },
10932
+ React__default.createElement(Chip, { label: connectionState.isConnected ? "Connected" : "Disconnected", color: connectionState.isConnected ? "primary" : "default", className: classes.statusChip }),
10933
+ connectionState.error && (React__default.createElement(Typography$1, { color: "error" },
10934
+ "Error: ",
10935
+ connectionState.error.message))),
10936
+ React__default.createElement(Paper, { className: classes.messageList, variant: "outlined" },
10937
+ React__default.createElement(List, null,
10938
+ messages.map(function (msg, index) { return (React__default.createElement(ListItem, { key: index },
10939
+ React__default.createElement(ListItemText, { primary: React__default.createElement(Typography$1, null,
10940
+ React__default.createElement("strong", null,
10941
+ msg.user,
10942
+ ":"),
10943
+ " ",
10944
+ msg.message), secondary: React__default.createElement("span", { className: classes.timestamp }, msg.timestamp.toLocaleTimeString()) }))); }),
10945
+ React__default.createElement("div", { ref: messageEndRef }))),
10946
+ React__default.createElement("form", { onSubmit: sendMessage, className: classes.messageForm },
10947
+ React__default.createElement(TextField, { value: user, onChange: function (e) { return setUser(e.target.value); }, label: "Your name", variant: "outlined", size: "small" }),
10948
+ React__default.createElement(TextField, { className: classes.messageInput, value: message, onChange: function (e) { return setMessage(e.target.value); }, label: "Type a message", variant: "outlined", size: "small" }),
10949
+ React__default.createElement(Button, { type: "submit", variant: "contained", color: "primary", disabled: !connectionState.isConnected || !user || !message, endIcon: React__default.createElement(Send, null) }, "Send")))));
10806
10950
  };
10807
10951
 
10808
10952
  var QueryCacheInvalidations = function () {
@@ -10936,38 +11080,43 @@ var QueryCacheInvalidations = function () {
10936
11080
  }
10937
11081
  });
10938
11082
  }); };
10939
- return (React__default.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center" },
10940
- React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { padding: "0 15px" } },
10941
- React__default.createElement(Typography$1, { variant: "h5", style: { margin: "20px 0", fontWeight: 600 } }, "Query Cache Invalidations")),
11083
+ return (React__default.createElement(React__default.Fragment, null,
11084
+ React__default.createElement(HelmetDexteel, { title: "Query Cache Invalidations - Real Time" }),
11085
+ ["add", "edit"].includes(modal) && (React__default.createElement(HelmetDexteel, { title: "".concat(modal === "add" ? "Add Cache Invalidation" : "Edit Cache Invalidation", " - Query Cache Invalidations") })),
10942
11086
  React__default.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center" },
10943
11087
  React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { padding: "0 15px" } },
10944
- React__default.createElement(Grid, { component: Paper, item: true, md: 12, xs: 12, style: {
10945
- height: "70vh",
10946
- } },
10947
- React__default.createElement(AgGridReact, { gridOptions: {
10948
- theme: themeMaterial,
10949
- }, ref: gridRef, rowData: rowData, columnDefs: columnDefs, defaultColDef: defaultColDef, rowHeight: 34, headerHeight: 34, animateRows: true, rowSelection: "single", onRowDoubleClicked: function (event) {
10950
- handleEdit(event.data);
10951
- } })),
10952
- React__default.createElement(Grid, { container: true, justifyContent: "flex-end", style: { marginTop: 10 } },
10953
- React__default.createElement(Grid, { item: true, md: 2, xs: 12 },
10954
- React__default.createElement(Button, { variant: "contained", color: "primary", onClick: handleAdd, fullWidth: true }, "ADD NEW"))))),
10955
- React__default.createElement(MesfModal, { title: modal === "add" ? "Add Cache Invalidation" : "Edit Cache Invalidation", open: ["add", "edit"].includes(modal), handleClose: function () { return setModal(""); } },
10956
- React__default.createElement("form", { onSubmit: handleSubmit(onSubmit) },
10957
- React__default.createElement(MesfModal.Content, { dividers: true },
10958
- React__default.createElement(Grid, { container: true, spacing: 3 },
10959
- React__default.createElement(Grid, { item: true, xs: 12 },
10960
- React__default.createElement(Controller, { control: control, name: "source", render: function (params) { return (React__default.createElement(Autocomplete, { options: actions, getOptionLabel: function (option) { return "".concat(option.ActionName); }, value: params.field.value, onChange: function (_, value) { return params.field.onChange(value); }, renderInput: function (params) { return (React__default.createElement(TextField, __assign({}, params, { label: "Select Source Action", variant: "outlined" }))); }, style: { marginTop: 16, marginBottom: 16 }, disabled: modal === "edit" })); } })),
10961
- React__default.createElement(Grid, { item: true, xs: 12 },
10962
- React__default.createElement(Controller, { control: control, name: "targets", render: function (params) { return (React__default.createElement(Autocomplete, { multiple: true, options: actions.filter(function (a) { var _a; return a.ActionId !== ((_a = control._formValues.source) === null || _a === void 0 ? void 0 : _a.ActionId); }), getOptionLabel: function (option) { return option.ActionName; }, value: params.field.value, onChange: function (_, value) {
10963
- params.field.onChange(value);
10964
- }, renderInput: function (params) { return (React__default.createElement(TextField, __assign({}, params, { label: "Select Target Actions", variant: "outlined" }))); }, style: { marginTop: 16, marginBottom: 16 } })); } })))),
10965
- React__default.createElement(MesfModal.Actions, null,
10966
- React__default.createElement(Grid, { container: true, spacing: 2, justifyContent: "flex-end" },
10967
- React__default.createElement(Grid, { item: true, md: 3, xs: 12 },
10968
- React__default.createElement(Button, { fullWidth: true, variant: "contained", color: "default", onClick: function () { return setModal(""); } }, "Cancel")),
10969
- React__default.createElement(Grid, { item: true, md: 3, xs: 12 },
10970
- React__default.createElement(Button, { fullWidth: true, startIcon: isLoading && React__default.createElement(CircularProgress, { size: "1rem" }), disabled: isLoading, variant: "contained", color: "primary", type: "submit" }, "Save"))))))));
11088
+ React__default.createElement(Typography$1, { variant: "h5", style: { margin: "20px 0", fontWeight: 600 } }, "Query Cache Invalidations")),
11089
+ React__default.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center" },
11090
+ React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { padding: "0 15px" } },
11091
+ React__default.createElement(Grid, { component: Paper, item: true, md: 12, xs: 12, style: {
11092
+ height: "70vh",
11093
+ } },
11094
+ React__default.createElement(AgGridReact, { gridOptions: {
11095
+ theme: themeMaterial,
11096
+ }, ref: gridRef, rowData: rowData, columnDefs: columnDefs, defaultColDef: defaultColDef, rowHeight: 34, headerHeight: 34, animateRows: true, rowSelection: "single", onRowDoubleClicked: function (event) {
11097
+ handleEdit(event.data);
11098
+ } })),
11099
+ React__default.createElement(Grid, { container: true, justifyContent: "flex-end", style: { marginTop: 10 } },
11100
+ React__default.createElement(Grid, { item: true, md: 2, xs: 12 },
11101
+ React__default.createElement(Button, { variant: "contained", color: "primary", onClick: handleAdd, fullWidth: true }, "ADD NEW"))))),
11102
+ React__default.createElement(MesfModal, { title: modal === "add"
11103
+ ? "Add Cache Invalidation"
11104
+ : "Edit Cache Invalidation", open: ["add", "edit"].includes(modal), handleClose: function () { return setModal(""); } },
11105
+ React__default.createElement("form", { onSubmit: handleSubmit(onSubmit) },
11106
+ React__default.createElement(MesfModal.Content, { dividers: true },
11107
+ React__default.createElement(Grid, { container: true, spacing: 3 },
11108
+ React__default.createElement(Grid, { item: true, xs: 12 },
11109
+ React__default.createElement(Controller, { control: control, name: "source", render: function (params) { return (React__default.createElement(Autocomplete, { options: actions, getOptionLabel: function (option) { return "".concat(option.ActionName); }, value: params.field.value, onChange: function (_, value) { return params.field.onChange(value); }, renderInput: function (params) { return (React__default.createElement(TextField, __assign({}, params, { label: "Select Source Action", variant: "outlined" }))); }, style: { marginTop: 16, marginBottom: 16 }, disabled: modal === "edit" })); } })),
11110
+ React__default.createElement(Grid, { item: true, xs: 12 },
11111
+ React__default.createElement(Controller, { control: control, name: "targets", render: function (params) { return (React__default.createElement(Autocomplete, { multiple: true, options: actions.filter(function (a) { var _a; return a.ActionId !== ((_a = control._formValues.source) === null || _a === void 0 ? void 0 : _a.ActionId); }), getOptionLabel: function (option) { return option.ActionName; }, value: params.field.value, onChange: function (_, value) {
11112
+ params.field.onChange(value);
11113
+ }, renderInput: function (params) { return (React__default.createElement(TextField, __assign({}, params, { label: "Select Target Actions", variant: "outlined" }))); }, style: { marginTop: 16, marginBottom: 16 } })); } })))),
11114
+ React__default.createElement(MesfModal.Actions, null,
11115
+ React__default.createElement(Grid, { container: true, spacing: 2, justifyContent: "flex-end" },
11116
+ React__default.createElement(Grid, { item: true, md: 3, xs: 12 },
11117
+ React__default.createElement(Button, { fullWidth: true, variant: "contained", color: "default", onClick: function () { return setModal(""); } }, "Cancel")),
11118
+ React__default.createElement(Grid, { item: true, md: 3, xs: 12 },
11119
+ React__default.createElement(Button, { fullWidth: true, startIcon: isLoading && React__default.createElement(CircularProgress, { size: "1rem" }), disabled: isLoading, variant: "contained", color: "primary", type: "submit" }, "Save")))))))));
10971
11120
  };
10972
11121
 
10973
11122
  var SettingsInitialState = {
@@ -11280,7 +11429,7 @@ var useStyles$1 = makeStyles(function (theme) { return ({
11280
11429
  },
11281
11430
  }); });
11282
11431
  var CreateSetting = function (_a) {
11283
- var show = _a.show, onHide = _a.onHide;
11432
+ var show = _a.show, onHide = _a.onHide, suffixTitle = _a.suffixTitle;
11284
11433
  var _b = useState(false), open = _b[0], setOpen = _b[1];
11285
11434
  var _c = useState(false), isSubmitLoading = _c[0], setIsSubmitLoading = _c[1];
11286
11435
  var _d = useState(""), error = _d[0], setError = _d[1];
@@ -11324,9 +11473,10 @@ var CreateSetting = function (_a) {
11324
11473
  }
11325
11474
  }, [show]);
11326
11475
  return (React.createElement(React.Fragment, null,
11476
+ show && (React.createElement(HelmetDexteel, { title: "New Setting".concat(suffixTitle ? " - ".concat(suffixTitle) : "") })),
11327
11477
  React.createElement(Grid, { container: true },
11328
11478
  React.createElement(Grid, { item: true },
11329
- React.createElement(MesfModal, { title: "NEW SETTING/CREW", open: show, handleClose: function () { return onHide(false); }, id: "create-setting-modal", maxWidth: "md" },
11479
+ React.createElement(MesfModal, { title: "NEW SETTING", open: show, handleClose: function () { return onHide(false); }, id: "create-setting-modal", maxWidth: "md" },
11330
11480
  React.createElement("form", { onSubmit: handleSubmit(onSubmit) },
11331
11481
  React.createElement(MesfModal.Content, { style: { padding: "15px 30px 0" } },
11332
11482
  React.createElement(Grid, { container: true, spacing: 2 },
@@ -11386,7 +11536,7 @@ makeStyles(function (theme) { return ({
11386
11536
  },
11387
11537
  }); });
11388
11538
  var DeleteSetting = function (_a) {
11389
- var show = _a.show, onHide = _a.onHide;
11539
+ var show = _a.show, onHide = _a.onHide, suffixTitle = _a.suffixTitle;
11390
11540
  var _b = useState(false), open = _b[0], setOpen = _b[1];
11391
11541
  var _c = useState(false), isSubmitLoading = _c[0], setIsSubmitLoading = _c[1];
11392
11542
  var _d = useState(""), error = _d[0], setError = _d[1];
@@ -11434,9 +11584,10 @@ var DeleteSetting = function (_a) {
11434
11584
  }
11435
11585
  }, [show]);
11436
11586
  return (React.createElement(React.Fragment, null,
11587
+ show && (React.createElement(HelmetDexteel, { title: "Delete Setting".concat(suffixTitle ? " - ".concat(suffixTitle) : "") })),
11437
11588
  React.createElement(Grid, { container: true },
11438
11589
  React.createElement(Grid, { item: true },
11439
- React.createElement(MesfModal, { title: "DELETE SETTING/CREW", open: show, handleClose: function () { return onHide(false); }, id: "delete-setting-modal", maxWidth: "md" },
11590
+ React.createElement(MesfModal, { title: "DELETE SETTING", open: show, handleClose: function () { return onHide(false); }, id: "delete-setting-modal", maxWidth: "md" },
11440
11591
  React.createElement("form", { onSubmit: handleSubmit(onSubmit) },
11441
11592
  React.createElement(MesfModal.Content, { style: { padding: "15px 30px 0" } },
11442
11593
  React.createElement(Grid, { container: true, spacing: 2 },
@@ -11490,7 +11641,7 @@ makeStyles(function (theme) { return ({
11490
11641
  },
11491
11642
  }); });
11492
11643
  var EditSetting = function (_a) {
11493
- var show = _a.show, onHide = _a.onHide;
11644
+ var show = _a.show, onHide = _a.onHide, suffixTitle = _a.suffixTitle;
11494
11645
  var _b = useState(false), open = _b[0], setOpen = _b[1];
11495
11646
  var _c = useState(false), isSubmitLoading = _c[0], setIsSubmitLoading = _c[1];
11496
11647
  var _d = useState(""), error = _d[0], setError = _d[1];
@@ -11538,9 +11689,10 @@ var EditSetting = function (_a) {
11538
11689
  }
11539
11690
  }, [show]);
11540
11691
  return (React.createElement(React.Fragment, null,
11692
+ show && (React.createElement(HelmetDexteel, { title: "Edit Setting".concat(suffixTitle ? " - ".concat(suffixTitle) : "") })),
11541
11693
  React.createElement(Grid, { container: true },
11542
11694
  React.createElement(Grid, { item: true },
11543
- React.createElement(MesfModal, { title: "EDIT SETTING/CREW", open: show, handleClose: function () { return onHide(false); }, id: "edit-setting-modal", maxWidth: "md" },
11695
+ React.createElement(MesfModal, { title: "EDIT SETTING", open: show, handleClose: function () { return onHide(false); }, id: "edit-setting-modal", maxWidth: "md" },
11544
11696
  React.createElement("form", { onSubmit: handleSubmit(onSubmit) },
11545
11697
  React.createElement(MesfModal.Content, { style: { padding: "15px 30px 0" } },
11546
11698
  React.createElement(Grid, { container: true, spacing: 2 },
@@ -11664,17 +11816,17 @@ var TableSettings = function (_a) {
11664
11816
  setOpenModalNew(false);
11665
11817
  if (shouldUpdate)
11666
11818
  getSettingsFromAPI();
11667
- } }),
11819
+ }, suffixTitle: "Settings" }),
11668
11820
  React__default.createElement(EditSetting, { show: openModalEditSetting, onHide: function (shouldUpdate) {
11669
11821
  setOpenModalEditSetting(false);
11670
11822
  if (shouldUpdate)
11671
11823
  getSettingsFromAPI();
11672
- } }),
11824
+ }, suffixTitle: "Settings" }),
11673
11825
  React__default.createElement(DeleteSetting, { show: openModalDeleteSetting, onHide: function (shouldUpdate) {
11674
11826
  setOpenModalDeleteSetting(false);
11675
11827
  if (shouldUpdate)
11676
11828
  getSettingsFromAPI();
11677
- } })),
11829
+ }, suffixTitle: "Settings" })),
11678
11830
  React__default.createElement(Grid, { container: true, justifyContent: "flex-end" },
11679
11831
  React__default.createElement(Grid, { item: true, md: 2, xs: 12, style: {
11680
11832
  display: "flex",
@@ -11712,6 +11864,7 @@ var SettingsPage = function () {
11712
11864
  getSettingsFromAPI();
11713
11865
  }, []);
11714
11866
  return (React__default.createElement(React__default.Fragment, null,
11867
+ React__default.createElement(HelmetDexteel, { title: "Settings" }),
11715
11868
  React__default.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center" },
11716
11869
  React__default.createElement(TableSettings, { rows: state.settings, isLoading: isLoading, getSettingsFromAPI: getSettingsFromAPI })),
11717
11870
  React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
@@ -11926,7 +12079,7 @@ const FORMATS = {
11926
12079
  year: 'YYYY'
11927
12080
  };
11928
12081
 
11929
- _adapters._date.override(typeof moment$3 === 'function' ? {
12082
+ _adapters._date.override(typeof moment$2 === 'function' ? {
11930
12083
  _id: 'moment', // DEBUG ONLY
11931
12084
 
11932
12085
  formats: function() {
@@ -11935,27 +12088,27 @@ _adapters._date.override(typeof moment$3 === 'function' ? {
11935
12088
 
11936
12089
  parse: function(value, format) {
11937
12090
  if (typeof value === 'string' && typeof format === 'string') {
11938
- value = moment$3(value, format);
11939
- } else if (!(value instanceof moment$3)) {
11940
- value = moment$3(value);
12091
+ value = moment$2(value, format);
12092
+ } else if (!(value instanceof moment$2)) {
12093
+ value = moment$2(value);
11941
12094
  }
11942
12095
  return value.isValid() ? value.valueOf() : null;
11943
12096
  },
11944
12097
 
11945
12098
  format: function(time, format) {
11946
- return moment$3(time).format(format);
12099
+ return moment$2(time).format(format);
11947
12100
  },
11948
12101
 
11949
12102
  add: function(time, amount, unit) {
11950
- return moment$3(time).add(amount, unit).valueOf();
12103
+ return moment$2(time).add(amount, unit).valueOf();
11951
12104
  },
11952
12105
 
11953
12106
  diff: function(max, min, unit) {
11954
- return moment$3(max).diff(moment$3(min), unit);
12107
+ return moment$2(max).diff(moment$2(min), unit);
11955
12108
  },
11956
12109
 
11957
12110
  startOf: function(time, unit, weekday) {
11958
- time = moment$3(time);
12111
+ time = moment$2(time);
11959
12112
  if (unit === 'isoWeek') {
11960
12113
  weekday = Math.trunc(Math.min(Math.max(0, weekday), 6));
11961
12114
  return time.isoWeekday(weekday).startOf('day').valueOf();
@@ -11964,7 +12117,7 @@ _adapters._date.override(typeof moment$3 === 'function' ? {
11964
12117
  },
11965
12118
 
11966
12119
  endOf: function(time, unit) {
11967
- return moment$3(time).endOf(unit).valueOf();
12120
+ return moment$2(time).endOf(unit).valueOf();
11968
12121
  }
11969
12122
  } : {});
11970
12123
 
@@ -12057,15 +12210,8 @@ var ColorPicker = function (_a) {
12057
12210
  } })); })))));
12058
12211
  };
12059
12212
 
12060
- var ButtonWithLoading = function (_a) {
12061
- var children = _a.children, isLoading = _a.isLoading, props = __rest(_a, ["children", "isLoading"]);
12062
- return (React__default.createElement(Button, __assign({}, props, { disabled: isLoading }),
12063
- isLoading && React__default.createElement(CircularProgress, { size: "1rem" }),
12064
- children));
12065
- };
12066
-
12067
12213
  var TrendingsInitialState = {
12068
- timeScopeStart: moment$3(new Date()).subtract(1, "days").toDate(),
12214
+ timeScopeStart: moment$2(new Date()).subtract(1, "days").toDate(),
12069
12215
  timeScopeEnd: new Date(),
12070
12216
  scope: "1 day",
12071
12217
  graphPan: false,
@@ -12105,32 +12251,32 @@ var TrendingsReducer = createSlice({
12105
12251
  if (payload.scope !== "custom") {
12106
12252
  switch (payload.scope) {
12107
12253
  case "10 min":
12108
- state.timeScopeStart = moment$3(state.timeScopeEnd)
12254
+ state.timeScopeStart = moment$2(state.timeScopeEnd)
12109
12255
  .subtract(10, "minutes")
12110
12256
  .toDate();
12111
12257
  break;
12112
12258
  case "1 hour":
12113
- state.timeScopeStart = moment$3(state.timeScopeEnd)
12259
+ state.timeScopeStart = moment$2(state.timeScopeEnd)
12114
12260
  .subtract(1, "hours")
12115
12261
  .toDate();
12116
12262
  break;
12117
12263
  case "4 hours":
12118
- state.timeScopeStart = moment$3(state.timeScopeEnd)
12264
+ state.timeScopeStart = moment$2(state.timeScopeEnd)
12119
12265
  .subtract(4, "hours")
12120
12266
  .toDate();
12121
12267
  break;
12122
12268
  case "12 hours":
12123
- state.timeScopeStart = moment$3(state.timeScopeEnd)
12269
+ state.timeScopeStart = moment$2(state.timeScopeEnd)
12124
12270
  .subtract(12, "hours")
12125
12271
  .toDate();
12126
12272
  break;
12127
12273
  case "1 day":
12128
- state.timeScopeStart = moment$3(state.timeScopeEnd)
12274
+ state.timeScopeStart = moment$2(state.timeScopeEnd)
12129
12275
  .subtract(1, "days")
12130
12276
  .toDate();
12131
12277
  break;
12132
12278
  case "10 days":
12133
- state.timeScopeStart = moment$3(state.timeScopeEnd)
12279
+ state.timeScopeStart = moment$2(state.timeScopeEnd)
12134
12280
  .subtract(10, "days")
12135
12281
  .toDate();
12136
12282
  break;
@@ -12161,32 +12307,32 @@ var TrendingsReducer = createSlice({
12161
12307
  if (state.scope !== "custom") {
12162
12308
  switch (state.scope) {
12163
12309
  case "10 min":
12164
- state.timeScopeEnd = moment$3(payload.start)
12310
+ state.timeScopeEnd = moment$2(payload.start)
12165
12311
  .add(10, "minutes")
12166
12312
  .toDate();
12167
12313
  break;
12168
12314
  case "1 hour":
12169
- state.timeScopeEnd = moment$3(payload.start)
12315
+ state.timeScopeEnd = moment$2(payload.start)
12170
12316
  .add(1, "hours")
12171
12317
  .toDate();
12172
12318
  break;
12173
12319
  case "4 hours":
12174
- state.timeScopeEnd = moment$3(payload.start)
12320
+ state.timeScopeEnd = moment$2(payload.start)
12175
12321
  .add(4, "hours")
12176
12322
  .toDate();
12177
12323
  break;
12178
12324
  case "12 hours":
12179
- state.timeScopeEnd = moment$3(payload.start)
12325
+ state.timeScopeEnd = moment$2(payload.start)
12180
12326
  .add(12, "hours")
12181
12327
  .toDate();
12182
12328
  break;
12183
12329
  case "1 day":
12184
- state.timeScopeEnd = moment$3(payload.start)
12330
+ state.timeScopeEnd = moment$2(payload.start)
12185
12331
  .add(1, "days")
12186
12332
  .toDate();
12187
12333
  break;
12188
12334
  case "10 days":
12189
- state.timeScopeEnd = moment$3(payload.start)
12335
+ state.timeScopeEnd = moment$2(payload.start)
12190
12336
  .add(10, "days")
12191
12337
  .toDate();
12192
12338
  break;
@@ -12199,32 +12345,32 @@ var TrendingsReducer = createSlice({
12199
12345
  if (state.scope !== "custom") {
12200
12346
  switch (state.scope) {
12201
12347
  case "10 min":
12202
- state.timeScopeStart = moment$3(payload.end)
12348
+ state.timeScopeStart = moment$2(payload.end)
12203
12349
  .subtract(10, "minutes")
12204
12350
  .toDate();
12205
12351
  break;
12206
12352
  case "1 hour":
12207
- state.timeScopeStart = moment$3(payload.end)
12353
+ state.timeScopeStart = moment$2(payload.end)
12208
12354
  .subtract(1, "hours")
12209
12355
  .toDate();
12210
12356
  break;
12211
12357
  case "4 hours":
12212
- state.timeScopeStart = moment$3(payload.end)
12358
+ state.timeScopeStart = moment$2(payload.end)
12213
12359
  .subtract(4, "hours")
12214
12360
  .toDate();
12215
12361
  break;
12216
12362
  case "12 hours":
12217
- state.timeScopeStart = moment$3(payload.end)
12363
+ state.timeScopeStart = moment$2(payload.end)
12218
12364
  .subtract(12, "hours")
12219
12365
  .toDate();
12220
12366
  break;
12221
12367
  case "1 day":
12222
- state.timeScopeStart = moment$3(payload.end)
12368
+ state.timeScopeStart = moment$2(payload.end)
12223
12369
  .subtract(1, "days")
12224
12370
  .toDate();
12225
12371
  break;
12226
12372
  case "10 days":
12227
- state.timeScopeStart = moment$3(payload.end)
12373
+ state.timeScopeStart = moment$2(payload.end)
12228
12374
  .subtract(10, "days")
12229
12375
  .toDate();
12230
12376
  break;
@@ -14183,21 +14329,21 @@ var dateNavigator = function (startDate, endDate, scope, operator, current) {
14183
14329
  }
14184
14330
  else {
14185
14331
  var _a = scope.split(" "), quantity = _a[0], duration = _a[1];
14186
- newStartDate = moment$3(newEndDate)
14332
+ newStartDate = moment$2(newEndDate)
14187
14333
  .subtract(quantity, duration[0])
14188
14334
  .toDate();
14189
14335
  }
14190
14336
  }
14191
14337
  else {
14192
14338
  if (scope === "custom") {
14193
- var durationInMs = moment$3(endDate).diff(moment$3(startDate));
14194
- 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();
14195
14341
  }
14196
14342
  else {
14197
14343
  var _b = scope.split(" "), quantity = _b[0], duration = _b[1];
14198
- newStartDate = moment$3(startDate)[operator](quantity, duration[0])
14344
+ newStartDate = moment$2(startDate)[operator](quantity, duration[0])
14199
14345
  .toDate();
14200
- newEndDate = moment$3(endDate)[operator](quantity, duration[0])
14346
+ newEndDate = moment$2(endDate)[operator](quantity, duration[0])
14201
14347
  .toDate();
14202
14348
  }
14203
14349
  }
@@ -14226,7 +14372,7 @@ var Header = function (_a) {
14226
14372
  var handleDateChange = function (newValue, key) {
14227
14373
  var _a;
14228
14374
  //@ts-ignore
14229
- actions.setTotalScope((_a = {}, _a[key] = moment$3(newValue).toDate(), _a));
14375
+ actions.setTotalScope((_a = {}, _a[key] = moment$2(newValue).toDate(), _a));
14230
14376
  };
14231
14377
  var handleChangeScope = function (e) {
14232
14378
  var newScope = e.target.value;
@@ -14262,7 +14408,7 @@ var Header = function (_a) {
14262
14408
  React__default.createElement(IconButton$1, { color: "primary", onClick: function () { return handleDateNavigator("subtract"); }, className: classes.navigatorButton },
14263
14409
  React__default.createElement(ChevronLeft, { fontSize: "large" }))),
14264
14410
  React__default.createElement(Grid, { item: true },
14265
- 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: {
14266
14412
  shrink: true,
14267
14413
  style: { marginLeft: "10px" },
14268
14414
  }, InputProps: {
@@ -14279,7 +14425,7 @@ var Header = function (_a) {
14279
14425
  React__default.createElement(MenuItem, { value: "10 days" }, "10 days"),
14280
14426
  React__default.createElement(MenuItem, { value: "custom" }, "Custom")))),
14281
14427
  React__default.createElement(Grid, { item: true },
14282
- 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: {
14283
14429
  shrink: true,
14284
14430
  style: { marginLeft: "10px" },
14285
14431
  } })),
@@ -14809,6 +14955,7 @@ var TrendingsPage = function (props) {
14809
14955
  getTagsFromAPI();
14810
14956
  }, []);
14811
14957
  return (React__default.createElement(React__default.Fragment, null,
14958
+ React__default.createElement(HelmetDexteel, { title: "Trending Chart" }),
14812
14959
  React__default.createElement(Box, { p: 3, style: { maxWidth: "100%" } },
14813
14960
  React__default.createElement(Paper, null,
14814
14961
  React__default.createElement(Grid, { container: true, spacing: 3, style: { padding: "20px" } },
@@ -14886,84 +15033,6 @@ var Navigation = function (_a) {
14886
15033
  React__default.createElement(MESFMainContainer, null)));
14887
15034
  };
14888
15035
 
14889
- var UTLSettingsInitialState = {
14890
- serverTimeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
14891
- settings: {},
14892
- };
14893
- var UTLSettingsReducer = createSlice({
14894
- name: "__",
14895
- initialState: UTLSettingsInitialState,
14896
- reducers: {
14897
- setServerTimeZone: function (state, _a) {
14898
- var payload = _a.payload;
14899
- state.serverTimeZone = payload;
14900
- },
14901
- setSetting: function (state, _a) {
14902
- var payload = _a.payload;
14903
- state.settings[payload.key] = payload.value;
14904
- },
14905
- initSettings: function (state, _a) {
14906
- var payload = _a.payload;
14907
- state.settings = payload.reduce(function (acc, cur) {
14908
- if (cur.SettingName.trim().toLowerCase() === "timezone") {
14909
- var timeService = TimeService.getInstance();
14910
- timeService.setTimeZone(cur.Value);
14911
- }
14912
- acc[cur.SettingName.trim()] = cur.Value;
14913
- return acc;
14914
- }, {});
14915
- },
14916
- },
14917
- });
14918
-
14919
- var UTLSettingsContext = createContext({
14920
- state: UTLSettingsReducer.getInitialState(),
14921
- actions: UTLSettingsReducer.actions,
14922
- isLoading: true,
14923
- });
14924
- var useUTLSettingsContext = function () { return useContext(UTLSettingsContext); };
14925
- var UTLSettingsProvider = function (_a) {
14926
- var children = _a.children;
14927
- var _b = useComplexState({
14928
- initialState: UTLSettingsReducer.getInitialState(),
14929
- reducers: UTLSettingsReducer.caseReducers,
14930
- }), state = _b[0], actions = _b[1];
14931
- var _c = useState(true), isLoading = _c[0], setIsLoading = _c[1];
14932
- var searchUTLSettings = function () { return __awaiter(void 0, void 0, void 0, function () {
14933
- var res, settings, settingsTrimmed;
14934
- return __generator(this, function (_a) {
14935
- switch (_a.label) {
14936
- case 0: return [4 /*yield*/, getUTLSettings()];
14937
- case 1:
14938
- res = _a.sent();
14939
- if (res.ok) {
14940
- settings = get(res, "data.tables[0].rows", []);
14941
- settingsTrimmed = settings.map(function (setting) { return (__assign(__assign({}, setting), { SettingName: setting.SettingName.trim() })); });
14942
- actions.initSettings(settingsTrimmed);
14943
- }
14944
- else {
14945
- console.error(res.message);
14946
- }
14947
- return [2 /*return*/];
14948
- }
14949
- });
14950
- }); };
14951
- useEffect(function () {
14952
- setIsLoading(true);
14953
- searchUTLSettings().then(function () {
14954
- setIsLoading(false);
14955
- });
14956
- }, []);
14957
- useMesfRealtime({
14958
- onReceiveMessage: function (author, message) {
14959
- if (message === "UTL.GetSettings") {
14960
- searchUTLSettings();
14961
- }
14962
- },
14963
- });
14964
- return (React__default.createElement(UTLSettingsContext.Provider, { value: { state: state, actions: actions, isLoading: isLoading } }, children));
14965
- };
14966
-
14967
15036
  var ProvidersLoader = function (_a) {
14968
15037
  var children = _a.children;
14969
15038
  var isUsersLoading = useUserContext().isLoading;
@@ -14980,77 +15049,40 @@ var ProvidersLoader = function (_a) {
14980
15049
  return React__default.createElement(React__default.Fragment, null, children);
14981
15050
  };
14982
15051
 
14983
- var themeMESF = createTheme({
14984
- palette: {
14985
- type: "light",
14986
- primary: {
14987
- main: "#3f51b5",
14988
- },
14989
- secondary: {
14990
- main: "#f50057",
14991
- },
14992
- },
14993
- typography: {
14994
- // Modify base font size
14995
- fontSize: 14,
14996
- // Customize specific variants
14997
- h6: {
14998
- fontSize: "1.1rem",
14999
- fontWeight: 500,
15000
- },
15001
- subtitle1: {
15002
- fontSize: "0.875rem",
15003
- },
15004
- body1: {
15005
- fontSize: "0.875rem",
15006
- },
15007
- body2: {
15008
- fontSize: "0.875rem",
15009
- },
15010
- },
15011
- overrides: {
15012
- MuiListItemText: {
15013
- primary: {
15014
- fontSize: "0.875rem",
15015
- },
15016
- },
15017
- MuiListSubheader: {
15018
- root: {
15019
- fontSize: "0.875rem",
15020
- fontWeight: 600,
15021
- },
15022
- },
15023
- MuiListItemIcon: {
15024
- root: {
15025
- minWidth: "40px",
15026
- },
15052
+ var timezone = TimeService.getInstance().getServerTimeZone();
15053
+ moment$1.tz.setDefault(timezone);
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,
15027
15060
  },
15028
15061
  },
15029
15062
  });
15030
-
15031
- var timezone = TimeService.getInstance().getServerTimeZone();
15032
- moment$2.tz.setDefault(timezone);
15033
- var base = document.getElementsByTagName("base")[0].getAttribute("href") || "/";
15034
15063
  function MESFMain(_a) {
15035
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;
15036
15065
  return (React__default.createElement(React__default.Fragment, null,
15037
15066
  React__default.createElement(CssBaseline, null),
15038
- React__default.createElement(ThemeProvider, { theme: theme },
15039
- React__default.createElement(AuthProvider, { authConfig: authentication },
15040
- React__default.createElement(LocalizationProvider, { dateAdapter: AdapterMoment, dateLibInstance: moment$2 },
15041
- React__default.createElement(UserProvider, null,
15042
- React__default.createElement(UTLSettingsProvider, null,
15043
- React__default.createElement(ProvidersLoader, null,
15044
- React__default.createElement(AssetProvider, { plantAssetId: plantAssetId },
15045
- React__default.createElement(RouterContext.Provider, { value: routes },
15046
- React__default.createElement(NavbarContext.Provider, { value: navbar },
15047
- React__default.createElement(ConfigurationContext.Provider, { value: configurations },
15048
- React__default.createElement(ShiftNavigatorProvider, null,
15049
- React__default.createElement(ContextMenuMESFProvider, null,
15050
- React__default.createElement(BrowserRouter, { basename: base },
15051
- React__default.createElement(Routes, null,
15052
- React__default.createElement(Route, { path: "/logout", element: React__default.createElement(Logout, null) })),
15053
- React__default.createElement(Navigation, { showAreaSelector: showAreaSelector, showTrendingsIcon: showTrendingsIcon, navbarTitle: navbarTitle, byPassHeaderRoutes: byPassHeaderRoutes }))))))))))))))));
15067
+ React__default.createElement(HelmetProvider, null,
15068
+ React__default.createElement(HelmetDexteelProvider, { navbarTitle: navbarTitle },
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 })))))))))))))))))));
15054
15086
  }
15055
15087
 
15056
15088
  var useDefaultAreaId = function (setError) {
@@ -15177,6 +15209,7 @@ var AreaSelector = function () {
15177
15209
  React__default.createElement("div", { className: classes.areaLink },
15178
15210
  React__default.createElement(PersonPinCircleIcon, { className: classes.areaIcon }),
15179
15211
  defaultAreaName))),
15212
+ open && React__default.createElement(HelmetDexteel, { title: "Change Default Area" }),
15180
15213
  React__default.createElement(Dialog$1, { fullWidth: fullWidth, maxWidth: maxWidth, onClose: handleClose, "aria-labelledby": "confirmation-dialog-title", open: open, className: classes.root },
15181
15214
  React__default.createElement(DialogTitle$1, { id: "confirmation-dialog-title" }, "AREA"),
15182
15215
  React__default.createElement(DialogContent$1, { dividers: true },
@@ -15202,5 +15235,5 @@ var areaSelector = /*#__PURE__*/Object.freeze({
15202
15235
  AreaSelector: AreaSelector
15203
15236
  });
15204
15237
 
15205
- export { Account, AssetProvider, AuthContext, AuthProvider, BarChartControl, ButtonWithLoading, ChangePassword, CheckBoxControl, Configuration$1 as Configuration, ContextMenu$1 as ContextMenu, ContextMenuMESFProvider, CurrencyFormatter, DataGridControl, DateFormatter, DateTimeFormatter, ErrorModal, FetchError, FilterPanel, GenericPanel, GenericTable, GetCrewColor, GetShiftColor, IntegerFormatter, Login, Logout, LongFilterPanel, MESApiService, MESFMain, MESSAGE_API, MESSAGE_ERRORS, MasterDetailPanel, MesfModal, ModalTreeFilterControl, MultipleSelectorControl, NumberFormatter, ShiftDayNavigatorControl, ShiftNavigatorProvider, ShiftPeriodNavigatorControl, SimplePasswordControl, SimpleSelectorControl, TimeAndUserMenu, TimeFormatter, TimeService, TreePickerControl, TreePickerControlV2, TrendingsPage, USER_LABELS, UTLSettingsProvider, UserProvider, axiosInstance, deleteUser, dxtServerTimeZone, dxtToLocalServerTime, dxtToUTC, formatNumber, getAuthTypes, getCrewStyle, getDataUser, getError, getMomentTz, getProfiles, getShiftByParameters, getShiftStyle, getShiftsRangeByParameters, getTokenFromLS, getUserPermissionsFromAPI, getUsers, renewToken, setPassword, setProfilesToUser, themeMESF, upsertUser, useAssetContext, useContextMenuMESF, useHasPermission, useHasProfile, useMesfRealtime, useShiftNavigator, useShiftNavigatorManager, useStyles$C as useStyles, useToken, useUTLSettingsContext, useUserContext };
15238
+ export { Account, AssetProvider, AuthContext, AuthProvider, BarChartControl, ButtonWithLoading, ChangePassword, CheckBoxControl, Configuration$1 as Configuration, ContextMenu$1 as ContextMenu, ContextMenuMESFProvider, CurrencyFormatter, DataGridControl, DateFormatter, DateTimeFormatter, ErrorModal, FetchError, FilterPanel, GenericPanel, GenericTable, GetCrewColor, GetShiftColor, HelmetDexteel, IntegerFormatter, Login, Logout, LongFilterPanel, MESApiService, MESFMain, MESSAGE_API, MESSAGE_ERRORS, MasterDetailPanel, MesfModal, ModalTreeFilterControl, MultipleSelectorControl, NumberFormatter, ShiftDayNavigatorControl, ShiftNavigatorProvider, ShiftPeriodNavigatorControl, SimplePasswordControl, SimpleSelectorControl, TimeAndUserMenu, TimeFormatter, TimeService, TreePickerControl, TreePickerControlV2, TrendingsPage, USER_LABELS, UTLSettingsProvider, UserProvider, axiosInstance, deleteUser, dxtServerTimeZone, dxtToLocalServerTime, dxtToUTC, formatNumber, getAuthTypes, getCrewStyle, getDataUser, getError, getMomentTz, getProfiles, getShiftByParameters, getShiftStyle, getShiftsRangeByParameters, getTokenFromLS, getUserPermissionsFromAPI, getUsers, renewToken, setPassword, setProfilesToUser, themeMESF, upsertUser, useAssetContext, useContextMenuMESF, useHasPermission, useHasProfile, useMesfRealtime, useShiftNavigator, useShiftNavigatorManager, useStyles$C as useStyles, useToken, useUTLSettingsContext, useUserContext };
15206
15239
  //# sourceMappingURL=index.esm.js.map