@dexteel/mesf-core 7.4.0 → 7.5.1

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
@@ -5,9 +5,9 @@ import { styled, DialogTitle as DialogTitle$1, DialogContent as DialogContent$1,
5
5
  import { useMutation, useQueryClient, useQuery, QueryClient, QueryClientProvider } from '@tanstack/react-query';
6
6
  import * as React from 'react';
7
7
  import React__default, { createContext, useContext, useState, useRef, useEffect, useMemo, Component, useCallback, lazy, Suspense } from 'react';
8
+ import SearchIcon from '@mui/icons-material/Search';
9
+ import { AgGridReact } from 'ag-grid-react';
8
10
  import CloseIcon from '@mui/icons-material/Close';
9
- import Alert$4 from '@mui/lab/Alert';
10
- import IconButton from '@mui/material/IconButton';
11
11
  import GetAppIcon from '@mui/icons-material/GetApp';
12
12
  import { ArrowRight, ArrowBackRounded, ArrowForwardRounded, SkipNext, ChevronLeft, ChevronRight, Cloud, Timeline, Send, Menu as Menu$1, People, Storage, Group, Assignment, Chat, ViewList, Build, Settings as Settings$2, FastRewind, FastForward, ZoomIn, Restore, Lock, Create, Delete, Folder, InsertChart, Search, PlaylistAdd, DragIndicator, Save, AttachFile, CloudUpload, GetApp } from '@mui/icons-material';
13
13
  import { DatePicker as DatePicker$1 } from '@mui/x-date-pickers/DatePicker';
@@ -17,11 +17,6 @@ import { values, get, isNil, isEmpty, round, isNaN as isNaN$1, isNumber } from '
17
17
  import moment$8 from 'moment';
18
18
  import SkipNextIcon from '@mui/icons-material/SkipNext';
19
19
  import { ClearIcon, DateTimePicker, LocalizationProvider, DatePicker, CalendarIcon, ArrowDropDownIcon } from '@mui/x-date-pickers';
20
- import { Alert as Alert$2, AlertTitle, Autocomplete } from '@mui/lab';
21
- import AccountCircleIcon from '@mui/icons-material/AccountCircle';
22
- import { Helmet, HelmetProvider } from 'react-helmet-async';
23
- import SearchIcon from '@mui/icons-material/Search';
24
- import { AgGridReact } from 'ag-grid-react';
25
20
  import { useForm, Controller } from 'react-hook-form';
26
21
  import { createPart, themeMaterial, provideGlobalGridOptions } from 'ag-grid-community';
27
22
  import DeleteIcon from '@mui/icons-material/Delete';
@@ -29,6 +24,19 @@ import EditIcon from '@mui/icons-material/Edit';
29
24
  import PlaylistAddIcon from '@mui/icons-material/PlaylistAdd';
30
25
  import FormatListBulletedSharpIcon from '@mui/icons-material/FormatListBulletedSharp';
31
26
  import LockOutlinedIcon from '@mui/icons-material/LockOutlined';
27
+ import Alert$4 from '@mui/lab/Alert';
28
+ import IconButton from '@mui/material/IconButton';
29
+ import { Alert as Alert$2, AlertTitle, Autocomplete } from '@mui/lab';
30
+ import AccountCircleIcon from '@mui/icons-material/AccountCircle';
31
+ import { Helmet, HelmetProvider } from 'react-helmet-async';
32
+ import { isAncestor, Tree, DndProvider as DndProvider$1 } from '@minoru/react-dnd-treeview';
33
+ import AccountTreeIcon from '@mui/icons-material/AccountTree';
34
+ import Settings$1 from '@mui/icons-material/Settings';
35
+ import DescriptionIcon from '@mui/icons-material/Description';
36
+ import FolderIcon from '@mui/icons-material/Folder';
37
+ import ImageIcon from '@mui/icons-material/Image';
38
+ import ListAltIcon from '@mui/icons-material/ListAlt';
39
+ import FindInPageIcon from '@mui/icons-material/FindInPage';
32
40
  import PersonOutlineIcon from '@mui/icons-material/PersonOutline';
33
41
  import LockIcon from '@mui/icons-material/Lock';
34
42
  import PersonIcon from '@mui/icons-material/Person';
@@ -44,13 +52,10 @@ import { HTML5Backend } from 'react-dnd-html5-backend';
44
52
  import { useComplexState } from 'use-complex-state';
45
53
  import { createSlice } from '@reduxjs/toolkit';
46
54
  import MenuIcon from '@mui/icons-material/Menu';
47
- import Settings$1 from '@mui/icons-material/Settings';
48
55
  import ShowChartIcon from '@mui/icons-material/ShowChart';
49
56
  import axios from 'axios';
50
57
  import { LocalizationProvider as LocalizationProvider$1 } from '@mui/x-date-pickers/LocalizationProvider';
51
58
  import { DataGrid, GridOverlay } from '@mui/x-data-grid';
52
- import { isAncestor, Tree, DndProvider as DndProvider$1 } from '@minoru/react-dnd-treeview';
53
- import FolderIcon from '@mui/icons-material/Folder';
54
59
  import InsertChartIcon from '@mui/icons-material/InsertChart';
55
60
  import ReactECharts from 'echarts-for-react';
56
61
  import { _adapters, Chart, CategoryScale, LinearScale, PointElement, LineElement, Title, Tooltip as Tooltip$1, Legend, TimeScale } from 'chart.js';
@@ -66,7 +71,6 @@ import MarkdownIt from 'markdown-it';
66
71
  import MdEditor, { PluginComponent } from 'react-markdown-editor-lite';
67
72
  import 'react-markdown-editor-lite/lib/index.css';
68
73
  import { useDropzone } from 'react-dropzone';
69
- import AccountTreeIcon from '@mui/icons-material/AccountTree';
70
74
  import PersonPinCircleIcon from '@mui/icons-material/PersonPinCircle';
71
75
  import Dialog from '@mui/material/Dialog';
72
76
  import Typography from '@mui/material/Typography';
@@ -76,10 +80,6 @@ import { TreeItem, SimpleTreeView } from '@mui/x-tree-view';
76
80
  import '@react-spring/web';
77
81
  import { format, fromZonedTime, formatInTimeZone } from 'date-fns-tz';
78
82
  import { findIana } from 'windows-iana';
79
- import DescriptionIcon from '@mui/icons-material/Description';
80
- import ImageIcon from '@mui/icons-material/Image';
81
- import ListAltIcon from '@mui/icons-material/ListAlt';
82
- import FindInPageIcon from '@mui/icons-material/FindInPage';
83
83
 
84
84
  /******************************************************************************
85
85
  Copyright (c) Microsoft Corporation.
@@ -958,24 +958,16 @@ function findNameById(node, id) {
958
958
  }
959
959
  return null;
960
960
  }
961
- function getNodePath(node, nodeId, parentPath, isRoot) {
961
+ function getNodePath(node, nodeId, parentPath) {
962
962
  if (parentPath === void 0) { parentPath = ""; }
963
- if (isRoot === void 0) { isRoot = true; }
963
+ var currentPath = parentPath ? "".concat(parentPath, "/").concat(node.name) : node.name;
964
964
  if (node.id === nodeId) {
965
- if (isRoot) {
966
- return "";
967
- }
968
- return parentPath ? "".concat(parentPath, "/").concat(node.name) : node.name;
965
+ return currentPath;
969
966
  }
970
967
  if (node.children && node.children.length > 0) {
971
968
  for (var _i = 0, _a = node.children; _i < _a.length; _i++) {
972
969
  var child = _a[_i];
973
- var currentPath = isRoot
974
- ? ""
975
- : parentPath
976
- ? "".concat(parentPath, "/").concat(node.name)
977
- : node.name;
978
- var foundPath = getNodePath(child, nodeId, currentPath, false);
970
+ var foundPath = getNodePath(child, nodeId, currentPath);
979
971
  if (foundPath !== null) {
980
972
  return foundPath;
981
973
  }
@@ -1038,7 +1030,7 @@ var TreePickerControlV2 = function (props) {
1038
1030
  left: 0,
1039
1031
  right: 0,
1040
1032
  cursor: "pointer",
1041
- }, onClick: handleClickListItem }))) : (React__default.createElement("div", null)),
1033
+ }, title: fullPath, onClick: handleClickListItem }))) : (React__default.createElement("div", null)),
1042
1034
  React__default.createElement(Grid2, { size: { xs: 12, md: 12 } },
1043
1035
  React__default.createElement(ModalTreeFilterControl, __assign({ classes: {
1044
1036
  paper: {
@@ -2833,7 +2825,7 @@ var CreateProfile = function (_a) {
2833
2825
  React.createElement(Button, { fullWidth: true, variant: "contained", color: "inherit", onClick: function () { return onHide(false); } }, "Cancel")),
2834
2826
  React.createElement(Grid2, { size: { md: 3, xs: 12 }, style: { margin: 0 } },
2835
2827
  React.createElement(Button, { fullWidth: true, startIcon: isSubmitLoading && React.createElement(CircularProgress, { size: "1rem" }), disabled: isSubmitLoading, variant: "contained", color: "primary", type: "submit" }, "Save")))))))),
2836
- React.createElement(Snackbar, { open: openSnackbar, autoHideDuration: 2500, onClose: handleClose },
2828
+ React.createElement(Snackbar, { open: openSnackbar, autoHideDuration: 2500, onClose: handleClose, anchorOrigin: { vertical: "bottom", horizontal: "center" } },
2837
2829
  React.createElement(Alert, { severity: "success", onClose: handleClose }, message)),
2838
2830
  React.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); }, title: "Error Creating Profile" })));
2839
2831
  };
@@ -2912,7 +2904,7 @@ var DeleteProfile = function (_a) {
2912
2904
  React__default.createElement(DialogActions$1, { style: { padding: "16px 24px" } },
2913
2905
  React__default.createElement(Button, { onClick: function () { return setDeleteAlert(false); }, autoFocus: true, color: "inherit" }, "CANCEL"),
2914
2906
  React__default.createElement(Button, { startIcon: isSubmitLoading && React__default.createElement(CircularProgress, { size: "1rem" }), autoFocus: true, color: "secondary", onClick: function () { return onDelete(profile === null || profile === void 0 ? void 0 : profile.ProfileId); } }, "Delete"))))),
2915
- React__default.createElement(Snackbar, { open: open, autoHideDuration: 2500, onClose: handleClose },
2907
+ React__default.createElement(Snackbar, { open: open, autoHideDuration: 2500, onClose: handleClose, anchorOrigin: { vertical: "bottom", horizontal: "center" } },
2916
2908
  React__default.createElement(Alert, { severity: "success", onClose: handleClose }, "The profile was deleted successfully")),
2917
2909
  React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); }, title: "Error Deleting Profile" })));
2918
2910
  };
@@ -3160,9 +3152,9 @@ var ActionsOfProfile = function (_a) {
3160
3152
  React.createElement(Button, { fullWidth: true, variant: "contained", color: "inherit", onClick: function () { return onHide(false); } }, "Cancel")),
3161
3153
  React.createElement(Grid2, { size: { md: 3, xs: 12 }, style: { margin: 0 } },
3162
3154
  React.createElement(Button, { fullWidth: true, startIcon: isSubmitLoading && React.createElement(CircularProgress, { size: "1rem" }), disabled: isSubmitLoading, variant: "contained", color: "primary", type: "submit" }, "Save"))))))),
3163
- React.createElement(Snackbar, { open: showActionsSnackbar, autoHideDuration: 2500, onClose: handleClose },
3155
+ React.createElement(Snackbar, { open: showActionsSnackbar, autoHideDuration: 2500, onClose: handleClose, anchorOrigin: { vertical: "bottom", horizontal: "center" } },
3164
3156
  React.createElement(Alert, { severity: "info", onClose: handleClose }, "The actions of the profile were edited successfully")),
3165
- React.createElement(Snackbar, { open: showNameSnackbar, autoHideDuration: 2500, onClose: handleClose },
3157
+ React.createElement(Snackbar, { open: showNameSnackbar, autoHideDuration: 2500, onClose: handleClose, anchorOrigin: { vertical: "bottom", horizontal: "center" } },
3166
3158
  React.createElement(Alert, { severity: "success", onClose: handleClose }, "The name of the profile were edited successfully")),
3167
3159
  React.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); }, title: "Error Editing Profile" }),
3168
3160
  React.createElement(ErrorModal, { error: nameError, onHide: function () { return setNameError(""); }, title: "Error Editing Profile" })));
@@ -3449,31 +3441,39 @@ var getShiftParameters = function () { return __awaiter(void 0, void 0, void 0,
3449
3441
  }
3450
3442
  });
3451
3443
  }); };
3452
- var upsertShiftParameters = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
3453
- var apiService, parameters, resp;
3454
- var PatternStart = _b.PatternStart, ShiftCodes = _b.ShiftCodes, Crews = _b.Crews, CrewRotation = _b.CrewRotation, Comments = _b.Comments;
3455
- return __generator(this, function (_c) {
3456
- switch (_c.label) {
3457
- case 0:
3458
- apiService = new MESApiService();
3459
- parameters = [
3460
- { name: "AssetId", value: null },
3461
- { name: "PatternStart", value: PatternStart },
3462
- { name: "ShiftCodes", value: ShiftCodes },
3463
- { name: "Crews", value: Crews },
3464
- { name: "CrewRotation", value: CrewRotation },
3465
- { name: "Comments", value: Comments },
3466
- ];
3467
- return [4 /*yield*/, apiService.callV2("[MES].[UpsertShiftParameters]", parameters)];
3468
- case 1:
3469
- resp = _c.sent();
3470
- if (!resp.ok) {
3471
- throw new Error(resp.message || "Error when upsert shift");
3472
- }
3473
- return [2 /*return*/];
3474
- }
3444
+ var upsertShiftParameters = function (_a) {
3445
+ var args_1 = [];
3446
+ for (var _i = 1; _i < arguments.length; _i++) {
3447
+ args_1[_i - 1] = arguments[_i];
3448
+ }
3449
+ return __awaiter(void 0, __spreadArray([_a], args_1, true), void 0, function (_b, isUpdate) {
3450
+ var apiService, parameters, resp;
3451
+ var PatternStart = _b.PatternStart, ShiftCodes = _b.ShiftCodes, Crews = _b.Crews, CrewRotation = _b.CrewRotation, Comments = _b.Comments;
3452
+ if (isUpdate === void 0) { isUpdate = false; }
3453
+ return __generator(this, function (_c) {
3454
+ switch (_c.label) {
3455
+ case 0:
3456
+ apiService = new MESApiService();
3457
+ parameters = [
3458
+ { name: "AssetId", value: null },
3459
+ { name: "PatternStart", value: PatternStart },
3460
+ { name: "ShiftCodes", value: ShiftCodes },
3461
+ { name: "Crews", value: Crews },
3462
+ { name: "CrewRotation", value: CrewRotation },
3463
+ { name: "Comments", value: Comments },
3464
+ { name: "IsUpdate", value: isUpdate },
3465
+ ];
3466
+ return [4 /*yield*/, apiService.callV2("[MES].[UpsertShiftParameters]", parameters)];
3467
+ case 1:
3468
+ resp = _c.sent();
3469
+ if (!resp.ok) {
3470
+ throw new Error(resp.message || "Error when upsert shift");
3471
+ }
3472
+ return [2 /*return*/];
3473
+ }
3474
+ });
3475
3475
  });
3476
- }); };
3476
+ };
3477
3477
  var deleteShiftParameters = function (PatternStart) { return __awaiter(void 0, void 0, void 0, function () {
3478
3478
  var apiService, parameters, resp;
3479
3479
  return __generator(this, function (_a) {
@@ -3721,7 +3721,7 @@ var CreateShift = function (_a) {
3721
3721
  React.createElement(Grid2, { size: { md: 3, xs: 12 } },
3722
3722
  React.createElement(Button, { fullWidth: true, startIcon: isSubmitLoading && React.createElement(CircularProgress, { size: "1rem" }), disabled: isSubmitLoading, variant: "contained", color: "primary", type: "submit" }, "Save")))))),
3723
3723
  React.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); }, title: "Error Creating Shift" }),
