@gpa-gemstone/common-pages 0.0.112 → 0.0.113
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.
|
@@ -20,8 +20,8 @@ interface IPhaseFilters {
|
|
|
20
20
|
ABCG: boolean;
|
|
21
21
|
}
|
|
22
22
|
interface IEventCharacteristicFilters {
|
|
23
|
-
durationMin
|
|
24
|
-
durationMax
|
|
23
|
+
durationMin?: number;
|
|
24
|
+
durationMax?: number;
|
|
25
25
|
phases: IPhaseFilters;
|
|
26
26
|
transientMin?: number;
|
|
27
27
|
transientMax?: number;
|
|
@@ -41,12 +41,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
41
41
|
//
|
|
42
42
|
//******************************************************************************************************
|
|
43
43
|
var react_1 = __importDefault(require("react"));
|
|
44
|
+
var lodash_1 = __importDefault(require("lodash"));
|
|
44
45
|
var react_forms_1 = require("@gpa-gemstone/react-forms");
|
|
45
46
|
var EventCharacteristicFilter = function (props) {
|
|
46
47
|
var _a = react_1.default.useState(props.eventCharacteristicFilter), newEventCharacteristicFilter = _a[0], setNewEventCharacteristicFilter = _a[1];
|
|
47
|
-
var _b = react_1.default.useState([]),
|
|
48
|
-
var _c = react_1.default.useState([]), newPhases = _c[0], setNewPhases = _c[1];
|
|
49
|
-
react_1.default.useEffect(function () { setNewTypeFilter(props.eventTypeFilter); }, [props.eventTypeFilter]);
|
|
48
|
+
var _b = react_1.default.useState([]), newPhases = _b[0], setNewPhases = _b[1];
|
|
50
49
|
react_1.default.useEffect(function () { setNewEventCharacteristicFilter(props.eventCharacteristicFilter); }, [props.eventCharacteristicFilter]);
|
|
51
50
|
react_1.default.useEffect(function () {
|
|
52
51
|
var setupPhases = [];
|
|
@@ -55,8 +54,9 @@ var EventCharacteristicFilter = function (props) {
|
|
|
55
54
|
}, []);
|
|
56
55
|
react_1.default.useEffect(function () {
|
|
57
56
|
var characteristics = validEventCharacteristicsFilter() ? newEventCharacteristicFilter : undefined;
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
if (!lodash_1.default.isEqual(characteristics, props.eventCharacteristicFilter))
|
|
58
|
+
props.setEventFilters(characteristics);
|
|
59
|
+
}, [newEventCharacteristicFilter]);
|
|
60
60
|
function validEventCharacteristicsFilter() {
|
|
61
61
|
var valid = newEventCharacteristicFilter != null;
|
|
62
62
|
if (!valid)
|
|
@@ -102,10 +102,10 @@ var EventCharacteristicFilter = function (props) {
|
|
|
102
102
|
(NullOrNaN(filter.transientMin) || filter.transientMax >= filter.transientMin));
|
|
103
103
|
return true;
|
|
104
104
|
}
|
|
105
|
-
var sagsSelected =
|
|
106
|
-
var swellsSelected =
|
|
107
|
-
var transientsSelected =
|
|
108
|
-
if (newEventCharacteristicFilter === null ||
|
|
105
|
+
var sagsSelected = props.eventTypeFilter.find(function (i) { var _a, _b; return (_b = i == ((_a = props.eventTypes.find(function (item) { return item.Name == 'Sag'; })) === null || _a === void 0 ? void 0 : _a.ID)) !== null && _b !== void 0 ? _b : -1; }) != null;
|
|
106
|
+
var swellsSelected = props.eventTypeFilter.find(function (i) { var _a, _b; return (_b = i == ((_a = props.eventTypes.find(function (item) { return item.Name == 'Swell'; })) === null || _a === void 0 ? void 0 : _a.ID)) !== null && _b !== void 0 ? _b : -1; }) != null;
|
|
107
|
+
var transientsSelected = props.eventTypeFilter.find(function (i) { var _a, _b; return (_b = i == ((_a = props.eventTypes.find(function (item) { return item.Name == 'Transient'; })) === null || _a === void 0 ? void 0 : _a.ID)) !== null && _b !== void 0 ? _b : -1; }) != null;
|
|
108
|
+
if (newEventCharacteristicFilter === null || props.eventTypeFilter === null)
|
|
109
109
|
return null;
|
|
110
110
|
return (react_1.default.createElement("fieldset", { className: "border", style: { padding: '10px', height: '100%' } },
|
|
111
111
|
react_1.default.createElement("legend", { className: "w-auto", style: { fontSize: 'large' } }, "Event Characteristics:"),
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import 'moment';
|
|
3
|
+
import { OpenXDA, SystemCenter } from '@gpa-gemstone/application-typings';
|
|
4
|
+
type S = SystemCenter.Types.DetailedMeter | SystemCenter.Types.DetailedAsset | SystemCenter.Types.DetailedLocation | OpenXDA.Types.AssetGroup;
|
|
5
|
+
interface IProps<S> {
|
|
6
|
+
Data: S[];
|
|
7
|
+
Type: ('Meter' | 'Asset' | 'AssetGroup' | 'Station');
|
|
8
|
+
OnClick: () => void;
|
|
9
|
+
AlternateColors?: {
|
|
10
|
+
normal: string;
|
|
11
|
+
selected: string;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
declare function NavbarFilterButton(props: IProps<S>): React.JSX.Element;
|
|
15
|
+
export default NavbarFilterButton;
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
//******************************************************************************************************
|
|
18
|
+
// NavBarFilterButton.tsx - Gbtc
|
|
19
|
+
//
|
|
20
|
+
// Copyright © 2019, Grid Protection Alliance. All Rights Reserved.
|
|
21
|
+
//
|
|
22
|
+
// Licensed to the Grid Protection Alliance (GPA) under one or more contributor license agreements. See
|
|
23
|
+
// the NOTICE file distributed with this work for additional information regarding copyright ownership.
|
|
24
|
+
// The GPA licenses this file to you under the MIT License (MIT), the "License"; you may not use this
|
|
25
|
+
// file except in compliance with the License. You may obtain a copy of the License at:
|
|
26
|
+
//
|
|
27
|
+
// http://opensource.org/licenses/MIT
|
|
28
|
+
//
|
|
29
|
+
// Unless agreed to in writing, the subject software distributed under the License is distributed on an
|
|
30
|
+
// "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Refer to the
|
|
31
|
+
// License for the specific language governing permissions and limitations.
|
|
32
|
+
//
|
|
33
|
+
// Code Modification History:
|
|
34
|
+
// ----------------------------------------------------------------------------------------------------
|
|
35
|
+
// 08/07/2024 - G. Santos
|
|
36
|
+
// Generated original version of source code.
|
|
37
|
+
//
|
|
38
|
+
//******************************************************************************************************
|
|
39
|
+
var react_1 = __importDefault(require("react"));
|
|
40
|
+
require("moment");
|
|
41
|
+
function NavbarFilterButton(props) {
|
|
42
|
+
var _a = react_1.default.useState(false), hover = _a[0], setHover = _a[1];
|
|
43
|
+
var _b = react_1.default.useState([]), rows = _b[0], setRows = _b[1];
|
|
44
|
+
var _c = react_1.default.useState(null), header = _c[0], setHeader = _c[1];
|
|
45
|
+
var _d = react_1.default.useState({ marginBottom: 5 }), buttonStyle = _d[0], setButtonStyle = _d[1];
|
|
46
|
+
react_1.default.useEffect(function () {
|
|
47
|
+
switch (props.Type) {
|
|
48
|
+
case ('Meter'):
|
|
49
|
+
setHeader(react_1.default.createElement("tr", null,
|
|
50
|
+
react_1.default.createElement("th", null, "Name"),
|
|
51
|
+
react_1.default.createElement("th", null, "Key"),
|
|
52
|
+
react_1.default.createElement("th", null, "Substation"),
|
|
53
|
+
react_1.default.createElement("th", null, "Make"),
|
|
54
|
+
react_1.default.createElement("th", null, "Model")));
|
|
55
|
+
break;
|
|
56
|
+
case ('Asset'):
|
|
57
|
+
setHeader(react_1.default.createElement("tr", null,
|
|
58
|
+
react_1.default.createElement("th", null, "Key"),
|
|
59
|
+
react_1.default.createElement("th", null, "Name"),
|
|
60
|
+
react_1.default.createElement("th", null, "Asset Type"),
|
|
61
|
+
react_1.default.createElement("th", null, "Voltage (kV)")));
|
|
62
|
+
break;
|
|
63
|
+
case ('AssetGroup'):
|
|
64
|
+
setHeader(react_1.default.createElement("tr", null,
|
|
65
|
+
react_1.default.createElement("th", null, "Name"),
|
|
66
|
+
react_1.default.createElement("th", null, "Assets"),
|
|
67
|
+
react_1.default.createElement("th", null, "Meters")));
|
|
68
|
+
break;
|
|
69
|
+
default:
|
|
70
|
+
setHeader(react_1.default.createElement("tr", null,
|
|
71
|
+
react_1.default.createElement("th", null, "Name"),
|
|
72
|
+
react_1.default.createElement("th", null, "Key"),
|
|
73
|
+
react_1.default.createElement("th", null, "Meters"),
|
|
74
|
+
react_1.default.createElement("th", null, "Assets")));
|
|
75
|
+
}
|
|
76
|
+
}, [props.Type]);
|
|
77
|
+
react_1.default.useEffect(function () {
|
|
78
|
+
var _a, _b;
|
|
79
|
+
setButtonStyle(__assign(__assign({}, buttonStyle), { backgroundColor: (props.Data.length > 0 ? (_a = props.AlternateColors) === null || _a === void 0 ? void 0 : _a.selected : (_b = props.AlternateColors) === null || _b === void 0 ? void 0 : _b.normal) }));
|
|
80
|
+
}, [props.AlternateColors, props.Data.length]);
|
|
81
|
+
react_1.default.useEffect(function () {
|
|
82
|
+
switch (props.Type) {
|
|
83
|
+
case ('Meter'):
|
|
84
|
+
setRows(props.Data.filter(function (v, i) { return i < 10; }).map(function (d) { return react_1.default.createElement("tr", { key: d.ID },
|
|
85
|
+
react_1.default.createElement("td", null, d['Name']),
|
|
86
|
+
react_1.default.createElement("td", null, d['AssetKey']),
|
|
87
|
+
react_1.default.createElement("td", null, d['Location']),
|
|
88
|
+
react_1.default.createElement("td", null, d['Make']),
|
|
89
|
+
react_1.default.createElement("td", null, d['Model'])); }));
|
|
90
|
+
break;
|
|
91
|
+
case ('Asset'):
|
|
92
|
+
setRows(props.Data.filter(function (v, i) { return i < 10; }).map(function (d) { return react_1.default.createElement("tr", { key: d.ID },
|
|
93
|
+
react_1.default.createElement("td", null, d['AssetKey']),
|
|
94
|
+
react_1.default.createElement("td", null, d['AssetName']),
|
|
95
|
+
react_1.default.createElement("td", null, d['AssetType']),
|
|
96
|
+
react_1.default.createElement("td", null, d['VoltageKV'])); }));
|
|
97
|
+
break;
|
|
98
|
+
case ('AssetGroup'):
|
|
99
|
+
setRows(props.Data.filter(function (v, i) { return i < 10; }).map(function (d) { return react_1.default.createElement("tr", { key: d.ID },
|
|
100
|
+
react_1.default.createElement("td", null, d['Name']),
|
|
101
|
+
react_1.default.createElement("td", null, d['Assets']),
|
|
102
|
+
react_1.default.createElement("td", null, d['Meters'])); }));
|
|
103
|
+
break;
|
|
104
|
+
case ('Station'):
|
|
105
|
+
setRows(props.Data.filter(function (v, i) { return i < 10; }).map(function (d) { return react_1.default.createElement("tr", { key: d.ID },
|
|
106
|
+
react_1.default.createElement("td", null, d['Name']),
|
|
107
|
+
react_1.default.createElement("td", null, d['LocationKey']),
|
|
108
|
+
react_1.default.createElement("td", null, d['Meters']),
|
|
109
|
+
react_1.default.createElement("td", null, d['Assets'])); }));
|
|
110
|
+
break;
|
|
111
|
+
default:
|
|
112
|
+
setRows([]);
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
}, [props.Data, props.Type]);
|
|
116
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
117
|
+
react_1.default.createElement("button", { className: "btn btn-block btn-sm btn-" + (props.Data.length > 0 ? "warning" : "primary"), style: buttonStyle, onClick: function (evt) { evt.preventDefault(); props.OnClick(); }, onMouseEnter: function () { return setHover(true); }, onMouseLeave: function () { return setHover(false); } },
|
|
118
|
+
typeToString(props.Type),
|
|
119
|
+
" ",
|
|
120
|
+
props.Data.length > 0 ? ('(' + props.Data.length + ')') : ''),
|
|
121
|
+
react_1.default.createElement("div", { style: { width: window.innerWidth / 3, display: hover ? 'block' : 'none', position: 'absolute', backgroundColor: '#f1f1f1', boxShadow: '0px 8px 16px 0px rgba(0,0,0,0.2)', zIndex: 1, right: 0 }, onMouseEnter: function () { return setHover(true); }, onMouseLeave: function () { return setHover(false); } },
|
|
122
|
+
react_1.default.createElement("table", { className: 'table' },
|
|
123
|
+
react_1.default.createElement("thead", null, header),
|
|
124
|
+
react_1.default.createElement("tbody", null, rows)))));
|
|
125
|
+
}
|
|
126
|
+
function typeToString(Type) {
|
|
127
|
+
switch (Type) {
|
|
128
|
+
case 'Meter':
|
|
129
|
+
return 'Meter';
|
|
130
|
+
case 'Asset':
|
|
131
|
+
return 'Asset';
|
|
132
|
+
case 'AssetGroup':
|
|
133
|
+
return 'Asset Group';
|
|
134
|
+
case 'Station':
|
|
135
|
+
return 'Substation';
|
|
136
|
+
default:
|
|
137
|
+
return Type;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
exports.default = NavbarFilterButton;
|
package/lib/index.d.ts
CHANGED
|
@@ -11,4 +11,5 @@ import ErrorBoundary from './ErrorBoundary';
|
|
|
11
11
|
import TimeFilter from './TimeFilter';
|
|
12
12
|
import EventTypeFilter from './EventTypeFilter';
|
|
13
13
|
import EventCharacteristicFilter from './EventCharacteristicFilter';
|
|
14
|
-
|
|
14
|
+
import NavBarFilterButton from './NavBarFilterButton';
|
|
15
|
+
export { TimeFilter, EventTypeFilter, EventCharacteristicFilter, NavBarFilterButton, Setting, Note, ValueList, ByValueList, User, ByUser, DefaultSearch, SelectPopup, DefaultSelects, ErrorBoundary };
|
package/lib/index.js
CHANGED
|
@@ -25,7 +25,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
25
25
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
26
26
|
};
|
|
27
27
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
-
exports.ErrorBoundary = exports.DefaultSelects = exports.SelectPopup = exports.DefaultSearch = exports.ByUser = exports.User = exports.ByValueList = exports.ValueList = exports.Note = exports.Setting = exports.EventCharacteristicFilter = exports.EventTypeFilter = exports.TimeFilter = void 0;
|
|
28
|
+
exports.ErrorBoundary = exports.DefaultSelects = exports.SelectPopup = exports.DefaultSearch = exports.ByUser = exports.User = exports.ByValueList = exports.ValueList = exports.Note = exports.Setting = exports.NavBarFilterButton = exports.EventCharacteristicFilter = exports.EventTypeFilter = exports.TimeFilter = void 0;
|
|
29
29
|
var Setting_1 = __importDefault(require("./Setting"));
|
|
30
30
|
exports.Setting = Setting_1.default;
|
|
31
31
|
var Note_1 = __importDefault(require("./Note"));
|
|
@@ -52,3 +52,5 @@ var EventTypeFilter_1 = __importDefault(require("./EventTypeFilter"));
|
|
|
52
52
|
exports.EventTypeFilter = EventTypeFilter_1.default;
|
|
53
53
|
var EventCharacteristicFilter_1 = __importDefault(require("./EventCharacteristicFilter"));
|
|
54
54
|
exports.EventCharacteristicFilter = EventCharacteristicFilter_1.default;
|
|
55
|
+
var NavBarFilterButton_1 = __importDefault(require("./NavBarFilterButton"));
|
|
56
|
+
exports.NavBarFilterButton = NavBarFilterButton_1.default;
|
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.113",
|
|
4
4
|
"description": "Common UI pages for GPA products",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -44,12 +44,12 @@
|
|
|
44
44
|
"typescript": "5.5.3"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@gpa-gemstone/application-typings": "0.0.
|
|
48
|
-
"@gpa-gemstone/gpa-symbols": "0.0.
|
|
49
|
-
"@gpa-gemstone/helper-functions": "0.0.
|
|
50
|
-
"@gpa-gemstone/react-forms": "1.1.
|
|
51
|
-
"@gpa-gemstone/react-interactive": "1.0.
|
|
52
|
-
"@gpa-gemstone/react-table": "1.2.
|
|
47
|
+
"@gpa-gemstone/application-typings": "0.0.75",
|
|
48
|
+
"@gpa-gemstone/gpa-symbols": "0.0.40",
|
|
49
|
+
"@gpa-gemstone/helper-functions": "0.0.33",
|
|
50
|
+
"@gpa-gemstone/react-forms": "1.1.68",
|
|
51
|
+
"@gpa-gemstone/react-interactive": "1.0.127",
|
|
52
|
+
"@gpa-gemstone/react-table": "1.2.50",
|
|
53
53
|
"@reduxjs/toolkit": "1.8.3",
|
|
54
54
|
"crypto-js": "4.0.0",
|
|
55
55
|
"moment": "^2.29.4",
|