@dexteel/mesf-core 4.7.8 → 4.7.9

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,6 @@
1
1
  # CHANGELOG
2
+ ## 4.7.9
3
+ - Trendings: Add distinction between public and private views in Load View popup. Also now you can Edit/Delete the views
2
4
  ## 4.7.8
3
5
  - Trendings: Remove the 'Save view' popup and improve the 'Save view as' modal. Now you can choose a view to save in save view as or create a new one
4
6
  ## 4.7.7
package/dist/index.esm.js CHANGED
@@ -35,6 +35,9 @@ import Popover from '@material-ui/core/Popover';
35
35
  import ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';
36
36
  import FolderIcon from '@material-ui/icons/Folder';
37
37
  import InsertDriveFileIcon from '@material-ui/icons/InsertDriveFile';
38
+ import CreateIcon from '@material-ui/icons/Create';
39
+ import DeleteIcon from '@material-ui/icons/Delete';
40
+ import LockIcon from '@material-ui/icons/Lock';
38
41
  import { ArrowRight, ChevronLeft, ChevronRight } from '@material-ui/icons';
39
42
  import { Line } from 'react-chartjs-2';
40
43
  import PersonPinCircleIcon from '@material-ui/icons/PersonPinCircle';
@@ -63,7 +66,6 @@ import { MuiPickersUtilsProvider, KeyboardDatePicker, KeyboardTimePicker } from
63
66
  import MomentUtils from '@date-io/moment';
64
67
  import InputLabel from '@material-ui/core/InputLabel';
65
68
  import DialogContentText$1 from '@material-ui/core/DialogContentText';
66
- import DeleteIcon from '@material-ui/icons/Delete';
67
69
  import EditIcon from '@material-ui/icons/Edit';
68
70
  import 'ag-grid-enterprise/styles/ag-grid.css';
69
71
  import 'ag-grid-enterprise/styles/ag-theme-balham.min.css';