3724
- React.createElement(Snackbar, { open: open, autoHideDuration: 2500, onClose: handleClose },
3724
+ React.createElement(Snackbar, { open: open, autoHideDuration: 2500, onClose: handleClose, anchorOrigin: { vertical: "bottom", horizontal: "center" } },
3725
3725
  React.createElement(Alert, { severity: "success", onClose: handleClose }, "The shift was created successfully"))));
3726
3726
  };
3727
3727
 
@@ -3877,7 +3877,7 @@ var DeleteShift = function (_a) {
3877
3877
  React.createElement(Button, { onClick: function () { return setDeleteAlert(false); }, autoFocus: true, color: "inherit" }, "CANCEL"),
3878
3878
  React.createElement(Button, { startIcon: isSubmitLoading && React.createElement(CircularProgress, { size: "1rem" }), autoFocus: true, color: "secondary", onClick: function () { return onDelete(patternStart); } }, "Delete"))))),
3879
3879
  React.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } }),
3880
- React.createElement(Snackbar, { open: open, autoHideDuration: 2500, onClose: handleClose },
3880
+ React.createElement(Snackbar, { open: open, autoHideDuration: 2500, onClose: handleClose, anchorOrigin: { vertical: "bottom", horizontal: "center" } },
3881
3881
  React.createElement(Alert, { severity: "warning", onClose: handleClose }, "The shift was deleted successfully"))));
