@dexteel/mesf-core 4.5.3 → 4.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,4 +1,12 @@
1
1
  # CHANGELOG
2
+ ## 4.5.5
3
+ - 115 fix area asset picker
4
+ - 114 fix error modal width
5
+ - 127 add columns in configuration jobs table
6
+ - change layout in login component
7
+ - 134 close aseet tree with esc
8
+ ## 4.5.4
9
+ - Add arrows dates navigator
2
10
  ## 4.5.3
3
11
  - Use color picker in trendings
4
12
  ## 4.5.0
@@ -9,10 +9,13 @@ export declare const useJobsTableData: ({ setRowSelected }: Props) => {
9
9
  id: number;
10
10
  sProcedure: string;
11
11
  Running: boolean;
12
- LastStarted: null;
13
- LastCounter: null;
12
+ LastStarted: Date | null;
13
+ LastCounter: Date;
14
14
  Enabled: boolean;
15
15
  RestartAfterFailure: boolean;
16
+ PeriodTime: number | null;
17
+ StartTime: Date;
18
+ NextExecutionTime: Date;
16
19
  }[];
17
20
  columnDefs: ColDef<any>[];
18
21
  };
@@ -1,14 +1,19 @@
1
1
  export interface Job {
2
- row: Job;
3
2
  JobId: number;
4
3
  sProcedure: string;
5
- LastStarted: null;
6
- LastContact: null;
7
- LastStatus: null;
4
+ LastStarted: Date | null;
5
+ LastContact: Date | null;
6
+ LastStatus: string | null;
8
7
  Counter: number;
9
- LastCounter: null;
10
- Enabled: boolean;
8
+ LastCounter: Date;
11
9
  RestartAfterFailure: boolean;
10
+ PeriodTime: number | null;
11
+ StartTime: Date;
12
+ NextExecutionTime: Date;
13
+ LastExecutionTime: Date;
14
+ LastExecutionResult: string;
15
+ CurrentStatus: string;
16
+ Enabled: boolean;
12
17
  SessionId: null;
13
18
  Started: null;
14
19
  Status: null;
package/dist/index.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import { Typography, TextField, makeStyles as makeStyles$1, Button as Button$1, Grid as Grid$1, Dialog as Dialog$1, DialogTitle as DialogTitle$2, DialogContent as DialogContent$2, DialogContentText, DialogActions as DialogActions$2, FormHelperText, CircularProgress as CircularProgress$1, Badge, FormControlLabel, Checkbox, Snackbar as Snackbar$1, Paper as Paper$1, MenuItem as MenuItem$1, useTheme as useTheme$1, Tooltip, Box, FormControl as FormControl$1, Select as Select$1, createStyles as createStyles$1, List, ListItem, ListItemText } from '@material-ui/core';
1
+ import { Typography, TextField, makeStyles as makeStyles$1, Button as Button$1, Grid as Grid$1, Dialog as Dialog$1, DialogTitle as DialogTitle$2, DialogContent as DialogContent$2, DialogContentText, DialogActions as DialogActions$2, FormHelperText, CircularProgress as CircularProgress$1, Badge, FormControlLabel, Checkbox, Snackbar as Snackbar$1, Paper as Paper$1, MenuItem as MenuItem$1, useTheme as useTheme$1, Tooltip, Box, IconButton as IconButton$1, FormControl as FormControl$1, Select as Select$1, createStyles as createStyles$1, List, ListItem, ListItemText } from '@material-ui/core';
2
2
  import { values, get, isNil as isNil$1, isEmpty } from 'lodash-es';
3
3
  import * as React from 'react';
4
4
  import React__default, { useState, useRef, useEffect, Component, createContext, useContext, useMemo, useCallback, lazy, Suspense } from 'react';
@@ -20,6 +20,7 @@ import Grid from '@material-ui/core/Grid';
20
20
  import { isNil, get as get$1 } from 'lodash';
21
21
  import { DndProvider } from 'react-dnd';
22
22
  import { HTML5Backend } from 'react-dnd-html5-backend';
23
+ import { ArrowRight, ChevronLeft, ChevronRight } from '@material-ui/icons';
23
24
  import axios from 'axios';
24
25
  import { _adapters, Chart, CategoryScale, LinearScale, PointElement, LineElement, Title, Tooltip as Tooltip$1, Legend, TimeScale } from 'chart.js';
25
26
  import moment from 'moment';
@@ -68,7 +69,6 @@ import 'ag-grid-enterprise/styles/ag-theme-balham.min.css';
68
69
  import 'ag-grid-community/styles/ag-grid.css';
69
70
  import 'ag-grid-community/styles/ag-theme-alpine.css';
70
71
  import { isAncestor, Tree } from '@minoru/react-dnd-treeview';
71
- import { ArrowRight } from '@material-ui/icons';
72
72
  import ImageIcon from '@material-ui/icons/Image';
73
73
  import ListAltIcon from '@material-ui/icons/ListAlt';
74
74
  import DescriptionIcon from '@material-ui/icons/Description';
@@ -368,6 +368,11 @@ var ModalTreeFilterControl = function (props) {
368
368
  onClose(value, findNode.name, findNode);
369
369
  }
370
370
  };
