//>>built define("dojox/charting/plot2d/Bubble",["dojo/_base/lang","dojo/_base/declare","dojo/_base/array","./Base","./common","dojox/lang/functional","dojox/lang/functional/reversed","dojox/lang/utils","dojox/gfx/fx"],function(_1,_2,_3,_4,dc,df,_5,du,fx){ var _6=_5.lambda("item.purgeGroup()"); return _2("dojox.charting.plot2d.Bubble",_4,{defaultParams:{hAxis:"x",vAxis:"y",animate:null},optionalParams:{stroke:{},outline:{},shadow:{},fill:{},font:"",fontColor:""},constructor:function(_7,_8){ this.opt=_1.clone(this.defaultParams); du.updateWithObject(this.opt,_8); du.updateWithPattern(this.opt,_8,this.optionalParams); this.series=[]; this.hAxis=this.opt.hAxis; this.vAxis=this.opt.vAxis; this.animate=this.opt.animate; },render:function(_9,_a){ if(this.zoom&&!this.isDataDirty()){ return this.performZoom(_9,_a); } this.resetEvents(); this.dirty=this.isDirty(); if(this.dirty){ _3.forEach(this.series,_6); this._eventSeries={}; this.cleanGroup(); var s=this.group; df.forEachRev(this.series,function(_b){ _b.cleanGroup(s); }); } var t=this.chart.theme,ht=this._hScaler.scaler.getTransformerFromModel(this._hScaler),vt=this._vScaler.scaler.getTransformerFromModel(this._vScaler),_c=this.events(); for(var i=this.series.length-1;i>=0;--i){ var _d=this.series[i]; if(!this.dirty&&!_d.dirty){ t.skip(); this._reconnectEvents(_d.name); continue; } _d.cleanGroup(); if(!_d.data.length){ _d.dirty=false; t.skip(); continue; } if(typeof _d.data[0]=="number"){ console.warn("dojox.charting.plot2d.Bubble: the data in the following series cannot be rendered as a bubble chart; ",_d); continue; } var _e=t.next("circle",[this.opt,_d]),s=_d.group,_f=_3.map(_d.data,function(v,i){ return v?{x:ht(v.x)+_a.l,y:_9.height-_a.b-vt(v.y),radius:this._vScaler.bounds.scale*(v.size/2)}:null; },this); var _10=null,_11=null,_12=null; if(_e.series.shadow){ _12=_3.map(_f,function(_13){ if(_13!==null){ var _14=t.addMixin(_e,"circle",_13,true),_15=_14.series.shadow; var _16=s.createCircle({cx:_13.x+_15.dx,cy:_13.y+_15.dy,r:_13.radius}).setStroke(_15).setFill(_15.color); if(this.animate){ this._animateBubble(_16,_9.height-_a.b,_13.radius); } return _16; } return null; },this); if(_12.length){ _d.dyn.shadow=_12[_12.length-1].getStroke(); } } if(_e.series.outline){ _11=_3.map(_f,function(_17){ if(_17!==null){ var _18=t.addMixin(_e,"circle",_17,true),_19=dc.makeStroke(_18.series.outline); _19.width=2*_19.width+_e.series.stroke.width; var _1a=s.createCircle({cx:_17.x,cy:_17.y,r:_17.radius}).setStroke(_19); if(this.animate){ this._animateBubble(_1a,_9.height-_a.b,_17.radius); } return _1a; } return null; },this); if(_11.length){ _d.dyn.outline=_11[_11.length-1].getStroke(); } } _10=_3.map(_f,function(_1b){ if(_1b!==null){ var _1c=t.addMixin(_e,"circle",_1b,true),_1d={x:_1b.x-_1b.radius,y:_1b.y-_1b.radius,width:2*_1b.radius,height:2*_1b.radius}; var _1e=this._plotFill(_1c.series.fill,_9,_a); _1e=this._shapeFill(_1e,_1d); var _1f=s.createCircle({cx:_1b.x,cy:_1b.y,r:_1b.radius}).setFill(_1e).setStroke(_1c.series.stroke); if(this.animate){ this._animateBubble(_1f,_9.height-_a.b,_1b.radius); } return _1f; } return null; },this); if(_10.length){ _d.dyn.fill=_10[_10.length-1].getFill(); _d.dyn.stroke=_10[_10.length-1].getStroke(); } if(_c){ var _20=new Array(_10.length); _3.forEach(_10,function(s,i){ if(s!==null){ var o={element:"circle",index:i,run:_d,shape:s,outline:_11&&_11[i]||null,shadow:_12&&_12[i]||null,x:_d.data[i].x,y:_d.data[i].y,r:_d.data[i].size/2,cx:_f[i].x,cy:_f[i].y,cr:_f[i].radius}; this._connectEvents(o); _20[i]=o; } },this); this._eventSeries[_d.name]=_20; }else{ delete this._eventSeries[_d.name]; } _d.dirty=false; } this.dirty=false; return this; },_animateBubble:function(_21,_22,_23){ fx.animateTransform(_1.delegate({shape:_21,duration:1200,transform:[{name:"translate",start:[0,_22],end:[0,0]},{name:"scale",start:[0,1/_23],end:[1,1]},{name:"original"}]},this.animate)).play(); }}); });