@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.
- package/lib/AggregatingCircles.d.ts +16 -17
- package/lib/AggregatingCircles.js +180 -173
- package/lib/Button.d.ts +7 -7
- package/lib/Button.js +33 -33
- package/lib/Circle.d.ts +19 -20
- package/lib/Circle.js +125 -118
- package/lib/GraphContext.d.ts +89 -89
- package/lib/GraphContext.js +140 -140
- package/lib/HeatLegend.d.ts +10 -11
- package/lib/HeatLegend.js +109 -106
- package/lib/HeatMapChart.d.ts +14 -15
- package/lib/HeatMapChart.js +119 -119
- package/lib/HorizontalMarker.d.ts +13 -14
- package/lib/HorizontalMarker.js +110 -110
- package/lib/Infobox.d.ts +17 -17
- package/lib/Infobox.js +180 -180
- package/lib/InteractiveButtons.d.ts +21 -21
- package/lib/InteractiveButtons.js +218 -218
- package/lib/Legend.d.ts +14 -14
- package/lib/Legend.js +117 -117
- package/lib/LegendContext.d.ts +14 -14
- package/lib/LegendContext.js +34 -34
- package/lib/Line.d.ts +14 -15
- package/lib/Line.js +144 -144
- package/lib/LineLegend.d.ts +11 -12
- package/lib/LineLegend.js +97 -97
- package/lib/LineWithThreshold.d.ts +12 -13
- package/lib/LineWithThreshold.js +144 -144
- package/lib/LogAxis.d.ts +20 -20
- package/lib/LogAxis.js +165 -165
- package/lib/Plot.d.ts +38 -37
- package/lib/Plot.js +802 -802
- package/lib/PointNode.d.ts +31 -31
- package/lib/PointNode.js +254 -254
- package/lib/SymbolicMarker.d.ts +17 -17
- package/lib/SymbolicMarker.js +119 -119
- package/lib/TimeAxis.d.ts +18 -18
- package/lib/TimeAxis.js +433 -433
- package/lib/ValueAxis.d.ts +21 -21
- package/lib/ValueAxis.js +196 -192
- package/lib/VerticalMarker.d.ts +14 -15
- package/lib/VerticalMarker.js +111 -111
- package/lib/index.d.ts +13 -13
- package/lib/index.js +27 -27
- 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 =
|
|
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
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
return React.createElement(
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
|
|
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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
|
package/lib/GraphContext.d.ts
CHANGED
|
@@ -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
|
|
32
|
-
export declare const LineMap: Map<LineStyle, string>;
|
|
33
|
-
export
|
|
34
|
-
export
|
|
35
|
-
export
|
|
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 {};
|