3882
3882
  };
3883
3883
 
@@ -3894,7 +3894,10 @@ var EditShift = function (_a) {
3894
3894
  return ((crewRotation === null || crewRotation === void 0 ? void 0 : crewRotation.length) / maxCrewRotationLength) * 100;
3895
3895
  };
3896
3896
  var createShift = useMutation({
3897
- mutationFn: upsertShiftParameters,
3897
+ mutationFn: function (_a) {
3898
+ var shiftData = _a.shiftData, isUpdate = _a.isUpdate;
3899
+ return upsertShiftParameters(shiftData, isUpdate);
3900
+ },
3898
3901
  onSuccess: function () {
3899
3902
  setOpen(true);
3900
3903
  onHide(true);
@@ -3911,7 +3914,7 @@ var EditShift = function (_a) {
3911
3914
  switch (_a.label) {
3912
3915
  case 0:
3913
3916
  setIsSubmitLoading(true);
3914
- return [4 /*yield*/, createShift.mutate(data)];
3917
+ return [4 /*yield*/, createShift.mutate({ shiftData: data, isUpdate: true })];
3915
3918
  case 1:
3916
3919
  _a.sent();
3917
3920
  return [2 /*return*/];
@@ -4106,7 +4109,7 @@ var EditShift = function (_a) {
4106
4109
  React.createElement(Grid2, { size: { md: 3, xs: 12 }, style: { margin: 0 } },
4107
4110
  React.createElement(Button, { fullWidth: true, startIcon: isSubmitLoading && React.createElement(CircularProgress, { size: "1rem" }), disabled: isSubmitLoading, variant: "contained", color: "primary", type: "submit" }, "Save")))))),
4108
4111
  React.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } }),
4109
- React.createElement(Snackbar, { open: open, autoHideDuration: 2500, onClose: handleClose },
4112
+ React.createElement(Snackbar, { open: open, autoHideDuration: 2500, onClose: handleClose, anchorOrigin: { vertical: "bottom", horizontal: "center" } },
4110
4113
  React.createElement(Alert, { severity: "success", onClose: handleClose }, "The shift was created successfully"))));
4111
4114
  };
4112
4115
 
@@ -5756,7 +5759,7 @@ var TreeAsset = function () {
5756
5759
  }
5757
5760
  return (React__default.createElement(CustomDragPreview$1, { monitorProps: monitorProps }));
5758
5761
  } }))))))),
