@dexteel/mesf-core 5.10.0 → 5.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -1,15 +1,15 @@
1
1
  export { LicenseManager } from 'ag-grid-enterprise';
2
- import { withStyles, DialogTitle as DialogTitle$1, DialogContent as DialogContent$1, DialogActions as DialogActions$1, createStyles, Grid, Button, alpha, makeStyles, Dialog as Dialog$1, 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, Badge, useTheme, Input, CssBaseline, AppBar, Toolbar, Container, Menu, Hidden, Drawer, useMediaQuery, Divider, ListSubheader, debounce, createTheme, ThemeProvider } from '@material-ui/core';
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';
3
+ import { values, get, isNil, isEmpty, round, isNaN as isNaN$1, isNumber } from 'lodash-es';
4
+ import * as React from 'react';
5
+ import React__default, { useState, useRef, useEffect, useMemo, Component, createContext, useContext, useCallback, lazy, Suspense } from 'react';
3
6
  import IconButton from '@material-ui/core/IconButton';
4
7
  import CloseIcon from '@material-ui/icons/Close';
5
8
  import Alert$3 from '@material-ui/lab/Alert';
6
- import * as React from 'react';
7
- import React__default, { useState, useRef, useEffect, useMemo, Component, createContext, useContext, useCallback, lazy, Suspense } from 'react';
8
9
  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';
9
10
  import { DatePicker } from '@mui/x-date-pickers/DatePicker';
10
11
  import moment$2 from 'moment-timezone';
11
12
  import { useParams, useNavigate, useSearchParams, Link, Navigate, Routes, Route, useLocation, BrowserRouter } from 'react-router-dom';
12
- import { values, get, isNil, isEmpty, round, isNaN as isNaN$1, isNumber } from 'lodash-es';
13
13
  import { ClearIcon, DatePicker as DatePicker$1, CalendarIcon, DateTimePicker, LocalizationProvider } from '@mui/x-date-pickers';
14
14
  import { AdapterMoment } from '@mui/x-date-pickers/AdapterMoment';
15
15
  import MenuIcon from '@material-ui/icons/Menu';
@@ -42,7 +42,7 @@ import zoomPlugin from 'chartjs-plugin-zoom';
42
42
  import LockIcon from '@material-ui/icons/Lock';
43
43
  import SaveIcon from '@material-ui/icons/Save';
44
44
  import Button$1 from '@material-ui/core/Button';
45
- import Popover from '@material-ui/core/Popover';
45
+ import Popover$1 from '@material-ui/core/Popover';
46
46
  import CreateIcon from '@material-ui/icons/Create';
47
47
  import { isAncestor, Tree, DndProvider as DndProvider$1 } from '@minoru/react-dnd-treeview';
48
48
  import FolderIcon from '@material-ui/icons/Folder';
@@ -51,9 +51,10 @@ import ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';
51
51
  import SkipNextIcon from '@material-ui/icons/SkipNext';
52
52
  import { Line } from 'react-chartjs-2';
53
53
  import PersonPinCircleIcon from '@material-ui/icons/PersonPinCircle';
54
- import { makeStyles as makeStyles$1 } from '@material-ui/core/styles';
55
54
  import Dialog from '@material-ui/core/Dialog';
56
55
  import Typography from '@material-ui/core/Typography';
56
+ import { format, fromZonedTime, formatInTimeZone } from 'date-fns-tz';
57
+ import { findIana } from 'windows-iana';
57
58
  import { ResponsiveBar } from '@nivo/bar';
58
59
  import PropTypes from 'prop-types';
59
60
  import AccountTreeIcon from '@material-ui/icons/AccountTree';
@@ -63,8 +64,6 @@ import TreeView from '@material-ui/lab/TreeView';
63
64
  import { useSpring, animated } from '@react-spring/web';
64
65
  import { DataGrid, GridOverlay } from '@material-ui/data-grid';
65
66
  import GetAppIcon from '@material-ui/icons/GetApp';
66
- import { format, fromZonedTime, formatInTimeZone } from 'date-fns-tz';
67
- import { findIana } from 'windows-iana';
68
67
  import PersonOutlineIcon from '@material-ui/icons/PersonOutline';
69
68
  import PersonIcon from '@material-ui/icons/Person';
70
69
  import { LogLevel as LogLevel$1, PublicClientApplication } from '@azure/msal-browser';
@@ -910,7 +909,7 @@ var ModalTreeFilterControl = function (props) {
910
909
  React__default.createElement(Button, { onClick: function () { return handleOk(); }, color: "primary" }, "OK"))));
911
910
  };
912
911
 
