@gpa-gemstone/react-graph 1.0.63 → 1.0.65
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/Line.d.ts +7 -1
- package/lib/Line.js +33 -31
- package/lib/Plot.js +3 -2
- package/lib/PointNode.d.ts +100 -6
- package/lib/PointNode.js +296 -52
- package/lib/StreamingLine.d.ts +8 -0
- package/lib/StreamingLine.js +65 -0
- package/lib/index.d.ts +3 -1
- package/lib/index.js +6 -2
- package/package.json +2 -2
package/lib/Line.d.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
1
2
|
import { LineStyle, AxisIdentifier } from './GraphContext';
|
|
3
|
+
import { PointNode } from './PointNode';
|
|
4
|
+
export interface IInteralProps extends IProps {
|
|
5
|
+
reRender?: number;
|
|
6
|
+
}
|
|
2
7
|
export interface IProps {
|
|
3
8
|
showPoints?: boolean;
|
|
4
9
|
autoShowPoints?: boolean;
|
|
@@ -10,5 +15,6 @@ export interface IProps {
|
|
|
10
15
|
width?: number;
|
|
11
16
|
axis?: AxisIdentifier;
|
|
12
17
|
}
|
|
13
|
-
declare
|
|
18
|
+
export declare const InternalLine: React.ForwardRefExoticComponent<IInteralProps & React.RefAttributes<PointNode | null>>;
|
|
19
|
+
declare const Line: (props: IProps) => JSX.Element;
|
|
14
20
|
export default Line;
|
package/lib/Line.js
CHANGED
|
@@ -21,6 +21,17 @@
|
|
|
21
21
|
// Generated original version of source code.
|
|
22
22
|
//
|
|
23
23
|
// ******************************************************************************************************
|
|
24
|
+
var __assign = (this && this.__assign) || function () {
|
|
25
|
+
__assign = Object.assign || function(t) {
|
|
26
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
27
|
+
s = arguments[i];
|
|
28
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
29
|
+
t[p] = s[p];
|
|
30
|
+
}
|
|
31
|
+
return t;
|
|
32
|
+
};
|
|
33
|
+
return __assign.apply(this, arguments);
|
|
34
|
+
};
|
|
24
35
|
var __read = (this && this.__read) || function (o, n) {
|
|
25
36
|
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
26
37
|
if (!m) return o;
|
|
@@ -38,26 +49,25 @@ var __read = (this && this.__read) || function (o, n) {
|
|
|
38
49
|
return ar;
|
|
39
50
|
};
|
|
40
51
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
52
|
+
exports.InternalLine = void 0;
|
|
41
53
|
var React = require("react");
|
|
42
54
|
var GraphContext_1 = require("./GraphContext");
|
|
43
55
|
var moment = require("moment");
|
|
44
56
|
var PointNode_1 = require("./PointNode");
|
|
45
57
|
var LineLegend_1 = require("./LineLegend");
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
var _a;
|
|
58
|
+
exports.InternalLine = React.forwardRef(function (props, ref) {
|
|
59
|
+
var _a, _b;
|
|
49
60
|
/*
|
|
50
61
|
Single Line with ability to turn off and on.
|
|
51
62
|
*/
|
|
52
|
-
var
|
|
53
|
-
var _c = __read(React.useState(""), 2), dataGuid = _c[0], setDataGuid = _c[1];
|
|
63
|
+
var _c = __read(React.useState(""), 2), guid = _c[0], setGuid = _c[1];
|
|
54
64
|
var _d = __read(React.useState([NaN, NaN]), 2), highlight = _d[0], setHighlight = _d[1];
|
|
55
65
|
var _e = __read(React.useState(true), 2), enabled = _e[0], setEnabled = _e[1];
|
|
56
66
|
var _f = __read(React.useState(null), 2), data = _f[0], setData = _f[1];
|
|
57
|
-
var _g = __read(React.useState([]), 2), visibleData = _g[0], setVisibleData = _g[1];
|
|
58
67
|
var context = React.useContext(GraphContext_1.GraphContext);
|
|
59
|
-
var showPoints = React.useMemo(function () { return (props.showPoints !==
|
|
60
|
-
|
|
68
|
+
var showPoints = React.useMemo(function () { var _a, _b, _c; return ((_a = props.showPoints) !== null && _a !== void 0 ? _a : false) || (((_b = props.autoShowPoints) !== null && _b !== void 0 ? _b : true) && ((_c = data === null || data === void 0 ? void 0 : data.GetCount(context.XDomain[0], context.XDomain[1])) !== null && _c !== void 0 ? _c : 1000) <= 100); }, [props.showPoints, props.autoShowPoints, data, context.XDomain]);
|
|
69
|
+
var points = (_a = data === null || data === void 0 ? void 0 : data.GetData(context.XDomain[0], context.XDomain[1], true)) !== null && _a !== void 0 ? _a : [];
|
|
70
|
+
React.useImperativeHandle(ref, function () { return data; }, [data]);
|
|
61
71
|
var createLegend = React.useCallback(function () {
|
|
62
72
|
var _a;
|
|
63
73
|
if (props.legend === undefined)
|
|
@@ -76,15 +86,12 @@ function Line(props) {
|
|
|
76
86
|
getMin: function (t) { return (data == null || !enabled ? Infinity : data.GetLimits(t[0], t[1])[0]); },
|
|
77
87
|
getPoints: function (t, n) { return (data == null || !enabled ? NaN : data.GetPoints(t, n !== null && n !== void 0 ? n : 1)); }
|
|
78
88
|
};
|
|
79
|
-
}, [props.axis, enabled,
|
|
89
|
+
}, [props.axis, enabled, data, createLegend, props.reRender]);
|
|
80
90
|
React.useEffect(function () {
|
|
81
91
|
if (guid === "")
|
|
82
92
|
return;
|
|
83
93
|
context.UpdateData(guid, createContextData());
|
|
84
94
|
}, [createContextData]);
|
|
85
|
-
React.useEffect(function () {
|
|
86
|
-
setDataGuid((0, helper_functions_1.CreateGuid)());
|
|
87
|
-
}, [data]);
|
|
88
95
|
React.useEffect(function () {
|
|
89
96
|
if (data == null || props.data == null || props.data.length === 0 || isNaN(context.XHover))
|
|
90
97
|
setHighlight([NaN, NaN]);
|
|
@@ -100,7 +107,7 @@ function Line(props) {
|
|
|
100
107
|
}
|
|
101
108
|
}, [data, context.XHover]);
|
|
102
109
|
React.useEffect(function () {
|
|
103
|
-
if (props.data == null
|
|
110
|
+
if (props.data == null)
|
|
104
111
|
setData(null);
|
|
105
112
|
else
|
|
106
113
|
setData(new PointNode_1.PointNode(props.data));
|
|
@@ -110,35 +117,30 @@ function Line(props) {
|
|
|
110
117
|
return;
|
|
111
118
|
context.SetLegend(guid, createLegend());
|
|
112
119
|
}, [highlight, enabled]);
|
|
113
|
-
React.useEffect(function () {
|
|
114
|
-
if (data == null) {
|
|
115
|
-
setVisibleData([]);
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
setVisibleData(data.GetData(context.XDomain[0], context.XDomain[1], true));
|
|
119
|
-
}, [data, context.XDomain[0], context.XDomain[1]]);
|
|
120
120
|
React.useEffect(function () {
|
|
121
121
|
var id = context.AddData(createContextData());
|
|
122
122
|
setGuid(id);
|
|
123
123
|
return function () { context.RemoveData(id); };
|
|
124
124
|
}, []);
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
if (data == null)
|
|
125
|
+
var generateData = React.useCallback(function (pointsToDraw) {
|
|
126
|
+
if (pointsToDraw.length === 0)
|
|
128
127
|
return "";
|
|
129
|
-
result =
|
|
128
|
+
var result = "M ";
|
|
129
|
+
result = result + pointsToDraw.map(function (pt, _) {
|
|
130
130
|
var x = context.XTransformation(pt[0]);
|
|
131
131
|
var y = context.YTransformation(pt[1], GraphContext_1.AxisMap.get(props.axis));
|
|
132
132
|
return "".concat(x, ",").concat(y);
|
|
133
133
|
}).join(" L ");
|
|
134
134
|
return result;
|
|
135
|
-
}
|
|
135
|
+
}, [context.XTransformation, context.YTransformation, props.axis]);
|
|
136
136
|
return (enabled ?
|
|
137
137
|
React.createElement("g", null,
|
|
138
|
-
React.createElement("path", { d: generateData(), style: { fill: 'none', strokeWidth: props.width === undefined ? 3 : props.width, stroke: props.color }, strokeDasharray: GraphContext_1.LineMap.get(props.lineStyle) }),
|
|
139
|
-
showPoints && data != null ?
|
|
140
|
-
((
|
|
141
|
-
React.createElement("circle", { r: 5, cx: context.XTransformation(highlight[0]), cy: context.YTransformation(highlight[1], GraphContext_1.AxisMap.get(props.axis)), fill: props.color, stroke: 'currentColor', style: { opacity: 0.8 /*, transition: 'cx 0.5s,cy 0.5s'*/ } })
|
|
142
|
-
|
|
138
|
+
React.createElement("path", { d: generateData(points), style: { fill: 'none', strokeWidth: props.width === undefined ? 3 : props.width, stroke: props.color }, strokeDasharray: GraphContext_1.LineMap.get(props.lineStyle) }),
|
|
139
|
+
showPoints && data != null ? points.map(function (pt, i) { return React.createElement("circle", { key: i, r: 3, cx: context.XTransformation(pt[0]), cy: context.YTransformation(pt[1], GraphContext_1.AxisMap.get(props.axis)), fill: props.color, stroke: 'currentColor', style: { opacity: 0.8 /*, transition: 'cx 0.5s,cy 0.5s'*/ } }); }) : null,
|
|
140
|
+
((_b = props.highlightHover) !== null && _b !== void 0 ? _b : false) && !isNaN(highlight[0]) && !isNaN(highlight[1]) ?
|
|
141
|
+
React.createElement("circle", { r: 5, cx: context.XTransformation(highlight[0]), cy: context.YTransformation(highlight[1], GraphContext_1.AxisMap.get(props.axis)), fill: props.color, stroke: 'currentColor', style: { opacity: 0.8 /*, transition: 'cx 0.5s,cy 0.5s'*/ } })
|
|
142
|
+
: null) : null);
|
|
143
|
+
});
|
|
144
|
+
var Line = function (props) { return React.createElement(exports.InternalLine, __assign({}, props)); };
|
|
143
145
|
exports.default = Line;
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9MaW5lLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEseUdBQXlHO0FBQ3pHLG1CQUFtQjtBQUNuQixFQUFFO0FBQ0YscUVBQXFFO0FBQ3JFLEVBQUU7QUFDRix3R0FBd0c7QUFDeEcsd0dBQXdHO0FBQ3hHLHNHQUFzRztBQUN0Ryx3RkFBd0Y7QUFDeEYsRUFBRTtBQUNGLDBDQUEwQztBQUMxQyxFQUFFO0FBQ0Ysd0dBQXdHO0FBQ3hHLHdHQUF3RztBQUN4Ryw0RUFBNEU7QUFDNUUsRUFBRTtBQUNGLDhCQUE4QjtBQUM5Qix3R0FBd0c7QUFDeEcsMEJBQTBCO0FBQzFCLG1EQUFtRDtBQUNuRCxFQUFFO0FBQ0YseUdBQXlHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFekcsNkJBQStCO0FBQy9CLCtDQUF3RztBQUN4RywrQkFBaUM7QUFDakMseUNBQXdDO0FBQ3hDLDJDQUFzQztBQWtCekIsUUFBQSxZQUFZLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBa0MsVUFBQyxLQUFLLEVBQUUsR0FBRzs7SUFDckY7O01BRUU7SUFDSSxJQUFBLEtBQUEsT0FBa0IsS0FBSyxDQUFDLFFBQVEsQ0FBUyxFQUFFLENBQUMsSUFBQSxFQUEzQyxJQUFJLFFBQUEsRUFBRSxPQUFPLFFBQThCLENBQUM7SUFDN0MsSUFBQSxLQUFBLE9BQTRCLEtBQUssQ0FBQyxRQUFRLENBQW1CLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUEsRUFBdkUsU0FBUyxRQUFBLEVBQUUsWUFBWSxRQUFnRCxDQUFDO0lBQ3pFLElBQUEsS0FBQSxPQUF3QixLQUFLLENBQUMsUUFBUSxDQUFVLElBQUksQ0FBQyxJQUFBLEVBQXBELE9BQU8sUUFBQSxFQUFFLFVBQVUsUUFBaUMsQ0FBQztJQUN0RCxJQUFBLEtBQUEsT0FBa0IsS0FBSyxDQUFDLFFBQVEsQ0FBbUIsSUFBSSxDQUFDLElBQUEsRUFB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
|
package/lib/Plot.js
CHANGED
|
@@ -82,6 +82,7 @@ var HeatMapChart_1 = require("./HeatMapChart");
|
|
|
82
82
|
var _html2canvas = require("html2canvas");
|
|
83
83
|
var HighlightBox_1 = require("./HighlightBox");
|
|
84
84
|
var XValueAxis_1 = require("./XValueAxis");
|
|
85
|
+
var StreamingLine_1 = require("./StreamingLine");
|
|
85
86
|
var html2canvas = _html2canvas;
|
|
86
87
|
var SvgStyle = {
|
|
87
88
|
fill: 'none',
|
|
@@ -780,7 +781,7 @@ var Plot = function (props) {
|
|
|
780
781
|
if (element.type === Line_1.default || element.type === LineWithThreshold_1.default || element.type === Infobox_1.default ||
|
|
781
782
|
element.type === HorizontalMarker_1.default || element.type === VerticalMarker_1.default || element.type === SymbolicMarker_1.default
|
|
782
783
|
|| element.type === Circle_1.default || element.type === AggregatingCircles_1.default || element.type === HeatMapChart_1.default ||
|
|
783
|
-
element.type === Oval_1.default || element.type === HighlightBox_1.default)
|
|
784
|
+
element.type === Oval_1.default || element.type === HighlightBox_1.default || element.type === StreamingLine_1.default)
|
|
784
785
|
return element;
|
|
785
786
|
return null;
|
|
786
787
|
}),
|
|
@@ -805,4 +806,4 @@ var Plot = function (props) {
|
|
|
805
806
|
: null)));
|
|
806
807
|
};
|
|
807
808
|
exports.default = Plot;
|
|
808
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGxvdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9QbG90LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEseUdBQXlHO0FBQ3pHLG1CQUFtQjtBQUNuQixFQUFFO0FBQ0YscUVBQXFFO0FBQ3JFLEVBQUU7QUFDRix3R0FBd0c7QUFDeEcsd0dBQXdHO0FBQ3hHLHNHQUFzRztBQUN0Ryx3RkFBd0Y7QUFDeEYsRUFBRTtBQUNGLDBDQUEwQztBQUMxQyxFQUFFO0FBQ0Ysd0dBQXdHO0FBQ3hHLHdHQUF3RztBQUN4Ryw0RUFBNEU7QUFDNUUsRUFBRTtBQUNGLDhCQUE4QjtBQUM5Qix3R0FBd0c7QUFDeEcsMEJBQTBCO0FBQzFCLG1EQUFtRDtBQUNuRCxFQUFFO0FBQ0YseUdBQXlHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUd6Ryw2QkFBK0I7QUFDL0IsMEJBQTRCO0FBQzVCLDJEQUFzRDtBQUN0RCwrQ0FBNkg7QUFDN0gsbUVBQTBEO0FBQzFELGlDQUErQjtBQUMvQix1Q0FBa0M7QUFDbEMscUNBQWdDO0FBQ2hDLDJDQUFzQztBQUN0QyxtQ0FBOEI7QUFDOUIseURBQW9EO0FBQ3BELCtCQUEwQjtBQUMxQixtQ0FBOEI7QUFDOUIsdURBQWtEO0FBQ2xELG1EQUE4QztBQUM5QyxtREFBOEM7QUFDOUMsbUNBQThCO0FBQzlCLCtCQUF5QjtBQUN6QiwyREFBc0Q7QUFDdEQscUNBQWdDO0FBQ2hDLCtDQUEwQztBQUMxQywwQ0FBNEM7QUFDNUMsK0NBQTBDO0FBQzFDLDJDQUFzQztBQUN0QyxJQUFNLFdBQVcsR0FBUSxZQUFZLENBQUM7QUEyQ3RDLElBQU0sUUFBUSxHQUF3QjtJQUNsQyxJQUFJLEVBQUUsTUFBTTtJQUNaLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLGtCQUFrQixFQUFFLE1BQU07SUFDMUIsZ0JBQWdCLEVBQUUsTUFBTTtJQUN4QixlQUFlLEVBQUUsTUFBTTtJQUN2QixhQUFhLEVBQUUsTUFBTTtJ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
|
|
809
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGxvdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9QbG90LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEseUdBQXlHO0FBQ3pHLG1CQUFtQjtBQUNuQixFQUFFO0FBQ0YscUVBQXFFO0FBQ3JFLEVBQUU7QUFDRix3R0FBd0c7QUFDeEcsd0dBQXdHO0FBQ3hHLHNHQUFzRztBQUN0Ryx3RkFBd0Y7QUFDeEYsRUFBRTtBQUNGLDBDQUEwQztBQUMxQyxFQUFFO0FBQ0Ysd0dBQXdHO0FBQ3hHLHdHQUF3RztBQUN4Ryw0RUFBNEU7QUFDNUUsRUFBRTtBQUNGLDhCQUE4QjtBQUM5Qix3R0FBd0c7QUFDeEcsMEJBQTBCO0FBQzFCLG1EQUFtRDtBQUNuRCxFQUFFO0FBQ0YseUdBQXlHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUd6Ryw2QkFBK0I7QUFDL0IsMEJBQTRCO0FBQzVCLDJEQUFzRDtBQUN0RCwrQ0FBNkg7QUFDN0gsbUVBQTBEO0FBQzFELGlDQUErQjtBQUMvQix1Q0FBa0M7QUFDbEMscUNBQWdDO0FBQ2hDLDJDQUFzQztBQUN0QyxtQ0FBOEI7QUFDOUIseURBQW9EO0FBQ3BELCtCQUEwQjtBQUMxQixtQ0FBOEI7QUFDOUIsdURBQWtEO0FBQ2xELG1EQUE4QztBQUM5QyxtREFBOEM7QUFDOUMsbUNBQThCO0FBQzlCLCtCQUF5QjtBQUN6QiwyREFBc0Q7QUFDdEQscUNBQWdDO0FBQ2hDLCtDQUEwQztBQUMxQywwQ0FBNEM7QUFDNUMsK0NBQTBDO0FBQzFDLDJDQUFzQztBQUN0QyxpREFBNEM7QUFDNUMsSUFBTSxXQUFXLEdBQVEsWUFBWSxDQUFDO0FBMkN0QyxJQUFNLFFBQVEsR0FBd0I7SUFDbEMsSUFBSSxFQUFFLE1BQU07SUFDWixVQUFVLEVBQUUsTUFBTTtJQUNsQixrQkFBa0IsRUFBRSxNQUFNO0lBQzFCLGdCQUFnQixFQUFFLE1BQU07SUFDeEIsZUFBZSxFQUFFLE1BQU07SUFDdkIsYUFB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
|
package/lib/PointNode.d.ts
CHANGED
|
@@ -7,25 +7,119 @@ export declare class PointNode {
|
|
|
7
7
|
maxT: number;
|
|
8
8
|
minV: number[];
|
|
9
9
|
maxV: number[];
|
|
10
|
-
|
|
10
|
+
sum: number[];
|
|
11
|
+
count: number;
|
|
11
12
|
dim: number;
|
|
12
13
|
private children;
|
|
13
14
|
private points;
|
|
14
|
-
constructor(data
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
constructor(data?: number[][]);
|
|
16
|
+
static createNodeWithDesiredTreeSize(data: number[], desiredTreeSize: number): PointNode;
|
|
17
|
+
static CreateCopy(oldNode: PointNode): PointNode;
|
|
18
|
+
/**
|
|
19
|
+
* Initializes the node with the provided data points.
|
|
20
|
+
* Handles setting points or splitting into children based on the MaxPoints threshold.
|
|
21
|
+
* @param data An array of points to initialize the node with.
|
|
22
|
+
*/
|
|
23
|
+
private initializeNode;
|
|
24
|
+
/**
|
|
25
|
+
* Adds one set of points to the tree.
|
|
26
|
+
*
|
|
27
|
+
* @param newPoints points to add, one array of size dim
|
|
28
|
+
*/
|
|
29
|
+
AddPoints(newPoints: number[]): void;
|
|
30
|
+
/**
|
|
31
|
+
* Adds one set of points to the tree.
|
|
32
|
+
*
|
|
33
|
+
* @param newPoints points to add, one array of size dim
|
|
34
|
+
* @returns Success of add operation
|
|
35
|
+
*/
|
|
36
|
+
private TryAddPoints;
|
|
37
|
+
/**
|
|
38
|
+
* Splits the given data points into child nodes based on the MaxPoints threshold.
|
|
39
|
+
* @param data An array of sorted points to split into child nodes.
|
|
40
|
+
*/
|
|
41
|
+
private static splitPoints;
|
|
42
|
+
/**
|
|
43
|
+
* Updates the statistical properties of the node based on its current points or children.
|
|
44
|
+
*/
|
|
45
|
+
private RecalculateStats;
|
|
46
|
+
/**
|
|
47
|
+
* Updates statistics based on the current points.
|
|
48
|
+
*/
|
|
49
|
+
private CalculatePointStats;
|
|
50
|
+
/**
|
|
51
|
+
* Updates statistics based on the current children.
|
|
52
|
+
*/
|
|
53
|
+
private AggregateChildStats;
|
|
54
|
+
/**
|
|
55
|
+
* Updates aggregated statistics for this node to include a newly added child node.
|
|
56
|
+
*
|
|
57
|
+
* @param {PointNode} newChild - The new child node whose statistics will be merged into this node.
|
|
58
|
+
*/
|
|
59
|
+
private IncrementStatsForNewChild;
|
|
60
|
+
/**
|
|
61
|
+
* Updates aggregated statistics for this node to include a newly added point.
|
|
62
|
+
*
|
|
63
|
+
* @param {number[]} newPt - The new point
|
|
64
|
+
*/
|
|
65
|
+
private IncrementStatsForNewPoint;
|
|
66
|
+
/**
|
|
67
|
+
* Retrieves data points within a specified time range.
|
|
68
|
+
* @param Tstart Start time of the timerange to be looked at.
|
|
69
|
+
* @param Tend End time of the timerange to be looked at.
|
|
70
|
+
* @param IncludeEdges Optional parameter to include edge points.
|
|
71
|
+
* @returns An array of points within the specified time range.
|
|
72
|
+
*/
|
|
73
|
+
GetData(Tstart: number, Tend: number, IncludeEdges?: boolean): number[][];
|
|
74
|
+
/**
|
|
75
|
+
* Retrieves all data points stored in the PointNode tree.
|
|
76
|
+
* @returns An array of all points in the tre.
|
|
77
|
+
*/
|
|
78
|
+
GetFullData(): number[][];
|
|
79
|
+
/**
|
|
80
|
+
* Retrieves the count of data points within a specified time range.
|
|
81
|
+
* @param Tstart Start time of the timerange to be looked at.
|
|
82
|
+
* @param Tend End time of the timerange to be looked at.
|
|
83
|
+
* @returns The number of points within the specified time range.
|
|
84
|
+
*/
|
|
85
|
+
GetCount(Tstart: number, Tend: number): number;
|
|
86
|
+
/**
|
|
87
|
+
* Get Limits for all dimensions
|
|
88
|
+
* @param Tstart start time of the timerange to be looked at
|
|
89
|
+
* @param Tend end time of the timerange to be looked at
|
|
90
|
+
* @returns The min and max value of the data in the given timerange
|
|
91
|
+
*/
|
|
17
92
|
GetAllLimits(Tstart: number, Tend: number): [number, number][];
|
|
93
|
+
/**
|
|
94
|
+
* Retrieves the limits of the data in the given timerange
|
|
95
|
+
* @param Tstart start time of the timerange to be looked at
|
|
96
|
+
* @param Tend end time of the timerange to be looked at
|
|
97
|
+
* @param dimension dimension of the data to be retrieved (x,y,z) to get y use 0
|
|
98
|
+
* @returns The min and max value of the data in the given timerange
|
|
99
|
+
*/
|
|
18
100
|
GetLimits(Tstart: number, Tend: number, dimension?: number): [number, number];
|
|
19
101
|
/**
|
|
20
102
|
* Retrieves a point from the PointNode tree
|
|
21
103
|
* @param {number} tVal - The time value of the point to retrieve from the tree.
|
|
22
104
|
*/
|
|
23
|
-
GetPoint(tVal: number):
|
|
105
|
+
GetPoint(tVal: number): number[];
|
|
24
106
|
/**
|
|
25
107
|
* Retrieves a specified number of points from the PointNode tree, centered around a point
|
|
26
108
|
* @param {number} tVal - The time value of the center point of the point retrieval.
|
|
27
109
|
* @param {number} pointsRetrieved - The number of points to retrieve
|
|
28
110
|
*/
|
|
29
|
-
GetPoints(tVal: number, pointsRetrieved?: number):
|
|
111
|
+
GetPoints(tVal: number, pointsRetrieved?: number): number[][];
|
|
112
|
+
/**
|
|
113
|
+
* Implements a binary search to locate points within the PointNode tree or across neighboring nodes based on the timestamp.
|
|
114
|
+
* @param tVal The time value to search for.
|
|
115
|
+
* @param pointsRetrieved The number of points to retrieve.
|
|
116
|
+
* @param nodeLowerNeighbor Optional lower neighboring node for spillover.
|
|
117
|
+
* @param nodeUpperNeighbor Optional upper neighboring node for spillover.
|
|
118
|
+
* @returns An array of points matching the search criteria.
|
|
119
|
+
*/
|
|
30
120
|
private PointBinarySearch;
|
|
121
|
+
/**
|
|
122
|
+
* Returns the size of the Tree below this PointNode
|
|
123
|
+
*/
|
|
124
|
+
GetTreeSize(): number;
|
|
31
125
|
}
|
package/lib/PointNode.js
CHANGED
|
@@ -56,60 +56,241 @@ var MaxPoints = 20;
|
|
|
56
56
|
var PointNode = /** @class */ (function () {
|
|
57
57
|
function PointNode(data) {
|
|
58
58
|
var _this = this;
|
|
59
|
-
this
|
|
60
|
-
|
|
61
|
-
this.
|
|
62
|
-
// The maximum time stamp that might fit in this bucket
|
|
63
|
-
this.maxT = data[data.length - 1][0];
|
|
59
|
+
// The minimum/maximum time stamp that fits in this node
|
|
60
|
+
this.minT = NaN;
|
|
61
|
+
this.maxT = NaN;
|
|
64
62
|
// Intializing other vars
|
|
65
|
-
this.
|
|
66
|
-
this.
|
|
67
|
-
this.
|
|
63
|
+
this.sum = [NaN];
|
|
64
|
+
this.count = NaN;
|
|
65
|
+
this.minV = [NaN];
|
|
66
|
+
this.maxV = [NaN];
|
|
68
67
|
this.children = null;
|
|
69
68
|
this.points = null;
|
|
69
|
+
this.dim = NaN;
|
|
70
|
+
if (data === undefined)
|
|
71
|
+
return;
|
|
72
|
+
this.dim = data.length === 0 ? NaN : data[0].length;
|
|
73
|
+
if (data.length !== 0 && data.some(function (point) { return point.length !== _this.dim; }))
|
|
74
|
+
throw new TypeError("Jagged data passed to PointNode. All points should all be ".concat(this.dim, " dimensions."));
|
|
75
|
+
// Initialize normally
|
|
76
|
+
this.initializeNode(data);
|
|
77
|
+
}
|
|
78
|
+
PointNode.createNodeWithDesiredTreeSize = function (data, desiredTreeSize) {
|
|
79
|
+
var node = new PointNode();
|
|
80
|
+
node.dim = data.length;
|
|
81
|
+
node.minT = data[0];
|
|
82
|
+
node.maxT = data[0];
|
|
83
|
+
node.count = 1;
|
|
84
|
+
node.sum = data.filter(function (_, i) { return i != 0; });
|
|
85
|
+
node.minV = data.filter(function (_, i) { return i != 0; });
|
|
86
|
+
node.maxV = data.filter(function (_, i) { return i != 0; });
|
|
87
|
+
if (desiredTreeSize === 1)
|
|
88
|
+
node.points = [data];
|
|
89
|
+
else
|
|
90
|
+
node.children = [PointNode.createNodeWithDesiredTreeSize(data, desiredTreeSize - 1)];
|
|
91
|
+
return node;
|
|
92
|
+
};
|
|
93
|
+
PointNode.CreateCopy = function (oldNode) {
|
|
94
|
+
var node = new PointNode();
|
|
95
|
+
node.dim = oldNode.dim;
|
|
96
|
+
node.minT = oldNode.minT;
|
|
97
|
+
node.maxT = oldNode.maxT;
|
|
98
|
+
node.minV = __spreadArray([], __read(oldNode.minV), false);
|
|
99
|
+
node.maxV = __spreadArray([], __read(oldNode.maxV), false);
|
|
100
|
+
node.sum = __spreadArray([], __read(oldNode.sum), false);
|
|
101
|
+
node.count = oldNode.count;
|
|
102
|
+
node.children = oldNode.children != null ? __spreadArray([], __read(oldNode.children), false) : null;
|
|
103
|
+
node.points = oldNode.points != null ? __spreadArray([], __read(oldNode.points), false) : null;
|
|
104
|
+
return node;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Initializes the node with the provided data points.
|
|
108
|
+
* Handles setting points or splitting into children based on the MaxPoints threshold.
|
|
109
|
+
* @param data An array of points to initialize the node with.
|
|
110
|
+
*/
|
|
111
|
+
PointNode.prototype.initializeNode = function (data) {
|
|
70
112
|
if (data.length <= MaxPoints) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
113
|
+
this.points = __spreadArray([], __read(data), false);
|
|
114
|
+
this.children = null;
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
// Split into children
|
|
118
|
+
this.children = PointNode.splitPoints(data);
|
|
119
|
+
}
|
|
120
|
+
this.RecalculateStats();
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* Adds one set of points to the tree.
|
|
124
|
+
*
|
|
125
|
+
* @param newPoints points to add, one array of size dim
|
|
126
|
+
*/
|
|
127
|
+
PointNode.prototype.AddPoints = function (newPoints) {
|
|
128
|
+
if (Number.isNaN(this.dim))
|
|
129
|
+
this.dim = newPoints.length;
|
|
130
|
+
if (newPoints.length === 0)
|
|
131
|
+
throw new Error('No point to add');
|
|
132
|
+
if (newPoints.length !== this.dim)
|
|
133
|
+
throw new TypeError("Jagged data passed to PointNode.Add(). Points should be ".concat(this.dim, " dimension."));
|
|
134
|
+
if (this.TryAddPoints(newPoints))
|
|
88
135
|
return;
|
|
136
|
+
var copiedNode = PointNode.CreateCopy(this);
|
|
137
|
+
this.children = [copiedNode, PointNode.createNodeWithDesiredTreeSize(newPoints, this.GetTreeSize())];
|
|
138
|
+
this.points = null;
|
|
139
|
+
this.RecalculateStats();
|
|
140
|
+
};
|
|
141
|
+
/**
|
|
142
|
+
* Adds one set of points to the tree.
|
|
143
|
+
*
|
|
144
|
+
* @param newPoints points to add, one array of size dim
|
|
145
|
+
* @returns Success of add operation
|
|
146
|
+
*/
|
|
147
|
+
PointNode.prototype.TryAddPoints = function (newPoints) {
|
|
148
|
+
//Step 1 find tree size
|
|
149
|
+
var treeSize = this.GetTreeSize();
|
|
150
|
+
// Step 2: If TreeSize > 1, find the right-most child and call TryAddPoints recursively
|
|
151
|
+
if (treeSize > 1) {
|
|
152
|
+
if (this.children !== null) {
|
|
153
|
+
var rightMostChild = this.children[this.children.length - 1];
|
|
154
|
+
var result = rightMostChild.TryAddPoints(newPoints);
|
|
155
|
+
// Step 2a: If adding to the right-most child failed, check for node space and create a new child if possible
|
|
156
|
+
if (!result && this.children.length < MaxPoints) {
|
|
157
|
+
var newChild = PointNode.createNodeWithDesiredTreeSize(__spreadArray([], __read(newPoints), false), treeSize - 1);
|
|
158
|
+
this.children.push(newChild);
|
|
159
|
+
this.IncrementStatsForNewChild(newChild);
|
|
160
|
+
return true;
|
|
161
|
+
}
|
|
162
|
+
//return result of adding to the right-most child
|
|
163
|
+
if (result)
|
|
164
|
+
this.RecalculateStats();
|
|
165
|
+
return result;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
//Step 3: If treesize === 1, check for point space in this node
|
|
169
|
+
if (this.points.length < MaxPoints) {
|
|
170
|
+
this.points.push(newPoints);
|
|
171
|
+
this.IncrementStatsForNewPoint(newPoints);
|
|
172
|
+
return true;
|
|
89
173
|
}
|
|
90
|
-
|
|
91
|
-
|
|
174
|
+
//Step 5: return results
|
|
175
|
+
return false;
|
|
176
|
+
};
|
|
177
|
+
/**
|
|
178
|
+
* Splits the given data points into child nodes based on the MaxPoints threshold.
|
|
179
|
+
* @param data An array of sorted points to split into child nodes.
|
|
180
|
+
*/
|
|
181
|
+
PointNode.splitPoints = function (data) {
|
|
182
|
+
var nLevel = 1;
|
|
183
|
+
while (Math.pow(MaxPoints, nLevel) < data.length) {
|
|
184
|
+
nLevel++;
|
|
185
|
+
}
|
|
186
|
+
var childBlockSize = Math.pow(MaxPoints, nLevel - 1);
|
|
187
|
+
var children = [];
|
|
92
188
|
var index = 0;
|
|
93
|
-
this.children = [];
|
|
94
189
|
while (index < data.length) {
|
|
95
|
-
|
|
96
|
-
index = index +
|
|
190
|
+
children.push(new PointNode(data.slice(index, index + childBlockSize)));
|
|
191
|
+
index = index + childBlockSize;
|
|
192
|
+
}
|
|
193
|
+
return children;
|
|
194
|
+
};
|
|
195
|
+
/**
|
|
196
|
+
* Updates the statistical properties of the node based on its current points or children.
|
|
197
|
+
*/
|
|
198
|
+
PointNode.prototype.RecalculateStats = function () {
|
|
199
|
+
if (this.points !== null) {
|
|
200
|
+
this.CalculatePointStats();
|
|
97
201
|
}
|
|
98
|
-
|
|
99
|
-
|
|
202
|
+
else if (this.children !== null) {
|
|
203
|
+
this.AggregateChildStats();
|
|
204
|
+
}
|
|
205
|
+
};
|
|
206
|
+
/**
|
|
207
|
+
* Updates statistics based on the current points.
|
|
208
|
+
*/
|
|
209
|
+
PointNode.prototype.CalculatePointStats = function () {
|
|
210
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
211
|
+
if (this.points === null || this.points.length === 0)
|
|
212
|
+
return;
|
|
213
|
+
this.count = this.points.length;
|
|
214
|
+
this.minT = (_c = (_b = (_a = this.points) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : NaN;
|
|
215
|
+
this.maxT = (_f = (_e = (_d = this.points) === null || _d === void 0 ? void 0 : _d[this.points.length - 1]) === null || _e === void 0 ? void 0 : _e[0]) !== null && _f !== void 0 ? _f : NaN;
|
|
216
|
+
this.dim = (_j = (_h = (_g = this.points) === null || _g === void 0 ? void 0 : _g[0]) === null || _h === void 0 ? void 0 : _h.length) !== null && _j !== void 0 ? _j : NaN;
|
|
217
|
+
var _loop_1 = function (index) {
|
|
218
|
+
var values = this_1.points.map(function (pt) { return pt[index]; });
|
|
219
|
+
this_1.minV[index - 1] = Math.min.apply(Math, __spreadArray([], __read(values), false));
|
|
220
|
+
this_1.maxV[index - 1] = Math.max.apply(Math, __spreadArray([], __read(values), false));
|
|
221
|
+
this_1.sum[index - 1] = values.reduce(function (acc, val) { return acc + val; }, 0);
|
|
100
222
|
};
|
|
101
|
-
var
|
|
102
|
-
for (var
|
|
103
|
-
|
|
223
|
+
var this_1 = this;
|
|
224
|
+
for (var index = 1; index < this.dim; index++) {
|
|
225
|
+
_loop_1(index);
|
|
104
226
|
}
|
|
105
|
-
|
|
106
|
-
|
|
227
|
+
};
|
|
228
|
+
/**
|
|
229
|
+
* Updates statistics based on the current children.
|
|
230
|
+
*/
|
|
231
|
+
PointNode.prototype.AggregateChildStats = function () {
|
|
232
|
+
if (this.children === null || this.children.length === 0)
|
|
233
|
+
return;
|
|
234
|
+
this.minT = Math.min.apply(Math, __spreadArray([], __read(this.children.map(function (node) { return node.minT; })), false));
|
|
235
|
+
this.maxT = Math.max.apply(Math, __spreadArray([], __read(this.children.map(function (node) { return node.maxT; })), false));
|
|
236
|
+
var _loop_2 = function (index) {
|
|
237
|
+
this_2.minV[index] = Math.min.apply(Math, __spreadArray([], __read(this_2.children.map(function (node) { return node.minV[index]; })), false));
|
|
238
|
+
this_2.maxV[index] = Math.max.apply(Math, __spreadArray([], __read(this_2.children.map(function (node) { return node.maxV[index]; })), false));
|
|
239
|
+
this_2.sum[index] = this_2.children.reduce(function (s, node) { return s + node.sum[index]; }, 0);
|
|
107
240
|
};
|
|
108
|
-
var
|
|
109
|
-
for (var
|
|
110
|
-
|
|
241
|
+
var this_2 = this;
|
|
242
|
+
for (var index = 0; index < this.dim - 1; index++) {
|
|
243
|
+
_loop_2(index);
|
|
111
244
|
}
|
|
112
|
-
|
|
245
|
+
this.count = this.children.reduce(function (acc, node) { return acc + node.count; }, 0);
|
|
246
|
+
};
|
|
247
|
+
/**
|
|
248
|
+
* Updates aggregated statistics for this node to include a newly added child node.
|
|
249
|
+
*
|
|
250
|
+
* @param {PointNode} newChild - The new child node whose statistics will be merged into this node.
|
|
251
|
+
*/
|
|
252
|
+
PointNode.prototype.IncrementStatsForNewChild = function (newChild) {
|
|
253
|
+
// Update the time range
|
|
254
|
+
this.minT = Math.min(this.minT, newChild.minT);
|
|
255
|
+
this.maxT = Math.max(this.maxT, newChild.maxT);
|
|
256
|
+
// Update value ranges and sums
|
|
257
|
+
for (var i = 0; i < this.dim - 1; i++) {
|
|
258
|
+
this.minV[i] = Math.min(this.minV[i], newChild.minV[i]);
|
|
259
|
+
this.maxV[i] = Math.max(this.maxV[i], newChild.maxV[i]);
|
|
260
|
+
this.sum[i] += newChild.sum[i];
|
|
261
|
+
}
|
|
262
|
+
this.count += newChild.count;
|
|
263
|
+
};
|
|
264
|
+
/**
|
|
265
|
+
* Updates aggregated statistics for this node to include a newly added point.
|
|
266
|
+
*
|
|
267
|
+
* @param {number[]} newPt - The new point
|
|
268
|
+
*/
|
|
269
|
+
PointNode.prototype.IncrementStatsForNewPoint = function (newPt) {
|
|
270
|
+
this.count += 1;
|
|
271
|
+
this.minT = Math.min(this.minT, newPt[0]);
|
|
272
|
+
this.maxT = Math.max(this.maxT, newPt[0]);
|
|
273
|
+
for (var i = 1; i < this.dim; i++) {
|
|
274
|
+
var val = newPt[i];
|
|
275
|
+
if (this.points !== null && this.points.length === 1) {
|
|
276
|
+
this.minV[i - 1] = val;
|
|
277
|
+
this.maxV[i - 1] = val;
|
|
278
|
+
this.sum[i - 1] += val;
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
this.minV[i - 1] = Math.min(this.minV[i - 1], val);
|
|
282
|
+
this.maxV[i - 1] = Math.max(this.maxV[i - 1], val);
|
|
283
|
+
this.sum[i - 1] += val;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
};
|
|
287
|
+
/**
|
|
288
|
+
* Retrieves data points within a specified time range.
|
|
289
|
+
* @param Tstart Start time of the timerange to be looked at.
|
|
290
|
+
* @param Tend End time of the timerange to be looked at.
|
|
291
|
+
* @param IncludeEdges Optional parameter to include edge points.
|
|
292
|
+
* @returns An array of points within the specified time range.
|
|
293
|
+
*/
|
|
113
294
|
PointNode.prototype.GetData = function (Tstart, Tend, IncludeEdges) {
|
|
114
295
|
var _this = this;
|
|
115
296
|
if (this.points != null && Tstart <= this.minT && Tend >= this.maxT)
|
|
@@ -130,28 +311,66 @@ var PointNode = /** @class */ (function () {
|
|
|
130
311
|
(node.minT >= Tstart && node.maxT <= Tend);
|
|
131
312
|
}).map(function (node) { return node.GetData(Tstart, Tend, IncludeEdges); })), false));
|
|
132
313
|
};
|
|
314
|
+
/**
|
|
315
|
+
* Retrieves all data points stored in the PointNode tree.
|
|
316
|
+
* @returns An array of all points in the tre.
|
|
317
|
+
*/
|
|
133
318
|
PointNode.prototype.GetFullData = function () {
|
|
134
319
|
return this.GetData(this.minT, this.maxT);
|
|
135
320
|
};
|
|
321
|
+
/**
|
|
322
|
+
* Retrieves the count of data points within a specified time range.
|
|
323
|
+
* @param Tstart Start time of the timerange to be looked at.
|
|
324
|
+
* @param Tend End time of the timerange to be looked at.
|
|
325
|
+
* @returns The number of points within the specified time range.
|
|
326
|
+
*/
|
|
327
|
+
PointNode.prototype.GetCount = function (Tstart, Tend) {
|
|
328
|
+
// Case 1: Leaf Node with points
|
|
329
|
+
if (this.points !== null) {
|
|
330
|
+
// Entire node is within the range
|
|
331
|
+
if (Tstart <= this.minT && Tend >= this.maxT)
|
|
332
|
+
return this.count;
|
|
333
|
+
// Standard range filtering
|
|
334
|
+
return this.points.reduce(function (acc, pt) { return acc + (pt[0] >= Tstart && pt[0] <= Tend ? 1 : 0); }, 0);
|
|
335
|
+
}
|
|
336
|
+
// Case 2: Internal Node with children
|
|
337
|
+
if (this.children !== null)
|
|
338
|
+
return this.children.reduce(function (acc, node) { return acc + (node.minT <= Tend && node.maxT >= Tstart ? node.GetCount(Tstart, Tend) : 0); }, 0);
|
|
339
|
+
// Case 3: No points or children match
|
|
340
|
+
return 0;
|
|
341
|
+
};
|
|
342
|
+
/**
|
|
343
|
+
* Get Limits for all dimensions
|
|
344
|
+
* @param Tstart start time of the timerange to be looked at
|
|
345
|
+
* @param Tend end time of the timerange to be looked at
|
|
346
|
+
* @returns The min and max value of the data in the given timerange
|
|
347
|
+
*/
|
|
136
348
|
PointNode.prototype.GetAllLimits = function (Tstart, Tend) {
|
|
137
349
|
var result = Array(this.dim - 1);
|
|
138
350
|
for (var index = 0; index < this.dim - 1; index++)
|
|
139
351
|
result[index] = this.GetLimits(Tstart, Tend, index);
|
|
140
352
|
return result;
|
|
141
353
|
};
|
|
354
|
+
/**
|
|
355
|
+
* Retrieves the limits of the data in the given timerange
|
|
356
|
+
* @param Tstart start time of the timerange to be looked at
|
|
357
|
+
* @param Tend end time of the timerange to be looked at
|
|
358
|
+
* @param dimension dimension of the data to be retrieved (x,y,z) to get y use 0
|
|
359
|
+
* @returns The min and max value of the data in the given timerange
|
|
360
|
+
*/
|
|
142
361
|
// Note: Dimension indexing does not include time, I.E. in (x,y), y would be dimension 0;
|
|
143
362
|
PointNode.prototype.GetLimits = function (Tstart, Tend, dimension) {
|
|
144
363
|
var currentIndex = dimension !== null && dimension !== void 0 ? dimension : 0;
|
|
145
364
|
var max = this.maxV[currentIndex];
|
|
146
365
|
var min = this.minV[currentIndex];
|
|
147
366
|
if (this.points == null && !(Tstart <= this.minT && Tend > this.maxT)) {
|
|
148
|
-
// Array represents all limits
|
|
367
|
+
// Array represents all limits o nodes
|
|
149
368
|
var limits = this.children.filter(function (n) { return n.maxT > Tstart && n.minT < Tend; }).map(function (n) { return n.GetLimits(Tstart, Tend, currentIndex); });
|
|
150
369
|
min = Math.min.apply(Math, __spreadArray([], __read(limits.map(function (pt) { return pt[0]; })), false));
|
|
151
370
|
max = Math.max.apply(Math, __spreadArray([], __read(limits.map(function (pt) { return pt[1]; })), false));
|
|
152
371
|
}
|
|
153
372
|
if (this.points != null && !(Tstart <= this.minT && Tend > this.maxT)) {
|
|
154
|
-
// Array represents all numbers within this
|
|
373
|
+
// Array represents all numbers within this node that fall in range
|
|
155
374
|
var limits = this.points.filter(function (pt) { return pt[0] > Tstart && pt[0] < Tend; }).map(function (pt) { return pt[currentIndex + 1]; });
|
|
156
375
|
min = Math.min.apply(Math, __spreadArray([], __read(limits), false));
|
|
157
376
|
max = Math.max.apply(Math, __spreadArray([], __read(limits), false));
|
|
@@ -174,22 +393,32 @@ var PointNode = /** @class */ (function () {
|
|
|
174
393
|
if (pointsRetrieved === void 0) { pointsRetrieved = 1; }
|
|
175
394
|
return this.PointBinarySearch(tVal, pointsRetrieved);
|
|
176
395
|
};
|
|
177
|
-
|
|
396
|
+
/**
|
|
397
|
+
* Implements a binary search to locate points within the PointNode tree or across neighboring nodes based on the timestamp.
|
|
398
|
+
* @param tVal The time value to search for.
|
|
399
|
+
* @param pointsRetrieved The number of points to retrieve.
|
|
400
|
+
* @param nodeLowerNeighbor Optional lower neighboring node for spillover.
|
|
401
|
+
* @param nodeUpperNeighbor Optional upper neighboring node for spillover.
|
|
402
|
+
* @returns An array of points matching the search criteria.
|
|
403
|
+
*/
|
|
404
|
+
PointNode.prototype.PointBinarySearch = function (tVal, pointsRetrieved, nodeLowerNeighbor, nodeUpperNeighbor) {
|
|
178
405
|
if (pointsRetrieved === void 0) { pointsRetrieved = 1; }
|
|
179
406
|
if (pointsRetrieved <= 0)
|
|
180
407
|
throw new RangeError("Requested number of points must be positive value.");
|
|
181
408
|
// round tVal back to whole integer
|
|
182
409
|
if (this.points !== null) {
|
|
410
|
+
if (this.points.length === 0)
|
|
411
|
+
return [[NaN]]; //points should only ever be empty when an empty array is passed into constructor
|
|
183
412
|
// if the tVal is less than the minimum value of the subsection, return the first point
|
|
184
413
|
if (tVal < this.minT) {
|
|
185
414
|
var spillOver = pointsRetrieved - this.points.length;
|
|
186
|
-
var spillOverPoints = (spillOver > 0 &&
|
|
415
|
+
var spillOverPoints = (spillOver > 0 && nodeUpperNeighbor !== undefined) ? nodeUpperNeighbor.PointBinarySearch(tVal, spillOver, this, undefined) : [];
|
|
187
416
|
return this.points.slice(0, pointsRetrieved).concat(spillOverPoints);
|
|
188
417
|
}
|
|
189
418
|
// if the tVal is greater than the largest value of the subsection, return the last point
|
|
190
419
|
if (tVal > this.maxT) {
|
|
191
420
|
var spillOver = pointsRetrieved - this.points.length;
|
|
192
|
-
var spillOverPoints = (spillOver > 0 &&
|
|
421
|
+
var spillOverPoints = (spillOver > 0 && nodeLowerNeighbor !== undefined) ? nodeLowerNeighbor.PointBinarySearch(tVal, spillOver, undefined, this) : [];
|
|
193
422
|
return spillOverPoints.concat(this.points.slice(-pointsRetrieved));
|
|
194
423
|
}
|
|
195
424
|
// Otherwise, perform binary search
|
|
@@ -224,9 +453,9 @@ var PointNode = /** @class */ (function () {
|
|
|
224
453
|
}
|
|
225
454
|
// Note: If we have spillover and no neighbor on the spillover side, then we discard the idea of spillover, and just return as many as we can on that side
|
|
226
455
|
var upperSpillOver = centerIndex + upperPoints + 1 - this.points.length;
|
|
227
|
-
var upperNeighborPoints = (upperSpillOver > 0 &&
|
|
456
|
+
var upperNeighborPoints = (upperSpillOver > 0 && nodeUpperNeighbor !== undefined) ? nodeUpperNeighbor.PointBinarySearch(tVal, upperSpillOver, this, undefined) : [];
|
|
228
457
|
var lowerSpillOver = lowerPoints - centerIndex;
|
|
229
|
-
var lowerNeighborPoints = (lowerSpillOver > 0 &&
|
|
458
|
+
var lowerNeighborPoints = (lowerSpillOver > 0 && nodeLowerNeighbor !== undefined) ? nodeLowerNeighbor.PointBinarySearch(tVal, lowerSpillOver, undefined, this) : [];
|
|
230
459
|
return lowerNeighborPoints.concat(this.points.slice(Math.max(centerIndex - lowerPoints, 0), Math.min(centerIndex + upperPoints + 1, this.points.length))).concat(upperNeighborPoints);
|
|
231
460
|
}
|
|
232
461
|
else if (this.children !== null) {
|
|
@@ -236,19 +465,34 @@ var PointNode = /** @class */ (function () {
|
|
|
236
465
|
childIndex = 0;
|
|
237
466
|
else if (tVal > this.maxT)
|
|
238
467
|
childIndex = this.children.length - 1;
|
|
239
|
-
else
|
|
468
|
+
else {
|
|
240
469
|
childIndex = this.children.findIndex(function (n) { return n.maxT >= tVal; });
|
|
470
|
+
if (childIndex > 0 && this.children[childIndex].minT > tVal) {
|
|
471
|
+
var currentChildMinT = this.children[childIndex].minT;
|
|
472
|
+
var previousChildMaxT = this.children[childIndex - 1].maxT;
|
|
473
|
+
if (Math.abs(tVal - previousChildMaxT) < Math.abs(tVal - currentChildMinT))
|
|
474
|
+
childIndex--;
|
|
475
|
+
}
|
|
476
|
+
}
|
|
241
477
|
if (childIndex === -1)
|
|
242
|
-
throw new RangeError("Could not find child
|
|
478
|
+
throw new RangeError("Could not find child node with point that has a time value of ".concat(tVal));
|
|
243
479
|
// Find neighbors
|
|
244
480
|
var upperNeighbor = childIndex !== this.children.length - 1 ? this.children[childIndex + 1] : undefined;
|
|
245
481
|
var lowerNeighbor = childIndex !== 0 ? this.children[childIndex - 1] : undefined;
|
|
246
482
|
return this.children[childIndex].PointBinarySearch(tVal, pointsRetrieved, lowerNeighbor, upperNeighbor);
|
|
247
483
|
}
|
|
248
484
|
else
|
|
249
|
-
throw new RangeError("Both children and points are null for PointNode,
|
|
485
|
+
throw new RangeError("Both children and points are null for PointNode, unable to find point with time value of ".concat(tVal));
|
|
486
|
+
};
|
|
487
|
+
/**
|
|
488
|
+
* Returns the size of the Tree below this PointNode
|
|
489
|
+
*/
|
|
490
|
+
PointNode.prototype.GetTreeSize = function () {
|
|
491
|
+
if (this.children == null)
|
|
492
|
+
return 1;
|
|
493
|
+
return 1 + Math.max.apply(Math, __spreadArray([], __read(this.children.map(function (node) { return node.GetTreeSize(); })), false));
|
|
250
494
|
};
|
|
251
495
|
return PointNode;
|
|
252
496
|
}());
|
|
253
497
|
exports.PointNode = PointNode;
|
|
254
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9pbnROb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1BvaW50Tm9kZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHlHQUF5RztBQUN6Ryx3QkFBd0I7QUFDeEIsRUFBRTtBQUNGLHFFQUFxRTtBQUNyRSxFQUFFO0FBQ0Ysd0dBQXdHO0FBQ3hHLHdHQUF3RztBQUN4RyxzR0FBc0c7QUFDdEcsd0ZBQXdGO0FBQ3hGLEVBQUU7QUFDRiwwQ0FBMEM7QUFDMUMsRUFBRTtBQUNGLHdHQUF3RztBQUN4Ryx3R0FBd0c7QUFDeEcsNEVBQTRFO0FBQzVFLEVBQUU7QUFDRiw4QkFBOEI7QUFDOUIsd0dBQXdHO0FBQ3hHLDBCQUEwQjtBQUMxQixtREFBbUQ7QUFDbkQsRUFBRTtBQUNGLHlHQUF5Rzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV6RyxJQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7QUFFckI7OztHQUdHO0FBQ0g7SUFZSSxtQkFBWSxJQUFxQjtRQUFqQyxpQkFnQ0M7UUEvQkcsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQzFCLG1EQUFtRDtRQUNuRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2Qix1REFBdUQ7UUFDdkQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyQyx5QkFBeUI7UUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FB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
|
|
498
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9pbnROb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1BvaW50Tm9kZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHlHQUF5RztBQUN6Ryx3QkFBd0I7QUFDeEIsRUFBRTtBQUNGLHFFQUFxRTtBQUNyRSxFQUFFO0FBQ0Ysd0dBQXdHO0FBQ3hHLHdHQUF3RztBQUN4RyxzR0FBc0c7QUFDdEcsd0ZBQXdGO0FBQ3hGLEVBQUU7QUFDRiwwQ0FBMEM7QUFDMUMsRUFBRTtBQUNGLHdHQUF3RztBQUN4Ryx3R0FBd0c7QUFDeEcsNEVBQTRFO0FBQzVFLEVBQUU7QUFDRiw4QkFBOEI7QUFDOUIsd0dBQXdHO0FBQ3hHLDBCQUEwQjtBQUMxQixtREFBbUQ7QUFDbkQsRUFBRTtBQUNGLHlHQUF5Rzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV6RyxJQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7QUFFckI7OztHQUdHO0FBQ0g7SUFhSSxtQkFBWSxJQUFpQjtRQUE3QixpQkF1QkM7UUF0Qkcsd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBRWhCLHlCQUF5QjtRQUN6QixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUVmLElBQUksSUFBSSxLQUFLLFNBQVM7WUFBRSxPQUFPO1FB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
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { PointNode } from './PointNode';
|
|
3
|
+
import { IProps as ILineProps } from './Line';
|
|
4
|
+
interface IProps extends ILineProps {
|
|
5
|
+
Interval: number;
|
|
6
|
+
}
|
|
7
|
+
declare const StreamingLine: React.ForwardRefExoticComponent<IProps & React.RefAttributes<PointNode | null>>;
|
|
8
|
+
export default StreamingLine;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ******************************************************************************************************
|
|
3
|
+
// StreamingLine.tsx - Gbtc
|
|
4
|
+
//
|
|
5
|
+
// Copyright © 2020, 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
|
+
// 12/16/2024 - Preston Crawford
|
|
21
|
+
// Generated original version of source code.
|
|
22
|
+
//
|
|
23
|
+
// ******************************************************************************************************
|
|
24
|
+
var __assign = (this && this.__assign) || function () {
|
|
25
|
+
__assign = Object.assign || function(t) {
|
|
26
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
27
|
+
s = arguments[i];
|
|
28
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
29
|
+
t[p] = s[p];
|
|
30
|
+
}
|
|
31
|
+
return t;
|
|
32
|
+
};
|
|
33
|
+
return __assign.apply(this, arguments);
|
|
34
|
+
};
|
|
35
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
36
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
37
|
+
if (!m) return o;
|
|
38
|
+
var i = m.call(o), r, ar = [], e;
|
|
39
|
+
try {
|
|
40
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
41
|
+
}
|
|
42
|
+
catch (error) { e = { error: error }; }
|
|
43
|
+
finally {
|
|
44
|
+
try {
|
|
45
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
46
|
+
}
|
|
47
|
+
finally { if (e) throw e.error; }
|
|
48
|
+
}
|
|
49
|
+
return ar;
|
|
50
|
+
};
|
|
51
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
52
|
+
var React = require("react");
|
|
53
|
+
var Line_1 = require("./Line");
|
|
54
|
+
var StreamingLine = React.forwardRef(function (props, ref) {
|
|
55
|
+
var _a = __read(React.useState(0), 2), rerender = _a[0], setRerender = _a[1];
|
|
56
|
+
React.useEffect(function () {
|
|
57
|
+
var intervalId = setInterval(function () {
|
|
58
|
+
setRerender(function (prev) { return prev + 1; });
|
|
59
|
+
}, props.Interval * 1000); // Convert seconds to milliseconds
|
|
60
|
+
return function () { return clearInterval(intervalId); };
|
|
61
|
+
}, [props.Interval]);
|
|
62
|
+
return React.createElement(Line_1.InternalLine, __assign({}, props, { ref: ref, reRender: rerender }));
|
|
63
|
+
});
|
|
64
|
+
exports.default = StreamingLine;
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RyZWFtaW5nTGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9TdHJlYW1pbmdMaW5lLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEseUdBQXlHO0FBQ3pHLDRCQUE0QjtBQUM1QixFQUFFO0FBQ0YscUVBQXFFO0FBQ3JFLEVBQUU7QUFDRix3R0FBd0c7QUFDeEcsd0dBQXdHO0FBQ3hHLHNHQUFzRztBQUN0Ryx3RkFBd0Y7QUFDeEYsRUFBRTtBQUNGLDBDQUEwQztBQUMxQyxFQUFFO0FBQ0Ysd0dBQXdHO0FBQ3hHLHdHQUF3RztBQUN4Ryw0RUFBNEU7QUFDNUUsRUFBRTtBQUNGLDhCQUE4QjtBQUM5Qix3R0FBd0c7QUFDeEcsaUNBQWlDO0FBQ2pDLG1EQUFtRDtBQUNuRCxFQUFFO0FBQ0YseUdBQXlHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV6Ryw2QkFBK0I7QUFDL0IsK0JBQXNDO0FBUXRDLElBQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQTRCLFVBQUMsS0FBSyxFQUFFLEdBQUc7SUFDbkUsSUFBQSxLQUFBLE9BQTBCLEtBQUssQ0FBQyxRQUFRLENBQVMsQ0FBQyxDQUFDLElBQUEsRUFBbEQsUUFBUSxRQUFBLEVBQUUsV0FBVyxRQUE2QixDQUFDO0lBRTFELEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDWixJQUFNLFVBQVUsR0FBRyxXQUFXLENBQUM7WUFDM0IsV0FBVyxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsSUFBSSxHQUFHLENBQUMsRUFBUixDQUFRLENBQUMsQ0FBQztRQUNsQyxDQUFDLEVBQUUsS0FBSyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLGtDQUFrQztRQUU3RCxPQUFPLGNBQU0sT0FBQSxhQUFhLENBQUMsVUFBVSxDQUFDLEVBQXpCLENBQXlCLENBQUM7SUFDM0MsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFckIsT0FBTyxvQkFBQyxtQkFBWSxlQUFLLEtBQUssSUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLElBQUcsQ0FBQTtBQUNuRSxDQUFDLENBQUMsQ0FBQztBQUVILGtCQUFlLGFBQWEsQ0FBQyJ9
|
package/lib/index.d.ts
CHANGED
|
@@ -12,4 +12,6 @@ import Infobox from './Infobox';
|
|
|
12
12
|
import Oval from './Oval';
|
|
13
13
|
import { AxisMap } from './GraphContext';
|
|
14
14
|
import HighlightBox from './HighlightBox';
|
|
15
|
-
|
|
15
|
+
import { PointNode } from './PointNode';
|
|
16
|
+
import StreamingLine from './StreamingLine';
|
|
17
|
+
export { Plot, Line, HeatMapChart, LineWithThreshold, Button, HorizontalMarker, VerticalMarker, SymbolicMarker, Circle, Oval, AggregatingCircles, Infobox, AxisMap, HighlightBox, PointNode, StreamingLine };
|
package/lib/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HighlightBox = exports.AxisMap = exports.Infobox = exports.AggregatingCircles = exports.Oval = exports.Circle = exports.SymbolicMarker = exports.VerticalMarker = exports.HorizontalMarker = exports.Button = exports.LineWithThreshold = exports.HeatMapChart = exports.Line = exports.Plot = void 0;
|
|
3
|
+
exports.StreamingLine = exports.PointNode = exports.HighlightBox = exports.AxisMap = exports.Infobox = exports.AggregatingCircles = exports.Oval = exports.Circle = exports.SymbolicMarker = exports.VerticalMarker = exports.HorizontalMarker = exports.Button = exports.LineWithThreshold = exports.HeatMapChart = exports.Line = exports.Plot = void 0;
|
|
4
4
|
var Plot_1 = require("./Plot");
|
|
5
5
|
exports.Plot = Plot_1.default;
|
|
6
6
|
var Line_1 = require("./Line");
|
|
@@ -29,4 +29,8 @@ var GraphContext_1 = require("./GraphContext");
|
|
|
29
29
|
Object.defineProperty(exports, "AxisMap", { enumerable: true, get: function () { return GraphContext_1.AxisMap; } });
|
|
30
30
|
var HighlightBox_1 = require("./HighlightBox");
|
|
31
31
|
exports.HighlightBox = HighlightBox_1.default;
|
|
32
|
-
|
|
32
|
+
var PointNode_1 = require("./PointNode");
|
|
33
|
+
Object.defineProperty(exports, "PointNode", { enumerable: true, get: function () { return PointNode_1.PointNode; } });
|
|
34
|
+
var StreamingLine_1 = require("./StreamingLine");
|
|
35
|
+
exports.StreamingLine = StreamingLine_1.default;
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQTBCO0FBa0J0QixlQWxCRyxjQUFJLENBa0JIO0FBakJSLCtCQUEwQjtBQWtCdEIsZUFsQkcsY0FBSSxDQWtCSDtBQWpCUiwrQ0FBMEM7QUFrQnRDLHVCQWxCRyxzQkFBWSxDQWtCSDtBQWpCaEIseURBQW9EO0FBa0JoRCw0QkFsQkcsMkJBQWlCLENBa0JIO0FBakJyQix1REFBa0Q7QUFtQjlDLDJCQW5CRywwQkFBZ0IsQ0FtQkg7QUFsQnBCLG1EQUE4QztBQW1CMUMseUJBbkJHLHdCQUFjLENBbUJIO0FBbEJsQixtREFBOEM7QUFtQjFDLHlCQW5CRyx3QkFBYyxDQW1CSDtBQWxCbEIsbUNBQThCO0FBZTFCLGlCQWZHLGdCQUFNLENBZUg7QUFkViwyREFBc0Q7QUFvQmxELDZCQXBCRyw0QkFBa0IsQ0FvQkg7QUFuQnRCLG1DQUE4QjtBQWlCMUIsaUJBakJHLGdCQUFNLENBaUJIO0FBaEJWLHFDQUFnQztBQW1CNUIsa0JBbkJHLGlCQUFPLENBbUJIO0FBbEJYLCtCQUEwQjtBQWdCdEIsZUFoQkcsY0FBSSxDQWdCSDtBQWZSLCtDQUF5QztBQWtCckMsd0ZBbEJLLHNCQUFPLE9Ba0JMO0FBakJYLCtDQUEwQztBQWtCdEMsdUJBbEJHLHNCQUFZLENBa0JIO0FBakJoQix5Q0FBd0M7QUFrQnBDLDBGQWxCSyxxQkFBUyxPQWtCTDtBQWpCYixpREFBNEM7QUFrQnhDLHdCQWxCRyx1QkFBYSxDQWtCSCJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gpa-gemstone/react-graph",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.65",
|
|
4
4
|
"description": "Interactive UI Components for GPA products",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"typescript": "5.5.3"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@gpa-gemstone/gpa-symbols": "0.0.
|
|
48
|
+
"@gpa-gemstone/gpa-symbols": "0.0.45",
|
|
49
49
|
"@gpa-gemstone/helper-functions": "0.0.36",
|
|
50
50
|
"html2canvas": "^1.4.1",
|
|
51
51
|
"lodash": "^4.17.21",
|