dygraphs
Version:
dygraphs is a fast, flexible open source JavaScript charting library.
99 lines (93 loc) • 10.9 kB
JavaScript
;
/**
* @license
* Copyright 2013 David Eberlein (david.eberlein@ch.sauter-bc.com)
* MIT-licenced: https://opensource.org/license/MIT
*/
/**
* @fileoverview DataHandler default implementation used for simple line charts.
* @author David Eberlein (david.eberlein@ch.sauter-bc.com)
*/
/*global Dygraph:false */
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _datahandler = _interopRequireDefault(require("./datahandler"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
/**
* @constructor
* @extends Dygraph.DataHandler
*/
var DefaultHandler = function DefaultHandler() {};
DefaultHandler.prototype = new _datahandler["default"]();
/** @inheritDoc */
DefaultHandler.prototype.extractSeries = function (rawData, i, options) {
// TODO(danvk): pre-allocate series here.
var series = [];
var seriesLabel = options.get("labels")[i];
var logScale = options.getForSeries("logscale", seriesLabel);
for (var j = 0; j < rawData.length; j++) {
var x = rawData[j][0];
var point = rawData[j][i];
if (logScale) {
// On the log scale, points less than zero do not exist.
// This will create a gap in the chart.
if (point <= 0) {
point = null;
}
}
series.push([x, point]);
}
return series;
};
/** @inheritDoc */
DefaultHandler.prototype.rollingAverage = function (originalData, rollPeriod, options, i) {
rollPeriod = Math.min(rollPeriod, originalData.length);
var rollingData = [];
var i, j, y, sum, num_ok;
// Calculate the rolling average for the first rollPeriod - 1 points
// where
// there is not enough data to roll over the full number of points
if (rollPeriod == 1) {
return originalData;
}
for (i = 0; i < originalData.length; i++) {
sum = 0;
num_ok = 0;
for (j = Math.max(0, i - rollPeriod + 1); j < i + 1; j++) {
y = originalData[j][1];
if (y === null || isNaN(y)) continue;
num_ok++;
sum += originalData[j][1];
}
if (num_ok) {
rollingData[i] = [originalData[i][0], sum / num_ok];
} else {
rollingData[i] = [originalData[i][0], null];
}
}
return rollingData;
};
/** @inheritDoc */
DefaultHandler.prototype.getExtremeYValues = function getExtremeYValues(series, dateWindow, stepPlot) {
var minY = null,
maxY = null,
y;
var firstIdx = 0,
lastIdx = series.length - 1;
for (var j = firstIdx; j <= lastIdx; j++) {
y = series[j][1];
if (y === null || isNaN(y)) continue;
if (maxY === null || y > maxY) {
maxY = y;
}
if (minY === null || y < minY) {
minY = y;
}
}
return [minY, maxY];
};
var _default = exports["default"] = DefaultHandler;
module.exports = exports.default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsIl9kYXRhaGFuZGxlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiZSIsIl9fZXNNb2R1bGUiLCJEZWZhdWx0SGFuZGxlciIsInByb3RvdHlwZSIsIkR5Z3JhcGhEYXRhSGFuZGxlciIsImV4dHJhY3RTZXJpZXMiLCJyYXdEYXRhIiwiaSIsIm9wdGlvbnMiLCJzZXJpZXMiLCJzZXJpZXNMYWJlbCIsImdldCIsImxvZ1NjYWxlIiwiZ2V0Rm9yU2VyaWVzIiwiaiIsImxlbmd0aCIsIngiLCJwb2ludCIsInB1c2giLCJyb2xsaW5nQXZlcmFnZSIsIm9yaWdpbmFsRGF0YSIsInJvbGxQZXJpb2QiLCJNYXRoIiwibWluIiwicm9sbGluZ0RhdGEiLCJ5Iiwic3VtIiwibnVtX29rIiwibWF4IiwiaXNOYU4iLCJnZXRFeHRyZW1lWVZhbHVlcyIsImRhdGVXaW5kb3ciLCJzdGVwUGxvdCIsIm1pblkiLCJtYXhZIiwiZmlyc3RJZHgiLCJsYXN0SWR4IiwiX2RlZmF1bHQiLCJtb2R1bGUiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGFoYW5kbGVyL2RlZmF1bHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAxMyBEYXZpZCBFYmVybGVpbiAoZGF2aWQuZWJlcmxlaW5AY2guc2F1dGVyLWJjLmNvbSlcbiAqIE1JVC1saWNlbmNlZDogaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlL01JVFxuICovXG5cbi8qKlxuICogQGZpbGVvdmVydmlldyBEYXRhSGFuZGxlciBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHVzZWQgZm9yIHNpbXBsZSBsaW5lIGNoYXJ0cy5cbiAqIEBhdXRob3IgRGF2aWQgRWJlcmxlaW4gKGRhdmlkLmViZXJsZWluQGNoLnNhdXRlci1iYy5jb20pXG4gKi9cblxuLypnbG9iYWwgRHlncmFwaDpmYWxzZSAqL1xuXG5pbXBvcnQgRHlncmFwaERhdGFIYW5kbGVyIGZyb20gJy4vZGF0YWhhbmRsZXInO1xuXG4vKipcbiAqIEBjb25zdHJ1Y3RvclxuICogQGV4dGVuZHMgRHlncmFwaC5EYXRhSGFuZGxlclxuICovXG52YXIgRGVmYXVsdEhhbmRsZXIgPSBmdW5jdGlvbigpIHtcbn07XG5cbkRlZmF1bHRIYW5kbGVyLnByb3RvdHlwZSA9IG5ldyBEeWdyYXBoRGF0YUhhbmRsZXIoKTtcblxuLyoqIEBpbmhlcml0RG9jICovXG5EZWZhdWx0SGFuZGxlci5wcm90b3R5cGUuZXh0cmFjdFNlcmllcyA9IGZ1bmN0aW9uKHJhd0RhdGEsIGksIG9wdGlvbnMpIHtcbiAgLy8gVE9ETyhkYW52ayk6IHByZS1hbGxvY2F0ZSBzZXJpZXMgaGVyZS5cbiAgdmFyIHNlcmllcyA9IFtdO1xuICBjb25zdCBzZXJpZXNMYWJlbCA9IG9wdGlvbnMuZ2V0KFwibGFiZWxzXCIpW2ldO1xuICBjb25zdCBsb2dTY2FsZSA9IG9wdGlvbnMuZ2V0Rm9yU2VyaWVzKFwibG9nc2NhbGVcIiwgc2VyaWVzTGFiZWwpO1xuICBmb3IgKCB2YXIgaiA9IDA7IGogPCByYXdEYXRhLmxlbmd0aDsgaisrKSB7XG4gICAgdmFyIHggPSByYXdEYXRhW2pdWzBdO1xuICAgIHZhciBwb2ludCA9IHJhd0RhdGFbal1baV07XG4gICAgaWYgKGxvZ1NjYWxlKSB7XG4gICAgICAvLyBPbiB0aGUgbG9nIHNjYWxlLCBwb2ludHMgbGVzcyB0aGFuIHplcm8gZG8gbm90IGV4aXN0LlxuICAgICAgLy8gVGhpcyB3aWxsIGNyZWF0ZSBhIGdhcCBpbiB0aGUgY2hhcnQuXG4gICAgICBpZiAocG9pbnQgPD0gMCkge1xuICAgICAgICBwb2ludCA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIHNlcmllcy5wdXNoKFsgeCwgcG9pbnQgXSk7XG4gIH1cbiAgcmV0dXJuIHNlcmllcztcbn07XG5cbi8qKiBAaW5oZXJpdERvYyAqL1xuRGVmYXVsdEhhbmRsZXIucHJvdG90eXBlLnJvbGxpbmdBdmVyYWdlID0gZnVuY3Rpb24ob3JpZ2luYWxEYXRhLCByb2xsUGVyaW9kLFxuICAgIG9wdGlvbnMsIGkpIHtcbiAgcm9sbFBlcmlvZCA9IE1hdGgubWluKHJvbGxQZXJpb2QsIG9yaWdpbmFsRGF0YS5sZW5ndGgpO1xuICB2YXIgcm9sbGluZ0RhdGEgPSBbXTtcblxuICB2YXIgaSwgaiwgeSwgc3VtLCBudW1fb2s7XG4gIC8vIENhbGN1bGF0ZSB0aGUgcm9sbGluZyBhdmVyYWdlIGZvciB0aGUgZmlyc3Qgcm9sbFBlcmlvZCAtIDEgcG9pbnRzXG4gIC8vIHdoZXJlXG4gIC8vIHRoZXJlIGlzIG5vdCBlbm91Z2ggZGF0YSB0byByb2xsIG92ZXIgdGhlIGZ1bGwgbnVtYmVyIG9mIHBvaW50c1xuICBpZiAocm9sbFBlcmlvZCA9PSAxKSB7XG4gICAgcmV0dXJuIG9yaWdpbmFsRGF0YTtcbiAgfVxuICBmb3IgKGkgPSAwOyBpIDwgb3JpZ2luYWxEYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgc3VtID0gMDtcbiAgICBudW1fb2sgPSAwO1xuICAgIGZvciAoaiA9IE1hdGgubWF4KDAsIGkgLSByb2xsUGVyaW9kICsgMSk7IGogPCBpICsgMTsgaisrKSB7XG4gICAgICB5ID0gb3JpZ2luYWxEYXRhW2pdWzFdO1xuICAgICAgaWYgKHkgPT09IG51bGwgfHwgaXNOYU4oeSkpXG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgbnVtX29rKys7XG4gICAgICBzdW0gKz0gb3JpZ2luYWxEYXRhW2pdWzFdO1xuICAgIH1cbiAgICBpZiAobnVtX29rKSB7XG4gICAgICByb2xsaW5nRGF0YVtpXSA9IFsgb3JpZ2luYWxEYXRhW2ldWzBdLCBzdW0gLyBudW1fb2sgXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcm9sbGluZ0RhdGFbaV0gPSBbIG9yaWdpbmFsRGF0YVtpXVswXSwgbnVsbCBdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByb2xsaW5nRGF0YTtcbn07XG5cbi8qKiBAaW5oZXJpdERvYyAqL1xuRGVmYXVsdEhhbmRsZXIucHJvdG90eXBlLmdldEV4dHJlbWVZVmFsdWVzID0gZnVuY3Rpb24gZ2V0RXh0cmVtZVlWYWx1ZXMoc2VyaWVzLCBkYXRlV2luZG93LCBzdGVwUGxvdCkge1xuICB2YXIgbWluWSA9IG51bGwsIG1heFkgPSBudWxsLCB5O1xuICB2YXIgZmlyc3RJZHggPSAwLCBsYXN0SWR4ID0gc2VyaWVzLmxlbmd0aCAtIDE7XG5cbiAgZm9yICggdmFyIGogPSBmaXJzdElkeDsgaiA8PSBsYXN0SWR4OyBqKyspIHtcbiAgICB5ID0gc2VyaWVzW2pdWzFdO1xuICAgIGlmICh5ID09PSBudWxsIHx8IGlzTmFOKHkpKVxuICAgICAgY29udGludWU7XG4gICAgaWYgKG1heFkgPT09IG51bGwgfHwgeSA+IG1heFkpIHtcbiAgICAgIG1heFkgPSB5O1xuICAgIH1cbiAgICBpZiAobWluWSA9PT0gbnVsbCB8fCB5IDwgbWluWSkge1xuICAgICAgbWluWSA9IHk7XG4gICAgfVxuICB9XG4gIHJldHVybiBbIG1pblksIG1heFkgXTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IERlZmF1bHRIYW5kbGVyO1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxZQUFZOztBQUVaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFBQUEsTUFBQSxDQUFBQyxjQUFBLENBQUFDLE9BQUE7RUFBQUMsS0FBQTtBQUFBO0FBQUFELE9BQUE7QUFFQSxJQUFBRSxZQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFBK0MsU0FBQUQsdUJBQUFFLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxnQkFBQUEsQ0FBQTtBQUUvQztBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUlFLGNBQWMsR0FBRyxTQUFqQkEsY0FBY0EsQ0FBQSxFQUFjLENBQ2hDLENBQUM7QUFFREEsY0FBYyxDQUFDQyxTQUFTLEdBQUcsSUFB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