@dexteel/mesf-core 5.11.0 → 5.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.release-please-manifest.json +1 -1
- package/CHANGELOG.md +35 -0
- package/CLAUDE.md +89 -0
- package/dist/configuration/pages/asset/components/AssetConfiguration/AssetSearchInput.d.ts +10 -0
- package/dist/configuration/pages/asset/hooks/useAssetSearch.d.ts +29 -0
- package/dist/configuration/pages/users/repositories/UsersRepository.d.ts +1 -0
- package/dist/context/userContext.d.ts +20 -0
- package/dist/index.esm.js +303 -42
- package/dist/index.esm.js.map +1 -1
- package/dist/reducers/UserReducer.d.ts +19 -0
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { LicenseManager } from 'ag-grid-enterprise';
|
|
2
|
-
import { withStyles, DialogTitle as DialogTitle$1, DialogContent as DialogContent$1, DialogActions as DialogActions$1, createStyles, Grid, Button, alpha, makeStyles, Dialog as Dialog$1, TextField, Paper, List, ListItem, ListItemIcon, ListItemText, Chip, SvgIcon, Collapse, Typography as Typography$1, Checkbox, InputAdornment, IconButton as IconButton$1, MenuItem, Box, Card, CardContent, CardActions, Tooltip, FormControl, InputLabel, Select, CircularProgress, Snackbar, FormControlLabel, Switch, DialogContentText, Badge, useTheme, Input, Divider, CssBaseline, AppBar, Toolbar, Container, Menu, Hidden, Drawer, useMediaQuery, ListSubheader, debounce, createTheme, ThemeProvider } from '@material-ui/core';
|
|
2
|
+
import { withStyles, DialogTitle as DialogTitle$1, DialogContent as DialogContent$1, DialogActions as DialogActions$1, createStyles, Grid, Button, alpha, makeStyles, Dialog as Dialog$1, TextField, Paper, List, ListItem, ListItemIcon, ListItemText, Chip, SvgIcon, Collapse, Typography as Typography$1, Checkbox, InputAdornment, IconButton as IconButton$1, MenuItem, Box, Card, CardContent, CardActions, Tooltip, FormControl, InputLabel, Select, CircularProgress, Snackbar, FormControlLabel, Switch, DialogContentText, Popover, MenuList, Badge, useTheme, Input, Divider, CssBaseline, AppBar, Toolbar, Container, Menu, Hidden, Drawer, useMediaQuery, ListSubheader, debounce, createTheme, ThemeProvider } from '@material-ui/core';
|
|
3
3
|
import { values, get, isNil, isEmpty, round, isNaN as isNaN$1, isNumber } from 'lodash-es';
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import React__default, { useState, useRef, useEffect, useMemo, Component, createContext, useContext, useCallback, lazy, Suspense } from 'react';
|
|
@@ -42,7 +42,7 @@ import zoomPlugin from 'chartjs-plugin-zoom';
|
|
|
42
42
|
import LockIcon from '@material-ui/icons/Lock';
|
|
43
43
|
import SaveIcon from '@material-ui/icons/Save';
|
|
44
44
|
import Button$1 from '@material-ui/core/Button';
|
|
45
|
-
import Popover from '@material-ui/core/Popover';
|
|
45
|
+
import Popover$1 from '@material-ui/core/Popover';
|
|
46
46
|
import CreateIcon from '@material-ui/icons/Create';
|
|
47
47
|
import { isAncestor, Tree, DndProvider as DndProvider$1 } from '@minoru/react-dnd-treeview';
|
|
48
48
|
import FolderIcon from '@material-ui/icons/Folder';
|
|
@@ -6708,6 +6708,222 @@ var useAssetActions = function (_a) {
|
|
|
6708
6708
|
return { handleDrop: handleDrop, handleCtrlClick: handleCtrlClick, handleDragEnd: handleDragEnd, handleDragStart: handleDragStart };
|
|
6709
6709
|
};
|
|
6710
6710
|
|
|
6711
|
+
var useAssetSearch = function (_a) {
|
|
6712
|
+
var assetNodes = _a.assetNodes, externalSearchTerm = _a.externalSearchTerm, onSearchTermChange = _a.onSearchTermChange;
|
|
6713
|
+
var _b = useState(externalSearchTerm || ""), searchTerm = _b[0], setSearchTerm = _b[1];
|
|
6714
|
+
var _c = useState([]), searchResults = _c[0], setSearchResults = _c[1];
|
|
6715
|
+
var _d = useState(false), showSearchResults = _d[0], setShowSearchResults = _d[1];
|
|
6716
|
+
var _e = useState(-1), focusedSearchIndex = _e[0], setFocusedSearchIndex = _e[1];
|
|
6717
|
+
var searchTimeoutRef = useRef(null);
|
|
6718
|
+
var searchResultsRefs = useRef([]);
|
|
6719
|
+
var searchIndex = useMemo(function () {
|
|
6720
|
+
var index = [];
|
|
6721
|
+
var nodeMap = new Map();
|
|
6722
|
+
assetNodes.forEach(function (node) {
|
|
6723
|
+
if (node.id !== undefined && node.id !== null) {
|
|
6724
|
+
nodeMap.set(node.id, node);
|
|
6725
|
+
}
|
|
6726
|
+
});
|
|
6727
|
+
var buildNodePath = function (nodeId) {
|
|
6728
|
+
var path = [];
|
|
6729
|
+
var currentNode = nodeMap.get(nodeId);
|
|
6730
|
+
while (currentNode && currentNode.parent !== -1) {
|
|
6731
|
+
path.unshift(currentNode.text);
|
|
6732
|
+
currentNode = nodeMap.get(currentNode.parent);
|
|
6733
|
+
}
|
|
6734
|
+
if (currentNode && currentNode.parent === -1) {
|
|
6735
|
+
path.unshift(currentNode.text);
|
|
6736
|
+
}
|
|
6737
|
+
return path;
|
|
6738
|
+
};
|
|
6739
|
+
assetNodes.forEach(function (node) {
|
|
6740
|
+
if (node.id === undefined || node.id === null || !node.text)
|
|
6741
|
+
return;
|
|
6742
|
+
var nodePath = buildNodePath(node.id);
|
|
6743
|
+
var pathStr = nodePath.join(" > ");
|
|
6744
|
+
var hasChildren = assetNodes.some(function (child) { return child.parent === node.id; });
|
|
6745
|
+
index.push({
|
|
6746
|
+
id: node.id,
|
|
6747
|
+
name: node.text,
|
|
6748
|
+
path: pathStr,
|
|
6749
|
+
isDroppable: node.droppable || false,
|
|
6750
|
+
hasChildren: hasChildren,
|
|
6751
|
+
node: node,
|
|
6752
|
+
});
|
|
6753
|
+
});
|
|
6754
|
+
return index;
|
|
6755
|
+
}, [assetNodes]);
|
|
6756
|
+
var searchNodes = function (searchTerm) {
|
|
6757
|
+
var lowerSearchTerm = searchTerm.toLowerCase();
|
|
6758
|
+
return searchIndex.filter(function (item) {
|
|
6759
|
+
return item.name.toLowerCase().includes(lowerSearchTerm);
|
|
6760
|
+
});
|
|
6761
|
+
};
|
|
6762
|
+
React__default.useEffect(function () {
|
|
6763
|
+
if (externalSearchTerm !== undefined && externalSearchTerm !== searchTerm) {
|
|
6764
|
+
setSearchTerm(externalSearchTerm);
|
|
6765
|
+
}
|
|
6766
|
+
}, [externalSearchTerm]);
|
|
6767
|
+
var handleSearchChange = function (event) {
|
|
6768
|
+
var term = event.target.value;
|
|
6769
|
+
setSearchTerm(term);
|
|
6770
|
+
onSearchTermChange === null || onSearchTermChange === void 0 ? void 0 : onSearchTermChange(term);
|
|
6771
|
+
if (searchTimeoutRef.current) {
|
|
6772
|
+
clearTimeout(searchTimeoutRef.current);
|
|
6773
|
+
}
|
|
6774
|
+
if (term.trim() === "" || term.length < 2) {
|
|
6775
|
+
setSearchResults([]);
|
|
6776
|
+
setShowSearchResults(false);
|
|
6777
|
+
setFocusedSearchIndex(-1);
|
|
6778
|
+
return;
|
|
6779
|
+
}
|
|
6780
|
+
searchTimeoutRef.current = setTimeout(function () {
|
|
6781
|
+
var results = searchNodes(term);
|
|
6782
|
+
setSearchResults(results);
|
|
6783
|
+
setShowSearchResults(results.length > 0);
|
|
6784
|
+
var newFocusIndex = results.length > 0 ? 0 : -1;
|
|
6785
|
+
setFocusedSearchIndex(newFocusIndex);
|
|
6786
|
+
searchResultsRefs.current = new Array(results.length).fill(null);
|
|
6787
|
+
}, 250);
|
|
6788
|
+
};
|
|
6789
|
+
var handleKeyDown = function (event) {
|
|
6790
|
+
if (event.key === "Escape") {
|
|
6791
|
+
if (showSearchResults) {
|
|
6792
|
+
setSearchTerm("");
|
|
6793
|
+
setSearchResults([]);
|
|
6794
|
+
setShowSearchResults(false);
|
|
6795
|
+
setFocusedSearchIndex(-1);
|
|
6796
|
+
}
|
|
6797
|
+
return undefined;
|
|
6798
|
+
}
|
|
6799
|
+
if (showSearchResults && searchResults.length > 0) {
|
|
6800
|
+
if (event.key === "ArrowDown") {
|
|
6801
|
+
event.preventDefault();
|
|
6802
|
+
var newIndex_1 = focusedSearchIndex < searchResults.length - 1
|
|
6803
|
+
? focusedSearchIndex + 1
|
|
6804
|
+
: 0;
|
|
6805
|
+
setFocusedSearchIndex(newIndex_1);
|
|
6806
|
+
setTimeout(function () { return scrollFocusedItemIntoView(newIndex_1); }, 0);
|
|
6807
|
+
}
|
|
6808
|
+
else if (event.key === "ArrowUp") {
|
|
6809
|
+
event.preventDefault();
|
|
6810
|
+
var newIndex_2 = focusedSearchIndex > 0
|
|
6811
|
+
? focusedSearchIndex - 1
|
|
6812
|
+
: searchResults.length - 1;
|
|
6813
|
+
setFocusedSearchIndex(newIndex_2);
|
|
6814
|
+
setTimeout(function () { return scrollFocusedItemIntoView(newIndex_2); }, 0);
|
|
6815
|
+
}
|
|
6816
|
+
else if (event.key === "Enter" && focusedSearchIndex >= 0) {
|
|
6817
|
+
event.preventDefault();
|
|
6818
|
+
var selectedResult = searchResults[focusedSearchIndex];
|
|
6819
|
+
return selectedResult;
|
|
6820
|
+
}
|
|
6821
|
+
}
|
|
6822
|
+
return undefined;
|
|
6823
|
+
};
|
|
6824
|
+
var scrollFocusedItemIntoView = function (index) {
|
|
6825
|
+
var _a;
|
|
6826
|
+
if (searchResultsRefs.current[index]) {
|
|
6827
|
+
(_a = searchResultsRefs.current[index]) === null || _a === void 0 ? void 0 : _a.scrollIntoView({
|
|
6828
|
+
behavior: "smooth",
|
|
6829
|
+
block: "nearest",
|
|
6830
|
+
});
|
|
6831
|
+
}
|
|
6832
|
+
};
|
|
6833
|
+
var clearSearch = function () {
|
|
6834
|
+
setSearchTerm("");
|
|
6835
|
+
setSearchResults([]);
|
|
6836
|
+
setShowSearchResults(false);
|
|
6837
|
+
setFocusedSearchIndex(-1);
|
|
6838
|
+
onSearchTermChange === null || onSearchTermChange === void 0 ? void 0 : onSearchTermChange("");
|
|
6839
|
+
};
|
|
6840
|
+
var triggerSearch = function (term) {
|
|
6841
|
+
setSearchTerm(term);
|
|
6842
|
+
onSearchTermChange === null || onSearchTermChange === void 0 ? void 0 : onSearchTermChange(term);
|
|
6843
|
+
if (searchTimeoutRef.current) {
|
|
6844
|
+
clearTimeout(searchTimeoutRef.current);
|
|
6845
|
+
}
|
|
6846
|
+
if (term.trim() === "" || term.length < 2) {
|
|
6847
|
+
setSearchResults([]);
|
|
6848
|
+
setShowSearchResults(false);
|
|
6849
|
+
setFocusedSearchIndex(-1);
|
|
6850
|
+
return;
|
|
6851
|
+
}
|
|
6852
|
+
searchTimeoutRef.current = setTimeout(function () {
|
|
6853
|
+
var results = searchNodes(term);
|
|
6854
|
+
setSearchResults(results);
|
|
6855
|
+
setShowSearchResults(results.length > 0);
|
|
6856
|
+
var newFocusIndex = results.length > 0 ? 0 : -1;
|
|
6857
|
+
setFocusedSearchIndex(newFocusIndex);
|
|
6858
|
+
searchResultsRefs.current = new Array(results.length).fill(null);
|
|
6859
|
+
}, 250);
|
|
6860
|
+
};
|
|
6861
|
+
return {
|
|
6862
|
+
searchTerm: searchTerm,
|
|
6863
|
+
searchResults: searchResults,
|
|
6864
|
+
showSearchResults: showSearchResults,
|
|
6865
|
+
focusedSearchIndex: focusedSearchIndex,
|
|
6866
|
+
searchResultsRefs: searchResultsRefs,
|
|
6867
|
+
handleSearchChange: handleSearchChange,
|
|
6868
|
+
handleKeyDown: handleKeyDown,
|
|
6869
|
+
scrollFocusedItemIntoView: scrollFocusedItemIntoView,
|
|
6870
|
+
clearSearch: clearSearch,
|
|
6871
|
+
triggerSearch: triggerSearch,
|
|
6872
|
+
};
|
|
6873
|
+
};
|
|
6874
|
+
|
|
6875
|
+
var AssetSearchInput = function (_a) {
|
|
6876
|
+
var assetNodes = _a.assetNodes, onSearchResultClick = _a.onSearchResultClick;
|
|
6877
|
+
var searchInputRef = useRef(null);
|
|
6878
|
+
var _b = useState(null), anchorEl = _b[0], setAnchorEl = _b[1];
|
|
6879
|
+
var _c = useAssetSearch({ assetNodes: assetNodes }), searchTerm = _c.searchTerm, searchResults = _c.searchResults, showSearchResults = _c.showSearchResults, focusedSearchIndex = _c.focusedSearchIndex, searchResultsRefs = _c.searchResultsRefs, handleSearchChange = _c.handleSearchChange, handleKeyDown = _c.handleKeyDown, clearSearch = _c.clearSearch;
|
|
6880
|
+
var handleSearchResultClick = function (result) {
|
|
6881
|
+
onSearchResultClick(result);
|
|
6882
|
+
clearSearch();
|
|
6883
|
+
setAnchorEl(null);
|
|
6884
|
+
};
|
|
6885
|
+
var handleKeyDownWithResultSelection = function (event) {
|
|
6886
|
+
var selectedResult = handleKeyDown(event);
|
|
6887
|
+
if (selectedResult) {
|
|
6888
|
+
handleSearchResultClick(selectedResult);
|
|
6889
|
+
}
|
|
6890
|
+
};
|
|
6891
|
+
var handleSearchInputChange = function (event) {
|
|
6892
|
+
handleSearchChange(event);
|
|
6893
|
+
if (!anchorEl && searchInputRef.current) {
|
|
6894
|
+
setAnchorEl(searchInputRef.current);
|
|
6895
|
+
}
|
|
6896
|
+
};
|
|
6897
|
+
var handlePopoverClose = function () {
|
|
6898
|
+
setAnchorEl(null);
|
|
6899
|
+
};
|
|
6900
|
+
return (React__default.createElement("div", { onKeyDown: handleKeyDownWithResultSelection, style: { marginBottom: 16 } },
|
|
6901
|
+
React__default.createElement(TextField, { placeholder: "Search assets (min. 2 characters)...", variant: "outlined", size: "small", fullWidth: true, value: searchTerm, onChange: handleSearchInputChange, inputRef: searchInputRef, InputProps: {
|
|
6902
|
+
startAdornment: (React__default.createElement(InputAdornment, { position: "start" },
|
|
6903
|
+
React__default.createElement(SearchIcon, { color: "action" }))),
|
|
6904
|
+
} }),
|
|
6905
|
+
React__default.createElement(Popover, { open: showSearchResults && Boolean(anchorEl), anchorEl: anchorEl, onClose: handlePopoverClose, disableAutoFocus: true, disableEnforceFocus: true, anchorOrigin: {
|
|
6906
|
+
vertical: "bottom",
|
|
6907
|
+
horizontal: "left",
|
|
6908
|
+
}, transformOrigin: {
|
|
6909
|
+
vertical: "top",
|
|
6910
|
+
horizontal: "left",
|
|
6911
|
+
}, PaperProps: {
|
|
6912
|
+
style: { width: anchorEl === null || anchorEl === void 0 ? void 0 : anchorEl.offsetWidth, maxHeight: 300 },
|
|
6913
|
+
} },
|
|
6914
|
+
React__default.createElement(MenuList, { dense: true }, searchResults.map(function (result, index) { return (React__default.createElement(MenuItem, { key: result.id, ref: function (el) {
|
|
6915
|
+
if (searchResultsRefs.current) {
|
|
6916
|
+
searchResultsRefs.current[index] = el;
|
|
6917
|
+
}
|
|
6918
|
+
}, selected: index === focusedSearchIndex, onClick: function () { return handleSearchResultClick(result); } },
|
|
6919
|
+
React__default.createElement(ListItemIcon, null, result.hasChildren || result.isDroppable ? (React__default.createElement(AccountTreeIcon, { color: "primary", fontSize: "small" })) : (React__default.createElement(Settings$1, { color: "primary", fontSize: "small" }))),
|
|
6920
|
+
React__default.createElement(ListItemText, { primary: result.name, secondary: result.path, secondaryTypographyProps: {
|
|
6921
|
+
variant: "caption",
|
|
6922
|
+
color: "textSecondary",
|
|
6923
|
+
style: { fontStyle: "italic" },
|
|
6924
|
+
} }))); })))));
|
|
6925
|
+
};
|
|
6926
|
+
|
|
6711
6927
|
var TypeIcon = function (props) {
|
|
6712
6928
|
if (props.droppable) {
|
|
6713
6929
|
return React__default.createElement(FolderIcon, null);
|
|
@@ -6953,7 +7169,7 @@ var AssetViewComponent = function () {
|
|
|
6953
7169
|
var _b = useState(false), isDragging = _b[0], setIsDragging = _b[1];
|
|
6954
7170
|
var _c = useState(false), isCtrlPressing = _c[0], setIsCtrlPressing = _c[1];
|
|
6955
7171
|
var _d = useState(false), isDoubleClick = _d[0], setIsDoubleClick = _d[1];
|
|
6956
|
-
var _e = useConfigurationAssetContext(), _f = _e.state, allAssetNodes = _f.allAssetNodes, openAssets = _f.openAssets, showContextMenu = _f.showContextMenu, showCreateNewContextMenu = _f.showCreateNewContextMenu, assetNodeSelectedInTree = _f.assetNodeSelectedInTree, _g = _f.anchorPoint, x = _g.x, y = _g.y, _h = _e.actions, setShowContextMenu = _h.setShowContextMenu, setShowCreateNewContextMenu = _h.setShowCreateNewContextMenu, setMenuContextAssetId = _h.setMenuContextAssetId, setAnchorPointX = _h.setAnchorPointX, setAnchorPointY = _h.setAnchorPointY, setAssetNodeSelectedInTree = _h.setAssetNodeSelectedInTree;
|
|
7172
|
+
var _e = useConfigurationAssetContext(), _f = _e.state, allAssetNodes = _f.allAssetNodes, openAssets = _f.openAssets, showContextMenu = _f.showContextMenu, showCreateNewContextMenu = _f.showCreateNewContextMenu, assetNodeSelectedInTree = _f.assetNodeSelectedInTree, _g = _f.anchorPoint, x = _g.x, y = _g.y, _h = _e.actions, setShowContextMenu = _h.setShowContextMenu, setShowCreateNewContextMenu = _h.setShowCreateNewContextMenu, setMenuContextAssetId = _h.setMenuContextAssetId, setAnchorPointX = _h.setAnchorPointX, setAnchorPointY = _h.setAnchorPointY, setAssetNodeSelectedInTree = _h.setAssetNodeSelectedInTree, setOpenAssets = _h.setOpenAssets;
|
|
6957
7173
|
var allAssets = useAssetContext().state.allAssets;
|
|
6958
7174
|
var _j = useState(false), showCreateNewAssetDialog = _j[0], setShowCreateNewAssetDialog = _j[1];
|
|
6959
7175
|
var _k = useState(false), showViewerAssetDialog = _k[0], setShowViewerAssetDialog = _k[1];
|
|
@@ -7042,6 +7258,39 @@ var AssetViewComponent = function () {
|
|
|
7042
7258
|
setShowCreateNewContextMenu(false);
|
|
7043
7259
|
setShowContextMenu(false);
|
|
7044
7260
|
};
|
|
7261
|
+
var handleSearchResultClick = function (result) {
|
|
7262
|
+
var expandPath = function (nodeId) {
|
|
7263
|
+
var path = [];
|
|
7264
|
+
var findNodeAndPath = function (currentId) {
|
|
7265
|
+
var node = allAssetNodes.find(function (n) { return n.id === currentId; });
|
|
7266
|
+
if (node && node.parent !== -1) {
|
|
7267
|
+
path.unshift(currentId);
|
|
7268
|
+
findNodeAndPath(node.parent);
|
|
7269
|
+
}
|
|
7270
|
+
else if (node) {
|
|
7271
|
+
path.unshift(currentId);
|
|
7272
|
+
}
|
|
7273
|
+
};
|
|
7274
|
+
findNodeAndPath(nodeId);
|
|
7275
|
+
return path;
|
|
7276
|
+
};
|
|
7277
|
+
var pathToExpand = expandPath(result.id);
|
|
7278
|
+
var newOpenAssets = __assign({}, openAssets);
|
|
7279
|
+
pathToExpand.forEach(function (nodeId) {
|
|
7280
|
+
newOpenAssets[nodeId] = nodeId;
|
|
7281
|
+
});
|
|
7282
|
+
setOpenAssets(newOpenAssets);
|
|
7283
|
+
setSelectedNodes([result.node]);
|
|
7284
|
+
setTimeout(function () {
|
|
7285
|
+
var nodeElement = document.querySelector("[data-node-id=\"".concat(result.id, "\"]"));
|
|
7286
|
+
if (nodeElement) {
|
|
7287
|
+
nodeElement.scrollIntoView({
|
|
7288
|
+
behavior: "smooth",
|
|
7289
|
+
block: "center",
|
|
7290
|
+
});
|
|
7291
|
+
}
|
|
7292
|
+
}, 300);
|
|
7293
|
+
};
|
|
7045
7294
|
useEffect(function () {
|
|
7046
7295
|
searchAssets();
|
|
7047
7296
|
}, []);
|
|
@@ -7052,8 +7301,8 @@ var AssetViewComponent = function () {
|
|
|
7052
7301
|
React__default.createElement("div", { onClick: handleClick },
|
|
7053
7302
|
React__default.createElement("div", { onContextMenu: handleCreateNewContextMenu },
|
|
7054
7303
|
React__default.createElement("div", null,
|
|
7055
|
-
React__default.createElement(Grid, { container: true, justifyContent: "flex-start", alignItems: "
|
|
7056
|
-
React__default.createElement(Typography$1, { variant: "h5", style: { margin: "20px 0 20px", fontWeight: 600 } }, "Assets Tree"),
|
|
7304
|
+
React__default.createElement(Grid, { spacing: 0, container: true, justifyContent: "flex-start", alignItems: "flex-start", className: classes.root },
|
|
7305
|
+
React__default.createElement(Typography$1, { variant: "h5", style: { margin: "20px 0 20px 20px", fontWeight: 600 } }, "Assets Tree"),
|
|
7057
7306
|
isLoading ? (React__default.createElement(Grid, { container: true, style: { width: "100%", height: "100%" } },
|
|
7058
7307
|
React__default.createElement(Grid, { item: true, xs: 12, md: 12, style: {
|
|
7059
7308
|
height: "71vh",
|
|
@@ -7072,6 +7321,7 @@ var AssetViewComponent = function () {
|
|
|
7072
7321
|
padding: "15px 20px 10px",
|
|
7073
7322
|
borderRadius: "0.75rem",
|
|
7074
7323
|
} },
|
|
7324
|
+
React__default.createElement(AssetSearchInput, { assetNodes: allAssetNodes, onSearchResultClick: handleSearchResultClick }),
|
|
7075
7325
|
React__default.createElement(Grid, { container: true, alignItems: "center" },
|
|
7076
7326
|
React__default.createElement(Grid, { container: true, style: {
|
|
7077
7327
|
height: "71vh",
|
|
@@ -7753,6 +8003,7 @@ var UserInitialState = {
|
|
|
7753
8003
|
defaultAreaName: "",
|
|
7754
8004
|
userLogged: false,
|
|
7755
8005
|
permissions: [],
|
|
8006
|
+
profiles: [],
|
|
7756
8007
|
};
|
|
7757
8008
|
var UserReducer = createSlice({
|
|
7758
8009
|
name: "__",
|
|
@@ -7782,6 +8033,10 @@ var UserReducer = createSlice({
|
|
|
7782
8033
|
var payload = _a.payload;
|
|
7783
8034
|
state.permissions = payload;
|
|
7784
8035
|
},
|
|
8036
|
+
setProfiles: function (state, _a) {
|
|
8037
|
+
var payload = _a.payload;
|
|
8038
|
+
state.profiles = payload;
|
|
8039
|
+
},
|
|
7785
8040
|
},
|
|
7786
8041
|
});
|
|
7787
8042
|
|
|
@@ -7797,6 +8052,12 @@ var useHasPermission = function () {
|
|
|
7797
8052
|
return state.permissions.some(function (p) { return p === permission; });
|
|
7798
8053
|
};
|
|
7799
8054
|
};
|
|
8055
|
+
var useHasProfile = function () {
|
|
8056
|
+
var state = useUserContext().state;
|
|
8057
|
+
return function (profile) {
|
|
8058
|
+
return state.profiles.some(function (p) { return p === profile; });
|
|
8059
|
+
};
|
|
8060
|
+
};
|
|
7800
8061
|
var UserProvider = function (_a) {
|
|
7801
8062
|
var children = _a.children;
|
|
7802
8063
|
var _b = useComplexState({
|
|
@@ -7804,13 +8065,14 @@ var UserProvider = function (_a) {
|
|
|
7804
8065
|
reducers: UserReducer.caseReducers,
|
|
7805
8066
|
}), state = _b[0], actions = _b[1];
|
|
7806
8067
|
var _c = useState(false), permissionsLoaded = _c[0], setPermissionsLoaded = _c[1];
|
|
8068
|
+
var _d = useState(false), profilesLoaded = _d[0], setProfilesLoaded = _d[1];
|
|
7807
8069
|
var getUserId = function () {
|
|
7808
8070
|
var sessionData = localStorage.getItem("userMESData") || "{}";
|
|
7809
8071
|
var userData = JSON.parse(sessionData);
|
|
7810
8072
|
return get(userData, "id", null);
|
|
7811
8073
|
};
|
|
7812
8074
|
var getUserPermissions = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
7813
|
-
var userId, resp, permissionsArray, error_1;
|
|
8075
|
+
var userId, resp, permissionsArray, profilesArray, error_1;
|
|
7814
8076
|
return __generator(this, function (_a) {
|
|
7815
8077
|
switch (_a.label) {
|
|
7816
8078
|
case 0:
|
|
@@ -7829,6 +8091,11 @@ var UserProvider = function (_a) {
|
|
|
7829
8091
|
actions.setPermissions(permissionsArray);
|
|
7830
8092
|
setPermissionsLoaded(true);
|
|
7831
8093
|
}
|
|
8094
|
+
if (resp && resp.Profiles) {
|
|
8095
|
+
profilesArray = resp.Profiles.split(",");
|
|
8096
|
+
actions.setProfiles(profilesArray);
|
|
8097
|
+
setProfilesLoaded(true);
|
|
8098
|
+
}
|
|
7832
8099
|
return [3 /*break*/, 4];
|
|
7833
8100
|
case 3:
|
|
7834
8101
|
error_1 = _a.sent();
|
|
@@ -7849,7 +8116,11 @@ var UserProvider = function (_a) {
|
|
|
7849
8116
|
}
|
|
7850
8117
|
},
|
|
7851
8118
|
});
|
|
7852
|
-
return (React__default.createElement(UserContext.Provider, { value: {
|
|
8119
|
+
return (React__default.createElement(UserContext.Provider, { value: {
|
|
8120
|
+
state: state,
|
|
8121
|
+
actions: actions,
|
|
8122
|
+
isLoading: !permissionsLoaded || !profilesLoaded,
|
|
8123
|
+
} }, children));
|
|
7853
8124
|
};
|
|
7854
8125
|
|
|
7855
8126
|
var getTokenFromLS = function () {
|
|
@@ -10564,7 +10835,7 @@ var QueryCacheInvalidations = function () {
|
|
|
10564
10835
|
var columnDefs = [
|
|
10565
10836
|
{ field: "SourceId", headerName: "Source ID", flex: 1 },
|
|
10566
10837
|
{ field: "Source", headerName: "Source", flex: 2 },
|
|
10567
|
-
{ field: "
|
|
10838
|
+
{ field: "TargetNamesCSV", headerName: "Targets", flex: 3 },
|
|
10568
10839
|
{
|
|
10569
10840
|
headerName: "Actions",
|
|
10570
10841
|
flex: 1,
|
|
@@ -11776,7 +12047,7 @@ var ColorPicker = function (_a) {
|
|
|
11776
12047
|
padding: 0,
|
|
11777
12048
|
margin: "4px",
|
|
11778
12049
|
} }),
|
|
11779
|
-
React__default.createElement(Popover, { id: id, open: open, anchorEl: anchorEl, onClose: handleClose, anchorOrigin: {
|
|
12050
|
+
React__default.createElement(Popover$1, { id: id, open: open, anchorEl: anchorEl, onClose: handleClose, anchorOrigin: {
|
|
11780
12051
|
vertical: "bottom",
|
|
11781
12052
|
horizontal: "left",
|
|
11782
12053
|
} },
|
|
@@ -14615,30 +14886,6 @@ var Navigation = function (_a) {
|
|
|
14615
14886
|
React__default.createElement(MESFMainContainer, null)));
|
|
14616
14887
|
};
|
|
14617
14888
|
|
|
14618
|
-
var useSearchUTLSettings = function (_a) {
|
|
14619
|
-
var onError = _a.onError;
|
|
14620
|
-
var initSettings = useUTLSettingsContext().actions.initSettings;
|
|
14621
|
-
var searchUTLSettings = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
14622
|
-
var res, settings;
|
|
14623
|
-
return __generator(this, function (_a) {
|
|
14624
|
-
switch (_a.label) {
|
|
14625
|
-
case 0: return [4 /*yield*/, getUTLSettings()];
|
|
14626
|
-
case 1:
|
|
14627
|
-
res = _a.sent();
|
|
14628
|
-
if (res.ok) {
|
|
14629
|
-
settings = get(res, "data.tables[0].rows", []);
|
|
14630
|
-
initSettings(settings);
|
|
14631
|
-
}
|
|
14632
|
-
else {
|
|
14633
|
-
onError(res.message);
|
|
14634
|
-
}
|
|
14635
|
-
return [2 /*return*/];
|
|
14636
|
-
}
|
|
14637
|
-
});
|
|
14638
|
-
}); };
|
|
14639
|
-
return { searchUTLSettings: searchUTLSettings };
|
|
14640
|
-
};
|
|
14641
|
-
|
|
14642
14889
|
var UTLSettingsInitialState = {
|
|
14643
14890
|
serverTimeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
|
|
14644
14891
|
settings: {},
|
|
@@ -14658,7 +14905,7 @@ var UTLSettingsReducer = createSlice({
|
|
|
14658
14905
|
initSettings: function (state, _a) {
|
|
14659
14906
|
var payload = _a.payload;
|
|
14660
14907
|
state.settings = payload.reduce(function (acc, cur) {
|
|
14661
|
-
if (cur.SettingName.trim() === "
|
|
14908
|
+
if (cur.SettingName.trim().toLowerCase() === "timezone") {
|
|
14662
14909
|
var timeService = TimeService.getInstance();
|
|
14663
14910
|
timeService.setTimeZone(cur.Value);
|
|
14664
14911
|
}
|
|
@@ -14682,9 +14929,25 @@ var UTLSettingsProvider = function (_a) {
|
|
|
14682
14929
|
reducers: UTLSettingsReducer.caseReducers,
|
|
14683
14930
|
}), state = _b[0], actions = _b[1];
|
|
14684
14931
|
var _c = useState(true), isLoading = _c[0], setIsLoading = _c[1];
|
|
14685
|
-
var searchUTLSettings =
|
|
14686
|
-
|
|
14687
|
-
|
|
14932
|
+
var searchUTLSettings = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
14933
|
+
var res, settings, settingsTrimmed;
|
|
14934
|
+
return __generator(this, function (_a) {
|
|
14935
|
+
switch (_a.label) {
|
|
14936
|
+
case 0: return [4 /*yield*/, getUTLSettings()];
|
|
14937
|
+
case 1:
|
|
14938
|
+
res = _a.sent();
|
|
14939
|
+
if (res.ok) {
|
|
14940
|
+
settings = get(res, "data.tables[0].rows", []);
|
|
14941
|
+
settingsTrimmed = settings.map(function (setting) { return (__assign(__assign({}, setting), { SettingName: setting.SettingName.trim() })); });
|
|
14942
|
+
actions.initSettings(settingsTrimmed);
|
|
14943
|
+
}
|
|
14944
|
+
else {
|
|
14945
|
+
console.error(res.message);
|
|
14946
|
+
}
|
|
14947
|
+
return [2 /*return*/];
|
|
14948
|
+
}
|
|
14949
|
+
});
|
|
14950
|
+
}); };
|
|
14688
14951
|
useEffect(function () {
|
|
14689
14952
|
setIsLoading(true);
|
|
14690
14953
|
searchUTLSettings().then(function () {
|
|
@@ -14694,9 +14957,7 @@ var UTLSettingsProvider = function (_a) {
|
|
|
14694
14957
|
useMesfRealtime({
|
|
14695
14958
|
onReceiveMessage: function (author, message) {
|
|
14696
14959
|
if (message === "UTL.GetSettings") {
|
|
14697
|
-
searchUTLSettings()
|
|
14698
|
-
// setIsLoading(false);
|
|
14699
|
-
});
|
|
14960
|
+
searchUTLSettings();
|
|
14700
14961
|
}
|
|
14701
14962
|
},
|
|
14702
14963
|
});
|
|
@@ -14712,7 +14973,7 @@ var ProvidersLoader = function (_a) {
|
|
|
14712
14973
|
display: "flex",
|
|
14713
14974
|
justifyContent: "center",
|
|
14714
14975
|
alignItems: "center",
|
|
14715
|
-
height: "
|
|
14976
|
+
height: "80vh",
|
|
14716
14977
|
} },
|
|
14717
14978
|
React__default.createElement(CircularProgress, null)));
|
|
14718
14979
|
}
|
|
@@ -14941,5 +15202,5 @@ var areaSelector = /*#__PURE__*/Object.freeze({
|
|
|
14941
15202
|
AreaSelector: AreaSelector
|
|
14942
15203
|
});
|
|
14943
15204
|
|
|
14944
|
-
export { Account, AssetProvider, AuthContext, AuthProvider, BarChartControl, ButtonWithLoading, ChangePassword, CheckBoxControl, Configuration$1 as Configuration, ContextMenu$1 as ContextMenu, ContextMenuMESFProvider, CurrencyFormatter, DataGridControl, DateFormatter, DateTimeFormatter, ErrorModal, FetchError, FilterPanel, GenericPanel, GenericTable, GetCrewColor, GetShiftColor, IntegerFormatter, Login, Logout, LongFilterPanel, MESApiService, MESFMain, MESSAGE_API, MESSAGE_ERRORS, MasterDetailPanel, MesfModal, ModalTreeFilterControl, MultipleSelectorControl, NumberFormatter, ShiftDayNavigatorControl, ShiftNavigatorProvider, ShiftPeriodNavigatorControl, SimplePasswordControl, SimpleSelectorControl, TimeAndUserMenu, TimeFormatter, TimeService, TreePickerControl, TreePickerControlV2, TrendingsPage, USER_LABELS, UTLSettingsProvider, UserProvider, axiosInstance, deleteUser, dxtServerTimeZone, dxtToLocalServerTime, dxtToUTC, formatNumber, getAuthTypes, getCrewStyle, getDataUser, getError, getMomentTz, getProfiles, getShiftByParameters, getShiftStyle, getShiftsRangeByParameters, getTokenFromLS, getUserPermissionsFromAPI, getUsers, renewToken, setPassword, setProfilesToUser, themeMESF, upsertUser, useAssetContext, useContextMenuMESF, useHasPermission, useMesfRealtime, useShiftNavigator, useShiftNavigatorManager, useStyles$C as useStyles, useToken, useUTLSettingsContext, useUserContext };
|
|
15205
|
+
export { Account, AssetProvider, AuthContext, AuthProvider, BarChartControl, ButtonWithLoading, ChangePassword, CheckBoxControl, Configuration$1 as Configuration, ContextMenu$1 as ContextMenu, ContextMenuMESFProvider, CurrencyFormatter, DataGridControl, DateFormatter, DateTimeFormatter, ErrorModal, FetchError, FilterPanel, GenericPanel, GenericTable, GetCrewColor, GetShiftColor, IntegerFormatter, Login, Logout, LongFilterPanel, MESApiService, MESFMain, MESSAGE_API, MESSAGE_ERRORS, MasterDetailPanel, MesfModal, ModalTreeFilterControl, MultipleSelectorControl, NumberFormatter, ShiftDayNavigatorControl, ShiftNavigatorProvider, ShiftPeriodNavigatorControl, SimplePasswordControl, SimpleSelectorControl, TimeAndUserMenu, TimeFormatter, TimeService, TreePickerControl, TreePickerControlV2, TrendingsPage, USER_LABELS, UTLSettingsProvider, UserProvider, axiosInstance, deleteUser, dxtServerTimeZone, dxtToLocalServerTime, dxtToUTC, formatNumber, getAuthTypes, getCrewStyle, getDataUser, getError, getMomentTz, getProfiles, getShiftByParameters, getShiftStyle, getShiftsRangeByParameters, getTokenFromLS, getUserPermissionsFromAPI, getUsers, renewToken, setPassword, setProfilesToUser, themeMESF, upsertUser, useAssetContext, useContextMenuMESF, useHasPermission, useHasProfile, useMesfRealtime, useShiftNavigator, useShiftNavigatorManager, useStyles$C as useStyles, useToken, useUTLSettingsContext, useUserContext };
|
|
14945
15206
|
//# sourceMappingURL=index.esm.js.map
|