@dexteel/mesf-core 6.1.1 → 6.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { HubConnectionBuilder, LogLevel } from '@microsoft/signalr';
2
2
  export * from '@microsoft/signalr';
3
3
  export { LicenseManager } from 'ag-grid-enterprise';
4
- import { withStyles, DialogTitle as DialogTitle$1, DialogContent as DialogContent$1, DialogActions as DialogActions$1, createStyles, Grid, Button, alpha, makeStyles, Dialog as Dialog$1, TextField, Paper, List, ListItem, ListItemIcon, ListItemText, Chip, SvgIcon, Collapse, Typography as Typography$1, Checkbox, InputAdornment, IconButton as IconButton$1, MenuItem, Box, Card, CardContent, CardActions, createTheme, CircularProgress, Snackbar, FormControlLabel, Switch, InputLabel, Select, DialogContentText, Popover, MenuList, FormControl, FormHelperText, Badge, Tooltip, useTheme, Input, Divider, CssBaseline, AppBar, Toolbar, Container, Menu, Hidden, Drawer, useMediaQuery, ListSubheader, TableContainer, Table, TableHead, TableRow, TableCell, TableBody, debounce, ThemeProvider, ListItemSecondaryAction } from '@material-ui/core';
4
+ import { withStyles, DialogTitle as DialogTitle$1, DialogContent as DialogContent$1, DialogActions as DialogActions$1, createStyles, Grid, Button, alpha, makeStyles, Dialog as Dialog$1, TextField, Paper, List, ListItem, ListItemIcon, ListItemText, Chip, SvgIcon, Collapse, Typography as Typography$1, Checkbox, InputAdornment, IconButton as IconButton$1, MenuItem, Box, Card, CardContent, CardActions, createTheme, CircularProgress, Snackbar, FormControlLabel, Switch, InputLabel, Select, DialogContentText, Popover, MenuList, FormControl, FormHelperText, Badge, Tooltip, useTheme, Input, Divider, CssBaseline, AppBar, Toolbar, Container, Menu, Hidden, Drawer, useMediaQuery, ListSubheader, debounce, ThemeProvider, ListItemSecondaryAction } from '@material-ui/core';
5
5
  import { useMutation, useQueryClient, useQuery, QueryClient, QueryClientProvider } from '@tanstack/react-query';
6
6
  import * as React from 'react';
7
7
  import React__default, { createContext, useContext, useState, useRef, useEffect, useMemo, Component, useCallback, lazy, Suspense } from 'react';
@@ -11930,117 +11930,9 @@ var TrendingProvider = function (_a) {
11930
11930
  initialState: TrendingsReducer.getInitialState(),
11931
11931
  reducers: TrendingsReducer.caseReducers,
11932
11932
  }), state = _b[0], actions = _b[1];
11933
- var contextValue = useMemo(function () { return ({ state: state, actions: actions }); }, [state, actions]);
11934
- return (React__default.createElement(TrendingContext.Provider, { value: contextValue }, children));
11933
+ return (React__default.createElement(TrendingContext.Provider, { value: { state: state, actions: actions } }, children));
11935
11934
  };
11936
11935
 
11937
- var useTrendingStyles = makeStyles(function (theme) { return ({
11938
- datetimePicker: {
11939
- alignItems: "center",
11940
- "& .MuiInputBase-root": {
11941
- color: "black",
11942
- backgroundColor: "white",
11943
- borderRadius: theme.shape.borderRadius,
11944
- width: "90%",
11945
- minWidth: "90%",
11946
- maxWidth: "90%",
11947
- },
11948
- "& .MuiInputBase-input": {
11949
- fontSize: "13px !important",
11950
- height: "15px !important",
11951
- paddingRight: "3px",
11952
- paddingLeft: "3px",
11953
- },
11954
- "& .MuiInput-underline:before": {
11955
- borderBottomColor: "rgba(0, 0, 0, 0.42)",
11956
- },
11957
- padding: 0,
11958
- },
11959
- select: {
11960
- "& .MuiInput-root": {
11961
- width: "100%",
11962
- },
11963
- "& .MuiInputBase-root": {
11964
- color: "black",
11965
- backgroundColor: "white",
11966
- borderRadius: theme.shape.borderRadius,
11967
- minWidth: "100%",
11968
- },
11969
- "& .MuiInputBase-input": {
11970
- fontSize: "14px !important",
11971
- height: "15px !important",
11972
- },
11973
- "& .MuiInput-underline:before": {
11974
- borderBottomColor: "rgba(0, 0, 0, 0.42)",
11975
- },
11976
- padding: 0,
11977
- },
11978
- labelOptions: {
11979
- paddingLeft: "2rem",
11980
- userSelect: "none",
11981
- "& > label": {
11982
- display: "flex",
11983
- alignItems: "center",
11984
- gap: "5px",
11985
- },
11986
- '& input[type="checkbox"]': {
11987
- zoom: 1.5,
11988
- },
11989
- },
11990
- isPublicCheckbox: {
11991
- userSelect: "none",
11992
- paddingLeft: "1rem",
11993
- "& > label": {
11994
- display: "flex",
11995
- alignItems: "center",
11996
- gap: "15px",
11997
- },
11998
- '& input[type="checkbox"]': {
11999
- zoom: 1.5,
12000
- },
12001
- },
12002
- navigatorButton: {
12003
- "& .MuiSvgIcon-root": {
12004
- cursor: "pointer !important",
12005
- height: "24px",
12006
- width: "24px",
12007
- "& svg": {
12008
- // Adjust the icon size as well
12009
- fontSize: "1.5rem",
12010
- },
12011
- },
12012
- color: "black",
12013
- },
12014
- iconContainer: {
12015
- display: "flex",
12016
- justifyContent: "flex-end",
12017
- alignItems: "center",
12018
- flex: 1,
12019
- },
12020
- optionContainer: {
12021
- display: "flex",
12022
- justifyContent: "flex-start",
12023
- alignItems: "center",
12024
- width: "100%",
12025
- },
12026
- optionLabel: {
12027
- flexGrow: 1,
12028
- },
12029
- inputCustom: {
12030
- color: "rgba(0, 0, 0, 0.87)",
12031
- cursor: "text",
12032
- fontSize: "0.7rem",
12033
- boxSizing: "border-box",
12034
- fontFamily: '"Roboto", "Helvetica", "Arial", sans-serif',
12035
- fontWeight: 400,
12036
- lineHeight: 1.1876,
12037
- letterSpacing: "0.00938em",
12038
- "& .MuiOutlinedInput-input": {
12039
- padding: "10px 10px",
12040
- },
12041
- },
12042
- }); });
12043
-
12044
11936
  var getIhPath = function () {
12045
11937
  return localStorage.getItem("ihPath") || "[mssql2022].[IH_100020].[ih]";
12046
11938
  };
@@ -12055,12 +11947,7 @@ var getTagsTree = function () { return __awaiter(void 0, void 0, void 0, functio
12055
11947
  return [4 /*yield*/, apiService.callV2(getIhPath() + ".[GetTagsTree]", parameters)];
12056
11948
  case 1:
12057
11949
  resp = _a.sent();
12058
- if (resp.ok) {
12059
- return [2 /*return*/, get(resp, "data.tables[0].rows", [])];
12060
- }
12061
- else {
12062
- throw new Error(resp.message || "Error fetching tags tree");
12063
- }
11950
+ return [2 /*return*/, resp];
12064
11951
  }
12065
11952
  });
12066
11953
  }); };
@@ -12070,100 +11957,81 @@ var deleteTagFolder = function (TagFolderId) { return __awaiter(void 0, void 0,
12070
11957
  switch (_a.label) {
12071
11958
  case 0:
12072
11959
  apiService = new MESApiService();
12073
- parameters = [
12074
- { name: "TagFolderId", value: TagFolderId },
12075
- ];
11960
+ parameters = [];
12076
11961
  backendOffset = 1000000;
12077
11962
  if (TagFolderId && TagFolderId > backendOffset) {
12078
11963
  TagFolderId = TagFolderId - backendOffset;
12079
11964
  }
11965
+ parameters.push({ name: "TagFolderId", value: TagFolderId });
12080
11966
  return [4 /*yield*/, apiService.callV2(getIhPath() + ".[DeleteTagFolder]", parameters)];
12081
11967
  case 1:
12082
11968
  resp = _a.sent();
12083
- if (!resp.ok) {
12084
- throw new Error(resp.message || "Error when delete tag folder");
12085
- }
12086
- return [2 /*return*/];
11969
+ return [2 /*return*/, resp];
12087
11970
  }
12088
11971
  });
12089
11972
  }); };
