X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=dygraph.js;h=6adb43bdc413cde408e47d90b2d376d848581261;hb=eee806a0323c685c0ba9f9e40d80f050ac587d64;hp=1cf308532c08c51bcb2c291b06377d1a1eaf7bd6;hpb=c682f2056e0ca60d97bdb0314dbd8fe4e4c12797;p=dygraphs.git diff --git a/dygraph.js b/dygraph.js index 1cf3085..6adb43b 100644 --- a/dygraph.js +++ b/dygraph.js @@ -448,9 +448,11 @@ Dygraph.prototype.xAxisExtremes = function() { */ Dygraph.prototype.yAxisRange = function(idx) { if (typeof(idx) == "undefined") idx = 0; - if (idx < 0 || idx >= this.axes_.length) return null; - return [ this.axes_[idx].computedValueRange[0], - this.axes_[idx].computedValueRange[1] ]; + if (idx < 0 || idx >= this.axes_.length) { + return null; + } + var axis = this.axes_[idx]; + return [ axis.computedValueRange[0], axis.computedValueRange[1] ]; }; /** @@ -1252,7 +1254,7 @@ Dygraph.Interaction.endPan = function(event, g, context) { if (regionWidth < 2 && regionHeight < 2 && g.lastx_ != undefined && g.lastx_ != -1) { - Dygraph.Interaction.treatMouseOpAsClick(g, context); + Dygraph.Interaction.treatMouseOpAsClick(g, event, context); } // TODO(konigsberg): Clear the context data from the axis. @@ -1266,16 +1268,6 @@ Dygraph.Interaction.endPan = function(event, g, context) { context.valueRange = null; context.boundedDates = null; context.boundedValues = null; - - var dragEndX = g.dragGetX_(event, context); - var dragEndY = g.dragGetY_(event, context); - var regionWidth = Math.abs(context.dragEndX - context.dragStartX); - var regionHeight = Math.abs(context.dragEndY - context.dragStartY); - - if (regionWidth < 2 && regionHeight < 2 && - g.lastx_ != undefined && g.lastx_ != -1) { - Dygraph.Interaction.treatMouseOpAsClick(g); - } }; /** @@ -1333,7 +1325,7 @@ Dygraph.Interaction.moveZoom = function(event, g, context) { context.prevDragDirection = context.dragDirection; }; -Dygraph.Interaction.treatMouseOpAsClick = function(g, context) { +Dygraph.Interaction.treatMouseOpAsClick = function(g, event, context) { // TODO(danvk): pass along more info about the points, e.g. 'x' if (g.attr_('clickCallback') != null) { g.attr_('clickCallback')(event, g.lastx_, g.selPoints_, context); @@ -1383,7 +1375,7 @@ Dygraph.Interaction.endZoom = function(event, g, context) { if (regionWidth < 2 && regionHeight < 2 && g.lastx_ != undefined && g.lastx_ != -1) { - Dygraph.Interaction.treatMouseOpAsClick(g); + Dygraph.Interaction.treatMouseOpAsClick(g, event, context); } if (regionWidth >= 10 && context.dragDirection == Dygraph.HORIZONTAL) { @@ -2870,6 +2862,17 @@ Dygraph.prototype.drawGraph_ = function(clearSelection) { * indices are into the axes_ array. */ Dygraph.prototype.computeYAxes_ = function() { + // Preserve valueWindow settings if they exist, and if the user hasn't + // specified a new valueRange. + var valueWindows; + if (this.axes_ != undefined && this.user_attrs_.hasOwnProperty("valueRange") == false) { + valueWindows = []; + for (var index = 0; index < this.axes_.length; index++) { + valueWindows.push(this.axes_[index].valueWindow); + } + } + + this.axes_ = [{ yAxisId : 0, g : this }]; // always have at least one y-axis. this.seriesToAxisMap_ = {}; @@ -2946,6 +2949,13 @@ Dygraph.prototype.computeYAxes_ = function() { if (vis[i - 1]) seriesToAxisFiltered[s] = this.seriesToAxisMap_[s]; } this.seriesToAxisMap_ = seriesToAxisFiltered; + + if (valueWindows != undefined) { + // Restore valueWindow settings. + for (var index = 0; index < valueWindows.length; index++) { + this.axes_[index].valueWindow = valueWindows[index]; + } + } }; /** @@ -3668,6 +3678,8 @@ Dygraph.dateStrToMillis = function(str) { // These functions are all based on MochiKit. /** + * Copies all the properties from o to self. + * * @private */ Dygraph.update = function (self, o) {