@dexteel/mesf-core 3.11.8 → 3.12.0-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/dist/configuration/index.d.ts +1 -0
  3. package/dist/configuration/pages/asset/ConfigurationAssetPage.d.ts +2 -0
  4. package/dist/configuration/pages/asset/components/AssetConfiguration/AssetView.d.ts +2 -0
  5. package/dist/configuration/pages/asset/components/AssetConfiguration/ConfigurationAssetComponent.d.ts +2 -0
  6. package/dist/configuration/pages/asset/components/AssetConfiguration/CustomDragPreview.d.ts +8 -0
  7. package/dist/configuration/pages/asset/components/AssetConfiguration/CustomNode.d.ts +15 -0
  8. package/dist/configuration/pages/asset/components/AssetConfiguration/MultipleDragPreview.d.ts +8 -0
  9. package/dist/configuration/pages/asset/components/AssetConfiguration/TypeIcon.d.ts +7 -0
  10. package/dist/configuration/pages/asset/components/dialogs/create-new-asset-dialog.d.ts +7 -0
  11. package/dist/configuration/pages/asset/components/dialogs/edit-asset-dialog.d.ts +7 -0
  12. package/dist/configuration/pages/asset/components/dialogs/remove-asset-dialog.d.ts +7 -0
  13. package/dist/configuration/pages/asset/components/dialogs/viewer-asset-dialog.d.ts +7 -0
  14. package/dist/configuration/pages/asset/components/hooks/useAssetActions.d.ts +25 -0
  15. package/dist/configuration/pages/asset/components/hooks/useAssetCodes.d.ts +3 -0
  16. package/dist/configuration/pages/asset/context/ConfigurationAssetContext.d.ts +261 -0
  17. package/dist/configuration/pages/asset/hooks/TransformAssetModelData.d.ts +3 -0
  18. package/dist/configuration/pages/asset/hooks/useSearchAssets.d.ts +3 -0
  19. package/dist/configuration/pages/asset/index.d.ts +4 -0
  20. package/dist/configuration/pages/asset/models/AssetAPI.d.ts +8 -0
  21. package/dist/configuration/pages/asset/models/AssetCode.d.ts +7 -0
  22. package/dist/configuration/pages/asset/models/AssetParameters.d.ts +10 -0
  23. package/dist/configuration/pages/asset/models/FileProperties.d.ts +4 -0
  24. package/dist/configuration/pages/asset/models/InitialValueDataAsset.d.ts +2 -0
  25. package/dist/configuration/pages/asset/reducers/ConfigurationAssetReducer.d.ts +255 -0
  26. package/dist/configuration/pages/asset/repositories/ConfigurationAssetRepository.d.ts +36 -0
  27. package/dist/configuration/pages/asset/theme.d.ts +1 -0
  28. package/dist/index.esm.js +1494 -146
  29. package/dist/models/Asset.d.ts +2 -0
  30. package/package.json +6 -2
  31. package/.deepsource.toml +0 -4
package/dist/index.esm.js CHANGED
@@ -1,7 +1,7 @@
1
- import { Typography, TextField, FormHelperText, CircularProgress as CircularProgress$1, Grid as Grid$1, Snackbar as Snackbar$1, makeStyles as makeStyles$1, createStyles as createStyles$1, Dialog as Dialog$1, DialogTitle as DialogTitle$2, DialogContent as DialogContent$2, List, ListItem, ListItemText, DialogActions as DialogActions$2 } from '@material-ui/core';
1
+ import { Typography, TextField, FormHelperText, CircularProgress as CircularProgress$1, makeStyles as makeStyles$1, Badge, Dialog as Dialog$1, DialogContent as DialogContent$2, FormControlLabel as FormControlLabel$1, Checkbox as Checkbox$1, DialogActions as DialogActions$2, DialogTitle as DialogTitle$2, DialogContentText as DialogContentText$1, Button as Button$1, Grid as Grid$1, Paper as Paper$1, ThemeProvider, CssBaseline, Snackbar as Snackbar$1, MenuItem as MenuItem$1, createStyles as createStyles$1, List, ListItem, ListItemText } from '@material-ui/core';
2
2
  import { get as get$1, isEmpty } from 'lodash-es';
3
3
  import * as React from 'react';
4
- import React__default, { useState, useRef, useEffect, Component, createContext, useContext, useMemo, useCallback, lazy, Suspense } from 'react';
4
+ import React__default, { useState, useRef, useEffect, Component, createContext, useContext, useCallback, useMemo, lazy, Suspense } from 'react';
5
5
  import { Alert as Alert$1, Modal as Modal$2, Navbar, Container, Nav, NavDropdown } from 'react-bootstrap';
6
6
  import DialogTitle$1 from '@material-ui/core/DialogTitle';
7
7
  import DialogContent$1 from '@material-ui/core/DialogContent';
@@ -17,6 +17,8 @@ import MenuItem from '@material-ui/core/MenuItem';
17
17
  import MenuList from '@material-ui/core/MenuList';
18
18
  import Paper from '@material-ui/core/Paper';
19
19
  import Grid from '@material-ui/core/Grid';
20
+ import { DndProvider } from 'react-dnd';
21
+ import { HTML5Backend } from 'react-dnd-html5-backend';
20
22
  import PersonPinCircleIcon from '@material-ui/icons/PersonPinCircle';
21
23
  import axios from 'axios';
22
24
  import PropTypes from 'prop-types';
@@ -40,9 +42,9 @@ import { get, useForm, Controller } from 'react-hook-form';
40
42
  import DialogContentText from '@material-ui/core/DialogContentText';
41
43
  import Snackbar from '@material-ui/core/Snackbar';
42
44
  import CircularProgress from '@material-ui/core/CircularProgress';
43
- import MuiAlert from '@material-ui/lab/Alert';
45
+ import Alert$2 from '@material-ui/lab/Alert';
44
46
  import TextField$1 from '@material-ui/core/TextField';
45
- import { Alert as Alert$2, AlertTitle } from '@material-ui/lab';
47
+ import { Alert as Alert$3, AlertTitle } from '@material-ui/lab';
46
48
  import { MuiPickersUtilsProvider, KeyboardDatePicker, KeyboardTimePicker } from '@material-ui/pickers';
47
49
  import MomentUtils from '@date-io/moment';
48
50
  import InputLabel from '@material-ui/core/InputLabel';
@@ -54,6 +56,11 @@ import FormHelperText$1 from '@material-ui/core/FormHelperText';
54
56
  import stc from 'string-to-color';
55
57
  import DeleteIcon from '@material-ui/icons/Delete';
56
58
  import EditIcon from '@material-ui/icons/Edit';
59
+ import { isAncestor, Tree } from '@minoru/react-dnd-treeview';
60
+ import { ArrowRight } from '@material-ui/icons';
61
+ import ImageIcon from '@material-ui/icons/Image';
62
+ import ListAltIcon from '@material-ui/icons/ListAlt';
63
+ import DescriptionIcon from '@material-ui/icons/Description';
57
64
  import Input from '@material-ui/core/Input';
58
65
  import Chip from '@material-ui/core/Chip';
59
66
  import LockOutlinedIcon from '@material-ui/icons/LockOutlined';
@@ -1129,10 +1136,10 @@ var useJobsTableData = function (_a) {
1129
1136
  };
1130
1137
 
1131
1138
  var Alert = function (props) {
1132
- return React__default.createElement(MuiAlert, __assign({ elevation: 6, variant: "filled" }, props));
1139
+ return React__default.createElement(Alert$2, __assign({ elevation: 6, variant: "filled" }, props));
1133
1140
  };
1134
1141
 