@@ -1329,7 +1331,8 @@ var DialogTitle = withStyles(styles)(function (props) {
1329
1331
  var DialogContent = withStyles(function (theme) { return ({
1330
1332
  root: {
1331
1333
  padding: theme.spacing(2),
1332
- minWidth: 600
1334
+ minWidth: 600,
1335
+ overflow: 'hidden'
1333
1336
  }
1334
1337
  }); })(DialogContent$1);
1335
1338
  var DialogActions = withStyles(function (theme) { return ({
@@ -10193,6 +10196,21 @@ var upsertView = function (ViewId, ViewName, isPublic) { return __awaiter(void 0
10193
10196
  }
10194
10197
  });
10195
10198
  }); };
10199
+ var deleteView = function (ViewId) { return __awaiter(void 0, void 0, void 0, function () {
10200
+ var apiService, parameters, resp;
10201
+ return __generator(this, function (_a) {
10202
+ switch (_a.label) {
10203
+ case 0:
10204
+ apiService = new MESApiService();
10205
+ parameters = [];
10206
+ parameters.push({ name: "ViewId", value: ViewId });
10207
+ return [4 /*yield*/, apiService.callV2("[mssql2022].[IH_100020].[ih].[DeleteView]", parameters)];
10208
+ case 1:
10209
+ resp = _a.sent();
10210
+ return [2 /*return*/, resp];
10211
+ }
10212
+ });
10213
+ }); };
10196
10214
  //viewTags
10197
10215
  var getViewTags = function (ViewId) { return __awaiter(void 0, void 0, void 0, function () {
10198
10216
  var apiService, parameters, resp;
@@ -10247,47 +10265,6 @@ var deleteViewTag = function (ViewId, TagId) { return __awaiter(void 0, void 0,
10247
10265
  });
10248
10266
  }); };
10249
10267
 
10250
- var LoadViewModal = function (_a) {
10251
- var open = _a.open, handleClose = _a.handleClose;
10252
- var _b = useTrendingContext(), _c = _b.state, views = _c.views, viewSelected = _c.viewSelected, _d = _b.actions; _d.setViews; var setViewTags = _d.setViewTags, setViewSelected = _d.setViewSelected;
10253
- var _e = useState(false), isLoading = _e[0], setIsLoading = _e[1];
10254
- var _f = useState(''), error = _f[0], setError = _f[1];
10255
- var handleSelect = function () { return __awaiter(void 0, void 0, void 0, function () {
10256
- var viewTagsResp;
10257
- return __generator(this, function (_a) {
10258
- switch (_a.label) {
10259
- case 0:
10260
- if (!viewSelected) return [3 /*break*/, 2];
10261
- setIsLoading(true);
10262
- return [4 /*yield*/, getViewTags(viewSelected.ViewId)];
10263
- case 1:
10264
- viewTagsResp = _a.sent();
10265
- if (viewTagsResp.ok) {
10266
- setViewTags(viewTagsResp.data.tables[0].rows);
10267
- }
10268
- else {
10269
- setError(viewTagsResp.message);
10270
- }
10271
- setIsLoading(false);
10272
- handleClose(true);
10273
- _a.label = 2;
10274
- case 2: return [2 /*return*/];
10275
- }
10276
- });
10277
- }); };
10278
- return (React__default.createElement("div", null,
10279
- React__default.createElement(MesfModal, { open: open, handleClose: function () { return handleClose(false); }, maxWidth: "xl", "aria-labelledby": "modal-modal-title", "aria-describedby": "modal-modal-description", title: 'Tags' },
10280
- React__default.createElement(MesfModal.Content, null,
10281
- React__default.createElement(Grid$1, { container: true },
10282
- React__default.createElement(Grid$1, { item: true, md: 12 }, views.length ? (React__default.createElement(Autocomplete, { size: 'small', id: "list-of-views", options: views, getOptionLabel: function (option) { return option.ViewName; }, onChange: function (ev, val) { return setViewSelected(val); }, style: { width: "100%" }, renderInput: function (params) { return React__default.createElement(TextField, __assign({}, params, { label: "Views", variant: "outlined" })); } })) :
10283
- (React__default.createElement("div", null, "No tag views detected, please add one"))))),
10284
- React__default.createElement(MesfModal.Actions, null,
10285
- React__default.createElement("div", { style: { paddingTop: "1rem" } },
10286
- React__default.createElement(Button$1, { variant: 'outlined', style: { marginRight: "1rem" }, color: 'secondary', onClick: function () { return handleClose(false); } }, "Cancel"),
10287
- React__default.createElement(ButtonWithLoading, { onClick: handleSelect, variant: 'contained', color: 'primary', isLoading: isLoading, style: { marginRight: "1rem" } }, "Apply")))),
10288
- React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(''); } })));
10289
- };
10290
-
10291
10268
  var useTrendingStyles = makeStyles$1(function (theme) { return ({
10292
10269
  datetimePicker: {
10293
10270
  alignItems: "center",
@@ -10364,9 +10341,245 @@ var useTrendingStyles = makeStyles$1(function (theme) { return ({
10364
10341
  }
10365
10342
  },
10366
10343
  color: 'black'
10344
+ },
10345
+ iconContainer: {
10346
+ display: 'flex',
10347
+ justifyContent: 'flex-end',
10348
+ alignItems: 'center',
10349
+ flex: 1
10350
+ },
10351
+ optionContainer: {
10352
+ display: 'flex',
10353
+ justifyContent: 'flex-start',
10354
+ alignItems: 'center',
10355
+ width: '100%'
10356
+ },
10357
+ optionLabel: {
10358
+ flexGrow: 1
10359
+ },
10360
+ inputCustom: {
10361
+ color: 'rgba(0, 0, 0, 0.87)',
10362
+ cursor: 'text',
10363
+ fontSize: '0.7rem',
10364
+ boxSizing: 'border-box',
10365
+ fontFamily: '"Roboto", "Helvetica", "Arial", sans-serif',
10366
+ fontWeight: 400,
10367
+ lineHeight: 1.1876,
10368
+ letterSpacing: '0.00938em',
10369
+ '& .MuiOutlinedInput-input': {
10370
+ padding: '10px 10px'
10371
+ }
10367
10372
  }
10368
10373
  }); });
10369
10374
 
10375
+ var DeleteViewModal = function (_a) {
10376
+ var open = _a.open, handleClose = _a.handleClose, view = _a.view;
10377
+ var _b = useState(false), isLoading = _b[0], setIsLoading = _b[1];
10378
+ var _c = useState(''), error = _c[0], setError = _c[1];
10379
+ var handleSubmit = function () { return __awaiter(void 0, void 0, void 0, function () {
10380
+ var resp;
10381
+ return __generator(this, function (_a) {
10382
+ switch (_a.label) {
10383
+ case 0:
10384
+ setIsLoading(true);
10385
+ if (!!isNil$1(view)) return [3 /*break*/, 2];
10386
+ return [4 /*yield*/, deleteView(view.ViewId)];
10387
+ case 1:
10388
+ resp = _a.sent();
10389
+ if (!resp.ok) {
10390
+ setError(resp.message);
10391
+ }
10392
+ else {
10393
+ handleClose(true);
10394
+ }
10395
+ _a.label = 2;
10396
+ case 2:
10397
+ setIsLoading(false);
10398
+ return [2 /*return*/];
10399
+ }
10400
+ });
10401
+ }); };
10402
+ return (React__default.createElement(React__default.Fragment, null,
10403
+ React__default.createElement(MesfModal, { open: open, handleClose: function () { return handleClose(false); }, maxWidth: "xl", "aria-labelledby": "modal-modal-title", "aria-describedby": "modal-modal-description", title: 'Delete View' },
10404
+ React__default.createElement(Divider, null),
10405
+ React__default.createElement(MesfModal.Content, null, !isNil$1(view) ?
10406
+ (React__default.createElement(Grid$1, { container: true, spacing: 5, style: { padding: "2rem" } },
10407
+ React__default.createElement(Grid$1, { item: true, md: 12, xs: 12, style: { padding: "10px", width: "100%" } },
10408
+ React__default.createElement(Typography, null,
10409
+ "Are yu sure you want to delete ",
10410
+ React__default.createElement("strong", null, view === null || view === void 0 ? void 0 : view.ViewName),
10411
+ " ?")))) :
10412
+ (React__default.createElement(Typography, null, "ERROR: No view detected, please select one"))),
10413
+ React__default.createElement(Divider, null),
10414
+ React__default.createElement(MesfModal.Actions, null,
10415
+ React__default.createElement(Grid$1, { container: true, spacing: 1, style: { display: 'flex', alignItems: 'flex-end', justifyContent: 'flex-end' } },
10416
+ React__default.createElement(Grid$1, { item: true },
10417
+ React__default.createElement(Button$1, { variant: 'outlined', color: 'secondary', onClick: function () { return handleClose(false); } }, "Cancel")),
10418
+ React__default.createElement(Grid$1, { item: true }, !isNil$1(view) ?
10419
+ React__default.createElement(ButtonWithLoading, { variant: 'contained', color: 'secondary', onClick: handleSubmit, isLoading: isLoading }, "Delete")
10420
+ : (React__default.createElement(Button$1, { variant: 'contained', style: { marginRight: "1rem" }, color: 'primary', onClick: function () { return handleClose(false); } }, "Ok")))))),
10421
+ React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(''); } })));
10422
+ };
10423
+
10424
+ var EditViewModal = function (_a) {
10425
+ var open = _a.open, handleClose = _a.handleClose, view = _a.view;
10426
+ var classes = useTrendingStyles();
10427
+ var _b = useState(''), newName = _b[0], setNewName = _b[1];
10428
+ var _c = useState(true), isPublic = _c[0], setIsPublic = _c[1];
10429
+ var _d = useState(false), isLoading = _d[0], setIsLoading = _d[1];
10430
+ var _e = useState(''), error = _e[0], setError = _e[1];
10431
+ var handleSubmit = function () { return __awaiter(void 0, void 0, void 0, function () {
10432
+ var resp;
10433
+ return __generator(this, function (_a) {
10434
+ switch (_a.label) {
10435
+ case 0:
10436
+ setIsLoading(true);
10437
+ if (!!isNil$1(view)) return [3 /*break*/, 2];
10438
+ return [4 /*yield*/, upsertView(view.ViewId, newName, isPublic)];
10439
+ case 1:
10440
+ resp = _a.sent();
10441
+ if (!resp.ok) {
10442
+ setError(resp.message);
10443
+ }
10444
+ else {
10445
+ handleClose(true);
10446
+ }
10447
+ _a.label = 2;
10448
+ case 2:
10449
+ setIsLoading(false);
10450
+ return [2 /*return*/];
10451
+ }
10452
+ });
10453
+ }); };
10454
+ var handleChangeInput = function (e) {
10455
+ e.preventDefault();
10456
+ var name = e.target.value;
10457
+ setNewName(name);
10458
+ };
10459
+ var handleCheck = function () { return setIsPublic(!isPublic); };
10460
+ useEffect(function () {
10461
+ if (view) {
10462
+ setIsPublic(view.IsPublic);
10463
+ setNewName(view.ViewName);
10464
+ }
10465
+ }, [view]);
10466
+ return (React__default.createElement(React__default.Fragment, null,
10467
+ React__default.createElement(MesfModal, { open: open, handleClose: function () { return handleClose(false); }, maxWidth: "xl", "aria-labelledby": "modal-modal-title", "aria-describedby": "modal-modal-description", title: 'Update View' },
10468
+ React__default.createElement(Divider, null),
10469
+ React__default.createElement(MesfModal.Content, null, !isNil$1(view) ?
10470
+ (React__default.createElement(Grid$1, { container: true, spacing: 5, style: { padding: "2rem" } },
10471
+ React__default.createElement(Grid$1, { item: true, md: 12, xs: 12, style: { padding: "10px", width: "100%" } },
10472
+ React__default.createElement(TextField, { required: true, className: classes.inputCustom, id: "viewName", label: "Name", variant: "outlined", onChange: handleChangeInput, value: newName })),
10473
+ React__default.createElement(Grid$1, { item: true, md: 12, xs: 12, style: { paddingTop: "2rem" }, className: classes.isPublicCheckbox },
10474
+ React__default.createElement("label", null,
10475
+ React__default.createElement("input", { type: "checkbox", checked: isPublic, onChange: handleCheck }),
10476
+ React__default.createElement(Typography, null, "Public"))))) :
10477
+ (React__default.createElement(Typography, null, "ERROR: No view detected, please select one"))),
10478
+ React__default.createElement(Divider, null),
10479
+ React__default.createElement(MesfModal.Actions, null,
10480
+ React__default.createElement(Grid$1, { container: true, spacing: 1, style: { display: 'flex', alignItems: 'flex-end', justifyContent: 'flex-end' } },
10481
+ React__default.createElement(Grid$1, { item: true },
10482
+ React__default.createElement(Button$1, { variant: 'outlined', color: 'secondary', onClick: function () { return handleClose(false); } }, "Cancel")),
10483
+ React__default.createElement(Grid$1, { item: true }, !isNil$1(view) ?
10484
+ React__default.createElement(ButtonWithLoading, { variant: 'contained', color: 'primary', onClick: handleSubmit, isLoading: isLoading }, "Update")
10485
+ : (React__default.createElement(Button$1, { variant: 'contained', style: { marginRight: "1rem" }, color: 'primary', onClick: function () { return handleClose(false); } }, "Ok")))))),
10486
+ React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(''); } })));
10487
+ };
10488
+
10489
+ var LoadViewModal = function (_a) {
10490
+ var open = _a.open, handleClose = _a.handleClose, getTagsFromAPI = _a.getTagsFromAPI;
10491
+ var _b = useTrendingContext(), _c = _b.state, views = _c.views, viewSelected = _c.viewSelected, _d = _b.actions; _d.setViews; var setViewTags = _d.setViewTags, setViewSelected = _d.setViewSelected;
10492
+ var classes = useTrendingStyles();
10493
+ var _e = useState(null), viewForDelete = _e[0], setViewForDelete = _e[1];
10494
+ var _f = useState(null), viewForEdit = _f[0], setViewForEdit = _f[1];
10495
+ var _g = useState(false), deleteViewModalOpen = _g[0], setDeleteViewModalOpen = _g[1];
10496
+ var _h = useState(false), editViewModalOpen = _h[0], setEditViewModalOpen = _h[1];
10497
+ var _j = useState(false), allViewsChecked = _j[0], setAllViewsChecked = _j[1];
10498
+ var _k = useState(false), isLoading = _k[0], setIsLoading = _k[1];
10499
+ var _l = useState(''), error = _l[0], setError = _l[1];
10500
+ var handleSelect = function () { return __awaiter(void 0, void 0, void 0, function () {
10501
+ var viewTagsResp;
10502
+ return __generator(this, function (_a) {
10503
+ switch (_a.label) {
10504
+ case 0:
10505
+ if (!viewSelected) return [3 /*break*/, 2];
10506
+ setIsLoading(true);
10507
+ return [4 /*yield*/, getViewTags(viewSelected.ViewId)];
10508
+ case 1:
10509
+ viewTagsResp = _a.sent();
10510
+ if (viewTagsResp.ok) {
10511
+ setViewTags(viewTagsResp.data.tables[0].rows);
10512
+ }
10513
+ else {
10514
+ setError(viewTagsResp.message);
10515
+ }
10516
+ setIsLoading(false);
10517
+ handleClose(true);
10518
+ _a.label = 2;
10519
+ case 2: return [2 /*return*/];
10520
+ }
10521
+ });
10522
+ }); };
10523
+ var handleDeleteView = function (view, e) { return __awaiter(void 0, void 0, void 0, function () {
10524
+ return __generator(this, function (_a) {
10525
+ e.stopPropagation();
10526
+ setViewForDelete(view);
10527
+ setDeleteViewModalOpen(true);
10528
+ return [2 /*return*/];
10529
+ });
10530
+ }); };
10531
+ var handleEditView = function (view, e) { return __awaiter(void 0, void 0, void 0, function () {
10532
+ return __generator(this, function (_a) {
10533
+ setViewForEdit(view);
10534
+ setEditViewModalOpen(true);
10535
+ return [2 /*return*/];
10536
+ });
10537
+ }); };
10538
+ var handleAllViewsCheckbox = function () {
10539
+ setAllViewsChecked(function (prev) { return !prev; });
10540
+ };
10541
+ var privateViews = useMemo(function () {
10542
+ return views.filter(function (v) { return v.IsPublic === false; });
10543
+ }, [views, allViewsChecked]);
10544
+ return (React__default.createElement("div", null,
10545
+ 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' },
10546
+ React__default.createElement(MesfModal.Content, null,
10547
+ React__default.createElement(Grid$1, { container: true }, views.length ? (React__default.createElement(React__default.Fragment, null,
10548
+ React__default.createElement(Grid$1, { item: true, md: 12 },
10549
+ React__default.createElement("div", { className: classes.isPublicCheckbox, style: { paddingBottom: '1rem' } },
10550
+ React__default.createElement("label", { htmlFor: "" },
10551
+ React__default.createElement("input", { type: "checkbox", checked: allViewsChecked, onChange: handleAllViewsCheckbox }),
10552
+ React__default.createElement(Typography, null, "All Views")))),
10553
+ React__default.createElement(Grid$1, { item: true, md: 12 },
10554
+ React__default.createElement(Autocomplete, { size: 'small', id: "list-of-views", options: allViewsChecked ? views : privateViews, getOptionLabel: function (option) { return option.ViewName; }, onChange: function (ev, val) { return setViewSelected(val); }, style: { width: "100%" }, renderOption: function (option) { return (React__default.createElement("div", { className: classes.optionContainer },
10555
+ React__default.createElement("div", { className: classes.optionLabel }, option.ViewName),
10556
+ React__default.createElement("div", { className: classes.iconContainer },
10557
+ option.IsPublic ? '' :
10558
+ React__default.createElement(React__default.Fragment, null,
10559
+ React__default.createElement(Tooltip, { title: "Private", arrow: true },
10560
+ React__default.createElement(LockIcon, { fontSize: 'small', style: { color: 'black', height: "18px", width: '18px', cursor: 'auto' } }))),
10561
+ React__default.createElement(IconButton$1, { onClick: function (e) { return handleEditView(option); } },
10562
+ React__default.createElement(CreateIcon, { fontSize: 'small', color: 'primary', style: { height: "18px", width: '18px', cursor: 'pointer' } })),
10563
+ React__default.createElement(IconButton$1, { onClick: function (e) { return handleDeleteView(option, e); } },
10564
+ React__default.createElement(DeleteIcon, { fontSize: 'small', color: 'secondary', style: { height: "18px", width: '18px', cursor: 'pointer' } }))))); }, renderInput: function (params) { return React__default.createElement(TextField, __assign({}, params, { label: "Views", variant: "outlined" })); } })))) :
10565
+ (React__default.createElement(Typography, null, "No tag views detected, please add one")))),
10566
+ React__default.createElement(MesfModal.Actions, null,
10567
+ React__default.createElement("div", { style: { paddingTop: "1rem" } },
10568
+ React__default.createElement(Button$1, { variant: 'outlined', style: { marginRight: "1rem" }, color: 'secondary', onClick: function () { return handleClose(false); } }, "Cancel"),
10569
+ views.length ? (React__default.createElement(ButtonWithLoading, { onClick: handleSelect, variant: 'contained', color: 'primary', isLoading: isLoading, style: { marginRight: "1rem" } }, "Apply")) : (React__default.createElement(Button$1, { variant: 'contained', style: { marginRight: "1rem" }, color: 'primary', onClick: function () { return handleClose(false); } }, "Ok"))))),
10570
+ React__default.createElement(DeleteViewModal, { open: deleteViewModalOpen, view: viewForDelete, handleClose: function (shouldUpdate) {
10571
+ setDeleteViewModalOpen(false);
10572
+ if (shouldUpdate)
10573
+ getTagsFromAPI().then(function () { });
10574
+ } }),
10575
+ React__default.createElement(EditViewModal, { open: editViewModalOpen, view: viewForEdit, handleClose: function (shouldUpdate) {
10576
+ setEditViewModalOpen(false);
10577
+ if (shouldUpdate)
10578
+ getTagsFromAPI().then(function () { });
10579
+ } }),
10580
+ React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(''); } })));
10581
+ };
10582
+
10370
10583
  var SaveAsViewModal = function (_a) {
10371
10584
  var open = _a.open, handleClose = _a.handleClose;
10372
10585
  var classes = useTrendingStyles();
@@ -10930,7 +11143,7 @@ var TableComponent = function (_a) {
10930
11143
  if (shouldUpdate)
10931
11144
  getTagsFromAPI(true).then(function () { });
10932
11145
  } }),
10933
- React__default.createElement(LoadViewModal, { open: loadViewOpen, handleClose: function (shouldUpdate) {
11146
+ React__default.createElement(LoadViewModal, { open: loadViewOpen, getTagsFromAPI: getTagsFromAPI, handleClose: function (shouldUpdate) {
10934
11147
  setLoadViewOpen(false);
10935
11148
  } })),
10936
11149
  React__default.createElement(ErrorModal, { error: error, onHide: function () { return setError(''); } }),