X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=dygraph-combined.js;h=df6491e9317afc4c01be451917e32eb6d1084506;hb=3ef5b91ac1862c93fe7cae1a7396afbecff87fab;hp=42928fc577adf33e8ed863ad189b43fcf7e64d5b;hpb=e244a0d74d204814400cc43ea8deb7c1e2d5625e;p=dygraphs.git diff --git a/dygraph-combined.js b/dygraph-combined.js index 42928fc..df6491e 100644 --- a/dygraph-combined.js +++ b/dygraph-combined.js @@ -18,7 +18,14 @@ this._evaluateLineTicks(); }; DygraphLayout.prototype._evaluateLimits=function(){ this.minxval=this.maxxval=null; +if(this.options.dateWindow){ +this.minxval=this.options.dateWindow[0]; +this.maxxval=this.options.dateWindow[1]; +}else{ for(var _6 in this.datasets){ +if(!this.datasets.hasOwnProperty(_6)){ +continue; +} var _7=this.datasets[_6]; var x1=_7[0][0]; if(!this.minxval||x1this.maxxval){ this.maxxval=x2; } } +} this.xrange=this.maxxval-this.minxval; this.xscale=(this.xrange!=0?1/this.xrange:1); this.minyval=this.options.yAxis[0]; @@ -39,6 +47,9 @@ this.yscale=(this.yrange!=0?1/this.yrange:1); DygraphLayout.prototype._evaluateLineCharts=function(){ this.points=new Array(); for(var _10 in this.datasets){ +if(!this.datasets.hasOwnProperty(_10)){ +continue; +} var _11=this.datasets[_10]; for(var j=0;j<_11.length;j++){ var _13=_11[j]; @@ -82,6 +93,9 @@ return; } var i=0; for(var _19 in this.datasets){ +if(!this.datasets.hasOwnProperty(_19)){ +continue; +} var j=0; var _20=this.datasets[_19]; for(var j=0;j<_20.length;j++,i++){ @@ -214,8 +228,10 @@ var _41={"position":"absolute","fontSize":this.options.axisLabelFontSize+"px","z var _42=function(txt){ var div=document.createElement("div"); for(var _45 in _41){ +if(_41.hasOwnProperty(_45)){ div.style[_45]=_41[_45]; } +} div.appendChild(document.createTextNode(txt)); return div; }; @@ -223,7 +239,7 @@ _40.save(); _40.strokeStyle=this.options.axisLineColor; _40.lineWidth=this.options.axisLineWidth; if(this.options.drawYAxis){ -if(this.layout.yticks){ +if(this.layout.yticks&&this.layout.yticks.length>0){ for(var i=0;i=10){ -self.doZoom_(Math.min(_127,_129),Math.max(_127,_129)); +_130=getX(_143); +_131=getY(_143); +var _144=Math.abs(_130-_128); +var _145=Math.abs(_131-_129); +if(_144<2&&_145<2&&self.attr_("clickCallback")!=null&&self.lastx_!=undefined){ +self.attr_("clickCallback")(_143,self.lastx_,self.selPoints_); +} +if(_144>=10){ +self.doZoom_(Math.min(_128,_130),Math.max(_128,_130)); }else{ self.canvas_.getContext("2d").clearRect(0,0,self.canvas_.width,self.canvas_.height); } -_127=null; _128=null; +_129=null; +} +if(_127){ +_127=false; +_133=null; +_134=null; } }); -Dygraph.addEvent(this.hidden_,"dblclick",function(_143){ +Dygraph.addEvent(this.hidden_,"dblclick",function(_146){ if(self.dateWindow_==null){ return; } self.dateWindow_=null; self.drawGraph_(self.rawData_); -var _144=self.rawData_[0][0]; -var _145=self.rawData_[self.rawData_.length-1][0]; +var _147=self.rawData_[0][0]; +var _148=self.rawData_[self.rawData_.length-1][0]; if(self.attr_("zoomCallback")){ -self.attr_("zoomCallback")(_144,_145); +self.attr_("zoomCallback")(_147,_148); } }); }; -Dygraph.prototype.drawZoomRect_=function(_146,endX,_148){ +Dygraph.prototype.drawZoomRect_=function(_149,endX,_151){ var ctx=this.canvas_.getContext("2d"); -if(_148){ -ctx.clearRect(Math.min(_146,_148),0,Math.abs(_146-_148),this.height_); +if(_151){ +ctx.clearRect(Math.min(_149,_151),0,Math.abs(_149-_151),this.height_); } -if(endX&&_146){ +if(endX&&_149){ ctx.fillStyle="rgba(128,128,128,0.33)"; -ctx.fillRect(Math.min(_146,endX),0,Math.abs(endX-_146),this.height_); +ctx.fillRect(Math.min(_149,endX),0,Math.abs(endX-_149),this.height_); } }; -Dygraph.prototype.doZoom_=function(lowX,_150){ -var _151=this.layout_.points; -var _152=null; -var _153=null; -for(var i=0;i<_151.length;i++){ -var cx=_151[i].canvasx; -var x=_151[i].xval; -if(cx_152)){ -_152=x; +Dygraph.prototype.doZoom_=function(lowX,_153){ +var _154=this.layout_.points; +var _155=null; +var _156=null; +for(var i=0;i<_154.length;i++){ +var cx=_154[i].canvasx; +var x=_154[i].xval; +if(cx_155)){ +_155=x; } -if(cx>_150&&(_153==null||x<_153)){ -_153=x; +if(cx>_153&&(_156==null||x<_156)){ +_156=x; } } -if(_152==null){ -_152=_151[0].xval; +if(_155==null){ +_155=_154[0].xval; } -if(_153==null){ -_153=_151[_151.length-1].xval; +if(_156==null){ +_156=_154[_154.length-1].xval; } -this.dateWindow_=[_152,_153]; +this.dateWindow_=[_155,_156]; this.drawGraph_(this.rawData_); if(this.attr_("zoomCallback")){ -this.attr_("zoomCallback")(_152,_153); +this.attr_("zoomCallback")(_155,_156); } }; -Dygraph.prototype.mouseMove_=function(_155){ -var _156=Dygraph.pageX(_155)-Dygraph.findPosX(this.hidden_); -var _157=this.layout_.points; -var _158=-1; -var _159=-1; -var _160=1e+100; +Dygraph.prototype.mouseMove_=function(_158){ +var _159=Dygraph.pageX(_158)-Dygraph.findPosX(this.hidden_); +var _160=this.layout_.points; +var _161=-1; +var _162=-1; +var _163=1e+100; var idx=-1; -for(var i=0;i<_157.length;i++){ -var dist=Math.abs(_157[i].canvasx-_156); -if(dist>_160){ +for(var i=0;i<_160.length;i++){ +var dist=Math.abs(_160[i].canvasx-_159); +if(dist>_163){ break; } -_160=dist; +_163=dist; idx=i; } if(idx>=0){ -_158=_157[idx].xval; +_161=_160[idx].xval; } -if(_156>_157[_157.length-1].canvasx){ -_158=_157[_157.length-1].xval; +if(_159>_160[_160.length-1].canvasx){ +_161=_160[_160.length-1].xval; } this.selPoints_=[]; -for(var i=0;i<_157.length;i++){ -if(_157[i].xval==_158){ -this.selPoints_.push(_157[i]); +for(var i=0;i<_160.length;i++){ +if(_160[i].xval==_161){ +this.selPoints_.push(_160[i]); } } if(this.attr_("highlightCallback")){ -this.attr_("highlightCallback")(_155,_158,this.selPoints_); +this.attr_("highlightCallback")(_158,_161,this.selPoints_); } -var _163=this.attr_("highlightCircleSize"); +var _166=this.attr_("highlightCircleSize"); var ctx=this.canvas_.getContext("2d"); if(this.previousVerticalX_>=0){ var px=this.previousVerticalX_; -ctx.clearRect(px-_163-1,0,2*_163+2,this.height_); +ctx.clearRect(px-_166-1,0,2*_166+2,this.height_); } var isOK=function(x){ return x&&!isNaN(x); }; if(this.selPoints_.length>0){ -var _156=this.selPoints_[0].canvasx; -var _165=this.attr_("xValueFormatter")(_158,this)+":"; +var _159=this.selPoints_[0].canvasx; +var _168=this.attr_("xValueFormatter")(_161,this)+":"; var clen=this.colors_.length; for(var i=0;i"+_167.name+":"+this.round_(_167.yval,2); +_168+=" "+_170.name+":"+this.round_(_170.yval,2); } -this.attr_("labelsDiv").innerHTML=_165; -this.lastx_=_158; +this.attr_("labelsDiv").innerHTML=_168; +this.lastx_=_161; ctx.save(); for(var i=0;i=Dygraph.DAILY){ -_195.push({v:t,label:new Date(t+3600*1000).strftime(_197)}); +if(frac==0||_197>=Dygraph.DAILY){ +_198.push({v:t,label:new Date(t+3600*1000).strftime(_200)}); }else{ -_195.push({v:t,label:this.hmsString_(t)}); +_198.push({v:t,label:this.hmsString_(t)}); } } }else{ -var _198; -var _199=1; -if(_194==Dygraph.MONTHLY){ -_198=[0,1,2,3,4,5,6,7,8,9,10,11,12]; +var _202; +var _203=1; +if(_197==Dygraph.MONTHLY){ +_202=[0,1,2,3,4,5,6,7,8,9,10,11,12]; }else{ -if(_194==Dygraph.QUARTERLY){ -_198=[0,3,6,9]; +if(_197==Dygraph.QUARTERLY){ +_202=[0,3,6,9]; }else{ -if(_194==Dygraph.BIANNUAL){ -_198=[0,6]; +if(_197==Dygraph.BIANNUAL){ +_202=[0,6]; }else{ -if(_194==Dygraph.ANNUAL){ -_198=[0]; +if(_197==Dygraph.ANNUAL){ +_202=[0]; }else{ -if(_194==Dygraph.DECADAL){ -_198=[0]; -_199=10; +if(_197==Dygraph.DECADAL){ +_202=[0]; +_203=10; } } } } } -var _200=new Date(_192).getFullYear(); -var _201=new Date(_193).getFullYear(); -var _202=Dygraph.zeropad; -for(var i=_200;i<=_201;i++){ -if(i%_199!=0){ +var _204=new Date(_195).getFullYear(); +var _205=new Date(_196).getFullYear(); +var _206=Dygraph.zeropad; +for(var i=_204;i<=_205;i++){ +if(i%_203!=0){ continue; } -for(var j=0;j<_198.length;j++){ -var _203=i+"/"+_202(1+_198[j])+"/01"; -var t=Date.parse(_203); -if(t<_192||t>_193){ +for(var j=0;j<_202.length;j++){ +var _207=i+"/"+_206(1+_202[j])+"/01"; +var t=Date.parse(_207); +if(t<_195||t>_196){ continue; } -_195.push({v:t,label:new Date(t).strftime("%b %y")}); +_198.push({v:t,label:new Date(t).strftime("%b %y")}); } } } -return _195; +return _198; }; -Dygraph.dateTicker=function(_204,_205,self){ -var _206=-1; +Dygraph.dateTicker=function(_208,_209,self){ +var _210=-1; for(var i=0;i=self.attr_("pixelsPerXLabel")){ -_206=i; +var _211=self.NumXTicks(_208,_209,i); +if(self.width_/_211>=self.attr_("pixelsPerXLabel")){ +_210=i; break; } } -if(_206>=0){ -return self.GetXAxis(_204,_205,_206); +if(_210>=0){ +return self.GetXAxis(_208,_209,_210); }else{ } }; Dygraph.numericTicks=function(minV,maxV,self){ -var _210=[1,2,5]; -var _211,low_val,high_val,nTicks; -var _212=self.attr_("pixelsPerYLabel"); +if(self.attr_("labelsKMG2")){ +var _214=[1,2,4,8]; +}else{ +var _214=[1,2,5]; +} +var _215,low_val,high_val,nTicks; +var _216=self.attr_("pixelsPerYLabel"); for(var i=-10;i<50;i++){ -var _213=Math.pow(10,i); -for(var j=0;j<_210.length;j++){ -_211=_213*_210[j]; -low_val=Math.floor(minV/_211)*_211; -high_val=Math.ceil(maxV/_211)*_211; -nTicks=(high_val-low_val)/_211; -var _214=self.height_/nTicks; -if(_214>_212){ +if(self.attr_("labelsKMG2")){ +var _217=Math.pow(16,i); +}else{ +var _217=Math.pow(10,i); +} +for(var j=0;j<_214.length;j++){ +_215=_217*_214[j]; +low_val=Math.floor(minV/_215)*_215; +high_val=Math.ceil(maxV/_215)*_215; +nTicks=(high_val-low_val)/_215; +var _218=self.height_/nTicks; +if(_218>_216){ break; } } -if(_214>_212){ +if(_218>_216){ break; } } -var _215=[]; -for(var i=0;i=k*k*k){ -_217=self.round_(_216/(k*k*k),1)+"B"; -}else{ -if(_216>=k*k){ -_217=self.round_(_216/(k*k),1)+"M"; -}else{ -if(_216>=k){ -_217=self.round_(_216/k,1)+"K"; +k=1000; +_221=["K","M","B","T"]; } +if(self.attr_("labelsKMG2")){ +if(k){ +self.warn("Setting both labelsKMB and labelsKMG2. Pick one!"); } +k=1024; +_221=["k","M","G","T"]; +} +for(var i=0;i=0;j--,n/=k){ +if(_223>=n){ +_224=self.round_(_222/n,1)+_221[j]; +break; } } -_215.push({label:_217,v:_216}); } -return _215; +_219.push({label:_224,v:_222}); +} +return _219; }; Dygraph.prototype.addYTicks_=function(minY,maxY){ -var _221=Dygraph.numericTicks(minY,maxY,this); -this.layout_.updateOptions({yAxis:[minY,maxY],yTicks:_221}); +var _228=Dygraph.numericTicks(minY,maxY,this); +this.layout_.updateOptions({yAxis:[minY,maxY],yTicks:_228}); }; -Dygraph.prototype.extremeValues_=function(_222){ +Dygraph.prototype.extremeValues_=function(_229){ var minY=null,maxY=null; var bars=this.attr_("errorBars")||this.attr_("customBars"); if(bars){ -for(var j=0;j<_222.length;j++){ -var y=_222[j][1][0]; +for(var j=0;j<_229.length;j++){ +var y=_229[j][1][0]; if(!y){ continue; } -var low=y-_222[j][1][1]; -var high=y+_222[j][1][2]; +var low=y-_229[j][1][1]; +var high=y+_229[j][1][2]; if(low>y){ low=y; } @@ -1162,9 +1266,9 @@ minY=low; } } }else{ -for(var j=0;j<_222.length;j++){ -var y=_222[j][1]; -if(!y){ +for(var j=0;j<_229.length;j++){ +var y=_229[j][1]; +if(y===null||isNaN(y)){ continue; } if(maxY==null||y>maxY){ @@ -1183,109 +1287,110 @@ this.layout_.removeAllDatasets(); this.setColors_(); this.attrs_["pointSize"]=0.5*this.attr_("highlightCircleSize"); for(var i=1;i=low&&_226[k][0]<=high){ -_227.push(_226[k]); +var _234=[]; +for(var k=0;k<_233.length;k++){ +if(_233[k][0]>=low&&_233[k][0]<=high){ +_234.push(_233[k]); } } -_226=_227; +_233=_234; } -var _228=this.extremeValues_(_226); -var _229=_228[0]; -var _230=_228[1]; -if(!minY||_229maxY){ -maxY=_230; +if(!maxY||_237>maxY){ +maxY=_237; } if(bars){ var vals=[]; -for(var j=0;j<_226.length;j++){ -vals[j]=[_226[j][0],_226[j][1][0],_226[j][1][1],_226[j][1][2]]; +for(var j=0;j<_233.length;j++){ +vals[j]=[_233[j][0],_233[j][1][0],_233[j][1][1],_233[j][1][2]]; } this.layout_.addDataset(this.attr_("labels")[i],vals); }else{ -this.layout_.addDataset(this.attr_("labels")[i],_226); +this.layout_.addDataset(this.attr_("labels")[i],_233); } } if(this.valueRange_!=null){ this.addYTicks_(this.valueRange_[0],this.valueRange_[1]); }else{ var span=maxY-minY; -var _233=maxY+0.1*span; -var _234=minY-0.1*span; -if(_234<0&&minY>=0){ -_234=0; +var _240=maxY+0.1*span; +var _241=minY-0.1*span; +if(_241<0&&minY>=0){ +_241=0; } -if(_233>0&&maxY<=0){ -_233=0; +if(_240>0&&maxY<=0){ +_240=0; } if(this.attr_("includeZero")){ if(maxY<0){ -_233=0; +_240=0; } if(minY>0){ -_234=0; +_241=0; } } -this.addYTicks_(_234,_233); +this.addYTicks_(_241,_240); } this.addXTicks_(); +this.layout_.updateOptions({dateWindow:this.dateWindow_}); this.layout_.evaluateWithError(); this.plotter_.clear(); this.plotter_.render(); this.canvas_.getContext("2d").clearRect(0,0,this.canvas_.width,this.canvas_.height); }; -Dygraph.prototype.rollingAverage=function(_235,_236){ -if(_235.length<2){ -return _235; +Dygraph.prototype.rollingAverage=function(_242,_243){ +if(_242.length<2){ +return _242; } -var _236=Math.min(_236,_235.length-1); -var _237=[]; -var _238=this.attr_("sigma"); +var _243=Math.min(_243,_242.length-1); +var _244=[]; +var _245=this.attr_("sigma"); if(this.fractions_){ var num=0; var den=0; var mult=100; -for(var i=0;i<_235.length;i++){ -num+=_235[i][1][0]; -den+=_235[i][1][1]; -if(i-_236>=0){ -num-=_235[i-_236][1][0]; -den-=_235[i-_236][1][1]; -} -var date=_235[i][0]; -var _241=den?num/den:0; +for(var i=0;i<_242.length;i++){ +num+=_242[i][1][0]; +den+=_242[i][1][1]; +if(i-_243>=0){ +num-=_242[i-_243][1][0]; +den-=_242[i-_243][1][1]; +} +var date=_242[i][0]; +var _248=den?num/den:0; if(this.attr_("errorBars")){ if(this.wilsonInterval_){ if(den){ -var p=_241<0?0:_241,n=den; -var pm=_238*Math.sqrt(p*(1-p)/n+_238*_238/(4*n*n)); -var _243=1+_238*_238/den; -var low=(p+_238*_238/(2*den)-pm)/_243; -var high=(p+_238*_238/(2*den)+pm)/_243; -_237[i]=[date,[p*mult,(p-low)*mult,(high-p)*mult]]; +var p=_248<0?0:_248,n=den; +var pm=_245*Math.sqrt(p*(1-p)/n+_245*_245/(4*n*n)); +var _250=1+_245*_245/den; +var low=(p+_245*_245/(2*den)-pm)/_250; +var high=(p+_245*_245/(2*den)+pm)/_250; +_244[i]=[date,[p*mult,(p-low)*mult,(high-p)*mult]]; }else{ -_237[i]=[date,[0,0,0]]; +_244[i]=[date,[0,0,0]]; } }else{ -var _244=den?_238*Math.sqrt(_241*(1-_241)/den):1; -_237[i]=[date,[mult*_241,mult*_244,mult*_244]]; +var _251=den?_245*Math.sqrt(_248*(1-_248)/den):1; +_244[i]=[date,[mult*_248,mult*_251,mult*_251]]; } }else{ -_237[i]=[date,mult*_241]; +_244[i]=[date,mult*_248]; } } }else{ @@ -1293,109 +1398,109 @@ if(this.attr_("customBars")){ var low=0; var mid=0; var high=0; -var _246=0; -for(var i=0;i<_235.length;i++){ -var data=_235[i][1]; +var _253=0; +for(var i=0;i<_242.length;i++){ +var data=_242[i][1]; var y=data[1]; -_237[i]=[_235[i][0],[y,y-data[0],data[2]-y]]; +_244[i]=[_242[i][0],[y,y-data[0],data[2]-y]]; if(y!=null&&!isNaN(y)){ low+=data[0]; mid+=y; high+=data[2]; -_246+=1; +_253+=1; } -if(i-_236>=0){ -var prev=_235[i-_236]; +if(i-_243>=0){ +var prev=_242[i-_243]; if(prev[1][1]!=null&&!isNaN(prev[1][1])){ low-=prev[1][0]; mid-=prev[1][1]; high-=prev[1][2]; -_246-=1; +_253-=1; } } -_237[i]=[_235[i][0],[1*mid/_246,1*(mid-low)/_246,1*(high-mid)/_246]]; +_244[i]=[_242[i][0],[1*mid/_253,1*(mid-low)/_253,1*(high-mid)/_253]]; } }else{ -var _248=Math.min(_236-1,_235.length-2); +var _255=Math.min(_243-1,_242.length-2); if(!this.attr_("errorBars")){ -if(_236==1){ -return _235; +if(_243==1){ +return _242; } -for(var i=0;i<_235.length;i++){ +for(var i=0;i<_242.length;i++){ var sum=0; -var _250=0; -for(var j=Math.max(0,i-_236+1);j=0||str.indexOf("/")>=0||isNaN(parseFloat(str))){ -_255=true; +_262=true; }else{ if(str.length==8&&str>"19700101"&&str<"20371231"){ -_255=true; +_262=true; } } -if(_255){ +if(_262){ this.attrs_.xValueFormatter=Dygraph.dateString_; this.attrs_.xValueParser=Dygraph.dateParser; this.attrs_.xTicker=Dygraph.dateTicker; @@ -1411,64 +1516,64 @@ this.attrs_.xTicker=Dygraph.numericTicks; }; Dygraph.prototype.parseCSV_=function(data){ var ret=[]; -var _256=data.split("\n"); -var _257=this.attr_("delimiter"); -if(_256[0].indexOf(_257)==-1&&_256[0].indexOf("\t")>=0){ -_257="\t"; +var _263=data.split("\n"); +var _264=this.attr_("delimiter"); +if(_263[0].indexOf(_264)==-1&&_263[0].indexOf("\t")>=0){ +_264="\t"; } -var _258=0; +var _265=0; if(this.labelsFromCSV_){ -_258=1; -this.attrs_.labels=_256[0].split(_257); -} -var _259; -var _260=false; -var _261=this.attr_("labels").length; -for(var i=_258;i<_256.length;i++){ -var line=_256[i]; +_265=1; +this.attrs_.labels=_263[0].split(_264); +} +var _266; +var _267=false; +var _268=this.attr_("labels").length; +for(var i=_265;i<_263.length;i++){ +var line=_263[i]; if(line.length==0){ continue; } if(line[0]=="#"){ continue; } -var _263=line.split(_257); -if(_263.length<2){ +var _270=line.split(_264); +if(_270.length<2){ continue; } -var _264=[]; -if(!_260){ -this.detectTypeFromString_(_263[0]); -_259=this.attr_("xValueParser"); -_260=true; +var _271=[]; +if(!_267){ +this.detectTypeFromString_(_270[0]); +_266=this.attr_("xValueParser"); +_267=true; } -_264[0]=_259(_263[0],this); +_271[0]=_266(_270[0],this); if(this.fractions_){ -for(var j=1;j<_263.length;j++){ -var vals=_263[j].split("/"); -_264[j]=[parseFloat(vals[0]),parseFloat(vals[1])]; +for(var j=1;j<_270.length;j++){ +var vals=_270[j].split("/"); +_271[j]=[parseFloat(vals[0]),parseFloat(vals[1])]; } }else{ if(this.attr_("errorBars")){ -for(var j=1;j<_263.length;j+=2){ -_264[(j+1)/2]=[parseFloat(_263[j]),parseFloat(_263[j+1])]; +for(var j=1;j<_270.length;j+=2){ +_271[(j+1)/2]=[parseFloat(_270[j]),parseFloat(_270[j+1])]; } }else{ if(this.attr_("customBars")){ -for(var j=1;j<_263.length;j++){ -var vals=_263[j].split(";"); -_264[j]=[parseFloat(vals[0]),parseFloat(vals[1]),parseFloat(vals[2])]; +for(var j=1;j<_270.length;j++){ +var vals=_270[j].split(";"); +_271[j]=[parseFloat(vals[0]),parseFloat(vals[1]),parseFloat(vals[2])]; } }else{ -for(var j=1;j<_263.length;j++){ -_264[j]=parseFloat(_263[j]); +for(var j=1;j<_270.length;j++){ +_271[j]=parseFloat(_270[j]); } } } } -ret.push(_264); -if(_264.length!=_261){ -this.error("Number of columns in line "+i+" ("+_264.length+") does not agree with number of labels ("+_261+") "+line); +ret.push(_271); +if(_271.length!=_268){ +this.error("Number of columns in line "+i+" ("+_271.length+") does not agree with number of labels ("+_268+") "+line); } } return ret; @@ -1492,19 +1597,19 @@ this.attrs_.labels.push("Y"+i); if(Dygraph.isDateLike(data[0][0])){ this.attrs_.xValueFormatter=Dygraph.dateString_; this.attrs_.xTicker=Dygraph.dateTicker; -var _265=Dygraph.clone(data); +var _272=Dygraph.clone(data); for(var i=0;i=0){ this.loadedEvent_(this.file_); }else{ var req=new XMLHttpRequest(); -var _275=this; +var _282=this; req.onreadystatechange=function(){ if(req.readyState==4){ if(req.status==200){ -_275.loadedEvent_(req.responseText); +_282.loadedEvent_(req.responseText); } } }; @@ -1635,72 +1743,91 @@ this.error("Unknown data format: "+(typeof this.file_)); } } }; -Dygraph.prototype.updateOptions=function(_276){ -if(_276.rollPeriod){ -this.rollPeriod_=_276.rollPeriod; +Dygraph.prototype.updateOptions=function(_283){ +if(_283.rollPeriod){ +this.rollPeriod_=_283.rollPeriod; } -if(_276.dateWindow){ -this.dateWindow_=_276.dateWindow; +if(_283.dateWindow){ +this.dateWindow_=_283.dateWindow; } -if(_276.valueRange){ -this.valueRange_=_276.valueRange; +if(_283.valueRange){ +this.valueRange_=_283.valueRange; } -Dygraph.update(this.user_attrs_,_276); +Dygraph.update(this.user_attrs_,_283); this.labelsFromCSV_=(this.attr_("labels")==null); this.layout_.updateOptions({"errorBars":this.attr_("errorBars")}); -if(_276["file"]&&_276["file"]!=this.file_){ -this.file_=_276["file"]; +if(_283["file"]&&_283["file"]!=this.file_){ +this.file_=_283["file"]; this.start_(); }else{ this.drawGraph_(this.rawData_); } }; -Dygraph.prototype.adjustRoll=function(_277){ -this.rollPeriod_=_277; +Dygraph.prototype.resize=function(_284,_285){ +if((_284===null)!=(_285===null)){ +this.warn("Dygraph.resize() should be called with zero parameters or "+"two non-NULL parameters. Pretending it was zero."); +_284=_285=null; +} +this.maindiv_.innerHTML=""; +this.attrs_.labelsDiv=null; +if(_284){ +this.maindiv_.style.width=_284+"px"; +this.maindiv_.style.height=_285+"px"; +this.width_=_284; +this.height_=_285; +}else{ +this.width_=this.maindiv_.offsetWidth; +this.height_=this.maindiv_.offsetHeight; +} +this.createInterface_(); +this.drawGraph_(this.rawData_); +}; +Dygraph.prototype.adjustRoll=function(_286){ +this.rollPeriod_=_286; this.drawGraph_(this.rawData_); }; Dygraph.createCanvas=function(){ -var _278=document.createElement("canvas"); +var _287=document.createElement("canvas"); isIE=(/MSIE/.test(navigator.userAgent)&&!window.opera); if(isIE){ -_278=G_vmlCanvasManager.initElement(_278); +_287=G_vmlCanvasManager.initElement(_287); } -return _278; +return _287; }; -Dygraph.GVizChart=function(_279){ -this.container=_279; +Dygraph.GVizChart=function(_288){ +this.container=_288; }; -Dygraph.GVizChart.prototype.draw=function(data,_280){ +Dygraph.GVizChart.prototype.draw=function(data,_289){ this.container.innerHTML=""; -this.date_graph=new Dygraph(this.container,data,_280); +this.date_graph=new Dygraph(this.container,data,_289); }; DateGraph=Dygraph; -function RGBColor(_281){ +function RGBColor(_290){ this.ok=false; -if(_281.charAt(0)=="#"){ -_281=_281.substr(1,6); +if(_290.charAt(0)=="#"){ +_290=_290.substr(1,6); } -_281=_281.replace(/ /g,""); -_281=_281.toLowerCase(); -var _282={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dodgerblue:"1e90ff",feldspar:"d19275",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgrey:"d3d3d3",lightgreen:"90ee90",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslateblue:"8470ff",lightslategray:"778899",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"00ff00",limegreen:"32cd32",linen:"faf0e6",magenta:"ff00ff",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370d8",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"d87093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",red:"ff0000",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",violetred:"d02090",wheat:"f5deb3",white:"ffffff",whitesmoke:"f5f5f5",yellow:"ffff00",yellowgreen:"9acd32"}; -for(var key in _282){ -if(_281==key){ -_281=_282[key]; +_290=_290.replace(/ /g,""); +_290=_290.toLowerCase(); +var _291={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dodgerblue:"1e90ff",feldspar:"d19275",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgrey:"d3d3d3",lightgreen:"90ee90",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslateblue:"8470ff",lightslategray:"778899",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"00ff00",limegreen:"32cd32",linen:"faf0e6",magenta:"ff00ff",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370d8",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"d87093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",red:"ff0000",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",violetred:"d02090",wheat:"f5deb3",white:"ffffff",whitesmoke:"f5f5f5",yellow:"ffff00",yellowgreen:"9acd32"}; +for(var key in _291){ +if(_290==key){ +_290=_291[key]; } } -var _284=[{re:/^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,example:["rgb(123, 234, 45)","rgb(255,234,245)"],process:function(bits){ +var _293=[{re:/^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,example:["rgb(123, 234, 45)","rgb(255,234,245)"],process:function(bits){ return [parseInt(bits[1]),parseInt(bits[2]),parseInt(bits[3])]; }},{re:/^(\w{2})(\w{2})(\w{2})$/,example:["#00ff00","336699"],process:function(bits){ return [parseInt(bits[1],16),parseInt(bits[2],16),parseInt(bits[3],16)]; }},{re:/^(\w{1})(\w{1})(\w{1})$/,example:["#fb0","f0f"],process:function(bits){ return [parseInt(bits[1]+bits[1],16),parseInt(bits[2]+bits[2],16),parseInt(bits[3]+bits[3],16)]; }}]; -for(var i=0;i<_284.length;i++){ -var re=_284[i].re; -var _287=_284[i].process; -var bits=re.exec(_281); +for(var i=0;i<_293.length;i++){ +var re=_293[i].re; +var _296=_293[i].process; +var bits=re.exec(_290); if(bits){ -channels=_287(bits); +channels=_296(bits); this.r=channels[0]; this.g=channels[1]; this.b=channels[2];