5759
- React__default.createElement(Snackbar, { open: updatedSuccessfullyMessage, autoHideDuration: 2500, onClose: handleClose },
5762
+ React__default.createElement(Snackbar, { open: updatedSuccessfullyMessage, autoHideDuration: 2500, onClose: handleClose, anchorOrigin: { vertical: "bottom", horizontal: "center" } },
5760
5763
  React__default.createElement(Alert$2, { severity: "success", onClose: handleClose }, "Asset updated successfully")),
5761
5764
  React__default.createElement(CreateNewAssetDialog, { assetNodeSelectedInTree: assetNodeSelectedInTree, show: showDialog === "new", onHide: function (shouldUpdate) { return __awaiter(void 0, void 0, void 0, function () {
5762
5765
  return __generator(this, function (_a) {
@@ -7740,79 +7743,34 @@ var INITIAL_VALUES$1 = {
7740
7743
  Permissions: [],
7741
7744
  };
7742
7745
 
7743
- var AssetInitialState = {
7744
- areasList: [],
7745
- allAssets: [],
7746
- plantAssetId: 1,
7747
- };
7748
- var AssetReducer = createSlice({
7749
- name: "__",
7750
- initialState: AssetInitialState,
7751
- reducers: {
7752
- setAreasList: function (state, _a) {
7753
- var payload = _a.payload;
7754
- state.areasList = payload;
7755
- },
7756
- setAllAssets: function (state, _a) {
7757
- var payload = _a.payload;
7758
- state.allAssets = payload;
7759
- },
7760
- setPlantAssetId: function (state, _a) {
7761
- var payload = _a.payload;
7762
- state.plantAssetId = payload;
7763
- },
7764
- },
7765
- });
7766
-
7767
- var AssetContext = createContext({
7768
- state: AssetReducer.getInitialState(),
7769
- actions: AssetReducer.actions,
7770
- });
7771
- var useAssetContext = function () { return useContext(AssetContext); };
7772
- var AssetProvider = function (_a) {
7773
- var children = _a.children, _b = _a.plantAssetId, plantAssetId = _b === void 0 ? 1 : _b;
7774
- var _c = useComplexState({
7775
- initialState: {
7776
- areasList: [],
7777
- allAssets: [],
7778
- plantAssetId: plantAssetId,
7779
- },
7780
- reducers: AssetReducer.caseReducers,
7781
- }), state = _c[0], actions = _c[1];
7782
- return (React__default.createElement(AssetContext.Provider, { value: { state: state, actions: actions } }, children));
7783
- };
7784
-
7785
7746
  var AssetSelector = function (_a) {
7786
7747
  var value = _a.value, onChange = _a.onChange, _b = _a.disabled, disabled = _b === void 0 ? false : _b;
7787
- var _c = useAssetContext().state, areasList = _c.areasList, plantAssetId = _c.plantAssetId;
7788
- var hasAssets = areasList && areasList.length > 0;
7789
- var displayValue = React__default.useMemo(function () {
7790
- if (!hasAssets) {
7791
- return "";
7792
- }
7793
- if (isNil(value)) {
7794
- return plantAssetId;
7795
- }
7796
- return value;
7797
- }, [value, hasAssets, plantAssetId]);
7748
+ var _c = searchAssets(), assets = _c.data, isLoading = _c.isLoading;
7749
+ var areasList = React__default.useMemo(function () { var _a; return (_a = assets === null || assets === void 0 ? void 0 : assets.filter(function (a) { return a.CanBeDefaultAsset; })) !== null && _a !== void 0 ? _a : []; }, [assets]);
7750
+ var hasAssets = areasList.length > 0;
7798
7751
  var handleChange = function (event) {
7799
7752
  var selectedValue = event.target.value;
7800
- if (selectedValue === "") {
7753
+ if (selectedValue === "" || selectedValue === 0) {
7801
7754
  onChange(null);
7802
7755
  }
7803
7756
  else {
7804
7757
  onChange(Number(selectedValue));
7805
7758
  }
7806
7759
  };
7807
- React__default.useEffect(function () {
7808
- if (isNil(value)) {
7809
- onChange(plantAssetId);
7810
- }
7811
- }, [value, onChange, plantAssetId]);
7760
+ if (isLoading) {
7761
+ return (React__default.createElement(FormControl, { variant: "outlined", fullWidth: true, size: "small", disabled: true },
7762
+ React__default.createElement(InputLabel, null, "Default Asset"),
7763
+ React__default.createElement(Select, { value: "", label: "Default Asset" },
7764
+ React__default.createElement(MenuItem, { value: "" },
7765
+ React__default.createElement(CircularProgress, { size: 20 })))));
7766
+ }
7812
7767
  return (React__default.createElement(FormControl, { variant: "outlined", fullWidth: true, size: "small", disabled: disabled },
7813
7768
  React__default.createElement(InputLabel, null, "Default Asset"),
7814
- React__default.createElement(Select, { value: displayValue, onChange: handleChange, label: "Default Asset" }, !hasAssets ? (React__default.createElement(MenuItem, { value: "" },
7815
- 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)); })))));
7769
+ React__default.createElement(Select, { value: isNil(value) ? "" : value, onChange: handleChange, label: "Default Asset" },
7770
+ React__default.createElement(MenuItem, { value: "" },
7771
+ React__default.createElement("em", null, "None")),
7772
+ hasAssets &&
7773
+ 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)); }))));
7816
7774
  };
7817
7775
 
7818
7776
  var searchAuthTypes = function () {
@@ -7936,12 +7894,36 @@ var CreateUser = function (_a) {
7936
7894
  setOpen(false);
7937
7895
  };
7938
7896
  var UserName = watch("UserName");
7897
+ var profilesIds = watch("ProfilesId");
7898
+ var setProfiles = useMutation({
7899
+ mutationFn: setProfilesToUser,
7900
+ onError: function (error) {
7901
+ setError(error.message);
7902
+ },
7903
+ });
7939
7904
  var createUser = useMutation({
7940
7905
  mutationFn: upsertUser,
7941
- onSuccess: function () {
7942
- setOpen(true);
7943
- onHide(true);
7944
- },
7906
+ onSuccess: function (userCreatedId) { return __awaiter(void 0, void 0, void 0, function () {
7907
+ return __generator(this, function (_a) {
7908
+ switch (_a.label) {
7909
+ case 0:
7910
+ _a.trys.push([0, 2, , 3]);
7911
+ return [4 /*yield*/, setProfiles.mutateAsync({
7912
+ UserId: userCreatedId,
7913
+ profileIds: profilesIds,
7914
+ })];
7915
+ case 1:
7916
+ _a.sent();
7917
+ setOpen(true);
7918
+ onHide(true);
7919
+ return [3 /*break*/, 3];
7920
+ case 2:
7921
+ _a.sent();
7922
+ return [3 /*break*/, 3];
7923
+ case 3: return [2 /*return*/];
7924
+ }
7925
+ });
7926
+ }); },
7945
7927
  onError: function (error) {
7946
7928
  setError(error.message);
7947
7929
  },
@@ -8017,7 +7999,7 @@ var CreateUser = function (_a) {
8017
7999
  React.createElement(Button, { fullWidth: true, startIcon: isSubmitLoading && React.createElement(CircularProgress, { size: "1rem" }), disabled: isSubmitLoading, variant: "contained", color: "primary", type: "submit" }, "Save"))))),
8018
8000
  React.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); }, title: "Error Creating User" }),
8019
8001
  React.createElement(ErrorModal, { error: profileError, onHide: function () { return setprofileError(""); }, title: "Error Choosing Profile" })),
8020
- React.createElement(Snackbar, { open: open, autoHideDuration: 2500, onClose: handleClose },
8002
+ React.createElement(Snackbar, { open: open, autoHideDuration: 2500, onClose: handleClose, anchorOrigin: { vertical: "bottom", horizontal: "center" } },
8021
8003
  React.createElement(Alert, { severity: "success", onClose: handleClose }, "The user was created successfully"))));
8022
8004
  };
8023
8005
 
@@ -8135,7 +8117,7 @@ var DeleteUser = function (_a) {
8135
8117
  React__default.createElement(Button, { fullWidth: true, variant: "contained", color: "inherit", onClick: function () { return onHide(false); } }, "CANCEL")),
8136
8118
  React__default.createElement(Grid2, { size: { md: 3, xs: 12 }, style: { margin: 0 } },
8137
8119
  React__default.createElement(Button, { fullWidth: true, variant: "contained", color: "secondary", onClick: function () { return setDeleteAlert(true); } }, "DELETE")))))),
