flm01/mote/v1/openwrt/package/luci/applications/luci-livestats/htdocs/luci-static/resources/livestats/PlotKit.js

2178 lines
63 KiB
JavaScript

/***
PlotKit.PlotKit 0.9.1 : PACKED VERSION
THIS FILE IS AUTOMATICALLY GENERATED. If creating patches, please
diff against the source tree, not this file.
For more information, <http://www.liquidx.net/plotkit/>.
Copyright (c) 2006. Alastair Tse.
***/
try{
if(typeof (MochiKit.Base)=="undefined"||typeof (MochiKit.DOM)=="undefined"||typeof (MochiKit.Color)=="undefined"||typeof (MochiKit.Format)=="undefined"){
throw "";
}
}
catch(e){
throw "PlotKit depends on MochiKit.{Base,Color,DOM,Format}";
}
MochiKit.Base.update(MochiKit.Color.Color.prototype,{asFillColor:function(){
return this.lighterColorWithLevel(0.3);
},asStrokeColor:function(){
return this.darkerColorWithLevel(0.1);
},asPointColor:function(){
return this.lighterColorWithLevel(0.1);
}});
if(typeof (PlotKit)=="undefined"){
PlotKit={};
}
PlotKit.NAME="PlotKit";
PlotKit.VERSION="0.8";
PlotKit.__repr__=function(){
return "["+this.NAME+" "+this.VERSION+"]";
};
PlotKit.toString=function(){
return this.__repr__();
};
if(typeof (PlotKit.Base)=="undefined"){
PlotKit.Base={};
}
PlotKit.Base.NAME="PlotKit.Base";
PlotKit.Base.VERSION=PlotKit.VERSION;
PlotKit.Base.__repr__=function(){
return "["+this.NAME+" "+this.VERSION+"]";
};
PlotKit.Base.toString=function(){
return this.__repr__();
};
PlotKit.Base.usingPrototype=function(){
try{
return (typeof (Object.extend)=="function");
}
catch(e){
return false;
}
};
MochiKit.Base.update(PlotKit.Base,{roundInterval:function(_1,_2,_3){
var _4=MochiKit.Format.roundToFixed;
var _5=_1/_2;
return parseFloat(_4(_5,_3));
},collapse:function(_6){
var m=MochiKit.Base;
var _8=new Array();
for(var i=0;i<_6.length;i++){
_8=m.concat(_8,_6[i]);
}
if(PlotKit.Base.usingPrototype()){
delete _8.extend;
delete _8.from;
delete _8.inspect;
}
return _8;
},uniq:function(_10){
var m=MochiKit.Base;
if(!m.isArrayLike(_10)||(_10.length<1)){
return new Array();
}
var _11=new Array();
var _12=_10[0];
_11.push(_10[0]);
for(var i=1;i<_10.length;i++){
if(m.compare(_10[i],_12)!=0){
_12=_10[i];
_11.push(_10[i]);
}
}
return _11;
},colorScheme:function(){
var mb=MochiKit.Base;
var mc=MochiKit.Color;
var _15=["red","orange","yellow","green","cyan","blue","purple","magenta"];
var _16=function(_17){
return mc.Color[_17+"Color"]();
};
return mb.map(_16,_15);
},baseDarkPrimaryColors:function(){
var _18=MochiKit.Color.Color.fromHexString;
return [_18("#ad3f40"),_18("#ddac2c"),_18("#dfdd0c"),_18("#5276c4"),_18("#739c5a")];
},basePrimaryColors:function(){
var _19=MochiKit.Color.Color.fromHexString;
return [_19("#d24c4d"),_19("#f2b32f"),_19("#ece90e"),_19("#5d83da"),_19("#78a15d")];
},baseBlueColors:function(){
var _20=MochiKit.Color.Color.fromHexString;
return [_20("#4b6b94"),_20("#5d81b4"),_20("#acbad2")];
},palette:function(_21,_22,_23,_24){
var _25=MochiKit.Base.isUndefinedOrNull;
var _26=new Array();
if(_25(_24)){
_24=0.1;
}
if(_25(_23)){
_23=0.4;
}
if(_25(_22)){
_22=-0.2;
}
var _27=_22;
while(_27<=_23){
_26.push(_27);
_27+=_24;
}
var _28=function(_29,_30){
return _29.lighterColorWithLevel(_30);
};
return MochiKit.Base.map(partial(_28,_21),_26);
},excanvasSupported:function(){
if(/MSIE/.test(navigator.userAgent)&&!window.opera){
return true;
}
return false;
},findPosX:function(obj){
var _32=0;
if(obj.offsetParent){
while(obj.offsetParent){
_32+=obj.offsetLeft;
obj=obj.offsetParent;
}
}else{
if(obj.x){
_32+=obj.x;
}
}
return _32;
},findPosY:function(obj){
var _33=0;
if(obj.offsetParent){
while(obj.offsetParent){
_33+=obj.offsetTop;
obj=obj.offsetParent;
}
}else{
if(obj.y){
_33+=obj.y;
}
}
return _33;
},isFuncLike:function(obj){
return (typeof (obj)=="function");
}});
PlotKit.Base.map=function(fn,lst){
if(PlotKit.Base.usingPrototype()){
var _36=[];
for(var x in lst){
if(typeof (lst[x])=="function"){
continue;
}
_36.push(fn(lst[x]));
}
return _36;
}else{
return MochiKit.Base.map(fn,lst);
}
};
PlotKit.Base.items=function(lst){
if(PlotKit.Base.usingPrototype()){
var _38=[];
for(var x in lst){
if(typeof (lst[x])=="function"){
continue;
}
_38.push([x,lst[x]]);
}
return _38;
}else{
return MochiKit.Base.items(lst);
}
};
PlotKit.Base.keys=function(lst){
if(PlotKit.Base.usingPrototype()){
var _39=[];
for(var x in lst){
if(typeof (lst[x])=="function"){
continue;
}
_39.push(x);
}
return _39;
}else{
return MochiKit.Base.keys(lst);
}
};
PlotKit.Base.baseColors=function(){
var _40=MochiKit.Color.Color.fromHexString;
return [_40("#476fb2"),_40("#be2c2b"),_40("#85b730"),_40("#734a99"),_40("#26a1c5"),_40("#fb8707"),_40("#000000")];
};
PlotKit.Base.officeBaseStyle={"axisLineWidth":2,"axisLabelColor":Color.grayColor(),"axisLineColor":Color.whiteColor(),"padding":{top:5,bottom:10,left:30,right:30}};
MochiKit.Base.update(PlotKit.Base,{officeBlue:function(){
var r={"colorScheme":PlotKit.Base.palette(PlotKit.Base.baseColors()[0]),"backgroundColor":PlotKit.Base.baseColors()[0].lighterColorWithLevel(0.45)};
MochiKit.Base.update(r,PlotKit.Base.officeBaseStyle);
return r;
},officeRed:function(){
var r={"colorScheme":PlotKit.Base.palette(PlotKit.Base.baseColors()[1]),"backgroundColor":PlotKit.Base.baseColors()[1].lighterColorWithLevel(0.5)};
MochiKit.Base.update(r,PlotKit.Base.officeBaseStyle);
return r;
},officeGreen:function(){
var r={"colorScheme":PlotKit.Base.palette(PlotKit.Base.baseColors()[2]),"backgroundColor":PlotKit.Base.baseColors()[2].lighterColorWithLevel(0.5)};
MochiKit.Base.update(r,PlotKit.Base.officeBaseStyle);
return r;
},officePurple:function(){
var r={"colorScheme":PlotKit.Base.palette(PlotKit.Base.baseColors()[3]),"backgroundColor":PlotKit.Base.baseColors()[3].lighterColorWithLevel(0.5)};
MochiKit.Base.update(r,PlotKit.Base.officeBaseStyle);
return r;
},officeCyan:function(){
var r={"colorScheme":PlotKit.Base.palette(PlotKit.Base.baseColors()[4]),"backgroundColor":PlotKit.Base.baseColors()[4].lighterColorWithLevel(0.5)};
MochiKit.Base.update(r,PlotKit.Base.officeBaseStyle);
return r;
},officeOrange:function(){
var r={"colorScheme":PlotKit.Base.palette(PlotKit.Base.baseColors()[5]),"backgroundColor":PlotKit.Base.baseColors()[5].lighterColorWithLevel(0.4)};
MochiKit.Base.update(r,PlotKit.Base.officeBaseStyle);
return r;
},officeBlack:function(){
var r={"colorScheme":PlotKit.Base.palette(PlotKit.Base.baseColors()[6],0,0.6),"backgroundColor":PlotKit.Base.baseColors()[6].lighterColorWithLevel(0.9)};
MochiKit.Base.update(r,PlotKit.Base.officeBaseStyle);
return r;
}});
PlotKit.Base.EXPORT=["baseColors","collapse","colorScheme","findPosX","findPosY","officeBaseStyle","officeBlue","officeRed","officeGreen","officePurple","officeCyan","officeOrange","officeBlack","roundInterval","uniq","isFuncLike","excanvasSupported"];
PlotKit.Base.EXPORT_OK=[];
PlotKit.Base.__new__=function(){
var m=MochiKit.Base;
m.nameFunctions(this);
this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
};
PlotKit.Base.__new__();
MochiKit.Base._exportSymbols(this,PlotKit.Base);
try{
if(typeof (PlotKit.Base)=="undefined"){
throw "";
}
}
catch(e){
throw "PlotKit.Layout depends on MochiKit.{Base,Color,DOM,Format} and PlotKit.Base";
}
if(typeof (PlotKit.Layout)=="undefined"){
PlotKit.Layout={};
}
PlotKit.Layout.NAME="PlotKit.Layout";
PlotKit.Layout.VERSION=PlotKit.VERSION;
PlotKit.Layout.__repr__=function(){
return "["+this.NAME+" "+this.VERSION+"]";
};
PlotKit.Layout.toString=function(){
return this.__repr__();
};
PlotKit.Layout.valid_styles=["bar","line","pie","point"];
PlotKit.Layout=function(_42,_43){
this.options={"barWidthFillFraction":0.75,"barOrientation":"vertical","xOriginIsZero":true,"yOriginIsZero":true,"xAxis":null,"yAxis":null,"xTicks":null,"yTicks":null,"xNumberOfTicks":10,"yNumberOfTicks":5,"xTickPrecision":1,"yTickPrecision":1,"pieRadius":0.4};
this.style=_42;
MochiKit.Base.update(this.options,_43?_43:{});
if(!MochiKit.Base.isUndefinedOrNull(this.options.xAxis)){
this.minxval=this.options.xAxis[0];
this.maxxval=this.options.xAxis[1];
this.xscale=this.maxxval-this.minxval;
}else{
this.minxval=0;
this.maxxval=null;
this.xscale=null;
}
if(!MochiKit.Base.isUndefinedOrNull(this.options.yAxis)){
this.minyval=this.options.yAxis[0];
this.maxyval=this.options.yAxis[1];
this.yscale=this.maxyval-this.minyval;
}else{
this.minyval=0;
this.maxyval=null;
this.yscale=null;
}
this.bars=new Array();
this.points=new Array();
this.slices=new Array();
this.xticks=new Array();
this.yticks=new Array();
this.datasets=new Array();
this.minxdelta=0;
this.xrange=1;
this.yrange=1;
this.hitTestCache={x2maxy:null};
};
PlotKit.Layout.prototype.addDataset=function(_44,_45){
this.datasets[_44]=_45;
};
PlotKit.Layout.prototype.removeDataset=function(_46,_47){
delete this.datasets[_46];
};
PlotKit.Layout.prototype.addDatasetFromTable=function(_48,_49,_50,_51,_52){
var _53=MochiKit.Base.isUndefinedOrNull;
var _54=MochiKit.DOM.scrapeText;
var _55=MochiKit.Format.strip;
if(_53(_50)){
_50=0;
}
if(_53(_51)){
_51=1;
}
if(_53(_52)){
_52=-1;
}
var _56=_49.tBodies[0].rows;
var _57=new Array();
var _58=new Array();
if(!_53(_56)){
for(var i=0;i<_56.length;i++){
_57.push([parseFloat(_55(_54(_56[i].cells[_50]))),parseFloat(_55(_54(_56[i].cells[_51])))]);
if(_52>=0){
_58.push({v:parseFloat(_55(_54(_56[i].cells[_50]))),label:_55(_54(_56[i].cells[_52]))});
}
}
this.addDataset(_48,_57);
if(_52>=0){
this.options.xTicks=_58;
}
return true;
}
return false;
};
PlotKit.Layout.prototype.evaluate=function(){
this._evaluateLimits();
this._evaluateScales();
if(this.style=="bar"){
if(this.options.barOrientation=="horizontal"){
this._evaluateHorizBarCharts();
}else{
this._evaluateBarCharts();
}
this._evaluateBarTicks();
}else{
if(this.style=="line"){
this._evaluateLineCharts();
this._evaluateLineTicks();
}else{
if(this.style=="pie"){
this._evaluatePieCharts();
this._evaluatePieTicks();
}
}
}
};
PlotKit.Layout.prototype.hitTest=function(x,y){
var f=MochiKit.Format.twoDigitFloat;
if((this.style=="bar")&&this.bars&&(this.bars.length>0)){
for(var i=0;i<this.bars.length;i++){
var bar=this.bars[i];
if((x>=bar.x)&&(x<=bar.x+bar.w)&&(y>=bar.y)&&(y-bar.y<=bar.h)){
return bar;
}
}
}else{
if(this.style=="line"){
if(this.hitTestCache.x2maxy==null){
this._regenerateHitTestCache();
}
var _62=x/this.xscale;
var _63=this.hitTestCache.xvalues;
var _64=null;
var _65=null;
for(var i=1;i<_63.length;i++){
if(_63[i]>_62){
_64=_63[i-1];
_65=_63[i];
break;
}
}
if((_64!=null)){
var _66=this.hitTestCache.x2maxy[_64];
var _67=this.hitTestCache.x2maxy[_65];
var _68=(1-y)/this.yscale;
var _69=(_67-_66)/(_65-_64);
var _70=_66+_69*(_62-_64);
if(_70>=_68){
var obj={xval:_62,yval:_68,xafter:_65,yafter:_67,xbefore:_64,ybefore:_66,yprojected:_70};
return obj;
}
}
}else{
if(this.style=="pie"){
var _71=Math.sqrt((y-0.5)*(y-0.5)+(x-0.5)*(x-0.5));
if(_71>this.options.pieRadius){
return null;
}
var _72=Math.atan2(y-0.5,x-0.5)-Math.PI/2;
for(var i=0;i<this.slices.length;i++){
var _73=this.slices[i];
if(_73.startAngle<_72&&_73.endAngle>=_72){
return _73;
}
}
}
}
}
return null;
};
PlotKit.Layout.prototype.rectForX=function(x){
return null;
};
PlotKit.Layout.prototype.angleRangeForX=function(x){
return null;
};
PlotKit.Layout.prototype._evaluateLimits=function(){
var map=PlotKit.Base.map;
var _75=PlotKit.Base.items;
var _76=MochiKit.Base.itemgetter;
var _77=PlotKit.Base.collapse;
var _78=MochiKit.Base.listMin;
var _79=MochiKit.Base.listMax;
var _80=MochiKit.Base.isUndefinedOrNull;
var all=_77(map(_76(1),_75(this.datasets)));
if(_80(this.options.xAxis)){
if(this.options.xOriginIsZero){
this.minxval=0;
}else{
this.minxval=_78(map(parseFloat,map(_76(0),all)));
}
this.maxxval=_79(map(parseFloat,map(_76(0),all)));
}else{
this.minxval=this.options.xAxis[0];
this.maxxval=this.options.xAxis[1];
this.xscale=this.maxval-this.minxval;
}
if(_80(this.options.yAxis)){
if(this.options.yOriginIsZero){
this.minyval=0;
}else{
this.minyval=_78(map(parseFloat,map(_76(1),all)));
}
this.maxyval=_79(map(parseFloat,map(_76(1),all)));
}else{
this.minyval=this.options.yAxis[0];
this.maxyval=this.options.yAxis[1];
this.yscale=this.maxyval-this.minyval;
}
};
PlotKit.Layout.prototype._evaluateScales=function(){
var _82=MochiKit.Base.isUndefinedOrNull;
this.xrange=this.maxxval-this.minxval;
if(this.xrange==0){
this.xscale=1;
}else{
this.xscale=1/this.xrange;
}
this.yrange=this.maxyval-this.minyval;
if(this.yrange==0){
this.yscale=1;
}else{
this.yscale=1/this.yrange;
}
};
PlotKit.Layout.prototype._uniqueXValues=function(){
var _83=PlotKit.Base.collapse;
var map=PlotKit.Base.map;
var _84=PlotKit.Base.uniq;
var _85=MochiKit.Base.itemgetter;
var _86=PlotKit.Base.items;
var _87=map(parseFloat,map(_85(0),_83(map(_85(1),_86(this.datasets)))));
_87.sort(MochiKit.Base.compare);
return _84(_87);
};
PlotKit.Layout.prototype._evaluateBarCharts=function(){
var _88=PlotKit.Base.items;
var _89=_88(this.datasets).length;
var _90=10000000;
var _91=this._uniqueXValues();
for(var i=1;i<_91.length;i++){
_90=Math.min(Math.abs(_91[i]-_91[i-1]),_90);
}
var _92=0;
var _93=0;
var _94=0;
if(_91.length==1){
_90=1;
this.xscale=1;
this.minxval=_91[0];
_92=1*this.options.barWidthFillFraction;
_93=_92/_89;
_94=(1-this.options.barWidthFillFraction)/2;
}else{
if(this.xrange==1){
this.xscale=0.5;
}else{
if(this.xrange==2){
this.xscale=1/3;
}else{
this.xscale=(1-_90/this.xrange)/this.xrange;
}
}
_92=_90*this.xscale*this.options.barWidthFillFraction;
_93=_92/_89;
_94=_90*this.xscale*(1-this.options.barWidthFillFraction)/2;
}
this.minxdelta=_90;
this.bars=new Array();
var i=0;
for(var _95 in this.datasets){
var _96=this.datasets[_95];
if(PlotKit.Base.isFuncLike(_96)){
continue;
}
for(var j=0;j<_96.length;j++){
var _98=_96[j];
var _99={x:((parseFloat(_98[0])-this.minxval)*this.xscale)+(i*_93)+_94,y:1-((parseFloat(_98[1])-this.minyval)*this.yscale),w:_93,h:((parseFloat(_98[1])-this.minyval)*this.yscale),xval:parseFloat(_98[0]),yval:parseFloat(_98[1]),name:_95};
if((_99.x>=0)&&(_99.x<=1)&&(_99.y>=0)&&(_99.y<=1)){
this.bars.push(_99);
}
}
i++;
}
};
PlotKit.Layout.prototype._evaluateHorizBarCharts=function(){
var _100=PlotKit.Base.items;
var _101=_100(this.datasets).length;
var _102=10000000;
var _103=this._uniqueXValues();
for(var i=1;i<_103.length;i++){
_102=Math.min(Math.abs(_103[i]-_103[i-1]),_102);
}
var _104=0;
var _105=0;
var _106=0;
if(_103.length==1){
_102=1;
this.xscale=1;
this.minxval=_103[0];
_104=1*this.options.barWidthFillFraction;
_105=_104/_101;
_106=(1-this.options.barWidthFillFraction)/2;
}else{
this.xscale=(1-_102/this.xrange)/this.xrange;
_104=_102*this.xscale*this.options.barWidthFillFraction;
_105=_104/_101;
_106=_102*this.xscale*(1-this.options.barWidthFillFraction)/2;
}
this.minxdelta=_102;
this.bars=new Array();
var i=0;
for(var _107 in this.datasets){
var _108=this.datasets[_107];
if(PlotKit.Base.isFuncLike(_108)){
continue;
}
for(var j=0;j<_108.length;j++){
var item=_108[j];
var rect={y:((parseFloat(item[0])-this.minxval)*this.xscale)+(i*_105)+_106,x:0,h:_105,w:((parseFloat(item[1])-this.minyval)*this.yscale),xval:parseFloat(item[0]),yval:parseFloat(item[1]),name:_107};
if(rect.y<=0){
rect.y=0;
}
if(rect.y>=1){
rect.y=1;
}
if((rect.x>=0)&&(rect.x<=1)){
this.bars.push(rect);
}
}
i++;
}
};
PlotKit.Layout.prototype._evaluateLineCharts=function(){
var _111=PlotKit.Base.items;
var _112=_111(this.datasets).length;
this.points=new Array();
var i=0;
for(var _113 in this.datasets){
var _114=this.datasets[_113];
if(PlotKit.Base.isFuncLike(_114)){
continue;
}
_114.sort(function(a,b){
return compare(parseFloat(a[0]),parseFloat(b[0]));
});
for(var j=0;j<_114.length;j++){
var item=_114[j];
var _117={x:((parseFloat(item[0])-this.minxval)*this.xscale),y:1-((parseFloat(item[1])-this.minyval)*this.yscale),xval:parseFloat(item[0]),yval:parseFloat(item[1]),name:_113};
if(_117.y<=0){
_117.y=0;
}
if(_117.y>=1){
_117.y=1;
}
if((_117.x>=0)&&(_117.x<=1)){
this.points.push(_117);
}
}
i++;
}
};
PlotKit.Layout.prototype._evaluatePieCharts=function(){
var _118=PlotKit.Base.items;
var sum=MochiKit.Iter.sum;
var _120=MochiKit.Base.itemgetter;
var _121=_118(this.datasets).length;
var _122=_118(this.datasets)[0][1];
var _123=sum(map(_120(1),_122));
this.slices=new Array();
var _124=0;
for(var i=0;i<_122.length;i++){
var _125=_122[i][1]/_123;
var _126=_124*Math.PI*2;
var _127=(_124+_125)*Math.PI*2;
var _128={fraction:_125,xval:_122[i][0],yval:_122[i][1],startAngle:_126,endAngle:_127};
if(_122[i][1]!=0){
this.slices.push(_128);
}
_124+=_125;
}
};
PlotKit.Layout.prototype._evaluateLineTicksForXAxis=function(){
var _129=MochiKit.Base.isUndefinedOrNull;
if(this.options.xTicks){
this.xticks=new Array();
var _130=function(tick){
var _132=tick.label;
if(_129(_132)){
_132=tick.v.toString();
}
var pos=this.xscale*(tick.v-this.minxval);
if((pos>=0)&&(pos<=1)){
this.xticks.push([pos,_132]);
}
};
MochiKit.Iter.forEach(this.options.xTicks,bind(_130,this));
}else{
if(this.options.xNumberOfTicks){
var _134=this._uniqueXValues();
var _135=this.xrange/this.options.xNumberOfTicks;
var _136=0;
this.xticks=new Array();
for(var i=0;i<=_134.length;i++){
if((_134[i]-this.minxval)>=(_136*_135)){
var pos=this.xscale*(_134[i]-this.minxval);
if((pos>1)||(pos<0)){
continue;
}
this.xticks.push([pos,_134[i]]);
_136++;
}
if(_136>this.options.xNumberOfTicks){
break;
}
}
}
}
};
PlotKit.Layout.prototype._evaluateLineTicksForYAxis=function(){
var _137=MochiKit.Base.isUndefinedOrNull;
if(this.options.yTicks){
this.yticks=new Array();
var _138=function(tick){
var _139=tick.label;
if(_137(_139)){
_139=tick.v.toString();
}
var pos=1-(this.yscale*(tick.v-this.minyval));
if((pos>=0)&&(pos<=1)){
this.yticks.push([pos,_139]);
}
};
MochiKit.Iter.forEach(this.options.yTicks,bind(_138,this));
}else{
if(this.options.yNumberOfTicks){
this.yticks=new Array();
var _140=PlotKit.Base.roundInterval;
var prec=this.options.yTickPrecision;
var _142=_140(this.yrange,this.options.yNumberOfTicks,prec);
for(var i=0;i<=this.options.yNumberOfTicks;i++){
var yval=this.minyval+(i*_142);
var pos=1-((yval-this.minyval)*this.yscale);
if((pos>1)||(pos<0)){
continue;
}
this.yticks.push([pos,MochiKit.Format.roundToFixed(yval,prec)]);
}
}
}
};
PlotKit.Layout.prototype._evaluateLineTicks=function(){
this._evaluateLineTicksForXAxis();
this._evaluateLineTicksForYAxis();
};
PlotKit.Layout.prototype._evaluateBarTicks=function(){
this._evaluateLineTicks();
var _144=function(tick){
return [tick[0]+(this.minxdelta*this.xscale)/2,tick[1]];
};
this.xticks=MochiKit.Base.map(bind(_144,this),this.xticks);
if(this.options.barOrientation=="horizontal"){
var _145=this.xticks;
this.xticks=this.yticks;
this.yticks=_145;
var _146=function(tick){
return [1-tick[0],tick[1]];
};
this.xticks=MochiKit.Base.map(_146,this.xticks);
}
};
PlotKit.Layout.prototype._evaluatePieTicks=function(){
var _147=MochiKit.Base.isUndefinedOrNull;
var _148=MochiKit.Format.numberFormatter("#%");
this.xticks=new Array();
if(this.options.xTicks){
var _149=new Array();
for(var i=0;i<this.slices.length;i++){
_149[this.slices[i].xval]=this.slices[i];
}
for(var i=0;i<this.options.xTicks.length;i++){
var tick=this.options.xTicks[i];
var _150=_149[tick.v];
var _151=tick.label;
if(_150){
if(_147(_151)){
_151=tick.v.toString();
}
_151+=" ("+_148(_150.fraction)+")";
this.xticks.push([tick.v,_151]);
}
}
}else{
for(var i=0;i<this.slices.length;i++){
var _150=this.slices[i];
var _151=_150.xval+" ("+_148(_150.fraction)+")";
this.xticks.push([_150.xval,_151]);
}
}
};
PlotKit.Layout.prototype._regenerateHitTestCache=function(){
this.hitTestCache.xvalues=this._uniqueXValues();
this.hitTestCache.xlookup=new Array();
this.hitTestCache.x2maxy=new Array();
var _152=MochiKit.Base.listMax;
var _153=MochiKit.Base.itemgetter;
var map=MochiKit.Base.map;
var _154=keys(this.datasets);
for(var i=0;i<_154.length;i++){
var _155=this.datasets[_154[i]];
for(var j=0;j<_155.length;j++){
var xval=_155[j][0];
var yval=_155[j][1];
if(this.hitTestCache.xlookup[xval]){
this.hitTestCache.xlookup[xval].push([yval,_154[i]]);
}else{
this.hitTestCache.xlookup[xval]=[[yval,_154[i]]];
}
}
}
for(var x in this.hitTestCache.xlookup){
var _157=this.hitTestCache.xlookup[x];
this.hitTestCache.x2maxy[x]=_152(map(_153(0),_157));
}
};
PlotKit.LayoutModule={};
PlotKit.LayoutModule.Layout=PlotKit.Layout;
PlotKit.LayoutModule.EXPORT=["Layout"];
PlotKit.LayoutModule.EXPORT_OK=[];
PlotKit.LayoutModule.__new__=function(){
var m=MochiKit.Base;
m.nameFunctions(this);
this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
};
PlotKit.LayoutModule.__new__();
MochiKit.Base._exportSymbols(this,PlotKit.LayoutModule);
try{
if((typeof (PlotKit.Base)=="undefined")||(typeof (PlotKit.Layout)=="undefined")){
throw "";
}
}
catch(e){
throw "PlotKit.Layout depends on MochiKit.{Base,Color,DOM,Format} and PlotKit.{Base,Layout}";
}
if(typeof (PlotKit.CanvasRenderer)=="undefined"){
PlotKit.CanvasRenderer={};
}
PlotKit.CanvasRenderer.NAME="PlotKit.CanvasRenderer";
PlotKit.CanvasRenderer.VERSION=PlotKit.VERSION;
PlotKit.CanvasRenderer.__repr__=function(){
return "["+this.NAME+" "+this.VERSION+"]";
};
PlotKit.CanvasRenderer.toString=function(){
return this.__repr__();
};
PlotKit.CanvasRenderer=function(_158,_159,_160){
if(arguments.length>0){
this.__init__(_158,_159,_160);
}
};
PlotKit.CanvasRenderer.prototype.__init__=function(_161,_162,_163){
var _164=MochiKit.Base.isUndefinedOrNull;
var _165=MochiKit.Color.Color;
this.options={"drawBackground":true,"backgroundColor":_165.whiteColor(),"padding":{left:30,right:30,top:5,bottom:10},"colorScheme":PlotKit.Base.palette(PlotKit.Base.baseColors()[0]),"strokeColor":_165.whiteColor(),"strokeColorTransform":"asStrokeColor","strokeWidth":0.5,"shouldFill":true,"shouldStroke":true,"drawXAxis":true,"drawYAxis":true,"axisLineColor":_165.blackColor(),"axisLineWidth":0.5,"axisTickSize":3,"axisLabelColor":_165.blackColor(),"axisLabelFont":"Arial","axisLabelFontSize":9,"axisLabelWidth":50,"pieRadius":0.4,"enableEvents":true};
MochiKit.Base.update(this.options,_163?_163:{});
this.layout=_162;
this.element=MochiKit.DOM.getElement(_161);
this.container=this.element.parentNode;
this.isIE=PlotKit.Base.excanvasSupported();
if(this.isIE&&!_164(G_vmlCanvasManager)){
this.IEDelay=0.5;
this.maxTries=5;
this.renderDelay=null;
this.clearDelay=null;
this.element=G_vmlCanvasManager.initElement(this.element);
}
this.height=this.element.height;
this.width=this.element.width;
if(_164(this.element)){
throw "CanvasRenderer() - passed canvas is not found";
}
if(!this.isIE&&!(PlotKit.CanvasRenderer.isSupported(this.element))){
throw "CanvasRenderer() - Canvas is not supported.";
}
if(_164(this.container)||(this.container.nodeName.toLowerCase()!="div")){
throw "CanvasRenderer() - <canvas> needs to be enclosed in <div>";
}
this.xlabels=new Array();
this.ylabels=new Array();
this.isFirstRender=true;
this.area={x:this.options.padding.left,y:this.options.padding.top,w:this.width-this.options.padding.left-this.options.padding.right,h:this.height-this.options.padding.top-this.options.padding.bottom};
MochiKit.DOM.updateNodeAttributes(this.container,{"style":{"position":"relative","width":this.width+"px"}});
};
PlotKit.CanvasRenderer.prototype.render=function(){
if(this.isIE){
try{
if(this.renderDelay){
this.renderDelay.cancel();
this.renderDelay=null;
}
var _166=this.element.getContext("2d");
}
catch(e){
this.isFirstRender=false;
if(this.maxTries-->0){
this.renderDelay=MochiKit.Async.wait(this.IEDelay);
this.renderDelay.addCallback(bind(this.render,this));
}
return;
}
}
if(this.options.drawBackground){
this._renderBackground();
}
if(this.layout.style=="bar"){
this._renderBarChart();
this._renderBarAxis();
}else{
if(this.layout.style=="pie"){
this._renderPieChart();
this._renderPieAxis();
}else{
if(this.layout.style=="line"){
this._renderLineChart();
this._renderLineAxis();
}
}
}
};
PlotKit.CanvasRenderer.prototype._renderBarChartWrap=function(data,_168){
var _169=this.element.getContext("2d");
var _170=this.options.colorScheme.length;
var _171=this.options.colorScheme;
var _172=MochiKit.Base.keys(this.layout.datasets);
var _173=_172.length;
for(var i=0;i<_173;i++){
var _174=_172[i];
var _175=_171[i%_170];
_169.save();
_169.fillStyle=_175.toRGBString();
if(this.options.strokeColor){
_169.strokeStyle=this.options.strokeColor.toRGBString();
}else{
if(this.options.strokeColorTransform){
_169.strokeStyle=_175[this.options.strokeColorTransform]().toRGBString();
}
}
_169.lineWidth=this.options.strokeWidth;
var _176=function(obj){
if(obj.name==_174){
_168(_169,obj);
}
};
MochiKit.Iter.forEach(data,bind(_176,this));
_169.restore();
}
};
PlotKit.CanvasRenderer.prototype._renderBarChart=function(){
var bind=MochiKit.Base.bind;
var _178=function(_179,bar){
var x=this.area.w*bar.x+this.area.x;
var y=this.area.h*bar.y+this.area.y;
var w=this.area.w*bar.w;
var h=this.area.h*bar.h;
if((w<1)||(h<1)){
return;
}
if(this.options.shouldFill){
_179.fillRect(x,y,w,h);
}
if(this.options.shouldStroke){
_179.strokeRect(x,y,w,h);
}
};
this._renderBarChartWrap(this.layout.bars,bind(_178,this));
};
PlotKit.CanvasRenderer.prototype._renderLineChart=function(){
var _182=this.element.getContext("2d");
var _183=this.options.colorScheme.length;
var _184=this.options.colorScheme;
var _185=MochiKit.Base.keys(this.layout.datasets);
var _186=_185.length;
var bind=MochiKit.Base.bind;
var _187=MochiKit.Base.partial;
for(var i=0;i<_186;i++){
var _188=_185[i];
var _189=_184[i%_183];
var _190=this.options.strokeColorTransform;
_182.save();
_182.fillStyle=_189.toRGBString();
if(this.options.strokeColor){
_182.strokeStyle=this.options.strokeColor.toRGBString();
}else{
if(this.options.strokeColorTransform){
_182.strokeStyle=_189[_190]().toRGBString();
}
}
_182.lineWidth=this.options.strokeWidth;
var _191=function(ctx){
ctx.beginPath();
ctx.moveTo(this.area.x,this.area.y+this.area.h);
var _193=function(ctx_,_195){
if(_195.name==_188){
ctx_.lineTo(this.area.w*_195.x+this.area.x,this.area.h*_195.y+this.area.y);
}
};
MochiKit.Iter.forEach(this.layout.points,_187(_193,ctx),this);
ctx.lineTo(this.area.w+this.area.x,this.area.h+this.area.y);
ctx.lineTo(this.area.x,this.area.y+this.area.h);
ctx.closePath();
};
if(this.options.shouldFill){
bind(_191,this)(_182);
_182.fill();
}
if(this.options.shouldStroke){
bind(_191,this)(_182);
_182.stroke();
}
_182.restore();
}
};
PlotKit.CanvasRenderer.prototype._renderPieChart=function(){
var _196=this.element.getContext("2d");
var _197=this.options.colorScheme.length;
var _198=this.layout.slices;
var _199=this.area.x+this.area.w*0.5;
var _200=this.area.y+this.area.h*0.5;
var _201=Math.min(this.area.w*this.options.pieRadius,this.area.h*this.options.pieRadius);
if(this.isIE){
_199=parseInt(_199);
_200=parseInt(_200);
_201=parseInt(_201);
}
for(var i=0;i<_198.length;i++){
var _202=this.options.colorScheme[i%_197];
_196.save();
_196.fillStyle=_202.toRGBString();
var _203=function(){
_196.beginPath();
_196.moveTo(_199,_200);
_196.arc(_199,_200,_201,_198[i].startAngle-Math.PI/2,_198[i].endAngle-Math.PI/2,false);
_196.lineTo(_199,_200);
_196.closePath();
};
if(Math.abs(_198[i].startAngle-_198[i].endAngle)>0.001){
if(this.options.shouldFill){
_203();
_196.fill();
}
if(this.options.shouldStroke){
_203();
_196.lineWidth=this.options.strokeWidth;
if(this.options.strokeColor){
_196.strokeStyle=this.options.strokeColor.toRGBString();
}else{
if(this.options.strokeColorTransform){
_196.strokeStyle=_202[this.options.strokeColorTransform]().toRGBString();
}
}
_196.stroke();
}
}
_196.restore();
}
};
PlotKit.CanvasRenderer.prototype._renderBarAxis=function(){
this._renderAxis();
};
PlotKit.CanvasRenderer.prototype._renderLineAxis=function(){
this._renderAxis();
};
PlotKit.CanvasRenderer.prototype._renderAxis=function(){
if(!this.options.drawXAxis&&!this.options.drawYAxis){
return;
}
var _204=this.element.getContext("2d");
var _205={"style":{"position":"absolute","fontSize":this.options.axisLabelFontSize+"px","zIndex":10,"color":this.options.axisLabelColor.toRGBString(),"width":this.options.axisLabelWidth+"px","overflow":"hidden"}};
_204.save();
_204.strokeStyle=this.options.axisLineColor.toRGBString();
_204.lineWidth=this.options.axisLineWidth;
if(this.options.drawYAxis){
if(this.layout.yticks){
var _206=function(tick){
if(typeof (tick)=="function"){
return;
}
var x=this.area.x;
var y=this.area.y+tick[0]*this.area.h;
_204.beginPath();
_204.moveTo(x,y);
_204.lineTo(x-this.options.axisTickSize,y);
_204.closePath();
_204.stroke();
var _207=DIV(_205,tick[1]);
_207.style.top=(y-this.options.axisLabelFontSize)+"px";
_207.style.left=(x-this.options.padding.left-this.options.axisTickSize)+"px";
_207.style.textAlign="right";
_207.style.width=(this.options.padding.left-this.options.axisTickSize*2)+"px";
MochiKit.DOM.appendChildNodes(this.container,_207);
this.ylabels.push(_207);
};
MochiKit.Iter.forEach(this.layout.yticks,bind(_206,this));
}
_204.beginPath();
_204.moveTo(this.area.x,this.area.y);
_204.lineTo(this.area.x,this.area.y+this.area.h);
_204.closePath();
_204.stroke();
}
if(this.options.drawXAxis){
if(this.layout.xticks){
var _206=function(tick){
if(typeof (dataset)=="function"){
return;
}
var x=this.area.x+tick[0]*this.area.w;
var y=this.area.y+this.area.h;
_204.beginPath();
_204.moveTo(x,y);
_204.lineTo(x,y+this.options.axisTickSize);
_204.closePath();
_204.stroke();
var _208=DIV(_205,tick[1]);
_208.style.top=(y+this.options.axisTickSize)+"px";
_208.style.left=(x-this.options.axisLabelWidth/2)+"px";
_208.style.textAlign="center";
_208.style.width=this.options.axisLabelWidth+"px";
MochiKit.DOM.appendChildNodes(this.container,_208);
this.xlabels.push(_208);
};
MochiKit.Iter.forEach(this.layout.xticks,bind(_206,this));
}
_204.beginPath();
_204.moveTo(this.area.x,this.area.y+this.area.h);
_204.lineTo(this.area.x+this.area.w,this.area.y+this.area.h);
_204.closePath();
_204.stroke();
}
_204.restore();
};
PlotKit.CanvasRenderer.prototype._renderPieAxis=function(){
if(!this.options.drawXAxis){
return;
}
if(this.layout.xticks){
var _209=new Array();
for(var i=0;i<this.layout.slices.length;i++){
_209[this.layout.slices[i].xval]=this.layout.slices[i];
}
var _210=this.area.x+this.area.w*0.5;
var _211=this.area.y+this.area.h*0.5;
var _212=Math.min(this.area.w*this.options.pieRadius,this.area.h*this.options.pieRadius);
var _213=this.options.axisLabelWidth;
for(var i=0;i<this.layout.xticks.length;i++){
var _214=_209[this.layout.xticks[i][0]];
if(MochiKit.Base.isUndefinedOrNull(_214)){
continue;
}
var _215=(_214.startAngle+_214.endAngle)/2;
var _216=_215;
if(_216>Math.PI*2){
_216=_216-Math.PI*2;
}else{
if(_216<0){
_216=_216+Math.PI*2;
}
}
var _217=_210+Math.sin(_216)*(_212+10);
var _218=_211-Math.cos(_216)*(_212+10);
var _219={"position":"absolute","zIndex":11,"width":_213+"px","fontSize":this.options.axisLabelFontSize+"px","overflow":"hidden","color":this.options.axisLabelColor.toHexString()};
if(_216<=Math.PI*0.5){
_219["textAlign"]="left";
_219["verticalAlign"]="top";
_219["left"]=_217+"px";
_219["top"]=(_218-this.options.axisLabelFontSize)+"px";
}else{
if((_216>Math.PI*0.5)&&(_216<=Math.PI)){
_219["textAlign"]="left";
_219["verticalAlign"]="bottom";
_219["left"]=_217+"px";
_219["top"]=_218+"px";
}else{
if((_216>Math.PI)&&(_216<=Math.PI*1.5)){
_219["textAlign"]="right";
_219["verticalAlign"]="bottom";
_219["left"]=(_217-_213)+"px";
_219["top"]=_218+"px";
}else{
_219["textAlign"]="right";
_219["verticalAlign"]="bottom";
_219["left"]=(_217-_213)+"px";
_219["top"]=(_218-this.options.axisLabelFontSize)+"px";
}
}
}
var _220=DIV({"style":_219},this.layout.xticks[i][1]);
this.xlabels.push(_220);
MochiKit.DOM.appendChildNodes(this.container,_220);
}
}
};
PlotKit.CanvasRenderer.prototype._renderBackground=function(){
var _221=this.element.getContext("2d");
_221.save();
_221.fillStyle=this.options.backgroundColor.toRGBString();
_221.fillRect(0,0,this.width,this.height);
_221.restore();
};
PlotKit.CanvasRenderer.prototype.clear=function(){
if(this.isIE){
try{
if(this.clearDelay){
this.clearDelay.cancel();
this.clearDelay=null;
}
var _222=this.element.getContext("2d");
}
catch(e){
this.isFirstRender=false;
this.clearDelay=MochiKit.Async.wait(this.IEDelay);
this.clearDelay.addCallback(bind(this.clear,this));
return;
}
}
var _222=this.element.getContext("2d");
_222.clearRect(0,0,this.width,this.height);
MochiKit.Iter.forEach(this.xlabels,MochiKit.DOM.removeElement);
MochiKit.Iter.forEach(this.ylabels,MochiKit.DOM.removeElement);
this.xlabels=new Array();
this.ylabels=new Array();
};
PlotKit.CanvasRenderer.prototype._initialiseEvents=function(){
var _223=MochiKit.Signal.connect;
var bind=MochiKit.Base.bind;
_223(this.element,"onclick",bind(this.onclick,this));
};
PlotKit.CanvasRenderer.prototype._resolveObject=function(e){
var x=(e.mouse().page.x-PlotKit.Base.findPosX(this.element)-this.area.x)/this.area.w;
var y=(e.mouse().page.y-PlotKit.Base.findPosY(this.element)-this.area.y)/this.area.h;
var _225=this.layout.hitTest(x,y);
if(_225){
return _225;
}
return null;
};
PlotKit.CanvasRenderer.prototype._createEventObject=function(_226,e){
if(_226==null){
return null;
}
e.chart=_226;
return e;
};
PlotKit.CanvasRenderer.prototype.onclick=function(e){
var _227=this._resolveObject(e);
var _228=this._createEventObject(_227,e);
if(_228!=null){
MochiKit.Signal.signal(this,"onclick",_228);
}
};
PlotKit.CanvasRenderer.prototype.onmouseover=function(e){
var _229=this._resolveObject(e);
var _230=this._createEventObject(_229,e);
if(_230!=null){
signal(this,"onmouseover",_230);
}
};
PlotKit.CanvasRenderer.prototype.onmouseout=function(e){
var _231=this._resolveObject(e);
var _232=this._createEventObject(_231,e);
if(_232==null){
signal(this,"onmouseout",e);
}else{
signal(this,"onmouseout",_232);
}
};
PlotKit.CanvasRenderer.prototype.onmousemove=function(e){
var _233=this._resolveObject(e);
var _234=this._createEventObject(_233,e);
if((_233==null)&&(this.event_isinside==null)){
return;
}
if((_233!=null)&&(this.event_isinside==null)){
signal(this,"onmouseover",_234);
}
if((_233==null)&&(this.event_isinside!=null)){
signal(this,"onmouseout",_234);
}
if((_233!=null)&&(this.event_isinside!=null)){
signal(this,"onmousemove",_234);
}
this.event_isinside=_233;
};
PlotKit.CanvasRenderer.isSupported=function(_235){
var _236=null;
try{
if(MochiKit.Base.isUndefinedOrNull(_235)){
_236=MochiKit.DOM.CANVAS({});
}else{
_236=MochiKit.DOM.getElement(_235);
}
var _237=_236.getContext("2d");
}
catch(e){
var ie=navigator.appVersion.match(/MSIE (\d\.\d)/);
var _239=(navigator.userAgent.toLowerCase().indexOf("opera")!=-1);
if((!ie)||(ie[1]<6)||(_239)){
return false;
}
return true;
}
return true;
};
PlotKit.Canvas={};
PlotKit.Canvas.CanvasRenderer=PlotKit.CanvasRenderer;
PlotKit.Canvas.EXPORT=["CanvasRenderer"];
PlotKit.Canvas.EXPORT_OK=["CanvasRenderer"];
PlotKit.Canvas.__new__=function(){
var m=MochiKit.Base;
m.nameFunctions(this);
this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
};
PlotKit.Canvas.__new__();
MochiKit.Base._exportSymbols(this,PlotKit.Canvas);
try{
if(typeof (PlotKit.Layout)=="undefined"){
throw "";
}
}
catch(e){
throw "PlotKit depends on MochiKit.{Base,Color,DOM,Format} and PlotKit.Layout";
}
PlotKit.SVGRenderer=function(_240,_241,_242){
if(arguments.length>0){
this.__init__(_240,_241,_242);
}
};
PlotKit.SVGRenderer.NAME="PlotKit.SVGRenderer";
PlotKit.SVGRenderer.VERSION=PlotKit.VERSION;
PlotKit.SVGRenderer.__repr__=function(){
return "["+this.NAME+" "+this.VERSION+"]";
};
PlotKit.SVGRenderer.toString=function(){
return this.__repr__();
};
PlotKit.SVGRenderer.SVGNS="http://www.w3.org/2000/svg";
PlotKit.SVGRenderer.prototype.__init__=function(_243,_244,_245){
var _246=MochiKit.Base.isUndefinedOrNull;
this.options={"drawBackground":true,"backgroundColor":Color.whiteColor(),"padding":{left:30,right:30,top:5,bottom:10},"colorScheme":PlotKit.Base.palette(PlotKit.Base.baseColors()[1]),"strokeColor":Color.whiteColor(),"strokeColorTransform":"asStrokeColor","strokeWidth":0.5,"shouldFill":true,"shouldStroke":true,"drawXAxis":true,"drawYAxis":true,"axisLineColor":Color.blackColor(),"axisLineWidth":0.5,"axisTickSize":3,"axisLabelColor":Color.blackColor(),"axisLabelFont":"Arial","axisLabelFontSize":9,"axisLabelWidth":50,"axisLabelUseDiv":true,"pieRadius":0.4,"enableEvents":true};
MochiKit.Base.update(this.options,_245?_245:{});
this.layout=_244;
this.element=MochiKit.DOM.getElement(_243);
this.container=this.element.parentNode;
this.height=parseInt(this.element.getAttribute("height"));
this.width=parseInt(this.element.getAttribute("width"));
this.document=document;
this.root=this.element;
try{
this.document=this.element.getSVGDocument();
this.root=_246(this.document.documentElement)?this.element:this.document.documentElement;
}
catch(e){
}
this.element.style.zIndex=1;
if(_246(this.element)){
throw "SVGRenderer() - passed SVG object is not found";
}
if(_246(this.container)||this.container.nodeName.toLowerCase()!="div"){
throw "SVGRenderer() - No DIV's around the SVG.";
}
this.xlabels=new Array();
this.ylabels=new Array();
this.defs=this.createSVGElement("defs");
this.area={x:this.options.padding.left,y:this.options.padding.top,w:this.width-this.options.padding.left-this.options.padding.right,h:this.height-this.options.padding.top-this.options.padding.bottom};
MochiKit.DOM.updateNodeAttributes(this.container,{"style":{"position":"relative","width":this.width+"px"}});
};
PlotKit.SVGRenderer.prototype.render=function(){
if(this.options.drawBackground){
this._renderBackground();
}
if(this.layout.style=="bar"){
this._renderBarChart();
this._renderBarAxis();
}else{
if(this.layout.style=="pie"){
this._renderPieChart();
this._renderPieAxis();
}else{
if(this.layout.style=="line"){
this._renderLineChart();
this._renderLineAxis();
}
}
}
};
PlotKit.SVGRenderer.prototype._renderBarOrLine=function(data,_247,_248,_249){
var _250=this.options.colorScheme.length;
var _251=this.options.colorScheme;
var _252=MochiKit.Base.keys(this.layout.datasets);
var _253=_252.length;
for(var i=0;i<_253;i++){
var _254=_252[i];
var _255=new Array();
var _256=_251[i%_250];
if(this.options.shouldFill){
_255["fill"]=_256.toRGBString();
}else{
_255["fill"]="none";
}
if(this.options.shouldStroke&&(this.options.strokeColor||this.options.strokeColorTransform)){
if(this.options.strokeColor){
_255["stroke"]=this.options.strokeColor.toRGBString();
}else{
if(this.options.strokeColorTransform){
_255["stroke"]=_256[this.options.strokeColorTransform]().toRGBString();
}
}
_255["strokeWidth"]=this.options.strokeWidth;
}
if(_248){
_248(_255);
}
var _257=function(obj){
if(obj.name==_254){
_247(_255,obj);
}
};
MochiKit.Iter.forEach(data,bind(_257,this));
if(_249){
_249(_255);
}
}
};
PlotKit.SVGRenderer.prototype._renderBarChart=function(){
var bind=MochiKit.Base.bind;
var _258=function(_259,bar){
var x=this.area.w*bar.x+this.area.x;
var y=this.area.h*bar.y+this.area.y;
var w=this.area.w*bar.w;
var h=this.area.h*bar.h;
this._drawRect(x,y,w,h,_259);
};
this._renderBarOrLine(this.layout.bars,bind(_258,this));
};
PlotKit.SVGRenderer.prototype._renderLineChart=function(){
var bind=MochiKit.Base.bind;
var _260=function(_261,_262){
this._tempPointsBuffer+=(this.area.w*_262.x+this.area.x)+","+(this.area.h*_262.y+this.area.y)+" ";
};
var _263=function(_264){
this._tempPointsBuffer="";
this._tempPointsBuffer+=(this.area.x)+","+(this.area.y+this.area.h)+" ";
};
var _265=function(_266){
this._tempPointsBuffer+=(this.area.w+this.area.x)+","+(this.area.h+this.area.y);
_266["points"]=this._tempPointsBuffer;
var elem=this.createSVGElement("polygon",_266);
this.root.appendChild(elem);
};
this._renderBarOrLine(this.layout.points,bind(_260,this),bind(_263,this),bind(_265,this));
};
PlotKit.SVGRenderer.prototype._renderPieChart=function(){
var _268=this.options.colorScheme.length;
var _269=this.layout.slices;
var _270=this.area.x+this.area.w*0.5;
var _271=this.area.y+this.area.h*0.5;
var _272=Math.min(this.area.w*this.options.pieRadius,this.area.h*this.options.pieRadius);
if(_269.length==1&&(Math.abs(_269[0].startAngle)-Math.abs(_269[0].endAngle)<0.1)){
var _273={"cx":_270,"cy":_271,"r":_272};
var _274=this.options.colorScheme[0];
if(this.options.shouldFill){
_273["fill"]=_274.toRGBString();
}else{
_273["fill"]="none";
}
if(this.options.shouldStroke&&(this.options.strokeColor||this.options.strokeColorTransform)){
if(this.options.strokeColor){
_273["stroke"]=this.options.strokeColor.toRGBString();
}else{
if(this.options.strokeColorTransform){
_273["stroke"]=_274[this.options.strokeColorTransform]().toRGBString();
}
}
_273["style"]="stroke-width: "+this.options.strokeWidth;
}
this.root.appendChild(this.createSVGElement("circle",_273));
return;
}
for(var i=0;i<_269.length;i++){
var _273=new Array();
var _274=this.options.colorScheme[i%_268];
if(this.options.shouldFill){
_273["fill"]=_274.toRGBString();
}else{
_273["fill"]="none";
}
if(this.options.shouldStroke&&(this.options.strokeColor||this.options.strokeColorTransform)){
if(this.options.strokeColor){
_273["stroke"]=this.options.strokeColor.toRGBString();
}else{
if(this.options.strokeColorTransform){
_273["stroke"]=_274[this.options.strokeColorTransform]().toRGBString();
}
}
_273["style"]="stroke-width:"+this.options.strokeWidth;
}
var _275=0;
if(Math.abs(_269[i].endAngle-_269[i].startAngle)>Math.PI){
_275=1;
}
var x1=Math.cos(_269[i].startAngle-Math.PI/2)*_272;
var y1=Math.sin(_269[i].startAngle-Math.PI/2)*_272;
var x2=Math.cos(_269[i].endAngle-Math.PI/2)*_272;
var y2=Math.sin(_269[i].endAngle-Math.PI/2)*_272;
var rx=x2-x1;
var ry=y2-y1;
var _282="M"+_270+","+_271+" ";
_282+="l"+x1+","+y1+" ";
_282+="a"+_272+","+_272+" 0 "+_275+",1 "+rx+","+ry+" z";
_273["d"]=_282;
var elem=this.createSVGElement("path",_273);
this.root.appendChild(elem);
}
};
PlotKit.SVGRenderer.prototype._renderBarAxis=function(){
this._renderAxis();
};
PlotKit.SVGRenderer.prototype._renderLineAxis=function(){
this._renderAxis();
};
PlotKit.SVGRenderer.prototype._renderAxis=function(){
if(!this.options.drawXAxis&&!this.options.drawYAxis){
return;
}
var _283={"style":{"position":"absolute","textAlign":"center","fontSize":this.options.axisLabelFontSize+"px","zIndex":10,"color":this.options.axisLabelColor.toRGBString(),"width":this.options.axisLabelWidth+"px","overflow":"hidden"}};
var _284={"stroke":this.options.axisLineColor.toRGBString(),"strokeWidth":this.options.axisLineWidth};
if(this.options.drawYAxis){
if(this.layout.yticks){
var _285=function(tick){
var x=this.area.x;
var y=this.area.y+tick[0]*this.area.h;
this._drawLine(x,y,x-3,y,_284);
if(this.options.axisLabelUseDiv){
var _286=DIV(_283,tick[1]);
_286.style.top=(y-this.options.axisLabelFontSize)+"px";
_286.style.left=(x-this.options.padding.left+this.options.axisTickSize)+"px";
_286.style.textAlign="left";
_286.style.width=(this.options.padding.left-3)+"px";
MochiKit.DOM.appendChildNodes(this.container,_286);
this.ylabels.push(_286);
}else{
var _287={y:y+3,x:(x-this.options.padding.left+3),width:(this.options.padding.left-this.options.axisTickSize)+"px",height:(this.options.axisLabelFontSize+3)+"px",fontFamily:"Arial",fontSize:this.options.axisLabelFontSize+"px",fill:this.options.axisLabelColor.toRGBString()};
var _286=this.createSVGElement("text",_287);
_286.appendChild(this.document.createTextNode(tick[1]));
this.root.appendChild(_286);
}
};
MochiKit.Iter.forEach(this.layout.yticks,bind(_285,this));
}
this._drawLine(this.area.x,this.area.y,this.area.x,this.area.y+this.area.h,_284);
}
if(this.options.drawXAxis){
if(this.layout.xticks){
var _285=function(tick){
var x=this.area.x+tick[0]*this.area.w;
var y=this.area.y+this.area.h;
this._drawLine(x,y,x,y+this.options.axisTickSize,_284);
if(this.options.axisLabelUseDiv){
var _288=DIV(_283,tick[1]);
_288.style.top=(y+this.options.axisTickSize)+"px";
_288.style.left=(x-this.options.axisLabelWidth/2)+"px";
_288.style.textAlign="center";
_288.style.width=this.options.axisLabelWidth+"px";
MochiKit.DOM.appendChildNodes(this.container,_288);
this.xlabels.push(_288);
}else{
var _289={y:(y+this.options.axisTickSize+this.options.axisLabelFontSize),x:x-3,width:this.options.axisLabelWidth+"px",height:(this.options.axisLabelFontSize+3)+"px",fontFamily:"Arial",fontSize:this.options.axisLabelFontSize+"px",fill:this.options.axisLabelColor.toRGBString(),textAnchor:"middle"};
var _288=this.createSVGElement("text",_289);
_288.appendChild(this.document.createTextNode(tick[1]));
this.root.appendChild(_288);
}
};
MochiKit.Iter.forEach(this.layout.xticks,bind(_285,this));
}
this._drawLine(this.area.x,this.area.y+this.area.h,this.area.x+this.area.w,this.area.y+this.area.h,_284);
}
};
PlotKit.SVGRenderer.prototype._renderPieAxis=function(){
if(this.layout.xticks){
var _290=new Array();
for(var i=0;i<this.layout.slices.length;i++){
_290[this.layout.slices[i].xval]=this.layout.slices[i];
}
var _291=this.area.x+this.area.w*0.5;
var _292=this.area.y+this.area.h*0.5;
var _293=Math.min(this.area.w*this.options.pieRadius+10,this.area.h*this.options.pieRadius+10);
var _294=this.options.axisLabelWidth;
for(var i=0;i<this.layout.xticks.length;i++){
var _295=_290[this.layout.xticks[i][0]];
if(MochiKit.Base.isUndefinedOrNull(_295)){
continue;
}
var _296=(_295.startAngle+_295.endAngle)/2;
var _297=_296;
if(_297>Math.PI*2){
_297=_297-Math.PI*2;
}else{
if(_297<0){
_297=_297+Math.PI*2;
}
}
var _298=_291+Math.sin(_297)*(_293+10);
var _299=_292-Math.cos(_297)*(_293+10);
var _300={"position":"absolute","zIndex":11,"width":_294+"px","fontSize":this.options.axisLabelFontSize+"px","overflow":"hidden","color":this.options.axisLabelColor.toHexString()};
var _301={"width":_294+"px","fontSize":this.options.axisLabelFontSize+"px","height":(this.options.axisLabelFontSize+3)+"px","fill":this.options.axisLabelColor.toRGBString()};
if(_297<=Math.PI*0.5){
MochiKit.Base.update(_300,{"textAlign":"left","verticalAlign":"top","left":_298+"px","top":(_299-this.options.axisLabelFontSize)+"px"});
MochiKit.Base.update(_301,{"x":_298,"y":(_299-this.options.axisLabelFontSize),"textAnchor":"left"});
}else{
if((_297>Math.PI*0.5)&&(_297<=Math.PI)){
MochiKit.Base.update(_300,{"textAlign":"left","verticalAlign":"bottom","left":_298+"px","top":_299+"px"});
MochiKit.Base.update(_301,{"textAnchor":"left","x":_298,"y":_299});
}else{
if((_297>Math.PI)&&(_297<=Math.PI*1.5)){
MochiKit.Base.update(_300,{"textAlign":"right","verticalAlign":"bottom","left":_298+"px","top":_299+"px"});
MochiKit.Base.update(_301,{"textAnchor":"right","x":_298-_294,"y":_299});
}else{
MochiKit.Base.update(_300,{"textAlign":"left","verticalAlign":"bottom","left":_298+"px","top":_299+"px"});
MochiKit.Base.update(_301,{"textAnchor":"left","x":_298-_294,"y":_299-this.options.axisLabelFontSize});
}
}
}
if(this.options.axisLabelUseDiv){
var _302=DIV({"style":_300},this.layout.xticks[i][1]);
this.xlabels.push(_302);
MochiKit.DOM.appendChildNodes(this.container,_302);
}else{
var _302=this.createSVGElement("text",_301);
_302.appendChild(this.document.createTextNode(this.layout.xticks[i][1]));
this.root.appendChild(_302);
}
}
}
};
PlotKit.SVGRenderer.prototype._renderBackground=function(){
var opts={"stroke":"none","fill":this.options.backgroundColor.toRGBString()};
this._drawRect(0,0,this.width,this.height,opts);
};
PlotKit.SVGRenderer.prototype._drawRect=function(x,y,w,h,_304){
var _305={x:x+"px",y:y+"px",width:w+"px",height:h+"px"};
if(_304){
MochiKit.Base.update(_305,_304);
}
var elem=this.createSVGElement("rect",_305);
this.root.appendChild(elem);
};
PlotKit.SVGRenderer.prototype._drawLine=function(x1,y1,x2,y2,_306){
var _307={x1:x1+"px",y1:y1+"px",x2:x2+"px",y2:y2+"px"};
if(_306){
MochiKit.Base.update(_307,_306);
}
var elem=this.createSVGElement("line",_307);
this.root.appendChild(elem);
};
PlotKit.SVGRenderer.prototype.clear=function(){
while(this.element.firstChild){
this.element.removeChild(this.element.firstChild);
}
if(this.options.axisLabelUseDiv){
for(var i=0;i<this.xlabels.length;i++){
MochiKit.DOM.removeElement(this.xlabels[i]);
}
for(var i=0;i<this.ylabels.length;i++){
MochiKit.DOM.removeElement(this.ylabels[i]);
}
}
this.xlabels=new Array();
this.ylabels=new Array();
};
PlotKit.SVGRenderer.prototype.createSVGElement=function(name,_309){
var _310=MochiKit.Base.isUndefinedOrNull;
var elem;
var doc=_310(this.document)?document:this.document;
try{
elem=doc.createElementNS(PlotKit.SVGRenderer.SVGNS,name);
}
catch(e){
elem=doc.createElement(name);
elem.setAttribute("xmlns",PlotKit.SVGRenderer.SVGNS);
}
if(_309){
MochiKit.DOM.updateNodeAttributes(elem,_309);
}
return elem;
};
PlotKit.SVGRenderer.SVG=function(_312){
var ie=navigator.appVersion.match(/MSIE (\d\.\d)/);
var _313=(navigator.userAgent.toLowerCase().indexOf("opera")!=-1);
if(ie&&(ie[1]>=6)&&(!_313)){
var _314=_312["width"]?_312["width"]:"100";
var _315=_312["height"]?_312["height"]:"100";
var eid=_312["id"]?_312["id"]:"notunique";
var html="<svg:svg width=\""+_314+"\" height=\""+_315+"\" ";
html+="id=\""+eid+"\" version=\"1.1\" baseProfile=\"full\" />";
var _318=document.createElement(html);
var _319=_318.getSVGDocument().createElementNS(PlotKit.SVGRenderer.SVGNS,"svg");
_319.setAttribute("width",_314);
_319.setAttribute("height",_315);
_318.getSVGDocument().appendChild(_319);
return _318;
}else{
return PlotKit.SVGRenderer.prototype.createSVGElement("svg",_312);
}
};
PlotKit.SVGRenderer.isSupported=function(){
var _320=(navigator.userAgent.toLowerCase().indexOf("opera")!=-1);
var _321=navigator.appVersion.match(/MSIE (\d\.\d)/);
var _322=navigator.userAgent.match(/AppleWebKit\/(\d+)/);
var _323=navigator.userAgent.match(/Opera\/(\d*\.\d*)/);
var _324=navigator.userAgent.match(/rv:(\d*\.\d*).*Gecko/);
var _325="http://www.w3.org/TR/SVG11/feature#SVG";
if(_321&&(_321[1]>=6)&&!_320){
return document.implementation.hasFeature(_325,"1.1");
}
if(_323&&(_323[1]>8.9)){
return true;
}
if(_324&&(_324>1.7)){
return true;
}
return false;
};
PlotKit.SVG={};
PlotKit.SVG.SVGRenderer=PlotKit.SVGRenderer;
PlotKit.SVG.EXPORT=["SVGRenderer"];
PlotKit.SVG.EXPORT_OK=["SVGRenderer"];
PlotKit.SVG.__new__=function(){
var m=MochiKit.Base;
m.nameFunctions(this);
this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
};
PlotKit.SVG.__new__();
MochiKit.Base._exportSymbols(this,PlotKit.SVG);
try{
if(typeof (PlotKit.CanvasRenderer)=="undefined"){
throw "";
}
}
catch(e){
throw "SweetCanvas depends on MochiKit.{Base,Color,DOM,Format} and PlotKit.{Layout, Canvas}";
}
if(typeof (PlotKit.SweetCanvasRenderer)=="undefined"){
PlotKit.SweetCanvasRenderer={};
}
PlotKit.SweetCanvasRenderer=function(_326,_327,_328){
if(arguments.length>0){
this.__init__(_326,_327,_328);
}
};
PlotKit.SweetCanvasRenderer.NAME="PlotKit.SweetCanvasRenderer";
PlotKit.SweetCanvasRenderer.VERSION=PlotKit.VERSION;
PlotKit.SweetCanvasRenderer.__repr__=function(){
return "["+this.NAME+" "+this.VERSION+"]";
};
PlotKit.SweetCanvasRenderer.toString=function(){
return this.__repr__();
};
PlotKit.SweetCanvasRenderer.prototype=new PlotKit.CanvasRenderer();
PlotKit.SweetCanvasRenderer.prototype.constructor=PlotKit.SweetCanvasRenderer;
PlotKit.SweetCanvasRenderer.__super__=PlotKit.CanvasRenderer.prototype;
PlotKit.SweetCanvasRenderer.prototype.__init__=function(el,_330,opts){
var _331=PlotKit.Base.officeBlue();
MochiKit.Base.update(_331,opts);
PlotKit.SweetCanvasRenderer.__super__.__init__.call(this,el,_330,_331);
};
PlotKit.SweetCanvasRenderer.prototype._renderBarChart=function(){
var bind=MochiKit.Base.bind;
var _332=Color.blackColor().colorWithAlpha(0.1).toRGBString();
var _333=function(_334,x,y,w,h){
_334.fillStyle=_332;
_334.fillRect(x-2,y-2,w+4,h+2);
_334.fillStyle=_332;
_334.fillRect(x-1,y-1,w+2,h+1);
};
var _335=this.options.colorScheme.length;
var _336=this.options.colorScheme;
var _337=PlotKit.Base.keys(this.layout.datasets);
var _338=_337.length;
var _339=function(name){
for(var i=0;i<_338;i++){
if(name==_337[i]){
return _336[i%_335];
}
}
return _336[0];
};
var _340=function(_341,bar){
var x=this.area.w*bar.x+this.area.x;
var y=this.area.h*bar.y+this.area.y;
var w=this.area.w*bar.w;
var h=this.area.h*bar.h;
if((w<1)||(h<1)){
return;
}
_341.save();
_341.shadowBlur=5;
_341.shadowColor=Color.fromHexString("#888888").toRGBString();
if(this.isIE){
_341.save();
_341.fillStyle="#cccccc";
_341.fillRect(x-2,y-2,w+4,h+2);
_341.restore();
}else{
_333(_341,x,y,w,h);
}
if(this.options.shouldFill){
_341.fillStyle=_339(bar.name).toRGBString();
_341.fillRect(x,y,w,h);
}
_341.shadowBlur=0;
_341.strokeStyle=Color.whiteColor().toRGBString();
_341.lineWidth=2;
if(this.options.shouldStroke){
_341.strokeRect(x,y,w,h);
}
_341.restore();
};
this._renderBarChartWrap(this.layout.bars,bind(_340,this));
};
PlotKit.SweetCanvasRenderer.prototype._renderLineChart=function(){
var _342=this.element.getContext("2d");
var _343=this.options.colorScheme.length;
var _344=this.options.colorScheme;
var _345=PlotKit.Base.keys(this.layout.datasets);
var _346=_345.length;
var bind=MochiKit.Base.bind;
for(var i=0;i<_346;i++){
var _347=_345[i];
var _348=_344[i%_343];
var _349=this.options.strokeColorTransform;
_342.save();
var _350=function(ctx){
ctx.beginPath();
ctx.moveTo(this.area.x,this.area.y+this.area.h);
var _351=function(ctx_,_352){
if(_352.name==_347){
ctx_.lineTo(this.area.w*_352.x+this.area.x,this.area.h*_352.y+this.area.y);
}
};
MochiKit.Iter.forEach(this.layout.points,partial(_351,ctx),this);
ctx.lineTo(this.area.w+this.area.x,this.area.h+this.area.y);
ctx.lineTo(this.area.x,this.area.y+this.area.h);
ctx.closePath();
};
if(this.options.shouldFill){
_342.save();
if(this.isIE){
_342.fillStyle="#cccccc";
}else{
_342.fillStyle=Color.blackColor().colorWithAlpha(0.2).toRGBString();
}
_342.translate(-1,-2);
bind(_350,this)(_342);
if(this.options.shouldFill){
_342.fill();
}
_342.restore();
}
_342.shadowBlur=5;
_342.shadowColor=Color.fromHexString("#888888").toRGBString();
_342.fillStyle=_348.toRGBString();
_342.lineWidth=2;
_342.strokeStyle=Color.whiteColor().toRGBString();
if(this.options.shouldFill){
bind(_350,this)(_342);
_342.fill();
}
if(this.options.shouldStroke){
bind(_350,this)(_342);
_342.stroke();
}
_342.restore();
}
};
PlotKit.SweetCanvasRenderer.prototype._renderPieChart=function(){
var _353=this.element.getContext("2d");
var _354=this.options.colorScheme.length;
var _355=this.layout.slices;
var _356=this.area.x+this.area.w*0.5;
var _357=this.area.y+this.area.h*0.5;
var _358=Math.min(this.area.w*this.options.pieRadius,this.area.h*this.options.pieRadius);
if(this.isIE){
_356=parseInt(_356);
_357=parseInt(_357);
_358=parseInt(_358);
}
if(!this.isIE){
_353.save();
var _359=Color.blackColor().colorWithAlpha(0.2);
_353.fillStyle=_359.toRGBString();
_353.shadowBlur=5;
_353.shadowColor=Color.fromHexString("#888888").toRGBString();
_353.translate(1,1);
_353.beginPath();
_353.moveTo(_356,_357);
_353.arc(_356,_357,_358+2,0,Math.PI*2,false);
_353.closePath();
_353.fill();
_353.restore();
}
_353.save();
_353.strokeStyle=Color.whiteColor().toRGBString();
_353.lineWidth=2;
for(var i=0;i<_355.length;i++){
var _360=this.options.colorScheme[i%_354];
_353.fillStyle=_360.toRGBString();
var _361=function(){
_353.beginPath();
_353.moveTo(_356,_357);
_353.arc(_356,_357,_358,_355[i].startAngle-Math.PI/2,_355[i].endAngle-Math.PI/2,false);
_353.lineTo(_356,_357);
_353.closePath();
};
if(Math.abs(_355[i].startAngle-_355[i].endAngle)>0.0001){
if(this.options.shouldFill){
_361();
_353.fill();
}
if(this.options.shouldStroke){
_361();
_353.stroke();
}
}
}
_353.restore();
};
PlotKit.SweetCanvasRenderer.prototype._renderBackground=function(){
var _362=this.element.getContext("2d");
if(this.layout.style=="bar"||this.layout.style=="line"){
_362.save();
_362.fillStyle=this.options.backgroundColor.toRGBString();
_362.fillRect(this.area.x,this.area.y,this.area.w,this.area.h);
_362.strokeStyle=this.options.axisLineColor.toRGBString();
_362.lineWidth=1;
var _363=this.layout.yticks;
var _364=false;
if(this.layout.style=="bar"&&this.layout.options.barOrientation=="horizontal"){
_363=this.layout.xticks;
_364=true;
}
for(var i=0;i<_363.length;i++){
var x1=0;
var y1=0;
var x2=0;
var y2=0;
if(_364){
x1=_363[i][0]*this.area.w+this.area.x;
y1=this.area.y;
x2=x1;
y2=y1+this.area.h;
}else{
x1=this.area.x;
y1=_363[i][0]*this.area.h+this.area.y;
x2=x1+this.area.w;
y2=y1;
}
_362.beginPath();
_362.moveTo(x1,y1);
_362.lineTo(x2,y2);
_362.closePath();
_362.stroke();
}
_362.restore();
}else{
PlotKit.SweetCanvasRenderer.__super__._renderBackground.call(this);
}
};
PlotKit.SweetCanvas={};
PlotKit.SweetCanvas.SweetCanvasRenderer=PlotKit.SweetCanvasRenderer;
PlotKit.SweetCanvas.EXPORT=["SweetCanvasRenderer"];
PlotKit.SweetCanvas.EXPORT_OK=["SweetCanvasRenderer"];
PlotKit.SweetCanvas.__new__=function(){
var m=MochiKit.Base;
m.nameFunctions(this);
this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
};
PlotKit.SweetCanvas.__new__();
MochiKit.Base._exportSymbols(this,PlotKit.SweetCanvas);
try{
if(typeof (PlotKit.SVGRenderer)=="undefined"){
throw "";
}
}
catch(e){
throw "SweetSVG depends on MochiKit.{Base,Color,DOM,Format} and PlotKit.{Layout, SVG}";
}
if(typeof (PlotKit.SweetSVGRenderer)=="undefined"){
PlotKit.SweetSVGRenderer={};
}
PlotKit.SweetSVGRenderer=function(_365,_366,_367){
if(arguments.length>0){
this.__init__(_365,_366,_367);
}
};
PlotKit.SweetSVGRenderer.NAME="PlotKit.SweetSVGRenderer";
PlotKit.SweetSVGRenderer.VERSION=PlotKit.VERSION;
PlotKit.SweetSVGRenderer.__repr__=function(){
return "["+this.NAME+" "+this.VERSION+"]";
};
PlotKit.SweetSVGRenderer.toString=function(){
return this.__repr__();
};
PlotKit.SweetSVGRenderer.prototype=new PlotKit.SVGRenderer();
PlotKit.SweetSVGRenderer.prototype.constructor=PlotKit.SweetSVGRenderer;
PlotKit.SweetSVGRenderer.__super__=PlotKit.SVGRenderer.prototype;
PlotKit.SweetSVGRenderer.prototype.__init__=function(_368,_369,_370){
var _371=PlotKit.Base.officeBlue();
MochiKit.Base.update(_371,_370);
PlotKit.SweetSVGRenderer.__super__.__init__.call(this,_368,_369,_371);
};
PlotKit.SweetSVGRenderer.prototype._addDropShadowFilter=function(){
var _372=this.createSVGElement("filter",{x:0,y:0,"id":"dropShadow"});
var _373=this.createSVGElement("feOffset",{"in":"SourceGraphic","dx":0,"dy":0,"result":"topCopy"});
var blur=this.createSVGElement("feGaussianBlur",{"in":"SourceAlpha","StdDeviation":2,"result":"shadow"});
var _375=this.createSVGElement("feOffset",{"in":"shadow","dx":-1,"dy":-2,"result":"movedShadow"});
var _376=this.createSVGElement("feMerge");
var _377=this.createSVGElement("feMergeNode",{"in":"topCopy"});
var _378=this.createSVGElement("feMergeNode",{"in":"movedShadow"});
_376.appendChild(_377);
_376.appendChild(_378);
_372.appendChild(_373);
_372.appendChild(blur);
_372.appendChild(_375);
_372.appendChild(_376);
this.defs.appendChild(_372);
};
PlotKit.SweetSVGRenderer.prototype._renderBarChart=function(){
var bind=MochiKit.Base.bind;
var _379=Color.blackColor().toRGBString();
var _380="fill:"+_379+";fill-opacity:0.15";
var _381="stroke-width: 2.0; stroke:"+Color.whiteColor().toRGBString();
var _382=function(_383,bar){
var x=this.area.w*bar.x+this.area.x;
var y=this.area.h*bar.y+this.area.y;
var w=this.area.w*bar.w;
var h=this.area.h*bar.h;
if((w<1)||(h<1)){
return;
}
_383["style"]=_381;
this._drawRect(x-2,y-1,w+4,h+2,{"style":_380});
this._drawRect(x,y,w,h,_383);
};
this._renderBarOrLine(this.layout.bars,bind(_382,this));
};
PlotKit.SweetSVGRenderer.prototype._renderLineChart=function(){
var bind=MochiKit.Base.bind;
var _384=Color.blackColor().toRGBString();
var _385="fill:"+_384+";fill-opacity:0.15";
var _386="stroke-width: 2.0; stroke:"+Color.whiteColor().toRGBString();
var _387=function(_388,_389){
this._tempPointsBuffer+=(this.area.w*_389.x+this.area.x)+","+(this.area.h*_389.y+this.area.y)+" ";
};
var _390=function(_391){
this._tempPointsBuffer="";
this._tempPointsBuffer+=(this.area.x)+","+(this.area.y+this.area.h)+" ";
};
var _392=function(_393){
this._tempPointsBuffer+=(this.area.w+this.area.x)+","+(this.area.h+this.area.y);
_393["points"]=this._tempPointsBuffer;
_393["stroke"]="none";
_393["transform"]="translate(-2, -1)";
_393["style"]=_385;
var _394=this.createSVGElement("polygon",_393);
this.root.appendChild(_394);
_393["transform"]="";
_393["style"]=_386;
var elem=this.createSVGElement("polygon",_393);
this.root.appendChild(elem);
};
this._renderBarOrLine(this.layout.points,bind(_387,this),bind(_390,this),bind(_392,this));
};
PlotKit.SweetSVGRenderer.prototype._renderPieChart=function(){
var _395=this.area.x+this.area.w*0.5;
var _396=this.area.y+this.area.h*0.5;
var _397=Color.blackColor().toRGBString();
var _398=Math.min(this.area.w*this.options.pieRadius,this.area.h*this.options.pieRadius);
var _399="fill:"+_397+";fill-opacity:0.15";
var _400=this.createSVGElement("circle",{"style":_399,"cx":_395+1,"cy":_396+1,"r":_398+1});
this.root.appendChild(_400);
PlotKit.SweetSVGRenderer.__super__._renderPieChart.call(this);
};
PlotKit.SweetSVGRenderer.prototype._renderBackground=function(){
var _401={"fill":this.options.backgroundColor.toRGBString(),"stroke":"none"};
if(this.layout.style=="bar"||this.layout.style=="line"){
this._drawRect(this.area.x,this.area.y,this.area.w,this.area.h,_401);
var _402=this.layout.yticks;
var _403=false;
if(this.layout.style=="bar"&&this.layout.options.barOrientation=="horizontal"){
_402=this.layout.xticks;
_403=true;
}
for(var i=0;i<_402.length;i++){
var x=0;
var y=0;
var w=0;
var h=0;
if(_403){
x=_402[i][0]*this.area.w+this.area.x;
y=this.area.y;
w=1;
h=this.area.w;
}else{
x=this.area.x;
y=_402[i][0]*this.area.h+this.area.y;
w=this.area.w;
h=1;
}
this._drawRect(x,y,w,h,{"fill":this.options.axisLineColor.toRGBString()});
}
}else{
PlotKit.SweetSVGRenderer.__super__._renderBackground.call(this);
}
};
PlotKit.SweetSVG={};
PlotKit.SweetSVG.SweetSVGRenderer=PlotKit.SweetSVGRenderer;
PlotKit.SweetSVG.EXPORT=["SweetSVGRenderer"];
PlotKit.SweetSVG.EXPORT_OK=["SweetSVGRenderer"];
PlotKit.SweetSVG.__new__=function(){
var m=MochiKit.Base;
m.nameFunctions(this);
this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
};
PlotKit.SweetSVG.__new__();
MochiKit.Base._exportSymbols(this,PlotKit.SweetSVG);
try{
if(typeof (PlotKit.CanvasRenderer)=="undefined"){
throw "";
}
}
catch(e){
throw "PlotKit.EasyPlot depends on all of PlotKit's components";
}
if(typeof (PlotKit.EasyPlot)=="undefined"){
PlotKit.EasyPlot={};
}
PlotKit.EasyPlot.NAME="PlotKit.EasyPlot";
PlotKit.EasyPlot.VERSION=PlotKit.VERSION;
PlotKit.EasyPlot.__repr__=function(){
return "["+this.NAME+" "+this.VERSION+"]";
};
PlotKit.EasyPlot.toString=function(){
return this.__repr__();
};
PlotKit.EasyPlot=function(_404,_405,_406,_407){
this.layout=new Layout(_404,_405);
this.divElem=_406;
this.width=parseInt(_406.getAttribute("width"));
this.height=parseInt(_406.getAttribute("height"));
this.deferredCount=0;
if(this.width<1){
this.width=this.divElem.width?this.divElem.width:300;
}
if(this.height<1){
this.height=this.divElem.height?this.divElem.height:300;
}
if(isArrayLike(_407)){
for(var i=0;i<_407.length;i++){
if(typeof (_407[i])=="string"){
this.deferredCount++;
var d=MochiKit.Async.doSimpleXMLHttpRequest(_407[i]);
d.addCallback(MochiKit.Base.bind(PlotKit.EasyPlot.onDataLoaded,this));
}else{
if(isArrayLike(_407[i])){
this.layout.addDataset("data-"+i,_407[i]);
}
}
}
}else{
if(!isUndefinedOrNull(_407)){
throw "Passed datasources are not Array like";
}
}
if(CanvasRenderer.isSupported()){
this.element=CANVAS({"id":this.divElem.getAttribute("id")+"-canvas","width":this.width,"height":this.height},"");
this.divElem.appendChild(this.element);
this.renderer=new SweetCanvasRenderer(this.element,this.layout,_405);
}else{
if(SVGRenderer.isSupported()){
this.element=SVGRenderer.SVG({"id":this.divElem.getAttribute("id")+"-svg","width":this.width,"height":this.height,"version":"1.1","baseProfile":"full"},"");
this.divElem.appendChild(this.element);
this.renderer=new SweetSVGRenderer(this.element,this.layout,_405);
}
}
if((this.deferredCount==0)&&(PlotKit.Base.keys(this.layout.datasets).length>0)){
this.layout.evaluate();
this.renderer.clear();
this.renderer.render();
}
};
PlotKit.EasyPlot.onDataLoaded=function(_409){
var _410=new Array();
var _411=_409.responseText.split("\n");
for(var i=0;i<_411.length;i++){
var _412=MochiKit.Format.strip(_411[i]);
if((_412.length>1)&&(_412.charAt(0)!="#")){
_410.push(_412.split(","));
}
}
this.layout.addDataset("data-ajax-"+this.deferredCount,_410);
this.deferredCount--;
if((this.deferredCount==0)&&(PlotKit.Base.keys(this.layout.datasets).length>0)){
this.layout.evaluate();
this.renderer.clear();
this.renderer.render();
}
};
PlotKit.EasyPlot.prototype.reload=function(){
this.layout.evaluate();
this.renderer.clear();
this.renderer.render();
};
PlotKit.EasyPlotModule={};
PlotKit.EasyPlotModule.EasyPlot=PlotKit.EasyPlot;
PlotKit.EasyPlotModule.EXPORT=["EasyPlot"];
PlotKit.EasyPlotModule.EXPORT_OK=[];
PlotKit.EasyPlotModule.__new__=function(){
var m=MochiKit.Base;
m.nameFunctions(this);
this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};
};
PlotKit.EasyPlotModule.__new__();
MochiKit.Base._exportSymbols(this,PlotKit.EasyPlotModule);