graphics-canvas-min.js revision 11ba9f1486f8345f4ed99c74d8b58be3be37a40e
YUI.add("graphics-canvas",function(b){var h="canvasShape",k=b.config.doc,d=b.Lang,f=b.AttributeLite,m,l,j,e,g,i=b.Color.toRGB;function a(){}a.prototype={_reHex:/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i,_2RGBA:function(o,n){n=(n!==undefined)?n:1;if(this._reHex.exec(o)){o="rgba("+[parseInt(RegExp.$1,16),parseInt(RegExp.$2,16),parseInt(RegExp.$3,16)].join(",")+","+n+")";}return o;},_2RGB:function(n){return i(n);},setSize:function(n,o){if(this.get("autoSize")){if(n>this.node.getAttribute("width")){this.node.style.width=n+"px";this.node.setAttribute("width",n);}if(o>this.node.getAttribute("height")){this.node.style.height=o+"px";this.node.setAttribute("height",o);}}},_updateCoords:function(n,o){this._xcoords.push(n);this._ycoords.push(o);},_clearAndUpdateCoords:function(){var n=this._xcoords.pop()||0,o=this._ycoords.pop()||0;this._updateCoords(n,o);},_updateNodePosition:function(){var o=this.get("node"),n=this.get("x"),p=this.get("y");o.style.position="absolute";o.style.left=(n+this._left)+"px";o.style.top=(p+this._top)+"px";},_properties:null,_updateDrawingQueue:function(n){this._methods.push(n);},lineTo:function(u,s,n){var r=arguments,o=0,q,v,t,p=this._stroke&&this._strokeWeight?this._strokeWeight:0;if(!this._lineToMethods){this._lineToMethods=[];}if(typeof u==="string"||typeof u==="number"){r=[[u,s]];}q=r.length;for(;o<q;++o){if(r[o]){v=r[o][0];t=r[o][1];this._updateDrawingQueue(["lineTo",v,t]);this._lineToMethods[this._lineToMethods.length]=this._methods[this._methods.length-1];this._trackSize(v-p,t-p);this._trackSize(v+p,t+p);this._updateCoords(v,t);}}this._drawingComplete=false;return this;},moveTo:function(o,p){var n=this._stroke&&this._strokeWeight?this._strokeWeight:0;this._updateDrawingQueue(["moveTo",o,p]);this._trackSize(o-n,p-n);this._trackSize(o+n,p+n);this._updateCoords(o,p);this._drawingComplete=false;return this;},curveTo:function(q,o,v,u,t,s){var r,p,n,w;this._updateDrawingQueue(["bezierCurveTo",q,o,v,u,t,s]);this._drawingComplete=false;r=Math.max(t,Math.max(q,v));p=Math.max(s,Math.max(o,u));n=Math.min(t,Math.min(q,v));w=Math.min(s,Math.min(o,u));this._trackSize(r,p);this._trackSize(n,w);this._updateCoords(r,p);return this;},quadraticCurveTo:function(r,q,u,t){var p,o,n,v,s=this._stroke&&this._strokeWeight?this._strokeWeight:0;this._updateDrawingQueue(["quadraticCurveTo",r,q,u,t]);this._drawingComplete=false;p=Math.max(u,r);o=Math.max(t,q);n=Math.min(u,r);v=Math.min(t,q);this._trackSize(p+s,o+s);this._trackSize(n-s,v-s);this._updateCoords(p,o);return this;},drawCircle:function(p,t,o){var r=0,q=2*Math.PI,n=this._stroke&this._strokeWeight?this._strokeWeight:0,s=o*2;s+=n;this._drawingComplete=false;this._trackSize(p+s,t+s);this._trackSize(p-n,t-n);this._updateCoords(p,t);this._updateDrawingQueue(["arc",p+o,t+o,o,r,q,false]);return this;},drawEllipse:function(B,z,C,H){var E=8,t=-(45/180)*Math.PI,J=0,s,q=C/2,r=H/2,F=0,v=B+q,u=z+r,D,A,I,G,p,o,n=this._stroke&&this._strokeWeight?this._strokeWeight:0;D=v+Math.cos(0)*q;A=u+Math.sin(0)*r;this.moveTo(D,A);for(;F<E;F++){J+=t;s=J-(t/2);I=v+Math.cos(J)*q;G=u+Math.sin(J)*r;p=v+Math.cos(s)*(q/Math.cos(t/2));o=u+Math.sin(s)*(r/Math.cos(t/2));this._updateDrawingQueue(["quadraticCurveTo",p,o,I,G]);}this._trackSize(B+C+n,z+H+n);this._trackSize(B-n,z-n);this._updateCoords(B,z);return this;},drawRect:function(o,r,p,q){var n=this._stroke&&this._strokeWeight?this._strokeWeight:0;this._drawingComplete=false;this._updateDrawingQueue(["moveTo",o,r]);this._updateDrawingQueue(["lineTo",o+p,r]);this._updateDrawingQueue(["lineTo",o+p,r+q]);this._updateDrawingQueue(["lineTo",o,r+q]);this._updateDrawingQueue(["lineTo",o,r]);this._trackSize(o-n,r-n);this._trackSize(o+p+n,r+q+n);return this;},drawRoundRect:function(o,t,p,r,q,s){var n=this._stroke&&this._strokeWeight?this._strokeWeight:0;this._drawingComplete=false;this._updateDrawingQueue(["moveTo",o,t+s]);this._updateDrawingQueue(["lineTo",o,t+r-s]);this._updateDrawingQueue(["quadraticCurveTo",o,t+r,o+q,t+r]);this._updateDrawingQueue(["lineTo",o+p-q,t+r]);this._updateDrawingQueue(["quadraticCurveTo",o+p,t+r,o+p,t+r-s]);this._updateDrawingQueue(["lineTo",o+p,t+s]);this._updateDrawingQueue(["quadraticCurveTo",o+p,t,o+p-q,t]);this._updateDrawingQueue(["lineTo",o+q,t]);this._updateDrawingQueue(["quadraticCurveTo",o,t,o,t+s]);this._trackSize(o-n,t-n);this._trackSize(o+p+n,t+r+n);this._updateCoords(p,r);return this;},drawWedge:function(w,u,C,t,p,q){var B,A,s,G,r,z,v,F,E,o,n,D=0;q=q||p;this._drawingComplete=false;this._updateDrawingQueue(["moveTo",w,u]);q=q||p;if(Math.abs(t)>360){t=360;}B=Math.ceil(Math.abs(t)/45);A=t/B;s=-(A/180)*Math.PI;G=(C/180)*Math.PI;if(B>0){z=w+Math.cos(C/180*Math.PI)*p;v=u+Math.sin(C/180*Math.PI)*q;this.lineTo(z,v);for(;D<B;++D){G+=s;r=G-(s/2);F=w+Math.cos(G)*p;E=u+Math.sin(G)*q;o=w+Math.cos(r)*(p/Math.cos(s/2));n=u+Math.sin(r)*(q/Math.cos(s/2));this._updateDrawingQueue(["quadraticCurveTo",o,n,F,E]);}this._updateDrawingQueue(["lineTo",w,u]);}this._trackSize(0,0);this._trackSize(p*2,p*2);return this;},end:function(){this._paint();return this;},_getLinearGradient:function(){var D=b.Lang.isNumber,I=this.get("fill"),z=I.stops,t,H,G,J=0,K=z.length,n,B=0,A=0,C=this.get("width"),L=this.get("height"),F=I.rotation,N,M,s,p,q=B+C/2,o=A+L/2,v,u=Math.PI/180,E=parseFloat(parseFloat(Math.tan(F*u)).toFixed(8));if(Math.abs(E)*C/2>=L/2){if(F<180){s=A;p=A+L;}else{s=A+L;p=A;}N=q-((o-s)/E);M=q-((o-p)/E);}else{if(F>90&&F<270){N=B+C;M=B;}else{N=B;M=B+C;}s=((E*(q-N))-o)*-1;p=((E*(q-M))-o)*-1;}n=this._context.createLinearGradient(N,s,M,p);for(;J<K;++J){G=z[J];t=G.opacity;H=G.color;v=G.offset;if(D(t)){t=Math.max(0,Math.min(1,t));H=this._2RGBA(H,t);}else{H=this._2RGB(H);}v=G.offset||J/(K-1);n.addColorStop(v,H);}return n;},_getRadialGradient:function(){var G=b.Lang.isNumber,M=this.get("fill"),H=M.r,v=M.fx,t=M.fy,A=M.stops,u,J,I,N=0,P=A.length,o,D=0,C=0,E=this.get("width"),Q=this.get("height"),R,O,s,q,L,K,n,F,S,T,z,B,p;K=D+E/2;n=C+Q/2;R=E*v;s=Q*t;O=D+E/2;q=C+Q/2;L=E*H;T=Math.sqrt(Math.pow(Math.abs(K-R),2)+Math.pow(Math.abs(n-s),2));
if(T>=L){B=T/L;if(B===1){B=1.01;}F=(R-K)/B;S=(s-n)/B;F=F>0?Math.floor(F):Math.ceil(F);S=S>0?Math.floor(S):Math.ceil(S);R=K+F;s=n+S;}if(H>=0.5){o=this._context.createRadialGradient(R,s,H,O,q,H*E);p=1;}else{o=this._context.createRadialGradient(R,s,H,O,q,E/2);p=H*2;}for(;N<P;++N){I=A[N];u=I.opacity;J=I.color;z=I.offset;if(G(u)){u=Math.max(0,Math.min(1,u));J=this._2RGBA(J,u);}else{J=this._2RGB(J);}z=I.offset||N/(P-1);z*=p;if(z<=1){o.addColorStop(z,J);}}return o;},_initProps:function(){this._methods=[];this._lineToMethods=[];this._xcoords=[0];this._ycoords=[0];this._width=0;this._height=0;this._left=0;this._top=0;this._right=0;this._bottom=0;},_drawingComplete:false,_createGraphic:function(n){var o=b.config.doc.createElement("canvas");return o;},_trackSize:function(n,o){if(n>this._right){this._right=n;}if(n<this._left){this._left=n;}if(o<this._top){this._top=o;}if(o>this._bottom){this._bottom=o;}this._width=this._right-this._left;this._height=this._bottom-this._top;}};b.CanvasDrawing=a;m=function(n){m.superclass.constructor.apply(this,arguments);};m.NAME="canvasShape";b.extend(m,b.BaseGraphic,b.mix(b.CanvasDrawing.prototype,{init:function(){this.initializer.apply(this,arguments);},initializer:function(n){var o=this;o._initProps();o.createNode();o._graphic=n.graphic;o._xcoords=[0];o._ycoords=[0];o._updateHandler();},addClass:function(n){var o=b.one(this.get("node"));o.addClass(n);},removeClass:function(n){var o=b.one(this.get("node"));o.removeClass(n);},getXY:function(){var q=this.get("graphic"),o=q.getXY(),n=this.get("x"),p=this.get("y");return[o[0]+n,o[1]+p];},setXY:function(p){var r=this.get("graphic"),o=r.getXY(),n=p[0]-o[0],q=p[1]-o[1];this._set("x",n);this._set("y",q);this._updateNodePosition(n,q);},contains:function(n){return n===b.one(this.node);},test:function(n){return b.one(this.get("node")).test(n);},compareTo:function(n){var o=this.node;return o===n;},_getDefaultFill:function(){return{type:"solid",cx:0.5,cy:0.5,fx:0.5,fy:0.5,r:0.5};},_getDefaultStroke:function(){return{weight:1,dashstyle:"none",color:"#000",opacity:1};},_left:0,_right:0,_top:0,_bottom:0,createNode:function(){var n=b.config.doc.createElement("canvas"),o=this.get("id");this._context=n.getContext("2d");n.setAttribute("overflow","visible");n.style.overflow="visible";n.setAttribute("class","yui3-"+h);n.setAttribute("class","yui3-"+this.name);n.setAttribute("id",o);o="#"+o;this.node=n;},isMouseEvent:function(n){if(n.indexOf("mouse")>-1||n.indexOf("click")>-1){return true;}return false;},before:function(o,n){if(this.isMouseEvent(o)){return b.before(o,n,"#"+this.get("id"));}return b.on.apply(this,arguments);},on:function(o,n){if(this.isMouseEvent(o)){return b.on(o,n,"#"+this.get("id"));}return b.on.apply(this,arguments);},after:function(o,n){if(this.isMouseEvent(o)){return b.after(o,n,"#"+this.get("id"));}return b.on.apply(this,arguments);},_setStrokeProps:function(t){var o=t.color,s=t.weight,r=t.opacity,q=t.linejoin||"round",p=t.linecap||"butt",n=t.dashstyle;this._miterlimit=null;this._dashstyle=(n&&b.Lang.isArray(n)&&n.length>1)?n:null;this._strokeWeight=s;if(s){this._stroke=1;}else{this._stroke=0;}if(r){this._strokeStyle=this._2RGBA(o,r);}else{this._strokeStyle=o;}this._linecap=p;if(q=="round"||q=="square"){this._linejoin=q;}else{q=parseInt(q,10);if(b.Lang.isNumber(q)){this._miterlimit=Math.max(q,1);this._linejoin="miter";}}},set:function(){var n=this,o=arguments[0];f.prototype.set.apply(n,arguments);if(n.initialized&&o!="x"&&o!="y"){n._updateHandler();}},_setFillProps:function(r){var p=b.Lang.isNumber,n=r.color,o,q=r.type;if(q=="linear"||q=="radial"){this._fillType=q;}else{if(n){o=r.opacity;if(p(o)){o=Math.max(0,Math.min(1,o));n=this._2RGBA(n,o);}else{n=this._2RGB(n);}this._fillColor=n;this._fillType="solid";}else{this._fillColor=null;}}},translate:function(n,p){var o="translate("+n+"px, "+p+"px)";this._updateTransform("translate",/translate\(.*\)/,o);},skewX:function(n){},skewY:function(n){},_rotation:0,rotate:function(o){var n="rotate("+o+"deg)";this._rotation=o;this._updateTransform("rotate",/rotate\(.*\)/,n);},_transformOrigin:function(n,p){var o=this.get("node");o.style.MozTransformOrigin=(100*n)+"% "+(100*p)+"%";},scale:function(n){},matrix:function(o,n,s,r,q,p){},_updateTransform:function(p,s,r){var q=this.get("node"),o=q.style.MozTransform||q.style.webkitTransform||q.style.msTransform||q.style.OTransform,n=this.get("transformOrigin");if(o&&o.length>0){if(o.indexOf(p)>-1){o=o.replace(s,r);}else{o+=" "+r;}}else{o=r;}n=(100*n[0])+"% "+(100*n[1])+"%";q.style.MozTransformOrigin=n;q.style.webkitTransformOrigin=n;q.style.msTransformOrigin=n;q.style.OTransformOrigin=n;q.style.MozTransform=o;q.style.webkitTransform=o;q.style.msTransform=o;q.style.OTransform=o;this._graphic.addToRedrawQueue(this);},_updateHandler:function(){this._draw();this._graphic.addToRedrawQueue(this);},_draw:function(){this.clear();this._paint();},_paint:function(){if(!this._methods){return;}var r=this.get("node"),z=this._right-this._left,v=this._bottom-this._top,o=this._context,s=[],p=this._methods.concat(),u=0,t,n,y,q,x=0;this._context.clearRect(0,0,r.width,r.height);if(this._methods){x=p.length;if(!x||x<1){return;}for(;u<x;++u){s[u]=p[u].concat();y=s[u];q=y[0]=="quadraticCurveTo"?y.length:3;for(t=1;t<q;++t){if(t%2===0){y[t]=y[t]-this._top;}else{y[t]=y[t]-this._left;}}}r.setAttribute("width",z);r.setAttribute("height",v);o.beginPath();for(u=0;u<x;++u){y=s[u].concat();if(y&&y.length>0){n=y.shift();if(n){if(n&&n=="lineTo"&&this._dashstyle){y.unshift(this._xcoords[u]-this._left,this._ycoords[u]-this._top);this._drawDashedLine.apply(this,y);}else{o[n].apply(o,y);}}}}if(this._fillType){if(this._fillType=="linear"){o.fillStyle=this._getLinearGradient();}else{if(this._fillType=="radial"){o.fillStyle=this._getRadialGradient();}else{o.fillStyle=this._fillColor;}}o.closePath();o.fill();}if(this._stroke){if(this._strokeWeight){o.lineWidth=this._strokeWeight;}o.lineCap=this._linecap;o.lineJoin=this._linejoin;if(this._miterlimit){o.miterLimit=this._miterlimit;
}o.strokeStyle=this._strokeStyle;o.stroke();}this._drawingComplete=true;this._clearAndUpdateCoords();this._updateNodePosition();this._methods=p;}},_drawDashedLine:function(w,C,n,z){var o=this._context,A=this._dashstyle[0],y=this._dashstyle[1],q=A+y,t=n-w,x=z-C,B=Math.sqrt(Math.pow(t,2)+Math.pow(x,2)),r=Math.floor(Math.abs(B/q)),p=Math.atan2(x,t),v=w,u=C,s;t=Math.cos(p)*q;x=Math.sin(p)*q;for(s=0;s<r;++s){o.moveTo(v,u);o.lineTo(v+Math.cos(p)*A,u+Math.sin(p)*A);v+=t;u+=x;}o.moveTo(v,u);B=Math.sqrt((n-v)*(n-v)+(z-u)*(z-u));if(B>A){o.lineTo(v+Math.cos(p)*A,u+Math.sin(p)*A);}else{if(B>0){o.lineTo(v+Math.cos(p)*B,u+Math.sin(p)*B);}}o.moveTo(n,z);},clear:function(){this._initProps();if(this.node){this._context.clearRect(0,0,this.node.width,this.node.height);}return this;},getBounds:function(){var L=this.get("rotation"),p=Math.PI/180,K=parseFloat(parseFloat(Math.sin(L*p)).toFixed(8)),r=parseFloat(parseFloat(Math.cos(L*p)).toFixed(8)),H=this.get("width"),M=this.get("height"),s=this.get("stroke"),F=this.get("x"),D=this.get("y"),N=F+H,u=D+M,z,t,E,B,I,G,C,o,n=0,P=this.get("translateX"),O=this.get("translateY"),q={},J=this.get("transformOrigin"),A=J[0],v=J[1];if(s&&s.weight){n=s.weight;}if(L!==0){A=F+(A*H);v=D+(v*M);z=this._getRotatedCornerX(F,D,A,v,r,K);t=this._getRotatedCornerY(F,D,A,v,r,K);E=this._getRotatedCornerX(F,u,A,v,r,K);B=this._getRotatedCornerY(F,u,A,v,r,K);I=this._getRotatedCornerX(N,u,A,v,r,K);G=this._getRotatedCornerY(N,u,A,v,r,K);C=this._getRotatedCornerX(N,D,A,v,r,K);o=this._getRotatedCornerY(N,D,A,v,r,K);q.left=Math.min(z,Math.min(E,Math.min(I,C)));q.right=Math.max(z,Math.max(E,Math.max(I,C)));q.top=Math.min(t,Math.min(B,Math.min(G,o)));q.bottom=Math.max(t,Math.max(B,Math.max(G,o)));}else{q.left=F-n+P;q.top=D-n+O;q.right=F+H+n+P;q.bottom=D+M+n+O;}return q;},_getRotatedCornerX:function(o,s,n,r,p,q){return(n+(o-n)*p+(s-r)*q);},_getRotatedCornerY:function(o,s,n,r,p,q){return(r-(o-n)*q+(s-r)*p);},destroy:function(){var o=this.node,n=this._context;if(o){if(n){n.clearRect(0,0,o.width,o.height);}if(this._graphic&&this._graphic._node){this._graphic._node.removeChild(this.node);}}}}));m.ATTRS={transformOrigin:{valueFn:function(){return[0.5,0.5];}},rotation:{setter:function(n){this.rotate(n);},getter:function(){return this._rotation;}},node:{readOnly:true,getter:function(){return this.node;}},id:{valueFn:function(){return b.guid();},setter:function(o){var n=this.node;if(n){n.setAttribute("id",o);}return o;}},width:{value:0},height:{value:0},x:{value:0},y:{value:0},visible:{value:true,setter:function(o){var n=o?"visible":"hidden";this.get("node").style.visibility=n;return o;}},fill:{valueFn:"_getDefaultFill",setter:function(p){var o,n=this.get("fill")||this._getDefaultFill();o=(p)?b.merge(n,p):null;if(o&&o.color){if(o.color===undefined||o.color=="none"){o.color=null;}}this._setFillProps(o);return o;}},stroke:{valueFn:"_getDefaultStroke",setter:function(o){var n=this.get("stroke")||this._getDefaultStroke();o=(o)?b.merge(n,o):null;this._setStrokeProps(o);return o;}},autoSize:{value:false},pointerEvents:{value:"visiblePainted"},graphic:{readOnly:true,getter:function(){return this._graphic;}}};b.CanvasShape=m;l=function(n){l.superclass.constructor.apply(this,arguments);};l.NAME="canvasPath";b.extend(l,b.CanvasShape,{_type:"path",_draw:function(){this._paint();},createNode:function(){var n=b.config.doc.createElement("canvas"),o=this.get("id");this._context=n.getContext("2d");n.setAttribute("overflow","visible");n.setAttribute("pointer-events","none");n.style.pointerEvents="none";n.style.overflow="visible";n.setAttribute("class","yui3-"+h);n.setAttribute("class","yui3-"+this.name);n.setAttribute("id",o);o="#"+o;this.node=n;},end:function(){this._draw();}});l.ATTRS=b.merge(b.CanvasShape.ATTRS,{width:{getter:function(){var n=this._stroke&&this._strokeWeight?(this._strokeWeight*2):0;return this._width-n;},setter:function(n){this._width=n;return n;}},height:{getter:function(){var n=this._stroke&&this._strokeWeight?(this._strokeWeight*2):0;return this._height-n;},setter:function(n){this._height=n;return n;}},path:{readOnly:true,getter:function(){return this._path;}}});b.CanvasPath=l;j=function(){j.superclass.constructor.apply(this,arguments);};j.NAME="canvasRect";b.extend(j,b.CanvasShape,{_type:"rect",_draw:function(){var n=this.get("width"),o=this.get("height");this.clear();this.drawRect(0,0,n,o);this._paint();}});j.ATTRS=b.CanvasShape.ATTRS;b.CanvasRect=j;e=function(n){e.superclass.constructor.apply(this,arguments);};e.NAME="canvasEllipse";b.extend(e,m,{_type:"ellipse",_draw:function(){var n=this.get("width"),o=this.get("height");this.clear();this.drawEllipse(0,0,n,o);this._paint();}});e.ATTRS=m.ATTRS;b.CanvasEllipse=e;g=function(n){g.superclass.constructor.apply(this,arguments);};g.NAME="canvasCircle";b.extend(g,b.CanvasShape,{_type:"circle",_draw:function(){var n=this.get("radius");if(n){this.clear();this.drawCircle(0,0,n);this._paint();}}});g.ATTRS=b.merge(b.CanvasShape.ATTRS,{width:{setter:function(n){this.set("radius",n/2);return n;},getter:function(){return this.get("radius")*2;}},height:{setter:function(n){this.set("radius",n/2);return n;},getter:function(){return this.get("radius")*2;}},radius:{lazyAdd:false}});b.CanvasCircle=g;CanvasPieSlice=function(){CanvasPieSlice.superclass.constructor.apply(this,arguments);};CanvasPieSlice.NAME="canvasPieSlice";b.extend(CanvasPieSlice,b.CanvasPath,{_type:"path",_updateHandler:function(r){var o=this.get("cx"),s=this.get("cy"),q=this.get("startAngle"),p=this.get("arc"),n=this.get("radius");this.clear();this._left=o;this._right=n;this._top=s;this._bottom=n;this.drawWedge(o,s,q,p,n);this._draw();}});CanvasPieSlice.ATTRS=b.mix(b.CanvasPath.ATTRS,{cx:{value:0},cy:{value:0},startAngle:{value:0},arc:{value:0},radius:{value:0}});b.CanvasPieSlice=CanvasPieSlice;function c(n){c.superclass.constructor.apply(this,arguments);}c.NAME="canvasGraphic";c.ATTRS={render:{},id:{valueFn:function(){return b.guid();},setter:function(o){var n=this._node;if(n){n.setAttribute("id",o);
}return o;}},shapes:{readOnly:true,getter:function(){return this._shapes;}},contentBounds:{readOnly:true,getter:function(){return this._contentBounds;}},node:{readOnly:true,getter:function(){return this._node;}},width:{setter:function(n){if(this._node){this._node.style.width=n+"px";}return n;}},height:{setter:function(n){if(this._node){this._node.style.height=n+"px";}return n;}},autoSize:{value:false},resizeDown:{getter:function(){return this._resizeDown;},setter:function(n){this._resizeDown=n;this._redraw();return n;}},x:{getter:function(){return this._x;},setter:function(n){this._x=n;if(this._node){this._node.style.left=n+"px";}return n;}},y:{getter:function(){return this._y;},setter:function(n){this._y=n;if(this._node){this._node.style.top=n+"px";}return n;}},autoDraw:{value:true},visible:{value:true,setter:function(n){this._toggleVisible(n);return n;}}};b.extend(c,b.BaseGraphic,{_x:0,_y:0,getXY:function(){var n=b.one(this._node),o;if(n){o=n.getXY();}return o;},_resizeDown:false,initializer:function(o){var q=this.get("render"),n=this.get("width")||0,p=this.get("height")||0;this._shapes={};this._redrawQueue={};this._contentBounds={left:0,top:0,right:0,bottom:0};this._node=k.createElement("div");this._node.style.position="absolute";this.set("width",n);this.set("height",p);if(q){this.render(q);}},render:function(q){var n=b.one(q),r=this._node,o=this.get("width")||parseInt(n.getComputedStyle("width"),10),p=this.get("height")||parseInt(n.getComputedStyle("height"),10);n=n||k.body;n.appendChild(r);r.style.display="block";r.style.position="absolute";r.style.left="0px";r.style.top="0px";this.set("width",o);this.set("height",p);this.parentNode=n;return this;},destroy:function(){this._removeAllShapes();this._removeChildren(this._node);if(this._node&&this._node.parentNode){this._node.parentNode.removeChild(this._node);}},getShape:function(n){n.graphic=this;var o=new this._shapeClass[n.type](n);this.addShape(o);return o;},addShape:function(o){var p=o.node,n=this._frag||this._node;if(this.get("autoDraw")){n.appendChild(p);}else{this._getDocFrag().appendChild(p);}},removeShape:function(n){if(!(n instanceof m)){if(d.isString(n)){n=this._shapes[n];}}if(n&&n instanceof m){n.destroy();delete this._shapes[n.get("id")];}if(this.get("autoDraw")){this._redraw();}return n;},removeAllShapes:function(){var n=this._shapes,o;for(o in n){if(n.hasOwnProperty(o)){n[o].destroy();}}this._shapes={};},_removeChildren:function(n){if(n.hasChildNodes()){var o;while(n.firstChild){o=n.firstChild;this._removeChildren(o);n.removeChild(o);}}},_toggleVisible:function(q){var p,o=this._shapes,n=q?"visible":"hidden";if(o){for(p in o){if(o.hasOwnProperty(p)){o[p].set("visible",q);}}}this._node.style.visibility=n;},_shapeClass:{circle:b.CanvasCircle,rect:b.CanvasRect,path:b.CanvasPath,ellipse:b.CanvasEllipse,pieslice:b.CanvasPieSlice},getShapeById:function(o){var n=this._shapes[o];return n;},batch:function(o){var n=this.get("autoDraw");this.set("autoDraw",false);o();this._redraw();this.set("autoDraw",n);},_getDocFrag:function(){if(!this._frag){this._frag=k.createDocumentFragment();}return this._frag;},_redraw:function(){var n=this.get("resizeDown")?this._getUpdatedContentBounds():this._contentBounds;if(this.get("autoSize")){this.set("width",n.right);this.set("height",n.bottom);}if(this._frag){this._node.appendChild(this._frag);this._frag=null;}},addToRedrawQueue:function(n){var p,o;this._shapes[n.get("id")]=n;if(!this.get("resizeDown")){p=n.getBounds();o=this._contentBounds;o.left=o.left<p.left?o.left:p.left;o.top=o.top<p.top?o.top:p.top;o.right=o.right>p.right?o.right:p.right;o.bottom=o.bottom>p.bottom?o.bottom:p.bottom;o.width=o.right-o.left;o.height=o.bottom-o.top;this._contentBounds=o;}if(this.get("autoDraw")){this._redraw();}},_getUpdatedContentBounds:function(){var r,p,o,n=this._shapes,q={left:0,top:0,right:0,bottom:0};for(p in n){if(n.hasOwnProperty(p)){o=n[p];r=o.getBounds();q.left=Math.min(q.left,r.left);q.top=Math.min(q.top,r.top);q.right=Math.max(q.right,r.right);q.bottom=Math.max(q.bottom,r.bottom);}}q.width=q.right-q.left;q.height=q.bottom-q.top;this._contentBounds=q;return q;}});b.CanvasGraphic=c;},"@VERSION@",{requires:["graphics"],skinnable:false});