371
+ var handleKeyDown = function (event) {
372
+ if (event.key === "Escape") {
373
+ onClose();
374
+ }
375
+ };
371
376
  var getNodeParent = function (node, id, chain) {
372
377
  if (chain === void 0) { chain = []; }
373
378
  if (!node || node.id === undefined) {
@@ -429,7 +434,7 @@ var ModalTreeFilterControl = function (props) {
429
434
  nodes.name))), className: "delay-item-node", id: nodes.id, "data-isbranch": !nodes.isCode }, Array.isArray(nodes.children)
430
435
  ? nodes.children.map(function (node) { return renderTree(node); })
431
436
  : null)); };
432
- return (React__default.createElement(Dialog, __assign({ onClose: function (event, reason) { return null; }, "aria-label": title, maxWidth: "xs", TransitionProps: { onEntering: handleEntering }, "aria-labelledby": "confirmation-dialog-title", open: open }, other),
437
+ return (React__default.createElement(Dialog, __assign({ onClose: function (event, reason) { return null; }, "aria-label": title, maxWidth: "xs", TransitionProps: { onEntering: handleEntering }, "aria-labelledby": "confirmation-dialog-title", open: open }, other, { onKeyDown: handleKeyDown }),
433
438
  React__default.createElement(DialogTitle$1, { id: "confirmation-dialog-title" }, title),
434
439
  React__default.createElement(DialogContent$1, { dividers: true },
435
440
  React__default.createElement(TreeView, { className: classes.root, defaultCollapseIcon: React__default.createElement(MinusSquare, null), defaultExpandIcon: React__default.createElement(PlusSquare, null), ref: treeRef, selected: value === undefined ? "" : value.toString(), expanded: expanded, onNodeSelect: handleChange, onNodeToggle: handleToogle }, data && data.id !== undefined && renderTree(data))),
@@ -477,7 +482,7 @@ var TreePickerControl = function (props) {
477
482
  };
478
483
  return (React__default.createElement(Grid, { container: true, className: classes.root },
479
484
  React__default.createElement(Grid, { container: true, item: true, md: 12, xs: 12, style: { position: "relative" } },
480
- React__default.createElement(Grid, { item: true, style: { position: "relative" } },
485
+ React__default.createElement(Grid, { item: true, style: { position: "relative", width: "100%" } },
481
486
  React__default.createElement(TextField, { label: inputTitle, variant: "outlined", value: props.description, margin: "dense", autoComplete: "off", fullWidth: true, disabled: true }),
482
487
  React__default.createElement(AccountTreeIcon, { style: {
483
488
  position: "absolute",
@@ -1043,7 +1048,7 @@ var useJobsTableData = function (_a) {
1043
1048
  var _b = useJobsContext().state, jobsData = _b.jobsData, blockButtons = _b.blockButtons;
1044
1049
  var classes = useStyles$s();
1045
1050
  var rows = jobsData.map(function (_a) {
1046
- var JobId = _a.JobId, sProcedure = _a.sProcedure, Running = _a.Running, LastStarted = _a.LastStarted, LastCounter = _a.LastCounter, Enabled = _a.Enabled, RestartAfterFailure = _a.RestartAfterFailure;
1051
+ var JobId = _a.JobId, sProcedure = _a.sProcedure, Running = _a.Running, LastStarted = _a.LastStarted, LastCounter = _a.LastCounter, Enabled = _a.Enabled, RestartAfterFailure = _a.RestartAfterFailure, PeriodTime = _a.PeriodTime, StartTime = _a.StartTime, NextExecutionTime = _a.NextExecutionTime;
1047
1052
  return ({
1048
1053
  id: JobId,
1049
1054
  sProcedure: sProcedure,
@@ -1051,7 +1056,10 @@ var useJobsTableData = function (_a) {
1051
1056
  LastStarted: LastStarted,
1052
1057
  LastCounter: LastCounter,
1053
1058
  Enabled: Enabled,
1054
- RestartAfterFailure: RestartAfterFailure
1059
+ RestartAfterFailure: RestartAfterFailure,
1060
+ PeriodTime: PeriodTime,
1061
+ StartTime: StartTime,
1062
+ NextExecutionTime: NextExecutionTime
1055
1063
  });
1056
1064
  });
1057
1065
  var onActionsClick = function (e, params) {
@@ -1121,12 +1129,50 @@ var useJobsTableData = function (_a) {
1121
1129
  },
1122
1130
  {
1123
1131
  field: "Running",
1124
- minWidth: 100,
1125
- maxWidth: 100,
1132
+ minWidth: 60,
1133
+ maxWidth: 60,
1126
1134
  headerName: "Status",
1127
1135
  valueFormatter: function (_a) {
1128
1136
  var value = _a.value;
1129
- return (value ? "running" : "inactive");
1137
+ return (value ? "Running" : "Inactive");
1138
+ },
1139
+ flex: 1
1140
+ },
1141
+ {
1142
+ field: "PeriodTime",
1143
+ minWidth: 80,
1144
+ maxWidth: 80,
1145
+ headerName: "Period Time",
1146
+ flex: 1,
1147
+ valueFormatter: function (_a) {
1148
+ var value = _a.value;
1149
+ if (value === null || value === undefined)
1150
+ return "";
1151
+ var horas = Math.floor(value / 3600);
1152
+ var minutos = Math.floor((value % 3600) / 60);
1153
+ var segundos = value % 60;
1154
+ return "".concat(horas, "h ").concat(minutos, "min ").concat(segundos, "s");
1155
+ }
1156
+ },
1157
+ {
1158
+ field: "StartTime",
1159
+ minWidth: 130,
1160
+ maxWidth: 130,
1161
+ headerName: "Start Time",
1162
+ valueFormatter: function (_a) {
1163
+ var value = _a.value;
1164
+ return value === null ? "NULL" : moment(value).format("DD/MM/YYYY HH:mm");
1165
+ },
1166
+ flex: 1
1167
+ },
1168
+ {
1169
+ field: "NextExecutionTime",
1170
+ minWidth: 115,
1171
+ maxWidth: 115,
1172
+ headerName: "Next Execution",
1173
+ valueFormatter: function (_a) {
1174
+ var value = _a.value;
1175
+ return value === null ? "NULL" : moment(value).format("DD/MM/YYYY HH:mm");
1130
1176
  },
1131
1177
  flex: 1
1132
1178
  },
@@ -1143,8 +1189,8 @@ var useJobsTableData = function (_a) {
1143
1189
  },
1144
1190
  {
1145
1191
  field: "LastCounter",
1146
- minWidth: 130,
1147
- maxWidth: 130,
1192
+ minWidth: 115,
1193
+ maxWidth: 115,
1148
1194
  headerName: "Last Seen",
1149
1195
  valueFormatter: function (_a) {
1150
1196
  var value = _a.value;
@@ -1154,8 +1200,8 @@ var useJobsTableData = function (_a) {
1154
1200
  },
1155
1201
  {
1156
1202
  field: "Enabled",
1157
- minWidth: 70,
1158
- maxWidth: 70,
1203
+ minWidth: 50,
1204
+ maxWidth: 50,
1159
1205
  headerName: "Enabled",
1160
1206
  valueFormatter: function (_a) {
1161
1207
  var value = _a.value;
@@ -1273,14 +1319,14 @@ var MesfModal = Object.assign(Modal, {
1273
1319
  });
1274
1320
 
1275
1321
  var ErrorModal = function (_a) {
1276
- var error = _a.error, onHide = _a.onHide, _b = _a.title, title = _b === void 0 ? "Something went wrong!" : _b, _c = _a.size, size = _c === void 0 ? "sm" : _c;
1322
+ var error = _a.error, onHide = _a.onHide, _b = _a.title, title = _b === void 0 ? "Something went wrong!" : _b, _c = _a.size, size = _c === void 0 ? "md" : _c;
1277
1323
  return !!error ? (React__default.createElement(MesfModal, { open: true, handleClose: function () {
1278
1324
  onHide();
1279
1325
  }, title: title, maxWidth: size },
1280
1326
  React__default.createElement(MesfModal.Content, null,
1281
1327
  React__default.createElement("div", null, error)),
1282
1328
  React__default.createElement(MesfModal.Actions, null,
1283
- React__default.createElement(Grid$1, { container: true, spacing: 2, justifyContent: "flex-end", style: { padding: "1rem" } },
1329
+ React__default.createElement(Grid$1, { container: true, spacing: 2, justifyContent: "flex-end", style: { padding: "1rem", minWidth: "600px" } },
1284
1330
  React__default.createElement(Grid$1, { item: true, md: 2, xs: 12 },
1285
1331
  React__default.createElement(Button$1, { fullWidth: true, variant: "contained", color: "default", onClick: function () {
1286
1332
  onHide();
@@ -7720,7 +7766,16 @@ var LoginWithEmailAndPassword = function () {
7720
7766
  }); };
7721
7767
  return (React__default.createElement(React__default.Fragment, null,
7722
7768
  React__default.createElement("form", { onSubmit: login },
7723
- React__default.createElement(Alert$1, { show: showError, variant: "danger", dismissible: true, onClose: function () {
7769
+ React__default.createElement("div", { className: "form-group row" },
7770
+ React__default.createElement(TextField, { variant: "outlined", margin: "dense", id: "txtUserName", label: "User", name: "userName", onChange: function (e) { return setUserName(e.target.value); }, type: "text", autoComplete: "off", className: "form-control" })),
7771
+ React__default.createElement("div", { className: "form-group row" },
7772
+ React__default.createElement(TextField, { variant: "outlined", margin: "dense", id: "txtPassword", label: "Password", name: "password", onChange: function (e) { return setPassword(e.target.value); }, type: "password", className: "form-control" })),
7773
+ React__default.createElement("div", { className: "row" },
7774
+ React__default.createElement(Button$1, { fullWidth: true, variant: "contained", style: {
7775
+ backgroundColor: (password.length === 0 || username.length === 0) ? '#CCCCCC' : '#479DC4',
7776
+ color: (password.length === 0 || username.length === 0) ? 'black' : 'white'
7777
+ }, type: "submit", disabled: password.length === 0 || username.length === 0 }, "Login")),
7778
+ React__default.createElement(Alert$1, { style: { marginTop: 20 }, show: showError, variant: "danger", dismissible: true, onClose: function () {
7724
7779
  setShowError(false);
7725
7780
  setError(undefined);
7726
7781
  } },
@@ -7731,13 +7786,7 @@ var LoginWithEmailAndPassword = function () {
7731
7786
  ? "There was an error"
7732
7787
  : error.internalError.message === undefined
7733
7788
  ? error.internalError
7734
- : error.internalError.message)),
7735
- React__default.createElement("div", { className: "form-group row" },
7736
- React__default.createElement("input", { id: "txtUserName", placeholder: "User", name: "userName", onChange: function (e) { return setUserName(e.target.value); }, type: "text", autoComplete: "off", className: "form-control" })),
7737
- React__default.createElement("div", { className: "form-group row" },
7738
- React__default.createElement("input", { id: "txtPassword", placeholder: "Password", name: "password", onChange: function (e) { return setPassword(e.target.value); }, type: "password", className: "form-control" })),
7739
- React__default.createElement("div", { className: "row" },
7740
- React__default.createElement("button", { className: "btn btn-primary mes-button-primary mx-auto col-md-12 mt-3 ", type: "submit", disabled: password.length === 0 || username.length === 0 }, "Login")))));
7789
+ : error.internalError.message)))));
7741
7790
  };
7742
7791
 
7743
7792
  /*
@@ -7832,7 +7881,7 @@ var LoginWithAzureADForm = function () {
7832
7881
  }); };
7833
7882
  return (React__default.createElement("form", { onSubmit: login },
7834
7883
  React__default.createElement("div", { className: "row" },
7835
- React__default.createElement("button", { className: "btn btn-primary mes-button-primary mx-auto col-md-12 mt-3 ", type: "submit" }, "Login with Azure AD"))));
7884
+ React__default.createElement(Button$1, { fullWidth: true, variant: "contained", style: { backgroundColor: '#479DC4', color: 'white' }, type: "submit" }, "Login with Azure AD"))));
7836
7885
  };
7837
7886
 
7838
7887
  var LoginWithAzureAD = function (_a) {
@@ -7884,7 +7933,7 @@ var LoginAsGuest = function () {
7884
7933
  ? error.internalError
7885
7934
  : error.internalError.message)),
7886
7935
  React__default.createElement("div", { className: "row" },
7887
- React__default.createElement("button", { className: "btn btn-primary mes-button-primary mx-auto col-md-12 mt-3 ", role: "button", onClick: loginAsGuest }, "Guest"))));
7936
+ React__default.createElement(Button$1, { fullWidth: true, variant: "contained", style: { backgroundColor: '#479DC4', color: 'white' }, role: "button", onClick: loginAsGuest }, "Guest"))));
7888
7937
  };
7889
7938
 
7890
7939
  var LoginWithWindowsAuthentication = function () {
@@ -7953,7 +8002,7 @@ var LoginWithWindowsAuthentication = function () {
7953
8002
  " ",
7954
8003
  error)),
7955
8004
  React__default.createElement("div", { className: "row" },
7956
- React__default.createElement("button", { className: "btn btn-primary mes-button-primary mx-auto col-md-12 mt-3 ", role: "button", onClick: login }, "Windows Auth"))));
8005
+ React__default.createElement(Button$1, { fullWidth: true, variant: "contained", style: { backgroundColor: '#479DC4', color: 'white' }, role: "button", onClick: login }, "Windows Auth"))));
7957
8006
  return null;
7958
8007
  };
7959
8008
 
@@ -7984,14 +8033,22 @@ function Login(_a) {
7984
8033
  React__default.createElement(Navbar.Brand, { href: "/" }, "MESF"))),
7985
8034
  React__default.createElement("div", { className: "container-fluid" },
7986
8035
  React__default.createElement("div", { className: "row" },
7987
- React__default.createElement("div", { className: "col-12 col-md-6 mx-auto my-5" },
7988
- React__default.createElement("div", { className: "card" },
7989
- React__default.createElement("div", { className: "card-header text-center" }, "Login"),
7990
- React__default.createElement("div", { className: "card-body m-3" },
7991
- useEmailAndPassword && React__default.createElement(LoginWithEmailAndPassword, null),
7992
- useAzureAD && (React__default.createElement(LoginWithAzureAD, { config: authConfig.AzureConfig })),
7993
- React__default.createElement(LoginWithWindowsAuthentication, null),
7994
- guestIsEnabled && React__default.createElement(LoginAsGuest, null)))))),
8036
+ React__default.createElement("div", { className: "col-10 col-md-6 mx-auto my-5" },
8037
+ React__default.createElement(Paper$1, { elevation: 2 },
8038
+ React__default.createElement("div", { className: "card-header text-center" },
8039
+ React__default.createElement("b", null, "LOGIN")),
8040
+ React__default.createElement(Grid$1, { container: true, justifyContent: "space-between", alignItems: "center" }, (!useAzureAD && !guestIsEnabled) ? (React__default.createElement(Grid$1, { item: true, xs: 12 },
8041
+ React__default.createElement(Paper$1, { elevation: 2, style: { padding: 40, margin: "40px 40px 40px 40px" } }, useEmailAndPassword && React__default.createElement(LoginWithEmailAndPassword, null)))) : (React__default.createElement(React__default.Fragment, null,
8042
+ React__default.createElement(Grid$1, { item: true, md: 5, xs: 5 },
8043
+ React__default.createElement(Paper$1, { elevation: 2, style: { padding: 40, margin: "40px -40px 40px 40px" } }, useEmailAndPassword && React__default.createElement(LoginWithEmailAndPassword, null))),
8044
+ React__default.createElement(Grid$1, { item: true, md: 1, xs: 1, style: { maxWidth: "20px" } },
8045
+ React__default.createElement("span", { className: "text-muted font-weight-bold" }, "OR")),
8046
+ React__default.createElement(Grid$1, { item: true, md: 5, xs: 5, style: { marginBottom: "auto" } },
8047
+ React__default.createElement(Paper$1, { elevation: 2, style: { padding: 40, margin: "40px 40px 40px -40px", minHeight: 248, display: 'flex', flexDirection: 'column', justifyContent: 'space-evenly' } },
8048
+ React__default.createElement(React__default.Fragment, null,
8049
+ React__default.createElement(LoginWithWindowsAuthentication, null),
8050
+ useAzureAD && (React__default.createElement(LoginWithAzureAD, { config: authConfig.AzureConfig })),
8051
+ guestIsEnabled && React__default.createElement(LoginAsGuest, null))))))))))),
7995
8052
  React__default.createElement(Snackbar$1, { open: open, autoHideDuration: 6000, onClose: handleClose, message: message })));
7996
8053
  }
7997
8054
 
@@ -8686,6 +8743,13 @@ var TrendingsReducer = createSlice({
8686
8743
  reducers: {
8687
8744
  setTotalScope: function (state, _a) {
8688
8745
  var payload = _a.payload; _a.type;
8746
+ if (!isNil$1(payload.start) && !isNil$1(payload.end) && !isNil$1(payload.scope)) {
8747
+ //from arrow navigators
8748
+ state.timeScopeStart = payload.start;
8749
+ state.timeScopeEnd = payload.end;
8750
+ state.scope = payload.scope;
8751
+ return;
8752
+ }
8689
8753
  if (!isNil$1(payload.scope)) {
8690
8754
  if (payload.scope !== "custom") {
8691
8755
  switch (payload.scope) {
@@ -8724,7 +8788,7 @@ var TrendingsReducer = createSlice({
8724
8788
  state.scope = payload.scope;
8725
8789
  return;
8726
8790
  }
8727
- if (!isNil$1(payload.start) && !isNil$1(payload.end)) {
8791
+ if (!isNil$1(payload.start) && !isNil$1(payload.end) && isNil$1(payload.scope)) {
8728
8792
  // from graph
8729
8793
  state.timeScopeStart = payload.start;
8730
8794
  state.timeScopeEnd = payload.end;
@@ -8875,6 +8939,11 @@ var useTrendingStyles = makeStyles$1(function (theme) { return ({
8875
8939
  '& input[type="checkbox"]': {
8876
8940
  zoom: 1.5
8877
8941
  }
8942
+ },
8943
+ navigatorButton: {
8944
+ "& .MuiSvgIcon-root": {
8945
+ cursor: "pointer !important"
8946
+ }
8878
8947
  }
8879
8948
  }); });
8880
8949
 
@@ -8898,6 +8967,17 @@ var CustomOptionsComponent = function (_a) {
8898
8967
  "Stepped"))));
8899
8968
  };
8900
8969
 
8970
+ var dateNavigator = function (startDate, endDate, scope, operator) {
8971
+ if (scope === "custom")
8972
+ return;
8973
+ else {
8974
+ var _a = scope.split(" "), quantity = _a[0], duration = _a[1];
8975
+ var newStartDate = moment(startDate)[operator](quantity, duration[0]).toDate();
8976
+ var newEndDate = moment(endDate)[operator](quantity, duration[0]).toDate();
8977
+ return { newStartDate: newStartDate, newEndDate: newEndDate };
8978
+ }
8979
+ };
8980
+
8901
8981
  Chart.register(CategoryScale, LinearScale, PointElement, LineElement, Title, Tooltip$1, Legend, TimeScale, zoomPlugin);
8902
8982
  function getVerticalLinePlugin(setCursorData) {
8903
8983
  return {
@@ -9011,6 +9091,12 @@ var Trending = function (_a) {
9011
9091
  });
9012
9092
  }
9013
9093
  };
9094
+ var handleDateNavigator = function (operator) {
9095
+ var newDates = dateNavigator(state.timeScopeStart, state.timeScopeEnd, state.scope, operator);
9096
+ if (newDates) {
9097
+ actions.setTotalScope({ start: newDates.newStartDate, end: newDates.newEndDate, scope: state.scope });
9098
+ }
9099
+ };
9014
9100
  var _j = useState({
9015
9101
  animation: {
9016
9102
  duration: 0
@@ -9026,7 +9112,6 @@ var Trending = function (_a) {
9026
9112
  maxTicksLimit: 20,
9027
9113
  callback: function (value, index, values) {
9028
9114
  // Extract the time and date from the current value
9029
- console.log("VALUE", value);
9030
9115
  var currentDate = new Date(value);
9031
9116
  var time = currentDate.toLocaleTimeString("en-US", {
9032
9117
  hour12: false,
@@ -9234,6 +9319,8 @@ var Trending = function (_a) {
9234
9319
  return (React__default.createElement(Grid$1, { container: true, style: { width: "95svw", height: "81svh", margin: 0 } },
9235
9320
  React__default.createElement(Grid$1, { item: true, xs: 12, container: true, justifyContent: "space-between", alignItems: "center", style: { height: "15%" } },
9236
9321
  React__default.createElement(Grid$1, { md: 5, item: true, container: true, justifyContent: "flex-start", alignItems: "center", spacing: 1, wrap: "wrap" },
9322
+ React__default.createElement(IconButton$1, { color: "primary", onClick: function () { return handleDateNavigator("subtract"); }, className: classes.navigatorButton },
9323
+ React__default.createElement(ChevronLeft, { fontSize: "large" })),
9237
9324
  React__default.createElement(Grid$1, { item: true },
9238
9325
  React__default.createElement(TextField, { type: "datetime-local", className: classes.datetimePicker, label: "Start", variant: "outlined", value: moment(state.timeScopeStart).format("YYYY-MM-DDTHH:mm:ss"), onChange: function (e) { return handleDateChange(e.target.value, "start"); }, InputLabelProps: {
9239
9326
  shrink: true,
@@ -9255,7 +9342,9 @@ var Trending = function (_a) {
9255
9342
  React__default.createElement(TextField, { label: "End", variant: "outlined", className: classes.datetimePicker, type: "datetime-local", value: moment(state.timeScopeEnd).format("YYYY-MM-DDTHH:mm:ss"), onChange: function (e) { return handleDateChange(e.target.value, "end"); }, InputLabelProps: {
9256
9343
  shrink: true,
9257
9344
  style: { marginLeft: "10px" }
9258
- } }))),
9345
+ } })),
9346
+ React__default.createElement(IconButton$1, { color: "primary", onClick: function () { return handleDateNavigator("add"); }, className: classes.navigatorButton },
9347
+ React__default.createElement(ChevronRight, { fontSize: "large" }))),
9259
9348
  React__default.createElement(Grid$1, { md: 7, item: true, container: true, justifyContent: "space-between" },
9260
9349
  React__default.createElement(Grid$1, { item: true, container: true, wrap: "nowrap", spacing: 1 },
9261
9350
  React__default.createElement(Grid$1, { item: true, container: true },
@@ -23,6 +23,10 @@ export declare const useTrendingContext: () => {
23
23
  scope?: import("../models/scopes.model").scopeType | undefined;
24
24
  start?: Date | undefined;
25
25
  end: Date;
26
+ } | {
27
+ scope: import("../models/scopes.model").scopeType;
28
+ start: Date;
29
+ end: Date;
26
30
  };
27
31
  type: string;
28
32
  }): void;
@@ -1 +1 @@
1
- export declare const useTrendingStyles: (props?: any) => import("@material-ui/styles").ClassNameMap<"datetimePicker" | "select" | "labelOptions">;
1
+ export declare const useTrendingStyles: (props?: any) => import("@material-ui/styles").ClassNameMap<"datetimePicker" | "select" | "labelOptions" | "navigatorButton">;
@@ -0,0 +1,5 @@
1
+ import { scopeType } from "../models/scopes.model";
2
+ export declare const dateNavigator: (startDate: Date, endDate: Date, scope: scopeType, operator: "add" | "subtract") => {
3
+ newStartDate: Date;
4
+ newEndDate: Date;
5
+ } | undefined;
@@ -21,6 +21,10 @@ export declare const TrendingsReducer: import("@reduxjs/toolkit").Slice<{
21
21
  scope?: scopeType;
22
22
  start?: Date;
23
23
  end: Date;
24
+ } | {
25
+ scope: scopeType;
26
+ start: Date;
27
+ end: Date;
24
28
  };
25
29
  type: string;
26
30
  }): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dexteel/mesf-core",
3
- "version": "4.5.3",
3
+ "version": "4.5.5",
4
4
  "author": "Dexteel Team",
5
5
  "module": "dist/index.esm.js",
6
6
  "typings": "dist/index.d.ts",