@gpa-gemstone/react-graph
Version:
Interactive UI Components for GPA products
120 lines • 14.1 kB
JavaScript
;
// ******************************************************************************************************
// Vertica;Marker.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");
var SymbolicMarker = function (props) {
var context = React.useContext(GraphContext_1.GraphContext);
var _a = __read(React.useState({ x: props.xPos, y: props.yPos }), 2), position = _a[0], setPosition = _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];
var isInBounds = React.useCallback(function (xArg, yArg) {
var _a, _b, _c, _d;
var xP = ((_b = (_a = props.usePixelPositioning) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : false) ? context.XApplyPixelOffset(props.xPos) : context.XTransformation(props.xPos);
var xT = context.XTransformation(xArg);
var yP = ((_d = (_c = props.usePixelPositioning) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : false) ? context.YApplyPixelOffset(props.yPos) : context.YTransformation(props.yPos, GraphContext_1.AxisMap.get(props.axis));
var yT = context.YTransformation(yArg, GraphContext_1.AxisMap.get(props.axis));
// Note: This is actually a rectangular box
return (xT <= xP + props.radius && xT >= xP - props.radius && yT <= yP + props.radius && yT >= yP - props.radius);
}, [props.axis, props.yPos, props.yPos, props.radius, GraphContext_1.AxisMap, props.usePixelPositioning, context.XTransformation, context.YTransformation, context.XApplyPixelOffset, context.YApplyPixelOffset]);
var onClick = React.useCallback(function (xArg, yArg) {
if (isInBounds(xArg, yArg))
setSelected(true);
}, [setSelected, isInBounds]);
var onMove = React.useCallback(function (xArg, yArg) {
if (props.onHover !== undefined && isInBounds(xArg, yArg))
props.onHover();
}, [props.onHover, isInBounds]);
React.useEffect(function () {
var id = context.RegisterSelect({
onRelease: function () { return setSelected(false); },
onPlotLeave: function () { return setSelected(false); },
onClick: onClick,
onMove: onMove,
axis: props.axis,
allowSnapping: false
});
setGuid(id);
return function () { context.RemoveSelect(id); };
}, []);
React.useEffect(function () {
if (guid === "")
return;
context.UpdateSelect(guid, {
onRelease: function () { return setSelected(false); },
onPlotLeave: function () { return setSelected(false); },
onClick: onClick,
onMove: onMove,
axis: props.axis,
allowSnapping: false
});
}, [onClick, onMove]);
React.useEffect(function () {
setPosition({ x: props.xPos, y: props.yPos });
}, [props.xPos, props.yPos]);
React.useEffect(function () {
if (props.setPosition === undefined)
return;
if (!isSelected && (props.xPos !== position.x || props.yPos !== position.y))
props.setPosition(position.x, position.y);
}, [isSelected, position]);
React.useEffect(function () {
if (context.CurrentMode !== 'select')
setSelected(false);
}, [context.CurrentMode]);
React.useEffect(function () {
if (isSelected)
setPosition({ x: context.XHoverSnap, y: context.YHoverSnap[GraphContext_1.AxisMap.get(props.axis)] });
}, [context.XHoverSnap, context.YHoverSnap]);
return (React.createElement(React.Fragment, null,
React.createElement(SymbolicGraphic, { style: props.style, x: props.xPos, y: props.yPos, r: props.radius, a: GraphContext_1.AxisMap.get(props.axis), inPixels: props.usePixelPositioning }, props.children),
props.setPosition !== undefined && (props.xPos !== position.x || props.yPos !== position.y) ?
React.createElement(SymbolicGraphic, { style: props.style, x: position.x, y: position.y, r: props.radius, a: GraphContext_1.AxisMap.get(props.axis), inPixels: props.usePixelPositioning }, props.children)
: null));
};
var SymbolicGraphic = function (props) {
var _a, _b, _c, _d;
var context = React.useContext(GraphContext_1.GraphContext);
var xPixels = ((_b = (_a = props.inPixels) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : false) ? context.XApplyPixelOffset(props.x) : context.XTransformation(props.x);
var yPixels = ((_d = (_c = props.inPixels) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : false) ? context.YApplyPixelOffset(props.y) : context.YTransformation(props.y, props.a);
return (React.createElement("foreignObject", { style: props.style, x: xPixels - props.r, y: yPixels - props.r, width: 2 * props.r, height: 2 * props.r }, props.children));
};
exports.default = SymbolicMarker;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3ltYm9saWNNYXJrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvU3ltYm9saWNNYXJrZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx5R0FBeUc7QUFDekcsNkJBQTZCO0FBQzdCLEVBQUU7QUFDRixxRUFBcUU7QUFDckUsRUFBRTtBQUNGLHdHQUF3RztBQUN4Ryx3R0FBd0c7QUFDeEcsc0dBQXNHO0FBQ3RHLHdGQUF3RjtBQUN4RixFQUFFO0FBQ0YsMENBQTBDO0FBQzFDLEVBQUU7QUFDRix3R0FBd0c7QUFDeEcsd0dBQXdHO0FBQ3hHLDRFQUE0RTtBQUM1RSxFQUFFO0FBQ0YsOEJBQThCO0FBQzlCLHdHQUF3RztBQUN4RywwQkFBMEI7QUFDMUIsbURBQW1EO0FBQ25ELEVBQUU7QUFDRix5R0FBeUc7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUd6Ryw2QkFBK0I7QUFDL0IsK0NBQWdGO0FBYWhGLElBQU0sY0FBYyxHQUFHLFVBQUMsS0FBc0M7SUFDNUQsSUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQywyQkFBWSxDQUFDLENBQUM7SUFDekMsSUFBQSxLQUFBLE9BQTBCLEtBQUssQ0FBQyxRQUFRLENBQXlCLEVBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUMsQ0FBQyxJQUFBLEVBQS9GLFFBQVEsUUFBQSxFQUFFLFdBQVcsUUFBMEUsQ0FBQztJQUNqRyxJQUFBLEtBQUEsT0FBNEIsS0FBSyxDQUFDLFFBQVEsQ0FBVSxLQUFLLENBQUMsSUFBQSxFQUF6RCxVQUFVLFFBQUEsRUFBRSxXQUFXLFFBQWtDLENBQUM7SUFDM0QsSUFBQSxLQUFBLE9BQWtCLEtBQUssQ0FBQyxRQUFRLENBQVMsRUFBRSxDQUFDLElBQUEsRUFBM0MsSUFBSSxRQUFBLEVBQUUsT0FBTyxRQUE4QixDQUFDO0lBRW5ELElBQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxXQUFXLENB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