X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=src%2Fdygraph.js;h=4f3ce77a93cbf1502f0b68fae7fd760042164d60;hb=98759508ba47001d531374bf1934232246b4eaf1;hp=885b3c64ccbaccbbe98d2e5a1da05cdce4494888;hpb=61a098491127963d2c9a143b0a18c6a85d5d284c;p=dygraphs.git diff --git a/src/dygraph.js b/src/dygraph.js index 885b3c6..4f3ce77 100644 --- a/src/dygraph.js +++ b/src/dygraph.js @@ -64,22 +64,8 @@ var Dygraph = (function() { * whether the input data contains error ranges. For a complete list of * options, see http://dygraphs.com/options.html. */ -var Dygraph = function(div, data, opts, opt_fourth_param) { - // These have to go above the "Hack for IE" in __init__ since .ready() can be - // called as soon as the constructor returns. Once support for OldIE is - // dropped, this can go down with the rest of the initializers. - this.is_initial_draw_ = true; - this.readyFns_ = []; - - if (opt_fourth_param !== undefined) { - // Old versions of dygraphs took in the series labels as a constructor - // parameter. This doesn't make sense anymore, but it's easy to continue - // to support this usage. - console.warn("Using deprecated four-argument dygraph constructor"); - this.__old_init__(div, data, opts, opt_fourth_param); - } else { - this.__init__(div, data, opts); - } +var Dygraph = function(div, data, opts) { + this.__init__(div, data, opts); }; Dygraph.NAME = "Dygraph"; @@ -394,18 +380,6 @@ Dygraph.PLUGINS = [ // Used for initializing annotation CSS rules only once. Dygraph.addedAnnotationCSS = false; -Dygraph.prototype.__old_init__ = function(div, file, labels, attrs) { - // Labels is no longer a constructor parameter, since it's typically set - // directly from the data source. It also conains a name for the x-axis, - // which the previous constructor form did not. - if (labels !== null) { - var new_labels = ["Date"]; - for (var i = 0; i < labels.length; i++) new_labels.push(labels[i]); - Dygraph.update(attrs, { 'labels': new_labels }); - } - this.__init__(div, file, attrs); -}; - /** * Initializes the Dygraph. This creates a new DIV and constructs the PlotKit * and context <canvas> inside of it. See the constructor for details. @@ -416,6 +390,9 @@ Dygraph.prototype.__old_init__ = function(div, file, labels, attrs) { * @private */ Dygraph.prototype.__init__ = function(div, file, attrs) { + this.is_initial_draw_ = true; + this.readyFns_ = []; + // Support two-argument constructor if (attrs === null || attrs === undefined) { attrs = {}; } @@ -426,8 +403,7 @@ Dygraph.prototype.__init__ = function(div, file, attrs) { } if (!div) { - console.error("Constructing dygraph with a non-existent div!"); - return; + throw new Error('Constructing dygraph with a non-existent div!'); } // Copy the important bits into the object @@ -2695,7 +2671,7 @@ Dygraph.prototype.renderGraph_ = function(is_initial_draw) { this.canvas_.getContext('2d').clearRect(0, 0, this.width_, this.height_); if (this.getFunctionOption("drawCallback") !== null) { - this.getFunctionOption("drawCallback")(this, is_initial_draw); + this.getFunctionOption("drawCallback").call(this, this, is_initial_draw); } if (is_initial_draw) { this.readyFired_ = true; @@ -3271,9 +3247,9 @@ Dygraph.prototype.parseDataTable_ = function(data) { this.attrs_.axes.x.ticker = Dygraph.numericTicks; this.attrs_.axes.x.axisLabelFormatter = this.attrs_.axes.x.valueFormatter; } else { - console.error("only 'date', 'datetime' and 'number' types are supported " + - "for column 1 of DataTable input (Got '" + indepType + "')"); - return null; + throw new Error( + "only 'date', 'datetime' and 'number' types are supported " + + "for column 1 of DataTable input (Got '" + indepType + "')"); } // Array of the column indices which contain data (and not annotations). @@ -3295,8 +3271,9 @@ Dygraph.prototype.parseDataTable_ = function(data) { } hasAnnotations = true; } else { - console.error("Only 'number' is supported as a dependent type with Gviz." + - " 'string' is only supported if displayAnnotations is true"); + throw new Error( + "Only 'number' is supported as a dependent type with Gviz." + + " 'string' is only supported if displayAnnotations is true"); } } @@ -3770,6 +3747,10 @@ Dygraph.addAnnotationRule = function() { console.warn("Unable to add default annotation CSS rule; display may be off."); }; +if (typeof exports === "object" && typeof module !== "undefined") { + module.exports = Dygraph; +} + return Dygraph; })();