12090
- var upsertTagFolder = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
11973
+ var upsertTagFolder = function (TagFolderId, ParentTagFolderId, TagFolderName, IsActive) { return __awaiter(void 0, void 0, void 0, function () {
12091
11974
  var apiService, parameters, backendOffset, resp;
12092
- var tagFolderId = _b.tagFolderId, parentTagFolderId = _b.parentTagFolderId, tagFolderName = _b.tagFolderName, isActive = _b.isActive;
12093
- return __generator(this, function (_c) {
12094
- switch (_c.label) {
11975
+ return __generator(this, function (_a) {
11976
+ switch (_a.label) {
12095
11977
  case 0:
12096
11978
  apiService = new MESApiService();
12097
- parameters = [
12098
- { name: "TagFolderId", value: tagFolderId },
12099
- { name: "ParentTagFolderId", value: parentTagFolderId },
12100
- { name: "TagFolderName", value: tagFolderName },
12101
- { name: "IsActive", value: isActive },
12102
- ];
11979
+ parameters = [];
12103
11980
  backendOffset = 1000000;
12104
- if (tagFolderId && tagFolderId > backendOffset) {
12105
- tagFolderId = tagFolderId - backendOffset;
11981
+ if (TagFolderId && TagFolderId > backendOffset) {
11982
+ TagFolderId = TagFolderId - backendOffset;
12106
11983
  }
12107
- if (parentTagFolderId && parentTagFolderId > backendOffset) {
12108
- parentTagFolderId = parentTagFolderId - backendOffset;
11984
+ if (ParentTagFolderId && ParentTagFolderId > backendOffset) {
11985
+ ParentTagFolderId = ParentTagFolderId - backendOffset;
12109
11986
  }
11987
+ parameters.push({ name: "TagFolderId", value: TagFolderId });
11988
+ parameters.push({ name: "ParentTagFolderId", value: ParentTagFolderId });
11989
+ parameters.push({ name: "TagFolderName", value: TagFolderName });
11990
+ parameters.push({ name: "IsActive", value: IsActive });
12110
11991
  return [4 /*yield*/, apiService.callV2(getIhPath() + ".[UpsertTagFolder]", parameters)];
12111
11992
  case 1:
12112
- resp = _c.sent();
12113
- if (!resp.ok) {
12114
- throw new Error(resp.message || "Error when upsert tag folder");
12115
- }
12116
- return [2 /*return*/];
11993
+ resp = _a.sent();
11994
+ return [2 /*return*/, resp];
12117
11995
  }
12118
11996
  });
12119
11997
  }); };
12120
- var changeTagFolderToTag = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
11998
+ var changeTagFolderToTag = function (TagId, TagFolderId) { return __awaiter(void 0, void 0, void 0, function () {
12121
11999
  var apiService, parameters, backendOffset, resp;
12122
- var tagId = _b.tagId, tagFolderId = _b.tagFolderId;
12123
- return __generator(this, function (_c) {
12124
- switch (_c.label) {
12000
+ return __generator(this, function (_a) {
12001
+ switch (_a.label) {
12125
12002
  case 0:
12126
12003
  apiService = new MESApiService();
12127
- parameters = [
12128
- { name: "TagId", value: tagId },
12129
- { name: "TagFolderId", value: tagFolderId },
12130
- ];
12004
+ parameters = [];
12131
12005
  backendOffset = 1000000;
12132
- if (tagFolderId && tagFolderId > backendOffset) {
12133
- tagFolderId = tagFolderId - backendOffset;
12006
+ if (TagFolderId && TagFolderId > backendOffset) {
12007
+ TagFolderId = TagFolderId - backendOffset;
12134
12008
  }
12009
+ parameters.push({ name: "TagId", value: TagId });
12010
+ parameters.push({ name: "TagFolderId", value: TagFolderId });
12135
12011
  return [4 /*yield*/, apiService.callV2(getIhPath() + ".[ChangeTagFolderToTag]", parameters)];
12136
12012
  case 1:
12137
- resp = _c.sent();
12138
- if (!resp.ok) {
12139
- throw new Error(resp.message || "Error when change tag folder tag");
12140
- }
12141
- return [2 /*return*/];
12013
+ resp = _a.sent();
12014
+ return [2 /*return*/, resp];
12142
12015
  }
12143
12016
  });
12144
12017
  }); };
12145
- var saveTagDefaults = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
12018
+ var saveTagDefaults = function (TagId, Alias, Color, MinScale, MaxScale, Unit) { return __awaiter(void 0, void 0, void 0, function () {
12146
12019
  var apiService, parameters, resp;
12147
- var tagId = _b.tagId, alias = _b.alias, color = _b.color, minScale = _b.minScale, maxScale = _b.maxScale, unit = _b.unit;
12148
- return __generator(this, function (_c) {
12149
- switch (_c.label) {
12020
+ return __generator(this, function (_a) {
12021
+ switch (_a.label) {
12150
12022
  case 0:
12151
12023
  apiService = new MESApiService();
12152
- parameters = [
12153
- { name: "TagId", value: tagId },
12154
- { name: "Alias", value: alias },
12155
- { name: "Color", value: color },
12156
- { name: "MinScale", value: minScale },
12157
- { name: "MaxScale", value: maxScale },
12158
- { name: "Unit", value: unit },
12159
- ];
12024
+ parameters = [];
12025
+ parameters.push({ name: "TagId", value: TagId });
12026
+ parameters.push({ name: "Alias", value: Alias });
12027
+ parameters.push({ name: "Color", value: Color });
12028
+ parameters.push({ name: "MinScale", value: MinScale });
12029
+ parameters.push({ name: "MaxScale", value: MaxScale });
12030
+ parameters.push({ name: "Unit", value: Unit });
12160
12031
  return [4 /*yield*/, apiService.callV2(getIhPath() + ".[SaveTagDefaults]", parameters)];
12161
12032
  case 1:
12162
- resp = _c.sent();
12163
- if (!resp.ok) {
12164
- throw new Error(resp.message || "Error when save tag defaults");
12165
- }
12166
- return [2 /*return*/];
12033
+ resp = _a.sent();
12034
+ return [2 /*return*/, resp];
12167
12035
  }
12168
12036
  });
12169
12037
  }); };
@@ -12174,40 +12042,29 @@ var getViews = function (Search) { return __awaiter(void 0, void 0, void 0, func
12174
12042
  switch (_a.label) {
12175
12043
  case 0:
12176
12044
  apiService = new MESApiService();
12177
- parameters = [{ name: "Search", value: Search }];
12045
+ parameters = [];
12046
+ parameters.push({ name: "Search", value: Search });
12178
12047
  return [4 /*yield*/, apiService.callV2(getIhPath() + ".[GetViews]", parameters)];
12179
12048
  case 1:
12180
12049
  resp = _a.sent();
12181
- if (resp.ok) {
12182
- return [2 /*return*/, get(resp, "data.tables[0].rows", [])];
12183
- }
12184
- else {
12185
- throw new Error(resp.message || "Error fetching views");
12186
- }
12050
+ return [2 /*return*/, resp];
12187
12051
  }
12188
12052
  });
12189
12053
  }); };
12190
- var upsertView = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
12054
+ var upsertView = function (ViewId, ViewName, isPublic) { return __awaiter(void 0, void 0, void 0, function () {
12191
12055
  var apiService, parameters, resp;
12192
- var viewId = _b.viewId, viewName = _b.viewName, isPublic = _b.isPublic;
12193
- return __generator(this, function (_c) {
12194
- switch (_c.label) {
12056
+ return __generator(this, function (_a) {
12057
+ switch (_a.label) {
12195
12058
  case 0:
12196
12059
  apiService = new MESApiService();
12197
- parameters = [
12198
- { name: "ViewId", value: viewId },
12199
- { name: "ViewName", value: viewName },
12200
- { name: "isPublic", value: isPublic },
12201
- ];
12060
+ parameters = [];
12061
+ parameters.push({ name: "ViewId", value: ViewId });
12062
+ parameters.push({ name: "ViewName", value: ViewName });
12063
+ parameters.push({ name: "isPublic", value: isPublic });
12202
12064
  return [4 /*yield*/, apiService.callV2(getIhPath() + ".[UpsertView]", parameters)];
12203
12065
  case 1:
12204
- resp = _c.sent();
12205
- if (resp.ok) {
12206
- return [2 /*return*/, get(resp, "data.returnValue", null)];
12207
- }
12208
- else {
12209
- throw new Error(resp.message || "Error when delete view");
12210
- }
12066
+ resp = _a.sent();
12067
+ return [2 /*return*/, resp];
12211
12068
  }
12212
12069
  });
12213
12070
  }); };
@@ -12217,14 +12074,12 @@ var deleteView = function (ViewId) { return __awaiter(void 0, void 0, void 0, fu
12217
12074
  switch (_a.label) {
12218
12075
  case 0:
12219
12076
  apiService = new MESApiService();
12220
- parameters = [{ name: "ViewId", value: ViewId }];
12077
+ parameters = [];
12078
+ parameters.push({ name: "ViewId", value: ViewId });
12221
12079
  return [4 /*yield*/, apiService.callV2(getIhPath() + ".[DeleteView]", parameters)];
12222
12080
  case 1:
12223
12081
  resp = _a.sent();
12224
- if (!resp.ok) {
12225
- throw new Error(resp.message || "Error when delete view");
12226
- }
12227
- return [2 /*return*/];
12082
+ return [2 /*return*/, resp];
12228
12083
  }
12229
12084
  });
12230
12085
  }); };
@@ -12235,43 +12090,34 @@ var getViewTags = function (ViewId) { return __awaiter(void 0, void 0, void 0, f
12235
12090
  switch (_a.label) {
12236
12091
  case 0:
12237
12092
  apiService = new MESApiService();
12238
- parameters = [{ name: "ViewId", value: ViewId }];
12093
+ parameters = [];
12094
+ parameters.push({ name: "ViewId", value: ViewId });
12239
12095
  return [4 /*yield*/, apiService.callV2(getIhPath() + ".[GetViewTags]", parameters)];
12240
12096
  case 1:
12241
12097
  resp = _a.sent();
12242
- if (resp.ok) {
12243
- return [2 /*return*/, get(resp, "data.tables[0].rows", [])];
12244
- }
12245
- else {
12246
- throw new Error(resp.message || "Error fetching view tags");
12247
- }
12098
+ return [2 /*return*/, resp];
12248
12099
  }
12249
12100
  });
12250
12101
  }); };
12251
- var upsertViewTag = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
12102
+ var upsertViewTag = function (ViewId, TagId, Color, MinScale, MaxScale, IsVisible, IsAutoScale, Unit) { return __awaiter(void 0, void 0, void 0, function () {
12252
12103
  var apiService, parameters, resp;
12253
- var viewId = _b.viewId, tagId = _b.tagId, color = _b.color, minScale = _b.minScale, maxScale = _b.maxScale, isVisible = _b.isVisible, isAutoScale = _b.isAutoScale, unit = _b.unit;
12254
- return __generator(this, function (_c) {
12255
- switch (_c.label) {
12104
+ return __generator(this, function (_a) {
12105
+ switch (_a.label) {
12256
12106
  case 0:
12257
12107
  apiService = new MESApiService();
12258
- parameters = [
12259
- { name: "ViewId", value: viewId },
12260
- { name: "TagId", value: tagId },
12261
- { name: "Color", value: color },
12262
- { name: "MinScale", value: minScale },
12263
- { name: "MaxScale", value: maxScale },
12264
- { name: "IsVisible", value: isVisible },
12265
- { name: "IsAutoScale", value: isAutoScale },
12266
- { name: "Unit", value: unit },
12267
- ];
12108
+ parameters = [];
12109
+ parameters.push({ name: "ViewId", value: ViewId });
12110
+ parameters.push({ name: "TagId", value: TagId });
12111
+ parameters.push({ name: "Color", value: Color });
12112
+ parameters.push({ name: "MinScale", value: MinScale });
12113
+ parameters.push({ name: "MaxScale", value: MaxScale });
12114
+ parameters.push({ name: "IsVisible", value: IsVisible });
12115
+ parameters.push({ name: "IsAutoScale", value: IsAutoScale });
12116
+ parameters.push({ name: "Unit", value: Unit });
12268
12117
  return [4 /*yield*/, apiService.callV2(getIhPath() + ".[UpsertViewTag]", parameters)];
12269
12118
  case 1:
12270
- resp = _c.sent();
12271
- if (!resp.ok) {
12272
- throw new Error(resp.message || "Error when upsert view tag");
12273
- }
12274
- return [2 /*return*/];
12119
+ resp = _a.sent();
12120
+ return [2 /*return*/, resp];
12275
12121
  }
12276
12122
  });
12277
12123
  }); };
@@ -12286,36 +12132,138 @@ var deleteAllViewTagsFromView = function (ViewId) { return __awaiter(void 0, voi
12286
12132
  return [4 /*yield*/, apiService.callV2(getIhPath() + ".[DeleteAllViewTagsFromView]", parameters)];
12287
12133
  case 1:
12288
12134
  resp = _a.sent();
12289
- if (!resp.ok) {
12290
- throw new Error(resp.message || "Error when delete all view tags");
12291
- }
12292
- return [2 /*return*/];
12135
+ return [2 /*return*/, resp];
12293
12136
  }
12294
12137
  });
12295
12138
  }); };
12296
12139
 
12140
+ var useTrendingStyles = makeStyles(function (theme) { return ({
12141
+ datetimePicker: {
12142
+ alignItems: "center",
12143
+ "& .MuiInputBase-root": {
12144
+ color: "black",
12145
+ backgroundColor: "white",
12146
+ borderRadius: theme.shape.borderRadius,
12147
+ width: "90%",
12148
+ minWidth: "90%",
12149
+ maxWidth: "90%",
12150
+ },
12151
+ "& .MuiInputBase-input": {
12152
+ fontSize: "13px !important",
12153
+ height: "15px !important",
12154
+ paddingRight: "3px",
12155
+ paddingLeft: "3px",
12156
+ },
12157
+ "& .MuiInput-underline:before": {
12158
+ borderBottomColor: "rgba(0, 0, 0, 0.42)",
12159
+ },
12160
+ padding: 0,
12161
+ },
12162
+ select: {
12163
+ "& .MuiInput-root": {
12164
+ width: "100%",
12165
+ },
12166
+ "& .MuiInputBase-root": {
12167
+ color: "black",
12168
+ backgroundColor: "white",
12169
+ borderRadius: theme.shape.borderRadius,
12170
+ minWidth: "100%",
12171
+ },
12172
+ "& .MuiInputBase-input": {
12173
+ fontSize: "14px !important",
12174
+ height: "15px !important",
12175
+ },
12176
+ "& .MuiInput-underline:before": {
12177
+ borderBottomColor: "rgba(0, 0, 0, 0.42)",
12178
+ },
12179
+ padding: 0,
12180
+ },
12181
+ labelOptions: {
12182
+ paddingLeft: "2rem",
12183
+ userSelect: "none",
12184
+ "& > label": {
12185
+ display: "flex",
12186
+ alignItems: "center",
12187
+ gap: "5px",
12188
+ },
12189
+ '& input[type="checkbox"]': {
12190
+ zoom: 1.5,
12191
+ },
12192
+ },
12193
+ isPublicCheckbox: {
12194
+ userSelect: "none",
12195
+ paddingLeft: "1rem",
12196
+ "& > label": {
12197
+ display: "flex",
12198
+ alignItems: "center",
12199
+ gap: "15px",
12200
+ },
12201
+ '& input[type="checkbox"]': {
12202
+ zoom: 1.5,
12203
+ },
12204
+ },
12205
+ navigatorButton: {
12206
+ "& .MuiSvgIcon-root": {
12207
+ cursor: "pointer !important",
12208
+ height: "24px",
12209
+ width: "24px",
12210
+ "& svg": {
12211
+ // Adjust the icon size as well
12212
+ fontSize: "1.5rem",
12213
+ },
12214
+ },
12215
+ color: "black",
12216
+ },
12217
+ iconContainer: {
12218
+ display: "flex",
12219
+ justifyContent: "flex-end",
12220
+ alignItems: "center",
12221
+ flex: 1,
12222
+ },
12223
+ optionContainer: {
12224
+ display: "flex",
12225
+ justifyContent: "flex-start",
12226
+ alignItems: "center",
12227
+ width: "100%",
12228
+ },
12229
+ optionLabel: {
12230
+ flexGrow: 1,
12231
+ },
12232
+ inputCustom: {
12233
+ color: "rgba(0, 0, 0, 0.87)",
12234
+ cursor: "text",
12235
+ fontSize: "0.7rem",
12236
+ boxSizing: "border-box",
12237
+ fontFamily: '"Roboto", "Helvetica", "Arial", sans-serif',
12238
+ fontWeight: 400,
12239
+ lineHeight: 1.1876,
12240
+ letterSpacing: "0.00938em",
12241
+ "& .MuiOutlinedInput-input": {
12242
+ padding: "10px 10px",
12243
+ },
12244
+ },
12245
+ }); });
12246
+
12297
12247
  var DeleteViewModal = function (_a) {
12298
12248
  var open = _a.open, handleClose = _a.handleClose, view = _a.view;
12299
12249
  var _b = useState(false), isLoading = _b[0], setIsLoading = _b[1];
12300
12250
  var _c = useState(""), error = _c[0], setError = _c[1];
12301
- var removeView = useMutation({
12302
- mutationFn: deleteView,
12303
- onSuccess: function () {
12304
- handleClose(true);
12305
- },
12306
- onError: function (error) {
12307
- setError(error.message);
12308
- },
12309
- });
12310
12251
  var handleSubmit = function () { return __awaiter(void 0, void 0, void 0, function () {
12252
+ var resp;
12311
12253
  return __generator(this, function (_a) {
12312
12254
  switch (_a.label) {
12313
12255
  case 0:
12314
12256
  setIsLoading(true);
12315
12257
  if (!!isNil(view)) return [3 /*break*/, 2];
12316
- return [4 /*yield*/, removeView.mutate(view.ViewId)];
12258
+ return [4 /*yield*/, deleteView(view.ViewId)];
12317
12259
  case 1:
12318
- _a.sent();
12260
+ resp = _a.sent();
12261
+ if (!resp.ok) {
12262
+ setError(resp.message);
12263
+ }
12264
+ else {
12265
+ handleClose(true);
12266
+ }
12319
12267
  _a.label = 2;
12320
12268
  case 2:
12321
12269
  setIsLoading(false);
@@ -12353,28 +12301,22 @@ var EditViewModal = function (_a) {
12353
12301
  var _c = useState(true), isPublic = _c[0], setIsPublic = _c[1];
12354
12302
  var _d = useState(false), isLoading = _d[0], setIsLoading = _d[1];
12355
12303
  var _e = useState(""), error = _e[0], setError = _e[1];
12356
- var updateView = useMutation({
12357
- mutationFn: upsertView,
12358
- onSuccess: function () {
12359
- handleClose(true);
12360
- },
12361
- onError: function (error) {
12362
- setError(error.message);
12363
- },
12364
- });
12365
12304
  var handleSubmit = function () { return __awaiter(void 0, void 0, void 0, function () {
12305
+ var resp;
12366
12306
  return __generator(this, function (_a) {
12367
12307
  switch (_a.label) {
12368
12308
  case 0:
12369
12309
  setIsLoading(true);
12370
12310
  if (!!isNil(view)) return [3 /*break*/, 2];
12371
- return [4 /*yield*/, updateView.mutate({
12372
- viewId: view.ViewId,
12373
- viewName: newName,
12374
- isPublic: isPublic,
12375
- })];
12311
+ return [4 /*yield*/, upsertView(view.ViewId, newName, isPublic)];
12376
12312
  case 1:
12377
- _a.sent();
12313
+ resp = _a.sent();
12314
+ if (!resp.ok) {
12315
+ setError(resp.message);
12316
+ }
12317
+ else {
12318
+ handleClose(true);
12319
+ }
12378
12320
  _a.label = 2;
12379
12321
  case 2:
12380
12322
  setIsLoading(false);
@@ -12418,35 +12360,45 @@ var EditViewModal = function (_a) {
12418
12360
  };
12419
12361
 
12420
12362
  var LoadViewModal = function (_a) {
12421
- var _b;
12422
- var open = _a.open, handleClose = _a.handleClose;
12423
- var queryClient = useQueryClient();
12424
- var _c = useTrendingContext(), _d = _c.state, views = _d.views, viewSelected = _d.viewSelected, _e = _c.actions, setViewTagsAndRefetch = _e.setViewTagsAndRefetch, setViewSelected = _e.setViewSelected;
12363
+ var open = _a.open, handleClose = _a.handleClose, getTagsFromAPI = _a.getTagsFromAPI;
12364
+ var _b = useTrendingContext(), _c = _b.state, views = _c.views, viewSelected = _c.viewSelected, _d = _b.actions; _d.setViews; var setViewTagsAndRefetch = _d.setViewTagsAndRefetch, setViewSelected = _d.setViewSelected;
12425
12365
  var classes = useTrendingStyles();
12426
- var _f = useState(null), viewForDelete = _f[0], setViewForDelete = _f[1];
12427
- var _g = useState(null), viewForEdit = _g[0], setViewForEdit = _g[1];
12428
- var _h = useState(null), optionSelected = _h[0], setOptionSelected = _h[1];
12429
- var _j = useState(false), deleteViewModalOpen = _j[0], setDeleteViewModalOpen = _j[1];
12430
- var _k = useState(false), editViewModalOpen = _k[0], setEditViewModalOpen = _k[1];
12431
- var _l = useState(false), allViewsChecked = _l[0], setAllViewsChecked = _l[1];
12432
- var _m = useState(""), error = _m[0], setError = _m[1];
12433
- var _o = searchViewTags({ 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;
12366
+ var _e = useState(null), viewForDelete = _e[0], setViewForDelete = _e[1];
12367
+ var _f = useState(null), viewForEdit = _f[0], setViewForEdit = _f[1];
12368
+ var _g = useState(false), deleteViewModalOpen = _g[0], setDeleteViewModalOpen = _g[1];
12369
+ var _h = useState(false), editViewModalOpen = _h[0], setEditViewModalOpen = _h[1];
12370
+ var _j = useState(false), allViewsChecked = _j[0], setAllViewsChecked = _j[1];
12371
+ var _k = useState(false), isLoading = _k[0], setIsLoading = _k[1];
12372
+ var _l = useState(""), error = _l[0], setError = _l[1];
12434
12373
  var handleSelect = function () { return __awaiter(void 0, void 0, void 0, function () {
12374
+ var viewTagsResp;
12435
12375
  return __generator(this, function (_a) {
12436
12376
  switch (_a.label) {
12437
12377
  case 0:
12438
- if (!optionSelected) return [3 /*break*/, 2];
12439
- setViewSelected(optionSelected);
12440
- return [4 /*yield*/, queryClient.invalidateQueries({
12441
- queryKey: ["viewTags", viewSelected.ViewId],
12442
- })];
12378
+ if (!viewSelected) return [3 /*break*/, 2];
12379
+ setIsLoading(true);
12380
+ return [4 /*yield*/, getViewTags(viewSelected.ViewId)];
12443
12381
  case 1:
12444
- _a.sent();
12445
- handleClose(true);
12446
- return [2 /*return*/];
12447
- case 2:
12382
+ viewTagsResp = _a.sent();
12383
+ if (viewTagsResp.ok) {
12384
+ setViewTagsAndRefetch(viewTagsResp.data.tables[0].rows.reduce(function (carr, curr, idx) {
12385
+ if (isNil(curr.Color)) {
12386
+ curr.Color = getRandomColor();
12387
+ }
12388
+ carr[curr.TagId] = {
12389
+ viewTag: curr,
12390
+ order: idx,
12391
+ };
12392
+ return carr;
12393
+ }, {}));
12394
+ }
12395
+ else {
12396
+ setError(viewTagsResp.message);
12397
+ }
12398
+ setIsLoading(false);
12448
12399
  handleClose(false);
12449
- return [2 /*return*/];
12400
+ _a.label = 2;
12401
+ case 2: return [2 /*return*/];
12450
12402
  }
12451
12403
  });
12452
12404
  }); };
@@ -12476,20 +12428,6 @@ var LoadViewModal = function (_a) {
12476
12428
  var publicViews = useMemo(function () {
12477
12429
  return views.filter(function (v) { return v.IsPublic === true; });
12478
12430
  }, [views, allViewsChecked]);
12479
- useEffect(function () {
12480
- if (viewTagsSuccess && viewTagsFetched) {
12481
- setViewTagsAndRefetch((viewTags !== null && viewTags !== void 0 ? viewTags : []).reduce(function (carr, curr, idx) {
12482
- if (isNil(curr.Color)) {
12483
- curr.Color = getRandomColor();
12484
- }
12485
- carr[curr.TagId] = {
12486
- viewTag: curr,
12487
- order: idx,
12488
- };
12489
- return carr;
12490
- }, {}));
12491
- }
12492
- }, [viewTagsSuccess, viewTagsFetched]);
12493
12431
  return (React__default.createElement("div", null,
12494
12432
  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" },
12495
12433
  React__default.createElement(MesfModal.Content, null,
@@ -12502,7 +12440,7 @@ var LoadViewModal = function (_a) {
12502
12440
  React__default.createElement(Grid, { item: true, md: 12 },
12503
12441
  React__default.createElement(Autocomplete, { size: "small", id: "list-of-views", noOptionsText: allViewsChecked
12504
12442
  ? "No views detected, please create a new view"
12505
- : "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 (option) { return (React__default.createElement("div", { className: classes.optionContainer },
12443
+ : "No private views detected, please create a new view .", options: allViewsChecked ? views : publicViews, getOptionLabel: function (option) { return option.ViewName; }, onChange: function (ev, val) { return setViewSelected(val); }, defaultValue: viewSelected, style: { width: "100%" }, renderOption: function (option) { return (React__default.createElement("div", { className: classes.optionContainer },
12506
12444
  React__default.createElement("div", { className: classes.optionLabel }, option.ViewName),
12507
12445
  React__default.createElement("div", { className: classes.iconContainer },
12508
12446
  option.IsPublic ? ("") : (React__default.createElement(React__default.Fragment, null,
@@ -12528,35 +12466,17 @@ var LoadViewModal = function (_a) {
12528
12466
  React__default.createElement(MesfModal.Actions, null,
12529
12467
  React__default.createElement("div", { style: { paddingTop: "1rem" } },
12530
12468
  React__default.createElement(Button, { variant: "outlined", style: { marginRight: "1rem" }, color: "secondary", onClick: function () { return handleClose(false); } }, "Cancel"),
12531
- 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"))))),
12532
- React__default.createElement(DeleteViewModal, { open: deleteViewModalOpen, view: viewForDelete, handleClose: function (shouldUpdate) { return __awaiter(void 0, void 0, void 0, function () {
12533
- return __generator(this, function (_a) {
12534
- switch (_a.label) {
12535
- case 0:
12536
- setDeleteViewModalOpen(false);
12537
- if (!shouldUpdate) return [3 /*break*/, 2];
12538
- return [4 /*yield*/, queryClient.invalidateQueries({ queryKey: ["views"] })];
12539
- case 1:
12540
- _a.sent();
12541
- _a.label = 2;
12542
- case 2: return [2 /*return*/];
12543
- }
12544
- });
12545
- }); } }),
12546
- React__default.createElement(EditViewModal, { open: editViewModalOpen, view: viewForEdit, handleClose: function (shouldUpdate) { return __awaiter(void 0, void 0, void 0, function () {
12547
- return __generator(this, function (_a) {
12548
- switch (_a.label) {
12549
- case 0:
12550
- setEditViewModalOpen(false);
12551
- if (!shouldUpdate) return [3 /*break*/, 2];
12552
- return [4 /*yield*/, queryClient.invalidateQueries({ queryKey: ["views"] })];
12553
- case 1:
12554
- _a.sent();
12555
- _a.label = 2;
12556
- case 2: return [2 /*return*/];
12557
- }
12558
- });
12559
- }); } }),
12469
+ views.length ? (React__default.createElement(ButtonWithLoading, { onClick: handleSelect, variant: "contained", color: "primary", isLoading: isLoading, style: { marginRight: "1rem" } }, "Apply")) : (React__default.createElement(Button, { variant: "contained", style: { marginRight: "1rem" }, color: "primary", onClick: function () { return handleClose(false); } }, "Ok"))))),
12470
+ React__default.createElement(DeleteViewModal, { open: deleteViewModalOpen, view: viewForDelete, handleClose: function (shouldUpdate) {
12471
+ setDeleteViewModalOpen(false);
12472
+ if (shouldUpdate)
12473
+ getTagsFromAPI().then(function () { });
12474
+ } }),
12475
+ React__default.createElement(EditViewModal, { open: editViewModalOpen, view: viewForEdit, handleClose: function (shouldUpdate) {
12476
+ setEditViewModalOpen(false);
12477
+ if (shouldUpdate)
12478
+ getTagsFromAPI().then(function () { });
12479
+ } }),
12560
12480
  React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
12561
12481
  };
12562
12482
 
@@ -12569,63 +12489,37 @@ var SaveAsViewModal = function (_a) {
12569
12489
  var _g = useState(true), isPublic = _g[0], setIsPublic = _g[1];
12570
12490
  var _h = useState(""), newView = _h[0], setNewView = _h[1];
12571
12491
  var handleCheck = function () { return setIsPublic(!isPublic); };
12572
- var updateViewTag = useMutation({
12573
- mutationFn: upsertViewTag,
12574
- onError: function (error) {
12575
- setError(error.message);
12576
- },
12577
- });
12578
- var updateView = useMutation({
12579
- mutationFn: upsertView,
12580
- onSuccess: function (viewId) { return __awaiter(void 0, void 0, void 0, function () {
12581
- var shouldClose;
12582
- return __generator(this, function (_a) {
12583
- switch (_a.label) {
12584
- case 0:
12585
- shouldClose = true;
12586
- return [4 /*yield*/, Promise.allSettled(Object.values(viewTags).map(function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
12587
- 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;
12588
- return __generator(this, function (_d) {
12589
- switch (_d.label) {
12590
- case 0: return [4 /*yield*/, updateViewTag.mutate({
12591
- viewId: viewId,
12592
- tagId: TagId,
12593
- color: Color,
12594
- minScale: MinScale,
12595
- maxScale: MaxScale,
12596
- isVisible: IsVisible,
12597
- isAutoScale: IsAutoScale,
12598
- unit: Unit,
12599
- })];
12600
- case 1:
12601
- _d.sent();
12602
- return [2 /*return*/];
12603
- }
12604
- });
12605
- }); }))];
12606
- case 1:
12607
- _a.sent();
12608
- handleClose(shouldClose);
12609
- return [2 /*return*/];
12610
- }
12611
- });
12612
- }); },
12613
- onError: function (error) {
12614
- setError(error.message);
12615
- },
12616
- });
12617
12492
  var handleSubmit = function () { return __awaiter(void 0, void 0, void 0, function () {
12493
+ var resp, ViewId_1, shouldClose_1;
12618
12494
  return __generator(this, function (_a) {
12619
12495
  switch (_a.label) {
12620
12496
  case 0:
12621
12497
  setIsLoading(true);
12622
- return [4 /*yield*/, updateView.mutate({
12623
- viewId: null,
12624
- viewName: newView,
12625
- isPublic: isPublic,
12626
- })];
12498
+ return [4 /*yield*/, upsertView(null, newView, isPublic)];
12627
12499
  case 1:
12500
+ resp = _a.sent();
12501
+ if (!resp.ok) return [3 /*break*/, 3];
12502
+ ViewId_1 = resp.data.returnValue;
12503
+ shouldClose_1 = true;
12504
+ return [4 /*yield*/, Promise.allSettled(Object.values(viewTags).map(function (_a) {
12505
+ var _b = _a.viewTag, TagId = _b.TagId, Color = _b.Color, MinScale = _b.MinScale, MaxScale = _b.MaxScale, IsAutoScale = _b.IsAutoScale, IsVisible = _b.IsVisible, Unit = _b.Unit;
12506
+ upsertViewTag(ViewId_1, TagId, Color, MinScale, MaxScale, IsVisible, IsAutoScale, Unit).then(function (r) {
12507
+ if (!r.ok) {
12508
+ setError(function (prevErr) { return "".concat(prevErr, ". ").concat(r.message); });
12509
+ if (shouldClose_1) {
12510
+ shouldClose_1 = false;
12511
+ }
12512
+ }
12513
+ });
12514
+ }))];
12515
+ case 2:
12628
12516
  _a.sent();
12517
+ handleClose(shouldClose_1);
12518
+ return [3 /*break*/, 4];
12519
+ case 3:
12520
+ setError(resp.message);
12521
+ _a.label = 4;
12522
+ case 4:
12629
12523
  setIsLoading(false);
12630
12524
  return [2 /*return*/];
12631
12525
  }
@@ -12791,14 +12685,8 @@ var NewFolderModal = function (_a) {
12791
12685
  var _b = useState(), name = _b[0], setName = _b[1];
12792
12686
  var _c = useState(""), error = _c[0], setError = _c[1];
12793
12687
  var _d = useState(false), isLoading = _d[0], setIsLoading = _d[1];
12794
- var updateTagFolder = useMutation({
12795
- mutationFn: upsertTagFolder,
12796
- onError: function (error) {
12797
- setError(error.message);
12798
- },
12799
- });
12800
12688
  var onSubmit = function (e) { return __awaiter(void 0, void 0, void 0, function () {
12801
- var parentId, parentTagId;
12689
+ var parentId, parentTagId, resp;
12802
12690
  var _a;
12803
12691
  return __generator(this, function (_b) {
12804
12692
  switch (_b.label) {
@@ -12810,14 +12698,12 @@ var NewFolderModal = function (_a) {
12810
12698
  : parentId;
12811
12699
  setIsLoading(true);
12812
12700
  if (!name) return [3 /*break*/, 2];
12813
- return [4 /*yield*/, updateTagFolder.mutate({
12814
- tagFolderId: null,
12815
- parentTagFolderId: parentTagId,
12816
- tagFolderName: name,
12817
- isActive: true,
12818
- })];
12701
+ return [4 /*yield*/, upsertTagFolder(null, parentTagId, name, true)];
12819
12702
  case 1:
12820
- _b.sent();
12703
+ resp = _b.sent();
12704
+ if (!resp.ok) {
12705
+ setError(resp.message);
12706
+ }
12821
12707
  _b.label = 2;
12822
12708
  case 2:
12823
12709
  handleClose(true);
@@ -12844,44 +12730,36 @@ var RemoveFolderModal = function (_a) {
12844
12730
  var open = _a.open, handleClose = _a.handleClose, tagNodeSelectedInTree = _a.tagNodeSelectedInTree;
12845
12731
  var _b = useState(""), error = _b[0], setError = _b[1];
12846
12732
  var _c = useState(false), isLoading = _c[0], setIsLoading = _c[1];
12847
- var updateTagFolder = useMutation({
12848
- mutationFn: upsertTagFolder,
12849
- onError: function (error) {
12850
- setError(error.message);
12851
- },
12852
- });
12853
- var removeFolder = useMutation({
12854
- mutationFn: deleteTagFolder,
12855
- onError: function (error) {
12856
- setError(error.message);
12857
- },
12858
- });
12859
12733
  var onSubmit = function (e) { return __awaiter(void 0, void 0, void 0, function () {
12860
- var parentId, name_1, id;
12734
+ var parentId, name_1, id, resp;
12861
12735
  return __generator(this, function (_a) {
12862
12736
  switch (_a.label) {
12863
12737
  case 0:
12864
12738
  e.preventDefault();
12865
- if (!tagNodeSelectedInTree) return [3 /*break*/, 4];
12739
+ if (!tagNodeSelectedInTree) return [3 /*break*/, 5];
12866
12740
  parentId = Number(tagNodeSelectedInTree === null || tagNodeSelectedInTree === void 0 ? void 0 : tagNodeSelectedInTree.parent) || null;
12867
12741
  name_1 = tagNodeSelectedInTree === null || tagNodeSelectedInTree === void 0 ? void 0 : tagNodeSelectedInTree.text;
12868
12742
  id = Number(tagNodeSelectedInTree === null || tagNodeSelectedInTree === void 0 ? void 0 : tagNodeSelectedInTree.id);
12743
+ resp = void 0;
12869
12744
  setIsLoading(true);
12870
12745
  if (!parentId) return [3 /*break*/, 2];
12871
- return [4 /*yield*/, removeFolder.mutate(id)];
12746
+ return [4 /*yield*/, deleteTagFolder(id)];
12872
12747
  case 1:
12873
- _a.sent();
12748
+ resp = _a.sent();
12749
+ if (!resp.ok) {
12750
+ setError(resp.message);
12751
+ }
12874
12752
  return [3 /*break*/, 4];
12875
- case 2: return [4 /*yield*/, updateTagFolder.mutate({
12876
- tagFolderId: id,
12877
- parentTagFolderId: parentId,
12878
- tagFolderName: name_1,
12879
- isActive: false,
12880
- })];
12753
+ case 2: return [4 /*yield*/, upsertTagFolder(id, parentId, name_1, false)];
12881
12754
  case 3:
12882
- _a.sent();
12755
+ resp = _a.sent();
12883
12756
  _a.label = 4;
12884
12757
  case 4:
12758
+ if (!resp.ok) {
12759
+ setError(resp.message);
12760
+ }
12761
+ _a.label = 5;
12762
+ case 5:
12885
12763
  handleClose(true);
12886
12764
  setIsLoading(false);
12887
12765
  return [2 /*return*/];
@@ -12997,7 +12875,7 @@ var TagFolderCustomNode = function (_a) {
12997
12875
  var TagSelectionModal = function (_a) {
12998
12876
  var isOpen = _a.isOpen; _a.onClose; var onTagSelect = _a.onTagSelect;
12999
12877
  var classes = useTagsTreeModalStyles();
13000
- var _b = useState(false), isLoading = _b[0], setIsLoading = _b[1];
12878
+ var _b = useState(true), isLoading = _b[0], setIsLoading = _b[1];
13001
12879
  var _c = useState(""), error = _c[0], setError = _c[1];
13002
12880
  var _d = useState([]), tagsTreeData = _d[0], setTagsTreeData = _d[1];
13003
12881
  var _e = useState(null), tagNodeSelectedInTree = _e[0], setTagNodeSelectedInTree = _e[1];
@@ -13006,6 +12884,7 @@ var TagSelectionModal = function (_a) {
13006
12884
  var backendOffset = 1000000;
13007
12885
  var _h = useState({}), openTagFolders = _h[0], setOpenTagFolders = _h[1];
13008
12886
  var _j = useState([]), selectedNodes = _j[0], setSelectedNodes = _j[1];
12887
+ useTrendingContext().state.viewTags;
13009
12888
  var handleContextMenu = function (data, e) {
13010
12889
  e.preventDefault();
13011
12890
  var top = e.clientY;
@@ -13018,24 +12897,35 @@ var TagSelectionModal = function (_a) {
13018
12897
  setTagNodeSelectedInTree(selectedNode);
13019
12898
  }
13020
12899
  };
13021
- var _k = searchTagsTree(), tagsTree = _k.data, tagsTreeLoading = _k.isLoading, tagsTreeIsError = _k.isError, tagsTreeError = _k.error, tagsTreeIsSuccess = _k.isSuccess, tagsTreeIsFetched = _k.isFetched, refetch = _k.refetch;
13022
- var updateTagFolder = useMutation({
13023
- mutationFn: upsertTagFolder,
13024
- onError: function (error) {
13025
- setError(error.message);
13026
- },
13027
- });
13028
- var changeTagFolderTag = useMutation({
13029
- mutationFn: changeTagFolderToTag,
13030
- onError: function (error) {
13031
- setError(error.message);
13032
- },
13033
- });
12900
+ var getTagsTreeData = function () { return __awaiter(void 0, void 0, void 0, function () {
12901
+ var tagsTree, rows, tree;
12902
+ return __generator(this, function (_a) {
12903
+ switch (_a.label) {
12904
+ case 0:
12905
+ if (!isOpen) return [3 /*break*/, 2];
12906
+ setIsLoading(true);
12907
+ return [4 /*yield*/, getTagsTree()];
12908
+ case 1:
12909
+ tagsTree = _a.sent();
12910
+ if (tagsTree.ok) {
12911
+ rows = tagsTree.data.tables[0].rows;
12912
+ tree = buildTagsTreeV2(rows);
12913
+ setTagsTreeData(tree);
12914
+ }
12915
+ setIsLoading(false);
12916
+ _a.label = 2;
12917
+ case 2: return [2 /*return*/];
12918
+ }
12919
+ });
12920
+ }); };
13034
12921
  var expanded = useMemo(function () {
13035
12922
  return Object.keys(openTagFolders).map(function (el) { return Number.parseInt(el); });
13036
12923
  }, [openTagFolders]);
12924
+ useEffect(function () {
12925
+ getTagsTreeData();
12926
+ }, [isOpen]);
13037
12927
  var handleDrop = function (tree, options) { return __awaiter(void 0, void 0, void 0, function () {
13038
- var tagId, newFolderId;
12928
+ var tagId, newFolderId, newTree, newTree;
13039
12929
  var _a, _b;
13040
12930
  return __generator(this, function (_c) {
13041
12931
  switch (_c.label) {
@@ -13049,18 +12939,19 @@ var TagSelectionModal = function (_a) {
13049
12939
  return [2 /*return*/];
13050
12940
  }
13051
12941
  if (!(((_b = options.dragSource.data) === null || _b === void 0 ? void 0 : _b.TagTypeCode) === "F")) return [3 /*break*/, 2];
13052
- return [4 /*yield*/, updateTagFolder.mutate({
13053
- tagFolderId: tagId,
13054
- parentTagFolderId: newFolderId,
13055
- tagFolderName: options.dragSource.text,
13056
- isActive: true,
13057
- })];
12942
+ return [4 /*yield*/, upsertTagFolder(tagId, newFolderId, options.dragSource.text, true)];
13058
12943
  case 1:
13059
- _c.sent();
12944
+ newTree = _c.sent();
12945
+ if (!newTree.ok) {
12946
+ setError(newTree.message);
12947
+ }
13060
12948
  return [3 /*break*/, 4];
13061
- case 2: return [4 /*yield*/, changeTagFolderTag.mutate({ tagId: tagId, tagFolderId: newFolderId })];
12949
+ case 2: return [4 /*yield*/, changeTagFolderToTag(tagId, newFolderId)];
13062
12950
  case 3:
13063
- _c.sent();
12951
+ newTree = _c.sent();
12952
+ if (!newTree.ok) {
12953
+ setError(newTree.message);
12954
+ }
13064
12955
  _c.label = 4;
13065
12956
  case 4:
13066
12957
  setTagsTreeData(tree);
@@ -13081,29 +12972,13 @@ var TagSelectionModal = function (_a) {
13081
12972
  setShowContextMenu(false);
13082
12973
  }
13083
12974
  };
13084
- useEffect(function () {
13085
- if (isOpen) {
13086
- refetch();
13087
- }
13088
- }, [isOpen]);
13089
- useEffect(function () {
13090
- if (isOpen) {
13091
- var tree = buildTagsTreeV2(tagsTree !== null && tagsTree !== void 0 ? tagsTree : []);
13092
- setTagsTreeData(tree);
13093
- }
13094
- }, [tagsTreeIsSuccess, tagsTreeIsFetched]);
13095
- useEffect(function () {
13096
- if (tagsTreeError && tagsTreeIsError) {
13097
- setError(tagsTreeError.message);
13098
- }
13099
- }, [tagsTreeError, tagsTreeIsError]);
13100
12975
  return (React__default.createElement(React__default.Fragment, null,
13101
12976
  React__default.createElement("div", { style: {
13102
12977
  display: isOpen ? "block" : "none",
13103
12978
  minHeight: "700px",
13104
12979
  minWidth: "800px",
13105
12980
  }, onClick: handleCloseContextMenu },
13106
- React__default.createElement("div", { style: { overflowY: "auto", maxHeight: "700px" } }, isLoading || tagsTreeLoading ? (React__default.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center", style: { minHeight: "100px" } },
12981
+ React__default.createElement("div", { style: { overflowY: "auto", maxHeight: "700px" } }, isLoading ? (React__default.createElement(Grid, { container: true, justifyContent: "center", alignItems: "center", style: { minHeight: "100px" } },
13107
12982
  React__default.createElement(CircularProgress, { size: "2rem" }))) : (React__default.createElement(DndProvider$1, { backend: HTML5Backend },
13108
12983
  React__default.createElement(Tree, { classes: {
13109
12984
  root: classes.assetRoot,
@@ -13120,7 +12995,7 @@ var TagSelectionModal = function (_a) {
13120
12995
  }, dragPreviewRender: function (monitorProps) { return (React__default.createElement(CustomDragPreview, { monitorProps: monitorProps })
13121
12996
  // <div>{monitorProps.item.data?.TagName}</div>
13122
12997
  ); } }))))),
13123
- React__default.createElement(ContextMenu, { anchorPoint: anchorPoint, isOpen: showContextMenu, setShowContextMenu: setShowContextMenu, tagNodeSelectedInTree: tagNodeSelectedInTree, getTagsTreeData: function () { return refetch(); } }),
12998
+ React__default.createElement(ContextMenu, { anchorPoint: anchorPoint, isOpen: showContextMenu, setShowContextMenu: setShowContextMenu, tagNodeSelectedInTree: tagNodeSelectedInTree, getTagsTreeData: getTagsTreeData }),
13124
12999
  React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } })));
13125
13000
  };
13126
13001
 
@@ -13331,122 +13206,67 @@ var formatTimeDiffWithMs = function (start, end) {
13331
13206
  };
13332
13207
 
13333
13208
  var TableComponent = function (_a) {
13334
- var chartData = _a.chartData, cursorData = _a.cursorData; _a.viewTagForDelete; var setViewTagForDelete = _a.setViewTagForDelete, selectedRowTagId = _a.selectedRowTagId, setSelectedRowTagId = _a.setSelectedRowTagId;
13209
+ var chartData = _a.chartData, cursorData = _a.cursorData, getTagsFromAPI = _a.getTagsFromAPI, viewTagForDelete = _a.viewTagForDelete, setViewTagForDelete = _a.setViewTagForDelete, selectedRowTagId = _a.selectedRowTagId, setSelectedRowTagId = _a.setSelectedRowTagId, handleRightClick = _a.handleRightClick; _a.setContextMenuPosition; var contextMenuPosition = _a.contextMenuPosition, openContextMenu = _a.openContextMenu, setOpenContextMenu = _a.setOpenContextMenu;
13335
13210
  var classes = useTagsTableStyles();
13336
- var queryClient = useQueryClient();
13337
- var _b = useContextMenuMESF(), registerConfig = _b.registerConfig, showContextMenu = _b.showContextMenu;
13338
- var _c = useTrendingContext(), _d = _c.state, viewTags = _d.viewTags, viewSelected = _d.viewSelected, _e = _c.actions, setViewTags = _e.setViewTags, setViewTagsAndRefetch = _e.setViewTagsAndRefetch;
13211
+ var _b = useTrendingContext(), _c = _b.state, viewTags = _c.viewTags, viewSelected = _c.viewSelected, _d = _b.actions, setViewTags = _d.setViewTags, setViewTagsAndRefetch = _d.setViewTagsAndRefetch;
13212
+ var _e = useState({}); _e[0]; _e[1];
13339
13213
  var _f = useState(""), error = _f[0], setError = _f[1];
13340
13214
  var _g = useState(false); _g[0]; var setIsLoading = _g[1];
13341
13215
  var _h = useState(false), tagsTreeModalOpen = _h[0], setTagsTreeModalOpen = _h[1];
13342
13216
  var _j = useState(false), saveAsViewModalOpen = _j[0], setSaveAsViewModalOpen = _j[1];
13343
13217
  var _k = useState(false), loadViewOpen = _k[0], setLoadViewOpen = _k[1];
13344
13218
  var _l = useState(""), snackbarMessage = _l[0], setSnackbarMessage = _l[1];
13345
- var deleteAllViewTags = useMutation({
13346
- mutationFn: deleteAllViewTagsFromView,
13347
- onError: function (error) {
13348
- setError(error.message);
13349
- },
13350
- });
13351
- var updateView = useMutation({
13352
- mutationFn: upsertView,
13353
- onSuccess: function () { return __awaiter(void 0, void 0, void 0, function () {
13354
- var results;
13355
- var _a;
13356
- return __generator(this, function (_b) {
13357
- switch (_b.label) {
13358
- case 0: return [4 /*yield*/, deleteAllViewTags.mutate((_a = viewSelected === null || viewSelected === void 0 ? void 0 : viewSelected.ViewId) !== null && _a !== void 0 ? _a : 0)];
13359
- case 1:
13360
- _b.sent();
13361
- return [4 /*yield*/, Promise.allSettled(Object.values(viewTags)
13362
- .sort(function (a, b) { return b.order - a.order; })
13363
- .map(function (_a) {
13364
- var _b;
13365
- 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;
13366
- updateViewTag.mutate({
13367
- viewId: (_b = viewSelected === null || viewSelected === void 0 ? void 0 : viewSelected.ViewId) !== null && _b !== void 0 ? _b : 0,
13368
- tagId: TagId,
13369
- color: Color,
13370
- minScale: MinScale,
13371
- maxScale: MaxScale,
13372
- isVisible: IsVisible,
13373
- isAutoScale: IsAutoScale,
13374
- unit: Unit,
13375
- });
13376
- }))];
13377
- case 2:
13378
- results = _b.sent();
13379
- results.forEach(function (result, index) {
13380
- if (result.status === "rejected") {
13381
- setError("Tag ".concat(index, " failed with reason: ").concat(result.reason));
13382
- }
13383
- else {
13384
- setSelectedRowTagId(null);
13385
- setSnackbarMessage("View saved successfully");
13386
- }
13387
- });
13388
- return [2 /*return*/];
13389
- }
13390
- });
13391
- }); },
13392
- onError: function (error) {
13393
- setError(error.message);
13394
- },
13395
- });
13396
- var saveTags = useMutation({
13397
- mutationFn: saveTagDefaults,
13398
- onError: function (error) {
13399
- setError(error.message);
13400
- },
13401
- });
13402
- var updateViewTag = useMutation({
13403
- mutationFn: upsertViewTag,
13404
- onError: function (error) {
13405
- setError(error.message);
13406
- },
13407
- });
13408
13219
  var dataTable = useTagsDataTable({
13409
13220
  viewTagsMap: viewTags,
13410
13221
  chartData: chartData,
13411
13222
  cursorData: cursorData,
13412
13223
  });
13413
13224
  var handleChange = function (tagId, value, property) {
13414
- var _a, _b;
13415
- 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)));
13225
+ var newTags = structuredClone(viewTags);
13226
+ newTags[tagId]["viewTag"][property] = value;
13227
+ newTags[tagId]["viewTag"]["IsAutoScale"] = false;
13228
+ setViewTags(newTags);
13416
13229
  };
13417
13230
  var handleChangeScale = function (value, scale, tagId) {
13418
13231
  handleChange(tagId, value, scale);
13419
13232
  };
13420
13233
  var handleChangeAlias = function (tagId, newName) {
13421
- var _a;
13422
- setViewTags(__assign(__assign({}, viewTags), (_a = {}, _a[tagId] = __assign(__assign({}, viewTags[tagId]), { viewTag: __assign(__assign({}, viewTags[tagId].viewTag), { Alias: newName }) }), _a)));
13234
+ var newTags = structuredClone(viewTags);
13235
+ newTags[tagId]["viewTag"]["Alias"] = newName;
13236
+ setViewTags(newTags);
13423
13237
  };
13424
13238
  var handleVisibilityChange = function (tagId, value) {
13425
- var _a;
13426
- setViewTags(__assign(__assign({}, viewTags), (_a = {}, _a[tagId] = __assign(__assign({}, viewTags[tagId]), { viewTag: __assign(__assign({}, viewTags[tagId].viewTag), { IsVisible: value }) }), _a)));
13239
+ var newTags = structuredClone(viewTags);
13240
+ newTags[tagId]["viewTag"]["IsVisible"] = value;
13241
+ setViewTags(newTags);
13427
13242
  };
13428
13243
  var handleUnitChange = function (tagId, newUnit) {
13429
- var _a;
13430
- setViewTags(__assign(__assign({}, viewTags), (_a = {}, _a[tagId] = __assign(__assign({}, viewTags[tagId]), { viewTag: __assign(__assign({}, viewTags[tagId].viewTag), { Unit: newUnit }) }), _a)));
13244
+ var newTags = structuredClone(viewTags);
13245
+ newTags[tagId]["viewTag"]["Unit"] = newUnit;
13246
+ setViewTags(newTags);
13431
13247
  };
13432
13248
  var handleAutoScaleChange = function (tagId, checked) {
13433
- var _a;
13434
- setViewTags(__assign(__assign({}, viewTags), (_a = {}, _a[tagId] = __assign(__assign({}, viewTags[tagId]), { viewTag: __assign(__assign({}, viewTags[tagId].viewTag), { IsAutoScale: !checked }) }), _a)));
13249
+ var newTags = structuredClone(viewTags);
13250
+ newTags[tagId]["viewTag"]["IsAutoScale"] = !checked;
13251
+ setViewTags(newTags);
13435
13252
  };
13436
13253
  var handleColorChange = function (tagId, value) {
13437
- var _a;
13438
- setViewTags(__assign(__assign({}, viewTags), (_a = {}, _a[tagId] = __assign(__assign({}, viewTags[tagId]), { viewTag: __assign(__assign({}, viewTags[tagId].viewTag), { Color: value }) }), _a)));
13254
+ var newTags = structuredClone(viewTags);
13255
+ newTags[tagId]["viewTag"]["Color"] = value;
13256
+ setViewTags(newTags);
13439
13257
  };
13440
13258
  var handleDeleteTag = function (tagId) {
13441
- var _a = viewTags, _b = tagId; _a[_b]; var newTags = __rest(_a, [typeof _b === "symbol" ? _b : _b + ""]);
13259
+ var newTags = structuredClone(viewTags);
13260
+ delete newTags[tagId];
13442
13261
  setViewTagsAndRefetch(newTags);
13443
13262
  };
13444
13263
  var handleAddTag = function (newTag) {
13445
- var _a;
13446
- setViewTagsAndRefetch(__assign(__assign({}, viewTags), (_a = {}, _a[newTag.TagId] = {
13264
+ var newTags = structuredClone(viewTags);
13265
+ newTags[newTag.TagId] = {
13447
13266
  viewTag: __assign(__assign({}, newTag), { IsVisible: true, TagType: newTag.TagTypeCode, Color: newTag.Color || getRandomColor(), IsAutoScale: newTag.MinScale || newTag.MaxScale ? false : true }),
13448
13267
  order: Object.keys(viewTags).length,
13449
- }, _a)));
13268
+ };
13269
+ setViewTagsAndRefetch(newTags);
13450
13270
  };
13451
13271
  var handleAbleScales = function (tagId, checked) {
13452
13272
  if (checked) {
@@ -13454,62 +13274,69 @@ var TableComponent = function (_a) {
13454
13274
  }
13455
13275
  };
13456
13276
  var handleClose = function () { return setTagsTreeModalOpen(false); };
13457
- var getMenuOptions = function (data) {
13458
- var options = [];
13459
- if (data) {
13460
- options.push({
13461
- key: "delete",
13462
- name: "Remove Tag",
13463
- onClick: function () {
13464
- if (!isNil(data)) {
13465
- handleDeleteTag(data.TagId);
13466
- setSelectedRowTagId(null);
13467
- setViewTagForDelete(null);
13468
- }
13469
- },
13470
- });
13471
- }
13472
- options = options.concat([
13473
- {
13474
- key: "add",
13475
- name: "Tags Tree",
13476
- onClick: function () {
13477
- setTagsTreeModalOpen(true);
13478
- },
13277
+ var ContextMenu = function (_a) {
13278
+ var x = _a.x, y = _a.y, options = _a.options;
13279
+ var handleContextMenuClick = function (e) {
13280
+ e.stopPropagation(); // Prevent click inside the menu from closing it
13281
+ };
13282
+ return (React__default.createElement("div", { className: "context-menu", style: { top: y, left: x }, onClick: handleContextMenuClick },
13283
+ React__default.createElement("ul", null, options.map(function (option) { return (React__default.createElement("li", { key: option.id, onClick: option.onClick }, option.label)); }))));
13284
+ };
13285
+ var contextMenuOptions = [];
13286
+ if (viewTagForDelete) {
13287
+ contextMenuOptions.push({
13288
+ id: "delete",
13289
+ label: "Remove Tag",
13290
+ onClick: function () {
13291
+ handleDelete();
13292
+ setOpenContextMenu(false);
13479
13293
  },
13480
- {
13481
- key: "saveDefault",
13482
- name: "Save Default To Tag",
13483
- onClick: function () {
13484
- handleSaveDefaultToTag(data.TagId);
13485
- },
13294
+ });
13295
+ }
13296
+ contextMenuOptions.push.apply(contextMenuOptions, [
13297
+ {
13298
+ id: "add",
13299
+ label: "Tags Tree",
13300
+ onClick: function () {
13301
+ setTagsTreeModalOpen(true);
13302
+ setOpenContextMenu(false);
13486
13303
  },
13487
- {
13488
- key: "saveView",
13489
- name: "Save View",
13490
- onClick: function () {
13491
- handleSaveView();
13492
- },
13304
+ },
13305
+ {
13306
+ id: "saveDefault",
13307
+ label: "Save Default To Tag",
13308
+ onClick: function () {
13309
+ handleSaveDefaultToTag();
13310
+ setOpenContextMenu(false);
13493
13311
  },
13494
- {
13495
- key: "saveViewAs",
13496
- name: "Save View as",
13497
- onClick: function () {
13498
- setSaveAsViewModalOpen(true);
13499
- },
13312
+ },
13313
+ {
13314
+ id: "saveView",
13315
+ label: "Save View",
13316
+ onClick: function () {
13317
+ handleSaveView();
13318
+ setOpenContextMenu(false);
13500
13319
  },
13501
- {
13502
- key: "loadView",
13503
- name: "Load View",
13504
- onClick: function () {
13505
- setLoadViewOpen(true);
13506
- },
13320
+ },
13321
+ {
13322
+ id: "saveViewAs",
13323
+ label: "Save View as",
13324
+ onClick: function () {
13325
+ setSaveAsViewModalOpen(true);
13326
+ setOpenContextMenu(false);
13507
13327
  },
13508
- ]);
13509
- return options;
13510
- };
13328
+ },
13329
+ {
13330
+ id: "loadView",
13331
+ label: "Load View",
13332
+ onClick: function () {
13333
+ setLoadViewOpen(true);
13334
+ setOpenContextMenu(false);
13335
+ },
13336
+ },
13337
+ ]);
13511
13338
  var handleTagSelect = function (selectedTag) {
13512
- var alreadySelected = viewTags[selectedTag.Tagkey];
13339
+ var alreadySelected = viewTags[selectedTag.TagId];
13513
13340
  if (!alreadySelected) {
13514
13341
  handleAddTag(selectedTag);
13515
13342
  }
@@ -13517,7 +13344,20 @@ var TableComponent = function (_a) {
13517
13344
  setError("".concat(selectedTag.TagName, " is already selected"));
13518
13345
  }
13519
13346
  };
13347
+ var handleDelete = function () { return __awaiter(void 0, void 0, void 0, function () {
13348
+ return __generator(this, function (_a) {
13349
+ if (!isNil(viewTagForDelete)) {
13350
+ if (viewSelected === null || viewSelected === void 0 ? void 0 : viewSelected.ViewId) {
13351
+ handleDeleteTag(viewTagForDelete.TagId);
13352
+ }
13353
+ setSelectedRowTagId(null); // Reset the selected row index
13354
+ setViewTagForDelete(null);
13355
+ }
13356
+ return [2 /*return*/];
13357
+ });
13358
+ }); };
13520
13359
  var handleSaveView = function () { return __awaiter(void 0, void 0, void 0, function () {
13360
+ var resp, deleteResp, results;
13521
13361
  return __generator(this, function (_a) {
13522
13362
  switch (_a.label) {
13523
13363
  case 0:
@@ -13526,19 +13366,46 @@ var TableComponent = function (_a) {
13526
13366
  return [2 /*return*/];
13527
13367
  case 1:
13528
13368
  setIsLoading(true);
13529
- if (!(viewSelected === null || viewSelected === void 0 ? void 0 : viewSelected.ViewId)) return [3 /*break*/, 3];
13530
- return [4 /*yield*/, updateView.mutate({
13531
- viewId: viewSelected === null || viewSelected === void 0 ? void 0 : viewSelected.ViewId,
13532
- viewName: viewSelected.ViewName,
13533
- isPublic: viewSelected.IsPublic,
13534
- })];
13369
+ if (!(viewSelected === null || viewSelected === void 0 ? void 0 : viewSelected.ViewId)) return [3 /*break*/, 6];
13370
+ return [4 /*yield*/, upsertView(viewSelected === null || viewSelected === void 0 ? void 0 : viewSelected.ViewId, viewSelected.ViewName, viewSelected.IsPublic)];
13535
13371
  case 2:
13536
- _a.sent();
13537
- _a.label = 3;
13372
+ resp = _a.sent();
13373
+ if (!resp.ok) return [3 /*break*/, 5];
13374
+ return [4 /*yield*/, deleteAllViewTagsFromView(viewSelected.ViewId)];
13538
13375
  case 3:
13376
+ deleteResp = _a.sent();
13377
+ if (!deleteResp.ok) {
13378
+ setError(deleteResp.message);
13379
+ }
13380
+ return [4 /*yield*/, Promise.allSettled(Object.values(viewTags)
13381
+ .sort(function (a, b) { return b.order - a.order; })
13382
+ .map(function (_a) {
13383
+ var _b = _a.viewTag, TagId = _b.TagId, Color = _b.Color, MinScale = _b.MinScale, MaxScale = _b.MaxScale, IsAutoScale = _b.IsAutoScale, IsVisible = _b.IsVisible, Unit = _b.Unit;
13384
+ upsertViewTag(viewSelected === null || viewSelected === void 0 ? void 0 : viewSelected.ViewId, TagId, Color, MinScale, MaxScale, IsVisible, IsAutoScale, Unit).then(function (r) {
13385
+ if (!r.ok) {
13386
+ setError(r.message);
13387
+ }
13388
+ });
13389
+ }))];
13390
+ case 4:
13391
+ results = _a.sent();
13392
+ results.forEach(function (result, index) {
13393
+ if (result.status === "rejected") {
13394
+ setError("Tag ".concat(index, " failed with reason: ").concat(result.reason));
13395
+ }
13396
+ else {
13397
+ setSelectedRowTagId(null);
13398
+ setSnackbarMessage("View saved successfully");
13399
+ }
13400
+ });
13401
+ return [3 /*break*/, 6];
13402
+ case 5:
13403
+ setError(resp.message);
13404
+ _a.label = 6;
13405
+ case 6:
13539
13406
  setIsLoading(false);
13540
- _a.label = 4;
13541
- case 4: return [2 /*return*/];
13407
+ _a.label = 7;
13408
+ case 7: return [2 /*return*/];
13542
13409
  }
13543
13410
  });
13544
13411
  }); };
@@ -13568,47 +13435,31 @@ var TableComponent = function (_a) {
13568
13435
  document.removeEventListener("keydown", handleKeyDown);
13569
13436
  };
13570
13437
  }, [selectedRowTagId]);
13571
- var handleSaveDefaultToTag = function (selectedRowTagId) { return __awaiter(void 0, void 0, void 0, function () {
13572
- var _a, TagId, Alias, Color, MinScale, MaxScale, Unit, IsVisible, IsAutoScale;
13438
+ var handleSaveDefaultToTag = function () { return __awaiter(void 0, void 0, void 0, function () {
13439
+ var _a, TagId, Alias, Color, MinScale, MaxScale, Unit, IsVisible, IsAutoScale, saveTagDefaultsResp, upsertViewTagResp;
13573
13440
  return __generator(this, function (_b) {
13574
13441
  switch (_b.label) {
13575
13442
  case 0:
13576
13443
  if (!(viewSelected && selectedRowTagId !== null)) return [3 /*break*/, 3];
13577
13444
  _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;
13578
- return [4 /*yield*/, saveTags.mutate({
13579
- tagId: TagId,
13580
- alias: Alias,
13581
- color: Color,
13582
- minScale: MinScale,
13583
- maxScale: MaxScale,
13584
- unit: Unit,
13585
- })];
13445
+ return [4 /*yield*/, saveTagDefaults(TagId, Alias, Color, MinScale, MaxScale, Unit)];
13586
13446
  case 1:
13587
- _b.sent();
13588
- return [4 /*yield*/, updateViewTag.mutate({
13589
- viewId: viewSelected === null || viewSelected === void 0 ? void 0 : viewSelected.ViewId,
13590
- tagId: TagId,
13591
- color: Color,
13592
- minScale: MinScale,
13593
- maxScale: MaxScale,
13594
- isVisible: IsVisible,
13595
- isAutoScale: IsAutoScale,
13596
- unit: Unit,
13597
- })];
13447
+ saveTagDefaultsResp = _b.sent();
13448
+ return [4 /*yield*/, upsertViewTag(viewSelected === null || viewSelected === void 0 ? void 0 : viewSelected.ViewId, TagId, Color, MinScale, MaxScale, IsVisible, IsAutoScale, Unit)];
13598
13449
  case 2:
13599
- _b.sent();
13450
+ upsertViewTagResp = _b.sent();
13451
+ if (!saveTagDefaultsResp.ok) {
13452
+ setError(saveTagDefaultsResp.message);
13453
+ }
13454
+ if (!upsertViewTagResp.ok) {
13455
+ setError(upsertViewTagResp.message);
13456
+ }
13600
13457
  setSelectedRowTagId(null);
13601
13458
  _b.label = 3;
13602
13459
  case 3: return [2 /*return*/];
13603
13460
  }
13604
13461
  });
13605
13462
  }); };
13606
- useEffect(function () {
13607
- registerConfig({
13608
- id: "chartContext",
13609
- getOptions: getMenuOptions,
13610
- });
13611
- }, [viewTags, selectedRowTagId]);
13612
13463
  return (React__default.createElement(React__default.Fragment, null,
13613
13464
  React__default.createElement(Grid, { container: true, spacing: 1, alignContent: "flex-start", style: {
13614
13465
  height: "100%",
@@ -13622,21 +13473,20 @@ var TableComponent = function (_a) {
13622
13473
  left: 0,
13623
13474
  zIndex: 1000,
13624
13475
  } },
13625
- React__default.createElement(TableContainer, { component: Paper, style: {
13626
- overflowX: "auto",
13627
- width: "100%",
13628
- boxShadow: "none",
13629
- border: "none",
13630
- } },
13631
- React__default.createElement(Table, { size: "small", style: { width: "100%", tableLayout: "fixed" } },
13632
- React__default.createElement(TableHead, null,
13633
- React__default.createElement(TableRow, null,
13634
- React__default.createElement(TableCell, { align: "center", className: "".concat(classes.topTitles, " ").concat(classes.viewSelected) }, viewSelected ? (React__default.createElement(Button, { variant: "text", style: { color: "#0075ff" }, className: classes.viewSelected, 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: { color: "#0075ff" }, className: classes.viewSelected, onClick: function () { return setSaveAsViewModalOpen(true); } },
13476
+ React__default.createElement("div", { style: { overflowX: "auto", width: "100%" } },
13477
+ React__default.createElement("table", { style: {
13478
+ width: "100%",
13479
+ tableLayout: "fixed",
13480
+ textAlign: "center",
13481
+ } },
13482
+ React__default.createElement("thead", null,
13483
+ React__default.createElement("tr", null,
13484
+ React__default.createElement("th", { className: "".concat(classes.topTitles, " ").concat(classes.viewSelected) }, viewSelected ? (React__default.createElement(Button, { variant: "text", style: { color: "#0075ff" }, className: classes.viewSelected, 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: { color: "#0075ff" }, className: classes.viewSelected, onClick: function () { return setSaveAsViewModalOpen(true); } },
13635
13485
  React__default.createElement("i", null,
13636
13486
  React__default.createElement(SaveIcon, null),
13637
13487
  "(Save view as)")))),
13638
- React__default.createElement(TableCell, { align: "center", colSpan: 4, className: "".concat(classes.topTitles, " ").concat(classes.scale) }, "Scale"),
13639
- React__default.createElement(TableCell, { align: "center", className: "".concat(classes.topTitles, " ").concat(classes.xStats) }, cursorData
13488
+ React__default.createElement("th", { colSpan: 4, className: "".concat(classes.topTitles, " ").concat(classes.scale) }, "Scale"),
13489
+ React__default.createElement("th", { className: "".concat(classes.topTitles, " ").concat(classes.xStats) }, cursorData
13640
13490
  ? (function () {
13641
13491
  var dateX1 = new Date(cursorData.x1);
13642
13492
  var dateX2 = new Date(cursorData.x2);
@@ -13655,7 +13505,7 @@ var TableComponent = function (_a) {
13655
13505
  dateText));
13656
13506
  })()
13657
13507
  : null),
13658
- React__default.createElement(TableCell, { align: "center", className: "".concat(classes.topTitles, " ").concat(classes.xStats) }, cursorData
13508
+ React__default.createElement("th", { className: "".concat(classes.topTitles, " ").concat(classes.xStats) }, cursorData
13659
13509
  ? (function () {
13660
13510
  var dateX1 = new Date(cursorData.x1);
13661
13511
  var dateX2 = new Date(cursorData.x2);
@@ -13674,20 +13524,24 @@ var TableComponent = function (_a) {
13674
13524
  dateText));
13675
13525
  })()
13676
13526
  : null),
13677
- React__default.createElement(TableCell, { align: "center", colSpan: 3, className: "".concat(classes.topTitles, " ").concat(classes.xStats) }, cursorData
13527
+ React__default.createElement("th", { colSpan: 3, className: "".concat(classes.topTitles, " ").concat(classes.xStats) }, cursorData
13678
13528
  ? formatTimeDiffWithMs(cursorData.x1, cursorData.x2)
13679
13529
  : null)))),
13680
- React__default.createElement(Table, { size: "small", style: { width: "100%", tableLayout: "fixed" } },
13681
- React__default.createElement(TableHead, null,
13682
- React__default.createElement(TableRow, { className: classes.bottomTitlesRow },
13683
- React__default.createElement(TableCell, { align: "center", className: classes.visible }, "Visible"),
13684
- React__default.createElement(TableCell, { align: "center", className: classes.aliasCol }, "Alias / Tagname"),
13685
- React__default.createElement(TableCell, { align: "center", className: classes.color }, "Color"),
13686
- React__default.createElement(TableCell, { align: "center", className: classes.inputCol }, "Min Scale"),
13687
- React__default.createElement(TableCell, { align: "center", className: classes.inputCol }, "Max Scale"),
13688
- React__default.createElement(TableCell, { align: "center", className: classes.autoScale }, "AutoScale"),
13689
- React__default.createElement(TableCell, { align: "center", className: classes.unit }, "Unit"),
13690
- React__default.createElement(TableCell, { align: "center" },
13530
+ React__default.createElement("table", { style: {
13531
+ width: "100%",
13532
+ tableLayout: "fixed",
13533
+ textAlign: "center",
13534
+ } },
13535
+ React__default.createElement("thead", null,
13536
+ React__default.createElement("tr", { className: classes.bottomTitlesRow },
13537
+ React__default.createElement("th", { className: classes.visible }, "Visible"),
13538
+ React__default.createElement("th", { className: classes.aliasCol }, "Alias / Tagname"),
13539
+ React__default.createElement("th", { className: classes.color }, "Color"),
13540
+ React__default.createElement("th", { className: classes.inputCol }, "Min Scale"),
13541
+ React__default.createElement("th", { className: classes.inputCol }, "Max Scale"),
13542
+ React__default.createElement("th", { className: classes.autoScale }, "AutoScale"),
13543
+ React__default.createElement("th", { className: classes.unit }, "Unit"),
13544
+ React__default.createElement("th", null,
13691
13545
  " ",
13692
13546
  cursorData
13693
13547
  ? (function () {
@@ -13706,7 +13560,7 @@ var TableComponent = function (_a) {
13706
13560
  })()
13707
13561
  : null,
13708
13562
  " "),
13709
- React__default.createElement(TableCell, { align: "center" },
13563
+ React__default.createElement("th", null,
13710
13564
  " ",
13711
13565
  cursorData
13712
13566
  ? (function () {
@@ -13725,29 +13579,27 @@ var TableComponent = function (_a) {
13725
13579
  })()
13726
13580
  : null,
13727
13581
  " "),
13728
- React__default.createElement(TableCell, { align: "center" }, "Y2-Y1"),
13729
- React__default.createElement(TableCell, { align: "center" }, "Min"),
13730
- React__default.createElement(TableCell, { align: "center" }, "Max")))))),
13582
+ React__default.createElement("th", null, "Y2-Y1"),
13583
+ React__default.createElement("th", null, "Min"),
13584
+ React__default.createElement("th", null, "Max")))))),
13731
13585
  React__default.createElement(Grid, { item: true, xs: 12 },
13732
- React__default.createElement(TableContainer, { component: Paper, style: {
13733
- width: "100%",
13734
- height: "100%",
13735
- maxHeight: "100%",
13736
- boxShadow: "none",
13737
- border: "none",
13738
- } },
13739
- React__default.createElement(Table, { size: "small", style: { width: "100%", tableLayout: "fixed" } },
13740
- React__default.createElement(TableBody, null, Object.values(viewTags).length ? (Object.values(viewTags).map(function (_a) {
13586
+ React__default.createElement("div", { style: { width: "100%", height: "100%", maxHeight: "100%" } },
13587
+ React__default.createElement("table", { cellPadding: "4px", style: {
13588
+ width: "100%",
13589
+ tableLayout: "fixed",
13590
+ textAlign: "center",
13591
+ } },
13592
+ React__default.createElement("tbody", null, Object.values(viewTags).length ? (Object.values(viewTags).map(function (_a) {
13741
13593
  var _b, _c, _d, _e, _f, _g, _h;
13742
13594
  var tag = _a.viewTag;
13743
- return (React__default.createElement(TableRow, { key: tag.TagName, onContextMenu: function (e) {
13744
- showContextMenu(e, tag, "chartContext");
13745
- }, className: classes.rowHover },
13746
- React__default.createElement(TableCell, { align: "center", className: "".concat(classes.visible, " ").concat(classes.checkbox) },
13595
+ return (React__default.createElement("tr", { key: tag.TagName,
13596
+ // onClick={() => handleRowClick(index)}
13597
+ onContextMenu: function (e) { return handleRightClick(e, tag.TagId); }, className: classes.rowHover },
13598
+ React__default.createElement("td", { className: "".concat(classes.visible, " ").concat(classes.checkbox) },
13747
13599
  React__default.createElement("input", { type: "checkbox", checked: tag.IsVisible, onChange: function (e) {
13748
13600
  return handleVisibilityChange(tag.TagId, e.target.checked);
13749
13601
  } })),
13750
- React__default.createElement(TableCell, { className: classes.aliasCol },
13602
+ React__default.createElement("td", { className: classes.aliasCol },
13751
13603
  React__default.createElement(Tooltip, { title: tag.TagName, placement: "top", arrow: true, interactive: true, enterDelay: 500 },
13752
13604
  React__default.createElement("div", { style: { display: "flex", alignItems: "center" } },
13753
13605
  tag.TagType && (React__default.createElement("div", { className: classes.dataType, style: {
@@ -13757,9 +13609,9 @@ var TableComponent = function (_a) {
13757
13609
  var newAlias = e.target.value;
13758
13610
  handleChangeAlias(tag.TagId, newAlias);
13759
13611
  } })))),
13760
- React__default.createElement(TableCell, { align: "center", className: classes.color },
13612
+ React__default.createElement("td", { className: classes.color },
13761
13613
  React__default.createElement(ColorPicker, { onChange: handleColorChange, color: tag.Color, elementId: tag.TagId })),
13762
- React__default.createElement(TableCell, { className: classes.inputCol },
13614
+ React__default.createElement("td", { className: classes.inputCol },
13763
13615
  React__default.createElement("input", { type: "number", className: classes.numberInput, style: __assign({ width: "100%" }, (tag.IsAutoScale
13764
13616
  ? {
13765
13617
  backgroundColor: "rgba(239, 239, 239, 0.3)",
@@ -13771,7 +13623,7 @@ var TableComponent = function (_a) {
13771
13623
  }, onFocus: function (e) { return e.target.select(); }, onChange: function (e) {
13772
13624
  return handleChangeScale(e.target.value, "MinScale", tag.TagId);
13773
13625
  } })),
13774
- React__default.createElement(TableCell, { className: classes.inputCol },
13626
+ React__default.createElement("td", { className: classes.inputCol },
13775
13627
  React__default.createElement("input", { type: "number", className: classes.numberInput, style: __assign({ width: "100%", WebkitAppearance: "none" }, (tag.IsAutoScale
13776
13628
  ? {
13777
13629
  backgroundColor: "rgba(239, 239, 239, 0.3)",
@@ -13783,11 +13635,11 @@ var TableComponent = function (_a) {
13783
13635
  }, onFocus: function (e) { return e.target.select(); }, onChange: function (e) {
13784
13636
  handleChangeScale(e.target.value, "MaxScale", tag.TagId);
13785
13637
  } })),
13786
- React__default.createElement(TableCell, { align: "center", className: "".concat(classes.autoScale, " ").concat(classes.checkbox) },
13638
+ React__default.createElement("td", { className: "".concat(classes.autoScale, " ").concat(classes.checkbox) },
13787
13639
  React__default.createElement("input", { type: "checkbox", checked: !!tag.IsAutoScale, onChange: function (e) {
13788
13640
  return handleAutoScaleChange(tag.TagId, tag.IsAutoScale);
13789
13641
  } })),
13790
- React__default.createElement(TableCell, { className: "".concat(classes.autoScale, " ").concat(classes.checkbox) },
13642
+ React__default.createElement("td", { className: "".concat(classes.autoScale, " ").concat(classes.checkbox) },
13791
13643
  React__default.createElement("input", { type: "text", style: {
13792
13644
  width: "100%",
13793
13645
  }, onClick: function () {
@@ -13796,49 +13648,39 @@ var TableComponent = function (_a) {
13796
13648
  var value = e.target.value;
13797
13649
  handleUnitChange(tag.TagId, value);
13798
13650
  }, value: tag.Unit === "-" ? "" : tag.Unit, onFocus: function (e) { return e.target.select(); } })),
13799
- React__default.createElement(TableCell, { align: "center" }, round((_b = dataTable[tag.TagName]) === null || _b === void 0 ? void 0 : _b.y1, 3) || 0),
13800
- React__default.createElement(TableCell, { align: "center", className: classes.doubleInput }, round((_c = dataTable[tag.TagName]) === null || _c === void 0 ? void 0 : _c.y2, 3) || 0),
13801
- React__default.createElement(TableCell, { align: "center" }, round((_d = dataTable[tag.TagName]) === null || _d === void 0 ? void 0 : _d.y2y1, 3) || 0),
13802
- React__default.createElement(TableCell, { align: "center" },
13651
+ React__default.createElement("td", null, round((_b = dataTable[tag.TagName]) === null || _b === void 0 ? void 0 : _b.y1, 3) || 0),
13652
+ React__default.createElement("td", { className: classes.doubleInput }, round((_c = dataTable[tag.TagName]) === null || _c === void 0 ? void 0 : _c.y2, 3) || 0),
13653
+ React__default.createElement("td", null, round((_d = dataTable[tag.TagName]) === null || _d === void 0 ? void 0 : _d.y2y1, 3) || 0),
13654
+ React__default.createElement("td", null,
13803
13655
  !isNaN$1(((_e = dataTable[tag.TagName]) === null || _e === void 0 ? void 0 : _e.pmin.y) * 0)
13804
13656
  ? round((_f = dataTable[tag.TagName]) === null || _f === void 0 ? void 0 : _f.pmin.y, 3)
13805
13657
  : 0,
13806
13658
  " "),
13807
- React__default.createElement(TableCell, { align: "center" },
13659
+ React__default.createElement("td", null,
13808
13660
  !isNaN$1(((_g = dataTable[tag.TagName]) === null || _g === void 0 ? void 0 : _g.pmax.y) * 0)
13809
13661
  ? round((_h = dataTable[tag.TagName]) === null || _h === void 0 ? void 0 : _h.pmax.y)
13810
13662
  : 0,
13811
13663
  " ")));
13812
- })) : (React__default.createElement(TableRow, null,
13813
- React__default.createElement(TableCell, { colSpan: 12 },
13814
- React__default.createElement("div", { style: { padding: "1rem" } },
13815
- React__default.createElement("div", { style: { padding: "1rem" } },
13816
- "No tag view detected.",
13817
- " "),
13818
- React__default.createElement("div", { style: { padding: "1rem" } },
13819
- React__default.createElement(Button, { onClick: function () { return setTagsTreeModalOpen(true); }, variant: "contained", color: "primary" },
13820
- " ",
13821
- "Add tag")),
13822
- React__default.createElement("div", null,
13823
- React__default.createElement(Button, { onClick: function () { return setLoadViewOpen(true); }, variant: "outlined", color: "primary" },
13824
- " ",
13825
- "Load view")))))))))),
13664
+ })) : (React__default.createElement("div", { style: { padding: "1rem" } },
13665
+ React__default.createElement("div", { style: { padding: "1rem" } },
13666
+ "No tag view detected.",
13667
+ " "),
13668
+ React__default.createElement("div", { style: { padding: "1rem" } },
13669
+ React__default.createElement(Button, { onClick: function () { return setTagsTreeModalOpen(true); }, variant: "contained", color: "primary" },
13670
+ " ",
13671
+ "Add tag")),
13672
+ React__default.createElement("div", null,
13673
+ React__default.createElement(Button, { onClick: function () { return setLoadViewOpen(true); }, variant: "outlined", color: "primary" },
13674
+ " ",
13675
+ "Load view")))))))),
13676
+ openContextMenu && (React__default.createElement(ContextMenu, { x: contextMenuPosition.x, y: contextMenuPosition.y, options: contextMenuOptions })),
13826
13677
  React__default.createElement(TagsTreeModal, { open: tagsTreeModalOpen, handleClose: handleClose, onTagSelect: handleTagSelect }),
13827
- React__default.createElement(SaveAsViewModal, { open: saveAsViewModalOpen, handleClose: function (shouldUpdate) { return __awaiter(void 0, void 0, void 0, function () {
13828
- return __generator(this, function (_a) {
13829
- switch (_a.label) {
13830
- case 0:
13831
- setSaveAsViewModalOpen(false);
13832
- if (!shouldUpdate) return [3 /*break*/, 2];
13833
- return [4 /*yield*/, queryClient.invalidateQueries({ queryKey: ["views"] })];
13834
- case 1:
13835
- _a.sent();
13836
- _a.label = 2;
13837
- case 2: return [2 /*return*/];
13838
- }
13839
- });
13840
- }); } }),
13841
- React__default.createElement(LoadViewModal, { open: loadViewOpen, handleClose: function (shouldUpdate) {
13678
+ React__default.createElement(SaveAsViewModal, { open: saveAsViewModalOpen, handleClose: function (shouldUpdate) {
13679
+ setSaveAsViewModalOpen(false);
13680
+ if (shouldUpdate)
13681
+ getTagsFromAPI(true).then(function () { });
13682
+ } }),
13683
+ React__default.createElement(LoadViewModal, { open: loadViewOpen, getTagsFromAPI: getTagsFromAPI, handleClose: function (shouldUpdate) {
13842
13684
  setLoadViewOpen(false);
13843
13685
  } })),
13844
13686
  React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); } }),
@@ -13864,7 +13706,7 @@ var formatDateTimeToString = function (date) {
13864
13706
  var useChartOptions = function () {
13865
13707
  var _a = useTrendingContext(); _a.state; var actions = _a.actions;
13866
13708
  var debounceTimerRef = useRef(null);
13867
- var handleZoom = useCallback(function (_a) {
13709
+ var handleZoom = function (_a) {
13868
13710
  var chart = _a.chart;
13869
13711
  if (debounceTimerRef.current) {
13870
13712
  clearTimeout(debounceTimerRef.current);
@@ -13878,8 +13720,8 @@ var useChartOptions = function () {
13878
13720
  end: newEnd,
13879
13721
  });
13880
13722
  }, 1000);
13881
- }, [actions]);
13882
- var handlePan = useCallback(function (_a) {
13723
+ };
13724
+ var handlePan = function (_a) {
13883
13725
  var chart = _a.chart;
13884
13726
  if (debounceTimerRef.current) {
13885
13727
  clearTimeout(debounceTimerRef.current);
@@ -13894,8 +13736,8 @@ var useChartOptions = function () {
13894
13736
  graphPan: true,
13895
13737
  });
13896
13738
  }, 1000);
13897
- }, [actions]);
13898
- var initialOptions = useMemo(function () { return ({
13739
+ };
13740
+ return useState({
13899
13741
  animation: {
13900
13742
  duration: 0, // No animation
13901
13743
  },
@@ -13963,12 +13805,11 @@ var useChartOptions = function () {
13963
13805
  },
13964
13806
  },
13965
13807
  },
13966
- }); }, [handleZoom, handlePan]);
13967
- return useState(initialOptions);
13808
+ });
13968
13809
  };
13969
13810
 
13970
13811
  var CustomOptionsComponent = function (_a) {
13971
- var customOptions = _a.customOptions, setCustomOptions = _a.setCustomOptions, autoRefresh = _a.autoRefresh, setAutoRefresh = _a.setAutoRefresh;
13812
+ var customOptions = _a.customOptions, setCustomOptions = _a.setCustomOptions;
13972
13813
  var classes = useTrendingStyles();
13973
13814
  var handleGridChange = function (value) {
13974
13815
  setCustomOptions(function (prevOptions) { return (__assign(__assign({}, prevOptions), { showGrid: value })); });
@@ -13978,17 +13819,13 @@ var CustomOptionsComponent = function (_a) {
13978
13819
  };
13979
13820
  return (React__default.createElement(React__default.Fragment, null,
13980
13821
  React__default.createElement(Grid, { item: true, className: classes.labelOptions },
13981
- React__default.createElement(FormControlLabel, { checked: customOptions.showGrid, control: React__default.createElement(Checkbox, { color: "primary" }), label: "Show Grid", onChange: function (e, checked) {
13982
- handleGridChange(checked);
13983
- } })),
13984
- React__default.createElement(Grid, { item: true, className: classes.labelOptions },
13985
- React__default.createElement(FormControlLabel, { checked: customOptions.stepped, control: React__default.createElement(Checkbox, { color: "primary" }), label: "Stepped", onChange: function (e, checked) {
13986
- handleSteppedChange(checked);
13987
- } })),
13822
+ React__default.createElement("label", null,
13823
+ React__default.createElement("input", { type: "checkbox", checked: customOptions.showGrid, onChange: function (e) { return handleGridChange(e.target.checked); } }),
13824
+ "Show Grid")),
13988
13825
  React__default.createElement(Grid, { item: true, className: classes.labelOptions },
13989
- React__default.createElement(FormControlLabel, { checked: autoRefresh, control: React__default.createElement(Switch, { color: "primary" }), label: "Auto Refresh", onChange: function (e, checked) {
13990
- setAutoRefresh(checked);
13991
- } }))));
13826
+ React__default.createElement("label", null,
13827
+ React__default.createElement("input", { type: "checkbox", checked: customOptions.stepped, onChange: function (e) { return handleSteppedChange(e.target.checked); } }),
13828
+ "Stepped"))));
13992
13829
  };
13993
13830
 
13994
13831
  var dateNavigator = function (startDate, endDate, scope, operator, current) {
@@ -14024,8 +13861,8 @@ var dateNavigator = function (startDate, endDate, scope, operator, current) {
14024
13861
  return { newStartDate: newStartDate, newEndDate: newEndDate };
14025
13862
  };
14026
13863
 
14027
- var Header = React__default.memo(function (_a) {
14028
- var setChartOptions = _a.setChartOptions, autoRefresh = _a.autoRefresh, setAutoRefresh = _a.setAutoRefresh;
13864
+ var Header = function (_a) {
13865
+ var setChartOptions = _a.setChartOptions;
14029
13866
  var classes = useTrendingStyles();
14030
13867
  var _b = useTrendingContext(), state = _b.state, actions = _b.actions;
14031
13868
  var _c = useState({
@@ -14048,9 +13885,10 @@ var Header = React__default.memo(function (_a) {
14048
13885
  //@ts-ignore
14049
13886
  actions.setTotalScope((_a = {}, _a[key] = moment$8(newValue).toDate(), _a));
14050
13887
  };
14051
- var handleChangeScope = function (value) {
13888
+ var handleChangeScope = function (e) {
13889
+ var newScope = e.target.value;
14052
13890
  actions.setTotalScope({
14053
- scope: value,
13891
+ scope: newScope,
14054
13892
  });
14055
13893
  };
14056
13894
  useEffect(function () {
@@ -14075,7 +13913,7 @@ var Header = React__default.memo(function (_a) {
14075
13913
  useEffect(function () {
14076
13914
  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() }) }) })); });
14077
13915
  }, [state.timeScopeStart, state.timeScopeEnd]);
14078
- return (React__default.createElement(Grid, { item: true, xs: 12, container: true, justifyContent: "space-between", alignItems: "center", style: { height: "8%" } },
13916
+ return (React__default.createElement(Grid, { item: true, xs: 12, container: true, justifyContent: "space-between", alignItems: "center", style: { height: "15%" } },
14079
13917
  React__default.createElement(Grid, { md: 6, item: true, container: true, justifyContent: "flex-start", alignItems: "center", wrap: "wrap" },
14080
13918
  React__default.createElement(Grid, { item: true },
14081
13919
  React__default.createElement(IconButton$1, { color: "primary", onClick: function () { return handleDateNavigator("subtract"); }, className: classes.navigatorButton },
@@ -14089,7 +13927,7 @@ var Header = React__default.memo(function (_a) {
14089
13927
  } })),
14090
13928
  React__default.createElement(Grid, { item: true, className: classes.select },
14091
13929
  React__default.createElement(FormControl, { variant: "outlined" },
14092
- React__default.createElement(Select, { value: state.scope, onChange: function (e) { return handleChangeScope(e.target.value); }, displayEmpty: true },
13930
+ React__default.createElement(Select, { value: state.scope, onChange: handleChangeScope, displayEmpty: true },
14093
13931
  React__default.createElement(MenuItem, { value: "10 min" }, "10 min"),
14094
13932
  React__default.createElement(MenuItem, { value: "1 hour" }, "1 hour"),
14095
13933
  React__default.createElement(MenuItem, { value: "4 hours" }, "4 hours"),
@@ -14098,9 +13936,7 @@ var Header = React__default.memo(function (_a) {
14098
13936
  React__default.createElement(MenuItem, { value: "10 days" }, "10 days"),
14099
13937
  React__default.createElement(MenuItem, { value: "custom" }, "Custom")))),
14100
13938
  React__default.createElement(Grid, { item: true },
14101
- React__default.createElement(TextField, { label: "End", variant: "outlined", className: classes.datetimePicker, type: "datetime-local", value: autoRefresh
14102
- ? ""
14103
- : moment$8(state.timeScopeEnd).format("YYYY-MM-DDTHH:mm:ss"), onChange: function (e) { return handleDateChange(e.target.value, "end"); }, InputLabelProps: {
13939
+ React__default.createElement(TextField, { label: "End", variant: "outlined", className: classes.datetimePicker, type: "datetime-local", value: moment$8(state.timeScopeEnd).format("YYYY-MM-DDTHH:mm:ss"), onChange: function (e) { return handleDateChange(e.target.value, "end"); }, InputLabelProps: {
14104
13940
  shrink: true,
14105
13941
  style: { marginLeft: "10px" },
14106
13942
  } })),
@@ -14113,17 +13949,10 @@ var Header = React__default.memo(function (_a) {
14113
13949
  React__default.createElement(Grid, { md: 6, item: true, container: true, justifyContent: "space-between" },
14114
13950
  React__default.createElement(Grid, { item: true, container: true, wrap: "nowrap", spacing: 1 },
14115
13951
  React__default.createElement(Grid, { item: true, container: true },
14116
- React__default.createElement(CustomOptionsComponent, { customOptions: customOptions, setCustomOptions: setCustomOptions, autoRefresh: autoRefresh, setAutoRefresh: function (autoRefresh) {
14117
- if (autoRefresh) {
14118
- handleChangeScope("custom");
14119
- handleDateChange(new Date(), "end");
14120
- }
14121
- setAutoRefresh(autoRefresh);
14122
- } }))))));
14123
- });
14124
- Header.displayName = "Header";
13952
+ React__default.createElement(CustomOptionsComponent, { customOptions: customOptions, setCustomOptions: setCustomOptions }))))));
13953
+ };
14125
13954
 
14126
- var DraggableLineControl = React__default.memo(function (_a) {
13955
+ var DraggableLineControl = function (_a) {
14127
13956
  var initialLeft = _a.initialLeft, otherLineCoord = _a.otherLineCoord, onUpdate = _a.onUpdate, color = _a.color, chartArea = _a.chartArea;
14128
13957
  var _b = useState(false), isDragging = _b[0], setIsDragging = _b[1];
14129
13958
  var _c = useState(initialLeft), left = _c[0], setLeft = _c[1];
@@ -14182,11 +14011,10 @@ var DraggableLineControl = React__default.memo(function (_a) {
14182
14011
  right: 0,
14183
14012
  margin: "auto",
14184
14013
  } })));
14185
- });
14186
- DraggableLineControl.displayName = "DraggableLineControl";
14014
+ };
14187
14015
 
14188
14016
  var useGetVerticalLinePlugin = function (setChartArea, setCoords) {
14189
- var chartPlugin = useMemo(function () { return ({
14017
+ var chartPlugin = {
14190
14018
  id: "verticalLinePlugin",
14191
14019
  afterUpdate: function (chart) {
14192
14020
  if (chart.chartArea) {
@@ -14212,7 +14040,7 @@ var useGetVerticalLinePlugin = function (setChartArea, setCoords) {
14212
14040
  setChartArea(chart.chartArea);
14213
14041
  setCoords({ x1: x1, x2: x2 });
14214
14042
  },
14215
- }); }, [setChartArea, setCoords]);
14043
+ };
14216
14044
  return chartPlugin;
14217
14045
  };
14218
14046
 
@@ -14250,7 +14078,7 @@ var updateCursorData = function (chart, setCursorData) {
14250
14078
  };
14251
14079
 
14252
14080
  var useXAxisDatePlugin = function () {
14253
- var chartPlugin = useMemo(function () { return ({
14081
+ var chartPlugin = {
14254
14082
  id: "xAxisDatePlugin",
14255
14083
  afterBuildTicks: function (chart) {
14256
14084
  var oldTicks = chart.scales.x.ticks;
@@ -14276,14 +14104,14 @@ var useXAxisDatePlugin = function () {
14276
14104
  }
14277
14105
  chart.scales.x.ticks = newTicks;
14278
14106
  },
14279
- }); }, []);
14107
+ };
14280
14108
  return chartPlugin;
14281
14109
  };
14282
14110
 
14283
14111
  var useYAxisPlugin = function () {
14284
- var chartPlugin = useMemo(function () { return ({
14112
+ var chartPlugin = {
14285
14113
  id: "yAxisPlugin",
14286
- }); }, []);
14114
+ };
14287
14115
  return chartPlugin;
14288
14116
  };
14289
14117
 
@@ -14305,7 +14133,7 @@ var areRangesSimilar = function (tag1, tag2) {
14305
14133
  return isSignificantOverlap;
14306
14134
  };
14307
14135
 
14308
- var TrendingChart = React__default.memo(function (_a) {
14136
+ var TrendingChart = function (_a) {
14309
14137
  var series = _a.series, chartOptions = _a.chartOptions, setChartOptions = _a.setChartOptions, chartData = _a.chartData, setCursorData = _a.setCursorData, setChartData = _a.setChartData;
14310
14138
  var _b = useTrendingContext(), state = _b.state, viewTags = _b.state.viewTags; _b.actions;
14311
14139
  var _c = useState(null), lineTabCoords = _c[0], setLineTabCoords = _c[1];
@@ -14359,9 +14187,9 @@ var TrendingChart = React__default.memo(function (_a) {
14359
14187
  id: "y-axis-".concat(axis.TagId),
14360
14188
  type: "linear",
14361
14189
  display: axis.IsVisible,
14362
- title: {
14190
+ scaleLabel: {
14363
14191
  display: true,
14364
- text: axis.TagName,
14192
+ labelString: axis.TagName,
14365
14193
  },
14366
14194
  min: axis.IsAutoScale ? undefined : min,
14367
14195
  max: axis.IsAutoScale ? undefined : max,
@@ -14427,18 +14255,13 @@ var TrendingChart = React__default.memo(function (_a) {
14427
14255
  });
14428
14256
  }, 1000));
14429
14257
  var _e = useState(false), chartShouldInitCursors = _e[0], setChartShouldInitCursors = _e[1];
14430
- var memoizedSetChartArea = useCallback(function (area) { return setChartArea(area); }, []);
14431
- var memoizedSetLineTabCoords = useCallback(function (coords) { return setLineTabCoords(coords); }, []);
14432
- var verticalLinePlugin = useGetVerticalLinePlugin(memoizedSetChartArea, memoizedSetLineTabCoords);
14258
+ var verticalLinePlugin = useGetVerticalLinePlugin(setChartArea, setLineTabCoords);
14433
14259
  var xAxisDatePlugin = useXAxisDatePlugin();
14434
14260
  var yAxisPlugin = useYAxisPlugin();
14435
- var plugins = useMemo(function () { return [verticalLinePlugin, xAxisDatePlugin, yAxisPlugin]; }, [verticalLinePlugin, xAxisDatePlugin, yAxisPlugin]);
14436
14261
  var seriesVsTags = useRef({});
14437
14262
  useEffect(function () {
14438
- // Only run debounced update when series data actually changes
14439
- // Display property changes (color, visibility, scales) are handled by immediate useEffects
14440
14263
  debouncedUpdateChartBasedOnData.current();
14441
- }, [series]); // Removed state.graphShouldUpdate to prevent running on display-only changes
14264
+ }, [state.graphShouldUpdate, series]);
14442
14265
  useEffect(function () {
14443
14266
  if (chartShouldInitCursors) {
14444
14267
  if (chartRef.current) {
@@ -14447,85 +14270,6 @@ var TrendingChart = React__default.memo(function (_a) {
14447
14270
  }
14448
14271
  }
14449
14272
  }, [chartShouldInitCursors, state.graphShouldUpdate]);
14450
- // Update colors and visibility immediately without debounce
14451
- useEffect(function () {
14452
- setChartData(function (prevData) {
14453
- if (!prevData.datasets || !prevData.datasets.length)
14454
- return prevData;
14455
- var updatedDatasets = prevData.datasets.map(function (dataset) {
14456
- var tag = viewTags[dataset.tagId];
14457
- if (tag) {
14458
- return __assign(__assign({}, dataset), { borderColor: tag.viewTag.Color, hidden: !tag.viewTag.IsVisible });
14459
- }
14460
- return dataset;
14461
- });
14462
- return __assign(__assign({}, prevData), { datasets: updatedDatasets });
14463
- });
14464
- }, [viewTags, setChartData]);
14465
- // Update Y-axis scales immediately when AutoScale or Min/Max changes
14466
- useEffect(function () {
14467
- var axes = [];
14468
- Object.values(viewTags).forEach(function (_a) {
14469
- var tag = _a.viewTag;
14470
- var existingAxis = axes.findIndex(function (existingTag) {
14471
- return areRangesSimilar(existingTag, tag);
14472
- });
14473
- if (existingAxis === -1) {
14474
- axes.push(tag);
14475
- }
14476
- });
14477
- var yAxesConfig = axes.map(function (axis) {
14478
- var min = Number(axis.MinScale);
14479
- var max = Number(axis.MaxScale);
14480
- if (!min && !max) {
14481
- max = 1;
14482
- }
14483
- return {
14484
- id: "y-axis-".concat(axis.TagId),
14485
- type: "linear",
14486
- display: axis.IsVisible,
14487
- title: {
14488
- display: true,
14489
- text: axis.TagName,
14490
- },
14491
- min: axis.IsAutoScale ? undefined : min,
14492
- max: axis.IsAutoScale ? undefined : max,
14493
- suggestedMin: axis.IsAutoScale ? undefined : min,
14494
- suggestedMax: axis.IsAutoScale ? undefined : max,
14495
- stepSize: 10,
14496
- grid: {
14497
- display: true,
14498
- },
14499
- afterUpdate: function (a) {
14500
- var chart = a.chart;
14501
- var keys = Object.keys(chart.scales).filter(function (sc) { return sc !== "x"; });
14502
- var counterOfDefaultsScales = 0;
14503
- if (keys.length > 1) {
14504
- for (var scaleKey in chart.scales) {
14505
- var scale = chart.scales[scaleKey];
14506
- if (scale.max === 1 && scale.min === 0) {
14507
- chart.scales[scaleKey].display = false;
14508
- chart.scales[scaleKey].options.display = false;
14509
- counterOfDefaultsScales++;
14510
- }
14511
- else {
14512
- chart.scales[scaleKey].display = true;
14513
- chart.scales[scaleKey].options.display = true;
14514
- }
14515
- if (counterOfDefaultsScales === keys.length) {
14516
- chart.scales[keys[0]].display = true;
14517
- chart.scales[keys[0]].options.display = true;
14518
- }
14519
- }
14520
- }
14521
- },
14522
- };
14523
- });
14524
- setChartOptions(function (prevOptions) { return (__assign(__assign({}, prevOptions), { scales: __assign({ x: __assign({}, prevOptions.scales.x) }, yAxesConfig.reduce(function (acc, cur) {
14525
- var _a;
14526
- return (__assign(__assign({}, acc), (_a = {}, _a[cur.id] = cur, _a)));
14527
- }, {})) })); });
14528
- }, [viewTags, setChartOptions]);
14529
14273
  return (React__default.createElement(Paper, { style: { height: "100%", position: "relative" } },
14530
14274
  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) {
14531
14275
  setLineTabCoords(function (prevCoords) {
@@ -14545,23 +14289,30 @@ var TrendingChart = React__default.memo(function (_a) {
14545
14289
  chartRef.current.secondLineX = newLeft;
14546
14290
  debouncedUpdateChart.current();
14547
14291
  } })) : null,
14548
- React__default.createElement(Line, { ref: chartRef, data: chartData, options: chartOptions, plugins: plugins })));
14549
- });
14550
- TrendingChart.displayName = "TrendingChart";
14292
+ React__default.createElement(Line, { ref: chartRef, data: chartData, options: chartOptions, plugins: [verticalLinePlugin, xAxisDatePlugin, yAxisPlugin] })));
14293
+ };
14551
14294
 
14552
14295
  Chart.register(CategoryScale, LinearScale, PointElement, LineElement, Title, Tooltip$1, Legend, TimeScale, zoomPlugin);
14553
- var Trending = React__default.memo(function (_a) {
14554
- _a.title; var autoRefresh = _a.autoRefresh, setAutoRefresh = _a.setAutoRefresh;
14555
- var _b = useTrendingContext(), state = _b.state, _c = _b.state, viewTags = _c.viewTags; _c.shouldRefetchSeries;
14296
+ var Trending = function (_a) {
14297
+ _a.title; var getTagsFromAPI = _a.getTagsFromAPI;
14298
+ var _b = useTrendingContext(), state = _b.state, _c = _b.state, viewTags = _c.viewTags, shouldRefetchSeries = _c.shouldRefetchSeries;
14556
14299
  var _d = useState(""), error = _d[0], setError = _d[1];
14557
- var _e = useState(null), selectedRowTagId = _e[0], setSelectedRowTagId = _e[1];
14558
- var _f = useState(null), viewTagForDelete = _f[0], setViewTagForDelete = _f[1];
14559
- var _g = useChartOptions(), chartOptions = _g[0], setChartOptions = _g[1];
14560
- var _h = useState({
14300
+ var _e = useState(true), loading = _e[0], setLoading = _e[1];
14301
+ var _f = useState([]), series = _f[0], setSeries = _f[1];
14302
+ var _g = useState(null), selectedRowTagId = _g[0], setSelectedRowTagId = _g[1];
14303
+ var _h = useState(null), viewTagForDelete = _h[0], setViewTagForDelete = _h[1];
14304
+ var _j = useChartOptions(), chartOptions = _j[0], setChartOptions = _j[1];
14305
+ var _k = useState({
14561
14306
  labels: [],
14562
14307
  datasets: [],
14563
- }), chartData = _h[0], setChartData = _h[1];
14564
- var _j = useState(null), cursorData = _j[0], setCursorData = _j[1];
14308
+ }), chartData = _k[0], setChartData = _k[1];
14309
+ var _l = useState(null), cursorData = _l[0], setCursorData = _l[1];
14310
+ var debounceForFetchingData = useRef(null);
14311
+ var _m = useState({
14312
+ x: 0,
14313
+ y: 0,
14314
+ }), contextMenuPosition = _m[0], setContextMenuPosition = _m[1];
14315
+ var _o = useState(false), openContextMenu = _o[0], setOpenContextMenu = _o[1];
14565
14316
  var handleRightClick = function (event, tagId) {
14566
14317
  event.preventDefault();
14567
14318
  event.stopPropagation(); // Prevent the click event from propagating to the document
@@ -14572,28 +14323,70 @@ var Trending = React__default.memo(function (_a) {
14572
14323
  setViewTagForDelete(null);
14573
14324
  }
14574
14325
  setSelectedRowTagId(tagId);
14326
+ setOpenContextMenu(true);
14327
+ setContextMenuPosition({ x: event.clientX, y: event.clientY });
14575
14328
  };
14576
- var _k = searchSeries({
14577
- start: state.timeScopeStart.getTime(),
14578
- end: state.timeScopeEnd.getTime(),
14579
- tagIds: Object.values(viewTags).map(function (tag) { return tag.viewTag.TagId; }),
14580
- autoRefresh: autoRefresh,
14581
- }), series = _k.data, seriesLoading = _k.isLoading; _k.isError; _k.error; _k.isSuccess;
14329
+ useEffect(function () {
14330
+ if (debounceForFetchingData.current) {
14331
+ clearTimeout(debounceForFetchingData.current);
14332
+ }
14333
+ debounceForFetchingData.current = setTimeout(function () {
14334
+ var fetchData = function () { return __awaiter(void 0, void 0, void 0, function () {
14335
+ var viewTagsArr, tagIds, response, error_1;
14336
+ return __generator(this, function (_a) {
14337
+ switch (_a.label) {
14338
+ case 0:
14339
+ _a.trys.push([0, 3, , 4]);
14340
+ setLoading(true);
14341
+ viewTagsArr = Object.values(viewTags).sort(function (a, b) { return b.order - a.order; });
14342
+ tagIds = viewTagsArr.map(function (tag) { return tag.viewTag.TagId; });
14343
+ if (!tagIds.length) return [3 /*break*/, 2];
14344
+ return [4 /*yield*/, axios.post("/series?nodeName=null", {
14345
+ start: state.timeScopeStart.getTime(),
14346
+ end: state.timeScopeEnd.getTime(),
14347
+ tagIds: tagIds,
14348
+ sampleCount: 1000,
14349
+ })];
14350
+ case 1:
14351
+ response = _a.sent();
14352
+ setSeries(response.data || []);
14353
+ _a.label = 2;
14354
+ case 2:
14355
+ setLoading(false);
14356
+ return [3 /*break*/, 4];
14357
+ case 3:
14358
+ error_1 = _a.sent();
14359
+ setError(error_1.message);
14360
+ setLoading(false);
14361
+ return [3 /*break*/, 4];
14362
+ case 4: return [2 /*return*/];
14363
+ }
14364
+ });
14365
+ }); };
14366
+ fetchData();
14367
+ }, 800);
14368
+ return function () {
14369
+ if (debounceForFetchingData.current) {
14370
+ clearTimeout(debounceForFetchingData.current);
14371
+ }
14372
+ };
14373
+ }, [shouldRefetchSeries]);
14582
14374
  return (React__default.createElement(React__default.Fragment, null,
14583
- React__default.createElement(Grid, { container: true, style: { width: "95svw", height: "88svh", margin: 0 } },
14584
- React__default.createElement(Header, { setChartOptions: setChartOptions, autoRefresh: autoRefresh, setAutoRefresh: setAutoRefresh }),
14585
- React__default.createElement(Grid, { item: true, md: 12 },
14586
- React__default.createElement(Divider, { style: { margin: "10px 0 20px" } })),
14375
+ React__default.createElement(Grid, { container: true, style: { width: "95svw", height: "88svh", margin: 0 }, onClick: function () { return setOpenContextMenu(false); } },
14376
+ React__default.createElement(Header, { setChartOptions: setChartOptions }),
14587
14377
  React__default.createElement(Grid, { item: true, xs: 12, style: { height: "45%" } },
14588
- React__default.createElement(TrendingChart, { series: series !== null && series !== void 0 ? series : [], chartData: chartData, setChartData: setChartData, chartOptions: chartOptions, setChartOptions: setChartOptions, setCursorData: setCursorData })),
14378
+ React__default.createElement(TrendingChart, { series: series, chartData: chartData, setChartData: setChartData, chartOptions: chartOptions, setChartOptions: setChartOptions, setCursorData: setCursorData })),
14589
14379
  React__default.createElement(Grid, { item: true, container: true, xs: 12, onContextMenu: function (e) { return handleRightClick(e, null); }, style: {
14590
14380
  height: "40%",
14591
14381
  minWidth: "100%",
14382
+ paddingTop: "3rem",
14383
+ border: "4px solid #ccc",
14592
14384
  borderRadius: 10,
14593
- margin: "10px 0 10px",
14594
- position: seriesLoading ? "relative" : "inherit",
14385
+ padding: 10,
14386
+ margin: "20px 0 10px",
14387
+ position: loading ? "relative" : "inherit",
14595
14388
  } },
14596
- seriesLoading && (React__default.createElement("div", { style: {
14389
+ loading && (React__default.createElement("div", { style: {
14597
14390
  position: "absolute",
14598
14391
  top: 0,
14599
14392
  left: 0,
@@ -14606,129 +14399,79 @@ var Trending = React__default.memo(function (_a) {
14606
14399
  zIndex: 2,
14607
14400
  } },
14608
14401
  React__default.createElement(CircularProgress, { size: "2rem" }))),
14609
- React__default.createElement(TableComponent, { chartData: chartData, cursorData: cursorData, viewTagForDelete: viewTagForDelete, setViewTagForDelete: setViewTagForDelete, selectedRowTagId: selectedRowTagId, setSelectedRowTagId: setSelectedRowTagId }))),
14402
+ React__default.createElement(TableComponent, { chartData: chartData, cursorData: cursorData, getTagsFromAPI: getTagsFromAPI, openContextMenu: openContextMenu, setOpenContextMenu: setOpenContextMenu, viewTagForDelete: viewTagForDelete, setViewTagForDelete: setViewTagForDelete, selectedRowTagId: selectedRowTagId, setSelectedRowTagId: setSelectedRowTagId, handleRightClick: handleRightClick, contextMenuPosition: contextMenuPosition, setContextMenuPosition: setContextMenuPosition }))),
14610
14403
  React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); }, title: "ERROR" })));
14611
- });
14612
- Trending.displayName = "Trending";
14613
-
14614
- var searchViews = function (_a) {
14615
- var _b = _a.autoRefresh, autoRefresh = _b === void 0 ? false : _b;
14616
- return useQuery({
14617
- queryKey: ["views"],
14618
- queryFn: function () { return getViews(null); },
14619
- refetchInterval: autoRefresh ? 10000 : false,
14620
- });
14621
- };
14622
- var searchViewTags = function (_a) {
14623
- var viewId = _a.viewId;
14624
- return useQuery({
14625
- queryKey: ["viewTags", viewId],
14626
- queryFn: function () {
14627
- if (viewId) {
14628
- return getViewTags(viewId);
14629
- }
14630
- else {
14631
- return [];
14632
- }
14633
- },
14634
- });
14635
14404
  };
14636
- var searchTagsTree = function () {
14637
- return useQuery({
14638
- queryKey: ["tagsTree"],
14639
- queryFn: function () { return getTagsTree(); },
14640
- });
14641
- };
14642
- var searchSeries = function (_a) {
14643
- var start = _a.start, end = _a.end, tagIds = _a.tagIds, _b = _a.autoRefresh, autoRefresh = _b === void 0 ? false : _b;
14644
- return useQuery({
14645
- queryKey: ["series", start, end, tagIds],
14646
- queryFn: function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
14647
- var resp, error_1;
14648
- var signal = _b.signal;
14649
- return __generator(this, function (_c) {
14650
- switch (_c.label) {
14651
- case 0:
14652
- _c.trys.push([0, 2, , 3]);
14653
- return [4 /*yield*/, axios.post("/series?nodeName=null", {
14654
- start: start,
14655
- end: end ? end : new Date().getTime(),
14656
- tagIds: tagIds,
14657
- sampleCount: 1000,
14658
- }, {
14659
- signal: signal,
14660
- })];
14405
+
14406
+ var TrendingsPage = function (props) {
14407
+ var _a = useState(""), error = _a[0], setError = _a[1];
14408
+ var _b = useTrendingContext(), viewSelected = _b.state.viewSelected, _c = _b.actions, setViews = _c.setViews, setViewTagsAndRefetch = _c.setViewTagsAndRefetch, setViewSelected = _c.setViewSelected;
14409
+ var getTagsFromAPI = function () {
14410
+ var args_1 = [];
14411
+ for (var _i = 0; _i < arguments.length; _i++) {
14412
+ args_1[_i] = arguments[_i];
14413
+ }
14414
+ return __awaiter(void 0, __spreadArray([], args_1, true), void 0, function (forceReload) {
14415
+ var viewsResp, lastCreated, viewTagsResp, viewTags;
14416
+ if (forceReload === void 0) { forceReload = false; }
14417
+ return __generator(this, function (_a) {
14418
+ switch (_a.label) {
14419
+ case 0: return [4 /*yield*/, getViews(null)];
14661
14420
  case 1:
14662
- resp = _c.sent();
14663
- return [2 /*return*/, get(resp, "data", [])];
14421
+ viewsResp = _a.sent();
14422
+ if (!viewsResp.ok) return [3 /*break*/, 4];
14423
+ setViews(viewsResp.data.tables[0].rows);
14424
+ lastCreated = void 0;
14425
+ if (!viewSelected || forceReload) {
14426
+ lastCreated = viewsResp.data.tables[0].rows.reduce(function (prev, current) {
14427
+ return prev && prev.ViewId > current.ViewId ? prev : current;
14428
+ }, null);
14429
+ //viewSelected
14430
+ setViewSelected(lastCreated);
14431
+ }
14432
+ else {
14433
+ lastCreated = viewSelected;
14434
+ }
14435
+ if (!lastCreated) return [3 /*break*/, 3];
14436
+ return [4 /*yield*/, getViewTags(lastCreated.ViewId)];
14664
14437
  case 2:
14665
- error_1 = _c.sent();
14666
- // Ignore abort errors
14667
- if (axios.isCancel(error_1) || error_1.name === "AbortError") {
14668
- return [2 /*return*/, []];
14438
+ viewTagsResp = _a.sent();
14439
+ if (viewTagsResp.ok) {
14440
+ viewTags = viewTagsResp.data.tables[0].rows.reduce(function (carr, curr, idx) {
14441
+ if (isNil(curr.Color)) {
14442
+ curr.Color = getRandomColor();
14443
+ }
14444
+ carr[curr.TagId] = {
14445
+ viewTag: curr,
14446
+ order: idx,
14447
+ };
14448
+ return carr;
14449
+ }, {});
14450
+ setViewTagsAndRefetch(viewTags);
14669
14451
  }
14670
- throw new Error(getError(error_1));
14671
- case 3: return [2 /*return*/];
14452
+ else {
14453
+ setError(viewTagsResp.message);
14454
+ }
14455
+ _a.label = 3;
14456
+ case 3: return [3 /*break*/, 5];
14457
+ case 4:
14458
+ setError(viewsResp.message);
14459
+ _a.label = 5;
14460
+ case 5: return [2 /*return*/];
14672
14461
  }
14673
14462
  });
14674
- }); },
14675
- refetchInterval: autoRefresh ? 10000 : false,
14676
- });
14677
- };
14678
- var TrendingsPage = function () {
14679
- var _a = useState(false), autoRefresh = _a[0], setAutoRefresh = _a[1];
14680
- var _b = useState(""), error = _b[0], setError = _b[1];
14681
- var _c = useState(null), viewId = _c[0], setViewId = _c[1];
14682
- var _d = useTrendingContext(), viewSelected = _d.state.viewSelected, _e = _d.actions, setViews = _e.setViews, setViewTagsAndRefetch = _e.setViewTagsAndRefetch, setViewSelected = _e.setViewSelected;
14683
- var _f = searchViews({ autoRefresh: autoRefresh }), views = _f.data; _f.isLoading; var viewsIsError = _f.isError, viewsError = _f.error, viewSuccess = _f.isSuccess;
14684
- var _g = searchViewTags({ viewId: viewId }), viewTags = _g.data; _g.isLoading; var viewTagsIsError = _g.isError, viewTagsError = _g.error, viewTagsSuccess = _g.isSuccess;
14685
- useEffect(function () {
14686
- var lastCreated;
14687
- if (!viewSelected) {
14688
- if (!views)
14689
- return;
14690
- setViews(views);
14691
- lastCreated = views.reduce(function (prev, current) {
14692
- return prev && prev.ViewId > current.ViewId ? prev : current;
14693
- }, null);
14694
- setViewId(lastCreated.ViewId);
14695
- //viewSelected
14696
- setViewSelected(lastCreated);
14697
- }
14698
- else {
14699
- lastCreated = viewSelected;
14700
- setViewId(lastCreated.ViewId);
14701
- }
14702
- }, [viewSuccess]);
14703
- useEffect(function () {
14704
- if (viewTags) {
14705
- if (!viewTags)
14706
- return;
14707
- var vTags = viewTags.reduce(function (carr, curr, idx) {
14708
- if (isNil(curr.Color)) {
14709
- curr.Color = getRandomColor();
14710
- }
14711
- carr[curr.TagId] = {
14712
- viewTag: curr,
14713
- order: idx,
14714
- };
14715
- return carr;
14716
- }, {});
14717
- setViewTagsAndRefetch(vTags);
14718
- }
14719
- }, [viewTagsSuccess]);
14463
+ });
14464
+ };
14720
14465
  useEffect(function () {
14721
- if (viewTagsError && viewTagsIsError) {
14722
- setError(viewTagsError.message);
14723
- }
14724
- if (viewsError && viewsIsError) {
14725
- setError(viewsError.message);
14726
- }
14727
- }, [viewsError, viewsIsError, viewTagsError, viewTagsIsError]);
14466
+ getTagsFromAPI();
14467
+ }, []);
14728
14468
  return (React__default.createElement(React__default.Fragment, null,
14729
14469
  React__default.createElement(HelmetDexteel, { title: "Trending Chart" }),
14730
- React__default.createElement(Grid, { style: { padding: "20px", justifyContent: "center", display: "flex" } },
14731
- React__default.createElement(Trending, { title: "Trending Chart", autoRefresh: autoRefresh, setAutoRefresh: setAutoRefresh })),
14470
+ React__default.createElement(Box, { p: 3, style: { maxWidth: "100%" } },
14471
+ React__default.createElement(Paper, null,
14472
+ React__default.createElement(Grid, { container: true, spacing: 3, style: { padding: "20px" } },
14473
+ React__default.createElement(Grid, { item: true, xs: 12 },
14474
+ React__default.createElement(Trending, { title: "Trending Chart", getTagsFromAPI: getTagsFromAPI }))))),
14732
14475
  React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(""); }, size: "xl", title: "ERROR" })));
14733
14476
  };
14734
14477
 
@@ -17762,5 +17505,5 @@ var areaSelector = /*#__PURE__*/Object.freeze({
17762
17505
  AreaSelector: AreaSelector
17763
17506
  });
17764
17507
 
17765
- export { Account, AssetProvider, AssetTreePicker, AuthContext, AuthProvider, BarChartControl, ButtonWithLoading, ChangePassword, CheckBoxControl, Configuration$1 as Configuration, ContextMenu$1 as ContextMenu, ContextMenuMESFProvider, CreateNewAssetDialog, CurrencyFormatter, DataGridControl, DateFormatter, DateTimeFormatter, ENTRY_INITIAL_VALUES, EditAssetDialog, ErrorModal, FetchError, FilterPanel, GenericPanel, GenericTable, GetCrewColor, GetShiftColor, HelmetDexteel, IntegerFormatter, LogbookSettingsInitialState, LogbookSettingsProvider, Login, Logout, LongFilterPanel, MESApiService, MESFLogbookEntry, MESFLogbookReport, MESFMain, MESSAGE_API, MESSAGE_ERRORS, MasterDetailPanel, MesfModal, ModalTreeFilterControl, MultipleSelectorControl, NumberFormatter, RemoveAssetDialog, ShiftDayNavigatorControl, ShiftNavigatorProvider, ShiftPeriodNavigatorControl, SimplePasswordControl, SimpleSelectorControl, TimeAndUserMenu, TimeFormatter, TimeService, TreePickerControl, TreePickerControlV2, TrendingsPage, USER_LABELS, UTLSettingsProvider, UserProvider, axiosInstance, deleteUser, dxtServerTimeZone, dxtToLocalServerTime, dxtToUTC, formatNumber, getAuthTypes, getCrewStyle, getDataUser, getEntries, getError, getMomentTz, getShiftByParameters, getShiftStyle, getShiftsRangeByParameters, getTokenFromLS, getUserPermissionsFromAPI, getUsers, logbookNavbar, logbookRoutesMESF, renewToken, routeLogbookEntry, routeLogbookReport, searchAssets, searchSeries, searchTagsTree, searchViewTags, searchViews, setPassword, setProfilesToUser, themeDXT, themeMESF, upsertUser, useAssetContext, useContextMenuMESF, useHasPermission, useHasProfile, useLogbookSettings, useMesfRealtime, useShiftNavigator, useShiftNavigatorManager, useStyles$i as useStyles, useToken, useUTLSettingsContext, useUserContext };
17508
+ export { Account, AssetProvider, AssetTreePicker, AuthContext, AuthProvider, BarChartControl, ButtonWithLoading, ChangePassword, CheckBoxControl, Configuration$1 as Configuration, ContextMenu$1 as ContextMenu, ContextMenuMESFProvider, CreateNewAssetDialog, CurrencyFormatter, DataGridControl, DateFormatter, DateTimeFormatter, ENTRY_INITIAL_VALUES, EditAssetDialog, ErrorModal, FetchError, FilterPanel, GenericPanel, GenericTable, GetCrewColor, GetShiftColor, HelmetDexteel, IntegerFormatter, LogbookSettingsInitialState, LogbookSettingsProvider, Login, Logout, LongFilterPanel, MESApiService, MESFLogbookEntry, MESFLogbookReport, MESFMain, MESSAGE_API, MESSAGE_ERRORS, MasterDetailPanel, MesfModal, ModalTreeFilterControl, MultipleSelectorControl, NumberFormatter, RemoveAssetDialog, ShiftDayNavigatorControl, ShiftNavigatorProvider, ShiftPeriodNavigatorControl, SimplePasswordControl, SimpleSelectorControl, TimeAndUserMenu, TimeFormatter, TimeService, TreePickerControl, TreePickerControlV2, TrendingsPage, USER_LABELS, UTLSettingsProvider, UserProvider, axiosInstance, deleteUser, dxtServerTimeZone, dxtToLocalServerTime, dxtToUTC, formatNumber, getAuthTypes, getCrewStyle, getDataUser, getError, getMomentTz, getShiftByParameters, getShiftStyle, getShiftsRangeByParameters, getTokenFromLS, getUserPermissionsFromAPI, getUsers, logbookNavbar, logbookRoutesMESF, renewToken, routeLogbookEntry, routeLogbookReport, searchAssets, setPassword, setProfilesToUser, themeDXT, themeMESF, upsertUser, useAssetContext, useContextMenuMESF, useHasPermission, useHasProfile, useLogbookSettings, useMesfRealtime, useShiftNavigator, useShiftNavigatorManager, useStyles$i as useStyles, useToken, useUTLSettingsContext, useUserContext };
17766
17509
  //# sourceMappingURL=index.esm.js.map