8138
- React__default.createElement(Snackbar, { open: open, autoHideDuration: 2500, onClose: handleClose },
8120
+ React__default.createElement(Snackbar, { open: open, autoHideDuration: 2500, onClose: handleClose, anchorOrigin: { vertical: "bottom", horizontal: "center" } },
8139
8121
  React__default.createElement(Alert, { severity: "warning", onClose: handleClose }, "The user was deleted successfully")),
8140
8122
  React__default.createElement(MesfModal, { open: deleteAlert, title: "WARNING", handleClose: function () { return handleClose(); }, id: "responsive-dialog-title" },
8141
8123
  React__default.createElement(MesfModal.Content, null, "Be careful, once deleted you will not be able to recover this user, are you sure you want to delete it?"),
@@ -8254,15 +8236,15 @@ var UserProvider = function (_a) {
8254
8236
  return get(userData, "id", null);
8255
8237
  };
8256
8238
  var getUserPermissions = function () { return __awaiter(void 0, void 0, void 0, function () {
8257
- var userId, resp, permissionsArray, profilesArray, error_1;
8239
+ var userId, resp, permissionsArray, profilesArray, userDataResp, userData, error_1;
8258
8240
  return __generator(this, function (_a) {
8259
8241
  switch (_a.label) {
8260
8242
  case 0:
8261
8243
  userId = getUserId();
8262
- if (!userId) return [3 /*break*/, 4];
8244
+ if (!userId) return [3 /*break*/, 5];
8263
8245
  _a.label = 1;
8264
8246
  case 1:
8265
- _a.trys.push([1, 3, , 4]);
8247
+ _a.trys.push([1, 4, , 5]);
8266
8248
  return [4 /*yield*/, getUserPermissionsFromAPI({
8267
8249
  UserId: userId,
8268
8250
  })];
@@ -8278,12 +8260,22 @@ var UserProvider = function (_a) {
8278
8260
  actions.setProfiles(profilesArray);
8279
8261
  setProfilesLoaded(true);
8280
8262
  }
8281
- return [3 /*break*/, 4];
8263
+ return [4 /*yield*/, getDataUser({ userId: userId })];
8282
8264
  case 3:
8265
+ userDataResp = _a.sent();
8266
+ if (userDataResp && userDataResp.length > 0) {
8267
+ userData = userDataResp[0];
8268
+ if (typeof userData.DefaultAssetId === "number") {
8269
+ actions.setDefaultAreaId(userData.DefaultAssetId);
8270
+ }
8271
+ actions.setUserId(userId);
8272
+ }
8273
+ return [3 /*break*/, 5];
8274
+ case 4:
8283
8275
  error_1 = _a.sent();
8284
8276
  console.error("Failed to load permissions:", error_1);
8285
- return [3 /*break*/, 4];
8286
- case 4: return [2 /*return*/];
8277
+ return [3 /*break*/, 5];
8278
+ case 5: return [2 /*return*/];
8287
8279
  }
8288
8280
  });
8289
8281
  }); };
@@ -8380,9 +8372,8 @@ var EditUser = function (_a) {
8380
8372
  userId: userId,
8381
8373
  }), rows = _j.data, isLoading = _j.isLoading, isError = _j.isError, e = _j.error, isSuccess = _j.isSuccess;
8382
8374
  var getUserId = useToken().getUserId;
8383
- var areasList = useAssetContext().state.areasList;
8384
- var _k = useUserContext().actions, setDefaultAreaId = _k.setDefaultAreaId, setDefaultAreaName = _k.setDefaultAreaName;
8385
- var _l = useForm({ defaultValues: INITIAL_VALUES$1 }), register = _l.register, control = _l.control, setValue = _l.setValue, handleSubmit = _l.handleSubmit, watch = _l.watch, errors = _l.formState.errors;
8375
+ var setDefaultAreaId = useUserContext().actions.setDefaultAreaId;
8376
+ var _k = useForm({ defaultValues: INITIAL_VALUES$1 }), register = _k.register, control = _k.control, setValue = _k.setValue, handleSubmit = _k.handleSubmit, watch = _k.watch, errors = _k.formState.errors;
8386
8377
  var profilesIds = watch("ProfilesId");
8387
8378
  var defaultAssetId = watch("DefaultAssetId");
8388
8379
  var handleClose = function (event, reason) {
@@ -8400,26 +8391,29 @@ var EditUser = function (_a) {
8400
8391
  var editUser = useMutation({
8401
8392
  mutationFn: upsertUser,
8402
8393
  onSuccess: function (userUpdatedId) { return __awaiter(void 0, void 0, void 0, function () {
8403
- var currentLoggedUserId, selectedArea;
8394
+ var currentLoggedUserId;
8404
8395
  return __generator(this, function (_a) {
8405
8396
  switch (_a.label) {
8406
- case 0: return [4 /*yield*/, setProfiles.mutate({
8407
- UserId: userUpdatedId,
8408
- profileIds: profilesIds,
8409
- })];
8397
+ case 0:
8398
+ _a.trys.push([0, 2, , 3]);
8399
+ return [4 /*yield*/, setProfiles.mutateAsync({
8400
+ UserId: userUpdatedId,
8401
+ profileIds: profilesIds,
8402
+ })];
8410
8403
  case 1:
8411
8404
  _a.sent();
8412
8405
  currentLoggedUserId = getUserId();
8413
- if (currentLoggedUserId === userUpdatedId && defaultAssetId) {
8414
- selectedArea = areasList.find(function (area) { return (area === null || area === void 0 ? void 0 : area.AssetId) === defaultAssetId; });
8415
- if (selectedArea) {
8416
- setDefaultAreaId(defaultAssetId);
8417
- setDefaultAreaName(selectedArea.AssetName);
8418
- }
8406
+ if (currentLoggedUserId === userUpdatedId) {
8407
+ // Update context - the area-selector effect will update the name
8408
+ setDefaultAreaId(defaultAssetId);
8419
8409
  }
8420
8410
  onHide(true);
8421
8411
  setOpen(true);
8422
- return [2 /*return*/];
8412
+ return [3 /*break*/, 3];
8413
+ case 2:
8414
+ _a.sent();
8415
+ return [3 /*break*/, 3];
8416
+ case 3: return [2 /*return*/];
8423
8417
  }
8424
8418
  });
8425
8419
  }); },
@@ -8516,7 +8510,7 @@ var EditUser = function (_a) {
8516
8510
  React.createElement(Button, { fullWidth: true, variant: "contained", color: "inherit", onClick: function () { return onHide(false); } }, "Cancel")),
8517
8511
  React.createElement(Grid2, { size: { md: 3, xs: 12 }, style: { margin: 0 } },
8518
8512
  React.createElement(Button, { fullWidth: true, startIcon: isSubmitLoading ? React.createElement(CircularProgress, { size: "1rem" }) : React.createElement(React.Fragment, null), disabled: isSubmitLoading, variant: "contained", color: "primary", type: "submit" }, "Save")))))),
8519
- React.createElement(Snackbar, { open: open, autoHideDuration: 2500, onClose: handleClose },
8513
+ React.createElement(Snackbar, { open: open, autoHideDuration: 2500, onClose: handleClose, anchorOrigin: { vertical: "bottom", horizontal: "center" } },
8520
8514
  React.createElement(Alert, { severity: "info", onClose: handleClose }, "The user was edited successfully")),
8521
8515
  React.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); }, title: "Error Editing User" }),
8522
8516
  React.createElement(ErrorModal, { error: profileError, onHide: function () { return setprofileError(""); }, title: "Error Choosing Profile" })));
@@ -8853,12 +8847,8 @@ var searchUser = function (_a) {
8853
8847
  var userId = _a.userId;
8854
8848
  return useQuery({
8855
8849
  queryKey: ["user", userId],
8856
- queryFn: function () {
8857
- if (userId) {
8858
- return getDataUser({ userId: userId });
8859
- }
8860
- return [];
8861
- },
8850
+ queryFn: function () { return getDataUser({ userId: userId }); },
8851
+ enabled: !!userId,
8862
8852
  });
8863
8853
  };
8864
8854
  var Users = function () {
@@ -9306,7 +9296,7 @@ var LoginWithEmailAndPassword = function () {
9306
9296
  boxShadow: function (theme) { return theme.shadows[4]; },
9307
9297
  },
9308
9298
  }, disabled: password.length === 0 || username.length === 0 }, "Login"),
