UNPKG

@gpa-gemstone/react-graph

Version:
110 lines 10.5 kB
"use strict"; // ****************************************************************************************************** // HorizontalMarker.tsx - Gbtc // // Copyright © 2022, 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: // ---------------------------------------------------------------------------------------------------- // 04/29/2022 - C Lackner // 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 GraphContext_1 = require("./GraphContext"); function HorizontalMarker(props) { /* Marks a Y Value horizontally as a line. */ var context = React.useContext(GraphContext_1.GraphContext); var _a = __read(React.useState(props.Value), 2), value = _a[0], setValue = _a[1]; var _b = __read(React.useState(false), 2), isSelected = _b[0], setSelected = _b[1]; var _c = __read(React.useState(""), 2), guid = _c[0], setGuid = _c[1]; function generateData(v) { var axis = GraphContext_1.AxisMap.get(props.axis); var x1 = (props.start === undefined ? context.XDomain[0] : props.start); var x2 = (props.end === undefined ? context.XDomain[1] : props.end); return "M ".concat(context.XTransformation(x1), " ").concat(context.YTransformation(v, axis), " L ").concat(context.XTransformation(x2), " ").concat(context.YTransformation(v, axis)); } var onClick = React.useCallback(function (_, y) { var axis = GraphContext_1.AxisMap.get(props.axis); var yP = context.YTransformation(props.Value, axis); var yT = context.YTransformation(y, axis); if (yT <= yP + (props.width / 2) && yT >= yP - (props.width / 2)) setSelected(true); }, [props.width, props.Value, props.axis, context.YTransformation]); React.useEffect(function () { var id = context.RegisterSelect({ axis: props.axis, allowSnapping: false, onClick: onClick, onRelease: function (_) { return setSelected(false); }, onPlotLeave: function (_) { return setSelected(false); } }); setGuid(id); return function () { context.RemoveSelect(id); }; }, []); React.useEffect(function () { if (guid === "") return; context.UpdateSelect(guid, { axis: props.axis, allowSnapping: false, onClick: onClick, onRelease: function (_) { return setSelected(false); }, onPlotLeave: function (_) { return setSelected(false); } }); }, [onClick]); React.useEffect(function () { setValue(props.Value); }, [props.Value]); React.useEffect(function () { if (props.setValue === undefined) return; if (!isSelected && props.Value !== value) props.setValue(value); }, [isSelected, value]); React.useEffect(function () { if (context.CurrentMode !== 'select') setSelected(false); }, [context.CurrentMode]); React.useEffect(function () { if (isSelected) setValue(context.YHoverSnap[GraphContext_1.AxisMap.get(props.axis)]); }, [context.YHoverSnap, props.axis]); return (React.createElement("g", null, React.createElement("path", { d: generateData(props.Value), style: { fill: 'none', strokeWidth: props.width, stroke: props.color }, strokeDasharray: GraphContext_1.LineMap.get(props.lineStyle) }), props.setValue !== undefined && props.Value !== value && isSelected ? React.createElement("path", { d: generateData(value), style: { fill: 'none', strokeWidth: props.width, stroke: props.color, opacity: 0.5 }, strokeDasharray: GraphContext_1.LineMap.get(props.lineStyle) }) : null)); } exports.default = HorizontalMarker; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSG9yaXpvbnRhbE1hcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Ib3Jpem9udGFsTWFya2VyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEseUdBQXlHO0FBQ3pHLCtCQUErQjtBQUMvQixFQUFFO0FBQ0YscUVBQXFFO0FBQ3JFLEVBQUU7QUFDRix3R0FBd0c7QUFDeEcsd0dBQXdHO0FBQ3hHLHNHQUFzRztBQUN0Ryx3RkFBd0Y7QUFDeEYsRUFBRTtBQUNGLDBDQUEwQztBQUMxQyxFQUFFO0FBQ0Ysd0dBQXdHO0FBQ3hHLHdHQUF3RztBQUN4Ryw0RUFBNEU7QUFDNUUsRUFBRTtBQUNGLDhCQUE4QjtBQUM5Qix3R0FBd0c7QUFDeEcsMEJBQTBCO0FBQzFCLG1EQUFtRDtBQUNuRCxFQUFFO0FBQ0YseUdBQXlHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHekcsNkJBQStCO0FBQy9CLCtDQUFvRztBQWFwRyxTQUFTLGdCQUFnQixDQUFDLEtBQWE7SUFDckM7O01BRUU7SUFDRixJQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLDJCQUFZLENBQUMsQ0FBQTtJQUN4QyxJQUFBLEtBQUEsT0FBb0IsS0FBSyxDQUFDLFFBQVEsQ0FBUyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUEsRUFBdEQsS0FBSyxRQUFBLEVBQUUsUUFBUSxRQUF1QyxDQUFDO0lBQ3hELElBQUEsS0FBQSxPQUE0QixLQUFLLENBQUMsUUFBUSxDQUFVLEtBQUssQ0FBQyxJQUFBLEVBQXpELFVBQVUsUUFBQSxFQUFFLFdBQVcsUUFBa0MsQ0FBQztJQUMzRCxJQUFBLEtBQUEsT0FBa0IsS0FBSyxDQUFDLFFBQVEsQ0FBUyxFQUFFLENBQUMsSUFBQSxFQUEzQyxJQUFJLFFBQUEsRUFBRSxPQUFPLFFBQThCLENBQUM7SUFFbkQsU0FBUyxZQUFZLENBQUMsQ0FBUztRQUM3QixJQUFNLElBQUksR0FBRyxzQkFBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMs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