@gpa-gemstone/react-graph 1.0.50 → 1.0.52

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.
Files changed (45) hide show
  1. package/lib/AggregatingCircles.d.ts +16 -17
  2. package/lib/AggregatingCircles.js +180 -173
  3. package/lib/Button.d.ts +7 -7
  4. package/lib/Button.js +33 -33
  5. package/lib/Circle.d.ts +19 -20
  6. package/lib/Circle.js +125 -118
  7. package/lib/GraphContext.d.ts +89 -89
  8. package/lib/GraphContext.js +140 -140
  9. package/lib/HeatLegend.d.ts +10 -11
  10. package/lib/HeatLegend.js +109 -106
  11. package/lib/HeatMapChart.d.ts +14 -15
  12. package/lib/HeatMapChart.js +119 -119
  13. package/lib/HorizontalMarker.d.ts +13 -14
  14. package/lib/HorizontalMarker.js +110 -110
  15. package/lib/Infobox.d.ts +17 -17
  16. package/lib/Infobox.js +180 -180
  17. package/lib/InteractiveButtons.d.ts +21 -21
  18. package/lib/InteractiveButtons.js +218 -218
  19. package/lib/Legend.d.ts +14 -14
  20. package/lib/Legend.js +117 -117
  21. package/lib/LegendContext.d.ts +14 -14
  22. package/lib/LegendContext.js +34 -34
  23. package/lib/Line.d.ts +14 -15
  24. package/lib/Line.js +144 -144
  25. package/lib/LineLegend.d.ts +11 -12
  26. package/lib/LineLegend.js +97 -97
  27. package/lib/LineWithThreshold.d.ts +12 -13
  28. package/lib/LineWithThreshold.js +144 -144
  29. package/lib/LogAxis.d.ts +20 -20
  30. package/lib/LogAxis.js +165 -165
  31. package/lib/Plot.d.ts +38 -37
  32. package/lib/Plot.js +802 -802
  33. package/lib/PointNode.d.ts +31 -31
  34. package/lib/PointNode.js +254 -254
  35. package/lib/SymbolicMarker.d.ts +17 -17
  36. package/lib/SymbolicMarker.js +119 -119
  37. package/lib/TimeAxis.d.ts +18 -18
  38. package/lib/TimeAxis.js +433 -433
  39. package/lib/ValueAxis.d.ts +21 -21
  40. package/lib/ValueAxis.js +196 -192
  41. package/lib/VerticalMarker.d.ts +14 -15
  42. package/lib/VerticalMarker.js +111 -111
  43. package/lib/index.d.ts +13 -13
  44. package/lib/index.js +27 -27
  45. package/package.json +4 -4