9309
- React__default.createElement(Snackbar, { open: showError, autoHideDuration: 6000, onClose: handleCloseError, anchorOrigin: { vertical: "top", horizontal: "center" } },
9299
+ React__default.createElement(Snackbar, { open: showError, autoHideDuration: 6000, onClose: handleCloseError, anchorOrigin: { vertical: "bottom", horizontal: "center" } },
9310
9300
  React__default.createElement(Alert$2, { severity: "error", variant: "filled", onClose: handleCloseError, action: React__default.createElement(IconButton$1, { size: "small", "aria-label": "close", color: "inherit", onClick: handleCloseError },
9311
9301
  React__default.createElement(CloseIcon, { fontSize: "small" })) },
9312
9302
  React__default.createElement(Typography$1, { variant: "subtitle2", style: { fontWeight: "bold" } }, "Bad credentials"),
@@ -9632,7 +9622,7 @@ function Login(_a) {
9632
9622
  React__default.createElement(LoginWithWindowsAuthentication, null),
9633
9623
  useAzureAD && (React__default.createElement(LoginWithAzureAD, { config: authConfig.AzureConfig })),
9634
9624
  guestIsEnabled && React__default.createElement(LoginAsGuest, null))))))))),
9635
- React__default.createElement(Snackbar, { open: open, autoHideDuration: 6000, onClose: handleClose, anchorOrigin: { vertical: "top", horizontal: "center" } },
9625
+ React__default.createElement(Snackbar, { open: open, autoHideDuration: 6000, onClose: handleClose, anchorOrigin: { vertical: "bottom", horizontal: "center" } },
9636
9626
  React__default.createElement(Alert$2, { onClose: handleClose, severity: "info", variant: "filled" }, message))));
9637
9627
  }
9638
9628
 
@@ -9736,6 +9726,48 @@ var ButtonWithLoading = function (_a) {
9736
9726
  children));
9737
9727
  };
9738
9728
 
9729
+ var AssetInitialState = {
9730
+ areasList: [],
9731
+ allAssets: [],
9732
+ plantAssetId: 1,
9733
+ };
9734
+ var AssetReducer = createSlice({
9735
+ name: "__",
9736
+ initialState: AssetInitialState,
9737
+ reducers: {
9738
+ setAreasList: function (state, _a) {
9739
+ var payload = _a.payload;
9740
+ state.areasList = payload;
9741
+ },
9742
+ setAllAssets: function (state, _a) {
9743
+ var payload = _a.payload;
9744
+ state.allAssets = payload;
9745
+ },
9746
+ setPlantAssetId: function (state, _a) {
9747
+ var payload = _a.payload;
9748
+ state.plantAssetId = payload;
9749
+ },
9750
+ },
9751
+ });
9752
+
9753
+ var AssetContext = createContext({
9754
+ state: AssetReducer.getInitialState(),
9755
+ actions: AssetReducer.actions,
9756
+ });
9757
+ var useAssetContext = function () { return useContext(AssetContext); };
9758
+ var AssetProvider = function (_a) {
9759
+ var children = _a.children, _b = _a.plantAssetId, plantAssetId = _b === void 0 ? 1 : _b;
9760
+ var _c = useComplexState({
9761
+ initialState: {
9762
+ areasList: [],
9763
+ allAssets: [],
9764
+ plantAssetId: plantAssetId,
9765
+ },
9766
+ reducers: AssetReducer.caseReducers,
9767
+ }), state = _c[0], actions = _c[1];
9768
+ return (React__default.createElement(AssetContext.Provider, { value: { state: state, actions: actions } }, children));
9769
+ };
9770
+
9739
9771
  var LogbookSettingsInitialState = {
9740
9772
  entry: {
9741
9773
  withAssetFilter: undefined,
@@ -10022,10 +10054,6 @@ var CreateSetting = function (_a) {
10022
10054
  React.createElement(Grid2, { size: { xs: 12, md: 6 } },
10023
10055
  React.createElement(Controller, { name: "Value", control: control, rules: {
10024
10056
  required: "Value is required",
10025
- pattern: {
10026
- value: /^[A-Za-z0-9]+$/,
10027
- message: "Only letters and numbers are allowed",
10028
- },
10029
10057
  }, render: function (_a) {
10030
10058
  var field = _a.field, error = _a.fieldState.error;
10031
10059
  return (React.createElement(TextField, __assign({}, field, { label: "Value", error: !!error, helperText: error ? error.message : null, autoComplete: "off" })));
@@ -10045,7 +10073,7 @@ var CreateSetting = function (_a) {
10045
10073
  React.createElement(Grid2, { size: { md: 3, xs: 12 } },
10046
10074
  React.createElement(Button, { fullWidth: true, startIcon: isSubmitLoading && React.createElement(CircularProgress, { size: "1rem" }), disabled: isSubmitLoading, variant: "contained", color: "primary", type: "submit" }, "Save")))))))),
10047
10075
  React.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); }, title: "Error Creating Setting" }),
10048
- React.createElement(Snackbar, { open: open, autoHideDuration: 2500, onClose: handleClose },
10076
+ React.createElement(Snackbar, { open: open, autoHideDuration: 2500, onClose: handleClose, anchorOrigin: { vertical: "bottom", horizontal: "center" } },
10049
10077
  React.createElement(Alert, { severity: "success", onClose: handleClose }, "The setting was created successfully"))));
10050
10078
  };
10051
10079
 
@@ -10131,7 +10159,7 @@ var DeleteSetting = function (_a) {
10131
10159
  React.createElement(Grid2, { size: { md: 3, xs: 12 } },
10132
10160
  React.createElement(Button, { fullWidth: true, startIcon: isSubmitLoading && React.createElement(CircularProgress, { size: "1rem" }), disabled: isSubmitLoading, variant: "contained", color: "secondary", type: "submit" }, "Delete")))))))),
10133
10161
  React.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); }, title: "Error deleting Setting" }),
10134
- React.createElement(Snackbar, { open: open, autoHideDuration: 2500, onClose: handleClose },
10162
+ React.createElement(Snackbar, { open: open, autoHideDuration: 2500, onClose: handleClose, anchorOrigin: { vertical: "bottom", horizontal: "center" } },
10135
10163
  React.createElement(Alert, { severity: "success", onClose: handleClose }, "The setting was deleted successfully"))));
10136
10164
  };
10137
10165
 
@@ -10204,10 +10232,6 @@ var EditSetting = function (_a) {
10204
10232
  React.createElement(Grid2, { size: { xs: 12, md: 6 } },
10205
10233
  React.createElement(Controller, { name: "Value", control: control, rules: {
10206
10234
  required: "Value is required",
10207
- pattern: {
10208
- value: /^[A-Za-z0-9]+$/,
10209
- message: "Only letters and numbers are allowed",
10210
- },
10211
10235
  }, render: function (_a) {
10212
10236
  var field = _a.field, error = _a.fieldState.error;
10213
10237
  return (React.createElement(TextField, __assign({}, field, { label: "Value", error: !!error, helperText: error ? error.message : null, autoComplete: "off" })));
@@ -10227,7 +10251,7 @@ var EditSetting = function (_a) {
10227
10251
  React.createElement(Grid2, { size: { md: 3, xs: 12 } },
10228
10252
  React.createElement(Button, { fullWidth: true, startIcon: isSubmitLoading && React.createElement(CircularProgress, { size: "1rem" }), disabled: isSubmitLoading, variant: "contained", color: "primary", type: "submit" }, "Save")))))),
10229
10253
  React.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); }, title: "Error updating Setting" }),
10230
- React.createElement(Snackbar, { open: open, autoHideDuration: 2500, onClose: handleClose },
10254
+ React.createElement(Snackbar, { open: open, autoHideDuration: 2500, onClose: handleClose, anchorOrigin: { vertical: "bottom", horizontal: "center" } },
10231
10255
  React.createElement(Alert, { severity: "success", onClose: handleClose }, "The setting was edited successfully"))));
10232
10256
  };
10233
10257
 
