@gpa-gemstone/react-graph
Version:
Interactive UI Components for GPA products
151 lines • 13 kB
JavaScript
"use strict";
// ******************************************************************************************************
// DataLegend.tsx - Gbtc
//
// Copyright © 2023, Grid Protection Alliance. All Rights Reserved.
//
// Licensed to the Grid Protection Alliance (GPA) under one or more contributor license agreements. See
// the NOTICE file distributed with this work for additional information regarding copyright ownership.
// The GPA licenses this file to you under the MIT License (MIT), the "License"; you may not use this
// file except in compliance with the License. You may obtain a copy of the License at:
//
// http://opensource.org/licenses/MIT
//
// Unless agreed to in writing, the subject software distributed under the License is distributed on an
// "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Refer to the
// License for the specific language governing permissions and limitations.
//
// Code Modification History:
// ----------------------------------------------------------------------------------------------------
// 03/04/2023 - C Lackner
// Generated original version of source code.
// 12/01/2025 - G. Santos
// Changed scope to include other types of data.
//
// ******************************************************************************************************
var __read = (this && this.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
};
Object.defineProperty(exports, "__esModule", { value: true });
var React = require("react");
var gpa_symbols_1 = require("@gpa-gemstone/gpa-symbols");
var LegendContext_1 = require("./LegendContext");
var Legend_1 = require("./Legend");
var helper_functions_1 = require("@gpa-gemstone/helper-functions");
var react_forms_1 = require("@gpa-gemstone/react-forms");
var DataLegend = function (props) {
var _a;
var context = React.useContext(LegendContext_1.LegendContext);
var _b = __read(React.useState((_a = props.label) !== null && _a !== void 0 ? _a : ""), 2), label = _b[0], setLabel = _b[1];
var guid = React.useRef((0, helper_functions_1.CreateGuid)());
var _c = __read(React.useState(false), 2), isHovering = _c[0], setIsHovering = _c[1];
//Effect to set the label with no data warning if applicable
React.useEffect(function () {
setLabel((props.hasNoData ? gpa_symbols_1.Warning : "") + props.label);
}, [props.hasNoData, props.label]);
return (React.createElement("div", { style: { height: context.SmHeight, width: context.SmWidth } },
React.createElement("div", { className: "d-flex align-items-center h-100 w-100", onClick: function (evt) {
if (evt.ctrlKey && context.SendMassEnable != null)
context.SendMassEnable.current(props.id);
else
props.setEnabled(!props.enabled, evt);
setIsHovering(false);
}, onMouseEnter: function () { return setIsHovering(true); }, onMouseLeave: function () { return setIsHovering(false); }, style: { marginRight: '5px', cursor: 'pointer' } },
React.createElement(DataSymbol, { color: props.color, symbol: props.legendSymbol, enabled: props.enabled }),
React.createElement("span", { style: {
fontFamily: Legend_1.fontFamily,
fontWeight: 400,
display: 'inline-block',
margin: 'auto',
marginLeft: 0,
fontSize: context.SmallestFontSize + 'em',
whiteSpace: (context.UseMultiLine ? 'normal' : 'nowrap')
}, "data-tooltip": guid.current }, label),
props.toolTipText != null ?
React.createElement(react_forms_1.ToolTip, { Show: isHovering, Target: guid.current }, props.toolTipText)
: null)));
};
var DataSymbol = function (props) {
/* Total width of symbol element should be 15px with a 5px margin */
switch (props.symbol) {
default:
console.warn("Unrecognized symbol type in Data Legend: " + props.symbol);
// falls through
case '-':
case 'solid':
return (React.createElement("div", { style: {
width: '10px',
height: 0,
borderTop: "2px solid ".concat(props.color),
borderRight: "10px solid ".concat(props.color),
borderBottom: "2px solid ".concat(props.color),
borderLeft: "10px solid ".concat(props.color),
overflow: 'hidden',
marginRight: '5px',
opacity: (props.enabled ? 1 : 0.5)
} }));
case 'none':
return (React.createElement("div", { style: {
width: '20px',
height: 0,
overflow: 'hidden',
marginRight: '5px',
opacity: 0
} }));
case ':':
case 'dash':
case 'short-dash':
case 'long-dash':
return (React.createElement("div", { style: {
width: '10px',
height: '4px',
borderTop: 'none',
borderRight: "3px solid ".concat(props.color),
borderBottom: 'none',
borderLeft: "3px solid ".concat(props.color),
overflow: 'hidden',
marginRight: '5px',
opacity: (props.enabled ? 1 : 0.5)
} }));
case 'square':
return (React.createElement("div", { style: {
width: '10px',
height: '20px',
borderTop: "2px solid ".concat(props.color),
borderRight: "10px solid ".concat(props.color),
borderBottom: "2px solid ".concat(props.color),
borderLeft: "10px solid ".concat(props.color),
overflow: 'hidden',
marginRight: '5px',
opacity: (props.enabled ? 1 : 0.5)
} }));
case 'circle':
return (React.createElement("div", { style: {
width: '10px',
height: '20px',
borderRadius: '10px',
borderTop: "2px solid ".concat(props.color),
borderRight: "10px solid ".concat(props.color),
borderBottom: "2px solid ".concat(props.color),
borderLeft: "10px solid ".concat(props.color),
overflow: 'hidden',
marginRight: '5px',
opacity: (props.enabled ? 1 : 0.5)
} }));
}
};
exports.default = DataLegend;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YUxlZ2VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9EYXRhTGVnZW5kLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEseUdBQXlHO0FBQ3pHLHlCQUF5QjtBQUN6QixFQUFFO0FBQ0YscUVBQXFFO0FBQ3JFLEVBQUU7QUFDRix3R0FBd0c7QUFDeEcsd0dBQXdHO0FBQ3hHLHNHQUFzRztBQUN0Ryx3RkFBd0Y7QUFDeEYsRUFBRTtBQUNGLDBDQUEwQztBQUMxQyxFQUFFO0FBQ0Ysd0dBQXdHO0FBQ3hHLHdHQUF3RztBQUN4Ryw0RUFBNEU7QUFDNUUsRUFBRTtBQUNGLDhCQUE4QjtBQUM5Qix3R0FBd0c7QUFDeEcsMEJBQTBCO0FBQzFCLG1EQUFtRDtBQUNuRCwwQkFBMEI7QUFDMUIsc0RBQXNEO0FBQ3RELEVBQUU7QUFDRix5R0FBeUc7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUd6Ryw2QkFBK0I7QUFFL0IseURBQW9EO0FBQ3BELGlEQUFzRTtBQUN0RSxtQ0FBcUM7QUFDckMsbUVBQTREO0FBQzVELHlEQUFvRDtBQWlDcEQsSUFBTSxVQUFVLEdBQUcsVUFBQyxLQUFhOztJQUM3QixJQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLDZCQUFhLENBQUMsQ0FBQztJQUMxQyxJQUFBLEtBQUEsT0FBb0IsS0FBSyxDQUFDLFFBQVEsQ0FBUyxNQUFBLEtBQUssQ0FBQyxLQUFLLG1DQUFJLEVBQUUsQ0FBQyxJQUFBLEVBQTVELEtBQUssUUFBQSxFQUFFLFFBQVEsUUFBNkMsQ0FBQztJQUVwRSxJQUFNLElBQUksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFTLElBQUEsNkJBQVUsR0FBRSxDQUFDLENBQUM7SUFDMUMsSUFBQSxLQUFBLE9BQThCLEtBQUssQ0FBQyxRQUFRLENBQVUsS0FBSyxDQUFDLElBQUEsRUFBM0QsVUFBVSxRQUFBLEVBQUUsYUFBYSxRQUFrQyxDQUFDO0lBRW5FLDREQUE0RDtJQUM1RCxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ1osUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMscUJBQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdELENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFFbkMsT0FBTyxDQUNILDZCQUFLLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFO1FBQzVELDZCQUNJLFNBQVMsRUFBQyx1Q0FBdUMsRUFDakQsT0FBTyxFQUFFLFVBQUMsR0FBRztnQkFDVCxJQUFJLEdBQUcsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLGNBQWMsSUFBSSxJQUFJO29CQUM3QyxPQUFPLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7O29CQUV6QyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFFMUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pCLENBQUMsRUFDRCxZQUFZLEVBQUUsY0FBTSxPQUFBLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBbkIsQ0FBbUIsRUFDdkMsWUFBWSxFQUFFLGNBQU0sT0FBQSxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQXBCLENBQW9CLEVBQ3hDLEtBQUssRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRTtZQUVoRCxvQkFBQyxVQUFVLElBQ1AsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQ2xCLE1BQU0sRUFBRSxLQUFLLENBQUMsWUFBWSxFQUMxQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sR0FDeEI7WUFDRiw4QkFDSSxLQUFLLEVBQUU7b0JBQ0gsVUFBVSxFQUFFLG1CQUFVO29CQUN0QixVQUFVLEVBQUUsR0FBRztvQkFDZixPQUFPLEVBQUUsY0FBYztvQkFDdkIsTUFBTSxFQUFFLE1BQU07b0JBQ2QsVUFBVSxFQUFFLENBQUM7b0JBQ2IsUUFBUSxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJO29CQUN6QyxVQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztpQkFDM0Qsa0JBQ2EsSUFBSSxDQUFDLE9BQU8sSUFFekIsS0FBSyxDQUNIO1lBQ04sS0FBSyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsQ0FBQztnQkFDeEIsb0JBQUMscUJBQU8sSUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxJQUMxQyxLQUFLLENBQUMsV0FBVyxDQUNaO2dCQUNkLENBQUMsQ0FBQyxJQUFJLENBQ0osQ0FDSixDQUNULENBQUM7QUFDTixDQUFDLENBQUE7QUFRRCxJQUFNLFVBQVUsR0FBRyxVQUFDLEtBQW1CO0lBQ25DLG9FQUFvRTtJQUNwRSxRQUFRLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNuQjtZQUNJLE9BQU8sQ0FBQyxJQUFJLENBQUMsMkNBQTJDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdFLGdCQUFnQjtRQUNoQixLQUFLLEdBQUcsQ0FBQztRQUNULEtBQUssT0FBTztZQUNSLE9BQU8sQ0FDSCw2QkFDSSxLQUFLLEVBQUU7b0JBQ0gsS0FBSyxFQUFFLE1BQU07b0JBQ2IsTUFBTSxFQUFFLENBQUM7b0JBQ1QsU0FBUyxFQUFFLG9CQUFhLEtBQUssQ0FBQyxLQUFLLENBQUU7b0JBQ3JDLFdBQVcsRUFBRSxxQkFBYyxLQUFLLENBQUMsS0FBSyxDQUFFO29CQUN4QyxZQUFZLEVBQUUsb0JBQWEsS0FBSyxDQUFDLEtBQUssQ0FBRTtvQkFDeEMsVUFBVSxFQUFFLHFCQUFjLEtBQUssQ0FBQyxLQUFLLENBQUU7b0JBQ3ZDLFFBQVEsRUFBRSxRQUFRO29CQUNsQixXQUFXLEVBQUUsS0FBSztvQkFDbEIsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7aUJBQ3JDLEdBQ0gsQ0FDTCxDQUFDO1FBQ04sS0FBSyxNQUFNO1lBQ1AsT0FBTyxDQUNILDZCQUNJLEtBQUssRUFBRTtvQkFDSCxLQUFLLEVBQUUsTUFBTTtvQkFDYixNQUFNLEVBQUUsQ0FBQztvQkFDVCxRQUFRLEVBQUUsUUFBUTtvQkFDbEIsV0FBVyxFQUFFLEtBQUs7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDO2lCQUNiLEdBQ0gsQ0FDTCxDQUFDO1FBQ04sS0FBSyxHQUFHLENBQUM7UUFDVCxLQUFLLE1BQU0sQ0FBQztRQUNaLEtBQUssWUFBWSxDQUFDO1FBQ2xCLEtBQUssV0FBVztZQUNaLE9BQU8sQ0FDSCw2QkFDSSxLQUFLLEVBQUU7b0JBQ0gsS0FBSyxFQUFFLE1BQU07b0JBQ2IsTUFBTSxFQUFFLEtBQUs7b0JBQ2IsU0FBUyxFQUFFLE1BQU07b0JBQ2pCLFdBQVcsRUFBRSxvQkFBYSxLQUFLLENBQUMsS0FBSyxDQUFFO29CQUN2QyxZQUFZLEVBQUUsTUFBTTtvQkFDcEIsVUFBVSxFQUFFLG9CQUFhLEtBQUssQ0FBQyxLQUFLLENBQUU7b0JBQ3RDLFFBQVEsRUFBRSxRQUFRO29CQUNsQixXQUFXLEVBQUUsS0FBSztvQkFDbEIsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7aUJBQ3JDLEdBQ0gsQ0FDTCxDQUFDO1FBRU4sS0FBSyxRQUFRO1lBQ1QsT0FBTyxDQUNILDZCQUNJLEtBQUssRUFBRTtvQkFDSCxLQUFLLEVBQUUsTUFBTTtvQkFDYixNQUFNLEVBQUUsTUFBTTtvQkFDZCxTQUFTLEVBQUUsb0JBQWEsS0FBSyxDQUFDLEtBQUssQ0FBRTtvQkFDckMsV0FBVyxFQUFFLHFCQUFjLEtBQUssQ0FBQyxLQUFLLENBQUU7b0JBQ3hDLFlBQVksRUFBRSxvQkFBYSxLQUFLLENBQUMsS0FBSyxDQUFFO29CQUN4QyxVQUFVLEVBQUUscUJBQWMsS0FBSyxDQUFDLEtBQUssQ0FBRTtvQkFDdkMsUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLFdBQVcsRUFBRSxLQUFLO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztpQkFDckMsR0FDSCxDQUNMLENBQUM7UUFDTixLQUFLLFFBQVE7WUFDVCxPQUFPLENBQ0gsNkJBQ0ksS0FBSyxFQUFFO29CQUNILEtBQUssRUFBRSxNQUFNO29CQUNiLE1BQU0sRUFBRSxNQUFNO29CQUNkLFlBQVksRUFBRSxNQUFNO29CQUNwQixTQUFTLEVBQUUsb0JBQWEsS0FBSyxDQUFDLEtBQUssQ0FBRTtvQkFDckMsV0FBVyxFQUFFLHFCQUFjLEtBQUssQ0FBQyxLQUFLLENBQUU7b0JBQ3hDLFlBQVksRUFBRSxvQkFBYSxLQUFLLENBQUMsS0FBSyxDQUFFO29CQUN4QyxVQUFVLEVBQUUscUJBQWMsS0FBSyxDQUFDLEtBQUssQ0FBRTtvQkFDdkMsUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLFdBQVcsRUFBRSxLQUFLO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztpQkFDckMsR0FDSCxDQUNMLENBQUM7SUFFVixDQUFDO0FBQ0wsQ0FBQyxDQUFBO0FBRUQsa0JBQWUsVUFBVSxDQUFDIn0=