package/lib/Circle.js CHANGED
@@ -1,118 +1,125 @@
1
- "use strict";
2
- // ******************************************************************************************************
3
- // Circle.tsx - Gbtc
4
- //
5
- // Copyright © 2023, 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
- // 03/02/2023 - C Lackner
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
- exports.ContextlessCircle = void 0;
42
- var helper_functions_1 = require("@gpa-gemstone/helper-functions");
43
- var React = require("react");
44
- var GraphContext_1 = require("./GraphContext");
45
- function ContextlessCircle(props) {
46
- /*
47
- Circle with basic styling
48
- */
49
- var _a = __read(React.useState(""), 2), guid = _a[0], setGuid = _a[1];
50
- var _b = __read(React.useState(1), 2), textSize = _b[0], setTextSize = _b[1];
51
- React.useEffect(function () {
52
- if (guid === "")
53
- return;
54
- props.context.UpdateData(guid, {
55
- axis: props.circleProps.axis,
56
- legend: undefined,
57
- getMax: function (t) { return (t[0] < props.circleProps.data[0] && t[1] > props.circleProps.data[0] ? props.circleProps.data[1] : undefined); },
58
- getMin: function (t) { return (t[0] < props.circleProps.data[0] && t[1] > props.circleProps.data[0] ? props.circleProps.data[1] : undefined); },
59
- });
60
- }, [props.circleProps]);
61
- React.useEffect(function () {
62
- var id = props.context.AddData({
63
- axis: props.circleProps.axis,
64
- legend: undefined,
65
- getMax: function (t) { return (t[0] < props.circleProps.data[0] && t[1] > props.circleProps.data[0] ? props.circleProps.data[1] : undefined); },
66
- getMin: function (t) { return (t[0] < props.circleProps.data[0] && t[1] > props.circleProps.data[0] ? props.circleProps.data[1] : undefined); },
67
- });
68
- setGuid(id);
69
- return function () { props.context.RemoveData(id); };
70
- }, []);
71
- React.useEffect(function () {
72
- if (props.circleProps.text === undefined)
73
- return;
74
- var tSize = 5;
75
- var dX = (0, helper_functions_1.GetTextWidth)("Segoe UI", tSize + "em", props.circleProps.text);
76
- var dY = (0, helper_functions_1.GetTextHeight)("Segoe UI", tSize + "em", props.circleProps.text);
77
- while ((dX > 2 * props.circleProps.radius || dY > 2 * props.circleProps.radius) && tSize > 0.05) {
78
- tSize = tSize - 0.01;
79
- dX = (0, helper_functions_1.GetTextWidth)("Segoe UI", tSize + "em", props.circleProps.text);
80
- dY = (0, helper_functions_1.GetTextHeight)("Segoe UI", tSize + "em", props.circleProps.text);
81
- }
82
- setTextSize(tSize);
83
- }, [props.circleProps.text, props.circleProps.radius]);
84
- React.useEffect(function () {
85
- if (guid === "" || props.circleProps.onClick === undefined)
86
- return;
87
- props.context.UpdateSelect(guid, {
88
- onClick: onClick
89
- });
90
- }, [props.circleProps.onClick, props.context.UpdateFlag]);
91
- function onClick(x, y) {
92
- if (props.circleProps.onClick === undefined)
93
- return;
94
- var axis = GraphContext_1.AxisMap.get(props.circleProps.axis);
95
- var xP = props.context.XTransformation(x);
96
- var yP = props.context.YTransformation(y, axis);
97
- var xC = props.context.XTransformation(props.circleProps.data[0]);
98
- var yC = props.context.YTransformation(props.circleProps.data[1], axis);
99
- if (xP <= xC + props.circleProps.radius && xP >= xC - props.circleProps.radius &&
100
- yP <= yC + props.circleProps.radius && yP >= yC - props.circleProps.radius)
101
- props.circleProps.onClick({
102
- setYDomain: props.context.SetYDomain,
103
- setTDomain: props.context.SetXDomain
104
- });
105
- }
106
- if (!isFinite(props.context.XTransformation(props.circleProps.data[0])) || !isFinite(props.context.YTransformation(props.circleProps.data[1], GraphContext_1.AxisMap.get(props.circleProps.axis))))
107
- return null;
108
- return (React.createElement("g", null,
109
- React.createElement("circle", { r: props.circleProps.radius, cx: props.context.XTransformation(props.circleProps.data[0]), cy: props.context.YTransformation(props.circleProps.data[1], GraphContext_1.AxisMap.get(props.circleProps.axis)), fill: props.circleProps.color, opacity: props.circleProps.opacity, stroke: props.circleProps.borderColor, strokeWidth: props.circleProps.borderThickness }),
110
- props.circleProps.text !== undefined ? React.createElement("text", { fill: 'black', style: { fontSize: textSize + 'em', textAnchor: 'middle', dominantBaseline: 'middle' }, y: props.context.YTransformation(props.circleProps.data[1], GraphContext_1.AxisMap.get(props.circleProps.axis)), x: props.context.XTransformation(props.circleProps.data[0]) }, props.circleProps.text) : null));
111
- }
112
- exports.ContextlessCircle = ContextlessCircle;
113
- var Circle = function (props) {
114
- var context = React.useContext(GraphContext_1.GraphContext);
115
- return React.createElement(ContextlessCircle, { circleProps: props, context: context });
116
- };
117
- exports.default = Circle;
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2lyY2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0NpcmNsZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHlHQUF5RztBQUN6RyxxQkFBcUI7QUFDckIsRUFBRTtBQUNGLHFFQUFxRTtBQUNyRSxFQUFFO0FBQ0Ysd0dBQXdHO0FBQ3hHLHdHQUF3RztBQUN4RyxzR0FBc0c7QUFDdEcsd0ZBQXdGO0FBQ3hGLEVBQUU7QUFDRiwwQ0FBMEM7QUFDMUMsRUFBRTtBQUNGLHdHQUF3RztBQUN4Ryx3R0FBd0c7QUFDeEcsNEVBQTRFO0FBQzVFLEVBQUU7QUFDRiw4QkFBOEI7QUFDOUIsd0dBQXdHO0FBQ3hHLDBCQUEwQjtBQUMxQixtREFBbUQ7QUFDbkQsRUFBRTtBQUNGLHlHQUF5Rzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUd6RyxtRUFBNkU7QUFDN0UsNkJBQStCO0FBQy9CLCtDQUE4SDtBQW1COUgsU0FBZ0IsaUJBQWlCLENBQUMsS0FBd0I7SUFDeEQ7O01BRUU7SUFDSSxJQUFBLEtBQUEsT0FBa0IsS0FBSyxDQUFDLFFBQVEsQ0FBUyxFQUFFLENBQUMsSUFBQSxFQUEzQyxJQUFJLFFBQUEsRUFBRSxPQUFPLFFBQThCLENBQUM7SUFDN0MsSUFBQSxLQUFBLE9BQTBCLEtBQUssQ0FBQyxRQUFRLENBQVMsQ0FBQyxDQUFDLElBQUEsRUFBbEQsUUFBUSxRQUFBLEVBQUUsV0FBVyxRQUE2QixDQUFDO0lBRXpELEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDWixJQUFJLElBQUksS0FBSyxFQUFFO1lBQ1gsT0FBTztRQUVYLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRTtZQUMzQixJQUFJLEVBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJO1lBQzVCLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLE1BQU0sRUFBRSxVQUFDLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FB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
1
+ "use strict";
2
+ // ******************************************************************************************************
3
+ // Circle.tsx - Gbtc
4
+ //
5
+ // Copyright © 2023, 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
+ // 03/02/2023 - C Lackner
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
+ exports.ContextlessCircle = ContextlessCircle;
42
+ var helper_functions_1 = require("@gpa-gemstone/helper-functions");
43
+ var React = require("react");
44
+ var GraphContext_1 = require("./GraphContext");
45
+ function ContextlessCircle(props) {
46
+ /*
47
+ Circle with basic styling
48
+ */
49
+ var _a = __read(React.useState(""), 2), guid = _a[0], setGuid = _a[1];
50
+ var _b = __read(React.useState(1), 2), textSize = _b[0], setTextSize = _b[1];
51
+ // Update data series information in the graph context based on circle properties
52
+ React.useEffect(function () {
53
+ if (guid === "")
54
+ return;
55
+ props.context.UpdateData(guid, {
56
+ axis: props.circleProps.axis,
57
+ legend: undefined,
58
+ getMax: function (t) { return (t[0] < props.circleProps.data[0] && t[1] > props.circleProps.data[0] ? props.circleProps.data[1] : undefined); },
59
+ getMin: function (t) { return (t[0] < props.circleProps.data[0] && t[1] > props.circleProps.data[0] ? props.circleProps.data[1] : undefined); },
60
+ });
61
+ }, [props.circleProps]);
62
+ // Add a new data series on component mount / removing on unmount
63
+ React.useEffect(function () {
64
+ var id = props.context.AddData({
65
+ axis: props.circleProps.axis,
66
+ legend: undefined,
67
+ getMax: function (t) { return (t[0] < props.circleProps.data[0] && t[1] > props.circleProps.data[0] ? props.circleProps.data[1] : undefined); },
68
+ getMin: function (t) { return (t[0] < props.circleProps.data[0] && t[1] > props.circleProps.data[0] ? props.circleProps.data[1] : undefined); },
69
+ });
70
+ setGuid(id);
71
+ return function () { props.context.RemoveData(id); };
72
+ }, []);
73
+ // Adjust text size within the circle to ensure it fits
74
+ React.useEffect(function () {
75
+ if (props.circleProps.text === undefined)
76
+ return;
77
+ var tSize = 5;
78
+ var dX = (0, helper_functions_1.GetTextWidth)("Segoe UI", tSize + "em", props.circleProps.text);
79
+ var dY = (0, helper_functions_1.GetTextHeight)("Segoe UI", tSize + "em", props.circleProps.text);
80
+ while ((dX > 2 * props.circleProps.radius || dY > 2 * props.circleProps.radius) && tSize > 0.05) {
81
+ tSize = tSize - 0.01;
82
+ dX = (0, helper_functions_1.GetTextWidth)("Segoe UI", tSize + "em", props.circleProps.text);
83
+ dY = (0, helper_functions_1.GetTextHeight)("Segoe UI", tSize + "em", props.circleProps.text);
84
+ }
85
+ setTextSize(tSize);
86
+ }, [props.circleProps.text, props.circleProps.radius]);
87
+ // Set up a click handler if provided in props
88
+ React.useEffect(function () {
89
+ if (guid === "" || props.circleProps.onClick === undefined)
90
+ return;
91
+ props.context.UpdateSelect(guid, {
92
+ onClick: onClick
93
+ });
94
+ }, [props.circleProps.onClick, props.context.UpdateFlag]);
95
+ // Handle click events on the circle
96
+ function onClick(x, y) {
97
+ if (props.circleProps.onClick === undefined)
98
+ return;
99
+ // Calculate positions and determine if the click was within the circle bounds
100
+ var axis = GraphContext_1.AxisMap.get(props.circleProps.axis);
101
+ var xP = props.context.XTransformation(x);
102
+ var yP = props.context.YTransformation(y, axis);
103
+ var xC = props.context.XTransformation(props.circleProps.data[0]);
104
+ var yC = props.context.YTransformation(props.circleProps.data[1], axis);
105
+ if (xP <= xC + props.circleProps.radius && xP >= xC - props.circleProps.radius &&
106
+ yP <= yC + props.circleProps.radius && yP >= yC - props.circleProps.radius)
107
+ props.circleProps.onClick({
108
+ setYDomain: props.context.SetYDomain,
109
+ setTDomain: props.context.SetXDomain
110
+ });
111
+ }
112
+ // Render null if coordinates are not valid, otherwise render the circle / text
113
+ if (!isFinite(props.context.XTransformation(props.circleProps.data[0])) || !isFinite(props.context.YTransformation(props.circleProps.data[1], GraphContext_1.AxisMap.get(props.circleProps.axis))))
114
+ return null;
115
+ return (React.createElement("g", null,
116
+ React.createElement("circle", { r: props.circleProps.radius, cx: props.context.XTransformation(props.circleProps.data[0]), cy: props.context.YTransformation(props.circleProps.data[1], GraphContext_1.AxisMap.get(props.circleProps.axis)), fill: props.circleProps.color, opacity: props.circleProps.opacity, stroke: props.circleProps.borderColor, strokeWidth: props.circleProps.borderThickness }),
117
+ props.circleProps.text !== undefined ? React.createElement("text", { fill: 'black', style: { fontSize: textSize + 'em', textAnchor: 'middle', dominantBaseline: 'middle' }, y: props.context.YTransformation(props.circleProps.data[1], GraphContext_1.AxisMap.get(props.circleProps.axis)), x: props.context.XTransformation(props.circleProps.data[0]) }, props.circleProps.text) : null));
118
+ }
119
+ // Higher-order component that uses GraphContext to pass down context to the ContextlessCircle
120
+ var Circle = function (props) {
121
+ var context = React.useContext(GraphContext_1.GraphContext);
122
+ return React.createElement(ContextlessCircle, { circleProps: props, context: context });
123
+ };
124
+ exports.default = Circle;
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2lyY2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0NpcmNsZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHlHQUF5RztBQUN6RyxxQkFBcUI7QUFDckIsRUFBRTtBQUNGLHFFQUFxRTtBQUNyRSxFQUFFO0FBQ0Ysd0dBQXdHO0FBQ3hHLHdHQUF3RztBQUN4RyxzR0FBc0c7QUFDdEcsd0ZBQXdGO0FBQ3hGLEVBQUU7QUFDRiwwQ0FBMEM7QUFDMUMsRUFBRTtBQUNGLHdHQUF3RztBQUN4Ryx3R0FBd0c7QUFDeEcsNEVBQTRFO0FBQzVFLEVBQUU7QUFDRiw4QkFBOEI7QUFDOUIsd0dBQXdHO0FBQ3hHLDBCQUEwQjtBQUMxQixtREFBbUQ7QUFDbkQsRUFBRTtBQUNGLHlHQUF5Rzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0J6Ryw4Q0EwR0M7QUEvSEQsbUVBQTZFO0FBQzdFLDZCQUErQjtBQUMvQiwrQ0FBOEg7QUFtQjlILFNBQWdCLGlCQUFpQixDQUFDLEtBQXdCO0lBQ3hEOztNQUVFO0lBQ0ksSUFBQSxLQUFBLE9BQWtCLEtBQUssQ0FBQyxRQUFRLENBQVMsRUFBRSxDQUFDLElBQUEsRUFBM0MsSUFBSSxRQUFBLEVBQUUsT0FBTyxRQUE4QixDQUFDO0lBQzdDLElBQUEsS0FBQSxPQUEwQixLQUFLLENBQUMsUUFBUSxDQUFTLENBQUMsQ0FBQyxJQUFBLEVBQWxELFFBQVEsUUFBQSxFQUFFLFdBQVcsUUFBNkIsQ0FBQztJQUUxRCxpRkFBaUY7SUFDakYsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUNkLElBQUksSUFBSSxLQUFLLEVBQUU7WUFDWCxPQUFPO1FBRVgsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFO1lBQzNCLElBQUksRUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUk7WUFDNUIsTUFBTSxFQUFFLFNBQVM7WUFDakIsTUFBTSxFQUFFLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLENB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
@@ -1,89 +1,89 @@
1
- import * as React from 'react';
2
- export interface IGraphContext extends IHandlerRegistration, IDataRegistration {
3
- XDomain: [number, number];
4
- XHover: number;
5
- XHoverSnap: number;
6
- YHover: number[];
7
- YHoverSnap: number[];
8
- YDomain: [number, number][];
9
- CurrentMode: SelectType;
10
- Data: React.MutableRefObject<Map<string, IDataSeries>>;
11
- DataGuid: string;
12
- XApplyPixelOffset: (x: number) => number;
13
- YApplyPixelOffset: (y: number) => number;
14
- XTransformation: (x: number) => number;
15
- YTransformation: (y: number, axis: AxisIdentifier | number) => number;
16
- UpdateFlag: number;
17
- XInverseTransformation: (p: number) => number;
18
- YInverseTransformation: (p: number, axis: AxisIdentifier | number) => number;
19
- SetXDomain: React.SetStateAction<[number, number]> | ((t: [number, number]) => void);
20
- SetYDomain: React.SetStateAction<[number, number]> | ((t: [number, number][]) => void);
21
- }
22
- export declare const GraphContext: React.Context<IGraphContext>;
23
- export interface IDataSeries {
24
- getMin: (tDomain: [number, number]) => number | undefined;
25
- getMax: (tDomain: [number, number]) => number | undefined;
26
- getPoints: (xValue: number, pointsAround?: number) => [...number[]][] | undefined;
27
- enabled: boolean;
28
- axis: AxisIdentifier | undefined;
29
- legend?: React.ReactElement;
30
- }
31
- export declare type LineStyle = '-' | ':' | 'solid' | 'dash' | 'short-dash' | 'long-dash';
32
- export declare const LineMap: Map<LineStyle, string>;
33
- export declare type FillStyle = 'fill';
34
- export declare type AxisIdentifier = 'left' | 'right';
35
- export declare type SelectType = 'zoom-rectangular' | 'zoom-vertical' | 'zoom-horizontal' | 'pan' | 'select';
36
- declare class AxisMapClass<T, U> {
37
- private mapBase;
38
- private undefinedOverride;
39
- size: number;
40
- constructor(iterable: Iterable<[T, U]>, undefinedOverride: U);
41
- get: (key: T) => U;
42
- values: () => IterableIterator<U>;
43
- keys: () => IterableIterator<T>;
44
- }
45
- export declare const AxisMap: AxisMapClass<AxisIdentifier | undefined, number>;
46
- export interface IHandlers {
47
- onClick?: (x: number, y: number) => void;
48
- onRelease?: (x: number, y: number) => void;
49
- onPlotLeave?: (x: number, y: number) => void;
50
- onMove?: (x: number, y: number) => void;
51
- axis: number | AxisIdentifier;
52
- allowSnapping: boolean;
53
- }
54
- export interface IDataRegistration {
55
- AddData: ((d: IDataSeries) => string);
56
- RemoveData: (key: string) => void;
57
- UpdateData: (key: string, d: IDataSeries) => void;
58
- SetLegend: (key: string, legend?: React.ReactElement) => void;
59
- }
60
- export interface IHandlerRegistration {
61
- RegisterSelect: (handlers: IHandlers) => string;
62
- RemoveSelect: (key: string) => void;
63
- UpdateSelect: (key: string, handlers: IHandlers) => void;
64
- }
65
- export interface IActionFunctions {
66
- setTDomain: React.SetStateAction<[number, number]>;
67
- setYDomain: React.SetStateAction<[number, number][]>;
68
- }
69
- interface IContextWrapperProps extends IHandlerRegistration, IDataRegistration {
70
- XDomain: [number, number];
71
- MousePosition: [number, number];
72
- MousePositionSnap: [number, number];
73
- YDomain: [number, number][];
74
- CurrentMode: SelectType;
75
- MouseIn: boolean;
76
- UpdateFlag: number;
77
- Data: React.MutableRefObject<Map<string, IDataSeries>>;
78
- DataGuid: string;
79
- XApplyPixelOffset: (_: number) => number;
80
- YApplyPixelOffset: (_: number) => number;
81
- XTransform: (x: number) => number;
82
- YTransform: (y: number, axis: AxisIdentifier | number) => number;
83
- XInvTransform: (p: number) => number;
84
- YInvTransform: (p: number, axis: AxisIdentifier | number) => number;
85
- SetXDomain: (x: [number, number]) => void;
86
- SetYDomain: (y: [number, number][]) => void;
87
- }
88
- export declare const ContextWrapper: React.FC<IContextWrapperProps>;
89
- export {};
1
+ import * as React from 'react';
2
+ export interface IGraphContext extends IHandlerRegistration, IDataRegistration {
3
+ XDomain: [number, number];
4
+ XHover: number;
5
+ XHoverSnap: number;
6
+ YHover: number[];
7
+ YHoverSnap: number[];
8
+ YDomain: [number, number][];
9
+ CurrentMode: SelectType;
10
+ Data: React.MutableRefObject<Map<string, IDataSeries>>;
11
+ DataGuid: string;
12
+ XApplyPixelOffset: (x: number) => number;
13
+ YApplyPixelOffset: (y: number) => number;
14
+ XTransformation: (x: number) => number;
15
+ YTransformation: (y: number, axis: AxisIdentifier | number) => number;
16
+ UpdateFlag: number;
17
+ XInverseTransformation: (p: number) => number;
18
+ YInverseTransformation: (p: number, axis: AxisIdentifier | number) => number;
19
+ SetXDomain: React.SetStateAction<[number, number]> | ((t: [number, number]) => void);
20
+ SetYDomain: React.SetStateAction<[number, number]> | ((t: [number, number][]) => void);
21
+ }
22
+ export declare const GraphContext: React.Context<IGraphContext>;
23
+ export interface IDataSeries {
24
+ getMin: (tDomain: [number, number]) => number | undefined;
25
+ getMax: (tDomain: [number, number]) => number | undefined;
26
+ getPoints: (xValue: number, pointsAround?: number) => [...number[]][] | undefined;
27
+ enabled: boolean;
28
+ axis: AxisIdentifier | undefined;
29
+ legend?: React.ReactElement;
30
+ }
31
+ export type LineStyle = '-' | ':' | 'solid' | 'dash' | 'short-dash' | 'long-dash';
32
+ export declare const LineMap: Map<LineStyle, string>;
33
+ export type FillStyle = 'fill';
34
+ export type AxisIdentifier = 'left' | 'right';
35
+ export type SelectType = 'zoom-rectangular' | 'zoom-vertical' | 'zoom-horizontal' | 'pan' | 'select';
36
+ declare class AxisMapClass<T, U> {
37
+ private mapBase;
38
+ private undefinedOverride;
39
+ size: number;
40
+ constructor(iterable: Iterable<[T, U]>, undefinedOverride: U);
41
+ get: (key: T) => U;
42
+ values: () => IterableIterator<U>;
43
+ keys: () => IterableIterator<T>;
44
+ }
45
+ export declare const AxisMap: AxisMapClass<AxisIdentifier | undefined, number>;
46
+ export interface IHandlers {
47
+ onClick?: (x: number, y: number) => void;
48
+ onRelease?: (x: number, y: number) => void;
49
+ onPlotLeave?: (x: number, y: number) => void;
50
+ onMove?: (x: number, y: number) => void;
51
+ axis: number | AxisIdentifier;
52
+ allowSnapping: boolean;
53
+ }
54
+ export interface IDataRegistration {
55
+ AddData: ((d: IDataSeries) => string);
56
+ RemoveData: (key: string) => void;
57
+ UpdateData: (key: string, d: IDataSeries) => void;
58
+ SetLegend: (key: string, legend?: React.ReactElement) => void;
59
+ }
60
+ export interface IHandlerRegistration {
61
+ RegisterSelect: (handlers: IHandlers) => string;
62
+ RemoveSelect: (key: string) => void;
63
+ UpdateSelect: (key: string, handlers: IHandlers) => void;
64
+ }
65
+ export interface IActionFunctions {
66
+ setTDomain: React.SetStateAction<[number, number]>;
67
+ setYDomain: React.SetStateAction<[number, number][]>;
68
+ }
69
+ interface IContextWrapperProps extends IHandlerRegistration, IDataRegistration {
70
+ XDomain: [number, number];
71
+ MousePosition: [number, number];
72
+ MousePositionSnap: [number, number];
73
+ YDomain: [number, number][];
74
+ CurrentMode: SelectType;
75
+ MouseIn: boolean;
76
+ UpdateFlag: number;
77
+ Data: React.MutableRefObject<Map<string, IDataSeries>>;
78
+ DataGuid: string;
79
+ XApplyPixelOffset: (_: number) => number;
80
+ YApplyPixelOffset: (_: number) => number;
81
+ XTransform: (x: number) => number;
82
+ YTransform: (y: number, axis: AxisIdentifier | number) => number;
83
+ XInvTransform: (p: number) => number;
84
+ YInvTransform: (p: number, axis: AxisIdentifier | number) => number;
85
+ SetXDomain: (x: [number, number]) => void;
86
+ SetYDomain: (y: [number, number][]) => void;
87
+ }
88
+ export declare const ContextWrapper: React.FC<IContextWrapperProps>;
89
+ export {};