@@ -11914,7 +11938,7 @@ var SaveUpdateDeleteViewModalV2 = function (_a) {
11914
11938
  ? "Save"
11915
11939
  : "Save")))))),
11916
11940
  React__default.createElement(ConfirmationDialogRaw, { title: "Confirmation", message: "Are you sure you want to delete permanently the view: ".concat((_d = (view || viewSelected)) === null || _d === void 0 ? void 0 : _d.ViewName, "?"), open: openDeleteDialog, onClose: deleteViewAction }),
11917
- React__default.createElement(Snackbar, { open: snackbarOpen, autoHideDuration: 2500, onClose: handleSnackbarClose },
11941
+ React__default.createElement(Snackbar, { open: snackbarOpen, autoHideDuration: 2500, onClose: handleSnackbarClose, anchorOrigin: { vertical: "bottom", horizontal: "center" } },
11918
11942
  React__default.createElement(Alert$4, { elevation: 6, variant: "filled", severity: "success", onClose: handleSnackbarClose }, snackbarMessage)),
11919
11943
  React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
11920
11944
  };
@@ -14536,11 +14560,17 @@ var TrendingChartV2 = function (_a) {
14536
14560
  var useSeparateGrids = !opts.combinedView &&
14537
14561
  processedData.analogTags.length > 0 &&
14538
14562
  processedData.digitalTags.length > 0;
14539
- // Generate a key that changes when grid structure changes
14563
+ // Generate a key that changes when grid structure changes or series count changes
14540
14564
  // This forces React to remount the entire chart component, avoiding merge conflicts
14565
+ // Including series count ensures chart remounts when tags are added/removed
14541
14566
  var chartKey = useMemo(function () {
14542
- return "chart-".concat(useSeparateGrids ? "separate" : "combined");
14543
- }, [useSeparateGrids]);
14567
+ var seriesCount = processedData.analogSeries.length + processedData.digitalSeries.length;
14568
+ return "chart-".concat(useSeparateGrids ? "separate" : "combined", "-").concat(seriesCount);
14569
+ }, [
14570
+ useSeparateGrids,
14571
+ processedData.analogSeries.length,
14572
+ processedData.digitalSeries.length,
14573
+ ]);
14544
14574
  // Calculate cursor data (Y1, Y2, etc.)
14545
14575
  var cursorData = useCursorData(cursor1Time, cursor2Time, series, viewTags);
14546
14576
  // Update context with cursor data (use ref to prevent infinite loop)
@@ -17369,7 +17399,7 @@ var TableComponent = function (_a) {
17369
17399
  setLoadViewOpen(false);
17370
17400
  } })),
17371
17401
  React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } }),
17372
- React__default.createElement(Snackbar, { open: !!snackbarMessage, autoHideDuration: 800, onClose: handleCloseSnackbar },
17402
+ React__default.createElement(Snackbar, { open: !!snackbarMessage, autoHideDuration: 800, onClose: handleCloseSnackbar, anchorOrigin: { vertical: "bottom", horizontal: "center" } },
17373
17403
  React__default.createElement(Alert$3, { onClose: handleCloseSnackbar, severity: "success" }, snackbarMessage))));
17374
17404
  };
17375
17405
 
