1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 | "use strict";
|
14 |
|
15 | import DygraphDataHandler from './datahandler';
|
16 | import DefaultHandler from './default';
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 | var DefaultFractionHandler = function() {
|
23 | };
|
24 |
|
25 | DefaultFractionHandler.prototype = new DefaultHandler();
|
26 |
|
27 | DefaultFractionHandler.prototype.extractSeries = function(rawData, i, options) {
|
28 |
|
29 | var series = [];
|
30 | var x, y, point, num, den, value;
|
31 | var mult = 100.0;
|
32 | const seriesLabel = options.get("labels")[i];
|
33 | const logScale = options.getForSeries("logscale", seriesLabel);
|
34 | for ( var j = 0; j < rawData.length; j++) {
|
35 | x = rawData[j][0];
|
36 | point = rawData[j][i];
|
37 | if (logScale && point !== null) {
|
38 |
|
39 |
|
40 | if (point[0] <= 0 || point[1] <= 0) {
|
41 | point = null;
|
42 | }
|
43 | }
|
44 |
|
45 | if (point !== null) {
|
46 | num = point[0];
|
47 | den = point[1];
|
48 | if (num !== null && !isNaN(num)) {
|
49 | value = den ? num / den : 0.0;
|
50 | y = mult * value;
|
51 |
|
52 | series.push([ x, y, [ num, den ] ]);
|
53 | } else {
|
54 | series.push([ x, num, [ num, den ] ]);
|
55 | }
|
56 | } else {
|
57 | series.push([ x, null, [ null, null ] ]);
|
58 | }
|
59 | }
|
60 | return series;
|
61 | };
|
62 |
|
63 | DefaultFractionHandler.prototype.rollingAverage = function(originalData, rollPeriod,
|
64 | options, i) {
|
65 | rollPeriod = Math.min(rollPeriod, originalData.length);
|
66 | var rollingData = [];
|
67 |
|
68 | var i;
|
69 | var num = 0;
|
70 | var den = 0;
|
71 | var mult = 100.0;
|
72 | for (i = 0; i < originalData.length; i++) {
|
73 | num += originalData[i][2][0];
|
74 | den += originalData[i][2][1];
|
75 | if (i - rollPeriod >= 0) {
|
76 | num -= originalData[i - rollPeriod][2][0];
|
77 | den -= originalData[i - rollPeriod][2][1];
|
78 | }
|
79 |
|
80 | var date = originalData[i][0];
|
81 | var value = den ? num / den : 0.0;
|
82 | rollingData[i] = [ date, mult * value ];
|
83 | }
|
84 |
|
85 | return rollingData;
|
86 | };
|
87 |
|
88 | export default DefaultFractionHandler;
|