X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=dygraph.js;h=f82285b73f56fd65f93d25e490545ab6be8b4b71;hb=1f0f434a67305ccb3d54a0bbd16a1b6d9421fffb;hp=4b3b5e1f27a743d6398aef9e4e1250d9209f4eaa;hpb=fcf37b294f0f83b799c756017cab8ee0ceeb9a3e;p=dygraphs.git diff --git a/dygraph.js b/dygraph.js index 4b3b5e1..f82285b 100644 --- a/dygraph.js +++ b/dygraph.js @@ -2019,6 +2019,14 @@ Dygraph.prototype.animateSelection_ = function(direction) { var thisId = ++this.animateId; var that = this; + var cleanupIfClearing = function() { + // if we haven't reached fadeLevel 0 in the max frame time, + // ensure that the clear happens and just go to 0 + if (that.fadeLevel !== 0 && direction < 0) { + that.fadeLevel = 0; + that.clearSelection(); + } + }; Dygraph.repeatAndCleanup( function(n) { // ignore simultaneous animations @@ -2031,7 +2039,7 @@ Dygraph.prototype.animateSelection_ = function(direction) { that.updateSelection_(that.fadeLevel / totalSteps); } }, - steps, millis, function() {}); + steps, millis, cleanupIfClearing); }; /** @@ -3594,19 +3602,25 @@ Dygraph.prototype.visibility = function() { }; /** - * Changes the visiblity of a series. + * Changes the visibility of one or more series. * - * @param {number} num the series index + * @param {number|number[]} num the series index or an array of series indices * @param {boolean} value true or false, identifying the visibility. */ Dygraph.prototype.setVisibility = function(num, value) { var x = this.visibility(); - if (num < 0 || num >= x.length) { - console.warn("invalid series number in setVisibility: " + num); - } else { - x[num] = value; - this.predraw_(); + + if (num.constructor !== Array) num = [num]; + + for (var i = 0; i < num.length; i++) { + if (num[i] < 0 || num[i] >= x.length) { + console.warn("invalid series number in setVisibility: " + num[i]); + } else { + x[num[i]] = value; + } } + + this.predraw_(); }; /**