@dexteel/mesf-core 4.10.3 → 4.10.5
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/CHANGELOG.md +13 -1
- package/dist/index.esm.js +198 -87
- package/dist/index.esm.js.map +1 -1
- package/dist/pages/trendings/components/chart/TableComponent.d.ts +17 -2
- package/dist/pages/trendings/components/chart/repository/TrendingRepository.d.ts +1 -1
- package/dist/pages/trendings/components/chart/styles/TagsTableStyles.d.ts +1 -1
- package/dist/pages/trendings/components/chart/utils/tagColors.d.ts +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
|
+
|
|
5
|
+
### [4.10.5](https://github.com/dexteel/mesf-core-frontend/compare/v4.10.4...v4.10.5) (2024-05-02)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **trending:** Load view bug when you add and remove a view tag ([eb8a155](https://github.com/dexteel/mesf-core-frontend/commit/eb8a1553cad19fa9be106716f8958728fc1507dc))
|
|
11
|
+
|
|
12
|
+
### [4.10.4](https://github.com/dexteel/mesf-core-frontend/compare/v4.10.2...v4.10.4) (2024-04-29)
|
|
13
|
+
|
|
2
14
|
## 4.10.3
|
|
3
15
|
- Trending: Fix first view
|
|
4
16
|
## 4.10.2
|
package/dist/index.esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { LicenseManager } from 'ag-grid-enterprise';
|
|
2
2
|
import { Typography, TextField, makeStyles as makeStyles$1, Button as Button$1, Grid as Grid$1, Dialog as Dialog$1, DialogTitle as DialogTitle$2, DialogContent as DialogContent$2, DialogContentText, DialogActions as DialogActions$2, FormHelperText, CircularProgress as CircularProgress$1, Badge, FormControlLabel, Checkbox, Snackbar as Snackbar$1, Paper as Paper$1, MenuItem as MenuItem$1, useTheme as useTheme$1, Tooltip, Box, Divider, IconButton as IconButton$1, FormControl as FormControl$1, Select as Select$1, debounce, createStyles as createStyles$1, List, ListItem, ListItemText } from '@material-ui/core';
|
|
3
|
-
import { values, get, isNil as isNil$1, isEmpty, isNaN, round } from 'lodash-es';
|
|
3
|
+
import { values, get, isNil as isNil$1, isEmpty, isNaN, round, 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';
|
|
6
6
|
import { Alert as Alert$1, Modal as Modal$1, Navbar, Container, Nav, NavDropdown } from 'react-bootstrap';
|
|
@@ -9,7 +9,7 @@ import DialogContent$1 from '@material-ui/core/DialogContent';
|
|
|
9
9
|
import DialogActions$1 from '@material-ui/core/DialogActions';
|
|
10
10
|
import Dialog from '@material-ui/core/Dialog';
|
|
11
11
|
import Button from '@material-ui/core/Button';
|
|
12
|
-
import { Outlet, useNavigate, useSearchParams, Link, useParams, Routes, Route,
|
|
12
|
+
import { Outlet, useNavigate, useSearchParams, Link, useParams, Navigate, Routes, Route, BrowserRouter } from 'react-router-dom';
|
|
13
13
|
import { useMsal, MsalProvider } from '@azure/msal-react';
|
|
14
14
|
import { LogLevel, PublicClientApplication } from '@azure/msal-browser';
|
|
15
15
|
import { useComplexState } from 'use-complex-state';
|
|
@@ -36,6 +36,7 @@ import ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';
|
|
|
36
36
|
import CreateIcon from '@material-ui/icons/Create';
|
|
37
37
|
import DeleteIcon from '@material-ui/icons/Delete';
|
|
38
38
|
import LockIcon from '@material-ui/icons/Lock';
|
|
39
|
+
import SaveIcon from '@material-ui/icons/Save';
|
|
39
40
|
import SkipNextIcon from '@material-ui/icons/SkipNext';
|
|
40
41
|
import { Line } from 'react-chartjs-2';
|
|
41
42
|
import PersonPinCircleIcon from '@material-ui/icons/PersonPinCircle';
|
|
@@ -8620,7 +8621,22 @@ var tagColors = [
|
|
|
8620
8621
|
"#e74b3c",
|
|
8621
8622
|
"red",
|
|
8622
8623
|
"#bf3b2c", // dark red
|
|
8623
|
-
];
|
|
8624
|
+
];
|
|
8625
|
+
var availableColors = __spreadArray([], tagColors, true);
|
|
8626
|
+
var lastColor = null;
|
|
8627
|
+
var getRandomColor = function () {
|
|
8628
|
+
if (availableColors.length === 0) {
|
|
8629
|
+
availableColors = __spreadArray([], tagColors, true);
|
|
8630
|
+
if (lastColor && availableColors.length > 1) {
|
|
8631
|
+
availableColors.splice(availableColors.indexOf(lastColor), 1);
|
|
8632
|
+
}
|
|
8633
|
+
}
|
|
8634
|
+
var randomIndex = Math.floor(Math.random() * availableColors.length);
|
|
8635
|
+
var color = availableColors[randomIndex];
|
|
8636
|
+
availableColors.splice(randomIndex, 1);
|
|
8637
|
+
lastColor = color;
|
|
8638
|
+
return color;
|
|
8639
|
+
};
|
|
8624
8640
|
|
|
8625
8641
|
var Swatch = function (_a) {
|
|
8626
8642
|
var color = _a.color, onSelect = _a.onSelect;
|
|
@@ -9037,7 +9053,7 @@ var TagFolderCustomNode = function (_a) {
|
|
|
9037
9053
|
((_c = node.data) === null || _c === void 0 ? void 0 : _c.TagName) &&
|
|
9038
9054
|
React__default.createElement(React__default.Fragment, null,
|
|
9039
9055
|
((_d = node.data) === null || _d === void 0 ? void 0 : _d.TagTypeCode) && ((_e = node.data) === null || _e === void 0 ? void 0 : _e.TagTypeCode) !== 'F' && (React__default.createElement("div", { className: classes.dataTypeOfTree, style: {
|
|
9040
|
-
backgroundColor: ((_f = node.data) === null || _f === void 0 ? void 0 : _f.TagTypeCode) === 'A' ?
|
|
9056
|
+
backgroundColor: ((_f = node.data) === null || _f === void 0 ? void 0 : _f.TagTypeCode) === 'A' ? "#AD48C4" : "#C46F48",
|
|
9041
9057
|
margin: "0 5px"
|
|
9042
9058
|
} }, (_g = node.data) === null || _g === void 0 ? void 0 : _g.TagTypeCode)),
|
|
9043
9059
|
React__default.createElement(Tooltip, { title: node.data.TagName, placement: "top", arrow: true },
|
|
@@ -9567,8 +9583,13 @@ var LoadViewModal = function (_a) {
|
|
|
9567
9583
|
var handleDeleteView = function (view, e) { return __awaiter(void 0, void 0, void 0, function () {
|
|
9568
9584
|
return __generator(this, function (_a) {
|
|
9569
9585
|
e.stopPropagation();
|
|
9570
|
-
|
|
9571
|
-
|
|
9586
|
+
if (view.ViewId === (viewSelected === null || viewSelected === void 0 ? void 0 : viewSelected.ViewId)) {
|
|
9587
|
+
setError('Can not delete current view');
|
|
9588
|
+
}
|
|
9589
|
+
else {
|
|
9590
|
+
setViewForDelete(view);
|
|
9591
|
+
setDeleteViewModalOpen(true);
|
|
9592
|
+
}
|
|
9572
9593
|
return [2 /*return*/];
|
|
9573
9594
|
});
|
|
9574
9595
|
}); };
|
|
@@ -9582,8 +9603,8 @@ var LoadViewModal = function (_a) {
|
|
|
9582
9603
|
var handleAllViewsCheckbox = function () {
|
|
9583
9604
|
setAllViewsChecked(function (prev) { return !prev; });
|
|
9584
9605
|
};
|
|
9585
|
-
var
|
|
9586
|
-
return views.filter(function (v) { return v.IsPublic ===
|
|
9606
|
+
var publicViews = useMemo(function () {
|
|
9607
|
+
return views.filter(function (v) { return v.IsPublic === true; });
|
|
9587
9608
|
}, [views, allViewsChecked]);
|
|
9588
9609
|
return (React__default.createElement("div", null,
|
|
9589
9610
|
React__default.createElement(MesfModal, { open: open, handleClose: function () { return handleClose(false); }, maxWidth: "xl", "aria-labelledby": "modal-modal-title", "aria-describedby": "modal-modal-description", title: 'Views' },
|
|
@@ -9595,7 +9616,7 @@ var LoadViewModal = function (_a) {
|
|
|
9595
9616
|
React__default.createElement("input", { type: "checkbox", checked: allViewsChecked, onChange: handleAllViewsCheckbox }),
|
|
9596
9617
|
React__default.createElement(Typography, null, "All Views")))),
|
|
9597
9618
|
React__default.createElement(Grid$1, { item: true, md: 12 },
|
|
9598
|
-
React__default.createElement(Autocomplete, { size: 'small', id: "list-of-views", options: allViewsChecked ? views :
|
|
9619
|
+
React__default.createElement(Autocomplete, { size: 'small', id: "list-of-views", noOptionsText: allViewsChecked ? "No views detected, please create a new view" : "No private views detected, please create a new view .", options: allViewsChecked ? views : publicViews, getOptionLabel: function (option) { return option.ViewName; }, onChange: function (ev, val) { return setViewSelected(val); }, defaultValue: viewSelected, style: { width: "100%" }, renderOption: function (option) { return (React__default.createElement("div", { className: classes.optionContainer },
|
|
9599
9620
|
React__default.createElement("div", { className: classes.optionLabel }, option.ViewName),
|
|
9600
9621
|
React__default.createElement("div", { className: classes.iconContainer },
|
|
9601
9622
|
option.IsPublic ? '' :
|
|
@@ -9606,7 +9627,7 @@ var LoadViewModal = function (_a) {
|
|
|
9606
9627
|
React__default.createElement(CreateIcon, { fontSize: 'small', color: 'primary', style: { height: "18px", width: '18px', cursor: 'pointer' } })),
|
|
9607
9628
|
React__default.createElement(IconButton$1, { onClick: function (e) { return handleDeleteView(option, e); } },
|
|
9608
9629
|
React__default.createElement(DeleteIcon, { fontSize: 'small', color: 'secondary', style: { height: "18px", width: '18px', cursor: 'pointer' } }))))); }, renderInput: function (params) { return React__default.createElement(TextField, __assign({}, params, { label: "Views", variant: "outlined" })); } })))) :
|
|
9609
|
-
(React__default.createElement(Typography, null, "No
|
|
9630
|
+
(React__default.createElement(Typography, null, "No views detected, please add one")))),
|
|
9610
9631
|
React__default.createElement(MesfModal.Actions, null,
|
|
9611
9632
|
React__default.createElement("div", { style: { paddingTop: "1rem" } },
|
|
9612
9633
|
React__default.createElement(Button$1, { variant: 'outlined', style: { marginRight: "1rem" }, color: 'secondary', onClick: function () { return handleClose(false); } }, "Cancel"),
|
|
@@ -9634,7 +9655,7 @@ var SaveAsViewModal = function (_a) {
|
|
|
9634
9655
|
var _h = useState(''), newView = _h[0], setNewView = _h[1];
|
|
9635
9656
|
var handleCheck = function () { return setIsPublic(!isPublic); };
|
|
9636
9657
|
var handleSubmit = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
9637
|
-
var resp, ViewId_1,
|
|
9658
|
+
var resp, ViewId_1, shouldClose_1;
|
|
9638
9659
|
return __generator(this, function (_a) {
|
|
9639
9660
|
switch (_a.label) {
|
|
9640
9661
|
case 0:
|
|
@@ -9644,25 +9665,22 @@ var SaveAsViewModal = function (_a) {
|
|
|
9644
9665
|
resp = _a.sent();
|
|
9645
9666
|
if (!resp.ok) return [3 /*break*/, 3];
|
|
9646
9667
|
ViewId_1 = resp.data.returnValue;
|
|
9668
|
+
shouldClose_1 = true;
|
|
9647
9669
|
return [4 /*yield*/, Promise.allSettled(viewTags.map(function (_a) {
|
|
9648
9670
|
var TagId = _a.TagId, Color = _a.Color, MinScale = _a.MinScale, MaxScale = _a.MaxScale, IsAutoScale = _a.IsAutoScale, IsVisible = _a.IsVisible, Unit = _a.Unit;
|
|
9649
9671
|
upsertViewTag(ViewId_1, TagId, Color, MinScale, MaxScale, IsVisible, IsAutoScale, Unit)
|
|
9650
9672
|
.then(function (r) {
|
|
9651
9673
|
if (!r.ok) {
|
|
9652
|
-
setError(r.message);
|
|
9674
|
+
setError(function (prevErr) { return "".concat(prevErr, ". ").concat(r.message); });
|
|
9675
|
+
if (shouldClose_1) {
|
|
9676
|
+
shouldClose_1 = false;
|
|
9677
|
+
}
|
|
9653
9678
|
}
|
|
9654
9679
|
});
|
|
9655
9680
|
}))];
|
|
9656
9681
|
case 2:
|
|
9657
|
-
|
|
9658
|
-
|
|
9659
|
-
if (result.status === "rejected") {
|
|
9660
|
-
setError("Tag ".concat(index, " failed with reason: ").concat(result.reason));
|
|
9661
|
-
}
|
|
9662
|
-
else {
|
|
9663
|
-
handleClose(true);
|
|
9664
|
-
}
|
|
9665
|
-
});
|
|
9682
|
+
_a.sent();
|
|
9683
|
+
handleClose(shouldClose_1);
|
|
9666
9684
|
return [3 /*break*/, 4];
|
|
9667
9685
|
case 3:
|
|
9668
9686
|
setError(resp.message);
|
|
@@ -9768,6 +9786,25 @@ var useTagsDataTable = function (_a) {
|
|
|
9768
9786
|
};
|
|
9769
9787
|
|
|
9770
9788
|
var useTagsTableStyles = makeStyles$1(function (theme) { return ({
|
|
9789
|
+
topTitles: {
|
|
9790
|
+
border: "0.0625rem solid black",
|
|
9791
|
+
borderBottom: "none",
|
|
9792
|
+
backgroundColor: "#f5f7f7",
|
|
9793
|
+
color: "#333",
|
|
9794
|
+
fontWeight: "normal",
|
|
9795
|
+
textAlign: "center",
|
|
9796
|
+
padding: "6px 0"
|
|
9797
|
+
},
|
|
9798
|
+
bottomTitlesRow: {
|
|
9799
|
+
'& th': {
|
|
9800
|
+
border: "0.0625rem solid black",
|
|
9801
|
+
backgroundColor: "#f5f7f7",
|
|
9802
|
+
color: "#333",
|
|
9803
|
+
fontWeight: "normal",
|
|
9804
|
+
textAlign: "center",
|
|
9805
|
+
padding: "6px 0"
|
|
9806
|
+
}
|
|
9807
|
+
},
|
|
9771
9808
|
checkbox: {
|
|
9772
9809
|
'& input[type="checkbox"]': {
|
|
9773
9810
|
zoom: 1.5
|
|
@@ -9779,17 +9816,6 @@ var useTagsTableStyles = makeStyles$1(function (theme) { return ({
|
|
|
9779
9816
|
backgroundColor: "#f2f2f2"
|
|
9780
9817
|
}
|
|
9781
9818
|
},
|
|
9782
|
-
topTitles: {
|
|
9783
|
-
border: "0.0625rem black solid",
|
|
9784
|
-
borderBottom: "none",
|
|
9785
|
-
backgroundColor: "#e9ecef"
|
|
9786
|
-
},
|
|
9787
|
-
bottomTitlesRow: {
|
|
9788
|
-
'& th': {
|
|
9789
|
-
border: "1px black solid"
|
|
9790
|
-
},
|
|
9791
|
-
backgroundColor: "#e9ecef"
|
|
9792
|
-
},
|
|
9793
9819
|
doubleInput: {
|
|
9794
9820
|
padding: "0",
|
|
9795
9821
|
'& input[type="text"] ': {
|
|
@@ -9812,6 +9838,10 @@ var useTagsTableStyles = makeStyles$1(function (theme) { return ({
|
|
|
9812
9838
|
textOverflow: 'ellipsis',
|
|
9813
9839
|
whiteSpace: 'nowrap'
|
|
9814
9840
|
},
|
|
9841
|
+
viewSelected: {
|
|
9842
|
+
width: '26.125rem',
|
|
9843
|
+
padding: "0"
|
|
9844
|
+
},
|
|
9815
9845
|
autoScale: {
|
|
9816
9846
|
width: '7.5rem'
|
|
9817
9847
|
},
|
|
@@ -9820,7 +9850,8 @@ var useTagsTableStyles = makeStyles$1(function (theme) { return ({
|
|
|
9820
9850
|
padding: "0"
|
|
9821
9851
|
},
|
|
9822
9852
|
visible: {
|
|
9823
|
-
width: '3.75rem'
|
|
9853
|
+
width: '3.75rem',
|
|
9854
|
+
fontSize: "12px"
|
|
9824
9855
|
},
|
|
9825
9856
|
color: {
|
|
9826
9857
|
width: '4.375rem'
|
|
@@ -9889,18 +9920,16 @@ var formatTimeDiffWithMs = function (start, end) {
|
|
|
9889
9920
|
};
|
|
9890
9921
|
|
|
9891
9922
|
var TableComponent = function (_a) {
|
|
9892
|
-
var chartData = _a.chartData, cursorData = _a.cursorData, getTagsFromAPI = _a.getTagsFromAPI;
|
|
9923
|
+
var chartData = _a.chartData, cursorData = _a.cursorData, getTagsFromAPI = _a.getTagsFromAPI, viewTagForDelete = _a.viewTagForDelete, setViewTagForDelete = _a.setViewTagForDelete, selectedRowIndex = _a.selectedRowIndex, setSelectedRowIndex = _a.setSelectedRowIndex, handleRightClick = _a.handleRightClick; _a.setContextMenuPosition; var contextMenuPosition = _a.contextMenuPosition, openContextMenu = _a.openContextMenu, setOpenContextMenu = _a.setOpenContextMenu;
|
|
9893
9924
|
var classes = useTagsTableStyles();
|
|
9894
9925
|
var _b = useTrendingContext(), _c = _b.state, viewTags = _c.viewTags, viewSelected = _c.viewSelected, _d = _b.actions, setViewTags = _d.setViewTags, setViewTagsAndRefetch = _d.setViewTagsAndRefetch;
|
|
9895
9926
|
var _e = useState({}); _e[0]; _e[1];
|
|
9896
9927
|
var _f = useState(''), error = _f[0], setError = _f[1];
|
|
9897
9928
|
var _g = useState(false); _g[0]; var setIsLoading = _g[1];
|
|
9898
|
-
var _h = useState(
|
|
9899
|
-
var _j = useState(
|
|
9900
|
-
var _k = useState(false),
|
|
9901
|
-
var _l = useState(
|
|
9902
|
-
var _m = useState(false), loadViewOpen = _m[0], setLoadViewOpen = _m[1];
|
|
9903
|
-
var _o = useState(''), snackbarMessage = _o[0], setSnackbarMessage = _o[1];
|
|
9929
|
+
var _h = useState(false), tagsTreeModalOpen = _h[0], setTagsTreeModalOpen = _h[1];
|
|
9930
|
+
var _j = useState(false), saveAsViewModalOpen = _j[0], setSaveAsViewModalOpen = _j[1];
|
|
9931
|
+
var _k = useState(false), loadViewOpen = _k[0], setLoadViewOpen = _k[1];
|
|
9932
|
+
var _l = useState(''), snackbarMessage = _l[0], setSnackbarMessage = _l[1];
|
|
9904
9933
|
var dataTable = useTagsDataTable({ viewTags: viewTags, chartData: chartData, cursorData: cursorData });
|
|
9905
9934
|
var handleChange = function (tagId, value, property) {
|
|
9906
9935
|
var newTags = viewTags.map(function (tag) {
|
|
@@ -9936,7 +9965,7 @@ var TableComponent = function (_a) {
|
|
|
9936
9965
|
var handleAddTag = function (newTag) {
|
|
9937
9966
|
var newArr = __spreadArray([], viewTags, true);
|
|
9938
9967
|
if (newTag) {
|
|
9939
|
-
newArr.push(__assign(__assign({}, newTag), { IsVisible: true, TagType: newTag.TagTypeCode }));
|
|
9968
|
+
newArr.push(__assign(__assign({}, newTag), { IsVisible: true, TagType: newTag.TagTypeCode, Color: newTag.Color || getRandomColor() }));
|
|
9940
9969
|
setViewTagsAndRefetch(newArr);
|
|
9941
9970
|
}
|
|
9942
9971
|
};
|
|
@@ -9954,16 +9983,47 @@ var TableComponent = function (_a) {
|
|
|
9954
9983
|
return (React__default.createElement("div", { className: "context-menu", style: { top: y, left: x }, onClick: handleContextMenuClick },
|
|
9955
9984
|
React__default.createElement("ul", null, options.map(function (option) { return (React__default.createElement("li", { key: option.id, onClick: option.onClick }, option.label)); }))));
|
|
9956
9985
|
};
|
|
9957
|
-
|
|
9958
|
-
|
|
9959
|
-
|
|
9960
|
-
|
|
9961
|
-
|
|
9962
|
-
|
|
9963
|
-
|
|
9964
|
-
|
|
9965
|
-
|
|
9966
|
-
|
|
9986
|
+
var contextMenuOptions = [];
|
|
9987
|
+
if (viewTagForDelete) {
|
|
9988
|
+
contextMenuOptions.push({
|
|
9989
|
+
id: 'delete', label: 'Remove Tag', onClick: function () {
|
|
9990
|
+
handleDelete();
|
|
9991
|
+
setOpenContextMenu(false);
|
|
9992
|
+
}
|
|
9993
|
+
});
|
|
9994
|
+
}
|
|
9995
|
+
contextMenuOptions.push.apply(contextMenuOptions, [
|
|
9996
|
+
{
|
|
9997
|
+
id: 'add', label: 'Tags Tree', onClick: function () {
|
|
9998
|
+
setTagsTreeModalOpen(true);
|
|
9999
|
+
setOpenContextMenu(false);
|
|
10000
|
+
}
|
|
10001
|
+
},
|
|
10002
|
+
{
|
|
10003
|
+
id: 'saveDefault', label: 'Save Default To Tag', onClick: function () {
|
|
10004
|
+
handleSaveDefaultToTag();
|
|
10005
|
+
setOpenContextMenu(false);
|
|
10006
|
+
}
|
|
10007
|
+
},
|
|
10008
|
+
{
|
|
10009
|
+
id: 'saveView', label: 'Save View', onClick: function () {
|
|
10010
|
+
handleSaveView();
|
|
10011
|
+
setOpenContextMenu(false);
|
|
10012
|
+
}
|
|
10013
|
+
},
|
|
10014
|
+
{
|
|
10015
|
+
id: 'saveViewAs', label: 'Save View as', onClick: function () {
|
|
10016
|
+
setSaveAsViewModalOpen(true);
|
|
10017
|
+
setOpenContextMenu(false);
|
|
10018
|
+
}
|
|
10019
|
+
},
|
|
10020
|
+
{
|
|
10021
|
+
id: 'loadView', label: 'Load View', onClick: function () {
|
|
10022
|
+
setLoadViewOpen(true);
|
|
10023
|
+
setOpenContextMenu(false);
|
|
10024
|
+
}
|
|
10025
|
+
},
|
|
10026
|
+
]);
|
|
9967
10027
|
var handleTagSelect = function (selectedTag) {
|
|
9968
10028
|
var alreadySelected = viewTags.find(function (vt) { return vt.TagId === selectedTag.TagId; });
|
|
9969
10029
|
if (!alreadySelected) {
|
|
@@ -10063,13 +10123,6 @@ var TableComponent = function (_a) {
|
|
|
10063
10123
|
document.removeEventListener("keydown", handleKeyDown);
|
|
10064
10124
|
};
|
|
10065
10125
|
}, [selectedRowIndex]);
|
|
10066
|
-
var handleRightClick = function (event, index) {
|
|
10067
|
-
event.preventDefault();
|
|
10068
|
-
event.stopPropagation(); // Prevent the click event from propagating to the document
|
|
10069
|
-
setSelectedRowIndex(index);
|
|
10070
|
-
setViewTagForDelete(viewTags[index]);
|
|
10071
|
-
setContextMenuPosition({ x: event.clientX, y: event.clientY });
|
|
10072
|
-
};
|
|
10073
10126
|
var handleSaveDefaultToTag = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
10074
10127
|
var _a, TagId, Alias, Color, MinScale, MaxScale, Unit, IsVisible, IsAutoScale, saveTagDefaultsResp, upsertViewTagResp;
|
|
10075
10128
|
return __generator(this, function (_b) {
|
|
@@ -10096,15 +10149,27 @@ var TableComponent = function (_a) {
|
|
|
10096
10149
|
});
|
|
10097
10150
|
}); };
|
|
10098
10151
|
return (React__default.createElement(React__default.Fragment, null,
|
|
10099
|
-
React__default.createElement(Grid$1, { container: true, spacing: 1
|
|
10100
|
-
|
|
10152
|
+
React__default.createElement(Grid$1, { container: true, spacing: 1, alignContent: 'flex-start', style: {
|
|
10153
|
+
height: '100%',
|
|
10154
|
+
maxHeight: '100%',
|
|
10155
|
+
overflowY: 'auto'
|
|
10156
|
+
} },
|
|
10157
|
+
React__default.createElement(Grid$1, { item: true, xs: 12, style: {
|
|
10158
|
+
position: 'sticky',
|
|
10159
|
+
background: 'white',
|
|
10160
|
+
top: 0,
|
|
10161
|
+
left: 0,
|
|
10162
|
+
zIndex: 1000
|
|
10163
|
+
} },
|
|
10101
10164
|
React__default.createElement("div", { style: { overflowX: 'auto', width: '100%' } },
|
|
10102
10165
|
React__default.createElement("table", { style: { width: '100%', tableLayout: 'fixed', textAlign: "center" } },
|
|
10103
10166
|
React__default.createElement("thead", null,
|
|
10104
10167
|
React__default.createElement("tr", null,
|
|
10105
|
-
React__default.createElement("th", { className: classes.
|
|
10106
|
-
|
|
10107
|
-
|
|
10168
|
+
React__default.createElement("th", { className: "".concat(classes.topTitles, " ").concat(classes.viewSelected) }, viewSelected ?
|
|
10169
|
+
(React__default.createElement(Button$1, { variant: 'text', style: { color: "#0075ff" }, className: classes.viewSelected, onClick: function () { return setLoadViewOpen(true); } }, (viewSelected === null || viewSelected === void 0 ? void 0 : viewSelected.ViewName) || '')) : (React__default.createElement(Button$1, { variant: 'text', style: { color: "#0075ff" }, className: classes.viewSelected, onClick: function () { return setSaveAsViewModalOpen(true); } },
|
|
10170
|
+
React__default.createElement("i", null,
|
|
10171
|
+
React__default.createElement(SaveIcon, null),
|
|
10172
|
+
"(Save view as)")))),
|
|
10108
10173
|
React__default.createElement("th", { colSpan: 4, className: "".concat(classes.topTitles, " ").concat(classes.scale) }, "Scale"),
|
|
10109
10174
|
React__default.createElement("th", { className: "".concat(classes.topTitles, " ").concat(classes.xStats) }, cursorData ? (function () {
|
|
10110
10175
|
var dateX1 = new Date(cursorData.x1);
|
|
@@ -10183,7 +10248,7 @@ var TableComponent = function (_a) {
|
|
|
10183
10248
|
React__default.createElement("th", null, "Min"),
|
|
10184
10249
|
React__default.createElement("th", null, "Max")))))),
|
|
10185
10250
|
React__default.createElement(Grid$1, { item: true, xs: 12 },
|
|
10186
|
-
React__default.createElement("div", { style: { width: '100%',
|
|
10251
|
+
React__default.createElement("div", { style: { width: '100%', height: '100%', maxHeight: '100%' } },
|
|
10187
10252
|
React__default.createElement("table", { cellPadding: '4px', style: { width: '100%', tableLayout: 'fixed', textAlign: "center" } },
|
|
10188
10253
|
React__default.createElement("tbody", null, viewTags && viewTags.length && Array.isArray(viewTags) ? viewTags.map(function (tag, index) {
|
|
10189
10254
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
@@ -10196,7 +10261,7 @@ var TableComponent = function (_a) {
|
|
|
10196
10261
|
React__default.createElement(Tooltip, { title: tag.TagName, placement: "top", arrow: true, interactive: true, enterDelay: 500 },
|
|
10197
10262
|
React__default.createElement("div", { style: { display: 'flex', alignItems: 'center' } },
|
|
10198
10263
|
tag.TagType &&
|
|
10199
|
-
(React__default.createElement("div", { className: classes.dataType, style: { backgroundColor: tag.TagType === "A" ? "
|
|
10264
|
+
(React__default.createElement("div", { className: classes.dataType, style: { backgroundColor: tag.TagType === "A" ? "#AD48C4" : "#C46F48" } }, tag.TagType)),
|
|
10200
10265
|
React__default.createElement("input", { type: "text", style: { width: '100%' }, value: tag.Alias || tag.TagName, onFocus: function (e) { return e.target.select(); }, onChange: function (e) {
|
|
10201
10266
|
var newAlias = e.target.value;
|
|
10202
10267
|
handleChangeAlias(tag.TagId, newAlias);
|
|
@@ -10236,9 +10301,9 @@ var TableComponent = function (_a) {
|
|
|
10236
10301
|
var value = e.target.value;
|
|
10237
10302
|
handleUnitChange(tag.TagId, value);
|
|
10238
10303
|
}, value: tag.Unit === "-" ? '' : tag.Unit, onFocus: function (e) { return e.target.select(); } })),
|
|
10239
|
-
React__default.createElement("td", null, round((_a = dataTable[tag.TagName]) === null || _a === void 0 ? void 0 : _a.y1, 3)),
|
|
10240
|
-
React__default.createElement("td", { className: classes.doubleInput }, round((_b = dataTable[tag.TagName]) === null || _b === void 0 ? void 0 : _b.y2, 3)),
|
|
10241
|
-
React__default.createElement("td", null, round((_c = dataTable[tag.TagName]) === null || _c === void 0 ? void 0 : _c.y2y1, 3)),
|
|
10304
|
+
React__default.createElement("td", null, round((_a = dataTable[tag.TagName]) === null || _a === void 0 ? void 0 : _a.y1, 3) || 0),
|
|
10305
|
+
React__default.createElement("td", { className: classes.doubleInput }, round((_b = dataTable[tag.TagName]) === null || _b === void 0 ? void 0 : _b.y2, 3) || 0),
|
|
10306
|
+
React__default.createElement("td", null, round((_c = dataTable[tag.TagName]) === null || _c === void 0 ? void 0 : _c.y2y1, 3) || 0),
|
|
10242
10307
|
React__default.createElement("td", null,
|
|
10243
10308
|
!isNaN(((_d = dataTable[tag.TagName]) === null || _d === void 0 ? void 0 : _d.pmin.y) * 0) ? round((_e = dataTable[tag.TagName]) === null || _e === void 0 ? void 0 : _e.pmin.y, 3) : 0,
|
|
10244
10309
|
" "),
|
|
@@ -10251,7 +10316,8 @@ var TableComponent = function (_a) {
|
|
|
10251
10316
|
React__default.createElement(Button$1, { onClick: function () { return setTagsTreeModalOpen(true); }, variant: 'contained', color: 'primary' }, " Add tag")),
|
|
10252
10317
|
React__default.createElement("div", null,
|
|
10253
10318
|
React__default.createElement(Button$1, { onClick: function () { return setLoadViewOpen(true); }, variant: 'outlined', color: 'primary' }, " Load view"))))))),
|
|
10254
|
-
|
|
10319
|
+
openContextMenu &&
|
|
10320
|
+
React__default.createElement(ContextMenu, { x: contextMenuPosition.x, y: contextMenuPosition.y, options: contextMenuOptions }),
|
|
10255
10321
|
React__default.createElement(TagsTreeModal, { open: tagsTreeModalOpen, handleClose: handleClose, onTagSelect: handleTagSelect }),
|
|
10256
10322
|
React__default.createElement(SaveAsViewModal, { open: saveAsViewModalOpen, handleClose: function (shouldUpdate) {
|
|
10257
10323
|
setSaveAsViewModalOpen(false);
|
|
@@ -10769,7 +10835,7 @@ var TrendingChart = function (_a) {
|
|
|
10769
10835
|
});
|
|
10770
10836
|
var updatedSeries = series.map(function (serie, index) {
|
|
10771
10837
|
var tag = viewTags[index];
|
|
10772
|
-
var yAxisTagId = seriesVsTags.current[tag.TagId];
|
|
10838
|
+
var yAxisTagId = seriesVsTags.current[tag === null || tag === void 0 ? void 0 : tag.TagId];
|
|
10773
10839
|
return {
|
|
10774
10840
|
yAxisID: "y-axis-".concat(yAxisTagId),
|
|
10775
10841
|
data: serie.map(function (sample) { return ({
|
|
@@ -10825,13 +10891,30 @@ var Trending = function (_a) {
|
|
|
10825
10891
|
var _d = useState(''), error = _d[0], setError = _d[1];
|
|
10826
10892
|
var _e = useState(true), loading = _e[0], setLoading = _e[1];
|
|
10827
10893
|
var _f = useState([]), series = _f[0], setSeries = _f[1];
|
|
10828
|
-
var _g =
|
|
10829
|
-
var _h = useState(
|
|
10894
|
+
var _g = useState(null), selectedRowIndex = _g[0], setSelectedRowIndex = _g[1];
|
|
10895
|
+
var _h = useState(null), viewTagForDelete = _h[0], setViewTagForDelete = _h[1];
|
|
10896
|
+
var _j = useChartOptions(), chartOptions = _j[0], setChartOptions = _j[1];
|
|
10897
|
+
var _k = useState({
|
|
10830
10898
|
labels: [],
|
|
10831
10899
|
datasets: []
|
|
10832
|
-
}), chartData =
|
|
10833
|
-
var
|
|
10900
|
+
}), chartData = _k[0], setChartData = _k[1];
|
|
10901
|
+
var _l = useState(null), cursorData = _l[0], setCursorData = _l[1];
|
|
10834
10902
|
var debounceForFetchingData = useRef(null);
|
|
10903
|
+
var _m = useState({ x: 0, y: 0 }), contextMenuPosition = _m[0], setContextMenuPosition = _m[1];
|
|
10904
|
+
var _o = useState(false), openContextMenu = _o[0], setOpenContextMenu = _o[1];
|
|
10905
|
+
var handleRightClick = function (event, index) {
|
|
10906
|
+
event.preventDefault();
|
|
10907
|
+
event.stopPropagation(); // Prevent the click event from propagating to the document
|
|
10908
|
+
if (isNumber(index)) {
|
|
10909
|
+
setViewTagForDelete(viewTags[index]);
|
|
10910
|
+
}
|
|
10911
|
+
else {
|
|
10912
|
+
setViewTagForDelete(null);
|
|
10913
|
+
}
|
|
10914
|
+
setSelectedRowIndex(index);
|
|
10915
|
+
setOpenContextMenu(true);
|
|
10916
|
+
setContextMenuPosition({ x: event.clientX, y: event.clientY });
|
|
10917
|
+
};
|
|
10835
10918
|
useEffect(function () {
|
|
10836
10919
|
if (debounceForFetchingData.current) {
|
|
10837
10920
|
clearTimeout(debounceForFetchingData.current);
|
|
@@ -10872,14 +10955,35 @@ var Trending = function (_a) {
|
|
|
10872
10955
|
}, 800);
|
|
10873
10956
|
}, [shouldRefetchSeries]);
|
|
10874
10957
|
return (React__default.createElement(React__default.Fragment, null,
|
|
10875
|
-
React__default.createElement(Grid$1, { container: true, style: { width: "95svw", height: "
|
|
10958
|
+
React__default.createElement(Grid$1, { container: true, style: { width: "95svw", height: "88svh", margin: 0 }, onClick: function () { return setOpenContextMenu(false); } },
|
|
10876
10959
|
React__default.createElement(Header, { setChartOptions: setChartOptions }),
|
|
10877
10960
|
React__default.createElement(Grid$1, { item: true, xs: 12, style: { height: '45%' } },
|
|
10878
10961
|
React__default.createElement(TrendingChart, { series: series, chartData: chartData, setChartData: setChartData, chartOptions: chartOptions, setChartOptions: setChartOptions, setCursorData: setCursorData })),
|
|
10879
|
-
React__default.createElement(Grid$1, { item: true, xs: 12,
|
|
10880
|
-
|
|
10881
|
-
|
|
10882
|
-
|
|
10962
|
+
React__default.createElement(Grid$1, { item: true, container: true, xs: 12, onContextMenu: function (e) { return handleRightClick(e, null); }, style: {
|
|
10963
|
+
height: '40%',
|
|
10964
|
+
minWidth: "100%",
|
|
10965
|
+
paddingTop: "3rem",
|
|
10966
|
+
border: "4px solid #ccc",
|
|
10967
|
+
borderRadius: 10,
|
|
10968
|
+
padding: 10,
|
|
10969
|
+
margin: "20px 0 10px",
|
|
10970
|
+
position: loading ? "relative" : "inherit"
|
|
10971
|
+
} },
|
|
10972
|
+
loading &&
|
|
10973
|
+
(React__default.createElement("div", { style: {
|
|
10974
|
+
position: 'absolute',
|
|
10975
|
+
top: 0,
|
|
10976
|
+
left: 0,
|
|
10977
|
+
width: '100%',
|
|
10978
|
+
height: '100%',
|
|
10979
|
+
background: 'rgba(255, 255, 255, 0.7)',
|
|
10980
|
+
display: 'flex',
|
|
10981
|
+
justifyContent: 'center',
|
|
10982
|
+
alignItems: 'center',
|
|
10983
|
+
zIndex: 2
|
|
10984
|
+
} },
|
|
10985
|
+
React__default.createElement(CircularProgress$1, { size: "2rem" }))),
|
|
10986
|
+
React__default.createElement(TableComponent, { chartData: chartData, cursorData: cursorData, getTagsFromAPI: getTagsFromAPI, openContextMenu: openContextMenu, setOpenContextMenu: setOpenContextMenu, viewTagForDelete: viewTagForDelete, setViewTagForDelete: setViewTagForDelete, selectedRowIndex: selectedRowIndex, setSelectedRowIndex: setSelectedRowIndex, handleRightClick: handleRightClick, contextMenuPosition: contextMenuPosition, setContextMenuPosition: setContextMenuPosition }))),
|
|
10883
10987
|
React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(''); }, title: "ERROR" })));
|
|
10884
10988
|
};
|
|
10885
10989
|
|
|
@@ -10889,13 +10993,13 @@ var TrendingsPage = function (props) {
|
|
|
10889
10993
|
var getTagsFromAPI = function (forceReload) {
|
|
10890
10994
|
if (forceReload === void 0) { forceReload = false; }
|
|
10891
10995
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
10892
|
-
var viewsResp, lastCreated, viewTagsResp;
|
|
10996
|
+
var viewsResp, lastCreated, viewTagsResp, viewTags;
|
|
10893
10997
|
return __generator(this, function (_a) {
|
|
10894
10998
|
switch (_a.label) {
|
|
10895
10999
|
case 0: return [4 /*yield*/, getViews(null)];
|
|
10896
11000
|
case 1:
|
|
10897
11001
|
viewsResp = _a.sent();
|
|
10898
|
-
if (!viewsResp.ok) return [3 /*break*/,
|
|
11002
|
+
if (!viewsResp.ok) return [3 /*break*/, 4];
|
|
10899
11003
|
setViews(viewsResp.data.tables[0].rows);
|
|
10900
11004
|
lastCreated = void 0;
|
|
10901
11005
|
if (!viewSelected || forceReload) {
|
|
@@ -10906,21 +11010,28 @@ var TrendingsPage = function (props) {
|
|
|
10906
11010
|
else {
|
|
10907
11011
|
lastCreated = viewSelected;
|
|
10908
11012
|
}
|
|
10909
|
-
|
|
11013
|
+
if (!lastCreated) return [3 /*break*/, 3];
|
|
10910
11014
|
return [4 /*yield*/, getViewTags(lastCreated.ViewId)];
|
|
10911
11015
|
case 2:
|
|
10912
11016
|
viewTagsResp = _a.sent();
|
|
10913
11017
|
if (viewTagsResp.ok) {
|
|
10914
|
-
|
|
11018
|
+
viewTags = viewTagsResp.data.tables[0].rows.map(function (e) {
|
|
11019
|
+
if (isNil$1(e.Color)) {
|
|
11020
|
+
e.Color = getRandomColor();
|
|
11021
|
+
}
|
|
11022
|
+
return e;
|
|
11023
|
+
});
|
|
11024
|
+
setViewTagsAndRefetch(viewTags);
|
|
10915
11025
|
}
|
|
10916
11026
|
else {
|
|
10917
11027
|
setError(viewTagsResp.message);
|
|
10918
11028
|
}
|
|
10919
|
-
|
|
10920
|
-
case 3:
|
|
11029
|
+
_a.label = 3;
|
|
11030
|
+
case 3: return [3 /*break*/, 5];
|
|
11031
|
+
case 4:
|
|
10921
11032
|
setError(viewsResp.message);
|
|
10922
|
-
_a.label =
|
|
10923
|
-
case
|
|
11033
|
+
_a.label = 5;
|
|
11034
|
+
case 5: return [2 /*return*/];
|
|
10924
11035
|
}
|
|
10925
11036
|
});
|
|
10926
11037
|
});
|