913
- var useStyles$I = makeStyles(function (theme) { return ({
912
+ var useStyles$G = makeStyles(function (theme) { return ({
914
913
  root: {
915
914
  width: "100%",
916
915
  backgroundColor: theme.palette.background.paper,
@@ -926,7 +925,7 @@ var useStyles$I = makeStyles(function (theme) { return ({
926
925
  },
927
926
  }); });
928
927
  var TreePickerControl = function (props) {
929
- var classes = useStyles$I();
928
+ var classes = useStyles$G();
930
929
  var onSelect = props.onSelect, value = props.value; props.styleLabel; var dataSource = props.dataSource, _a = props.inputTitle, inputTitle = _a === void 0 ? "Asset" : _a; props.showPath; var _c = props.multipleSelectNodes, multipleSelectNodes = _c === void 0 ? false : _c, _d = props.showClearButton, showClearButton = _d === void 0 ? false : _d, showAssetTree = props.showAssetTree, onHide = props.onHide, _e = props.listAssetDrawings, listAssetDrawings = _e === void 0 ? [] : _e, onSuccess = props.onSuccess, isLoading = props.isLoading, _f = props.allowSearch, allowSearch = _f === void 0 ? false : _f, other = __rest(props, ["onSelect", "value", "styleLabel", "dataSource", "inputTitle", "showPath", "multipleSelectNodes", "showClearButton", "showAssetTree", "onHide", "listAssetDrawings", "onSuccess", "isLoading", "allowSearch"]);
931
930
  var _g = useState(showAssetTree || false), open = _g[0], setOpen = _g[1];
932
931
  var handleClickListItem = function (e) {
@@ -1010,7 +1009,7 @@ var TreePickerControl = function (props) {
1010
1009
  }, onHide: onHide, id: "modal-treeview-filters", title: props.title, keepMounted: true, open: open, onClose: handleClose, isLoading: isLoading, value: value, data: dataSource, onBackdropClick: function () { return setOpen(false); }, multipleSelectNodes: multipleSelectNodes, listAssetDrawings: listAssetDrawings, setListAssetDrawings: listAssetDrawings, onSuccess: onSuccess, allowSearch: allowSearch }, other)))));
1011
1010
  };
1012
1011
 
1013
- var useStyles$H = makeStyles(function (theme) { return ({
1012
+ var useStyles$F = makeStyles(function (theme) { return ({
1014
1013
  root: {
1015
1014
  width: "100%",
1016
1015
  backgroundColor: theme.palette.background.paper,
@@ -1061,7 +1060,7 @@ function getNodePath(node, nodeId, parentPath, isRoot) {
1061
1060
  return null;
1062
1061
  }
1063
1062
  var TreePickerControlV2 = function (props) {
1064
- var classes = useStyles$H();
1063
+ var classes = useStyles$F();
1065
1064
  var value = props.value, onSelect = props.onSelect; props.styleLabel; var dataSource = props.dataSource; props.getOptionName; var _a = props.inputTitle, inputTitle = _a === void 0 ? "Asset" : _a; props.showPath; var _c = props.multipleSelectNodes, multipleSelectNodes = _c === void 0 ? false : _c, _d = props.showClearButton, showClearButton = _d === void 0 ? false : _d, _e = props.showFullPath, showFullPath = _e === void 0 ? false : _e, showAssetTree = props.showAssetTree, onHide = props.onHide, _f = props.listAssetDrawings, listAssetDrawings = _f === void 0 ? [] : _f, onSuccess = props.onSuccess, isLoading = props.isLoading, _g = props.disabled, disabled = _g === void 0 ? false : _g, _h = props.mostUsedCount, mostUsedCount = _h === void 0 ? 0 : _h, _j = props.itemsWithParent, itemsWithParent = _j === void 0 ? [] : _j, _k = props.dialogMaxWidth, dialogMaxWidth = _k === void 0 ? "sm" : _k, _l = props.allowSearch, allowSearch = _l === void 0 ? false : _l, other = __rest(props, ["value", "onSelect", "styleLabel", "dataSource", "getOptionName", "inputTitle", "showPath", "multipleSelectNodes", "showClearButton", "showFullPath", "showAssetTree", "onHide", "listAssetDrawings", "onSuccess", "isLoading", "disabled", "mostUsedCount", "itemsWithParent", "dialogMaxWidth", "allowSearch"]);
1066
1065
  var _m = useState(false), open = _m[0], setOpen = _m[1];
1067
1066
  var handleClickListItem = function (event) {
@@ -1253,7 +1252,7 @@ DataGridControl.propTypes = {
1253
1252
  rows: PropTypes.array,
1254
1253
  };
1255
1254
 
1256
- var useStyles$G = makeStyles(function (theme) { return ({
1255
+ var useStyles$E = makeStyles(function (theme) { return ({
1257
1256
  contentWrapper: {
1258
1257
  padding: theme.spacing(2),
1259
1258
  },
@@ -1330,7 +1329,7 @@ var useStyles$G = makeStyles(function (theme) { return ({
1330
1329
  }); });
1331
1330
  var Alert$1 = function (_a) {
1332
1331
  var show = _a.show, variant = _a.variant, dismissible = _a.dismissible, onClose = _a.onClose, children = _a.children;
1333
- var classes = useStyles$G();
1332
+ var classes = useStyles$E();
1334
1333
  return (React__default.createElement(Collapse, { in: show },
1335
1334
  React__default.createElement(Paper, { className: "".concat(classes.alert, " ").concat(variant === "success" ? classes.success : classes.error), elevation: 0 },
1336
1335
  React__default.createElement("div", { className: classes.alertContent },
@@ -1341,7 +1340,7 @@ var Alert$1 = function (_a) {
1341
1340
  var GenericPanel = function (_a) {
1342
1341
  var _b;
1343
1342
  var title = _a.title, _c = _a.description, description = _c === void 0 ? "" : _c, _d = _a.showPromptSuccess, showPromptSuccess = _d === void 0 ? false : _d, _e = _a.showPromptError, showPromptError = _e === void 0 ? false : _e, _f = _a.onDismissSuccess, onDismissSuccess = _f === void 0 ? function () { return null; } : _f, _g = _a.onDismissError, onDismissError = _g === void 0 ? function () { return null; } : _g, successMessage = _a.successMessage, error = _a.error, children = _a.children;
1344
- var classes = useStyles$G();
1343
+ var classes = useStyles$E();
1345
1344
  return (React__default.createElement(Box, { className: classes.contentWrapper },
1346
1345
  React__default.createElement(Box, { className: classes.alertContainer },
1347
1346
  React__default.createElement(Alert$1, { show: showPromptError, variant: "danger", dismissible: true, onClose: onDismissError },
@@ -1360,7 +1359,7 @@ var GenericPanel = function (_a) {
1360
1359
  };
1361
1360
  var MasterDetailPanel = function (_a) {
1362
1361
  var title = _a.title, onSave = _a.onSave, onCancel = _a.onCancel, onDelete = _a.onDelete, saveStatus = _a.saveStatus, deleteStatus = _a.deleteStatus, _b = _a.showSave, showSave = _b === void 0 ? true : _b, showDelete = _a.showDelete, children = _a.children;
1363
- var classes = useStyles$G();
1362
+ var classes = useStyles$E();
1364
1363
  return (React__default.createElement(Box, { className: classes.masterDetailPanel },
1365
1364
  React__default.createElement(Card, { variant: "outlined" },
1366
1365
  React__default.createElement(CardContent, null,
@@ -1373,7 +1372,7 @@ var MasterDetailPanel = function (_a) {
1373
1372
  showDelete && (React__default.createElement(Button, { variant: "contained", color: "primary", className: classes.button, onClick: onDelete, disabled: !deleteStatus }, "Delete")))))));
1374
1373
  };
1375
1374
  var FilterPanel = function (props) {
1376
- var classes = useStyles$G();
1375
+ var classes = useStyles$E();
1377
1376
  var onClickExport = props.onClickExport, onClickReset = props.onClickReset, OnClickGo = props.OnClickGo, showButtons = props.showButtons, showExport = props.showExport, _a = props.extraButtons, extraButtons = _a === void 0 ? [] : _a, children = props.children;
1378
1377
  var handleExport = function () {
1379
1378
  if (onClickExport)
@@ -1398,7 +1397,7 @@ var FilterPanel = function (props) {
1398
1397
  showExport && (React__default.createElement(Button, { variant: "contained", className: "".concat(classes.button, " ").concat(classes.exportButton), onClick: handleExport, startIcon: React__default.createElement(GetAppIcon, null) }, "Excel"))))))));
1399
1398
  };
1400
1399
  var LongFilterPanel = function (props) {
1401
- var classes = useStyles$G();
1400
+ var classes = useStyles$E();
1402
1401
  var onClickExport = props.onClickExport, onClickReset = props.onClickReset, OnClickGo = props.OnClickGo, showButtons = props.showButtons, showExport = props.showExport, _a = props.extraButtons, extraButtons = _a === void 0 ? [] : _a, children = props.children;
1403
1402
  var handleExport = function () {
1404
1403
  if (onClickExport)
@@ -1861,7 +1860,7 @@ var getShiftsRangeByParameters = function (period_1) {
1861
1860
  });
1862
1861
  };
1863
1862
 
1864
- var useStyles$F = makeStyles(function (theme) { return ({
1863
+ var useStyles$D = makeStyles(function (theme) { return ({
1865
1864
  container: {
1866
1865
  display: "grid",
1867
1866
  gridTemplateColumns: "auto minmax(100px, 1fr) 80px minmax(100px, 1fr) auto auto",
@@ -1907,7 +1906,7 @@ var DEFAULT_PERIOD_OPTIONS = [
1907
1906
  var ShiftPeriodNavigatorControl = function (_a) {
1908
1907
  var _b;
1909
1908
  var value = _a.value, onChange = _a.onChange, _c = _a.showShiftAndCrews, showShiftAndCrews = _c === void 0 ? true : _c, _d = _a.dateFormat, dateFormat = _d === void 0 ? "MM/DD/YYYY HH:mm a" : _d, _e = _a.periodOptions, periodOptions = _e === void 0 ? DEFAULT_PERIOD_OPTIONS : _e;
1910
- var classes = useStyles$F();
1909
+ var classes = useStyles$D();
1911
1910
  var _f = useState(((_b = periodOptions[0]) === null || _b === void 0 ? void 0 : _b.value) || "Day"), period = _f[0], setPeriod = _f[1];
1912
1911
  var _g = useState(false), loadingShiftPeriodList = _g[0], setLoadingShiftPeriodList = _g[1];
1913
1912
  var _h = useState(""); _h[0]; var setError = _h[1];
@@ -2186,7 +2185,7 @@ var ShiftPeriodNavigatorControl = function (_a) {
2186
2185
  React__default.createElement(SkipNextIcon, null)))));
2187
2186
  };
2188
2187
 
2189
- var useStyles$E = makeStyles(function (theme) { return ({
2188
+ var useStyles$C = makeStyles(function (theme) { return ({
2190
2189
  contextMenu: {
2191
2190
  backgroundColor: "#fff",
2192
2191
  borderRadius: "2px",
@@ -2278,7 +2277,7 @@ var useContextMenuMESF = function () { return useContext(ContextMenuMESFContext)
2278
2277
 
2279
2278
  var ContextMenu$1 = function () {
2280
2279
  var _a = useContextMenuMESF(), show = _a.show, position = _a.position, options = _a.options;
2281
- var classes = useStyles$E();
2280
+ var classes = useStyles$C();
2282
2281
  var menuRef = useRef(null);
2283
2282
  var _b = useState("0"), x = _b[0], setX = _b[1];
2284
2283
  var _c = useState("0"), y = _c[0], setY = _c[1];
@@ -2715,7 +2714,7 @@ var JobsProvider = function (_a) {
2715
2714
  return (React__default.createElement(JobsContext.Provider, { value: { state: state, actions: actions } }, children));
2716
2715
  };
2717
2716
 
2718
- var useStyles$D = makeStyles(function (theme) { return ({
2717
+ var useStyles$B = makeStyles(function (theme) { return ({
2719
2718
  buttons: {
2720
2719
  opacity: 0,
2721
2720
  transition: "opacity 0.1s ease-in-out",
@@ -2733,7 +2732,7 @@ var useStyles$D = makeStyles(function (theme) { return ({
2733
2732
  var useJobsTableData = function (_a) {
2734
2733
  var setShowModal = _a.setShowModal, setJobSelected = _a.setJobSelected, showContextMenu = _a.showContextMenu;
2735
2734
  var rows = useJobsContext().state.jobsData;
2736
- useStyles$D();
2735
+ useStyles$B();
2737
2736
  var renderButtonMenu = function (params) {
2738
2737
  return (React__default.createElement(Button, { style: {}, onClick: function (e) { return showContextMenu(e, params.data, "jobsContext"); } },
2739
2738
  React__default.createElement(FormatListBulletedSharpIcon, { style: { height: "auto" }, color: "action" })));
@@ -2827,7 +2826,7 @@ var CustomStatusPanel = function (_a) {
2827
2826
  return (React.createElement(IconButton$1, { onClick: handleNew, color: "primary", style: { marginLeft: -15 } },
2828
2827
  React.createElement(PlaylistAddIcon, { style: { width: 30, height: 30 } })));
2829
2828
  };
2830
- var useStyles$C = makeStyles(function (theme) { return ({
2829
+ var useStyles$A = makeStyles(function (theme) { return ({
2831
2830
  root: {
2832
2831
  "& .MuiDataGrid-row": {
2833
2832
  cursor: "pointer",
@@ -2906,7 +2905,7 @@ var useStyles$C = makeStyles(function (theme) { return ({
2906
2905
  }); });
2907
2906
  var TableJobs = function (_a) {
2908
2907
  var getJobsFromAPI = _a.getJobsFromAPI, isLoading = _a.isLoading;
2909
- var classes = useStyles$C();
2908
+ var classes = useStyles$A();
2910
2909
  var _b = useState(null), jobSelected = _b[0], setJobSelected = _b[1];
2911
2910
  var _c = useState(null), gridApi = _c[0], setGridApi = _c[1];
2912
2911
  var _d = useState(""), errorMessage = _d[0], setErrorMessage = _d[1];
@@ -3284,7 +3283,7 @@ var SearchFilter = function (_a) {
3284
3283
  }, label: "Search", variant: "outlined", size: "small", value: search, onChange: function (e) { return setSearch(e.target.value); }, autoComplete: "off" })));
3285
3284
  };
3286
3285
 
3287
- var useStyles$B = makeStyles(function (theme) { return ({
3286
+ var useStyles$z = makeStyles(function (theme) { return ({
3288
3287
  title: {
3289
3288
  fontSize: 15,
3290
3289
  },
@@ -3316,7 +3315,7 @@ var formatTime = function (nowTime) {
3316
3315
  };
3317
3316
  var ModalLogSelected = function (_a) {
3318
3317
  var show = _a.show, onHide = _a.onHide, selectedLog = _a.selectedLog;
3319
- var classes = useStyles$B();
3318
+ var classes = useStyles$z();
3320
3319
  return (React__default.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center" },
3321
3320
  React__default.createElement(MesfModal, { title: "LOG DETAILS", open: show, handleClose: function () { return onHide(false); }, maxWidth: "md", id: "log-details-modal" },
3322
3321
  React__default.createElement(MesfModal.Content, { style: { padding: "15px 30px" } },
@@ -3453,7 +3452,7 @@ var useLogTableData = function () {
3453
3452
  return { rows: rows, columnDefs: columnDefs };
3454
3453
  };
3455
3454
 
3456
- var useStyles$A = makeStyles(function (theme) { return ({
3455
+ var useStyles$y = makeStyles(function (theme) { return ({
3457
3456
  root: {
3458
3457
  "& .MuiDataGrid-row": {
3459
3458
  cursor: "pointer",
@@ -3522,7 +3521,7 @@ var useLogsOptionsFunctions = function (_a) {
3522
3521
  var TableLogs = function (_a) {
3523
3522
  var isLoading = _a.isLoading; _a.rowData; var refreshData = _a.refreshData;
3524
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;
3525
- var classes = useStyles$A();
3524
+ var classes = useStyles$y();
3526
3525
  var gridStyle = useMemo(function () { return ({ height: "100%", width: "100%" }); }, []);
3527
3526
  var _f = useState(null); _f[0]; var setGridAPI = _f[1];
3528
3527
  var _g = useState(false), showLogModal = _g[0], setShowLogModal = _g[1];
@@ -3832,7 +3831,7 @@ var deleteProfile = function (profileId) { return __awaiter(void 0, void 0, void
3832
3831
  });
3833
3832
  }); };
3834
3833
 
3835
- var useStyles$z = makeStyles(function (theme) { return ({
3834
+ var useStyles$x = makeStyles(function (theme) { return ({
3836
3835
  title: {
3837
3836
  fontSize: 15,
3838
3837
  },
@@ -3855,7 +3854,7 @@ var CreateProfile = function (_a) {
3855
3854
  var _d = useState(""), message = _d[0], setMessage = _d[1];
3856
3855
  var _e = useState(false), isSubmitLoading = _e[0], setIsSubmitLoading = _e[1];
3857
3856
  var _f = useState(""), error = _f[0], setError = _f[1];
3858
- var classes = useStyles$z();
3857
+ var classes = useStyles$x();
3859
3858
  var _g = useForm({ defaultValues: INITIAL_VALUES$3 }), register = _g.register, handleSubmit = _g.handleSubmit, reset = _g.reset, errors = _g.formState.errors;
3860
3859
  var onSubmit = function (data) { return __awaiter(void 0, void 0, void 0, function () {
3861
3860
  var res;
@@ -4091,7 +4090,7 @@ var DataTable = function (_a) {
4091
4090
  React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
4092
4091
  };
4093
4092
 
4094
- var useStyles$y = makeStyles(function (theme) { return ({
4093
+ var useStyles$w = makeStyles(function (theme) { return ({
4095
4094
  root: {
4096
4095
  "& .MuiFormLabel-asterisk": {
4097
4096
  display: "none",
@@ -4100,7 +4099,7 @@ var useStyles$y = makeStyles(function (theme) { return ({
4100
4099
  }); });
4101
4100
  var ActionsOfProfile = function (_a) {
4102
4101
  var profileForEdit = _a.profileForEdit, show = _a.show, onHide = _a.onHide;
4103
- var classes = useStyles$y();
4102
+ var classes = useStyles$w();
4104
4103
  var _b = useState(null), actionsOfProfile = _b[0], setActionsOfProfile = _b[1];
4105
4104
  var _c = useState(false), open = _c[0], setOpen = _c[1];
4106
4105
  var _d = useState(true), isLoading = _d[0], setIsLoading = _d[1];
@@ -4288,7 +4287,7 @@ var ProfilesProvider = function (_a) {
4288
4287
  return (React__default.createElement(ProfilesContext.Provider, { value: { state: state, actions: actions } }, children));
4289
4288
  };
4290
4289
 
4291
- var useStyles$x = makeStyles(function (theme) { return ({
4290
+ var useStyles$v = makeStyles(function (theme) { return ({
4292
4291
  buttons: {
4293
4292
  opacity: 0,
4294
4293
  transition: "opacity 0.1s ease-in-out",
@@ -4306,7 +4305,7 @@ var useStyles$x = makeStyles(function (theme) { return ({
4306
4305
  var useTableData$3 = function (_a) {
4307
4306
  var setProfileId = _a.setProfileId, setModalProceduresProfile = _a.setModalProceduresProfile, setModalDeleteProfile = _a.setModalDeleteProfile, showContextMenu = _a.showContextMenu;
4308
4307
  var state = useProfilesContext().state;
4309
- var classes = useStyles$x();
4308
+ var classes = useStyles$v();
4310
4309
  var rows = state.profiles.map(function (_a) {
4311
4310
  var ProfileId = _a.ProfileId, ProfileName = _a.ProfileName;
4312
4311
  return ({
@@ -4378,7 +4377,7 @@ var useTableData$3 = function (_a) {
4378
4377
  return { rows: rows, columnDefs: columnDefs };
4379
4378
  };
4380
4379
 
4381
- var useStyles$w = makeStyles(function (theme) { return ({
4380
+ var useStyles$u = makeStyles(function (theme) { return ({
4382
4381
  root: {
4383
4382
  "& .ag-icon-menu": {
4384
4383
  display: "none",
@@ -4449,7 +4448,7 @@ var TableProfiles = function (_a) {
4449
4448
  var _d = useState(false), modalDeleteProfile = _d[0], setModalDeleteProfile = _d[1];
4450
4449
  var _e = useState(null), profile = _e[0], setProfile = _e[1];
4451
4450
  var _f = useState(null), gridApi = _f[0], setGridApi = _f[1];
4452
- var classes = useStyles$w();
4451
+ var classes = useStyles$u();
4453
4452
  var loadingOverlayComponent = useMemo(function () {
4454
4453
  return LazyLoading;
4455
4454
  }, []);
@@ -4681,7 +4680,7 @@ var DeleteShiftParameters = function (PatternStart) { return __awaiter(void 0, v
4681
4680
  });
4682
4681
  }); };
4683
4682
 
4684
- var useStyles$v = makeStyles(function (theme) { return ({
4683
+ var useStyles$t = makeStyles(function (theme) { return ({
4685
4684
  title: {
4686
4685
  fontSize: 15,
4687
4686
  },
@@ -4707,7 +4706,7 @@ var CreateShift = function (_a) {
4707
4706
  var _d = useState(false), open = _d[0], setOpen = _d[1];
4708
4707
  var _e = useState(false), isSubmitLoading = _e[0], setIsSubmitLoading = _e[1];
4709
4708
  var _f = useState(""), error = _f[0], setError = _f[1];
4710
- var classes = useStyles$v();
4709
+ var classes = useStyles$t();
4711
4710
  var shiftTableData = useShiftsCrewsContext().state.shiftTableData;
4712
4711
  var _g = useForm({
4713
4712
  defaultValues: shiftTableData ? shiftTableData : INITIAL_VALUES$2,
@@ -4909,7 +4908,7 @@ var CreateShift = function (_a) {
4909
4908
  React.createElement(Alert, { severity: "success", onClose: handleClose }, "The shift was created successfully"))));
4910
4909
  };
4911
4910
 
4912
- var useStyles$u = makeStyles(function (theme) { return ({
4911
+ var useStyles$s = makeStyles(function (theme) { return ({
4913
4912
  title: {
4914
4913
  fontSize: 15,
4915
4914
  },
@@ -4935,7 +4934,7 @@ var DeleteShift = function (_a) {
4935
4934
  var _c = useState(false), open = _c[0], setOpen = _c[1];
4936
4935
  var _d = useState(false), isSubmitLoading = _d[0], setIsSubmitLoading = _d[1];
4937
4936
  var _e = useState(false), deleteAlert = _e[0], setDeleteAlert = _e[1];
4938
- var classes = useStyles$u();
4937
+ var classes = useStyles$s();
4939
4938
  var shiftTableData = useShiftsCrewsContext().state.shiftTableData;
4940
4939
  var _f = useState(""), error = _f[0], setError = _f[1];
4941
4940
  var _g = useForm({ defaultValues: INITIAL_VALUES$2 }), control = _g.control, setValue = _g.setValue, reset = _g.reset, watch = _g.watch, errors = _g.formState.errors;
@@ -5074,7 +5073,7 @@ var DeleteShift = function (_a) {
5074
5073
  React.createElement(Alert, { severity: "warning", onClose: handleClose }, "The shift was deleted successfully"))));
5075
5074
  };
5076
5075
 
5077
- var useStyles$t = makeStyles(function (theme) { return ({
5076
+ var useStyles$r = makeStyles(function (theme) { return ({
5078
5077
  title: {
5079
5078
  fontSize: 15,
5080
5079
  },
@@ -5101,7 +5100,7 @@ var EditShift = function (_a) {
5101
5100
  var _d = useState(""), error = _d[0], setError = _d[1];
5102
5101
  var _e = useState(false), isSubmitLoading = _e[0], setIsSubmitLoading = _e[1];
5103
5102
  var _f = useState(false), initialShiftPerDayAndCrewsNumber = _f[0], setInitialShiftPerDayAndCrewsNumber = _f[1];
5104
- var classes = useStyles$t();
5103
+ var classes = useStyles$r();
5105
5104
  var shiftTableData = useShiftsCrewsContext().state.shiftTableData;
5106
5105
  var _g = useForm({ defaultValues: INITIAL_VALUES$2 }), control = _g.control, setValue = _g.setValue, handleSubmit = _g.handleSubmit, reset = _g.reset, watch = _g.watch, errors = _g.formState.errors;
5107
5106
  // Progress bar
@@ -5369,7 +5368,7 @@ var useShiftsOptionsFunctions = function (_a) {
5369
5368
  };
5370
5369
  };
5371
5370
 
5372
- var useStyles$s = makeStyles(function (theme) { return ({
5371
+ var useStyles$q = makeStyles(function (theme) { return ({
5373
5372
  root: {
5374
5373
  opacity: 0,
5375
5374
  transition: "opacity 0.1s ease-in-out",
@@ -5388,7 +5387,7 @@ var useTableData$2 = function (_a) {
5388
5387
  var _b;
5389
5388
  var setOpenModalEditShift = _a.setOpenModalEditShift, setOpenModalDeleteShift = _a.setOpenModalDeleteShift, showContextMenu = _a.showContextMenu;
5390
5389
  var _c = useShiftsCrewsContext(), state = _c.state, actions = _c.actions;
5391
- var classes = useStyles$s();
5390
+ var classes = useStyles$q();
5392
5391
  var rows = (_b = state.shifts) === null || _b === void 0 ? void 0 : _b.map(function (_a) {
5393
5392
  var PatternStart = _a.PatternStart, ShiftCodes = _a.ShiftCodes, Crews = _a.Crews, PatternDays = _a.PatternDays, CrewRotation = _a.CrewRotation, Comments = _a.Comments, CanEdit = _a.CanEdit;
5394
5393
  return ({
@@ -5499,7 +5498,7 @@ var useTableData$2 = function (_a) {
5499
5498
  return { rows: rows, columnDefs: columnDefs };
5500
5499
  };
5501
5500
 
5502
- var useStyles$r = makeStyles(function (theme) { return ({
5501
+ var useStyles$p = makeStyles(function (theme) { return ({
5503
5502
  root: {
5504
5503
  // "& .ag-icon-menu": {
5505
5504
  // display: "none",
@@ -5551,7 +5550,7 @@ var useStyles$r = makeStyles(function (theme) { return ({
5551
5550
  }); });
5552
5551
  var TableShiftsCrews = function (_a) {
5553
5552
  _a.isLoading; var getShiftsCrewsFromAPI = _a.getShiftsCrewsFromAPI;
5554
- var classes = useStyles$r();
5553
+ var classes = useStyles$p();
5555
5554
  var _b = useState(false), openModalNew = _b[0], setOpenModalNew = _b[1];
5556
5555
  var _c = useState(false), openModalEditShift = _c[0], setOpenModalEditShift = _c[1];
5557
5556
  var _d = useState(false), openModalDeleteShift = _d[0], setOpenModalDeleteShift = _d[1];
@@ -5835,6 +5834,65 @@ var ConfigurationAssetProvider = function (_a) {
5835
5834
  return (React__default.createElement(ConfigurationAssetContext.Provider, { value: { state: state, actions: actions } }, children));
5836
5835
  };
5837
5836
 
5837
+ var getUser = function (UserId, UserName) { return __awaiter(void 0, void 0, void 0, function () {
5838
+ var apiService, parameters, resp;
5839
+ return __generator(this, function (_a) {
5840
+ switch (_a.label) {
5841
+ case 0:
5842
+ apiService = new MESApiService();
5843
+ parameters = [];
5844
+ parameters.push({ name: "UserId", value: UserId });
5845
+ parameters.push({ name: "UserName", value: UserName });
5846
+ return [4 /*yield*/, apiService.callV2("[SEC].[GetUser]", parameters)];
5847
+ case 1:
5848
+ resp = _a.sent();
5849
+ return [2 /*return*/, resp];
5850
+ }
5851
+ });
5852
+ }); };
5853
+ var getAssets = function () { return __awaiter(void 0, void 0, void 0, function () {
5854
+ var apiService, resp;
5855
+ return __generator(this, function (_a) {
5856
+ switch (_a.label) {
5857
+ case 0:
5858
+ apiService = new MESApiService();
5859
+ return [4 /*yield*/, apiService.callV2("[MES].[GetAssets]", [])];
5860
+ case 1:
5861
+ resp = _a.sent();
5862
+ return [2 /*return*/, resp];
5863
+ }
5864
+ });
5865
+ }); };
5866
+ var getUTLSettings = function () { return __awaiter(void 0, void 0, void 0, function () {
5867
+ var apiService, resp;
5868
+ return __generator(this, function (_a) {
5869
+ switch (_a.label) {
5870
+ case 0:
5871
+ apiService = new MESApiService();
5872
+ return [4 /*yield*/, apiService.callV2("[UTL].[GetSettings]", [])];
5873
+ case 1:
5874
+ resp = _a.sent();
5875
+ return [2 /*return*/, resp];
5876
+ }
5877
+ });
5878
+ }); };
5879
+ var upsertDefaultAreaId = function (UserId, DefaultAreaId) { return __awaiter(void 0, void 0, void 0, function () {
5880
+ var apiService, parameters, resp;
5881
+ return __generator(this, function (_a) {
5882
+ switch (_a.label) {
5883
+ case 0:
5884
+ apiService = new MESApiService();
5885
+ parameters = [];
5886
+ parameters.push({ name: "UserId", value: UserId });
5887
+ parameters.push({ name: "DefaultAssetId", value: DefaultAreaId });
5888
+ return [4 /*yield*/, apiService.callV2("[SEC].[UpsertDefaultAssetId]", parameters)];
5889
+ case 1:
5890
+ resp = _a.sent();
5891
+ return [2 /*return*/, resp];
5892
+ }
5893
+ });
5894
+ }); };
5895
+
5838
5896
  var TransformAssetModelData = function (node) {
5839
5897
  var model = {
5840
5898
  id: node.AssetId,
@@ -5991,7 +6049,7 @@ var useAssetCodes = function () {
5991
6049
  return { loadFilterAssets: loadFilterAssets };
5992
6050
  };
5993
6051
 
5994
- var useStyles$q = makeStyles(function (theme) { return ({
6052
+ var useStyles$o = makeStyles(function (theme) { return ({
5995
6053
  root: {
5996
6054
  "& .input-group-text": {
5997
6055
  display: "none",
@@ -6034,7 +6092,7 @@ var useStyles$q = makeStyles(function (theme) { return ({
6034
6092
  }); });
6035
6093
  var CreateNewAssetDialog = function (_a) {
6036
6094
  var show = _a.show, onHide = _a.onHide;
6037
- var classes = useStyles$q();
6095
+ var classes = useStyles$o();
6038
6096
  var _b = useState(true), fullWidth = _b[0]; _b[1];
6039
6097
  var _c = useState("sm"), maxWidth = _c[0]; _c[1];
6040
6098
  var _d = useState(false), assetCreatedSuccess = _d[0], setAssetCreatedSuccess = _d[1];
@@ -6165,7 +6223,7 @@ var CreateNewAssetDialog = function (_a) {
6165
6223
  React__default.createElement(Alert$3, { severity: "info", onClose: handleClose }, "Document created successfully"))));
6166
6224
  };
6167
6225
 
6168
- var useStyles$p = makeStyles(function (theme) { return ({
6226
+ var useStyles$n = makeStyles(function (theme) { return ({
6169
6227
  root: {
6170
6228
  "& .input-group-text": {
6171
6229
  display: "none",
@@ -6213,7 +6271,7 @@ var useStyles$p = makeStyles(function (theme) { return ({
6213
6271
  }); });
6214
6272
  var EditAssetDialog = function (_a) {
6215
6273
  var show = _a.show, onHide = _a.onHide;
6216
- var classes = useStyles$p();
6274
+ var classes = useStyles$n();
6217
6275
  var _b = useState(true), fullWidth = _b[0]; _b[1];
6218
6276
  var _c = useState("sm"), maxWidth = _c[0]; _c[1];
6219
6277
  var _d = useState(false), assetEditedSuccess = _d[0], setAssetEditedSuccess = _d[1];
@@ -6333,7 +6391,7 @@ var EditAssetDialog = function (_a) {
6333
6391
  React__default.createElement(Alert$2, { severity: "info", onClose: handleClose }, "Document created succesfully")))))))));
6334
6392
  };
6335
6393
 
6336
- var useStyles$o = makeStyles(function (theme) { return ({
6394
+ var useStyles$m = makeStyles(function (theme) { return ({
6337
6395
  root: {
6338
6396
  "& .input-group-text": {
6339
6397
  display: "none",
@@ -6377,7 +6435,7 @@ var useStyles$o = makeStyles(function (theme) { return ({
6377
6435
  }); });
6378
6436
  var RemoveAssetDialog = function (_a) {
6379
6437
  var show = _a.show, onHide = _a.onHide;
6380
- var classes = useStyles$o();
6438
+ var classes = useStyles$m();
6381
6439
  var _b = useState(true), fullWidth = _b[0]; _b[1];
6382
6440
  var _c = useState("sm"), maxWidth = _c[0]; _c[1];
6383
6441
  var _d = useState(false), assetRemovedSuccess = _d[0], setAssetRemovedSuccess = _d[1];
@@ -6436,7 +6494,7 @@ var RemoveAssetDialog = function (_a) {
6436
6494
  React__default.createElement(Alert$3, { severity: "info", onClose: handleClose }, "Asset removed succesfully"))));
6437
6495
  };
6438
6496
 
6439
- var useStyles$n = makeStyles(function (theme) { return ({
6497
+ var useStyles$l = makeStyles(function (theme) { return ({
6440
6498
  root: {
6441
6499
  "& .input-group-text": {
6442
6500
  display: "none",
@@ -6487,7 +6545,7 @@ var useStyles$n = makeStyles(function (theme) { return ({
6487
6545
  }); });
6488
6546
  var ViewerAssetDialog = function (_a) {
6489
6547
  var show = _a.show, onHide = _a.onHide;
6490
- var classes = useStyles$n();
6548
+ var classes = useStyles$l();
6491
6549
  var _b = useState(true), fullWidth = _b[0]; _b[1];
6492
6550
  var _c = useState("sm"), maxWidth = _c[0]; _c[1];
6493
6551
  var _d = useConfigurationAssetContext().state, dataToCreateAsset = _d.dataToCreateAsset, assetNodeSelectedInTree = _d.assetNodeSelectedInTree;
@@ -6650,105 +6708,321 @@ var useAssetActions = function (_a) {
6650
6708
  return { handleDrop: handleDrop, handleCtrlClick: handleCtrlClick, handleDragEnd: handleDragEnd, handleDragStart: handleDragStart };
6651
6709
  };
6652
6710
 
6653
- var TypeIcon = function (props) {
6654
- if (props.droppable) {
6655
- return React__default.createElement(FolderIcon, null);
6656
- }
6657
- switch (props.fileType) {
6658
- case "image":
6659
- return React__default.createElement(ImageIcon, null);
6660
- case "csv":
6661
- return React__default.createElement(ListAltIcon, null);
6662
- case "text":
6663
- return React__default.createElement(DescriptionIcon, null);
6664
- default:
6665
- return null;
6666
- }
6667
- };
6668
-
6669
- var useStyles$m = makeStyles(function (theme) { return ({
6670
- root: {
6671
- alignItems: "center",
6672
- backgroundColor: "#1967d2",
6673
- borderRadius: "4px",
6674
- boxShadow: " 0 12px 24px -6px rgba(0, 0, 0, .25); 0 0 0 1px rgba(0, 0, 0, .08)",
6675
- color: "#fff",
6676
- display: "inline-grid",
6677
- fontSize: "14px",
6678
- gap: "8px",
6679
- gridTemplateColumns: "auto auto",
6680
- padding: "4px 8px",
6681
- pointerEvents: "none",
6682
- },
6683
- icon: {
6684
- alignItems: "center",
6685
- display: "flex",
6686
- },
6687
- label: {
6688
- alignItems: "center",
6689
- display: "flex",
6690
- },
6691
- }); });
6692
- var CustomDragPreview$1 = function (props) {
6693
- var _a;
6694
- var classes = useStyles$m();
6695
- var item = props.monitorProps.item;
6696
- return (React__default.createElement("div", { className: classes.root },
6697
- React__default.createElement("div", { className: classes.icon },
6698
- React__default.createElement(TypeIcon, { droppable: item.droppable, fileType: (_a = item === null || item === void 0 ? void 0 : item.data) === null || _a === void 0 ? void 0 : _a.fileType })),
6699
- React__default.createElement("div", { className: classes.label }, item.text)));
6700
- };
6701
-
6702
- var useStyles$l = makeStyles(function (theme) { return ({
6703
- root: {
6704
- alignItems: "center",
6705
- display: "flex",
6706
- height: "32px",
6707
- },
6708
- customNodeRoot: {
6709
- listStyleType: "none",
6710
- margin: 0,
6711
- padding: 0,
6712
- },
6713
- arrow: {
6714
- alignItems: "center",
6715
- cursor: "pointer",
6716
- display: "flex",
6717
- height: "24px",
6718
- justifyContent: "center",
6719
- width: "24px",
6720
- transition: "transform linear 0.1s",
6721
- transform: "rotate(0deg)",
6722
- },
6723
- "arrow > div": {
6724
- alignItems: "center",
6725
- display: "flex",
6726
- },
6727
- "arrow.is-open": {
6728
- transform: "rotate(90deg)",
6729
- },
6730
- filetype: {
6731
- display: "flex",
6732
- },
6733
- label: {
6734
- paddingInlineStart: "8px",
6735
- },
6736
- selected: {
6737
- backgroundColor: "#e8f0fe",
6738
- },
6739
- dragging: {
6740
- opacity: 0.5,
6741
- },
6742
- }); });
6743
- var customStyles$1 = "\n ul, ol {\n list-style-type: none;\n margin: 0;\n padding: 0;\n }\n";
6744
- var CustomNode = function (_a) {
6745
- var setContextMenuOver = _a.setContextMenuOver, onDoubleClick = _a.onDoubleClick; _a.testIdPrefix; var isSelected = _a.isSelected, props = __rest(_a, ["setContextMenuOver", "onDoubleClick", "testIdPrefix", "isSelected"]);
6746
- var _c = useConfigurationAssetContext(), openAssets = _c.state.openAssets, setOpenAssets = _c.actions.setOpenAssets;
6747
- var _d = props.node, id = _d.id, droppable = _d.droppable, data = _d.data;
6748
- var indent = props.depth * 24;
6749
- var classes = useStyles$l();
6750
- var nodeClasses = "".concat(classes.customNodeRoot, " ").concat(classes.root, " ").concat(isSelected ? classes.selected : "");
6751
- var handleClick = function (e) {
6711
+ var useAssetSearch = function (_a) {
6712
+ var assetNodes = _a.assetNodes, externalSearchTerm = _a.externalSearchTerm, onSearchTermChange = _a.onSearchTermChange;
6713
+ var _b = useState(externalSearchTerm || ""), searchTerm = _b[0], setSearchTerm = _b[1];
6714
+ var _c = useState([]), searchResults = _c[0], setSearchResults = _c[1];
6715
+ var _d = useState(false), showSearchResults = _d[0], setShowSearchResults = _d[1];
6716
+ var _e = useState(-1), focusedSearchIndex = _e[0], setFocusedSearchIndex = _e[1];
6717
+ var searchTimeoutRef = useRef(null);
6718
+ var searchResultsRefs = useRef([]);
6719
+ var searchIndex = useMemo(function () {
6720
+ var index = [];
6721
+ var nodeMap = new Map();
6722
+ assetNodes.forEach(function (node) {
6723
+ if (node.id !== undefined && node.id !== null) {
6724
+ nodeMap.set(node.id, node);
6725
+ }
6726
+ });
6727
+ var buildNodePath = function (nodeId) {
6728
+ var path = [];
6729
+ var currentNode = nodeMap.get(nodeId);
6730
+ while (currentNode && currentNode.parent !== -1) {
6731
+ path.unshift(currentNode.text);
6732
+ currentNode = nodeMap.get(currentNode.parent);
6733
+ }
6734
+ if (currentNode && currentNode.parent === -1) {
6735
+ path.unshift(currentNode.text);
6736
+ }
6737
+ return path;
6738
+ };
6739
+ assetNodes.forEach(function (node) {
6740
+ if (node.id === undefined || node.id === null || !node.text)
6741
+ return;
6742
+ var nodePath = buildNodePath(node.id);
6743
+ var pathStr = nodePath.join(" > ");
6744
+ var hasChildren = assetNodes.some(function (child) { return child.parent === node.id; });
6745
+ index.push({
6746
+ id: node.id,
6747
+ name: node.text,
6748
+ path: pathStr,
6749
+ isDroppable: node.droppable || false,
6750
+ hasChildren: hasChildren,
6751
+ node: node,
6752
+ });
6753
+ });
6754
+ return index;
6755
+ }, [assetNodes]);
6756
+ var searchNodes = function (searchTerm) {
6757
+ var lowerSearchTerm = searchTerm.toLowerCase();
6758
+ return searchIndex.filter(function (item) {
6759
+ return item.name.toLowerCase().includes(lowerSearchTerm);
6760
+ });
6761
+ };
6762
+ React__default.useEffect(function () {
6763
+ if (externalSearchTerm !== undefined && externalSearchTerm !== searchTerm) {
6764
+ setSearchTerm(externalSearchTerm);
6765
+ }
6766
+ }, [externalSearchTerm]);
6767
+ var handleSearchChange = function (event) {
6768
+ var term = event.target.value;
6769
+ setSearchTerm(term);
6770
+ onSearchTermChange === null || onSearchTermChange === void 0 ? void 0 : onSearchTermChange(term);
6771
+ if (searchTimeoutRef.current) {
6772
+ clearTimeout(searchTimeoutRef.current);
6773
+ }
6774
+ if (term.trim() === "" || term.length < 2) {
6775
+ setSearchResults([]);
6776
+ setShowSearchResults(false);
6777
+ setFocusedSearchIndex(-1);
6778
+ return;
6779
+ }
6780
+ searchTimeoutRef.current = setTimeout(function () {
6781
+ var results = searchNodes(term);
6782
+ setSearchResults(results);
6783
+ setShowSearchResults(results.length > 0);
6784
+ var newFocusIndex = results.length > 0 ? 0 : -1;
6785
+ setFocusedSearchIndex(newFocusIndex);
6786
+ searchResultsRefs.current = new Array(results.length).fill(null);
6787
+ }, 250);
6788
+ };
6789
+ var handleKeyDown = function (event) {
6790
+ if (event.key === "Escape") {
6791
+ if (showSearchResults) {
6792
+ setSearchTerm("");
6793
+ setSearchResults([]);
6794
+ setShowSearchResults(false);
6795
+ setFocusedSearchIndex(-1);
6796
+ }
6797
+ return undefined;
6798
+ }
6799
+ if (showSearchResults && searchResults.length > 0) {
6800
+ if (event.key === "ArrowDown") {
6801
+ event.preventDefault();
6802
+ var newIndex_1 = focusedSearchIndex < searchResults.length - 1
6803
+ ? focusedSearchIndex + 1
6804
+ : 0;
6805
+ setFocusedSearchIndex(newIndex_1);
6806
+ setTimeout(function () { return scrollFocusedItemIntoView(newIndex_1); }, 0);
6807
+ }
6808
+ else if (event.key === "ArrowUp") {
6809
+ event.preventDefault();
6810
+ var newIndex_2 = focusedSearchIndex > 0
6811
+ ? focusedSearchIndex - 1
6812
+ : searchResults.length - 1;
6813
+ setFocusedSearchIndex(newIndex_2);
6814
+ setTimeout(function () { return scrollFocusedItemIntoView(newIndex_2); }, 0);
6815
+ }
6816
+ else if (event.key === "Enter" && focusedSearchIndex >= 0) {
6817
+ event.preventDefault();
6818
+ var selectedResult = searchResults[focusedSearchIndex];
6819
+ return selectedResult;
6820
+ }
6821
+ }
6822
+ return undefined;
6823
+ };
6824
+ var scrollFocusedItemIntoView = function (index) {
6825
+ var _a;
6826
+ if (searchResultsRefs.current[index]) {
6827
+ (_a = searchResultsRefs.current[index]) === null || _a === void 0 ? void 0 : _a.scrollIntoView({
6828
+ behavior: "smooth",
6829
+ block: "nearest",
6830
+ });
6831
+ }
6832
+ };
6833
+ var clearSearch = function () {
6834
+ setSearchTerm("");
6835
+ setSearchResults([]);
6836
+ setShowSearchResults(false);
6837
+ setFocusedSearchIndex(-1);
6838
+ onSearchTermChange === null || onSearchTermChange === void 0 ? void 0 : onSearchTermChange("");
6839
+ };
6840
+ var triggerSearch = function (term) {
6841
+ setSearchTerm(term);
6842
+ onSearchTermChange === null || onSearchTermChange === void 0 ? void 0 : onSearchTermChange(term);
6843
+ if (searchTimeoutRef.current) {
6844
+ clearTimeout(searchTimeoutRef.current);
6845
+ }
6846
+ if (term.trim() === "" || term.length < 2) {
6847
+ setSearchResults([]);
6848
+ setShowSearchResults(false);
6849
+ setFocusedSearchIndex(-1);
6850
+ return;
6851
+ }
6852
+ searchTimeoutRef.current = setTimeout(function () {
6853
+ var results = searchNodes(term);
6854
+ setSearchResults(results);
6855
+ setShowSearchResults(results.length > 0);
6856
+ var newFocusIndex = results.length > 0 ? 0 : -1;
6857
+ setFocusedSearchIndex(newFocusIndex);
6858
+ searchResultsRefs.current = new Array(results.length).fill(null);
6859
+ }, 250);
6860
+ };
6861
+ return {
6862
+ searchTerm: searchTerm,
6863
+ searchResults: searchResults,
6864
+ showSearchResults: showSearchResults,
6865
+ focusedSearchIndex: focusedSearchIndex,
6866
+ searchResultsRefs: searchResultsRefs,
6867
+ handleSearchChange: handleSearchChange,
6868
+ handleKeyDown: handleKeyDown,
6869
+ scrollFocusedItemIntoView: scrollFocusedItemIntoView,
6870
+ clearSearch: clearSearch,
6871
+ triggerSearch: triggerSearch,
6872
+ };
6873
+ };
6874
+
6875
+ var AssetSearchInput = function (_a) {
6876
+ var assetNodes = _a.assetNodes, onSearchResultClick = _a.onSearchResultClick;
6877
+ var searchInputRef = useRef(null);
6878
+ var _b = useState(null), anchorEl = _b[0], setAnchorEl = _b[1];
6879
+ var _c = useAssetSearch({ assetNodes: assetNodes }), searchTerm = _c.searchTerm, searchResults = _c.searchResults, showSearchResults = _c.showSearchResults, focusedSearchIndex = _c.focusedSearchIndex, searchResultsRefs = _c.searchResultsRefs, handleSearchChange = _c.handleSearchChange, handleKeyDown = _c.handleKeyDown, clearSearch = _c.clearSearch;
6880
+ var handleSearchResultClick = function (result) {
6881
+ onSearchResultClick(result);
6882
+ clearSearch();
6883
+ setAnchorEl(null);
6884
+ };
6885
+ var handleKeyDownWithResultSelection = function (event) {
6886
+ var selectedResult = handleKeyDown(event);
6887
+ if (selectedResult) {
6888
+ handleSearchResultClick(selectedResult);
6889
+ }
6890
+ };
6891
+ var handleSearchInputChange = function (event) {
6892
+ handleSearchChange(event);
6893
+ if (!anchorEl && searchInputRef.current) {
6894
+ setAnchorEl(searchInputRef.current);
6895
+ }
6896
+ };
6897
+ var handlePopoverClose = function () {
6898
+ setAnchorEl(null);
6899
+ };
6900
+ return (React__default.createElement("div", { onKeyDown: handleKeyDownWithResultSelection, style: { marginBottom: 16 } },
6901
+ React__default.createElement(TextField, { placeholder: "Search assets (min. 2 characters)...", variant: "outlined", size: "small", fullWidth: true, value: searchTerm, onChange: handleSearchInputChange, inputRef: searchInputRef, InputProps: {
6902
+ startAdornment: (React__default.createElement(InputAdornment, { position: "start" },
6903
+ React__default.createElement(SearchIcon, { color: "action" }))),
6904
+ } }),
6905
+ React__default.createElement(Popover, { open: showSearchResults && Boolean(anchorEl), anchorEl: anchorEl, onClose: handlePopoverClose, disableAutoFocus: true, disableEnforceFocus: true, anchorOrigin: {
6906
+ vertical: "bottom",
6907
+ horizontal: "left",
6908
+ }, transformOrigin: {
6909
+ vertical: "top",
6910
+ horizontal: "left",
6911
+ }, PaperProps: {
6912
+ style: { width: anchorEl === null || anchorEl === void 0 ? void 0 : anchorEl.offsetWidth, maxHeight: 300 },
6913
+ } },
6914
+ React__default.createElement(MenuList, { dense: true }, searchResults.map(function (result, index) { return (React__default.createElement(MenuItem, { key: result.id, ref: function (el) {
6915
+ if (searchResultsRefs.current) {
6916
+ searchResultsRefs.current[index] = el;
6917
+ }
6918
+ }, selected: index === focusedSearchIndex, onClick: function () { return handleSearchResultClick(result); } },
6919
+ React__default.createElement(ListItemIcon, null, result.hasChildren || result.isDroppable ? (React__default.createElement(AccountTreeIcon, { color: "primary", fontSize: "small" })) : (React__default.createElement(Settings$1, { color: "primary", fontSize: "small" }))),
6920
+ React__default.createElement(ListItemText, { primary: result.name, secondary: result.path, secondaryTypographyProps: {
6921
+ variant: "caption",
6922
+ color: "textSecondary",
6923
+ style: { fontStyle: "italic" },
6924
+ } }))); })))));
6925
+ };
6926
+
6927
+ var TypeIcon = function (props) {
6928
+ if (props.droppable) {
6929
+ return React__default.createElement(FolderIcon, null);
6930
+ }
6931
+ switch (props.fileType) {
6932
+ case "image":
6933
+ return React__default.createElement(ImageIcon, null);
6934
+ case "csv":
6935
+ return React__default.createElement(ListAltIcon, null);
6936
+ case "text":
6937
+ return React__default.createElement(DescriptionIcon, null);
6938
+ default:
6939
+ return null;
6940
+ }
6941
+ };
6942
+
6943
+ var useStyles$k = makeStyles(function (theme) { return ({
6944
+ root: {
6945
+ alignItems: "center",
6946
+ backgroundColor: "#1967d2",
6947
+ borderRadius: "4px",
6948
+ boxShadow: " 0 12px 24px -6px rgba(0, 0, 0, .25); 0 0 0 1px rgba(0, 0, 0, .08)",
6949
+ color: "#fff",
6950
+ display: "inline-grid",
6951
+ fontSize: "14px",
6952
+ gap: "8px",
6953
+ gridTemplateColumns: "auto auto",
6954
+ padding: "4px 8px",
6955
+ pointerEvents: "none",
6956
+ },
6957
+ icon: {
6958
+ alignItems: "center",
6959
+ display: "flex",
6960
+ },
6961
+ label: {
6962
+ alignItems: "center",
6963
+ display: "flex",
6964
+ },
6965
+ }); });
6966
+ var CustomDragPreview$1 = function (props) {
6967
+ var _a;
6968
+ var classes = useStyles$k();
6969
+ var item = props.monitorProps.item;
6970
+ return (React__default.createElement("div", { className: classes.root },
6971
+ React__default.createElement("div", { className: classes.icon },
6972
+ React__default.createElement(TypeIcon, { droppable: item.droppable, fileType: (_a = item === null || item === void 0 ? void 0 : item.data) === null || _a === void 0 ? void 0 : _a.fileType })),
6973
+ React__default.createElement("div", { className: classes.label }, item.text)));
6974
+ };
6975
+
6976
+ var useStyles$j = makeStyles(function (theme) { return ({
6977
+ root: {
6978
+ alignItems: "center",
6979
+ display: "flex",
6980
+ height: "32px",
6981
+ },
6982
+ customNodeRoot: {
6983
+ listStyleType: "none",
6984
+ margin: 0,
6985
+ padding: 0,
6986
+ },
6987
+ arrow: {
6988
+ alignItems: "center",
6989
+ cursor: "pointer",
6990
+ display: "flex",
6991
+ height: "24px",
6992
+ justifyContent: "center",
6993
+ width: "24px",
6994
+ transition: "transform linear 0.1s",
6995
+ transform: "rotate(0deg)",
6996
+ },
6997
+ "arrow > div": {
6998
+ alignItems: "center",
6999
+ display: "flex",
7000
+ },
7001
+ "arrow.is-open": {
7002
+ transform: "rotate(90deg)",
7003
+ },
7004
+ filetype: {
7005
+ display: "flex",
7006
+ },
7007
+ label: {
7008
+ paddingInlineStart: "8px",
7009
+ },
7010
+ selected: {
7011
+ backgroundColor: "#e8f0fe",
7012
+ },
7013
+ dragging: {
7014
+ opacity: 0.5,
7015
+ },
7016
+ }); });
7017
+ var customStyles$1 = "\n ul, ol {\n list-style-type: none;\n margin: 0;\n padding: 0;\n }\n";
7018
+ var CustomNode = function (_a) {
7019
+ var setContextMenuOver = _a.setContextMenuOver, onDoubleClick = _a.onDoubleClick; _a.testIdPrefix; var isSelected = _a.isSelected, props = __rest(_a, ["setContextMenuOver", "onDoubleClick", "testIdPrefix", "isSelected"]);
7020
+ var _c = useConfigurationAssetContext(), openAssets = _c.state.openAssets, setOpenAssets = _c.actions.setOpenAssets;
7021
+ var _d = props.node, id = _d.id, droppable = _d.droppable, data = _d.data;
7022
+ var indent = props.depth * 24;
7023
+ var classes = useStyles$j();
7024
+ var nodeClasses = "".concat(classes.customNodeRoot, " ").concat(classes.root, " ").concat(isSelected ? classes.selected : "");
7025
+ var handleClick = function (e) {
6752
7026
  props.onClick(e, props.node);
6753
7027
  };
6754
7028
  var handleToggle = function (e) {
@@ -6801,7 +7075,7 @@ var CustomNode = function (_a) {
6801
7075
  React__default.createElement(Typography$1, { variant: "body2" }, props.node.text))));
6802
7076
  };
6803
7077
 
6804
- var useStyles$k = makeStyles(function (theme) { return ({
7078
+ var useStyles$i = makeStyles(function (theme) { return ({
6805
7079
  root: {
6806
7080
  alignItems: "flex-start",
6807
7081
  backgroundColor: "#1967d2",
@@ -6834,7 +7108,7 @@ var useStyles$k = makeStyles(function (theme) { return ({
6834
7108
  },
6835
7109
  }); });
6836
7110
  var MultipleDragPreview = function (props) {
6837
- var classes = useStyles$k();
7111
+ var classes = useStyles$i();
6838
7112
  return (React__default.createElement(Badge, { classes: { badge: classes.badge }, color: "error", badgeContent: props.dragSources.length, anchorOrigin: { vertical: "top", horizontal: "right" } },
6839
7113
  React__default.createElement("div", { className: classes.root, "data-testid": "custom-drag-preview" }, props.dragSources.map(function (node) {
6840
7114
  var _a;
@@ -6845,7 +7119,7 @@ var MultipleDragPreview = function (props) {
6845
7119
  }))));
6846
7120
  };
6847
7121
 
6848
- var useStyles$j = makeStyles(function (theme) { return ({
7122
+ var useStyles$h = makeStyles(function (theme) { return ({
6849
7123
  root: {},
6850
7124
  contextMenu: {
6851
7125
  backgroundColor: "#F8F8F8",
@@ -6891,11 +7165,11 @@ var useStyles$j = makeStyles(function (theme) { return ({
6891
7165
  }); });
6892
7166
  var AssetViewComponent = function () {
6893
7167
  var _a = useState([]), selectedNodes = _a[0], setSelectedNodes = _a[1];
6894
- var classes = useStyles$j();
7168
+ var classes = useStyles$h();
6895
7169
  var _b = useState(false), isDragging = _b[0], setIsDragging = _b[1];
6896
7170
  var _c = useState(false), isCtrlPressing = _c[0], setIsCtrlPressing = _c[1];
6897
7171
  var _d = useState(false), isDoubleClick = _d[0], setIsDoubleClick = _d[1];
6898
- var _e = useConfigurationAssetContext(), _f = _e.state, allAssetNodes = _f.allAssetNodes, openAssets = _f.openAssets, showContextMenu = _f.showContextMenu, showCreateNewContextMenu = _f.showCreateNewContextMenu, assetNodeSelectedInTree = _f.assetNodeSelectedInTree, _g = _f.anchorPoint, x = _g.x, y = _g.y, _h = _e.actions, setShowContextMenu = _h.setShowContextMenu, setShowCreateNewContextMenu = _h.setShowCreateNewContextMenu, setMenuContextAssetId = _h.setMenuContextAssetId, setAnchorPointX = _h.setAnchorPointX, setAnchorPointY = _h.setAnchorPointY, setAssetNodeSelectedInTree = _h.setAssetNodeSelectedInTree;
7172
+ var _e = useConfigurationAssetContext(), _f = _e.state, allAssetNodes = _f.allAssetNodes, openAssets = _f.openAssets, showContextMenu = _f.showContextMenu, showCreateNewContextMenu = _f.showCreateNewContextMenu, assetNodeSelectedInTree = _f.assetNodeSelectedInTree, _g = _f.anchorPoint, x = _g.x, y = _g.y, _h = _e.actions, setShowContextMenu = _h.setShowContextMenu, setShowCreateNewContextMenu = _h.setShowCreateNewContextMenu, setMenuContextAssetId = _h.setMenuContextAssetId, setAnchorPointX = _h.setAnchorPointX, setAnchorPointY = _h.setAnchorPointY, setAssetNodeSelectedInTree = _h.setAssetNodeSelectedInTree, setOpenAssets = _h.setOpenAssets;
6899
7173
  var allAssets = useAssetContext().state.allAssets;
6900
7174
  var _j = useState(false), showCreateNewAssetDialog = _j[0], setShowCreateNewAssetDialog = _j[1];
6901
7175
  var _k = useState(false), showViewerAssetDialog = _k[0], setShowViewerAssetDialog = _k[1];
@@ -6981,327 +7255,167 @@ var AssetViewComponent = function () {
6981
7255
  var handleOnHideViewer = function () {
6982
7256
  setShowViewerAssetDialog(false);
6983
7257
  setIsDoubleClick(false);
6984
- setShowCreateNewContextMenu(false);
6985
- setShowContextMenu(false);
6986
- };
6987
- useEffect(function () {
6988
- searchAssets();
6989
- }, []);
6990
- var openAssetsArray = useMemo(function () {
6991
- return Object.keys(openAssets).map(function (el) { return Number.parseInt(el); });
6992
- }, [openAssets]);
6993
- return (React__default.createElement("div", { style: { width: "100%", height: "100%" } },
6994
- React__default.createElement("div", { onClick: handleClick },
6995
- React__default.createElement("div", { onContextMenu: handleCreateNewContextMenu },
6996
- React__default.createElement("div", null,
6997
- React__default.createElement(Grid, { container: true, justifyContent: "flex-start", alignItems: "center", className: classes.root },
6998
- React__default.createElement(Typography$1, { variant: "h5", style: { margin: "20px 0 20px", fontWeight: 600 } }, "Assets Tree"),
6999
- isLoading ? (React__default.createElement(Grid, { container: true, style: { width: "100%", height: "100%" } },
7000
- React__default.createElement(Grid, { item: true, xs: 12, md: 12, style: {
7001
- height: "71vh",
7002
- justifyContent: "center",
7003
- alignItems: "center",
7004
- } },
7005
- React__default.createElement("div", { style: {
7006
- width: "100%",
7007
- height: "100%",
7008
- display: "flex",
7009
- justifyContent: "center",
7010
- alignItems: "center",
7011
- } },
7012
- React__default.createElement(LazyLoading, null))))) : (React__default.createElement(Paper, { elevation: 2, style: {
7013
- width: "100%",
7014
- padding: "15px 20px 10px",
7015
- borderRadius: "0.75rem",
7016
- } },
7017
- React__default.createElement(Grid, { container: true, alignItems: "center" },
7018
- React__default.createElement(Grid, { container: true, style: {
7019
- height: "71vh",
7020
- overflowY: "auto",
7021
- paddingBottom: 10,
7022
- } },
7023
- React__default.createElement(Grid, null,
7024
- React__default.createElement(Tree, { rootId: -1, initialOpen: openAssetsArray, tree: allAssetNodes, enableAnimateExpand: true, classes: {
7025
- root: classes.assetRoot,
7026
- dropTarget: classes.dropTarget,
7027
- }, onDrop: handleDrop, onDragStart: handleDragStart, onDragEnd: handleDragEnd, canDrop: function (asset, options) {
7028
- return !selectedNodes.some(function (selectedNode) {
7029
- return selectedNode.id === options.dropTargetId;
7030
- });
7031
- }, render: function (node, options) {
7032
- var selected = selectedNodes.some(function (selectedNode) { return selectedNode.id === node.id; });
7033
- return (React__default.createElement(CustomNode, __assign({ setContextMenuOver: handleContextMenu, node: node }, options, { isSelected: selected, isDragging: selected && isDragging, onClick: handleCtrlClick, onDoubleClick: handleShowViewerAsset })));
7034
- }, dragPreviewRender: function (monitorProps) {
7035
- if (selectedNodes.length > 1) {
7036
- return (React__default.createElement(MultipleDragPreview, { dragSources: selectedNodes }));
7037
- }
7038
- return (React__default.createElement(CustomDragPreview$1, { monitorProps: monitorProps }));
7039
- } })))))),
7040
- React__default.createElement(CreateNewAssetDialog, { show: showCreateNewAssetDialog, onHide: function (shouldUpdate) {
7041
- setShowCreateNewAssetDialog(false);
7042
- if (shouldUpdate) {
7043
- searchAssets();
7044
- }
7045
- } }),
7046
- React__default.createElement(EditAssetDialog, { show: showEditAssetDialog, onHide: function (shouldUpdate) {
7047
- setShowEditAssetDialog(false);
7048
- if (shouldUpdate) {
7049
- searchAssets();
7050
- }
7051
- } }),
7052
- React__default.createElement(ViewerAssetDialog, { show: showViewerAssetDialog, onHide: function () { return handleOnHideViewer(); } }),
7053
- React__default.createElement(RemoveAssetDialog, { show: showRemoveAssetDialog, onHide: function (shouldUpdate) {
7054
- setShowRemoveAssetDialog(false);
7055
- if (shouldUpdate) {
7056
- searchAssets();
7057
- }
7058
- } })),
7059
- React__default.createElement(Snackbar, { open: updatedSuccessfullyMessage, autoHideDuration: 2500, onClose: handleClose },
7060
- React__default.createElement(Alert$2, { severity: "success", onClose: handleClose }, "Asset updated successfully"))),
7061
- showContextMenu && !isDoubleClick ? (React__default.createElement("ul", { className: classes.contextMenu, style: { top: y, left: x, padding: "6px 0" } },
7062
- React__default.createElement(MenuItem, { className: classes.menuItem, onClick: function () { return setShowViewerAssetDialog(true); } },
7063
- React__default.createElement(Grid, { container: true, style: { alignItems: "center" } },
7064
- React__default.createElement(Grid, { item: true, md: 2, xs: 3 },
7065
- React__default.createElement(FindInPageIcon, { style: { width: 18 } })),
7066
- React__default.createElement(Grid, { item: true, md: 9, xs: 9 },
7067
- React__default.createElement("div", { style: { marginLeft: 5 } }, "View Asset")))),
7068
- React__default.createElement(MenuItem, { className: classes.menuItem, onClick: function () { return setShowEditAssetDialog(true); } },
7069
- React__default.createElement(Grid, { container: true, style: { alignItems: "center" } },
7070
- React__default.createElement(Grid, { item: true, md: 2, xs: 3 },
7071
- React__default.createElement(EditIcon, { style: { width: 18 } })),
7072
- React__default.createElement(Grid, { item: true, md: 9, xs: 9 },
7073
- React__default.createElement("div", { style: { marginLeft: 5 } }, "Edit Asset")))),
7074
- React__default.createElement(MenuItem, { className: classes.menuItem, onClick: function () { return setShowCreateNewAssetDialog(true); } },
7075
- React__default.createElement(Grid, { container: true, style: { alignItems: "center" } },
7076
- React__default.createElement(Grid, { item: true, md: 2, xs: 3 },
7077
- React__default.createElement(AddBoxIcon, { style: { width: 18 } })),
7078
- React__default.createElement(Grid, { item: true, md: 9, xs: 9 },
7079
- React__default.createElement("div", { style: { marginLeft: 5 } }, "Create Asset")))),
7080
- (assetNodeSelectedInTree === null || assetNodeSelectedInTree === void 0 ? void 0 : assetNodeSelectedInTree.IsBranch) === false && (React__default.createElement(MenuItem, { className: classes.menuItem, onClick: function () { return setShowRemoveAssetDialog(true); } },
7081
- React__default.createElement(Grid, { container: true, style: { alignItems: "center" } },
7082
- React__default.createElement(Grid, { item: true, md: 2, xs: 3 },
7083
- React__default.createElement(DeleteIcon, { style: { width: 18 } })),
7084
- React__default.createElement(Grid, { item: true, md: 9, xs: 9 },
7085
- React__default.createElement("div", { style: { marginLeft: 5 } }, "Remove Asset"))))))) : (""),
7086
- showCreateNewContextMenu ? (React__default.createElement("ul", { className: classes.contextMenu, style: { top: y, left: x } },
7087
- React__default.createElement(MenuItem, { className: classes.menuItem, onClick: function () { return setShowCreateNewAssetDialog(true); } },
7088
- React__default.createElement(Grid, { container: true, style: { alignItems: "center" } },
7089
- React__default.createElement(Grid, { item: true, md: 2, xs: 3 },
7090
- React__default.createElement(AddBoxIcon, { style: { width: 18 } })),
7091
- React__default.createElement(Grid, { item: true, md: 9, xs: 9 },
7092
- React__default.createElement("div", { style: { marginLeft: 5 } }, "Create Asset")))))) : (""))),
7093
- React__default.createElement(ErrorModal, { error: errorUpdate, onHide: function () { return setErrorUpdate(""); } }),
7094
- React__default.createElement(ErrorModal, { error: searchError, onHide: function () { return setSearchError(""); } })));
7095
- };
7096
-
7097
- var ConfigurationAssetComponent = function () {
7098
- return (React__default.createElement(React__default.Fragment, null,
7099
- React__default.createElement(DndProvider, { backend: HTML5Backend },
7100
- React__default.createElement(AssetViewComponent, null))));
7101
- };
7102
-
7103
- var ConfigurationAssetPage = function () {
7104
- return (React.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center" },
7105
- React.createElement(ConfigurationAssetComponent, null)));
7106
- };
7107
-
7108
- var AssetPage = function (props) {
7109
- return (React.createElement(ConfigurationAssetProvider, null,
7110
- React.createElement(ConfigurationAssetPage, null)));
7111
- };
7112
-
7113
- var getUsers = function () { return __awaiter(void 0, void 0, void 0, function () {
7114
- var apiService, resp;
7115
- return __generator(this, function (_a) {
7116
- switch (_a.label) {
7117
- case 0:
7118
- apiService = new MESApiService();
7119
- return [4 /*yield*/, apiService.callV2("[SEC].[GetUsers]", [])];
7120
- case 1:
7121
- resp = _a.sent();
7122
- return [2 /*return*/, resp];
7123
- }
7124
- });
7125
- }); };
7126
- var getDataUser = function (UserId) { return __awaiter(void 0, void 0, void 0, function () {
7127
- var apiService, parameters, resp;
7128
- return __generator(this, function (_a) {
7129
- switch (_a.label) {
7130
- case 0:
7131
- apiService = new MESApiService();
7132
- parameters = [];
7133
- parameters.push({ name: "UserId", value: UserId });
7134
- parameters.push({ name: "UserName", value: null });
7135
- return [4 /*yield*/, apiService.callV2("[SEC].[GetUser]", parameters)];
7136
- case 1:
7137
- resp = _a.sent();
7138
- return [2 /*return*/, resp];
7139
- }
7140
- });
7141
- }); };
7142
- var getProfiles = function () { return __awaiter(void 0, void 0, void 0, function () {
7143
- var apiService, resp;
7144
- return __generator(this, function (_a) {
7145
- switch (_a.label) {
7146
- case 0:
7147
- apiService = new MESApiService();
7148
- return [4 /*yield*/, apiService.callV2("[SEC].[GetProfiles]", [])];
7149
- case 1:
7150
- resp = _a.sent();
7151
- return [2 /*return*/, resp];
7152
- }
7153
- });
7154
- }); };
7155
- var deleteUser = function (userId) { return __awaiter(void 0, void 0, void 0, function () {
7156
- var apiService, parameters, resp;
7157
- return __generator(this, function (_a) {
7158
- switch (_a.label) {
7159
- case 0:
7160
- apiService = new MESApiService();
7161
- parameters = [];
7162
- parameters.push({ name: "UserId", value: userId });
7163
- return [4 /*yield*/, apiService.callV2("[SEC].[DeleteUser]", parameters)];
7164
- case 1:
7165
- resp = _a.sent();
7166
- return [2 /*return*/, resp];
7167
- }
7168
- });
7169
- }); };
7170
- var setPassword = function (userId, password) { return __awaiter(void 0, void 0, void 0, function () {
7171
- var apiService, resp, e_1;
7172
- return __generator(this, function (_a) {
7173
- switch (_a.label) {
7174
- case 0:
7175
- apiService = new MESApiService();
7176
- _a.label = 1;
7177
- case 1:
7178
- _a.trys.push([1, 3, , 4]);
7179
- return [4 /*yield*/, apiService.changePassword(userId.toString(), password)];
7180
- case 2:
7181
- resp = _a.sent();
7182
- return [2 /*return*/, {
7183
- ok: true,
7184
- data: resp,
7185
- }];
7186
- case 3:
7187
- e_1 = _a.sent();
7188
- return [2 /*return*/, { ok: false, message: e_1.toString() }];
7189
- case 4: return [2 /*return*/];
7190
- }
7191
- });
7192
- }); };
7193
- var upsertUser = function (user) { return __awaiter(void 0, void 0, void 0, function () {
7194
- var apiService, parameters, resp;
7195
- return __generator(this, function (_a) {
7196
- switch (_a.label) {
7197
- case 0:
7198
- apiService = new MESApiService();
7199
- parameters = [];
7200
- parameters.push({ name: "UserId", value: user.UserId });
7201
- parameters.push({ name: "UserName", value: user.UserName });
7202
- parameters.push({ name: "Name", value: user.FirstName });
7203
- parameters.push({ name: "LastName", value: user.LastName });
7204
- parameters.push({ name: "AuthTypeId", value: user.AuthTypeId });
7205
- parameters.push({ name: "IsActive", value: user.IsActive });
7206
- parameters.push({ name: "DefaultAssetId", value: user.DefaultAssetId });
7207
- return [4 /*yield*/, apiService.callV2("[SEC].[UpsertUser]", parameters)];
7208
- case 1:
7209
- resp = _a.sent();
7210
- return [2 /*return*/, resp];
7211
- }
7212
- });
7213
- }); };
7214
- var getAuthTypes = function () { return __awaiter(void 0, void 0, void 0, function () {
7215
- var apiService, resp;
7216
- return __generator(this, function (_a) {
7217
- switch (_a.label) {
7218
- case 0:
7219
- apiService = new MESApiService();
7220
- return [4 /*yield*/, apiService.callV2("[SEC].[GetAuthTypes]", [])];
7221
- case 1:
7222
- resp = _a.sent();
7223
- return [2 /*return*/, resp];
7224
- }
7225
- });
7226
- }); };
7227
- var setProfilesToUser = function (UserId, profileIds) { return __awaiter(void 0, void 0, void 0, function () {
7228
- var apiService, parameters, resp;
7229
- return __generator(this, function (_a) {
7230
- switch (_a.label) {
7231
- case 0:
7232
- apiService = new MESApiService();
7233
- parameters = [];
7234
- parameters.push({ name: "UserId", value: UserId });
7235
- parameters.push({ name: "ProfileIds", value: profileIds.join(" , ") });
7236
- return [4 /*yield*/, apiService.callV2("[SEC].[setProfilesToUser]", parameters)];
7237
- case 1:
7238
- resp = _a.sent();
7239
- return [2 /*return*/, resp];
7240
- }
7241
- });
7242
- }); };
7243
- var getUserPermissionsFromAPI = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
7244
- var apiService, parameters, resp, rows;
7245
- var _c = _b.UserId, UserId = _c === void 0 ? null : _c, _d = _b.UserName, UserName = _d === void 0 ? null : _d;
7246
- return __generator(this, function (_e) {
7247
- switch (_e.label) {
7248
- case 0:
7249
- apiService = new MESApiService();
7250
- parameters = [];
7251
- parameters.push({ name: "UserId", value: UserId });
7252
- parameters.push({ name: "UserName", value: UserName });
7253
- return [4 /*yield*/, apiService.callV2("SEC.GetPermissions", parameters)];
7254
- case 1:
7255
- resp = _e.sent();
7256
- rows = get(resp, "data.tables[0].rows", []);
7257
- return [2 /*return*/, rows[0] ? rows[0] : null];
7258
- }
7259
- });
7260
- }); };
7261
-
7262
- var ChangePassword$1 = function (_a) {
7263
- var show = _a.show, userId = _a.userId, onHide = _a.onHide;
7264
- var _b = useState(""), password = _b[0], setPasswordText = _b[1];
7265
- var _c = useState(false), isDirty = _c[0], setIsDirty = _c[1];
7266
- var handleSubmit = useCallback(function (ev) { return __awaiter(void 0, void 0, void 0, function () {
7267
- return __generator(this, function (_a) {
7268
- switch (_a.label) {
7269
- case 0:
7270
- ev.preventDefault();
7271
- return [4 /*yield*/, setPassword(userId, password)];
7272
- case 1:
7273
- _a.sent();
7274
- onHide(true);
7275
- return [2 /*return*/];
7276
- }
7258
+ setShowCreateNewContextMenu(false);
7259
+ setShowContextMenu(false);
7260
+ };
7261
+ var handleSearchResultClick = function (result) {
7262
+ var expandPath = function (nodeId) {
7263
+ var path = [];
7264
+ var findNodeAndPath = function (currentId) {
7265
+ var node = allAssetNodes.find(function (n) { return n.id === currentId; });
7266
+ if (node && node.parent !== -1) {
7267
+ path.unshift(currentId);
7268
+ findNodeAndPath(node.parent);
7269
+ }
7270
+ else if (node) {
7271
+ path.unshift(currentId);
7272
+ }
7273
+ };
7274
+ findNodeAndPath(nodeId);
7275
+ return path;
7276
+ };
7277
+ var pathToExpand = expandPath(result.id);
7278
+ var newOpenAssets = __assign({}, openAssets);
7279
+ pathToExpand.forEach(function (nodeId) {
7280
+ newOpenAssets[nodeId] = nodeId;
7277
7281
  });
7278
- }); }, [userId, password]);
7282
+ setOpenAssets(newOpenAssets);
7283
+ setSelectedNodes([result.node]);
7284
+ setTimeout(function () {
7285
+ var nodeElement = document.querySelector("[data-node-id=\"".concat(result.id, "\"]"));
7286
+ if (nodeElement) {
7287
+ nodeElement.scrollIntoView({
7288
+ behavior: "smooth",
7289
+ block: "center",
7290
+ });
7291
+ }
7292
+ }, 300);
7293
+ };
7279
7294
  useEffect(function () {
7280
- if (show) {
7281
- setPasswordText("");
7282
- setIsDirty(false);
7283
- }
7284
- }, [show]);
7285
- if (userId) {
7286
- return (React.createElement(React.Fragment, null,
7287
- React.createElement(MesfModal, { title: "Change password", open: show, handleClose: function () { return onHide(false); }, maxWidth: "lg" },
7288
- React.createElement(Grid, { container: true },
7289
- React.createElement(Grid, { item: true, md: 12, xs: 12 },
7290
- React.createElement(MesfModal.Content, { style: { padding: "6px 16px 16px" } },
7291
- React.createElement("form", { onSubmit: handleSubmit },
7292
- React.createElement(Grid, { item: true, md: 12, xs: 12 },
7293
- React.createElement(TextField, { label: "New Password", value: password, onChange: function (el) {
7294
- setIsDirty(true);
7295
- setPasswordText(el.target.value);
7296
- }, variant: "outlined", error: isEmpty(password) && isDirty, fullWidth: true,
7297
- // margin="dense"
7298
- autoComplete: "off" })),
7299
- React.createElement(Grid, { item: true, md: 12, xs: 12, style: { marginTop: 15 } },
7300
- React.createElement(Button, { fullWidth: true, variant: "contained", color: "primary", type: "submit" }, "APPLY")))))))));
7301
- }
7302
- else {
7303
- return React.createElement(React.Fragment, null);
7304
- }
7295
+ searchAssets();
7296
+ }, []);
7297
+ var openAssetsArray = useMemo(function () {
7298
+ return Object.keys(openAssets).map(function (el) { return Number.parseInt(el); });
7299
+ }, [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",
7316
+ justifyContent: "center",
7317
+ alignItems: "center",
7318
+ } },
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(""); } })));
7403
+ };
7404
+
7405
+ var ConfigurationAssetComponent = function () {
7406
+ return (React__default.createElement(React__default.Fragment, null,
7407
+ React__default.createElement(DndProvider, { backend: HTML5Backend },
7408
+ React__default.createElement(AssetViewComponent, null))));
7409
+ };
7410
+
7411
+ var ConfigurationAssetPage = function () {
7412
+ return (React.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center" },
7413
+ React.createElement(ConfigurationAssetComponent, null)));
7414
+ };
7415
+
7416
+ var AssetPage = function (props) {
7417
+ return (React.createElement(ConfigurationAssetProvider, null,
7418
+ React.createElement(ConfigurationAssetPage, null)));
7305
7419
  };
7306
7420
 
7307
7421
  var INITIAL_VALUES$1 = {
@@ -7319,18 +7433,38 @@ var INITIAL_VALUES$1 = {
7319
7433
 
7320
7434
  var AssetSelector = function (_a) {
7321
7435
  var value = _a.value, onChange = _a.onChange, _b = _a.disabled, disabled = _b === void 0 ? false : _b;
7322
- var areasList = useAssetContext().state.areasList;
7436
+ var _c = useAssetContext().state, areasList = _c.areasList, plantAssetId = _c.plantAssetId;
7437
+ var hasAssets = areasList && areasList.length > 0;
7438
+ var displayValue = React__default.useMemo(function () {
7439
+ if (!hasAssets) {
7440
+ return "";
7441
+ }
7442
+ if (isNil$1(value)) {
7443
+ return plantAssetId;
7444
+ }
7445
+ return value;
7446
+ }, [value, hasAssets, plantAssetId]);
7447
+ var handleChange = function (event) {
7448
+ var selectedValue = event.target.value;
7449
+ if (selectedValue === "") {
7450
+ onChange(null);
7451
+ }
7452
+ else {
7453
+ onChange(Number(selectedValue));
7454
+ }
7455
+ };
7456
+ React__default.useEffect(function () {
7457
+ if (isNil$1(value)) {
7458
+ onChange(plantAssetId);
7459
+ }
7460
+ }, [value, onChange, plantAssetId]);
7323
7461
  return (React__default.createElement(FormControl, { variant: "outlined", fullWidth: true, margin: "dense", disabled: disabled },
7324
7462
  React__default.createElement(InputLabel, null, "Default Asset"),
7325
- React__default.createElement(Select, { value: value || "", onChange: function (e) {
7326
- return onChange(e.target.value ? Number(e.target.value) : null);
7327
- }, label: "Default Asset" },
7328
- React__default.createElement(MenuItem, { value: "" },
7329
- React__default.createElement("em", null, "None")),
7330
- areasList.map(function (area) { return (React__default.createElement(MenuItem, { key: area === null || area === void 0 ? void 0 : area.AssetId, value: area === null || area === void 0 ? void 0 : area.AssetId }, area === null || area === void 0 ? void 0 : area.AssetName)); }))));
7463
+ React__default.createElement(Select, { value: displayValue, onChange: handleChange, label: "Default Asset" }, !hasAssets ? (React__default.createElement(MenuItem, { value: "" },
7464
+ React__default.createElement("em", null, "None"))) : (areasList.map(function (area) { return (React__default.createElement(MenuItem, { key: area === null || area === void 0 ? void 0 : area.AssetId, value: area === null || area === void 0 ? void 0 : area.AssetId }, area === null || area === void 0 ? void 0 : area.AssetName)); })))));
7331
7465
  };
7332
7466
 
7333
- var useStyles$i = makeStyles(function (theme) { return ({
7467
+ var useStyles$g = makeStyles(function (theme) { return ({
7334
7468
  root: {
7335
7469
  "& .MuiSelect-select": {
7336
7470
  minHeight: "40px",
@@ -7363,7 +7497,7 @@ var MenuProps$1 = {
7363
7497
  };
7364
7498
  var AuthTypeSelector = function (_a) {
7365
7499
  var value = _a.value, onChange = _a.onChange, disabled = _a.disabled;
7366
- var classes = useStyles$i();
7500
+ var classes = useStyles$g();
7367
7501
  var _b = useState([]), authTypes = _b[0], setAuthTypes = _b[1];
7368
7502
  var _c = useState(true), isLoading = _c[0], setIsLoading = _c[1];
7369
7503
  var theme = useTheme();
@@ -7399,7 +7533,7 @@ var AuthTypeSelector = function (_a) {
7399
7533
  React.createElement(Chip, { key: "selected-authType-".concat(selected), label: selectedAuthTypeName, className: classes.chip }))); }, MenuProps: MenuProps$1 }, authTypes.map(function (authType) { return (React.createElement(MenuItem, { key: "auth-".concat(authType.AuthTypeId), value: authType.AuthTypeId, style: getStyles(authType.AuthTypeId, authTypes, theme) }, authType.Name)); })))) : (React.createElement(React.Fragment, null))));
7400
7534
  };
7401
7535
 
7402
- var useStyles$h = makeStyles(function (theme) { return ({
7536
+ var useStyles$f = makeStyles(function (theme) { return ({
7403
7537
  root: {
7404
7538
  "& .MuiSelect-select": {
7405
7539
  height: "auto",
@@ -7440,7 +7574,7 @@ var MenuProps = {
7440
7574
  };
7441
7575
  var ProfilesPicker = function (_a) {
7442
7576
  var value = _a.value, onChange = _a.onChange; _a.userIdForDelete; var setprofileError = _a.setprofileError, disabled = _a.disabled;
7443
- var classes = useStyles$h();
7577
+ var classes = useStyles$f();
7444
7578
  var theme = useTheme();
7445
7579
  var _b = useState(true), isLoading = _b[0], setIsLoading = _b[1];
7446
7580
  var _c = useState([]), profiles = _c[0], setProfiles = _c[1];
@@ -7481,7 +7615,7 @@ var ProfilesPicker = function (_a) {
7481
7615
  React__default.createElement(Select, { autoWidth: true, labelId: "demo-mutiple-chip-label", id: "demo-mutiple-chip", multiple: true, value: value, onChange: onChange, input: React__default.createElement(Input, { id: "select-multiple-chip" }), renderValue: function (selected) { return (React__default.createElement("div", { className: classes.chips }, selected.map(function (profileId) { return (React__default.createElement(Chip, { key: "selected-profile-".concat(profileId), label: getProfileNameById(profileId), className: classes.chip })); }))); }, MenuProps: MenuProps }, profiles.map(function (profile) { return (React__default.createElement(MenuItem, { key: "profile-".concat(profile.ProfileId), value: profile.ProfileId, style: getStyles(profile.ProfileId, profiles, theme) }, profile.ProfileName.replaceAll("Profile", ""))); })))) : (React__default.createElement(React__default.Fragment, null))));
7482
7616
  };
7483
7617
 
7484
- var useStyles$g = makeStyles(function (theme) { return ({
7618
+ var useStyles$e = makeStyles(function (theme) { return ({
7485
7619
  checkbox: {
7486
7620
  userSelect: "none",
7487
7621
  },
@@ -7503,7 +7637,7 @@ var CreateUser = function (_a) {
7503
7637
  var _f = useState(false), isSubmitLoading = _f[0], setIsSubmitLoading = _f[1];
7504
7638
  var _g = useState(""), error = _g[0], setError = _g[1];
7505
7639
  var _h = useState(""), profileError = _h[0], setprofileError = _h[1];
7506
- var classes = useStyles$g();
7640
+ var classes = useStyles$e();
7507
7641
  var _j = useForm({ defaultValues: INITIAL_VALUES$1 }), register = _j.register, control = _j.control, handleSubmit = _j.handleSubmit, reset = _j.reset, watch = _j.watch, errors = _j.formState.errors;
7508
7642
  var handleClose = function (event, reason) {
7509
7643
  if (reason === "clickaway") {
@@ -7869,6 +8003,7 @@ var UserInitialState = {
7869
8003
  defaultAreaName: "",
7870
8004
  userLogged: false,
7871
8005
  permissions: [],
8006
+ profiles: [],
7872
8007
  };
7873
8008
  var UserReducer = createSlice({
7874
8009
  name: "__",
@@ -7898,6 +8033,10 @@ var UserReducer = createSlice({
7898
8033
  var payload = _a.payload;
7899
8034
  state.permissions = payload;
7900
8035
  },
8036
+ setProfiles: function (state, _a) {
8037
+ var payload = _a.payload;
8038
+ state.profiles = payload;
8039
+ },
7901
8040
  },
7902
8041
  });
7903
8042
 
@@ -7913,6 +8052,12 @@ var useHasPermission = function () {
7913
8052
  return state.permissions.some(function (p) { return p === permission; });
7914
8053
  };
7915
8054
  };
8055
+ var useHasProfile = function () {
8056
+ var state = useUserContext().state;
8057
+ return function (profile) {
8058
+ return state.profiles.some(function (p) { return p === profile; });
8059
+ };
8060
+ };
7916
8061
  var UserProvider = function (_a) {
7917
8062
  var children = _a.children;
7918
8063
  var _b = useComplexState({
@@ -7920,13 +8065,14 @@ var UserProvider = function (_a) {
7920
8065
  reducers: UserReducer.caseReducers,
7921
8066
  }), state = _b[0], actions = _b[1];
7922
8067
  var _c = useState(false), permissionsLoaded = _c[0], setPermissionsLoaded = _c[1];
8068
+ var _d = useState(false), profilesLoaded = _d[0], setProfilesLoaded = _d[1];
7923
8069
  var getUserId = function () {
7924
8070
  var sessionData = localStorage.getItem("userMESData") || "{}";
7925
8071
  var userData = JSON.parse(sessionData);
7926
8072
  return get(userData, "id", null);
7927
8073
  };
7928
8074
  var getUserPermissions = function () { return __awaiter(void 0, void 0, void 0, function () {
7929
- var userId, resp, permissionsArray, error_1;
8075
+ var userId, resp, permissionsArray, profilesArray, error_1;
7930
8076
  return __generator(this, function (_a) {
7931
8077
  switch (_a.label) {
7932
8078
  case 0:
@@ -7945,6 +8091,11 @@ var UserProvider = function (_a) {
7945
8091
  actions.setPermissions(permissionsArray);
7946
8092
  setPermissionsLoaded(true);
7947
8093
  }
8094
+ if (resp && resp.Profiles) {
8095
+ profilesArray = resp.Profiles.split(",");
8096
+ actions.setProfiles(profilesArray);
8097
+ setProfilesLoaded(true);
8098
+ }
7948
8099
  return [3 /*break*/, 4];
7949
8100
  case 3:
7950
8101
  error_1 = _a.sent();
@@ -7965,7 +8116,11 @@ var UserProvider = function (_a) {
7965
8116
  }
7966
8117
  },
7967
8118
  });
7968
- return (React__default.createElement(UserContext.Provider, { value: { state: state, actions: actions, isLoading: !permissionsLoaded } }, children));
8119
+ return (React__default.createElement(UserContext.Provider, { value: {
8120
+ state: state,
8121
+ actions: actions,
8122
+ isLoading: !permissionsLoaded || !profilesLoaded,
8123
+ } }, children));
7969
8124
  };
7970
8125
 
7971
8126
  var getTokenFromLS = function () {
@@ -8032,7 +8187,7 @@ function useToken() {
8032
8187
  };
8033
8188
  }
8034
8189
 
8035
- var useStyles$f = makeStyles(function (theme) { return ({
8190
+ var useStyles$d = makeStyles(function (theme) { return ({
8036
8191
  checkbox: {
8037
8192
  userSelect: "none",
8038
8193
  },
@@ -8051,7 +8206,7 @@ var useStyles$f = makeStyles(function (theme) { return ({
8051
8206
  var EditUser = function (_a) {
8052
8207
  var _b, _c, _d;
8053
8208
  var userId = _a.userId, show = _a.show, onHide = _a.onHide;
8054
- var classes = useStyles$f();
8209
+ var classes = useStyles$d();
8055
8210
  var _e = useState(false), open = _e[0], setOpen = _e[1];
8056
8211
  var _f = useState(false), isLoading = _f[0], setIsLoading = _f[1];
8057
8212
  var _g = useState(false), isSubmitLoading = _g[0], setIsSubmitLoading = _g[1];
@@ -8221,7 +8376,7 @@ var UsersProvider = function (_a) {
8221
8376
  return (React__default.createElement(UsersContext.Provider, { value: { state: state, actions: actions } }, children));
8222
8377
  };
8223
8378
 
8224
- var useStyles$e = makeStyles(function (theme) { return ({
8379
+ var useStyles$c = makeStyles(function (theme) { return ({
8225
8380
  buttons: {
8226
8381
  opacity: 0,
8227
8382
  transition: "opacity 0.1s ease-in-out",
@@ -8237,7 +8392,7 @@ var useStyles$e = makeStyles(function (theme) { return ({
8237
8392
  },
8238
8393
  }); });
8239
8394
  var buttonsCellRenderer = function (params) {
8240
- var classes = useStyles$e();
8395
+ var classes = useStyles$c();
8241
8396
  var setUserId = params.setUserId, setOpenModalEditDataUser = params.setOpenModalEditDataUser, setOpenModalDeleteUser = params.setOpenModalDeleteUser, setOpenModalChangePasswordd = params.setOpenModalChangePasswordd, showContextMenu = params.showContextMenu;
8242
8397
  return (React__default.createElement(Grid, { container: true, style: {
8243
8398
  height: "100%",
@@ -9255,49 +9410,121 @@ var MESApiService = /** @class */ (function () {
9255
9410
  return MESApiService;
9256
9411
  }());
9257
9412
 
9258
- var getUser = function (UserId, UserName) { return __awaiter(void 0, void 0, void 0, function () {
9413
+ var getUsers = function () { return __awaiter(void 0, void 0, void 0, function () {
9414
+ var apiService, resp;
9415
+ return __generator(this, function (_a) {
9416
+ switch (_a.label) {
9417
+ case 0:
9418
+ apiService = new MESApiService();
9419
+ return [4 /*yield*/, apiService.callV2("[SEC].[GetUsers]", [])];
9420
+ case 1:
9421
+ resp = _a.sent();
9422
+ return [2 /*return*/, resp];
9423
+ }
9424
+ });
9425
+ }); };
9426
+ var getDataUser = function (UserId) { return __awaiter(void 0, void 0, void 0, function () {
9427
+ var apiService, parameters, resp;
9428
+ return __generator(this, function (_a) {
9429
+ switch (_a.label) {
9430
+ case 0:
9431
+ apiService = new MESApiService();
9432
+ parameters = [];
9433
+ parameters.push({ name: "UserId", value: UserId });
9434
+ parameters.push({ name: "UserName", value: null });
9435
+ return [4 /*yield*/, apiService.callV2("[SEC].[GetUser]", parameters)];
9436
+ case 1:
9437
+ resp = _a.sent();
9438
+ return [2 /*return*/, resp];
9439
+ }
9440
+ });
9441
+ }); };
9442
+ var getProfiles = function () { return __awaiter(void 0, void 0, void 0, function () {
9443
+ var apiService, resp;
9444
+ return __generator(this, function (_a) {
9445
+ switch (_a.label) {
9446
+ case 0:
9447
+ apiService = new MESApiService();
9448
+ return [4 /*yield*/, apiService.callV2("[SEC].[GetProfiles]", [])];
9449
+ case 1:
9450
+ resp = _a.sent();
9451
+ return [2 /*return*/, resp];
9452
+ }
9453
+ });
9454
+ }); };
9455
+ var deleteUser = function (userId) { return __awaiter(void 0, void 0, void 0, function () {
9259
9456
  var apiService, parameters, resp;
9260
9457
  return __generator(this, function (_a) {
9261
9458
  switch (_a.label) {
9262
9459
  case 0:
9263
9460
  apiService = new MESApiService();
9264
- parameters = [];
9265
- parameters.push({ name: "UserId", value: UserId });
9266
- parameters.push({ name: "UserName", value: UserName });
9267
- return [4 /*yield*/, apiService.callV2("[SEC].[GetUser]", parameters)];
9461
+ parameters = [];
9462
+ parameters.push({ name: "UserId", value: userId });
9463
+ return [4 /*yield*/, apiService.callV2("[SEC].[DeleteUser]", parameters)];
9464
+ case 1:
9465
+ resp = _a.sent();
9466
+ return [2 /*return*/, resp];
9467
+ }
9468
+ });
9469
+ }); };
9470
+ var setPassword = function (userId, password) { return __awaiter(void 0, void 0, void 0, function () {
9471
+ var apiService, resp, e_1;
9472
+ return __generator(this, function (_a) {
9473
+ switch (_a.label) {
9474
+ case 0:
9475
+ apiService = new MESApiService();
9476
+ _a.label = 1;
9268
9477
  case 1:
9478
+ _a.trys.push([1, 3, , 4]);
9479
+ return [4 /*yield*/, apiService.changePassword(userId.toString(), password)];
9480
+ case 2:
9269
9481
  resp = _a.sent();
9270
- return [2 /*return*/, resp];
9482
+ return [2 /*return*/, {
9483
+ ok: true,
9484
+ data: resp,
9485
+ }];
9486
+ case 3:
9487
+ e_1 = _a.sent();
9488
+ return [2 /*return*/, { ok: false, message: e_1.toString() }];
9489
+ case 4: return [2 /*return*/];
9271
9490
  }
9272
9491
  });
9273
9492
  }); };
9274
- var getAssets = function () { return __awaiter(void 0, void 0, void 0, function () {
9275
- var apiService, resp;
9493
+ var upsertUser = function (user) { return __awaiter(void 0, void 0, void 0, function () {
9494
+ var apiService, parameters, resp;
9276
9495
  return __generator(this, function (_a) {
9277
9496
  switch (_a.label) {
9278
9497
  case 0:
9279
9498
  apiService = new MESApiService();
9280
- return [4 /*yield*/, apiService.callV2("[MES].[GetAssets]", [])];
9499
+ parameters = [];
9500
+ parameters.push({ name: "UserId", value: user.UserId });
9501
+ parameters.push({ name: "UserName", value: user.UserName });
9502
+ parameters.push({ name: "Name", value: user.FirstName });
9503
+ parameters.push({ name: "LastName", value: user.LastName });
9504
+ parameters.push({ name: "AuthTypeId", value: user.AuthTypeId });
9505
+ parameters.push({ name: "IsActive", value: user.IsActive });
9506
+ parameters.push({ name: "DefaultAssetId", value: user.DefaultAssetId });
9507
+ return [4 /*yield*/, apiService.callV2("[SEC].[UpsertUser]", parameters)];
9281
9508
  case 1:
9282
9509
  resp = _a.sent();
9283
9510
  return [2 /*return*/, resp];
9284
9511
  }
9285
9512
  });
9286
9513
  }); };
9287
- var getUTLSettings = function () { return __awaiter(void 0, void 0, void 0, function () {
9514
+ var getAuthTypes = function () { return __awaiter(void 0, void 0, void 0, function () {
9288
9515
  var apiService, resp;
9289
9516
  return __generator(this, function (_a) {
9290
9517
  switch (_a.label) {
9291
9518
  case 0:
9292
9519
  apiService = new MESApiService();
9293
- return [4 /*yield*/, apiService.callV2("[UTL].[GetSettings]", [])];
9520
+ return [4 /*yield*/, apiService.callV2("[SEC].[GetAuthTypes]", [])];
9294
9521
  case 1:
9295
9522
  resp = _a.sent();
9296
9523
  return [2 /*return*/, resp];
9297
9524
  }
9298
9525
  });
9299
9526
  }); };
9300
- var upsertDefaultAreaId = function (UserId, DefaultAreaId) { return __awaiter(void 0, void 0, void 0, function () {
9527
+ var setProfilesToUser = function (UserId, profileIds) { return __awaiter(void 0, void 0, void 0, function () {
9301
9528
  var apiService, parameters, resp;
9302
9529
  return __generator(this, function (_a) {
9303
9530
  switch (_a.label) {
@@ -9305,85 +9532,206 @@ var upsertDefaultAreaId = function (UserId, DefaultAreaId) { return __awaiter(vo
9305
9532
  apiService = new MESApiService();
9306
9533
  parameters = [];
9307
9534
  parameters.push({ name: "UserId", value: UserId });
9308
- parameters.push({ name: "DefaultAssetId", value: DefaultAreaId });
9309
- return [4 /*yield*/, apiService.callV2("[SEC].[UpsertDefaultAssetId]", parameters)];
9535
+ parameters.push({ name: "ProfileIds", value: profileIds.join(" , ") });
9536
+ return [4 /*yield*/, apiService.callV2("[SEC].[setProfilesToUser]", parameters)];
9310
9537
  case 1:
9311
9538
  resp = _a.sent();
9312
9539
  return [2 /*return*/, resp];
9313
9540
  }
9314
9541
  });
9315
9542
  }); };
9543
+ var getUserPermissionsFromAPI = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
9544
+ var apiService, parameters, resp, rows;
9545
+ var _c = _b.UserId, UserId = _c === void 0 ? null : _c, _d = _b.UserName, UserName = _d === void 0 ? null : _d;
9546
+ return __generator(this, function (_e) {
9547
+ switch (_e.label) {
9548
+ case 0:
9549
+ apiService = new MESApiService();
9550
+ parameters = [];
9551
+ parameters.push({ name: "UserId", value: UserId });
9552
+ parameters.push({ name: "UserName", value: UserName });
9553
+ return [4 /*yield*/, apiService.callV2("SEC.GetPermissions", parameters)];
9554
+ case 1:
9555
+ resp = _e.sent();
9556
+ rows = get(resp, "data.tables[0].rows", []);
9557
+ return [2 /*return*/, rows[0] ? rows[0] : null];
9558
+ }
9559
+ });
9560
+ }); };
9561
+
9562
+ var ChangePassword$1 = function (_a) {
9563
+ var show = _a.show, userId = _a.userId, onHide = _a.onHide;
9564
+ var _b = useState(""), password = _b[0], setPasswordText = _b[1];
9565
+ var _c = useState(false), isDirty = _c[0], setIsDirty = _c[1];
9566
+ var handleSubmit = useCallback(function (ev) { return __awaiter(void 0, void 0, void 0, function () {
9567
+ return __generator(this, function (_a) {
9568
+ switch (_a.label) {
9569
+ case 0:
9570
+ ev.preventDefault();
9571
+ return [4 /*yield*/, setPassword(userId, password)];
9572
+ case 1:
9573
+ _a.sent();
9574
+ onHide(true);
9575
+ return [2 /*return*/];
9576
+ }
9577
+ });
9578
+ }); }, [userId, password]);
9579
+ useEffect(function () {
9580
+ if (show) {
9581
+ setPasswordText("");
9582
+ setIsDirty(false);
9583
+ }
9584
+ }, [show]);
9585
+ if (userId) {
9586
+ return (React.createElement(React.Fragment, null,
9587
+ React.createElement(MesfModal, { title: "Change password", open: show, handleClose: function () { return onHide(false); }, maxWidth: "lg" },
9588
+ React.createElement(Grid, { container: true },
9589
+ React.createElement(Grid, { item: true, md: 12, xs: 12 },
9590
+ React.createElement(MesfModal.Content, { style: { padding: "6px 16px 16px" } },
9591
+ React.createElement("form", { onSubmit: handleSubmit },
9592
+ React.createElement(Grid, { item: true, md: 12, xs: 12 },
9593
+ React.createElement(TextField, { label: "New Password", value: password, onChange: function (el) {
9594
+ setIsDirty(true);
9595
+ setPasswordText(el.target.value);
9596
+ }, variant: "outlined", error: isEmpty(password) && isDirty, fullWidth: true,
9597
+ // margin="dense"
9598
+ autoComplete: "off" })),
9599
+ React.createElement(Grid, { item: true, md: 12, xs: 12, style: { marginTop: 15 } },
9600
+ React.createElement(Button, { fullWidth: true, variant: "contained", color: "primary", type: "submit" }, "APPLY")))))))));
9601
+ }
9602
+ else {
9603
+ return React.createElement(React.Fragment, null);
9604
+ }
9605
+ };
9316
9606
 
9317
- var useStyles$d = makeStyles$1(function (theme) { return ({
9318
- root: {
9319
- padding: theme.spacing(3),
9320
- },
9321
- paper: {
9322
- padding: theme.spacing(3),
9323
- marginBottom: theme.spacing(3),
9324
- },
9325
- title: {
9326
- marginBottom: theme.spacing(2),
9327
- },
9328
- formRow: {
9329
- marginBottom: theme.spacing(2),
9330
- },
9331
- changePasswordButton: {
9332
- marginLeft: theme.spacing(2),
9333
- },
9334
- textArea: {
9335
- width: "100%",
9336
- height: "50vh",
9337
- padding: theme.spacing(1),
9338
- fontFamily: "inherit",
9339
- border: "1px solid ".concat(theme.palette.divider),
9340
- borderRadius: 4,
9341
- backgroundColor: theme.palette.action.disabledBackground,
9342
- },
9343
- successMessage: {
9344
- padding: theme.spacing(1),
9345
- marginBottom: theme.spacing(2),
9346
- backgroundColor: theme.palette.success.light,
9347
- color: theme.palette.success.contrastText,
9348
- borderRadius: 4,
9349
- },
9350
- }); });
9351
9607
  var Account = function () {
9352
- var classes = useStyles$d();
9353
- var _a = useState(""), error = _a[0], setError = _a[1];
9354
- var _b = useState(""), userLastName = _b[0], setUserLastName = _b[1];
9355
- var _c = useState(""), userFirstName = _c[0], setUserFirstName = _c[1];
9356
- var user = useState(function () {
9608
+ var _a = useToken(), getUserId = _a.getUserId; _a.getUserName; _a.getFirstName; _a.getLastName;
9609
+ var getUserNameFromStorage = function () {
9357
9610
  var sessionData = localStorage.getItem("userMESData");
9358
- return JSON.parse(sessionData || "{}");
9359
- })[0];
9360
- var _d = useState(""), userName = _d[0], setUserName = _d[1];
9361
- var _e = useState(false), userIsDomain = _e[0], setUserIsDomain = _e[1];
9362
- var _f = useState(false), userIsActive = _f[0], setUserIsActive = _f[1];
9363
- var _g = useState(""), userProfiles = _g[0], setUserProfiles = _g[1];
9364
- var _h = useState(""), userPermissions = _h[0], setUserPermissions = _h[1];
9365
- var _j = useState(""), userProcedures = _j[0], setUserProcedures = _j[1];
9366
- var _k = useState(false); _k[0]; _k[1];
9367
- var _l = useState(false), showSuccess = _l[0], setShowSuccess = _l[1];
9368
- var _m = useState(""), successMessage = _m[0], setSuccessMessage = _m[1];
9611
+ if (sessionData) {
9612
+ var userData = JSON.parse(sessionData);
9613
+ return (userData.userName || userData.UserName || userData.username || null);
9614
+ }
9615
+ return null;
9616
+ };
9617
+ var _b = useState(""), error = _b[0], setError = _b[1];
9618
+ var _c = useState(""), userName = _c[0], setUserName = _c[1];
9619
+ var _d = useState(""), userFirstName = _d[0], setUserFirstName = _d[1];
9620
+ var _e = useState(""), userLastName = _e[0], setUserLastName = _e[1];
9621
+ var _f = useState(false), userIsDomain = _f[0], setUserIsDomain = _f[1];
9622
+ var _g = useState(false), userIsActive = _g[0], setUserIsActive = _g[1];
9623
+ var _h = useState(""), userProfiles = _h[0], setUserProfiles = _h[1];
9624
+ var _j = useState(""), userPermissions = _j[0], setUserPermissions = _j[1];
9625
+ var _k = useState(""), userProcedures = _k[0], setUserProcedures = _k[1];
9626
+ var _l = useState(""), editFirstName = _l[0], setEditFirstName = _l[1];
9627
+ var _m = useState(""), editLastName = _m[0], setEditLastName = _m[1];
9628
+ var _o = useState(false), isSaving = _o[0], setIsSaving = _o[1];
9629
+ var _p = useState(false), showPasswordModal = _p[0], setShowPasswordModal = _p[1];
9630
+ var _q = useState(false), showSuccess = _q[0], setShowSuccess = _q[1];
9631
+ var _r = useState(""), successMessage = _r[0], setSuccessMessage = _r[1];
9632
+ var hasChanges = function () {
9633
+ return editFirstName !== userFirstName || editLastName !== userLastName;
9634
+ };
9635
+ var handleSave = function () { return __awaiter(void 0, void 0, void 0, function () {
9636
+ var userId, user, resp, sessionData, userData, err_1;
9637
+ return __generator(this, function (_a) {
9638
+ switch (_a.label) {
9639
+ case 0:
9640
+ if (!hasChanges() || !editFirstName.trim() || !editLastName.trim())
9641
+ return [2 /*return*/];
9642
+ setIsSaving(true);
9643
+ _a.label = 1;
9644
+ case 1:
9645
+ _a.trys.push([1, 3, 4, 5]);
9646
+ userId = getUserId();
9647
+ user = {
9648
+ UserId: userId,
9649
+ UserName: userName,
9650
+ FirstName: editFirstName.trim(),
9651
+ LastName: editLastName.trim(),
9652
+ AuthTypeId: userIsDomain ? 1 : 0,
9653
+ IsActive: userIsActive,
9654
+ LastLogin: null,
9655
+ DefaultAssetId: null,
9656
+ ProfilesId: "",
9657
+ Profiles: "",
9658
+ };
9659
+ return [4 /*yield*/, upsertUser(user)];
9660
+ case 2:
9661
+ resp = _a.sent();
9662
+ if (resp.ok) {
9663
+ setUserFirstName(editFirstName.trim());
9664
+ setUserLastName(editLastName.trim());
9665
+ sessionData = localStorage.getItem("userMESData");
9666
+ if (sessionData) {
9667
+ userData = JSON.parse(sessionData);
9668
+ userData.firstName = editFirstName.trim();
9669
+ userData.lastName = editLastName.trim();
9670
+ localStorage.setItem("userMESData", JSON.stringify(userData));
9671
+ }
9672
+ setShowSuccess(true);
9673
+ setSuccessMessage("Profile updated successfully.");
9674
+ }
9675
+ else {
9676
+ setError(resp.message || "Failed to update profile");
9677
+ }
9678
+ return [3 /*break*/, 5];
9679
+ case 3:
9680
+ err_1 = _a.sent();
9681
+ setError(err_1.toString());
9682
+ return [3 /*break*/, 5];
9683
+ case 4:
9684
+ setIsSaving(false);
9685
+ return [7 /*endfinally*/];
9686
+ case 5: return [2 /*return*/];
9687
+ }
9688
+ });
9689
+ }); };
9690
+ var handlePasswordChange = function (success) {
9691
+ setShowPasswordModal(false);
9692
+ if (success) {
9693
+ setShowSuccess(true);
9694
+ setSuccessMessage("Password changed successfully.");
9695
+ }
9696
+ };
9697
+ var handleKeyDown = function (e) {
9698
+ if (e.key === "Enter" &&
9699
+ hasChanges() &&
9700
+ editFirstName.trim() &&
9701
+ editLastName.trim() &&
9702
+ !isSaving) {
9703
+ handleSave();
9704
+ }
9705
+ };
9369
9706
  var stringToList = function (s) {
9370
9707
  s = s.replace(/,/g, "\n");
9371
9708
  s = s.replace(/ *\([^)]*\) */g, "");
9372
9709
  return s;
9373
9710
  };
9374
9711
  var loadUserData = function () { return __awaiter(void 0, void 0, void 0, function () {
9375
- var resp, userData;
9712
+ var userId, currentUserName, resp, userData, firstName, lastName;
9376
9713
  var _a, _b, _c, _d, _e, _f, _g, _h;
9377
9714
  return __generator(this, function (_j) {
9378
9715
  switch (_j.label) {
9379
- case 0: return [4 /*yield*/, getUser(user.UserId, user.UserName)];
9716
+ case 0:
9717
+ userId = getUserId();
9718
+ currentUserName = getUserNameFromStorage();
9719
+ if (!userId || userId === -1) {
9720
+ setError("UserId is NULL. Please login again.");
9721
+ return [2 /*return*/];
9722
+ }
9723
+ return [4 /*yield*/, getUser(userId, currentUserName)];
9380
9724
  case 1:
9381
9725
  resp = _j.sent();
9382
9726
  if (resp.ok) {
9383
9727
  userData = get(resp, "data.tables[0].rows", null);
9384
- setUserName((_a = userData[0]) === null || _a === void 0 ? void 0 : _a.UserName);
9385
- setUserLastName((_b = userData[0]) === null || _b === void 0 ? void 0 : _b.LastName);
9386
- setUserFirstName((_c = userData[0]) === null || _c === void 0 ? void 0 : _c.FirstName);
9728
+ firstName = ((_a = userData[0]) === null || _a === void 0 ? void 0 : _a.FirstName) || "";
9729
+ lastName = ((_b = userData[0]) === null || _b === void 0 ? void 0 : _b.LastName) || "";
9730
+ setUserName((_c = userData[0]) === null || _c === void 0 ? void 0 : _c.UserName);
9731
+ setUserFirstName(firstName);
9732
+ setUserLastName(lastName);
9733
+ setEditFirstName(firstName);
9734
+ setEditLastName(lastName);
9387
9735
  setUserIsDomain((_d = userData[0]) === null || _d === void 0 ? void 0 : _d.AuthTypeId);
9388
9736
  setUserIsActive((_e = userData[0]) === null || _e === void 0 ? void 0 : _e.IsActive);
9389
9737
  setUserProfiles(stringToList(((_f = userData[0]) === null || _f === void 0 ? void 0 : _f.Profiles) || ""));
@@ -9420,42 +9768,98 @@ var Account = function () {
9420
9768
  closeMessage();
9421
9769
  }
9422
9770
  }, [showSuccess]);
9423
- return (React__default.createElement(Box, { className: classes.root },
9424
- React__default.createElement(Paper, { className: classes.paper },
9425
- React__default.createElement(Typography$1, { variant: "h5", component: "h1", className: classes.title }, "Account Configuration"),
9426
- showSuccess && (React__default.createElement(Box, { className: classes.successMessage },
9427
- React__default.createElement(Typography$1, null, successMessage))),
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"),
9428
9783
  React__default.createElement(Grid, { container: true, spacing: 3 },
9429
9784
  React__default.createElement(Grid, { item: true, xs: 12, md: 6 },
9430
- React__default.createElement(Box, { display: "flex", alignItems: "center", className: classes.formRow },
9431
- React__default.createElement(TextField, { label: "Username", value: userName, variant: "outlined", size: "small", fullWidth: true, InputProps: {
9432
- readOnly: true,
9433
- } })),
9434
- React__default.createElement(Box, { className: classes.formRow },
9435
- React__default.createElement(TextField, { label: "Name", value: userFirstName, variant: "outlined", size: "small", fullWidth: true, InputProps: {
9436
- readOnly: true,
9437
- } })),
9438
- React__default.createElement(Box, { className: classes.formRow },
9439
- React__default.createElement(TextField, { label: "Lastname", value: userLastName, variant: "outlined", size: "small", fullWidth: true, InputProps: {
9440
- readOnly: true,
9441
- } })),
9442
- React__default.createElement(Box, { className: classes.formRow },
9443
- React__default.createElement(FormControlLabel, { control: React__default.createElement(Checkbox, { checked: userIsDomain, disabled: true }), label: "Domain User" })),
9444
- React__default.createElement(Box, { className: classes.formRow },
9445
- React__default.createElement(FormControlLabel, { control: React__default.createElement(Checkbox, { checked: userIsActive, disabled: true }), label: "Active" })))),
9446
- React__default.createElement(Grid, { container: true, spacing: 3 },
9447
- React__default.createElement(Grid, { item: true, xs: 12, md: 4 },
9448
- React__default.createElement(Typography$1, { variant: "h6", gutterBottom: true }, "Profiles"),
9449
- React__default.createElement("textarea", { className: classes.textArea, placeholder: userProfiles, readOnly: true, value: userProfiles })),
9450
- React__default.createElement(Grid, { item: true, xs: 12, md: 4 },
9451
- React__default.createElement(Typography$1, { variant: "h6", gutterBottom: true }, "Permissions"),
9452
- React__default.createElement("textarea", { className: classes.textArea, placeholder: userPermissions, readOnly: true, value: userPermissions })),
9453
- React__default.createElement(Grid, { item: true, xs: 12, md: 4 },
9454
- React__default.createElement(Typography$1, { variant: "h6", gutterBottom: true }, "Procedures"),
9455
- React__default.createElement("textarea", { className: classes.textArea, placeholder: userProcedures, readOnly: true, value: userProcedures })))),
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"),
9813
+ 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 }))))),
9456
9859
  React__default.createElement(ErrorModal, { error: error, onHide: function () {
9457
9860
  setError("");
9458
- } })));
9861
+ } }),
9862
+ React__default.createElement(ChangePassword$1, { show: showPasswordModal, userId: getUserId(), onHide: handlePasswordChange })));
9459
9863
  };
9460
9864
 
9461
9865
  function ChangePassword(props) {
@@ -9546,7 +9950,7 @@ var Unauthenticated = function (_a) {
9546
9950
  return React__default.createElement(Login, { authConfig: authConfig });
9547
9951
  };
9548
9952
 
9549
- var useStyles$c = makeStyles(function (theme) { return ({
9953
+ var useStyles$b = makeStyles(function (theme) { return ({
9550
9954
  button: {
9551
9955
  padding: theme.spacing(1.2),
9552
9956
  fontWeight: 600,
@@ -9561,7 +9965,7 @@ var useStyles$c = makeStyles(function (theme) { return ({
9561
9965
  },
9562
9966
  }); });
9563
9967
  var LoginAsGuest = function () {
9564
- var classes = useStyles$c();
9968
+ var classes = useStyles$b();
9565
9969
  var _a = React__default.useState(false), showError = _a[0], setShowError = _a[1];
9566
9970
  var _b = React__default.useState(undefined), error = _b[0], setError = _b[1];
9567
9971
  var saveUserData = React__default.useContext(AuthContext).saveUserData;
@@ -9601,7 +10005,7 @@ var LoginAsGuest = function () {
9601
10005
  React__default.createElement(Button, { fullWidth: true, variant: "contained", color: "primary", className: classes.button, style: { backgroundColor: "#479DC4", color: "white" }, role: "button", onClick: loginAsGuest, startIcon: React__default.createElement(PersonOutlineIcon, { className: classes.icon }) }, "Guest Access")));
9602
10006
  };
9603
10007
 
9604
- var useStyles$b = makeStyles(function (theme) { return ({
10008
+ var useStyles$a = makeStyles(function (theme) { return ({
9605
10009
  form: {
9606
10010
  width: "100%",
9607
10011
  marginTop: theme.spacing(1),
@@ -9624,7 +10028,7 @@ var useStyles$b = makeStyles(function (theme) { return ({
9624
10028
  },
9625
10029
  }); });
9626
10030
  var LoginWithEmailAndPassword = function () {
9627
- var classes = useStyles$b();
10031
+ var classes = useStyles$a();
9628
10032
  var _a = useState(""), username = _a[0], setUserName = _a[1];
9629
10033
  var _b = useState(""), password = _b[0], setPassword = _b[1];
9630
10034
  var _c = React__default.useState(false), showError = _c[0], setShowError = _c[1];
@@ -9683,7 +10087,7 @@ var WindowsLogo = function (_a) {
9683
10087
  React__default.createElement("path", { color: color, d: "M12 16H3v7.75l9 1.238zm0-11L3 6.25V14h9zm2-.25V14h13V3zM14 16v9.25L27 27V16z" })));
9684
10088
  };
9685
10089
 
9686
- var useStyles$a = makeStyles(function (theme) { return ({
10090
+ var useStyles$9 = makeStyles(function (theme) { return ({
9687
10091
  button: {
9688
10092
  padding: theme.spacing(1.2),
9689
10093
  fontWeight: 600,
@@ -9701,7 +10105,7 @@ var useStyles$a = makeStyles(function (theme) { return ({
9701
10105
  },
9702
10106
  }); });
9703
10107
  var LoginWithWindowsAuthentication = function () {
9704
- var classes = useStyles$a();
10108
+ var classes = useStyles$9();
9705
10109
  var _a = React__default.useState(false), showError = _a[0], setShowError = _a[1];
9706
10110
  var _b = React__default.useState(undefined), error = _b[0], setError = _b[1];
9707
10111
  var saveUserData = React__default.useContext(AuthContext).saveUserData;
@@ -9824,7 +10228,7 @@ var loginRequest = {
9824
10228
  scopes: ["User.Read"],
9825
10229
  };
9826
10230
 
9827
- var useStyles$9 = makeStyles(function (theme) { return ({
10231
+ var useStyles$8 = makeStyles(function (theme) { return ({
9828
10232
  button: {
9829
10233
  padding: theme.spacing(1.2),
9830
10234
  fontWeight: 600,
@@ -9839,7 +10243,7 @@ var useStyles$9 = makeStyles(function (theme) { return ({
9839
10243
  },
9840
10244
  }); });
9841
10245
  var LoginWithAzureADForm = function () {
9842
- var classes = useStyles$9();
10246
+ var classes = useStyles$8();
9843
10247
  var saveUserData = React__default.useContext(AuthContext).saveUserData;
9844
10248
  var instance = useMsal().instance;
9845
10249
  var login = function (e) { return __awaiter(void 0, void 0, void 0, function () {
@@ -9890,7 +10294,7 @@ var LoginWithAzureAD = function (_a) {
9890
10294
  React__default.createElement(LoginWithAzureADForm, null))));
9891
10295
  };
9892
10296
 
9893
- var useStyles$8 = makeStyles(function (theme) { return ({
10297
+ var useStyles$7 = makeStyles(function (theme) { return ({
9894
10298
  root: {
9895
10299
  minHeight: "100vh",
9896
10300
  backgroundImage: "linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%)",
@@ -9969,7 +10373,7 @@ var useStyles$8 = makeStyles(function (theme) { return ({
9969
10373
  }); });
9970
10374
  function Login(_a) {
9971
10375
  var authConfig = _a.authConfig;
9972
- var classes = useStyles$8();
10376
+ var classes = useStyles$7();
9973
10377
  var params = useRef(new URL(document.location).searchParams);
9974
10378
  var _b = useState(false), open = _b[0], setOpen = _b[1];
9975
10379
  var _c = useState(""), message = _c[0], setMessage = _c[1];
@@ -10064,7 +10468,7 @@ var useSearchAssets = function (setError) {
10064
10468
  return { searchAssets: searchAssets };
10065
10469
  };
10066
10470
 
10067
- var useStyles$7 = makeStyles(function (theme) { return ({
10471
+ var useStyles$6 = makeStyles(function (theme) { return ({
10068
10472
  container: {
10069
10473
  display: "flex",
10070
10474
  alignItems: "center",
@@ -10087,13 +10491,18 @@ var useStyles$7 = makeStyles(function (theme) { return ({
10087
10491
  }); });
10088
10492
  var TimeAndUserMenu = function (_a) {
10089
10493
  var className = _a.className;
10090
- var classes = useStyles$7();
10494
+ var classes = useStyles$6();
10091
10495
  var getUserName = useToken().getUserName;
10092
- var userName = useState(getUserName())[0];
10093
- var _b = useState(new Date()), date = _b[0], setDate = _b[1];
10094
- var _c = useState(null), userMenuAnchorEl = _c[0], setUserMenuAnchorEl = _c[1];
10496
+ var _b = useState(getUserName()), userName = _b[0], setUserName = _b[1];
10497
+ var _c = useState(new Date()), date = _c[0], setDate = _c[1];
10498
+ var _d = useState(null), userMenuAnchorEl = _d[0], setUserMenuAnchorEl = _d[1];
10095
10499
  var tick = function () {
10096
10500
  setDate(new Date());
10501
+ // Also update username in case it changed
10502
+ var currentName = getUserName();
10503
+ if (currentName !== userName) {
10504
+ setUserName(currentName);
10505
+ }
10097
10506
  };
10098
10507
  useEffect(function () {
10099
10508
  var timerID = setTimeout(function () {
@@ -10124,7 +10533,7 @@ var AreaSelector$1 = lazy(function () {
10124
10533
  default: mod.AreaSelector,
10125
10534
  }); });
10126
10535
  });
10127
- var useStyles$6 = makeStyles(function (theme) { return ({
10536
+ var useStyles$5 = makeStyles(function (theme) { return ({
10128
10537
  appBar: {
10129
10538
  // You can use dark or light variants of the primary color
10130
10539
  // backgroundColor: theme.palette.primary.dark, // Darker shade
@@ -10180,7 +10589,7 @@ var useStyles$6 = makeStyles(function (theme) { return ({
10180
10589
  }); });
10181
10590
  function Header$1(_a) {
10182
10591
  var _b = _a.showAreaSelector, showAreaSelector = _b === void 0 ? false : _b, _c = _a.showTrendingsIcon, showTrendingsIcon = _c === void 0 ? true : _c, _d = _a.navbarTitle, navbarTitle = _d === void 0 ? "MESF" : _d;
10183
- var classes = useStyles$6();
10592
+ var classes = useStyles$5();
10184
10593
  var _e = useState(""), error = _e[0], setError = _e[1];
10185
10594
  var CustomNavbar = useContext(NavbarContext);
10186
10595
  var searchAssets = useSearchAssets(setError).searchAssets;
@@ -10251,7 +10660,7 @@ var Home = function () { return (React__default.createElement("div", { style: {
10251
10660
  position: "absolute",
10252
10661
  } })); };
10253
10662
 
10254
- var useStyles$5 = makeStyles(function (theme) { return ({
10663
+ var useStyles$4 = makeStyles(function (theme) { return ({
10255
10664
  root: {
10256
10665
  width: "100%",
10257
10666
  maxWidth: 800,
@@ -10281,7 +10690,7 @@ var useStyles$5 = makeStyles(function (theme) { return ({
10281
10690
  },
10282
10691
  }); });
10283
10692
  var ChatComponent = function () {
10284
- var classes = useStyles$5();
10693
+ var classes = useStyles$4();
10285
10694
  var _a = useState("/ws"), hubUrl = _a[0]; _a[1];
10286
10695
  var _b = useState(null), connection = _b[0], setConnection = _b[1];
10287
10696
  var _c = useState({
@@ -10396,28 +10805,8 @@ var ChatComponent = function () {
10396
10805
  React__default.createElement(Button, { type: "submit", variant: "contained", color: "primary", disabled: !connectionState.isConnected || !user || !message, endIcon: React__default.createElement(Send, null) }, "Send"))));
10397
10806
  };
10398
10807
 
10399
- var useStyles$4 = makeStyles(function (theme) { return ({
10400
- root: {
10401
- height: "100vh",
10402
- padding: theme.spacing(4),
10403
- },
10404
- header: {
10405
- marginBottom: theme.spacing(4),
10406
- display: "flex",
10407
- justifyContent: "space-between",
10408
- alignItems: "center",
10409
- },
10410
- gridContainer: {
10411
- height: "75%",
10412
- width: "100%",
10413
- },
10414
- autocomplete: {
10415
- marginTop: theme.spacing(2),
10416
- marginBottom: theme.spacing(2),
10417
- },
10418
- }); });
10419
10808
  var QueryCacheInvalidations = function () {
10420
- var classes = useStyles$4();
10809
+ var gridRef = useRef(null);
10421
10810
  var _a = useState([]), rowData = _a[0], setRowData = _a[1];
10422
10811
  var _b = useState([]), actions = _b[0], setActions = _b[1];
10423
10812
  var _c = useState(""), modal = _c[0], setModal = _c[1];
@@ -10430,14 +10819,31 @@ var QueryCacheInvalidations = function () {
10430
10819
  targets: [],
10431
10820
  },
10432
10821
  }), control = _g.control, reset = _g.reset, handleSubmit = _g.handleSubmit; _g.setValue;
10822
+ var defaultColDef = useMemo(function () {
10823
+ return {
10824
+ sortable: true,
10825
+ wrapText: true,
10826
+ autoHeight: true,
10827
+ wrapHeaderText: true,
10828
+ cellStyle: {
10829
+ display: "flex",
10830
+ alignItems: "center",
10831
+ justifyContent: "center",
10832
+ },
10833
+ };
10834
+ }, []);
10433
10835
  var columnDefs = [
10434
- { field: "SourceId", headerName: "Source ID" },
10435
- { field: "Source", headerName: "Source" },
10436
- { field: "TargetsCSV", headerName: "Targets" },
10836
+ { field: "SourceId", headerName: "Source ID", flex: 1 },
10837
+ { field: "Source", headerName: "Source", flex: 2 },
10838
+ { field: "TargetNamesCSV", headerName: "Targets", flex: 3 },
10437
10839
  {
10438
10840
  headerName: "Actions",
10439
- cellRenderer: function (params) { return (React__default.createElement(Box, null,
10440
- React__default.createElement(Button, { variant: "contained", color: "primary", onClick: function () { return handleEdit(params.data); } }, "Edit"))); },
10841
+ flex: 1,
10842
+ cellRenderer: function (params) { return (React__default.createElement(Button, { variant: "contained", color: "primary", onClick: function () { return handleEdit(params.data); }, style: {
10843
+ width: "100%",
10844
+ height: "28px",
10845
+ minWidth: "60px",
10846
+ } }, "EDIT")); },
10441
10847
  },
10442
10848
  ];
10443
10849
  var fetchData = function () { return __awaiter(void 0, void 0, void 0, function () {
@@ -10530,31 +10936,37 @@ var QueryCacheInvalidations = function () {
10530
10936
  }
10531
10937
  });
10532
10938
  }); };
10533
- return (React__default.createElement(Box, { className: classes.root },
10534
- React__default.createElement(Box, { className: classes.header },
10535
- React__default.createElement(Typography$1, { variant: "h4", component: "h2" }, "Query Cache Invalidations"),
10536
- React__default.createElement(Button, { variant: "contained", color: "primary", onClick: handleAdd }, "Add New")),
10537
- React__default.createElement(Box, { className: "".concat(classes.gridContainer) },
10538
- React__default.createElement(AgGridReact, { gridOptions: {
10539
- theme: themeMaterial.withParams({
10540
- spacing: 2,
10541
- }),
10542
- }, rowData: rowData, columnDefs: columnDefs, defaultColDef: { flex: 1 } })),
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")),
10942
+ React__default.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center" },
10943
+ 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"))))),
10543
10955
  React__default.createElement(MesfModal, { title: modal === "add" ? "Add Cache Invalidation" : "Edit Cache Invalidation", open: ["add", "edit"].includes(modal), handleClose: function () { return setModal(""); } },
10544
10956
  React__default.createElement("form", { onSubmit: handleSubmit(onSubmit) },
10545
10957
  React__default.createElement(MesfModal.Content, { dividers: true },
10546
10958
  React__default.createElement(Grid, { container: true, spacing: 3 },
10547
10959
  React__default.createElement(Grid, { item: true, xs: 12 },
10548
- 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" }))); }, className: classes.autocomplete, disabled: modal === "edit" })); } })),
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" })); } })),
10549
10961
  React__default.createElement(Grid, { item: true, xs: 12 },
10550
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) {
10551
10963
  params.field.onChange(value);
10552
- }, renderInput: function (params) { return (React__default.createElement(TextField, __assign({}, params, { label: "Select Target Actions", variant: "outlined" }))); }, className: classes.autocomplete })); } })))),
10964
+ }, renderInput: function (params) { return (React__default.createElement(TextField, __assign({}, params, { label: "Select Target Actions", variant: "outlined" }))); }, style: { marginTop: 16, marginBottom: 16 } })); } })))),
10553
10965
  React__default.createElement(MesfModal.Actions, null,
10554
10966
  React__default.createElement(Grid, { container: true, spacing: 2, justifyContent: "flex-end" },
10555
- React__default.createElement(Grid, { item: true, md: 3, xs: 12, style: { margin: 0 } },
10967
+ React__default.createElement(Grid, { item: true, md: 3, xs: 12 },
10556
10968
  React__default.createElement(Button, { fullWidth: true, variant: "contained", color: "default", onClick: function () { return setModal(""); } }, "Cancel")),
10557
- React__default.createElement(Grid, { item: true, md: 3, xs: 12, style: { margin: 0 } },
10969
+ React__default.createElement(Grid, { item: true, md: 3, xs: 12 },
10558
10970
  React__default.createElement(Button, { fullWidth: true, startIcon: isLoading && React__default.createElement(CircularProgress, { size: "1rem" }), disabled: isLoading, variant: "contained", color: "primary", type: "submit" }, "Save"))))))));
10559
10971
  };
10560
10972
 
@@ -11635,7 +12047,7 @@ var ColorPicker = function (_a) {
11635
12047
  padding: 0,
11636
12048
  margin: "4px",
11637
12049
  } }),
11638
- React__default.createElement(Popover, { id: id, open: open, anchorEl: anchorEl, onClose: handleClose, anchorOrigin: {
12050
+ React__default.createElement(Popover$1, { id: id, open: open, anchorEl: anchorEl, onClose: handleClose, anchorOrigin: {
11639
12051
  vertical: "bottom",
11640
12052
  horizontal: "left",
11641
12053
  } },
@@ -14440,7 +14852,7 @@ var MESFMainRouter = function () {
14440
14852
  React__default.createElement(Routes, null,
14441
14853
  React__default.createElement(Route, { path: "/", element: React__default.createElement(Navigate, { replace: true, to: "/home" }) }),
14442
14854
  canShowSettings && (React__default.createElement(Route, { path: "/configuration/*", element: React__default.createElement(Configuration, null) })),
14443
- React__default.createElement(Route, { path: "/account", element: React__default.createElement(Navigate, { replace: true, to: "/" }) }),
14855
+ React__default.createElement(Route, { path: "/account", element: React__default.createElement(Account, null) }),
14444
14856
  React__default.createElement(Route, { path: "/trendings", element: React__default.createElement(index, null) }),
14445
14857
  React__default.createElement(Route, { path: "/home", element: React__default.createElement(Home, null) })),
14446
14858
  React__default.createElement(CustomRoutes, null)));
@@ -14800,5 +15212,5 @@ var areaSelector = /*#__PURE__*/Object.freeze({
14800
15212
  AreaSelector: AreaSelector
14801
15213
  });
14802
15214
 
14803
- 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, useMesfRealtime, useShiftNavigator, useShiftNavigatorManager, useStyles$E as useStyles, useToken, useUTLSettingsContext, useUserContext };
15215
+ 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 };
14804
15216
  //# sourceMappingURL=index.esm.js.map