212 lines
4.3 KiB
JavaScript
212 lines
4.3 KiB
JavaScript
|
//>>built
|
||
|
define("dojox/charting/plot2d/common",["dojo/_base/lang","dojo/_base/array","dojo/_base/Color","dojox/gfx","dojox/lang/functional","../scaler/common"],function(_1,_2,_3,g,df,sc){
|
||
|
var _4=_1.getObject("dojox.charting.plot2d.common",true);
|
||
|
return _1.mixin(_4,{doIfLoaded:sc.doIfLoaded,makeStroke:function(_5){
|
||
|
if(!_5){
|
||
|
return _5;
|
||
|
}
|
||
|
if(typeof _5=="string"||_5 instanceof _3){
|
||
|
_5={color:_5};
|
||
|
}
|
||
|
return g.makeParameters(g.defaultStroke,_5);
|
||
|
},augmentColor:function(_6,_7){
|
||
|
var t=new _3(_6),c=new _3(_7);
|
||
|
c.a=t.a;
|
||
|
return c;
|
||
|
},augmentStroke:function(_8,_9){
|
||
|
var s=_4.makeStroke(_8);
|
||
|
if(s){
|
||
|
s.color=_4.augmentColor(s.color,_9);
|
||
|
}
|
||
|
return s;
|
||
|
},augmentFill:function(_a,_b){
|
||
|
var fc,c=new _3(_b);
|
||
|
if(typeof _a=="string"||_a instanceof _3){
|
||
|
return _4.augmentColor(_a,_b);
|
||
|
}
|
||
|
return _a;
|
||
|
},defaultStats:{vmin:Number.POSITIVE_INFINITY,vmax:Number.NEGATIVE_INFINITY,hmin:Number.POSITIVE_INFINITY,hmax:Number.NEGATIVE_INFINITY},collectSimpleStats:function(_c){
|
||
|
var _d=_1.delegate(_4.defaultStats);
|
||
|
for(var i=0;i<_c.length;++i){
|
||
|
var _e=_c[i];
|
||
|
for(var j=0;j<_e.data.length;j++){
|
||
|
if(_e.data[j]!==null){
|
||
|
if(typeof _e.data[j]=="number"){
|
||
|
var _f=_d.vmin,_10=_d.vmax;
|
||
|
if(!("ymin" in _e)||!("ymax" in _e)){
|
||
|
_2.forEach(_e.data,function(val,i){
|
||
|
if(val!==null){
|
||
|
var x=i+1,y=val;
|
||
|
if(isNaN(y)){
|
||
|
y=0;
|
||
|
}
|
||
|
_d.hmin=Math.min(_d.hmin,x);
|
||
|
_d.hmax=Math.max(_d.hmax,x);
|
||
|
_d.vmin=Math.min(_d.vmin,y);
|
||
|
_d.vmax=Math.max(_d.vmax,y);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
if("ymin" in _e){
|
||
|
_d.vmin=Math.min(_f,_e.ymin);
|
||
|
}
|
||
|
if("ymax" in _e){
|
||
|
_d.vmax=Math.max(_10,_e.ymax);
|
||
|
}
|
||
|
}else{
|
||
|
var _11=_d.hmin,_12=_d.hmax,_f=_d.vmin,_10=_d.vmax;
|
||
|
if(!("xmin" in _e)||!("xmax" in _e)||!("ymin" in _e)||!("ymax" in _e)){
|
||
|
_2.forEach(_e.data,function(val,i){
|
||
|
if(val!==null){
|
||
|
var x="x" in val?val.x:i+1,y=val.y;
|
||
|
if(isNaN(x)){
|
||
|
x=0;
|
||
|
}
|
||
|
if(isNaN(y)){
|
||
|
y=0;
|
||
|
}
|
||
|
_d.hmin=Math.min(_d.hmin,x);
|
||
|
_d.hmax=Math.max(_d.hmax,x);
|
||
|
_d.vmin=Math.min(_d.vmin,y);
|
||
|
_d.vmax=Math.max(_d.vmax,y);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
if("xmin" in _e){
|
||
|
_d.hmin=Math.min(_11,_e.xmin);
|
||
|
}
|
||
|
if("xmax" in _e){
|
||
|
_d.hmax=Math.max(_12,_e.xmax);
|
||
|
}
|
||
|
if("ymin" in _e){
|
||
|
_d.vmin=Math.min(_f,_e.ymin);
|
||
|
}
|
||
|
if("ymax" in _e){
|
||
|
_d.vmax=Math.max(_10,_e.ymax);
|
||
|
}
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return _d;
|
||
|
},calculateBarSize:function(_13,opt,_14){
|
||
|
if(!_14){
|
||
|
_14=1;
|
||
|
}
|
||
|
var gap=opt.gap,_15=(_13-2*gap)/_14;
|
||
|
if("minBarSize" in opt){
|
||
|
_15=Math.max(_15,opt.minBarSize);
|
||
|
}
|
||
|
if("maxBarSize" in opt){
|
||
|
_15=Math.min(_15,opt.maxBarSize);
|
||
|
}
|
||
|
_15=Math.max(_15,1);
|
||
|
gap=(_13-_15*_14)/2;
|
||
|
return {size:_15,gap:gap};
|
||
|
},collectStackedStats:function(_16){
|
||
|
var _17=_1.clone(_4.defaultStats);
|
||
|
if(_16.length){
|
||
|
_17.hmin=Math.min(_17.hmin,1);
|
||
|
_17.hmax=df.foldl(_16,"seed, run -> Math.max(seed, run.data.length)",_17.hmax);
|
||
|
for(var i=0;i<_17.hmax;++i){
|
||
|
var v=_16[0].data[i];
|
||
|
v=v&&(typeof v=="number"?v:v.y);
|
||
|
if(isNaN(v)){
|
||
|
v=0;
|
||
|
}
|
||
|
_17.vmin=Math.min(_17.vmin,v);
|
||
|
for(var j=1;j<_16.length;++j){
|
||
|
var t=_16[j].data[i];
|
||
|
t=t&&(typeof t=="number"?t:t.y);
|
||
|
if(isNaN(t)){
|
||
|
t=0;
|
||
|
}
|
||
|
v+=t;
|
||
|
}
|
||
|
_17.vmax=Math.max(_17.vmax,v);
|
||
|
}
|
||
|
}
|
||
|
return _17;
|
||
|
},curve:function(a,_18){
|
||
|
var _19=a.slice(0);
|
||
|
if(_18=="x"){
|
||
|
_19[_19.length]=_2[0];
|
||
|
}
|
||
|
var p=_2.map(_19,function(_1a,i){
|
||
|
if(i==0){
|
||
|
return "M"+_1a.x+","+_1a.y;
|
||
|
}
|
||
|
if(!isNaN(_18)){
|
||
|
var dx=_1a.x-_19[i-1].x,dy=_19[i-1].y;
|
||
|
return "C"+(_1a.x-(_18-1)*(dx/_18))+","+dy+" "+(_1a.x-(dx/_18))+","+_1a.y+" "+_1a.x+","+_1a.y;
|
||
|
}else{
|
||
|
if(_18=="X"||_18=="x"||_18=="S"){
|
||
|
var p0,p1=_19[i-1],p2=_19[i],p3;
|
||
|
var _1b,_1c,_1d,_1e;
|
||
|
var f=1/6;
|
||
|
if(i==1){
|
||
|
if(_18=="x"){
|
||
|
p0=_19[_19.length-2];
|
||
|
}else{
|
||
|
p0=p1;
|
||
|
}
|
||
|
f=1/3;
|
||
|
}else{
|
||
|
p0=_19[i-2];
|
||
|
}
|
||
|
if(i==(_19.length-1)){
|
||
|
if(_18=="x"){
|
||
|
p3=_19[1];
|
||
|
}else{
|
||
|
p3=p2;
|
||
|
}
|
||
|
f=1/3;
|
||
|
}else{
|
||
|
p3=_19[i+1];
|
||
|
}
|
||
|
var _1f=Math.sqrt((p2.x-p1.x)*(p2.x-p1.x)+(p2.y-p1.y)*(p2.y-p1.y));
|
||
|
var _20=Math.sqrt((p2.x-p0.x)*(p2.x-p0.x)+(p2.y-p0.y)*(p2.y-p0.y));
|
||
|
var _21=Math.sqrt((p3.x-p1.x)*(p3.x-p1.x)+(p3.y-p1.y)*(p3.y-p1.y));
|
||
|
var _22=_20*f;
|
||
|
var _23=_21*f;
|
||
|
if(_22>_1f/2&&_23>_1f/2){
|
||
|
_22=_1f/2;
|
||
|
_23=_1f/2;
|
||
|
}else{
|
||
|
if(_22>_1f/2){
|
||
|
_22=_1f/2;
|
||
|
_23=_1f/2*_21/_20;
|
||
|
}else{
|
||
|
if(_23>_1f/2){
|
||
|
_23=_1f/2;
|
||
|
_22=_1f/2*_20/_21;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
if(_18=="S"){
|
||
|
if(p0==p1){
|
||
|
_22=0;
|
||
|
}
|
||
|
if(p2==p3){
|
||
|
_23=0;
|
||
|
}
|
||
|
}
|
||
|
_1b=p1.x+_22*(p2.x-p0.x)/_20;
|
||
|
_1c=p1.y+_22*(p2.y-p0.y)/_20;
|
||
|
_1d=p2.x-_23*(p3.x-p1.x)/_21;
|
||
|
_1e=p2.y-_23*(p3.y-p1.y)/_21;
|
||
|
}
|
||
|
}
|
||
|
return "C"+(_1b+","+_1c+" "+_1d+","+_1e+" "+p2.x+","+p2.y);
|
||
|
});
|
||
|
return p.join(" ");
|
||
|
},getLabel:function(_24,_25,_26){
|
||
|
return sc.doIfLoaded("dojo/number",function(_27){
|
||
|
return (_25?_27.format(_24,{places:_26}):_27.format(_24))||"";
|
||
|
},function(){
|
||
|
return _25?_24.toFixed(_26):_24.toString();
|
||
|
});
|
||
|
}});
|
||
|
});
|