UNPKG

@qogni/dygraphs

Version:

dygraphs is a fast, flexible open source JavaScript charting library.

88 lines (82 loc) 8.57 kB
/** * @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 */ "use strict"; 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=