1135
- var useStyles$i = makeStyles(function (theme) {
1142
+ var useStyles$q = makeStyles(function (theme) {
1136
1143
  return createStyles({
1137
1144
  root: {
1138
1145
  '& .MuiDataGrid-row': {
@@ -1162,7 +1169,7 @@ var useStyles$i = makeStyles(function (theme) {
1162
1169
  });
1163
1170
  });
1164
1171
  var TableJobs = function () {
1165
- var classes = useStyles$i();
1172
+ var classes = useStyles$q();
1166
1173
  var _a = useState(true), loading = _a[0], setLoading = _a[1];
1167
1174
  var actions = useJobsContext().actions;
1168
1175
  var _b = useState(false), messageLoading = _b[0], setMessageLoading = _b[1];
@@ -1448,7 +1455,7 @@ var useGetLogsFromAPI = function (_a) {
1448
1455
  return update;
1449
1456
  };
1450
1457
 
1451
- var useStyles$h = makeStyles(function (theme) {
1458
+ var useStyles$p = makeStyles(function (theme) {
1452
1459
  return createStyles({
1453
1460
  title: {
1454
1461
  fontSize: 15
@@ -1467,7 +1474,7 @@ var formatTime = function (nowTime) {
1467
1474
  };
1468
1475
  var ModalLogSelected = function (_a) {
1469
1476
  var show = _a.show, onHide = _a.onHide, selectedLog = _a.selectedLog;
1470
- var classes = useStyles$h();
1477
+ var classes = useStyles$p();
1471
1478
  return (React__default.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center" },
1472
1479
  React__default.createElement(Modal$2, __assign({}, { show: show }, { onHide: function () { return onHide(false); }, size: "lg", "aria-labelledby": "contained-modal-title-vcenter", centered: true }),
1473
1480
  React__default.createElement(Modal$2.Header, { closeButton: true, style: { padding: "10px 30px" } },
@@ -1552,7 +1559,7 @@ var SearchFilter = function (_a) {
1552
1559
  React__default.createElement(FormHelperText, { style: { marginBottom: 10, marginTop: -15 } }, "Search by Source, Message or User")));
1553
1560
  };
1554
1561
 
1555
- var useStyles$g = makeStyles(function (theme) {
1562
+ var useStyles$o = makeStyles(function (theme) {
1556
1563
  return createStyles({
1557
1564
  root: {
1558
1565
  '& .MuiDataGrid-row': {
@@ -1583,7 +1590,7 @@ var useStyles$g = makeStyles(function (theme) {
1583
1590
  });
1584
1591
  var TableLogs = function () {
1585
1592
  var _a = useLogsContext(), _b = _a.state.searchData, Start = _b.Start, End = _b.End, Search = _b.Search, LogTypeCode = _b.LogTypeCode, _c = _a.actions, setStartFilter = _c.setStartFilter, setEndFilter = _c.setEndFilter, setSearchFilter = _c.setSearchFilter, setLogTypeCodeFilter = _c.setLogTypeCodeFilter, resetFilters = _c.resetFilters;
1586
- var classes = useStyles$g();
1593
+ var classes = useStyles$o();
1587
1594
  var _d = useState(false), showLogModal = _d[0], setShowLogModal = _d[1];
1588
1595
  var _e = useState(true), loading = _e[0], setLoading = _e[1];
1589
1596
  var _f = useState(undefined), selectedLog = _f[0], setSelectedLog = _f[1];
@@ -1638,7 +1645,7 @@ var TableLogs = function () {
1638
1645
  React.createElement(Grid, { item: true, md: 6, xs: 12 },
1639
1646
  React.createElement(Button, { variant: "contained", color: "primary", type: "submit", fullWidth: true }, "Search"))),
1640
1647
  !!errorsApi.length &&
1641
- React.createElement(Alert$2, { severity: "error", style: { marginTop: 15 } },
1648
+ React.createElement(Alert$3, { severity: "error", style: { marginTop: 15 } },
1642
1649
  React.createElement(AlertTitle, null, "Error"),
1643
1650
  React.createElement("ul", null, errorsApi.map(function (error) { return React.createElement("li", { key: "err-".concat(error) }, error); })))))))),
1644
1651
  React.createElement(Grid, { item: true, md: 12 },
@@ -1955,7 +1962,7 @@ var useHandleAsignedPermission = function (_a) {
1955
1962
  };
1956
1963
  };
1957
1964
 
1958
- var useStyles$f = makeStyles(function (theme) {
1965
+ var useStyles$n = makeStyles(function (theme) {
1959
1966
  return createStyles({
1960
1967
  formControl: {
1961
1968
  margin: "0 12px",
@@ -1977,7 +1984,7 @@ var useStyles$f = makeStyles(function (theme) {
1977
1984
  var PermissionsPicker = function (_a) {
1978
1985
  var isLoading = _a.isLoading, setIsLoading = _a.setIsLoading, profileForDelete = _a.profileForDelete, value = _a.value, onChange = _a.onChange, profilesToProfiles = _a.profilesToProfiles;
1979
1986
  var profiles = useProfilesContext().state.profiles;
1980
- var classes = useStyles$f();
1987
+ var classes = useStyles$n();
1981
1988
  var _b = useState([]), permissions = _b[0], setPermissions = _b[1];
1982
1989
  var _c = useState(value), asignedPermissions = _c[0], setAsignedPermissions = _c[1];
1983
1990
  var getColorByPermissionId = useGetColorByPermissionId({ profilesToProfiles: profilesToProfiles });
@@ -2053,7 +2060,7 @@ var useGetProfilesEffect = function (_a) {
2053
2060
  }, []);
2054
2061
  };
2055
2062
 
2056
- var useStyles$e = makeStyles(function (theme) {
2063
+ var useStyles$m = makeStyles(function (theme) {
2057
2064
  return createStyles({
2058
2065
  formControl: {
2059
2066
  margin: "0 12px",
@@ -2074,7 +2081,7 @@ var useStyles$e = makeStyles(function (theme) {
2074
2081
  });
2075
2082
  var ProfilesPicker$1 = function (_a) {
2076
2083
  var isLoading = _a.isLoading, setIsLoading = _a.setIsLoading, profileForDelete = _a.profileForDelete, profileIdForEdit = _a.profileIdForEdit, value = _a.value, onChange = _a.onChange;
2077
- var classes = useStyles$e();
2084
+ var classes = useStyles$m();
2078
2085
  var _b = useProfilesContext(), profiles = _b.state.profiles, setProfiles = _b.actions.setProfiles;
2079
2086
  var _c = useState([]), asignedProfiles = _c[0], setAsignedProfiles = _c[1];
2080
2087
  var handleAsignedProfile = function (event) {
@@ -2128,7 +2135,7 @@ var ProfilesPicker$1 = function (_a) {
2128
2135
  })))))));
2129
2136
  };
2130
2137
 
2131
- var useStyles$d = makeStyles(function (theme) {
2138
+ var useStyles$l = makeStyles(function (theme) {
2132
2139
  return createStyles({
2133
2140
  title: {
2134
2141
  fontSize: 15
@@ -2160,7 +2167,7 @@ var useStyles$d = makeStyles(function (theme) {
2160
2167
  var EditProfile = function (_a) {
2161
2168
  var _b;
2162
2169
  var profileForEdit = _a.profileForEdit, show = _a.show, onHide = _a.onHide;
2163
- var classes = useStyles$d();
2170
+ var classes = useStyles$l();
2164
2171
  var _c = useState(false), open = _c[0], setOpen = _c[1];
2165
2172
  var _d = useState(true), isLoading = _d[0], setIsLoading = _d[1];
2166
2173
  var _e = useState(false), isSubmitLoading = _e[0], setIsSubmitLoading = _e[1];
@@ -2272,7 +2279,7 @@ var EditProfile = function (_a) {
2272
2279
  React.createElement(Alert, { severity: "info", onClose: handleClose }, "The profile was edited successfully"))));
2273
2280
  };
2274
2281
 
2275
- var useStyles$c = makeStyles(function (theme) {
2282
+ var useStyles$k = makeStyles(function (theme) {
2276
2283
  return createStyles({
2277
2284
  title: {
2278
2285
  fontSize: 15
@@ -2299,7 +2306,7 @@ var CreateProfile = function (_a) {
2299
2306
  var _c = useState(false), open = _c[0], setOpen = _c[1];
2300
2307
  var _d = useState(false), isSubmitLoading = _d[0], setIsSubmitLoading = _d[1];
2301
2308
  var _e = useState(true), isLoading = _e[0], setIsLoading = _e[1];
2302
- var classes = useStyles$c();
2309
+ var classes = useStyles$k();
2303
2310
  var _f = useForm({ defaultValues: INITIAL_VALUES$2 }), register = _f.register, control = _f.control, handleSubmit = _f.handleSubmit, reset = _f.reset, errors = _f.formState.errors, watch = _f.watch;
2304
2311
  var profilesToProfiles = watch('HasProfilesId');
2305
2312
  var onSubmit = function (data) { return __awaiter(void 0, void 0, void 0, function () {
@@ -2382,7 +2389,7 @@ var CreateProfile = function (_a) {
2382
2389
  React.createElement(Alert, { severity: "success", onClose: handleClose }, "The permission was asigned successfully"))));
2383
2390
  };
2384
2391
 
2385
- var useStyles$b = makeStyles(function (theme) {
2392
+ var useStyles$j = makeStyles(function (theme) {
2386
2393
  return createStyles({
2387
2394
  title: {
2388
2395
  fontSize: 15
@@ -2401,7 +2408,7 @@ var useStyles$b = makeStyles(function (theme) {
2401
2408
  });
2402
2409
  var DeleteProfile = function (_a) {
2403
2410
  var profileForDelete = _a.profileForDelete, show = _a.show, onHide = _a.onHide;
2404
- var classes = useStyles$b();
2411
+ var classes = useStyles$j();
2405
2412
  var _b = useState(false), open = _b[0], setOpen = _b[1];
2406
2413
  var _c = useState(true), isLoading = _c[0], setIsLoading = _c[1];
2407
2414
  var _d = useState(false), isSubmitLoading = _d[0], setIsSubmitLoading = _d[1];
@@ -2560,7 +2567,7 @@ var useTableData$2 = function (_a) {
2560
2567
  return { rows: rows, columns: columns };
2561
2568
  };
2562
2569
 
2563
- var useStyles$a = makeStyles(function (theme) {
2570
+ var useStyles$i = makeStyles(function (theme) {
2564
2571
  return createStyles({
2565
2572
  root: {
2566
2573
  '& .MuiDataGrid-row': {
@@ -2599,7 +2606,7 @@ var TableProfiles = function (_a) {
2599
2606
  var _d = useState(false), modalDeleteProfile = _d[0], setModalDeleteProfile = _d[1];
2600
2607
  var _e = useState(null), profileForEdit = _e[0], setProfileForEdit = _e[1];
2601
2608
  var _f = useState(null), profileForDelete = _f[0], setProfileForDelete = _f[1];
2602
- var classes = useStyles$a();
2609
+ var classes = useStyles$i();
2603
2610
  var _g = useTableData$2({
2604
2611
  setModalDeleteProfile: setModalDeleteProfile,
2605
2612
  setModalEditPermissionsProfile: setModalEditPermissionsProfile,
@@ -2888,7 +2895,7 @@ var DeleteShiftParameters = function (PatternStart) { return __awaiter(void 0, v
2888
2895
  });
2889
2896
  }); };
2890
2897
 
2891
- var useStyles$9 = makeStyles(function (theme) {
2898
+ var useStyles$h = makeStyles(function (theme) {
2892
2899
  return createStyles({
2893
2900
  title: {
2894
2901
  fontSize: 15
@@ -2919,7 +2926,7 @@ var CreateShift = function (_a) {
2919
2926
  var _d = useState(false), open = _d[0], setOpen = _d[1];
2920
2927
  var _e = useState(false), isSubmitLoading = _e[0], setIsSubmitLoading = _e[1];
2921
2928
  // const [isLoading, setIsLoading] = useState(true);
2922
- var classes = useStyles$9();
2929
+ var classes = useStyles$h();
2923
2930
  var shiftTableData = useShiftsCrewsContext().state.shiftTableData;
2924
2931
  var _f = useForm({ defaultValues: shiftTableData ? shiftTableData : INITIAL_VALUES$1 }); _f.register; var control = _f.control, handleSubmit = _f.handleSubmit, reset = _f.reset, watch = _f.watch, setValue = _f.setValue, errors = _f.formState.errors;
2925
2932
  // Progress bar
@@ -3101,7 +3108,7 @@ var CreateShift = function (_a) {
3101
3108
  React.createElement(Alert, { severity: "success", onClose: handleClose }, "The shift was created successfully"))));
3102
3109
  };
3103
3110
 
3104
- var useStyles$8 = makeStyles(function (theme) {
3111
+ var useStyles$g = makeStyles(function (theme) {
3105
3112
  return createStyles({
3106
3113
  title: {
3107
3114
  fontSize: 15
@@ -3132,7 +3139,7 @@ var DeleteShift = function (_a) {
3132
3139
  var _c = useState(false), open = _c[0], setOpen = _c[1];
3133
3140
  var _d = useState(false), isSubmitLoading = _d[0], setIsSubmitLoading = _d[1];
3134
3141
  var _e = useState(false), deleteAlert = _e[0], setDeleteAlert = _e[1];
3135
- var classes = useStyles$8();
3142
+ var classes = useStyles$g();
3136
3143
  var shiftTableData = useShiftsCrewsContext().state.shiftTableData;
3137
3144
  var _f = useForm({ defaultValues: INITIAL_VALUES$1 }), control = _f.control, setValue = _f.setValue, reset = _f.reset, watch = _f.watch, errors = _f.formState.errors;
3138
3145
  var onDelete = function (data) { return __awaiter(void 0, void 0, void 0, function () {
@@ -3271,7 +3278,7 @@ var DeleteShift = function (_a) {
3271
3278
  React.createElement(Alert, { severity: "warning", onClose: handleClose }, "The shift was deleted successfully"))));
3272
3279
  };
3273
3280
 
3274
- var useStyles$7 = makeStyles(function (theme) {
3281
+ var useStyles$f = makeStyles(function (theme) {
3275
3282
  return createStyles({
3276
3283
  title: {
3277
3284
  fontSize: 15
@@ -3302,7 +3309,7 @@ var EditShift = function (_a) {
3302
3309
  var _c = useState(false), open = _c[0], setOpen = _c[1];
3303
3310
  var _d = useState(false), isSubmitLoading = _d[0], setIsSubmitLoading = _d[1];
3304
3311
  var _e = useState(false), initialShiftPerDayAndCrewsNumber = _e[0], setInitialShiftPerDayAndCrewsNumber = _e[1];
3305
- var classes = useStyles$7();
3312
+ var classes = useStyles$f();
3306
3313
  var shiftTableData = useShiftsCrewsContext().state.shiftTableData;
3307
3314
  var _f = useForm({ defaultValues: INITIAL_VALUES$1 }), control = _f.control, setValue = _f.setValue, handleSubmit = _f.handleSubmit, reset = _f.reset, watch = _f.watch, errors = _f.formState.errors;
3308
3315
  // Progress bar
@@ -3499,7 +3506,7 @@ var EditShift = function (_a) {
3499
3506
  React.createElement(Alert, { severity: "success", onClose: handleClose }, "The shift was created successfully"))));
3500
3507
  };
3501
3508
 
3502
- var useStyles$6 = makeStyles(function (theme) {
3509
+ var useStyles$e = makeStyles(function (theme) {
3503
3510
  return createStyles({
3504
3511
  root: {
3505
3512
  '& .MuiDataGrid-row': {
@@ -3512,93 +3519,1461 @@ var useStyles$6 = makeStyles(function (theme) {
3512
3519
  relative: {
3513
3520
  position: "relative"
3514
3521
  },
3515
- textfield: {
3516
- margin: theme.spacing(2)
3522
+ textfield: {
3523
+ margin: theme.spacing(2)
3524
+ },
3525
+ btnModal: {
3526
+ display: "flex",
3527
+ justifyContent: "flex-end"
3528
+ },
3529
+ dataTable: {
3530
+ padding: theme.spacing(1, 2)
3531
+ }
3532
+ });
3533
+ });
3534
+ var TableShiftsCrews = function (_a) {
3535
+ var isLoading = _a.isLoading, getShiftsCrewsFromAPI = _a.getShiftsCrewsFromAPI;
3536
+ var classes = useStyles$e();
3537
+ var _b = useState(false), modalNewActive = _b[0], setModalNewActive = _b[1];
3538
+ var _c = useState(false), modalEditShift = _c[0], setModalEditShift = _c[1];
3539
+ var _d = useState(false), modalDeleteShift = _d[0], setModalDeleteShift = _d[1];
3540
+ var _e = useTableData$1({ setModalEditShift: setModalEditShift, setModalDeleteShift: setModalDeleteShift }), rows = _e.rows, columns = _e.columns;
3541
+ return (React.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center", className: classes.root },
3542
+ React.createElement(Grid, { item: true, md: 12, xs: 12, style: { padding: "0 15px" } },
3543
+ React.createElement(Typography$1, { variant: "h5", style: { margin: "20px 0 20px", fontWeight: 600 } }, "Shifts / Crew")),
3544
+ React.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center", className: classes.root },
3545
+ React.createElement(Grid, { item: true, md: 12, xs: 12, style: { padding: "0 15px" }, className: classes.relative },
3546
+ React.createElement(CreateShift, { show: modalNewActive, onHide: function () { return setModalNewActive(false); }, getShiftsCrewsFromAPI: getShiftsCrewsFromAPI }),
3547
+ React.createElement(EditShift, { show: modalEditShift, onHide: function (shouldUpdate) {
3548
+ setModalEditShift(false);
3549
+ // setProfileForEdit(null)
3550
+ if (shouldUpdate)
3551
+ getShiftsCrewsFromAPI().then(function () { });
3552
+ } }),
3553
+ React.createElement(DeleteShift, { show: modalDeleteShift,
3554
+ // profileForDelete={profileForDelete}
3555
+ onHide: function (shouldUpdate) {
3556
+ setModalDeleteShift(false);
3557
+ // TODO: debería reiniciar el el actiones.shifData con initial value? o un arreglo vacio de initial value o un arreglo vacio simplemente?
3558
+ if (shouldUpdate)
3559
+ getShiftsCrewsFromAPI().then(function () { });
3560
+ } }),
3561
+ React.createElement(DataGrid, { className: classes.dataTable, density: 'compact', autoHeight: true, loading: isLoading, rows: rows, columns: columns, pageSize: 12, disableSelectionOnClick: true }),
3562
+ React.createElement(Grid, { container: true, justifyContent: "flex-end" },
3563
+ React.createElement(Grid, { item: true, md: 2, xs: 12, className: classes.btnModal },
3564
+ React.createElement(Button, { variant: "contained", color: "primary", onClick: function () { return setModalNewActive(!modalNewActive); }, fullWidth: true, style: { margin: "20px 0 20px" } }, "NEW")))))));
3565
+ };
3566
+
3567
+ var ShiftsCrews = function (prop) {
3568
+ var _a = useState(true), isLoading = _a[0], setIsLoading = _a[1];
3569
+ var _b = useShiftsCrewsContext(), _c = _b.state, shifts = _c.shifts; _c.pruebas; var _d = _b.actions, setShiftsCrews = _d.setShiftsCrews; _d.setPruebas;
3570
+ var _e = useState([]); _e[0]; var setPrueba = _e[1];
3571
+ var getShiftsCrewsFromAPI = function () { return __awaiter(void 0, void 0, void 0, function () {
3572
+ var resp;
3573
+ return __generator(this, function (_a) {
3574
+ switch (_a.label) {
3575
+ case 0:
3576
+ setIsLoading(true);
3577
+ return [4 /*yield*/, getShiftParameters()];
3578
+ case 1:
3579
+ resp = _a.sent();
3580
+ if (resp.ok) {
3581
+ setShiftsCrews(resp.data.tables[0].rows);
3582
+ // FIXME: el seter no está funcionando
3583
+ setPrueba(resp.data.tables[0].rows);
3584
+ setIsLoading(false);
3585
+ // debugger;
3586
+ }
3587
+ else {
3588
+ console.log("something happened!");
3589
+ }
3590
+ return [2 /*return*/];
3591
+ }
3592
+ });
3593
+ }); };
3594
+ useEffect(function () {
3595
+ getShiftsCrewsFromAPI();
3596
+ }, []);
3597
+ if (shifts) {
3598
+ return (React.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center" },
3599
+ React.createElement(Grid, { item: true, md: 12, xs: 12, style: { margin: 0 } },
3600
+ React.createElement(Paper, { elevation: 1, style: { width: "100%", padding: "10px 0 20px", borderRadius: "0.75rem" } },
3601
+ React.createElement(TableShiftsCrews, { isLoading: isLoading, getShiftsCrewsFromAPI: getShiftsCrewsFromAPI })))));
3602
+ }
3603
+ return React.createElement(LazyLoading, null);
3604
+ };
3605
+
3606
+ var ShiftsCrewsPage = function (props) {
3607
+ return (React.createElement(ShiftsCrewsProvider, null,
3608
+ React.createElement(ShiftsCrews, null)));
3609
+ };
3610
+
3611
+ var TypeIcon = function (props) {
3612
+ if (props.droppable) {
3613
+ return React__default.createElement(Folder, null);
3614
+ }
3615
+ switch (props.fileType) {
3616
+ case "image":
3617
+ return React__default.createElement(ImageIcon, null);
3618
+ case "csv":
3619
+ return React__default.createElement(ListAltIcon, null);
3620
+ case "text":
3621
+ return React__default.createElement(DescriptionIcon, null);
3622
+ default:
3623
+ return null;
3624
+ }
3625
+ };
3626
+
3627
+ var useStyles$d = makeStyles$1(function (theme) { return ({
3628
+ root: {
3629
+ alignItems: "center",
3630
+ display: "flex",
3631
+ height: "32px"
3632
+ },
3633
+ customNodeRoot: {
3634
+ listStyleType: "none",
3635
+ margin: 0,
3636
+ padding: 0
3637
+ },
3638
+ arrow: {
3639
+ alignItems: "center",
3640
+ cursor: "pointer",
3641
+ display: "flex",
3642
+ height: "24px",
3643
+ justifyContent: "center",
3644
+ width: "24px",
3645
+ transition: "transform linear 0.1s",
3646
+ transform: "rotate(0deg)"
3647
+ },
3648
+ "arrow > div": {
3649
+ alignItems: "center",
3650
+ display: "flex"
3651
+ },
3652
+ "arrow.is-open": {
3653
+ transform: "rotate(90deg)"
3654
+ },
3655
+ filetype: {
3656
+ display: "flex"
3657
+ },
3658
+ label: {
3659
+ paddingInlineStart: "8px"
3660
+ },
3661
+ selected: {
3662
+ backgroundColor: "#e8f0fe"
3663
+ },
3664
+ dragging: {
3665
+ opacity: 0.5
3666
+ }
3667
+ }); });
3668
+ var customStyles = "\n ul, ol {\n list-style-type: none;\n margin: 0;\n padding: 0;\n }\n";
3669
+ var CustomNode = function (_a) {
3670
+ var setContextMenuOver = _a.setContextMenuOver, onDoubleClick = _a.onDoubleClick; _a.testIdPrefix; var isSelected = _a.isSelected, props = __rest(_a, ["setContextMenuOver", "onDoubleClick", "testIdPrefix", "isSelected"]);
3671
+ var _c = props.node, id = _c.id, droppable = _c.droppable, data = _c.data;
3672
+ var indent = props.depth * 24;
3673
+ var classes = useStyles$d();
3674
+ var nodeClasses = "".concat(classes.customNodeRoot, " ").concat(classes.root, " ").concat(isSelected ? classes.selected : "");
3675
+ var handleClick = function (e) {
3676
+ props.onClick(e, props.node);
3677
+ };
3678
+ var handleToggle = function (e) {
3679
+ e.stopPropagation();
3680
+ props.onToggle();
3681
+ };
3682
+ var handleContextMenu = useCallback(function (ev) {
3683
+ ev.stopPropagation();
3684
+ ev.preventDefault();
3685
+ setContextMenuOver(props.node, ev);
3686
+ }, [id, setContextMenuOver]);
3687
+ var handleViewAssetDialog = useCallback(function (e) {
3688
+ e.stopPropagation();
3689
+ e.preventDefault();
3690
+ onDoubleClick(props.node, e);
3691
+ setContextMenuOver({
3692
+ id: "",
3693
+ parent: "",
3694
+ text: "",
3695
+ droppable: false
3696
+ }, e);
3697
+ }, [id, onDoubleClick]);
3698
+ useEffect(function () {
3699
+ var _a, _b;
3700
+ (_a = props.containerRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener('contextmenu', handleContextMenu);
3701
+ (_b = props.containerRef.current) === null || _b === void 0 ? void 0 : _b.addEventListener('dblclick', handleViewAssetDialog);
3702
+ return function () {
3703
+ var _a, _b;
3704
+ (_a = props.containerRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('contextmenu', handleContextMenu);
3705
+ (_b = props.containerRef.current) === null || _b === void 0 ? void 0 : _b.removeEventListener('dblclick', handleViewAssetDialog);
3706
+ };
3707
+ }, []);
3708
+ return (React__default.createElement("div", { className: nodeClasses, style: { paddingInlineStart: indent }, "data-node-id": id, onClick: handleClick },
3709
+ React__default.createElement("style", null, customStyles),
3710
+ props.node.droppable ? (React__default.createElement("div", { className: "".concat(classes.arrow, " ").concat(props.isOpen ? classes['arrow.is-open'] : "") },
3711
+ React__default.createElement("div", { onClick: handleToggle },
3712
+ React__default.createElement(ArrowRight, { "data-testid": "arrow-right-icon-".concat(id) })))) : null,
3713
+ React__default.createElement("div", { className: classes.filetype },
3714
+ React__default.createElement(TypeIcon, { droppable: droppable, fileType: data === null || data === void 0 ? void 0 : data.fileType })),
3715
+ React__default.createElement("div", { className: classes.label },
3716
+ React__default.createElement(Typography, { variant: "body2" }, props.node.text))));
3717
+ };
3718
+
3719
+ var theme = makeStyles$1({
3720
+ components: {
3721
+ MuiCssBaseline: {
3722
+ styleOverrides: {
3723
+ "*": {
3724
+ margin: 0,
3725
+ padding: 0
3726
+ },
3727
+ "html, body, #root": {
3728
+ height: "100%"
3729
+ },
3730
+ ul: {
3731
+ listStyle: "none"
3732
+ }
3733
+ }
3734
+ },
3735
+ MuiSvgIcon: {
3736
+ styleOverrides: {
3737
+ root: { verticalAlign: "middle" }
3738
+ }
3739
+ }
3740
+ }
3741
+ });
3742
+
3743
+ var useStyles$c = makeStyles$1(function (theme) { return ({
3744
+ root: {
3745
+ alignItems: "flex-start",
3746
+ backgroundColor: "#1967d2",
3747
+ borderRadius: "4px",
3748
+ boxShadow: "0 12px 24px -6px rgba(0, 0, 0, 0.25); 0 0 0 1px rgba(0, 0, 0, 0.08)",
3749
+ display: "flex",
3750
+ flexDirection: "column",
3751
+ gap: "4px",
3752
+ padding: "8px"
3753
+ },
3754
+ item: {
3755
+ alignItems: "center",
3756
+ color: "#fff",
3757
+ display: "inline-grid",
3758
+ fontSize: "14px",
3759
+ gap: "8px",
3760
+ gridTemplateColumns: "auto auto"
3761
+ },
3762
+ icon: {
3763
+ alignItems: "center",
3764
+ display: "flex"
3765
+ },
3766
+ label: {
3767
+ alignItems: "center",
3768
+ display: "flex"
3769
+ },
3770
+ badge: {
3771
+ border: "solid 2px #fff"
3772
+ }
3773
+ }); });
3774
+ var MultipleDragPreview = function (props) {
3775
+ var classes = useStyles$c();
3776
+ return (React__default.createElement(Badge, { classes: { badge: classes.badge }, color: "error", badgeContent: props.dragSources.length, anchorOrigin: { vertical: "top", horizontal: "right" } },
3777
+ React__default.createElement("div", { className: classes.root, "data-testid": "custom-drag-preview" }, props.dragSources.map(function (node) {
3778
+ var _a;
3779
+ return (React__default.createElement("div", { className: classes.item },
3780
+ React__default.createElement("div", { className: classes.icon },
3781
+ React__default.createElement(TypeIcon, { droppable: node.droppable || false, fileType: (_a = node === null || node === void 0 ? void 0 : node.data) === null || _a === void 0 ? void 0 : _a.fileType })),
3782
+ React__default.createElement("div", { className: classes.label }, node.text)));
3783
+ }))));
3784
+ };
3785
+
3786
+ var useStyles$b = makeStyles$1(function (theme) { return ({
3787
+ root: {
3788
+ alignItems: "center",
3789
+ backgroundColor: "#1967d2",
3790
+ borderRadius: "4px",
3791
+ boxShadow: " 0 12px 24px -6px rgba(0, 0, 0, .25); 0 0 0 1px rgba(0, 0, 0, .08)",
3792
+ color: "#fff",
3793
+ display: "inline-grid",
3794
+ fontSize: "14px",
3795
+ gap: "8px",
3796
+ gridTemplateColumns: "auto auto",
3797
+ padding: "4px 8px",
3798
+ pointerEvents: "none"
3799
+ },
3800
+ icon: {
3801
+ alignItems: "center",
3802
+ display: "flex"
3803
+ },
3804
+ label: {
3805
+ alignItems: "center",
3806
+ display: "flex"
3807
+ }
3808
+ }); });
3809
+ var CustomDragPreview = function (props) {
3810
+ var _a;
3811
+ var classes = useStyles$b();
3812
+ var item = props.monitorProps.item;
3813
+ return (React__default.createElement("div", { className: classes.root },
3814
+ React__default.createElement("div", { className: classes.icon },
3815
+ 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 })),
3816
+ React__default.createElement("div", { className: classes.label }, item.text)));
3817
+ };
3818
+
3819
+ var updateAsset = function (AssetId, ParentAssetId) { return __awaiter(void 0, void 0, void 0, function () {
3820
+ var apiService, parameters, resp, e_1;
3821
+ return __generator(this, function (_a) {
3822
+ switch (_a.label) {
3823
+ case 0:
3824
+ apiService = new MESApiService();
3825
+ parameters = [];
3826
+ parameters.push({
3827
+ name: "AssetId",
3828
+ value: AssetId
3829
+ });
3830
+ parameters.push({ name: "ParentAssetId", value: ParentAssetId });
3831
+ _a.label = 1;
3832
+ case 1:
3833
+ _a.trys.push([1, 3, , 4]);
3834
+ return [4 /*yield*/, apiService.call("[MES].[UpdateParentAssetId]", parameters)];
3835
+ case 2:
3836
+ resp = _a.sent();
3837
+ return [2 /*return*/, {
3838
+ ok: true,
3839
+ data: resp
3840
+ }];
3841
+ case 3:
3842
+ e_1 = _a.sent();
3843
+ return [2 /*return*/, { ok: false, message: e_1.toString() }];
3844
+ case 4: return [2 /*return*/];
3845
+ }
3846
+ });
3847
+ }); };
3848
+ var insertAsset = function (AssetName, ParentAssetId, IsAsset, CanBeDefaultAsset) { return __awaiter(void 0, void 0, void 0, function () {
3849
+ var apiService, parameters, resp, e_2;
3850
+ return __generator(this, function (_a) {
3851
+ switch (_a.label) {
3852
+ case 0:
3853
+ apiService = new MESApiService();
3854
+ parameters = [];
3855
+ parameters.push({ name: "AssetName", value: AssetName });
3856
+ parameters.push({ name: "ParentAssetId", value: ParentAssetId });
3857
+ parameters.push({ name: "IsAsset", value: IsAsset });
3858
+ parameters.push({ name: "CanBeDefaultAsset", value: CanBeDefaultAsset });
3859
+ _a.label = 1;
3860
+ case 1:
3861
+ _a.trys.push([1, 3, , 4]);
3862
+ return [4 /*yield*/, apiService.call("[MES].[InsertAsset]", parameters)];
3863
+ case 2:
3864
+ resp = _a.sent();
3865
+ return [2 /*return*/, {
3866
+ ok: true,
3867
+ data: resp
3868
+ }];
3869
+ case 3:
3870
+ e_2 = _a.sent();
3871
+ return [2 /*return*/, { ok: false, message: e_2.toString() }];
3872
+ case 4: return [2 /*return*/];
3873
+ }
3874
+ });
3875
+ }); };
3876
+ var UpdateAssetData = function (AssetId, AssetName, ParentAssetId, IsAsset, CanBeDefaultAsset) { return __awaiter(void 0, void 0, void 0, function () {
3877
+ var apiService, parameters, resp, e_3;
3878
+ return __generator(this, function (_a) {
3879
+ switch (_a.label) {
3880
+ case 0:
3881
+ apiService = new MESApiService();
3882
+ parameters = [];
3883
+ parameters.push({ name: "AssetId", value: AssetId });
3884
+ parameters.push({ name: "AssetName", value: AssetName });
3885
+ parameters.push({ name: "ParentAssetId", value: ParentAssetId });
3886
+ parameters.push({ name: "IsAsset", value: IsAsset });
3887
+ parameters.push({ name: "CanBeDefaultAsset", value: CanBeDefaultAsset });
3888
+ _a.label = 1;
3889
+ case 1:
3890
+ _a.trys.push([1, 3, , 4]);
3891
+ return [4 /*yield*/, apiService.call("[MES].[UpdateAssetData]", parameters)];
3892
+ case 2:
3893
+ resp = _a.sent();
3894
+ return [2 /*return*/, {
3895
+ ok: true,
3896
+ data: resp
3897
+ }];
3898
+ case 3:
3899
+ e_3 = _a.sent();
3900
+ return [2 /*return*/, { ok: false, message: e_3.toString() }];
3901
+ case 4: return [2 /*return*/];
3902
+ }
3903
+ });
3904
+ }); };
3905
+ var removeAsset = function (AssetId, IsActive) { return __awaiter(void 0, void 0, void 0, function () {
3906
+ var apiService, parameters, resp, e_4;
3907
+ return __generator(this, function (_a) {
3908
+ switch (_a.label) {
3909
+ case 0:
3910
+ apiService = new MESApiService();
3911
+ parameters = [];
3912
+ parameters.push({ name: "AssetId", value: AssetId });
3913
+ parameters.push({ name: "IsActive", value: IsActive });
3914
+ _a.label = 1;
3915
+ case 1:
3916
+ _a.trys.push([1, 3, , 4]);
3917
+ return [4 /*yield*/, apiService.call("[MES].[RemoveAsset]", parameters)];
3918
+ case 2:
3919
+ resp = _a.sent();
3920
+ return [2 /*return*/, {
3921
+ ok: true,
3922
+ data: resp
3923
+ }];
3924
+ case 3:
3925
+ e_4 = _a.sent();
3926
+ return [2 /*return*/, { ok: false, message: e_4.toString() }];
3927
+ case 4: return [2 /*return*/];
3928
+ }
3929
+ });
3930
+ }); };
3931
+
3932
+ var AssetInitialState = {
3933
+ areasList: [],
3934
+ allAssets: []
3935
+ };
3936
+ var AssetReducer = createSlice({
3937
+ name: "__",
3938
+ initialState: AssetInitialState,
3939
+ reducers: {
3940
+ setAreasList: function (state, _a) {
3941
+ var payload = _a.payload;
3942
+ state.areasList = payload;
3943
+ },
3944
+ // ===========================
3945
+ setAllAssets: function (state, _a) {
3946
+ var payload = _a.payload;
3947
+ state.allAssets = payload;
3948
+ }
3949
+ }
3950
+ });
3951
+
3952
+ var AssetContext = createContext({
3953
+ state: AssetReducer.getInitialState(),
3954
+ actions: AssetReducer.actions
3955
+ });
3956
+ var useAssetContext = function () { return useContext(AssetContext); };
3957
+ var AssetProvider = function (_a) {
3958
+ var children = _a.children;
3959
+ var _b = useComplexState({
3960
+ initialState: AssetReducer.getInitialState(),
3961
+ reducers: AssetReducer.caseReducers
3962
+ }), state = _b[0], actions = _b[1];
3963
+ return (React__default.createElement(AssetContext.Provider, { value: { state: state, actions: actions } }, children));
3964
+ };
3965
+
3966
+ var TransformAssetModelData = function (node) {
3967
+ var model = {
3968
+ id: node.AssetId,
3969
+ parent: node.ParentAssetId ? node.ParentAssetId : 0,
3970
+ text: node.AssetName,
3971
+ data: {
3972
+ fileType: 'csv',
3973
+ fileSize: ""
3974
+ },
3975
+ droppable: node.IsBranch
3976
+ };
3977
+ return model;
3978
+ };
3979
+
3980
+ var DATA_ASSET_INITIAL_VALUES = {
3981
+ AssetId: null,
3982
+ ParentAssetId: 1,
3983
+ AssetName: "",
3984
+ IsAsset: false,
3985
+ CanBeDefaultAsset: false,
3986
+ ParentAssetName: ""
3987
+ };
3988
+
3989
+ var ConfigurationAssetInitialState = {
3990
+ allAssetNodes: [],
3991
+ allNodesLoading: false,
3992
+ anchorPoint: {
3993
+ x: 0,
3994
+ y: 0
3995
+ },
3996
+ dataToCreateAsset: DATA_ASSET_INITIAL_VALUES,
3997
+ menuContextAssetId: undefined,
3998
+ showContextMenu: false,
3999
+ showCreateNewContextMenu: false,
4000
+ assetCodes: {},
4001
+ assetTreeId: 1,
4002
+ assetTreeName: null,
4003
+ assetNodeSelectedInTree: DATA_ASSET_INITIAL_VALUES
4004
+ };
4005
+ var ConfigurationAssetReducer = createSlice({
4006
+ name: "__",
4007
+ initialState: ConfigurationAssetInitialState,
4008
+ reducers: {
4009
+ setAllAssetNodes: function (state, _a) {
4010
+ var payload = _a.payload;
4011
+ state.allAssetNodes = payload;
4012
+ },
4013
+ seAllNodesLoading: function (state, _a) {
4014
+ var payload = _a.payload;
4015
+ state.allNodesLoading = payload;
4016
+ },
4017
+ setAnchorPointX: function (state, _a) {
4018
+ var payload = _a.payload;
4019
+ state.anchorPoint.x = payload;
4020
+ },
4021
+ setAnchorPointY: function (state, _a) {
4022
+ var payload = _a.payload;
4023
+ state.anchorPoint.y = payload;
4024
+ },
4025
+ setMenuContextAssetId: function (state, _a) {
4026
+ var payload = _a.payload;
4027
+ state.menuContextAssetId = payload;
4028
+ },
4029
+ setShowContextMenu: function (state, _a) {
4030
+ var payload = _a.payload;
4031
+ state.showContextMenu = payload;
4032
+ },
4033
+ setShowCreateNewContextMenu: function (state, _a) {
4034
+ var payload = _a.payload;
4035
+ state.showCreateNewContextMenu = payload;
4036
+ },
4037
+ setDataToCreateAsset: function (state, _a) {
4038
+ var payload = _a.payload;
4039
+ state.dataToCreateAsset = payload;
4040
+ },
4041
+ setAssetNameToCreateAsset: function (state, _a) {
4042
+ var payload = _a.payload;
4043
+ state.dataToCreateAsset.AssetName = payload;
4044
+ },
4045
+ setAssetParentAssetIdToCreateAsset: function (state, _a) {
4046
+ var payload = _a.payload;
4047
+ state.dataToCreateAsset.ParentAssetId = payload;
4048
+ },
4049
+ setAssetTreeId: function (state, _a) {
4050
+ var payload = _a.payload;
4051
+ state.assetTreeId = payload;
4052
+ },
4053
+ setAssetTreeName: function (state, _a) {
4054
+ var payload = _a.payload;
4055
+ state.assetTreeName = payload;
4056
+ },
4057
+ setAssetCodes: function (state, _a) {
4058
+ var payload = _a.payload;
4059
+ state.assetCodes = payload;
4060
+ },
4061
+ setAssetNodeSelectedInTree: function (state, _a) {
4062
+ var payload = _a.payload;
4063
+ state.assetNodeSelectedInTree = payload;
4064
+ },
4065
+ setParentAssetNameInNodeSelectedInTree: function (state, _a) {
4066
+ var payload = _a.payload;
4067
+ state.assetNodeSelectedInTree.ParentAssetName = payload;
4068
+ }
4069
+ }
4070
+ });
4071
+
4072
+ var ConfigurationAssetContext = createContext({
4073
+ state: ConfigurationAssetReducer.getInitialState(),
4074
+ actions: ConfigurationAssetReducer.actions
4075
+ });
4076
+ var useConfigurationAssetContext = function () { return useContext(ConfigurationAssetContext); };
4077
+ var ConfigurationAssetProvider = function (_a) {
4078
+ var children = _a.children;
4079
+ var _b = useComplexState({
4080
+ initialState: ConfigurationAssetReducer.getInitialState(),
4081
+ reducers: ConfigurationAssetReducer.caseReducers
4082
+ }), state = _b[0], actions = _b[1];
4083
+ return (React__default.createElement(ConfigurationAssetContext.Provider, { value: { state: state, actions: actions } }, children));
4084
+ };
4085
+
4086
+ var useSearchAssets$1 = function () {
4087
+ var _a = useAssetContext().actions, setAllAssets = _a.setAllAssets, setAreasList = _a.setAreasList;
4088
+ var setAllAssetNodes = useConfigurationAssetContext().actions.setAllAssetNodes;
4089
+ var searchAssets = function () {
4090
+ getAssets().then(function (res) {
4091
+ var mydataSource = [];
4092
+ var rows = get$1(res, "data.tables[0].rows", []);
4093
+ var areas = rows.filter(function (asset) { return asset.CanBeDefaultAsset; });
4094
+ setAllAssets(rows);
4095
+ setAreasList(areas);
4096
+ rows.forEach(function (row) {
4097
+ var code = TransformAssetModelData(row);
4098
+ mydataSource = __spreadArray(__spreadArray([], mydataSource, true), [code], false);
4099
+ });
4100
+ setAllAssetNodes(mydataSource);
4101
+ });
4102
+ };
4103
+ return { searchAssets: searchAssets };
4104
+ };
4105
+
4106
+ var useAssetActions = function (_a) {
4107
+ var asset = _a.asset, selectedNodes = _a.selectedNodes, originalAsset = _a.originalAsset, setAsset = _a.setAsset, setSelectedNodes = _a.setSelectedNodes, isCtrlPressing = _a.isCtrlPressing, setIsDragging = _a.setIsDragging, setIsCtrlPressing = _a.setIsCtrlPressing;
4108
+ var _b = useState([]), changedNodes = _b[0], setChangedNodes = _b[1];
4109
+ var _c = useState(false), updatedSuccessfullyMessage = _c[0], setUpdatedSuccessfullyMessage = _c[1];
4110
+ var searchAssets = useSearchAssets$1().searchAssets;
4111
+ var hasNodeChanged = function (originalNode, currentNode) {
4112
+ return originalNode.parent !== currentNode.parent;
4113
+ };
4114
+ var updateChangedNodes = function (updatedNode) {
4115
+ setChangedNodes(function (prevChangedNodes) {
4116
+ var nodeIndex = prevChangedNodes.findIndex(function (node) { return node.id === updatedNode.id; });
4117
+ if (nodeIndex !== -1) {
4118
+ var updatedNodes = __spreadArray([], prevChangedNodes, true);
4119
+ updatedNodes[nodeIndex] = updatedNode;
4120
+ return updatedNodes;
4121
+ }
4122
+ else {
4123
+ return __spreadArray(__spreadArray([], prevChangedNodes, true), [updatedNode], false);
4124
+ }
4125
+ });
4126
+ };
4127
+ var handleDrop = function (newAsset, options) {
4128
+ var dropTargetId = options.dropTargetId;
4129
+ var updatedAsset = newAsset.map(function (node) {
4130
+ if (selectedNodes.some(function (selectedNode) { return selectedNode.id === node.id; })) {
4131
+ // Busca el nodo original en el estado 'originalAsset'
4132
+ var originalNode = originalAsset.find(function (original) { return original.id === node.id; });
4133
+ // Aseguro de que haya un nodo original antes de realizar la comparación
4134
+ if (originalNode) {
4135
+ // Realiza cambios en el nodo según sea necesario
4136
+ var updatedNode_1 = __assign(__assign({}, node), { parent: dropTargetId });
4137
+ // Verifica si el nodo ha cambiado utilizando la función hasNodeChanged
4138
+ if (hasNodeChanged(originalNode, updatedNode_1)) {
4139
+ // Registra el nodo como cambiado solo si ha cambiado en relación al estado original
4140
+ updateChangedNodes(updatedNode_1);
4141
+ }
4142
+ else {
4143
+ // Si el nodo ha vuelto a su posición original, elimínalo de changedNodes
4144
+ setChangedNodes(function (prevChangedNodes) {
4145
+ return prevChangedNodes.filter(function (changedNode) { return changedNode.id !== updatedNode_1.id; });
4146
+ });
4147
+ }
4148
+ }
4149
+ }
4150
+ return node;
4151
+ });
4152
+ setAsset(updatedAsset);
4153
+ setSelectedNodes([]);
4154
+ };
4155
+ var handleUpdateAsset = function () {
4156
+ changedNodes.forEach(function (node) { return __awaiter(void 0, void 0, void 0, function () {
4157
+ var updateAssetNode;
4158
+ return __generator(this, function (_a) {
4159
+ switch (_a.label) {
4160
+ case 0: return [4 /*yield*/, updateAsset(node.id, node.parent ? node.parent : null)];
4161
+ case 1:
4162
+ updateAssetNode = _a.sent();
4163
+ if (!updateAssetNode.ok) ;
4164
+ return [2 /*return*/];
4165
+ }
4166
+ });
4167
+ }); }, setTimeout(function () {
4168
+ setUpdatedSuccessfullyMessage(true);
4169
+ searchAssets();
4170
+ }, 100));
4171
+ setChangedNodes([]);
4172
+ };
4173
+ var handleSingleSelect = function (node) {
4174
+ setSelectedNodes([node]);
4175
+ };
4176
+ var handleMultiSelect = function (clickedNode) {
4177
+ var selectedIds = selectedNodes.map(function (n) { return n.id; });
4178
+ if (selectedIds.includes(clickedNode.id)) {
4179
+ return;
4180
+ }
4181
+ if (selectedIds.some(function (selectedId) {
4182
+ return isAncestor(asset, selectedId, clickedNode.id);
4183
+ })) {
4184
+ return;
4185
+ }
4186
+ var updateNodes = __spreadArray([], selectedNodes, true);
4187
+ updateNodes = updateNodes.filter(function (selectedNode) {
4188
+ return !isAncestor(asset, clickedNode.id, selectedNode.id);
4189
+ });
4190
+ updateNodes = __spreadArray(__spreadArray([], updateNodes, true), [clickedNode], false);
4191
+ setSelectedNodes(updateNodes);
4192
+ };
4193
+ var handleCtrlClick = function (e, node) {
4194
+ if (e.ctrlKey || e.metaKey) {
4195
+ handleMultiSelect(node);
4196
+ }
4197
+ else {
4198
+ handleSingleSelect(node);
4199
+ }
4200
+ };
4201
+ var handleDragStart = function (node) {
4202
+ var isSelectedNode = selectedNodes.some(function (n) { return n.id === node.id; });
4203
+ setIsDragging(true);
4204
+ if (!isCtrlPressing && isSelectedNode) {
4205
+ return;
4206
+ }
4207
+ if (!isCtrlPressing) {
4208
+ setSelectedNodes([node]);
4209
+ return;
4210
+ }
4211
+ if (!selectedNodes.some(function (n) { return n.id === node.id; })) {
4212
+ setSelectedNodes(__spreadArray(__spreadArray([], selectedNodes, true), [node], false));
4213
+ }
4214
+ };
4215
+ var handleDragEnd = function () {
4216
+ setIsDragging(false);
4217
+ setIsCtrlPressing(false);
4218
+ setSelectedNodes([]);
4219
+ };
4220
+ return { handleDrop: handleDrop, handleUpdateAsset: handleUpdateAsset, handleCtrlClick: handleCtrlClick, handleDragEnd: handleDragEnd, handleDragStart: handleDragStart, changedNodes: changedNodes, updatedSuccessfullyMessage: updatedSuccessfullyMessage, setUpdatedSuccessfullyMessage: setUpdatedSuccessfullyMessage, setChangedNodes: setChangedNodes };
4221
+ };
4222
+
4223
+ var useAssetCodes = function () {
4224
+ var allAssets = useAssetContext().state.allAssets;
4225
+ var setAssetCodes = useConfigurationAssetContext().actions.setAssetCodes;
4226
+ var buildTreeAssets = function (nodes) {
4227
+ if (nodes === undefined)
4228
+ return;
4229
+ //tree build functions
4230
+ var idMapping = nodes.reduce(function (acc, el, i) {
4231
+ acc[el.id] = i;
4232
+ return acc;
4233
+ }, {});
4234
+ var root;
4235
+ nodes.forEach(function (el) {
4236
+ // Handle the root element
4237
+ if (el.parentId === null) {
4238
+ root = el;
4239
+ return;
4240
+ }
4241
+ // Use our mapping to locate the parent element in our data array
4242
+ var parentEl = nodes[idMapping[el.parentId]];
4243
+ // Add our current el to its parent's `children` array
4244
+ parentEl.children = __spreadArray(__spreadArray([], (parentEl.children || []), true), [el], false);
4245
+ });
4246
+ setAssetCodes(root);
4247
+ };
4248
+ var loadFilterAssets = function () {
4249
+ var mydataSource = [];
4250
+ allAssets.forEach(function (row) {
4251
+ var code = TransformAssetCodeModel(row);
4252
+ mydataSource = __spreadArray(__spreadArray([], mydataSource, true), [code], false);
4253
+ });
4254
+ buildTreeAssets(mydataSource);
4255
+ };
4256
+ var TransformAssetCodeModel = function (data) {
4257
+ var model = {
4258
+ id: data.AssetId,
4259
+ parentId: data.ParentAssetId,
4260
+ name: data.AssetName,
4261
+ isLeaf: data.isLeaf,
4262
+ isActive: true
4263
+ };
4264
+ return model;
4265
+ };
4266
+ return { loadFilterAssets: loadFilterAssets };
4267
+ };
4268
+
4269
+ var useStyles$a = makeStyles(function (theme) { return ({
4270
+ root: {
4271
+ "& .input-group-text": {
4272
+ display: "none"
4273
+ },
4274
+ "& .MuiPaper-root": {
4275
+ height: "auto"
4276
+ }
4277
+ },
4278
+ checkbox: {
4279
+ userSelect: "none"
4280
+ },
4281
+ modalTitle: {
4282
+ backgroundColor: '#ced2cc',
4283
+ color: '#495057',
4284
+ textAlign: 'center'
4285
+ },
4286
+ modalTitleCloseWO: {
4287
+ backgroundColor: '#28a745',
4288
+ color: 'white',
4289
+ textAlign: 'center'
4290
+ },
4291
+ modalWarning: {
4292
+ color: 'white',
4293
+ backgroundColor: '#dc3545',
4294
+ textAlign: 'center'
4295
+ },
4296
+ messageTitle: {
4297
+ fontSize: 15,
4298
+ fontWeight: 'bold',
4299
+ color: "#0000008A"
4300
+ }, formControl: {
4301
+ margin: theme.spacing(2),
4302
+ minWidth: 120
4303
+ }, errorLabel: {
4304
+ fontSize: 12,
4305
+ color: "#F44336"
4306
+ }
4307
+ }); });
4308
+ var CreateNewAssetDialog = function (_a) {
4309
+ var show = _a.show, onHide = _a.onHide;
4310
+ var classes = useStyles$a();
4311
+ var _b = useState(true), fullWidth = _b[0]; _b[1];
4312
+ var _c = useState('sm'), maxWidth = _c[0]; _c[1];
4313
+ var _d = useState(false), isSubmitLoading = _d[0], setIsSubmitLoading = _d[1];
4314
+ var _e = useState(false); _e[0]; _e[1];
4315
+ var _f = useState(false), assetCreatedSuccess = _f[0], setAssetCreatedSuccess = _f[1];
4316
+ var _g = useState(false), error = _g[0], setError = _g[1];
4317
+ var _h = useState(""), errorMessege = _h[0], setErrorMessege = _h[1];
4318
+ var _j = useConfigurationAssetContext(), _k = _j.state, ParentAssetId = _k.dataToCreateAsset.ParentAssetId, assetCodes = _k.assetCodes, dataToCreateAsset = _k.dataToCreateAsset, assetTreeName = _k.assetTreeName, _l = _j.actions, setAssetNameToCreateAsset = _l.setAssetNameToCreateAsset, setAssetTreeName = _l.setAssetTreeName, setAssetParentAssetIdToCreateAsset = _l.setAssetParentAssetIdToCreateAsset;
4319
+ var searchAssets = useSearchAssets$1().searchAssets;
4320
+ var loadFilterAssets = useAssetCodes().loadFilterAssets;
4321
+ var _m = useForm({ defaultValues: dataToCreateAsset ? dataToCreateAsset : DATA_ASSET_INITIAL_VALUES }), control = _m.control, handleSubmit = _m.handleSubmit, reset = _m.reset, setValue = _m.setValue, errors = _m.formState.errors;
4322
+ var handleCancel = function () {
4323
+ reset();
4324
+ onHide(false);
4325
+ };
4326
+ var handleClose = function (event, reason) {
4327
+ if (reason === 'clickaway') {
4328
+ return;
4329
+ }
4330
+ reset();
4331
+ setAssetCreatedSuccess(false);
4332
+ setError(false);
4333
+ };
4334
+ var handleCreateAsset = function (data) { return __awaiter(void 0, void 0, void 0, function () {
4335
+ return __generator(this, function (_a) {
4336
+ switch (_a.label) {
4337
+ case 0:
4338
+ setIsSubmitLoading(true);
4339
+ _a.label = 1;
4340
+ case 1:
4341
+ _a.trys.push([1, 3, , 4]);
4342
+ return [4 /*yield*/, insertAsset(data.AssetName, data.ParentAssetId, data.IsAsset, data.CanBeDefaultAsset).then(function (res) {
4343
+ if (res) {
4344
+ setIsSubmitLoading(false);
4345
+ setAssetCreatedSuccess(true);
4346
+ searchAssets();
4347
+ onHide(true);
4348
+ }
4349
+ })];
4350
+ case 2:
4351
+ _a.sent();
4352
+ return [3 /*break*/, 4];
4353
+ case 3:
4354
+ _a.sent();
4355
+ setErrorMessege("Please select a document and try again");
4356
+ setIsSubmitLoading(false);
4357
+ setError(true);
4358
+ return [3 /*break*/, 4];
4359
+ case 4: return [2 /*return*/];
4360
+ }
4361
+ });
4362
+ }); };
4363
+ var changeParentAssetId = function (value, description) {
4364
+ setValue("ParentAssetId", parseInt(value));
4365
+ setAssetParentAssetIdToCreateAsset(parseInt(value));
4366
+ setAssetTreeName(description);
4367
+ };
4368
+ var handleFormSubmit = handleSubmit(handleCreateAsset);
4369
+ useEffect(function () {
4370
+ if (show) {
4371
+ loadFilterAssets();
4372
+ setAssetParentAssetIdToCreateAsset(1);
4373
+ setAssetTreeName("Plant");
4374
+ setAssetNameToCreateAsset("");
4375
+ }
4376
+ }, [show]);
4377
+ return ((React__default.createElement("div", { className: classes.root },
4378
+ React__default.createElement(Dialog$1, { fullWidth: fullWidth, maxWidth: maxWidth, open: show, onClose: function () { return handleCancel(); }, disableEnforceFocus: true, className: classes.root },
4379
+ React__default.createElement("form", { onSubmit: handleFormSubmit },
4380
+ React__default.createElement(Grid, { container: true, style: { padding: "15px 0 20px", height: "50%" } },
4381
+ React__default.createElement(Grid, { container: true, item: true },
4382
+ React__default.createElement(Grid, { item: true, md: 12, xs: 12 },
4383
+ React__default.createElement(Typography, { style: { padding: "0 24px 12px", fontSize: 25 } }, "NEW ASSET"))),
4384
+ React__default.createElement(Grid, { container: true, style: { alignItems: "center" } },
4385
+ React__default.createElement(DialogContent$2, { dividers: true, style: { padding: "10px 24px 0" } },
4386
+ React__default.createElement(Grid, { item: true, md: 12, xs: 12 },
4387
+ React__default.createElement(Controller, { name: "AssetName", control: control, rules: {
4388
+ validate: {
4389
+ notEmpty: function (value) { return value.trim() !== ""; }
4390
+ }
4391
+ }, render: function (_a) {
4392
+ var _b;
4393
+ var _c = _a.field, onChange = _c.onChange, value = _c.value;
4394
+ return (React__default.createElement(React__default.Fragment, null,
4395
+ React__default.createElement(TextField, { label: "Asset Name", variant: "outlined", error: !!errors.AssetName, fullWidth: true, margin: "dense", autoComplete: "off", onChange: onChange, value: value }),
4396
+ ((_b = errors.AssetName) === null || _b === void 0 ? void 0 : _b.type) === 'notEmpty' && (React__default.createElement("span", { className: classes.errorLabel }, "Asset Name is required"))));
4397
+ } })),
4398
+ React__default.createElement(Grid, { container: true },
4399
+ React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { marginBottom: "8px" } },
4400
+ React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { padding: 0, marginTop: 10 } },
4401
+ React__default.createElement(Controller, { name: "ParentAssetId", control: control, render: function (_a) { return (React__default.createElement(TreePickerControl, { inputTitle: "Asset", title: "Choose Parent Asset", dataSource: assetCodes, value: ParentAssetId, description: assetTreeName || "Plant", onSelect: changeParentAssetId, selectBranch: true, selectActive: false, selectInternal: false })); } }))),
4402
+ React__default.createElement(Grid, { container: true, style: { marginTop: "5px", padding: "0 8px" } },
4403
+ React__default.createElement(Grid, { item: true, xs: 6, md: 6 },
4404
+ React__default.createElement(Controller, { name: "IsAsset", control: control, defaultValue: false, render: function (_a) {
4405
+ var field = _a.field;
4406
+ return (React__default.createElement(FormControlLabel$1, { className: classes.checkbox, control: React__default.createElement(Checkbox$1, { checked: field.value, onChange: function (e) { return field.onChange(e.target.checked); }, name: "IsAsset", color: "primary" }), label: "Is Asset" }));
4407
+ } })),
4408
+ React__default.createElement(Grid, { item: true, xs: 6, md: 6 },
4409
+ React__default.createElement(Controller, { name: "CanBeDefaultAsset", control: control, defaultValue: false, render: function (_a) {
4410
+ var field = _a.field;
4411
+ return (React__default.createElement(FormControlLabel$1, { className: classes.checkbox, control: React__default.createElement(Checkbox$1, { checked: field.value, onChange: function (e) { return field.onChange(e.target.checked); }, name: "CanBeDefaultAsset", color: "primary" }), label: "Can be Default Asset" }));
4412
+ } }))))),
4413
+ React__default.createElement(Grid, { item: true, md: 12, xs: 12, justifyContent: "flex-end", style: { marginTop: "15px" } },
4414
+ React__default.createElement(DialogActions$2, { style: { padding: "0px 24px" } },
4415
+ React__default.createElement(Grid, { container: true, justifyContent: "flex-end", style: { margin: 0 } },
4416
+ React__default.createElement(Grid, { container: true, item: true, style: { marginLeft: "auto", marginTop: 5, marginBottom: 0 } },
4417
+ React__default.createElement(Grid, { item: true, md: 6, xs: 12, style: { paddingLeft: "0", paddingRight: "16px" } },
4418
+ React__default.createElement(Button, { fullWidth: true, variant: "contained", color: "default", onClick: function () { return handleCancel(); } }, "Cancel")),
4419
+ React__default.createElement(Grid, { item: true, md: 6, xs: 12 },
4420
+ React__default.createElement(Button, { fullWidth: true, startIcon: isSubmitLoading && React__default.createElement(CircularProgress$1, { size: "1rem" }), disabled: isSubmitLoading, variant: "contained", color: "primary", type: 'submit' }, "Save")))))))))),
4421
+ React__default.createElement(Snackbar, { open: assetCreatedSuccess, autoHideDuration: 2500, onClose: handleClose },
4422
+ React__default.createElement(Alert$2, { severity: "info", onClose: handleClose }, "Document created succesfully")),
4423
+ React__default.createElement(Snackbar, { open: error, autoHideDuration: 2500, onClose: handleClose },
4424
+ React__default.createElement(Alert$2, { severity: "error", onClose: handleClose }, errorMessege)))));
4425
+ };
4426
+
4427
+ var useStyles$9 = makeStyles(function (theme) { return ({
4428
+ root: {
4429
+ "& .input-group-text": {
4430
+ display: "none"
4431
+ },
4432
+ "& .MuiPaper-root": {
4433
+ height: "auto"
3517
4434
  },
3518
- btnModal: {
3519
- display: "flex",
3520
- justifyContent: "flex-end"
4435
+ "& .MuiDialogContent-dividers": {
4436
+ borderBottom: "unset"
4437
+ }
4438
+ },
4439
+ customDialog: {
4440
+ "& .MuiDivider-root:last-child": {
4441
+ display: "none"
4442
+ }
4443
+ },
4444
+ checkbox: {
4445
+ userSelect: "none"
4446
+ },
4447
+ modalTitle: {
4448
+ backgroundColor: '#ced2cc',
4449
+ color: '#495057',
4450
+ textAlign: 'center'
4451
+ },
4452
+ modalTitleCloseWO: {
4453
+ backgroundColor: '#28a745',
4454
+ color: 'white',
4455
+ textAlign: 'center'
4456
+ },
4457
+ modalWarning: {
4458
+ color: 'white',
4459
+ backgroundColor: '#dc3545',
4460
+ textAlign: 'center'
4461
+ },
4462
+ messageTitle: {
4463
+ fontSize: 15,
4464
+ fontWeight: 'bold',
4465
+ color: "#0000008A"
4466
+ }, formControl: {
4467
+ margin: theme.spacing(2),
4468
+ minWidth: 120
4469
+ }, errorLabel: {
4470
+ fontSize: 12,
4471
+ color: "#F44336"
4472
+ }
4473
+ }); });
4474
+ var ViewerAssetDialog = function (_a) {
4475
+ var show = _a.show, onHide = _a.onHide;
4476
+ var classes = useStyles$9();
4477
+ var _b = useState(true), fullWidth = _b[0]; _b[1];
4478
+ var _c = useState('sm'), maxWidth = _c[0]; _c[1];
4479
+ var _d = useConfigurationAssetContext().state, dataToCreateAsset = _d.dataToCreateAsset, assetNodeSelectedInTree = _d.assetNodeSelectedInTree;
4480
+ var allAssets = useAssetContext().state.allAssets;
4481
+ var _e = useForm({ defaultValues: dataToCreateAsset ? dataToCreateAsset : DATA_ASSET_INITIAL_VALUES }), control = _e.control, reset = _e.reset, setValue = _e.setValue, errors = _e.formState.errors;
4482
+ var handleCancel = function () {
4483
+ reset();
4484
+ onHide(false);
4485
+ };
4486
+ useEffect(function () {
4487
+ if (show) {
4488
+ setValue("ParentAssetId", assetNodeSelectedInTree === null || assetNodeSelectedInTree === void 0 ? void 0 : assetNodeSelectedInTree.ParentAssetId);
4489
+ var parentAssetNode = allAssets.find(function (node) { return node.AssetId === (assetNodeSelectedInTree === null || assetNodeSelectedInTree === void 0 ? void 0 : assetNodeSelectedInTree.ParentAssetId); });
4490
+ setValue("AssetName", assetNodeSelectedInTree === null || assetNodeSelectedInTree === void 0 ? void 0 : assetNodeSelectedInTree.AssetName);
4491
+ setValue("ParentAssetName", parentAssetNode === null || parentAssetNode === void 0 ? void 0 : parentAssetNode.AssetName);
4492
+ setValue("IsAsset", assetNodeSelectedInTree === null || assetNodeSelectedInTree === void 0 ? void 0 : assetNodeSelectedInTree.IsAsset);
4493
+ setValue("CanBeDefaultAsset", assetNodeSelectedInTree === null || assetNodeSelectedInTree === void 0 ? void 0 : assetNodeSelectedInTree.CanBeDefaultAsset);
4494
+ }
4495
+ }, [show]);
4496
+ return ((React__default.createElement("div", { className: classes.root },
4497
+ React__default.createElement(Dialog$1, { fullWidth: fullWidth, maxWidth: maxWidth, open: show, onClose: function () { return handleCancel(); }, disableEnforceFocus: true, className: classes.root },
4498
+ React__default.createElement("form", { onSubmit: function () { } },
4499
+ React__default.createElement(Grid, { container: true, style: { padding: "15px 0", height: "50%" } },
4500
+ React__default.createElement(Grid, { container: true, item: true },
4501
+ React__default.createElement(Grid, { item: true, md: 12, xs: 12 },
4502
+ React__default.createElement(Typography, { style: { padding: "0 24px 12px", fontSize: 25 } },
4503
+ "ASSET: ", assetNodeSelectedInTree === null || assetNodeSelectedInTree === void 0 ? void 0 :
4504
+ assetNodeSelectedInTree.AssetName))),
4505
+ React__default.createElement(Grid, { container: true, style: { alignItems: "center" } },
4506
+ React__default.createElement(DialogContent$2, { dividers: true, style: { padding: "10px 24px 0" } },
4507
+ React__default.createElement(Grid, { item: true, md: 12, xs: 12 },
4508
+ React__default.createElement(Controller, { name: "AssetName", control: control, render: function (_a) {
4509
+ var _b = _a.field, onChange = _b.onChange, value = _b.value;
4510
+ return (React__default.createElement(React__default.Fragment, null,
4511
+ React__default.createElement(TextField, { label: "Asset Name", variant: "outlined", error: !!errors.AssetName, fullWidth: true, margin: "dense", autoComplete: "off", onChange: onChange, value: value, disabled: true })));
4512
+ } })),
4513
+ React__default.createElement(Grid, { container: true },
4514
+ React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { marginBottom: "8px" } },
4515
+ React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { padding: 0, marginTop: 10 } },
4516
+ React__default.createElement(Controller, { name: "ParentAssetName", control: control, render: function (_a) {
4517
+ var _b = _a.field, onChange = _b.onChange, value = _b.value;
4518
+ return (React__default.createElement(React__default.Fragment, null, value ?
4519
+ React__default.createElement(TextField, { label: "Parent Asset Name", variant: "outlined", error: !!errors.AssetName, fullWidth: true, margin: "dense", autoComplete: "off", onChange: onChange, value: value || "", disabled: true }) : React__default.createElement(React__default.Fragment, null)));
4520
+ } }))),
4521
+ React__default.createElement(Grid, { container: true, style: { marginTop: "5px", padding: "0 8px" } },
4522
+ React__default.createElement(Grid, { item: true, xs: 6, md: 6 },
4523
+ React__default.createElement(Controller, { name: "IsAsset", control: control, defaultValue: false, render: function (_a) {
4524
+ var field = _a.field;
4525
+ return (React__default.createElement(FormControlLabel$1, { className: classes.checkbox, control: React__default.createElement(Checkbox$1, { checked: field.value, onChange: function (e) { return field.onChange(e.target.checked); }, name: "IsAsset", color: "primary", disabled: true }), label: "Is Asset" }));
4526
+ } })),
4527
+ React__default.createElement(Grid, { item: true, xs: 6, md: 6 },
4528
+ React__default.createElement(Controller, { name: "CanBeDefaultAsset", control: control, defaultValue: false, render: function (_a) {
4529
+ var field = _a.field;
4530
+ return (React__default.createElement(FormControlLabel$1, { className: classes.checkbox, control: React__default.createElement(Checkbox$1, { checked: field.value, onChange: function (e) { return field.onChange(e.target.checked); }, name: "CanBeDefaultAsset", color: "primary", disabled: true }), label: "Can be Default Asset" }));
4531
+ } }))))))))))));
4532
+ };
4533
+
4534
+ var useStyles$8 = makeStyles(function (theme) { return ({
4535
+ root: {
4536
+ "& .input-group-text": {
4537
+ display: "none"
3521
4538
  },
3522
- dataTable: {
3523
- padding: theme.spacing(1, 2)
4539
+ "& .MuiDialogContent-dividers": {
4540
+ padding: 0
3524
4541
  }
3525
- });
3526
- });
3527
- var TableShiftsCrews = function (_a) {
3528
- var isLoading = _a.isLoading, getShiftsCrewsFromAPI = _a.getShiftsCrewsFromAPI;
3529
- var classes = useStyles$6();
3530
- var _b = useState(false), modalNewActive = _b[0], setModalNewActive = _b[1];
3531
- var _c = useState(false), modalEditShift = _c[0], setModalEditShift = _c[1];
3532
- var _d = useState(false), modalDeleteShift = _d[0], setModalDeleteShift = _d[1];
3533
- var _e = useTableData$1({ setModalEditShift: setModalEditShift, setModalDeleteShift: setModalDeleteShift }), rows = _e.rows, columns = _e.columns;
3534
- return (React.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center", className: classes.root },
3535
- React.createElement(Grid, { item: true, md: 12, xs: 12, style: { padding: "0 15px" } },
3536
- React.createElement(Typography$1, { variant: "h5", style: { margin: "20px 0 20px", fontWeight: 600 } }, "Shifts / Crew")),
3537
- React.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center", className: classes.root },
3538
- React.createElement(Grid, { item: true, md: 12, xs: 12, style: { padding: "0 15px" }, className: classes.relative },
3539
- React.createElement(CreateShift, { show: modalNewActive, onHide: function () { return setModalNewActive(false); }, getShiftsCrewsFromAPI: getShiftsCrewsFromAPI }),
3540
- React.createElement(EditShift, { show: modalEditShift, onHide: function (shouldUpdate) {
3541
- setModalEditShift(false);
3542
- // setProfileForEdit(null)
3543
- if (shouldUpdate)
3544
- getShiftsCrewsFromAPI().then(function () { });
3545
- } }),
3546
- React.createElement(DeleteShift, { show: modalDeleteShift,
3547
- // profileForDelete={profileForDelete}
3548
- onHide: function (shouldUpdate) {
3549
- setModalDeleteShift(false);
3550
- // TODO: debería reiniciar el el actiones.shifData con initial value? o un arreglo vacio de initial value o un arreglo vacio simplemente?
3551
- if (shouldUpdate)
3552
- getShiftsCrewsFromAPI().then(function () { });
3553
- } }),
3554
- React.createElement(DataGrid, { className: classes.dataTable, density: 'compact', autoHeight: true, loading: isLoading, rows: rows, columns: columns, pageSize: 12, disableSelectionOnClick: true }),
3555
- React.createElement(Grid, { container: true, justifyContent: "flex-end" },
3556
- React.createElement(Grid, { item: true, md: 2, xs: 12, className: classes.btnModal },
3557
- React.createElement(Button, { variant: "contained", color: "primary", onClick: function () { return setModalNewActive(!modalNewActive); }, fullWidth: true, style: { margin: "20px 0 20px" } }, "NEW")))))));
4542
+ },
4543
+ modalTitle: {
4544
+ backgroundColor: '#ced2cc',
4545
+ color: '#495057',
4546
+ textAlign: 'center'
4547
+ },
4548
+ modalTitleCloseWO: {
4549
+ backgroundColor: '#28a745',
4550
+ color: 'white',
4551
+ textAlign: 'center'
4552
+ },
4553
+ modalWarning: {
4554
+ color: 'white',
4555
+ backgroundColor: '#dc3545',
4556
+ textAlign: 'center'
4557
+ },
4558
+ messageTitle: {
4559
+ fontSize: 15,
4560
+ fontWeight: 'bold',
4561
+ color: "#0000008A"
4562
+ }, formControl: {
4563
+ margin: theme.spacing(2),
4564
+ minWidth: 120
4565
+ }, errorLabel: {
4566
+ fontSize: 12,
4567
+ color: "#F44336"
4568
+ },
4569
+ infoLabel: {
4570
+ fontSize: 12,
4571
+ color: "#757575"
4572
+ }
4573
+ }); });
4574
+ var RemoveAssetDialog = function (_a) {
4575
+ var show = _a.show, onHide = _a.onHide;
4576
+ var classes = useStyles$8();
4577
+ var _b = useState(true), fullWidth = _b[0]; _b[1];
4578
+ var _c = useState('sm'), maxWidth = _c[0]; _c[1];
4579
+ var _d = useState(false), isSubmitLoading = _d[0], setIsSubmitLoading = _d[1];
4580
+ var _e = useState(false), assetRemovedSuccess = _e[0], setAssetRemovedSuccess = _e[1];
4581
+ var _f = useState(false), error = _f[0], setError = _f[1];
4582
+ var assetNodeSelectedInTree = useConfigurationAssetContext().state.assetNodeSelectedInTree;
4583
+ var searchAssets = useSearchAssets$1().searchAssets;
4584
+ var handleCancel = function () {
4585
+ setIsSubmitLoading(false);
4586
+ onHide(false);
4587
+ };
4588
+ var handleClose = function (event, reason) {
4589
+ if (reason === 'clickaway') {
4590
+ return;
4591
+ }
4592
+ setAssetRemovedSuccess(false);
4593
+ setError(false);
4594
+ };
4595
+ var handleRemoveAsset = function () { return __awaiter(void 0, void 0, void 0, function () {
4596
+ var e_1;
4597
+ return __generator(this, function (_a) {
4598
+ switch (_a.label) {
4599
+ case 0:
4600
+ setIsSubmitLoading(true);
4601
+ _a.label = 1;
4602
+ case 1:
4603
+ _a.trys.push([1, 3, 4, 5]);
4604
+ return [4 /*yield*/, removeAsset(assetNodeSelectedInTree.AssetId, false)];
4605
+ case 2:
4606
+ _a.sent();
4607
+ setAssetRemovedSuccess(true);
4608
+ setIsSubmitLoading(false);
4609
+ onHide(false);
4610
+ return [3 /*break*/, 5];
4611
+ case 3:
4612
+ e_1 = _a.sent();
4613
+ console.log(e_1);
4614
+ setIsSubmitLoading(false);
4615
+ setError(true);
4616
+ return [3 /*break*/, 5];
4617
+ case 4:
4618
+ searchAssets();
4619
+ return [7 /*endfinally*/];
4620
+ case 5: return [2 /*return*/];
4621
+ }
4622
+ });
4623
+ }); };
4624
+ return (React__default.createElement(React__default.Fragment, null,
4625
+ React__default.createElement(Dialog$1, { fullWidth: fullWidth, maxWidth: maxWidth, open: show, onClose: function () { return handleCancel(); }, disableEnforceFocus: true, className: classes.root },
4626
+ React__default.createElement(DialogTitle$2, { id: "responsive-dialog-title" }, "WARNING"),
4627
+ React__default.createElement(DialogContent$2, null,
4628
+ React__default.createElement(DialogContentText$1, { style: { padding: 0, margin: 0 } },
4629
+ "Be careful, once deleted you will not be able to recover this asset ",
4630
+ React__default.createElement("b", null,
4631
+ "(", assetNodeSelectedInTree === null || assetNodeSelectedInTree === void 0 ? void 0 :
4632
+ assetNodeSelectedInTree.AssetName,
4633
+ ")"),
4634
+ ", are you sure you want to delete?")),
4635
+ React__default.createElement(DialogActions$2, { style: { padding: "16px 24px" } },
4636
+ React__default.createElement(Button$1, { onClick: function () { return onHide(false); }, autoFocus: true, color: "default" }, "CANCEL"),
4637
+ React__default.createElement(Button$1, { autoFocus: true, color: "secondary", startIcon: isSubmitLoading && React__default.createElement(CircularProgress$1, { size: "1rem" }), onClick: handleRemoveAsset }, "Delete"))),
4638
+ React__default.createElement(Snackbar, { open: assetRemovedSuccess, autoHideDuration: 2500, onClose: handleClose },
4639
+ React__default.createElement(Alert$2, { severity: "info", onClose: handleClose }, "Asset removed succesfully")),
4640
+ React__default.createElement(Snackbar, { open: error, autoHideDuration: 2500, onClose: handleClose },
4641
+ React__default.createElement(Alert$2, { severity: "error", onClose: handleClose }, "Something went wrong, try again"))));
3558
4642
  };
3559
4643
 
3560
- var ShiftsCrews = function (prop) {
3561
- var _a = useState(true), isLoading = _a[0], setIsLoading = _a[1];
3562
- var _b = useShiftsCrewsContext(), _c = _b.state, shifts = _c.shifts; _c.pruebas; var _d = _b.actions, setShiftsCrews = _d.setShiftsCrews; _d.setPruebas;
3563
- var _e = useState([]); _e[0]; var setPrueba = _e[1];
3564
- var getShiftsCrewsFromAPI = function () { return __awaiter(void 0, void 0, void 0, function () {
3565
- var resp;
4644
+ var useStyles$7 = makeStyles(function (theme) { return ({
4645
+ root: {
4646
+ "& .input-group-text": {
4647
+ display: "none"
4648
+ },
4649
+ "& .MuiPaper-root": {
4650
+ height: "auto"
4651
+ }
4652
+ },
4653
+ customDialog: {
4654
+ "& .MuiDivider-root:last-child": {
4655
+ display: "none"
4656
+ }
4657
+ },
4658
+ checkbox: {
4659
+ userSelect: "none"
4660
+ },
4661
+ modalTitle: {
4662
+ backgroundColor: '#ced2cc',
4663
+ color: '#495057',
4664
+ textAlign: 'center'
4665
+ },
4666
+ modalTitleCloseWO: {
4667
+ backgroundColor: '#28a745',
4668
+ color: 'white',
4669
+ textAlign: 'center'
4670
+ },
4671
+ modalWarning: {
4672
+ color: 'white',
4673
+ backgroundColor: '#dc3545',
4674
+ textAlign: 'center'
4675
+ },
4676
+ messageTitle: {
4677
+ fontSize: 15,
4678
+ fontWeight: 'bold',
4679
+ color: "#0000008A"
4680
+ }, formControl: {
4681
+ margin: theme.spacing(2),
4682
+ minWidth: 120
4683
+ }, errorLabel: {
4684
+ fontSize: 12,
4685
+ color: "#F44336"
4686
+ }
4687
+ }); });
4688
+ var EditAssetDialog = function (_a) {
4689
+ var show = _a.show, onHide = _a.onHide;
4690
+ var classes = useStyles$7();
4691
+ var _b = useState(true), fullWidth = _b[0]; _b[1];
4692
+ var _c = useState('sm'), maxWidth = _c[0]; _c[1];
4693
+ var _d = useState(false), isSubmitLoading = _d[0], setIsSubmitLoading = _d[1];
4694
+ var _e = useState(false); _e[0]; var setAssetEditedSuccess = _e[1];
4695
+ var _f = useState(false); _f[0]; var setError = _f[1];
4696
+ var _g = useState(""); _g[0]; var setErrorMessege = _g[1];
4697
+ var _h = useConfigurationAssetContext(), _j = _h.state, assetNodeSelectedInTree = _j.assetNodeSelectedInTree, assetCodes = _j.assetCodes, setParentAssetNameInNodeSelectedInTree = _h.actions.setParentAssetNameInNodeSelectedInTree;
4698
+ var loadFilterAssets = useAssetCodes().loadFilterAssets;
4699
+ var allAssets = useAssetContext().state.allAssets;
4700
+ var searchAssets = useSearchAssets$1().searchAssets;
4701
+ var _k = useForm({ defaultValues: assetNodeSelectedInTree ? assetNodeSelectedInTree : DATA_ASSET_INITIAL_VALUES }), control = _k.control, reset = _k.reset, setValue = _k.setValue, handleSubmit = _k.handleSubmit, errors = _k.formState.errors;
4702
+ var handleCancel = function () {
4703
+ reset();
4704
+ onHide(false);
4705
+ };
4706
+ var changeParentAssetId = function (value, description) {
4707
+ setValue("ParentAssetId", parseInt(value));
4708
+ setParentAssetNameInNodeSelectedInTree(description);
4709
+ };
4710
+ var updateAssetData = function (data) { return __awaiter(void 0, void 0, void 0, function () {
3566
4711
  return __generator(this, function (_a) {
3567
4712
  switch (_a.label) {
3568
4713
  case 0:
3569
- setIsLoading(true);
3570
- return [4 /*yield*/, getShiftParameters()];
4714
+ setIsSubmitLoading(true);
4715
+ _a.label = 1;
3571
4716
  case 1:
3572
- resp = _a.sent();
3573
- if (resp.ok) {
3574
- setShiftsCrews(resp.data.tables[0].rows);
3575
- // FIXME: el seter no está funcionando
3576
- setPrueba(resp.data.tables[0].rows);
3577
- setIsLoading(false);
3578
- // debugger;
3579
- }
3580
- else {
3581
- console.log("something happened!");
3582
- }
3583
- return [2 /*return*/];
4717
+ _a.trys.push([1, 3, , 4]);
4718
+ return [4 /*yield*/, UpdateAssetData(assetNodeSelectedInTree.AssetId, data.AssetName, data.ParentAssetId, data.IsAsset, data.CanBeDefaultAsset).then(function (res) {
4719
+ if (res) {
4720
+ setIsSubmitLoading(false);
4721
+ setAssetEditedSuccess(true);
4722
+ searchAssets();
4723
+ onHide(true);
4724
+ }
4725
+ })];
4726
+ case 2:
4727
+ _a.sent();
4728
+ return [3 /*break*/, 4];
4729
+ case 3:
4730
+ _a.sent();
4731
+ setErrorMessege("Please select a document and try again");
4732
+ setIsSubmitLoading(false);
4733
+ setError(true);
4734
+ return [3 /*break*/, 4];
4735
+ case 4: return [2 /*return*/];
3584
4736
  }
3585
4737
  });
3586
4738
  }); };
4739
+ var handleFormSubmit = handleSubmit(updateAssetData);
3587
4740
  useEffect(function () {
3588
- getShiftsCrewsFromAPI();
3589
- }, []);
3590
- if (shifts) {
3591
- return (React.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center" },
3592
- React.createElement(Grid, { item: true, md: 12, xs: 12, style: { margin: 0 } },
3593
- React.createElement(Paper, { elevation: 1, style: { width: "100%", padding: "10px 0 20px", borderRadius: "0.75rem" } },
3594
- React.createElement(TableShiftsCrews, { isLoading: isLoading, getShiftsCrewsFromAPI: getShiftsCrewsFromAPI })))));
4741
+ if (show) {
4742
+ loadFilterAssets();
4743
+ setValue("AssetName", assetNodeSelectedInTree === null || assetNodeSelectedInTree === void 0 ? void 0 : assetNodeSelectedInTree.AssetName);
4744
+ setValue("ParentAssetId", assetNodeSelectedInTree === null || assetNodeSelectedInTree === void 0 ? void 0 : assetNodeSelectedInTree.ParentAssetId);
4745
+ var parentAssetNode = allAssets.find(function (node) { return node.AssetId === (assetNodeSelectedInTree === null || assetNodeSelectedInTree === void 0 ? void 0 : assetNodeSelectedInTree.ParentAssetId); });
4746
+ setParentAssetNameInNodeSelectedInTree(parentAssetNode === null || parentAssetNode === void 0 ? void 0 : parentAssetNode.AssetName);
4747
+ setValue("IsAsset", assetNodeSelectedInTree === null || assetNodeSelectedInTree === void 0 ? void 0 : assetNodeSelectedInTree.IsAsset);
4748
+ setValue("CanBeDefaultAsset", assetNodeSelectedInTree === null || assetNodeSelectedInTree === void 0 ? void 0 : assetNodeSelectedInTree.CanBeDefaultAsset);
4749
+ }
4750
+ }, [show]);
4751
+ return ((React__default.createElement("div", { className: classes.root },
4752
+ React__default.createElement(Dialog$1, { fullWidth: fullWidth, maxWidth: maxWidth, open: show, onClose: function () { return handleCancel(); }, disableEnforceFocus: true, className: classes.root },
4753
+ React__default.createElement("form", { onSubmit: handleFormSubmit },
4754
+ React__default.createElement(Grid, { container: true, style: { padding: "15px 0 20px", height: "50%" } },
4755
+ React__default.createElement(Grid, { container: true, item: true },
4756
+ React__default.createElement(Grid, { item: true, md: 12, xs: 12 },
4757
+ React__default.createElement(Typography, { style: { padding: "0 24px 12px", fontSize: 25 } },
4758
+ "ASSET: ", assetNodeSelectedInTree === null || assetNodeSelectedInTree === void 0 ? void 0 :
4759
+ assetNodeSelectedInTree.AssetName))),
4760
+ React__default.createElement(Grid, { container: true, style: { alignItems: "center" } },
4761
+ React__default.createElement(DialogContent$2, { dividers: true, style: { padding: "10px 24px 0" } },
4762
+ React__default.createElement(Grid, { item: true, md: 12, xs: 12 },
4763
+ React__default.createElement(Controller, { name: "AssetName", control: control, render: function (_a) {
4764
+ var _b = _a.field, onChange = _b.onChange, value = _b.value;
4765
+ return (React__default.createElement(React__default.Fragment, null,
4766
+ React__default.createElement(TextField, { label: "Asset Name", variant: "outlined", error: !!errors.AssetName, fullWidth: true, margin: "dense", autoComplete: "off", onChange: onChange, value: value })));
4767
+ } })),
4768
+ React__default.createElement(Grid, { container: true },
4769
+ React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { marginBottom: "8px" } },
4770
+ React__default.createElement(Grid, { item: true, md: 12, xs: 12, style: { padding: 0, marginTop: 10 } },
4771
+ React__default.createElement(Controller, { name: "ParentAssetId", control: control, render: function (_a) { return (React__default.createElement(TreePickerControl, { inputTitle: "Asset", title: "Asset Parent", dataSource: assetCodes, value: (assetNodeSelectedInTree === null || assetNodeSelectedInTree === void 0 ? void 0 : assetNodeSelectedInTree.ParentAssetId) || 1, description: (assetNodeSelectedInTree === null || assetNodeSelectedInTree === void 0 ? void 0 : assetNodeSelectedInTree.ParentAssetName) || "Plant", onSelect: changeParentAssetId, selectBranch: true, selectActive: false, selectInternal: false })); } }))),
4772
+ React__default.createElement(Grid, { container: true, style: { marginTop: "5px", padding: "0 8px" } },
4773
+ React__default.createElement(Grid, { item: true, xs: 6, md: 6 },
4774
+ React__default.createElement(Controller, { name: "IsAsset", control: control, defaultValue: false, render: function (_a) {
4775
+ var field = _a.field;
4776
+ return (React__default.createElement(FormControlLabel$1, { className: classes.checkbox, control: React__default.createElement(Checkbox$1, { checked: field.value, onChange: function (e) { return field.onChange(e.target.checked); }, name: "IsAsset", color: "primary" }), label: "Is Asset" }));
4777
+ } })),
4778
+ React__default.createElement(Grid, { item: true, xs: 6, md: 6 },
4779
+ React__default.createElement(Controller, { name: "CanBeDefaultAsset", control: control, defaultValue: false, render: function (_a) {
4780
+ var field = _a.field;
4781
+ return (React__default.createElement(FormControlLabel$1, { className: classes.checkbox, control: React__default.createElement(Checkbox$1, { checked: field.value, onChange: function (e) { return field.onChange(e.target.checked); }, name: "CanBeDefaultAsset", color: "primary" }), label: "Can be Default Asset" }));
4782
+ } }))))),
4783
+ React__default.createElement(Grid, { item: true, md: 12, xs: 12, justifyContent: "flex-end", style: { marginTop: "15px" } },
4784
+ React__default.createElement(DialogActions$2, { style: { padding: "0px 24px" } },
4785
+ React__default.createElement(Grid, { container: true, justifyContent: "flex-end", style: { margin: 0 } },
4786
+ React__default.createElement(Grid, { container: true, item: true, style: { marginLeft: "auto", marginTop: 5, marginBottom: 0 } },
4787
+ React__default.createElement(Grid, { item: true, md: 6, xs: 12, style: { paddingLeft: "0", paddingRight: "16px" } },
4788
+ React__default.createElement(Button$1, { fullWidth: true, variant: "contained", color: "default", onClick: function () { return handleCancel(); } }, "Cancel")),
4789
+ React__default.createElement(Grid, { item: true, md: 6, xs: 12 },
4790
+ React__default.createElement(Button$1, { fullWidth: true, startIcon: isSubmitLoading && React__default.createElement(CircularProgress$1, { size: "1rem" }), disabled: isSubmitLoading, variant: "contained", color: "primary", type: 'submit' }, "Save")))))))))))));
4791
+ };
4792
+
4793
+ var useStyles$6 = makeStyles$1(function (theme) { return ({
4794
+ root: {},
4795
+ contextMenu: {
4796
+ fontSize: "14px",
4797
+ backgroundColor: "#fff",
4798
+ borderRadius: "2px",
4799
+ padding: "5px 0 5px 0",
4800
+ width: "150px",
4801
+ height: "auto",
4802
+ margin: "0",
4803
+ position: "fixed",
4804
+ listStyle: "none",
4805
+ boxShadow: "0 0 20px 0 #ccc"
4806
+ },
4807
+ storyRoot: {
4808
+ display: "grid",
4809
+ height: "100%",
4810
+ gridTemplateRows: "auto 1fr",
4811
+ listStyleType: "none !important"
4812
+ },
4813
+ assetRoot: {
4814
+ boxSizing: "border-box",
4815
+ height: "100%",
4816
+ padding: "32px"
4817
+ },
4818
+ dropTarget: {
4819
+ boxShadow: "0 0 0 1px #1967d2 inset"
3595
4820
  }
3596
- return React.createElement(LazyLoading, null);
4821
+ }); });
4822
+ var AssetViewComponent = function () {
4823
+ var _a = useState([]), selectedNodes = _a[0], setSelectedNodes = _a[1];
4824
+ var classes = useStyles$6();
4825
+ var _b = useState(false), isDragging = _b[0], setIsDragging = _b[1];
4826
+ var _c = useState(false), isCtrlPressing = _c[0], setIsCtrlPressing = _c[1];
4827
+ var _d = useState(false), isDoubleClick = _d[0], setIsDoubleClick = _d[1];
4828
+ var _e = useConfigurationAssetContext(), _f = _e.state, allAssetNodes = _f.allAssetNodes, showContextMenu = _f.showContextMenu, showCreateNewContextMenu = _f.showCreateNewContextMenu; _f.assetNodeSelectedInTree; var _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;
4829
+ var allAssets = useAssetContext().state.allAssets;
4830
+ var _j = useState([]), asset = _j[0], setAsset = _j[1];
4831
+ var _k = useState([]), originalAsset = _k[0], setOriginalAsset = _k[1];
4832
+ var _l = useAssetActions({ asset: asset, selectedNodes: selectedNodes, originalAsset: originalAsset, setAsset: setAsset, setSelectedNodes: setSelectedNodes, setIsDragging: setIsDragging, isCtrlPressing: isCtrlPressing, setIsCtrlPressing: setIsCtrlPressing }), handleDrop = _l.handleDrop, handleUpdateAsset = _l.handleUpdateAsset, handleCtrlClick = _l.handleCtrlClick, handleDragStart = _l.handleDragStart, handleDragEnd = _l.handleDragEnd, changedNodes = _l.changedNodes, updatedSuccessfullyMessage = _l.updatedSuccessfullyMessage, setUpdatedSuccessfullyMessage = _l.setUpdatedSuccessfullyMessage, setChangedNodes = _l.setChangedNodes;
4833
+ var _m = useState(false), showCreateNewAssetDialog = _m[0], setShowCreateNewAssetDialog = _m[1];
4834
+ var _o = useState(false), showViewerAssetDialog = _o[0], setShowViewerAssetDialog = _o[1];
4835
+ var _p = useState(false), showRemoveAssetDialog = _p[0], setShowRemoveAssetDialog = _p[1];
4836
+ var _q = useState(false), showEditAssetDialog = _q[0], setShowEditAssetDialog = _q[1];
4837
+ var searchAssets = useSearchAssets$1().searchAssets;
4838
+ var handleClose = function (event, reason) {
4839
+ if (reason === 'clickaway') {
4840
+ return;
4841
+ }
4842
+ setUpdatedSuccessfullyMessage(false);
4843
+ };
4844
+ var handleClick = function (e) {
4845
+ if (showContextMenu) {
4846
+ setShowContextMenu(false);
4847
+ setMenuContextAssetId(undefined);
4848
+ }
4849
+ if (showCreateNewContextMenu) {
4850
+ setShowCreateNewContextMenu(false);
4851
+ setMenuContextAssetId(undefined);
4852
+ }
4853
+ };
4854
+ var handleCreateNewContextMenu = function (e) {
4855
+ e.preventDefault();
4856
+ setShowContextMenu(false);
4857
+ var top = e.clientY;
4858
+ var left = e.clientX;
4859
+ setAnchorPointX(left);
4860
+ setAnchorPointY(top);
4861
+ setShowCreateNewContextMenu(true);
4862
+ setAssetNodeSelectedInTree(undefined);
4863
+ };
4864
+ var handleContextMenu = function (data, e) {
4865
+ e.preventDefault();
4866
+ setShowCreateNewContextMenu(false);
4867
+ var top = e.clientY;
4868
+ var left = e.clientX;
4869
+ setAnchorPointX(left);
4870
+ setAnchorPointY(top);
4871
+ setShowContextMenu(true);
4872
+ var selectedNode = allAssets.find(function (node) { return node.AssetId === data.id; });
4873
+ if (selectedNode) {
4874
+ setAssetNodeSelectedInTree(selectedNode);
4875
+ }
4876
+ };
4877
+ var handleShowViewerAsset = function (data, e) {
4878
+ e.preventDefault();
4879
+ setIsDoubleClick(true);
4880
+ var selectedNode = allAssets.find(function (node) { return node.AssetId === data.id; });
4881
+ if (selectedNode) {
4882
+ setAssetNodeSelectedInTree(selectedNode);
4883
+ setShowViewerAssetDialog(true);
4884
+ }
4885
+ };
4886
+ useEffect(function () {
4887
+ var handleKeyDown = function (e) {
4888
+ if (e.key.toLowerCase() === "escape") {
4889
+ setSelectedNodes([]);
4890
+ }
4891
+ else if (e.ctrlKey || e.metaKey) {
4892
+ setIsCtrlPressing(true);
4893
+ }
4894
+ };
4895
+ var handleKeyUp = function (e) {
4896
+ if (e.key.toLowerCase() === "control" || e.key.toLowerCase() === "meta") {
4897
+ setIsCtrlPressing(false);
4898
+ }
4899
+ };
4900
+ window.addEventListener("keydown", handleKeyDown);
4901
+ window.addEventListener("keyup", handleKeyUp);
4902
+ return function () {
4903
+ window.removeEventListener("keydown", handleKeyDown);
4904
+ window.removeEventListener("keyup", handleKeyUp);
4905
+ };
4906
+ }, []);
4907
+ useEffect(function () {
4908
+ setAsset(allAssetNodes);
4909
+ setOriginalAsset(allAssetNodes);
4910
+ }, [allAssetNodes]);
4911
+ useEffect(function () {
4912
+ searchAssets();
4913
+ }, []);
4914
+ return (React__default.createElement("div", { style: { width: "100%", height: "100%" } },
4915
+ React__default.createElement("div", { onClick: handleClick },
4916
+ React__default.createElement("div", { onContextMenu: handleCreateNewContextMenu },
4917
+ React__default.createElement("div", null,
4918
+ React__default.createElement(Grid$1, { container: true, className: classes.root, style: { padding: 20 } },
4919
+ React__default.createElement(Paper$1, { elevation: 1, style: { width: "100%", padding: "15px 20px 10px", borderRadius: "0.75rem" } },
4920
+ React__default.createElement(Paper$1, { elevation: 2, style: { width: "100%", padding: "15px 20px 10px", borderRadius: "0.75rem" } },
4921
+ React__default.createElement(Grid$1, { container: true, alignItems: "center" },
4922
+ React__default.createElement(ThemeProvider, { theme: theme },
4923
+ React__default.createElement(CssBaseline, null),
4924
+ React__default.createElement(Grid$1, { container: true, style: { height: "70vh", overflowY: "auto", paddingBottom: 10 } },
4925
+ React__default.createElement(Grid$1, null,
4926
+ React__default.createElement(Tree, { rootId: 0, tree: asset, classes: {
4927
+ root: classes.assetRoot,
4928
+ dropTarget: classes.dropTarget
4929
+ }, onDrop: handleDrop, onDragStart: handleDragStart, onDragEnd: handleDragEnd, canDrop: function (asset, options) {
4930
+ return !selectedNodes.some(function (selectedNode) { return selectedNode.id === options.dropTargetId; });
4931
+ }, render: function (node, options) {
4932
+ var selected = selectedNodes.some(function (selectedNode) { return selectedNode.id === node.id; });
4933
+ return (React__default.createElement(CustomNode, __assign({ setContextMenuOver: handleContextMenu, node: node }, options, { isSelected: selected, isDragging: selected && isDragging, onClick: handleCtrlClick, onDoubleClick: handleShowViewerAsset })));
4934
+ }, dragPreviewRender: function (monitorProps) {
4935
+ if (selectedNodes.length > 1) {
4936
+ return React__default.createElement(MultipleDragPreview, { dragSources: selectedNodes });
4937
+ }
4938
+ return React__default.createElement(CustomDragPreview, { monitorProps: monitorProps });
4939
+ } })))))),
4940
+ React__default.createElement(Grid$1, { container: true, style: { padding: "20px 0", justifyContent: "flex-end" } },
4941
+ React__default.createElement(Grid$1, { item: true, md: 3, xs: 6, style: { marginRight: "20px" } },
4942
+ React__default.createElement(Button$1, { fullWidth: true, variant: "contained", color: "default", disabled: changedNodes.length ? false : true, onClick: function () { setChangedNodes([]), searchAssets(); } }, "CANCEL")),
4943
+ React__default.createElement(Grid$1, { item: true, md: 3, xs: 6, style: { margin: 0 } },
4944
+ React__default.createElement(Button$1, { fullWidth: true, variant: "contained", color: "primary", disabled: changedNodes.length ? false : true, onClick: function () { return handleUpdateAsset(); } }, "UPDATE TREE"))),
4945
+ React__default.createElement(CreateNewAssetDialog, { show: showCreateNewAssetDialog, onHide: function () { return setShowCreateNewAssetDialog(false); } }),
4946
+ React__default.createElement(EditAssetDialog, { show: showEditAssetDialog, onHide: function () { return setShowEditAssetDialog(false); } }),
4947
+ React__default.createElement(ViewerAssetDialog, { show: showViewerAssetDialog, onHide: function () { setShowViewerAssetDialog(false); setIsDoubleClick(false); } }),
4948
+ React__default.createElement(RemoveAssetDialog, { show: showRemoveAssetDialog, onHide: function () { return setShowRemoveAssetDialog(false); } }))),
4949
+ React__default.createElement(Snackbar$1, { open: updatedSuccessfullyMessage, autoHideDuration: 2500, onClose: handleClose },
4950
+ React__default.createElement(Alert$3, { severity: "success", onClose: handleClose }, "Asset updated successfully"))),
4951
+ showContextMenu && !isDoubleClick ? (React__default.createElement("ul", { className: classes.contextMenu, style: { top: y, left: x } },
4952
+ React__default.createElement(MenuItem$1, { onClick: function () { return setShowViewerAssetDialog(true); } }, "View Asset"),
4953
+ React__default.createElement(MenuItem$1, { onClick: function () { return setShowEditAssetDialog(true); } }, "Edit Asset"),
4954
+ React__default.createElement(MenuItem$1, { onClick: function () { return setShowCreateNewAssetDialog(true); } }, "Create Asset"),
4955
+ React__default.createElement(MenuItem$1, { onClick: function () { return setShowRemoveAssetDialog(true); } }, "Remove Asset"))) : '',
4956
+ showCreateNewContextMenu ?
4957
+ React__default.createElement("ul", { className: classes.contextMenu, style: { top: y, left: x } },
4958
+ React__default.createElement(MenuItem$1, { onClick: function () { return setShowCreateNewAssetDialog(true); } }, "Create Asset"))
4959
+ : ''))));
3597
4960
  };
3598
4961
 
3599
- var ShiftsCrewsPage = function (props) {
3600
- return (React.createElement(ShiftsCrewsProvider, null,
3601
- React.createElement(ShiftsCrews, null)));
4962
+ var ConfigurationAssetComponent = function () {
4963
+ return (React__default.createElement(React__default.Fragment, null,
4964
+ React__default.createElement(DndProvider, { backend: HTML5Backend },
4965
+ React__default.createElement(AssetViewComponent, null))));
4966
+ };
4967
+
4968
+ var ConfigurationAssetPage = function () {
4969
+ return (React.createElement(React.Fragment, null,
4970
+ React.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center" },
4971
+ React.createElement(ConfigurationAssetComponent, null))));
4972
+ };
4973
+
4974
+ var AssetPage = function (props) {
4975
+ return (React.createElement(ConfigurationAssetProvider, null,
4976
+ React.createElement(ConfigurationAssetPage, null)));
3602
4977
  };
3603
4978
 
3604
4979
  var UsersInitialState = {
@@ -3955,7 +5330,7 @@ var AuthTypeSelector = function (_a) {
3955
5330
  (!isLoading && authTypes.length) ? (React.createElement(FormControl, { variant: 'outlined', fullWidth: true },
3956
5331
  React.createElement(InputLabel, { id: "auth-type-label" }, "Auth Type"),
3957
5332
  React.createElement(Select, { fullWidth: true, labelId: "auth-type-label", id: "auth-type-id", value: value, onChange: onChange, input: React.createElement(Input, { id: "select-multiple-chip" }), renderValue: function (selected) { return (React.createElement(Chip, { key: "selected-authType-".concat(selected), label: selectedAuthTypeName })); } }, authTypes.map(function (authType) { return (React.createElement(MenuItem, { key: "authType-".concat(authType.AuthTypeId), value: authType.AuthTypeId }, authType.Name)); })))) : null,
3958
- !isLoading && error ? (React.createElement(Alert$2, { color: 'error' }, error)) : null));
5333
+ !isLoading && error ? (React.createElement(Alert$3, { color: 'error' }, error)) : null));
3959
5334
  };
3960
5335
 
3961
5336
  var useStyles$4 = makeStyles(function (theme) {
@@ -4906,7 +6281,7 @@ var MESApiService = /** @class */ (function () {
4906
6281
  throw new FetchError(errorMsg.message, 404, "ERR_CONNECTION_REFUSED");
4907
6282
  })
4908
6283
  .then(function (response) {
4909
- if (response.status === 401) {
6284
+ if (response.status === 499 || response.status === 401) {
4910
6285
  window.location.href = "".concat(base$2, "logout?message=Session%20expired&redirectTo=").concat(window.location.href);
4911
6286
  }
4912
6287
  isError = { ok: response.ok, status: response.status, statusText: response.statusText };
@@ -4958,7 +6333,7 @@ var MESApiService = /** @class */ (function () {
4958
6333
  throw new FetchError(errorMsg.message, 404, "ERR_CONNECTION_REFUSED");
4959
6334
  })
4960
6335
  .then(function (response) {
4961
- if (response.status === 401) {
6336
+ if (response.status === 499 || response.status === 401) {
4962
6337
  window.location.href = "".concat(base$2, "logout?message=Session%20expired&redirectTo=").concat(window.location.href);
4963
6338
  }
4964
6339
  isError = { ok: response.ok, status: response.status, statusText: response.statusText };
@@ -5013,7 +6388,7 @@ var MESApiService = /** @class */ (function () {
5013
6388
  throw new FetchError(errorMsg.message, 404, "ERR_CONNECTION_REFUSED");
5014
6389
  })
5015
6390
  .then(function (response) {
5016
- if (response.status === 401) {
6391
+ if (response.status === 499 || response.status === 401) {
5017
6392
  window.location.href = "".concat(base$2, "logout?message=Session%20expired&redirectTo=").concat(window.location.href);
5018
6393
  }
5019
6394
  isError = { ok: response.ok, status: response.status, statusText: response.statusText };
@@ -5066,7 +6441,7 @@ var MESApiService = /** @class */ (function () {
5066
6441
  throw new FetchError(errorMsg.message, 404, "ERR_CONNECTION_REFUSED");
5067
6442
  })
5068
6443
  .then(function (response) {
5069
- if (response.status === 401) {
6444
+ if (response.status === 499 || response.status === 401) {
5070
6445
  window.location.href = "".concat(base$2, "logout?message=Session%20expired&redirectTo=").concat(window.location.href);
5071
6446
  }
5072
6447
  isError = { ok: response.ok, status: response.status, statusText: response.statusText };
@@ -5135,7 +6510,7 @@ var MESApiService = /** @class */ (function () {
5135
6510
  throw new FetchError(errorMsg.message, 404, "ERR_CONNECTION_REFUSED");
5136
6511
  })
5137
6512
  .then(function (response) {
5138
- if (response.status === 401) {
6513
+ if (response.status === 499 || response.status === 401) {
5139
6514
  window.location.href = "".concat(base$2, "logout?message=Session%20expired&redirectTo=").concat(window.location.href);
5140
6515
  }
5141
6516
  isError = { ok: response.ok, status: response.status, statusText: response.statusText };
@@ -5427,8 +6802,8 @@ function renewToken() {
5427
6802
  });
5428
6803
  }
5429
6804
  function isUnauthorizedError(error) {
5430
- var _a = error.response, status = _a.status; _a.statusText;
5431
- return status === 401;
6805
+ var status = error.response.status;
6806
+ return status === 499 || status === 499; // custom status code
5432
6807
  }
5433
6808
  var axiosInstance = axios.create({
5434
6809
  headers: {
@@ -5472,7 +6847,7 @@ axiosInstance.interceptors.response.use(function (res) { return res; }, function
5472
6847
  case 4: return [2 /*return*/, _b.sent()];
5473
6848
  case 5:
5474
6849
  innerError_1 = _b.sent();
5475
- // if original req failed with 401 again - it means server returned not valid token for refresh request
6850
+ // if original req failed with 499 again - it means server returned not valid token for refresh request
5476
6851
  if (isUnauthorizedError(innerError_1)) {
5477
6852
  return [2 /*return*/, innerError_1];
5478
6853
  }
@@ -5998,40 +7373,6 @@ var ConfigurationContext = React__default.createContext([
5998
7373
  ]);
5999
7374
  var NavbarContext = React__default.createContext(function () { return React__default.createElement(React__default.Fragment, null); });
6000
7375
 
6001
- var AssetInitialState = {
6002
- areasList: [],
6003
- allAssets: []
6004
- };
6005
- var AssetReducer = createSlice({
6006
- name: "__",
6007
- initialState: AssetInitialState,
6008
- reducers: {
6009
- setAreasList: function (state, _a) {
6010
- var payload = _a.payload;
6011
- state.areasList = payload;
6012
- },
6013
- // ===========================
6014
- setAllAssets: function (state, _a) {
6015
- var payload = _a.payload;
6016
- state.allAssets = payload;
6017
- }
6018
- }
6019
- });
6020
-
6021
- var AssetContext = createContext({
6022
- state: AssetReducer.getInitialState(),
6023
- actions: AssetReducer.actions
6024
- });
6025
- var useAssetContext = function () { return useContext(AssetContext); };
6026
- var AssetProvider = function (_a) {
6027
- var children = _a.children;
6028
- var _b = useComplexState({
6029
- initialState: AssetReducer.getInitialState(),
6030
- reducers: AssetReducer.caseReducers
6031
- }), state = _b[0], actions = _b[1];
6032
- return (React__default.createElement(AssetContext.Provider, { value: { state: state, actions: actions } }, children));
6033
- };
6034
-
6035
7376
  var useSearchAssets = function () {
6036
7377
  var _a = useAssetContext().actions, setAllAssets = _a.setAllAssets, setAreasList = _a.setAreasList;
6037
7378
  var searchAssets = function () {
@@ -6163,6 +7504,11 @@ function Configuration() {
6163
7504
  sidebar: function () { return React__default.createElement("div", null, "Shifts"); },
6164
7505
  main: function () { return React__default.createElement(ShiftsCrewsPage, null); }
6165
7506
  },
7507
+ {
7508
+ path: "asset",
7509
+ sidebar: function () { return React__default.createElement("div", null, "Configuration Asset"); },
7510
+ main: function () { return React__default.createElement(AssetPage, null); }
7511
+ },
6166
7512
  {
6167
7513
  path: "users",
6168
7514
  sidebar: function () { return React__default.createElement("div", null, "Users"); },
@@ -6191,7 +7537,9 @@ function Configuration() {
6191
7537
  React__default.createElement("h3", { className: "mes-menu-group" }, "Plant"),
6192
7538
  React__default.createElement(MenuList, { className: "mes-submenu" },
6193
7539
  React__default.createElement(MenuItem, { selected: option === 'shifts', className: "p-0" },
6194
- React__default.createElement(Link, { to: "/configuration/shifts", className: "nav-link" }, "Shift / Crews"))),
7540
+ React__default.createElement(Link, { to: "/configuration/shifts", className: "nav-link" }, "Shift / Crews")),
7541
+ React__default.createElement(MenuItem, { selected: option === 'asset', className: "p-0" },
7542
+ React__default.createElement(Link, { to: "/configuration/asset", className: "nav-link" }, "Configuration Asset"))),
6195
7543
  React__default.createElement("h3", { className: "mes-menu-group" }, "Security"),
6196
7544
  React__default.createElement(MenuList, { className: "mes-submenu" },
6197
7545
  React__default.createElement(MenuItem, { selected: option === 'users', className: "p-0" },