@gpa-gemstone/common-pages 0.0.22 → 0.0.29
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/Note.js +6 -6
- package/lib/SearchBar.js +39 -32
- package/lib/Setting.js +6 -6
- package/lib/StandardSelectPopup.js +13 -9
- package/lib/ValueList/ByValueList.js +7 -7
- package/lib/ValueList/Group.js +3 -3
- package/lib/ValueList/GroupItem.js +4 -4
- package/lib/ValueList/ItemForm.js +2 -2
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -2
- package/lib/user/AdditionalField.js +26 -22
- package/lib/user/ByUser.js +14 -14
- package/lib/user/User.js +3 -3
- package/lib/user/UserForm.js +2 -2
- package/lib/user/UserInfo.js +2 -2
- package/lib/user/UserPermissions.js +5 -5
- package/package.json +10 -10
package/lib/Note.js
CHANGED
@@ -40,14 +40,14 @@ var react_interactive_1 = require("@gpa-gemstone/react-interactive");
|
|
40
40
|
var moment = require("moment");
|
41
41
|
var react_redux_1 = require("react-redux");
|
42
42
|
function Note(props) {
|
43
|
-
var dispatch = react_redux_1.useDispatch();
|
43
|
+
var dispatch = (0, react_redux_1.useDispatch)();
|
44
44
|
var _a = React.useState(false), showEdit = _a[0], setEdit = _a[1];
|
45
45
|
var _b = React.useState('none'), hover = _b[0], setHover = _b[1];
|
46
|
-
var data = react_redux_1.useSelector(props.NoteSlice.Data);
|
47
|
-
var dataStatus = react_redux_1.useSelector(props.NoteSlice.Status);
|
48
|
-
var parentID = react_redux_1.useSelector((props.NoteSlice.ParentID === undefined ? function (state) { return props.ReferenceTableID; } : props.NoteSlice.ParentID));
|
49
|
-
var sortField = react_redux_1.useSelector(props.NoteSlice.SortField);
|
50
|
-
var ascending = react_redux_1.useSelector(props.NoteSlice.Ascending);
|
46
|
+
var data = (0, react_redux_1.useSelector)(props.NoteSlice.Data);
|
47
|
+
var dataStatus = (0, react_redux_1.useSelector)(props.NoteSlice.Status);
|
48
|
+
var parentID = (0, react_redux_1.useSelector)((props.NoteSlice.ParentID === undefined ? function (state) { return props.ReferenceTableID; } : props.NoteSlice.ParentID));
|
49
|
+
var sortField = (0, react_redux_1.useSelector)(props.NoteSlice.SortField);
|
50
|
+
var ascending = (0, react_redux_1.useSelector)(props.NoteSlice.Ascending);
|
51
51
|
var _c = React.useState(CreateNewNote()), note = _c[0], setNote = _c[1];
|
52
52
|
React.useEffect(function () {
|
53
53
|
if (dataStatus === 'unintiated' || dataStatus === 'changed' || parentID !== props.ReferenceTableID)
|
package/lib/SearchBar.js
CHANGED
@@ -22,10 +22,14 @@
|
|
22
22
|
// 12/19/2021 - C. Lackner
|
23
23
|
// Cleaned up code.
|
24
24
|
// ******************************************************************************************************
|
25
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
26
|
-
for (var i = 0,
|
27
|
-
|
28
|
-
|
25
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
26
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
27
|
+
if (ar || !(i in from)) {
|
28
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
29
|
+
ar[i] = from[i];
|
30
|
+
}
|
31
|
+
}
|
32
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
29
33
|
};
|
30
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
31
35
|
exports.DefaultSearch = void 0;
|
@@ -45,74 +49,77 @@ var DefaultSearch;
|
|
45
49
|
{ label: 'Model', key: 'Model', type: 'string', isPivotField: false },
|
46
50
|
{ label: 'Number of Assets', key: 'MappedAssets', type: 'number', isPivotField: false },
|
47
51
|
];
|
48
|
-
var dispatch = react_redux_1.useDispatch();
|
52
|
+
var dispatch = (0, react_redux_1.useDispatch)();
|
49
53
|
var _a = React.useState([]), addlFieldCols = _a[0], setAddlFieldCols = _a[1];
|
50
|
-
var searchStatus = react_redux_1.useSelector(props.Slice.SearchStatus);
|
51
|
-
var sortField = react_redux_1.useSelector(props.Slice.SortField);
|
52
|
-
var ascending = react_redux_1.useSelector(props.Slice.Ascending);
|
53
|
-
var data = react_redux_1.useSelector(props.Slice.SearchResults);
|
54
|
+
var searchStatus = (0, react_redux_1.useSelector)(props.Slice.SearchStatus);
|
55
|
+
var sortField = (0, react_redux_1.useSelector)(props.Slice.SortField);
|
56
|
+
var ascending = (0, react_redux_1.useSelector)(props.Slice.Ascending);
|
57
|
+
var data = (0, react_redux_1.useSelector)(props.Slice.SearchResults);
|
54
58
|
React.useEffect(function () {
|
55
59
|
return props.GetAddlFields(setAddlFieldCols);
|
56
60
|
}, []);
|
57
61
|
var standardSearch = { label: 'Name', key: 'Name', type: 'string', isPivotField: false };
|
58
|
-
return React.createElement(react_interactive_1.SearchBar, { CollumnList: __spreadArray(__spreadArray([],
|
62
|
+
return React.createElement(react_interactive_1.SearchBar, { CollumnList: __spreadArray(__spreadArray([], defaultSearchcols, true), addlFieldCols, true), SetFilter: function (flds) { return dispatch(props.Slice.DBSearch({ filter: flds, sortField: sortField, ascending: ascending })); }, Direction: 'left', defaultCollumn: standardSearch, Width: '50%', Label: 'Search', ShowLoading: searchStatus === 'loading', ResultNote: searchStatus === 'error' ? 'Could not complete Search' : 'Found ' + data.length + ' Meter(s)', GetEnum: props.GetEnum }, props.children);
|
59
63
|
}
|
60
64
|
DefaultSearch.Meter = Meter;
|
61
65
|
/** This Implements a standard Substation Search */
|
62
66
|
function Location(props) {
|
63
67
|
var standardSearch = { label: 'Name', key: 'Name', type: 'string', isPivotField: false };
|
64
68
|
var _a = React.useState([]), addlFieldCols = _a[0], setAddlFieldCols = _a[1];
|
65
|
-
var dispatch = react_redux_1.useDispatch();
|
66
|
-
var searchStatus = react_redux_1.useSelector(props.Slice.SearchStatus);
|
67
|
-
var sortField = react_redux_1.useSelector(props.Slice.SortField);
|
68
|
-
var ascending = react_redux_1.useSelector(props.Slice.Ascending);
|
69
|
-
var data = react_redux_1.useSelector(props.Slice.SearchResults);
|
69
|
+
var dispatch = (0, react_redux_1.useDispatch)();
|
70
|
+
var searchStatus = (0, react_redux_1.useSelector)(props.Slice.SearchStatus);
|
71
|
+
var sortField = (0, react_redux_1.useSelector)(props.Slice.SortField);
|
72
|
+
var ascending = (0, react_redux_1.useSelector)(props.Slice.Ascending);
|
73
|
+
var data = (0, react_redux_1.useSelector)(props.Slice.SearchResults);
|
70
74
|
var defaultSearchcols = [
|
71
75
|
{ label: 'Name', key: 'Name', type: 'string', isPivotField: false },
|
72
76
|
{ label: 'Key', key: 'LocationKey', type: 'string', isPivotField: false },
|
73
|
-
{ label: 'Asset', key: 'Asset', type: 'string', isPivotField: false },
|
77
|
+
{ label: 'Transmission Asset', key: 'Asset', type: 'string', isPivotField: false },
|
74
78
|
{ label: 'Meter', key: 'Meter', type: 'string', isPivotField: false },
|
75
|
-
{ label: 'Number of Assets', key: 'Assets', type: 'integer', isPivotField: false },
|
79
|
+
{ label: 'Number of Transmission Assets', key: 'Assets', type: 'integer', isPivotField: false },
|
76
80
|
{ label: 'Number of Meters', key: 'Meters', type: 'integer', isPivotField: false },
|
81
|
+
{ label: 'Description', key: 'Description', type: 'string', isPivotField: false }
|
77
82
|
];
|
78
83
|
React.useEffect(function () {
|
79
84
|
return props.GetAddlFields(setAddlFieldCols);
|
80
85
|
}, []);
|
81
|
-
return React.createElement(react_interactive_1.SearchBar, { CollumnList: __spreadArray(__spreadArray([],
|
86
|
+
return React.createElement(react_interactive_1.SearchBar, { CollumnList: __spreadArray(__spreadArray([], defaultSearchcols, true), addlFieldCols, true), SetFilter: function (flds) { return dispatch(props.Slice.DBSearch({ filter: flds, sortField: sortField, ascending: ascending })); }, Direction: 'left', defaultCollumn: standardSearch, Width: '50%', Label: 'Search', ShowLoading: searchStatus === 'loading', ResultNote: searchStatus === 'error' ? 'Could not complete Search' : 'Found ' + data.length + ' Substation(s)', GetEnum: props.GetEnum }, props.children);
|
82
87
|
}
|
83
88
|
DefaultSearch.Location = Location;
|
84
89
|
/** This Implements a standard Transmission Asset Search */
|
85
90
|
function Asset(props) {
|
86
91
|
var standardSearch = { label: 'Name', key: 'AssetName', type: 'string', isPivotField: false };
|
87
92
|
var _a = React.useState([]), addlFieldCols = _a[0], setAddlFieldCols = _a[1];
|
88
|
-
var dispatch = react_redux_1.useDispatch();
|
89
|
-
var searchStatus = react_redux_1.useSelector(props.Slice.SearchStatus);
|
90
|
-
var sortField = react_redux_1.useSelector(props.Slice.SortField);
|
91
|
-
var ascending = react_redux_1.useSelector(props.Slice.Ascending);
|
92
|
-
var data = react_redux_1.useSelector(props.Slice.SearchResults);
|
93
|
+
var dispatch = (0, react_redux_1.useDispatch)();
|
94
|
+
var searchStatus = (0, react_redux_1.useSelector)(props.Slice.SearchStatus);
|
95
|
+
var sortField = (0, react_redux_1.useSelector)(props.Slice.SortField);
|
96
|
+
var ascending = (0, react_redux_1.useSelector)(props.Slice.Ascending);
|
97
|
+
var data = (0, react_redux_1.useSelector)(props.Slice.SearchResults);
|
93
98
|
var defaultSearchcols = [
|
94
99
|
{ label: 'Key', key: 'AssetKey', type: 'string', isPivotField: false },
|
95
100
|
{ label: 'Name', key: 'AssetName', type: 'string', isPivotField: false },
|
96
101
|
{ label: 'Voltage (kV)', key: 'VoltageKV', type: 'number', isPivotField: false },
|
97
102
|
{ label: 'Type', key: 'AssetType', type: 'enum', isPivotField: false },
|
98
|
-
{ label: '
|
99
|
-
{ label: '
|
103
|
+
{ label: 'Meter', key: 'Meter', type: 'string', isPivotField: false },
|
104
|
+
{ label: 'Substation', key: 'Location', type: 'string', isPivotField: false },
|
105
|
+
{ label: 'Number of Meters', key: 'Meters', type: 'integer', isPivotField: false },
|
106
|
+
{ label: 'Number of Substations', key: 'Locations', type: 'integer', isPivotField: false },
|
100
107
|
];
|
101
108
|
React.useEffect(function () {
|
102
109
|
return props.GetAddlFields(setAddlFieldCols);
|
103
110
|
}, []);
|
104
|
-
return React.createElement(react_interactive_1.SearchBar, { CollumnList: __spreadArray(__spreadArray([],
|
111
|
+
return React.createElement(react_interactive_1.SearchBar, { CollumnList: __spreadArray(__spreadArray([], defaultSearchcols, true), addlFieldCols, true), SetFilter: function (flds) { return dispatch(props.Slice.DBSearch({ filter: flds, sortField: sortField, ascending: ascending })); }, Direction: 'left', defaultCollumn: standardSearch, Width: '50%', Label: 'Search', ShowLoading: searchStatus === 'loading', ResultNote: searchStatus === 'error' ? 'Could not complete Search' : 'Found ' + data.length + ' Transmission Asset(s)', GetEnum: props.GetEnum }, props.children);
|
105
112
|
}
|
106
113
|
DefaultSearch.Asset = Asset;
|
107
114
|
/** This Implements a standard AssetGroup Search */
|
108
115
|
function AssetGroup(props) {
|
109
116
|
var standardSearch = { label: 'Name', key: 'AssetName', type: 'string', isPivotField: false };
|
110
117
|
var _a = React.useState([]), addlFieldCols = _a[0], setAddlFieldCols = _a[1];
|
111
|
-
var dispatch = react_redux_1.useDispatch();
|
112
|
-
var searchStatus = react_redux_1.useSelector(props.Slice.SearchStatus);
|
113
|
-
var sortField = react_redux_1.useSelector(props.Slice.SortField);
|
114
|
-
var ascending = react_redux_1.useSelector(props.Slice.Ascending);
|
115
|
-
var data = react_redux_1.useSelector(props.Slice.SearchResults);
|
118
|
+
var dispatch = (0, react_redux_1.useDispatch)();
|
119
|
+
var searchStatus = (0, react_redux_1.useSelector)(props.Slice.SearchStatus);
|
120
|
+
var sortField = (0, react_redux_1.useSelector)(props.Slice.SortField);
|
121
|
+
var ascending = (0, react_redux_1.useSelector)(props.Slice.Ascending);
|
122
|
+
var data = (0, react_redux_1.useSelector)(props.Slice.SearchResults);
|
116
123
|
var defaultSearchcols = [
|
117
124
|
{ label: 'Name', key: 'Name', type: 'string', isPivotField: false },
|
118
125
|
{ label: 'Number of Meter', key: 'Meters', type: 'integer', isPivotField: false },
|
@@ -123,7 +130,7 @@ var DefaultSearch;
|
|
123
130
|
React.useEffect(function () {
|
124
131
|
return props.GetAddlFields(setAddlFieldCols);
|
125
132
|
}, []);
|
126
|
-
return React.createElement(react_interactive_1.SearchBar, { CollumnList: __spreadArray(__spreadArray([],
|
133
|
+
return React.createElement(react_interactive_1.SearchBar, { CollumnList: __spreadArray(__spreadArray([], defaultSearchcols, true), addlFieldCols, true), SetFilter: function (flds) { return dispatch(props.Slice.DBSearch({ filter: flds, sortField: sortField, ascending: ascending })); }, Direction: 'left', defaultCollumn: standardSearch, Width: '50%', Label: 'Search', ShowLoading: searchStatus === 'loading', ResultNote: searchStatus === 'error' ? 'Could not complete Search' : 'Found ' + data.length + ' Asset Group(s)', GetEnum: props.GetEnum }, props.children);
|
127
134
|
}
|
128
135
|
DefaultSearch.AssetGroup = AssetGroup;
|
129
136
|
})(DefaultSearch = exports.DefaultSearch || (exports.DefaultSearch = {}));
|
package/lib/Setting.js
CHANGED
@@ -28,12 +28,12 @@ var gpa_symbols_1 = require("@gpa-gemstone/gpa-symbols");
|
|
28
28
|
var react_interactive_1 = require("@gpa-gemstone/react-interactive");
|
29
29
|
var react_redux_1 = require("react-redux");
|
30
30
|
function Setting(props) {
|
31
|
-
var dispatch = react_redux_1.useDispatch();
|
32
|
-
var search = react_redux_1.useSelector(props.SettingsSlice.SearchFilters);
|
33
|
-
var searchStatus = react_redux_1.useSelector(props.SettingsSlice.SearchStatus);
|
34
|
-
var data = react_redux_1.useSelector(props.SettingsSlice.SearchResults);
|
35
|
-
var allSettings = react_redux_1.useSelector(props.SettingsSlice.Data);
|
36
|
-
var status = react_redux_1.useSelector(props.SettingsSlice.Status);
|
31
|
+
var dispatch = (0, react_redux_1.useDispatch)();
|
32
|
+
var search = (0, react_redux_1.useSelector)(props.SettingsSlice.SearchFilters);
|
33
|
+
var searchStatus = (0, react_redux_1.useSelector)(props.SettingsSlice.SearchStatus);
|
34
|
+
var data = (0, react_redux_1.useSelector)(props.SettingsSlice.SearchResults);
|
35
|
+
var allSettings = (0, react_redux_1.useSelector)(props.SettingsSlice.Data);
|
36
|
+
var status = (0, react_redux_1.useSelector)(props.SettingsSlice.Status);
|
37
37
|
var _a = React.useState('Name'), sortField = _a[0], setSortField = _a[1];
|
38
38
|
var _b = React.useState(true), ascending = _b[0], setAscending = _b[1];
|
39
39
|
var emptySetting = { ID: 0, Name: '', Value: '', DefaultValue: '' };
|
@@ -20,10 +20,14 @@
|
|
20
20
|
// 12/19/2021 - C. Lackner
|
21
21
|
// Generated original version of source code.
|
22
22
|
// ******************************************************************************************************
|
23
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
24
|
-
for (var i = 0,
|
25
|
-
|
26
|
-
|
23
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
24
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
25
|
+
if (ar || !(i in from)) {
|
26
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
27
|
+
ar[i] = from[i];
|
28
|
+
}
|
29
|
+
}
|
30
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
27
31
|
};
|
28
32
|
Object.defineProperty(exports, "__esModule", { value: true });
|
29
33
|
var react_table_1 = require("@gpa-gemstone/react-table");
|
@@ -33,10 +37,10 @@ var react_interactive_1 = require("@gpa-gemstone/react-interactive");
|
|
33
37
|
var _ = require("lodash");
|
34
38
|
var gpa_symbols_1 = require("@gpa-gemstone/gpa-symbols");
|
35
39
|
function SelectPopup(props) {
|
36
|
-
var dispatch = react_redux_1.useDispatch();
|
37
|
-
var sortField = react_redux_1.useSelector(props.Slice.SortField);
|
38
|
-
var ascending = react_redux_1.useSelector(props.Slice.Ascending);
|
39
|
-
var data = react_redux_1.useSelector(props.Slice.SearchResults);
|
40
|
+
var dispatch = (0, react_redux_1.useDispatch)();
|
41
|
+
var sortField = (0, react_redux_1.useSelector)(props.Slice.SortField);
|
42
|
+
var ascending = (0, react_redux_1.useSelector)(props.Slice.Ascending);
|
43
|
+
var data = (0, react_redux_1.useSelector)(props.Slice.SearchResults);
|
40
44
|
var _a = React.useState(props.Selection), selectedData = _a[0], setSelectedData = _a[1];
|
41
45
|
var _b = React.useState(''), sortKeySelected = _b[0], setSortKeySelected = _b[1];
|
42
46
|
var _c = React.useState(false), ascendingSelected = _c[0], setAscendingSelected = _c[1];
|
@@ -73,7 +77,7 @@ function SelectPopup(props) {
|
|
73
77
|
else {
|
74
78
|
dispatch(props.Slice.Sort({ SortField: d.colField, Ascending: true }));
|
75
79
|
}
|
76
|
-
}, onClick: function (d) { return setSelectedData(__spreadArray(__spreadArray([], selectedData.filter(function (item) { return item.ID !== d.row.ID; })), [d.row])); }, theadStyle: { fontSize: 'smaller', display: 'table', tableLayout: 'fixed', width: '100%' }, tbodyStyle: { display: 'block', overflowY: 'scroll', maxHeight: '400px', width: '100%' }, rowStyle: { fontSize: 'smaller', display: 'table', tableLayout: 'fixed', width: '100%' }, selected: props.Type === undefined || props.Type === 'single' ? function (item) { return selectedData.findIndex(function (d) { return d.ID === item.ID; }) > -1; } : function (item) { return false; } })),
|
80
|
+
}, onClick: function (d) { return setSelectedData(__spreadArray(__spreadArray([], selectedData.filter(function (item) { return item.ID !== d.row.ID; }), true), [d.row], false)); }, theadStyle: { fontSize: 'smaller', display: 'table', tableLayout: 'fixed', width: '100%' }, tbodyStyle: { display: 'block', overflowY: 'scroll', maxHeight: '400px', width: '100%' }, rowStyle: { fontSize: 'smaller', display: 'table', tableLayout: 'fixed', width: '100%' }, selected: props.Type === undefined || props.Type === 'single' ? function (item) { return selectedData.findIndex(function (d) { return d.ID === item.ID; }) > -1; } : function (item) { return false; } })),
|
77
81
|
props.Type === 'multiple' ? React.createElement("div", { className: "col", style: { width: '40%' } },
|
78
82
|
React.createElement("div", { style: { width: '100%' } },
|
79
83
|
React.createElement("h3", null, " Selected Assets ")),
|
@@ -39,18 +39,18 @@ var react_interactive_1 = require("@gpa-gemstone/react-interactive");
|
|
39
39
|
var GroupForm_1 = require("./GroupForm");
|
40
40
|
var react_redux_1 = require("react-redux");
|
41
41
|
function ByValueListGroup(props) {
|
42
|
-
var dispatch = react_redux_1.useDispatch();
|
43
|
-
var data = react_redux_1.useSelector(props.ValueListSlice.SearchResults);
|
44
|
-
var dataStatus = react_redux_1.useSelector(props.ValueListSlice.SearchStatus);
|
45
|
-
var groups = react_redux_1.useSelector(props.ValueListSlice.Data);
|
46
|
-
var groupStatus = react_redux_1.useSelector(props.ValueListSlice.Status);
|
42
|
+
var dispatch = (0, react_redux_1.useDispatch)();
|
43
|
+
var data = (0, react_redux_1.useSelector)(props.ValueListSlice.SearchResults);
|
44
|
+
var dataStatus = (0, react_redux_1.useSelector)(props.ValueListSlice.SearchStatus);
|
45
|
+
var groups = (0, react_redux_1.useSelector)(props.ValueListSlice.Data);
|
46
|
+
var groupStatus = (0, react_redux_1.useSelector)(props.ValueListSlice.Status);
|
47
47
|
var _a = React.useState('Name'), sortKey = _a[0], setSortKey = _a[1];
|
48
48
|
var _b = React.useState(false), asc = _b[0], setASC = _b[1];
|
49
49
|
var emptyRecord = { ID: 0, Name: '', Description: '' };
|
50
50
|
var _c = React.useState(false), showNew = _c[0], setShowNew = _c[1];
|
51
51
|
var _d = React.useState(emptyRecord), record = _d[0], setRecord = _d[1];
|
52
|
-
var items = react_redux_1.useSelector(props.ValueListItemSlice.Data);
|
53
|
-
var itemStatus = react_redux_1.useSelector(props.ValueListItemSlice.Status);
|
52
|
+
var items = (0, react_redux_1.useSelector)(props.ValueListItemSlice.Data);
|
53
|
+
var itemStatus = (0, react_redux_1.useSelector)(props.ValueListItemSlice.Status);
|
54
54
|
var _e = React.useState([]), search = _e[0], setSearch = _e[1];
|
55
55
|
var _f = React.useState([]), newErrors = _f[0], setNewErrors = _f[1];
|
56
56
|
var _g = React.useState(true), validName = _g[0], setValidName = _g[1];
|
package/lib/ValueList/Group.js
CHANGED
@@ -27,9 +27,9 @@ var GroupInfo_1 = require("./GroupInfo");
|
|
27
27
|
var GroupItem_1 = require("./GroupItem");
|
28
28
|
var react_redux_1 = require("react-redux");
|
29
29
|
function ValueListGroup(props) {
|
30
|
-
var dispatch = react_redux_1.useDispatch();
|
31
|
-
var record = react_redux_1.useSelector(function (state) { return props.ValueListSlice.Data(state).find(function (i) { return i.ID === props.Id; }); });
|
32
|
-
var recordStatus = react_redux_1.useSelector(props.ValueListSlice.Status);
|
30
|
+
var dispatch = (0, react_redux_1.useDispatch)();
|
31
|
+
var record = (0, react_redux_1.useSelector)(function (state) { return props.ValueListSlice.Data(state).find(function (i) { return i.ID === props.Id; }); });
|
32
|
+
var recordStatus = (0, react_redux_1.useSelector)(props.ValueListSlice.Status);
|
33
33
|
var _a = React.useState('items'), tab = _a[0], setTab = _a[1];
|
34
34
|
var _b = React.useState(false), showWarning = _b[0], setShowWarning = _b[1];
|
35
35
|
React.useEffect(function () {
|
@@ -39,10 +39,10 @@ var react_table_1 = require("@gpa-gemstone/react-table");
|
|
39
39
|
var gpa_symbols_1 = require("@gpa-gemstone/gpa-symbols");
|
40
40
|
var react_redux_1 = require("react-redux");
|
41
41
|
function GroupItemsWindow(props) {
|
42
|
-
var dispatch = react_redux_1.useDispatch();
|
43
|
-
var recordStatus = react_redux_1.useSelector(props.ValueListItemSlice.Status);
|
44
|
-
var data = react_redux_1.useSelector(props.ValueListItemSlice.Data);
|
45
|
-
var parentID = react_redux_1.useSelector((props.ValueListItemSlice.ParentID === undefined ? function (state) { return -1; } : props.ValueListItemSlice.ParentID));
|
42
|
+
var dispatch = (0, react_redux_1.useDispatch)();
|
43
|
+
var recordStatus = (0, react_redux_1.useSelector)(props.ValueListItemSlice.Status);
|
44
|
+
var data = (0, react_redux_1.useSelector)(props.ValueListItemSlice.Data);
|
45
|
+
var parentID = (0, react_redux_1.useSelector)((props.ValueListItemSlice.ParentID === undefined ? function (state) { return -1; } : props.ValueListItemSlice.ParentID));
|
46
46
|
var _a = React.useState('Value'), sortField = _a[0], setSortField = _a[1];
|
47
47
|
var _b = React.useState(false), ascending = _b[0], setAscending = _b[1];
|
48
48
|
var emptyRecord = { ID: 0, GroupID: props.Record.ID, Value: '', AltValue: '', SortOrder: 0 };
|
@@ -34,7 +34,7 @@ function ItemForm(props) {
|
|
34
34
|
e.push('Value has to be less than 200 characters.');
|
35
35
|
if (props.Record.AltValue != null && props.Record.AltValue.length > 200)
|
36
36
|
e.push('Alt Value has to be less than 200 characters.');
|
37
|
-
if (props.Record.SortOrder != null && !helper_functions_1.IsInteger(props.Record.SortOrder))
|
37
|
+
if (props.Record.SortOrder != null && !(0, helper_functions_1.IsInteger)(props.Record.SortOrder))
|
38
38
|
e.push('Sort Order has to be an integer or be left blank.');
|
39
39
|
setErrors(e);
|
40
40
|
}, [props.Record]);
|
@@ -48,7 +48,7 @@ function ItemForm(props) {
|
|
48
48
|
else if (field === 'AltValue')
|
49
49
|
return props.Record.AltValue == null || props.Record.AltValue.length <= 200;
|
50
50
|
else if (field === 'SortOrder')
|
51
|
-
return props.Record.SortOrder == null || helper_functions_1.IsInteger(props.Record.SortOrder);
|
51
|
+
return props.Record.SortOrder == null || (0, helper_functions_1.IsInteger)(props.Record.SortOrder);
|
52
52
|
return true;
|
53
53
|
}
|
54
54
|
return (React.createElement("form", null,
|
package/lib/index.d.ts
CHANGED
@@ -6,5 +6,5 @@ import ByUser from './user/ByUser';
|
|
6
6
|
import User from './user/User';
|
7
7
|
import { DefaultSearch } from './SearchBar';
|
8
8
|
import SelectPopup from './StandardSelectPopup';
|
9
|
-
import DefaultSelects from './
|
9
|
+
import { DefaultSelects } from './SelectionPopup';
|
10
10
|
export { Setting, Note, ValueList, ByValueList, User, ByUser, DefaultSearch, SelectPopup, DefaultSelects };
|
package/lib/index.js
CHANGED
@@ -39,5 +39,5 @@ var SearchBar_1 = require("./SearchBar");
|
|
39
39
|
Object.defineProperty(exports, "DefaultSearch", { enumerable: true, get: function () { return SearchBar_1.DefaultSearch; } });
|
40
40
|
var StandardSelectPopup_1 = require("./StandardSelectPopup");
|
41
41
|
exports.SelectPopup = StandardSelectPopup_1.default;
|
42
|
-
var
|
43
|
-
exports
|
42
|
+
var SelectionPopup_1 = require("./SelectionPopup");
|
43
|
+
Object.defineProperty(exports, "DefaultSelects", { enumerable: true, get: function () { return SelectionPopup_1.DefaultSelects; } });
|
@@ -31,10 +31,14 @@ var __assign = (this && this.__assign) || function () {
|
|
31
31
|
};
|
32
32
|
return __assign.apply(this, arguments);
|
33
33
|
};
|
34
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
35
|
-
for (var i = 0,
|
36
|
-
|
37
|
-
|
34
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
35
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
36
|
+
if (ar || !(i in from)) {
|
37
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
38
|
+
ar[i] = from[i];
|
39
|
+
}
|
40
|
+
}
|
41
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
38
42
|
};
|
39
43
|
Object.defineProperty(exports, "__esModule", { value: true });
|
40
44
|
var React = require("react");
|
@@ -45,20 +49,20 @@ var react_forms_1 = require("@gpa-gemstone/react-forms");
|
|
45
49
|
var react_redux_1 = require("react-redux");
|
46
50
|
var helper_functions_1 = require("@gpa-gemstone/helper-functions");
|
47
51
|
function AdditionalField(props) {
|
48
|
-
var dispatch = react_redux_1.useDispatch();
|
49
|
-
var valueListItems = react_redux_1.useSelector(props.ValueListItemSlice.Data);
|
50
|
-
var valueListItemStatus = react_redux_1.useSelector(props.ValueListItemSlice.Status);
|
51
|
-
var valueListGroups = react_redux_1.useSelector(props.ValueListGroupSlice.Data);
|
52
|
-
var valueListGroupStatus = react_redux_1.useSelector(props.ValueListGroupSlice.Status);
|
53
|
-
var fields = react_redux_1.useSelector(props.AdditionalFieldSlice.Fields);
|
54
|
-
var values = react_redux_1.useSelector(props.AdditionalFieldSlice.Values);
|
55
|
-
var fieldStatus = react_redux_1.useSelector(props.AdditionalFieldSlice.FieldStatus);
|
56
|
-
var valueStatus = react_redux_1.useSelector(props.AdditionalFieldSlice.ValueStatus);
|
57
|
-
var valueParentID = react_redux_1.useSelector(props.AdditionalFieldSlice.ValueParentId);
|
52
|
+
var dispatch = (0, react_redux_1.useDispatch)();
|
53
|
+
var valueListItems = (0, react_redux_1.useSelector)(props.ValueListItemSlice.Data);
|
54
|
+
var valueListItemStatus = (0, react_redux_1.useSelector)(props.ValueListItemSlice.Status);
|
55
|
+
var valueListGroups = (0, react_redux_1.useSelector)(props.ValueListGroupSlice.Data);
|
56
|
+
var valueListGroupStatus = (0, react_redux_1.useSelector)(props.ValueListGroupSlice.Status);
|
57
|
+
var fields = (0, react_redux_1.useSelector)(props.AdditionalFieldSlice.Fields);
|
58
|
+
var values = (0, react_redux_1.useSelector)(props.AdditionalFieldSlice.Values);
|
59
|
+
var fieldStatus = (0, react_redux_1.useSelector)(props.AdditionalFieldSlice.FieldStatus);
|
60
|
+
var valueStatus = (0, react_redux_1.useSelector)(props.AdditionalFieldSlice.ValueStatus);
|
61
|
+
var valueParentID = (0, react_redux_1.useSelector)(props.AdditionalFieldSlice.ValueParentId);
|
58
62
|
var _a = React.useState('unintiated'), pageStatus = _a[0], setPageStatus = _a[1];
|
59
63
|
var _b = React.useState([]), editValues = _b[0], setEditValues = _b[1];
|
60
|
-
var sortField = react_redux_1.useSelector(props.AdditionalFieldSlice.SortField);
|
61
|
-
var ascending = react_redux_1.useSelector(props.AdditionalFieldSlice.Ascending);
|
64
|
+
var sortField = (0, react_redux_1.useSelector)(props.AdditionalFieldSlice.SortField);
|
65
|
+
var ascending = (0, react_redux_1.useSelector)(props.AdditionalFieldSlice.Ascending);
|
62
66
|
var _c = React.useState(props.EmptyField), newField = _c[0], setNewField = _c[1];
|
63
67
|
var _d = React.useState(false), showWarning = _d[0], setShowWarning = _d[1];
|
64
68
|
var _e = React.useState(false), showEdit = _e[0], setShowEdit = _e[1];
|
@@ -111,9 +115,9 @@ function AdditionalField(props) {
|
|
111
115
|
c.push(fields[fldIndex].FieldName);
|
112
116
|
else if (fldIndex > -1 && v.Value !== values[eIndex].Value)
|
113
117
|
c.push(fields[fldIndex].FieldName);
|
114
|
-
if (fldIndex > -1 && fields[fldIndex].Type === 'integer' && !helper_functions_1.IsInteger(v.Value))
|
118
|
+
if (fldIndex > -1 && fields[fldIndex].Type === 'integer' && !(0, helper_functions_1.IsInteger)(v.Value))
|
115
119
|
e.push("'" + fields[fldIndex].FieldName + "' has to be a valid integer");
|
116
|
-
if (fldIndex > -1 && fields[fldIndex].Type === 'number' && !helper_functions_1.IsNumber(v.Value))
|
120
|
+
if (fldIndex > -1 && fields[fldIndex].Type === 'number' && !(0, helper_functions_1.IsNumber)(v.Value))
|
117
121
|
e.push("'" + fields[fldIndex].FieldName + "' has to be a valid number");
|
118
122
|
});
|
119
123
|
setErrorFields(e);
|
@@ -154,8 +158,8 @@ function AdditionalField(props) {
|
|
154
158
|
var vList = valueListItems.filter(function (i) { return i.GroupID === valueListgrpId; });
|
155
159
|
var valIdx = props.GetFieldValueIndex(item, editValues);
|
156
160
|
if (valIdx > -1)
|
157
|
-
return React.createElement(ValueDisplay, { Mode: mode, Type: item.Type, ValueListItems: vList, Value: editValues[valIdx], Setter: function (val) { return setEditValues(function (d) { var u = __spreadArray([], d); u[valIdx] = val; return u; }); } });
|
158
|
-
return React.createElement(ValueDisplay, { Mode: mode, Type: item.Type, ValueListItems: vList, Value: props.CreateValue(item), Setter: function (val) { return setEditValues(function (d) { var u = __spreadArray([], d); u.push(val); return u; }); } });
|
161
|
+
return React.createElement(ValueDisplay, { Mode: mode, Type: item.Type, ValueListItems: vList, Value: editValues[valIdx], Setter: function (val) { return setEditValues(function (d) { var u = __spreadArray([], d, true); u[valIdx] = val; return u; }); } });
|
162
|
+
return React.createElement(ValueDisplay, { Mode: mode, Type: item.Type, ValueListItems: vList, Value: props.CreateValue(item), Setter: function (val) { return setEditValues(function (d) { var u = __spreadArray([], d, true); u.push(val); return u; }); } });
|
159
163
|
}
|
160
164
|
},
|
161
165
|
{ key: 'EditButton', label: '', headerStyle: { width: 40, paddingRight: 0, paddingLeft: 10 }, rowStyle: { width: 40, paddingRight: 0, paddingLeft: 10, paddingTop: 36 }, content: function (item) { return (mode === 'Edit' ? React.createElement("button", { className: "btn btn-sm", onClick: function () { setNewField(item); setShowEdit(true); } },
|
@@ -248,9 +252,9 @@ function ValueDisplay(props) {
|
|
248
252
|
return React.createElement("span", null, props.Value.Value);
|
249
253
|
}
|
250
254
|
if (props.Type === 'number')
|
251
|
-
return React.createElement(react_forms_1.Input, { Record: props.Value, Field: 'Value', Valid: function () { return helper_functions_1.IsInteger(props.Value.Value); }, Label: '', Type: 'number', Setter: props.Setter, Feedback: 'Thi Field is a numeric field.' });
|
255
|
+
return React.createElement(react_forms_1.Input, { Record: props.Value, Field: 'Value', Valid: function () { return (0, helper_functions_1.IsInteger)(props.Value.Value); }, Label: '', Type: 'number', Setter: props.Setter, Feedback: 'Thi Field is a numeric field.' });
|
252
256
|
if (props.Type === 'integer')
|
253
|
-
return React.createElement(react_forms_1.Input, { Record: props.Value, Field: 'Value', Valid: function () { return helper_functions_1.IsNumber(props.Value.Value); }, Label: '', Type: 'number', Setter: props.Setter, Feedback: 'Thi Field is an integer field.' });
|
257
|
+
return React.createElement(react_forms_1.Input, { Record: props.Value, Field: 'Value', Valid: function () { return (0, helper_functions_1.IsNumber)(props.Value.Value); }, Label: '', Type: 'number', Setter: props.Setter, Feedback: 'Thi Field is an integer field.' });
|
254
258
|
else if (props.Type === 'string')
|
255
259
|
return React.createElement(react_forms_1.Input, { Record: props.Value, Field: 'Value', Valid: function () { return true; }, Label: '', Type: 'text', Setter: props.Setter });
|
256
260
|
else if (props.Type === 'boolean')
|
package/lib/user/ByUser.js
CHANGED
@@ -48,23 +48,23 @@ var defaultSearchcols = [
|
|
48
48
|
{ label: 'Email', key: 'Email', type: 'string', isPivotField: false },
|
49
49
|
];
|
50
50
|
function ByUser(props) {
|
51
|
-
var dispatch = react_redux_1.useDispatch();
|
52
|
-
var search = react_redux_1.useSelector(props.UserSlice.SearchFilters);
|
53
|
-
var data = react_redux_1.useSelector(props.UserSlice.SearchResults);
|
54
|
-
var userStatus = react_redux_1.useSelector(props.UserSlice.Status);
|
55
|
-
var searchStatus = react_redux_1.useSelector(props.UserSlice.SearchStatus);
|
56
|
-
var sortField = react_redux_1.useSelector(props.UserSlice.SortField);
|
57
|
-
var ascending = react_redux_1.useSelector(props.UserSlice.Ascending);
|
58
|
-
var currentUserAccount = react_redux_1.useSelector(props.UserSlice.CurrentUser);
|
59
|
-
var adlFields = react_redux_1.useSelector(props.AdditionalFieldSlice.Fields);
|
60
|
-
var adlFieldStatus = react_redux_1.useSelector(props.AdditionalFieldSlice.FieldStatus);
|
51
|
+
var dispatch = (0, react_redux_1.useDispatch)();
|
52
|
+
var search = (0, react_redux_1.useSelector)(props.UserSlice.SearchFilters);
|
53
|
+
var data = (0, react_redux_1.useSelector)(props.UserSlice.SearchResults);
|
54
|
+
var userStatus = (0, react_redux_1.useSelector)(props.UserSlice.Status);
|
55
|
+
var searchStatus = (0, react_redux_1.useSelector)(props.UserSlice.SearchStatus);
|
56
|
+
var sortField = (0, react_redux_1.useSelector)(props.UserSlice.SortField);
|
57
|
+
var ascending = (0, react_redux_1.useSelector)(props.UserSlice.Ascending);
|
58
|
+
var currentUserAccount = (0, react_redux_1.useSelector)(props.UserSlice.CurrentUser);
|
59
|
+
var adlFields = (0, react_redux_1.useSelector)(props.AdditionalFieldSlice.Fields);
|
60
|
+
var adlFieldStatus = (0, react_redux_1.useSelector)(props.AdditionalFieldSlice.FieldStatus);
|
61
61
|
var _a = React.useState(defaultSearchcols), filterableList = _a[0], setFilterableList = _a[1];
|
62
62
|
var _b = React.useState(false), showModal = _b[0], setShowModal = _b[1];
|
63
63
|
var _c = React.useState([]), userError = _c[0], setUserError = _c[1];
|
64
|
-
var valueListItems = react_redux_1.useSelector(props.ValueListItemSlice.Data);
|
65
|
-
var valueListItemStatus = react_redux_1.useSelector(props.ValueListItemSlice.Status);
|
66
|
-
var valueListGroups = react_redux_1.useSelector(props.ValueListGroupSlice.Data);
|
67
|
-
var valueListGroupStatus = react_redux_1.useSelector(props.ValueListGroupSlice.Status);
|
64
|
+
var valueListItems = (0, react_redux_1.useSelector)(props.ValueListItemSlice.Data);
|
65
|
+
var valueListItemStatus = (0, react_redux_1.useSelector)(props.ValueListItemSlice.Status);
|
66
|
+
var valueListGroups = (0, react_redux_1.useSelector)(props.ValueListGroupSlice.Data);
|
67
|
+
var valueListGroupStatus = (0, react_redux_1.useSelector)(props.ValueListGroupSlice.Status);
|
68
68
|
var _d = React.useState('unintiated'), pageStatus = _d[0], setPageStatus = _d[1];
|
69
69
|
React.useEffect(function () {
|
70
70
|
if (userStatus === 'error' || adlFieldStatus === 'error' || valueListItemStatus === 'error' || valueListGroupStatus === 'error')
|
package/lib/user/User.js
CHANGED
@@ -29,9 +29,9 @@ var AdditionalField_1 = require("./AdditionalField");
|
|
29
29
|
var react_redux_1 = require("react-redux");
|
30
30
|
var react_forms_1 = require("@gpa-gemstone/react-forms");
|
31
31
|
function User(props) {
|
32
|
-
var dispatch = react_redux_1.useDispatch();
|
33
|
-
var user = react_redux_1.useSelector(props.UserSlice.CurrentUser);
|
34
|
-
var status = react_redux_1.useSelector(props.UserSlice.Status);
|
32
|
+
var dispatch = (0, react_redux_1.useDispatch)();
|
33
|
+
var user = (0, react_redux_1.useSelector)(props.UserSlice.CurrentUser);
|
34
|
+
var status = (0, react_redux_1.useSelector)(props.UserSlice.Status);
|
35
35
|
var _a = React.useState('userInfo'), tab = _a[0], setTab = _a[1];
|
36
36
|
var _b = React.useState(false), showWarning = _b[0], setShowWarning = _b[1];
|
37
37
|
React.useEffect(function () {
|
package/lib/user/UserForm.js
CHANGED
@@ -26,9 +26,9 @@ var react_forms_1 = require("@gpa-gemstone/react-forms");
|
|
26
26
|
var _ = require("lodash");
|
27
27
|
var react_redux_1 = require("react-redux");
|
28
28
|
function UserForm(props) {
|
29
|
-
var dispatch = react_redux_1.useDispatch();
|
29
|
+
var dispatch = (0, react_redux_1.useDispatch)();
|
30
30
|
var _a = React.useState(false), updatedAD = _a[0], setUpdatedAD = _a[1];
|
31
|
-
var userValidation = react_redux_1.useSelector(props.UserSlice.ADValidation);
|
31
|
+
var userValidation = (0, react_redux_1.useSelector)(props.UserSlice.ADValidation);
|
32
32
|
var _b = React.useState([]), userError = _b[0], setUserError = _b[1];
|
33
33
|
React.useEffect(function () {
|
34
34
|
if (userValidation === 'Valid' && !props.Edit && updatedAD === false)
|
package/lib/user/UserInfo.js
CHANGED
@@ -39,8 +39,8 @@ var react_interactive_1 = require("@gpa-gemstone/react-interactive");
|
|
39
39
|
var gpa_symbols_1 = require("@gpa-gemstone/gpa-symbols");
|
40
40
|
var react_redux_1 = require("react-redux");
|
41
41
|
function UserInfo(props) {
|
42
|
-
var dispatch = react_redux_1.useDispatch();
|
43
|
-
var currentUser = react_redux_1.useSelector(props.UserSlice.CurrentUser);
|
42
|
+
var dispatch = (0, react_redux_1.useDispatch)();
|
43
|
+
var currentUser = (0, react_redux_1.useSelector)(props.UserSlice.CurrentUser);
|
44
44
|
var _a = React.useState(currentUser), user = _a[0], setUser = _a[1];
|
45
45
|
var _b = React.useState([]), warnings = _b[0], setWarning = _b[1];
|
46
46
|
var _c = React.useState('None'), hover = _c[0], setHover = _c[1];
|
@@ -26,11 +26,11 @@ var _ = require("lodash");
|
|
26
26
|
var react_forms_1 = require("@gpa-gemstone/react-forms");
|
27
27
|
var react_redux_1 = require("react-redux");
|
28
28
|
function UserPermission(props) {
|
29
|
-
var dispatch = react_redux_1.useDispatch();
|
30
|
-
var currentRoles = react_redux_1.useSelector(props.RoleSlice.Roles);
|
31
|
-
var allRoleStatus = react_redux_1.useSelector(props.RoleSlice.Status);
|
32
|
-
var availableRoles = react_redux_1.useSelector(props.RoleSlice.AvailableRoles);
|
33
|
-
var currentRoleStatus = react_redux_1.useSelector(props.RoleSlice.CurrentRoleStatus);
|
29
|
+
var dispatch = (0, react_redux_1.useDispatch)();
|
30
|
+
var currentRoles = (0, react_redux_1.useSelector)(props.RoleSlice.Roles);
|
31
|
+
var allRoleStatus = (0, react_redux_1.useSelector)(props.RoleSlice.Status);
|
32
|
+
var availableRoles = (0, react_redux_1.useSelector)(props.RoleSlice.AvailableRoles);
|
33
|
+
var currentRoleStatus = (0, react_redux_1.useSelector)(props.RoleSlice.CurrentRoleStatus);
|
34
34
|
var _a = React.useState([]), workingRoles = _a[0], setWorkingRoles = _a[1];
|
35
35
|
var _b = React.useState(false), changed = _b[0], setChanged = _b[1];
|
36
36
|
React.useEffect(function () {
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@gpa-gemstone/common-pages",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.29",
|
4
4
|
"description": "Common UI pages for GPA products",
|
5
5
|
"main": "lib/index.js",
|
6
6
|
"types": "lib/index.d.ts",
|
@@ -37,22 +37,22 @@
|
|
37
37
|
"homepage": "https://github.com/GridProtectionAlliance/gpa-gemstone#readme",
|
38
38
|
"devDependencies": {
|
39
39
|
"@types/crypto-js": "4.0.2",
|
40
|
-
"@types/jest": "^
|
40
|
+
"@types/jest": "^27.0.0",
|
41
41
|
"@types/jquery": "3.5.6",
|
42
42
|
"jest": "^27.0.6",
|
43
43
|
"prettier": "^2.3.2",
|
44
|
-
"ts-jest": "^27.0.
|
44
|
+
"ts-jest": "^27.0.4",
|
45
45
|
"tslint": "^6.1.3",
|
46
46
|
"tslint-config-prettier": "^1.18.0",
|
47
|
-
"typescript": "4.
|
47
|
+
"typescript": "4.4.4"
|
48
48
|
},
|
49
49
|
"dependencies": {
|
50
|
-
"@gpa-gemstone/application-typings": "0.0.
|
51
|
-
"@gpa-gemstone/gpa-symbols": "0.0.
|
52
|
-
"@gpa-gemstone/helper-functions": "0.0.
|
53
|
-
"@gpa-gemstone/react-forms": "1.1.
|
54
|
-
"@gpa-gemstone/react-interactive": "1.0.
|
55
|
-
"@gpa-gemstone/react-table": "1.2.
|
50
|
+
"@gpa-gemstone/application-typings": "0.0.44",
|
51
|
+
"@gpa-gemstone/gpa-symbols": "0.0.18",
|
52
|
+
"@gpa-gemstone/helper-functions": "0.0.14",
|
53
|
+
"@gpa-gemstone/react-forms": "1.1.20",
|
54
|
+
"@gpa-gemstone/react-interactive": "1.0.39",
|
55
|
+
"@gpa-gemstone/react-table": "1.2.10",
|
56
56
|
"@reduxjs/toolkit": "1.6.0",
|
57
57
|
"crypto-js": "4.0.0",
|
58
58
|
"moment": "^2.29.1",
|