@qogni/dygraphs
Version:
dygraphs is a fast, flexible open source JavaScript charting library.
88 lines (82 loc) • 8.57 kB
JavaScript
/**
* @license
* Copyright 2011 Dan Vanderkam (danvdk@gmail.com)
* MIT-licenced: https://opensource.org/licenses/MIT
*/
/**
* @fileoverview A wrapper around the Dygraph class which implements the
* interface for a GViz (aka Google Visualization API) visualization.
* It is designed to be a drop-in replacement for Google's AnnotatedTimeline,
* so the documentation at
* http://code.google.com/apis/chart/interactive/docs/gallery/annotatedtimeline.html
* translates over directly.
*
* For a full demo, see:
* - http://dygraphs.com/tests/gviz.html
* - http://dygraphs.com/tests/annotation-gviz.html
*/
/*global Dygraph:false */
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _dygraph = _interopRequireDefault(require("./dygraph"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
/**
* A wrapper around Dygraph that implements the gviz API.
* @param {!HTMLDivElement} container The DOM object the visualization should
* live in.
* @constructor
*/
var GVizChart = function GVizChart(container) {
this.container = container;
};
/**
* @param {GVizDataTable} data
* @param {Object.<*>} options
*/
GVizChart.prototype.draw = function (data, options) {
// Clear out any existing dygraph.
// TODO(danvk): would it make more sense to simply redraw using the current
// date_graph object?
this.container.innerHTML = '';
if (typeof this.date_graph != 'undefined') {
this.date_graph.destroy();
}
this.date_graph = new _dygraph["default"](this.container, data, options);
};
/**
* Google charts compatible setSelection
* Only row selection is supported, all points in the row will be highlighted
* @param {Array.<{row:number}>} selection_array array of the selected cells
* @public
*/
GVizChart.prototype.setSelection = function (selection_array) {
var row = false;
if (selection_array.length) {
row = selection_array[0].row;
}
this.date_graph.setSelection(row);
};
/**
* Google charts compatible getSelection implementation
* @return {Array.<{row:number,column:number}>} array of the selected cells
* @public
*/
GVizChart.prototype.getSelection = function () {
var selection = [];
var row = this.date_graph.getSelection();
if (row < 0) return selection;
var points = this.date_graph.layout_.points;
for (var setIdx = 0; setIdx < points.length; ++setIdx) {
selection.push({
row: row,
column: setIdx + 1
});
}
return selection;
};
var _default = exports["default"] = GVizChart;
module.exports = exports.default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsIl9keWdyYXBoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJlIiwiX19lc01vZHVsZSIsIkdWaXpDaGFydCIsImNvbnRhaW5lciIsInByb3RvdHlwZSIsImRyYXciLCJkYXRhIiwib3B0aW9ucyIsImlubmVySFRNTCIsImRhdGVfZ3JhcGgiLCJkZXN0cm95IiwiRHlncmFwaCIsInNldFNlbGVjdGlvbiIsInNlbGVjdGlvbl9hcnJheSIsInJvdyIsImxlbmd0aCIsImdldFNlbGVjdGlvbiIsInNlbGVjdGlvbiIsInBvaW50cyIsImxheW91dF8iLCJzZXRJZHgiLCJwdXNoIiwiY29sdW1uIiwiX2RlZmF1bHQiLCJtb2R1bGUiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vc3JjL2R5Z3JhcGgtZ3Zpei5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAxMSBEYW4gVmFuZGVya2FtIChkYW52ZGtAZ21haWwuY29tKVxuICogTUlULWxpY2VuY2VkOiBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICovXG5cbi8qKlxuICogQGZpbGVvdmVydmlldyBBIHdyYXBwZXIgYXJvdW5kIHRoZSBEeWdyYXBoIGNsYXNzIHdoaWNoIGltcGxlbWVudHMgdGhlXG4gKiBpbnRlcmZhY2UgZm9yIGEgR1ZpeiAoYWthIEdvb2dsZSBWaXN1YWxpemF0aW9uIEFQSSkgdmlzdWFsaXphdGlvbi5cbiAqIEl0IGlzIGRlc2lnbmVkIHRvIGJlIGEgZHJvcC1pbiByZXBsYWNlbWVudCBmb3IgR29vZ2xlJ3MgQW5ub3RhdGVkVGltZWxpbmUsXG4gKiBzbyB0aGUgZG9jdW1lbnRhdGlvbiBhdFxuICogaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9hcGlzL2NoYXJ0L2ludGVyYWN0aXZlL2RvY3MvZ2FsbGVyeS9hbm5vdGF0ZWR0aW1lbGluZS5odG1sXG4gKiB0cmFuc2xhdGVzIG92ZXIgZGlyZWN0bHkuXG4gKlxuICogRm9yIGEgZnVsbCBkZW1vLCBzZWU6XG4gKiAtIGh0dHA6Ly9keWdyYXBocy5jb20vdGVzdHMvZ3Zpei5odG1sXG4gKiAtIGh0dHA6Ly9keWdyYXBocy5jb20vdGVzdHMvYW5ub3RhdGlvbi1ndml6Lmh0bWxcbiAqL1xuXG4vKmdsb2JhbCBEeWdyYXBoOmZhbHNlICovXG5cInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IER5Z3JhcGggZnJvbSAnLi9keWdyYXBoJztcblxuLyoqXG4gKiBBIHdyYXBwZXIgYXJvdW5kIER5Z3JhcGggdGhhdCBpbXBsZW1lbnRzIHRoZSBndml6IEFQSS5cbiAqIEBwYXJhbSB7IUhUTUxEaXZFbGVtZW50fSBjb250YWluZXIgVGhlIERPTSBvYmplY3QgdGhlIHZpc3VhbGl6YXRpb24gc2hvdWxkXG4gKiAgICAgbGl2ZSBpbi5cbiAqIEBjb25zdHJ1Y3RvclxuICovXG52YXIgR1ZpekNoYXJ0ID0gZnVuY3Rpb24oY29udGFpbmVyKSB7XG4gIHRoaXMuY29udGFpbmVyID0gY29udGFpbmVyO1xufTtcblxuLyoqXG4gKiBAcGFyYW0ge0dWaXpEYXRhVGFibGV9IGRhdGFcbiAqIEBwYXJhbSB7T2JqZWN0LjwqPn0gb3B0aW9uc1xuICovXG5HVml6Q2hhcnQucHJvdG90eXBlLmRyYXcgPSBmdW5jdGlvbihkYXRhLCBvcHRpb25zKSB7XG4gIC8vIENsZWFyIG91dCBhbnkgZXhpc3RpbmcgZHlncmFwaC5cbiAgLy8gVE9ETyhkYW52ayk6IHdvdWxkIGl0IG1ha2UgbW9yZSBzZW5zZSB0byBzaW1wbHkgcmVkcmF3IHVzaW5nIHRoZSBjdXJyZW50XG4gIC8vIGRhdGVfZ3JhcGggb2JqZWN0P1xuICB0aGlzLmNvbnRhaW5lci5pbm5lckhUTUwgPSAnJztcbiAgaWYgKHR5cGVvZih0aGlzLmRhdGVfZ3JhcGgpICE9ICd1bmRlZmluZWQnKSB7XG4gICAgdGhpcy5kYXRlX2dyYXBoLmRlc3Ryb3koKTtcbiAgfVxuXG4gIHRoaXMuZGF0ZV9ncmFwaCA9IG5ldyBEeWdyYXBoKHRoaXMuY29udGFpbmVyLCBkYXRhLCBvcHRpb25zKTtcbn07XG5cbi8qKlxuICogR29vZ2xlIGNoYXJ0cyBjb21wYXRpYmxlIHNldFNlbGVjdGlvblxuICogT25seSByb3cgc2VsZWN0aW9uIGlzIHN1cHBvcnRlZCwgYWxsIHBvaW50cyBpbiB0aGUgcm93IHdpbGwgYmUgaGlnaGxpZ2h0ZWRcbiAqIEBwYXJhbSB7QXJyYXkuPHtyb3c6bnVtYmVyfT59IHNlbGVjdGlvbl9hcnJheSBhcnJheSBvZiB0aGUgc2VsZWN0ZWQgY2VsbHNcbiAqIEBwdWJsaWNcbiAqL1xuR1ZpekNoYXJ0LnByb3RvdHlwZS5zZXRTZWxlY3Rpb24gPSBmdW5jdGlvbihzZWxlY3Rpb25fYXJyYXkpIHtcbiAgdmFyIHJvdyA9IGZhbHNlO1xuICBpZiAoc2VsZWN0aW9uX2FycmF5Lmxlbmd0aCkge1xuICAgIHJvdyA9IHNlbGVjdGlvbl9hcnJheVswXS5yb3c7XG4gIH1cbiAgdGhpcy5kYXRlX2dyYXBoLnNldFNlbGVjdGlvbihyb3cpO1xufTtcblxuLyoqXG4gKiBHb29nbGUgY2hhcnRzIGNvbXBhdGlibGUgZ2V0U2VsZWN0aW9uIGltcGxlbWVudGF0aW9uXG4gKiBAcmV0dXJuIHtBcnJheS48e3JvdzpudW1iZXIsY29sdW1uOm51bWJlcn0+fSBhcnJheSBvZiB0aGUgc2VsZWN0ZWQgY2VsbHNcbiAqIEBwdWJsaWNcbiAqL1xuR1ZpekNoYXJ0LnByb3RvdHlwZS5nZXRTZWxlY3Rpb24gPSBmdW5jdGlvbigpIHtcbiAgdmFyIHNlbGVjdGlvbiA9IFtdO1xuXG4gIHZhciByb3cgPSB0aGlzLmRhdGVfZ3JhcGguZ2V0U2VsZWN0aW9uKCk7XG5cbiAgaWYgKHJvdyA8IDApIHJldHVybiBzZWxlY3Rpb247XG5cbiAgdmFyIHBvaW50cyA9IHRoaXMuZGF0ZV9ncmFwaC5sYXlvdXRfLnBvaW50cztcbiAgZm9yICh2YXIgc2V0SWR4ID0gMDsgc2V0SWR4IDwgcG9pbnRzLmxlbmd0aDsgKytzZXRJZHgpIHtcbiAgICBzZWxlY3Rpb24ucHVzaCh7cm93OiByb3csIGNvbHVtbjogc2V0SWR4ICsgMX0pO1xuICB9XG5cbiAgcmV0dXJuIHNlbGVjdGlvbjtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEdWaXpDaGFydDtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxZQUFZOztBQUFDQSxNQUFBLENBQUFDLGNBQUEsQ0FBQUMsT0FBQTtFQUFBQyxLQUFBO0FBQUE7QUFBQUQsT0FBQTtBQUViLElBQUFFLFFBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUFnQyxTQUFBRCx1QkFBQUUsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLGdCQUFBQSxDQUFBO0FBRWhDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUlFLFNBQVMsR0FBRyxTQUFaQSxTQUFTQSxDQUFZQyxTQUFTLEVBQUU7RUFDbEMsSUFBSSxDQUFDQSxTQUFTLEdBQUdBLFNBQVM7QUFDNUIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBRCxTQUFTLENBQUNFLFNBQVMsQ0FBQ0MsSUFBSSxHQUFHLFVBQVNDLElBQUksRUFBRUMsT0FBTyxFQUFFO0VBQ2pEO0VBQ0E7RUFDQTtFQUNBLElBQUksQ0FBQ0osU0FBUyxDQUFDSyxTQUFTLEdBQUcsRUFBRTtFQUM3QixJQUFJLE9BQU8sSUFBSSxDQUFDQyxVQUFXLElBQUksV0FBVyxFQUFFO0lBQzFDLElBQUksQ0FBQ0EsVUFBVSxDQUFDQyxPQUFPLENBQUMsQ0FBQztFQUMzQjtFQUVBLElBQUksQ0FBQ0QsVUFBVSxHQUFHLElBQUlFLG1CQUFPLENBQUMsSUFBSSxDQUFDUixTQUFTLEVBQUVHLElBQUksRUFBRUMsT0FBTyxDQUFDO0FBQzlELENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0FMLFNBQVMsQ0FBQ0UsU0FBUyxDQUFDUSxZQUFZLEdBQUcsVUFBU0MsZUFBZSxFQUFFO0VBQzNELElBQUlDLEdBQUcsR0FBRyxLQUFLO0VBQ2YsSUFBSUQsZUFBZSxDQUFDRSxNQUFNLEVBQUU7SUFDMUJELEdBQUcsR0FBR0QsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDQyxHQUFHO0VBQzlCO0VBQ0EsSUFBSSxDQUFDTCxVQUFVLENBQUNHLFlBQVksQ0FBQ0UsR0FBRyxDQUFDO0FBQ25DLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBWixTQUFTLENBQUNFLFNBQVMsQ0FBQ1ksWUFBWSxHQUFHLFlBQVc7RUFDNUMsSUFBSUMsU0FBUyxHQUFHLEVBQUU7RUFFbEIsSUFBSUgsR0FBRyxHQUFHLElBQUksQ0FBQ0wsVUFBVSxDQUFDTyxZQUFZLENBQUMsQ0FBQztFQUV4QyxJQUFJRixHQUFHLEdBQUcsQ0FBQyxFQUFFLE9BQU9HLFNBQVM7RUFFN0IsSUFBSUMsTUFBTSxHQUFHLElBQUksQ0FBQ1QsVUFBVSxDQUFDVSxPQUFPLENBQUNELE1BQU07RUFDM0MsS0FBSyxJQUFJRSxNQUFNLEdBQUcsQ0FBQyxFQUFFQSxNQUFNLEdBQUdGLE1BQU0sQ0FBQ0gsTUFBTSxFQUFFLEVBQUVLLE1BQU0sRUFBRTtJQUNyREgsU0FBUyxDQUFDSSxJQUFJLENBQUM7TUFBQ1AsR0FBRyxFQUFFQSxHQUFHO01BQUVRLE1BQU0sRUFBRUYsTUFBTSxHQUFHO0lBQUMsQ0FBQyxDQUFDO0VBQ2hEO0VBRUEsT0FBT0gsU0FBUztBQUNsQixDQUFDO0FBQUMsSUFBQU0sUUFBQSxHQUFBNUIsT0FBQSxjQUVhTyxTQUFTO0FBQUFzQixNQUFBLENBQUE3QixPQUFBLEdBQUFBLE9BQUEsQ0FBQThCLE9BQUEiLCJpZ25vcmVMaXN0IjpbXX0=