UNPKG

@gpa-gemstone/react-graph

Version:
97 lines 11 kB
"use strict"; // ****************************************************************************************************** // HeatLegend.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: // ---------------------------------------------------------------------------------------------------- // 11/21/2023 - G. Santos // Generated original version of source code. // // ****************************************************************************************************** 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 LegendContext_1 = require("./LegendContext"); var SvgStyle = { fill: 'none', userSelect: 'none', WebkitTouchCallout: 'none', WebkitUserSelect: 'none', KhtmlUserSelect: 'none', MozUserSelect: 'none', msUserSelect: 'none', pointerEvents: 'none', }; var TextStyle = { fontSize: '1em', textAnchor: 'middle', dominantBaseline: 'hanging', transition: 'x 0.5s, y 0.5s' }; function HeatLegend(props) { var _a = __read(React.useState(1), 2), nDigits = _a[0], setNdigits = _a[1]; var context = React.useContext(LegendContext_1.LegendContext); var hLegend = context.LgHeight; var wLegend = context.LgWidth; // Determine the number of decimal digits to display based on the value range React.useEffect(function () { var delta = props.maxValue - props.minValue; if (delta === 0) delta = Math.abs(props.minValue); if (delta >= 15) setNdigits(0); if (delta < 15 && delta >= 1.5) setNdigits(1); if (delta < 1.5 && delta >= 0.15) setNdigits(2); if (delta < 0.15) setNdigits(3); if (delta < 0.015) setNdigits(4); if (delta < 0.0015) setNdigits(5); if (delta === 0) setNdigits(2); }, [props.maxValue, props.minValue]); return (React.createElement("div", { style: { height: hLegend, width: wLegend } }, React.createElement("div", { style: { width: '100%', display: 'flex', alignItems: 'center', marginRight: '5px', height: '100%' } }, React.createElement("svg", { style: SvgStyle, viewBox: "0 0 ".concat(wLegend, " ").concat(hLegend) }, React.createElement("linearGradient", { id: props.id, x1: "0", x2: "".concat(wLegend < hLegend ? 0 : 1), y1: "0", y2: "".concat(wLegend < hLegend ? 1 : 0) }, React.createElement("stop", { offset: "5%", stopColor: props.minColor }), React.createElement("stop", { offset: "95%", stopColor: props.maxColor })), React.createElement("path", { stroke: 'currentColor', fill: "url(#".concat(props.id, ")"), style: { strokeWidth: 1, transition: 'd 0.5s' }, d: wLegend < hLegend ? "M ".concat(0.05 * wLegend, " ").concat(0.1 * hLegend, " H ").concat(0.5 * wLegend, " V ").concat(0.9 * hLegend, " H ").concat(0.05 * wLegend, " V ").concat(0.1 * hLegend) : "M ".concat(0.1 * wLegend, " ").concat(0.05 * hLegend, " H ").concat(0.9 * wLegend, " V ").concat(0.5 * hLegend, " H ").concat(0.1 * wLegend, " V ").concat(0.05 * hLegend) }), React.createElement("text", { fill: 'currentColor', style: TextStyle, x: wLegend * (wLegend < hLegend ? 0.5 : 0.1), y: hLegend * (wLegend < hLegend ? 0.1 : 0.5), transform: "rotate(".concat(wLegend < hLegend ? 270 : 0, ",").concat(wLegend * (wLegend < hLegend ? 0.5 : 0.1), ",").concat(hLegend * (wLegend < hLegend ? 0.1 : 0.5), ")") }, "".concat(props.minValue.toFixed(nDigits)).concat(props.unitLabel !== undefined ? "".concat(props.unitLabel) : '')), React.createElement("text", { fill: 'currentColor', style: TextStyle, x: wLegend * (wLegend < hLegend ? 0.5 : 0.9), y: hLegend * (wLegend < hLegend ? 0.9 : 0.5), transform: "rotate(".concat(wLegend < hLegend ? 270 : 0, ",").concat(wLegend * (wLegend < hLegend ? 0.5 : 0.9), ",").concat(hLegend * (wLegend < hLegend ? 0.9 : 0.5), ")") }, "".concat(props.maxValue.toFixed(nDigits)).concat(props.unitLabel !== undefined ? "".concat(props.unitLabel) : '')))))); } exports.default = HeatLegend; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVhdExlZ2VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9IZWF0TGVnZW5kLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEseUdBQXlHO0FBQ3pHLHlCQUF5QjtBQUN6QixFQUFFO0FBQ0YscUVBQXFFO0FBQ3JFLEVBQUU7QUFDRix3R0FBd0c7QUFDeEcsd0dBQXdHO0FBQ3hHLHNHQUFzRztBQUN0Ryx3RkFBd0Y7QUFDeEYsRUFBRTtBQUNGLDBDQUEwQztBQUMxQyxFQUFFO0FBQ0Ysd0dBQXdHO0FBQ3hHLHdHQUF3RztBQUN4Ryw0RUFBNEU7QUFDNUUsRUFBRTtBQUNGLDhCQUE4QjtBQUM5Qix3R0FBd0c7QUFDeEcsMEJBQTBCO0FBQzFCLG1EQUFtRDtBQUNuRCxFQUFFO0FBQ0YseUdBQXlHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHekcsNkJBQStCO0FBQy9CLGlEQUFzRTtBQVl0RSxJQUFNLFFBQVEsR0FBd0I7SUFDcEMsSUFBSSxFQUFFLE1BQU07SUFDWixVQUFVLEVBQUUsTUFBTTtJQUNsQixrQkFBa0IsRUFBRSxNQUFNO0lBQzFCLGdCQUFnQixFQUFFLE1BQU07SUFDeEIsZUFBZSxFQUFFLE1BQU07SUFDdkIsYUFBYSxFQUFFLE1BQU07SUFDckIsWUFBWSxFQUFFLE1BQU07SUFDcEIsYUFBYSxFQUFFLE1BQU07Q0FDdEIsQ0FBQztBQUVGLElBQU0sU0FBUyxHQUF3QjtJQUNyQyxRQUFRLEVBQUUsS0FBSztJQUNmLFVBQVUsRUFBRSxRQUFRO0lBQ3BCLGdCQUFnQixFQUFFLFNBQVM7SUFDM0IsVUFBVSxFQUFFLGdCQUFnQjtDQUM3QixDQUFDO0FBRUYsU0FBUyxVQUFVLENBQUMsS0FBYTtJQUN6QixJQUFBLEtBQUEsT0FBd0IsS0FBSyxDQUFDLFFBQVEsQ0FBUyxDQUFDLENBQUMsSUFBQSxFQUFoRCxPQUFPLFFBQUEsRUFBRSxVQUFVLFFBQTZCLENBQUM7SUFDeEQsSUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLFVBQVUs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QkFBTSxHQUFHLEdBQUMsT0FBTyxnQkFBTSxHQUFHLEdBQUMsT0FBTyxnQkFBTSxHQUFHLEdBQUMsT0FBTyxnQkFBTSxJQUFJLEdBQUMsT0FBTyxDQUFFLEdBQzNHO2dCQUdGLDhCQUFNLElBQUksRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxHQUFDLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxHQUFDLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDbEksU0FBUyxFQUFFLGlCQUFVLE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFJLE9BQU8sR0FBQyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGNBQUksT0FBTyxHQUFDLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBRyxJQUN0SSxVQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFHLEtBQUssQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFHLEtBQUssQ0FBQyxTQUFTLENBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFFLENBQzVGO2dCQUVULDhCQUFNLElBQUksRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxHQUFDLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxHQUFDLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDbEksU0FBUyxFQUFFLGlCQUFVLE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFJLE9BQU8sR0FBQyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGNBQUksT0FBTyxHQUFDLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBRyxJQUN0SSxVQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFHLEtBQUssQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFHLEtBQUssQ0FBQyxTQUFTLENBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFFLENBQzVGLENBQ0gsQ0FDRixDQUNGLENBQ1AsQ0FBQztBQUNKLENBQUM7QUFFRCxrQkFBZSxVQUFVLENBQUMifQ==