@gpa-gemstone/react-graph 1.0.73 → 1.0.75

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.
package/lib/Pill.d.ts ADDED
@@ -0,0 +1,73 @@
1
+ import { IActionFunctions, AxisIdentifier } from './GraphContext';
2
+ export interface IProps {
3
+ /**
4
+ * Data for the pill and circles:
5
+ * [x1, x2]
6
+ * - x1: The x-coordinate of the left edge of the pill.
7
+ * - x2: The x-coordinate of the right edge of the pill.
8
+ */
9
+ XData: [number, number];
10
+ /**
11
+ * Data for the pill and circles:
12
+ * [y1, y2]
13
+ * - y1: The y-coordinate of the bottom edge of the pill.
14
+ * - y2: The y-coordinate of the top edge of the pill.
15
+ */
16
+ YData: [number, number];
17
+ /**
18
+ * Radius of the pill in pixels.
19
+ */
20
+ RadiusPX: number;
21
+ /**
22
+ * Fill color of the pill.
23
+ * @type {string}
24
+ */
25
+ Color: string;
26
+ /**
27
+ * Color of text in pill.
28
+ * @type {string}
29
+ */
30
+ TextColor?: string;
31
+ /**
32
+ * Stroke color of the pill and circles.
33
+ * @optional
34
+ * @type {string}
35
+ */
36
+ BorderColor?: string;
37
+ /**
38
+ * Stroke thickness of the pill and circles.
39
+ * @optional
40
+ * @type {number}
41
+ */
42
+ BorderThickness?: number;
43
+ /**
44
+ * Optional text to display inside the pill.
45
+ * @optional
46
+ * @type {string}
47
+ */
48
+ Text?: string;
49
+ /**
50
+ * Where to place text in the pill
51
+ */
52
+ TextPlacement?: 'center' | 'left' | 'right';
53
+ /**
54
+ * Opacity of the pill and circles.
55
+ * @optional
56
+ * @type {number}
57
+ */
58
+ Opacity?: number;
59
+ /**
60
+ * Axis identifier used for vertical positioning.
61
+ * @optional
62
+ * @type {AxisIdentifier}
63
+ */
64
+ Axis?: AxisIdentifier;
65
+ /**
66
+ * Callback function to handle click events on the pill. Provides action functions to update domains.
67
+ * @optional
68
+ * @type {(actions: IActionFunctions) => void}
69
+ */
70
+ OnClick?: (x: number, y: number, actions: IActionFunctions) => void;
71
+ }
72
+ declare const Pill: (props: IProps) => JSX.Element | null;
73
+ export default Pill;
package/lib/Pill.js ADDED
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ // ******************************************************************************************************
3
+ // Pill.tsx - Gbtc
4
+ //
5
+ // Copyright © 2024, Grid Protection Alliance. All Rights Reserved.
6
+ //
7
+ // Licensed to the Grid Protection Alliance (GPA) under one or more contributor license agreements. See
8
+ // the NOTICE file distributed with this work for additional information regarding copyright ownership.
9
+ // The GPA licenses this file to you under the MIT License (MIT), the "License"; you may not use this
10
+ // file except in compliance with the License. You may obtain a copy of the License at:
11
+ //
12
+ // http://opensource.org/licenses/MIT
13
+ //
14
+ // Unless agreed to in writing, the subject software distributed under the License is distributed on an
15
+ // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Refer to the
16
+ // License for the specific language governing permissions and limitations.
17
+ //
18
+ // Code Modification History:
19
+ // ----------------------------------------------------------------------------------------------------
20
+ // 09/03/2024 - Preston Crawford
21
+ // Generated original version of source code.
22
+ //
23
+ // ******************************************************************************************************
24
+ var __read = (this && this.__read) || function (o, n) {
25
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
26
+ if (!m) return o;
27
+ var i = m.call(o), r, ar = [], e;
28
+ try {
29
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
30
+ }
31
+ catch (error) { e = { error: error }; }
32
+ finally {
33
+ try {
34
+ if (r && !r.done && (m = i["return"])) m.call(i);
35
+ }
36
+ finally { if (e) throw e.error; }
37
+ }
38
+ return ar;
39
+ };
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ var helper_functions_1 = require("@gpa-gemstone/helper-functions");
42
+ var React = require("react");
43
+ var GraphContext_1 = require("./GraphContext");
44
+ var Pill = function (props) {
45
+ var _a;
46
+ var context = React.useContext(GraphContext_1.GraphContext);
47
+ var _b = __read(React.useState(""), 2), guid = _b[0], setGuid = _b[1];
48
+ var _c = __read(React.useState(1), 2), textSize = _c[0], setTextSize = _c[1];
49
+ var pxHeight = React.useMemo(function () {
50
+ var axis = GraphContext_1.AxisMap.get(props.Axis);
51
+ var y0px = context.YTransformation(props.YData[0], axis);
52
+ var y1px = context.YTransformation(props.YData[1], axis);
53
+ return Math.abs(y1px - y0px);
54
+ }, [context.XTransformation, props.YData, props.Axis]);
55
+ var pxWidth = React.useMemo(function () {
56
+ return Math.abs(context.XTransformation(props.XData[1]) - context.XTransformation(props.XData[0]));
57
+ }, [context.XTransformation, props.XData]);
58
+ var radius = React.useMemo(function () {
59
+ return Math.min(pxHeight / 2, pxWidth / 2, props.RadiusPX);
60
+ }, [pxHeight, pxWidth, props.RadiusPX]);
61
+ var getMax = React.useCallback(function (tDomain) {
62
+ var _a = __read(tDomain, 2), t0 = _a[0], t1 = _a[1];
63
+ var _b = __read(props.XData, 2), x1 = _b[0], x2 = _b[1];
64
+ if (t1 >= x1 && t0 <= x2)
65
+ return Math.max(props.YData[0], props.YData[1]);
66
+ return undefined;
67
+ }, [props.XData, props.YData]);
68
+ var getMin = React.useCallback(function (tDomain) {
69
+ var _a = __read(tDomain, 2), t0 = _a[0], t1 = _a[1];
70
+ var _b = __read(props.XData, 2), x1 = _b[0], x2 = _b[1];
71
+ if (t1 >= x1 && t0 <= x2)
72
+ return Math.min(props.YData[0], props.YData[1]);
73
+ return undefined;
74
+ }, [props.XData, props.YData]);
75
+ // Update data series information in the graph context based on circle properties
76
+ React.useEffect(function () {
77
+ if (guid === "")
78
+ return;
79
+ context.UpdateData(guid, {
80
+ axis: props.Axis,
81
+ legend: undefined,
82
+ getMax: getMax,
83
+ getMin: getMin,
84
+ });
85
+ }, [props.Axis, props.XData, props.YData]);
86
+ // Add a new data series on component mount / removing on unmount
87
+ React.useEffect(function () {
88
+ var id = context.AddData({
89
+ axis: props.Axis,
90
+ legend: undefined,
91
+ getMax: getMax,
92
+ getMin: getMin
93
+ });
94
+ setGuid(id);
95
+ return function () {
96
+ context.RemoveData(id);
97
+ };
98
+ }, []);
99
+ // Adjust text size within the pill to ensure it fits
100
+ React.useEffect(function () {
101
+ if (props.Text === undefined)
102
+ return;
103
+ var fontFamily = "Segoe UI";
104
+ var fontSizeUnit = "em";
105
+ var minSize = 0.05;
106
+ var maxSize = 5;
107
+ var bestSize = minSize;
108
+ var calculateTextSize = function (size) {
109
+ var dX = (0, helper_functions_1.GetTextWidth)(fontFamily, size + fontSizeUnit, props.Text);
110
+ var dY = (0, helper_functions_1.GetTextHeight)(fontFamily, size + fontSizeUnit, props.Text);
111
+ return { dX: dX, dY: dY };
112
+ };
113
+ while (maxSize - minSize > 0.01) {
114
+ var midSize = (maxSize + minSize) / 2;
115
+ var _a = calculateTextSize(midSize), dX = _a.dX, dY = _a.dY;
116
+ if (dX <= pxWidth && dY <= pxHeight) {
117
+ bestSize = midSize;
118
+ minSize = midSize; // Try larger
119
+ }
120
+ else
121
+ maxSize = midSize; // Try smaller
122
+ }
123
+ setTextSize(bestSize);
124
+ }, [props.Text, pxHeight, pxWidth]);
125
+ // Set up a click handler if provided in props
126
+ React.useEffect(function () {
127
+ if (guid === "" || props.OnClick === undefined)
128
+ return;
129
+ context.UpdateSelect(guid, { onClick: onClick });
130
+ }, [props.OnClick, context.UpdateFlag]);
131
+ // Handle click events on the pill
132
+ var onClick = React.useCallback(function (xClick, yClick) {
133
+ if (props.OnClick === undefined)
134
+ return;
135
+ // Calculate positions and determine if the click was within the pill bounds
136
+ var _a = __read(props.XData, 2), x1 = _a[0], x2 = _a[1];
137
+ var _b = __read(props.YData, 2), y1 = _b[0], y2 = _b[1];
138
+ var isWithinHorizontalBounds = xClick >= x1 && xClick <= x2;
139
+ var isWithinVerticalBounds = yClick >= y1 && yClick <= y2;
140
+ if (isWithinHorizontalBounds && isWithinVerticalBounds)
141
+ props.OnClick(xClick, yClick, { setYDomain: context.SetYDomain, setTDomain: context.SetXDomain });
142
+ }, [props.OnClick, props.Axis, props.XData, props.YData, context.XTransformation, context.YTransformation, context.SetXDomain, context.SetYDomain]);
143
+ var textXPosition = React.useMemo(function () {
144
+ var xLeft = context.XTransformation(props.XData[0]);
145
+ var xRight = context.XTransformation(props.XData[1]);
146
+ var xCenter = (xLeft + xRight) / 2;
147
+ if (props.TextPlacement == null || props.TextPlacement === 'center')
148
+ return xCenter;
149
+ if (props.TextPlacement === 'left')
150
+ return xLeft;
151
+ if (props.TextPlacement === 'right')
152
+ return xRight;
153
+ return xCenter;
154
+ }, [context.XTransformation, props.XData, props.TextPlacement]);
155
+ // Render null if coordinates are not valid, otherwise render the pill / text
156
+ if (!isFinite(context.XTransformation((props.XData[0], props.XData[1]) / 2)) || !isFinite(context.YTransformation(props.YData[0], GraphContext_1.AxisMap.get(props.Axis))) || !isFinite(context.YTransformation(props.YData[1], GraphContext_1.AxisMap.get(props.Axis))))
157
+ return null;
158
+ return (React.createElement("g", null,
159
+ React.createElement("rect", { x: context.XTransformation(props.XData[0]), width: pxWidth, y: context.YTransformation(props.YData[1], GraphContext_1.AxisMap.get(props.Axis)), height: pxHeight, rx: radius, ry: radius, fill: props.Color, opacity: props.Opacity, stroke: props.BorderColor, strokeWidth: props.BorderThickness, onClick: function (e) { return onClick(e.clientX, e.clientY); } }),
160
+ props.Text !== undefined ?
161
+ React.createElement("g", { clipPath: "url(#oval-clip-".concat(guid, ")") },
162
+ React.createElement("text", { fill: (_a = props.TextColor) !== null && _a !== void 0 ? _a : 'currentColor', style: { fontSize: textSize + 'em', textAnchor: 'middle', dominantBaseline: 'middle' }, y: (context.YTransformation(props.YData[0], GraphContext_1.AxisMap.get(props.Axis)) + context.YTransformation(props.YData[1], GraphContext_1.AxisMap.get(props.Axis))) / 2, x: textXPosition }, props.Text)) : null));
163
+ };
164
+ exports.default = Pill;
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGlsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9QaWxsLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEseUdBQXlHO0FBQ3pHLG1CQUFtQjtBQUNuQixFQUFFO0FBQ0YscUVBQXFFO0FBQ3JFLEVBQUU7QUFDRix3R0FBd0c7QUFDeEcsd0dBQXdHO0FBQ3hHLHNHQUFzRztBQUN0Ryx3RkFBd0Y7QUFDeEYsRUFBRTtBQUNGLDBDQUEwQztBQUMxQyxFQUFFO0FBQ0Ysd0dBQXdHO0FBQ3hHLHdHQUF3RztBQUN4Ryw0RUFBNEU7QUFDNUUsRUFBRTtBQUNGLDhCQUE4QjtBQUM5Qix3R0FBd0c7QUFDeEcsaUNBQWlDO0FBQ2pDLG1EQUFtRDtBQUNuRCxFQUFFO0FBQ0YseUdBQXlHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHekcsbUVBQTZFO0FBQzdFLDZCQUErQjtBQUMvQiwrQ0FBaUg7QUFnRmpILElBQU0sSUFBSSxHQUFHLFVBQUMsS0FBYTs7SUFDdkIsSUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQywyQkFBWSxDQUFDLENBQUM7SUFFekMsSUFBQSxLQUFBLE9BQWtCLEtBQUssQ0FBQyxRQUFRLENBQVMsRUFBRSxDQUFDLElBQUEsRUFBM0MsSUFBSSxRQUFBLEVBQUUsT0FBTyxRQUE4QixDQUFDO0lBQzdDLElBQUEsS0FBQSxPQUEwQixLQUFLLENBQUMsUUFBUSxDQUFTLENBQUMsQ0FBQyxJQUFBLEVBQWxELFFBQVEsUUFBQSxFQUFFLFdBQVcsUUFBNkIsQ0FBQztJQUUxRCxJQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQzNCLElBQU0sSUFBSSxHQUFHLHNCQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFNLElBQUksR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7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
package/lib/Plot.d.ts CHANGED
@@ -11,7 +11,18 @@ export interface IProps {
11
11
  width: number;
12
12
  showGrid?: boolean;
13
13
  XAxisType?: 'time' | 'log' | 'value';
14
+ /**
15
+ * Flag to enable all zooming features.
16
+ */
14
17
  zoom?: boolean;
18
+ /**
19
+ * Flag to enable zooming on the y-axis.
20
+ */
21
+ yZoom?: boolean;
22
+ /**
23
+ * Flag to enable zooming on the x-axis.
24
+ */
25
+ xZoom?: boolean;
15
26
  pan?: boolean;
16
27
  Tmin?: number;
17
28
  Tmax?: number;