@gpa-gemstone/react-graph 1.0.40 → 1.0.42
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/GraphContext.d.ts +9 -11
- package/lib/GraphContext.js +12 -10
- package/lib/HeatLegend.d.ts +2 -1
- package/lib/HeatLegend.js +18 -21
- package/lib/HeatMapChart.js +4 -4
- package/lib/HorizontalMarker.js +3 -3
- package/lib/InteractiveButtons.d.ts +6 -4
- package/lib/InteractiveButtons.js +56 -41
- package/lib/Legend.d.ts +3 -0
- package/lib/Legend.js +37 -20
- package/lib/LegendContext.d.ts +14 -0
- package/lib/LegendContext.js +35 -0
- package/lib/Line.js +36 -32
- package/lib/LineLegend.d.ts +4 -4
- package/lib/LineLegend.js +31 -32
- package/lib/LineWithThreshold.js +4 -9
- package/lib/Plot.d.ts +6 -5
- package/lib/Plot.js +237 -180
- package/lib/PointNode.d.ts +9 -2
- package/lib/PointNode.js +77 -27
- package/lib/TimeAxis.js +72 -27
- package/lib/VerticalMarker.js +3 -3
- package/package.json +3 -3
package/lib/Plot.js
CHANGED
|
@@ -59,6 +59,7 @@ var __values = (this && this.__values) || function(o) {
|
|
|
59
59
|
};
|
|
60
60
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
61
61
|
var React = require("react");
|
|
62
|
+
var _ = require("lodash");
|
|
62
63
|
var InteractiveButtons_1 = require("./InteractiveButtons");
|
|
63
64
|
var GraphContext_1 = require("./GraphContext");
|
|
64
65
|
var helper_functions_1 = require("@gpa-gemstone/helper-functions");
|
|
@@ -92,66 +93,66 @@ var SvgStyle = {
|
|
|
92
93
|
var defaultLegendHeight = 50;
|
|
93
94
|
var defaultLegendWidth = 100;
|
|
94
95
|
var Plot = function (props) {
|
|
95
|
-
var _a, _b
|
|
96
|
+
var _a, _b;
|
|
97
|
+
// Type correcting functions to convert props into something usable
|
|
98
|
+
var typeCorrect = React.useCallback(function (arg, arrayIndex) {
|
|
99
|
+
if (arg == null)
|
|
100
|
+
return undefined;
|
|
101
|
+
if (!Object.prototype.hasOwnProperty.call(arg, 'length'))
|
|
102
|
+
return (arrayIndex === 0 ? arg : undefined);
|
|
103
|
+
return arg[arrayIndex];
|
|
104
|
+
}, []);
|
|
105
|
+
var typeCorrectDomain = React.useCallback(function (arg) {
|
|
106
|
+
if (arg === undefined || arg.length === 0)
|
|
107
|
+
return [[0, 1], [0, 1]];
|
|
108
|
+
if (typeof (arg[0]) === 'number')
|
|
109
|
+
return [arg, [0, 1]];
|
|
110
|
+
return arg;
|
|
111
|
+
}, []);
|
|
96
112
|
/*
|
|
97
113
|
Actual plot that will handle Axis etc.
|
|
98
114
|
*/
|
|
99
115
|
var SVGref = React.useRef(null);
|
|
100
116
|
var handlers = React.useRef(new Map());
|
|
101
117
|
var wheelTimeout = React.useRef({ timeout: undefined, stopScroll: false });
|
|
118
|
+
var heightChange = React.useRef({ timeout: undefined, extraNeeded: 0, captureID: undefined });
|
|
102
119
|
var widthTimeout = React.useRef({ timeout: undefined, requesterMap: new Map() });
|
|
103
120
|
var guid = React.useMemo(function () { return (0, helper_functions_1.CreateGuid)(); }, []);
|
|
104
|
-
var
|
|
105
|
-
var
|
|
106
|
-
var
|
|
107
|
-
var
|
|
108
|
-
var
|
|
109
|
-
var
|
|
110
|
-
var
|
|
121
|
+
var _c = __read(React.useState(new Map()), 2), data = _c[0], setData = _c[1];
|
|
122
|
+
var _d = __read(React.useState(props.defaultTdomain), 2), tDomain = _d[0], setTdomain = _d[1];
|
|
123
|
+
var _e = __read(React.useState(0), 2), tOffset = _e[0], setToffset = _e[1];
|
|
124
|
+
var _f = __read(React.useState(1), 2), tScale = _f[0], setTscale = _f[1];
|
|
125
|
+
var _g = __read(React.useState(Array(GraphContext_1.AxisMap.size).fill([0, 0])), 2), yDomain = _g[0], setYdomain = _g[1];
|
|
126
|
+
var _h = __read(React.useState(Array(GraphContext_1.AxisMap.size).fill(0)), 2), yOffset = _h[0], setYoffset = _h[1];
|
|
127
|
+
var _j = __read(React.useState(Array(GraphContext_1.AxisMap.size).fill(1)), 2), yScale = _j[0], setYscale = _j[1];
|
|
111
128
|
// ToDo: This is hardset to two because it's tied to display, 'left' and 'right'
|
|
112
|
-
var
|
|
113
|
-
var
|
|
114
|
-
var
|
|
115
|
-
var
|
|
116
|
-
var
|
|
117
|
-
var
|
|
118
|
-
var
|
|
119
|
-
var
|
|
129
|
+
var _k = __read(React.useState(Array(2).fill(0)), 2), yHasData = _k[0], setYHasData = _k[1];
|
|
130
|
+
var _l = __read(React.useState('none'), 2), mouseMode = _l[0], setMouseMode = _l[1];
|
|
131
|
+
var _m = __read(React.useState('zoom-rectangular'), 2), selectedMode = _m[0], setSelectedMode = _m[1];
|
|
132
|
+
var _o = __read(React.useState(false), 2), mouseIn = _o[0], setMouseIn = _o[1];
|
|
133
|
+
var _p = __read(React.useState([0, 0]), 2), mousePosition = _p[0], setMousePosition = _p[1];
|
|
134
|
+
var _q = __read(React.useState([0, 0]), 2), mousePositionSnap = _q[0], setMousePositionSnap = _q[1];
|
|
135
|
+
var _r = __read(React.useState([0, 0]), 2), mouseClick = _r[0], setMouseClick = _r[1];
|
|
136
|
+
var _s = __read(React.useState("default"), 2), mouseStyle = _s[0], setMouseStyle = _s[1];
|
|
120
137
|
var moveRequested = React.useRef(false);
|
|
121
|
-
var
|
|
122
|
-
var
|
|
123
|
-
var
|
|
124
|
-
var
|
|
125
|
-
var
|
|
126
|
-
var
|
|
127
|
-
var
|
|
128
|
-
var
|
|
129
|
-
var
|
|
138
|
+
var _t = __read(React.useState(false), 2), photoReady = _t[0], setPhotoReady = _t[1];
|
|
139
|
+
var _u = __read(React.useState(10), 2), offsetTop = _u[0], setOffsetTop = _u[1];
|
|
140
|
+
var _v = __read(React.useState(10), 2), offsetBottom = _v[0], setOffsetBottom = _v[1];
|
|
141
|
+
var _w = __read(React.useState(5), 2), offsetLeft = _w[0], setOffsetLeft = _w[1];
|
|
142
|
+
var _x = __read(React.useState(5), 2), offsetRight = _x[0], setOffsetRight = _x[1];
|
|
143
|
+
var _y = __read(React.useState(0), 2), heightYFactor = _y[0], setHeightYFactor = _y[1];
|
|
144
|
+
var _z = __read(React.useState(0), 2), heightXLabel = _z[0], setHeightXLabel = _z[1];
|
|
145
|
+
var _0 = __read(React.useState(0), 2), heightLeftYLabel = _0[0], setHeightLeftYLabel = _0[1];
|
|
146
|
+
var _1 = __read(React.useState(0), 2), heightRightYLabel = _1[0], setHeightRightYLabel = _1[1];
|
|
130
147
|
// States for Props to avoid change notification on ref change
|
|
131
|
-
var
|
|
132
|
-
var
|
|
133
|
-
var
|
|
134
|
-
var
|
|
135
|
-
var
|
|
136
|
-
var
|
|
137
|
-
var
|
|
138
|
-
var
|
|
139
|
-
// Type correcting functions to convert props into something usable
|
|
140
|
-
var typeCorrect = function (arg, arrayIndex) {
|
|
141
|
-
if (arg == null)
|
|
142
|
-
return undefined;
|
|
143
|
-
if (!Object.prototype.hasOwnProperty.call(arg, 'length'))
|
|
144
|
-
return (arrayIndex === 0 ? arg : undefined);
|
|
145
|
-
return arg[arrayIndex];
|
|
146
|
-
};
|
|
147
|
-
var typeCorrectDomain = function (arg, arrayIndex) {
|
|
148
|
-
if (arg === undefined || arg.length === 0)
|
|
149
|
-
return undefined;
|
|
150
|
-
if (typeof (arg[0]) === 'number')
|
|
151
|
-
return (arrayIndex === 0 ? arg : undefined);
|
|
152
|
-
return arg[arrayIndex];
|
|
153
|
-
};
|
|
154
|
-
var applyToYDomain = function (predicate) {
|
|
148
|
+
var _2 = __read(React.useState(props.defaultTdomain), 2), defaultTdomain = _2[0], setDefaultTdomain = _2[1];
|
|
149
|
+
var _3 = __read(React.useState(typeCorrectDomain(props.defaultYdomain)), 2), defaultYdomain = _3[0], setDefaultYdomain = _3[1];
|
|
150
|
+
var _4 = __read(React.useState(0), 2), updateFlag = _4[0], setUpdateFlag = _4[1];
|
|
151
|
+
var _5 = __read(React.useState((_a = props.legendHeight) !== null && _a !== void 0 ? _a : defaultLegendHeight), 2), legendHeight = _5[0], setLegendHeight = _5[1];
|
|
152
|
+
var _6 = __read(React.useState((_b = props.legendWidth) !== null && _b !== void 0 ? _b : defaultLegendWidth), 2), legendWidth = _6[0], setLegendWidth = _6[1];
|
|
153
|
+
var _7 = __read(React.useState(props.height), 2), svgHeight = _7[0], setSVGheight = _7[1];
|
|
154
|
+
var _8 = __read(React.useState(props.width), 2), svgWidth = _8[0], setSVGwidth = _8[1];
|
|
155
|
+
var applyToYDomain = React.useCallback(function (predicate) {
|
|
155
156
|
var newDomain = __spreadArray([], __read(yDomain), false);
|
|
156
157
|
var apply = false;
|
|
157
158
|
newDomain.forEach(function (d, i, a) {
|
|
@@ -161,7 +162,7 @@ var Plot = function (props) {
|
|
|
161
162
|
if (apply) {
|
|
162
163
|
setYdomain(newDomain);
|
|
163
164
|
}
|
|
164
|
-
};
|
|
165
|
+
}, [yDomain]);
|
|
165
166
|
// Effect to Reset the legend width/height
|
|
166
167
|
React.useEffect(function () {
|
|
167
168
|
if (props.legendHeight !== undefined)
|
|
@@ -210,18 +211,18 @@ var Plot = function (props) {
|
|
|
210
211
|
}, [props.defaultTdomain]);
|
|
211
212
|
React.useEffect(function () {
|
|
212
213
|
if (!(0, lodash_1.isEqual)(defaultYdomain, props.defaultYdomain))
|
|
213
|
-
setDefaultYdomain(props.defaultYdomain);
|
|
214
|
+
setDefaultYdomain(typeCorrectDomain(props.defaultYdomain));
|
|
214
215
|
}, [props.defaultYdomain]);
|
|
215
216
|
React.useEffect(function () {
|
|
216
217
|
setTdomain(defaultTdomain);
|
|
217
218
|
}, [defaultTdomain]);
|
|
218
219
|
React.useEffect(function () {
|
|
219
|
-
|
|
220
|
+
setYdomain(defaultYdomain);
|
|
220
221
|
}, [defaultYdomain]);
|
|
221
222
|
// Adjust top and bottom Offset
|
|
222
223
|
React.useEffect(function () {
|
|
223
224
|
var top = heightYFactor + 10;
|
|
224
|
-
var bottom = heightXLabel
|
|
225
|
+
var bottom = heightXLabel;
|
|
225
226
|
if (offsetTop !== top)
|
|
226
227
|
setOffsetTop(top);
|
|
227
228
|
if (offsetBottom !== bottom)
|
|
@@ -229,47 +230,47 @@ var Plot = function (props) {
|
|
|
229
230
|
}, [heightXLabel, heightYFactor]);
|
|
230
231
|
// Adjust Left Offset
|
|
231
232
|
React.useEffect(function () {
|
|
232
|
-
var left = heightLeftYLabel + 10;
|
|
233
|
+
var left = heightLeftYLabel + (props.menuLocation === 'left' ? 28 : 10);
|
|
233
234
|
if (offsetLeft !== left)
|
|
234
235
|
setOffsetLeft(left);
|
|
235
|
-
}, [heightLeftYLabel]);
|
|
236
|
+
}, [heightLeftYLabel, props.menuLocation]);
|
|
236
237
|
// Adjust Right Offset
|
|
237
238
|
React.useEffect(function () {
|
|
238
|
-
var right = heightRightYLabel + 10;
|
|
239
|
+
var right = heightRightYLabel + (props.menuLocation === 'right' ? 28 : 10);
|
|
239
240
|
if (offsetRight !== right)
|
|
240
241
|
setOffsetRight(right);
|
|
241
|
-
}, [heightRightYLabel]);
|
|
242
|
-
// Adjust Y domain
|
|
242
|
+
}, [heightRightYLabel, props.menuLocation]);
|
|
243
|
+
// Adjust Y domain defaults
|
|
243
244
|
React.useEffect(function () {
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
}
|
|
254
|
-
return result;
|
|
255
|
-
};
|
|
256
|
-
var yMin = Math.min.apply(Math, __spreadArray([], __read(__spreadArray([], __read(data.values()), false).reduce(function (result, series) { return dataReducerFunc_1(result, series, series.getMin); }, [])), false));
|
|
257
|
-
var yMax = Math.max.apply(Math, __spreadArray([], __read(__spreadArray([], __read(data.values()), false).reduce(function (result, series) { return dataReducerFunc_1(result, series, series.getMax); }, [])), false));
|
|
258
|
-
if (!isNaN(yMin) && !isNaN(yMax) && isFinite(yMin) && isFinite(yMax)) {
|
|
259
|
-
if (zoomMode === 'AutoValue')
|
|
260
|
-
allDomains[axis] = [yMin, yMax];
|
|
261
|
-
// If this condition is satisfied, it means our series is mostly positive range
|
|
262
|
-
else if (Math.abs(yMax) >= Math.abs(yMin))
|
|
263
|
-
allDomains[axis] = [0, yMax];
|
|
264
|
-
else
|
|
265
|
-
allDomains[axis] = [yMin, 0];
|
|
266
|
-
return true;
|
|
267
|
-
}
|
|
245
|
+
if (props.yDomain !== 'AutoValue' && props.yDomain !== 'HalfAutoValue')
|
|
246
|
+
return;
|
|
247
|
+
var dataReducerFunc = function (result, series, func, axis) {
|
|
248
|
+
// This part of the data may not belong to the axis we care about at the moment
|
|
249
|
+
var dataAxis = GraphContext_1.AxisMap.get(series.axis);
|
|
250
|
+
if (axis === dataAxis) {
|
|
251
|
+
var value = func([Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER]);
|
|
252
|
+
if (value !== undefined)
|
|
253
|
+
result.push(value);
|
|
268
254
|
}
|
|
269
|
-
return
|
|
255
|
+
return result;
|
|
270
256
|
};
|
|
271
|
-
|
|
272
|
-
|
|
257
|
+
var newDefaultDomain = defaultYdomain.map(function (yDomain, axis) {
|
|
258
|
+
var yMin = Math.min.apply(Math, __spreadArray([], __read(__spreadArray([], __read(data.values()), false).reduce(function (result, series) { return dataReducerFunc(result, series, series.getMin, axis); }, [])), false));
|
|
259
|
+
var yMax = Math.max.apply(Math, __spreadArray([], __read(__spreadArray([], __read(data.values()), false).reduce(function (result, series) { return dataReducerFunc(result, series, series.getMax, axis); }, [])), false));
|
|
260
|
+
if (!isNaN(yMin) && !isNaN(yMax) && isFinite(yMin) && isFinite(yMax)) {
|
|
261
|
+
if (props.yDomain === 'AutoValue')
|
|
262
|
+
return [yMin, yMax];
|
|
263
|
+
// If this condition is satisfied, it means our series is mostly positive range
|
|
264
|
+
else if (Math.abs(yMax) >= Math.abs(yMin))
|
|
265
|
+
return [0, yMax];
|
|
266
|
+
else
|
|
267
|
+
return [yMin, 0];
|
|
268
|
+
}
|
|
269
|
+
return [0, 1];
|
|
270
|
+
});
|
|
271
|
+
if (!_.isEqual(newDefaultDomain, defaultYdomain))
|
|
272
|
+
setDefaultYdomain(newDefaultDomain);
|
|
273
|
+
}, [data, props.yDomain]);
|
|
273
274
|
React.useEffect(function () {
|
|
274
275
|
var newHasData = Array(2);
|
|
275
276
|
var hasFunc = function (axis) { return __spreadArray([], __read(data.values()), false).some(function (series) { return GraphContext_1.AxisMap.get(axis) === GraphContext_1.AxisMap.get(series.axis); }); };
|
|
@@ -332,7 +333,7 @@ var Plot = function (props) {
|
|
|
332
333
|
newCursor = 'pointer';
|
|
333
334
|
break;
|
|
334
335
|
default:
|
|
335
|
-
newCursor = '
|
|
336
|
+
newCursor = 'crosshair';
|
|
336
337
|
}
|
|
337
338
|
}
|
|
338
339
|
else
|
|
@@ -348,12 +349,18 @@ var Plot = function (props) {
|
|
|
348
349
|
}, []);
|
|
349
350
|
// Execute Plot Capture and leave photo mode
|
|
350
351
|
React.useEffect(function () {
|
|
351
|
-
|
|
352
|
-
if (photoReady)
|
|
353
|
-
|
|
354
|
-
|
|
352
|
+
// ToDo: We can clean this up some and improve performance using html2canvas options (but the biggest hurdle is the legend, which we don't have a lot of options for...)
|
|
353
|
+
if (!photoReady)
|
|
354
|
+
return;
|
|
355
|
+
// we can't immediately complete the request, since some layout things may still be changing...
|
|
356
|
+
clearTimeout(heightChange.current.timeout);
|
|
357
|
+
// timeout to set if we don't see any more changes within 0.05 seconds
|
|
358
|
+
heightChange.current.timeout = setTimeout(function () {
|
|
359
|
+
var _a;
|
|
360
|
+
var id = (_a = heightChange.current.captureID) !== null && _a !== void 0 ? _a : guid;
|
|
361
|
+
var element = document.getElementById(id);
|
|
355
362
|
if (element == null) {
|
|
356
|
-
console.error("Could not find document element with id " +
|
|
363
|
+
console.error("Could not find document element with id " + id);
|
|
357
364
|
}
|
|
358
365
|
else {
|
|
359
366
|
html2canvas(element).then(function (canvas) {
|
|
@@ -361,7 +368,7 @@ var Plot = function (props) {
|
|
|
361
368
|
var imageData = canvas.toDataURL("image/png").replace(/^data:image\/png/, "data:application/octet-stream");
|
|
362
369
|
var anchorElement = document.createElement("a");
|
|
363
370
|
anchorElement.href = imageData;
|
|
364
|
-
anchorElement.download =
|
|
371
|
+
anchorElement.download = id + ".png";
|
|
365
372
|
document.body.appendChild(anchorElement);
|
|
366
373
|
anchorElement.click();
|
|
367
374
|
// Removing children created/cleanup
|
|
@@ -371,17 +378,22 @@ var Plot = function (props) {
|
|
|
371
378
|
});
|
|
372
379
|
}
|
|
373
380
|
setPhotoReady(false);
|
|
374
|
-
|
|
375
|
-
|
|
381
|
+
if (props.onCaptureComplete !== undefined)
|
|
382
|
+
props.onCaptureComplete();
|
|
383
|
+
}, 50);
|
|
384
|
+
});
|
|
376
385
|
// requests new legend height/width upto a defined maximum set by props
|
|
377
386
|
var requestLegendHeightChange = React.useCallback(function (newHeight) {
|
|
378
387
|
var _a;
|
|
388
|
+
var heightLimit = props.legend !== 'bottom' ? svgHeight : ((_a = props.legendHeight) !== null && _a !== void 0 ? _a : defaultLegendHeight);
|
|
389
|
+
if (!photoReady)
|
|
390
|
+
heightChange.current.extraNeeded = Math.max(newHeight - heightLimit, 0);
|
|
379
391
|
if (props.legend !== 'bottom')
|
|
380
392
|
return;
|
|
381
|
-
var limitedHeight = Math.min(newHeight,
|
|
393
|
+
var limitedHeight = Math.min(newHeight, heightLimit);
|
|
382
394
|
if (legendHeight !== limitedHeight)
|
|
383
395
|
setLegendHeight(limitedHeight);
|
|
384
|
-
}, [props.legendHeight, setLegendHeight, legendHeight, props.legend]);
|
|
396
|
+
}, [props.legendHeight, setLegendHeight, legendHeight, props.legend, photoReady]);
|
|
385
397
|
var requestLegendWidthChange = React.useCallback(function (newWidth, requesterID) {
|
|
386
398
|
var _a;
|
|
387
399
|
if (newWidth < 0) {
|
|
@@ -413,22 +425,10 @@ var Plot = function (props) {
|
|
|
413
425
|
var axis = (typeof (a) !== 'number') ? GraphContext_1.AxisMap.get(a) : a;
|
|
414
426
|
return (p - yOffset[axis]) / yScale[axis];
|
|
415
427
|
}, [yOffset, yScale]);
|
|
416
|
-
|
|
428
|
+
var Reset = React.useCallback(function () {
|
|
417
429
|
setTdomain(defaultTdomain);
|
|
418
|
-
|
|
419
|
-
}
|
|
420
|
-
function ResetYDomain() {
|
|
421
|
-
var mutateDomain = function (domain, axis, allDomains) {
|
|
422
|
-
// Need to type correct our arguements
|
|
423
|
-
var defaults = typeCorrectDomain(defaultYdomain, axis);
|
|
424
|
-
if (defaults !== undefined && zoomMode !== 'AutoValue' && zoomMode !== 'HalfAutoValue') {
|
|
425
|
-
allDomains[axis] = defaults;
|
|
426
|
-
return true;
|
|
427
|
-
}
|
|
428
|
-
return false;
|
|
429
|
-
};
|
|
430
|
-
applyToYDomain(mutateDomain);
|
|
431
|
-
}
|
|
430
|
+
setYdomain(defaultYdomain);
|
|
431
|
+
}, [defaultYdomain, defaultTdomain]);
|
|
432
432
|
// new X transformation from x value into Pixels
|
|
433
433
|
var xTransform = React.useCallback(function (value) {
|
|
434
434
|
var xT = value * tScale + tOffset;
|
|
@@ -480,19 +480,23 @@ var Plot = function (props) {
|
|
|
480
480
|
});
|
|
481
481
|
}, []);
|
|
482
482
|
function snapMouseToClosestSeries(pixelPt) {
|
|
483
|
+
var xVal = xInvTransform(pixelPt.x);
|
|
483
484
|
var findClosestPoint = function (result, series) {
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
var
|
|
489
|
-
var
|
|
490
|
-
if (result.
|
|
491
|
-
return { x:
|
|
492
|
-
|
|
485
|
+
var pointArray = series.getPoints(xVal, 7);
|
|
486
|
+
if (pointArray === undefined)
|
|
487
|
+
return result;
|
|
488
|
+
var ptArrayResult = pointArray.reduce(function (result, pt) {
|
|
489
|
+
var point = [xTransform(pt[0]), yTransform(pt[1], GraphContext_1.AxisMap.get(series.axis))];
|
|
490
|
+
var newDistSq = Math.pow((point[0] - pixelPt.x), 2) + Math.pow((point[1] - pixelPt.y), 2);
|
|
491
|
+
if (result.distSq === undefined || newDistSq < result.distSq)
|
|
492
|
+
return { pt: { x: point[0], y: point[1] }, distSq: newDistSq };
|
|
493
|
+
return result;
|
|
494
|
+
}, { pt: { x: 0, y: 0 }, distSq: undefined });
|
|
495
|
+
if (ptArrayResult.distSq !== undefined && (result.distSq === undefined || ptArrayResult.distSq < result.distSq))
|
|
496
|
+
return ptArrayResult;
|
|
493
497
|
return result;
|
|
494
498
|
};
|
|
495
|
-
return __spreadArray([], __read(data.values()), false).reduce(function (result, series) { return findClosestPoint(result, series); }, { x: 0, y: 0,
|
|
499
|
+
return __spreadArray([], __read(data.values()), false).reduce(function (result, series) { return findClosestPoint(result, series); }, { pt: { x: 0, y: 0 }, distSq: undefined }).pt;
|
|
496
500
|
}
|
|
497
501
|
var registerSelect = React.useCallback(function (handler) {
|
|
498
502
|
var key = (0, helper_functions_1.CreateGuid)();
|
|
@@ -512,15 +516,38 @@ var Plot = function (props) {
|
|
|
512
516
|
if (props.onDataInspect !== undefined)
|
|
513
517
|
props.onDataInspect(tDomain);
|
|
514
518
|
}
|
|
515
|
-
else if (s === "capture")
|
|
519
|
+
else if (s === "capture") {
|
|
516
520
|
setPhotoReady(true);
|
|
521
|
+
if (props.onCapture !== undefined)
|
|
522
|
+
heightChange.current.captureID = props.onCapture(heightChange.current.extraNeeded);
|
|
523
|
+
}
|
|
517
524
|
else
|
|
518
525
|
setSelectedMode(s);
|
|
519
526
|
}, [tDomain, Reset, props.onDataInspect]);
|
|
527
|
+
var getConstrainedYDomain = React.useCallback(function (newTDomain) {
|
|
528
|
+
var dataReducerFunc = function (result, series, func, axis) {
|
|
529
|
+
// This part of the data may not belong to the axis we care about at the moment
|
|
530
|
+
var dataAxis = GraphContext_1.AxisMap.get(series.axis);
|
|
531
|
+
if (axis === dataAxis) {
|
|
532
|
+
var value = func(newTDomain);
|
|
533
|
+
if (value !== undefined)
|
|
534
|
+
result.push(value);
|
|
535
|
+
}
|
|
536
|
+
return result;
|
|
537
|
+
};
|
|
538
|
+
return yDomain.map(function (oldDomain, axis) {
|
|
539
|
+
var yMin = Math.min.apply(Math, __spreadArray([], __read(__spreadArray([], __read(data.values()), false).reduce(function (result, series) { return dataReducerFunc(result, series, series.getMin, axis); }, [])), false));
|
|
540
|
+
var yMax = Math.max.apply(Math, __spreadArray([], __read(__spreadArray([], __read(data.values()), false).reduce(function (result, series) { return dataReducerFunc(result, series, series.getMax, axis); }, [])), false));
|
|
541
|
+
if (!isNaN(yMin) && !isNaN(yMax) && isFinite(yMin) && isFinite(yMax))
|
|
542
|
+
return [yMin, yMax];
|
|
543
|
+
return yDomain[axis];
|
|
544
|
+
});
|
|
545
|
+
}, [data, yDomain]);
|
|
520
546
|
function handleMouseWheel(evt) {
|
|
547
|
+
var _a;
|
|
521
548
|
if (props.zoom !== undefined && !props.zoom)
|
|
522
549
|
return;
|
|
523
|
-
if (!(
|
|
550
|
+
if (!selectedMode.includes('zoom'))
|
|
524
551
|
return;
|
|
525
552
|
if (!mouseIn)
|
|
526
553
|
return;
|
|
@@ -535,21 +562,35 @@ var Plot = function (props) {
|
|
|
535
562
|
// event.deltaY positive is wheel down or out and negative is wheel up or in
|
|
536
563
|
if (evt.deltaY < 0)
|
|
537
564
|
multiplier = 0.75;
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
565
|
+
if (selectedMode !== 'zoom-horizontal') {
|
|
566
|
+
var x0 = xTransform(tDomain[0]);
|
|
567
|
+
var x1 = xTransform(tDomain[1]);
|
|
568
|
+
if (mousePosition[0] < offsetLeft)
|
|
569
|
+
x1 = multiplier * (x1 - x0) + x0;
|
|
570
|
+
else if (mousePosition[0] > (svgWidth - offsetRight))
|
|
571
|
+
x0 = x1 - multiplier * (x1 - x0);
|
|
572
|
+
else {
|
|
573
|
+
var Xcenter = mousePosition[0];
|
|
574
|
+
x0 = Xcenter - (Xcenter - x0) * multiplier;
|
|
575
|
+
x1 = Xcenter + (x1 - Xcenter) * multiplier;
|
|
576
|
+
}
|
|
577
|
+
if ((x1 - x0) > 10) {
|
|
578
|
+
var newTDomain = void 0;
|
|
579
|
+
if ((_a = props.limitZoom) !== null && _a !== void 0 ? _a : false)
|
|
580
|
+
newTDomain = [Math.max(defaultTdomain[0], xInvTransform(x0)), Math.min(defaultTdomain[1], xInvTransform(x1))];
|
|
581
|
+
else
|
|
582
|
+
newTDomain = [xInvTransform(x0), xInvTransform(x1)];
|
|
583
|
+
if (selectedMode === 'zoom-vertical') {
|
|
584
|
+
var newYDomain = getConstrainedYDomain(newTDomain);
|
|
585
|
+
if (!_.isEqual(newYDomain, yDomain))
|
|
586
|
+
setYdomain(newYDomain);
|
|
587
|
+
}
|
|
588
|
+
setTdomain(newTDomain);
|
|
589
|
+
}
|
|
548
590
|
}
|
|
549
|
-
if (
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
var zoomYAxis = function (domain, axis, allDomains) {
|
|
591
|
+
if (selectedMode !== 'zoom-vertical') {
|
|
592
|
+
var newYDomain = yDomain.map(function (domain, axis, allDomains) {
|
|
593
|
+
var _a;
|
|
553
594
|
var y0 = yTransform(domain[0], axis);
|
|
554
595
|
var y1 = yTransform(domain[1], axis);
|
|
555
596
|
if (mousePosition[1] < offsetTop)
|
|
@@ -562,12 +603,16 @@ var Plot = function (props) {
|
|
|
562
603
|
y1 = Ycenter + (y1 - Ycenter) * multiplier;
|
|
563
604
|
}
|
|
564
605
|
if (Math.abs(y1 - y0) > 10) {
|
|
565
|
-
|
|
566
|
-
|
|
606
|
+
if ((_a = props.limitZoom) !== null && _a !== void 0 ? _a : false)
|
|
607
|
+
return [Math.max(defaultYdomain[axis][0], yInvTransform(y0, axis)), Math.min(defaultYdomain[axis][1], yInvTransform(y1, axis))];
|
|
608
|
+
return [yInvTransform(y0, axis), yInvTransform(y1, axis)];
|
|
567
609
|
}
|
|
568
|
-
return
|
|
569
|
-
};
|
|
570
|
-
|
|
610
|
+
return domain;
|
|
611
|
+
});
|
|
612
|
+
if (!_.isEqual(newYDomain, yDomain)) {
|
|
613
|
+
// todo: added contraint to t domain when mode is zoom-horizontal
|
|
614
|
+
setYdomain(newYDomain);
|
|
615
|
+
}
|
|
571
616
|
}
|
|
572
617
|
}
|
|
573
618
|
function handleMouseMove(evt) {
|
|
@@ -593,21 +638,19 @@ var Plot = function (props) {
|
|
|
593
638
|
if ((props.Tmin === undefined || Tmin > props.Tmin) &&
|
|
594
639
|
(props.Tmax === undefined || Tmax < props.Tmax))
|
|
595
640
|
setTdomain([Tmin, Tmax]);
|
|
596
|
-
|
|
597
|
-
var
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
applyToYDomain(zoomYAxis);
|
|
610
|
-
}
|
|
641
|
+
var zoomYAxis = function (domain, axis, allDomains) {
|
|
642
|
+
var dY = yInvTransform(mousePosition[1], axis) - yInvTransform(ptTransform.y, axis);
|
|
643
|
+
// Need to type correct our arguements
|
|
644
|
+
var propMin = typeCorrect(props.Ymin, axis);
|
|
645
|
+
var propMax = typeCorrect(props.Ymax, axis);
|
|
646
|
+
if ((propMin === undefined || domain[0] + dY > propMin) &&
|
|
647
|
+
(propMax === undefined || domain[1] + dY < propMax)) {
|
|
648
|
+
allDomains[axis] = [domain[0] + dY, domain[1] + dY];
|
|
649
|
+
return true;
|
|
650
|
+
}
|
|
651
|
+
return false;
|
|
652
|
+
};
|
|
653
|
+
applyToYDomain(zoomYAxis);
|
|
611
654
|
}
|
|
612
655
|
setMousePosition([ptTransform.x, ptTransform.y]);
|
|
613
656
|
// Here on mouse is snapped (if neccessary)
|
|
@@ -629,8 +672,8 @@ var Plot = function (props) {
|
|
|
629
672
|
pt.y = evt.clientY;
|
|
630
673
|
var ptTransform = pt.matrixTransform(SVGref.current.getScreenCTM().inverse());
|
|
631
674
|
setMouseClick([ptTransform.x, ptTransform.y]);
|
|
632
|
-
if (selectedMode
|
|
633
|
-
setMouseMode(
|
|
675
|
+
if (selectedMode.includes('zoom') && (props.zoom === undefined || props.zoom))
|
|
676
|
+
setMouseMode(selectedMode);
|
|
634
677
|
if (selectedMode === 'pan' && (props.pan === undefined || props.pan)) {
|
|
635
678
|
setMouseMode('pan');
|
|
636
679
|
setMouseStyle('grabbing');
|
|
@@ -650,25 +693,35 @@ var Plot = function (props) {
|
|
|
650
693
|
if (handlers.current.size > 0 && selectedMode === 'select')
|
|
651
694
|
handlers.current.forEach(function (v) { return (v.onClick !== undefined ? v.onClick(xInvTransform(v.allowSnapping ? ptFinal.x : ptTransform.x), yInvTransform(v.allowSnapping ? ptFinal.y : ptTransform.y, v.axis)) : null); });
|
|
652
695
|
}
|
|
653
|
-
function handleMouseUp(
|
|
696
|
+
function handleMouseUp() {
|
|
654
697
|
if (selectedMode === 'pan' && (props.pan === undefined || props.pan))
|
|
655
698
|
setMouseStyle('grab');
|
|
656
|
-
if (mouseMode
|
|
657
|
-
if (Math.abs(mousePosition[0] - mouseClick[0]) < 10) {
|
|
699
|
+
if (mouseMode.includes('zoom')) {
|
|
700
|
+
if ((Math.abs(mousePosition[0] - mouseClick[0]) < 10) && (Math.abs(mousePosition[1] - mouseClick[1]) < 10)) {
|
|
658
701
|
setMouseMode('none');
|
|
659
702
|
return;
|
|
660
703
|
}
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
704
|
+
if (mouseMode !== 'zoom-horizontal') {
|
|
705
|
+
var t0 = Math.min(xInvTransform(mousePosition[0]), xInvTransform(mouseClick[0]));
|
|
706
|
+
var t1 = Math.max(xInvTransform(mousePosition[0]), xInvTransform(mouseClick[0]));
|
|
707
|
+
var newTDomain = [Math.max(tDomain[0], t0), Math.min(tDomain[1], t1)];
|
|
708
|
+
if (selectedMode === 'zoom-vertical') {
|
|
709
|
+
var newYDomain = getConstrainedYDomain(newTDomain);
|
|
710
|
+
if (!_.isEqual(newYDomain, yDomain))
|
|
711
|
+
setYdomain(newYDomain);
|
|
712
|
+
}
|
|
713
|
+
setTdomain(newTDomain);
|
|
714
|
+
}
|
|
715
|
+
if (mouseMode !== 'zoom-vertical') {
|
|
716
|
+
var newYDomain = yDomain.map(function (domain, axis, allDomains) {
|
|
666
717
|
var y0 = Math.min(yInvTransform(mousePosition[1], axis), yInvTransform(mouseClick[1], axis));
|
|
667
718
|
var y1 = Math.max(yInvTransform(mousePosition[1], axis), yInvTransform(mouseClick[1], axis));
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
719
|
+
return [Math.max(domain[0], y0), Math.min(domain[1], y1)];
|
|
720
|
+
});
|
|
721
|
+
if (!_.isEqual(newYDomain, yDomain)) {
|
|
722
|
+
// todo: added contraint to t domain when mode is zoom-horizontal
|
|
723
|
+
setYdomain(newYDomain);
|
|
724
|
+
}
|
|
672
725
|
}
|
|
673
726
|
}
|
|
674
727
|
setMouseMode('none');
|
|
@@ -705,7 +758,7 @@ var Plot = function (props) {
|
|
|
705
758
|
};
|
|
706
759
|
applyToYDomain(correctFunction);
|
|
707
760
|
}
|
|
708
|
-
return (React.createElement(GraphContext_1.ContextWrapper, { XDomain: tDomain, MousePosition: mousePosition, MousePositionSnap: mousePositionSnap, YDomain: yDomain, CurrentMode: selectedMode, MouseIn: mouseIn, UpdateFlag: updateFlag, Data: data, XApplyPixelOffset: xApplyOffset, YApplyPixelOffset: yApplyOffset, XTransform: xTransform, YTransform: yTransform, XInvTransform: xInvTransform, YInvTransform: yInvTransform, SetXDomain: updateXDomain, SetYDomain: updateYDomain, AddData: addData, RemoveData: removeData, UpdateData: updateData, SetLegend: setLegend, RegisterSelect: registerSelect, RemoveSelect: removeSelect, UpdateSelect: updateSelect
|
|
761
|
+
return (React.createElement(GraphContext_1.ContextWrapper, { XDomain: tDomain, MousePosition: mousePosition, MousePositionSnap: mousePositionSnap, YDomain: yDomain, CurrentMode: selectedMode, MouseIn: mouseIn, UpdateFlag: updateFlag, Data: data, XApplyPixelOffset: xApplyOffset, YApplyPixelOffset: yApplyOffset, XTransform: xTransform, YTransform: yTransform, XInvTransform: xInvTransform, YInvTransform: yInvTransform, SetXDomain: updateXDomain, SetYDomain: updateYDomain, AddData: addData, RemoveData: removeData, UpdateData: updateData, SetLegend: setLegend, RegisterSelect: registerSelect, RemoveSelect: removeSelect, UpdateSelect: updateSelect },
|
|
709
762
|
React.createElement("div", { id: guid, style: { height: props.height, width: props.width, position: 'relative' } },
|
|
710
763
|
React.createElement("div", { style: { height: svgHeight, width: svgWidth, position: 'absolute', cursor: mouseStyle }, onWheel: handleMouseWheel, onMouseMove: handleMouseMove, onMouseDown: handleMouseDown, onMouseUp: handleMouseUp, onMouseLeave: handleMouseOut, onMouseEnter: handleMouseIn },
|
|
711
764
|
React.createElement("svg", { ref: SVGref, width: svgWidth < 0 ? 0 : svgWidth, height: svgHeight < 0 ? 0 : svgHeight, style: SvgStyle, viewBox: "0 0 " + (svgWidth < 0 ? 0 : svgWidth) + " " + (svgHeight < 0 ? 0 : svgHeight) },
|
|
@@ -728,21 +781,25 @@ var Plot = function (props) {
|
|
|
728
781
|
return element;
|
|
729
782
|
return null;
|
|
730
783
|
}),
|
|
731
|
-
!photoReady && (props.showMouse === undefined || props.showMouse) ?
|
|
732
|
-
React.createElement("path", { stroke: 'black', style: { strokeWidth: 2, opacity: mouseIn ? 0.8 : 0.0 }, d:
|
|
784
|
+
!photoReady && (props.showMouse === undefined || (props.showMouse !== 'none' && props.showMouse !== false)) ?
|
|
785
|
+
React.createElement("path", { stroke: 'black', style: { strokeWidth: 2, opacity: mouseIn ? 0.8 : 0.0 }, d: (props.showMouse !== 'horizontal' ?
|
|
786
|
+
"M " + mousePosition[0] + " " + offsetTop + " V " + (svgHeight - offsetBottom) :
|
|
787
|
+
"M " + offsetLeft + " " + mousePosition[1] + " H " + (svgWidth - offsetRight)) })
|
|
733
788
|
: null,
|
|
734
|
-
(props.zoom === undefined || props.zoom) && mouseMode
|
|
735
|
-
React.createElement("rect", { fillOpacity: 0.8, fill: 'black', x: Math.min(mouseClick[0], mousePosition[0]), y:
|
|
789
|
+
(props.zoom === undefined || props.zoom) && mouseMode.includes('zoom') ?
|
|
790
|
+
React.createElement("rect", { fillOpacity: 0.8, fill: 'black', x: mouseMode !== 'zoom-horizontal' ? Math.min(mouseClick[0], mousePosition[0]) : offsetLeft, y: mouseMode !== 'zoom-vertical' ? Math.min(mouseClick[1], mousePosition[1]) : offsetTop, width: mouseMode !== 'zoom-horizontal' ? Math.abs(mouseClick[0] - mousePosition[0]) : (svgWidth - offsetLeft - offsetRight), height: mouseMode !== 'zoom-vertical' ? Math.abs(mouseClick[1] - mousePosition[1]) : (svgHeight - offsetTop - offsetBottom) })
|
|
736
791
|
: null),
|
|
737
|
-
(photoReady) ? React.createElement(React.Fragment, null) :
|
|
738
|
-
React.createElement(InteractiveButtons_1.default, { showPan: (props.pan === undefined || props.pan), showZoom: props.zoom === undefined || props.zoom, showReset: !(props.pan !== undefined && props.zoom !== undefined && !props.zoom && !props.pan), showSelect: props.onSelect !== undefined || handlers.current.size > 0, showDownload: props.onDataInspect !== undefined, showCapture:
|
|
792
|
+
(photoReady || props.menuLocation === 'hide') ? React.createElement(React.Fragment, null) :
|
|
793
|
+
React.createElement(InteractiveButtons_1.default, { showPan: (props.pan === undefined || props.pan), showZoom: props.zoom === undefined || props.zoom, showReset: !(props.pan !== undefined && props.zoom !== undefined && !props.zoom && !props.pan), showSelect: props.onSelect !== undefined || handlers.current.size > 0, showDownload: props.onDataInspect !== undefined, showCapture: props.onCapture !== undefined, currentSelection: selectedMode, setSelection: setSelection, holdOpen: props.holdMenuOpen, heightAvaliable: svgHeight - 22, x: (props.menuLocation === 'left' ? 14 : (svgWidth - 14)), y: 22, "data-html2canvas-ignore": "true" }, React.Children.map(props.children, function (element) {
|
|
739
794
|
if (!React.isValidElement(element))
|
|
740
795
|
return null;
|
|
741
796
|
if (element.type === Button_1.default)
|
|
742
797
|
return element;
|
|
743
798
|
return null;
|
|
744
799
|
})))),
|
|
745
|
-
props.legend !== undefined && props.legend !== 'hidden' ?
|
|
800
|
+
props.legend !== undefined && props.legend !== 'hidden' ?
|
|
801
|
+
React.createElement(Legend_1.default, { location: props.legend, height: legendHeight, width: legendWidth, graphWidth: svgWidth, graphHeight: svgHeight, RequestLegendWidth: requestLegendWidthChange, RequestLegendHeight: requestLegendHeightChange, HideDisabled: photoReady })
|
|
802
|
+
: null)));
|
|
746
803
|
};
|
|
747
804
|
exports.default = Plot;
|
|
748
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGxvdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9QbG90LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEseUdBQXlHO0FBQ3pHLG1CQUFtQjtBQUNuQixFQUFFO0FBQ0YscUVBQXFFO0FBQ3JFLEVBQUU7QUFDRix3R0FBd0c7QUFDeEcsd0dBQXdHO0FBQ3hHLHNHQUFzRztBQUN0Ryx3RkFBd0Y7QUFDeEYsRUFBRTtBQUNGLDBDQUEwQztBQUMxQyxFQUFFO0FBQ0Ysd0dBQXdHO0FBQ3hHLHdHQUF3RztBQUN4Ryw0RUFBNEU7QUFDNUUsRUFBRTtBQUNGLDhCQUE4QjtBQUM5Qix3R0FBd0c7QUFDeEcsMEJBQTBCO0FBQzFCLG1EQUFtRDtBQUNuRCxFQUFFO0FBQ0YseUdBQXlHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUd6Ryw2QkFBK0I7QUFFL0IsMkRBQXNEO0FBQ3RELCtDQUFpSDtBQUNqSCxtRUFBMEQ7QUFDMUQsaUNBQTBDO0FBQzFDLHVDQUFrQztBQUNsQyxxQ0FBZ0M7QUFDaEMseUNBQW9DO0FBQ3BDLG1DQUE4QjtBQUM5Qix5REFBb0Q7QUFDcEQsK0JBQTBCO0FBQzFCLG1DQUE4QjtBQUM5Qix1REFBa0Q7QUFDbEQsbURBQThDO0FBQzlDLG1EQUE4QztBQUM5QyxtQ0FBOEI7QUFDOUIsMkRBQXNEO0FBQ3RELHFDQUFnQztBQUNoQywrQ0FBMEM7QUFDMUMsMENBQTRDO0FBQzVDLElBQU0sV0FBVyxHQUFRLFlBQVksQ0FBQztBQXVDdEMsSUFBTSxRQUFRLEdBQXdCO0lBQ2xDLElBQUksRUFBRSxNQUFNO0lBQ1osVUFBVSxFQUFFLE1BQU07SUFDbEIsa0JBQWtCLEVBQUUsTUFBTTtJQUMxQixnQkFBZ0IsRUFBRSxNQUFNO0lBQ3hCLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLGFBQWEsRUFBRSxNQUFNO0lBQ3JCLFlBQVksRUFBRSxNQUFNO0lBQ3BCLGFBQWEsRUFBRSxNQUFNO0NBQ3hCLENBQUM7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
|
|
805
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGxvdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9QbG90LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEseUdBQXlHO0FBQ3pHLG1CQUFtQjtBQUNuQixFQUFFO0FBQ0YscUVBQXFFO0FBQ3JFLEVBQUU7QUFDRix3R0FBd0c7QUFDeEcsd0dBQXdHO0FBQ3hHLHNHQUFzRztBQUN0Ryx3RkFBd0Y7QUFDeEYsRUFBRTtBQUNGLDBDQUEwQztBQUMxQyxFQUFFO0FBQ0Ysd0dBQXdHO0FBQ3hHLHdHQUF3RztBQUN4Ryw0RUFBNEU7QUFDNUUsRUFBRTtBQUNGLDhCQUE4QjtBQUM5Qix3R0FBd0c7QUFDeEcsMEJBQTBCO0FBQzFCLG1EQUFtRDtBQUNuRCxFQUFFO0FBQ0YseUdBQXlHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUd6Ryw2QkFBK0I7QUFDL0IsMEJBQTRCO0FBQzVCLDJEQUFzRDtBQUN0RCwrQ0FBNkg7QUFDN0gsbUVBQTBEO0FBQzFELGlDQUEwQztBQUMxQyx1Q0FBa0M7QUFDbEMscUNBQWdDO0FBQ2hDLHlDQUFvQztBQUNwQyxtQ0FBOEI7QUFDOUIseURBQW9EO0FBQ3BELCtCQUEwQjtBQUMxQixtQ0FBOEI7QUFDOUIsdURBQWtEO0FBQ2xELG1EQUE4QztBQUM5QyxtREFBOEM7QUFDOUMsbUNBQThCO0FBQzlCLDJEQUFzRDtBQUN0RCxxQ0FBZ0M7QUFDaEMsK0NBQTBDO0FBQzFDLDBDQUE0QztBQUM1QyxJQUFNLFdBQVcsR0FBUSxZQUFZLENBQUM7QUF5Q3RDLElBQU0sUUFBUSxHQUF3QjtJQUNsQyxJQUFJLEVBQUUsTUFBTTtJQUNaLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLGtCQUFrQixFQUFFLE1BQU07SUFDMUIsZ0JBQWdCLEVBQUUsTUFBTTtJQUN4QixlQUFlLEVBQUUsTUFBTTtJQUN2QixhQUFhLEVBQUUsTUFBTTtJQUNyQixZQUFZLEVBQUUsTUFBTTtJQUNwQixhQUFhLEVBQUUsTUFB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
|