common.js 4.1 KB

12345678
  1. /*
  2. Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
  3. Available via Academic Free License >= 2.1 OR the modified BSD license.
  4. see: http://dojotoolkit.org/license for details
  5. */
  6. if(!dojo._hasResource["dojox.charting.plot2d.common"]){dojo._hasResource["dojox.charting.plot2d.common"]=true;dojo.provide("dojox.charting.plot2d.common");dojo.require("dojo.colors");dojo.require("dojox.gfx");dojo.require("dojox.lang.functional");(function(){var df=dojox.lang.functional,dc=dojox.charting.plot2d.common;dojo.mixin(dojox.charting.plot2d.common,{makeStroke:function(_1){if(!_1){return _1;}if(typeof _1=="string"||_1 instanceof dojo.Color){_1={color:_1};}return dojox.gfx.makeParameters(dojox.gfx.defaultStroke,_1);},augmentColor:function(_2,_3){var t=new dojo.Color(_2),c=new dojo.Color(_3);c.a=t.a;return c;},augmentStroke:function(_4,_5){var s=dc.makeStroke(_4);if(s){s.color=dc.augmentColor(s.color,_5);}return s;},augmentFill:function(_6,_7){var fc,c=new dojo.Color(_7);if(typeof _6=="string"||_6 instanceof dojo.Color){return dc.augmentColor(_6,_7);}return _6;},defaultStats:{hmin:Number.POSITIVE_INFINITY,hmax:Number.NEGATIVE_INFINITY,vmin:Number.POSITIVE_INFINITY,vmax:Number.NEGATIVE_INFINITY},collectSimpleStats:function(_8){var _9=dojo.clone(dc.defaultStats);for(var i=0;i<_8.length;++i){var _a=_8[i];if(!_a.data.length){continue;}if(typeof _a.data[0]=="number"){var _b=_9.vmin,_c=_9.vmax;if(!("ymin" in _a)||!("ymax" in _a)){dojo.forEach(_a.data,function(_d,i){var x=i+1,y=_d;if(isNaN(y)){y=0;}_9.hmin=Math.min(_9.hmin,x);_9.hmax=Math.max(_9.hmax,x);_9.vmin=Math.min(_9.vmin,y);_9.vmax=Math.max(_9.vmax,y);});}if("ymin" in _a){_9.vmin=Math.min(_b,_a.ymin);}if("ymax" in _a){_9.vmax=Math.max(_c,_a.ymax);}}else{var _e=_9.hmin,_f=_9.hmax,_b=_9.vmin,_c=_9.vmax;if(!("xmin" in _a)||!("xmax" in _a)||!("ymin" in _a)||!("ymax" in _a)){dojo.forEach(_a.data,function(val,i){var x="x" in val?val.x:i+1,y=val.y;if(isNaN(x)){x=0;}if(isNaN(y)){y=0;}_9.hmin=Math.min(_9.hmin,x);_9.hmax=Math.max(_9.hmax,x);_9.vmin=Math.min(_9.vmin,y);_9.vmax=Math.max(_9.vmax,y);});}if("xmin" in _a){_9.hmin=Math.min(_e,_a.xmin);}if("xmax" in _a){_9.hmax=Math.max(_f,_a.xmax);}if("ymin" in _a){_9.vmin=Math.min(_b,_a.ymin);}if("ymax" in _a){_9.vmax=Math.max(_c,_a.ymax);}}}return _9;},calculateBarSize:function(_10,opt,_11){if(!_11){_11=1;}var gap=opt.gap,_12=(_10-2*gap)/_11;if("minBarSize" in opt){_12=Math.max(_12,opt.minBarSize);}if("maxBarSize" in opt){_12=Math.min(_12,opt.maxBarSize);}_12=Math.max(_12,1);gap=(_10-_12*_11)/2;return {size:_12,gap:gap};},collectStackedStats:function(_13){var _14=dojo.clone(dc.defaultStats);if(_13.length){_14.hmin=Math.min(_14.hmin,1);_14.hmax=df.foldl(_13,"seed, run -> Math.max(seed, run.data.length)",_14.hmax);for(var i=0;i<_14.hmax;++i){var v=_13[0].data[i];if(isNaN(v)){v=0;}_14.vmin=Math.min(_14.vmin,v);for(var j=1;j<_13.length;++j){var t=_13[j].data[i];if(isNaN(t)){t=0;}v+=t;}_14.vmax=Math.max(_14.vmax,v);}}return _14;},curve:function(a,_15){var arr=a.slice(0);if(_15=="x"){arr[arr.length]=arr[0];}var p=dojo.map(arr,function(_16,i){if(i==0){return "M"+_16.x+","+_16.y;}if(!isNaN(_15)){var dx=_16.x-arr[i-1].x,dy=arr[i-1].y;return "C"+(_16.x-(_15-1)*(dx/_15))+","+dy+" "+(_16.x-(dx/_15))+","+_16.y+" "+_16.x+","+_16.y;}else{if(_15=="X"||_15=="x"||_15=="S"){var p0,p1=arr[i-1],p2=arr[i],p3;var _17,_18,_19,_1a;var f=1/6;if(i==1){if(_15=="x"){p0=arr[arr.length-2];}else{p0=p1;}f=1/3;}else{p0=arr[i-2];}if(i==(arr.length-1)){if(_15=="x"){p3=arr[1];}else{p3=p2;}f=1/3;}else{p3=arr[i+1];}var _1b=Math.sqrt((p2.x-p1.x)*(p2.x-p1.x)+(p2.y-p1.y)*(p2.y-p1.y));var _1c=Math.sqrt((p2.x-p0.x)*(p2.x-p0.x)+(p2.y-p0.y)*(p2.y-p0.y));var _1d=Math.sqrt((p3.x-p1.x)*(p3.x-p1.x)+(p3.y-p1.y)*(p3.y-p1.y));var _1e=_1c*f;var _1f=_1d*f;if(_1e>_1b/2&&_1f>_1b/2){_1e=_1b/2;_1f=_1b/2;}else{if(_1e>_1b/2){_1e=_1b/2;_1f=_1b/2*_1d/_1c;}else{if(_1f>_1b/2){_1f=_1b/2;_1e=_1b/2*_1c/_1d;}}}if(_15=="S"){if(p0==p1){_1e=0;}if(p2==p3){_1f=0;}}_17=p1.x+_1e*(p2.x-p0.x)/_1c;_18=p1.y+_1e*(p2.y-p0.y)/_1c;_19=p2.x-_1f*(p3.x-p1.x)/_1d;_1a=p2.y-_1f*(p3.y-p1.y)/_1d;}}return "C"+(_17+","+_18+" "+_19+","+_1a+" "+p2.x+","+p2.y);});return p.join(" ");}});})();}