@dexteel/mesf-core 7.10.1 → 7.11.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 +19 -0
- package/dist/MESFMain.d.ts +1 -1
- package/dist/account/login.d.ts +1 -1
- package/dist/account/models/login.models.d.ts +1 -0
- package/dist/components/navigation/Header.d.ts +1 -2
- package/dist/components/navigation/Navigation.d.ts +1 -2
- package/dist/index.d.ts +0 -1
- package/dist/index.esm.js +691 -3364
- package/dist/index.esm.js.map +1 -1
- package/dist/pages/trendings-v2/TrendingsPageV2.d.ts +2 -2
- package/dist/pages/trendings-v2/components/chart/components/TagFolderCustomNodeV2.d.ts +1 -1
- package/dist/pages/trendings-v2/components/chart/components/TagSearchInput.d.ts +1 -1
- package/dist/pages/trendings-v2/components/chart/components/TagsTreeModalV2.d.ts +1 -1
- package/dist/pages/{trendings/components/chart/components/modals/tagsTreeModal/ContextMenu → trendings-v2/components/chart/components/modals/tagsTreeModal}/ContextMenu.d.ts +1 -1
- package/dist/pages/{trendings → trendings-v2}/components/chart/components/modals/tagsTreeModal/CustomDragView.d.ts +1 -1
- package/dist/pages/{trendings/components/chart/components/modals/tagsTreeModal/ContextMenu/NewFolder/NewFolder.d.ts → trendings-v2/components/chart/components/modals/tagsTreeModal/NewFolderModal.d.ts} +1 -1
- package/dist/pages/{trendings/components/chart/components/modals/tagsTreeModal/ContextMenu/RemoveFolder/RemoveFolder.d.ts → trendings-v2/components/chart/components/modals/tagsTreeModal/RemoveFolderModal.d.ts} +1 -1
- package/dist/pages/trendings-v2/components/chart/context/TrendingContextV2.d.ts +1 -2
- package/dist/pages/trendings-v2/components/chart/hooks/useTagSearch.d.ts +1 -1
- package/dist/pages/trendings-v2/components/chart/models/TrendingModelsV2.d.ts +1 -0
- package/dist/pages/trendings-v2/components/chart/repository/TrendingRepositoryV2.d.ts +47 -1
- package/dist/pages/trendings-v2/components/chart/utils/buildTagsTree.d.ts +3 -0
- package/dist/pages/trendings-v2/components/chart/utils/calculateDateFromPeriod.d.ts +1 -1
- package/dist/pages/{trendings → trendings-v2}/components/chart/utils/dateNavigator.d.ts +1 -1
- package/package.json +1 -1
- package/dist/pages/trendings/TrendingsPage.d.ts +0 -3
- package/dist/pages/trendings/components/chart/DateComponent.d.ts +0 -6
- package/dist/pages/trendings/components/chart/TableComponent.d.ts +0 -14
- package/dist/pages/trendings/components/chart/Trending.d.ts +0 -9
- package/dist/pages/trendings/components/chart/components/CellComponent.d.ts +0 -11
- package/dist/pages/trendings/components/chart/components/ColorPicker.d.ts +0 -8
- package/dist/pages/trendings/components/chart/components/DraggableLineControl.d.ts +0 -11
- package/dist/pages/trendings/components/chart/components/modals/deleteViewModal/DeleteViewModal.d.ts +0 -9
- package/dist/pages/trendings/components/chart/components/modals/editViewModal/EditViewModal.d.ts +0 -9
- package/dist/pages/trendings/components/chart/components/modals/loadView/LoadViewModal.d.ts +0 -7
- package/dist/pages/trendings/components/chart/components/modals/saveAsView/SaveAsViewModal.d.ts +0 -7
- package/dist/pages/trendings/components/chart/components/modals/saveView/SaveViewModal.d.ts +0 -7
- package/dist/pages/trendings/components/chart/components/modals/tagsTreeModal/TagFolderCustomNode.d.ts +0 -20
- package/dist/pages/trendings/components/chart/components/modals/tagsTreeModal/TagSelectionModal.d.ts +0 -9
- package/dist/pages/trendings/components/chart/components/modals/tagsTreeModal/TagsTreeModal.d.ts +0 -9
- package/dist/pages/trendings/components/chart/context/TrendingContext.d.ts +0 -120
- package/dist/pages/trendings/components/chart/customOptionsComponent.d.ts +0 -10
- package/dist/pages/trendings/components/chart/hooks/useGetVerticalLinePlugin.d.ts +0 -2
- package/dist/pages/trendings/components/chart/hooks/useTagsDataTable.d.ts +0 -24
- package/dist/pages/trendings/components/chart/hooks/useUpdateCursorData.d.ts +0 -2
- package/dist/pages/trendings/components/chart/hooks/useXAxisDatePlugin.d.ts +0 -2
- package/dist/pages/trendings/components/chart/hooks/useYAxisPlugin.d.ts +0 -2
- package/dist/pages/trendings/components/chart/models/TagsTree.model.d.ts +0 -12
- package/dist/pages/trendings/components/chart/models/TrendingModels.d.ts +0 -65
- package/dist/pages/trendings/components/chart/models/scopes.model.d.ts +0 -1
- package/dist/pages/trendings/components/chart/repository/TrendingRepository.d.ts +0 -48
- package/dist/pages/trendings/components/chart/sections/chart/hooks/useChartOptions.d.ts +0 -105
- package/dist/pages/trendings/components/chart/sections/header.d.ts +0 -8
- package/dist/pages/trendings/components/chart/sections/trending-chart.d.ts +0 -12
- package/dist/pages/trendings/components/chart/utils/areRangeSimilar.d.ts +0 -2
- package/dist/pages/trendings/components/chart/utils/buildTagsTree.d.ts +0 -4
- package/dist/pages/trendings/components/chart/utils/calculateScales.d.ts +0 -4
- package/dist/pages/trendings/components/chart/utils/formatDateTimeToString.d.ts +0 -4
- package/dist/pages/trendings/components/chart/utils/formatTimeDiffWithMs.d.ts +0 -1
- package/dist/pages/trendings/components/chart/utils/timeDifference.d.ts +0 -1
- package/dist/pages/trendings/hooks/useTrendingQueries.d.ts +0 -15
- package/dist/pages/trendings/index.d.ts +0 -3
- package/dist/pages/trendings/reducers/trendings.reducer.d.ts +0 -115
- /package/dist/pages/{trendings → trendings-v2}/components/chart/utils/tagColors.d.ts +0 -0
package/dist/index.esm.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { HubConnectionBuilder, LogLevel } from '@microsoft/signalr';
|
|
2
2
|
export * from '@microsoft/signalr';
|
|
3
3
|
export { LicenseManager } from 'ag-grid-enterprise';
|
|
4
|
-
import { styled, DialogTitle as DialogTitle$1, DialogContent as DialogContent$1, DialogActions as DialogActions$1, Grid2, Button, Box, MenuItem, ListItemIcon, createTheme, TextField, Alert as Alert$2, useTheme, InputAdornment, Popover, MenuList, ListItemText, alpha, Dialog as Dialog$1, Paper, List, ListItem, Chip, SvgIcon, Typography as Typography$1, Checkbox, IconButton as IconButton$1, CircularProgress, FormControl, FormHelperText, FormControlLabel, Snackbar, DialogContentText, Badge, InputLabel, Select, Input, Divider, Card, CardContent, CardActions, Collapse, Tooltip, CssBaseline, AppBar, Toolbar, Container, Menu, Switch, Hidden, Drawer, Grid, Accordion, AccordionSummary, AccordionDetails, Tabs, Tab, Autocomplete as Autocomplete$1, useMediaQuery, ListSubheader, ListItemButton,
|
|
4
|
+
import { styled, DialogTitle as DialogTitle$1, DialogContent as DialogContent$1, DialogActions as DialogActions$1, Grid2, Button, Box, MenuItem, ListItemIcon, createTheme, TextField, Alert as Alert$2, useTheme, InputAdornment, Popover, MenuList, ListItemText, alpha, Dialog as Dialog$1, Paper, List, ListItem, Chip, SvgIcon, Typography as Typography$1, Checkbox, IconButton as IconButton$1, CircularProgress, FormControl, FormHelperText, FormControlLabel, Snackbar, DialogContentText, Badge, InputLabel, Select, Input, Divider, Card, CardContent, CardActions, Collapse, Tooltip, CssBaseline, AppBar, Toolbar, Container, Menu, Switch, Hidden, Drawer, Grid, Accordion, AccordionSummary, AccordionDetails, Tabs, Tab, Autocomplete as Autocomplete$1, useMediaQuery, ListSubheader, ListItemButton, StyledEngineProvider, ThemeProvider, ListItemSecondaryAction } from '@mui/material';
|
|
5
5
|
import { useMutation, useQuery, useQueryClient, QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import React__default, { createContext, useContext, useRef, useState, useEffect, useCallback, useMemo, Component, lazy, Suspense } from 'react';
|
|
8
8
|
import SearchIcon from '@mui/icons-material/Search';
|
|
9
9
|
import { AgGridReact } from 'ag-grid-react';
|
|
10
10
|
import { createPart, themeMaterial, provideGlobalGridOptions } from 'ag-grid-community';
|
|
11
|
-
import { values, get, isEmpty, isNil
|
|
11
|
+
import { values, get, isEmpty, isNil } from 'lodash-es';
|
|
12
12
|
import { useForm, Controller } from 'react-hook-form';
|
|
13
13
|
import { isAncestor, Tree, DndProvider as DndProvider$1 } from '@minoru/react-dnd-treeview';
|
|
14
14
|
import { Alert as Alert$4, AlertTitle, Autocomplete } from '@mui/lab';
|
|
@@ -54,7 +54,6 @@ import { AdapterMoment } from '@mui/x-date-pickers/AdapterMoment';
|
|
|
54
54
|
import { DndProvider } from 'react-dnd';
|
|
55
55
|
import { HTML5Backend } from 'react-dnd-html5-backend';
|
|
56
56
|
import MenuIcon from '@mui/icons-material/Menu';
|
|
57
|
-
import ShowChartIcon from '@mui/icons-material/ShowChart';
|
|
58
57
|
import { DateTimePicker as DateTimePicker$1 } from '@mui/x-date-pickers/DateTimePicker';
|
|
59
58
|
import ClearAllIcon from '@mui/icons-material/ClearAll';
|
|
60
59
|
import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
|
|
@@ -63,14 +62,6 @@ import { Group as Group$1, Panel, Separator, useDefaultLayout } from 'react-resi
|
|
|
63
62
|
import { LocalizationProvider as LocalizationProvider$1 } from '@mui/x-date-pickers/LocalizationProvider';
|
|
64
63
|
import InsertChartIcon from '@mui/icons-material/InsertChart';
|
|
65
64
|
import ReactECharts from 'echarts-for-react';
|
|
66
|
-
import { _adapters, Chart, CategoryScale, LinearScale, PointElement, LineElement, Title, Tooltip as Tooltip$1, Legend, TimeScale } from 'chart.js';
|
|
67
|
-
import zoomPlugin from 'chartjs-plugin-zoom';
|
|
68
|
-
import SaveIcon from '@mui/icons-material/Save';
|
|
69
|
-
import Button$1 from '@mui/material/Button';
|
|
70
|
-
import Popover$1 from '@mui/material/Popover';
|
|
71
|
-
import CreateIcon from '@mui/icons-material/Create';
|
|
72
|
-
import ArrowDropDownIcon$1 from '@mui/icons-material/ArrowDropDown';
|
|
73
|
-
import { Line } from 'react-chartjs-2';
|
|
74
65
|
import MarkdownIt from 'markdown-it';
|
|
75
66
|
import MdEditor, { PluginComponent } from 'react-markdown-editor-lite';
|
|
76
67
|
import 'react-markdown-editor-lite/lib/index.css';
|
|
@@ -291,8 +282,8 @@ var HelmetDexteel = function (_a) {
|
|
|
291
282
|
|
|
292
283
|
var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
|
|
293
284
|
|
|
294
|
-
var css
|
|
295
|
-
n(css
|
|
285
|
+
var css = ".lds-ring {\n\tdisplay: inline-block;\n\tposition: relative;\n\twidth: 80px;\n\theight: 80px;\n}\n.lds-ring div {\n\tbox-sizing: border-box;\n\tdisplay: block;\n\tposition: absolute;\n\twidth: 64px;\n\theight: 64px;\n\tmargin: 8px;\n\tborder: 5px solid rgb(63, 81, 181);\n\tborder-radius: 50%;\n\tanimation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n\tborder-color: rgb(63, 81, 181) transparent transparent transparent;\n}\n.lds-ring div:nth-child(1) {\n\tanimation-delay: -0.45s;\n}\n.lds-ring div:nth-child(2) {\n\tanimation-delay: -0.3s;\n}\n.lds-ring div:nth-child(3) {\n\tanimation-delay: -0.15s;\n}\n@keyframes lds-ring {\n\t0% {\n\t\ttransform: rotate(0deg);\n\t}\n\t100% {\n\t\ttransform: rotate(360deg);\n\t}\n}\n";
|
|
286
|
+
n(css,{});
|
|
296
287
|
|
|
297
288
|
var LazyLoading = function () {
|
|
298
289
|
return (React__default.createElement(React__default.Fragment, null,
|
|
@@ -3330,7 +3321,7 @@ var useAssetOptionsFunctions = function (_a) {
|
|
|
3330
3321
|
};
|
|
3331
3322
|
};
|
|
3332
3323
|
|
|
3333
|
-
var customStyles$
|
|
3324
|
+
var customStyles$1 = "\n ul, ol {\n list-style-type: none;\n margin: 0;\n padding: 0;\n }\n";
|
|
3334
3325
|
var CustomNode = function (_a) {
|
|
3335
3326
|
var openAssets = _a.openAssets, setOpenAssets = _a.setOpenAssets, setContextMenuOver = _a.setContextMenuOver, onDoubleClick = _a.onDoubleClick; _a.testIdPrefix; var isSelected = _a.isSelected, props = __rest(_a, ["openAssets", "setOpenAssets", "setContextMenuOver", "onDoubleClick", "testIdPrefix", "isSelected"]);
|
|
3336
3327
|
var _c = props.node, id = _c.id, droppable = _c.droppable, data = _c.data;
|
|
@@ -3384,7 +3375,7 @@ var CustomNode = function (_a) {
|
|
|
3384
3375
|
listStyleType: "none",
|
|
3385
3376
|
backgroundColor: isSelected ? "#e8f0fe" : "",
|
|
3386
3377
|
}, style: { paddingInlineStart: indent }, "data-node-id": id, onClick: handleClick, title: "".concat(props.node.id, " - ").concat(props.node.text) },
|
|
3387
|
-
React__default.createElement("style", null, customStyles$
|
|
3378
|
+
React__default.createElement("style", null, customStyles$1),
|
|
3388
3379
|
props.node.droppable ? (React__default.createElement(Box, { sx: {
|
|
3389
3380
|
alignItems: "center",
|
|
3390
3381
|
cursor: "pointer",
|
|
@@ -7271,26 +7262,44 @@ var LoginWithAzureAD = function (_a) {
|
|
|
7271
7262
|
};
|
|
7272
7263
|
|
|
7273
7264
|
function Login(_a) {
|
|
7274
|
-
var authConfig = _a.authConfig;
|
|
7265
|
+
var authConfig = _a.authConfig, initialError = _a.initialError;
|
|
7275
7266
|
var params = useRef(new URL(document.location).searchParams);
|
|
7276
7267
|
var _b = useState(false), open = _b[0], setOpen = _b[1];
|
|
7277
7268
|
var _c = useState(""), message = _c[0], setMessage = _c[1];
|
|
7269
|
+
var _d = useState("info"), severity = _d[0], setSeverity = _d[1];
|
|
7278
7270
|
var useEmailAndPassword = get(authConfig, "useEmailAndPassword", true);
|
|
7279
7271
|
var useAzureAD = get(authConfig, "useAzureAD", false);
|
|
7280
7272
|
var useWindowsAuth = get(authConfig, "useWindowsAuth", false);
|
|
7281
7273
|
var guestIsEnabled = get(authConfig, "guestIsEnabled", false);
|
|
7274
|
+
var getBase = function () { var _a; return ((_a = document.getElementsByTagName("base")[0]) === null || _a === void 0 ? void 0 : _a.getAttribute("href")) || "/"; };
|
|
7282
7275
|
var handleClose = function () {
|
|
7283
7276
|
setOpen(false);
|
|
7284
|
-
params
|
|
7285
|
-
var
|
|
7277
|
+
// Read current URL params (not the ref) to preserve redirectTo
|
|
7278
|
+
var currentParams = new URL(document.location).searchParams;
|
|
7279
|
+
currentParams.delete("message");
|
|
7280
|
+
currentParams.delete("error");
|
|
7281
|
+
var base = getBase();
|
|
7282
|
+
var queryString = currentParams.toString();
|
|
7283
|
+
var newUrl = "".concat(window.location.origin).concat(base).concat(queryString ? "?".concat(queryString) : "");
|
|
7286
7284
|
window.history.replaceState({ path: newUrl }, "", newUrl);
|
|
7287
7285
|
};
|
|
7288
7286
|
useEffect(function () {
|
|
7289
|
-
if (
|
|
7287
|
+
if (initialError) {
|
|
7288
|
+
setMessage(initialError);
|
|
7289
|
+
setSeverity("error");
|
|
7290
|
+
setOpen(true);
|
|
7291
|
+
}
|
|
7292
|
+
else if (params.current.has("error")) {
|
|
7293
|
+
setMessage(params.current.get("error"));
|
|
7294
|
+
setSeverity("error");
|
|
7295
|
+
setOpen(true);
|
|
7296
|
+
}
|
|
7297
|
+
else if (params.current.has("message")) {
|
|
7290
7298
|
setMessage(params.current.get("message"));
|
|
7299
|
+
setSeverity("info");
|
|
7291
7300
|
setOpen(true);
|
|
7292
7301
|
}
|
|
7293
|
-
}, [
|
|
7302
|
+
}, [initialError]);
|
|
7294
7303
|
return (React__default.createElement(Box, { sx: {
|
|
7295
7304
|
minHeight: "100vh",
|
|
7296
7305
|
backgroundImage: "linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%)",
|
|
@@ -7384,9 +7393,10 @@ function Login(_a) {
|
|
|
7384
7393
|
useAzureAD && (React__default.createElement(LoginWithAzureAD, { config: authConfig.AzureConfig })),
|
|
7385
7394
|
guestIsEnabled && React__default.createElement(LoginAsGuest, null))))))))),
|
|
7386
7395
|
React__default.createElement(Snackbar, { open: open, autoHideDuration: 6000, onClose: handleClose, anchorOrigin: { vertical: "bottom", horizontal: "center" } },
|
|
7387
|
-
React__default.createElement(Alert$4, { onClose: handleClose, severity:
|
|
7396
|
+
React__default.createElement(Alert$4, { onClose: handleClose, severity: severity, variant: "filled" }, message))));
|
|
7388
7397
|
}
|
|
7389
7398
|
|
|
7399
|
+
var getBase = function () { var _a; return ((_a = document.getElementsByTagName("base")[0]) === null || _a === void 0 ? void 0 : _a.getAttribute("href")) || "/"; };
|
|
7390
7400
|
var AuthProvider = function (_a) {
|
|
7391
7401
|
var children = _a.children, authConfig = _a.authConfig;
|
|
7392
7402
|
var useTokenHook = useToken();
|
|
@@ -7397,18 +7407,42 @@ var AuthProvider = function (_a) {
|
|
|
7397
7407
|
};
|
|
7398
7408
|
var Authenticated = function (_a) {
|
|
7399
7409
|
var children = _a.children;
|
|
7410
|
+
var redirectTo = new URL(document.location).searchParams.get("redirectTo");
|
|
7411
|
+
useEffect(function () {
|
|
7412
|
+
if (redirectTo) {
|
|
7413
|
+
window.location.href = decodeURIComponent(redirectTo);
|
|
7414
|
+
}
|
|
7415
|
+
}, []);
|
|
7416
|
+
if (redirectTo) {
|
|
7417
|
+
return null;
|
|
7418
|
+
}
|
|
7400
7419
|
return React__default.createElement(React__default.Fragment, null, children);
|
|
7401
7420
|
};
|
|
7402
7421
|
var Unauthenticated = function (_a) {
|
|
7403
7422
|
var authConfig = _a.authConfig;
|
|
7404
7423
|
var clearUserData = useContext(AuthContext).clearUserData;
|
|
7405
|
-
var
|
|
7424
|
+
var currentUrl = new URL(document.location);
|
|
7425
|
+
var base = getBase();
|
|
7426
|
+
var basePath = base.endsWith("/") ? base.slice(0, -1) : base;
|
|
7427
|
+
var isRootPath = currentUrl.pathname === "/" ||
|
|
7428
|
+
currentUrl.pathname === base ||
|
|
7429
|
+
currentUrl.pathname === basePath;
|
|
7430
|
+
var hasRedirectTo = currentUrl.searchParams.has("redirectTo");
|
|
7431
|
+
var shouldShowError = !isRootPath && !hasRedirectTo;
|
|
7406
7432
|
useEffect(function () {
|
|
7407
7433
|
clearUserData();
|
|
7408
|
-
|
|
7409
|
-
|
|
7434
|
+
if (shouldShowError) {
|
|
7435
|
+
var fullPath = currentUrl.pathname + currentUrl.search;
|
|
7436
|
+
var newParams = new URLSearchParams();
|
|
7437
|
+
newParams.set("redirectTo", fullPath);
|
|
7438
|
+
newParams.set("error", "Session expired. Please log in to continue");
|
|
7439
|
+
var newUrl = "".concat(window.location.origin).concat(base, "?").concat(newParams.toString());
|
|
7440
|
+
window.history.replaceState({ path: newUrl }, "", newUrl);
|
|
7441
|
+
}
|
|
7410
7442
|
}, []);
|
|
7411
|
-
return React__default.createElement(Login, { authConfig: authConfig
|
|
7443
|
+
return (React__default.createElement(Login, { authConfig: authConfig, initialError: shouldShowError
|
|
7444
|
+
? "Session expired. Please log in to continue"
|
|
7445
|
+
: undefined }));
|
|
7412
7446
|
};
|
|
7413
7447
|
|
|
7414
7448
|
function Logout() {
|
|
@@ -7506,7 +7540,7 @@ var TimeAndUserMenu = function () {
|
|
|
7506
7540
|
|
|
7507
7541
|
var ButtonWithLoading = function (_a) {
|
|
7508
7542
|
var children = _a.children, isLoading = _a.isLoading, props = __rest(_a, ["children", "isLoading"]);
|
|
7509
|
-
return (React__default.createElement(Button, __assign({}, props, { disabled: isLoading }),
|
|
7543
|
+
return (React__default.createElement(Button, __assign({}, props, { disabled: isLoading || props.disabled }),
|
|
7510
7544
|
isLoading && React__default.createElement(CircularProgress, { size: "1rem" }),
|
|
7511
7545
|
children));
|
|
7512
7546
|
};
|
|
@@ -10526,11 +10560,11 @@ var AreaSelector$1 = lazy(function () {
|
|
|
10526
10560
|
default: mod.AreaSelector,
|
|
10527
10561
|
}); });
|
|
10528
10562
|
});
|
|
10529
|
-
function Header
|
|
10530
|
-
var _b = _a.showAreaSelector, showAreaSelector = _b === void 0 ? false : _b, _c = _a.
|
|
10531
|
-
var
|
|
10563
|
+
function Header(_a) {
|
|
10564
|
+
var _b = _a.showAreaSelector, showAreaSelector = _b === void 0 ? false : _b, _c = _a.showTrendingsV2Icon, showTrendingsV2Icon = _c === void 0 ? true : _c, _d = _a.navbarTitle, navbarTitle = _d === void 0 ? "MESF" : _d;
|
|
10565
|
+
var _e = useState(""), error = _e[0], setError = _e[1];
|
|
10532
10566
|
var CustomNavbar = useContext(NavbarContext);
|
|
10533
|
-
var
|
|
10567
|
+
var _f = useState(false), drawerOpen = _f[0], setDrawerOpen = _f[1];
|
|
10534
10568
|
var hasPermissionTo = useHasPermission();
|
|
10535
10569
|
useUserContext().state.userLogged;
|
|
10536
10570
|
var handleDrawerToggle = function () {
|
|
@@ -10588,9 +10622,6 @@ function Header$1(_a) {
|
|
|
10588
10622
|
alignItems: "center",
|
|
10589
10623
|
color: "white",
|
|
10590
10624
|
} },
|
|
10591
|
-
showTrendingsIcon && (React__default.createElement(Tooltip, { title: "Trendings", placement: "bottom", arrow: true, enterDelay: 1500 },
|
|
10592
|
-
React__default.createElement(IconButton$1, { color: "inherit", component: Link, to: "/trendings" },
|
|
10593
|
-
React__default.createElement(ShowChartIcon, null)))),
|
|
10594
10625
|
showTrendingsV2Icon && (React__default.createElement(Tooltip, { title: "Trendings V2 (ECharts)", placement: "bottom", arrow: true, enterDelay: 1500 },
|
|
10595
10626
|
React__default.createElement(IconButton$1, { color: "inherit", component: Link, to: "/trendings-v2" },
|
|
10596
10627
|
React__default.createElement(Timeline, null)))),
|
|
@@ -11629,45 +11660,7 @@ var Configuration = function () {
|
|
|
11629
11660
|
React__default.createElement(route.main, null)) })); })))));
|
|
11630
11661
|
};
|
|
11631
11662
|
|
|
11632
|
-
var
|
|
11633
|
-
"#00AA00", // green
|
|
11634
|
-
"#0000FF", // blue
|
|
11635
|
-
"#FF0000", // red
|
|
11636
|
-
"#9C27B0", // purple
|
|
11637
|
-
"#FFA500", // orange
|
|
11638
|
-
"#397234", // forest green
|
|
11639
|
-
"#283F23", // dark olive
|
|
11640
|
-
"#3F2617", // dark brown
|
|
11641
|
-
"#0B0F08", // charcoal black
|
|
11642
|
-
"#889c2dff", // olive green
|
|
11643
|
-
"#B78449", // tan brown
|
|
11644
|
-
"#5D9F96", // teal
|
|
11645
|
-
"#1d5e74ff", // dark teal
|
|
11646
|
-
"#FA7305", // bright orange
|
|
11647
|
-
"#072684", // navy blue
|
|
11648
|
-
"#269473ff", // emerald green
|
|
11649
|
-
"#5d74b9ff", // slate blue
|
|
11650
|
-
"#0C8EF4", // sky blue
|
|
11651
|
-
"#8d481cff", // rust brown
|
|
11652
|
-
"#2B384C", // dark slate
|
|
11653
|
-
];
|
|
11654
|
-
var availableColors = __spreadArray([], tagColors$1, true);
|
|
11655
|
-
var lastColor = null;
|
|
11656
|
-
var getRandomColor = function () {
|
|
11657
|
-
if (availableColors.length === 0) {
|
|
11658
|
-
availableColors = __spreadArray([], tagColors$1, true);
|
|
11659
|
-
if (lastColor && availableColors.length > 1) {
|
|
11660
|
-
availableColors.splice(availableColors.indexOf(lastColor), 1);
|
|
11661
|
-
}
|
|
11662
|
-
}
|
|
11663
|
-
var randomIndex = Math.floor(Math.random() * availableColors.length);
|
|
11664
|
-
var color = availableColors[randomIndex];
|
|
11665
|
-
availableColors.splice(randomIndex, 1);
|
|
11666
|
-
lastColor = color;
|
|
11667
|
-
return color;
|
|
11668
|
-
};
|
|
11669
|
-
|
|
11670
|
-
var TrendingContext$1 = createContext(undefined);
|
|
11663
|
+
var TrendingContext = createContext(undefined);
|
|
11671
11664
|
var getDefaultTimeScope = function () {
|
|
11672
11665
|
var end = new Date();
|
|
11673
11666
|
var start = new Date(end.getTime() - 8 * 60 * 60 * 1000); // 8 hours ago
|
|
@@ -11818,10 +11811,10 @@ var TrendingProviderV2 = function (_a) {
|
|
|
11818
11811
|
state: state,
|
|
11819
11812
|
actions: actions,
|
|
11820
11813
|
}); }, [state, actions]);
|
|
11821
|
-
return (React__default.createElement(TrendingContext
|
|
11814
|
+
return (React__default.createElement(TrendingContext.Provider, { value: value }, children));
|
|
11822
11815
|
};
|
|
11823
11816
|
var useTrendingContextV2 = function () {
|
|
11824
|
-
var context = useContext(TrendingContext
|
|
11817
|
+
var context = useContext(TrendingContext);
|
|
11825
11818
|
if (!context) {
|
|
11826
11819
|
throw new Error("useTrendingContextV2 must be used within TrendingProviderV2");
|
|
11827
11820
|
}
|
|
@@ -12123,39 +12116,6 @@ var deleteAllViewTagsFromView = function (ViewId) { return __awaiter(void 0, voi
|
|
|
12123
12116
|
});
|
|
12124
12117
|
}); };
|
|
12125
12118
|
|
|
12126
|
-
var dateNavigator = function (startDate, endDate, scope, operator, current) {
|
|
12127
|
-
if (current === void 0) { current = false; }
|
|
12128
|
-
var newStartDate;
|
|
12129
|
-
var newEndDate = endDate;
|
|
12130
|
-
if (current) {
|
|
12131
|
-
newEndDate = new Date();
|
|
12132
|
-
if (scope === "custom") {
|
|
12133
|
-
// If scope is custom, keep the same startDate
|
|
12134
|
-
newStartDate = startDate;
|
|
12135
|
-
}
|
|
12136
|
-
else {
|
|
12137
|
-
var _a = scope.split(" "), quantity = _a[0], duration = _a[1];
|
|
12138
|
-
newStartDate = moment$f(newEndDate)
|
|
12139
|
-
.subtract(quantity, duration[0])
|
|
12140
|
-
.toDate();
|
|
12141
|
-
}
|
|
12142
|
-
}
|
|
12143
|
-
else {
|
|
12144
|
-
if (scope === "custom") {
|
|
12145
|
-
var durationInMs = moment$f(endDate).diff(moment$f(startDate));
|
|
12146
|
-
newStartDate = moment$f(startDate)[operator](durationInMs).toDate();
|
|
12147
|
-
}
|
|
12148
|
-
else {
|
|
12149
|
-
var _b = scope.split(" "), quantity = _b[0], duration = _b[1];
|
|
12150
|
-
newStartDate = moment$f(startDate)[operator](quantity, duration[0])
|
|
12151
|
-
.toDate();
|
|
12152
|
-
newEndDate = moment$f(endDate)[operator](quantity, duration[0])
|
|
12153
|
-
.toDate();
|
|
12154
|
-
}
|
|
12155
|
-
}
|
|
12156
|
-
return { newStartDate: newStartDate, newEndDate: newEndDate };
|
|
12157
|
-
};
|
|
12158
|
-
|
|
12159
12119
|
var ConfirmationDialogRaw = function (_a) {
|
|
12160
12120
|
var title = _a.title, message = _a.message, open = _a.open, onClose = _a.onClose, suffixTitle = _a.suffixTitle, other = __rest(_a, ["title", "message", "open", "onClose", "suffixTitle"]);
|
|
12161
12121
|
var handleCancel = function () {
|
|
@@ -12561,6 +12521,39 @@ var calculateCounterpartDate = function (changedDate, changedField, scope) {
|
|
|
12561
12521
|
}
|
|
12562
12522
|
};
|
|
12563
12523
|
|
|
12524
|
+
var dateNavigator = function (startDate, endDate, scope, operator, current) {
|
|
12525
|
+
if (current === void 0) { current = false; }
|
|
12526
|
+
var newStartDate;
|
|
12527
|
+
var newEndDate = endDate;
|
|
12528
|
+
if (current) {
|
|
12529
|
+
newEndDate = new Date();
|
|
12530
|
+
if (scope === "custom") {
|
|
12531
|
+
// If scope is custom, keep the same startDate
|
|
12532
|
+
newStartDate = startDate;
|
|
12533
|
+
}
|
|
12534
|
+
else {
|
|
12535
|
+
var _a = scope.split(" "), quantity = _a[0], duration = _a[1];
|
|
12536
|
+
newStartDate = moment$f(newEndDate)
|
|
12537
|
+
.subtract(quantity, duration[0])
|
|
12538
|
+
.toDate();
|
|
12539
|
+
}
|
|
12540
|
+
}
|
|
12541
|
+
else {
|
|
12542
|
+
if (scope === "custom") {
|
|
12543
|
+
var durationInMs = moment$f(endDate).diff(moment$f(startDate));
|
|
12544
|
+
newStartDate = moment$f(startDate)[operator](durationInMs).toDate();
|
|
12545
|
+
}
|
|
12546
|
+
else {
|
|
12547
|
+
var _b = scope.split(" "), quantity = _b[0], duration = _b[1];
|
|
12548
|
+
newStartDate = moment$f(startDate)[operator](quantity, duration[0])
|
|
12549
|
+
.toDate();
|
|
12550
|
+
newEndDate = moment$f(endDate)[operator](quantity, duration[0])
|
|
12551
|
+
.toDate();
|
|
12552
|
+
}
|
|
12553
|
+
}
|
|
12554
|
+
return { newStartDate: newStartDate, newEndDate: newEndDate };
|
|
12555
|
+
};
|
|
12556
|
+
|
|
12564
12557
|
var HeaderSectionV2 = React__default.memo(function (_a) {
|
|
12565
12558
|
var autoRefresh = _a.autoRefresh, setAutoRefresh = _a.setAutoRefresh, setChartOptions = _a.setChartOptions, chartInstance = _a.chartInstance;
|
|
12566
12559
|
var queryClient = useQueryClient();
|
|
@@ -12891,7 +12884,7 @@ var HeaderSectionV2 = React__default.memo(function (_a) {
|
|
|
12891
12884
|
});
|
|
12892
12885
|
HeaderSectionV2.displayName = "HeaderSectionV2";
|
|
12893
12886
|
|
|
12894
|
-
var tagColors = [
|
|
12887
|
+
var tagColors$1 = [
|
|
12895
12888
|
"#5eaf60", // light green
|
|
12896
12889
|
"green", // green
|
|
12897
12890
|
"#62bd9c", // turquoise green
|
|
@@ -12960,7 +12953,7 @@ var ColorPickerV2 = function (_a) {
|
|
|
12960
12953
|
flexWrap: "wrap",
|
|
12961
12954
|
padding: "10px",
|
|
12962
12955
|
maxWidth: "165px",
|
|
12963
|
-
} }, tagColors.map(function (tagColor) { return (React__default.createElement(ColorSwatch, { key: tagColor, color: tagColor, onSelect: handleColorSelect })); })))));
|
|
12956
|
+
} }, tagColors$1.map(function (tagColor) { return (React__default.createElement(ColorSwatch, { key: tagColor, color: tagColor, onSelect: handleColorSelect })); })))));
|
|
12964
12957
|
};
|
|
12965
12958
|
|
|
12966
12959
|
var NotificationSnackBar = function (_a) {
|
|
@@ -12979,274 +12972,88 @@ var NotificationSnackBar = function (_a) {
|
|
|
12979
12972
|
React__default.createElement(Alert$3, { elevation: 6, variant: "filled", severity: severity, onClose: handleClose }, message)));
|
|
12980
12973
|
};
|
|
12981
12974
|
|
|
12982
|
-
|
|
12983
|
-
var
|
|
12984
|
-
|
|
12985
|
-
|
|
12986
|
-
|
|
12987
|
-
|
|
12988
|
-
|
|
12989
|
-
|
|
12990
|
-
|
|
12991
|
-
}
|
|
12975
|
+
function buildTagsTreeV2(data) {
|
|
12976
|
+
var tagsForTree = [];
|
|
12977
|
+
data.forEach(function (el) {
|
|
12978
|
+
var tagForTree = {
|
|
12979
|
+
id: el.TagId,
|
|
12980
|
+
parent: el.ParentTagFolderId || 0,
|
|
12981
|
+
text: el.TagName,
|
|
12982
|
+
data: el,
|
|
12983
|
+
droppable: el.TagTypeCode === "F",
|
|
12984
|
+
};
|
|
12985
|
+
return tagsForTree.push(tagForTree);
|
|
12992
12986
|
});
|
|
12993
|
-
|
|
12994
|
-
|
|
12987
|
+
return tagsForTree;
|
|
12988
|
+
}
|
|
12989
|
+
|
|
12990
|
+
var customStyles = "\n ul, ol {\n list-style-type: none;\n margin: 0;\n padding: 0;\n }\n";
|
|
12991
|
+
var TagFolderCustomNodeV2 = function (_a) {
|
|
12992
|
+
var _b, _c, _d, _e, _f, _g, _h, _j;
|
|
12993
|
+
var node = _a.node, _k = _a.options, depth = _k.depth, isOpen = _k.isOpen, onToggle = _k.onToggle, containerRef = _k.containerRef, options = _a.options, setOpenTagFolders = _a.setOpenTagFolders, openTagFolders = _a.openTagFolders, handleSelect = _a.handleSelect, setContextMenuOver = _a.setContextMenuOver, isSelected = _a.isSelected;
|
|
12994
|
+
var onClickHandler = function () {
|
|
12995
12995
|
var _a;
|
|
12996
|
-
|
|
12997
|
-
|
|
12998
|
-
|
|
12999
|
-
|
|
13000
|
-
|
|
13001
|
-
|
|
13002
|
-
? Number(tagNodeSelectedInTree.id)
|
|
13003
|
-
: parentId;
|
|
13004
|
-
setIsLoading(true);
|
|
13005
|
-
if (!name) return [3 /*break*/, 2];
|
|
13006
|
-
return [4 /*yield*/, updateTagFolder.mutate({
|
|
13007
|
-
tagFolderId: null,
|
|
13008
|
-
parentTagFolderId: parentTagId,
|
|
13009
|
-
tagFolderName: name,
|
|
13010
|
-
isActive: true,
|
|
13011
|
-
})];
|
|
13012
|
-
case 1:
|
|
13013
|
-
_b.sent();
|
|
13014
|
-
_b.label = 2;
|
|
13015
|
-
case 2:
|
|
13016
|
-
handleClose(true);
|
|
13017
|
-
setName("");
|
|
13018
|
-
setIsLoading(false);
|
|
13019
|
-
return [2 /*return*/];
|
|
12996
|
+
var _b;
|
|
12997
|
+
if (options.hasChild || ((_b = node.data) === null || _b === void 0 ? void 0 : _b.TagTypeCode) === "F") {
|
|
12998
|
+
if (openTagFolders[node.id]) {
|
|
12999
|
+
var newOpenTagFolders = __assign({}, openTagFolders);
|
|
13000
|
+
delete newOpenTagFolders[node.id];
|
|
13001
|
+
setOpenTagFolders(newOpenTagFolders);
|
|
13020
13002
|
}
|
|
13021
|
-
|
|
13022
|
-
|
|
13023
|
-
|
|
13024
|
-
|
|
13025
|
-
|
|
13026
|
-
|
|
13027
|
-
|
|
13028
|
-
|
|
13029
|
-
|
|
13030
|
-
|
|
13031
|
-
|
|
13032
|
-
|
|
13033
|
-
|
|
13034
|
-
|
|
13035
|
-
|
|
13036
|
-
|
|
13037
|
-
|
|
13038
|
-
|
|
13039
|
-
|
|
13040
|
-
|
|
13041
|
-
|
|
13042
|
-
|
|
13043
|
-
|
|
13044
|
-
|
|
13045
|
-
|
|
13046
|
-
|
|
13047
|
-
|
|
13048
|
-
|
|
13049
|
-
|
|
13050
|
-
|
|
13051
|
-
|
|
13052
|
-
|
|
13053
|
-
|
|
13054
|
-
|
|
13055
|
-
|
|
13056
|
-
|
|
13057
|
-
|
|
13058
|
-
|
|
13059
|
-
|
|
13060
|
-
|
|
13061
|
-
|
|
13062
|
-
|
|
13063
|
-
|
|
13064
|
-
|
|
13065
|
-
|
|
13066
|
-
|
|
13067
|
-
|
|
13068
|
-
|
|
13069
|
-
|
|
13070
|
-
|
|
13071
|
-
|
|
13072
|
-
|
|
13073
|
-
|
|
13074
|
-
|
|
13075
|
-
_a.sent();
|
|
13076
|
-
_a.label = 4;
|
|
13077
|
-
case 4:
|
|
13078
|
-
handleClose(true);
|
|
13079
|
-
setIsLoading(false);
|
|
13080
|
-
return [2 /*return*/];
|
|
13081
|
-
}
|
|
13082
|
-
});
|
|
13083
|
-
}); };
|
|
13084
|
-
return (React__default.createElement(React__default.Fragment, null,
|
|
13085
|
-
React__default.createElement(MesfModal, { open: open, handleClose: function () { return handleClose(false); }, maxWidth: "lg", "aria-labelledby": "modal-modal-title", "aria-describedby": "modal-modal-description", title: "Remove Folder" },
|
|
13086
|
-
React__default.createElement(MesfModal.Content, null,
|
|
13087
|
-
React__default.createElement(Box, null,
|
|
13088
|
-
React__default.createElement(Typography$1, null,
|
|
13089
|
-
"Are you sure you want to remove",
|
|
13090
|
-
" ",
|
|
13091
|
-
React__default.createElement("strong", null, tagNodeSelectedInTree === null || tagNodeSelectedInTree === void 0 ? void 0 : tagNodeSelectedInTree.text),
|
|
13092
|
-
" folder?"))),
|
|
13093
|
-
React__default.createElement(MesfModal.Actions, null,
|
|
13094
|
-
React__default.createElement("div", null,
|
|
13095
|
-
React__default.createElement(Button, { color: "secondary", variant: "outlined", onClick: function () { return handleClose(false); } }, "Cancel")),
|
|
13096
|
-
React__default.createElement("div", null,
|
|
13097
|
-
React__default.createElement(ButtonWithLoading, { isLoading: isLoading, onClick: onSubmit, color: "primary", variant: "contained" }, "Remove")))),
|
|
13098
|
-
React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
|
|
13099
|
-
};
|
|
13100
|
-
|
|
13101
|
-
var ContextMenu = function (_a) {
|
|
13102
|
-
var _b;
|
|
13103
|
-
var isOpen = _a.isOpen, anchorPoint = _a.anchorPoint, tagNodeSelectedInTree = _a.tagNodeSelectedInTree, getTagsTreeData = _a.getTagsTreeData, setShowContextMenu = _a.setShowContextMenu;
|
|
13104
|
-
var _c = useState(false), showNewTagModal = _c[0], setShowNewTagModal = _c[1];
|
|
13105
|
-
var _d = useState(false), showRemoveTagModal = _d[0], setShowRemoveTagModal = _d[1];
|
|
13106
|
-
var isFolder = ((_b = tagNodeSelectedInTree === null || tagNodeSelectedInTree === void 0 ? void 0 : tagNodeSelectedInTree.data) === null || _b === void 0 ? void 0 : _b.TagTypeCode) === "F";
|
|
13107
|
-
return (React__default.createElement(React__default.Fragment, null,
|
|
13108
|
-
isOpen && anchorPoint ? (React__default.createElement("ul", { style: {
|
|
13109
|
-
top: anchorPoint.y,
|
|
13110
|
-
left: anchorPoint.x,
|
|
13111
|
-
fontSize: "0.875rem",
|
|
13112
|
-
backgroundColor: "#fff",
|
|
13113
|
-
borderRadius: "2px",
|
|
13114
|
-
padding: "5px 10px;",
|
|
13115
|
-
width: "140px",
|
|
13116
|
-
height: "auto",
|
|
13117
|
-
margin: "0",
|
|
13118
|
-
position: "fixed",
|
|
13119
|
-
boxShadow: "0 0 20px 0 #ccc",
|
|
13120
|
-
display: "flex",
|
|
13121
|
-
flexDirection: "column",
|
|
13122
|
-
} },
|
|
13123
|
-
React__default.createElement(MenuItem, { style: { width: "100%", justifyContent: "left" }, onClick: function () { return setShowNewTagModal(true); } }, "New Folder"),
|
|
13124
|
-
tagNodeSelectedInTree && isFolder && (React__default.createElement(MenuItem, { style: { width: "100%", justifyContent: "left" }, onClick: function () { return setShowRemoveTagModal(true); } }, "Remove Folder")))) : null,
|
|
13125
|
-
React__default.createElement(NewFolderModal, { open: showNewTagModal, handleClose: function (shouldUpdate) {
|
|
13126
|
-
if (shouldUpdate) {
|
|
13127
|
-
getTagsTreeData();
|
|
13128
|
-
}
|
|
13129
|
-
setShowContextMenu(false);
|
|
13130
|
-
setShowNewTagModal(false);
|
|
13131
|
-
}, tagNodeSelectedInTree: tagNodeSelectedInTree }),
|
|
13132
|
-
React__default.createElement(RemoveFolderModal, { open: showRemoveTagModal, handleClose: function (shouldUpdate) {
|
|
13133
|
-
if (shouldUpdate) {
|
|
13134
|
-
getTagsTreeData();
|
|
13135
|
-
}
|
|
13136
|
-
setShowContextMenu(false);
|
|
13137
|
-
setShowRemoveTagModal(false);
|
|
13138
|
-
}, tagNodeSelectedInTree: tagNodeSelectedInTree })));
|
|
13139
|
-
};
|
|
13140
|
-
|
|
13141
|
-
var CustomDragPreview = function (props) {
|
|
13142
|
-
var _a, _b, _c;
|
|
13143
|
-
var item = props.monitorProps.item;
|
|
13144
|
-
var isFolder = ((_a = item.data) === null || _a === void 0 ? void 0 : _a.TagTypeCode) === "F" ? true : false;
|
|
13145
|
-
return (React__default.createElement(Box, { sx: {
|
|
13146
|
-
alignItems: "center",
|
|
13147
|
-
backgroundColor: "#1967d2",
|
|
13148
|
-
borderRadius: "4px",
|
|
13149
|
-
boxShadow: " 0 12px 24px -6px rgba(0, 0, 0, .25); 0 0 0 1px rgba(0, 0, 0, .08)",
|
|
13150
|
-
color: "#fff",
|
|
13151
|
-
display: "inline-grid",
|
|
13152
|
-
fontSize: "0.875rem",
|
|
13153
|
-
gap: "8px",
|
|
13154
|
-
gridTemplateColumns: "auto auto",
|
|
13155
|
-
padding: "4px 8px",
|
|
13156
|
-
pointerEvents: "none",
|
|
13157
|
-
} },
|
|
13158
|
-
React__default.createElement(Box, { sx: {
|
|
13159
|
-
alignItems: "center",
|
|
13160
|
-
display: "flex",
|
|
13161
|
-
} }, isFolder ? React__default.createElement(FolderIcon, null) : React__default.createElement(InsertChartIcon, { fontSize: "small" })),
|
|
13162
|
-
React__default.createElement(Box, { sx: {
|
|
13163
|
-
alignItems: "center",
|
|
13164
|
-
display: "flex",
|
|
13165
|
-
} }, ((_b = item.data) === null || _b === void 0 ? void 0 : _b.Alias) || ((_c = item.data) === null || _c === void 0 ? void 0 : _c.TagName))));
|
|
13166
|
-
};
|
|
13167
|
-
|
|
13168
|
-
function buildTagsTreeV2(data) {
|
|
13169
|
-
var tagsForTree = [];
|
|
13170
|
-
data.forEach(function (el) {
|
|
13171
|
-
var tagForTree = {
|
|
13172
|
-
id: el.TagId,
|
|
13173
|
-
parent: el.ParentTagId || 0,
|
|
13174
|
-
text: el.TagName,
|
|
13175
|
-
data: el,
|
|
13176
|
-
droppable: el.TagTypeCode === "F",
|
|
13177
|
-
};
|
|
13178
|
-
return tagsForTree.push(tagForTree);
|
|
13179
|
-
});
|
|
13180
|
-
return tagsForTree;
|
|
13181
|
-
}
|
|
13182
|
-
|
|
13183
|
-
var customStyles$1 = "\n ul, ol {\n list-style-type: none;\n margin: 0;\n padding: 0;\n }\n";
|
|
13184
|
-
var TagFolderCustomNodeV2 = function (_a) {
|
|
13185
|
-
var _b, _c, _d, _e, _f, _g, _h, _j;
|
|
13186
|
-
var node = _a.node, _k = _a.options, depth = _k.depth, isOpen = _k.isOpen, onToggle = _k.onToggle, containerRef = _k.containerRef, options = _a.options, setOpenTagFolders = _a.setOpenTagFolders, openTagFolders = _a.openTagFolders, handleSelect = _a.handleSelect, setContextMenuOver = _a.setContextMenuOver, isSelected = _a.isSelected;
|
|
13187
|
-
var onClickHandler = function () {
|
|
13188
|
-
var _a;
|
|
13189
|
-
var _b;
|
|
13190
|
-
if (options.hasChild || ((_b = node.data) === null || _b === void 0 ? void 0 : _b.TagTypeCode) === "F") {
|
|
13191
|
-
if (openTagFolders[node.id]) {
|
|
13192
|
-
var newOpenTagFolders = __assign({}, openTagFolders);
|
|
13193
|
-
delete newOpenTagFolders[node.id];
|
|
13194
|
-
setOpenTagFolders(newOpenTagFolders);
|
|
13195
|
-
}
|
|
13196
|
-
else {
|
|
13197
|
-
setOpenTagFolders(__assign(__assign({}, openTagFolders), (_a = {}, _a[node.id] = node.id, _a)));
|
|
13198
|
-
}
|
|
13199
|
-
onToggle();
|
|
13200
|
-
return;
|
|
13201
|
-
}
|
|
13202
|
-
if (!options.hasChild) {
|
|
13203
|
-
handleSelect(node);
|
|
13204
|
-
}
|
|
13205
|
-
};
|
|
13206
|
-
var handleContextMenu = useCallback(function (ev) {
|
|
13207
|
-
ev.stopPropagation();
|
|
13208
|
-
ev.preventDefault();
|
|
13209
|
-
setContextMenuOver(node, ev);
|
|
13210
|
-
}, [node.id, setContextMenuOver]);
|
|
13211
|
-
useEffect(function () {
|
|
13212
|
-
var _a;
|
|
13213
|
-
(_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener("contextmenu", handleContextMenu);
|
|
13214
|
-
return function () {
|
|
13215
|
-
var _a;
|
|
13216
|
-
(_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener("contextmenu", handleContextMenu);
|
|
13217
|
-
};
|
|
13218
|
-
}, []);
|
|
13219
|
-
return (React__default.createElement(Box, { "data-node-id": node.id, onClick: onClickHandler, sx: {
|
|
13220
|
-
paddingInlineStart: depth * 2,
|
|
13221
|
-
cursor: "pointer",
|
|
13222
|
-
alignItems: "center",
|
|
13223
|
-
display: "flex",
|
|
13224
|
-
height: "32px",
|
|
13225
|
-
backgroundColor: isSelected ? "#e8f0fe" : "",
|
|
13226
|
-
"&:hover": {
|
|
13227
|
-
backgroundColor: "#f2f2f2",
|
|
13228
|
-
},
|
|
13229
|
-
} },
|
|
13230
|
-
React__default.createElement("style", null, customStyles$1),
|
|
13231
|
-
React__default.createElement(React__default.Fragment, null,
|
|
13232
|
-
options.hasChild ? (React__default.createElement("div", null, isOpen ? React__default.createElement(ArrowDropDownIcon, null) : React__default.createElement(ArrowRight, null))) : null,
|
|
13233
|
-
React__default.createElement("div", null, options.hasChild || ((_b = node.data) === null || _b === void 0 ? void 0 : _b.TagTypeCode) === "F" ? (React__default.createElement(Folder, null)) : (React__default.createElement(InsertChart, { fontSize: "small" })))),
|
|
13234
|
-
((_c = node.data) === null || _c === void 0 ? void 0 : _c.TagName) && (React__default.createElement(React__default.Fragment, null,
|
|
13235
|
-
((_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(Box, { sx: {
|
|
13236
|
-
width: "20px",
|
|
13237
|
-
height: "20px",
|
|
13238
|
-
color: "white",
|
|
13239
|
-
display: "flex",
|
|
13240
|
-
justifyContent: "center",
|
|
13241
|
-
alignItems: "center",
|
|
13242
|
-
fontSize: "10px",
|
|
13243
|
-
fontWeight: "bold",
|
|
13244
|
-
borderRadius: "3px",
|
|
13245
|
-
border: "1px solid rgba(0, 0, 0, 0.2)",
|
|
13246
|
-
backgroundColor: ((_f = node.data) === null || _f === void 0 ? void 0 : _f.TagTypeCode) === "A" ? "#AD48C4" : "#C46F48",
|
|
13247
|
-
} }, (_g = node.data) === null || _g === void 0 ? void 0 : _g.TagTypeCode)),
|
|
13248
|
-
React__default.createElement(Tooltip, { title: node.data.TagName, placement: "top", arrow: true },
|
|
13249
|
-
React__default.createElement(Typography$1, { variant: "body2" }, ((_h = node.data) === null || _h === void 0 ? void 0 : _h.Alias) || ((_j = node.data) === null || _j === void 0 ? void 0 : _j.TagName)))))));
|
|
13003
|
+
else {
|
|
13004
|
+
setOpenTagFolders(__assign(__assign({}, openTagFolders), (_a = {}, _a[node.id] = node.id, _a)));
|
|
13005
|
+
}
|
|
13006
|
+
onToggle();
|
|
13007
|
+
return;
|
|
13008
|
+
}
|
|
13009
|
+
if (!options.hasChild) {
|
|
13010
|
+
handleSelect(node);
|
|
13011
|
+
}
|
|
13012
|
+
};
|
|
13013
|
+
var handleContextMenu = useCallback(function (ev) {
|
|
13014
|
+
ev.stopPropagation();
|
|
13015
|
+
ev.preventDefault();
|
|
13016
|
+
setContextMenuOver(node, ev);
|
|
13017
|
+
}, [node.id, setContextMenuOver]);
|
|
13018
|
+
useEffect(function () {
|
|
13019
|
+
var _a;
|
|
13020
|
+
(_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener("contextmenu", handleContextMenu);
|
|
13021
|
+
return function () {
|
|
13022
|
+
var _a;
|
|
13023
|
+
(_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener("contextmenu", handleContextMenu);
|
|
13024
|
+
};
|
|
13025
|
+
}, []);
|
|
13026
|
+
return (React__default.createElement(Box, { "data-node-id": node.id, onClick: onClickHandler, sx: {
|
|
13027
|
+
paddingInlineStart: depth * 2,
|
|
13028
|
+
cursor: "pointer",
|
|
13029
|
+
alignItems: "center",
|
|
13030
|
+
display: "flex",
|
|
13031
|
+
height: "32px",
|
|
13032
|
+
backgroundColor: isSelected ? "#e8f0fe" : "",
|
|
13033
|
+
"&:hover": {
|
|
13034
|
+
backgroundColor: "#f2f2f2",
|
|
13035
|
+
},
|
|
13036
|
+
} },
|
|
13037
|
+
React__default.createElement("style", null, customStyles),
|
|
13038
|
+
React__default.createElement(React__default.Fragment, null,
|
|
13039
|
+
options.hasChild ? (React__default.createElement("div", null, isOpen ? React__default.createElement(ArrowDropDownIcon, null) : React__default.createElement(ArrowRight, null))) : null,
|
|
13040
|
+
React__default.createElement("div", null, options.hasChild || ((_b = node.data) === null || _b === void 0 ? void 0 : _b.TagTypeCode) === "F" ? (React__default.createElement(Folder, null)) : (React__default.createElement(InsertChart, { fontSize: "small" })))),
|
|
13041
|
+
((_c = node.data) === null || _c === void 0 ? void 0 : _c.TagName) && (React__default.createElement(React__default.Fragment, null,
|
|
13042
|
+
((_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(Box, { sx: {
|
|
13043
|
+
width: "20px",
|
|
13044
|
+
height: "20px",
|
|
13045
|
+
color: "white",
|
|
13046
|
+
display: "flex",
|
|
13047
|
+
justifyContent: "center",
|
|
13048
|
+
alignItems: "center",
|
|
13049
|
+
fontSize: "10px",
|
|
13050
|
+
fontWeight: "bold",
|
|
13051
|
+
borderRadius: "3px",
|
|
13052
|
+
border: "1px solid rgba(0, 0, 0, 0.2)",
|
|
13053
|
+
backgroundColor: ((_f = node.data) === null || _f === void 0 ? void 0 : _f.TagTypeCode) === "A" ? "#AD48C4" : "#C46F48",
|
|
13054
|
+
} }, (_g = node.data) === null || _g === void 0 ? void 0 : _g.TagTypeCode)),
|
|
13055
|
+
React__default.createElement(Tooltip, { title: node.data.TagName, placement: "top", arrow: true },
|
|
13056
|
+
React__default.createElement(Typography$1, { variant: "body2" }, ((_h = node.data) === null || _h === void 0 ? void 0 : _h.Alias) || ((_j = node.data) === null || _j === void 0 ? void 0 : _j.TagName)))))));
|
|
13250
13057
|
};
|
|
13251
13058
|
|
|
13252
13059
|
var useTagSearch = function (_a) {
|
|
@@ -13485,56 +13292,242 @@ var TagSearchInput = function (_a) {
|
|
|
13485
13292
|
} }))); })))));
|
|
13486
13293
|
};
|
|
13487
13294
|
|
|
13488
|
-
|
|
13489
|
-
var
|
|
13490
|
-
|
|
13491
|
-
queryKey: ["tagsTree-v2"],
|
|
13492
|
-
queryFn: function () { return getTagsTree(); },
|
|
13493
|
-
enabled: false, // Only fetch when explicitly called
|
|
13494
|
-
});
|
|
13495
|
-
};
|
|
13496
|
-
var TagsTreeModalV2 = function (_a) {
|
|
13497
|
-
var open = _a.open, handleClose = _a.handleClose, onTagSelect = _a.onTagSelect;
|
|
13498
|
-
var _b = useState(false), isLoading = _b[0], setIsLoading = _b[1];
|
|
13295
|
+
var NewFolderModal = function (_a) {
|
|
13296
|
+
var open = _a.open, handleClose = _a.handleClose, tagNodeSelectedInTree = _a.tagNodeSelectedInTree;
|
|
13297
|
+
var _b = useState(), name = _b[0], setName = _b[1];
|
|
13499
13298
|
var _c = useState(""), error = _c[0], setError = _c[1];
|
|
13500
|
-
var _d = useState(
|
|
13501
|
-
var _e = useState([]), tagsTreeData = _e[0], setTagsTreeData = _e[1];
|
|
13502
|
-
var _f = useState(null), tagNodeSelectedInTree = _f[0], setTagNodeSelectedInTree = _f[1];
|
|
13503
|
-
var _g = useState(null), anchorPoint = _g[0], setAnchorPoint = _g[1];
|
|
13504
|
-
var _h = useState(false), showContextMenu = _h[0], setShowContextMenu = _h[1];
|
|
13505
|
-
var backendOffset = 1000000;
|
|
13506
|
-
var _j = useState({}), openTagFolders = _j[0], setOpenTagFolders = _j[1];
|
|
13507
|
-
var _k = useState([]), selectedNodes = _k[0], setSelectedNodes = _k[1];
|
|
13508
|
-
var handleContextMenu = function (data, e) {
|
|
13509
|
-
e.preventDefault();
|
|
13510
|
-
var top = e.clientY;
|
|
13511
|
-
var left = e.clientX;
|
|
13512
|
-
setAnchorPoint({ x: left, y: top });
|
|
13513
|
-
setSelectedNodes([data]);
|
|
13514
|
-
setShowContextMenu(true);
|
|
13515
|
-
var selectedNode = tagsTreeData.find(function (node) { var _a; return ((_a = node.data) === null || _a === void 0 ? void 0 : _a.TagId) === data.id; });
|
|
13516
|
-
if (selectedNode) {
|
|
13517
|
-
setTagNodeSelectedInTree(selectedNode);
|
|
13518
|
-
}
|
|
13519
|
-
};
|
|
13520
|
-
var _l = useSearchTagsTree$1(), tagsTree = _l.data, tagsTreeLoading = _l.isLoading, tagsTreeIsError = _l.isError, tagsTreeError = _l.error, tagsTreeIsSuccess = _l.isSuccess, tagsTreeIsFetched = _l.isFetched, refetch = _l.refetch;
|
|
13299
|
+
var _d = useState(false), isLoading = _d[0], setIsLoading = _d[1];
|
|
13521
13300
|
var updateTagFolder = useMutation({
|
|
13522
|
-
mutationFn:
|
|
13523
|
-
var tagFolderId = _a.tagFolderId, parentTagFolderId = _a.parentTagFolderId, tagFolderName = _a.tagFolderName, isActive = _a.isActive;
|
|
13524
|
-
return upsertTagFolder({
|
|
13525
|
-
tagFolderId: tagFolderId,
|
|
13526
|
-
parentTagFolderId: parentTagFolderId,
|
|
13527
|
-
tagFolderName: tagFolderName,
|
|
13528
|
-
isActive: isActive,
|
|
13529
|
-
});
|
|
13530
|
-
},
|
|
13301
|
+
mutationFn: upsertTagFolder,
|
|
13531
13302
|
onError: function (error) {
|
|
13532
13303
|
setError(error.message);
|
|
13533
13304
|
},
|
|
13534
13305
|
});
|
|
13535
|
-
var
|
|
13536
|
-
|
|
13537
|
-
|
|
13306
|
+
var onSubmit = function (e) { return __awaiter(void 0, void 0, void 0, function () {
|
|
13307
|
+
var parentId, parentTagId;
|
|
13308
|
+
var _a;
|
|
13309
|
+
return __generator(this, function (_b) {
|
|
13310
|
+
switch (_b.label) {
|
|
13311
|
+
case 0:
|
|
13312
|
+
e.preventDefault();
|
|
13313
|
+
parentId = Number(tagNodeSelectedInTree === null || tagNodeSelectedInTree === void 0 ? void 0 : tagNodeSelectedInTree.parent) || null;
|
|
13314
|
+
parentTagId = ((_a = tagNodeSelectedInTree === null || tagNodeSelectedInTree === void 0 ? void 0 : tagNodeSelectedInTree.data) === null || _a === void 0 ? void 0 : _a.TagTypeCode) === "F"
|
|
13315
|
+
? Number(tagNodeSelectedInTree.id)
|
|
13316
|
+
: parentId;
|
|
13317
|
+
setIsLoading(true);
|
|
13318
|
+
if (!name) return [3 /*break*/, 2];
|
|
13319
|
+
return [4 /*yield*/, updateTagFolder.mutate({
|
|
13320
|
+
tagFolderId: null,
|
|
13321
|
+
parentTagFolderId: parentTagId,
|
|
13322
|
+
tagFolderName: name,
|
|
13323
|
+
isActive: true,
|
|
13324
|
+
})];
|
|
13325
|
+
case 1:
|
|
13326
|
+
_b.sent();
|
|
13327
|
+
_b.label = 2;
|
|
13328
|
+
case 2:
|
|
13329
|
+
handleClose(true);
|
|
13330
|
+
setName("");
|
|
13331
|
+
setIsLoading(false);
|
|
13332
|
+
return [2 /*return*/];
|
|
13333
|
+
}
|
|
13334
|
+
});
|
|
13335
|
+
}); };
|
|
13336
|
+
return (React__default.createElement(React__default.Fragment, null,
|
|
13337
|
+
React__default.createElement(MesfModal, { open: open, handleClose: function () { return handleClose(false); }, maxWidth: "lg", "aria-labelledby": "modal-modal-title", "aria-describedby": "modal-modal-description", title: "New folder" },
|
|
13338
|
+
React__default.createElement(MesfModal.Content, null,
|
|
13339
|
+
React__default.createElement(Box, null,
|
|
13340
|
+
React__default.createElement(TextField, { style: { minWidth: "600px" }, id: "outlined-basic", label: "Folder name", variant: "outlined", value: name, onChange: function (e) { return setName(e.target.value); } }))),
|
|
13341
|
+
React__default.createElement(MesfModal.Actions, null,
|
|
13342
|
+
React__default.createElement("div", null,
|
|
13343
|
+
React__default.createElement(Button, { color: "secondary", variant: "outlined", onClick: function () { return handleClose(false); } }, "Cancel")),
|
|
13344
|
+
React__default.createElement("div", null,
|
|
13345
|
+
React__default.createElement(ButtonWithLoading, { isLoading: isLoading, onClick: onSubmit, color: "primary", variant: "contained" }, "Save")))),
|
|
13346
|
+
React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
|
|
13347
|
+
};
|
|
13348
|
+
|
|
13349
|
+
var RemoveFolderModal = function (_a) {
|
|
13350
|
+
var open = _a.open, handleClose = _a.handleClose, tagNodeSelectedInTree = _a.tagNodeSelectedInTree;
|
|
13351
|
+
var _b = useState(""), error = _b[0], setError = _b[1];
|
|
13352
|
+
var _c = useState(false), isLoading = _c[0], setIsLoading = _c[1];
|
|
13353
|
+
var updateTagFolder = useMutation({
|
|
13354
|
+
mutationFn: upsertTagFolder,
|
|
13355
|
+
onError: function (error) {
|
|
13356
|
+
setError(error.message);
|
|
13357
|
+
},
|
|
13358
|
+
});
|
|
13359
|
+
var removeFolder = useMutation({
|
|
13360
|
+
mutationFn: deleteTagFolder,
|
|
13361
|
+
onError: function (error) {
|
|
13362
|
+
setError(error.message);
|
|
13363
|
+
},
|
|
13364
|
+
});
|
|
13365
|
+
var onSubmit = function (e) { return __awaiter(void 0, void 0, void 0, function () {
|
|
13366
|
+
var parentId, name_1, id;
|
|
13367
|
+
return __generator(this, function (_a) {
|
|
13368
|
+
switch (_a.label) {
|
|
13369
|
+
case 0:
|
|
13370
|
+
e.preventDefault();
|
|
13371
|
+
if (!tagNodeSelectedInTree) return [3 /*break*/, 4];
|
|
13372
|
+
parentId = Number(tagNodeSelectedInTree === null || tagNodeSelectedInTree === void 0 ? void 0 : tagNodeSelectedInTree.parent) || null;
|
|
13373
|
+
name_1 = tagNodeSelectedInTree === null || tagNodeSelectedInTree === void 0 ? void 0 : tagNodeSelectedInTree.text;
|
|
13374
|
+
id = Number(tagNodeSelectedInTree === null || tagNodeSelectedInTree === void 0 ? void 0 : tagNodeSelectedInTree.id);
|
|
13375
|
+
setIsLoading(true);
|
|
13376
|
+
if (!parentId) return [3 /*break*/, 2];
|
|
13377
|
+
return [4 /*yield*/, removeFolder.mutate(id)];
|
|
13378
|
+
case 1:
|
|
13379
|
+
_a.sent();
|
|
13380
|
+
return [3 /*break*/, 4];
|
|
13381
|
+
case 2: return [4 /*yield*/, updateTagFolder.mutate({
|
|
13382
|
+
tagFolderId: id,
|
|
13383
|
+
parentTagFolderId: parentId,
|
|
13384
|
+
tagFolderName: name_1,
|
|
13385
|
+
isActive: false,
|
|
13386
|
+
})];
|
|
13387
|
+
case 3:
|
|
13388
|
+
_a.sent();
|
|
13389
|
+
_a.label = 4;
|
|
13390
|
+
case 4:
|
|
13391
|
+
handleClose(true);
|
|
13392
|
+
setIsLoading(false);
|
|
13393
|
+
return [2 /*return*/];
|
|
13394
|
+
}
|
|
13395
|
+
});
|
|
13396
|
+
}); };
|
|
13397
|
+
return (React__default.createElement(React__default.Fragment, null,
|
|
13398
|
+
React__default.createElement(MesfModal, { open: open, handleClose: function () { return handleClose(false); }, maxWidth: "lg", "aria-labelledby": "modal-modal-title", "aria-describedby": "modal-modal-description", title: "Remove Folder" },
|
|
13399
|
+
React__default.createElement(MesfModal.Content, null,
|
|
13400
|
+
React__default.createElement(Box, null,
|
|
13401
|
+
React__default.createElement(Typography$1, null,
|
|
13402
|
+
"Are you sure you want to remove",
|
|
13403
|
+
" ",
|
|
13404
|
+
React__default.createElement("strong", null, tagNodeSelectedInTree === null || tagNodeSelectedInTree === void 0 ? void 0 : tagNodeSelectedInTree.text),
|
|
13405
|
+
" folder?"))),
|
|
13406
|
+
React__default.createElement(MesfModal.Actions, null,
|
|
13407
|
+
React__default.createElement("div", null,
|
|
13408
|
+
React__default.createElement(Button, { color: "secondary", variant: "outlined", onClick: function () { return handleClose(false); } }, "Cancel")),
|
|
13409
|
+
React__default.createElement("div", null,
|
|
13410
|
+
React__default.createElement(ButtonWithLoading, { isLoading: isLoading, onClick: onSubmit, color: "primary", variant: "contained" }, "Remove")))),
|
|
13411
|
+
React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
|
|
13412
|
+
};
|
|
13413
|
+
|
|
13414
|
+
var ContextMenu = function (_a) {
|
|
13415
|
+
var _b;
|
|
13416
|
+
var isOpen = _a.isOpen, anchorPoint = _a.anchorPoint, tagNodeSelectedInTree = _a.tagNodeSelectedInTree, getTagsTreeData = _a.getTagsTreeData, setShowContextMenu = _a.setShowContextMenu;
|
|
13417
|
+
var _c = useState(false), showNewTagModal = _c[0], setShowNewTagModal = _c[1];
|
|
13418
|
+
var _d = useState(false), showRemoveTagModal = _d[0], setShowRemoveTagModal = _d[1];
|
|
13419
|
+
var isFolder = ((_b = tagNodeSelectedInTree === null || tagNodeSelectedInTree === void 0 ? void 0 : tagNodeSelectedInTree.data) === null || _b === void 0 ? void 0 : _b.TagTypeCode) === "F";
|
|
13420
|
+
return (React__default.createElement(React__default.Fragment, null,
|
|
13421
|
+
isOpen && anchorPoint ? (React__default.createElement("ul", { style: {
|
|
13422
|
+
top: anchorPoint.y,
|
|
13423
|
+
left: anchorPoint.x,
|
|
13424
|
+
fontSize: "0.875rem",
|
|
13425
|
+
backgroundColor: "#fff",
|
|
13426
|
+
borderRadius: "2px",
|
|
13427
|
+
padding: "5px 10px;",
|
|
13428
|
+
width: "140px",
|
|
13429
|
+
height: "auto",
|
|
13430
|
+
margin: "0",
|
|
13431
|
+
position: "fixed",
|
|
13432
|
+
boxShadow: "0 0 20px 0 #ccc",
|
|
13433
|
+
display: "flex",
|
|
13434
|
+
flexDirection: "column",
|
|
13435
|
+
} },
|
|
13436
|
+
React__default.createElement(MenuItem, { style: { width: "100%", justifyContent: "left" }, onClick: function () { return setShowNewTagModal(true); } }, "New Folder"),
|
|
13437
|
+
tagNodeSelectedInTree && isFolder && (React__default.createElement(MenuItem, { style: { width: "100%", justifyContent: "left" }, onClick: function () { return setShowRemoveTagModal(true); } }, "Remove Folder")))) : null,
|
|
13438
|
+
React__default.createElement(NewFolderModal, { open: showNewTagModal, handleClose: function (shouldUpdate) {
|
|
13439
|
+
if (shouldUpdate) {
|
|
13440
|
+
getTagsTreeData();
|
|
13441
|
+
}
|
|
13442
|
+
setShowContextMenu(false);
|
|
13443
|
+
setShowNewTagModal(false);
|
|
13444
|
+
}, tagNodeSelectedInTree: tagNodeSelectedInTree }),
|
|
13445
|
+
React__default.createElement(RemoveFolderModal, { open: showRemoveTagModal, handleClose: function (shouldUpdate) {
|
|
13446
|
+
if (shouldUpdate) {
|
|
13447
|
+
getTagsTreeData();
|
|
13448
|
+
}
|
|
13449
|
+
setShowContextMenu(false);
|
|
13450
|
+
setShowRemoveTagModal(false);
|
|
13451
|
+
}, tagNodeSelectedInTree: tagNodeSelectedInTree })));
|
|
13452
|
+
};
|
|
13453
|
+
|
|
13454
|
+
var CustomDragPreview = function (props) {
|
|
13455
|
+
var _a, _b, _c;
|
|
13456
|
+
var item = props.monitorProps.item;
|
|
13457
|
+
var isFolder = ((_a = item.data) === null || _a === void 0 ? void 0 : _a.TagTypeCode) === "F" ? true : false;
|
|
13458
|
+
return (React__default.createElement(Box, { sx: {
|
|
13459
|
+
alignItems: "center",
|
|
13460
|
+
backgroundColor: "#1967d2",
|
|
13461
|
+
borderRadius: "4px",
|
|
13462
|
+
boxShadow: " 0 12px 24px -6px rgba(0, 0, 0, .25); 0 0 0 1px rgba(0, 0, 0, .08)",
|
|
13463
|
+
color: "#fff",
|
|
13464
|
+
display: "inline-grid",
|
|
13465
|
+
fontSize: "0.875rem",
|
|
13466
|
+
gap: "8px",
|
|
13467
|
+
gridTemplateColumns: "auto auto",
|
|
13468
|
+
padding: "4px 8px",
|
|
13469
|
+
pointerEvents: "none",
|
|
13470
|
+
} },
|
|
13471
|
+
React__default.createElement(Box, { sx: {
|
|
13472
|
+
alignItems: "center",
|
|
13473
|
+
display: "flex",
|
|
13474
|
+
} }, isFolder ? React__default.createElement(FolderIcon, null) : React__default.createElement(InsertChartIcon, { fontSize: "small" })),
|
|
13475
|
+
React__default.createElement(Box, { sx: {
|
|
13476
|
+
alignItems: "center",
|
|
13477
|
+
display: "flex",
|
|
13478
|
+
} }, ((_b = item.data) === null || _b === void 0 ? void 0 : _b.Alias) || ((_c = item.data) === null || _c === void 0 ? void 0 : _c.TagName))));
|
|
13479
|
+
};
|
|
13480
|
+
|
|
13481
|
+
// React Query hook for fetching tags tree
|
|
13482
|
+
var useSearchTagsTree = function () {
|
|
13483
|
+
return useQuery({
|
|
13484
|
+
queryKey: ["tagsTree-v2"],
|
|
13485
|
+
queryFn: function () { return getTagsTree(); },
|
|
13486
|
+
enabled: false, // Only fetch when explicitly called
|
|
13487
|
+
});
|
|
13488
|
+
};
|
|
13489
|
+
var TagsTreeModalV2 = function (_a) {
|
|
13490
|
+
var open = _a.open, handleClose = _a.handleClose, onTagSelect = _a.onTagSelect;
|
|
13491
|
+
var _b = useState(false), isLoading = _b[0], setIsLoading = _b[1];
|
|
13492
|
+
var _c = useState(""), error = _c[0], setError = _c[1];
|
|
13493
|
+
var _d = useState(null), snackbarMessage = _d[0], setSnackbarMessage = _d[1];
|
|
13494
|
+
var _e = useState([]), tagsTreeData = _e[0], setTagsTreeData = _e[1];
|
|
13495
|
+
var _f = useState(null), tagNodeSelectedInTree = _f[0], setTagNodeSelectedInTree = _f[1];
|
|
13496
|
+
var _g = useState(null), anchorPoint = _g[0], setAnchorPoint = _g[1];
|
|
13497
|
+
var _h = useState(false), showContextMenu = _h[0], setShowContextMenu = _h[1];
|
|
13498
|
+
var backendOffset = 1000000;
|
|
13499
|
+
var _j = useState({}), openTagFolders = _j[0], setOpenTagFolders = _j[1];
|
|
13500
|
+
var _k = useState([]), selectedNodes = _k[0], setSelectedNodes = _k[1];
|
|
13501
|
+
var handleContextMenu = function (data, e) {
|
|
13502
|
+
e.preventDefault();
|
|
13503
|
+
var top = e.clientY;
|
|
13504
|
+
var left = e.clientX;
|
|
13505
|
+
setAnchorPoint({ x: left, y: top });
|
|
13506
|
+
setSelectedNodes([data]);
|
|
13507
|
+
setShowContextMenu(true);
|
|
13508
|
+
var selectedNode = tagsTreeData.find(function (node) { var _a; return ((_a = node.data) === null || _a === void 0 ? void 0 : _a.TagId) === data.id; });
|
|
13509
|
+
if (selectedNode) {
|
|
13510
|
+
setTagNodeSelectedInTree(selectedNode);
|
|
13511
|
+
}
|
|
13512
|
+
};
|
|
13513
|
+
var _l = useSearchTagsTree(), tagsTree = _l.data, tagsTreeLoading = _l.isLoading, tagsTreeIsError = _l.isError, tagsTreeError = _l.error, tagsTreeIsSuccess = _l.isSuccess, tagsTreeIsFetched = _l.isFetched, refetch = _l.refetch;
|
|
13514
|
+
var updateTagFolder = useMutation({
|
|
13515
|
+
mutationFn: function (_a) {
|
|
13516
|
+
var tagFolderId = _a.tagFolderId, parentTagFolderId = _a.parentTagFolderId, tagFolderName = _a.tagFolderName, isActive = _a.isActive;
|
|
13517
|
+
return upsertTagFolder({
|
|
13518
|
+
tagFolderId: tagFolderId,
|
|
13519
|
+
parentTagFolderId: parentTagFolderId,
|
|
13520
|
+
tagFolderName: tagFolderName,
|
|
13521
|
+
isActive: isActive,
|
|
13522
|
+
});
|
|
13523
|
+
},
|
|
13524
|
+
onError: function (error) {
|
|
13525
|
+
setError(error.message);
|
|
13526
|
+
},
|
|
13527
|
+
});
|
|
13528
|
+
var changeTagFolderTag = useMutation({
|
|
13529
|
+
mutationFn: function (_a) {
|
|
13530
|
+
var tagId = _a.tagId, tagFolderId = _a.tagFolderId;
|
|
13538
13531
|
return changeTagFolderToTag({ tagId: tagId, tagFolderId: tagFolderId });
|
|
13539
13532
|
},
|
|
13540
13533
|
onError: function (error) {
|
|
@@ -14015,38 +14008,76 @@ var LoadViewModalV2 = function (_a) {
|
|
|
14015
14008
|
React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
|
|
14016
14009
|
};
|
|
14017
14010
|
|
|
14018
|
-
var
|
|
14019
|
-
|
|
14020
|
-
|
|
14021
|
-
|
|
14022
|
-
//
|
|
14023
|
-
|
|
14024
|
-
|
|
14025
|
-
|
|
14026
|
-
|
|
14027
|
-
|
|
14028
|
-
|
|
14029
|
-
|
|
14030
|
-
|
|
14031
|
-
|
|
14032
|
-
|
|
14033
|
-
|
|
14034
|
-
|
|
14035
|
-
//
|
|
14036
|
-
|
|
14037
|
-
|
|
14038
|
-
|
|
14039
|
-
|
|
14040
|
-
|
|
14041
|
-
|
|
14042
|
-
|
|
14043
|
-
|
|
14044
|
-
|
|
14045
|
-
|
|
14046
|
-
|
|
14047
|
-
|
|
14048
|
-
|
|
14049
|
-
|
|
14011
|
+
var tagColors = [
|
|
14012
|
+
"#00AA00", // green
|
|
14013
|
+
"#0000FF", // blue
|
|
14014
|
+
"#FF0000", // red
|
|
14015
|
+
"#9C27B0", // purple
|
|
14016
|
+
"#FFA500", // orange
|
|
14017
|
+
"#397234", // forest green
|
|
14018
|
+
"#283F23", // dark olive
|
|
14019
|
+
"#3F2617", // dark brown
|
|
14020
|
+
"#0B0F08", // charcoal black
|
|
14021
|
+
"#889c2dff", // olive green
|
|
14022
|
+
"#B78449", // tan brown
|
|
14023
|
+
"#5D9F96", // teal
|
|
14024
|
+
"#1d5e74ff", // dark teal
|
|
14025
|
+
"#FA7305", // bright orange
|
|
14026
|
+
"#072684", // navy blue
|
|
14027
|
+
"#269473ff", // emerald green
|
|
14028
|
+
"#5d74b9ff", // slate blue
|
|
14029
|
+
"#0C8EF4", // sky blue
|
|
14030
|
+
"#8d481cff", // rust brown
|
|
14031
|
+
"#2B384C", // dark slate
|
|
14032
|
+
];
|
|
14033
|
+
var availableColors = __spreadArray([], tagColors, true);
|
|
14034
|
+
var lastColor = null;
|
|
14035
|
+
var getRandomColor = function () {
|
|
14036
|
+
if (availableColors.length === 0) {
|
|
14037
|
+
availableColors = __spreadArray([], tagColors, true);
|
|
14038
|
+
if (lastColor && availableColors.length > 1) {
|
|
14039
|
+
availableColors.splice(availableColors.indexOf(lastColor), 1);
|
|
14040
|
+
}
|
|
14041
|
+
}
|
|
14042
|
+
var randomIndex = Math.floor(Math.random() * availableColors.length);
|
|
14043
|
+
var color = availableColors[randomIndex];
|
|
14044
|
+
availableColors.splice(randomIndex, 1);
|
|
14045
|
+
lastColor = color;
|
|
14046
|
+
return color;
|
|
14047
|
+
};
|
|
14048
|
+
|
|
14049
|
+
var TagsTableV2 = function () {
|
|
14050
|
+
var queryClient = useQueryClient();
|
|
14051
|
+
var _a = useContextMenuMESF(), registerConfig = _a.registerConfig, showContextMenu = _a.showContextMenu;
|
|
14052
|
+
var _b = useTrendingContextV2(), _c = _b.state, viewTags = _c.viewTags, cursorData = _c.cursorData, viewSelected = _c.viewSelected; _c.views; var seriesMinMax = _c.seriesMinMax, _d = _b.actions, setViewTags = _d.setViewTags, setViewTagsAndRefetch = _d.setViewTagsAndRefetch; _d.setViewSelected; _d.setViews; var highlightSeries = _d.highlightSeries;
|
|
14053
|
+
// Number formatters for consistent thousand separator and decimal formatting
|
|
14054
|
+
var numberFormatterOneDecimal = useMemo(function () {
|
|
14055
|
+
return new Intl.NumberFormat("en-US", {
|
|
14056
|
+
minimumFractionDigits: 1,
|
|
14057
|
+
maximumFractionDigits: 1,
|
|
14058
|
+
});
|
|
14059
|
+
}, []);
|
|
14060
|
+
var numberFormatterNoDecimal = useMemo(function () {
|
|
14061
|
+
return new Intl.NumberFormat("en-US", {
|
|
14062
|
+
minimumFractionDigits: 0,
|
|
14063
|
+
maximumFractionDigits: 0,
|
|
14064
|
+
});
|
|
14065
|
+
}, []);
|
|
14066
|
+
// State management
|
|
14067
|
+
var _e = useState(""), error = _e[0], setError = _e[1];
|
|
14068
|
+
var _f = useState(false); _f[0]; var setIsLoading = _f[1];
|
|
14069
|
+
var _g = useState(null); _g[0]; var setSelectedRowTagId = _g[1];
|
|
14070
|
+
var _h = useState(false), tagsTreeModalOpen = _h[0], setTagsTreeModalOpen = _h[1];
|
|
14071
|
+
var _j = useState(false), bitSelectorModalOpen = _j[0], setBitSelectorModalOpen = _j[1];
|
|
14072
|
+
var _k = useState(false), saveAsViewModalOpen = _k[0], setSaveAsViewModalOpen = _k[1];
|
|
14073
|
+
var _l = useState(false), loadViewOpen = _l[0], setLoadViewOpen = _l[1];
|
|
14074
|
+
var _m = useState(""), snackbarMessage = _m[0], setSnackbarMessage = _m[1];
|
|
14075
|
+
var _o = useState(null), draggedRowId = _o[0], setDraggedRowId = _o[1];
|
|
14076
|
+
var _p = useState(null), dragOverRowId = _p[0], setDragOverRowId = _p[1];
|
|
14077
|
+
// Mutations
|
|
14078
|
+
var deleteAllViewTags = useMutation({
|
|
14079
|
+
mutationFn: function (viewId) { return deleteAllViewTagsFromView(viewId); },
|
|
14080
|
+
onError: function (error) {
|
|
14050
14081
|
setError(error.message);
|
|
14051
14082
|
},
|
|
14052
14083
|
});
|
|
@@ -16289,7 +16320,7 @@ var TrendingChartV2 = function (_a) {
|
|
|
16289
16320
|
};
|
|
16290
16321
|
|
|
16291
16322
|
// React Query hooks for data fetching
|
|
16292
|
-
var useSearchViews
|
|
16323
|
+
var useSearchViews = function (_a) {
|
|
16293
16324
|
var _b = _a.autoRefresh, autoRefresh = _b === void 0 ? false : _b;
|
|
16294
16325
|
return useQuery({
|
|
16295
16326
|
queryKey: ["views-v2"],
|
|
@@ -16297,7 +16328,7 @@ var useSearchViews$1 = function (_a) {
|
|
|
16297
16328
|
refetchInterval: autoRefresh ? 10000 : false,
|
|
16298
16329
|
});
|
|
16299
16330
|
};
|
|
16300
|
-
var useSearchViewTags
|
|
16331
|
+
var useSearchViewTags = function (_a) {
|
|
16301
16332
|
var viewId = _a.viewId;
|
|
16302
16333
|
return useQuery({
|
|
16303
16334
|
queryKey: ["viewTags-v2", viewId],
|
|
@@ -16310,7 +16341,7 @@ var useSearchViewTags$1 = function (_a) {
|
|
|
16310
16341
|
enabled: viewId !== null,
|
|
16311
16342
|
});
|
|
16312
16343
|
};
|
|
16313
|
-
var useSearchSeries
|
|
16344
|
+
var useSearchSeries = function (_a) {
|
|
16314
16345
|
var start = _a.start, end = _a.end, tagIds = _a.tagIds, _b = _a.autoRefresh, autoRefresh = _b === void 0 ? false : _b;
|
|
16315
16346
|
return useQuery({
|
|
16316
16347
|
queryKey: ["series-v2", start, end, tagIds],
|
|
@@ -16358,9 +16389,9 @@ var TrendingsPageV2 = function () {
|
|
|
16358
16389
|
var _f = useState(0), dataLoadedTrigger = _f[0], setDataLoadedTrigger = _f[1];
|
|
16359
16390
|
var _g = useTrendingContextV2(), _h = _g.state, viewSelected = _h.viewSelected, viewTags = _h.viewTags, timeScopeStart = _h.timeScopeStart, timeScopeEnd = _h.timeScopeEnd, _j = _g.actions, setViews = _j.setViews, setViewTagsAndRefetch = _j.setViewTagsAndRefetch, setViewSelected = _j.setViewSelected, setSeriesMinMax = _j.setSeriesMinMax, resetCursors = _j.resetCursors;
|
|
16360
16391
|
// Fetch views
|
|
16361
|
-
var _k = useSearchViews
|
|
16392
|
+
var _k = useSearchViews({ autoRefresh: autoRefresh }), views = _k.data, viewsLoading = _k.isLoading, viewsIsError = _k.isError, viewsError = _k.error, viewSuccess = _k.isSuccess;
|
|
16362
16393
|
// Fetch view tags
|
|
16363
|
-
var _l = useSearchViewTags
|
|
16394
|
+
var _l = useSearchViewTags({ viewId: viewId }), viewTagsData = _l.data, viewTagsLoading = _l.isLoading, viewTagsIsError = _l.isError, viewTagsError = _l.error, viewTagsSuccess = _l.isSuccess;
|
|
16364
16395
|
// Memoize tagIds for series query
|
|
16365
16396
|
// Tags are sorted in DESCENDING order to match TrendingChartV2 processing
|
|
16366
16397
|
var tagIds = useMemo(function () {
|
|
@@ -16401,7 +16432,7 @@ var TrendingsPageV2 = function () {
|
|
|
16401
16432
|
return stableTagIdsRef.current;
|
|
16402
16433
|
}, [realTagIds, timeScopeStart, timeScopeEnd]);
|
|
16403
16434
|
// Fetch series data using stable query key
|
|
16404
|
-
var _m = useSearchSeries
|
|
16435
|
+
var _m = useSearchSeries({
|
|
16405
16436
|
start: timeScopeStart.getTime(),
|
|
16406
16437
|
end: timeScopeEnd.getTime(),
|
|
16407
16438
|
tagIds: queryTagIds,
|
|
@@ -16447,2891 +16478,96 @@ var TrendingsPageV2 = function () {
|
|
|
16447
16478
|
// BitIndex 0 = LSB (least significant bit)
|
|
16448
16479
|
return sourceData.map(function (point) { return ({
|
|
16449
16480
|
timestamp: point.timestamp,
|
|
16450
|
-
value: point.value !== null
|
|
16451
|
-
? (Math.floor(point.value) >> viewTag.BitIndex) & 1
|
|
16452
|
-
: null,
|
|
16453
|
-
}); });
|
|
16454
|
-
}
|
|
16455
|
-
// Regular tag - use series data directly
|
|
16456
|
-
return seriesMap.get(tagId);
|
|
16457
|
-
})
|
|
16458
|
-
.filter(Boolean);
|
|
16459
|
-
}, [series, tagIds, queryTagIds, viewTags]);
|
|
16460
|
-
// Calculate overall min/max values from filtered series data
|
|
16461
|
-
var seriesMinMaxData = useSeriesMinMax(filteredSeries, tagIds);
|
|
16462
|
-
// Load initial view when views are fetched
|
|
16463
|
-
useEffect(function () {
|
|
16464
|
-
if (!viewSuccess || !views || !Array.isArray(views))
|
|
16465
|
-
return;
|
|
16466
|
-
// Always update the views list in context
|
|
16467
|
-
setViews(views);
|
|
16468
|
-
// Only set initial view if none is selected
|
|
16469
|
-
if (!viewSelected) {
|
|
16470
|
-
var lastCreated = views.reduce(function (prev, current) {
|
|
16471
|
-
return prev && prev.ViewId > current.ViewId ? prev : current;
|
|
16472
|
-
}, null);
|
|
16473
|
-
if (lastCreated) {
|
|
16474
|
-
setViewId(lastCreated.ViewId);
|
|
16475
|
-
setViewSelected(lastCreated);
|
|
16476
|
-
}
|
|
16477
|
-
}
|
|
16478
|
-
}, [viewSuccess, views, viewSelected, setViews, setViewSelected]);
|
|
16479
|
-
// Update viewId when viewSelected changes (e.g., from LoadViewModal)
|
|
16480
|
-
useEffect(function () {
|
|
16481
|
-
if (viewSelected) {
|
|
16482
|
-
setViewId(viewSelected.ViewId);
|
|
16483
|
-
}
|
|
16484
|
-
}, [viewSelected]);
|
|
16485
|
-
// Load view tags when fetched - ONLY when viewId changes, not on every data refetch
|
|
16486
|
-
// This preserves local order changes (from drag-and-drop) until a new view is loaded
|
|
16487
|
-
var loadedViewIdRef = useRef(null);
|
|
16488
|
-
useEffect(function () {
|
|
16489
|
-
if (!viewTagsSuccess ||
|
|
16490
|
-
!viewTagsData ||
|
|
16491
|
-
!Array.isArray(viewTagsData) ||
|
|
16492
|
-
viewId === null)
|
|
16493
|
-
return;
|
|
16494
|
-
// Only reset viewTags when viewId actually changes (loading a different view)
|
|
16495
|
-
// Do NOT reset if viewId is the same (data is just refetching)
|
|
16496
|
-
if (viewId === loadedViewIdRef.current)
|
|
16497
|
-
return;
|
|
16498
|
-
loadedViewIdRef.current = viewId;
|
|
16499
|
-
var backendTags = viewTagsData;
|
|
16500
|
-
var localViewTags = getViewFromLocal(viewId);
|
|
16501
|
-
var mergedTags = {};
|
|
16502
|
-
if (localViewTags) {
|
|
16503
|
-
// If local storage exists, use it as the source of truth for metadata (Order, Alias)
|
|
16504
|
-
// and for virtual tags (Bit Extracted)
|
|
16505
|
-
var backendTagIds_1 = new Set(backendTags.map(function (t) { return t.TagId; }));
|
|
16506
|
-
// 1. Process local tags
|
|
16507
|
-
Object.values(localViewTags).forEach(function (entry) {
|
|
16508
|
-
var viewTag = entry.viewTag;
|
|
16509
|
-
// If it's a backend tag, check if it still exists in the backend response
|
|
16510
|
-
// (Permission check or tag deletion check)
|
|
16511
|
-
if (!viewTag.IsBitExtracted) {
|
|
16512
|
-
if (backendTagIds_1.has(viewTag.TagId)) {
|
|
16513
|
-
mergedTags[viewTag.TagId] = entry;
|
|
16514
|
-
}
|
|
16515
|
-
}
|
|
16516
|
-
else {
|
|
16517
|
-
// Virtual tags are always added from local storage
|
|
16518
|
-
mergedTags[viewTag.TagId] = entry;
|
|
16519
|
-
}
|
|
16520
|
-
});
|
|
16521
|
-
// 2. Add any new backend tags that might be missing from local storage
|
|
16522
|
-
// (Rare case, but possible if added by another user/session)
|
|
16523
|
-
backendTags.forEach(function (backendTag) {
|
|
16524
|
-
if (!mergedTags[backendTag.TagId]) {
|
|
16525
|
-
// Add with default order at the end
|
|
16526
|
-
var maxOrder = Math.max.apply(Math, __spreadArray(__spreadArray([], Object.values(mergedTags).map(function (t) { return t.order; }), false), [0], false));
|
|
16527
|
-
if (isNil(backendTag.Color)) {
|
|
16528
|
-
backendTag.Color = getRandomColor();
|
|
16529
|
-
}
|
|
16530
|
-
mergedTags[backendTag.TagId] = {
|
|
16531
|
-
viewTag: backendTag,
|
|
16532
|
-
order: maxOrder + 1,
|
|
16533
|
-
};
|
|
16534
|
-
}
|
|
16535
|
-
});
|
|
16536
|
-
}
|
|
16537
|
-
else {
|
|
16538
|
-
// No local storage -> Use backend tags with default ordering
|
|
16539
|
-
mergedTags = backendTags.reduce(function (carr, curr, idx) {
|
|
16540
|
-
if (isNil(curr.Color)) {
|
|
16541
|
-
curr.Color = getRandomColor();
|
|
16542
|
-
}
|
|
16543
|
-
carr[curr.TagId] = {
|
|
16544
|
-
viewTag: curr,
|
|
16545
|
-
order: idx,
|
|
16546
|
-
};
|
|
16547
|
-
return carr;
|
|
16548
|
-
}, {});
|
|
16549
|
-
}
|
|
16550
|
-
// Reset stable ref when loading new view
|
|
16551
|
-
stableTagIdsRef.current = [];
|
|
16552
|
-
setViewTagsAndRefetch(mergedTags);
|
|
16553
|
-
}, [viewTagsSuccess, viewTagsData, setViewTagsAndRefetch, viewId]);
|
|
16554
|
-
// Update context with calculated min/max values
|
|
16555
|
-
// Use ref to prevent infinite loop from object reference changes
|
|
16556
|
-
var seriesMinMaxDataRef = useRef("");
|
|
16557
|
-
useEffect(function () {
|
|
16558
|
-
var serialized = JSON.stringify(seriesMinMaxData);
|
|
16559
|
-
if (serialized !== seriesMinMaxDataRef.current) {
|
|
16560
|
-
seriesMinMaxDataRef.current = serialized;
|
|
16561
|
-
setSeriesMinMax(seriesMinMaxData);
|
|
16562
|
-
}
|
|
16563
|
-
}, [seriesMinMaxData, setSeriesMinMax]);
|
|
16564
|
-
// Reset cursors when view changes or time scope changes significantly
|
|
16565
|
-
var prevViewIdRef = useRef(null);
|
|
16566
|
-
useEffect(function () {
|
|
16567
|
-
// Reset cursors when switching views or when time scope changes significantly
|
|
16568
|
-
if (viewSelected && viewSelected.ViewId !== prevViewIdRef.current) {
|
|
16569
|
-
prevViewIdRef.current = viewSelected.ViewId;
|
|
16570
|
-
resetCursors();
|
|
16571
|
-
}
|
|
16572
|
-
}, [viewSelected, resetCursors]);
|
|
16573
|
-
// Also reset cursors when time scope changes (zoom/pan)
|
|
16574
|
-
useEffect(function () {
|
|
16575
|
-
resetCursors();
|
|
16576
|
-
}, [timeScopeStart, timeScopeEnd, resetCursors]);
|
|
16577
|
-
// Increment trigger when series data finishes loading
|
|
16578
|
-
// This ensures cursors re-render AFTER chart has new data
|
|
16579
|
-
var prevSeriesLoadingRef = useRef(false);
|
|
16580
|
-
useEffect(function () {
|
|
16581
|
-
if (prevSeriesLoadingRef.current && !seriesLoading) {
|
|
16582
|
-
// Transition from loading to not loading - data just loaded
|
|
16583
|
-
setDataLoadedTrigger(function (prev) { return prev + 1; });
|
|
16584
|
-
}
|
|
16585
|
-
prevSeriesLoadingRef.current = seriesLoading;
|
|
16586
|
-
}, [seriesLoading]);
|
|
16587
|
-
// Handle errors
|
|
16588
|
-
useEffect(function () {
|
|
16589
|
-
if (viewTagsError && viewTagsIsError) {
|
|
16590
|
-
setError(viewTagsError instanceof Error
|
|
16591
|
-
? viewTagsError.message
|
|
16592
|
-
: String(viewTagsError));
|
|
16593
|
-
}
|
|
16594
|
-
if (viewsError && viewsIsError) {
|
|
16595
|
-
setError(viewsError instanceof Error ? viewsError.message : String(viewsError));
|
|
16596
|
-
}
|
|
16597
|
-
if (seriesError && seriesIsError) {
|
|
16598
|
-
setError(seriesError instanceof Error
|
|
16599
|
-
? seriesError.message
|
|
16600
|
-
: String(seriesError));
|
|
16601
|
-
}
|
|
16602
|
-
}, [
|
|
16603
|
-
viewsError,
|
|
16604
|
-
viewsIsError,
|
|
16605
|
-
viewTagsError,
|
|
16606
|
-
viewTagsIsError,
|
|
16607
|
-
seriesError,
|
|
16608
|
-
seriesIsError,
|
|
16609
|
-
]);
|
|
16610
|
-
var isLoading = viewsLoading || viewTagsLoading;
|
|
16611
|
-
return (React__default.createElement(React__default.Fragment, null,
|
|
16612
|
-
React__default.createElement(HelmetDexteel, { title: "Trendings" }),
|
|
16613
|
-
React__default.createElement("div", { style: {
|
|
16614
|
-
padding: "16px",
|
|
16615
|
-
width: "100%",
|
|
16616
|
-
height: "92vh",
|
|
16617
|
-
position: "relative",
|
|
16618
|
-
backgroundColor: "#FAFAFA",
|
|
16619
|
-
display: "flex",
|
|
16620
|
-
flexDirection: "column",
|
|
16621
|
-
} },
|
|
16622
|
-
isLoading && (React__default.createElement("div", { style: {
|
|
16623
|
-
position: "absolute",
|
|
16624
|
-
top: 0,
|
|
16625
|
-
left: 0,
|
|
16626
|
-
width: "100%",
|
|
16627
|
-
height: "100%",
|
|
16628
|
-
background: "rgba(255, 255, 255, 0.7)",
|
|
16629
|
-
display: "flex",
|
|
16630
|
-
justifyContent: "center",
|
|
16631
|
-
alignItems: "center",
|
|
16632
|
-
zIndex: 1000,
|
|
16633
|
-
} },
|
|
16634
|
-
React__default.createElement(CircularProgress, { size: "3rem" }))),
|
|
16635
|
-
React__default.createElement("div", { style: { flexShrink: 0 } },
|
|
16636
|
-
React__default.createElement(HeaderSectionV2, { autoRefresh: autoRefresh, setAutoRefresh: setAutoRefresh, setChartOptions: setChartOptions, chartInstance: chartInstance })),
|
|
16637
|
-
React__default.createElement(Divider, { sx: { my: 2 } }),
|
|
16638
|
-
React__default.createElement("div", { style: {
|
|
16639
|
-
flexGrow: 1,
|
|
16640
|
-
minHeight: 0,
|
|
16641
|
-
display: "flex",
|
|
16642
|
-
width: "100%",
|
|
16643
|
-
} },
|
|
16644
|
-
React__default.createElement(Group$1, { orientation: "vertical", style: { width: "100%", height: "100%" } },
|
|
16645
|
-
React__default.createElement(Panel, { defaultSize: 80, minSize: 20 },
|
|
16646
|
-
React__default.createElement("div", { style: { height: "100%", width: "100%" } },
|
|
16647
|
-
React__default.createElement(TrendingChartV2, { customOptions: chartOptions, series: filteredSeries, isLoading: seriesLoading, onChartReady: setChartInstance, dataLoadedTrigger: dataLoadedTrigger }))),
|
|
16648
|
-
React__default.createElement(Separator, { style: {
|
|
16649
|
-
height: "10px",
|
|
16650
|
-
background: "#f0f0f0",
|
|
16651
|
-
cursor: "row-resize",
|
|
16652
|
-
display: "flex",
|
|
16653
|
-
alignItems: "center",
|
|
16654
|
-
justifyContent: "center",
|
|
16655
|
-
borderTop: "1px solid #e0e0e0",
|
|
16656
|
-
borderBottom: "1px solid #e0e0e0",
|
|
16657
|
-
} },
|
|
16658
|
-
React__default.createElement("div", { style: {
|
|
16659
|
-
width: "40px",
|
|
16660
|
-
height: "4px",
|
|
16661
|
-
backgroundColor: "#ccc",
|
|
16662
|
-
borderRadius: "2px",
|
|
16663
|
-
} })),
|
|
16664
|
-
React__default.createElement(Panel, { defaultSize: 20, minSize: 10 },
|
|
16665
|
-
React__default.createElement("div", { style: { height: "100%", width: "100%", overflow: "auto" } },
|
|
16666
|
-
React__default.createElement(TagsTableV2, null)))))),
|
|
16667
|
-
React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); }, size: "xl", title: "ERROR" })));
|
|
16668
|
-
};
|
|
16669
|
-
|
|
16670
|
-
var TrendingsV2Index = function () {
|
|
16671
|
-
var _a = useState(false), ihPathLoaded = _a[0], setIhPathLoaded = _a[1];
|
|
16672
|
-
useEffect(function () {
|
|
16673
|
-
var getIhPath = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
16674
|
-
var resp;
|
|
16675
|
-
return __generator(this, function (_a) {
|
|
16676
|
-
switch (_a.label) {
|
|
16677
|
-
case 0: return [4 /*yield*/, axiosInstance.get("/backend/ih-path")];
|
|
16678
|
-
case 1:
|
|
16679
|
-
resp = _a.sent();
|
|
16680
|
-
localStorage.setItem("ihPath", resp.data);
|
|
16681
|
-
setIhPathLoaded(true);
|
|
16682
|
-
return [2 /*return*/];
|
|
16683
|
-
}
|
|
16684
|
-
});
|
|
16685
|
-
}); };
|
|
16686
|
-
getIhPath();
|
|
16687
|
-
}, []);
|
|
16688
|
-
if (!ihPathLoaded) {
|
|
16689
|
-
return (React__default.createElement("div", { className: "d-flex justify-content-center align-items-center" }, "Loading..."));
|
|
16690
|
-
}
|
|
16691
|
-
return (React__default.createElement(TrendingProviderV2, null,
|
|
16692
|
-
React__default.createElement(TrendingsPageV2, null)));
|
|
16693
|
-
};
|
|
16694
|
-
|
|
16695
|
-
/*!
|
|
16696
|
-
* chartjs-adapter-moment v1.0.1
|
|
16697
|
-
* https://www.chartjs.org
|
|
16698
|
-
* (c) 2022 chartjs-adapter-moment Contributors
|
|
16699
|
-
* Released under the MIT license
|
|
16700
|
-
*/
|
|
16701
|
-
|
|
16702
|
-
const FORMATS = {
|
|
16703
|
-
datetime: 'MMM D, YYYY, h:mm:ss a',
|
|
16704
|
-
millisecond: 'h:mm:ss.SSS a',
|
|
16705
|
-
second: 'h:mm:ss a',
|
|
16706
|
-
minute: 'h:mm a',
|
|
16707
|
-
hour: 'hA',
|
|
16708
|
-
day: 'MMM D',
|
|
16709
|
-
week: 'll',
|
|
16710
|
-
month: 'MMM YYYY',
|
|
16711
|
-
quarter: '[Q]Q - YYYY',
|
|
16712
|
-
year: 'YYYY'
|
|
16713
|
-
};
|
|
16714
|
-
|
|
16715
|
-
_adapters._date.override(typeof moment$f === 'function' ? {
|
|
16716
|
-
_id: 'moment', // DEBUG ONLY
|
|
16717
|
-
|
|
16718
|
-
formats: function() {
|
|
16719
|
-
return FORMATS;
|
|
16720
|
-
},
|
|
16721
|
-
|
|
16722
|
-
parse: function(value, format) {
|
|
16723
|
-
if (typeof value === 'string' && typeof format === 'string') {
|
|
16724
|
-
value = moment$f(value, format);
|
|
16725
|
-
} else if (!(value instanceof moment$f)) {
|
|
16726
|
-
value = moment$f(value);
|
|
16727
|
-
}
|
|
16728
|
-
return value.isValid() ? value.valueOf() : null;
|
|
16729
|
-
},
|
|
16730
|
-
|
|
16731
|
-
format: function(time, format) {
|
|
16732
|
-
return moment$f(time).format(format);
|
|
16733
|
-
},
|
|
16734
|
-
|
|
16735
|
-
add: function(time, amount, unit) {
|
|
16736
|
-
return moment$f(time).add(amount, unit).valueOf();
|
|
16737
|
-
},
|
|
16738
|
-
|
|
16739
|
-
diff: function(max, min, unit) {
|
|
16740
|
-
return moment$f(max).diff(moment$f(min), unit);
|
|
16741
|
-
},
|
|
16742
|
-
|
|
16743
|
-
startOf: function(time, unit, weekday) {
|
|
16744
|
-
time = moment$f(time);
|
|
16745
|
-
if (unit === 'isoWeek') {
|
|
16746
|
-
weekday = Math.trunc(Math.min(Math.max(0, weekday), 6));
|
|
16747
|
-
return time.isoWeekday(weekday).startOf('day').valueOf();
|
|
16748
|
-
}
|
|
16749
|
-
return time.startOf(unit).valueOf();
|
|
16750
|
-
},
|
|
16751
|
-
|
|
16752
|
-
endOf: function(time, unit) {
|
|
16753
|
-
return moment$f(time).endOf(unit).valueOf();
|
|
16754
|
-
}
|
|
16755
|
-
} : {});
|
|
16756
|
-
|
|
16757
|
-
var css = "/* ContextMenu.css */ .context-menu {\n\tposition: absolute;\n\tz-index: 1000;\n\tbackground-color: #fff;\n\tborder: 1px solid #ddd;\n\tbox-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);\n\tborder-radius: 4px;\n\toverflow: hidden;\n}\n\n.context-menu ul {\n\tlist-style: none;\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.context-menu li {\n\tpadding: 8px 15px;\n\tcursor: pointer;\n\tborder-bottom: 1px solid #eee;\n\tbackground-color: #fff;\n\tcolor: #333;\n\tfontSize: 0.875rem;\n}\n\n.context-menu li:hover {\n\tbackground-color: #f5f5f5;\n}\n";
|
|
16758
|
-
n(css,{});
|
|
16759
|
-
|
|
16760
|
-
var Swatch = function (_a) {
|
|
16761
|
-
var color = _a.color, onSelect = _a.onSelect;
|
|
16762
|
-
return (React__default.createElement("div", { style: {
|
|
16763
|
-
backgroundColor: color,
|
|
16764
|
-
width: "25px",
|
|
16765
|
-
height: "25px",
|
|
16766
|
-
display: "inline-block",
|
|
16767
|
-
margin: "2px",
|
|
16768
|
-
borderRadius: "4px",
|
|
16769
|
-
cursor: "pointer",
|
|
16770
|
-
}, onClick: function () { return onSelect(color); } }));
|
|
16771
|
-
};
|
|
16772
|
-
var ColorPicker = function (_a) {
|
|
16773
|
-
var onChange = _a.onChange, color = _a.color, elementId = _a.elementId;
|
|
16774
|
-
var _b = useState(null), anchorEl = _b[0], setAnchorEl = _b[1];
|
|
16775
|
-
var handleClick = function (event) {
|
|
16776
|
-
setAnchorEl(event.currentTarget);
|
|
16777
|
-
};
|
|
16778
|
-
var handleClose = function () {
|
|
16779
|
-
setAnchorEl(null);
|
|
16780
|
-
};
|
|
16781
|
-
var open = Boolean(anchorEl);
|
|
16782
|
-
var id = open ? "simple-popover" : undefined;
|
|
16783
|
-
return (React__default.createElement("div", null,
|
|
16784
|
-
React__default.createElement(Button$1, { "aria-describedby": id, variant: "outlined", onClick: handleClick, style: {
|
|
16785
|
-
backgroundColor: color,
|
|
16786
|
-
width: "20px",
|
|
16787
|
-
height: "20px",
|
|
16788
|
-
minWidth: "20px",
|
|
16789
|
-
padding: 0,
|
|
16790
|
-
margin: "4px",
|
|
16791
|
-
} }),
|
|
16792
|
-
React__default.createElement(Popover$1, { id: id, open: open, anchorEl: anchorEl, onClose: handleClose, anchorOrigin: {
|
|
16793
|
-
vertical: "bottom",
|
|
16794
|
-
horizontal: "left",
|
|
16795
|
-
} },
|
|
16796
|
-
React__default.createElement("div", { style: {
|
|
16797
|
-
display: "flex",
|
|
16798
|
-
flexWrap: "wrap",
|
|
16799
|
-
padding: "10px",
|
|
16800
|
-
maxWidth: "165px",
|
|
16801
|
-
} }, tagColors$1.map(function (color) { return (React__default.createElement(Swatch, { key: color, color: color, onSelect: function (color) {
|
|
16802
|
-
onChange(elementId, color);
|
|
16803
|
-
handleClose();
|
|
16804
|
-
} })); })))));
|
|
16805
|
-
};
|
|
16806
|
-
|
|
16807
|
-
var TrendingsInitialState = {
|
|
16808
|
-
timeScopeStart: moment$f(new Date()).subtract(1, "days").toDate(),
|
|
16809
|
-
timeScopeEnd: new Date(),
|
|
16810
|
-
scope: "1 day",
|
|
16811
|
-
graphPan: false,
|
|
16812
|
-
graphShouldUpdate: 0,
|
|
16813
|
-
views: [
|
|
16814
|
-
{
|
|
16815
|
-
ViewId: 0,
|
|
16816
|
-
ViewName: "",
|
|
16817
|
-
UserName: null,
|
|
16818
|
-
IsPublic: false,
|
|
16819
|
-
LastModified: null,
|
|
16820
|
-
LastModifiedBy: null,
|
|
16821
|
-
},
|
|
16822
|
-
],
|
|
16823
|
-
viewSelected: null,
|
|
16824
|
-
viewTags: {},
|
|
16825
|
-
shouldRefetchSeries: 1,
|
|
16826
|
-
};
|
|
16827
|
-
var TrendingsReducer = createSlice({
|
|
16828
|
-
name: "__",
|
|
16829
|
-
initialState: TrendingsInitialState,
|
|
16830
|
-
reducers: {
|
|
16831
|
-
setTotalScope: function (state, _a) {
|
|
16832
|
-
var payload = _a.payload; _a.type;
|
|
16833
|
-
state.shouldRefetchSeries += 1;
|
|
16834
|
-
state.graphShouldUpdate += 1;
|
|
16835
|
-
if (!isNil(payload.start) &&
|
|
16836
|
-
!isNil(payload.end) &&
|
|
16837
|
-
!isNil(payload.scope)) {
|
|
16838
|
-
//from arrow navigators
|
|
16839
|
-
state.timeScopeStart = payload.start;
|
|
16840
|
-
state.timeScopeEnd = payload.end;
|
|
16841
|
-
state.scope = payload.scope;
|
|
16842
|
-
return;
|
|
16843
|
-
}
|
|
16844
|
-
if (!isNil(payload.scope)) {
|
|
16845
|
-
if (payload.scope !== "custom") {
|
|
16846
|
-
switch (payload.scope) {
|
|
16847
|
-
case "10 min":
|
|
16848
|
-
state.timeScopeStart = moment$f(state.timeScopeEnd)
|
|
16849
|
-
.subtract(10, "minutes")
|
|
16850
|
-
.toDate();
|
|
16851
|
-
break;
|
|
16852
|
-
case "1 hour":
|
|
16853
|
-
state.timeScopeStart = moment$f(state.timeScopeEnd)
|
|
16854
|
-
.subtract(1, "hours")
|
|
16855
|
-
.toDate();
|
|
16856
|
-
break;
|
|
16857
|
-
case "4 hours":
|
|
16858
|
-
state.timeScopeStart = moment$f(state.timeScopeEnd)
|
|
16859
|
-
.subtract(4, "hours")
|
|
16860
|
-
.toDate();
|
|
16861
|
-
break;
|
|
16862
|
-
case "12 hours":
|
|
16863
|
-
state.timeScopeStart = moment$f(state.timeScopeEnd)
|
|
16864
|
-
.subtract(12, "hours")
|
|
16865
|
-
.toDate();
|
|
16866
|
-
break;
|
|
16867
|
-
case "1 day":
|
|
16868
|
-
state.timeScopeStart = moment$f(state.timeScopeEnd)
|
|
16869
|
-
.subtract(1, "days")
|
|
16870
|
-
.toDate();
|
|
16871
|
-
break;
|
|
16872
|
-
case "10 days":
|
|
16873
|
-
state.timeScopeStart = moment$f(state.timeScopeEnd)
|
|
16874
|
-
.subtract(10, "days")
|
|
16875
|
-
.toDate();
|
|
16876
|
-
break;
|
|
16877
|
-
}
|
|
16878
|
-
}
|
|
16879
|
-
state.scope = payload.scope;
|
|
16880
|
-
return;
|
|
16881
|
-
}
|
|
16882
|
-
if (!isNil(payload.start) &&
|
|
16883
|
-
!isNil(payload.end) &&
|
|
16884
|
-
isNil(payload.graphPan)) {
|
|
16885
|
-
// from zoom
|
|
16886
|
-
state.timeScopeStart = payload.start;
|
|
16887
|
-
state.timeScopeEnd = payload.end;
|
|
16888
|
-
state.scope = "custom";
|
|
16889
|
-
return;
|
|
16890
|
-
}
|
|
16891
|
-
if (!isNil(payload.start) &&
|
|
16892
|
-
!isNil(payload.end) &&
|
|
16893
|
-
!isNil(payload.graphPan)) {
|
|
16894
|
-
// from pan
|
|
16895
|
-
state.timeScopeStart = payload.start;
|
|
16896
|
-
state.timeScopeEnd = payload.end;
|
|
16897
|
-
return;
|
|
16898
|
-
}
|
|
16899
|
-
if (!isNil(payload.start)) {
|
|
16900
|
-
state.timeScopeStart = payload.start;
|
|
16901
|
-
if (state.scope !== "custom") {
|
|
16902
|
-
switch (state.scope) {
|
|
16903
|
-
case "10 min":
|
|
16904
|
-
state.timeScopeEnd = moment$f(payload.start)
|
|
16905
|
-
.add(10, "minutes")
|
|
16906
|
-
.toDate();
|
|
16907
|
-
break;
|
|
16908
|
-
case "1 hour":
|
|
16909
|
-
state.timeScopeEnd = moment$f(payload.start)
|
|
16910
|
-
.add(1, "hours")
|
|
16911
|
-
.toDate();
|
|
16912
|
-
break;
|
|
16913
|
-
case "4 hours":
|
|
16914
|
-
state.timeScopeEnd = moment$f(payload.start)
|
|
16915
|
-
.add(4, "hours")
|
|
16916
|
-
.toDate();
|
|
16917
|
-
break;
|
|
16918
|
-
case "12 hours":
|
|
16919
|
-
state.timeScopeEnd = moment$f(payload.start)
|
|
16920
|
-
.add(12, "hours")
|
|
16921
|
-
.toDate();
|
|
16922
|
-
break;
|
|
16923
|
-
case "1 day":
|
|
16924
|
-
state.timeScopeEnd = moment$f(payload.start)
|
|
16925
|
-
.add(1, "days")
|
|
16926
|
-
.toDate();
|
|
16927
|
-
break;
|
|
16928
|
-
case "10 days":
|
|
16929
|
-
state.timeScopeEnd = moment$f(payload.start)
|
|
16930
|
-
.add(10, "days")
|
|
16931
|
-
.toDate();
|
|
16932
|
-
break;
|
|
16933
|
-
}
|
|
16934
|
-
}
|
|
16935
|
-
return;
|
|
16936
|
-
}
|
|
16937
|
-
if (!isNil(payload.end)) {
|
|
16938
|
-
state.timeScopeEnd = payload.end;
|
|
16939
|
-
if (state.scope !== "custom") {
|
|
16940
|
-
switch (state.scope) {
|
|
16941
|
-
case "10 min":
|
|
16942
|
-
state.timeScopeStart = moment$f(payload.end)
|
|
16943
|
-
.subtract(10, "minutes")
|
|
16944
|
-
.toDate();
|
|
16945
|
-
break;
|
|
16946
|
-
case "1 hour":
|
|
16947
|
-
state.timeScopeStart = moment$f(payload.end)
|
|
16948
|
-
.subtract(1, "hours")
|
|
16949
|
-
.toDate();
|
|
16950
|
-
break;
|
|
16951
|
-
case "4 hours":
|
|
16952
|
-
state.timeScopeStart = moment$f(payload.end)
|
|
16953
|
-
.subtract(4, "hours")
|
|
16954
|
-
.toDate();
|
|
16955
|
-
break;
|
|
16956
|
-
case "12 hours":
|
|
16957
|
-
state.timeScopeStart = moment$f(payload.end)
|
|
16958
|
-
.subtract(12, "hours")
|
|
16959
|
-
.toDate();
|
|
16960
|
-
break;
|
|
16961
|
-
case "1 day":
|
|
16962
|
-
state.timeScopeStart = moment$f(payload.end)
|
|
16963
|
-
.subtract(1, "days")
|
|
16964
|
-
.toDate();
|
|
16965
|
-
break;
|
|
16966
|
-
case "10 days":
|
|
16967
|
-
state.timeScopeStart = moment$f(payload.end)
|
|
16968
|
-
.subtract(10, "days")
|
|
16969
|
-
.toDate();
|
|
16970
|
-
break;
|
|
16971
|
-
}
|
|
16972
|
-
}
|
|
16973
|
-
return;
|
|
16974
|
-
}
|
|
16975
|
-
},
|
|
16976
|
-
setViews: function (state, _a) {
|
|
16977
|
-
var payload = _a.payload;
|
|
16978
|
-
state.views = payload;
|
|
16979
|
-
},
|
|
16980
|
-
setViewSelected: function (state, _a) {
|
|
16981
|
-
var payload = _a.payload;
|
|
16982
|
-
state.viewSelected = payload;
|
|
16983
|
-
},
|
|
16984
|
-
setViewTags: function (state, _a) {
|
|
16985
|
-
var payload = _a.payload;
|
|
16986
|
-
state.viewTags = payload;
|
|
16987
|
-
state.graphShouldUpdate += 1;
|
|
16988
|
-
},
|
|
16989
|
-
setViewTagsAndRefetch: function (state, _a) {
|
|
16990
|
-
var payload = _a.payload;
|
|
16991
|
-
var newTags = structuredClone(payload);
|
|
16992
|
-
__spreadArray([], Object.values(payload), true).sort(function (a, b) { return b.order - a.order; })
|
|
16993
|
-
.forEach(function (vtMap, idx) {
|
|
16994
|
-
newTags[vtMap.viewTag.TagId]["order"] = idx;
|
|
16995
|
-
});
|
|
16996
|
-
state.viewTags = newTags;
|
|
16997
|
-
state.shouldRefetchSeries += 1;
|
|
16998
|
-
},
|
|
16999
|
-
setGraphShouldUpdate: function (state) {
|
|
17000
|
-
state.graphShouldUpdate = +1;
|
|
17001
|
-
},
|
|
17002
|
-
},
|
|
17003
|
-
});
|
|
17004
|
-
|
|
17005
|
-
var TrendingContext = createContext({
|
|
17006
|
-
state: TrendingsReducer.getInitialState(),
|
|
17007
|
-
actions: TrendingsReducer.actions,
|
|
17008
|
-
});
|
|
17009
|
-
var useTrendingContext = function () { return useContext(TrendingContext); };
|
|
17010
|
-
var TrendingProvider = function (_a) {
|
|
17011
|
-
var children = _a.children;
|
|
17012
|
-
var _b = useComplexState({
|
|
17013
|
-
initialState: TrendingsReducer.getInitialState(),
|
|
17014
|
-
reducers: TrendingsReducer.caseReducers,
|
|
17015
|
-
}), state = _b[0], actions = _b[1];
|
|
17016
|
-
var contextValue = useMemo(function () { return ({ state: state, actions: actions }); }, [state, actions]);
|
|
17017
|
-
return (React__default.createElement(TrendingContext.Provider, { value: contextValue }, children));
|
|
17018
|
-
};
|
|
17019
|
-
|
|
17020
|
-
var useSearchViews = function (_a) {
|
|
17021
|
-
var _b = _a.autoRefresh, autoRefresh = _b === void 0 ? false : _b;
|
|
17022
|
-
return useQuery({
|
|
17023
|
-
queryKey: ["views"],
|
|
17024
|
-
queryFn: function () { return getViews(null); },
|
|
17025
|
-
refetchInterval: autoRefresh ? 10000 : false,
|
|
17026
|
-
});
|
|
17027
|
-
};
|
|
17028
|
-
var useSearchViewTags = function (_a) {
|
|
17029
|
-
var viewId = _a.viewId;
|
|
17030
|
-
return useQuery({
|
|
17031
|
-
queryKey: ["viewTags", viewId],
|
|
17032
|
-
queryFn: function () {
|
|
17033
|
-
if (viewId) {
|
|
17034
|
-
return getViewTags(viewId);
|
|
17035
|
-
}
|
|
17036
|
-
else {
|
|
17037
|
-
return [];
|
|
17038
|
-
}
|
|
17039
|
-
},
|
|
17040
|
-
});
|
|
17041
|
-
};
|
|
17042
|
-
var useSearchTagsTree = function () {
|
|
17043
|
-
return useQuery({
|
|
17044
|
-
queryKey: ["tagsTree"],
|
|
17045
|
-
queryFn: function () { return getTagsTree(); },
|
|
17046
|
-
});
|
|
17047
|
-
};
|
|
17048
|
-
var useSearchSeries = function (_a) {
|
|
17049
|
-
var start = _a.start, end = _a.end, tagIds = _a.tagIds, _b = _a.autoRefresh, autoRefresh = _b === void 0 ? false : _b;
|
|
17050
|
-
return useQuery({
|
|
17051
|
-
queryKey: ["series", start, end, tagIds],
|
|
17052
|
-
queryFn: function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
|
|
17053
|
-
var resp, error_1;
|
|
17054
|
-
var signal = _b.signal;
|
|
17055
|
-
return __generator(this, function (_c) {
|
|
17056
|
-
switch (_c.label) {
|
|
17057
|
-
case 0:
|
|
17058
|
-
_c.trys.push([0, 2, , 3]);
|
|
17059
|
-
return [4 /*yield*/, axios.post("/series?nodeName=null", {
|
|
17060
|
-
start: start,
|
|
17061
|
-
end: end ? end : new Date().getTime(),
|
|
17062
|
-
tagIds: tagIds,
|
|
17063
|
-
sampleCount: 1000,
|
|
17064
|
-
}, {
|
|
17065
|
-
signal: signal,
|
|
17066
|
-
})];
|
|
17067
|
-
case 1:
|
|
17068
|
-
resp = _c.sent();
|
|
17069
|
-
return [2 /*return*/, get(resp, "data", [])];
|
|
17070
|
-
case 2:
|
|
17071
|
-
error_1 = _c.sent();
|
|
17072
|
-
// Ignore abort errors
|
|
17073
|
-
if (axios.isCancel(error_1) || error_1.name === "AbortError") {
|
|
17074
|
-
return [2 /*return*/, []];
|
|
17075
|
-
}
|
|
17076
|
-
throw new Error(getError(error_1));
|
|
17077
|
-
case 3: return [2 /*return*/];
|
|
17078
|
-
}
|
|
17079
|
-
});
|
|
17080
|
-
}); },
|
|
17081
|
-
refetchInterval: autoRefresh ? 10000 : false,
|
|
17082
|
-
});
|
|
17083
|
-
};
|
|
17084
|
-
|
|
17085
|
-
var DeleteViewModal = function (_a) {
|
|
17086
|
-
var open = _a.open, handleClose = _a.handleClose, view = _a.view;
|
|
17087
|
-
var _b = useState(false), isLoading = _b[0], setIsLoading = _b[1];
|
|
17088
|
-
var _c = useState(""), error = _c[0], setError = _c[1];
|
|
17089
|
-
var removeView = useMutation({
|
|
17090
|
-
mutationFn: deleteView,
|
|
17091
|
-
onSuccess: function () {
|
|
17092
|
-
handleClose(true);
|
|
17093
|
-
},
|
|
17094
|
-
onError: function (error) {
|
|
17095
|
-
setError(error.message);
|
|
17096
|
-
},
|
|
17097
|
-
});
|
|
17098
|
-
var handleSubmit = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
17099
|
-
return __generator(this, function (_a) {
|
|
17100
|
-
switch (_a.label) {
|
|
17101
|
-
case 0:
|
|
17102
|
-
setIsLoading(true);
|
|
17103
|
-
if (!!isNil(view)) return [3 /*break*/, 2];
|
|
17104
|
-
return [4 /*yield*/, removeView.mutate(view.ViewId)];
|
|
17105
|
-
case 1:
|
|
17106
|
-
_a.sent();
|
|
17107
|
-
_a.label = 2;
|
|
17108
|
-
case 2:
|
|
17109
|
-
setIsLoading(false);
|
|
17110
|
-
return [2 /*return*/];
|
|
17111
|
-
}
|
|
17112
|
-
});
|
|
17113
|
-
}); };
|
|
17114
|
-
return (React__default.createElement(React__default.Fragment, null,
|
|
17115
|
-
React__default.createElement(MesfModal, { open: open, handleClose: function () { return handleClose(false); }, maxWidth: "xl", "aria-labelledby": "modal-modal-title", "aria-describedby": "modal-modal-description", title: "Delete View" },
|
|
17116
|
-
React__default.createElement(Divider, null),
|
|
17117
|
-
React__default.createElement(MesfModal.Content, null, !isNil(view) ? (React__default.createElement(Grid2, { container: true, spacing: 5, style: { padding: "2rem" } },
|
|
17118
|
-
React__default.createElement(Grid2, { size: { md: 12, xs: 12 }, style: { padding: "10px", width: "100%" } },
|
|
17119
|
-
React__default.createElement(Typography$1, null,
|
|
17120
|
-
"Are yu sure you want to delete",
|
|
17121
|
-
" ",
|
|
17122
|
-
React__default.createElement("strong", null, view === null || view === void 0 ? void 0 : view.ViewName),
|
|
17123
|
-
" ?")))) : (React__default.createElement(Typography$1, null, "ERROR: No view detected, please select one"))),
|
|
17124
|
-
React__default.createElement(Divider, null),
|
|
17125
|
-
React__default.createElement(MesfModal.Actions, null,
|
|
17126
|
-
React__default.createElement(Grid2, { container: true, spacing: 1, style: {
|
|
17127
|
-
display: "flex",
|
|
17128
|
-
alignItems: "flex-end",
|
|
17129
|
-
justifyContent: "flex-end",
|
|
17130
|
-
} },
|
|
17131
|
-
React__default.createElement(Grid2, null,
|
|
17132
|
-
React__default.createElement(Button, { variant: "outlined", color: "secondary", onClick: function () { return handleClose(false); } }, "Cancel")),
|
|
17133
|
-
React__default.createElement(Grid2, null, !isNil(view) ? (React__default.createElement(ButtonWithLoading, { variant: "contained", color: "secondary", onClick: handleSubmit, isLoading: isLoading }, "Delete")) : (React__default.createElement(Button, { variant: "contained", style: { marginRight: "1rem" }, color: "primary", onClick: function () { return handleClose(false); } }, "Ok")))))),
|
|
17134
|
-
React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
|
|
17135
|
-
};
|
|
17136
|
-
|
|
17137
|
-
var EditViewModal = function (_a) {
|
|
17138
|
-
var open = _a.open, handleClose = _a.handleClose, view = _a.view;
|
|
17139
|
-
var _b = useState(""), newName = _b[0], setNewName = _b[1];
|
|
17140
|
-
var _c = useState(true), isPublic = _c[0], setIsPublic = _c[1];
|
|
17141
|
-
var _d = useState(false), isLoading = _d[0], setIsLoading = _d[1];
|
|
17142
|
-
var _e = useState(""), error = _e[0], setError = _e[1];
|
|
17143
|
-
var updateView = useMutation({
|
|
17144
|
-
mutationFn: upsertView,
|
|
17145
|
-
onSuccess: function () {
|
|
17146
|
-
handleClose(true);
|
|
17147
|
-
},
|
|
17148
|
-
onError: function (error) {
|
|
17149
|
-
setError(error.message);
|
|
17150
|
-
},
|
|
17151
|
-
});
|
|
17152
|
-
var handleSubmit = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
17153
|
-
return __generator(this, function (_a) {
|
|
17154
|
-
switch (_a.label) {
|
|
17155
|
-
case 0:
|
|
17156
|
-
setIsLoading(true);
|
|
17157
|
-
if (!!isNil(view)) return [3 /*break*/, 2];
|
|
17158
|
-
return [4 /*yield*/, updateView.mutate({
|
|
17159
|
-
viewId: view.ViewId,
|
|
17160
|
-
viewName: newName,
|
|
17161
|
-
isPublic: isPublic,
|
|
17162
|
-
})];
|
|
17163
|
-
case 1:
|
|
17164
|
-
_a.sent();
|
|
17165
|
-
_a.label = 2;
|
|
17166
|
-
case 2:
|
|
17167
|
-
setIsLoading(false);
|
|
17168
|
-
return [2 /*return*/];
|
|
17169
|
-
}
|
|
17170
|
-
});
|
|
17171
|
-
}); };
|
|
17172
|
-
var handleChangeInput = function (e) {
|
|
17173
|
-
e.preventDefault();
|
|
17174
|
-
var name = e.target.value;
|
|
17175
|
-
setNewName(name);
|
|
17176
|
-
};
|
|
17177
|
-
var handleCheck = function () { return setIsPublic(!isPublic); };
|
|
17178
|
-
useEffect(function () {
|
|
17179
|
-
if (view) {
|
|
17180
|
-
setIsPublic(view.IsPublic);
|
|
17181
|
-
setNewName(view.ViewName);
|
|
17182
|
-
}
|
|
17183
|
-
}, [view]);
|
|
17184
|
-
return (React__default.createElement(React__default.Fragment, null,
|
|
17185
|
-
React__default.createElement(MesfModal, { open: open, handleClose: function () { return handleClose(false); }, maxWidth: "xl", "aria-labelledby": "modal-modal-title", "aria-describedby": "modal-modal-description", title: "Update View" },
|
|
17186
|
-
React__default.createElement(Divider, null),
|
|
17187
|
-
React__default.createElement(MesfModal.Content, null, !isNil(view) ? (React__default.createElement(Grid2, { container: true, spacing: 5, style: { padding: "2rem" } },
|
|
17188
|
-
React__default.createElement(Grid2, { size: { md: 12, xs: 12 }, style: { padding: "10px", width: "100%" } },
|
|
17189
|
-
React__default.createElement(TextField, { required: true, sx: {
|
|
17190
|
-
color: "rgba(0, 0, 0, 0.87)",
|
|
17191
|
-
cursor: "text",
|
|
17192
|
-
fontSize: "0.7rem",
|
|
17193
|
-
boxSizing: "border-box",
|
|
17194
|
-
fontFamily: '"Roboto", "Helvetica", "Arial", sans-serif',
|
|
17195
|
-
fontWeight: 400,
|
|
17196
|
-
lineHeight: 1.1876,
|
|
17197
|
-
letterSpacing: "0.00938em",
|
|
17198
|
-
"& .MuiOutlinedInput-input": {
|
|
17199
|
-
padding: "10px 10px",
|
|
17200
|
-
},
|
|
17201
|
-
}, id: "viewName", label: "Name", variant: "outlined", onChange: handleChangeInput, value: newName })),
|
|
17202
|
-
React__default.createElement(Grid2, { size: { md: 12, xs: 12 }, sx: {
|
|
17203
|
-
paddingTop: "2rem",
|
|
17204
|
-
userSelect: "none",
|
|
17205
|
-
paddingLeft: "1rem",
|
|
17206
|
-
"& > label": {
|
|
17207
|
-
display: "flex",
|
|
17208
|
-
alignItems: "center",
|
|
17209
|
-
gap: "15px",
|
|
17210
|
-
},
|
|
17211
|
-
'& input[type="checkbox"]': {
|
|
17212
|
-
zoom: 1.5,
|
|
17213
|
-
},
|
|
17214
|
-
} },
|
|
17215
|
-
React__default.createElement("label", null,
|
|
17216
|
-
React__default.createElement("input", { type: "checkbox", checked: isPublic, onChange: handleCheck }),
|
|
17217
|
-
React__default.createElement(Typography$1, null, "Public"))))) : (React__default.createElement(Typography$1, null, "ERROR: No view detected, please select one"))),
|
|
17218
|
-
React__default.createElement(Divider, null),
|
|
17219
|
-
React__default.createElement(MesfModal.Actions, null,
|
|
17220
|
-
React__default.createElement(Grid2, { container: true, spacing: 1, style: {
|
|
17221
|
-
display: "flex",
|
|
17222
|
-
alignItems: "flex-end",
|
|
17223
|
-
justifyContent: "flex-end",
|
|
17224
|
-
} },
|
|
17225
|
-
React__default.createElement(Grid2, null,
|
|
17226
|
-
React__default.createElement(Button, { variant: "outlined", color: "secondary", onClick: function () { return handleClose(false); } }, "Cancel")),
|
|
17227
|
-
React__default.createElement(Grid2, null, !isNil(view) ? (React__default.createElement(ButtonWithLoading, { variant: "contained", color: "primary", onClick: handleSubmit, isLoading: isLoading }, "Update")) : (React__default.createElement(Button, { variant: "contained", style: { marginRight: "1rem" }, color: "primary", onClick: function () { return handleClose(false); } }, "Ok")))))),
|
|
17228
|
-
React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
|
|
17229
|
-
};
|
|
17230
|
-
|
|
17231
|
-
var LoadViewModal = function (_a) {
|
|
17232
|
-
var _b;
|
|
17233
|
-
var open = _a.open, handleClose = _a.handleClose;
|
|
17234
|
-
var queryClient = useQueryClient();
|
|
17235
|
-
var _c = useTrendingContext(), _d = _c.state, views = _d.views, viewSelected = _d.viewSelected, _e = _c.actions, setViewTagsAndRefetch = _e.setViewTagsAndRefetch, setViewSelected = _e.setViewSelected;
|
|
17236
|
-
var _f = useState(null), viewForDelete = _f[0], setViewForDelete = _f[1];
|
|
17237
|
-
var _g = useState(null), viewForEdit = _g[0], setViewForEdit = _g[1];
|
|
17238
|
-
var _h = useState(null), optionSelected = _h[0], setOptionSelected = _h[1];
|
|
17239
|
-
var _j = useState(false), deleteViewModalOpen = _j[0], setDeleteViewModalOpen = _j[1];
|
|
17240
|
-
var _k = useState(false), editViewModalOpen = _k[0], setEditViewModalOpen = _k[1];
|
|
17241
|
-
var _l = useState(false), allViewsChecked = _l[0], setAllViewsChecked = _l[1];
|
|
17242
|
-
var _m = useState(""), error = _m[0], setError = _m[1];
|
|
17243
|
-
var _o = useSearchViewTags({ viewId: (_b = viewSelected === null || viewSelected === void 0 ? void 0 : viewSelected.ViewId) !== null && _b !== void 0 ? _b : null }), viewTags = _o.data, viewTagsLoading = _o.isLoading; _o.isError; _o.error; var viewTagsSuccess = _o.isSuccess, viewTagsFetched = _o.isFetched;
|
|
17244
|
-
var handleSelect = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
17245
|
-
return __generator(this, function (_a) {
|
|
17246
|
-
switch (_a.label) {
|
|
17247
|
-
case 0:
|
|
17248
|
-
if (!optionSelected) return [3 /*break*/, 2];
|
|
17249
|
-
setViewSelected(optionSelected);
|
|
17250
|
-
return [4 /*yield*/, queryClient.invalidateQueries({
|
|
17251
|
-
queryKey: ["viewTags", viewSelected.ViewId],
|
|
17252
|
-
})];
|
|
17253
|
-
case 1:
|
|
17254
|
-
_a.sent();
|
|
17255
|
-
handleClose(true);
|
|
17256
|
-
return [2 /*return*/];
|
|
17257
|
-
case 2:
|
|
17258
|
-
handleClose(false);
|
|
17259
|
-
return [2 /*return*/];
|
|
17260
|
-
}
|
|
17261
|
-
});
|
|
17262
|
-
}); };
|
|
17263
|
-
var handleDeleteView = function (view, e) { return __awaiter(void 0, void 0, void 0, function () {
|
|
17264
|
-
return __generator(this, function (_a) {
|
|
17265
|
-
e.stopPropagation();
|
|
17266
|
-
if (view.ViewId === (viewSelected === null || viewSelected === void 0 ? void 0 : viewSelected.ViewId)) {
|
|
17267
|
-
setError("Can not delete current view");
|
|
17268
|
-
}
|
|
17269
|
-
else {
|
|
17270
|
-
setViewForDelete(view);
|
|
17271
|
-
setDeleteViewModalOpen(true);
|
|
17272
|
-
}
|
|
17273
|
-
return [2 /*return*/];
|
|
17274
|
-
});
|
|
17275
|
-
}); };
|
|
17276
|
-
var handleEditView = function (view, e) { return __awaiter(void 0, void 0, void 0, function () {
|
|
17277
|
-
return __generator(this, function (_a) {
|
|
17278
|
-
setViewForEdit(view);
|
|
17279
|
-
setEditViewModalOpen(true);
|
|
17280
|
-
return [2 /*return*/];
|
|
17281
|
-
});
|
|
17282
|
-
}); };
|
|
17283
|
-
var handleAllViewsCheckbox = function () {
|
|
17284
|
-
setAllViewsChecked(function (prev) { return !prev; });
|
|
17285
|
-
};
|
|
17286
|
-
var publicViews = useMemo(function () {
|
|
17287
|
-
return views.filter(function (v) { return v.IsPublic === true; });
|
|
17288
|
-
}, [views, allViewsChecked]);
|
|
17289
|
-
useEffect(function () {
|
|
17290
|
-
if (viewTagsSuccess && viewTagsFetched) {
|
|
17291
|
-
setViewTagsAndRefetch((viewTags !== null && viewTags !== void 0 ? viewTags : []).reduce(function (carr, curr, idx) {
|
|
17292
|
-
if (isNil(curr.Color)) {
|
|
17293
|
-
curr.Color = getRandomColor();
|
|
17294
|
-
}
|
|
17295
|
-
carr[curr.TagId] = {
|
|
17296
|
-
viewTag: curr,
|
|
17297
|
-
order: idx,
|
|
17298
|
-
};
|
|
17299
|
-
return carr;
|
|
17300
|
-
}, {}));
|
|
17301
|
-
}
|
|
17302
|
-
}, [viewTagsSuccess, viewTagsFetched]);
|
|
17303
|
-
return (React__default.createElement("div", null,
|
|
17304
|
-
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" },
|
|
17305
|
-
React__default.createElement(MesfModal.Content, null,
|
|
17306
|
-
React__default.createElement(Grid2, { container: true }, views.length ? (React__default.createElement(React__default.Fragment, null,
|
|
17307
|
-
React__default.createElement(Grid2, { size: { md: 12 } },
|
|
17308
|
-
React__default.createElement(Box, { sx: {
|
|
17309
|
-
paddingBottom: "1rem",
|
|
17310
|
-
userSelect: "none",
|
|
17311
|
-
paddingLeft: "1rem",
|
|
17312
|
-
"& > label": {
|
|
17313
|
-
display: "flex",
|
|
17314
|
-
alignItems: "center",
|
|
17315
|
-
gap: "15px",
|
|
17316
|
-
},
|
|
17317
|
-
'& input[type="checkbox"]': {
|
|
17318
|
-
zoom: 1.5,
|
|
17319
|
-
},
|
|
17320
|
-
} },
|
|
17321
|
-
React__default.createElement("label", { htmlFor: "" },
|
|
17322
|
-
React__default.createElement("input", { type: "checkbox", checked: allViewsChecked, onChange: handleAllViewsCheckbox }),
|
|
17323
|
-
React__default.createElement(Typography$1, null, "All Views")))),
|
|
17324
|
-
React__default.createElement(Grid2, { size: { md: 12 } },
|
|
17325
|
-
React__default.createElement(Autocomplete$1, { size: "small", id: "list-of-views", noOptionsText: allViewsChecked
|
|
17326
|
-
? "No views detected, please create a new view"
|
|
17327
|
-
: "No private views detected, please create a new view .", options: allViewsChecked ? views : publicViews, getOptionLabel: function (option) { return option.ViewName; }, onChange: function (ev, val) { return setOptionSelected(val); }, defaultValue: optionSelected || viewSelected, style: { width: "100%" }, renderOption: function (props, option) { return (React__default.createElement("li", __assign({}, props, { key: option.ViewId }),
|
|
17328
|
-
React__default.createElement("div", { style: {
|
|
17329
|
-
display: "flex",
|
|
17330
|
-
justifyContent: "flex-start",
|
|
17331
|
-
alignItems: "center",
|
|
17332
|
-
width: "100%",
|
|
17333
|
-
} },
|
|
17334
|
-
React__default.createElement("div", { style: {
|
|
17335
|
-
flexGrow: 1,
|
|
17336
|
-
} }, option.ViewName),
|
|
17337
|
-
React__default.createElement("div", { style: {
|
|
17338
|
-
display: "flex",
|
|
17339
|
-
justifyContent: "flex-end",
|
|
17340
|
-
alignItems: "center",
|
|
17341
|
-
flex: 1,
|
|
17342
|
-
} },
|
|
17343
|
-
option.IsPublic ? ("") : (React__default.createElement(React__default.Fragment, null,
|
|
17344
|
-
React__default.createElement(Tooltip, { title: "Private", arrow: true },
|
|
17345
|
-
React__default.createElement(LockIcon, { fontSize: "small", style: {
|
|
17346
|
-
color: "black",
|
|
17347
|
-
height: "18px",
|
|
17348
|
-
width: "18px",
|
|
17349
|
-
cursor: "auto",
|
|
17350
|
-
} })))),
|
|
17351
|
-
React__default.createElement(IconButton$1, { onClick: function (e) { return handleEditView(option); } },
|
|
17352
|
-
React__default.createElement(CreateIcon, { fontSize: "small", color: "primary", style: {
|
|
17353
|
-
height: "18px",
|
|
17354
|
-
width: "18px",
|
|
17355
|
-
cursor: "pointer",
|
|
17356
|
-
} })),
|
|
17357
|
-
React__default.createElement(IconButton$1, { onClick: function (e) { return handleDeleteView(option, e); } },
|
|
17358
|
-
React__default.createElement(DeleteIcon, { fontSize: "small", color: "secondary", style: {
|
|
17359
|
-
height: "18px",
|
|
17360
|
-
width: "18px",
|
|
17361
|
-
cursor: "pointer",
|
|
17362
|
-
} })))))); }, renderInput: function (params) { return (React__default.createElement(TextField, __assign({}, params, { label: "Views", variant: "outlined" }))); } })))) : (React__default.createElement(Typography$1, null, "No views detected, please add one")))),
|
|
17363
|
-
React__default.createElement(MesfModal.Actions, null,
|
|
17364
|
-
React__default.createElement("div", { style: { paddingTop: "1rem" } },
|
|
17365
|
-
React__default.createElement(Button, { variant: "outlined", style: { marginRight: "1rem" }, color: "secondary", onClick: function () { return handleClose(false); } }, "Cancel"),
|
|
17366
|
-
views.length ? (React__default.createElement(ButtonWithLoading, { onClick: handleSelect, variant: "contained", color: "primary", isLoading: viewTagsLoading, style: { marginRight: "1rem" } }, "Apply")) : (React__default.createElement(Button, { variant: "contained", style: { marginRight: "1rem" }, color: "primary", onClick: function () { return handleClose(false); } }, "Ok"))))),
|
|
17367
|
-
React__default.createElement(DeleteViewModal, { open: deleteViewModalOpen, view: viewForDelete, handleClose: function (shouldUpdate) { return __awaiter(void 0, void 0, void 0, function () {
|
|
17368
|
-
return __generator(this, function (_a) {
|
|
17369
|
-
switch (_a.label) {
|
|
17370
|
-
case 0:
|
|
17371
|
-
setDeleteViewModalOpen(false);
|
|
17372
|
-
if (!shouldUpdate) return [3 /*break*/, 2];
|
|
17373
|
-
return [4 /*yield*/, queryClient.invalidateQueries({ queryKey: ["views"] })];
|
|
17374
|
-
case 1:
|
|
17375
|
-
_a.sent();
|
|
17376
|
-
_a.label = 2;
|
|
17377
|
-
case 2: return [2 /*return*/];
|
|
17378
|
-
}
|
|
17379
|
-
});
|
|
17380
|
-
}); } }),
|
|
17381
|
-
React__default.createElement(EditViewModal, { open: editViewModalOpen, view: viewForEdit, handleClose: function (shouldUpdate) { return __awaiter(void 0, void 0, void 0, function () {
|
|
17382
|
-
return __generator(this, function (_a) {
|
|
17383
|
-
switch (_a.label) {
|
|
17384
|
-
case 0:
|
|
17385
|
-
setEditViewModalOpen(false);
|
|
17386
|
-
if (!shouldUpdate) return [3 /*break*/, 2];
|
|
17387
|
-
return [4 /*yield*/, queryClient.invalidateQueries({ queryKey: ["views"] })];
|
|
17388
|
-
case 1:
|
|
17389
|
-
_a.sent();
|
|
17390
|
-
_a.label = 2;
|
|
17391
|
-
case 2: return [2 /*return*/];
|
|
17392
|
-
}
|
|
17393
|
-
});
|
|
17394
|
-
}); } }),
|
|
17395
|
-
React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
|
|
17396
|
-
};
|
|
17397
|
-
|
|
17398
|
-
var SaveAsViewModal = function (_a) {
|
|
17399
|
-
var open = _a.open, handleClose = _a.handleClose;
|
|
17400
|
-
var _b = useState(false), isLoading = _b[0], setIsLoading = _b[1];
|
|
17401
|
-
var _c = useState(""), error = _c[0], setError = _c[1];
|
|
17402
|
-
var _d = useTrendingContext(), _e = _d.state, viewTags = _e.viewTags, views = _e.views, viewSelected = _e.viewSelected, _f = _d.actions, setViewSelected = _f.setViewSelected; _f.setViewTags;
|
|
17403
|
-
var _g = useState(true), isPublic = _g[0], setIsPublic = _g[1];
|
|
17404
|
-
var _h = useState(""), newView = _h[0], setNewView = _h[1];
|
|
17405
|
-
var handleCheck = function () { return setIsPublic(!isPublic); };
|
|
17406
|
-
var updateViewTag = useMutation({
|
|
17407
|
-
mutationFn: upsertViewTag,
|
|
17408
|
-
onError: function (error) {
|
|
17409
|
-
setError(error.message);
|
|
17410
|
-
},
|
|
17411
|
-
});
|
|
17412
|
-
var updateView = useMutation({
|
|
17413
|
-
mutationFn: upsertView,
|
|
17414
|
-
onSuccess: function (viewId) { return __awaiter(void 0, void 0, void 0, function () {
|
|
17415
|
-
var shouldClose;
|
|
17416
|
-
return __generator(this, function (_a) {
|
|
17417
|
-
switch (_a.label) {
|
|
17418
|
-
case 0:
|
|
17419
|
-
shouldClose = true;
|
|
17420
|
-
return [4 /*yield*/, Promise.allSettled(Object.values(viewTags).map(function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
|
|
17421
|
-
var _c = _b.viewTag, TagId = _c.TagId, Color = _c.Color, MinScale = _c.MinScale, MaxScale = _c.MaxScale, IsAutoScale = _c.IsAutoScale, IsVisible = _c.IsVisible, Unit = _c.Unit;
|
|
17422
|
-
return __generator(this, function (_d) {
|
|
17423
|
-
switch (_d.label) {
|
|
17424
|
-
case 0: return [4 /*yield*/, updateViewTag.mutate({
|
|
17425
|
-
viewId: viewId,
|
|
17426
|
-
tagId: TagId,
|
|
17427
|
-
color: Color,
|
|
17428
|
-
minScale: MinScale,
|
|
17429
|
-
maxScale: MaxScale,
|
|
17430
|
-
isVisible: IsVisible,
|
|
17431
|
-
isAutoScale: IsAutoScale,
|
|
17432
|
-
unit: Unit,
|
|
17433
|
-
})];
|
|
17434
|
-
case 1:
|
|
17435
|
-
_d.sent();
|
|
17436
|
-
return [2 /*return*/];
|
|
17437
|
-
}
|
|
17438
|
-
});
|
|
17439
|
-
}); }))];
|
|
17440
|
-
case 1:
|
|
17441
|
-
_a.sent();
|
|
17442
|
-
handleClose(shouldClose);
|
|
17443
|
-
return [2 /*return*/];
|
|
17444
|
-
}
|
|
17445
|
-
});
|
|
17446
|
-
}); },
|
|
17447
|
-
onError: function (error) {
|
|
17448
|
-
setError(error.message);
|
|
17449
|
-
},
|
|
17450
|
-
});
|
|
17451
|
-
var handleSubmit = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
17452
|
-
return __generator(this, function (_a) {
|
|
17453
|
-
switch (_a.label) {
|
|
17454
|
-
case 0:
|
|
17455
|
-
setIsLoading(true);
|
|
17456
|
-
return [4 /*yield*/, updateView.mutate({
|
|
17457
|
-
viewId: null,
|
|
17458
|
-
viewName: newView,
|
|
17459
|
-
isPublic: isPublic,
|
|
17460
|
-
})];
|
|
17461
|
-
case 1:
|
|
17462
|
-
_a.sent();
|
|
17463
|
-
setIsLoading(false);
|
|
17464
|
-
return [2 /*return*/];
|
|
17465
|
-
}
|
|
17466
|
-
});
|
|
17467
|
-
}); };
|
|
17468
|
-
return (React__default.createElement(React__default.Fragment, null,
|
|
17469
|
-
React__default.createElement(MesfModal, { open: open, handleClose: function () { return handleClose(false); }, maxWidth: "xl", "aria-labelledby": "modal-modal-title", "aria-describedby": "modal-modal-description", title: "Save View As" },
|
|
17470
|
-
React__default.createElement(Divider, null),
|
|
17471
|
-
React__default.createElement(MesfModal.Content, null,
|
|
17472
|
-
React__default.createElement(Grid2, { container: true, spacing: 5, style: { padding: "1rem" } },
|
|
17473
|
-
React__default.createElement(Grid2, { size: { md: 12, xs: 12 }, style: { padding: "10px", width: "100%" } }, views.length && viewSelected ? (React__default.createElement(Autocomplete$1, { size: "small", id: "list-of-views", options: views, defaultValue: viewSelected, getOptionLabel: function (option) {
|
|
17474
|
-
if (typeof option === "string") {
|
|
17475
|
-
return option;
|
|
17476
|
-
}
|
|
17477
|
-
return option.ViewName;
|
|
17478
|
-
}, freeSolo: true, onChange: function (ev, val) {
|
|
17479
|
-
setViewSelected(val);
|
|
17480
|
-
if (val) {
|
|
17481
|
-
setNewView("");
|
|
17482
|
-
}
|
|
17483
|
-
}, onInputChange: function (event, newInputValue) {
|
|
17484
|
-
var isValueInViews = views.some(function (view) { return view.ViewName === newInputValue; });
|
|
17485
|
-
if (!isValueInViews) {
|
|
17486
|
-
setNewView(newInputValue);
|
|
17487
|
-
}
|
|
17488
|
-
}, style: { width: "100%" }, renderInput: function (params) { return (React__default.createElement(TextField, __assign({}, params, { label: "Views", variant: "outlined" }))); } })) : (React__default.createElement(Box, null,
|
|
17489
|
-
React__default.createElement(TextField, { style: { minWidth: "600px" }, size: "small", id: "outlined-basic", label: "View name", variant: "outlined", value: newView, onChange: function (e) { return setNewView(e.target.value); } }))))),
|
|
17490
|
-
React__default.createElement(Grid2, { size: { md: 12, xs: 12 }, sx: {
|
|
17491
|
-
paddingTop: "2rem",
|
|
17492
|
-
userSelect: "none",
|
|
17493
|
-
paddingLeft: "1rem",
|
|
17494
|
-
"& > label": {
|
|
17495
|
-
display: "flex",
|
|
17496
|
-
alignItems: "center",
|
|
17497
|
-
gap: "15px",
|
|
17498
|
-
},
|
|
17499
|
-
'& input[type="checkbox"]': {
|
|
17500
|
-
zoom: 1.5,
|
|
17501
|
-
},
|
|
17502
|
-
} },
|
|
17503
|
-
React__default.createElement("label", null,
|
|
17504
|
-
"Public",
|
|
17505
|
-
React__default.createElement("input", { type: "checkbox", checked: isPublic, onChange: handleCheck })))),
|
|
17506
|
-
React__default.createElement(Divider, null),
|
|
17507
|
-
React__default.createElement(MesfModal.Actions, null,
|
|
17508
|
-
React__default.createElement(Grid2, { container: true, spacing: 1, style: {
|
|
17509
|
-
display: "flex",
|
|
17510
|
-
alignItems: "flex-end",
|
|
17511
|
-
justifyContent: "flex-end",
|
|
17512
|
-
} },
|
|
17513
|
-
React__default.createElement(Grid2, null,
|
|
17514
|
-
React__default.createElement(Button, { variant: "outlined", color: "secondary", onClick: function () { return handleClose(false); } }, "Cancel")),
|
|
17515
|
-
React__default.createElement(Grid2, null,
|
|
17516
|
-
React__default.createElement(ButtonWithLoading, { variant: "contained", color: "primary", onClick: handleSubmit, isLoading: isLoading }, "Save"))))),
|
|
17517
|
-
React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
|
|
17518
|
-
};
|
|
17519
|
-
|
|
17520
|
-
var customStyles = "\n ul, ol {\n list-style-type: none;\n margin: 0;\n padding: 0;\n }\n";
|
|
17521
|
-
var TagFolderCustomNode = function (_a) {
|
|
17522
|
-
var _b, _c, _d, _e, _f, _g, _h, _j;
|
|
17523
|
-
var node = _a.node, _k = _a.options, depth = _k.depth, isOpen = _k.isOpen, onToggle = _k.onToggle, containerRef = _k.containerRef, options = _a.options, setOpenTagFolders = _a.setOpenTagFolders, openTagFolders = _a.openTagFolders, handleSelect = _a.handleSelect, setContextMenuOver = _a.setContextMenuOver, isSelected = _a.isSelected;
|
|
17524
|
-
var onClickHandler = function () {
|
|
17525
|
-
var _a;
|
|
17526
|
-
var _b;
|
|
17527
|
-
if (options.hasChild || ((_b = node.data) === null || _b === void 0 ? void 0 : _b.TagTypeCode) === "F") {
|
|
17528
|
-
if (openTagFolders[node.id]) {
|
|
17529
|
-
var newOpenTagFolders = __assign({}, openTagFolders);
|
|
17530
|
-
delete newOpenTagFolders[node.id];
|
|
17531
|
-
setOpenTagFolders(newOpenTagFolders);
|
|
17532
|
-
}
|
|
17533
|
-
else {
|
|
17534
|
-
setOpenTagFolders(__assign(__assign({}, openTagFolders), (_a = {}, _a[node.id] = node.id, _a)));
|
|
17535
|
-
}
|
|
17536
|
-
onToggle();
|
|
17537
|
-
return;
|
|
17538
|
-
}
|
|
17539
|
-
if (!options.hasChild) {
|
|
17540
|
-
handleSelect(node);
|
|
17541
|
-
}
|
|
17542
|
-
};
|
|
17543
|
-
var handleContextMenu = useCallback(function (ev) {
|
|
17544
|
-
ev.stopPropagation();
|
|
17545
|
-
ev.preventDefault();
|
|
17546
|
-
setContextMenuOver(node, ev);
|
|
17547
|
-
}, [node.id, setContextMenuOver]);
|
|
17548
|
-
useEffect(function () {
|
|
17549
|
-
var _a;
|
|
17550
|
-
(_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener("contextmenu", handleContextMenu);
|
|
17551
|
-
return function () {
|
|
17552
|
-
var _a;
|
|
17553
|
-
(_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener("contextmenu", handleContextMenu);
|
|
17554
|
-
};
|
|
17555
|
-
}, []);
|
|
17556
|
-
return (React__default.createElement(Box, { onClick: onClickHandler, sx: {
|
|
17557
|
-
paddingLeft: depth * 20,
|
|
17558
|
-
cursor: "pointer",
|
|
17559
|
-
listStyleType: "none",
|
|
17560
|
-
margin: 0,
|
|
17561
|
-
padding: 0,
|
|
17562
|
-
alignItems: "center",
|
|
17563
|
-
display: "flex",
|
|
17564
|
-
height: "32px",
|
|
17565
|
-
backgroundColor: isSelected ? "#e8f0fe" : "",
|
|
17566
|
-
"&:hover": {
|
|
17567
|
-
backgroundColor: "#f2f2f2",
|
|
17568
|
-
},
|
|
17569
|
-
} },
|
|
17570
|
-
React__default.createElement("style", null, customStyles),
|
|
17571
|
-
React__default.createElement(React__default.Fragment, null,
|
|
17572
|
-
options.hasChild ? (React__default.createElement("div", null, isOpen ? React__default.createElement(ArrowDropDownIcon$1, null) : React__default.createElement(ArrowRight, null))) : null,
|
|
17573
|
-
React__default.createElement("div", null, options.hasChild || ((_b = node.data) === null || _b === void 0 ? void 0 : _b.TagTypeCode) === "F" ? (React__default.createElement(FolderIcon, null)) : (React__default.createElement(InsertChartIcon, { fontSize: "small" })))),
|
|
17574
|
-
((_c = node.data) === null || _c === void 0 ? void 0 : _c.TagName) && (React__default.createElement(React__default.Fragment, null,
|
|
17575
|
-
((_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", { style: {
|
|
17576
|
-
backgroundColor: ((_f = node.data) === null || _f === void 0 ? void 0 : _f.TagTypeCode) === "A" ? "#AD48C4" : "#C46F48",
|
|
17577
|
-
margin: "0 5px",
|
|
17578
|
-
width: "25px",
|
|
17579
|
-
height: "25px",
|
|
17580
|
-
color: "white",
|
|
17581
|
-
display: "flex",
|
|
17582
|
-
justifyContent: "center",
|
|
17583
|
-
alignItems: "center",
|
|
17584
|
-
cursor: "pointer",
|
|
17585
|
-
border: "1px black solid",
|
|
17586
|
-
} }, (_g = node.data) === null || _g === void 0 ? void 0 : _g.TagTypeCode)),
|
|
17587
|
-
React__default.createElement(Tooltip, { title: node.data.TagName, placement: "top", arrow: true },
|
|
17588
|
-
React__default.createElement(Typography$1, { variant: "body2" }, ((_h = node.data) === null || _h === void 0 ? void 0 : _h.Alias) || ((_j = node.data) === null || _j === void 0 ? void 0 : _j.TagName)))))));
|
|
17589
|
-
};
|
|
17590
|
-
|
|
17591
|
-
var TagSelectionModal = function (_a) {
|
|
17592
|
-
var isOpen = _a.isOpen; _a.onClose; var onTagSelect = _a.onTagSelect;
|
|
17593
|
-
var _b = useState(false), isLoading = _b[0], setIsLoading = _b[1];
|
|
17594
|
-
var _c = useState(""), error = _c[0], setError = _c[1];
|
|
17595
|
-
var _d = useState([]), tagsTreeData = _d[0], setTagsTreeData = _d[1];
|
|
17596
|
-
var _e = useState(null), tagNodeSelectedInTree = _e[0], setTagNodeSelectedInTree = _e[1];
|
|
17597
|
-
var _f = useState(null), anchorPoint = _f[0], setAnchorPoint = _f[1];
|
|
17598
|
-
var _g = useState(false), showContextMenu = _g[0], setShowContextMenu = _g[1];
|
|
17599
|
-
var backendOffset = 1000000;
|
|
17600
|
-
var _h = useState({}), openTagFolders = _h[0], setOpenTagFolders = _h[1];
|
|
17601
|
-
var _j = useState([]), selectedNodes = _j[0], setSelectedNodes = _j[1];
|
|
17602
|
-
var handleContextMenu = function (data, e) {
|
|
17603
|
-
e.preventDefault();
|
|
17604
|
-
var top = e.clientY;
|
|
17605
|
-
var left = e.clientX;
|
|
17606
|
-
setAnchorPoint({ x: left, y: top });
|
|
17607
|
-
setSelectedNodes([data]);
|
|
17608
|
-
setShowContextMenu(true);
|
|
17609
|
-
var selectedNode = tagsTreeData.find(function (node) { var _a; return ((_a = node.data) === null || _a === void 0 ? void 0 : _a.TagId) === data.id; });
|
|
17610
|
-
if (selectedNode) {
|
|
17611
|
-
setTagNodeSelectedInTree(selectedNode);
|
|
17612
|
-
}
|
|
17613
|
-
};
|
|
17614
|
-
var _k = useSearchTagsTree(), tagsTree = _k.data, tagsTreeLoading = _k.isLoading, tagsTreeIsError = _k.isError, tagsTreeError = _k.error, tagsTreeIsSuccess = _k.isSuccess, tagsTreeIsFetched = _k.isFetched, refetch = _k.refetch;
|
|
17615
|
-
var updateTagFolder = useMutation({
|
|
17616
|
-
mutationFn: upsertTagFolder,
|
|
17617
|
-
onError: function (error) {
|
|
17618
|
-
setError(error.message);
|
|
17619
|
-
},
|
|
17620
|
-
});
|
|
17621
|
-
var changeTagFolderTag = useMutation({
|
|
17622
|
-
mutationFn: changeTagFolderToTag,
|
|
17623
|
-
onError: function (error) {
|
|
17624
|
-
setError(error.message);
|
|
17625
|
-
},
|
|
17626
|
-
});
|
|
17627
|
-
var expanded = useMemo(function () {
|
|
17628
|
-
return Object.keys(openTagFolders).map(function (el) { return Number.parseInt(el); });
|
|
17629
|
-
}, [openTagFolders]);
|
|
17630
|
-
var handleDrop = function (tree, options) { return __awaiter(void 0, void 0, void 0, function () {
|
|
17631
|
-
var tagId, newFolderId;
|
|
17632
|
-
var _a, _b;
|
|
17633
|
-
return __generator(this, function (_c) {
|
|
17634
|
-
switch (_c.label) {
|
|
17635
|
-
case 0:
|
|
17636
|
-
setIsLoading(true);
|
|
17637
|
-
if (!options.dragSource) return [3 /*break*/, 5];
|
|
17638
|
-
tagId = Number(options.dragSource.id);
|
|
17639
|
-
newFolderId = Number((_a = options.dropTarget) === null || _a === void 0 ? void 0 : _a.id) || null;
|
|
17640
|
-
if (tagId === newFolderId) {
|
|
17641
|
-
setIsLoading(false);
|
|
17642
|
-
return [2 /*return*/];
|
|
17643
|
-
}
|
|
17644
|
-
if (!(((_b = options.dragSource.data) === null || _b === void 0 ? void 0 : _b.TagTypeCode) === "F")) return [3 /*break*/, 2];
|
|
17645
|
-
return [4 /*yield*/, updateTagFolder.mutate({
|
|
17646
|
-
tagFolderId: tagId,
|
|
17647
|
-
parentTagFolderId: newFolderId,
|
|
17648
|
-
tagFolderName: options.dragSource.text,
|
|
17649
|
-
isActive: true,
|
|
17650
|
-
})];
|
|
17651
|
-
case 1:
|
|
17652
|
-
_c.sent();
|
|
17653
|
-
return [3 /*break*/, 4];
|
|
17654
|
-
case 2: return [4 /*yield*/, changeTagFolderTag.mutate({ tagId: tagId, tagFolderId: newFolderId })];
|
|
17655
|
-
case 3:
|
|
17656
|
-
_c.sent();
|
|
17657
|
-
_c.label = 4;
|
|
17658
|
-
case 4:
|
|
17659
|
-
setTagsTreeData(tree);
|
|
17660
|
-
_c.label = 5;
|
|
17661
|
-
case 5:
|
|
17662
|
-
setIsLoading(false);
|
|
17663
|
-
return [2 /*return*/];
|
|
17664
|
-
}
|
|
17665
|
-
});
|
|
17666
|
-
}); };
|
|
17667
|
-
var handleClick = function (node) {
|
|
17668
|
-
if (node.data) {
|
|
17669
|
-
onTagSelect(node.data);
|
|
17670
|
-
}
|
|
17671
|
-
};
|
|
17672
|
-
var handleCloseContextMenu = function (e) {
|
|
17673
|
-
if (showContextMenu) {
|
|
17674
|
-
setShowContextMenu(false);
|
|
17675
|
-
}
|
|
17676
|
-
};
|
|
17677
|
-
useEffect(function () {
|
|
17678
|
-
if (isOpen) {
|
|
17679
|
-
refetch();
|
|
17680
|
-
}
|
|
17681
|
-
}, [isOpen]);
|
|
17682
|
-
useEffect(function () {
|
|
17683
|
-
if (isOpen) {
|
|
17684
|
-
var tree = buildTagsTreeV2(tagsTree !== null && tagsTree !== void 0 ? tagsTree : []);
|
|
17685
|
-
setTagsTreeData(tree);
|
|
17686
|
-
}
|
|
17687
|
-
}, [tagsTreeIsSuccess, tagsTreeIsFetched]);
|
|
17688
|
-
useEffect(function () {
|
|
17689
|
-
if (tagsTreeError && tagsTreeIsError) {
|
|
17690
|
-
setError(tagsTreeError.message);
|
|
17691
|
-
}
|
|
17692
|
-
}, [tagsTreeError, tagsTreeIsError]);
|
|
17693
|
-
return (React__default.createElement(React__default.Fragment, null,
|
|
17694
|
-
React__default.createElement("div", { style: {
|
|
17695
|
-
display: isOpen ? "block" : "none",
|
|
17696
|
-
minHeight: "700px",
|
|
17697
|
-
minWidth: "800px",
|
|
17698
|
-
}, onClick: handleCloseContextMenu },
|
|
17699
|
-
React__default.createElement("div", { style: { overflowY: "auto", maxHeight: "700px" } }, isLoading || tagsTreeLoading ? (React__default.createElement(Grid2, { container: true, justifyContent: "center", alignItems: "center", style: { minHeight: "100px" } },
|
|
17700
|
-
React__default.createElement(CircularProgress, { size: "2rem" }))) : (React__default.createElement(DndProvider$1, { backend: HTML5Backend },
|
|
17701
|
-
React__default.createElement(Box, { sx: {
|
|
17702
|
-
"& .root": {
|
|
17703
|
-
boxSizing: "border-box",
|
|
17704
|
-
height: "100%",
|
|
17705
|
-
padding: "32px",
|
|
17706
|
-
},
|
|
17707
|
-
"& .dropTarget": {
|
|
17708
|
-
boxShadow: "0 0 0 1px #1967d2 inset",
|
|
17709
|
-
},
|
|
17710
|
-
} },
|
|
17711
|
-
React__default.createElement(Tree, { classes: {
|
|
17712
|
-
root: "root",
|
|
17713
|
-
dropTarget: "dropTarget",
|
|
17714
|
-
}, initialOpen: expanded, tree: tagsTreeData, rootId: backendOffset, onDrop: handleDrop, canDrop: function (tag, options) {
|
|
17715
|
-
return !selectedNodes.some(function (selectedNode) {
|
|
17716
|
-
return Number(selectedNode.id) ===
|
|
17717
|
-
Number(options.dropTargetId);
|
|
17718
|
-
});
|
|
17719
|
-
}, render: function (node, options) {
|
|
17720
|
-
var selected = selectedNodes.some(function (selectedNode) {
|
|
17721
|
-
return Number(selectedNode.id) === Number(node.id);
|
|
17722
|
-
});
|
|
17723
|
-
return (React__default.createElement(TagFolderCustomNode, { setContextMenuOver: handleContextMenu, node: node, options: options, isSelected: selected, openTagFolders: openTagFolders, setOpenTagFolders: setOpenTagFolders, handleSelect: handleClick }));
|
|
17724
|
-
}, dragPreviewRender: function (monitorProps) { return (React__default.createElement(CustomDragPreview, { monitorProps: monitorProps })
|
|
17725
|
-
// <div>{monitorProps.item.data?.TagName}</div>
|
|
17726
|
-
); } })))))),
|
|
17727
|
-
React__default.createElement(ContextMenu, { anchorPoint: anchorPoint, isOpen: showContextMenu, setShowContextMenu: setShowContextMenu, tagNodeSelectedInTree: tagNodeSelectedInTree, getTagsTreeData: function () { return refetch(); } }),
|
|
17728
|
-
React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
|
|
17729
|
-
};
|
|
17730
|
-
|
|
17731
|
-
var TagsTreeModal = function (_a) {
|
|
17732
|
-
var open = _a.open, handleClose = _a.handleClose, onTagSelect = _a.onTagSelect;
|
|
17733
|
-
return (React__default.createElement(React__default.Fragment, null,
|
|
17734
|
-
React__default.createElement(MesfModal, { open: open, handleClose: handleClose, maxWidth: "lg", "aria-labelledby": "modal-modal-title", "aria-describedby": "modal-modal-description", title: "Tags" },
|
|
17735
|
-
React__default.createElement(MesfModal.Content, null,
|
|
17736
|
-
React__default.createElement(Box, null,
|
|
17737
|
-
React__default.createElement(Typography$1, { id: "modal-modal-description" },
|
|
17738
|
-
React__default.createElement(TagSelectionModal, { isOpen: open, onClose: function () { return handleClose; }, onTagSelect: onTagSelect })))))));
|
|
17739
|
-
};
|
|
17740
|
-
|
|
17741
|
-
var useTagsDataTable = function (_a) {
|
|
17742
|
-
var cursorData = _a.cursorData, viewTagsMap = _a.viewTagsMap, chartData = _a.chartData;
|
|
17743
|
-
return useMemo(function () {
|
|
17744
|
-
var _a;
|
|
17745
|
-
var dataTable = {};
|
|
17746
|
-
if (cursorData) {
|
|
17747
|
-
var _loop_1 = function (viewTagEntry) {
|
|
17748
|
-
var tag = viewTagsMap[viewTagEntry].viewTag;
|
|
17749
|
-
var datasetForTag = ((_a = chartData.datasets.find(function (ds) {
|
|
17750
|
-
return ds.tagId === (tag === null || tag === void 0 ? void 0 : tag.TagId);
|
|
17751
|
-
})) === null || _a === void 0 ? void 0 : _a.data) || [];
|
|
17752
|
-
var p1 = { x: new Date("1900-01-01"), y: 0 };
|
|
17753
|
-
var p2 = { x: new Date("1900-01-01"), y: 0 };
|
|
17754
|
-
var p1Found = false;
|
|
17755
|
-
var pmin = { x: 0, y: Number.POSITIVE_INFINITY };
|
|
17756
|
-
var pmax = { x: 0, y: Number.NEGATIVE_INFINITY };
|
|
17757
|
-
for (var idx = 0; idx < datasetForTag.length; idx++) {
|
|
17758
|
-
var curr = datasetForTag[idx];
|
|
17759
|
-
var currentVal = curr.x;
|
|
17760
|
-
if (!p1Found) {
|
|
17761
|
-
if (currentVal < cursorData.x1) {
|
|
17762
|
-
p1 = curr;
|
|
17763
|
-
p2 = JSON.parse(JSON.stringify(p1));
|
|
17764
|
-
pmin = JSON.parse(JSON.stringify(p1));
|
|
17765
|
-
pmax = JSON.parse(JSON.stringify(p1));
|
|
17766
|
-
continue;
|
|
17767
|
-
}
|
|
17768
|
-
else {
|
|
17769
|
-
p1Found = true;
|
|
17770
|
-
}
|
|
17771
|
-
}
|
|
17772
|
-
else {
|
|
17773
|
-
if (currentVal < cursorData.x2) {
|
|
17774
|
-
p2 = curr;
|
|
17775
|
-
if (pmin["y"] > curr["y"]) {
|
|
17776
|
-
pmin = JSON.parse(JSON.stringify(curr));
|
|
17777
|
-
}
|
|
17778
|
-
if (pmax["y"] < curr["y"]) {
|
|
17779
|
-
pmax = JSON.parse(JSON.stringify(curr));
|
|
17780
|
-
}
|
|
17781
|
-
}
|
|
17782
|
-
else {
|
|
17783
|
-
break;
|
|
17784
|
-
}
|
|
17785
|
-
}
|
|
17786
|
-
}
|
|
17787
|
-
dataTable[tag === null || tag === void 0 ? void 0 : tag.TagName] = {
|
|
17788
|
-
y1: p1.y,
|
|
17789
|
-
y2: p2.y,
|
|
17790
|
-
y2y1: Number(p2.y) - Number(p1.y),
|
|
17791
|
-
pmin: pmin,
|
|
17792
|
-
pmax: pmax,
|
|
17793
|
-
};
|
|
17794
|
-
};
|
|
17795
|
-
for (var viewTagEntry in viewTagsMap) {
|
|
17796
|
-
_loop_1(viewTagEntry);
|
|
17797
|
-
}
|
|
17798
|
-
}
|
|
17799
|
-
return dataTable;
|
|
17800
|
-
}, [viewTagsMap, chartData, cursorData]);
|
|
17801
|
-
};
|
|
17802
|
-
|
|
17803
|
-
var formatTimeDiffWithMs = function (start, end) {
|
|
17804
|
-
// Calculate total difference in milliseconds
|
|
17805
|
-
var totalMilliseconds = end - start;
|
|
17806
|
-
// Convert milliseconds to seconds, minutes, hours, days, and months for comparison
|
|
17807
|
-
var seconds = totalMilliseconds / 1000;
|
|
17808
|
-
var minutes = seconds / 60;
|
|
17809
|
-
var hours = minutes / 60;
|
|
17810
|
-
var days = hours / 24;
|
|
17811
|
-
var months = days / 30; // Approximation of a month
|
|
17812
|
-
var remainingSeconds = seconds % 60; // Remaining seconds after full minutes
|
|
17813
|
-
if (months > 12) {
|
|
17814
|
-
var years = months / 12;
|
|
17815
|
-
return "".concat(Math.floor(years), " years, ").concat(Math.floor(months % 12), " months");
|
|
17816
|
-
}
|
|
17817
|
-
else if (months > 6) {
|
|
17818
|
-
return "".concat(Math.floor(months), " months, ").concat(Math.floor(days % 30), " days");
|
|
17819
|
-
}
|
|
17820
|
-
else if (days > 10) {
|
|
17821
|
-
return "".concat(Math.floor(days), " days, ").concat(Math.floor(hours % 24), " hours");
|
|
17822
|
-
}
|
|
17823
|
-
else if (days > 1) {
|
|
17824
|
-
return "".concat(Math.floor(days), " days, ").concat(Math.floor(hours % 24), " hours");
|
|
17825
|
-
}
|
|
17826
|
-
else if (hours > 12) {
|
|
17827
|
-
return "".concat(Math.floor(hours), " hours, ").concat(Math.floor(minutes % 60), " minutes, ").concat(remainingSeconds.toFixed(2), " seconds");
|
|
17828
|
-
}
|
|
17829
|
-
else if (hours < 1) {
|
|
17830
|
-
// If there are 0 hours, return just minutes and remaining seconds
|
|
17831
|
-
return "".concat(Math.floor(minutes), " minutes, ").concat(remainingSeconds.toFixed(2), " seconds");
|
|
17832
|
-
}
|
|
17833
|
-
else {
|
|
17834
|
-
// For time intervals less than 12 hours but more than 1 hour, return hours, minutes, and remaining seconds
|
|
17835
|
-
return "".concat(Math.floor(hours), " hours, ").concat(Math.floor(minutes % 60), " minutes, ").concat(remainingSeconds.toFixed(2), " seconds");
|
|
17836
|
-
}
|
|
17837
|
-
};
|
|
17838
|
-
|
|
17839
|
-
var TableComponent = function (_a) {
|
|
17840
|
-
var chartData = _a.chartData, cursorData = _a.cursorData; _a.viewTagForDelete; var setViewTagForDelete = _a.setViewTagForDelete, selectedRowTagId = _a.selectedRowTagId, setSelectedRowTagId = _a.setSelectedRowTagId;
|
|
17841
|
-
var queryClient = useQueryClient();
|
|
17842
|
-
var _b = useContextMenuMESF(), registerConfig = _b.registerConfig, showContextMenu = _b.showContextMenu;
|
|
17843
|
-
var _c = useTrendingContext(), _d = _c.state, viewTags = _d.viewTags, viewSelected = _d.viewSelected, _e = _c.actions, setViewTags = _e.setViewTags, setViewTagsAndRefetch = _e.setViewTagsAndRefetch;
|
|
17844
|
-
var _f = useState(""), error = _f[0], setError = _f[1];
|
|
17845
|
-
var _g = useState(false); _g[0]; var setIsLoading = _g[1];
|
|
17846
|
-
var _h = useState(false), tagsTreeModalOpen = _h[0], setTagsTreeModalOpen = _h[1];
|
|
17847
|
-
var _j = useState(false), saveAsViewModalOpen = _j[0], setSaveAsViewModalOpen = _j[1];
|
|
17848
|
-
var _k = useState(false), loadViewOpen = _k[0], setLoadViewOpen = _k[1];
|
|
17849
|
-
var _l = useState(""), snackbarMessage = _l[0], setSnackbarMessage = _l[1];
|
|
17850
|
-
var deleteAllViewTags = useMutation({
|
|
17851
|
-
mutationFn: deleteAllViewTagsFromView,
|
|
17852
|
-
onError: function (error) {
|
|
17853
|
-
setError(error.message);
|
|
17854
|
-
},
|
|
17855
|
-
});
|
|
17856
|
-
var updateView = useMutation({
|
|
17857
|
-
mutationFn: upsertView,
|
|
17858
|
-
onSuccess: function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
17859
|
-
var results;
|
|
17860
|
-
var _a;
|
|
17861
|
-
return __generator(this, function (_b) {
|
|
17862
|
-
switch (_b.label) {
|
|
17863
|
-
case 0: return [4 /*yield*/, deleteAllViewTags.mutate((_a = viewSelected === null || viewSelected === void 0 ? void 0 : viewSelected.ViewId) !== null && _a !== void 0 ? _a : 0)];
|
|
17864
|
-
case 1:
|
|
17865
|
-
_b.sent();
|
|
17866
|
-
return [4 /*yield*/, Promise.allSettled(Object.values(viewTags)
|
|
17867
|
-
.sort(function (a, b) { return b.order - a.order; })
|
|
17868
|
-
.map(function (_a) {
|
|
17869
|
-
var _b;
|
|
17870
|
-
var _c = _a.viewTag, TagId = _c.TagId, Color = _c.Color, MinScale = _c.MinScale, MaxScale = _c.MaxScale, IsAutoScale = _c.IsAutoScale, IsVisible = _c.IsVisible, Unit = _c.Unit;
|
|
17871
|
-
updateViewTag.mutate({
|
|
17872
|
-
viewId: (_b = viewSelected === null || viewSelected === void 0 ? void 0 : viewSelected.ViewId) !== null && _b !== void 0 ? _b : 0,
|
|
17873
|
-
tagId: TagId,
|
|
17874
|
-
color: Color,
|
|
17875
|
-
minScale: MinScale,
|
|
17876
|
-
maxScale: MaxScale,
|
|
17877
|
-
isVisible: IsVisible,
|
|
17878
|
-
isAutoScale: IsAutoScale,
|
|
17879
|
-
unit: Unit,
|
|
17880
|
-
});
|
|
17881
|
-
}))];
|
|
17882
|
-
case 2:
|
|
17883
|
-
results = _b.sent();
|
|
17884
|
-
results.forEach(function (result, index) {
|
|
17885
|
-
if (result.status === "rejected") {
|
|
17886
|
-
setError("Tag ".concat(index, " failed with reason: ").concat(result.reason));
|
|
17887
|
-
}
|
|
17888
|
-
else {
|
|
17889
|
-
setSelectedRowTagId(null);
|
|
17890
|
-
setSnackbarMessage("View saved successfully");
|
|
17891
|
-
}
|
|
17892
|
-
});
|
|
17893
|
-
return [2 /*return*/];
|
|
17894
|
-
}
|
|
17895
|
-
});
|
|
17896
|
-
}); },
|
|
17897
|
-
onError: function (error) {
|
|
17898
|
-
setError(error.message);
|
|
17899
|
-
},
|
|
17900
|
-
});
|
|
17901
|
-
var saveTags = useMutation({
|
|
17902
|
-
mutationFn: saveTagDefaults,
|
|
17903
|
-
onError: function (error) {
|
|
17904
|
-
setError(error.message);
|
|
17905
|
-
},
|
|
17906
|
-
});
|
|
17907
|
-
var updateViewTag = useMutation({
|
|
17908
|
-
mutationFn: upsertViewTag,
|
|
17909
|
-
onError: function (error) {
|
|
17910
|
-
setError(error.message);
|
|
17911
|
-
},
|
|
17912
|
-
});
|
|
17913
|
-
var dataTable = useTagsDataTable({
|
|
17914
|
-
viewTagsMap: viewTags,
|
|
17915
|
-
chartData: chartData,
|
|
17916
|
-
cursorData: cursorData,
|
|
17917
|
-
});
|
|
17918
|
-
var handleChange = function (tagId, value, property) {
|
|
17919
|
-
var _a, _b;
|
|
17920
|
-
setViewTags(__assign(__assign({}, viewTags), (_a = {}, _a[tagId] = __assign(__assign({}, viewTags[tagId]), { viewTag: __assign(__assign({}, viewTags[tagId].viewTag), (_b = {}, _b[property] = value, _b.IsAutoScale = false, _b)) }), _a)));
|
|
17921
|
-
};
|
|
17922
|
-
var handleChangeScale = function (value, scale, tagId) {
|
|
17923
|
-
handleChange(tagId, value, scale);
|
|
17924
|
-
};
|
|
17925
|
-
var handleChangeAlias = function (tagId, newName) {
|
|
17926
|
-
var _a;
|
|
17927
|
-
setViewTags(__assign(__assign({}, viewTags), (_a = {}, _a[tagId] = __assign(__assign({}, viewTags[tagId]), { viewTag: __assign(__assign({}, viewTags[tagId].viewTag), { Alias: newName }) }), _a)));
|
|
17928
|
-
};
|
|
17929
|
-
var handleVisibilityChange = function (tagId, value) {
|
|
17930
|
-
var _a;
|
|
17931
|
-
setViewTags(__assign(__assign({}, viewTags), (_a = {}, _a[tagId] = __assign(__assign({}, viewTags[tagId]), { viewTag: __assign(__assign({}, viewTags[tagId].viewTag), { IsVisible: value }) }), _a)));
|
|
17932
|
-
};
|
|
17933
|
-
var handleUnitChange = function (tagId, newUnit) {
|
|
17934
|
-
var _a;
|
|
17935
|
-
setViewTags(__assign(__assign({}, viewTags), (_a = {}, _a[tagId] = __assign(__assign({}, viewTags[tagId]), { viewTag: __assign(__assign({}, viewTags[tagId].viewTag), { Unit: newUnit }) }), _a)));
|
|
17936
|
-
};
|
|
17937
|
-
var handleAutoScaleChange = function (tagId, checked) {
|
|
17938
|
-
var _a;
|
|
17939
|
-
setViewTags(__assign(__assign({}, viewTags), (_a = {}, _a[tagId] = __assign(__assign({}, viewTags[tagId]), { viewTag: __assign(__assign({}, viewTags[tagId].viewTag), { IsAutoScale: !checked }) }), _a)));
|
|
17940
|
-
};
|
|
17941
|
-
var handleColorChange = function (tagId, value) {
|
|
17942
|
-
var _a;
|
|
17943
|
-
setViewTags(__assign(__assign({}, viewTags), (_a = {}, _a[tagId] = __assign(__assign({}, viewTags[tagId]), { viewTag: __assign(__assign({}, viewTags[tagId].viewTag), { Color: value }) }), _a)));
|
|
17944
|
-
};
|
|
17945
|
-
var handleDeleteTag = function (tagId) {
|
|
17946
|
-
var _a = viewTags, _b = tagId; _a[_b]; var newTags = __rest(_a, [typeof _b === "symbol" ? _b : _b + ""]);
|
|
17947
|
-
setViewTagsAndRefetch(newTags);
|
|
17948
|
-
};
|
|
17949
|
-
var handleAddTag = function (newTag) {
|
|
17950
|
-
var _a;
|
|
17951
|
-
setViewTagsAndRefetch(__assign(__assign({}, viewTags), (_a = {}, _a[newTag.TagId] = {
|
|
17952
|
-
viewTag: __assign(__assign({}, newTag), { IsVisible: true, TagType: newTag.TagTypeCode, Color: newTag.Color || getRandomColor(), IsAutoScale: newTag.MinScale || newTag.MaxScale ? false : true }),
|
|
17953
|
-
order: Object.keys(viewTags).length,
|
|
17954
|
-
}, _a)));
|
|
17955
|
-
};
|
|
17956
|
-
var handleAbleScales = function (tagId, checked) {
|
|
17957
|
-
if (checked) {
|
|
17958
|
-
handleAutoScaleChange(tagId, checked);
|
|
17959
|
-
}
|
|
17960
|
-
};
|
|
17961
|
-
var handleClose = function () { return setTagsTreeModalOpen(false); };
|
|
17962
|
-
var getMenuOptions = function (data) {
|
|
17963
|
-
var options = [];
|
|
17964
|
-
if (data) {
|
|
17965
|
-
options.push({
|
|
17966
|
-
key: "delete",
|
|
17967
|
-
name: "Remove Tag",
|
|
17968
|
-
onClick: function () {
|
|
17969
|
-
if (!isNil(data)) {
|
|
17970
|
-
handleDeleteTag(data.TagId);
|
|
17971
|
-
setSelectedRowTagId(null);
|
|
17972
|
-
setViewTagForDelete(null);
|
|
17973
|
-
}
|
|
17974
|
-
},
|
|
17975
|
-
});
|
|
17976
|
-
}
|
|
17977
|
-
options = options.concat([
|
|
17978
|
-
{
|
|
17979
|
-
key: "add",
|
|
17980
|
-
name: "Tags Tree",
|
|
17981
|
-
onClick: function () {
|
|
17982
|
-
setTagsTreeModalOpen(true);
|
|
17983
|
-
},
|
|
17984
|
-
},
|
|
17985
|
-
{
|
|
17986
|
-
key: "saveDefault",
|
|
17987
|
-
name: "Save Default To Tag",
|
|
17988
|
-
onClick: function () {
|
|
17989
|
-
handleSaveDefaultToTag(data.TagId);
|
|
17990
|
-
},
|
|
17991
|
-
},
|
|
17992
|
-
{
|
|
17993
|
-
key: "saveView",
|
|
17994
|
-
name: "Save View",
|
|
17995
|
-
onClick: function () {
|
|
17996
|
-
handleSaveView();
|
|
17997
|
-
},
|
|
17998
|
-
},
|
|
17999
|
-
{
|
|
18000
|
-
key: "saveViewAs",
|
|
18001
|
-
name: "Save View as",
|
|
18002
|
-
onClick: function () {
|
|
18003
|
-
setSaveAsViewModalOpen(true);
|
|
18004
|
-
},
|
|
18005
|
-
},
|
|
18006
|
-
{
|
|
18007
|
-
key: "loadView",
|
|
18008
|
-
name: "Load View",
|
|
18009
|
-
onClick: function () {
|
|
18010
|
-
setLoadViewOpen(true);
|
|
18011
|
-
},
|
|
18012
|
-
},
|
|
18013
|
-
]);
|
|
18014
|
-
return options;
|
|
18015
|
-
};
|
|
18016
|
-
var handleTagSelect = function (selectedTag) {
|
|
18017
|
-
var alreadySelected = viewTags[selectedTag.Tagkey];
|
|
18018
|
-
if (!alreadySelected) {
|
|
18019
|
-
handleAddTag(selectedTag);
|
|
18020
|
-
}
|
|
18021
|
-
else {
|
|
18022
|
-
setError("".concat(selectedTag.TagName, " is already selected"));
|
|
18023
|
-
}
|
|
18024
|
-
};
|
|
18025
|
-
var handleSaveView = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
18026
|
-
return __generator(this, function (_a) {
|
|
18027
|
-
switch (_a.label) {
|
|
18028
|
-
case 0:
|
|
18029
|
-
if (!!viewSelected) return [3 /*break*/, 1];
|
|
18030
|
-
setSaveAsViewModalOpen(true);
|
|
18031
|
-
return [2 /*return*/];
|
|
18032
|
-
case 1:
|
|
18033
|
-
setIsLoading(true);
|
|
18034
|
-
if (!(viewSelected === null || viewSelected === void 0 ? void 0 : viewSelected.ViewId)) return [3 /*break*/, 3];
|
|
18035
|
-
return [4 /*yield*/, updateView.mutate({
|
|
18036
|
-
viewId: viewSelected === null || viewSelected === void 0 ? void 0 : viewSelected.ViewId,
|
|
18037
|
-
viewName: viewSelected.ViewName,
|
|
18038
|
-
isPublic: viewSelected.IsPublic,
|
|
18039
|
-
})];
|
|
18040
|
-
case 2:
|
|
18041
|
-
_a.sent();
|
|
18042
|
-
_a.label = 3;
|
|
18043
|
-
case 3:
|
|
18044
|
-
setIsLoading(false);
|
|
18045
|
-
_a.label = 4;
|
|
18046
|
-
case 4: return [2 /*return*/];
|
|
18047
|
-
}
|
|
18048
|
-
});
|
|
18049
|
-
}); };
|
|
18050
|
-
var handleCloseSnackbar = function (event, reason) {
|
|
18051
|
-
if (reason === "clickaway") {
|
|
18052
|
-
return;
|
|
18053
|
-
}
|
|
18054
|
-
setSnackbarMessage("");
|
|
18055
|
-
};
|
|
18056
|
-
useEffect(function () {
|
|
18057
|
-
var handleGlobalClick = function (e) {
|
|
18058
|
-
if (selectedRowTagId !== null) {
|
|
18059
|
-
setSelectedRowTagId(null);
|
|
18060
|
-
}
|
|
18061
|
-
};
|
|
18062
|
-
var handleKeyDown = function (e) {
|
|
18063
|
-
if (e.key === "Escape" && selectedRowTagId !== null) {
|
|
18064
|
-
setSelectedRowTagId(null);
|
|
18065
|
-
}
|
|
18066
|
-
};
|
|
18067
|
-
// Attach event listeners
|
|
18068
|
-
document.addEventListener("click", handleGlobalClick);
|
|
18069
|
-
document.addEventListener("keydown", handleKeyDown);
|
|
18070
|
-
// Cleanup function
|
|
18071
|
-
return function () {
|
|
18072
|
-
document.removeEventListener("click", handleGlobalClick);
|
|
18073
|
-
document.removeEventListener("keydown", handleKeyDown);
|
|
18074
|
-
};
|
|
18075
|
-
}, [selectedRowTagId]);
|
|
18076
|
-
var handleSaveDefaultToTag = function (selectedRowTagId) { return __awaiter(void 0, void 0, void 0, function () {
|
|
18077
|
-
var _a, TagId, Alias, Color, MinScale, MaxScale, Unit, IsVisible, IsAutoScale;
|
|
18078
|
-
return __generator(this, function (_b) {
|
|
18079
|
-
switch (_b.label) {
|
|
18080
|
-
case 0:
|
|
18081
|
-
if (!(viewSelected && selectedRowTagId !== null)) return [3 /*break*/, 3];
|
|
18082
|
-
_a = viewTags[selectedRowTagId].viewTag, TagId = _a.TagId, Alias = _a.Alias, Color = _a.Color, MinScale = _a.MinScale, MaxScale = _a.MaxScale, Unit = _a.Unit, IsVisible = _a.IsVisible, IsAutoScale = _a.IsAutoScale;
|
|
18083
|
-
return [4 /*yield*/, saveTags.mutate({
|
|
18084
|
-
tagId: TagId,
|
|
18085
|
-
alias: Alias,
|
|
18086
|
-
color: Color,
|
|
18087
|
-
minScale: MinScale,
|
|
18088
|
-
maxScale: MaxScale,
|
|
18089
|
-
unit: Unit,
|
|
18090
|
-
})];
|
|
18091
|
-
case 1:
|
|
18092
|
-
_b.sent();
|
|
18093
|
-
return [4 /*yield*/, updateViewTag.mutate({
|
|
18094
|
-
viewId: viewSelected === null || viewSelected === void 0 ? void 0 : viewSelected.ViewId,
|
|
18095
|
-
tagId: TagId,
|
|
18096
|
-
color: Color,
|
|
18097
|
-
minScale: MinScale,
|
|
18098
|
-
maxScale: MaxScale,
|
|
18099
|
-
isVisible: IsVisible,
|
|
18100
|
-
isAutoScale: IsAutoScale,
|
|
18101
|
-
unit: Unit,
|
|
18102
|
-
})];
|
|
18103
|
-
case 2:
|
|
18104
|
-
_b.sent();
|
|
18105
|
-
setSelectedRowTagId(null);
|
|
18106
|
-
_b.label = 3;
|
|
18107
|
-
case 3: return [2 /*return*/];
|
|
18108
|
-
}
|
|
18109
|
-
});
|
|
18110
|
-
}); };
|
|
18111
|
-
useEffect(function () {
|
|
18112
|
-
registerConfig({
|
|
18113
|
-
id: "chartContext",
|
|
18114
|
-
getOptions: getMenuOptions,
|
|
18115
|
-
});
|
|
18116
|
-
}, [viewTags, selectedRowTagId]);
|
|
18117
|
-
return (React__default.createElement(React__default.Fragment, null,
|
|
18118
|
-
React__default.createElement(Grid2, { container: true, spacing: 1, alignContent: "flex-start", style: {
|
|
18119
|
-
height: "100%",
|
|
18120
|
-
maxHeight: "100%",
|
|
18121
|
-
overflowY: "auto",
|
|
18122
|
-
} },
|
|
18123
|
-
React__default.createElement(Grid2, { size: { xs: 12 }, style: {
|
|
18124
|
-
position: "sticky",
|
|
18125
|
-
background: "white",
|
|
18126
|
-
top: 0,
|
|
18127
|
-
left: 0,
|
|
18128
|
-
zIndex: 1000,
|
|
18129
|
-
} },
|
|
18130
|
-
React__default.createElement(TableContainer, { component: Paper, style: {
|
|
18131
|
-
overflowX: "auto",
|
|
18132
|
-
width: "100%",
|
|
18133
|
-
boxShadow: "none",
|
|
18134
|
-
border: "none",
|
|
18135
|
-
} },
|
|
18136
|
-
React__default.createElement(Table, { size: "small", style: { width: "100%", tableLayout: "fixed" } },
|
|
18137
|
-
React__default.createElement(TableHead, null,
|
|
18138
|
-
React__default.createElement(TableRow, null,
|
|
18139
|
-
React__default.createElement(TableCell, { align: "center", sx: {
|
|
18140
|
-
border: "0.0625rem solid black",
|
|
18141
|
-
borderBottom: "none",
|
|
18142
|
-
backgroundColor: "#f5f7f7",
|
|
18143
|
-
color: "#333",
|
|
18144
|
-
fontWeight: "normal",
|
|
18145
|
-
textAlign: "center",
|
|
18146
|
-
width: "26.125rem",
|
|
18147
|
-
padding: "0",
|
|
18148
|
-
} }, viewSelected ? (React__default.createElement(Button, { variant: "text", style: {
|
|
18149
|
-
color: "#0075ff",
|
|
18150
|
-
width: "26.125rem",
|
|
18151
|
-
padding: "0",
|
|
18152
|
-
}, onClick: function () { return setLoadViewOpen(true); }, startIcon: viewSelected.IsPublic ? (React__default.createElement(React__default.Fragment, null)) : (React__default.createElement(LockIcon, { fontSize: "small" })) }, (viewSelected === null || viewSelected === void 0 ? void 0 : viewSelected.ViewName) || "")) : (React__default.createElement(Button, { variant: "text", style: {
|
|
18153
|
-
color: "#0075ff",
|
|
18154
|
-
width: "26.125rem",
|
|
18155
|
-
padding: "0",
|
|
18156
|
-
}, onClick: function () { return setSaveAsViewModalOpen(true); } },
|
|
18157
|
-
React__default.createElement("i", null,
|
|
18158
|
-
React__default.createElement(SaveIcon, null),
|
|
18159
|
-
"(Save view as)")))),
|
|
18160
|
-
React__default.createElement(TableCell, { align: "center", colSpan: 4, sx: {
|
|
18161
|
-
border: "0.0625rem solid black",
|
|
18162
|
-
borderBottom: "none",
|
|
18163
|
-
backgroundColor: "#f5f7f7",
|
|
18164
|
-
color: "#333",
|
|
18165
|
-
fontWeight: "normal",
|
|
18166
|
-
textAlign: "center",
|
|
18167
|
-
width: "37.5rem",
|
|
18168
|
-
padding: "0",
|
|
18169
|
-
} }, "Scale"),
|
|
18170
|
-
React__default.createElement(TableCell, { align: "center", sx: {
|
|
18171
|
-
border: "0.0625rem solid black",
|
|
18172
|
-
borderBottom: "none",
|
|
18173
|
-
backgroundColor: "#f5f7f7",
|
|
18174
|
-
color: "#333",
|
|
18175
|
-
fontWeight: "normal",
|
|
18176
|
-
textAlign: "center",
|
|
18177
|
-
padding: "6px 0",
|
|
18178
|
-
} }, cursorData
|
|
18179
|
-
? (function () {
|
|
18180
|
-
var dateX1 = new Date(cursorData.x1);
|
|
18181
|
-
var dateX2 = new Date(cursorData.x2);
|
|
18182
|
-
var formattedDate = dateX1.toLocaleString("en-US", __assign({ hour12: false, month: "short", day: "numeric" }, (dateX1.getFullYear() !==
|
|
18183
|
-
dateX2.getFullYear() && { year: "numeric" })));
|
|
18184
|
-
var dateText = "".concat(formattedDate);
|
|
18185
|
-
return (React__default.createElement(React__default.Fragment, null,
|
|
18186
|
-
React__default.createElement("span", { style: {
|
|
18187
|
-
height: "10px",
|
|
18188
|
-
width: "10px",
|
|
18189
|
-
backgroundColor: "red",
|
|
18190
|
-
borderRadius: "50%",
|
|
18191
|
-
display: "inline-block",
|
|
18192
|
-
marginRight: "5px",
|
|
18193
|
-
} }),
|
|
18194
|
-
dateText));
|
|
18195
|
-
})()
|
|
18196
|
-
: null),
|
|
18197
|
-
React__default.createElement(TableCell, { align: "center", sx: {
|
|
18198
|
-
border: "0.0625rem solid black",
|
|
18199
|
-
borderBottom: "none",
|
|
18200
|
-
backgroundColor: "#f5f7f7",
|
|
18201
|
-
color: "#333",
|
|
18202
|
-
fontWeight: "normal",
|
|
18203
|
-
textAlign: "center",
|
|
18204
|
-
padding: "6px 0",
|
|
18205
|
-
} }, cursorData
|
|
18206
|
-
? (function () {
|
|
18207
|
-
var dateX1 = new Date(cursorData.x1);
|
|
18208
|
-
var dateX2 = new Date(cursorData.x2);
|
|
18209
|
-
var formattedDate = dateX2.toLocaleString("en-US", __assign({ hour12: false, month: "short", day: "numeric" }, (dateX1.getFullYear() !==
|
|
18210
|
-
dateX2.getFullYear() && { year: "numeric" })));
|
|
18211
|
-
var dateText = "".concat(formattedDate);
|
|
18212
|
-
return (React__default.createElement(React__default.Fragment, null,
|
|
18213
|
-
React__default.createElement("span", { style: {
|
|
18214
|
-
height: "10px",
|
|
18215
|
-
width: "10px",
|
|
18216
|
-
backgroundColor: "blue",
|
|
18217
|
-
borderRadius: "50%",
|
|
18218
|
-
display: "inline-block",
|
|
18219
|
-
marginRight: "5px",
|
|
18220
|
-
} }),
|
|
18221
|
-
dateText));
|
|
18222
|
-
})()
|
|
18223
|
-
: null),
|
|
18224
|
-
React__default.createElement(TableCell, { align: "center", colSpan: 3, sx: {
|
|
18225
|
-
border: "0.0625rem solid black",
|
|
18226
|
-
borderBottom: "none",
|
|
18227
|
-
backgroundColor: "#f5f7f7",
|
|
18228
|
-
color: "#333",
|
|
18229
|
-
fontWeight: "normal",
|
|
18230
|
-
textAlign: "center",
|
|
18231
|
-
padding: "6px 0",
|
|
18232
|
-
} }, cursorData
|
|
18233
|
-
? formatTimeDiffWithMs(cursorData.x1, cursorData.x2)
|
|
18234
|
-
: null)))),
|
|
18235
|
-
React__default.createElement(Table, { size: "small", style: { width: "100%", tableLayout: "fixed" } },
|
|
18236
|
-
React__default.createElement(TableHead, null,
|
|
18237
|
-
React__default.createElement(TableRow, { sx: {
|
|
18238
|
-
"& th": {
|
|
18239
|
-
border: "0.0625rem solid black",
|
|
18240
|
-
backgroundColor: "#f5f7f7",
|
|
18241
|
-
color: "#333",
|
|
18242
|
-
fontWeight: "normal",
|
|
18243
|
-
textAlign: "center",
|
|
18244
|
-
padding: "6px 0",
|
|
18245
|
-
},
|
|
18246
|
-
} },
|
|
18247
|
-
React__default.createElement(TableCell, { align: "center", sx: {
|
|
18248
|
-
width: "3.75rem", // 60px / 16px
|
|
18249
|
-
fontSize: "0.75rem",
|
|
18250
|
-
} }, "Visible"),
|
|
18251
|
-
React__default.createElement(TableCell, { align: "center", sx: {
|
|
18252
|
-
width: "18rem",
|
|
18253
|
-
overflow: "hidden",
|
|
18254
|
-
textOverflow: "ellipsis",
|
|
18255
|
-
whiteSpace: "nowrap",
|
|
18256
|
-
} }, "Alias / Tagname"),
|
|
18257
|
-
React__default.createElement(TableCell, { align: "center", sx: {
|
|
18258
|
-
width: "4.375rem", // 70px / 16px
|
|
18259
|
-
} }, "Color"),
|
|
18260
|
-
React__default.createElement(TableCell, { align: "center", sx: {
|
|
18261
|
-
width: "11.25rem", // 180px / 16px
|
|
18262
|
-
overflow: "hidden",
|
|
18263
|
-
textOverflow: "ellipsis",
|
|
18264
|
-
whiteSpace: "nowrap",
|
|
18265
|
-
} }, "Min Scale"),
|
|
18266
|
-
React__default.createElement(TableCell, { align: "center", sx: {
|
|
18267
|
-
width: "11.25rem", // 180px / 16px
|
|
18268
|
-
overflow: "hidden",
|
|
18269
|
-
textOverflow: "ellipsis",
|
|
18270
|
-
whiteSpace: "nowrap",
|
|
18271
|
-
} }, "Max Scale"),
|
|
18272
|
-
React__default.createElement(TableCell, { align: "center", sx: {
|
|
18273
|
-
width: "7.5rem", // 120px / 16px
|
|
18274
|
-
} }, "AutoScale"),
|
|
18275
|
-
React__default.createElement(TableCell, { align: "center", sx: {
|
|
18276
|
-
width: "7.5rem", // 120px / 16px
|
|
18277
|
-
} }, "Unit"),
|
|
18278
|
-
React__default.createElement(TableCell, { align: "center" },
|
|
18279
|
-
" ",
|
|
18280
|
-
cursorData
|
|
18281
|
-
? (function () {
|
|
18282
|
-
var date = new Date(cursorData.x1);
|
|
18283
|
-
var formattedHour = date.toLocaleString("en-US", {
|
|
18284
|
-
hour12: false,
|
|
18285
|
-
hour: "2-digit",
|
|
18286
|
-
minute: "2-digit",
|
|
18287
|
-
second: "2-digit",
|
|
18288
|
-
});
|
|
18289
|
-
var milliseconds = (date.getMilliseconds() / 1000)
|
|
18290
|
-
.toFixed(2)
|
|
18291
|
-
.substring(2);
|
|
18292
|
-
var dateText = "".concat(formattedHour, ".").concat(milliseconds, " hs");
|
|
18293
|
-
return React__default.createElement(React__default.Fragment, null, dateText);
|
|
18294
|
-
})()
|
|
18295
|
-
: null,
|
|
18296
|
-
" "),
|
|
18297
|
-
React__default.createElement(TableCell, { align: "center" },
|
|
18298
|
-
" ",
|
|
18299
|
-
cursorData
|
|
18300
|
-
? (function () {
|
|
18301
|
-
var date = new Date(cursorData.x2);
|
|
18302
|
-
var formattedHour = date.toLocaleString("en-US", {
|
|
18303
|
-
hour12: false,
|
|
18304
|
-
hour: "2-digit",
|
|
18305
|
-
minute: "2-digit",
|
|
18306
|
-
second: "2-digit",
|
|
18307
|
-
});
|
|
18308
|
-
var milliseconds = (date.getMilliseconds() / 1000)
|
|
18309
|
-
.toFixed(2)
|
|
18310
|
-
.substring(2);
|
|
18311
|
-
var dateText = "".concat(formattedHour, ".").concat(milliseconds, " hs");
|
|
18312
|
-
return React__default.createElement(React__default.Fragment, null, dateText);
|
|
18313
|
-
})()
|
|
18314
|
-
: null,
|
|
18315
|
-
" "),
|
|
18316
|
-
React__default.createElement(TableCell, { align: "center" }, "Y2-Y1"),
|
|
18317
|
-
React__default.createElement(TableCell, { align: "center" }, "Min"),
|
|
18318
|
-
React__default.createElement(TableCell, { align: "center" }, "Max")))))),
|
|
18319
|
-
React__default.createElement(Grid2, { size: { xs: 12 } },
|
|
18320
|
-
React__default.createElement(TableContainer, { component: Paper, style: {
|
|
18321
|
-
width: "100%",
|
|
18322
|
-
height: "100%",
|
|
18323
|
-
maxHeight: "100%",
|
|
18324
|
-
boxShadow: "none",
|
|
18325
|
-
border: "none",
|
|
18326
|
-
} },
|
|
18327
|
-
React__default.createElement(Table, { size: "small", style: { width: "100%", tableLayout: "fixed" } },
|
|
18328
|
-
React__default.createElement(TableBody, null, Object.values(viewTags).length ? (Object.values(viewTags).map(function (_a) {
|
|
18329
|
-
var _b, _c, _d, _e, _f, _g, _h;
|
|
18330
|
-
var tag = _a.viewTag;
|
|
18331
|
-
return (React__default.createElement(TableRow, { key: tag.TagName, onContextMenu: function (e) {
|
|
18332
|
-
showContextMenu(e, tag, "chartContext");
|
|
18333
|
-
}, sx: {
|
|
18334
|
-
"&:hover": {
|
|
18335
|
-
backgroundColor: "#f2f2f2",
|
|
18336
|
-
},
|
|
18337
|
-
} },
|
|
18338
|
-
React__default.createElement(TableCell, { align: "center", sx: {
|
|
18339
|
-
width: "3.75rem", // 60px / 16px
|
|
18340
|
-
fontSize: "0.75rem",
|
|
18341
|
-
'& input[type="checkbox"]': {
|
|
18342
|
-
zoom: 1.5,
|
|
18343
|
-
},
|
|
18344
|
-
textAlign: "center",
|
|
18345
|
-
} },
|
|
18346
|
-
React__default.createElement("input", { type: "checkbox", checked: tag.IsVisible, onChange: function (e) {
|
|
18347
|
-
return handleVisibilityChange(tag.TagId, e.target.checked);
|
|
18348
|
-
} })),
|
|
18349
|
-
React__default.createElement(TableCell, { sx: {
|
|
18350
|
-
width: "18rem",
|
|
18351
|
-
overflow: "hidden",
|
|
18352
|
-
textOverflow: "ellipsis",
|
|
18353
|
-
whiteSpace: "nowrap",
|
|
18354
|
-
} },
|
|
18355
|
-
React__default.createElement(Tooltip, { title: tag.TagName, placement: "top", arrow: true, enterDelay: 500 },
|
|
18356
|
-
React__default.createElement("div", { style: { display: "flex", alignItems: "center" } },
|
|
18357
|
-
tag.TagType && (React__default.createElement("div", { style: {
|
|
18358
|
-
backgroundColor: tag.TagType === "A" ? "#AD48C4" : "#C46F48",
|
|
18359
|
-
width: "30px",
|
|
18360
|
-
height: "30px",
|
|
18361
|
-
color: "white",
|
|
18362
|
-
display: "flex",
|
|
18363
|
-
justifyContent: "center",
|
|
18364
|
-
alignItems: "center",
|
|
18365
|
-
cursor: "pointer",
|
|
18366
|
-
border: "1px black solid",
|
|
18367
|
-
} }, tag.TagType)),
|
|
18368
|
-
React__default.createElement("input", { type: "text", style: { width: "100%" }, value: tag.Alias || tag.TagName, onFocus: function (e) { return e.target.select(); }, onChange: function (e) {
|
|
18369
|
-
var newAlias = e.target.value;
|
|
18370
|
-
handleChangeAlias(tag.TagId, newAlias);
|
|
18371
|
-
} })))),
|
|
18372
|
-
React__default.createElement(TableCell, { align: "center", sx: {
|
|
18373
|
-
width: "4.375rem", // 70px / 16px
|
|
18374
|
-
} },
|
|
18375
|
-
React__default.createElement(ColorPicker, { onChange: handleColorChange, color: tag.Color, elementId: tag.TagId })),
|
|
18376
|
-
React__default.createElement(TableCell, { sx: {
|
|
18377
|
-
width: "11.25rem", // 180px / 16px
|
|
18378
|
-
overflow: "hidden",
|
|
18379
|
-
textOverflow: "ellipsis",
|
|
18380
|
-
whiteSpace: "nowrap",
|
|
18381
|
-
} },
|
|
18382
|
-
React__default.createElement(Box, { component: "input", type: "number", sx: __assign({ "&::-webkit-inner-spin-button, &::-webkit-outer-spin-button": {
|
|
18383
|
-
"-webkit-appearance": "none",
|
|
18384
|
-
margin: 0,
|
|
18385
|
-
}, "&": {
|
|
18386
|
-
"-moz-appearance": "textfield", // to Firefox
|
|
18387
|
-
}, width: "100%" }, (tag.IsAutoScale
|
|
18388
|
-
? {
|
|
18389
|
-
backgroundColor: "rgba(239, 239, 239, 0.3)",
|
|
18390
|
-
color: "rgba(84, 84, 84, 1)",
|
|
18391
|
-
border: "1px solid rgba(118, 118, 118, 0.3)",
|
|
18392
|
-
}
|
|
18393
|
-
: {})), value: tag.MinScale, onClick: function () {
|
|
18394
|
-
return handleAbleScales(tag.TagId, tag.IsAutoScale);
|
|
18395
|
-
}, onFocus: function (e) { return e.target.select(); }, onChange: function (e) {
|
|
18396
|
-
return handleChangeScale(e.target.value, "MinScale", tag.TagId);
|
|
18397
|
-
} })),
|
|
18398
|
-
React__default.createElement(TableCell, { sx: {
|
|
18399
|
-
width: "11.25rem", // 180px / 16px
|
|
18400
|
-
overflow: "hidden",
|
|
18401
|
-
textOverflow: "ellipsis",
|
|
18402
|
-
whiteSpace: "nowrap",
|
|
18403
|
-
} },
|
|
18404
|
-
React__default.createElement(Box, { component: "input", type: "number", sx: __assign({ "&::-webkit-inner-spin-button, &::-webkit-outer-spin-button": {
|
|
18405
|
-
"-webkit-appearance": "none",
|
|
18406
|
-
margin: 0,
|
|
18407
|
-
}, "&": {
|
|
18408
|
-
"-moz-appearance": "textfield", // to Firefox
|
|
18409
|
-
}, width: "100%", WebkitAppearance: "none" }, (tag.IsAutoScale
|
|
18410
|
-
? {
|
|
18411
|
-
backgroundColor: "rgba(239, 239, 239, 0.3)",
|
|
18412
|
-
color: "rgba(84, 84, 84, 1)",
|
|
18413
|
-
border: "1px solid rgba(118, 118, 118, 0.3)",
|
|
18414
|
-
}
|
|
18415
|
-
: {})), value: tag.MaxScale, onClick: function () {
|
|
18416
|
-
return handleAbleScales(tag.TagId, tag.IsAutoScale);
|
|
18417
|
-
}, onFocus: function (e) { return e.target.select(); }, onChange: function (e) {
|
|
18418
|
-
handleChangeScale(e.target.value, "MaxScale", tag.TagId);
|
|
18419
|
-
} })),
|
|
18420
|
-
React__default.createElement(TableCell, { align: "center", sx: {
|
|
18421
|
-
width: "7.5rem", // 120px / 16px
|
|
18422
|
-
'& input[type="checkbox"]': {
|
|
18423
|
-
zoom: 1.5,
|
|
18424
|
-
},
|
|
18425
|
-
textAlign: "center",
|
|
18426
|
-
} },
|
|
18427
|
-
React__default.createElement("input", { type: "checkbox", checked: !!tag.IsAutoScale, onChange: function (e) {
|
|
18428
|
-
return handleAutoScaleChange(tag.TagId, tag.IsAutoScale);
|
|
18429
|
-
} })),
|
|
18430
|
-
React__default.createElement(TableCell, { sx: {
|
|
18431
|
-
width: "7.5rem", // 120px / 16px
|
|
18432
|
-
'& input[type="checkbox"]': {
|
|
18433
|
-
zoom: 1.5,
|
|
18434
|
-
},
|
|
18435
|
-
textAlign: "center",
|
|
18436
|
-
} },
|
|
18437
|
-
React__default.createElement("input", { type: "text", style: {
|
|
18438
|
-
width: "100%",
|
|
18439
|
-
}, onClick: function () {
|
|
18440
|
-
return handleAbleScales(tag.TagId, tag.IsAutoScale);
|
|
18441
|
-
}, onChange: function (e) {
|
|
18442
|
-
var value = e.target.value;
|
|
18443
|
-
handleUnitChange(tag.TagId, value);
|
|
18444
|
-
}, value: tag.Unit === "-" ? "" : tag.Unit, onFocus: function (e) { return e.target.select(); } })),
|
|
18445
|
-
React__default.createElement(TableCell, { align: "center" }, round((_b = dataTable[tag.TagName]) === null || _b === void 0 ? void 0 : _b.y1, 3) || 0),
|
|
18446
|
-
React__default.createElement(TableCell, { align: "center", sx: {
|
|
18447
|
-
padding: "0",
|
|
18448
|
-
'& input[type="text"] ': {
|
|
18449
|
-
width: "100%", // 180px / 16px,
|
|
18450
|
-
height: "17px",
|
|
18451
|
-
display: "block",
|
|
18452
|
-
margin: "0",
|
|
18453
|
-
padding: "0",
|
|
18454
|
-
},
|
|
18455
|
-
} }, round((_c = dataTable[tag.TagName]) === null || _c === void 0 ? void 0 : _c.y2, 3) || 0),
|
|
18456
|
-
React__default.createElement(TableCell, { align: "center" }, round((_d = dataTable[tag.TagName]) === null || _d === void 0 ? void 0 : _d.y2y1, 3) || 0),
|
|
18457
|
-
React__default.createElement(TableCell, { align: "center" },
|
|
18458
|
-
!isNaN$1(((_e = dataTable[tag.TagName]) === null || _e === void 0 ? void 0 : _e.pmin.y) * 0)
|
|
18459
|
-
? round((_f = dataTable[tag.TagName]) === null || _f === void 0 ? void 0 : _f.pmin.y, 3)
|
|
18460
|
-
: 0,
|
|
18461
|
-
" "),
|
|
18462
|
-
React__default.createElement(TableCell, { align: "center" },
|
|
18463
|
-
!isNaN$1(((_g = dataTable[tag.TagName]) === null || _g === void 0 ? void 0 : _g.pmax.y) * 0)
|
|
18464
|
-
? round((_h = dataTable[tag.TagName]) === null || _h === void 0 ? void 0 : _h.pmax.y)
|
|
18465
|
-
: 0,
|
|
18466
|
-
" ")));
|
|
18467
|
-
})) : (React__default.createElement(TableRow, null,
|
|
18468
|
-
React__default.createElement(TableCell, { colSpan: 12 },
|
|
18469
|
-
React__default.createElement(Box, { sx: {
|
|
18470
|
-
display: "flex",
|
|
18471
|
-
flexDirection: "column",
|
|
18472
|
-
alignItems: "center",
|
|
18473
|
-
justifyContent: "center",
|
|
18474
|
-
padding: 4,
|
|
18475
|
-
gap: 2,
|
|
18476
|
-
} },
|
|
18477
|
-
React__default.createElement("div", null, "No tag view detected."),
|
|
18478
|
-
React__default.createElement(Button, { onClick: function () { return setTagsTreeModalOpen(true); }, variant: "contained", color: "primary" }, "Add tag"),
|
|
18479
|
-
React__default.createElement(Button, { onClick: function () { return setLoadViewOpen(true); }, variant: "outlined", color: "primary" }, "Load view"))))))))),
|
|
18480
|
-
React__default.createElement(TagsTreeModal, { open: tagsTreeModalOpen, handleClose: handleClose, onTagSelect: handleTagSelect }),
|
|
18481
|
-
React__default.createElement(SaveAsViewModal, { open: saveAsViewModalOpen, handleClose: function (shouldUpdate) { return __awaiter(void 0, void 0, void 0, function () {
|
|
18482
|
-
return __generator(this, function (_a) {
|
|
18483
|
-
switch (_a.label) {
|
|
18484
|
-
case 0:
|
|
18485
|
-
setSaveAsViewModalOpen(false);
|
|
18486
|
-
if (!shouldUpdate) return [3 /*break*/, 2];
|
|
18487
|
-
return [4 /*yield*/, queryClient.invalidateQueries({ queryKey: ["views"] })];
|
|
18488
|
-
case 1:
|
|
18489
|
-
_a.sent();
|
|
18490
|
-
_a.label = 2;
|
|
18491
|
-
case 2: return [2 /*return*/];
|
|
18492
|
-
}
|
|
18493
|
-
});
|
|
18494
|
-
}); } }),
|
|
18495
|
-
React__default.createElement(LoadViewModal, { open: loadViewOpen, handleClose: function (shouldUpdate) {
|
|
18496
|
-
setLoadViewOpen(false);
|
|
18497
|
-
} })),
|
|
18498
|
-
React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } }),
|
|
18499
|
-
React__default.createElement(Snackbar, { open: !!snackbarMessage, autoHideDuration: 800, onClose: handleCloseSnackbar, anchorOrigin: { vertical: "bottom", horizontal: "center" } },
|
|
18500
|
-
React__default.createElement(Alert$2, { onClose: handleCloseSnackbar, severity: "success" }, snackbarMessage))));
|
|
18501
|
-
};
|
|
18502
|
-
|
|
18503
|
-
var formatDateTimeToString = function (date) {
|
|
18504
|
-
var hour = date.getHours().toString().padStart(2, "0");
|
|
18505
|
-
var minute = date.getMinutes().toString().padStart(2, "0");
|
|
18506
|
-
var second = date.getSeconds().toString().padStart(2, "0");
|
|
18507
|
-
if (hour === "24") {
|
|
18508
|
-
hour = "00";
|
|
18509
|
-
}
|
|
18510
|
-
var formattedDate = date.toLocaleDateString("en-US", {
|
|
18511
|
-
month: "short",
|
|
18512
|
-
day: "numeric",
|
|
18513
|
-
});
|
|
18514
|
-
var formattedTime = "".concat(hour, ":").concat(minute, ":").concat(second);
|
|
18515
|
-
return { formattedDate: formattedDate, formattedTime: formattedTime };
|
|
18516
|
-
};
|
|
18517
|
-
|
|
18518
|
-
var useChartOptions = function () {
|
|
18519
|
-
var _a = useTrendingContext(); _a.state; var actions = _a.actions;
|
|
18520
|
-
var debounceTimerRef = useRef(null);
|
|
18521
|
-
var handleZoom = useCallback(function (_a) {
|
|
18522
|
-
var chart = _a.chart;
|
|
18523
|
-
if (debounceTimerRef.current) {
|
|
18524
|
-
clearTimeout(debounceTimerRef.current);
|
|
18525
|
-
}
|
|
18526
|
-
debounceTimerRef.current = setTimeout(function () {
|
|
18527
|
-
// Handle zoom event and execute fetch
|
|
18528
|
-
var newStart = new Date(chart.scales.x.min);
|
|
18529
|
-
var newEnd = new Date(chart.scales.x.max);
|
|
18530
|
-
actions.setTotalScope({
|
|
18531
|
-
start: newStart,
|
|
18532
|
-
end: newEnd,
|
|
18533
|
-
});
|
|
18534
|
-
}, 1000);
|
|
18535
|
-
}, [actions]);
|
|
18536
|
-
var handlePan = useCallback(function (_a) {
|
|
18537
|
-
var chart = _a.chart;
|
|
18538
|
-
if (debounceTimerRef.current) {
|
|
18539
|
-
clearTimeout(debounceTimerRef.current);
|
|
18540
|
-
}
|
|
18541
|
-
debounceTimerRef.current = setTimeout(function () {
|
|
18542
|
-
// Handle pan event and execute fetch
|
|
18543
|
-
var newStart = new Date(chart.scales.x.min);
|
|
18544
|
-
var newEnd = new Date(chart.scales.x.max);
|
|
18545
|
-
actions.setTotalScope({
|
|
18546
|
-
start: newStart,
|
|
18547
|
-
end: newEnd,
|
|
18548
|
-
graphPan: true,
|
|
18549
|
-
});
|
|
18550
|
-
}, 1000);
|
|
18551
|
-
}, [actions]);
|
|
18552
|
-
var initialOptions = useMemo(function () { return ({
|
|
18553
|
-
animation: {
|
|
18554
|
-
duration: 0, // No animation
|
|
18555
|
-
},
|
|
18556
|
-
responsive: true,
|
|
18557
|
-
maintainAspectRatio: false,
|
|
18558
|
-
scales: {
|
|
18559
|
-
x: {
|
|
18560
|
-
type: "time",
|
|
18561
|
-
ticks: {
|
|
18562
|
-
autoSkip: true,
|
|
18563
|
-
maxTicksLimit: 20,
|
|
18564
|
-
callback: function (value, index, ticks) {
|
|
18565
|
-
var currentDate = new Date(value);
|
|
18566
|
-
var time = formatDateTimeToString(currentDate).formattedTime;
|
|
18567
|
-
var date = formatDateTimeToString(currentDate).formattedDate;
|
|
18568
|
-
// Si es el primer tick, siempre muestra la fecha y hora
|
|
18569
|
-
if (index === 0) {
|
|
18570
|
-
return [time, date];
|
|
18571
|
-
}
|
|
18572
|
-
// De lo contrario, solo muestra la hora
|
|
18573
|
-
return time;
|
|
18574
|
-
},
|
|
18575
|
-
},
|
|
18576
|
-
grid: {
|
|
18577
|
-
display: true,
|
|
18578
|
-
},
|
|
18579
|
-
},
|
|
18580
|
-
y: {
|
|
18581
|
-
grid: {
|
|
18582
|
-
display: true,
|
|
18583
|
-
},
|
|
18584
|
-
afterUpdate: function (axis) {
|
|
18585
|
-
var chart = axis.chart;
|
|
18586
|
-
var keys = Object.keys(chart.scales).filter(function (sc) { return sc !== "x"; });
|
|
18587
|
-
if (keys.length > 1) {
|
|
18588
|
-
for (var scaleKey in chart.scales) {
|
|
18589
|
-
var scale = chart.scales[scaleKey];
|
|
18590
|
-
if (scale.max === 1 && scale.min === 0) {
|
|
18591
|
-
chart.scales[scaleKey].display = false;
|
|
18592
|
-
chart.scales[scaleKey].options.display = false;
|
|
18593
|
-
}
|
|
18594
|
-
else {
|
|
18595
|
-
chart.scales[scaleKey].display = true;
|
|
18596
|
-
chart.scales[scaleKey].options.display = true;
|
|
18597
|
-
}
|
|
18598
|
-
}
|
|
18599
|
-
}
|
|
18600
|
-
},
|
|
18601
|
-
},
|
|
18602
|
-
},
|
|
18603
|
-
plugins: {
|
|
18604
|
-
tooltip: { enabled: false },
|
|
18605
|
-
legend: { display: false },
|
|
18606
|
-
zoom: {
|
|
18607
|
-
zoom: {
|
|
18608
|
-
wheel: { enabled: true, mode: "x" },
|
|
18609
|
-
pinch: { enabled: true, mode: "x" },
|
|
18610
|
-
onZoom: handleZoom,
|
|
18611
|
-
mode: "x",
|
|
18612
|
-
},
|
|
18613
|
-
pan: {
|
|
18614
|
-
enabled: true,
|
|
18615
|
-
mode: "x",
|
|
18616
|
-
onPan: handlePan,
|
|
18617
|
-
},
|
|
18618
|
-
},
|
|
18619
|
-
},
|
|
18620
|
-
}); }, [handleZoom, handlePan]);
|
|
18621
|
-
return useState(initialOptions);
|
|
18622
|
-
};
|
|
18623
|
-
|
|
18624
|
-
var CustomOptionsComponent = function (_a) {
|
|
18625
|
-
var customOptions = _a.customOptions, setCustomOptions = _a.setCustomOptions, autoRefresh = _a.autoRefresh, setAutoRefresh = _a.setAutoRefresh;
|
|
18626
|
-
var handleGridChange = function (value) {
|
|
18627
|
-
setCustomOptions(function (prevOptions) { return (__assign(__assign({}, prevOptions), { showGrid: value })); });
|
|
18628
|
-
};
|
|
18629
|
-
var handleSteppedChange = function (value) {
|
|
18630
|
-
setCustomOptions(function (prevOptions) { return (__assign(__assign({}, prevOptions), { stepped: value })); });
|
|
18631
|
-
};
|
|
18632
|
-
return (React__default.createElement(React__default.Fragment, null,
|
|
18633
|
-
React__default.createElement(Grid2, { sx: {
|
|
18634
|
-
paddingLeft: "2rem",
|
|
18635
|
-
userSelect: "none",
|
|
18636
|
-
"& > label": {
|
|
18637
|
-
display: "flex",
|
|
18638
|
-
alignItems: "center",
|
|
18639
|
-
gap: "5px",
|
|
18640
|
-
},
|
|
18641
|
-
'& input[type="checkbox"]': {
|
|
18642
|
-
zoom: 1.5,
|
|
18643
|
-
},
|
|
18644
|
-
} },
|
|
18645
|
-
React__default.createElement(FormControlLabel, { checked: customOptions.showGrid, control: React__default.createElement(Checkbox, { color: "primary" }), label: "Show Grid", onChange: function (e, checked) {
|
|
18646
|
-
handleGridChange(checked);
|
|
18647
|
-
} })),
|
|
18648
|
-
React__default.createElement(Grid2, { sx: {
|
|
18649
|
-
paddingLeft: "2rem",
|
|
18650
|
-
userSelect: "none",
|
|
18651
|
-
"& > label": {
|
|
18652
|
-
display: "flex",
|
|
18653
|
-
alignItems: "center",
|
|
18654
|
-
gap: "5px",
|
|
18655
|
-
},
|
|
18656
|
-
'& input[type="checkbox"]': {
|
|
18657
|
-
zoom: 1.5,
|
|
18658
|
-
},
|
|
18659
|
-
} },
|
|
18660
|
-
React__default.createElement(FormControlLabel, { checked: customOptions.stepped, control: React__default.createElement(Checkbox, { color: "primary" }), label: "Stepped", onChange: function (e, checked) {
|
|
18661
|
-
handleSteppedChange(checked);
|
|
18662
|
-
} })),
|
|
18663
|
-
React__default.createElement(Grid2, { sx: {
|
|
18664
|
-
paddingLeft: "2rem",
|
|
18665
|
-
userSelect: "none",
|
|
18666
|
-
"& > label": {
|
|
18667
|
-
display: "flex",
|
|
18668
|
-
alignItems: "center",
|
|
18669
|
-
gap: "5px",
|
|
18670
|
-
},
|
|
18671
|
-
'& input[type="checkbox"]': {
|
|
18672
|
-
zoom: 1.5,
|
|
18673
|
-
},
|
|
18674
|
-
} },
|
|
18675
|
-
React__default.createElement(FormControlLabel, { checked: autoRefresh, control: React__default.createElement(Switch, { color: "primary" }), label: "Auto Refresh", onChange: function (e, checked) {
|
|
18676
|
-
setAutoRefresh(checked);
|
|
18677
|
-
} }))));
|
|
18678
|
-
};
|
|
18679
|
-
|
|
18680
|
-
var Header = React__default.memo(function (_a) {
|
|
18681
|
-
var setChartOptions = _a.setChartOptions, autoRefresh = _a.autoRefresh, setAutoRefresh = _a.setAutoRefresh;
|
|
18682
|
-
var _b = useTrendingContext(), state = _b.state, actions = _b.actions;
|
|
18683
|
-
var _c = useState({
|
|
18684
|
-
showGrid: true,
|
|
18685
|
-
stepped: false,
|
|
18686
|
-
}), customOptions = _c[0], setCustomOptions = _c[1];
|
|
18687
|
-
var handleDateNavigator = function (operator, current) {
|
|
18688
|
-
if (current === void 0) { current = false; }
|
|
18689
|
-
var newDates = dateNavigator(state.timeScopeStart, state.timeScopeEnd, state.scope, operator, current);
|
|
18690
|
-
if (newDates) {
|
|
18691
|
-
actions.setTotalScope({
|
|
18692
|
-
start: newDates.newStartDate,
|
|
18693
|
-
end: newDates.newEndDate,
|
|
18694
|
-
scope: state.scope,
|
|
18695
|
-
});
|
|
18696
|
-
}
|
|
18697
|
-
};
|
|
18698
|
-
var handleDateChange = function (newValue, key) {
|
|
18699
|
-
var _a;
|
|
18700
|
-
//@ts-ignore
|
|
18701
|
-
actions.setTotalScope((_a = {}, _a[key] = moment$f(newValue).toDate(), _a));
|
|
18702
|
-
};
|
|
18703
|
-
var handleChangeScope = function (value) {
|
|
18704
|
-
actions.setTotalScope({
|
|
18705
|
-
scope: value,
|
|
18706
|
-
});
|
|
18707
|
-
};
|
|
18708
|
-
useEffect(function () {
|
|
18709
|
-
var changeOptions = function () {
|
|
18710
|
-
setChartOptions(function (prevOptions) {
|
|
18711
|
-
var newScales = __assign({}, prevOptions.scales);
|
|
18712
|
-
Object.keys(newScales).forEach(function (key) {
|
|
18713
|
-
if (key) {
|
|
18714
|
-
newScales[key] = __assign(__assign({}, newScales[key]), { grid: __assign(__assign({}, newScales[key].grid), { display: customOptions.showGrid }) });
|
|
18715
|
-
}
|
|
18716
|
-
});
|
|
18717
|
-
return __assign(__assign({}, prevOptions), { elements: {
|
|
18718
|
-
line: {
|
|
18719
|
-
stepped: customOptions.stepped,
|
|
18720
|
-
lineTension: 0.1,
|
|
18721
|
-
},
|
|
18722
|
-
}, scales: newScales });
|
|
18723
|
-
});
|
|
18724
|
-
};
|
|
18725
|
-
changeOptions();
|
|
18726
|
-
}, [customOptions]);
|
|
18727
|
-
useEffect(function () {
|
|
18728
|
-
setChartOptions(function (prevOptions) { return (__assign(__assign({}, prevOptions), { scales: __assign(__assign({}, prevOptions.scales), { x: __assign(__assign({}, prevOptions.scales.x), { min: state.timeScopeStart.getTime(), max: state.timeScopeEnd.getTime() }) }) })); });
|
|
18729
|
-
}, [state.timeScopeStart, state.timeScopeEnd]);
|
|
18730
|
-
return (React__default.createElement(LocalizationProvider$1, { dateAdapter: AdapterMoment },
|
|
18731
|
-
React__default.createElement(Grid2, { size: { xs: 12 }, container: true, justifyContent: "space-between", alignItems: "center", style: { height: "8%" } },
|
|
18732
|
-
React__default.createElement(Grid2, { size: { md: 4 }, container: true, spacing: 1, justifyContent: "flex-start", alignItems: "center", wrap: "wrap" },
|
|
18733
|
-
React__default.createElement(Grid2, null,
|
|
18734
|
-
React__default.createElement(IconButton$1, { color: "primary", onClick: function () { return handleDateNavigator("subtract"); }, size: "small", sx: {
|
|
18735
|
-
padding: 0.5,
|
|
18736
|
-
color: "black",
|
|
18737
|
-
} },
|
|
18738
|
-
React__default.createElement(ChevronLeft, { fontSize: "medium" }))),
|
|
18739
|
-
React__default.createElement(Grid2, { size: { md: 4 } },
|
|
18740
|
-
React__default.createElement(DateTimePicker, { label: "Start", format: "MM/DD/YYYY HH:mm:ss", value: moment$f(state.timeScopeStart), onChange: function (newValue) {
|
|
18741
|
-
if (newValue) {
|
|
18742
|
-
handleDateChange(newValue.toDate(), "start");
|
|
18743
|
-
}
|
|
18744
|
-
}, minutesStep: 1, slotProps: {
|
|
18745
|
-
textField: {
|
|
18746
|
-
size: "small",
|
|
18747
|
-
variant: "outlined",
|
|
18748
|
-
fullWidth: true,
|
|
18749
|
-
},
|
|
18750
|
-
} })),
|
|
18751
|
-
React__default.createElement(Grid2, { size: { md: 2 }, marginTop: 0.5 },
|
|
18752
|
-
React__default.createElement(FormControl, { variant: "outlined", size: "small", fullWidth: true },
|
|
18753
|
-
React__default.createElement(Select, { value: state.scope, onChange: function (e) {
|
|
18754
|
-
return handleChangeScope(e.target.value);
|
|
18755
|
-
}, displayEmpty: true },
|
|
18756
|
-
React__default.createElement(MenuItem, { value: "10 min" }, "10 min"),
|
|
18757
|
-
React__default.createElement(MenuItem, { value: "1 hour" }, "1 hour"),
|
|
18758
|
-
React__default.createElement(MenuItem, { value: "4 hours" }, "4 hours"),
|
|
18759
|
-
React__default.createElement(MenuItem, { value: "12 hours" }, "12 hours"),
|
|
18760
|
-
React__default.createElement(MenuItem, { value: "1 day" }, "1 day"),
|
|
18761
|
-
React__default.createElement(MenuItem, { value: "10 days" }, "10 days"),
|
|
18762
|
-
React__default.createElement(MenuItem, { value: "custom" }, "Custom")))),
|
|
18763
|
-
React__default.createElement(Grid2, { size: { md: 4 } },
|
|
18764
|
-
React__default.createElement(DateTimePicker, { label: "End", format: "MM/DD/YYYY HH:mm:ss", value: autoRefresh ? null : moment$f(state.timeScopeEnd), onChange: function (newValue) {
|
|
18765
|
-
if (newValue) {
|
|
18766
|
-
handleDateChange(newValue.toDate(), "end");
|
|
18767
|
-
}
|
|
18768
|
-
}, minutesStep: 1, slotProps: {
|
|
18769
|
-
textField: {
|
|
18770
|
-
size: "small",
|
|
18771
|
-
variant: "outlined",
|
|
18772
|
-
fullWidth: true,
|
|
18773
|
-
},
|
|
18774
|
-
}, disabled: autoRefresh })),
|
|
18775
|
-
React__default.createElement(Grid2, null,
|
|
18776
|
-
React__default.createElement(IconButton$1, { onClick: function () { return handleDateNavigator("add"); }, sx: {
|
|
18777
|
-
"& .MuiSvgIcon-root": {
|
|
18778
|
-
cursor: "pointer !important",
|
|
18779
|
-
height: "24px",
|
|
18780
|
-
width: "24px",
|
|
18781
|
-
"& svg": {
|
|
18782
|
-
// Adjust the icon size as well
|
|
18783
|
-
fontSize: "1.5rem",
|
|
18784
|
-
},
|
|
18785
|
-
},
|
|
18786
|
-
color: "black",
|
|
18787
|
-
} },
|
|
18788
|
-
React__default.createElement(ChevronRight, { fontSize: "large" }))),
|
|
18789
|
-
React__default.createElement(Grid2, null,
|
|
18790
|
-
React__default.createElement(IconButton$1, { onClick: function () { return handleDateNavigator("subtract", true); }, sx: {
|
|
18791
|
-
"& .MuiSvgIcon-root": {
|
|
18792
|
-
cursor: "pointer !important",
|
|
18793
|
-
height: "24px",
|
|
18794
|
-
width: "24px",
|
|
18795
|
-
"& svg": {
|
|
18796
|
-
// Adjust the icon size as well
|
|
18797
|
-
fontSize: "1.5rem",
|
|
18798
|
-
},
|
|
18799
|
-
},
|
|
18800
|
-
color: "black",
|
|
18801
|
-
} },
|
|
18802
|
-
React__default.createElement(SkipNextIcon, { fontSize: "large" })))),
|
|
18803
|
-
React__default.createElement(Grid2, { size: { md: 6 }, container: true, justifyContent: "space-between" },
|
|
18804
|
-
React__default.createElement(Grid2, { container: true, wrap: "nowrap", spacing: 1 },
|
|
18805
|
-
React__default.createElement(Grid2, { container: true },
|
|
18806
|
-
React__default.createElement(CustomOptionsComponent, { customOptions: customOptions, setCustomOptions: setCustomOptions, autoRefresh: autoRefresh, setAutoRefresh: function (autoRefresh) {
|
|
18807
|
-
if (autoRefresh) {
|
|
18808
|
-
handleChangeScope("custom");
|
|
18809
|
-
handleDateChange(new Date(), "end");
|
|
18810
|
-
}
|
|
18811
|
-
setAutoRefresh(autoRefresh);
|
|
18812
|
-
} })))))));
|
|
18813
|
-
});
|
|
18814
|
-
Header.displayName = "Header";
|
|
18815
|
-
|
|
18816
|
-
var DraggableLineControl = React__default.memo(function (_a) {
|
|
18817
|
-
var initialLeft = _a.initialLeft, otherLineCoord = _a.otherLineCoord, onUpdate = _a.onUpdate, color = _a.color, chartArea = _a.chartArea;
|
|
18818
|
-
var _b = useState(false), isDragging = _b[0], setIsDragging = _b[1];
|
|
18819
|
-
var _c = useState(initialLeft), left = _c[0], setLeft = _c[1];
|
|
18820
|
-
var ref = useRef(null);
|
|
18821
|
-
var handleMouseDown = function (e) {
|
|
18822
|
-
setIsDragging(true);
|
|
18823
|
-
e.stopPropagation();
|
|
18824
|
-
e.preventDefault();
|
|
18825
|
-
};
|
|
18826
|
-
var handleMouseMove = function (e) {
|
|
18827
|
-
if (!isDragging || !ref.current)
|
|
18828
|
-
return;
|
|
18829
|
-
chartArea.width - chartArea.right;
|
|
18830
|
-
chartArea.left;
|
|
18831
|
-
var newLeft = Math.min(Math.max(e.clientX - ref.current.offsetParent.getBoundingClientRect().left, chartArea.left), chartArea.right);
|
|
18832
|
-
// Line limit
|
|
18833
|
-
if (color === "red" && newLeft > otherLineCoord - 20) {
|
|
18834
|
-
newLeft = otherLineCoord - 20;
|
|
18835
|
-
}
|
|
18836
|
-
else if (color === "blue" && newLeft < otherLineCoord + 20) {
|
|
18837
|
-
newLeft = otherLineCoord + 20;
|
|
18838
|
-
}
|
|
18839
|
-
setLeft(newLeft);
|
|
18840
|
-
onUpdate(newLeft); // Actualiza la posición de la línea en el gráfico
|
|
18841
|
-
};
|
|
18842
|
-
var handleMouseUp = function () {
|
|
18843
|
-
setIsDragging(false);
|
|
18844
|
-
};
|
|
18845
|
-
useEffect(function () {
|
|
18846
|
-
var mouseMoveHandler = function (e) { return handleMouseMove(e); };
|
|
18847
|
-
var mouseUpHandler = function () { return handleMouseUp(); };
|
|
18848
|
-
if (isDragging) {
|
|
18849
|
-
window.addEventListener("mousemove", mouseMoveHandler);
|
|
18850
|
-
window.addEventListener("mouseup", mouseUpHandler);
|
|
18851
|
-
}
|
|
18852
|
-
return function () {
|
|
18853
|
-
window.removeEventListener("mousemove", mouseMoveHandler);
|
|
18854
|
-
window.removeEventListener("mouseup", mouseUpHandler);
|
|
18855
|
-
};
|
|
18856
|
-
}, [isDragging]);
|
|
18857
|
-
return (React__default.createElement("div", { ref: ref, style: {
|
|
18858
|
-
height: 20,
|
|
18859
|
-
width: 20,
|
|
18860
|
-
background: color,
|
|
18861
|
-
position: "absolute",
|
|
18862
|
-
top: -10,
|
|
18863
|
-
left: left - 10,
|
|
18864
|
-
}, onMouseDown: handleMouseDown },
|
|
18865
|
-
React__default.createElement("div", { style: {
|
|
18866
|
-
height: chartArea.height,
|
|
18867
|
-
width: 2,
|
|
18868
|
-
background: color,
|
|
18869
|
-
position: "relative",
|
|
18870
|
-
top: 20,
|
|
18871
|
-
left: 0,
|
|
18872
|
-
right: 0,
|
|
18873
|
-
margin: "auto",
|
|
18874
|
-
} })));
|
|
18875
|
-
});
|
|
18876
|
-
DraggableLineControl.displayName = "DraggableLineControl";
|
|
18877
|
-
|
|
18878
|
-
var useGetVerticalLinePlugin = function (setChartArea, setCoords) {
|
|
18879
|
-
var chartPlugin = useMemo(function () { return ({
|
|
18880
|
-
id: "verticalLinePlugin",
|
|
18881
|
-
afterUpdate: function (chart) {
|
|
18882
|
-
if (chart.chartArea) {
|
|
18883
|
-
// console.log("after update");
|
|
18884
|
-
if (chart.mouseX === null) {
|
|
18885
|
-
chart.mouseX = chart.chartArea.left + chart.chartArea.width / 10;
|
|
18886
|
-
// chart.mouseX = chart.chartArea.left + 30.9
|
|
18887
|
-
}
|
|
18888
|
-
if (chart.secondLineX === null) {
|
|
18889
|
-
chart.secondLineX =
|
|
18890
|
-
chart.chartArea.left + chart.chartArea.width * 0.9;
|
|
18891
|
-
// chart.secondLineX = chart.chartArea.right
|
|
18892
|
-
}
|
|
18893
|
-
}
|
|
18894
|
-
},
|
|
18895
|
-
beforeInit: function (chart) {
|
|
18896
|
-
chart.mouseX = null;
|
|
18897
|
-
chart.secondLineX = null;
|
|
18898
|
-
},
|
|
18899
|
-
afterDatasetsDraw: function (chart) {
|
|
18900
|
-
var x1 = chart.mouseX;
|
|
18901
|
-
var x2 = chart.secondLineX;
|
|
18902
|
-
setChartArea(chart.chartArea);
|
|
18903
|
-
setCoords({ x1: x1, x2: x2 });
|
|
18904
|
-
},
|
|
18905
|
-
}); }, [setChartArea, setCoords]);
|
|
18906
|
-
return chartPlugin;
|
|
18907
|
-
};
|
|
18908
|
-
|
|
18909
|
-
var getValuesAtCursor = function (chart, timeAtCursor) {
|
|
18910
|
-
var valuesAtCursor = [];
|
|
18911
|
-
chart.data.datasets.forEach(function (dataset) {
|
|
18912
|
-
var previousDataPoint = null;
|
|
18913
|
-
for (var i = 0; i < dataset.data.length; i++) {
|
|
18914
|
-
if (dataset.data[i].x.getTime() <= timeAtCursor) {
|
|
18915
|
-
previousDataPoint = dataset.data[i];
|
|
18916
|
-
}
|
|
18917
|
-
else {
|
|
18918
|
-
break;
|
|
18919
|
-
}
|
|
18920
|
-
}
|
|
18921
|
-
if (previousDataPoint) {
|
|
18922
|
-
valuesAtCursor.push(previousDataPoint.y);
|
|
18923
|
-
}
|
|
18924
|
-
});
|
|
18925
|
-
return valuesAtCursor;
|
|
18926
|
-
};
|
|
18927
|
-
var updateCursorData = function (chart, setCursorData) {
|
|
18928
|
-
var xScale = chart.scales.x;
|
|
18929
|
-
// Coordenadas para la primera y segunda línea
|
|
18930
|
-
var timeAtCursor1 = xScale.getValueForPixel(chart.mouseX);
|
|
18931
|
-
var timeAtCursor2 = xScale.getValueForPixel(chart.secondLineX);
|
|
18932
|
-
// Los valores en el punto del cursor pueden ser diferentes
|
|
18933
|
-
var valuesAtCursor1 = getValuesAtCursor(chart, timeAtCursor1);
|
|
18934
|
-
var valuesAtCursor2 = getValuesAtCursor(chart, timeAtCursor2);
|
|
18935
|
-
setCursorData({
|
|
18936
|
-
x1: timeAtCursor1,
|
|
18937
|
-
x2: timeAtCursor2,
|
|
18938
|
-
values: __spreadArray(__spreadArray([], valuesAtCursor1, true), valuesAtCursor2, true),
|
|
18939
|
-
});
|
|
18940
|
-
};
|
|
18941
|
-
|
|
18942
|
-
var useXAxisDatePlugin = function () {
|
|
18943
|
-
var chartPlugin = useMemo(function () { return ({
|
|
18944
|
-
id: "xAxisDatePlugin",
|
|
18945
|
-
afterBuildTicks: function (chart) {
|
|
18946
|
-
var oldTicks = chart.scales.x.ticks;
|
|
18947
|
-
var newTicks = [];
|
|
18948
|
-
newTicks.push(oldTicks[0]);
|
|
18949
|
-
for (var i = 1; i < oldTicks.length; i++) {
|
|
18950
|
-
var current = new Date(oldTicks[i].value);
|
|
18951
|
-
var previous = new Date(oldTicks[i - 1].value);
|
|
18952
|
-
var time = formatDateTimeToString(current).formattedTime;
|
|
18953
|
-
var date = formatDateTimeToString(current).formattedDate;
|
|
18954
|
-
var newLabel = void 0;
|
|
18955
|
-
if (current.getDate() !== previous.getDate()) {
|
|
18956
|
-
newLabel = [time, date];
|
|
18957
|
-
}
|
|
18958
|
-
else {
|
|
18959
|
-
newLabel = time;
|
|
18960
|
-
}
|
|
18961
|
-
newTicks.push({
|
|
18962
|
-
value: oldTicks[i].value,
|
|
18963
|
-
major: oldTicks[i].major,
|
|
18964
|
-
label: newLabel,
|
|
18965
|
-
});
|
|
18966
|
-
}
|
|
18967
|
-
chart.scales.x.ticks = newTicks;
|
|
18968
|
-
},
|
|
18969
|
-
}); }, []);
|
|
18970
|
-
return chartPlugin;
|
|
18971
|
-
};
|
|
18972
|
-
|
|
18973
|
-
var useYAxisPlugin = function () {
|
|
18974
|
-
var chartPlugin = useMemo(function () { return ({
|
|
18975
|
-
id: "yAxisPlugin",
|
|
18976
|
-
}); }, []);
|
|
18977
|
-
return chartPlugin;
|
|
18978
|
-
};
|
|
18979
|
-
|
|
18980
|
-
var areRangesSimilar = function (tag1, tag2) {
|
|
18981
|
-
if (isNil(tag1.MaxScale) ||
|
|
18982
|
-
isNil(tag1.MinScale) ||
|
|
18983
|
-
isNil(tag2.MaxScale) ||
|
|
18984
|
-
isNil(tag2.MinScale))
|
|
18985
|
-
return;
|
|
18986
|
-
var range1 = tag1.MaxScale - tag1.MinScale; // Rango de la primera etiqueta
|
|
18987
|
-
var range2 = tag2.MaxScale - tag2.MinScale; // Rango de la segunda etiqueta
|
|
18988
|
-
// Determina los límites para la comparación
|
|
18989
|
-
var lowerBound = Math.max(tag1.MinScale, tag2.MinScale);
|
|
18990
|
-
var upperBound = Math.min(tag1.MaxScale, tag2.MaxScale);
|
|
18991
|
-
// Calcula el solapamiento entre los dos rangos
|
|
18992
|
-
var overlap = Math.max(0, upperBound - lowerBound);
|
|
18993
|
-
// Determina si el solapamiento es significativo comparado con los rangos individuales
|
|
18994
|
-
var isSignificantOverlap = overlap / range1 > 0.5 && overlap / range2 > 0.5;
|
|
18995
|
-
return isSignificantOverlap;
|
|
18996
|
-
};
|
|
18997
|
-
|
|
18998
|
-
var TrendingChart = React__default.memo(function (_a) {
|
|
18999
|
-
var series = _a.series, chartOptions = _a.chartOptions, setChartOptions = _a.setChartOptions, chartData = _a.chartData, setCursorData = _a.setCursorData, setChartData = _a.setChartData;
|
|
19000
|
-
var _b = useTrendingContext(), state = _b.state, viewTags = _b.state.viewTags; _b.actions;
|
|
19001
|
-
var _c = useState(null), lineTabCoords = _c[0], setLineTabCoords = _c[1];
|
|
19002
|
-
var _d = useState(null), chartArea = _d[0], setChartArea = _d[1];
|
|
19003
|
-
var chartRef = useRef(null);
|
|
19004
|
-
var forDebounce = useRef({
|
|
19005
|
-
viewTags: viewTags,
|
|
19006
|
-
series: series,
|
|
19007
|
-
setChartOptions: setChartOptions,
|
|
19008
|
-
setChartData: setChartData,
|
|
19009
|
-
});
|
|
19010
|
-
var debouncedUpdateChart = useRef(debounce(function () {
|
|
19011
|
-
if (chartRef.current) {
|
|
19012
|
-
updateCursorData(chartRef.current, setCursorData);
|
|
19013
|
-
chartRef.current.update();
|
|
19014
|
-
}
|
|
19015
|
-
}, 250));
|
|
19016
|
-
forDebounce.current = {
|
|
19017
|
-
viewTags: viewTags,
|
|
19018
|
-
series: series,
|
|
19019
|
-
setChartOptions: setChartOptions,
|
|
19020
|
-
setChartData: setChartData,
|
|
19021
|
-
};
|
|
19022
|
-
var debouncedUpdateChartBasedOnData = useRef(debounce(function () {
|
|
19023
|
-
var _a = forDebounce.current, viewTags = _a.viewTags, series = _a.series, setChartOptions = _a.setChartOptions, setChartData = _a.setChartData;
|
|
19024
|
-
var axes = [];
|
|
19025
|
-
if (!series.length) {
|
|
19026
|
-
return;
|
|
19027
|
-
}
|
|
19028
|
-
Object.values(viewTags).forEach(function (_a, index) {
|
|
19029
|
-
var tag = _a.viewTag;
|
|
19030
|
-
var existingAxis = axes.findIndex(function (existingTag) {
|
|
19031
|
-
return areRangesSimilar(existingTag, tag);
|
|
19032
|
-
});
|
|
19033
|
-
if (existingAxis === -1) {
|
|
19034
|
-
axes.push(tag); // Add new axis if no similar one exists
|
|
19035
|
-
seriesVsTags.current[tag.TagId] = tag.TagId;
|
|
19036
|
-
}
|
|
19037
|
-
else {
|
|
19038
|
-
seriesVsTags.current[tag.TagId] = axes[existingAxis].TagId;
|
|
19039
|
-
}
|
|
19040
|
-
});
|
|
19041
|
-
// Configure yAxes based on grouped axes
|
|
19042
|
-
var yAxesConfig = axes.map(function (axis) {
|
|
19043
|
-
var min = Number(axis.MinScale);
|
|
19044
|
-
var max = Number(axis.MaxScale);
|
|
19045
|
-
if (!min && !max) {
|
|
19046
|
-
max = 1;
|
|
19047
|
-
}
|
|
19048
|
-
return {
|
|
19049
|
-
id: "y-axis-".concat(axis.TagId),
|
|
19050
|
-
type: "linear",
|
|
19051
|
-
display: axis.IsVisible,
|
|
19052
|
-
title: {
|
|
19053
|
-
display: true,
|
|
19054
|
-
text: axis.TagName,
|
|
19055
|
-
},
|
|
19056
|
-
min: axis.IsAutoScale ? undefined : min,
|
|
19057
|
-
max: axis.IsAutoScale ? undefined : max,
|
|
19058
|
-
suggestedMin: axis.IsAutoScale ? undefined : min,
|
|
19059
|
-
suggestedMax: axis.IsAutoScale ? undefined : max,
|
|
19060
|
-
stepSize: 10,
|
|
19061
|
-
grid: {
|
|
19062
|
-
display: true,
|
|
19063
|
-
},
|
|
19064
|
-
afterUpdate: function (a) {
|
|
19065
|
-
var chart = a.chart;
|
|
19066
|
-
var keys = Object.keys(chart.scales).filter(function (sc) { return sc !== "x"; });
|
|
19067
|
-
var counterOfDefaultsScales = 0;
|
|
19068
|
-
if (keys.length > 1) {
|
|
19069
|
-
for (var scaleKey in chart.scales) {
|
|
19070
|
-
var scale = chart.scales[scaleKey];
|
|
19071
|
-
if (scale.max === 1 && scale.min === 0) {
|
|
19072
|
-
chart.scales[scaleKey].display = false;
|
|
19073
|
-
chart.scales[scaleKey].options.display = false;
|
|
19074
|
-
counterOfDefaultsScales++;
|
|
19075
|
-
}
|
|
19076
|
-
else {
|
|
19077
|
-
chart.scales[scaleKey].display = true;
|
|
19078
|
-
chart.scales[scaleKey].options.display = true;
|
|
19079
|
-
}
|
|
19080
|
-
if (counterOfDefaultsScales === keys.length) {
|
|
19081
|
-
chart.scales[keys[0]].display = true;
|
|
19082
|
-
chart.scales[keys[0]].options.display = true;
|
|
19083
|
-
}
|
|
19084
|
-
}
|
|
19085
|
-
}
|
|
19086
|
-
},
|
|
19087
|
-
};
|
|
19088
|
-
});
|
|
19089
|
-
setChartOptions(function (prevOptions) {
|
|
19090
|
-
var newResp = __assign(__assign({}, prevOptions), { scales: __assign({ x: __assign({}, prevOptions.scales.x) }, yAxesConfig.reduce(function (acc, cur) {
|
|
19091
|
-
var _a;
|
|
19092
|
-
return (__assign(__assign({}, acc), (_a = {}, _a[cur.id] = cur, _a)));
|
|
19093
|
-
}, {})) });
|
|
19094
|
-
return newResp;
|
|
19095
|
-
});
|
|
19096
|
-
var updatedSeries = series.map(function (serie, index) {
|
|
19097
|
-
var _a;
|
|
19098
|
-
var tagsSortedArray = Object.values(viewTags).sort(function (a, b) { return b.order - a.order; });
|
|
19099
|
-
var tag = (_a = tagsSortedArray[index]) === null || _a === void 0 ? void 0 : _a.viewTag;
|
|
19100
|
-
var yAxisTagId = seriesVsTags.current[tag === null || tag === void 0 ? void 0 : tag.TagId];
|
|
19101
|
-
return {
|
|
19102
|
-
yAxisID: "y-axis-".concat(yAxisTagId),
|
|
19103
|
-
data: serie.map(function (sample) { return ({
|
|
19104
|
-
x: new Date(sample.timestamp),
|
|
19105
|
-
y: sample.value,
|
|
19106
|
-
}); }),
|
|
19107
|
-
tagId: tag === null || tag === void 0 ? void 0 : tag.TagId,
|
|
19108
|
-
borderColor: tag === null || tag === void 0 ? void 0 : tag.Color,
|
|
19109
|
-
hidden: !(tag === null || tag === void 0 ? void 0 : tag.IsVisible),
|
|
19110
|
-
pointRadius: serie.length <= 50 ? 3 : 0,
|
|
19111
|
-
};
|
|
19112
|
-
});
|
|
19113
|
-
setChartShouldInitCursors(true);
|
|
19114
|
-
setChartData({
|
|
19115
|
-
labels: [],
|
|
19116
|
-
datasets: updatedSeries,
|
|
19117
|
-
});
|
|
19118
|
-
}, 1000));
|
|
19119
|
-
var _e = useState(false), chartShouldInitCursors = _e[0], setChartShouldInitCursors = _e[1];
|
|
19120
|
-
var memoizedSetChartArea = useCallback(function (area) { return setChartArea(area); }, []);
|
|
19121
|
-
var memoizedSetLineTabCoords = useCallback(function (coords) { return setLineTabCoords(coords); }, []);
|
|
19122
|
-
var verticalLinePlugin = useGetVerticalLinePlugin(memoizedSetChartArea, memoizedSetLineTabCoords);
|
|
19123
|
-
var xAxisDatePlugin = useXAxisDatePlugin();
|
|
19124
|
-
var yAxisPlugin = useYAxisPlugin();
|
|
19125
|
-
var plugins = useMemo(function () { return [verticalLinePlugin, xAxisDatePlugin, yAxisPlugin]; }, [verticalLinePlugin, xAxisDatePlugin, yAxisPlugin]);
|
|
19126
|
-
var seriesVsTags = useRef({});
|
|
19127
|
-
useEffect(function () {
|
|
19128
|
-
// Only run debounced update when series data actually changes
|
|
19129
|
-
// Display property changes (color, visibility, scales) are handled by immediate useEffects
|
|
19130
|
-
debouncedUpdateChartBasedOnData.current();
|
|
19131
|
-
}, [series]); // Removed state.graphShouldUpdate to prevent running on display-only changes
|
|
16481
|
+
value: point.value !== null
|
|
16482
|
+
? (Math.floor(point.value) >> viewTag.BitIndex) & 1
|
|
16483
|
+
: null,
|
|
16484
|
+
}); });
|
|
16485
|
+
}
|
|
16486
|
+
// Regular tag - use series data directly
|
|
16487
|
+
return seriesMap.get(tagId);
|
|
16488
|
+
})
|
|
16489
|
+
.filter(Boolean);
|
|
16490
|
+
}, [series, tagIds, queryTagIds, viewTags]);
|
|
16491
|
+
// Calculate overall min/max values from filtered series data
|
|
16492
|
+
var seriesMinMaxData = useSeriesMinMax(filteredSeries, tagIds);
|
|
16493
|
+
// Load initial view when views are fetched
|
|
19132
16494
|
useEffect(function () {
|
|
19133
|
-
if (
|
|
19134
|
-
|
|
19135
|
-
|
|
19136
|
-
|
|
16495
|
+
if (!viewSuccess || !views || !Array.isArray(views))
|
|
16496
|
+
return;
|
|
16497
|
+
// Always update the views list in context
|
|
16498
|
+
setViews(views);
|
|
16499
|
+
// Only set initial view if none is selected
|
|
16500
|
+
if (!viewSelected) {
|
|
16501
|
+
var lastCreated = views.reduce(function (prev, current) {
|
|
16502
|
+
return prev && prev.ViewId > current.ViewId ? prev : current;
|
|
16503
|
+
}, null);
|
|
16504
|
+
if (lastCreated) {
|
|
16505
|
+
setViewId(lastCreated.ViewId);
|
|
16506
|
+
setViewSelected(lastCreated);
|
|
19137
16507
|
}
|
|
19138
16508
|
}
|
|
19139
|
-
}, [
|
|
19140
|
-
// Update
|
|
16509
|
+
}, [viewSuccess, views, viewSelected, setViews, setViewSelected]);
|
|
16510
|
+
// Update viewId when viewSelected changes (e.g., from LoadViewModal)
|
|
19141
16511
|
useEffect(function () {
|
|
19142
|
-
|
|
19143
|
-
|
|
19144
|
-
|
|
19145
|
-
|
|
19146
|
-
|
|
19147
|
-
|
|
19148
|
-
|
|
19149
|
-
}
|
|
19150
|
-
return dataset;
|
|
19151
|
-
});
|
|
19152
|
-
return __assign(__assign({}, prevData), { datasets: updatedDatasets });
|
|
19153
|
-
});
|
|
19154
|
-
}, [viewTags, setChartData]);
|
|
19155
|
-
// Update Y-axis scales immediately when AutoScale or Min/Max changes
|
|
16512
|
+
if (viewSelected) {
|
|
16513
|
+
setViewId(viewSelected.ViewId);
|
|
16514
|
+
}
|
|
16515
|
+
}, [viewSelected]);
|
|
16516
|
+
// Load view tags when fetched - ONLY when viewId changes, not on every data refetch
|
|
16517
|
+
// This preserves local order changes (from drag-and-drop) until a new view is loaded
|
|
16518
|
+
var loadedViewIdRef = useRef(null);
|
|
19156
16519
|
useEffect(function () {
|
|
19157
|
-
|
|
19158
|
-
|
|
19159
|
-
|
|
19160
|
-
|
|
19161
|
-
|
|
16520
|
+
if (!viewTagsSuccess ||
|
|
16521
|
+
!viewTagsData ||
|
|
16522
|
+
!Array.isArray(viewTagsData) ||
|
|
16523
|
+
viewId === null)
|
|
16524
|
+
return;
|
|
16525
|
+
// Only reset viewTags when viewId actually changes (loading a different view)
|
|
16526
|
+
// Do NOT reset if viewId is the same (data is just refetching)
|
|
16527
|
+
if (viewId === loadedViewIdRef.current)
|
|
16528
|
+
return;
|
|
16529
|
+
loadedViewIdRef.current = viewId;
|
|
16530
|
+
var backendTags = viewTagsData;
|
|
16531
|
+
var localViewTags = getViewFromLocal(viewId);
|
|
16532
|
+
var mergedTags = {};
|
|
16533
|
+
if (localViewTags) {
|
|
16534
|
+
// If local storage exists, use it as the source of truth for metadata (Order, Alias)
|
|
16535
|
+
// and for virtual tags (Bit Extracted)
|
|
16536
|
+
var backendTagIds_1 = new Set(backendTags.map(function (t) { return t.TagId; }));
|
|
16537
|
+
// 1. Process local tags
|
|
16538
|
+
Object.values(localViewTags).forEach(function (entry) {
|
|
16539
|
+
var viewTag = entry.viewTag;
|
|
16540
|
+
// If it's a backend tag, check if it still exists in the backend response
|
|
16541
|
+
// (Permission check or tag deletion check)
|
|
16542
|
+
if (!viewTag.IsBitExtracted) {
|
|
16543
|
+
if (backendTagIds_1.has(viewTag.TagId)) {
|
|
16544
|
+
mergedTags[viewTag.TagId] = entry;
|
|
16545
|
+
}
|
|
16546
|
+
}
|
|
16547
|
+
else {
|
|
16548
|
+
// Virtual tags are always added from local storage
|
|
16549
|
+
mergedTags[viewTag.TagId] = entry;
|
|
16550
|
+
}
|
|
19162
16551
|
});
|
|
19163
|
-
|
|
19164
|
-
|
|
19165
|
-
|
|
19166
|
-
|
|
19167
|
-
|
|
19168
|
-
|
|
19169
|
-
|
|
19170
|
-
|
|
19171
|
-
max = 1;
|
|
19172
|
-
}
|
|
19173
|
-
return {
|
|
19174
|
-
id: "y-axis-".concat(axis.TagId),
|
|
19175
|
-
type: "linear",
|
|
19176
|
-
display: axis.IsVisible,
|
|
19177
|
-
title: {
|
|
19178
|
-
display: true,
|
|
19179
|
-
text: axis.TagName,
|
|
19180
|
-
},
|
|
19181
|
-
min: axis.IsAutoScale ? undefined : min,
|
|
19182
|
-
max: axis.IsAutoScale ? undefined : max,
|
|
19183
|
-
suggestedMin: axis.IsAutoScale ? undefined : min,
|
|
19184
|
-
suggestedMax: axis.IsAutoScale ? undefined : max,
|
|
19185
|
-
stepSize: 10,
|
|
19186
|
-
grid: {
|
|
19187
|
-
display: true,
|
|
19188
|
-
},
|
|
19189
|
-
afterUpdate: function (a) {
|
|
19190
|
-
var chart = a.chart;
|
|
19191
|
-
var keys = Object.keys(chart.scales).filter(function (sc) { return sc !== "x"; });
|
|
19192
|
-
var counterOfDefaultsScales = 0;
|
|
19193
|
-
if (keys.length > 1) {
|
|
19194
|
-
for (var scaleKey in chart.scales) {
|
|
19195
|
-
var scale = chart.scales[scaleKey];
|
|
19196
|
-
if (scale.max === 1 && scale.min === 0) {
|
|
19197
|
-
chart.scales[scaleKey].display = false;
|
|
19198
|
-
chart.scales[scaleKey].options.display = false;
|
|
19199
|
-
counterOfDefaultsScales++;
|
|
19200
|
-
}
|
|
19201
|
-
else {
|
|
19202
|
-
chart.scales[scaleKey].display = true;
|
|
19203
|
-
chart.scales[scaleKey].options.display = true;
|
|
19204
|
-
}
|
|
19205
|
-
if (counterOfDefaultsScales === keys.length) {
|
|
19206
|
-
chart.scales[keys[0]].display = true;
|
|
19207
|
-
chart.scales[keys[0]].options.display = true;
|
|
19208
|
-
}
|
|
19209
|
-
}
|
|
16552
|
+
// 2. Add any new backend tags that might be missing from local storage
|
|
16553
|
+
// (Rare case, but possible if added by another user/session)
|
|
16554
|
+
backendTags.forEach(function (backendTag) {
|
|
16555
|
+
if (!mergedTags[backendTag.TagId]) {
|
|
16556
|
+
// Add with default order at the end
|
|
16557
|
+
var maxOrder = Math.max.apply(Math, __spreadArray(__spreadArray([], Object.values(mergedTags).map(function (t) { return t.order; }), false), [0], false));
|
|
16558
|
+
if (isNil(backendTag.Color)) {
|
|
16559
|
+
backendTag.Color = getRandomColor();
|
|
19210
16560
|
}
|
|
19211
|
-
|
|
19212
|
-
|
|
19213
|
-
|
|
19214
|
-
|
|
19215
|
-
|
|
19216
|
-
|
|
19217
|
-
}, {})) })); });
|
|
19218
|
-
}, [viewTags, setChartOptions]);
|
|
19219
|
-
return (React__default.createElement(Paper, { style: { height: "100%", position: "relative" } },
|
|
19220
|
-
lineTabCoords && chartArea ? (React__default.createElement(DraggableLineControl, { color: "red", chartArea: chartArea, initialLeft: lineTabCoords === null || lineTabCoords === void 0 ? void 0 : lineTabCoords.x1, otherLineCoord: lineTabCoords === null || lineTabCoords === void 0 ? void 0 : lineTabCoords.x2, onUpdate: function (newLeft) {
|
|
19221
|
-
setLineTabCoords(function (prevCoords) {
|
|
19222
|
-
prevCoords.x1 = newLeft;
|
|
19223
|
-
return prevCoords;
|
|
19224
|
-
});
|
|
19225
|
-
// @ts-ignore
|
|
19226
|
-
chartRef.current.mouseX = newLeft;
|
|
19227
|
-
debouncedUpdateChart.current();
|
|
19228
|
-
} })) : null,
|
|
19229
|
-
lineTabCoords && chartArea ? (React__default.createElement(DraggableLineControl, { color: "blue", initialLeft: lineTabCoords === null || lineTabCoords === void 0 ? void 0 : lineTabCoords.x2, otherLineCoord: lineTabCoords === null || lineTabCoords === void 0 ? void 0 : lineTabCoords.x1, chartArea: chartArea, onUpdate: function (newLeft) {
|
|
19230
|
-
setLineTabCoords(function (prevCoords) {
|
|
19231
|
-
prevCoords.x2 = newLeft;
|
|
19232
|
-
return prevCoords;
|
|
19233
|
-
});
|
|
19234
|
-
// @ts-ignore
|
|
19235
|
-
chartRef.current.secondLineX = newLeft;
|
|
19236
|
-
debouncedUpdateChart.current();
|
|
19237
|
-
} })) : null,
|
|
19238
|
-
React__default.createElement(Line, { ref: chartRef, data: chartData, options: chartOptions, plugins: plugins })));
|
|
19239
|
-
});
|
|
19240
|
-
TrendingChart.displayName = "TrendingChart";
|
|
19241
|
-
|
|
19242
|
-
Chart.register(CategoryScale, LinearScale, PointElement, LineElement, Title, Tooltip$1, Legend, TimeScale, zoomPlugin);
|
|
19243
|
-
var Trending = React__default.memo(function (_a) {
|
|
19244
|
-
_a.title; var autoRefresh = _a.autoRefresh, setAutoRefresh = _a.setAutoRefresh;
|
|
19245
|
-
var _b = useTrendingContext(), state = _b.state, _c = _b.state, viewTags = _c.viewTags; _c.shouldRefetchSeries;
|
|
19246
|
-
var _d = useState(""), error = _d[0], setError = _d[1];
|
|
19247
|
-
var _e = useState(null), selectedRowTagId = _e[0], setSelectedRowTagId = _e[1];
|
|
19248
|
-
var _f = useState(null), viewTagForDelete = _f[0], setViewTagForDelete = _f[1];
|
|
19249
|
-
var _g = useChartOptions(), chartOptions = _g[0], setChartOptions = _g[1];
|
|
19250
|
-
var _h = useState({
|
|
19251
|
-
labels: [],
|
|
19252
|
-
datasets: [],
|
|
19253
|
-
}), chartData = _h[0], setChartData = _h[1];
|
|
19254
|
-
var _j = useState(null), cursorData = _j[0], setCursorData = _j[1];
|
|
19255
|
-
var handleRightClick = function (event, tagId) {
|
|
19256
|
-
event.preventDefault();
|
|
19257
|
-
event.stopPropagation(); // Prevent the click event from propagating to the document
|
|
19258
|
-
if (isNumber(tagId)) {
|
|
19259
|
-
setViewTagForDelete(viewTags[tagId].viewTag);
|
|
19260
|
-
}
|
|
19261
|
-
else {
|
|
19262
|
-
setViewTagForDelete(null);
|
|
19263
|
-
}
|
|
19264
|
-
setSelectedRowTagId(tagId);
|
|
19265
|
-
};
|
|
19266
|
-
var _k = useSearchSeries({
|
|
19267
|
-
start: state.timeScopeStart.getTime(),
|
|
19268
|
-
end: state.timeScopeEnd.getTime(),
|
|
19269
|
-
tagIds: Object.values(viewTags).map(function (tag) { return tag.viewTag.TagId; }),
|
|
19270
|
-
autoRefresh: autoRefresh,
|
|
19271
|
-
}), series = _k.data, seriesLoading = _k.isLoading; _k.isError; _k.error; _k.isSuccess;
|
|
19272
|
-
return (React__default.createElement(React__default.Fragment, null,
|
|
19273
|
-
React__default.createElement(Grid2, { container: true, style: { width: "95svw", height: "88svh", margin: 0 } },
|
|
19274
|
-
React__default.createElement(Header, { setChartOptions: setChartOptions, autoRefresh: autoRefresh, setAutoRefresh: setAutoRefresh }),
|
|
19275
|
-
React__default.createElement(Grid2, { size: { md: 12 } },
|
|
19276
|
-
React__default.createElement(Divider, { style: { margin: "10px 0 20px" } })),
|
|
19277
|
-
React__default.createElement(Grid2, { size: { xs: 12 }, style: { height: "45%" } },
|
|
19278
|
-
React__default.createElement(TrendingChart, { series: series !== null && series !== void 0 ? series : [], chartData: chartData, setChartData: setChartData, chartOptions: chartOptions, setChartOptions: setChartOptions, setCursorData: setCursorData })),
|
|
19279
|
-
React__default.createElement(Grid2, { container: true, size: { xs: 12 }, onContextMenu: function (e) { return handleRightClick(e, null); }, style: {
|
|
19280
|
-
height: "40%",
|
|
19281
|
-
minWidth: "100%",
|
|
19282
|
-
borderRadius: 10,
|
|
19283
|
-
margin: "10px 0 10px",
|
|
19284
|
-
position: seriesLoading ? "relative" : "inherit",
|
|
19285
|
-
} },
|
|
19286
|
-
seriesLoading && (React__default.createElement("div", { style: {
|
|
19287
|
-
position: "absolute",
|
|
19288
|
-
top: 0,
|
|
19289
|
-
left: 0,
|
|
19290
|
-
width: "100%",
|
|
19291
|
-
height: "100%",
|
|
19292
|
-
background: "rgba(255, 255, 255, 0.7)", // fondo semitransparente
|
|
19293
|
-
display: "flex", // Centra el CircularProgress
|
|
19294
|
-
justifyContent: "center", // Centra horizontalmente
|
|
19295
|
-
alignItems: "center", // Centra verticalmente
|
|
19296
|
-
zIndex: 2,
|
|
19297
|
-
} },
|
|
19298
|
-
React__default.createElement(CircularProgress, { size: "2rem" }))),
|
|
19299
|
-
React__default.createElement(TableComponent, { chartData: chartData, cursorData: cursorData, viewTagForDelete: viewTagForDelete, setViewTagForDelete: setViewTagForDelete, selectedRowTagId: selectedRowTagId, setSelectedRowTagId: setSelectedRowTagId }))),
|
|
19300
|
-
React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); }, title: "ERROR" })));
|
|
19301
|
-
});
|
|
19302
|
-
Trending.displayName = "Trending";
|
|
19303
|
-
|
|
19304
|
-
// @flow
|
|
19305
|
-
var TrendingsPage = function () {
|
|
19306
|
-
var _a = useState(false), autoRefresh = _a[0], setAutoRefresh = _a[1];
|
|
19307
|
-
var _b = useState(""), error = _b[0], setError = _b[1];
|
|
19308
|
-
var _c = useState(null), viewId = _c[0], setViewId = _c[1];
|
|
19309
|
-
var _d = useTrendingContext(), viewSelected = _d.state.viewSelected, _e = _d.actions, setViews = _e.setViews, setViewTagsAndRefetch = _e.setViewTagsAndRefetch, setViewSelected = _e.setViewSelected;
|
|
19310
|
-
var _f = useSearchViews({ autoRefresh: autoRefresh }), views = _f.data; _f.isLoading; var viewsIsError = _f.isError, viewsError = _f.error, viewSuccess = _f.isSuccess;
|
|
19311
|
-
var _g = useSearchViewTags({ viewId: viewId }), viewTags = _g.data; _g.isLoading; var viewTagsIsError = _g.isError, viewTagsError = _g.error, viewTagsSuccess = _g.isSuccess;
|
|
19312
|
-
useEffect(function () {
|
|
19313
|
-
var lastCreated;
|
|
19314
|
-
if (!viewSelected) {
|
|
19315
|
-
if (!views)
|
|
19316
|
-
return;
|
|
19317
|
-
setViews(views);
|
|
19318
|
-
lastCreated = views.reduce(function (prev, current) {
|
|
19319
|
-
return prev && prev.ViewId > current.ViewId ? prev : current;
|
|
19320
|
-
}, null);
|
|
19321
|
-
setViewId(lastCreated.ViewId);
|
|
19322
|
-
//viewSelected
|
|
19323
|
-
setViewSelected(lastCreated);
|
|
16561
|
+
mergedTags[backendTag.TagId] = {
|
|
16562
|
+
viewTag: backendTag,
|
|
16563
|
+
order: maxOrder + 1,
|
|
16564
|
+
};
|
|
16565
|
+
}
|
|
16566
|
+
});
|
|
19324
16567
|
}
|
|
19325
16568
|
else {
|
|
19326
|
-
|
|
19327
|
-
|
|
19328
|
-
}
|
|
19329
|
-
}, [viewSuccess]);
|
|
19330
|
-
useEffect(function () {
|
|
19331
|
-
if (viewTags) {
|
|
19332
|
-
if (!viewTags)
|
|
19333
|
-
return;
|
|
19334
|
-
var vTags = viewTags.reduce(function (carr, curr, idx) {
|
|
16569
|
+
// No local storage -> Use backend tags with default ordering
|
|
16570
|
+
mergedTags = backendTags.reduce(function (carr, curr, idx) {
|
|
19335
16571
|
if (isNil(curr.Color)) {
|
|
19336
16572
|
curr.Color = getRandomColor();
|
|
19337
16573
|
}
|
|
@@ -19341,25 +16577,128 @@ var TrendingsPage = function () {
|
|
|
19341
16577
|
};
|
|
19342
16578
|
return carr;
|
|
19343
16579
|
}, {});
|
|
19344
|
-
setViewTagsAndRefetch(vTags);
|
|
19345
16580
|
}
|
|
19346
|
-
|
|
16581
|
+
// Reset stable ref when loading new view
|
|
16582
|
+
stableTagIdsRef.current = [];
|
|
16583
|
+
setViewTagsAndRefetch(mergedTags);
|
|
16584
|
+
}, [viewTagsSuccess, viewTagsData, setViewTagsAndRefetch, viewId]);
|
|
16585
|
+
// Update context with calculated min/max values
|
|
16586
|
+
// Use ref to prevent infinite loop from object reference changes
|
|
16587
|
+
var seriesMinMaxDataRef = useRef("");
|
|
16588
|
+
useEffect(function () {
|
|
16589
|
+
var serialized = JSON.stringify(seriesMinMaxData);
|
|
16590
|
+
if (serialized !== seriesMinMaxDataRef.current) {
|
|
16591
|
+
seriesMinMaxDataRef.current = serialized;
|
|
16592
|
+
setSeriesMinMax(seriesMinMaxData);
|
|
16593
|
+
}
|
|
16594
|
+
}, [seriesMinMaxData, setSeriesMinMax]);
|
|
16595
|
+
// Reset cursors when view changes or time scope changes significantly
|
|
16596
|
+
var prevViewIdRef = useRef(null);
|
|
16597
|
+
useEffect(function () {
|
|
16598
|
+
// Reset cursors when switching views or when time scope changes significantly
|
|
16599
|
+
if (viewSelected && viewSelected.ViewId !== prevViewIdRef.current) {
|
|
16600
|
+
prevViewIdRef.current = viewSelected.ViewId;
|
|
16601
|
+
resetCursors();
|
|
16602
|
+
}
|
|
16603
|
+
}, [viewSelected, resetCursors]);
|
|
16604
|
+
// Also reset cursors when time scope changes (zoom/pan)
|
|
16605
|
+
useEffect(function () {
|
|
16606
|
+
resetCursors();
|
|
16607
|
+
}, [timeScopeStart, timeScopeEnd, resetCursors]);
|
|
16608
|
+
// Increment trigger when series data finishes loading
|
|
16609
|
+
// This ensures cursors re-render AFTER chart has new data
|
|
16610
|
+
var prevSeriesLoadingRef = useRef(false);
|
|
16611
|
+
useEffect(function () {
|
|
16612
|
+
if (prevSeriesLoadingRef.current && !seriesLoading) {
|
|
16613
|
+
// Transition from loading to not loading - data just loaded
|
|
16614
|
+
setDataLoadedTrigger(function (prev) { return prev + 1; });
|
|
16615
|
+
}
|
|
16616
|
+
prevSeriesLoadingRef.current = seriesLoading;
|
|
16617
|
+
}, [seriesLoading]);
|
|
16618
|
+
// Handle errors
|
|
19347
16619
|
useEffect(function () {
|
|
19348
16620
|
if (viewTagsError && viewTagsIsError) {
|
|
19349
|
-
setError(viewTagsError
|
|
16621
|
+
setError(viewTagsError instanceof Error
|
|
16622
|
+
? viewTagsError.message
|
|
16623
|
+
: String(viewTagsError));
|
|
19350
16624
|
}
|
|
19351
16625
|
if (viewsError && viewsIsError) {
|
|
19352
|
-
setError(viewsError.message);
|
|
16626
|
+
setError(viewsError instanceof Error ? viewsError.message : String(viewsError));
|
|
16627
|
+
}
|
|
16628
|
+
if (seriesError && seriesIsError) {
|
|
16629
|
+
setError(seriesError instanceof Error
|
|
16630
|
+
? seriesError.message
|
|
16631
|
+
: String(seriesError));
|
|
19353
16632
|
}
|
|
19354
|
-
}, [
|
|
16633
|
+
}, [
|
|
16634
|
+
viewsError,
|
|
16635
|
+
viewsIsError,
|
|
16636
|
+
viewTagsError,
|
|
16637
|
+
viewTagsIsError,
|
|
16638
|
+
seriesError,
|
|
16639
|
+
seriesIsError,
|
|
16640
|
+
]);
|
|
16641
|
+
var isLoading = viewsLoading || viewTagsLoading;
|
|
19355
16642
|
return (React__default.createElement(React__default.Fragment, null,
|
|
19356
|
-
React__default.createElement(HelmetDexteel, { title: "
|
|
19357
|
-
React__default.createElement(
|
|
19358
|
-
|
|
16643
|
+
React__default.createElement(HelmetDexteel, { title: "Trendings" }),
|
|
16644
|
+
React__default.createElement("div", { style: {
|
|
16645
|
+
padding: "16px",
|
|
16646
|
+
width: "100%",
|
|
16647
|
+
height: "92vh",
|
|
16648
|
+
position: "relative",
|
|
16649
|
+
backgroundColor: "#FAFAFA",
|
|
16650
|
+
display: "flex",
|
|
16651
|
+
flexDirection: "column",
|
|
16652
|
+
} },
|
|
16653
|
+
isLoading && (React__default.createElement("div", { style: {
|
|
16654
|
+
position: "absolute",
|
|
16655
|
+
top: 0,
|
|
16656
|
+
left: 0,
|
|
16657
|
+
width: "100%",
|
|
16658
|
+
height: "100%",
|
|
16659
|
+
background: "rgba(255, 255, 255, 0.7)",
|
|
16660
|
+
display: "flex",
|
|
16661
|
+
justifyContent: "center",
|
|
16662
|
+
alignItems: "center",
|
|
16663
|
+
zIndex: 1000,
|
|
16664
|
+
} },
|
|
16665
|
+
React__default.createElement(CircularProgress, { size: "3rem" }))),
|
|
16666
|
+
React__default.createElement("div", { style: { flexShrink: 0 } },
|
|
16667
|
+
React__default.createElement(HeaderSectionV2, { autoRefresh: autoRefresh, setAutoRefresh: setAutoRefresh, setChartOptions: setChartOptions, chartInstance: chartInstance })),
|
|
16668
|
+
React__default.createElement(Divider, { sx: { my: 2 } }),
|
|
16669
|
+
React__default.createElement("div", { style: {
|
|
16670
|
+
flexGrow: 1,
|
|
16671
|
+
minHeight: 0,
|
|
16672
|
+
display: "flex",
|
|
16673
|
+
width: "100%",
|
|
16674
|
+
} },
|
|
16675
|
+
React__default.createElement(Group$1, { orientation: "vertical", style: { width: "100%", height: "100%" } },
|
|
16676
|
+
React__default.createElement(Panel, { defaultSize: 80, minSize: 20 },
|
|
16677
|
+
React__default.createElement("div", { style: { height: "100%", width: "100%" } },
|
|
16678
|
+
React__default.createElement(TrendingChartV2, { customOptions: chartOptions, series: filteredSeries, isLoading: seriesLoading, onChartReady: setChartInstance, dataLoadedTrigger: dataLoadedTrigger }))),
|
|
16679
|
+
React__default.createElement(Separator, { style: {
|
|
16680
|
+
height: "10px",
|
|
16681
|
+
background: "#f0f0f0",
|
|
16682
|
+
cursor: "row-resize",
|
|
16683
|
+
display: "flex",
|
|
16684
|
+
alignItems: "center",
|
|
16685
|
+
justifyContent: "center",
|
|
16686
|
+
borderTop: "1px solid #e0e0e0",
|
|
16687
|
+
borderBottom: "1px solid #e0e0e0",
|
|
16688
|
+
} },
|
|
16689
|
+
React__default.createElement("div", { style: {
|
|
16690
|
+
width: "40px",
|
|
16691
|
+
height: "4px",
|
|
16692
|
+
backgroundColor: "#ccc",
|
|
16693
|
+
borderRadius: "2px",
|
|
16694
|
+
} })),
|
|
16695
|
+
React__default.createElement(Panel, { defaultSize: 20, minSize: 10 },
|
|
16696
|
+
React__default.createElement("div", { style: { height: "100%", width: "100%", overflow: "auto" } },
|
|
16697
|
+
React__default.createElement(TagsTableV2, null)))))),
|
|
19359
16698
|
React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); }, size: "xl", title: "ERROR" })));
|
|
19360
16699
|
};
|
|
19361
16700
|
|
|
19362
|
-
var
|
|
16701
|
+
var TrendingsV2Index = function () {
|
|
19363
16702
|
var _a = useState(false), ihPathLoaded = _a[0], setIhPathLoaded = _a[1];
|
|
19364
16703
|
useEffect(function () {
|
|
19365
16704
|
var getIhPath = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -19375,15 +16714,13 @@ var index = function () {
|
|
|
19375
16714
|
}
|
|
19376
16715
|
});
|
|
19377
16716
|
}); };
|
|
19378
|
-
getIhPath()
|
|
19379
|
-
console.log("ih path loaded");
|
|
19380
|
-
});
|
|
16717
|
+
getIhPath();
|
|
19381
16718
|
}, []);
|
|
19382
16719
|
if (!ihPathLoaded) {
|
|
19383
16720
|
return (React__default.createElement("div", { className: "d-flex justify-content-center align-items-center" }, "Loading..."));
|
|
19384
16721
|
}
|
|
19385
|
-
return (React__default.createElement(
|
|
19386
|
-
React__default.createElement(
|
|
16722
|
+
return (React__default.createElement(TrendingProviderV2, null,
|
|
16723
|
+
React__default.createElement(TrendingsPageV2, null)));
|
|
19387
16724
|
};
|
|
19388
16725
|
|
|
19389
16726
|
var MESFMainRouter = function () {
|
|
@@ -19395,7 +16732,6 @@ var MESFMainRouter = function () {
|
|
|
19395
16732
|
React__default.createElement(Route, { path: "/", element: React__default.createElement(Navigate, { replace: true, to: "/home" }) }),
|
|
19396
16733
|
canShowSettings && (React__default.createElement(Route, { path: "/configuration/*", element: React__default.createElement(Configuration, null) })),
|
|
19397
16734
|
React__default.createElement(Route, { path: "/account", element: React__default.createElement(Account, null) }),
|
|
19398
|
-
React__default.createElement(Route, { path: "/trendings", element: React__default.createElement(index, null) }),
|
|
19399
16735
|
React__default.createElement(Route, { path: "/trendings-v2", element: React__default.createElement(TrendingsV2Index, null) }),
|
|
19400
16736
|
React__default.createElement(Route, { path: "/home", element: React__default.createElement(Home, null) })),
|
|
19401
16737
|
React__default.createElement(CustomRoutes, null)));
|
|
@@ -19405,8 +16741,8 @@ var MESFMainContainer = function () { return (React__default.createElement("div"
|
|
|
19405
16741
|
React__default.createElement(MESFMainRouter, null))); };
|
|
19406
16742
|
|
|
19407
16743
|
var Navigation = function (_a) {
|
|
19408
|
-
var _b = _a.showAreaSelector, showAreaSelector = _b === void 0 ? false : _b, _c = _a.
|
|
19409
|
-
var
|
|
16744
|
+
var _b = _a.showAreaSelector, showAreaSelector = _b === void 0 ? false : _b, _c = _a.showTrendingsV2Icon, showTrendingsV2Icon = _c === void 0 ? true : _c, _d = _a.navbarTitle, navbarTitle = _d === void 0 ? "MESF" : _d, _e = _a.byPassHeaderRoutes, byPassHeaderRoutes = _e === void 0 ? [] : _e;
|
|
16745
|
+
var _f = useSearchParams(), params = _f[0]; _f[1];
|
|
19410
16746
|
var mounted = useRef(true);
|
|
19411
16747
|
var location = useLocation();
|
|
19412
16748
|
useEffect(function () {
|
|
@@ -19425,7 +16761,7 @@ var Navigation = function (_a) {
|
|
|
19425
16761
|
return location.pathname.startsWith(route);
|
|
19426
16762
|
});
|
|
19427
16763
|
return (React__default.createElement("div", { className: "wrapper" },
|
|
19428
|
-
!byPassHeader && (React__default.createElement(Header
|
|
16764
|
+
!byPassHeader && (React__default.createElement(Header, { showAreaSelector: showAreaSelector, navbarTitle: navbarTitle, showTrendingsV2Icon: showTrendingsV2Icon })),
|
|
19429
16765
|
React__default.createElement(MESFMainContainer, null)));
|
|
19430
16766
|
};
|
|
19431
16767
|
|
|
@@ -19457,7 +16793,7 @@ var queryClient = new QueryClient({
|
|
|
19457
16793
|
},
|
|
19458
16794
|
});
|
|
19459
16795
|
function MESFMain(_a) {
|
|
19460
|
-
var authentication = _a.authentication, routes = _a.routes, navbar = _a.navbar, _b = _a.navbarTitle, navbarTitle = _b === void 0 ? "MESF" : _b, configurations = _a.configurations, _c = _a.showAreaSelector, showAreaSelector = _c === void 0 ? false : _c, _d = _a.
|
|
16796
|
+
var authentication = _a.authentication, routes = _a.routes, navbar = _a.navbar, _b = _a.navbarTitle, navbarTitle = _b === void 0 ? "MESF" : _b, configurations = _a.configurations, _c = _a.showAreaSelector, showAreaSelector = _c === void 0 ? false : _c, _d = _a.showTrendingsV2Icon, showTrendingsV2Icon = _d === void 0 ? true : _d, _e = _a.byPassHeaderRoutes, byPassHeaderRoutes = _e === void 0 ? [] : _e, _f = _a.plantAssetId, plantAssetId = _f === void 0 ? 1 : _f, _g = _a.theme, theme = _g === void 0 ? themeMESF : _g, _h = _a.logbookSettings, logbookSettings = _h === void 0 ? {} : _h;
|
|
19461
16797
|
return (React__default.createElement(React__default.Fragment, null,
|
|
19462
16798
|
React__default.createElement(CssBaseline, null),
|
|
19463
16799
|
React__default.createElement(StyledEngineProvider, { injectFirst: true },
|
|
@@ -19480,7 +16816,7 @@ function MESFMain(_a) {
|
|
|
19480
16816
|
React__default.createElement(BrowserRouter, { basename: base },
|
|
19481
16817
|
React__default.createElement(Routes, null,
|
|
19482
16818
|
React__default.createElement(Route, { path: "/logout", element: React__default.createElement(Logout, null) })),
|
|
19483
|
-
React__default.createElement(Navigation, { showAreaSelector: showAreaSelector,
|
|
16819
|
+
React__default.createElement(Navigation, { showAreaSelector: showAreaSelector, navbarTitle: navbarTitle, byPassHeaderRoutes: byPassHeaderRoutes, showTrendingsV2Icon: showTrendingsV2Icon })))))))))))))))))))));
|
|
19484
16820
|
}
|
|
19485
16821
|
|
|
19486
16822
|
var ExcelButton = function (_a) {
|
|
@@ -21561,6 +18897,7 @@ var useEntriesReport$1 = function (_a) {
|
|
|
21561
18897
|
return useQuery({
|
|
21562
18898
|
queryKey: ["entriesReport", startShiftId, endShiftId, assetId],
|
|
21563
18899
|
queryFn: function () { return getEntriesReport$1({ startShiftId: startShiftId, endShiftId: endShiftId, assetId: assetId }); },
|
|
18900
|
+
enabled: !!startShiftId && !!endShiftId && !!assetId,
|
|
21564
18901
|
});
|
|
21565
18902
|
};
|
|
21566
18903
|
var routeLogbookReport = "/logbook/report";
|
|
@@ -21880,7 +19217,7 @@ var Logbook$2 = function () {
|
|
|
21880
19217
|
startShiftId: shiftPeriod.StartShiftId,
|
|
21881
19218
|
endShiftId: shiftPeriod.EndShiftId,
|
|
21882
19219
|
assetId: assetId,
|
|
21883
|
-
}), rows = _h.data, isLoading = _h.isLoading, e = _h.error, isError = _h.isError
|
|
19220
|
+
}), rows = _h.data, isLoading = _h.isLoading, e = _h.error, isError = _h.isError; _h.refetch;
|
|
21884
19221
|
var columnDefs = useTableData$2({
|
|
21885
19222
|
showAttachments: showAttachments,
|
|
21886
19223
|
showAsset: showAsset,
|
|
@@ -22002,16 +19339,6 @@ var Logbook$2 = function () {
|
|
|
22002
19339
|
if (shiftPeriod.StartShiftId !== null || shiftPeriod.EndShiftId !== null) {
|
|
22003
19340
|
setShow("");
|
|
22004
19341
|
setSelectedRowData(null);
|
|
22005
|
-
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
22006
|
-
return __generator(this, function (_a) {
|
|
22007
|
-
switch (_a.label) {
|
|
22008
|
-
case 0: return [4 /*yield*/, refetch()];
|
|
22009
|
-
case 1:
|
|
22010
|
-
_a.sent();
|
|
22011
|
-
return [2 /*return*/];
|
|
22012
|
-
}
|
|
22013
|
-
});
|
|
22014
|
-
}); })();
|
|
22015
19342
|
}
|
|
22016
19343
|
}, [shiftPeriod.StartShiftId, shiftPeriod.EndShiftId]);
|
|
22017
19344
|
return (React__default.createElement(Box, { sx: {
|
|
@@ -24957,5 +22284,5 @@ var areaSelector = /*#__PURE__*/Object.freeze({
|
|
|
24957
22284
|
AreaSelector: AreaSelector
|
|
24958
22285
|
});
|
|
24959
22286
|
|
|
24960
|
-
export { Account, AssetProvider, AssetTreePicker, AuthContext, AuthProvider, ButtonWithLoading, ChangePassword, CheckBoxControl, Configuration$1 as Configuration, ContextMenu$1 as ContextMenu, ContextMenuMESFProvider, CreateNewAssetDialog, CurrencyFormatter, DataGridControl, DateFormatter, DateTimeFormatter, ENTRY_INITIAL_VALUES$1 as ENTRY_INITIAL_VALUES, EditAssetDialog, ErrorModal, ExcelIcon, FetchError, FilterPanel, GenericPanel, GenericTable, GetCrewColor, GetShiftColor, HelmetDexteel, IntegerFormatter, LogbookSettingsInitialState, LogbookSettingsProvider, Login, Logout, LongFilterPanel, MESApiService, MESFLogbookEntry$1 as MESFLogbookEntry, MESFLogbookReport$1 as MESFLogbookReport, MESFMain, MESSAGE_API, MESSAGE_ERRORS, MasterDetailPanel, MesfModal, ModalTreeFilterControl, MultipleSelectorControl, NumberFormatter, RemoveAssetDialog, SPExecutorPage, ShiftDayNavigatorControl, ShiftNavigatorProvider, ShiftPeriodNavigatorControl, SimplePasswordControl, SimpleSelectorControl, TimeAndUserMenu, TimeFormatter, TimeService, TreePickerControl, TreePickerControlV2,
|
|
22287
|
+
export { Account, AssetProvider, AssetTreePicker, AuthContext, AuthProvider, ButtonWithLoading, ChangePassword, CheckBoxControl, Configuration$1 as Configuration, ContextMenu$1 as ContextMenu, ContextMenuMESFProvider, CreateNewAssetDialog, CurrencyFormatter, DataGridControl, DateFormatter, DateTimeFormatter, ENTRY_INITIAL_VALUES$1 as ENTRY_INITIAL_VALUES, EditAssetDialog, ErrorModal, ExcelIcon, FetchError, FilterPanel, GenericPanel, GenericTable, GetCrewColor, GetShiftColor, HelmetDexteel, IntegerFormatter, LogbookSettingsInitialState, LogbookSettingsProvider, Login, Logout, LongFilterPanel, MESApiService, MESFLogbookEntry$1 as MESFLogbookEntry, MESFLogbookReport$1 as MESFLogbookReport, MESFMain, MESSAGE_API, MESSAGE_ERRORS, MasterDetailPanel, MesfModal, ModalTreeFilterControl, MultipleSelectorControl, NumberFormatter, RemoveAssetDialog, SPExecutorPage, ShiftDayNavigatorControl, ShiftNavigatorProvider, ShiftPeriodNavigatorControl, SimplePasswordControl, SimpleSelectorControl, TimeAndUserMenu, TimeFormatter, TimeService, TreePickerControl, TreePickerControlV2, USER_LABELS, UTLSettingsProvider, UserProvider, axiosInstance, deleteUser, dxtServerTimeZone, dxtToLocalServerTime, dxtToUTC, formatNumber, getAuthTypes, getCrewStyle, getDataUser, getEntries$1 as getEntries, getError, getMomentTz, getShiftByParameters, getShiftStyle, getShiftsRangeByParameters, getTokenFromLS, getUserPermissionsFromAPI, getUsers, logbookNavbar, logbookRoutesMESF, renewToken, routeLogbookEntry$1 as routeLogbookEntry, routeLogbookReport, useSearchAssets as searchAssets, sectionLogbookNavbar, sectionLogbookRoutesMESF, setPassword, setProfilesToUser, themeDXT, themeMESF, upsertUser, useAssetContext, useContextMenuMESF, useHasPermission, useHasProfile, useLogbookSettings, useMesfRealtime, useShiftNavigator, useShiftNavigatorManager, useToken, useUTLSettingsContext, useUserContext };
|
|
24961
22288
|
//# sourceMappingURL=index.esm.js.map
|