@@ -19137,7 +19167,7 @@ var NotificationSnackBar = function (_a) {
19137
19167
  useEffect(function () {
19138
19168
  setOpen(!!message);
19139
19169
  }, [message]);
19140
- return (React__default.createElement(Snackbar, { open: open, autoHideDuration: 2500, onClose: handleClose },
19170
+ return (React__default.createElement(Snackbar, { open: open, autoHideDuration: 2500, onClose: handleClose, anchorOrigin: { vertical: "bottom", horizontal: "center" } },
19141
19171
  React__default.createElement(Alert$4, { elevation: 6, variant: "filled", severity: severity, onClose: handleClose }, message)));
19142
19172
  };
19143
19173
 
@@ -20048,6 +20078,7 @@ var Filters$1 = function (_a) {
20048
20078
  var moment$3 = getMomentTz();
20049
20079
  var Logbook$1 = function () {
20050
20080
  var entry = useLogbookSettings().entry;
20081
+ var defaultAreaId = useUserContext().state.defaultAreaId;
20051
20082
  var withAssetFilter = entry.withAssetFilter;
20052
20083
  var filterAssets = entry.filterAssets;
20053
20084
  var canEditAsset = entry.canEditAsset;
@@ -20069,7 +20100,8 @@ var Logbook$1 = function () {
20069
20100
  var _b = useState(""), error = _b[0], setError = _b[1];
20070
20101
  var _c = useState(""), show = _c[0], setShow = _c[1];
20071
20102
  var _d = useState(""), quickFilter = _d[0], setQuickFilter = _d[1];
20072
- var _e = useState(presetAssetId !== null && presetAssetId !== void 0 ? presetAssetId : null), assetId = _e[0], setAssetId = _e[1];
20103
+ var _e = useState(presetAssetId !== null && presetAssetId !== void 0 ? presetAssetId : (typeof defaultAreaId === "number" ? defaultAreaId : null)), assetId = _e[0], setAssetId = _e[1];
20104
+ var initializedAssetRef = useRef(false);
20073
20105
  var _f = useState(null), selectedRowData = _f[0], setSelectedRowData = _f[1];
20074
20106
  var _g = useState(false), showRemoveDialog = _g[0], setShowRemoveDialog = _g[1];
20075
20107
  var _h = useContextMenuMESF(), registerConfig = _h.registerConfig, showContextMenu = _h.showContextMenu;
@@ -20210,6 +20242,15 @@ var Logbook$1 = function () {
20210
20242
  setError(e.message);
20211
20243
  }
20212
20244
  }, [isError, e]);
20245
+ // Sync assetId with defaultAreaId when it becomes available (only once on initial load)
20246
+ useEffect(function () {
20247
+ if (!initializedAssetRef.current &&
20248
+ !presetAssetId &&
20249
+ typeof defaultAreaId === "number") {
20250
+ setAssetId(defaultAreaId);
20251
+ initializedAssetRef.current = true;
20252
+ }
20253
+ }, [defaultAreaId, presetAssetId]);
20213
20254
  useEffect(function () {
20214
20255
  if (shiftInfo) {
20215
20256
  setShow("");
@@ -20670,6 +20711,7 @@ var Filters = function (_a) {
20670
20711
  var moment$1 = getMomentTz();
20671
20712
  var Logbook = function () {
20672
20713
  var report = useLogbookSettings().report;
20714
+ var defaultAreaId = useUserContext().state.defaultAreaId;
20673
20715
  var withAssetFilter = report.withAssetFilter;
20674
20716
  var filterAssets = report.filterAssets;
20675
20717
  var showAttachments = report.showAttachments;
@@ -20681,7 +20723,8 @@ var Logbook = function () {
20681
20723
  var gridApiRef = useRef(null);
20682
20724
  var _b = useState(""), error = _b[0], setError = _b[1];
20683
20725
  var _c = useState(""), show = _c[0], setShow = _c[1];
20684
- var _d = useState(null), assetId = _d[0], setAssetId = _d[1];
20726
+ var _d = useState(typeof defaultAreaId === "number" ? defaultAreaId : null), assetId = _d[0], setAssetId = _d[1];
20727
+ var initializedAssetRef = useRef(false);
20685
20728
  var _e = useState(function () {
20686
20729
  var startShiftIdParam = searchParams.get("startShiftId");
20687
20730
  var endShiftIdParam = searchParams.get("endShiftId");
@@ -20808,6 +20851,13 @@ var Logbook = function () {
20808
20851
  setError(e.message);
20809
20852
  }
20810
20853
  }, [isError, e]);
20854
+ // Sync assetId with defaultAreaId when it becomes available (only once on initial load)
20855
+ useEffect(function () {
20856
+ if (!initializedAssetRef.current && typeof defaultAreaId === "number") {
20857
+ setAssetId(defaultAreaId);
20858
+ initializedAssetRef.current = true;
20859
+ }
20860
+ }, [defaultAreaId]);
20811
20861
  useEffect(function () {
20812
20862
  var _a;
20813
20863
  var startShiftIdParam = searchParams.get("startShiftId");
@@ -20988,35 +21038,15 @@ var logbookNavbar = [
20988
21038
  },
20989
21039
  ];
20990
21040
 
20991
- var useDefaultAreaId = function (setError) {
20992
- var _a = useUserContext(), userId = _a.state.userId, setDefaultAreaId = _a.actions.setDefaultAreaId;
20993
- var _b = searchUser({ userId: userId }), rows = _b.data, isError = _b.isError, e = _b.error;
20994
- useEffect(function () {
20995
- if (e && isError) {
20996
- setError(e.message);
20997
- }
20998
- }, [e, isError]);
20999
- return function () {
21000
- if (userId && rows) {
21001
- var userDefaultAreaId = get(rows, "[0]", null);
21002
- if (userDefaultAreaId) {
21003
- setDefaultAreaId(userDefaultAreaId);
21004
- }
21005
- }
21006
- };
21007
- };
21008
-
21009
21041
  var AreaSelector = function () {
21010
21042
  var _a = useState(false), open = _a[0], setOpen = _a[1];
21011
21043
  var _b = useState(""), error = _b[0], setError = _b[1];
21012
- var getUserId = useToken().getUserId;
21013
- var _c = useUserContext(), _d = _c.state, userId = _d.userId, defaultAreaId = _d.defaultAreaId, defaultAreaName = _d.defaultAreaName, _e = _c.actions, setDefaultAreaId = _e.setDefaultAreaId, setDefaultAreaName = _e.setDefaultAreaName, setUserId = _e.setUserId;
21014
- var _f = searchAssets(), rows = _f.data; _f.isLoading; var isError = _f.isError, e = _f.error;
21044
+ var _c = useUserContext(), _d = _c.state, userId = _d.userId, defaultAreaId = _d.defaultAreaId, defaultAreaName = _d.defaultAreaName, _e = _c.actions, setDefaultAreaId = _e.setDefaultAreaId, setDefaultAreaName = _e.setDefaultAreaName;
21045
+ var _f = searchAssets(), rows = _f.data, isError = _f.isError, e = _f.error;
21015
21046
  var areasList = rows === null || rows === void 0 ? void 0 : rows.filter(function (a) { return a.CanBeDefaultAsset; });
21016
21047
  var fullWidth = React__default.useState(true)[0];
21017
21048
  var _g = useState(defaultAreaId), defaultAreaIdToChange = _g[0], setDefaultAreaIdToChange = _g[1];
21018
21049
  var _h = useState(defaultAreaName), defaultAreaNameToChange = _h[0], setDefaultAreaNameToChange = _h[1];
21019
- var defaultAreaIdFromAPI = useDefaultAreaId(setError);
21020
21050
  var onClose = function (value) { return setOpen(value); };
21021
21051
  var changeAreaActive = function () {
21022
21052
  setOpen(true);
@@ -21050,29 +21080,35 @@ var AreaSelector = function () {
21050
21080
  return [2 /*return*/];
21051
21081
  });
21052
21082
  }); };
21053
- useEffect(function () {
21054
- setUserId(getUserId());
21055
- }, []);
21056
- useEffect(function () {
21057
- defaultAreaIdFromAPI();
21058
- }, [userId]);
21059
21083
  useEffect(function () {
21060
21084
  if (e && isError) {
21061
21085
  setError(e.message);
21062
21086
  }
21063
21087
  }, [e, isError]);
21064
21088
  useEffect(function () {
21065
- if (defaultAreaId && areasList) {
21066
- var areaSelected = areasList.find(function (area) { return (area === null || area === void 0 ? void 0 : area.AssetId) === defaultAreaId; });
21067
- setDefaultAreaName(areaSelected === null || areaSelected === void 0 ? void 0 : areaSelected.AssetName);
21068
- setDefaultAreaNameToChange(areaSelected === null || areaSelected === void 0 ? void 0 : areaSelected.AssetName);
21089
+ if (!areasList) {
21090
+ return;
21069
21091
  }
21070
- else {
21071
- setDefaultAreaId(0);
21072
- setDefaultAreaName("Plant");
21073
- setDefaultAreaNameToChange("Plant");
21092
+ // Only update when defaultAreaId is explicitly set (not null/undefined)
21093
+ // This prevents resetting to "Plant" while data is still loading
21094
+ if (defaultAreaId !== null && defaultAreaId !== undefined) {
21095
+ var areaSelected = areasList.find(function (area) { return (area === null || area === void 0 ? void 0 : area.AssetId) === defaultAreaId; });
21096
+ if (areaSelected) {
21097
+ setDefaultAreaName(areaSelected.AssetName);
21098
+ }
21099
+ else {
21100
+ // Asset not found in list, default to Plant
21101
+ setDefaultAreaName("Plant");
21102
+ }
21074
21103
  }
21075
21104
  }, [defaultAreaId, areasList]);
21105
+ // Sync local state when modal opens
21106
+ useEffect(function () {
21107
+ if (open) {
21108
+ setDefaultAreaIdToChange(defaultAreaId);
21109
+ setDefaultAreaNameToChange(defaultAreaName || "Plant");
21110
+ }
21111
+ }, [open]);
21076
21112
  return (React__default.createElement(React__default.Fragment, null,
21077
21113
  React__default.createElement(Box, { mx: 2 },
21078
21114
  React__default.createElement(IconButton$1, { color: "inherit", onClick: changeAreaActive, size: "small" },
@@ -21102,7 +21138,7 @@ var AreaSelector = function () {
21102
21138
  },
21103
21139
  } },
21104
21140
  React__default.createElement(DialogTitle$1, { id: "confirmation-dialog-title" }, "AREA"),
21105
- React__default.createElement(DialogContent$1, { dividers: true },
21141
+ React__default.createElement(DialogContent$1, { dividers: true, sx: { overflowY: "hidden" } },
21106
21142
  React__default.createElement(Typography$1, { fontSize: 15, variant: "subtitle1", style: { marginBottom: 0 } }, "Current Area"),
21107
21143
  React__default.createElement(Grid2, { container: true },
21108
21144
  React__default.createElement(Grid2, { size: { xs: 12 }, style: { marginTop: 5 } },
@@ -21113,7 +21149,7 @@ var AreaSelector = function () {
21113
21149
  height: "45vh",
21114
21150
  border: "1px solid rgba(0, 0, 0, 0.26)",
21115
21151
  borderRadius: "2px",
21116
- overflowY: "scroll",
21152
+ overflowY: "auto",
21117
21153
  } },
21118
21154
  React__default.createElement(List, { dense: true, style: { padding: 0 } }, areasList === null || areasList === void 0 ? void 0 : areasList.map(function (area) { return (React__default.createElement(ListItemButton, { key: "Area-".concat(area === null || area === void 0 ? void 0 : area.AssetId), onClick: function () {
21119
21155
  return handleChangeAreaId(area === null || area === void 0 ? void 0 : area.AssetId, area === null || area === void 0 ? void 0 : area.AssetName);