@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/TimeAxis.js
CHANGED
|
@@ -1,433 +1,433 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// ******************************************************************************************************
|
|
3
|
-
// TimeAxis.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
|
-
// 03/18/2021 - 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
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
41
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
42
|
-
if (ar || !(i in from)) {
|
|
43
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
44
|
-
ar[i] = from[i];
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
48
|
-
};
|
|
49
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
-
var React = require("react");
|
|
51
|
-
var GraphContext_1 = require("./GraphContext");
|
|
52
|
-
var moment = require("moment");
|
|
53
|
-
var helper_functions_1 = require("@gpa-gemstone/helper-functions");
|
|
54
|
-
var lodash_1 = require("lodash");
|
|
55
|
-
var msPerSecond = 1000.00;
|
|
56
|
-
var msPerMinute = msPerSecond * 60.0;
|
|
57
|
-
var msPerHour = msPerMinute * 60.0;
|
|
58
|
-
var msPerDay = msPerHour * 24.0;
|
|
59
|
-
var msPerYear = msPerDay * 365;
|
|
60
|
-
function TimeAxis(props) {
|
|
61
|
-
var _a, _b, _c, _d;
|
|
62
|
-
/*
|
|
63
|
-
Used on bottom of Plot.
|
|
64
|
-
*/
|
|
65
|
-
var context = React.useContext(GraphContext_1.GraphContext);
|
|
66
|
-
var _e = __read(React.useState([]), 2), tick = _e[0], setTick = _e[1];
|
|
67
|
-
var _f = __read(React.useState(0), 2), hLabel = _f[0], setHlabel = _f[1];
|
|
68
|
-
var _g = __read(React.useState(0), 2), hAxis = _g[0], setHAxis = _g[1];
|
|
69
|
-
var _h = __read(React.useState('YYYY'), 2), tFormat = _h[0], setTformat = _h[1];
|
|
70
|
-
var _j = __read(React.useState(''), 2), dFormat = _j[0], setDformat = _j[1];
|
|
71
|
-
var _k = __read(React.useState('Time'), 2), title = _k[0], setTitle = _k[1];
|
|
72
|
-
// Adjust space for X Axis labels
|
|
73
|
-
React.useEffect(function () {
|
|
74
|
-
setHlabel(title !== undefined ? (0, helper_functions_1.GetTextHeight)("Segoe UI", '1em', title) : 0);
|
|
75
|
-
}, [title]);
|
|
76
|
-
// Adjust unit label
|
|
77
|
-
React.useEffect(function () {
|
|
78
|
-
if (props.label === undefined)
|
|
79
|
-
setTitle(undefined);
|
|
80
|
-
var titleFormat = "";
|
|
81
|
-
var unitLabel = "";
|
|
82
|
-
switch (tFormat) {
|
|
83
|
-
case ('SSS'):
|
|
84
|
-
titleFormat = "MMM Do, YYYY HH:mm:ss";
|
|
85
|
-
unitLabel = " (ms)";
|
|
86
|
-
break;
|
|
87
|
-
case ('ss.SS'):
|
|
88
|
-
titleFormat = "MMM Do, YYYY HH:mm";
|
|
89
|
-
unitLabel = " (sec.ms)";
|
|
90
|
-
break;
|
|
91
|
-
case ('ss'):
|
|
92
|
-
titleFormat = "MMM Do, YYYY HH:mm";
|
|
93
|
-
unitLabel = " (sec)";
|
|
94
|
-
break;
|
|
95
|
-
case ('mm:ss'):
|
|
96
|
-
titleFormat = "MMM Do, YYYY HH";
|
|
97
|
-
unitLabel = " (min:sec)";
|
|
98
|
-
break;
|
|
99
|
-
case ('mm'):
|
|
100
|
-
titleFormat = "MMM Do, YYYY HH";
|
|
101
|
-
unitLabel = " (min)";
|
|
102
|
-
break;
|
|
103
|
-
case ('HH:mm'):
|
|
104
|
-
titleFormat = "MMM Do, YYYY";
|
|
105
|
-
unitLabel = " (hour:min)";
|
|
106
|
-
break;
|
|
107
|
-
case ('HH'):
|
|
108
|
-
titleFormat = "MMM Do, YYYY";
|
|
109
|
-
unitLabel = " (hour)";
|
|
110
|
-
break;
|
|
111
|
-
case ('DD HH'):
|
|
112
|
-
titleFormat = "MMM YYYY";
|
|
113
|
-
unitLabel = " (day hour)";
|
|
114
|
-
break;
|
|
115
|
-
case ('MM/DD'):
|
|
116
|
-
titleFormat = "YYYY";
|
|
117
|
-
unitLabel = " (month/day)";
|
|
118
|
-
break;
|
|
119
|
-
case ('MM YY'):
|
|
120
|
-
titleFormat = "";
|
|
121
|
-
unitLabel = " (month year)";
|
|
122
|
-
break;
|
|
123
|
-
case ('YYYY'):
|
|
124
|
-
titleFormat = "";
|
|
125
|
-
unitLabel = " (year)";
|
|
126
|
-
break;
|
|
127
|
-
default:
|
|
128
|
-
console.warn("Unrecognized format: "
|
|
129
|
-
break;
|
|
130
|
-
}
|
|
131
|
-
if (props.label === '') {
|
|
132
|
-
var formatedTitle = titleFormat === "" ? "Time" : formatTS(tick[0], titleFormat);
|
|
133
|
-
setTitle(formatedTitle + unitLabel);
|
|
134
|
-
}
|
|
135
|
-
else
|
|
136
|
-
setTitle(props.label + unitLabel);
|
|
137
|
-
}, [tFormat, props.label, tick]);
|
|
138
|
-
// Adjust space for X Tick labels
|
|
139
|
-
React.useEffect(function () {
|
|
140
|
-
var dX = Math.max.apply(Math, __spreadArray([], __read(tick.map(function (t) { return (0, helper_functions_1.GetTextHeight)("Segoe UI", '1em', formatTS(t, tFormat)); })), false));
|
|
141
|
-
dX = (isFinite(dX) ? dX : 0) + 12;
|
|
142
|
-
setHAxis(dX);
|
|
143
|
-
}, [tick, tFormat]);
|
|
144
|
-
React.useEffect(function () {
|
|
145
|
-
if (hAxis + hLabel !== props.heightAxis)
|
|
146
|
-
props.setHeight(hAxis + hLabel);
|
|
147
|
-
}, [hAxis, hLabel, props.heightAxis, props.setHeight]);
|
|
148
|
-
React.useEffect(function () {
|
|
149
|
-
var _a;
|
|
150
|
-
var deltaT = context.XDomain[1] - context.XDomain[0];
|
|
151
|
-
if (deltaT === 0)
|
|
152
|
-
return;
|
|
153
|
-
var format = 'YYYY';
|
|
154
|
-
var dateFormat = '';
|
|
155
|
-
if (deltaT < msPerYear * 15 && deltaT >= msPerYear) {
|
|
156
|
-
format = 'MM YY';
|
|
157
|
-
dateFormat = '';
|
|
158
|
-
}
|
|
159
|
-
if (deltaT < msPerYear && deltaT >= 30 * msPerDay) {
|
|
160
|
-
format = 'MM/DD';
|
|
161
|
-
dateFormat = 'YY';
|
|
162
|
-
}
|
|
163
|
-
if (deltaT < 30 * msPerDay && deltaT >= 2 * msPerDay) {
|
|
164
|
-
format = 'DD HH';
|
|
165
|
-
dateFormat = 'YY';
|
|
166
|
-
}
|
|
167
|
-
if (deltaT < 2 * msPerDay && deltaT >= 30 * msPerHour) {
|
|
168
|
-
format = 'HH';
|
|
169
|
-
dateFormat = 'MM/DD';
|
|
170
|
-
}
|
|
171
|
-
if (deltaT < 30 * msPerHour && deltaT >= msPerHour) {
|
|
172
|
-
format = 'HH:mm';
|
|
173
|
-
dateFormat = 'MM/DD';
|
|
174
|
-
}
|
|
175
|
-
if (deltaT < msPerHour && deltaT >= 30 * msPerMinute) {
|
|
176
|
-
format = 'mm';
|
|
177
|
-
dateFormat = 'MM/DD HH';
|
|
178
|
-
}
|
|
179
|
-
if (deltaT < 30 * msPerMinute && deltaT >= msPerMinute) {
|
|
180
|
-
format = 'mm:ss';
|
|
181
|
-
dateFormat = 'MM/DD HH';
|
|
182
|
-
}
|
|
183
|
-
if (deltaT < msPerMinute && deltaT >= 30 * msPerSecond) {
|
|
184
|
-
format = 'ss';
|
|
185
|
-
dateFormat = 'MM/DD HH:mm';
|
|
186
|
-
}
|
|
187
|
-
if (deltaT < 30 * msPerSecond && deltaT >= msPerSecond) {
|
|
188
|
-
format = 'ss.SS';
|
|
189
|
-
dateFormat = 'MM/DD HH:mm';
|
|
190
|
-
}
|
|
191
|
-
if (deltaT < msPerSecond) {
|
|
192
|
-
format = 'SSS';
|
|
193
|
-
dateFormat = 'MM/DD HH:mm:ss';
|
|
194
|
-
}
|
|
195
|
-
var Tstart = moment.utc(context.XDomain[0]);
|
|
196
|
-
var Tend = moment.utc(context.XDomain[1]);
|
|
197
|
-
var Tdiff = moment.duration(moment.utc(context.XDomain[1]).diff(moment.utc(context.XDomain[0])));
|
|
198
|
-
var Ttick = (0, lodash_1.cloneDeep)(Tstart);
|
|
199
|
-
var step = 10;
|
|
200
|
-
var stepType = 'y';
|
|
201
|
-
if (Tdiff.asYears() >= 70) {
|
|
202
|
-
step = 10;
|
|
203
|
-
stepType = 'y';
|
|
204
|
-
setTopOfYear(Ttick);
|
|
205
|
-
Ttick.year(Math.floor((Ttick.year()) / 10.0) * 10.0);
|
|
206
|
-
}
|
|
207
|
-
if (Tdiff.asYears() < 70 && Tdiff.asYears() >= 40) {
|
|
208
|
-
step = 5;
|
|
209
|
-
setTopOfYear(Ttick);
|
|
210
|
-
Ttick.year(Math.floor((Ttick.year()) / 5.0) * 5.0);
|
|
211
|
-
}
|
|
212
|
-
if (Tdiff.asYears() < 40 && Tdiff.asYears() >= 15) {
|
|
213
|
-
step = 2;
|
|
214
|
-
setTopOfYear(Ttick);
|
|
215
|
-
Ttick.year(Math.floor((Ttick.year()) / 2.0) * 2.0);
|
|
216
|
-
}
|
|
217
|
-
if (Tdiff.asYears() < 15 && Tdiff.asYears() >= 6) {
|
|
218
|
-
stepType = 'M';
|
|
219
|
-
step = 12;
|
|
220
|
-
setTopOfYear(Ttick);
|
|
221
|
-
}
|
|
222
|
-
if (Tdiff.asYears() < 6 && Tdiff.asYears() >= 4) {
|
|
223
|
-
stepType = 'M';
|
|
224
|
-
step = 6;
|
|
225
|
-
setTopOfMonth(Ttick);
|
|
226
|
-
Ttick.month(Math.floor((Ttick.month()) / 6.0) * 6.0);
|
|
227
|
-
}
|
|
228
|
-
if (Tdiff.asYears() < 4 && Tdiff.asYears() >= 1.5) {
|
|
229
|
-
stepType = 'M';
|
|
230
|
-
step = 3;
|
|
231
|
-
setTopOfMonth(Ttick);
|
|
232
|
-
Ttick.month(Math.floor((Ttick.month()) / 3.0) * 3.0);
|
|
233
|
-
}
|
|
234
|
-
if (Tdiff.asYears() < 1.5 && Tdiff.asMonths() >= 6) {
|
|
235
|
-
stepType = 'M';
|
|
236
|
-
step = 1;
|
|
237
|
-
setTopOfMonth(Ttick);
|
|
238
|
-
}
|
|
239
|
-
if (Tdiff.asMonths() < 6 && Tdiff.asMonths() >= 2) {
|
|
240
|
-
stepType = 'w';
|
|
241
|
-
step = 2;
|
|
242
|
-
setTopOfWeek(Ttick);
|
|
243
|
-
}
|
|
244
|
-
if (Tdiff.asMonths() < 2 && Tdiff.asMonths() >= 1) {
|
|
245
|
-
stepType = 'w';
|
|
246
|
-
step = 1;
|
|
247
|
-
setTopOfWeek(Ttick);
|
|
248
|
-
}
|
|
249
|
-
if (Tdiff.asMonths() < 1 && Tdiff.asDays() >= 16) {
|
|
250
|
-
stepType = 'd';
|
|
251
|
-
step = 2;
|
|
252
|
-
setTopOfDay(Ttick);
|
|
253
|
-
}
|
|
254
|
-
if (Tdiff.asDays() < 16 && Tdiff.asDays() >= 10) {
|
|
255
|
-
stepType = 'd';
|
|
256
|
-
step = 1;
|
|
257
|
-
setTopOfDay(Ttick);
|
|
258
|
-
}
|
|
259
|
-
if (Tdiff.asDays() < 10 && Tdiff.asDays() >= 3) {
|
|
260
|
-
stepType = 'h';
|
|
261
|
-
step = 12;
|
|
262
|
-
setTopOfHour(Ttick);
|
|
263
|
-
Ttick.hours(Math.floor((Ttick.hours()) / 12.0) * 12.0);
|
|
264
|
-
}
|
|
265
|
-
if (Tdiff.asDays() < 3 && Tdiff.asHours() >= 30) {
|
|
266
|
-
stepType = 'h';
|
|
267
|
-
step = 6;
|
|
268
|
-
setTopOfHour(Ttick);
|
|
269
|
-
Ttick.hours(Math.floor((Ttick.hours()) / 6.0) * 6.0);
|
|
270
|
-
}
|
|
271
|
-
if (Tdiff.asHours() < 30 && Tdiff.asHours() >= 18) {
|
|
272
|
-
stepType = 'h';
|
|
273
|
-
step = 3;
|
|
274
|
-
setTopOfHour(Ttick);
|
|
275
|
-
Ttick.hours(Math.floor((Ttick.hours()) / 3.0) * 3.0);
|
|
276
|
-
}
|
|
277
|
-
if (Tdiff.asHours() < 18 && Tdiff.asHours() >= 6) {
|
|
278
|
-
stepType = 'h';
|
|
279
|
-
step = 1;
|
|
280
|
-
setTopOfHour(Ttick);
|
|
281
|
-
}
|
|
282
|
-
if (Tdiff.asHours() < 6 && Tdiff.asHours() >= 3) {
|
|
283
|
-
stepType = 'm';
|
|
284
|
-
step = 30;
|
|
285
|
-
setTopOfMinute(Ttick);
|
|
286
|
-
Ttick.minutes(Math.floor((Ttick.minutes()) / 30.0) * 30.0);
|
|
287
|
-
}
|
|
288
|
-
if (Tdiff.asHours() < 3 && Tdiff.asHours() >= 1) {
|
|
289
|
-
stepType = 'm';
|
|
290
|
-
step = 15;
|
|
291
|
-
setTopOfMinute(Ttick);
|
|
292
|
-
Ttick.minutes(Math.floor((Ttick.minutes()) / 15.0) * 15.0);
|
|
293
|
-
}
|
|
294
|
-
if (Tdiff.asHours() < 1 && Tdiff.asMinutes() >= 20) {
|
|
295
|
-
stepType = 'm';
|
|
296
|
-
step = 5;
|
|
297
|
-
setTopOfMinute(Ttick);
|
|
298
|
-
Ttick.minutes(Math.floor((Ttick.minutes()) / 5.0) * 5.0);
|
|
299
|
-
}
|
|
300
|
-
if (Tdiff.asMinutes() < 20 && Tdiff.asMinutes() >= 10) {
|
|
301
|
-
stepType = 'm';
|
|
302
|
-
step = 2;
|
|
303
|
-
setTopOfMinute(Ttick);
|
|
304
|
-
Ttick.minutes(Math.floor((Ttick.minutes()) / 2.0) * 2.0);
|
|
305
|
-
}
|
|
306
|
-
if (Tdiff.asMinutes() < 10 && Tdiff.asMinutes() >= 5) {
|
|
307
|
-
stepType = 'm';
|
|
308
|
-
step = 1;
|
|
309
|
-
setTopOfMinute(Ttick);
|
|
310
|
-
}
|
|
311
|
-
if (Tdiff.asMinutes() < 5 && Tdiff.asMinutes() >= 2) {
|
|
312
|
-
stepType = 's';
|
|
313
|
-
step = 30;
|
|
314
|
-
setTopOfSecond(Ttick);
|
|
315
|
-
Ttick.second(Math.floor((Ttick.second()) / 30) * 30.0);
|
|
316
|
-
}
|
|
317
|
-
if (Tdiff.asMinutes() < 2 && Tdiff.asMinutes() >= 1) {
|
|
318
|
-
stepType = 's';
|
|
319
|
-
step = 15;
|
|
320
|
-
setTopOfSecond(Ttick);
|
|
321
|
-
Ttick.second(Math.floor((Ttick.second()) / 15) * 15.0);
|
|
322
|
-
}
|
|
323
|
-
if (Tdiff.asMinutes() < 1 && Tdiff.asSeconds() >= 30) {
|
|
324
|
-
stepType = 's';
|
|
325
|
-
step = 5;
|
|
326
|
-
setTopOfSecond(Ttick);
|
|
327
|
-
Ttick.second(Math.floor((Ttick.second()) / 5) * 5.0);
|
|
328
|
-
}
|
|
329
|
-
if (Tdiff.asSeconds() < 30 && Tdiff.asSeconds() >= 15) {
|
|
330
|
-
stepType = 's';
|
|
331
|
-
step = 2;
|
|
332
|
-
setTopOfSecond(Ttick);
|
|
333
|
-
}
|
|
334
|
-
if (Tdiff.asSeconds() < 15 && Tdiff.asSeconds() >= 5) {
|
|
335
|
-
stepType = 's';
|
|
336
|
-
step = 1;
|
|
337
|
-
setTopOfSecond(Ttick);
|
|
338
|
-
}
|
|
339
|
-
if (Tdiff.asSeconds() < 5 && Tdiff.asSeconds() >= 2) {
|
|
340
|
-
stepType = 'ms';
|
|
341
|
-
step = 500;
|
|
342
|
-
setTopOfms(Ttick);
|
|
343
|
-
Ttick.millisecond(Math.floor((Ttick.millisecond()) / 500) * 500.0);
|
|
344
|
-
}
|
|
345
|
-
if (Tdiff.asSeconds() < 2 && Tdiff.asSeconds() >= 1) {
|
|
346
|
-
stepType = 'ms';
|
|
347
|
-
step = 250;
|
|
348
|
-
setTopOfms(Ttick);
|
|
349
|
-
Ttick.millisecond(Math.floor((Ttick.millisecond()) / 250) * 250.0);
|
|
350
|
-
}
|
|
351
|
-
if (Tdiff.asSeconds() < 1 && Tdiff.asMilliseconds() >= 500) {
|
|
352
|
-
stepType = 'ms';
|
|
353
|
-
step = 100;
|
|
354
|
-
setTopOfms(Ttick);
|
|
355
|
-
Ttick.millisecond(Math.floor((Ttick.millisecond()) / 100) * 100.0);
|
|
356
|
-
}
|
|
357
|
-
if (Tdiff.asMilliseconds() < 500 && Tdiff.asMilliseconds() >= 100) {
|
|
358
|
-
stepType = 'ms';
|
|
359
|
-
step = 50;
|
|
360
|
-
setTopOfms(Ttick);
|
|
361
|
-
Ttick.millisecond(Math.floor((Ttick.millisecond()) / 50) * 50.0);
|
|
362
|
-
}
|
|
363
|
-
if (Tdiff.asMilliseconds() < 100 && Tdiff.asMilliseconds() >= 20) {
|
|
364
|
-
stepType = 'ms';
|
|
365
|
-
step = 10;
|
|
366
|
-
setTopOfms(Ttick);
|
|
367
|
-
Ttick.millisecond(Math.floor((Ttick.millisecond()) / 10) * 10.0);
|
|
368
|
-
}
|
|
369
|
-
if (Tdiff.asMilliseconds() < 20) {
|
|
370
|
-
stepType = 'ms';
|
|
371
|
-
setTopOfms(Ttick);
|
|
372
|
-
step = 1;
|
|
373
|
-
}
|
|
374
|
-
var newTicks = [Ttick.add(step, stepType)];
|
|
375
|
-
while (newTicks[newTicks.length - 1] < Tend)
|
|
376
|
-
newTicks.push(newTicks[newTicks.length - 1].clone().add(step, stepType));
|
|
377
|
-
newTicks.pop();
|
|
378
|
-
setTick(newTicks.map(function (t) { return t.valueOf(); }));
|
|
379
|
-
setTformat(format);
|
|
380
|
-
if ((_a = props.showDate) !== null && _a !== void 0 ? _a : false)
|
|
381
|
-
setDformat(dateFormat);
|
|
382
|
-
else
|
|
383
|
-
setDformat('');
|
|
384
|
-
}, [context.XDomain, props.showDate]);
|
|
385
|
-
function setTopOfms(d) {
|
|
386
|
-
d.milliseconds(Math.floor(d.millisecond()));
|
|
387
|
-
}
|
|
388
|
-
function setTopOfSecond(d) {
|
|
389
|
-
setTopOfms(d);
|
|
390
|
-
d.milliseconds(0);
|
|
391
|
-
}
|
|
392
|
-
function setTopOfMinute(d) {
|
|
393
|
-
setTopOfSecond(d);
|
|
394
|
-
d.seconds(0);
|
|
395
|
-
}
|
|
396
|
-
function setTopOfHour(d) {
|
|
397
|
-
setTopOfMinute(d);
|
|
398
|
-
d.minutes(0);
|
|
399
|
-
}
|
|
400
|
-
function setTopOfDay(d) {
|
|
401
|
-
setTopOfHour(d);
|
|
402
|
-
d.hours(0);
|
|
403
|
-
}
|
|
404
|
-
function setTopOfWeek(d) {
|
|
405
|
-
setTopOfDay(d);
|
|
406
|
-
d.weekday(0);
|
|
407
|
-
}
|
|
408
|
-
function setTopOfMonth(d) {
|
|
409
|
-
setTopOfDay(d);
|
|
410
|
-
d.date(1);
|
|
411
|
-
}
|
|
412
|
-
function setTopOfYear(d) {
|
|
413
|
-
setTopOfDay(d);
|
|
414
|
-
d.dayOfYear(0);
|
|
415
|
-
}
|
|
416
|
-
function formatTS(t, f) {
|
|
417
|
-
var TS = moment.utc(t);
|
|
418
|
-
return TS.format(f);
|
|
419
|
-
}
|
|
420
|
-
return (React.createElement("g", null,
|
|
421
|
-
React.createElement("path", { stroke: 'black', style: { strokeWidth: 1 }, d: "M "
|
|
422
|
-
((_c = props.showLeftMostTick) !== null && _c !== void 0 ? _c : true) ? React.createElement("path", { stroke: 'black', style: { strokeWidth: 1 }, d: "M "
|
|
423
|
-
((_d = props.showRightMostTick) !== null && _d !== void 0 ? _d : true) ? React.createElement("path", { stroke: 'black', style: { strokeWidth: 1 }, d: "M "
|
|
424
|
-
props.showTicks === undefined || props.showTicks ?
|
|
425
|
-
React.createElement(React.Fragment, null,
|
|
426
|
-
tick.map(function (l, i) { return React.createElement("path", { key: i, stroke: 'black', style: { strokeWidth: 1, transition: 'd 0.5s' }, d: "M "
|
|
427
|
-
tick.map(function (l, i) { return React.createElement("text", { fill: 'black', key: i, style: { fontSize: '1em', textAnchor: 'middle', dominantBaseline: 'hanging', transition: 'x 0.5s, y 0.5s' }, y: props.height - props.offsetBottom + 8, x: context.XTransformation(l) }, formatTS(l, tFormat)); }))
|
|
428
|
-
: null,
|
|
429
|
-
title !== undefined ? React.createElement("text", { fill: 'black', style: { fontSize: '1em', textAnchor: 'middle', dominantBaseline: 'middle' }, x: props.offsetLeft + ((props.width - props.offsetLeft - props.offsetRight) / 2), y: props.height - props.offsetBottom + hAxis }, title) : null,
|
|
430
|
-
(dFormat !== '' && tick.length > 0) ? React.createElement("text", { fill: 'black', style: { fontSize: '1em', textAnchor: 'end', dominantBaseline: 'middle' }, x: props.width - props.offsetRight, y: props.height - props.offsetBottom + hAxis }, formatTS(tick[0], dFormat)) : null));
|
|
431
|
-
}
|
|
432
|
-
exports.default = React.memo(TimeAxis);
|
|
433
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGltZUF4aXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvVGltZUF4aXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx5R0FBeUc7QUFDekcsdUJBQXVCO0FBQ3ZCLEVBQUU7QUFDRixxRUFBcUU7QUFDckUsRUFBRTtBQUNGLHdHQUF3RztBQUN4Ryx3R0FBd0c7QUFDeEcsc0dBQXNHO0FBQ3RHLHdGQUF3RjtBQUN4RixFQUFFO0FBQ0YsMENBQTBDO0FBQzFDLEVBQUU7QUFDRix3R0FBd0c7QUFDeEcsd0dBQXdHO0FBQ3hHLDRFQUE0RTtBQUM1RSxFQUFFO0FBQ0YsOEJBQThCO0FBQzlCLHdHQUF3RztBQUN4RywwQkFBMEI7QUFDMUIsbURBQW1EO0FBQ25ELEVBQUU7QUFDRix5R0FBeUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV6Ryw2QkFBK0I7QUFDL0IsK0NBQTJDO0FBQzNDLCtCQUFpQztBQUNqQyxtRUFBNkQ7QUFDN0QsaUNBQW1DO0FBaUJuQyxJQUFNLFdBQVcsR0FBRyxPQUFPLENBQUM7QUFDNUIsSUFBTSxXQUFXLEdBQUcsV0FBVyxHQUFFLElBQUksQ0FBQztBQUN0QyxJQUFNLFNBQVMsR0FBRyxXQUFXLEdBQUUsSUFBSSxDQUFDO0FBQ3BDLElBQU0sUUFBUSxHQUFHLFNBQVMsR0FBRSxJQUFJLENBQUM7QUFDakMsSUFBTSxTQUFTLEdBQUcsUUFBUSxHQUFFLEdBQUcsQ0FBQztBQUtoQyxTQUFTLFFBQVEsQ0FBQyxLQUFhOztJQUMzQjs7TUFFRTtJQUNGLElBQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsMkJBQVksQ0FBQyxDQUFBO0lBQ3hDLElBQUEsS0FBQSxPQUFpQixLQUFLLENBQUMsUUFBUSxDQUFXLEVBQUUsQ0FBQyxJQUFBLEVBQTVDLElBQUksUUFBQSxFQUFDLE9BQU8sUUFBZ0MsQ0FBQztJQUM5QyxJQUFBLEtBQUEsT0FBc0IsS0FBSyxDQUFDLFFBQVEsQ0FBUyxDQUFDLENB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
|
|
1
|
+
"use strict";
|
|
2
|
+
// ******************************************************************************************************
|
|
3
|
+
// TimeAxis.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
|
+
// 03/18/2021 - 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
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
41
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
42
|
+
if (ar || !(i in from)) {
|
|
43
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
44
|
+
ar[i] = from[i];
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
48
|
+
};
|
|
49
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
+
var React = require("react");
|
|
51
|
+
var GraphContext_1 = require("./GraphContext");
|
|
52
|
+
var moment = require("moment");
|
|
53
|
+
var helper_functions_1 = require("@gpa-gemstone/helper-functions");
|
|
54
|
+
var lodash_1 = require("lodash");
|
|
55
|
+
var msPerSecond = 1000.00;
|
|
56
|
+
var msPerMinute = msPerSecond * 60.0;
|
|
57
|
+
var msPerHour = msPerMinute * 60.0;
|
|
58
|
+
var msPerDay = msPerHour * 24.0;
|
|
59
|
+
var msPerYear = msPerDay * 365;
|
|
60
|
+
function TimeAxis(props) {
|
|
61
|
+
var _a, _b, _c, _d;
|
|
62
|
+
/*
|
|
63
|
+
Used on bottom of Plot.
|
|
64
|
+
*/
|
|
65
|
+
var context = React.useContext(GraphContext_1.GraphContext);
|
|
66
|
+
var _e = __read(React.useState([]), 2), tick = _e[0], setTick = _e[1];
|
|
67
|
+
var _f = __read(React.useState(0), 2), hLabel = _f[0], setHlabel = _f[1];
|
|
68
|
+
var _g = __read(React.useState(0), 2), hAxis = _g[0], setHAxis = _g[1];
|
|
69
|
+
var _h = __read(React.useState('YYYY'), 2), tFormat = _h[0], setTformat = _h[1];
|
|
70
|
+
var _j = __read(React.useState(''), 2), dFormat = _j[0], setDformat = _j[1];
|
|
71
|
+
var _k = __read(React.useState('Time'), 2), title = _k[0], setTitle = _k[1];
|
|
72
|
+
// Adjust space for X Axis labels
|
|
73
|
+
React.useEffect(function () {
|
|
74
|
+
setHlabel(title !== undefined ? (0, helper_functions_1.GetTextHeight)("Segoe UI", '1em', title) : 0);
|
|
75
|
+
}, [title]);
|
|
76
|
+
// Adjust unit label
|
|
77
|
+
React.useEffect(function () {
|
|
78
|
+
if (props.label === undefined)
|
|
79
|
+
setTitle(undefined);
|
|
80
|
+
var titleFormat = "";
|
|
81
|
+
var unitLabel = "";
|
|
82
|
+
switch (tFormat) {
|
|
83
|
+
case ('SSS'):
|
|
84
|
+
titleFormat = "MMM Do, YYYY HH:mm:ss";
|
|
85
|
+
unitLabel = " (ms)";
|
|
86
|
+
break;
|
|
87
|
+
case ('ss.SS'):
|
|
88
|
+
titleFormat = "MMM Do, YYYY HH:mm";
|
|
89
|
+
unitLabel = " (sec.ms)";
|
|
90
|
+
break;
|
|
91
|
+
case ('ss'):
|
|
92
|
+
titleFormat = "MMM Do, YYYY HH:mm";
|
|
93
|
+
unitLabel = " (sec)";
|
|
94
|
+
break;
|
|
95
|
+
case ('mm:ss'):
|
|
96
|
+
titleFormat = "MMM Do, YYYY HH";
|
|
97
|
+
unitLabel = " (min:sec)";
|
|
98
|
+
break;
|
|
99
|
+
case ('mm'):
|
|
100
|
+
titleFormat = "MMM Do, YYYY HH";
|
|
101
|
+
unitLabel = " (min)";
|
|
102
|
+
break;
|
|
103
|
+
case ('HH:mm'):
|
|
104
|
+
titleFormat = "MMM Do, YYYY";
|
|
105
|
+
unitLabel = " (hour:min)";
|
|
106
|
+
break;
|
|
107
|
+
case ('HH'):
|
|
108
|
+
titleFormat = "MMM Do, YYYY";
|
|
109
|
+
unitLabel = " (hour)";
|
|
110
|
+
break;
|
|
111
|
+
case ('DD HH'):
|
|
112
|
+
titleFormat = "MMM YYYY";
|
|
113
|
+
unitLabel = " (day hour)";
|
|
114
|
+
break;
|
|
115
|
+
case ('MM/DD'):
|
|
116
|
+
titleFormat = "YYYY";
|
|
117
|
+
unitLabel = " (month/day)";
|
|
118
|
+
break;
|
|
119
|
+
case ('MM YY'):
|
|
120
|
+
titleFormat = "";
|
|
121
|
+
unitLabel = " (month year)";
|
|
122
|
+
break;
|
|
123
|
+
case ('YYYY'):
|
|
124
|
+
titleFormat = "";
|
|
125
|
+
unitLabel = " (year)";
|
|
126
|
+
break;
|
|
127
|
+
default:
|
|
128
|
+
console.warn("Unrecognized format: ".concat(tFormat));
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
131
|
+
if (props.label === '') {
|
|
132
|
+
var formatedTitle = titleFormat === "" ? "Time" : formatTS(tick[0], titleFormat);
|
|
133
|
+
setTitle(formatedTitle + unitLabel);
|
|
134
|
+
}
|
|
135
|
+
else
|
|
136
|
+
setTitle(props.label + unitLabel);
|
|
137
|
+
}, [tFormat, props.label, tick]);
|
|
138
|
+
// Adjust space for X Tick labels
|
|
139
|
+
React.useEffect(function () {
|
|
140
|
+
var dX = Math.max.apply(Math, __spreadArray([], __read(tick.map(function (t) { return (0, helper_functions_1.GetTextHeight)("Segoe UI", '1em', formatTS(t, tFormat)); })), false));
|
|
141
|
+
dX = (isFinite(dX) ? dX : 0) + 12;
|
|
142
|
+
setHAxis(dX);
|
|
143
|
+
}, [tick, tFormat]);
|
|
144
|
+
React.useEffect(function () {
|
|
145
|
+
if (hAxis + hLabel !== props.heightAxis)
|
|
146
|
+
props.setHeight(hAxis + hLabel);
|
|
147
|
+
}, [hAxis, hLabel, props.heightAxis, props.setHeight]);
|
|
148
|
+
React.useEffect(function () {
|
|
149
|
+
var _a;
|
|
150
|
+
var deltaT = context.XDomain[1] - context.XDomain[0];
|
|
151
|
+
if (deltaT === 0)
|
|
152
|
+
return;
|
|
153
|
+
var format = 'YYYY';
|
|
154
|
+
var dateFormat = '';
|
|
155
|
+
if (deltaT < msPerYear * 15 && deltaT >= msPerYear) {
|
|
156
|
+
format = 'MM YY';
|
|
157
|
+
dateFormat = '';
|
|
158
|
+
}
|
|
159
|
+
if (deltaT < msPerYear && deltaT >= 30 * msPerDay) {
|
|
160
|
+
format = 'MM/DD';
|
|
161
|
+
dateFormat = 'YY';
|
|
162
|
+
}
|
|
163
|
+
if (deltaT < 30 * msPerDay && deltaT >= 2 * msPerDay) {
|
|
164
|
+
format = 'DD HH';
|
|
165
|
+
dateFormat = 'YY';
|
|
166
|
+
}
|
|
167
|
+
if (deltaT < 2 * msPerDay && deltaT >= 30 * msPerHour) {
|
|
168
|
+
format = 'HH';
|
|
169
|
+
dateFormat = 'MM/DD';
|
|
170
|
+
}
|
|
171
|
+
if (deltaT < 30 * msPerHour && deltaT >= msPerHour) {
|
|
172
|
+
format = 'HH:mm';
|
|
173
|
+
dateFormat = 'MM/DD';
|
|
174
|
+
}
|
|
175
|
+
if (deltaT < msPerHour && deltaT >= 30 * msPerMinute) {
|
|
176
|
+
format = 'mm';
|
|
177
|
+
dateFormat = 'MM/DD HH';
|
|
178
|
+
}
|
|
179
|
+
if (deltaT < 30 * msPerMinute && deltaT >= msPerMinute) {
|
|
180
|
+
format = 'mm:ss';
|
|
181
|
+
dateFormat = 'MM/DD HH';
|
|
182
|
+
}
|
|
183
|
+
if (deltaT < msPerMinute && deltaT >= 30 * msPerSecond) {
|
|
184
|
+
format = 'ss';
|
|
185
|
+
dateFormat = 'MM/DD HH:mm';
|
|
186
|
+
}
|
|
187
|
+
if (deltaT < 30 * msPerSecond && deltaT >= msPerSecond) {
|
|
188
|
+
format = 'ss.SS';
|
|
189
|
+
dateFormat = 'MM/DD HH:mm';
|
|
190
|
+
}
|
|
191
|
+
if (deltaT < msPerSecond) {
|
|
192
|
+
format = 'SSS';
|
|
193
|
+
dateFormat = 'MM/DD HH:mm:ss';
|
|
194
|
+
}
|
|
195
|
+
var Tstart = moment.utc(context.XDomain[0]);
|
|
196
|
+
var Tend = moment.utc(context.XDomain[1]);
|
|
197
|
+
var Tdiff = moment.duration(moment.utc(context.XDomain[1]).diff(moment.utc(context.XDomain[0])));
|
|
198
|
+
var Ttick = (0, lodash_1.cloneDeep)(Tstart);
|
|
199
|
+
var step = 10;
|
|
200
|
+
var stepType = 'y';
|
|
201
|
+
if (Tdiff.asYears() >= 70) {
|
|
202
|
+
step = 10;
|
|
203
|
+
stepType = 'y';
|
|
204
|
+
setTopOfYear(Ttick);
|
|
205
|
+
Ttick.year(Math.floor((Ttick.year()) / 10.0) * 10.0);
|
|
206
|
+
}
|
|
207
|
+
if (Tdiff.asYears() < 70 && Tdiff.asYears() >= 40) {
|
|
208
|
+
step = 5;
|
|
209
|
+
setTopOfYear(Ttick);
|
|
210
|
+
Ttick.year(Math.floor((Ttick.year()) / 5.0) * 5.0);
|
|
211
|
+
}
|
|
212
|
+
if (Tdiff.asYears() < 40 && Tdiff.asYears() >= 15) {
|
|
213
|
+
step = 2;
|
|
214
|
+
setTopOfYear(Ttick);
|
|
215
|
+
Ttick.year(Math.floor((Ttick.year()) / 2.0) * 2.0);
|
|
216
|
+
}
|
|
217
|
+
if (Tdiff.asYears() < 15 && Tdiff.asYears() >= 6) {
|
|
218
|
+
stepType = 'M';
|
|
219
|
+
step = 12;
|
|
220
|
+
setTopOfYear(Ttick);
|
|
221
|
+
}
|
|
222
|
+
if (Tdiff.asYears() < 6 && Tdiff.asYears() >= 4) {
|
|
223
|
+
stepType = 'M';
|
|
224
|
+
step = 6;
|
|
225
|
+
setTopOfMonth(Ttick);
|
|
226
|
+
Ttick.month(Math.floor((Ttick.month()) / 6.0) * 6.0);
|
|
227
|
+
}
|
|
228
|
+
if (Tdiff.asYears() < 4 && Tdiff.asYears() >= 1.5) {
|
|
229
|
+
stepType = 'M';
|
|
230
|
+
step = 3;
|
|
231
|
+
setTopOfMonth(Ttick);
|
|
232
|
+
Ttick.month(Math.floor((Ttick.month()) / 3.0) * 3.0);
|
|
233
|
+
}
|
|
234
|
+
if (Tdiff.asYears() < 1.5 && Tdiff.asMonths() >= 6) {
|
|
235
|
+
stepType = 'M';
|
|
236
|
+
step = 1;
|
|
237
|
+
setTopOfMonth(Ttick);
|
|
238
|
+
}
|
|
239
|
+
if (Tdiff.asMonths() < 6 && Tdiff.asMonths() >= 2) {
|
|
240
|
+
stepType = 'w';
|
|
241
|
+
step = 2;
|
|
242
|
+
setTopOfWeek(Ttick);
|
|
243
|
+
}
|
|
244
|
+
if (Tdiff.asMonths() < 2 && Tdiff.asMonths() >= 1) {
|
|
245
|
+
stepType = 'w';
|
|
246
|
+
step = 1;
|
|
247
|
+
setTopOfWeek(Ttick);
|
|
248
|
+
}
|
|
249
|
+
if (Tdiff.asMonths() < 1 && Tdiff.asDays() >= 16) {
|
|
250
|
+
stepType = 'd';
|
|
251
|
+
step = 2;
|
|
252
|
+
setTopOfDay(Ttick);
|
|
253
|
+
}
|
|
254
|
+
if (Tdiff.asDays() < 16 && Tdiff.asDays() >= 10) {
|
|
255
|
+
stepType = 'd';
|
|
256
|
+
step = 1;
|
|
257
|
+
setTopOfDay(Ttick);
|
|
258
|
+
}
|
|
259
|
+
if (Tdiff.asDays() < 10 && Tdiff.asDays() >= 3) {
|
|
260
|
+
stepType = 'h';
|
|
261
|
+
step = 12;
|
|
262
|
+
setTopOfHour(Ttick);
|
|
263
|
+
Ttick.hours(Math.floor((Ttick.hours()) / 12.0) * 12.0);
|
|
264
|
+
}
|
|
265
|
+
if (Tdiff.asDays() < 3 && Tdiff.asHours() >= 30) {
|
|
266
|
+
stepType = 'h';
|
|
267
|
+
step = 6;
|
|
268
|
+
setTopOfHour(Ttick);
|
|
269
|
+
Ttick.hours(Math.floor((Ttick.hours()) / 6.0) * 6.0);
|
|
270
|
+
}
|
|
271
|
+
if (Tdiff.asHours() < 30 && Tdiff.asHours() >= 18) {
|
|
272
|
+
stepType = 'h';
|
|
273
|
+
step = 3;
|
|
274
|
+
setTopOfHour(Ttick);
|
|
275
|
+
Ttick.hours(Math.floor((Ttick.hours()) / 3.0) * 3.0);
|
|
276
|
+
}
|
|
277
|
+
if (Tdiff.asHours() < 18 && Tdiff.asHours() >= 6) {
|
|
278
|
+
stepType = 'h';
|
|
279
|
+
step = 1;
|
|
280
|
+
setTopOfHour(Ttick);
|
|
281
|
+
}
|
|
282
|
+
if (Tdiff.asHours() < 6 && Tdiff.asHours() >= 3) {
|
|
283
|
+
stepType = 'm';
|
|
284
|
+
step = 30;
|
|
285
|
+
setTopOfMinute(Ttick);
|
|
286
|
+
Ttick.minutes(Math.floor((Ttick.minutes()) / 30.0) * 30.0);
|
|
287
|
+
}
|
|
288
|
+
if (Tdiff.asHours() < 3 && Tdiff.asHours() >= 1) {
|
|
289
|
+
stepType = 'm';
|
|
290
|
+
step = 15;
|
|
291
|
+
setTopOfMinute(Ttick);
|
|
292
|
+
Ttick.minutes(Math.floor((Ttick.minutes()) / 15.0) * 15.0);
|
|
293
|
+
}
|
|
294
|
+
if (Tdiff.asHours() < 1 && Tdiff.asMinutes() >= 20) {
|
|
295
|
+
stepType = 'm';
|
|
296
|
+
step = 5;
|
|
297
|
+
setTopOfMinute(Ttick);
|
|
298
|
+
Ttick.minutes(Math.floor((Ttick.minutes()) / 5.0) * 5.0);
|
|
299
|
+
}
|
|
300
|
+
if (Tdiff.asMinutes() < 20 && Tdiff.asMinutes() >= 10) {
|
|
301
|
+
stepType = 'm';
|
|
302
|
+
step = 2;
|
|
303
|
+
setTopOfMinute(Ttick);
|
|
304
|
+
Ttick.minutes(Math.floor((Ttick.minutes()) / 2.0) * 2.0);
|
|
305
|
+
}
|
|
306
|
+
if (Tdiff.asMinutes() < 10 && Tdiff.asMinutes() >= 5) {
|
|
307
|
+
stepType = 'm';
|
|
308
|
+
step = 1;
|
|
309
|
+
setTopOfMinute(Ttick);
|
|
310
|
+
}
|
|
311
|
+
if (Tdiff.asMinutes() < 5 && Tdiff.asMinutes() >= 2) {
|
|
312
|
+
stepType = 's';
|
|
313
|
+
step = 30;
|
|
314
|
+
setTopOfSecond(Ttick);
|
|
315
|
+
Ttick.second(Math.floor((Ttick.second()) / 30) * 30.0);
|
|
316
|
+
}
|
|
317
|
+
if (Tdiff.asMinutes() < 2 && Tdiff.asMinutes() >= 1) {
|
|
318
|
+
stepType = 's';
|
|
319
|
+
step = 15;
|
|
320
|
+
setTopOfSecond(Ttick);
|
|
321
|
+
Ttick.second(Math.floor((Ttick.second()) / 15) * 15.0);
|
|
322
|
+
}
|
|
323
|
+
if (Tdiff.asMinutes() < 1 && Tdiff.asSeconds() >= 30) {
|
|
324
|
+
stepType = 's';
|
|
325
|
+
step = 5;
|
|
326
|
+
setTopOfSecond(Ttick);
|
|
327
|
+
Ttick.second(Math.floor((Ttick.second()) / 5) * 5.0);
|
|
328
|
+
}
|
|
329
|
+
if (Tdiff.asSeconds() < 30 && Tdiff.asSeconds() >= 15) {
|
|
330
|
+
stepType = 's';
|
|
331
|
+
step = 2;
|
|
332
|
+
setTopOfSecond(Ttick);
|
|
333
|
+
}
|
|
334
|
+
if (Tdiff.asSeconds() < 15 && Tdiff.asSeconds() >= 5) {
|
|
335
|
+
stepType = 's';
|
|
336
|
+
step = 1;
|
|
337
|
+
setTopOfSecond(Ttick);
|
|
338
|
+
}
|
|
339
|
+
if (Tdiff.asSeconds() < 5 && Tdiff.asSeconds() >= 2) {
|
|
340
|
+
stepType = 'ms';
|
|
341
|
+
step = 500;
|
|
342
|
+
setTopOfms(Ttick);
|
|
343
|
+
Ttick.millisecond(Math.floor((Ttick.millisecond()) / 500) * 500.0);
|
|
344
|
+
}
|
|
345
|
+
if (Tdiff.asSeconds() < 2 && Tdiff.asSeconds() >= 1) {
|
|
346
|
+
stepType = 'ms';
|
|
347
|
+
step = 250;
|
|
348
|
+
setTopOfms(Ttick);
|
|
349
|
+
Ttick.millisecond(Math.floor((Ttick.millisecond()) / 250) * 250.0);
|
|
350
|
+
}
|
|
351
|
+
if (Tdiff.asSeconds() < 1 && Tdiff.asMilliseconds() >= 500) {
|
|
352
|
+
stepType = 'ms';
|
|
353
|
+
step = 100;
|
|
354
|
+
setTopOfms(Ttick);
|
|
355
|
+
Ttick.millisecond(Math.floor((Ttick.millisecond()) / 100) * 100.0);
|
|
356
|
+
}
|
|
357
|
+
if (Tdiff.asMilliseconds() < 500 && Tdiff.asMilliseconds() >= 100) {
|
|
358
|
+
stepType = 'ms';
|
|
359
|
+
step = 50;
|
|
360
|
+
setTopOfms(Ttick);
|
|
361
|
+
Ttick.millisecond(Math.floor((Ttick.millisecond()) / 50) * 50.0);
|
|
362
|
+
}
|
|
363
|
+
if (Tdiff.asMilliseconds() < 100 && Tdiff.asMilliseconds() >= 20) {
|
|
364
|
+
stepType = 'ms';
|
|
365
|
+
step = 10;
|
|
366
|
+
setTopOfms(Ttick);
|
|
367
|
+
Ttick.millisecond(Math.floor((Ttick.millisecond()) / 10) * 10.0);
|
|
368
|
+
}
|
|
369
|
+
if (Tdiff.asMilliseconds() < 20) {
|
|
370
|
+
stepType = 'ms';
|
|
371
|
+
setTopOfms(Ttick);
|
|
372
|
+
step = 1;
|
|
373
|
+
}
|
|
374
|
+
var newTicks = [Ttick.add(step, stepType)];
|
|
375
|
+
while (newTicks[newTicks.length - 1] < Tend)
|
|
376
|
+
newTicks.push(newTicks[newTicks.length - 1].clone().add(step, stepType));
|
|
377
|
+
newTicks.pop();
|
|
378
|
+
setTick(newTicks.map(function (t) { return t.valueOf(); }));
|
|
379
|
+
setTformat(format);
|
|
380
|
+
if ((_a = props.showDate) !== null && _a !== void 0 ? _a : false)
|
|
381
|
+
setDformat(dateFormat);
|
|
382
|
+
else
|
|
383
|
+
setDformat('');
|
|
384
|
+
}, [context.XDomain, props.showDate]);
|
|
385
|
+
function setTopOfms(d) {
|
|
386
|
+
d.milliseconds(Math.floor(d.millisecond()));
|
|
387
|
+
}
|
|
388
|
+
function setTopOfSecond(d) {
|
|
389
|
+
setTopOfms(d);
|
|
390
|
+
d.milliseconds(0);
|
|
391
|
+
}
|
|
392
|
+
function setTopOfMinute(d) {
|
|
393
|
+
setTopOfSecond(d);
|
|
394
|
+
d.seconds(0);
|
|
395
|
+
}
|
|
396
|
+
function setTopOfHour(d) {
|
|
397
|
+
setTopOfMinute(d);
|
|
398
|
+
d.minutes(0);
|
|
399
|
+
}
|
|
400
|
+
function setTopOfDay(d) {
|
|
401
|
+
setTopOfHour(d);
|
|
402
|
+
d.hours(0);
|
|
403
|
+
}
|
|
404
|
+
function setTopOfWeek(d) {
|
|
405
|
+
setTopOfDay(d);
|
|
406
|
+
d.weekday(0);
|
|
407
|
+
}
|
|
408
|
+
function setTopOfMonth(d) {
|
|
409
|
+
setTopOfDay(d);
|
|
410
|
+
d.date(1);
|
|
411
|
+
}
|
|
412
|
+
function setTopOfYear(d) {
|
|
413
|
+
setTopOfDay(d);
|
|
414
|
+
d.dayOfYear(0);
|
|
415
|
+
}
|
|
416
|
+
function formatTS(t, f) {
|
|
417
|
+
var TS = moment.utc(t);
|
|
418
|
+
return TS.format(f);
|
|
419
|
+
}
|
|
420
|
+
return (React.createElement("g", null,
|
|
421
|
+
React.createElement("path", { stroke: 'black', style: { strokeWidth: 1 }, d: "M ".concat(props.offsetLeft - (((_a = props.showLeftMostTick) !== null && _a !== void 0 ? _a : true) ? 0 : 8), " ").concat(props.height - props.offsetBottom, " H ").concat(props.width - props.offsetRight + (((_b = props.showRightMostTick) !== null && _b !== void 0 ? _b : true) ? 0 : 8)) }),
|
|
422
|
+
((_c = props.showLeftMostTick) !== null && _c !== void 0 ? _c : true) ? React.createElement("path", { stroke: 'black', style: { strokeWidth: 1 }, d: "M ".concat(props.offsetLeft, " ").concat(props.height - props.offsetBottom, " v ").concat(8) }) : null,
|
|
423
|
+
((_d = props.showRightMostTick) !== null && _d !== void 0 ? _d : true) ? React.createElement("path", { stroke: 'black', style: { strokeWidth: 1 }, d: "M ".concat(props.width - props.offsetRight, " ").concat(props.height - props.offsetBottom, " v ").concat(8) }) : null,
|
|
424
|
+
props.showTicks === undefined || props.showTicks ?
|
|
425
|
+
React.createElement(React.Fragment, null,
|
|
426
|
+
tick.map(function (l, i) { return React.createElement("path", { key: i, stroke: 'black', style: { strokeWidth: 1, transition: 'd 0.5s' }, d: "M ".concat(context.XTransformation(l), " ").concat(props.height - props.offsetBottom + 6, " v ").concat(-6) }); }),
|
|
427
|
+
tick.map(function (l, i) { return React.createElement("text", { fill: 'black', key: i, style: { fontSize: '1em', textAnchor: 'middle', dominantBaseline: 'hanging', transition: 'x 0.5s, y 0.5s' }, y: props.height - props.offsetBottom + 8, x: context.XTransformation(l) }, formatTS(l, tFormat)); }))
|
|
428
|
+
: null,
|
|
429
|
+
title !== undefined ? React.createElement("text", { fill: 'black', style: { fontSize: '1em', textAnchor: 'middle', dominantBaseline: 'middle' }, x: props.offsetLeft + ((props.width - props.offsetLeft - props.offsetRight) / 2), y: props.height - props.offsetBottom + hAxis }, title) : null,
|
|
430
|
+
(dFormat !== '' && tick.length > 0) ? React.createElement("text", { fill: 'black', style: { fontSize: '1em', textAnchor: 'end', dominantBaseline: 'middle' }, x: props.width - props.offsetRight, y: props.height - props.offsetBottom + hAxis }, formatTS(tick[0], dFormat)) : null));
|
|
431
|
+
}
|
|
432
|
+
exports.default = React.memo(TimeAxis);
|
|
433
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGltZUF4aXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvVGltZUF4aXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx5R0FBeUc7QUFDekcsdUJBQXVCO0FBQ3ZCLEVBQUU7QUFDRixxRUFBcUU7QUFDckUsRUFBRTtBQUNGLHdHQUF3RztBQUN4Ryx3R0FBd0c7QUFDeEcsc0dBQXNHO0FBQ3RHLHdGQUF3RjtBQUN4RixFQUFFO0FBQ0YsMENBQTBDO0FBQzFDLEVBQUU7QUFDRix3R0FBd0c7QUFDeEcsd0dBQXdHO0FBQ3hHLDRFQUE0RTtBQUM1RSxFQUFFO0FBQ0YsOEJBQThCO0FBQzlCLHdHQUF3RztBQUN4RywwQkFBMEI7QUFDMUIsbURBQW1EO0FBQ25ELEVBQUU7QUFDRix5R0FBeUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV6Ryw2QkFBK0I7QUFDL0IsK0NBQTJDO0FBQzNDLCtCQUFpQztBQUNqQyxtRUFBNkQ7QUFDN0QsaUNBQW1DO0FBaUJuQyxJQUFNLFdBQVcsR0FBRyxPQUFPLENBQUM7QUFDNUIsSUFBTSxXQUFXLEdBQUcsV0FBVyxHQUFFLElBQUksQ0FBQztBQUN0QyxJQUFNLFNBQVMsR0FBRyxXQUFXLEdBQUUsSUFBSSxDQUFDO0FBQ3BDLElBQU0sUUFBUSxHQUFHLFNBQVMsR0FBRSxJQUFJLENBQUM7QUFDakMsSUFBTSxTQUFTLEdBQUcsUUFBUSxHQUFFLEdBQUcsQ0FBQztBQUtoQyxTQUFTLFFBQVEsQ0FBQyxLQUFhOztJQUMzQjs7TUFFRTtJQUNGLElBQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsMkJBQVksQ0FBQyxDQUFBO0lBQ3hDLElBQUEsS0FBQSxPQUFpQixLQUFLLENBQUMsUUFBUSxDQUFXLEVBQUUsQ0FBQyxJQUFBLEVBQTVDLElBQUksUUFBQSxFQUFDLE9BQU8sUUFBZ0MsQ0FBQztJQUM5QyxJQUFBLEtBQUEsT0FBc0IsS0FBSyxDQUFDLFFBQVEsQ0FBUyxDQUFDLENB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Q2xELElBQUksR0FBRyxDQUFDLENBQUM7WUFDVCxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDakQsUUFBUSxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksR0FBRyxFQUFFLENBQUM7WUFDVixZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDaEQsUUFBUSxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksR0FBRyxDQUFDLENBQUM7WUFDVCxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckIsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksR0FBRyxFQUFFLENBQUM7WUFDbEQsUUFBUSxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksR0FBRyxDQUFDLENBQUM7WUFDVCxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckIsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLEdBQUcsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbkQsUUFBUSxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksR0FBRyxDQUFDLENBQUM7WUFDVCxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbEQsUUFBUSxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksR0FBRyxDQUFDLENBQUM7WUFDVCxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbEQsUUFBUSxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksR0FBRyxDQUFDLENBQUM7WUFDVCxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7WUFDakQsUUFBUSxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksR0FBRyxDQUFDLENBQUM7WUFDVCxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7WUFDaEQsUUFBUSxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksR0FBRyxDQUFDLENBQUM7WUFDVCxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDL0MsUUFBUSxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksR0FBRyxFQUFFLENBQUM7WUFDVixZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFFekQsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7WUFDaEQsUUFBUSxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksR0FBRyxDQUFDLENBQUM7WUFDVCxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUE7UUFDdEQsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7WUFDbEQsUUFBUSxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksR0FBRyxDQUFDLENBQUM7WUFDVCxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUE7UUFDdEQsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDakQsUUFBUSxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksR0FBRyxDQUFDLENBQUM7WUFDVCxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDaEQsUUFBUSxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksR0FBRyxFQUFFLENBQUM7WUFDVixjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUE7UUFDNUQsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDaEQsUUFBUSxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksR0FBRyxFQUFFLENBQUM7WUFDVixjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUE7UUFDNUQsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7WUFDbkQsUUFBUSxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksR0FBRyxDQUFDLENBQUM7WUFDVCxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUE7UUFDMUQsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7WUFDdEQsUUFBUSxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksR0FBRyxDQUFDLENBQUM7WUFDVCxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUE7UUFDMUQsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDckQsUUFBUSxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksR0FBRyxDQUFDLENBQUM7WUFDVCxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDcEQsUUFBUSxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksR0FBRyxFQUFFLENBQUM7WUFDVixjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUE7UUFDeEQsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDcEQsUUFBUSxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksR0FBRyxFQUFFLENBQUM7WUFDVixjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUE7UUFDeEQsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7WUFDckQsUUFBUSxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksR0FBRyxDQUFDLENBQUM7WUFDVCxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUE7UUFDdEQsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7WUFDdEQsUUFBUSxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksR0FBRyxDQUFDLENBQUM7WUFDVCxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDckQsUUFBUSxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksR0FBRyxDQUFDLENBQUM7WUFDVCxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsQ0FB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
|