diff --git a/build/charts-base/charts-base-debug.js b/build/charts-base/charts-base-debug.js index 6b4d8c9a2ca..a0969d32da7 100644 --- a/build/charts-base/charts-base-debug.js +++ b/build/charts-base/charts-base-debug.js @@ -3333,7 +3333,7 @@ Y.Axis = Y.Base.create("axis", Y.Widget, [Y.Renderer], { * @type Function */ appendLabelFunction: { - getter: function() + valueFn: function() { return this._setText; } @@ -3354,7 +3354,7 @@ Y.Axis = Y.Base.create("axis", Y.Widget, [Y.Renderer], { * @type Function */ appendTitleFunction: { - getter: function() + valueFn: function() { return this._setText; } @@ -7350,6 +7350,10 @@ Y.CartesianSeries = Y.Base.create("cartesianSeries", Y.Base, [Y.Renderer], { } this._leftOrigin = Math.round(((0 - xMin) * xScaleFactor) + leftPadding + xOffset); this._bottomOrigin = Math.round((dataHeight + topPadding + yOffset)); + if(yMin < 0) + { + this._bottomOrigin = this._bottomOrigin - ((0 - yMin) * yScaleFactor); + } for (; i < dataLength; ++i) { xValue = parseFloat(xData[i]); @@ -7608,11 +7612,24 @@ Y.CartesianSeries = Y.Base.create("cartesianSeries", Y.Base, [Y.Renderer], { * @readOnly */ categoryDisplayName: { - readOnly: true, + lazyAdd: false, getter: function() { return this.get("direction") == "vertical" ? this.get("yDisplayName") : this.get("xDisplayName"); + }, + + setter: function(val) + { + if(this.get("direction") == "vertical") + { + this._yDisplayName = val; + } + else + { + this._xDisplayName = val; + } + return val; } }, @@ -7624,11 +7641,24 @@ Y.CartesianSeries = Y.Base.create("cartesianSeries", Y.Base, [Y.Renderer], { * @readOnly */ valueDisplayName: { - readOnly: true, + lazyAdd: false, getter: function() { return this.get("direction") == "vertical" ? this.get("xDisplayName") : this.get("yDisplayName"); + }, + + setter: function(val) + { + if(this.get("direction") == "vertical") + { + this._xDisplayName = val; + } + else + { + this._yDisplayName = val; + } + return val; } }, @@ -8161,58 +8191,6 @@ Y.SplineSeries = Y.Base.create("splineSeries", Y.LineSeries, [Y.CurveUtil, Y.Li -/** - * AreaSplineSeries renders an area graph with data points connected by a curve. - * - * @module charts - * @class AreaSplineSeries - * @constructor - * @extends CartesianSeries - * @uses Fills - * @uses CurveUtil - */ -Y.AreaSplineSeries = Y.Base.create("areaSplineSeries", Y.CartesianSeries, [Y.Fills, Y.CurveUtil], { - /** - * @protected - * - * Draws the series. - * - * @method drawSeries - */ - drawSeries: function() - { - this.drawAreaSpline(); - } -}, { - ATTRS : { - /** - * Read-only attribute indicating the type of series. - * - * @attribute type - * @type String - * @default areaSpline - */ - type: { - value:"areaSpline" - } - - /** - * Style properties used for drawing area fills. This attribute is inherited from `Renderer`. Below are the default values: - * - *
- *
color
The color of the fill. The default value is determined by the order of the series on the graph. The color will be - * retrieved from the following array: - * `["#66007f", "#a86f41", "#295454", "#996ab2", "#e8cdb7", "#90bdbd","#000000","#c3b8ca", "#968373", "#678585"]` - *
- *
alpha
Number between 0 and 1 that indicates the opacity of the fill. The default value is 1
- *
- * - * @attribute styles - * @type Object - */ - } -}); - /** * StackedSplineSeries creates spline graphs in which the different series are stacked along a value axis * to indicate their contribution to a cumulative total. @@ -8687,6 +8665,58 @@ Y.AreaSeries = Y.Base.create("areaSeries", Y.CartesianSeries, [Y.Fills], { +/** + * AreaSplineSeries renders an area graph with data points connected by a curve. + * + * @module charts + * @class AreaSplineSeries + * @constructor + * @extends CartesianSeries + * @uses Fills + * @uses CurveUtil + */ +Y.AreaSplineSeries = Y.Base.create("areaSplineSeries", Y.AreaSeries, [Y.CurveUtil], { + /** + * @protected + * + * Draws the series. + * + * @method drawSeries + */ + drawSeries: function() + { + this.drawAreaSpline(); + } +}, { + ATTRS : { + /** + * Read-only attribute indicating the type of series. + * + * @attribute type + * @type String + * @default areaSpline + */ + type: { + value:"areaSpline" + } + + /** + * Style properties used for drawing area fills. This attribute is inherited from `Renderer`. Below are the default values: + * + *
+ *
color
The color of the fill. The default value is determined by the order of the series on the graph. The color will be + * retrieved from the following array: + * `["#66007f", "#a86f41", "#295454", "#996ab2", "#e8cdb7", "#90bdbd","#000000","#c3b8ca", "#968373", "#678585"]` + *
+ *
alpha
Number between 0 and 1 that indicates the opacity of the fill. The default value is 1
+ *
+ * + * @attribute styles + * @type Object + */ + } +}); + /** * StackedAreaSplineSeries creates a stacked area chart with points data points connected by a curve. * @@ -13183,6 +13213,7 @@ Y.CartesianChart = Y.Base.create("cartesianChart", Y.Widget, [Y.ChartBase], { series[valAxis] = this._getSeriesAxis(series[seriesKey]); series.type = series.type || type; + series.direction = series.direction || dir; if((series.type == "combo" || series.type == "stackedcombo" || series.type == "combospline" || series.type == "stackedcombospline")) { @@ -13364,6 +13395,8 @@ Y.CartesianChart = Y.Base.create("cartesianChart", Y.Widget, [Y.ChartBase], { labelFunction:"labelFunction", labelFunctionScope:"labelFunctionScope", labelFormat:"labelFormat", + appendLabelFunction: "appendLabelFunction", + appendTitleFunction: "appendTitleFunction", maximum:"maximum", minimum:"minimum", roundingMethod:"roundingMethod", diff --git a/build/charts-base/charts-base-min.js b/build/charts-base/charts-base-min.js index b985822858b..a5f42b162ba 100644 --- a/build/charts-base/charts-base-min.js +++ b/build/charts-base/charts-base-min.js @@ -2,20 +2,20 @@ YUI.add("charts-base",function(b){var A=b.config,v=A.win,g=A.doc,q=b.Lang,m=q.is if(this._explicitWidth){D=this._explicitWidth;}this.set("calculatedWidth",D);K.set("x",D-J);}};b.LeftAxisLayout=k;p=function(){};p.prototype={_getDefaultMargins:function(){return{top:0,left:4,right:0,bottom:0};},setTickOffsets:function(){var F=this,H=F.get("styles").majorTicks,E=H.length,D=E*0.5,G=H.display;F.set("topTickOffset",0);F.set("bottomTickOffset",0);switch(G){case"inside":F.set("leftTickOffset",E);F.set("rightTickOffset",0);break;case"outside":F.set("leftTickOffset",0);F.set("rightTickOffset",E);break;case"cross":F.set("rightTickOffset",D);F.set("leftTickOffset",D);break;default:F.set("leftTickOffset",0);F.set("rightTickOffset",0);break;}},drawTick:function(K,L,G){var J=this,D=J.get("styles"),I=D.padding,H=G.length,E={x:I.left,y:L.y},F={x:I.left+H,y:L.y};J.drawLine(K,E,F);},getLineStart:function(){var F=this,D=F.get("styles"),I=D.padding,J=D.majorTicks,E=J.length,H=J.display,G={x:I.left,y:I.top};if(H==="inside"){G.x+=E;}else{if(H==="cross"){G.x+=E/2;}}return G;},getLabelPoint:function(D){return{x:D.x+this.get("rightTickOffset"),y:D.y};},updateMaxLabelSize:function(H,F){var L=this,I=this._labelRotationProps,D=I.rot,G=I.absRot,K=I.sinRadians,E=I.cosRadians,J;if(D===0){J=H;}else{if(G===90){J=F;}else{J=(E*H)+(K*F);}}L._maxLabelSize=Math.max(L._maxLabelSize,J);},getExplicitlySized:function(G){if(this._explicitWidth){var F=this,D=F._explicitWidth,E=this._totalTitleSize,I=F.get("rightTickOffset"),H=G.label.margin.right;F._maxLabelSize=D-(I+H+E);return true;}return false;},positionTitle:function(K){var M=this,D=M._titleBounds,E=M.get("styles").title.margin,H=M._titleRotationProps,G=K.offsetWidth,F=K.offsetHeight,L=D.right-D.left,J=this.get("width")-(G*0.5)-(L*0.5),I=(M.get("height")*0.5)-(F*0.5);H.labelWidth=G;H.labelHeight=F;if(E&&E.right){J-=E.left;}H.x=J;H.y=I;H.transformOrigin=[0.5,0.5];M._rotate(K,H);},positionLabel:function(N,R,P,I){var Q=this,O=Q.get("rightTickOffset"),M=P.label,F=0,E=R.x,J=R.y,L=this._labelRotationProps,D=L.rot,H=L.absRot,K=this._labelWidths[I],G=this._labelHeights[I];if(M.margin&&M.margin.left){F=M.margin.left;}if(D===0){J-=G*0.5;}else{if(D===90){E-=K*0.5;J-=G;}else{if(D===-90){E-=K*0.5;}else{J-=G*0.5;E+=G/2*H/90;}}}E+=F;E+=O;L.labelWidth=K;L.labelHeight=G;L.x=Math.round(E);L.y=Math.round(J);this._rotate(N,L);},_setRotationCoords:function(H){var E=H.rot,F=H.absRot,I=0,G=0,D=H.labelWidth,J=H.labelHeight;if(E===0){G=J*0.5;}else{if(E===90){I=D*0.5;G=J;}else{if(E===-90){I=D*0.5;}else{G=J*0.5;I=J/2*F/90;}}}H.x-=I;H.y-=G;},_getTransformOrigin:function(D){var E;if(D===0){E=[0,0];}else{if(D===90){E=[0.5,1];}else{if(D===-90){E=[0.5,0];}else{E=[0,0.5];}}}return E;},offsetNodeForTick:function(D){var E=this,G=E.get("leftTickOffset"),F=0-G;D.setStyle("left",F);},setCalculatedSize:function(){var H=this,G=H.get("styles"),E=G.label,F=this._totalTitleSize,D=Math.round(H.get("rightTickOffset")+H._maxLabelSize+F+E.margin.left);if(this._explicitWidth){D=this._explicitWidth;}H.set("calculatedWidth",D);H.get("contentBox").setStyle("width",D);}};b.RightAxisLayout=p;u=function(){};u.prototype={_getDefaultMargins:function(){return{top:4,left:0,right:0,bottom:0};},setTickOffsets:function(){var F=this,H=F.get("styles").majorTicks,E=H.length,D=E*0.5,G=H.display;F.set("leftTickOffset",0);F.set("rightTickOffset",0);switch(G){case"inside":F.set("topTickOffset",E);F.set("bottomTickOffset",0);break;case"outside":F.set("topTickOffset",0);F.set("bottomTickOffset",E);break;case"cross":F.set("topTickOffset",D);F.set("bottomTickOffset",D);break;default:F.set("topTickOffset",0);F.set("bottomTickOffset",0);break;}},getLineStart:function(){var D=this.get("styles"),H=D.padding,I=D.majorTicks,E=I.length,G=I.display,F={x:0,y:H.top};if(G==="inside"){F.y+=E;}else{if(G==="cross"){F.y+=E/2;}}return F;},drawTick:function(K,L,G){var J=this,D=J.get("styles"),I=D.padding,H=G.length,E={x:L.x,y:I.top},F={x:L.x,y:H+I.top};J.drawLine(K,E,F);},getLabelPoint:function(D){return{x:D.x,y:D.y+this.get("bottomTickOffset")};},updateMaxLabelSize:function(H,F){var L=this,I=this._labelRotationProps,D=I.rot,G=I.absRot,K=I.sinRadians,E=I.cosRadians,J;if(D===0){J=F;}else{if(G===90){J=H;}else{J=(K*H)+(E*F);}}L._maxLabelSize=Math.max(L._maxLabelSize,J);},getExplicitlySized:function(H){if(this._explicitHeight){var G=this,E=G._explicitHeight,D=G._totalTitleSize,F=G.get("bottomTickOffset"),I=H.label.margin.right;G._maxLabelSize=E-(F+I+D);return true;}return false;},positionTitle:function(L){var M=this,D=M._titleBounds,E=M.get("styles").title.margin,I=M._titleRotationProps,G=D.bottom-D.top,H=L.offsetWidth,F=L.offsetHeight,K=(M.get("width")*0.5)-(H*0.5),J=M.get("height")-F/2-G/2;I.labelWidth=H;I.labelHeight=F;if(E&&E.bottom){J-=E.bottom;}I.x=K;I.y=J;I.transformOrigin=[0.5,0.5];M._rotate(L,I);},positionLabel:function(N,R,P,I){var Q=this,O=Q.get("bottomTickOffset"),M=P.label,F=0,L=Q._labelRotationProps,E=L.rot,H=L.absRot,D=Math.round(R.x),J=Math.round(R.y),K=Q._labelWidths[I],G=Q._labelHeights[I];if(M.margin&&M.margin.top){F=M.margin.top;}if(E>0){J-=G/2*E/90;}else{if(E<0){D-=K;J-=G/2*H/90;}else{D-=K*0.5;}}J+=F;J+=O;L.labelWidth=K;L.labelHeight=G;L.x=D;L.y=J;Q._rotate(N,L);},_setRotationCoords:function(H){var E=H.rot,F=H.absRot,D=H.labelWidth,J=H.labelHeight,I,G;if(E>0){I=0;G=J/2*E/90;}else{if(E<0){I=D;G=J/2*F/90;}else{I=D*0.5;G=0;}}H.x-=I;H.y-=G;},_getTransformOrigin:function(D){var E;if(D>0){E=[0,0.5];}else{if(D<0){E=[1,0.5];}else{E=[0,0];}}return E;},offsetNodeForTick:function(D){var E=this;E.get("contentBox").setStyle("top",0-E.get("topTickOffset"));},setCalculatedSize:function(){var H=this,G=H.get("styles"),E=G.label,F=H._totalTitleSize,D=Math.round(H.get("bottomTickOffset")+H._maxLabelSize+E.margin.top+F);if(H._explicitHeight){D=H._explicitHeight;}H.set("calculatedHeight",D);}};b.BottomAxisLayout=u;a=function(){};a.prototype={_getDefaultMargins:function(){return{top:0,left:0,right:0,bottom:4};},setTickOffsets:function(){var F=this,H=F.get("styles").majorTicks,E=H.length,D=E*0.5,G=H.display;F.set("leftTickOffset",0);F.set("rightTickOffset",0); switch(G){case"inside":F.set("bottomTickOffset",E);F.set("topTickOffset",0);break;case"outside":F.set("bottomTickOffset",0);F.set("topTickOffset",E);break;case"cross":F.set("topTickOffset",D);F.set("bottomTickOffset",D);break;default:F.set("topTickOffset",0);F.set("bottomTickOffset",0);break;}},getLineStart:function(){var F=this,D=F.get("styles"),I=D.padding,J=D.majorTicks,E=J.length,H=J.display,G={x:0,y:I.top};if(H==="outside"){G.y+=E;}else{if(H==="cross"){G.y+=E/2;}}return G;},drawTick:function(K,L,G){var J=this,D=J.get("styles"),I=D.padding,H=G.length,E={x:L.x,y:I.top},F={x:L.x,y:H+I.top};J.drawLine(K,E,F);},getLabelPoint:function(D){return{x:D.x,y:D.y-this.get("topTickOffset")};},updateMaxLabelSize:function(H,F){var L=this,I=this._labelRotationProps,D=I.rot,G=I.absRot,K=I.sinRadians,E=I.cosRadians,J;if(D===0){J=F;}else{if(G===90){J=H;}else{J=(K*H)+(E*F);}}L._maxLabelSize=Math.max(L._maxLabelSize,J);},getExplicitlySized:function(G){if(this._explicitHeight){var F=this,E=F._explicitHeight,D=F._totalTitleSize,I=F.get("topTickOffset"),H=G.label.margin.right;F._maxLabelSize=E-(I+H+D);return true;}return false;},positionTitle:function(L){var M=this,D=M._titleBounds,E=M.get("styles").title.margin,I=M._titleRotationProps,H=L.offsetWidth,F=L.offsetHeight,G=D.bottom-D.top,K=(M.get("width")*0.5)-(H*0.5),J=G/2-F/2;I.labelWidth=H;I.labelHeight=F;if(E&&E.top){J+=E.top;}I.x=K;I.y=J;I.transformOrigin=[0.5,0.5];M._rotate(L,I);},positionLabel:function(N,Q,O,I){var P=this,K=this._totalTitleSize,D=P._maxLabelSize,F=Q.x,J=Q.y+K+D,M=this._labelRotationProps,E=M.rot,H=M.absRot,L=this._labelWidths[I],G=this._labelHeights[I];if(E===0){F-=L*0.5;J-=G;}else{if(E===90){F-=L;J-=(G*0.5);}else{if(E===-90){J-=(G*0.5);}else{if(E>0){F-=L;J-=G-(G*E/180);}else{J-=G-(G*H/180);}}}}M.x=Math.round(F);M.y=Math.round(J);M.labelWidth=L;M.labelHeight=G;this._rotate(N,M);},_setRotationCoords:function(H){var E=H.rot,F=H.absRot,D=H.labelWidth,J=H.labelHeight,I,G;if(E===0){I=D*0.5;G=J;}else{if(E===90){I=D;G=(J*0.5);}else{if(E===-90){G=(J*0.5);}else{if(E>0){I=D;G=J-(J*E/180);}else{G=J-(J*F/180);}}}}H.x-=I;H.y-=G;},_getTransformOrigin:function(D){var E;if(D===0){E=[0,0];}else{if(D===90){E=[1,0.5];}else{if(D===-90){E=[0,0.5];}else{if(D>0){E=[1,0.5];}else{E=[0,0.5];}}}}return E;},offsetNodeForTick:function(D){},setCalculatedSize:function(){var H=this,K=H.get("graphic"),G=H.get("styles"),F=G.label.margin,J=F.bottom+H._maxLabelSize,E=H._totalTitleSize,I=this.get("topTickOffset"),D=Math.round(I+J+E);if(this._explicitHeight){D=this._explicitWidth;}H.set("calculatedHeight",D);K.set("y",D-I);}};b.TopAxisLayout=a;b.Axis=b.Base.create("axis",b.Widget,[b.Renderer],{_calculatedWidth:0,_calculatedHeight:0,_dataChangeHandler:function(D){if(this.get("rendered")){this._drawAxis();}},_positionChangeHandler:function(D){this._updateGraphic(D.newVal);this._updateHandler();},_updateGraphic:function(D){var E=this.get("graphic");if(D=="none"){if(E){E.destroy();}}else{if(!E){this._setCanvas();}}},_updateHandler:function(D){if(this.get("rendered")){this._drawAxis();}},renderUI:function(){this._updateGraphic(this.get("position"));},syncUI:function(){var H=this._layout,G,F,D,I,E;if(H){G=H._getDefaultMargins();F=this.get("styles");D=F.label.margin;I=F.title.margin;for(E in G){if(G.hasOwnProperty(E)){D[E]=D[E]===undefined?G[E]:D[E];I[E]=I[E]===undefined?G[E]:I[E];}}}this._drawAxis();},_setCanvas:function(){var D=this.get("contentBox"),I=this.get("boundingBox"),H=this.get("position"),F=this._parentNode,E=this.get("width"),G=this.get("height");I.setStyle("position","absolute");I.setStyle("zIndex",2);E=E?E+"px":F.getStyle("width");G=G?G+"px":F.getStyle("height");if(H==="top"||H==="bottom"){D.setStyle("width",E);}else{D.setStyle("height",G);}D.setStyle("position","relative");D.setStyle("left","0px");D.setStyle("top","0px");this.set("graphic",new b.Graphic());this.get("graphic").render(D);},_getDefaultStyles:function(){var D={majorTicks:{display:"inside",length:4,color:"#dad8c9",weight:1,alpha:1},minorTicks:{display:"none",length:2,color:"#dad8c9",weight:1},line:{weight:1,color:"#dad8c9",alpha:1},majorUnit:{determinant:"count",count:11,distance:75},top:"0px",left:"0px",width:"100px",height:"100px",label:{color:"#808080",alpha:1,fontSize:"85%",rotation:0,margin:{top:undefined,right:undefined,bottom:undefined,left:undefined}},title:{color:"#808080",alpha:1,fontSize:"85%",rotation:undefined,margin:{top:undefined,right:undefined,bottom:undefined,left:undefined}},hideOverlappingLabelTicks:false};return b.merge(b.Renderer.prototype._getDefaultStyles(),D);},_handleSizeChange:function(G){var F=G.attrName,I=this.get("position"),E=I=="left"||I=="right",D=this.get("contentBox"),H=I=="bottom"||I=="top";D.setStyle("width",this.get("width"));D.setStyle("height",this.get("height"));if((H&&F=="width")||(E&&F=="height")){this._drawAxis();}},_layoutClasses:{top:a,bottom:u,left:k,right:p},drawLine:function(F,E,D){F.moveTo(E.x,E.y);F.lineTo(D.x,D.y);},_getTextRotationProps:function(H){if(H.rotation===undefined){switch(this.get("position")){case"left":H.rotation=-90;break;case"right":H.rotation=90;break;default:H.rotation=0;break;}}var E=Math.min(90,Math.max(-90,H.rotation)),G=Math.abs(E),F=Math.PI/180,I=parseFloat(parseFloat(Math.sin(G*F)).toFixed(8)),D=parseFloat(parseFloat(Math.cos(G*F)).toFixed(8));return{rot:E,absRot:G,radCon:F,sinRadians:I,cosRadians:D,textAlpha:H.alpha};},_drawAxis:function(){if(this._drawing){this._callLater=true;return;}this._drawing=true;this._callLater=false;if(this._layout){var L=this.get("styles"),N=L.line,J=L.label,Z=L.majorTicks,D=Z.display!="none",M,G=L.majorUnit,W,U,V=0,X=this._layout,T,aa,P,K,Y,E,I=this.get("labelFunction"),F=this.get("labelFunctionScope"),H=this.get("labelFormat"),O=this.get("graphic"),Q=this.get("path"),R,S;this._labelWidths=[];this._labelHeights=[];O.set("autoDraw",false);Q.clear();Q.set("stroke",{weight:N.weight,color:N.color,opacity:N.alpha});this._labelRotationProps=this._getTextRotationProps(J);this._labelRotationProps.transformOrigin=X._getTransformOrigin(this._labelRotationProps.rot); X.setTickOffsets.apply(this);T=this.getLength();P=X.getLineStart.apply(this);W=this.getTotalMajorUnits(G);U=this.getMajorUnitDistance(W,T,G);this.set("edgeOffset",this.getEdgeOffset(W,T)*0.5);if(W<1){this._clearLabelCache();}else{M=this.getFirstPoint(P);this.drawLine(Q,P,this.getLineEnd(M));if(D){R=this.get("tickPath");R.clear();R.set("stroke",{weight:Z.weight,color:Z.color,opacity:Z.alpha});X.drawTick.apply(this,[R,M,Z]);}this._createLabelCache();this._tickPoints=[];this._maxLabelSize=0;this._totalTitleSize=0;this._titleSize=0;this._setTitle();S=X.getExplicitlySized.apply(this,[L]);for(;V0){D=H.shift();}else{D=g.createElement("span");D.className=b.Lang.trim([D.className,"axisLabel"].join(" "));this.get("contentBox").append(D);}if(!g.createElementNS){if(D.style.filter){D.style.filter=null;}}D.style.display="block";D.style.whiteSpace="nowrap";D.style.position="absolute";for(E in G){if(G.hasOwnProperty(E)&&!F.hasOwnProperty(E)){D.style[E]=G[E];}}return D;},_createLabelCache:function(){if(this._labels){while(this._labels.length>0){this._labelCache.push(this._labels.shift());}}else{this._clearLabelCache();}this._labels=[];},_clearLabelCache:function(){if(this._labelCache){var D=this._labelCache.length,F=0,E;for(;F-1&&!isNaN(M)){F="progid:DXImageTransform.Microsoft.Alpha(Opacity="+Math.round(M*100)+")";}if(D!==0){K.rotate(D);H=K.getContentRect(G.labelWidth,G.labelHeight);K.init();K.translate(H.left,H.top);K.translate(L,I);this._simulateRotateWithTransformOrigin(K,D,E,G.labelWidth,G.labelHeight);if(F){F+=" ";}else{F="";}F+=K.toFilterText();J.style.left=K.dx+"px";J.style.top=K.dy+"px";}else{J.style.left=L+"px";J.style.top=I+"px";}if(F){J.style.filter=F;}}},_simulateRotateWithTransformOrigin:function(F,E,G,D,H){var J=G[0]*D,I=G[1]*H;J=!isNaN(J)?J:0;I=!isNaN(I)?I:0;F.translate(J,I);F.rotate(E);F.translate(-J,-I);},getMaxLabelBounds:function(){return this._getLabelBounds(this.getMaximumValue()); -},getMinLabelBounds:function(){return this._getLabelBounds(this.getMinimumValue());},_getLabelBounds:function(I){var H=this._layout,G=this.get("styles").label,D=new b.Matrix(),E,F=this._getTextRotationProps(G);F.transformOrigin=H._getTransformOrigin(F.rot);E=this.getLabel({x:0,y:0},G);this.get("appendLabelFunction")(E,this.get("labelFunction").apply(this,[I,this.get("labelFormat")]));F.labelWidth=E.offsetWidth;F.labelHeight=E.offsetHeight;this._removeChildren(E);b.Event.purgeElement(E,true);E.parentNode.removeChild(E);F.x=0;F.y=0;H._setRotationCoords(F);D.translate(F.x,F.y);this._simulateRotateWithTransformOrigin(D,F.rot,F.transformOrigin,F.labelWidth,F.labelHeight);return D.getContentRect(F.labelWidth,F.labelHeight);},_removeChildren:function(D){if(D.hasChildNodes()){var E;while(D.firstChild){E=D.firstChild;this._removeChildren(E);D.removeChild(E);}}},destructor:function(){var E=this.get("contentBox").getDOMNode(),H=this.get("labels"),G=this.get("graphic"),F,D=H?H.length:0;if(D>0){while(H.length>0){F=H.shift();this._removeChildren(F);E.removeChild(F);F=null;}}if(G){G.destroy();}},_maxLabelSize:0,_setText:function(D,E){D.innerHTML="";if(q.isNumber(E)){E=E+"";}else{if(!E){E="";}}if(m(E)){E=g.createTextNode(E);}D.appendChild(E);}},{ATTRS:{width:{lazyAdd:false,getter:function(){if(this._explicitWidth){return this._explicitWidth;}return this._calculatedWidth;},setter:function(D){this._explicitWidth=D;return D;}},height:{lazyAdd:false,getter:function(){if(this._explicitHeight){return this._explicitHeight;}return this._calculatedHeight;},setter:function(D){this._explicitHeight=D;return D;}},calculatedWidth:{getter:function(){return this._calculatedWidth;},setter:function(D){this._calculatedWidth=D;return D;}},calculatedHeight:{getter:function(){return this._calculatedHeight;},setter:function(D){this._calculatedHeight=D;return D;}},edgeOffset:{value:0},graphic:{},path:{readOnly:true,getter:function(){if(!this._path){var D=this.get("graphic");if(D){this._path=D.addShape({type:"path"});}}return this._path;}},tickPath:{readOnly:true,getter:function(){if(!this._tickPath){var D=this.get("graphic");if(D){this._tickPath=D.addShape({type:"path"});}}return this._tickPath;}},node:{},position:{setter:function(E){var D=this._layoutClasses[E];if(E&&E!="none"){this._layout=new D();}return E;}},topTickOffset:{value:0},bottomTickOffset:{value:0},leftTickOffset:{value:0},rightTickOffset:{value:0},labels:{readOnly:true,getter:function(){return this._labels;}},tickPoints:{readOnly:true,getter:function(){if(this.get("position")=="none"){return this.get("styles").majorUnit.count;}return this._tickPoints;}},overlapGraph:{value:true,validator:function(D){return q.isBoolean(D);}},labelFunctionScope:{},maxLabelSize:{getter:function(){return this._maxLabelSize;},setter:function(D){this._maxLabelSize=D;return D;}},title:{value:null},labelFunction:{value:function(E,D){return E;}},appendLabelFunction:{getter:function(){return this._setText;}},appendTitleFunction:{getter:function(){return this._setText;}}}});b.AxisType=b.Base.create("baseAxis",b.Axis,[],{initializer:function(){this.after("dataReady",b.bind(this._dataChangeHandler,this));this.after("dataUpdate",b.bind(this._dataChangeHandler,this));this.after("minimumChange",b.bind(this._keyChangeHandler,this));this.after("maximumChange",b.bind(this._keyChangeHandler,this));this.after("keysChange",this._keyChangeHandler);this.after("dataProviderChange",this._dataProviderChangeHandler);this.after("alwaysShowZeroChange",this._keyChangeHandler);this.after("roundingMethodChange",this._keyChangeHandler);},bindUI:function(){this.after("stylesChange",this._updateHandler);this.after("overlapGraphChange",this._updateHandler);this.after("positionChange",this._positionChangeHandler);this.after("widthChange",this._handleSizeChange);this.after("heightChange",this._handleSizeChange);this.after("calculatedWidthChange",this._handleSizeChange);this.after("calculatedHeightChange",this._handleSizeChange);},_dataProviderChangeHandler:function(G){var D=this.get("keyCollection").concat(),F=this.get("keys"),E;if(F){for(E in F){if(F.hasOwnProperty(E)){delete F[E];}}}if(D&&D.length){this.set("keys",D);}},GUID:"yuibaseaxis",_type:null,_setMaximum:null,_dataMaximum:null,_setMinimum:null,_data:null,_updateTotalDataFlag:true,_dataReady:false,addKey:function(D){this.set("keys",D);},_getKeyArray:function(G,H){var F=0,I,E=[],D=H.length;for(;F0){D=I.length;E=H=I[0];if(D>1){for(G=1;G0){while(H.length>0){F=H.shift();this._removeChildren(F);E.removeChild(F);F=null;}}if(G){G.destroy();}},_maxLabelSize:0,_setText:function(D,E){D.innerHTML="";if(q.isNumber(E)){E=E+"";}else{if(!E){E="";}}if(m(E)){E=g.createTextNode(E);}D.appendChild(E);}},{ATTRS:{width:{lazyAdd:false,getter:function(){if(this._explicitWidth){return this._explicitWidth;}return this._calculatedWidth;},setter:function(D){this._explicitWidth=D;return D;}},height:{lazyAdd:false,getter:function(){if(this._explicitHeight){return this._explicitHeight;}return this._calculatedHeight;},setter:function(D){this._explicitHeight=D;return D;}},calculatedWidth:{getter:function(){return this._calculatedWidth;},setter:function(D){this._calculatedWidth=D;return D;}},calculatedHeight:{getter:function(){return this._calculatedHeight;},setter:function(D){this._calculatedHeight=D;return D;}},edgeOffset:{value:0},graphic:{},path:{readOnly:true,getter:function(){if(!this._path){var D=this.get("graphic");if(D){this._path=D.addShape({type:"path"});}}return this._path;}},tickPath:{readOnly:true,getter:function(){if(!this._tickPath){var D=this.get("graphic");if(D){this._tickPath=D.addShape({type:"path"});}}return this._tickPath;}},node:{},position:{setter:function(E){var D=this._layoutClasses[E];if(E&&E!="none"){this._layout=new D();}return E;}},topTickOffset:{value:0},bottomTickOffset:{value:0},leftTickOffset:{value:0},rightTickOffset:{value:0},labels:{readOnly:true,getter:function(){return this._labels;}},tickPoints:{readOnly:true,getter:function(){if(this.get("position")=="none"){return this.get("styles").majorUnit.count;}return this._tickPoints;}},overlapGraph:{value:true,validator:function(D){return q.isBoolean(D);}},labelFunctionScope:{},maxLabelSize:{getter:function(){return this._maxLabelSize;},setter:function(D){this._maxLabelSize=D;return D;}},title:{value:null},labelFunction:{value:function(E,D){return E;}},appendLabelFunction:{valueFn:function(){return this._setText;}},appendTitleFunction:{valueFn:function(){return this._setText;}}}});b.AxisType=b.Base.create("baseAxis",b.Axis,[],{initializer:function(){this.after("dataReady",b.bind(this._dataChangeHandler,this));this.after("dataUpdate",b.bind(this._dataChangeHandler,this));this.after("minimumChange",b.bind(this._keyChangeHandler,this));this.after("maximumChange",b.bind(this._keyChangeHandler,this));this.after("keysChange",this._keyChangeHandler);this.after("dataProviderChange",this._dataProviderChangeHandler);this.after("alwaysShowZeroChange",this._keyChangeHandler);this.after("roundingMethodChange",this._keyChangeHandler);},bindUI:function(){this.after("stylesChange",this._updateHandler);this.after("overlapGraphChange",this._updateHandler);this.after("positionChange",this._positionChangeHandler);this.after("widthChange",this._handleSizeChange);this.after("heightChange",this._handleSizeChange);this.after("calculatedWidthChange",this._handleSizeChange);this.after("calculatedHeightChange",this._handleSizeChange);},_dataProviderChangeHandler:function(G){var D=this.get("keyCollection").concat(),F=this.get("keys"),E;if(F){for(E in F){if(F.hasOwnProperty(E)){delete F[E];}}}if(D&&D.length){this.set("keys",D);}},GUID:"yuibaseaxis",_type:null,_setMaximum:null,_dataMaximum:null,_setMinimum:null,_data:null,_updateTotalDataFlag:true,_dataReady:false,addKey:function(D){this.set("keys",D);},_getKeyArray:function(G,H){var F=0,I,E=[],D=H.length;for(;F0){D=I.length;E=H=I[0];if(D>1){for(G=1;G=H){E=Math.floor((G/2-H)/(Math.pow(10,D-1)/2));H=G/2-E*Math.pow(10,D-1)/2;}else{H=G;}if(!isNaN(H)){return H;}return F;},_updateMinAndMax:function(){var E=this.get("data"),J,D,H,G,F=0,K,L=this.get("setMax"),I=this.get("setMin");if(!L||!I){if(E&&E.length&&E.length>0){H=E.length;for(;F=0,G=M>0,U,D,R,L,N,T,Q,I=this.getTotalMajorUnits()-1,O=this.get("alwaysShowZero"),F=this.get("roundingMethod"),H=(M-J)/I>=1;if(F){if(F=="niceNumber"){E=this._getMinimumUnit(M,J,I);if(S&&G){if((O||J=0){N--;L++;T=Math.ceil(M/L);Q=Math.floor(J/N)*-1;}if(N>0){M=Q*L;}else{M=J+(E*I);}}else{if(P){while(T=0){N++;L--;Q=Math.floor(J/N)*-1;T=Math.ceil(M/L);}if(L>0){J=T*N*-1;}else{J=M-(E*I);}}else{E=Math.max(T,Q);E=this._getNiceNumber(E);M=E*L;J=E*N*-1;}}}else{if(P){J=M-(E*I);}else{if(K){M=J+(E*I);}else{J=this._roundDownToNearest(J,E);M=this._roundUpToNearest(M,E);}}}}else{if(K){if(O){M=0;}else{M=J+(E*I);}}else{if(!P){if(O||M===0||M+E>0){M=0;E=this._getMinimumUnit(M,J,I);J=M-(E*I);}else{J=this._roundDownToNearest(J,E);M=this._roundUpToNearest(M,E);}}else{J=M-(E*I);}}}}}else{if(F=="auto"){if(S&&G){if((O||J<(M-J)/I)&&!K){J=0;}E=(M-J)/I;if(H){E=Math.ceil(E);}M=J+(E*I);}else{if(G&&!S){if(O){L=Math.round(I/((-1*J)/M+1));L=Math.max(Math.min(L,I-1),1);N=I-L;if(H){T=Math.ceil(M/L);Q=Math.floor(J/N)*-1;}else{T=M/L;Q=J/N*-1;}E=Math.max(T,Q);M=E*L;J=E*N*-1;}else{E=(M-J)/I;if(H){E=Math.ceil(E);}J=this._roundDownToNearest(J,E);M=this._roundUpToNearest(M,E);}}else{E=(M-J)/I;if(H){E=Math.ceil(E);}if(O||M===0||M+E>0){M=0;E=(M-J)/I;if(H){Math.ceil(E);}J=M-(E*I);}else{J=this._roundDownToNearest(J,E);M=this._roundUpToNearest(M,E);}}}}else{if(!isNaN(F)&&isFinite(F)){E=F;V=E*I;U=(M-J)>V;R=this._roundDownToNearest(J,E);D=this._roundUpToNearest(M,E);if(P){J=M-V;}else{if(K){M=J+V;}else{if(S&&G){if(O||R<=0){J=0;}else{J=R;}M=J+V;}else{if(G&&!S){J=R;M=D;}else{if(O||D>=0){M=0;}else{M=D;}J=M-V;}}}}}}}}this._dataMaximum=M;this._dataMinimum=J;},getLabelByIndex:function(H,E){var G=this.get("minimum"),D=this.get("maximum"),J=(D-G)/(E-1),F,I=this.get("roundingMethod");E-=1;if(H===0){F=G;}else{if(H===E){F=D;}else{F=(H*J);if(I=="niceNumber"){F=this._roundToNearest(F,J);}F+=G;}}return parseFloat(F);},_roundToNearest:function(F,E){E=E||1;if(E===0){return F;}var D=Math.round(this._roundToPrecision(F/E,10))*E;return this._roundToPrecision(D,10);},_roundUpToNearest:function(E,D){D=D||1;if(D===0){return E;}return Math.ceil(this._roundToPrecision(E/D,10))*D;},_roundDownToNearest:function(E,D){D=D||1;if(D===0){return E;}return Math.floor(this._roundToPrecision(E/D,10))*D;},_roundToPrecision:function(F,D){D=D||0;var E=Math.pow(10,D);return Math.round(E*F)/E;},_hasDataOverflow:function(){var F,E,D;if(this.get("setMin")||this.get("setMax")){return true;}F=this.get("roundingMethod"); E=this._actualMinimum;D=this._actualMaximum;if(q.isNumber(F)&&((q.isNumber(D)&&D>this._dataMaximum)||(q.isNumber(E)&&E=0){J+=G;}else{D+=G;}}}if(J>0){K=Math.max(K,J);}else{K=Math.max(K,D);}if(D<0){E=Math.min(E,D);}else{E=Math.min(E,J);}}this._actualMaximum=K;this._actualMinimum=E;if(N){K=this._setMaximum;}if(I){E=this._setMinimum;}this._roundMinAndMax(E,K,I,N);}});b.StackedAxis=e;function d(D){d.superclass.constructor.apply(this,arguments);}d.NAME="timeAxis";d.ATTRS={setMax:{readOnly:true,getter:function(){var D=this._getNumber(this._setMaximum);return(q.isNumber(D));}},setMin:{readOnly:true,getter:function(){var D=this._getNumber(this._setMinimum);return(q.isNumber(D));}},maximum:{getter:function(){var D=this._getNumber(this._setMaximum);if(!q.isNumber(D)){D=this._getNumber(this.get("dataMaximum"));}return parseFloat(D);},setter:function(D){this._setMaximum=this._getNumber(D);return D;}},minimum:{getter:function(){var D=this._getNumber(this._setMinimum);if(!q.isNumber(D)){D=this._getNumber(this.get("dataMinimum"));}return parseFloat(D);},setter:function(D){this._setMinimum=this._getNumber(D);return D;}},labelFunction:{value:function(E,D){E=b.DataType.Date.parse(E);if(D){return b.DataType.Date.format(E,{format:D});}return E;}},labelFormat:{value:"%b %d, %y"}};b.extend(d,b.AxisType,{formatLabel:function(E,D){E=b.DataType.Date.parse(E);if(D){return b.DataType.Date.format(E,{format:D});}return E;},GUID:"yuitimeaxis",_dataType:"time",getLabelByIndex:function(I,F){var H=this.get("minimum"),E=this.get("maximum"),D=this.get("position"),J,G;F-=1;J=((E-H)/F)*I;if(D=="bottom"||D=="top"){G=H+J;}else{G=E-J;}return G;},_getKeyArray:function(G,H){var I,E=[],F=0,J,D=H.length;for(;FF){R.lineTo(M+Math.cos(G)*F,L+Math.sin(G)*F);}else{if(Q>0){R.lineTo(M+Math.cos(G)*Q,L+Math.sin(G)*Q);}}R.moveTo(D,P);},_getLineDefaults:function(){return{alpha:1,weight:6,lineType:"solid",dashLength:10,gapSpace:10,connectDiscontinuousPoints:true,discontinuousType:"solid",discontinuousDashLength:10,discontinuousGapSpace:10};}};b.augment(h,b.Attribute);b.Lines=h;function y(D){var E={area:{getter:function(){return this._defaults||this._getAreaDefaults();},setter:function(G){var F=this._defaults||this._getAreaDefaults();this._defaults=b.merge(F,G);}}};this.addAttrs(E,D);this.get("styles");}y.prototype={_getPath:function(){var D=this._path;if(!D){D=this.get("graph").get("graphic").addShape({type:"path"});this._path=D;}return D;},_toggleVisible:function(D){if(this._path){this._path.set("visible",D);}},drawFill:function(L,H){if(L.length<1){return;}var K=L.length,E=L[0],D=H[0],J=E,I=D,P,N,G=1,M=this.get("styles").area,O=this._getPath(),F=M.color||this._getDefaultColor(this.get("graphOrder"),"slice");O.clear();O.set("fill",{color:F,opacity:M.alpha});O.set("stroke",{weight:0});O.moveTo(E,D);for(;G0){E=G[T-1].get("xcoords").concat().reverse();Q=G[T-1].get("ycoords").concat().reverse();M=this.getCurveControlPoints(E,Q);U=0;V=M.length;R.lineTo(E[0],Q[0]);for(;U0){J=F[H-1].get("xcoords").concat();G=F[H-1].get("ycoords").concat();M=M.concat(J.concat().reverse());I=I.concat(G.concat().reverse());M.push(M[0]);I.push(I[0]);}else{if(L==="vertical"){M.push(this._leftOrigin);M.push(this._leftOrigin);I.push(I[I.length-1]);I.push(D);}else{M.push(M[M.length-1]);M.push(E);I.push(this._bottomOrigin);I.push(this._bottomOrigin);}}return[M,I]; },_getAreaDefaults:function(){return{};}};b.augment(y,b.Attribute);b.Fills=y;function x(D){var E={markers:{getter:function(){return this._markers;}}};this.addAttrs(E,D);}x.prototype={_plotDefaults:null,drawPlots:function(){if(!this.get("xcoords")||this.get("xcoords").length<1){return;}var N=q.isNumber,U=b.clone(this.get("styles").marker),M=U.width,T=U.height,O=this.get("xcoords"),V=this.get("ycoords"),R=0,S=O.length,P=V[0],G,J,Q=M/2,F=T/2,K,H,E=null,I=null,L=this.get("graphOrder"),D=this.get("groupMarkers");if(D){K=[];H=[];for(;R0){while(!E){if(this._markerCache.length<1){E=this._createMarker(H,D,G);break;}E=this._markerCache.shift();}E.set(H);}else{E=this._createMarker(H,D,G);}this._markers.push(E);return E;},_createMarker:function(H,D,G){var I=this.get("graphic"),F,E=b.clone(H);I.set("autoDraw",false);E.type=E.shape;F=I.addShape(E);F.addClass(n);return F;},_createMarkerCache:function(){if(this._groupMarker){this._groupMarker.destroy();this._groupMarker=null;}if(this._markers&&this._markers.length>0){this._markerCache=this._markers.concat();}else{this._markerCache=[];}this._markers=[];},_createGroupMarker:function(H){var E,I=this.get("markers"),G=H.border,J,D,F;if(I&&I.length>0){while(I.length>0){E=I.shift();E.destroy();}this.set("markers",[]);}G.opacity=G.alpha;D={id:this.get("chart").get("id")+"_"+H.graphOrder,stroke:G,fill:H.fill,dimensions:H.dimensions,xvalues:H.xvalues,yvalues:H.yvalues};D.fill.opacity=H.fill.alpha;F=this._getGroupShape(H.shape);if(F){D.type=F;}if(H.hasOwnProperty("radius")&&!isNaN(H.radius)){D.dimensions.radius=H.radius;}if(this._groupMarker){this._groupMarker.destroy();}J=this.get("graphic");J.set("autoDraw",true);this._groupMarker=J.addShape(D);},_toggleVisible:function(H){var E,G=this.get("markers"),F=0,D;if(G){D=G.length;for(;F0){D=this._markerCache.shift();if(D){D.destroy();}}},updateMarkerState:function(J,H){if(this._markers&&this._markers[H]){var L,I,M=b.clone(this.get("styles").marker),D=this._getState(J),K=this.get("xcoords"),G=this.get("ycoords"),F=this._markers[H],E=D=="off"||!M[D]?M:M[D];E.fill.color=this._getItemColor(E.fill.color,H);E.border.color=this._getItemColor(E.border.color,H);E.stroke=E.border;F.set(E);L=E.width;I=E.height;F.set("x",(K[H]-L/2));F.set("y",(G[H]-I/2));F.set("visible",this.get("visible"));}},_getItemColor:function(E,D){if(q.isArray(E)){return E[D%E.length];}return E;},_setStyles:function(D){D=this._parseMarkerStyles(D);return b.Renderer.prototype._setStyles.apply(this,[D]);},_parseMarkerStyles:function(E){if(E.marker){var D=this._getPlotDefaults();E.marker=this._mergeStyles(E.marker,D);if(E.marker.over){E.marker.over=this._mergeStyles(E.marker.over,E.marker);}if(E.marker.down){E.marker.down=this._mergeStyles(E.marker.down,E.marker);}}return E;},_getState:function(D){var E;switch(D){case"mouseout":E="off";break;case"mouseover":E="over";break;case"mouseup":E="over";break;case"mousedown":E="down";break;}return E;},_stateSyles:null};b.augment(x,b.Attribute);b.Plots=x;function B(){}B.prototype={drawSeries:function(){if(this.get("xcoords").length<1){return;}var af=b.clone(this.get("styles").marker),V,R,N=this.get("xcoords"),O=this.get("ycoords"),ag=0,K=N.length,G=O[0],am=this.get("type"),aa=this.get("graph"),Y=aa.seriesTypes[am],E=Y.length,ad=0,ai=0,ab=0,ac,T,U=this.get("order"),ak=this.get("graphOrder"),F,al,P,Q,W,ah=null,D=null,X=[],H=[],L,M,S,aj,Z={width:[],height:[]},J=[],I=[],ae=this.get("groupMarkers");if(q.isArray(af.fill.color)){ah=af.fill.color.concat();}if(q.isArray(af.border.color)){D=af.border.color.concat();}if(this.get("direction")=="vertical"){P="height";Q="width";}else{P="width";Q="height";}V=af[P];R=af[Q];this._createMarkerCache();for(;agag){ab=ad;}}ai=K*ad;this._maxSize=aa.get(P);if(ai>this._maxSize){ac=aa.get(P)/ai;ad*=ac;ab*=ac;V*=ac;V=Math.max(V,1);this._maxSize=V;}ab-=ad/2;for(ag=0;ag0){G=W.top;F=W.left;if(ae){Z[P][ag]=V;Z[Q][ag]=W.calculatedSize;J.push(F);I.push(G);}else{af[P]=V;af[Q]=W.calculatedSize;af.x=F;af.y=G;if(ah){af.fill.color=ah[ag%ah.length];}if(D){af.border.color=D[ag%D.length];}al=this.getMarker(af,ak,ag);}}else{if(!ae){this._markers.push(null);}}}this.set("xMarkerPlane",X);this.set("yMarkerPlane",H);if(ae){this._createGroupMarker({fill:af.fill,border:af.border,dimensions:Z,xvalues:J,yvalues:I,shape:af.shape});}else{this._clearMarkerCache(); -}},_defaultFillColors:["#66007f","#a86f41","#295454","#996ab2","#e8cdb7","#90bdbd","#000000","#c3b8ca","#968373","#678585"],_getPlotDefaults:function(){var D={fill:{type:"solid",alpha:1,colors:null,alphas:null,ratios:null},border:{weight:0,alpha:1},width:12,height:12,shape:"rect",padding:{top:0,left:0,right:0,bottom:0}};D.fill.color=this._getDefaultColor(this.get("graphOrder"),"fill");D.border.color=this._getDefaultColor(this.get("graphOrder"),"border");return D;}};b.Histogram=B;b.CartesianSeries=b.Base.create("cartesianSeries",b.Base,[b.Renderer],{_xDisplayName:null,_yDisplayName:null,_leftOrigin:null,_bottomOrigin:null,render:function(){this._setCanvas();this.addListeners();this.set("rendered",true);this.validate();},addListeners:function(){var E=this.get("xAxis"),D=this.get("yAxis");if(E){E.after("dataReady",b.bind(this._xDataChangeHandler,this));E.after("dataUpdate",b.bind(this._xDataChangeHandler,this));}if(D){D.after("dataReady",b.bind(this._yDataChangeHandler,this));D.after("dataUpdate",b.bind(this._yDataChangeHandler,this));}this.after("xAxisChange",this._xAxisChangeHandler);this.after("yAxisChange",this._yAxisChangeHandler);this.after("stylesChange",function(G){var F=this._updateAxisData();if(F){this.draw();}});this.after("widthChange",function(G){var F=this._updateAxisData();if(F){this.draw();}});this.after("heightChange",function(G){var F=this._updateAxisData();if(F){this.draw();}});this.after("visibleChange",this._handleVisibleChange);},_xAxisChangeHandler:function(E){var D=this.get("xAxis");D.after("dataReady",b.bind(this._xDataChangeHandler,this));D.after("dataUpdate",b.bind(this._xDataChangeHandler,this));},_yAxisChangeHandler:function(E){var D=this.get("yAxis");D.after("dataReady",b.bind(this._yDataChangeHandler,this));D.after("dataUpdate",b.bind(this._yDataChangeHandler,this));},GUID:"yuicartesianseries",_xDataChangeHandler:function(D){var E=this._updateAxisData();if(E){this.draw();}},_yDataChangeHandler:function(D){var E=this._updateAxisData();if(E){this.draw();}},_updateAxisData:function(){var H=this.get("xAxis"),E=this.get("yAxis"),F=this.get("xKey"),D=this.get("yKey"),G,I;if(!H||!E||!F||!D){return false;}I=H.getDataByKey(F);G=E.getDataByKey(D);if(!I||!G){return false;}this.set("xData",I.concat());this.set("yData",G.concat());return true;},validate:function(){if((this.get("xData")&&this.get("yData"))||this._updateAxisData()){this.draw();}else{this.fire("drawingComplete");}},_setCanvas:function(){var D=this.get("graph"),E=D.get("graphic");this.set("graphic",E);},setAreaData:function(){var U=q.isNumber,ai,ag,H=this.get("graph"),Q=H.get("width"),ab=H.get("height"),O=this.get("xAxis"),E=this.get("yAxis"),J=this.get("xData").concat(),ae=this.get("yData").concat(),Y,ac,al=O.getEdgeOffset(J.length,Q),N=E.getEdgeOffset(ae.length,ab),V=this.get("styles").padding,X=V.left,af=V.top,L=Q-(X+V.right+al),aa=ab-(af+V.bottom+N),T=[],ak=[],aj=O.get("maximum"),ad=O.get("minimum"),G=E.get("maximum"),D=E.get("minimum"),K=L/(aj-ad),R=aa/(G-D),M,ah=this.get("direction"),Z=0,P=[],W=[],I=this.get("xMarkerPlaneOffset"),F=this.get("yMarkerPlaneOffset"),S=this.get("graphic");S.set("width",Q);S.set("height",ab);M=J.length;al*=0.5;N*=0.5;if(ah==="vertical"){ae=ae.reverse();}this._leftOrigin=Math.round(((0-ad)*K)+X+al);this._bottomOrigin=Math.round((aa+af+N));for(;Z0&&E>0)&&((this.get("xData")&&this.get("yData"))||this._updateAxisData())){if(this._drawing){this._callLater=true;return;}this._drawing=true;this._callLater=false;this.setAreaData();if(this.get("xcoords")&&this.get("ycoords")){this.drawSeries();}this._drawing=false;if(this._callLater){this.draw();}else{this._toggleVisible(this.get("visible"));this.fire("drawingComplete");}}}},_defaultPlaneOffset:4,_getDefaultStyles:function(){return{padding:{top:0,left:0,right:0,bottom:0}};},_defaultLineColors:["#426ab3","#d09b2c","#000000","#b82837","#b384b5","#ff7200","#779de3","#cbc8ba","#7ed7a6","#007a6c"],_defaultFillColors:["#6084d0","#eeb647","#6c6b5f","#d6484f","#ce9ed1","#ff9f3b","#93b7ff","#e0ddd0","#94ecba","#309687"],_defaultBorderColors:["#205096","#b38206","#000000","#94001e","#9d6fa0","#e55b00","#5e85c9","#adab9e","#6ac291","#006457"],_defaultSliceColors:["#66007f","#a86f41","#295454","#996ab2","#e8cdb7","#90bdbd","#000000","#c3b8ca","#968373","#678585"],_getDefaultColor:function(G,H){var E={line:this._defaultLineColors,fill:this._defaultFillColors,border:this._defaultBorderColors,slice:this._defaultSliceColors},F=E[H],D=F.length;G=G||0;if(G>=D){G=G%D;}H=H||"fill";return E[H][G];},_handleVisibleChange:function(D){this._toggleVisible(this.get("visible"));},getTotalValues:function(){var D=this.get("valueAxis").getTotalByKey(this.get("valueKey"));return D;},destructor:function(){if(this._path){this._path.destroy();}if(this._lineGraphic){this._lineGraphic.destroy();this._lineGraphic=null;}if(this.get("graphic")){this.get("graphic").destroy();}}},{ATTRS:{xDisplayName:{getter:function(){return this._xDisplayName||this.get("xKey");},setter:function(D){this._xDisplayName=D.toString();return D;}},yDisplayName:{getter:function(){return this._yDisplayName||this.get("yKey");},setter:function(D){this._yDisplayName=D.toString();return D;}},categoryDisplayName:{readOnly:true,getter:function(){return this.get("direction")=="vertical"?this.get("yDisplayName"):this.get("xDisplayName");}},valueDisplayName:{readOnly:true,getter:function(){return this.get("direction")=="vertical"?this.get("xDisplayName"):this.get("yDisplayName");}},type:{value:"cartesian"},order:{},graphOrder:{},xcoords:{},ycoords:{},chart:{readOnly:true,getter:function(){return this.get("graph").get("chart"); -}},graph:{},xAxis:{},yAxis:{},xKey:{setter:function(D){return D.toString();}},yKey:{setter:function(D){return D.toString();}},xData:{},yData:{},rendered:{value:false},width:{readOnly:true,getter:function(){this.get("graph").get("width");}},height:{readOnly:true,getter:function(){this.get("graph").get("height");}},visible:{value:true},xMarkerPlane:{},yMarkerPlane:{},xMarkerPlaneOffset:{getter:function(){var D=this.get("styles").marker;if(D&&D.width&&isFinite(D.width)){return D.width*0.5;}return this._defaultPlaneOffset;}},yMarkerPlaneOffset:{getter:function(){var D=this.get("styles").marker;if(D&&D.height&&isFinite(D.height)){return D.height*0.5;}return this._defaultPlaneOffset;}},direction:{value:"horizontal"},groupMarkers:{getter:function(){if(this._groupMarkers===undefined){return this.get("graph").get("groupMarkers");}else{return this._groupMarkers;}},setter:function(D){this._groupMarkers=D;return D;}}}});b.MarkerSeries=b.Base.create("markerSeries",b.CartesianSeries,[b.Plots],{drawSeries:function(){this.drawPlots();},_setStyles:function(D){if(!D.marker){D={marker:D};}D=this._parseMarkerStyles(D);return b.MarkerSeries.superclass._mergeStyles.apply(this,[D,this._getDefaultStyles()]);},_getDefaultStyles:function(){var D=this._mergeStyles({marker:this._getPlotDefaults()},b.MarkerSeries.superclass._getDefaultStyles());return D;}},{ATTRS:{type:{value:"marker"}}});b.LineSeries=b.Base.create("lineSeries",b.CartesianSeries,[b.Lines],{drawSeries:function(){this.drawLines();},_setStyles:function(D){if(!D.line){D={line:D};}return b.LineSeries.superclass._setStyles.apply(this,[D]);},_getDefaultStyles:function(){var D=this._mergeStyles({line:this._getLineDefaults()},b.LineSeries.superclass._getDefaultStyles());return D;}},{ATTRS:{type:{value:"line"}}});b.SplineSeries=b.Base.create("splineSeries",b.LineSeries,[b.CurveUtil,b.Lines],{drawSeries:function(){this.drawSpline();}},{ATTRS:{type:{value:"spline"}}});b.AreaSplineSeries=b.Base.create("areaSplineSeries",b.CartesianSeries,[b.Fills,b.CurveUtil],{drawSeries:function(){this.drawAreaSpline();}},{ATTRS:{type:{value:"areaSpline"}}});b.StackedSplineSeries=b.Base.create("stackedSplineSeries",b.SplineSeries,[b.StackingUtil],{setAreaData:function(){b.StackedSplineSeries.superclass.setAreaData.apply(this);this._stackCoordinates.apply(this);}},{ATTRS:{type:{value:"stackedSpline"}}});b.StackedMarkerSeries=b.Base.create("stackedMarkerSeries",b.MarkerSeries,[b.StackingUtil],{setAreaData:function(){b.StackedMarkerSeries.superclass.setAreaData.apply(this);this._stackCoordinates.apply(this);}},{ATTRS:{type:{value:"stackedMarker"}}});b.ColumnSeries=b.Base.create("columnSeries",b.MarkerSeries,[b.Histogram],{_getMarkerDimensions:function(E,D,G,H){var F={left:E+H};if(this._bottomOrigin>=D){F.top=D;F.calculatedSize=this._bottomOrigin-F.top;}else{F.top=this._bottomOrigin;F.calculatedSize=D-this._bottomOrigin;}return F;},updateMarkerState:function(F,R){if(this._markers&&this._markers[R]){var L=b.clone(this.get("styles").marker),V,G=this._getState(F),N=this.get("xcoords"),W=this.get("ycoords"),I=this._markers[R],T,D=this.get("graph"),E,J=D.seriesTypes[this.get("type")],S=J.length,M=0,H=0,P,O=0,K=[],Q=this.get("order"),U;V=G=="off"||!L[G]?b.clone(L):b.clone(L[G]);V.fill.color=this._getItemColor(V.fill.color,R);V.border.color=this._getItemColor(V.border.color,R);U=this._getMarkerDimensions(N[R],W[R],L.width,H);V.height=U.calculatedSize;V.width=Math.min(this._maxSize,V.width);I.set(V);for(;OO){H=M;}H-=M/2;}for(O=0;O=this._leftOrigin){F.left=this._leftOrigin;F.calculatedSize=E-F.left;}else{F.left=E;F.calculatedSize=this._leftOrigin-E;}return F;},updateMarkerState:function(F,R){if(this._markers&&this._markers[R]){var K=b.clone(this.get("styles").marker),V,G=this._getState(F),M=this.get("xcoords"),W=this.get("ycoords"),I=this._markers[R],T,D=this.get("graph"),J=D.seriesTypes[this.get("type")],S=J.length,E,L=0,H=0,O,N=0,Q=[],P=this.get("order"),U;V=G=="off"||!K[G]?K:K[G];V.fill.color=this._getItemColor(V.fill.color,R);V.border.color=this._getItemColor(V.border.color,R);U=this._getMarkerDimensions(M[R],W[R],K.height,H);V.width=U.calculatedSize;V.height=Math.min(this._maxSize,V.height);I.set(V);for(;NN){H=L;}H-=L/2;}for(N=0;Nthis.get("width")){P=this.width/H;U*=P;U=Math.max(U,1);}if(!F){M=R[Z-1];S=M.get("negativeBaseValues");Y=M.get("positiveBaseValues");if(!S||!Y){F=true;Y=[];S=[];}}else{S=[];Y=[];}this.set("negativeBaseValues",S);this.set("positiveBaseValues",Y);for(aa=0;aathis._bottomOrigin){Y[aa]=this._bottomOrigin;S[aa]=X;X-=ac;}else{Y[aa]=X;S[aa]=X;}}}else{if(X>this._bottomOrigin){X+=(S[aa]-this._bottomOrigin);ac=X-S[aa];S[aa]=X;X-=ac;}else{if(X<=this._bottomOrigin){X=Y[aa]-(this._bottomOrigin-X);ac=Y[aa]-X;Y[aa]=X;}}}if(!isNaN(ac)&&ac>0){J-=U/2;if(D){L.width[aa]=U;L.height[aa]=ac;N.push(J);K.push(X);}else{ad.width=U;ad.height=ac;ad.x=J;ad.y=X;if(E){ad.fill.color=E[aa%E.length];}if(O){ad.border.color=O[aa%O.length];}Q=this.getMarker(ad,T,aa);}}else{if(!D){this._markers.push(null);}}}if(D){this._createGroupMarker({fill:ad.fill,border:ad.border,dimensions:L,xvalues:N,yvalues:K,shape:ad.shape});}else{this._clearMarkerCache();}},updateMarkerState:function(K,I){if(this._markers&&this._markers[I]){var M,F,D=this._getState(K),L=this.get("xcoords"),J=this._markers[I],H=0,E,G;M=this.get("styles").marker;H=M.width*0.5;F=D=="off"||!M[D]?b.clone(M):b.clone(M[D]);F.height=J.get("height");F.x=(L[I]-H);F.y=J.get("y");F.id=J.get("id");E=F.fill.color;G=F.border.color;if(q.isArray(E)){F.fill.color=E[I%E.length];}else{F.fill.color=this._getItemColor(F.fill.color,I);}if(q.isArray(G)){F.border.color=G[I%G.length];}else{F.border.color=this._getItemColor(F.border.color,I);}J.set(F);}},_getPlotDefaults:function(){var D={fill:{type:"solid",alpha:1,colors:null,alphas:null,ratios:null},border:{weight:0,alpha:1},width:24,height:24,shape:"rect",padding:{top:0,left:0,right:0,bottom:0}};D.fill.color=this._getDefaultColor(this.get("graphOrder"),"fill");D.border.color=this._getDefaultColor(this.get("graphOrder"),"border");return D;}},{ATTRS:{type:{value:"stackedColumn"},negativeBaseValues:{value:null},positiveBaseValues:{value:null}}});b.StackedBarSeries=b.Base.create("stackedBarSeries",b.BarSeries,[b.StackingUtil],{drawSeries:function(){if(this.get("xcoords").length<1){return;}var U=q.isNumber,ac=b.clone(this.get("styles").marker),T=ac.width,ab=ac.height,V=this.get("xcoords"),ae=this.get("ycoords"),Z=0,aa=V.length,W=ae[0],H=this.get("type"),G=this.get("graph"),Q=G.seriesTypes[H],O,Y=this.get("order"),S=this.get("graphOrder"),I,P,L,R,X,E,N,F=Y===0,ad=aa*ab,K={width:[],height:[]},M=[],J=[],D=this.get("groupMarkers");if(q.isArray(ac.fill.color)){E=ac.fill.color.concat();}if(q.isArray(ac.border.color)){N=ac.border.color.concat();}this._createMarkerCache();if(ad>this.get("height")){O=this.height/ad;ab*=O;ab=Math.max(ab,1);}if(!F){L=Q[Y-1];R=L.get("negativeBaseValues");X=L.get("positiveBaseValues");if(!R||!X){F=true;X=[];R=[];}}else{R=[];X=[];}this.set("negativeBaseValues",R); -this.set("positiveBaseValues",X);for(Z=0;Zthis._leftOrigin){X[Z]=I;R[Z]=this._leftOrigin;I-=T;}else{if(I=this._leftOrigin){I+=(X[Z]-this._leftOrigin);T=I-X[Z];X[Z]=I;I-=T;}}}if(!isNaN(T)&&T>0){W-=ab/2;if(D){K.width[Z]=T;K.height[Z]=ab;M.push(I);J.push(W);}else{ac.width=T;ac.height=ab;ac.x=I;ac.y=W;if(E){ac.fill.color=E[Z%E.length];}if(N){ac.border.color=N[Z%N.length];}P=this.getMarker(ac,S,Z);}}else{if(!D){this._markers.push(null);}}}if(D){this._createGroupMarker({fill:ac.fill,border:ac.border,dimensions:K,xvalues:M,yvalues:J,shape:ac.shape});}else{this._clearMarkerCache();}},updateMarkerState:function(L,I){if(this._markers[I]){var D=this._getState(L),H=this.get("ycoords"),J=this._markers[I],M=this.get("styles").marker,K=M.height,F=D=="off"||!M[D]?b.clone(M):b.clone(M[D]),E,G;F.y=(H[I]-K/2);F.x=J.get("x");F.width=J.get("width");F.id=J.get("id");E=F.fill.color;G=F.border.color;if(q.isArray(E)){F.fill.color=E[I%E.length];}else{F.fill.color=this._getItemColor(F.fill.color,I);}if(q.isArray(G)){F.border.color=G[I%G.length];}else{F.border.color=this._getItemColor(F.border.color,I);}J.set(F);}},_getPlotDefaults:function(){var D={fill:{type:"solid",alpha:1,colors:null,alphas:null,ratios:null},border:{weight:0,alpha:1},width:24,height:24,shape:"rect",padding:{top:0,left:0,right:0,bottom:0}};D.fill.color=this._getDefaultColor(this.get("graphOrder"),"fill");D.border.color=this._getDefaultColor(this.get("graphOrder"),"border");return D;}},{ATTRS:{type:{value:"stackedBar"},direction:{value:"vertical"},negativeBaseValues:{value:null},positiveBaseValues:{value:null}}});b.PieSeries=b.Base.create("pieSeries",b.MarkerSeries,[],{_map:null,_image:null,_setMap:function(){var F="pieHotSpotMapi_"+Math.round(100000*Math.random()),D=this.get("graph").get("contentBox"),E;if(this._image){D.removeChild(this._image);while(this._areaNodes&&this._areaNodes.length>0){E=this._areaNodes.shift();this._map.removeChild(E);}D.removeChild(this._map);}this._image=g.createElement("img");this._image.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAABCAYAAAD9yd/wAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABJJREFUeNpiZGBgSGPAAgACDAAIkABoFyloZQAAAABJRU5ErkJggg==";D.appendChild(this._image);this._image.setAttribute("usemap","#"+F);this._image.style.zIndex=3;this._image.style.opacity=0;this._image.setAttribute("alt","imagemap");this._map=g.createElement("map");this._map.style.zIndex=5;D.appendChild(this._map);this._map.setAttribute("name",F);this._map.setAttribute("id",F);this._areaNodes=[];},_categoryDisplayName:null,_valueDisplayName:null,addListeners:function(){var D=this.get("categoryAxis"),E=this.get("valueAxis");if(D){D.after("dataReady",b.bind(this._categoryDataChangeHandler,this));D.after("dataUpdate",b.bind(this._categoryDataChangeHandler,this));}if(E){E.after("dataReady",b.bind(this._valueDataChangeHandler,this));E.after("dataUpdate",b.bind(this._valueDataChangeHandler,this));}this.after("categoryAxisChange",this.categoryAxisChangeHandler);this.after("valueAxisChange",this.valueAxisChangeHandler);this.after("stylesChange",this._updateHandler);},validate:function(){this.draw();this._renderered=true;},_categoryAxisChangeHandler:function(D){var E=this.get("categoryAxis");E.after("dataReady",b.bind(this._categoryDataChangeHandler,this));E.after("dataUpdate",b.bind(this._categoryDataChangeHandler,this));},_valueAxisChangeHandler:function(D){var E=this.get("valueAxis");E.after("dataReady",b.bind(this._valueDataChangeHandler,this));E.after("dataUpdate",b.bind(this._valueDataChangeHandler,this));},GUID:"pieseries",_categoryDataChangeHandler:function(D){if(this._rendered&&this.get("categoryKey")&&this.get("valueKey")){this.draw();}},_valueDataChangeHandler:function(D){if(this._rendered&&this.get("categoryKey")&&this.get("valueKey")){this.draw();}},draw:function(){var F=this.get("graph"),D=F.get("width"),E=F.get("height");if(isFinite(D)&&isFinite(E)&&D>0&&E>0){this._rendered=true;if(this._drawing){this._callLater=true;return;}this._drawing=true;this._callLater=false;this.drawSeries();this._drawing=false;if(this._callLater){this.draw();}else{this.fire("drawingComplete");}}},drawPlots:function(){var F=this.get("valueAxis").getDataByKey(this.get("valueKey")).concat(),G=this.get("categoryAxis").getDataByKey(this.get("categoryKey")).concat(),J=0,ai=F.length,R=this.get("styles").marker,D=R.fill.colors,aj=R.fill.alphas||["1"],N=R.border.colors,H=[R.border.weight],I=[R.border.alpha],ak=H.concat(),T=N.concat(),V=I.concat(),af,ah,W=R.padding,E=this.get("graph"),P=Math.min(E.get("width"),E.get("height")),U=P-(W.left+W.right),ae=P-(W.top+W.bottom),ac=-90,O=U/2,X=ae/2,K=Math.min(O,X),ad=0,aa,ag=0,Z,ab,L,S,M,Q=this.get("graphOrder"),Y=b.Graphic.NAME=="canvasGraphic";for(;ad=D){G=G%D;}H=H||"fill";return E[H][G];}},{ATTRS:{type:{value:"pie"},order:{},graph:{},categoryAxis:{value:null,validator:function(D){return D!==this.get("categoryAxis");}},valueAxis:{value:null,validator:function(D){return D!==this.get("valueAxis");}},categoryKey:{value:null,validator:function(D){return D!==this.get("categoryKey");}},valueKey:{value:null,validator:function(D){return D!==this.get("valueKey");}},categoryDisplayName:{setter:function(D){this._categoryDisplayName=D;return D;},getter:function(){return this._categoryDisplayName||this.get("categoryKey");}},valueDisplayName:{setter:function(D){this._valueDisplayName=D;return D;},getter:function(){return this._valueDisplayName||this.get("valueKey");}},slices:null}});b.Gridlines=b.Base.create("gridlines",b.Base,[b.Renderer],{_path:null,remove:function(){var D=this._path;if(D){D.destroy();}},draw:function(){if(this.get("axis")&&this.get("graph")){this._drawGridlines();}},_drawGridlines:function(){var R,D=this.get("axis"),L=D.get("position"),O,I=0,F,M=this.get("direction"),P=this.get("graph"),N=P.get("width"),K=P.get("height"),Q=this.get("styles").line,H=Q.color,J=Q.weight,G=Q.alpha,E=M=="vertical"?this._verticalLine:this._horizontalLine;if(isFinite(N)&&isFinite(K)&&N>0&&K>0){if(L!="none"&&D&&D.get("tickPoints")){O=D.get("tickPoints");F=O.length;}else{O=[];F=D.get("styles").majorUnit.count;for(;IF){E=D[F];}return E;},getSeriesByKey:function(F){var E=this._seriesDictionary,D;if(E&&E.hasOwnProperty(F)){D=E[F];}return D;},addDispatcher:function(D){if(!this._dispatchers){this._dispatchers=[];}this._dispatchers.push(D);},_seriesCollection:null,_seriesDictionary:null,_parseSeriesCollection:function(H){if(!H){return;}var E=H.length,G=0,F,D;if(!this.get("seriesCollection")){this._seriesCollection=[];}if(!this._seriesDictionary){this._seriesDictionary={};}if(!this.seriesTypes){this.seriesTypes=[];}for(;G-1){this._dispatchers.splice(D,1);}if(this._dispatchers.length<1){G=this.get("graphic");if(!G.get("autoDraw")){G._redraw();}this.fire("chartRendered");}},_getDefaultStyles:function(){var D={background:{shape:"rect",fill:{color:"#faf9f2"},border:{color:"#dad8c9",weight:1}}};return D;},destructor:function(){if(this._graphic){this._graphic.destroy();}if(this._background){this._background.get("graphic").destroy();}if(this._gridlines){this._gridlines.get("graphic").destroy();}}},{ATTRS:{x:{setter:function(D){this.get("boundingBox").setStyle("left",D+"px");return D;}},y:{setter:function(D){this.get("boundingBox").setStyle("top",D+"px");return D;}},chart:{},seriesCollection:{getter:function(){return this._seriesCollection;},setter:function(D){this._parseSeriesCollection(D);return this._seriesCollection;}},showBackground:{value:true},seriesDictionary:{readOnly:true,getter:function(){return this._seriesDictionary;}},horizontalGridlines:{value:null,setter:function(E){var D=this.get("horizontalGridlines");if(D&&D instanceof b.Gridlines){D.remove();}if(E instanceof b.Gridlines){D=E;E.set("graph",this);return E;}else{if(E&&E.axis){D=new b.Gridlines({direction:"horizontal",axis:E.axis,graph:this,styles:E.styles});return D;}}}},verticalGridlines:{value:null,setter:function(E){var D=this.get("verticalGridlines");if(D&&D instanceof b.Gridlines){D.remove();}if(E instanceof b.Gridlines){D=E;E.set("graph",this);return E;}else{if(E&&E.axis){D=new b.Gridlines({direction:"vertical",axis:E.axis,graph:this,styles:E.styles});return D;}}}},background:{getter:function(){if(!this._background){this._backgroundGraphic=new b.Graphic({render:this.get("contentBox")});this._backgroundGraphic.get("node").style.zIndex=0;this._background=this._backgroundGraphic.addShape({type:"rect"});}return this._background;}},gridlines:{readOnly:true,getter:function(){if(!this._gridlines){this._gridlinesGraphic=new b.Graphic({render:this.get("contentBox")});this._gridlinesGraphic.get("node").style.zIndex=1;this._gridlines=this._gridlinesGraphic.addShape({type:"path"});}return this._gridlines;}},graphic:{readOnly:true,getter:function(){if(!this._graphic){this._graphic=new b.Graphic({render:this.get("contentBox")});this._graphic.get("node").style.zIndex=2;this._graphic.set("autoDraw",false);}return this._graphic;}},groupMarkers:{value:false}}});function o(){}o.ATTRS={ariaLabel:{value:"Chart Application",setter:function(E){var D=this.get("contentBox");if(D){D.setAttribute("aria-label",E);}return E;}},ariaDescription:{value:"Use the up and down keys to navigate between series. Use the left and right keys to navigate through items in a series.",setter:function(D){if(this._description){this._description.setContent("");this._description.appendChild(g.createTextNode(D));}return D;}},tooltip:{valueFn:"_getTooltip",setter:function(D){return this._updateTooltip(D);}},categoryKey:{value:"category"},categoryType:{value:"category"},interactionType:{value:"marker"},dataProvider:{setter:function(D){return this._setDataValues(D);}},seriesKeys:{},axesCollection:{},graph:{valueFn:"_getGraph"},groupMarkers:{value:false,setter:function(D){if(this.get("graph")){this.get("graph").set("groupMarkers",D);}return D;}}};o.prototype={_itemRendered:function(D){this._itemRenderQueue=this._itemRenderQueue.splice(1+b.Array.indexOf(this._itemRenderQueue,D.currentTarget),1);if(this._itemRenderQueue.length<1){this._redraw();}},_getGraph:function(){var D=new b.Graph({chart:this,groupMarkers:this.get("groupMarkers")});D.after("chartRendered",b.bind(function(E){this.fire("chartRendered");},this));return D;},getSeries:function(F){var D=null,E=this.get("graph");if(E){if(q.isNumber(F)){D=E.getSeriesByIndex(F);}else{D=E.getSeriesByKey(F);}}return D;},getAxisByKey:function(F){var D,E=this.get("axes"); -if(E&&E.hasOwnProperty(F)){D=E[F];}return D;},getCategoryAxis:function(){var E,D=this.get("categoryKey"),F=this.get("axes");if(F.hasOwnProperty(D)){E=F[D];}return E;},_direction:"horizontal",_dataProvider:null,_setDataValues:function(I){if(q.isArray(I[0])){var H,K=[],F=I[0],G=0,E=F.length,J,D=I.length;for(;G"),F=b.UA.ie,D=(F&&F<8)?"rect(1px 1px 1px 1px)":"rect(1px, 1px, 1px, 1px)";E.setStyle("position","absolute");E.setStyle("height","1px");E.setStyle("width","1px");E.setStyle("overflow","hidden");E.setStyle("clip",D);return E;},syncUI:function(){this._redraw();},bindUI:function(){this.after("tooltipChange",b.bind(this._tooltipChangeHandler,this));this.after("widthChange",this._sizeChanged);this.after("heightChange",this._sizeChanged);var K=this.get("tooltip"),E="mouseout",L="mouseover",F=this.get("contentBox"),D=this.get("interactionType"),I=0,J,H="."+n,G=((v&&("ontouchstart" in v))&&!(b.UA.chrome&&b.UA.chrome<6));b.on("keydown",b.bind(function(O){var N=O.keyCode,M=parseFloat(N),P;if(M>36&&M<41){O.halt();P=this._getAriaMessage(M);this._liveRegion.setContent("");this._liveRegion.appendChild(g.createTextNode(P));}},this),this.get("contentBox"));if(D=="marker"){E=K.hideEvent;L=K.showEvent;if(G){b.delegate("touchend",b.bind(this._markerEventDispatcher,this),F,H);b.on("touchend",b.bind(function(M){M.halt(true);if(this._activeMarker){this._activeMarker=null;this.hideTooltip(M);}},this));}else{b.delegate("mouseenter",b.bind(this._markerEventDispatcher,this),F,H);b.delegate("mousedown",b.bind(this._markerEventDispatcher,this),F,H);b.delegate("mouseup",b.bind(this._markerEventDispatcher,this),F,H);b.delegate("mouseleave",b.bind(this._markerEventDispatcher,this),F,H);b.delegate("click",b.bind(this._markerEventDispatcher,this),F,H);b.delegate("mousemove",b.bind(this._positionTooltip,this),F,H);}}else{if(D=="planar"){if(G){this._overlay.on("touchend",b.bind(this._planarEventDispatcher,this));}else{this._overlay.on("mousemove",b.bind(this._planarEventDispatcher,this));this.on("mouseout",this.hideTooltip);}}}if(K){this.on("markerEvent:touchend",b.bind(function(N){var M=N.series.get("markers")[N.index];if(this._activeMarker&&M===this._activeMarker){this._activeMarker=null;this.hideTooltip(N);}else{this._activeMarker=M;K.markerEventHandler.apply(this,[N]);}},this));if(E&&L&&E==L){this.on(D+"Event:"+E,this.toggleTooltip);}else{if(L){this.on(D+"Event:"+L,K[D+"EventHandler"]);}if(E){if(q.isArray(E)){J=E.length;for(;I=I[X].start){M=X;break;}}Y=E.length;for(X=0;X-1){P.updateMarkerState("mouseout",J);}if(W&&W[M]>-1){if(ad&&!isNaN(M)&&M>-1){P.updateMarkerState("mouseover",M);}ab=this.getSeriesItems(P,M);H.push(ab.category);R.push(ab.value);S.push(P);}}this._selectedIndex=M;if(M>-1){this.fire("planarEvent:mouseover",{categoryItem:H,valueItem:R,x:O,y:N,pageX:F,pageY:D,items:S,index:M,originEvent:Z});}else{this.fire("planarEvent:mouseout");}}},_type:"combo",_itemRenderQueue:null,_addToAxesRenderQueue:function(D){if(!this._itemRenderQueue){this._itemRenderQueue=[];}if(b.Array.indexOf(this._itemRenderQueue,D)<0){this._itemRenderQueue.push(D);}},_addToAxesCollection:function(D,F){var E=this.get(D+"AxesCollection");if(!E){E=[];this.set(D+"AxesCollection",E);}E.push(F);},_getDefaultSeriesCollection:function(){return this._parseSeriesCollection();},_parseSeriesCollection:function(W){var M=this.get("direction"),D=W||[],T,Q,O=[],J,I=this.get("seriesKeys").concat(),S,H,P,G=this.get("type"),U,L,V,E,F=this.get("categoryKey"),R=this.get("showMarkers"),N=this.get("showAreaFill"),K=this.get("showLines");if(M=="vertical"){T="yAxis";L="yKey";Q="xAxis";V="xKey";}else{T="xAxis";L="xKey";Q="yAxis";V="yKey";}P=D.length;for(S=0;S-1){I.splice(H,1);}O.push(U);}}if(I.length>0){O=O.concat(I);}P=O.length;for(S=0;S0){F.set("overlapGraph",false);}M[J]=F;}}}return M;},_addAxes:function(){var I=this.get("axes"),E,G,J,D=this.get("width"),F=this.get("height"),H=b.Node.one(this._parentNode);if(!this._axesCollection){this._axesCollection=[];}for(E in I){if(I.hasOwnProperty(E)){G=I[E];if(G instanceof b.Axis){if(!D){this.set("width",H.get("offsetWidth"));D=this.get("width");}if(!F){this.set("height",H.get("offsetHeight"));F=this.get("height");}this._addToAxesRenderQueue(G);J=G.get("position");if(!this.get(J+"AxesCollection")){this.set(J+"AxesCollection",[G]);}else{this.get(J+"AxesCollection").push(G);}this._axesCollection.push(G);if(G.get("keys").hasOwnProperty(this.get("categoryKey"))){this.set("categoryAxis",G);}G.render(this.get("contentBox"));}}}},_addSeries:function(){var D=this.get("graph"),E=this.get("seriesCollection");D.render(this.get("contentBox"));},_addGridlines:function(){var N=this.get("graph"),E=this.get("horizontalGridlines"),F=this.get("verticalGridlines"),M=this.get("direction"),O=this.get("leftAxesCollection"),I=this.get("rightAxesCollection"),K=this.get("bottomAxesCollection"),G=this.get("topAxesCollection"),H,D=this.get("categoryAxis"),L,J;if(this._axesCollection){H=this._axesCollection.concat();H.splice(b.Array.indexOf(H,D),1);}if(E){if(O&&O[0]){L=O[0];}else{if(I&&I[0]){L=I[0];}else{L=M=="horizontal"?D:H[0];}}if(!this._getBaseAttribute(E,"axis")&&L){this._setBaseAttribute(E,"axis",L);}if(this._getBaseAttribute(E,"axis")){N.set("horizontalGridlines",E);}}if(F){if(K&&K[0]){J=K[0];}else{if(G&&G[0]){J=G[0];}else{J=M=="vertical"?D:H[0];}}if(!this._getBaseAttribute(F,"axis")&&J){this._setBaseAttribute(F,"axis",J);}if(this._getBaseAttribute(F,"axis")){N.set("verticalGridlines",F);}}},_getAllKeys:function(I){var F=0,D=I.length,H,E,G={};for(;F0){N=P[0];this.set("categoryKey",N);}G[W]=E;}else{if(W==F){G[W]=E;}else{G[W]=E;if(W!=D&&P&&q.isArray(P)){K=P.length;for(M=0;M-1){H.splice(Q,1);}U=R.length;for(W=0;W-1){H.splice(Q,1);}}if(!G.hasOwnProperty(F)){G[F]={};}if(!(this._getBaseAttribute(G[F],"keys"))){this._setBaseAttribute(G[F],"keys",[N]);}if(!(this._getBaseAttribute(G[F],"position"))){this._setBaseAttribute(G[F],"position",I);}if(!(this._getBaseAttribute(G[F],"type"))){this._setBaseAttribute(G[F],"type",this.get("categoryType"));}if(!G.hasOwnProperty(D)&&H&&H.length>0){G[D]={keys:H};J.push(G[D]);}if(R.length>0){if(H.length>0){H=R.concat(H);}else{H=R;}}if(G.hasOwnProperty(D)){if(!(this._getBaseAttribute(G[D],"position"))){this._setBaseAttribute(G[D],"position",this._getDefaultAxisPosition(G[D],J,L));}if(!(this._getBaseAttribute(G[D],"type"))){this._setBaseAttribute(G[D],"type",Y);}if(!(this._getBaseAttribute(G[D],"keys"))){this._setBaseAttribute(G[D],"keys",H); -}}this.set("seriesKeys",H);return G;},_getDefaultAxisPosition:function(G,E,D){var H=this.get("direction"),F=b.Array.indexOf(E,G);if(E[F-1]&&E[F-1].position){if(H=="horizontal"){if(E[F-1].position=="left"){D="right";}else{if(E[F-1].position=="right"){D="left";}}}else{if(E[F-1].position=="bottom"){D="top";}else{D="bottom";}}}return D;},getSeriesItems:function(I,H){var J=I.get("xAxis"),F=I.get("yAxis"),G=I.get("xKey"),E=I.get("yKey"),K,D;if(this.get("direction")=="vertical"){K={axis:F,key:E,value:F.getKeyValueAt(E,H)};D={axis:J,key:G,value:J.getKeyValueAt(G,H)};}else{D={axis:F,key:E,value:F.getKeyValueAt(E,H)};K={axis:J,key:G,value:J.getKeyValueAt(G,H)};}K.displayName=I.get("categoryDisplayName");D.displayName=I.get("valueDisplayName");K.value=K.axis.getKeyValueAt(K.key,H);D.value=D.axis.getKeyValueAt(D.key,H);return{category:K,value:D};},_sizeChanged:function(G){if(this._axesCollection){var F=this._axesCollection,E=0,D=F.length;for(;E-1;--Z){ag.unshift(Y);Y+=D[Z].get("width");}}if(O){F=[];W=O.length;Z=0;for(Z=W-1;Z>-1;--Z){I+=O[Z].get("width");F.unshift(Q-I);}}if(P){T=[];W=P.length;for(Z=W-1;Z>-1;--Z){T.unshift(ae);ae+=P[Z].get("height");}}if(ad){K=[];W=ad.length;for(Z=W-1;Z>-1;--Z){E+=ad[Z].get("height");K.unshift(aa-E);}}M=Q-(Y+I);N=aa-(E+ae);af.left=Y;af.top=ae;af.bottom=aa-E;af.right=Q-I;if(!U){L=this._getTopOverflow(D,O);R=this._getBottomOverflow(D,O);X=this._getLeftOverflow(ad,P);V=this._getRightOverflow(ad,P);S=L-ae;if(S>0){af.top=L;if(T){Z=0;W=T.length;for(;Z0){af.bottom=aa-R;if(K){Z=0;W=K.length;for(;Z0){af.left=X;if(ag){Z=0;W=ag.length;for(;Z0){af.right=Q-V;if(F){Z=0;W=F.length;for(;Z1){if(N===38){I=I<1?K-1:I-1;}else{if(N===40){I=I>=K-1?0:I+1;}}this._itemIndex=-1;}else{I=0;}this._seriesIndex=I;J=this.getSeries(parseInt(I,10));G=J.get("valueDisplayName")+" series.";}else{if(I>-1){G="";J=this.getSeries(parseInt(I,10));}else{I=0;this._seriesIndex=I;J=this.getSeries(parseInt(I,10)); -G=J.get("valueDisplayName")+" series.";}E=J._dataLength?J._dataLength:0;if(N===37){D=D>0?D-1:E-1;}else{if(N===39){D=D>=E-1?0:D+1;}}this._itemIndex=D;M=this.getSeriesItems(J,D);F=M.category;L=M.value;if(F&&L&&F.value&&L.value){G+=F.displayName+": "+F.axis.formatLabel.apply(this,[F.value,F.axis.get("labelFormat")])+", ";G+=L.displayName+": "+L.axis.formatLabel.apply(this,[L.value,L.axis.get("labelFormat")])+", ";}else{G+="No data available.";}G+=(D+1)+" of "+E+". ";}return G;}},{ATTRS:{allowContentOverflow:{value:false},axesStyles:{getter:function(){var F=this.get("axes"),D,E=this._axesStyles;if(F){for(D in F){if(F.hasOwnProperty(D)&&F[D] instanceof b.Axis){if(!E){E={};}E[D]=F[D].get("styles");}}}return E;},setter:function(F){var E=this.get("axes"),D;for(D in F){if(F.hasOwnProperty(D)&&E.hasOwnProperty(D)){this._setBaseAttribute(E[D],"styles",F[D]);}}}},seriesStyles:{getter:function(){var E=this._seriesStyles,F=this.get("graph"),G,D;if(F){G=F.get("seriesDictionary");if(G){E={};for(D in G){if(G.hasOwnProperty(D)){E[D]=G[D].get("styles");}}}}return E;},setter:function(G){var E,D,F;if(q.isArray(G)){F=this.get("seriesCollection");E=0;D=G.length;for(;E0){this.set("seriesKeys",E);}}return{values:{keys:E,type:D},category:{keys:[H],type:this.get("categoryType")}};},getSeriesItems:function(F,E){var G={axis:F.get("categoryAxis"),key:F.get("categoryKey"),displayName:F.get("categoryDisplayName")},D={axis:F.get("valueAxis"),key:F.get("valueKey"),displayName:F.get("valueDisplayName")}; -G.value=G.axis.getKeyValueAt(G.key,E);D.value=D.axis.getKeyValueAt(D.key,E);return{category:G,value:D};},_sizeChanged:function(D){this._redraw();},_redraw:function(){var F=this.get("graph"),D=this.get("width"),E=this.get("height"),G;if(F){G=Math.min(D,E);F.set("width",G);F.set("height",G);}},_tooltipLabelFunction:function(K,D,G,F,E){var J=g.createElement("div"),H=F.getTotalValues(),I=Math.round((D.value/H)*10000)/100;J.appendChild(g.createTextNode(K.displayName+": "+K.axis.get("labelFunction").apply(this,[K.value,K.axis.get("labelFormat")])));J.appendChild(g.createElement("br"));J.appendChild(g.createTextNode(D.displayName+": "+D.axis.get("labelFunction").apply(this,[D.value,D.axis.get("labelFormat")])));J.appendChild(g.createElement("br"));J.appendChild(g.createTextNode(I+"%"));return J;},_getAriaMessage:function(P){var F="",E,M,J,L,I=0,D=this._itemIndex,G=this.get("seriesCollection"),K,N,O,H;J=this.getSeries(parseInt(I,10));H=J.get("markers");K=H&&H.length?H.length:0;if(P===37){D=D>0?D-1:K-1;}else{if(P===39){D=D>=K-1?0:D+1;}}this._itemIndex=D;M=this.getSeriesItems(J,D);E=M.category;L=M.value;N=J.getTotalValues();O=Math.round((L.value/N)*10000)/100;if(E&&L){F+=E.displayName+": "+E.axis.formatLabel.apply(this,[E.value,E.axis.get("labelFormat")])+", ";F+=L.displayName+": "+L.axis.formatLabel.apply(this,[L.value,L.axis.get("labelFormat")])+", ";F+="Percent of total "+L.displayName+": "+O+"%,";}else{F+="No data available,";}F+=(D+1)+" of "+K+". ";return F;}},{ATTRS:{ariaDescription:{value:"Use the left and right keys to navigate through items.",setter:function(D){if(this._description){this._description.setContent("");this._description.appendChild(g.createTextNode(D));}return D;}},axes:{getter:function(){return this._axes;},setter:function(D){this._parseAxes(D);}},seriesCollection:{getter:function(){return this._getSeriesCollection();},setter:function(D){return this._setSeriesCollection(D);}},type:{value:"pie"}}});},"@VERSION@",{requires:["dom","datatype-number","datatype-date","event-custom","event-mouseenter","event-touch","widget","widget-position","widget-stack","graphics"]}); \ No newline at end of file +}},_defaultFillColors:["#66007f","#a86f41","#295454","#996ab2","#e8cdb7","#90bdbd","#000000","#c3b8ca","#968373","#678585"],_getPlotDefaults:function(){var D={fill:{type:"solid",alpha:1,colors:null,alphas:null,ratios:null},border:{weight:0,alpha:1},width:12,height:12,shape:"rect",padding:{top:0,left:0,right:0,bottom:0}};D.fill.color=this._getDefaultColor(this.get("graphOrder"),"fill");D.border.color=this._getDefaultColor(this.get("graphOrder"),"border");return D;}};b.Histogram=B;b.CartesianSeries=b.Base.create("cartesianSeries",b.Base,[b.Renderer],{_xDisplayName:null,_yDisplayName:null,_leftOrigin:null,_bottomOrigin:null,render:function(){this._setCanvas();this.addListeners();this.set("rendered",true);this.validate();},addListeners:function(){var E=this.get("xAxis"),D=this.get("yAxis");if(E){E.after("dataReady",b.bind(this._xDataChangeHandler,this));E.after("dataUpdate",b.bind(this._xDataChangeHandler,this));}if(D){D.after("dataReady",b.bind(this._yDataChangeHandler,this));D.after("dataUpdate",b.bind(this._yDataChangeHandler,this));}this.after("xAxisChange",this._xAxisChangeHandler);this.after("yAxisChange",this._yAxisChangeHandler);this.after("stylesChange",function(G){var F=this._updateAxisData();if(F){this.draw();}});this.after("widthChange",function(G){var F=this._updateAxisData();if(F){this.draw();}});this.after("heightChange",function(G){var F=this._updateAxisData();if(F){this.draw();}});this.after("visibleChange",this._handleVisibleChange);},_xAxisChangeHandler:function(E){var D=this.get("xAxis");D.after("dataReady",b.bind(this._xDataChangeHandler,this));D.after("dataUpdate",b.bind(this._xDataChangeHandler,this));},_yAxisChangeHandler:function(E){var D=this.get("yAxis");D.after("dataReady",b.bind(this._yDataChangeHandler,this));D.after("dataUpdate",b.bind(this._yDataChangeHandler,this));},GUID:"yuicartesianseries",_xDataChangeHandler:function(D){var E=this._updateAxisData();if(E){this.draw();}},_yDataChangeHandler:function(D){var E=this._updateAxisData();if(E){this.draw();}},_updateAxisData:function(){var H=this.get("xAxis"),E=this.get("yAxis"),F=this.get("xKey"),D=this.get("yKey"),G,I;if(!H||!E||!F||!D){return false;}I=H.getDataByKey(F);G=E.getDataByKey(D);if(!I||!G){return false;}this.set("xData",I.concat());this.set("yData",G.concat());return true;},validate:function(){if((this.get("xData")&&this.get("yData"))||this._updateAxisData()){this.draw();}else{this.fire("drawingComplete");}},_setCanvas:function(){var D=this.get("graph"),E=D.get("graphic");this.set("graphic",E);},setAreaData:function(){var U=q.isNumber,ai,ag,H=this.get("graph"),Q=H.get("width"),ab=H.get("height"),O=this.get("xAxis"),E=this.get("yAxis"),J=this.get("xData").concat(),ae=this.get("yData").concat(),Y,ac,al=O.getEdgeOffset(J.length,Q),N=E.getEdgeOffset(ae.length,ab),V=this.get("styles").padding,X=V.left,af=V.top,L=Q-(X+V.right+al),aa=ab-(af+V.bottom+N),T=[],ak=[],aj=O.get("maximum"),ad=O.get("minimum"),G=E.get("maximum"),D=E.get("minimum"),K=L/(aj-ad),R=aa/(G-D),M,ah=this.get("direction"),Z=0,P=[],W=[],I=this.get("xMarkerPlaneOffset"),F=this.get("yMarkerPlaneOffset"),S=this.get("graphic");S.set("width",Q);S.set("height",ab);M=J.length;al*=0.5;N*=0.5;if(ah==="vertical"){ae=ae.reverse();}this._leftOrigin=Math.round(((0-ad)*K)+X+al);this._bottomOrigin=Math.round((aa+af+N));if(D<0){this._bottomOrigin=this._bottomOrigin-((0-D)*R);}for(;Z0&&E>0)&&((this.get("xData")&&this.get("yData"))||this._updateAxisData())){if(this._drawing){this._callLater=true;return;}this._drawing=true;this._callLater=false;this.setAreaData();if(this.get("xcoords")&&this.get("ycoords")){this.drawSeries();}this._drawing=false;if(this._callLater){this.draw();}else{this._toggleVisible(this.get("visible"));this.fire("drawingComplete");}}}},_defaultPlaneOffset:4,_getDefaultStyles:function(){return{padding:{top:0,left:0,right:0,bottom:0}};},_defaultLineColors:["#426ab3","#d09b2c","#000000","#b82837","#b384b5","#ff7200","#779de3","#cbc8ba","#7ed7a6","#007a6c"],_defaultFillColors:["#6084d0","#eeb647","#6c6b5f","#d6484f","#ce9ed1","#ff9f3b","#93b7ff","#e0ddd0","#94ecba","#309687"],_defaultBorderColors:["#205096","#b38206","#000000","#94001e","#9d6fa0","#e55b00","#5e85c9","#adab9e","#6ac291","#006457"],_defaultSliceColors:["#66007f","#a86f41","#295454","#996ab2","#e8cdb7","#90bdbd","#000000","#c3b8ca","#968373","#678585"],_getDefaultColor:function(G,H){var E={line:this._defaultLineColors,fill:this._defaultFillColors,border:this._defaultBorderColors,slice:this._defaultSliceColors},F=E[H],D=F.length;G=G||0;if(G>=D){G=G%D;}H=H||"fill";return E[H][G];},_handleVisibleChange:function(D){this._toggleVisible(this.get("visible"));},getTotalValues:function(){var D=this.get("valueAxis").getTotalByKey(this.get("valueKey"));return D;},destructor:function(){if(this._path){this._path.destroy();}if(this._lineGraphic){this._lineGraphic.destroy();this._lineGraphic=null;}if(this.get("graphic")){this.get("graphic").destroy();}}},{ATTRS:{xDisplayName:{getter:function(){return this._xDisplayName||this.get("xKey");},setter:function(D){this._xDisplayName=D.toString();return D;}},yDisplayName:{getter:function(){return this._yDisplayName||this.get("yKey");},setter:function(D){this._yDisplayName=D.toString();return D;}},categoryDisplayName:{lazyAdd:false,getter:function(){return this.get("direction")=="vertical"?this.get("yDisplayName"):this.get("xDisplayName");},setter:function(D){if(this.get("direction")=="vertical"){this._yDisplayName=D;}else{this._xDisplayName=D;}return D;}},valueDisplayName:{lazyAdd:false,getter:function(){return this.get("direction")=="vertical"?this.get("xDisplayName"):this.get("yDisplayName"); +},setter:function(D){if(this.get("direction")=="vertical"){this._xDisplayName=D;}else{this._yDisplayName=D;}return D;}},type:{value:"cartesian"},order:{},graphOrder:{},xcoords:{},ycoords:{},chart:{readOnly:true,getter:function(){return this.get("graph").get("chart");}},graph:{},xAxis:{},yAxis:{},xKey:{setter:function(D){return D.toString();}},yKey:{setter:function(D){return D.toString();}},xData:{},yData:{},rendered:{value:false},width:{readOnly:true,getter:function(){this.get("graph").get("width");}},height:{readOnly:true,getter:function(){this.get("graph").get("height");}},visible:{value:true},xMarkerPlane:{},yMarkerPlane:{},xMarkerPlaneOffset:{getter:function(){var D=this.get("styles").marker;if(D&&D.width&&isFinite(D.width)){return D.width*0.5;}return this._defaultPlaneOffset;}},yMarkerPlaneOffset:{getter:function(){var D=this.get("styles").marker;if(D&&D.height&&isFinite(D.height)){return D.height*0.5;}return this._defaultPlaneOffset;}},direction:{value:"horizontal"},groupMarkers:{getter:function(){if(this._groupMarkers===undefined){return this.get("graph").get("groupMarkers");}else{return this._groupMarkers;}},setter:function(D){this._groupMarkers=D;return D;}}}});b.MarkerSeries=b.Base.create("markerSeries",b.CartesianSeries,[b.Plots],{drawSeries:function(){this.drawPlots();},_setStyles:function(D){if(!D.marker){D={marker:D};}D=this._parseMarkerStyles(D);return b.MarkerSeries.superclass._mergeStyles.apply(this,[D,this._getDefaultStyles()]);},_getDefaultStyles:function(){var D=this._mergeStyles({marker:this._getPlotDefaults()},b.MarkerSeries.superclass._getDefaultStyles());return D;}},{ATTRS:{type:{value:"marker"}}});b.LineSeries=b.Base.create("lineSeries",b.CartesianSeries,[b.Lines],{drawSeries:function(){this.drawLines();},_setStyles:function(D){if(!D.line){D={line:D};}return b.LineSeries.superclass._setStyles.apply(this,[D]);},_getDefaultStyles:function(){var D=this._mergeStyles({line:this._getLineDefaults()},b.LineSeries.superclass._getDefaultStyles());return D;}},{ATTRS:{type:{value:"line"}}});b.SplineSeries=b.Base.create("splineSeries",b.LineSeries,[b.CurveUtil,b.Lines],{drawSeries:function(){this.drawSpline();}},{ATTRS:{type:{value:"spline"}}});b.StackedSplineSeries=b.Base.create("stackedSplineSeries",b.SplineSeries,[b.StackingUtil],{setAreaData:function(){b.StackedSplineSeries.superclass.setAreaData.apply(this);this._stackCoordinates.apply(this);}},{ATTRS:{type:{value:"stackedSpline"}}});b.StackedMarkerSeries=b.Base.create("stackedMarkerSeries",b.MarkerSeries,[b.StackingUtil],{setAreaData:function(){b.StackedMarkerSeries.superclass.setAreaData.apply(this);this._stackCoordinates.apply(this);}},{ATTRS:{type:{value:"stackedMarker"}}});b.ColumnSeries=b.Base.create("columnSeries",b.MarkerSeries,[b.Histogram],{_getMarkerDimensions:function(E,D,G,H){var F={left:E+H};if(this._bottomOrigin>=D){F.top=D;F.calculatedSize=this._bottomOrigin-F.top;}else{F.top=this._bottomOrigin;F.calculatedSize=D-this._bottomOrigin;}return F;},updateMarkerState:function(F,R){if(this._markers&&this._markers[R]){var L=b.clone(this.get("styles").marker),V,G=this._getState(F),N=this.get("xcoords"),W=this.get("ycoords"),I=this._markers[R],T,D=this.get("graph"),E,J=D.seriesTypes[this.get("type")],S=J.length,M=0,H=0,P,O=0,K=[],Q=this.get("order"),U;V=G=="off"||!L[G]?b.clone(L):b.clone(L[G]);V.fill.color=this._getItemColor(V.fill.color,R);V.border.color=this._getItemColor(V.border.color,R);U=this._getMarkerDimensions(N[R],W[R],L.width,H);V.height=U.calculatedSize;V.width=Math.min(this._maxSize,V.width);I.set(V);for(;OO){H=M;}H-=M/2;}for(O=0;O=this._leftOrigin){F.left=this._leftOrigin;F.calculatedSize=E-F.left;}else{F.left=E;F.calculatedSize=this._leftOrigin-E;}return F;},updateMarkerState:function(F,R){if(this._markers&&this._markers[R]){var K=b.clone(this.get("styles").marker),V,G=this._getState(F),M=this.get("xcoords"),W=this.get("ycoords"),I=this._markers[R],T,D=this.get("graph"),J=D.seriesTypes[this.get("type")],S=J.length,E,L=0,H=0,O,N=0,Q=[],P=this.get("order"),U;V=G=="off"||!K[G]?K:K[G];V.fill.color=this._getItemColor(V.fill.color,R);V.border.color=this._getItemColor(V.border.color,R);U=this._getMarkerDimensions(M[R],W[R],K.height,H);V.width=U.calculatedSize;V.height=Math.min(this._maxSize,V.height);I.set(V);for(;NN){H=L;}H-=L/2;}for(N=0;Nthis.get("width")){P=this.width/H;U*=P;U=Math.max(U,1);}if(!F){M=R[Z-1];S=M.get("negativeBaseValues");Y=M.get("positiveBaseValues");if(!S||!Y){F=true;Y=[];S=[];}}else{S=[];Y=[];}this.set("negativeBaseValues",S);this.set("positiveBaseValues",Y);for(aa=0;aathis._bottomOrigin){Y[aa]=this._bottomOrigin;S[aa]=X;X-=ac;}else{Y[aa]=X;S[aa]=X;}}}else{if(X>this._bottomOrigin){X+=(S[aa]-this._bottomOrigin);ac=X-S[aa];S[aa]=X;X-=ac;}else{if(X<=this._bottomOrigin){X=Y[aa]-(this._bottomOrigin-X);ac=Y[aa]-X;Y[aa]=X;}}}if(!isNaN(ac)&&ac>0){J-=U/2;if(D){L.width[aa]=U;L.height[aa]=ac;N.push(J);K.push(X);}else{ad.width=U;ad.height=ac;ad.x=J;ad.y=X;if(E){ad.fill.color=E[aa%E.length];}if(O){ad.border.color=O[aa%O.length];}Q=this.getMarker(ad,T,aa);}}else{if(!D){this._markers.push(null);}}}if(D){this._createGroupMarker({fill:ad.fill,border:ad.border,dimensions:L,xvalues:N,yvalues:K,shape:ad.shape});}else{this._clearMarkerCache();}},updateMarkerState:function(K,I){if(this._markers&&this._markers[I]){var M,F,D=this._getState(K),L=this.get("xcoords"),J=this._markers[I],H=0,E,G;M=this.get("styles").marker;H=M.width*0.5;F=D=="off"||!M[D]?b.clone(M):b.clone(M[D]);F.height=J.get("height");F.x=(L[I]-H);F.y=J.get("y");F.id=J.get("id");E=F.fill.color;G=F.border.color;if(q.isArray(E)){F.fill.color=E[I%E.length];}else{F.fill.color=this._getItemColor(F.fill.color,I);}if(q.isArray(G)){F.border.color=G[I%G.length];}else{F.border.color=this._getItemColor(F.border.color,I);}J.set(F);}},_getPlotDefaults:function(){var D={fill:{type:"solid",alpha:1,colors:null,alphas:null,ratios:null},border:{weight:0,alpha:1},width:24,height:24,shape:"rect",padding:{top:0,left:0,right:0,bottom:0}};D.fill.color=this._getDefaultColor(this.get("graphOrder"),"fill");D.border.color=this._getDefaultColor(this.get("graphOrder"),"border");return D;}},{ATTRS:{type:{value:"stackedColumn"},negativeBaseValues:{value:null},positiveBaseValues:{value:null}}});b.StackedBarSeries=b.Base.create("stackedBarSeries",b.BarSeries,[b.StackingUtil],{drawSeries:function(){if(this.get("xcoords").length<1){return;}var U=q.isNumber,ac=b.clone(this.get("styles").marker),T=ac.width,ab=ac.height,V=this.get("xcoords"),ae=this.get("ycoords"),Z=0,aa=V.length,W=ae[0],H=this.get("type"),G=this.get("graph"),Q=G.seriesTypes[H],O,Y=this.get("order"),S=this.get("graphOrder"),I,P,L,R,X,E,N,F=Y===0,ad=aa*ab,K={width:[],height:[]},M=[],J=[],D=this.get("groupMarkers");if(q.isArray(ac.fill.color)){E=ac.fill.color.concat();}if(q.isArray(ac.border.color)){N=ac.border.color.concat(); +}this._createMarkerCache();if(ad>this.get("height")){O=this.height/ad;ab*=O;ab=Math.max(ab,1);}if(!F){L=Q[Y-1];R=L.get("negativeBaseValues");X=L.get("positiveBaseValues");if(!R||!X){F=true;X=[];R=[];}}else{R=[];X=[];}this.set("negativeBaseValues",R);this.set("positiveBaseValues",X);for(Z=0;Zthis._leftOrigin){X[Z]=I;R[Z]=this._leftOrigin;I-=T;}else{if(I=this._leftOrigin){I+=(X[Z]-this._leftOrigin);T=I-X[Z];X[Z]=I;I-=T;}}}if(!isNaN(T)&&T>0){W-=ab/2;if(D){K.width[Z]=T;K.height[Z]=ab;M.push(I);J.push(W);}else{ac.width=T;ac.height=ab;ac.x=I;ac.y=W;if(E){ac.fill.color=E[Z%E.length];}if(N){ac.border.color=N[Z%N.length];}P=this.getMarker(ac,S,Z);}}else{if(!D){this._markers.push(null);}}}if(D){this._createGroupMarker({fill:ac.fill,border:ac.border,dimensions:K,xvalues:M,yvalues:J,shape:ac.shape});}else{this._clearMarkerCache();}},updateMarkerState:function(L,I){if(this._markers[I]){var D=this._getState(L),H=this.get("ycoords"),J=this._markers[I],M=this.get("styles").marker,K=M.height,F=D=="off"||!M[D]?b.clone(M):b.clone(M[D]),E,G;F.y=(H[I]-K/2);F.x=J.get("x");F.width=J.get("width");F.id=J.get("id");E=F.fill.color;G=F.border.color;if(q.isArray(E)){F.fill.color=E[I%E.length];}else{F.fill.color=this._getItemColor(F.fill.color,I);}if(q.isArray(G)){F.border.color=G[I%G.length];}else{F.border.color=this._getItemColor(F.border.color,I);}J.set(F);}},_getPlotDefaults:function(){var D={fill:{type:"solid",alpha:1,colors:null,alphas:null,ratios:null},border:{weight:0,alpha:1},width:24,height:24,shape:"rect",padding:{top:0,left:0,right:0,bottom:0}};D.fill.color=this._getDefaultColor(this.get("graphOrder"),"fill");D.border.color=this._getDefaultColor(this.get("graphOrder"),"border");return D;}},{ATTRS:{type:{value:"stackedBar"},direction:{value:"vertical"},negativeBaseValues:{value:null},positiveBaseValues:{value:null}}});b.PieSeries=b.Base.create("pieSeries",b.MarkerSeries,[],{_map:null,_image:null,_setMap:function(){var F="pieHotSpotMapi_"+Math.round(100000*Math.random()),D=this.get("graph").get("contentBox"),E;if(this._image){D.removeChild(this._image);while(this._areaNodes&&this._areaNodes.length>0){E=this._areaNodes.shift();this._map.removeChild(E);}D.removeChild(this._map);}this._image=g.createElement("img");this._image.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAABCAYAAAD9yd/wAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABJJREFUeNpiZGBgSGPAAgACDAAIkABoFyloZQAAAABJRU5ErkJggg==";D.appendChild(this._image);this._image.setAttribute("usemap","#"+F);this._image.style.zIndex=3;this._image.style.opacity=0;this._image.setAttribute("alt","imagemap");this._map=g.createElement("map");this._map.style.zIndex=5;D.appendChild(this._map);this._map.setAttribute("name",F);this._map.setAttribute("id",F);this._areaNodes=[];},_categoryDisplayName:null,_valueDisplayName:null,addListeners:function(){var D=this.get("categoryAxis"),E=this.get("valueAxis");if(D){D.after("dataReady",b.bind(this._categoryDataChangeHandler,this));D.after("dataUpdate",b.bind(this._categoryDataChangeHandler,this));}if(E){E.after("dataReady",b.bind(this._valueDataChangeHandler,this));E.after("dataUpdate",b.bind(this._valueDataChangeHandler,this));}this.after("categoryAxisChange",this.categoryAxisChangeHandler);this.after("valueAxisChange",this.valueAxisChangeHandler);this.after("stylesChange",this._updateHandler);},validate:function(){this.draw();this._renderered=true;},_categoryAxisChangeHandler:function(D){var E=this.get("categoryAxis");E.after("dataReady",b.bind(this._categoryDataChangeHandler,this));E.after("dataUpdate",b.bind(this._categoryDataChangeHandler,this));},_valueAxisChangeHandler:function(D){var E=this.get("valueAxis");E.after("dataReady",b.bind(this._valueDataChangeHandler,this));E.after("dataUpdate",b.bind(this._valueDataChangeHandler,this));},GUID:"pieseries",_categoryDataChangeHandler:function(D){if(this._rendered&&this.get("categoryKey")&&this.get("valueKey")){this.draw();}},_valueDataChangeHandler:function(D){if(this._rendered&&this.get("categoryKey")&&this.get("valueKey")){this.draw();}},draw:function(){var F=this.get("graph"),D=F.get("width"),E=F.get("height");if(isFinite(D)&&isFinite(E)&&D>0&&E>0){this._rendered=true;if(this._drawing){this._callLater=true;return;}this._drawing=true;this._callLater=false;this.drawSeries();this._drawing=false;if(this._callLater){this.draw();}else{this.fire("drawingComplete");}}},drawPlots:function(){var F=this.get("valueAxis").getDataByKey(this.get("valueKey")).concat(),G=this.get("categoryAxis").getDataByKey(this.get("categoryKey")).concat(),J=0,ai=F.length,R=this.get("styles").marker,D=R.fill.colors,aj=R.fill.alphas||["1"],N=R.border.colors,H=[R.border.weight],I=[R.border.alpha],ak=H.concat(),T=N.concat(),V=I.concat(),af,ah,W=R.padding,E=this.get("graph"),P=Math.min(E.get("width"),E.get("height")),U=P-(W.left+W.right),ae=P-(W.top+W.bottom),ac=-90,O=U/2,X=ae/2,K=Math.min(O,X),ad=0,aa,ag=0,Z,ab,L,S,M,Q=this.get("graphOrder"),Y=b.Graphic.NAME=="canvasGraphic";for(;ad=D){G=G%D;}H=H||"fill";return E[H][G];}},{ATTRS:{type:{value:"pie"},order:{},graph:{},categoryAxis:{value:null,validator:function(D){return D!==this.get("categoryAxis");}},valueAxis:{value:null,validator:function(D){return D!==this.get("valueAxis");}},categoryKey:{value:null,validator:function(D){return D!==this.get("categoryKey");}},valueKey:{value:null,validator:function(D){return D!==this.get("valueKey");}},categoryDisplayName:{setter:function(D){this._categoryDisplayName=D;return D;},getter:function(){return this._categoryDisplayName||this.get("categoryKey");}},valueDisplayName:{setter:function(D){this._valueDisplayName=D;return D;},getter:function(){return this._valueDisplayName||this.get("valueKey");}},slices:null}});b.Gridlines=b.Base.create("gridlines",b.Base,[b.Renderer],{_path:null,remove:function(){var D=this._path;if(D){D.destroy();}},draw:function(){if(this.get("axis")&&this.get("graph")){this._drawGridlines();}},_drawGridlines:function(){var R,D=this.get("axis"),L=D.get("position"),O,I=0,F,M=this.get("direction"),P=this.get("graph"),N=P.get("width"),K=P.get("height"),Q=this.get("styles").line,H=Q.color,J=Q.weight,G=Q.alpha,E=M=="vertical"?this._verticalLine:this._horizontalLine;if(isFinite(N)&&isFinite(K)&&N>0&&K>0){if(L!="none"&&D&&D.get("tickPoints")){O=D.get("tickPoints");F=O.length;}else{O=[];F=D.get("styles").majorUnit.count;for(;IF){E=D[F];}return E;},getSeriesByKey:function(F){var E=this._seriesDictionary,D;if(E&&E.hasOwnProperty(F)){D=E[F];}return D;},addDispatcher:function(D){if(!this._dispatchers){this._dispatchers=[];}this._dispatchers.push(D);},_seriesCollection:null,_seriesDictionary:null,_parseSeriesCollection:function(H){if(!H){return;}var E=H.length,G=0,F,D;if(!this.get("seriesCollection")){this._seriesCollection=[];}if(!this._seriesDictionary){this._seriesDictionary={};}if(!this.seriesTypes){this.seriesTypes=[];}for(;G-1){this._dispatchers.splice(D,1);}if(this._dispatchers.length<1){G=this.get("graphic");if(!G.get("autoDraw")){G._redraw();}this.fire("chartRendered");}},_getDefaultStyles:function(){var D={background:{shape:"rect",fill:{color:"#faf9f2"},border:{color:"#dad8c9",weight:1}}};return D;},destructor:function(){if(this._graphic){this._graphic.destroy();}if(this._background){this._background.get("graphic").destroy();}if(this._gridlines){this._gridlines.get("graphic").destroy();}}},{ATTRS:{x:{setter:function(D){this.get("boundingBox").setStyle("left",D+"px");return D;}},y:{setter:function(D){this.get("boundingBox").setStyle("top",D+"px");return D;}},chart:{},seriesCollection:{getter:function(){return this._seriesCollection;},setter:function(D){this._parseSeriesCollection(D);return this._seriesCollection;}},showBackground:{value:true},seriesDictionary:{readOnly:true,getter:function(){return this._seriesDictionary;}},horizontalGridlines:{value:null,setter:function(E){var D=this.get("horizontalGridlines");if(D&&D instanceof b.Gridlines){D.remove();}if(E instanceof b.Gridlines){D=E;E.set("graph",this);return E;}else{if(E&&E.axis){D=new b.Gridlines({direction:"horizontal",axis:E.axis,graph:this,styles:E.styles});return D;}}}},verticalGridlines:{value:null,setter:function(E){var D=this.get("verticalGridlines");if(D&&D instanceof b.Gridlines){D.remove();}if(E instanceof b.Gridlines){D=E;E.set("graph",this);return E;}else{if(E&&E.axis){D=new b.Gridlines({direction:"vertical",axis:E.axis,graph:this,styles:E.styles});return D;}}}},background:{getter:function(){if(!this._background){this._backgroundGraphic=new b.Graphic({render:this.get("contentBox")});this._backgroundGraphic.get("node").style.zIndex=0;this._background=this._backgroundGraphic.addShape({type:"rect"});}return this._background;}},gridlines:{readOnly:true,getter:function(){if(!this._gridlines){this._gridlinesGraphic=new b.Graphic({render:this.get("contentBox")});this._gridlinesGraphic.get("node").style.zIndex=1;this._gridlines=this._gridlinesGraphic.addShape({type:"path"});}return this._gridlines;}},graphic:{readOnly:true,getter:function(){if(!this._graphic){this._graphic=new b.Graphic({render:this.get("contentBox")});this._graphic.get("node").style.zIndex=2;this._graphic.set("autoDraw",false);}return this._graphic;}},groupMarkers:{value:false}}});function o(){}o.ATTRS={ariaLabel:{value:"Chart Application",setter:function(E){var D=this.get("contentBox");if(D){D.setAttribute("aria-label",E);}return E;}},ariaDescription:{value:"Use the up and down keys to navigate between series. Use the left and right keys to navigate through items in a series.",setter:function(D){if(this._description){this._description.setContent("");this._description.appendChild(g.createTextNode(D));}return D;}},tooltip:{valueFn:"_getTooltip",setter:function(D){return this._updateTooltip(D);}},categoryKey:{value:"category"},categoryType:{value:"category"},interactionType:{value:"marker"},dataProvider:{setter:function(D){return this._setDataValues(D);}},seriesKeys:{},axesCollection:{},graph:{valueFn:"_getGraph"},groupMarkers:{value:false,setter:function(D){if(this.get("graph")){this.get("graph").set("groupMarkers",D);}return D;}}};o.prototype={_itemRendered:function(D){this._itemRenderQueue=this._itemRenderQueue.splice(1+b.Array.indexOf(this._itemRenderQueue,D.currentTarget),1); +if(this._itemRenderQueue.length<1){this._redraw();}},_getGraph:function(){var D=new b.Graph({chart:this,groupMarkers:this.get("groupMarkers")});D.after("chartRendered",b.bind(function(E){this.fire("chartRendered");},this));return D;},getSeries:function(F){var D=null,E=this.get("graph");if(E){if(q.isNumber(F)){D=E.getSeriesByIndex(F);}else{D=E.getSeriesByKey(F);}}return D;},getAxisByKey:function(F){var D,E=this.get("axes");if(E&&E.hasOwnProperty(F)){D=E[F];}return D;},getCategoryAxis:function(){var E,D=this.get("categoryKey"),F=this.get("axes");if(F.hasOwnProperty(D)){E=F[D];}return E;},_direction:"horizontal",_dataProvider:null,_setDataValues:function(I){if(q.isArray(I[0])){var H,K=[],F=I[0],G=0,E=F.length,J,D=I.length;for(;G"),F=b.UA.ie,D=(F&&F<8)?"rect(1px 1px 1px 1px)":"rect(1px, 1px, 1px, 1px)";E.setStyle("position","absolute");E.setStyle("height","1px");E.setStyle("width","1px");E.setStyle("overflow","hidden");E.setStyle("clip",D);return E;},syncUI:function(){this._redraw();},bindUI:function(){this.after("tooltipChange",b.bind(this._tooltipChangeHandler,this));this.after("widthChange",this._sizeChanged);this.after("heightChange",this._sizeChanged);var K=this.get("tooltip"),E="mouseout",L="mouseover",F=this.get("contentBox"),D=this.get("interactionType"),I=0,J,H="."+n,G=((v&&("ontouchstart" in v))&&!(b.UA.chrome&&b.UA.chrome<6));b.on("keydown",b.bind(function(O){var N=O.keyCode,M=parseFloat(N),P;if(M>36&&M<41){O.halt();P=this._getAriaMessage(M);this._liveRegion.setContent("");this._liveRegion.appendChild(g.createTextNode(P));}},this),this.get("contentBox"));if(D=="marker"){E=K.hideEvent;L=K.showEvent;if(G){b.delegate("touchend",b.bind(this._markerEventDispatcher,this),F,H);b.on("touchend",b.bind(function(M){M.halt(true);if(this._activeMarker){this._activeMarker=null;this.hideTooltip(M);}},this));}else{b.delegate("mouseenter",b.bind(this._markerEventDispatcher,this),F,H);b.delegate("mousedown",b.bind(this._markerEventDispatcher,this),F,H);b.delegate("mouseup",b.bind(this._markerEventDispatcher,this),F,H);b.delegate("mouseleave",b.bind(this._markerEventDispatcher,this),F,H);b.delegate("click",b.bind(this._markerEventDispatcher,this),F,H);b.delegate("mousemove",b.bind(this._positionTooltip,this),F,H);}}else{if(D=="planar"){if(G){this._overlay.on("touchend",b.bind(this._planarEventDispatcher,this));}else{this._overlay.on("mousemove",b.bind(this._planarEventDispatcher,this));this.on("mouseout",this.hideTooltip);}}}if(K){this.on("markerEvent:touchend",b.bind(function(N){var M=N.series.get("markers")[N.index];if(this._activeMarker&&M===this._activeMarker){this._activeMarker=null;this.hideTooltip(N);}else{this._activeMarker=M;K.markerEventHandler.apply(this,[N]);}},this));if(E&&L&&E==L){this.on(D+"Event:"+E,this.toggleTooltip);}else{if(L){this.on(D+"Event:"+L,K[D+"EventHandler"]);}if(E){if(q.isArray(E)){J=E.length;for(;I=I[X].start){M=X;break;}}Y=E.length;for(X=0;X-1){P.updateMarkerState("mouseout",J);}if(W&&W[M]>-1){if(ad&&!isNaN(M)&&M>-1){P.updateMarkerState("mouseover",M);}ab=this.getSeriesItems(P,M);H.push(ab.category);R.push(ab.value);S.push(P);}}this._selectedIndex=M;if(M>-1){this.fire("planarEvent:mouseover",{categoryItem:H,valueItem:R,x:O,y:N,pageX:F,pageY:D,items:S,index:M,originEvent:Z});}else{this.fire("planarEvent:mouseout");}}},_type:"combo",_itemRenderQueue:null,_addToAxesRenderQueue:function(D){if(!this._itemRenderQueue){this._itemRenderQueue=[];}if(b.Array.indexOf(this._itemRenderQueue,D)<0){this._itemRenderQueue.push(D);}},_addToAxesCollection:function(D,F){var E=this.get(D+"AxesCollection");if(!E){E=[];this.set(D+"AxesCollection",E);}E.push(F);},_getDefaultSeriesCollection:function(){return this._parseSeriesCollection();},_parseSeriesCollection:function(W){var M=this.get("direction"),D=W||[],T,Q,O=[],J,I=this.get("seriesKeys").concat(),S,H,P,G=this.get("type"),U,L,V,E,F=this.get("categoryKey"),R=this.get("showMarkers"),N=this.get("showAreaFill"),K=this.get("showLines");if(M=="vertical"){T="yAxis";L="yKey";Q="xAxis";V="xKey";}else{T="xAxis";L="xKey";Q="yAxis";V="yKey";}P=D.length;for(S=0;S-1){I.splice(H,1);}O.push(U);}}if(I.length>0){O=O.concat(I);}P=O.length;for(S=0; +S0){F.set("overlapGraph",false);}M[J]=F;}}}return M;},_addAxes:function(){var I=this.get("axes"),E,G,J,D=this.get("width"),F=this.get("height"),H=b.Node.one(this._parentNode);if(!this._axesCollection){this._axesCollection=[];}for(E in I){if(I.hasOwnProperty(E)){G=I[E];if(G instanceof b.Axis){if(!D){this.set("width",H.get("offsetWidth"));D=this.get("width");}if(!F){this.set("height",H.get("offsetHeight"));F=this.get("height");}this._addToAxesRenderQueue(G);J=G.get("position");if(!this.get(J+"AxesCollection")){this.set(J+"AxesCollection",[G]);}else{this.get(J+"AxesCollection").push(G);}this._axesCollection.push(G);if(G.get("keys").hasOwnProperty(this.get("categoryKey"))){this.set("categoryAxis",G);}G.render(this.get("contentBox"));}}}},_addSeries:function(){var D=this.get("graph"),E=this.get("seriesCollection");D.render(this.get("contentBox"));},_addGridlines:function(){var N=this.get("graph"),E=this.get("horizontalGridlines"),F=this.get("verticalGridlines"),M=this.get("direction"),O=this.get("leftAxesCollection"),I=this.get("rightAxesCollection"),K=this.get("bottomAxesCollection"),G=this.get("topAxesCollection"),H,D=this.get("categoryAxis"),L,J;if(this._axesCollection){H=this._axesCollection.concat();H.splice(b.Array.indexOf(H,D),1);}if(E){if(O&&O[0]){L=O[0];}else{if(I&&I[0]){L=I[0];}else{L=M=="horizontal"?D:H[0];}}if(!this._getBaseAttribute(E,"axis")&&L){this._setBaseAttribute(E,"axis",L);}if(this._getBaseAttribute(E,"axis")){N.set("horizontalGridlines",E);}}if(F){if(K&&K[0]){J=K[0];}else{if(G&&G[0]){J=G[0];}else{J=M=="vertical"?D:H[0];}}if(!this._getBaseAttribute(F,"axis")&&J){this._setBaseAttribute(F,"axis",J);}if(this._getBaseAttribute(F,"axis")){N.set("verticalGridlines",F);}}},_getAllKeys:function(I){var F=0,D=I.length,H,E,G={};for(;F0){N=P[0];this.set("categoryKey",N);}G[W]=E;}else{if(W==F){G[W]=E;}else{G[W]=E;if(W!=D&&P&&q.isArray(P)){K=P.length;for(M=0;M-1){H.splice(Q,1);}U=R.length;for(W=0;W-1){H.splice(Q,1);}}if(!G.hasOwnProperty(F)){G[F]={};}if(!(this._getBaseAttribute(G[F],"keys"))){this._setBaseAttribute(G[F],"keys",[N]); +}if(!(this._getBaseAttribute(G[F],"position"))){this._setBaseAttribute(G[F],"position",I);}if(!(this._getBaseAttribute(G[F],"type"))){this._setBaseAttribute(G[F],"type",this.get("categoryType"));}if(!G.hasOwnProperty(D)&&H&&H.length>0){G[D]={keys:H};J.push(G[D]);}if(R.length>0){if(H.length>0){H=R.concat(H);}else{H=R;}}if(G.hasOwnProperty(D)){if(!(this._getBaseAttribute(G[D],"position"))){this._setBaseAttribute(G[D],"position",this._getDefaultAxisPosition(G[D],J,L));}if(!(this._getBaseAttribute(G[D],"type"))){this._setBaseAttribute(G[D],"type",Y);}if(!(this._getBaseAttribute(G[D],"keys"))){this._setBaseAttribute(G[D],"keys",H);}}this.set("seriesKeys",H);return G;},_getDefaultAxisPosition:function(G,E,D){var H=this.get("direction"),F=b.Array.indexOf(E,G);if(E[F-1]&&E[F-1].position){if(H=="horizontal"){if(E[F-1].position=="left"){D="right";}else{if(E[F-1].position=="right"){D="left";}}}else{if(E[F-1].position=="bottom"){D="top";}else{D="bottom";}}}return D;},getSeriesItems:function(I,H){var J=I.get("xAxis"),F=I.get("yAxis"),G=I.get("xKey"),E=I.get("yKey"),K,D;if(this.get("direction")=="vertical"){K={axis:F,key:E,value:F.getKeyValueAt(E,H)};D={axis:J,key:G,value:J.getKeyValueAt(G,H)};}else{D={axis:F,key:E,value:F.getKeyValueAt(E,H)};K={axis:J,key:G,value:J.getKeyValueAt(G,H)};}K.displayName=I.get("categoryDisplayName");D.displayName=I.get("valueDisplayName");K.value=K.axis.getKeyValueAt(K.key,H);D.value=D.axis.getKeyValueAt(D.key,H);return{category:K,value:D};},_sizeChanged:function(G){if(this._axesCollection){var F=this._axesCollection,E=0,D=F.length;for(;E-1;--Z){ag.unshift(Y);Y+=D[Z].get("width");}}if(O){F=[];W=O.length;Z=0;for(Z=W-1;Z>-1;--Z){I+=O[Z].get("width");F.unshift(Q-I);}}if(P){T=[];W=P.length;for(Z=W-1;Z>-1;--Z){T.unshift(ae);ae+=P[Z].get("height");}}if(ad){K=[];W=ad.length;for(Z=W-1;Z>-1;--Z){E+=ad[Z].get("height");K.unshift(aa-E);}}M=Q-(Y+I);N=aa-(E+ae);af.left=Y;af.top=ae;af.bottom=aa-E;af.right=Q-I;if(!U){L=this._getTopOverflow(D,O);R=this._getBottomOverflow(D,O);X=this._getLeftOverflow(ad,P);V=this._getRightOverflow(ad,P);S=L-ae;if(S>0){af.top=L;if(T){Z=0;W=T.length;for(;Z0){af.bottom=aa-R;if(K){Z=0;W=K.length;for(;Z0){af.left=X;if(ag){Z=0;W=ag.length;for(;Z0){af.right=Q-V;if(F){Z=0;W=F.length;for(;Z1){if(N===38){I=I<1?K-1:I-1;}else{if(N===40){I=I>=K-1?0:I+1;}}this._itemIndex=-1;}else{I=0;}this._seriesIndex=I;J=this.getSeries(parseInt(I,10));G=J.get("valueDisplayName")+" series.";}else{if(I>-1){G="";J=this.getSeries(parseInt(I,10));}else{I=0;this._seriesIndex=I;J=this.getSeries(parseInt(I,10));G=J.get("valueDisplayName")+" series.";}E=J._dataLength?J._dataLength:0;if(N===37){D=D>0?D-1:E-1;}else{if(N===39){D=D>=E-1?0:D+1;}}this._itemIndex=D;M=this.getSeriesItems(J,D);F=M.category;L=M.value;if(F&&L&&F.value&&L.value){G+=F.displayName+": "+F.axis.formatLabel.apply(this,[F.value,F.axis.get("labelFormat")])+", ";G+=L.displayName+": "+L.axis.formatLabel.apply(this,[L.value,L.axis.get("labelFormat")])+", ";}else{G+="No data available.";}G+=(D+1)+" of "+E+". ";}return G;}},{ATTRS:{allowContentOverflow:{value:false},axesStyles:{getter:function(){var F=this.get("axes"),D,E=this._axesStyles;if(F){for(D in F){if(F.hasOwnProperty(D)&&F[D] instanceof b.Axis){if(!E){E={};}E[D]=F[D].get("styles");}}}return E;},setter:function(F){var E=this.get("axes"),D;for(D in F){if(F.hasOwnProperty(D)&&E.hasOwnProperty(D)){this._setBaseAttribute(E[D],"styles",F[D]);}}}},seriesStyles:{getter:function(){var E=this._seriesStyles,F=this.get("graph"),G,D;if(F){G=F.get("seriesDictionary");if(G){E={};for(D in G){if(G.hasOwnProperty(D)){E[D]=G[D].get("styles");}}}}return E;},setter:function(G){var E,D,F;if(q.isArray(G)){F=this.get("seriesCollection");E=0;D=G.length;for(;E0){this.set("seriesKeys",E);}}return{values:{keys:E,type:D},category:{keys:[H],type:this.get("categoryType")}};},getSeriesItems:function(F,E){var G={axis:F.get("categoryAxis"),key:F.get("categoryKey"),displayName:F.get("categoryDisplayName")},D={axis:F.get("valueAxis"),key:F.get("valueKey"),displayName:F.get("valueDisplayName")};G.value=G.axis.getKeyValueAt(G.key,E);D.value=D.axis.getKeyValueAt(D.key,E);return{category:G,value:D};},_sizeChanged:function(D){this._redraw();},_redraw:function(){var F=this.get("graph"),D=this.get("width"),E=this.get("height"),G;if(F){G=Math.min(D,E);F.set("width",G);F.set("height",G);}},_tooltipLabelFunction:function(K,D,G,F,E){var J=g.createElement("div"),H=F.getTotalValues(),I=Math.round((D.value/H)*10000)/100;J.appendChild(g.createTextNode(K.displayName+": "+K.axis.get("labelFunction").apply(this,[K.value,K.axis.get("labelFormat")])));J.appendChild(g.createElement("br"));J.appendChild(g.createTextNode(D.displayName+": "+D.axis.get("labelFunction").apply(this,[D.value,D.axis.get("labelFormat")])));J.appendChild(g.createElement("br"));J.appendChild(g.createTextNode(I+"%"));return J;},_getAriaMessage:function(P){var F="",E,M,J,L,I=0,D=this._itemIndex,G=this.get("seriesCollection"),K,N,O,H;J=this.getSeries(parseInt(I,10));H=J.get("markers");K=H&&H.length?H.length:0;if(P===37){D=D>0?D-1:K-1;}else{if(P===39){D=D>=K-1?0:D+1;}}this._itemIndex=D;M=this.getSeriesItems(J,D);E=M.category;L=M.value;N=J.getTotalValues();O=Math.round((L.value/N)*10000)/100;if(E&&L){F+=E.displayName+": "+E.axis.formatLabel.apply(this,[E.value,E.axis.get("labelFormat")])+", ";F+=L.displayName+": "+L.axis.formatLabel.apply(this,[L.value,L.axis.get("labelFormat")])+", ";F+="Percent of total "+L.displayName+": "+O+"%,";}else{F+="No data available,";}F+=(D+1)+" of "+K+". ";return F;}},{ATTRS:{ariaDescription:{value:"Use the left and right keys to navigate through items.",setter:function(D){if(this._description){this._description.setContent("");this._description.appendChild(g.createTextNode(D));}return D;}},axes:{getter:function(){return this._axes;},setter:function(D){this._parseAxes(D);}},seriesCollection:{getter:function(){return this._getSeriesCollection();},setter:function(D){return this._setSeriesCollection(D);}},type:{value:"pie"}}});},"@VERSION@",{requires:["dom","datatype-number","datatype-date","event-custom","event-mouseenter","event-touch","widget","widget-position","widget-stack","graphics"]}); \ No newline at end of file diff --git a/build/charts-base/charts-base.js b/build/charts-base/charts-base.js index 6b4d8c9a2ca..a0969d32da7 100644 --- a/build/charts-base/charts-base.js +++ b/build/charts-base/charts-base.js @@ -3333,7 +3333,7 @@ Y.Axis = Y.Base.create("axis", Y.Widget, [Y.Renderer], { * @type Function */ appendLabelFunction: { - getter: function() + valueFn: function() { return this._setText; } @@ -3354,7 +3354,7 @@ Y.Axis = Y.Base.create("axis", Y.Widget, [Y.Renderer], { * @type Function */ appendTitleFunction: { - getter: function() + valueFn: function() { return this._setText; } @@ -7350,6 +7350,10 @@ Y.CartesianSeries = Y.Base.create("cartesianSeries", Y.Base, [Y.Renderer], { } this._leftOrigin = Math.round(((0 - xMin) * xScaleFactor) + leftPadding + xOffset); this._bottomOrigin = Math.round((dataHeight + topPadding + yOffset)); + if(yMin < 0) + { + this._bottomOrigin = this._bottomOrigin - ((0 - yMin) * yScaleFactor); + } for (; i < dataLength; ++i) { xValue = parseFloat(xData[i]); @@ -7608,11 +7612,24 @@ Y.CartesianSeries = Y.Base.create("cartesianSeries", Y.Base, [Y.Renderer], { * @readOnly */ categoryDisplayName: { - readOnly: true, + lazyAdd: false, getter: function() { return this.get("direction") == "vertical" ? this.get("yDisplayName") : this.get("xDisplayName"); + }, + + setter: function(val) + { + if(this.get("direction") == "vertical") + { + this._yDisplayName = val; + } + else + { + this._xDisplayName = val; + } + return val; } }, @@ -7624,11 +7641,24 @@ Y.CartesianSeries = Y.Base.create("cartesianSeries", Y.Base, [Y.Renderer], { * @readOnly */ valueDisplayName: { - readOnly: true, + lazyAdd: false, getter: function() { return this.get("direction") == "vertical" ? this.get("xDisplayName") : this.get("yDisplayName"); + }, + + setter: function(val) + { + if(this.get("direction") == "vertical") + { + this._xDisplayName = val; + } + else + { + this._yDisplayName = val; + } + return val; } }, @@ -8161,58 +8191,6 @@ Y.SplineSeries = Y.Base.create("splineSeries", Y.LineSeries, [Y.CurveUtil, Y.Li -/** - * AreaSplineSeries renders an area graph with data points connected by a curve. - * - * @module charts - * @class AreaSplineSeries - * @constructor - * @extends CartesianSeries - * @uses Fills - * @uses CurveUtil - */ -Y.AreaSplineSeries = Y.Base.create("areaSplineSeries", Y.CartesianSeries, [Y.Fills, Y.CurveUtil], { - /** - * @protected - * - * Draws the series. - * - * @method drawSeries - */ - drawSeries: function() - { - this.drawAreaSpline(); - } -}, { - ATTRS : { - /** - * Read-only attribute indicating the type of series. - * - * @attribute type - * @type String - * @default areaSpline - */ - type: { - value:"areaSpline" - } - - /** - * Style properties used for drawing area fills. This attribute is inherited from `Renderer`. Below are the default values: - * - *
- *
color
The color of the fill. The default value is determined by the order of the series on the graph. The color will be - * retrieved from the following array: - * `["#66007f", "#a86f41", "#295454", "#996ab2", "#e8cdb7", "#90bdbd","#000000","#c3b8ca", "#968373", "#678585"]` - *
- *
alpha
Number between 0 and 1 that indicates the opacity of the fill. The default value is 1
- *
- * - * @attribute styles - * @type Object - */ - } -}); - /** * StackedSplineSeries creates spline graphs in which the different series are stacked along a value axis * to indicate their contribution to a cumulative total. @@ -8687,6 +8665,58 @@ Y.AreaSeries = Y.Base.create("areaSeries", Y.CartesianSeries, [Y.Fills], { +/** + * AreaSplineSeries renders an area graph with data points connected by a curve. + * + * @module charts + * @class AreaSplineSeries + * @constructor + * @extends CartesianSeries + * @uses Fills + * @uses CurveUtil + */ +Y.AreaSplineSeries = Y.Base.create("areaSplineSeries", Y.AreaSeries, [Y.CurveUtil], { + /** + * @protected + * + * Draws the series. + * + * @method drawSeries + */ + drawSeries: function() + { + this.drawAreaSpline(); + } +}, { + ATTRS : { + /** + * Read-only attribute indicating the type of series. + * + * @attribute type + * @type String + * @default areaSpline + */ + type: { + value:"areaSpline" + } + + /** + * Style properties used for drawing area fills. This attribute is inherited from `Renderer`. Below are the default values: + * + *
+ *
color
The color of the fill. The default value is determined by the order of the series on the graph. The color will be + * retrieved from the following array: + * `["#66007f", "#a86f41", "#295454", "#996ab2", "#e8cdb7", "#90bdbd","#000000","#c3b8ca", "#968373", "#678585"]` + *
+ *
alpha
Number between 0 and 1 that indicates the opacity of the fill. The default value is 1
+ *
+ * + * @attribute styles + * @type Object + */ + } +}); + /** * StackedAreaSplineSeries creates a stacked area chart with points data points connected by a curve. * @@ -13183,6 +13213,7 @@ Y.CartesianChart = Y.Base.create("cartesianChart", Y.Widget, [Y.ChartBase], { series[valAxis] = this._getSeriesAxis(series[seriesKey]); series.type = series.type || type; + series.direction = series.direction || dir; if((series.type == "combo" || series.type == "stackedcombo" || series.type == "combospline" || series.type == "stackedcombospline")) { @@ -13364,6 +13395,8 @@ Y.CartesianChart = Y.Base.create("cartesianChart", Y.Widget, [Y.ChartBase], { labelFunction:"labelFunction", labelFunctionScope:"labelFunctionScope", labelFormat:"labelFormat", + appendLabelFunction: "appendLabelFunction", + appendTitleFunction: "appendTitleFunction", maximum:"maximum", minimum:"minimum", roundingMethod:"roundingMethod", diff --git a/build/charts-legend/charts-legend-debug.js b/build/charts-legend/charts-legend-debug.js index b3e68621505..eb86b3a73b9 100644 --- a/build/charts-legend/charts-legend-debug.js +++ b/build/charts-legend/charts-legend-debug.js @@ -1310,7 +1310,8 @@ Y.ChartLegend = Y.Base.create("chartlegend", Y.Widget, [Y.Renderer], { vSpacing: 5, label: { color:"#808080", - fontSize:"85%" + fontSize:"85%", + whiteSpace: "nowrap" } }, background: { @@ -1386,12 +1387,22 @@ Y.ChartLegend = Y.Base.create("chartlegend", Y.Widget, [Y.Renderer], { */ destructor: function() { - var graphic = this.get("graphic"); + var background = this.get("background"), + backgroundGraphic; this._destroyLegendItems(); - if(graphic) + if(background) { - graphic.destroy(); + backgroundGraphic = background.get("graphic"); + if(backgroundGraphic) + { + backgroundGraphic.destroy(); + } + else + { + background.destroy(); + } } + } }, { ATTRS: { diff --git a/build/charts-legend/charts-legend-min.js b/build/charts-legend/charts-legend-min.js index ddc5701f843..961c725810a 100644 --- a/build/charts-legend/charts-legend-min.js +++ b/build/charts-legend/charts-legend-min.js @@ -1,3 +1,3 @@ YUI.add("charts-legend",function(a){var c=a.config.doc,p="top",h="right",f="bottom",j="left",s="external",u="horizontal",q="vertical",b="width",n="height",m="position",i="x",g="y",e="px",l={setter:function(w){var v=this.get("legend");if(v){v.destroy(true);}if(w instanceof a.ChartLegend){v=w;v.set("chart",this);}else{w.chart=this;if(!w.hasOwnProperty("render")){w.render=this.get("contentBox");w.includeInChartLayout=true;}v=new a.ChartLegend(w);}return v;}},t={_positionLegendItems:function(K,T,N,w,X,H,E,A,Q,G){var R=0,L=0,V,O,y,P,S,M=this.get("width"),F,D,z,C,J,v=H.top-A,U=M-(H.left+H.right),x,I,W,B;t._setRowArrays(K,U,E);F=t.rowArray;C=t.totalWidthArray;D=F.length;for(;L-1;--U){ab.unshift(T);T+=v[U].get("width");}}if(J){y=[];R=J.length;U=0;for(U=R-1;U>-1;--U){C+=J[U].get("width");y.unshift(L-C);}}if(K){O=[];R=K.length;for(U=R-1;U>-1;--U){O.unshift(Z);Z+=K[U].get("height");}}if(Y){F=[];R=Y.length;for(U=R-1;U>-1;--U){x+=Y[U].get("height");F.unshift(V-x);}}H=L-(T+C);I=V-(x+Z);aa.left=T;aa.top=Z;aa.bottom=V-x;aa.right=L-C;if(!P){G=this._getTopOverflow(v,J);M=this._getBottomOverflow(v,J);S=this._getLeftOverflow(Y,K);Q=this._getRightOverflow(Y,K);N=G-Z;if(N>0){aa.top=G;if(O){U=0;R=O.length;for(;U0){aa.bottom=V-M;if(F){U=0;R=F.length;for(;U0){aa.left=S;if(ab){U=0;R=ab.length;for(;U0){aa.right=L-Q;if(y){U=0;R=y.length;for(;U0&&x>0){this._drawLegend();}},_updateHandler:function(v){if(this.get("rendered")){this._drawLegend();}},_positionChangeHandler:function(x){var w=this.get("chart"),v=this._parentNode;if(v&&((w&&this.get("includeInChartLayout")))){this.fire("legendRendered");}else{if(this.get("rendered")){this._drawLegend();}}},_handleSizeChange:function(x){var w=x.attrName,z=this.get(m),v=z==j||z==h,y=z==f||z==p;if((y&&w==b)||(v&&w==n)){this._drawLegend();}},_drawLegend:function(){if(this._drawing){this._callLater=true;return;}this._drawing=true;this._callLater=false;if(this.get("includeInChartLayout")){this.get("chart")._itemRenderQueue.unshift(this);}var ad=this.get("chart"),V=this.get("contentBox"),W=ad.get("seriesCollection"),A,S=this.get("styles"),Z=S.padding,L=S.item,X,z=L.hSpacing,B=L.vSpacing,F=S.hAlign,O=S.vAlign,ae=S.marker,H=L.label,T,U=this._layout[this.get("direction")],aa,I,N,J,D,R,G,E,ab,w,v,K=[],Q=ae.width,x=ae.height,C=0-z,P=0-B,M=0,Y=0,y,ac;if(ae&&ae.shape){J=ae.shape;}this._destroyLegendItems();if(ad instanceof a.PieChart){A=W[0];T=A.get("categoryAxis").getDataByKey(A.get("categoryKey"));X=A.get("styles").marker;ab=X.fill.colors;w=X.border.colors;v=X.border.weight;aa=0;I=T.length;J=J||a.Circle;N=a.Lang.isArray(J);for(;aa0){v=this._items.shift();v.shape.get("graphic").destroy();v.node.empty();v.node.remove(true);v=null;}}this._items=[];},_layout:{vertical:o,horizontal:t},destructor:function(){var v=this.get("graphic");this._destroyLegendItems();if(v){v.destroy();}}},{ATTRS:{includeInChartLayout:{value:false},chart:{setter:function(v){this.after("legendRendered",a.bind(v._itemRendered,v)); +return;}this._drawing=true;this._callLater=false;var N=this.get("graph"),K=this.get("width"),B=this.get("height"),M,v,J=this.get("legend"),H=0,E=0,D=0,C=0,L,I,z,G,A,F;if(N){if(J){A=J.get("position");F=J.get("direction");M=N.get("width");v=N.get("height");L=J.get("width");I=J.get("height");G=J.get("styles").gap;if((F=="vertical"&&(M+L+G!==K))||(F=="horizontal"&&(v+I+G!==B))){switch(J.get("position")){case j:z=Math.min(K-(L+G),B);I=B;H=L+G;J.set(n,I);break;case p:z=Math.min(B-(I+G),K);L=K;E=I+G;J.set(b,L);break;case h:z=Math.min(K-(L+G),B);I=B;D=z+G;J.set(n,I);break;case f:z=Math.min(B-(I+G),K);L=K;C=z+G;J.set(b,L);break;}N.set(b,z);N.set(n,z);}else{switch(J.get("position")){case j:H=L+G;break;case p:E=I+G;break;case h:D=M+G;break;case f:C=v+G;break;}}}else{N.set(i,0);N.set(g,0);N.set(b,K);N.set(n,B);}}this._drawing=false;if(this._callLater){this._redraw();return;}if(N){N.set(i,H);N.set(g,E);}if(J){J.set(i,D);J.set(g,C);}}},{ATTRS:{legend:l}});a.PieChart=k;a.ChartLegend=a.Base.create("chartlegend",a.Widget,[a.Renderer],{initializer:function(){this._items=[];},renderUI:function(){var y=this.get("boundingBox"),v=this.get("contentBox"),x=this.get("styles").background,w=new a.Rect({graphic:v,fill:x.fill,stroke:x.border});y.setStyle("display","block");y.setStyle("position","absolute");this.set("background",w);},bindUI:function(){this.get("chart").after("seriesCollectionChange",this._updateHandler);this.after("stylesChange",this._updateHandler);this.after("positionChange",this._positionChangeHandler);this.after("widthChange",this._handleSizeChange);this.after("heightChange",this._handleSizeChange);},syncUI:function(){var v=this.get("width"),x=this.get("height");if(isFinite(v)&&isFinite(x)&&v>0&&x>0){this._drawLegend();}},_updateHandler:function(v){if(this.get("rendered")){this._drawLegend();}},_positionChangeHandler:function(x){var w=this.get("chart"),v=this._parentNode;if(v&&((w&&this.get("includeInChartLayout")))){this.fire("legendRendered");}else{if(this.get("rendered")){this._drawLegend();}}},_handleSizeChange:function(x){var w=x.attrName,z=this.get(m),v=z==j||z==h,y=z==f||z==p;if((y&&w==b)||(v&&w==n)){this._drawLegend();}},_drawLegend:function(){if(this._drawing){this._callLater=true;return;}this._drawing=true;this._callLater=false;if(this.get("includeInChartLayout")){this.get("chart")._itemRenderQueue.unshift(this);}var ad=this.get("chart"),V=this.get("contentBox"),W=ad.get("seriesCollection"),A,S=this.get("styles"),Z=S.padding,L=S.item,X,z=L.hSpacing,B=L.vSpacing,F=S.hAlign,O=S.vAlign,ae=S.marker,H=L.label,T,U=this._layout[this.get("direction")],aa,I,N,J,D,R,G,E,ab,w,v,K=[],Q=ae.width,x=ae.height,C=0-z,P=0-B,M=0,Y=0,y,ac;if(ae&&ae.shape){J=ae.shape;}this._destroyLegendItems();if(ad instanceof a.PieChart){A=W[0];T=A.get("categoryAxis").getDataByKey(A.get("categoryKey"));X=A.get("styles").marker;ab=X.fill.colors;w=X.border.colors;v=X.border.weight;aa=0;I=T.length;J=J||a.Circle;N=a.Lang.isArray(J);for(;aa0){v=this._items.shift();v.shape.get("graphic").destroy();v.node.empty();v.node.remove(true);v=null;}}this._items=[];},_layout:{vertical:o,horizontal:t},destructor:function(){var v=this.get("background"),w;this._destroyLegendItems();if(v){w=v.get("graphic");if(w){w.destroy();}else{v.destroy();}}}},{ATTRS:{includeInChartLayout:{value:false},chart:{setter:function(v){this.after("legendRendered",a.bind(v._itemRendered,v)); return v;}},direction:{value:"vertical"},position:{lazyAdd:false,value:"right",setter:function(v){if(v==p||v==f){this.set("direction",u);}else{if(v==j||v==h){this.set("direction",q);}}return v;}},width:{getter:function(){var w=this.get("chart"),v=this._parentNode;if(v){if((w&&this.get("includeInChartLayout"))||this._width){if(!this._width){this._width=0;}return this._width;}else{return v.get("offsetWidth");}}return"";},setter:function(v){this._width=v;return v;}},height:{valueFn:"_heightGetter",getter:function(){var w=this.get("chart"),v=this._parentNode;if(v){if((w&&this.get("includeInChartLayout"))||this._height){if(!this._height){this._height=0;}return this._height;}else{return v.get("offsetHeight");}}return"";},setter:function(v){this._height=v;return v;}},x:{lazyAdd:false,value:0,setter:function(w){var v=this.get("boundingBox");if(v){v.setStyle(j,w+e);}return w;}},y:{lazyAdd:false,value:0,setter:function(w){var v=this.get("boundingBox");if(v){v.setStyle(p,w+e);}return w;}},background:{}}});function r(v){if(v.type!="pie"){return new a.CartesianChart(v);}else{return new a.PieChart(v);}}a.Chart=r;},"@VERSION@",{requires:["charts-base"]}); \ No newline at end of file diff --git a/build/charts-legend/charts-legend.js b/build/charts-legend/charts-legend.js index b3e68621505..eb86b3a73b9 100644 --- a/build/charts-legend/charts-legend.js +++ b/build/charts-legend/charts-legend.js @@ -1310,7 +1310,8 @@ Y.ChartLegend = Y.Base.create("chartlegend", Y.Widget, [Y.Renderer], { vSpacing: 5, label: { color:"#808080", - fontSize:"85%" + fontSize:"85%", + whiteSpace: "nowrap" } }, background: { @@ -1386,12 +1387,22 @@ Y.ChartLegend = Y.Base.create("chartlegend", Y.Widget, [Y.Renderer], { */ destructor: function() { - var graphic = this.get("graphic"); + var background = this.get("background"), + backgroundGraphic; this._destroyLegendItems(); - if(graphic) + if(background) { - graphic.destroy(); + backgroundGraphic = background.get("graphic"); + if(backgroundGraphic) + { + backgroundGraphic.destroy(); + } + else + { + background.destroy(); + } } + } }, { ATTRS: { diff --git a/build/graphics-vml/graphics-vml-debug.js b/build/graphics-vml/graphics-vml-debug.js index 374b84b0c54..473cb6d283a 100644 --- a/build/graphics-vml/graphics-vml-debug.js +++ b/build/graphics-vml/graphics-vml-debug.js @@ -4,6 +4,7 @@ Y.log('using VML'); var Y_LANG = Y.Lang, IS_NUM = Y_LANG.isNumber, IS_ARRAY = Y_LANG.isArray, + IS_STRING = Y_LANG.isString, Y_DOM = Y.DOM, Y_SELECTOR = Y.Selector, DOCUMENT = Y.config.doc, @@ -61,6 +62,11 @@ VMLDrawing.prototype = { _addToPath: function(val) { this._path = this._path || ""; + if(this._movePath) + { + this._path += this._movePath; + this._movePath = null; + } this._path += val; }, @@ -309,7 +315,7 @@ VMLDrawing.prototype = { * @param {Number} y y-coordinate for the end point. */ moveTo: function(x, y) { - this._addToPath(" m " + this._round(x) + ", " + this._round(y)); + this._movePath = " m " + this._round(x) + ", " + this._round(y); this._trackSize(x, y); this._currentX = x; this._currentY = y; @@ -357,6 +363,7 @@ VMLDrawing.prototype = { node.style.height = h + "px"; } this._path = path; + this._movePath = null; this._updateTransform(); }, @@ -394,6 +401,7 @@ VMLDrawing.prototype = { this._left = 0; this._top = 0; this._path = ""; + this._movePath = null; }, /** diff --git a/build/graphics-vml/graphics-vml-min.js b/build/graphics-vml/graphics-vml-min.js index 1a920b1bae1..c3e8e61525b 100644 --- a/build/graphics-vml/graphics-vml-min.js +++ b/build/graphics-vml/graphics-vml-min.js @@ -1,4 +1,4 @@ -YUI.add("graphics-vml",function(b){var d=b.Lang,j=d.isNumber,f=d.isArray,h=b.DOM,c=b.Selector,m=b.config.doc,e=b.AttributeLite,p,l,o,k,n,i,a;function g(){}g.prototype={_coordSpaceMultiplier:100,_round:function(q){return Math.round(q*this._coordSpaceMultiplier);},_addToPath:function(q){this._path=this._path||"";this._path+=q;},_currentX:0,_currentY:0,curveTo:function(t,r,E,D,A,z){var B,u,F,C,s,q,v;this._addToPath(" c "+this._round(t)+", "+this._round(r)+", "+this._round(E)+", "+this._round(D)+", "+this._round(A)+", "+this._round(z));C=Math.max(A,Math.max(t,E));q=Math.max(z,Math.max(r,D));s=Math.min(A,Math.min(t,E));v=Math.min(z,Math.min(r,D));B=Math.abs(C-s);u=Math.abs(q-v);F=[[this._currentX,this._currentY],[t,r],[E,D],[A,z]];this._setCurveBoundingBox(F,B,u);this._currentX=A;this._currentY=z;},quadraticCurveTo:function(v,u,z,w){var r=this._currentX,q=this._currentY,t=r+0.67*(v-r),s=q+0.67*(u-q),B=t+(z-r)*0.34,A=s+(w-q)*0.34;this.curveTo(t,s,B,A,z,w);},drawRect:function(q,t,r,s){this.moveTo(q,t);this.lineTo(q+r,t);this.lineTo(q+r,t+s);this.lineTo(q,t+s);this.lineTo(q,t);this._currentX=q;this._currentY=t;return this;},drawRoundRect:function(q,v,r,t,s,u){this.moveTo(q,v+u);this.lineTo(q,v+t-u);this.quadraticCurveTo(q,v+t,q+s,v+t);this.lineTo(q+r-s,v+t);this.quadraticCurveTo(q+r,v+t,q+r,v+t-u);this.lineTo(q+r,v+u);this.quadraticCurveTo(q+r,v,q+r-s,v);this.lineTo(q+s,v);this.quadraticCurveTo(q,v,q,v+u);return this;},drawCircle:function(r,v,q){var t=0,s=360,u=q*2;s*=65535;this._drawingComplete=false;this._trackSize(r+u,v+u);this.moveTo((r+u),(v+q));this._addToPath(" ae "+this._round(r+q)+", "+this._round(v+q)+", "+this._round(q)+", "+this._round(q)+", "+t+", "+s);return this;},drawEllipse:function(s,A,t,z){var v=0,u=360,r=t*0.5,q=z*0.5;u*=65535;this._drawingComplete=false;this._trackSize(s+t,A+z);this.moveTo((s+t),(A+q));this._addToPath(" ae "+this._round(s+r)+", "+this._round(s+r)+", "+this._round(A+q)+", "+this._round(r)+", "+this._round(q)+", "+v+", "+u);return this;},drawDiamond:function(r,v,u,q){var t=u*0.5,s=q*0.5;this.moveTo(r+t,v);this.lineTo(r+u,v+s);this.lineTo(r+t,v+q);this.lineTo(r,v+s);this.lineTo(r+t,v);return this;},drawWedge:function(r,v,t,s,q){var u=q*2;if(Math.abs(s)>360){s=360;}this._currentX=r;this._currentY=v;t*=-65535;s*=65536;t=Math.round(t);s=Math.round(s);this.moveTo(r,v);this._addToPath(" ae "+this._round(r)+", "+this._round(v)+", "+this._round(q)+" "+this._round(q)+", "+t+", "+s);this._trackSize(u,u);return this;},lineTo:function(v,u,s){var r=arguments,t,q,w=" l ";if(typeof v==="string"||typeof v==="number"){r=[[v,u]];}q=r.length;for(t=0;tthis._right){this._right=q;}if(qthis._bottom){this._bottom=r;}this._width=this._right-this._left;this._height=this._bottom-this._top;},_left:0,_right:0,_top:0,_bottom:0,_width:0,_height:0};b.VMLDrawing=g;p=function(){this._transforms=[];this.matrix=new b.Matrix();this._normalizedMatrix=new b.Matrix();p.superclass.constructor.apply(this,arguments);};p.NAME="vmlShape";b.extend(p,b.GraphicBase,b.mix({_type:"shape",init:function(){this.initializer.apply(this,arguments);},initializer:function(q){var r=this,s=q.graphic;r.createNode();if(s){this._setGraphic(s);}this._updateHandler();},_setGraphic:function(q){var r;if(q instanceof b.VMLGraphic){this._graphic=q;}else{q=b.one(q);r=new b.VMLGraphic({render:q});r._appendShape(this);this._graphic=r;}},createNode:function(){var F,B=this.get("x"),z=this.get("y"),C=this.get("width"),H=this.get("height"),E,t,L,I=this.get("visible")?"visible":"hidden",K,v,u,D,r,A,J,q,G,s;E=this.get("id");t=this._type=="path"?"shape":this._type;v="vml"+t+" yui3-vmlShape yui3-"+this.constructor.NAME;u=this._getStrokeProps();G=this._getFillProps();L="<"+t+' xmlns="urn:schemas-microsft.com:vml" id="'+E+'" class="'+v+'" style="behavior:url(#default#VML);display:inline-block;position:absolute;left:'+B+"px;top:"+z+"px;width:"+C+"px;height:"+H+"px;visibility:"+I+'"';if(u&&u.weight&&u.weight>0){D=u.endcap;r=parseFloat(u.opacity);A=u.joinstyle;J=u.miterlimit;q=u.dashstyle;L+=' stroked="t" strokecolor="'+u.color+'" strokeWeight="'+u.weight+'px"';K='";F=m.createElement(L);if(this._strokeNode){F.appendChild(this._strokeNode);}if(this._fillNode){F.appendChild(this._fillNode);}this.node=F;this._strokeFlag=false;this._fillFlag=false;},addClass:function(q){var r=this.node;h.addClass(r,q);},removeClass:function(q){var r=this.node;h.removeClass(r,q);},getXY:function(){var t=this._graphic,r=t.getXY(),q=this.get("x"),s=this.get("y");return[r[0]+q,r[1]+s];},setXY:function(r){var s=this._graphic,q=s.getXY();this.set("x",r[0]-q[0]);this.set("y",r[1]-q[1]);},contains:function(q){return q===b.one(this.node);},compareTo:function(q){var r=this.node;return r===q;},test:function(q){return c.test(this.node,q);},_getStrokeProps:function(){var x,z=this.get("stroke"),v,r,t="",q,s=0,u,y,w;if(z&&z.weight&&z.weight>0){x={};y=z.linecap||"flat";w=z.linejoin||"round";if(y!="round"&&y!="square"){y="flat";}v=parseFloat(z.opacity);r=z.dashstyle||"none";z.color=z.color||"#000000";z.weight=z.weight||1;z.opacity=j(v)?v:1;x.stroked=true;x.color=z.color;x.weight=z.weight;x.endcap=y;x.opacity=z.opacity;if(f(r)){t=[];u=r.length;for(s=0;s0){z=A.linecap||"flat";y=A.linejoin||"round";if(z!="round"&&z!="square"){z="flat";}x=parseFloat(A.opacity);r=A.dashstyle||"none";A.color=A.color||"#000000";A.weight=A.weight||1;A.opacity=j(x)?x:1;s.stroked=true;s.strokeColor=A.color;s.strokeWeight=A.weight+"px";if(!this._strokeNode){this._strokeNode=this._createGraphicNode("stroke");s.appendChild(this._strokeNode);}this._strokeNode.endcap=z;this._strokeNode.opacity=A.opacity;if(f(r)){u=[];v=r.length;for(t=0;t';}}}}t.filled=u;}return t;},_fillChangeHandler:function(x){if(!this._fillFlag){return;}var t=this.node,w=this.get("fill"),q,s,u=false,r,v;if(w){if(w.type=="radial"||w.type=="linear"){u=true;v=this._getGradientFill(w);if(this._fillNode){for(r in v){if(v.hasOwnProperty(r)){if(r=="colors"){this._fillNode.colors.value=v[r];}else{this._fillNode[r]=v[r];}}}}else{s='';this._fillNode=m.createElement(s);t.appendChild(this._fillNode);}}else{if(this._fillNode){this._fillNode.opacity=1;this._fillNode.type="solid";}}}}}t.filled=u;this._fillFlag=false;},_updateFillNode:function(q){if(!this._fillNode){this._fillNode=this._createGraphicNode("fill");q.appendChild(this._fillNode);}},_getGradientFill:function(K){var O={},C,A,z=K.type,D=this.get("width"),N=this.get("height"),E=j,I,B=K.stops,M=B.length,x,J,L=0,F,q="",u=K.cx,s=K.cy,v=K.fx,t=K.fy,G=K.r,y,H=K.rotation||0;if(z==="linear"){if(H<=270){H=Math.abs(H-270);}else{if(H<360){H=270+(360-H);}else{H=270;}}O.type="gradient";O.angle=H;}else{if(z==="radial"){C=D*(G*2);A=N*(G*2);v=G*2*(v-0.5);t=G*2*(t-0.5);v+=u;t+=s;O.focussize=(C/D)/10+"% "+(A/N)/10+"%";O.alignshape=false;O.type="gradientradial";O.focus="100%";O.focusposition=Math.round(v*100)+"% "+Math.round(t*100)+"%";}}for(;L0?L+1:"";O["opacity"+F]=x+"";q+=", "+y+" "+J;}if(parseFloat(y)<100){q+=", 100% "+J;}O.colors=q.substr(2);return O;},_addTransform:function(r,q){q=b.Array(q);this._transform=d.trim(this._transform+" "+r+"("+q.join(", ")+")");q.unshift(r);this._transforms.push(q);if(this.initialized){this._updateTransform();}},_updateTransform:function(){var t=this.node,E,s,u,D=this.get("x"),B=this.get("y"),z,v,C=this.matrix,q=this._normalizedMatrix,r=this instanceof b.VMLPath,w=0,A=this._transforms.length;if(this._transforms&&this._transforms.length>0){u=this.get("transformOrigin");if(r){q.translate(this._left,this._top);}z=u[0]-0.5;v=u[1]-0.5;z=Math.max(-0.5,Math.min(0.5,z));v=Math.max(-0.5,Math.min(0.5,v));for(;w');this.node.appendChild(this._skew);}this._skew.matrix=s;this._skew.on=true;this._skew.offset=this._getSkewOffsetValue(q.dx)+"px, "+this._getSkewOffsetValue(q.dy)+"px";this._skew.origin=z+", "+v;}if(this._type!="path"){this._transforms=[];}t.style.left=D+"px";t.style.top=B+"px";},_getSkewOffsetValue:function(r){var q=b.MatrixUtil.sign(r),s=Math.abs(r);r=Math.min(s,32767)*q;return r;},_translateX:0,_translateY:0,_transform:"",translate:function(q,r){this._translateX+=q;this._translateY+=r;this._addTransform("translate",arguments);},translateX:function(q){this._translateX+=q;this._addTransform("translateX",arguments);},translateY:function(q){this._translateY+=q;this._addTransform("translateY",arguments);},skew:function(q,r){this._addTransform("skew",arguments);},skewX:function(q){this._addTransform("skewX",arguments);},skewY:function(q){this._addTransform("skewY",arguments);},rotate:function(q){this._addTransform("rotate",arguments);},scale:function(q,r){this._addTransform("scale",arguments);},on:function(r,q){if(b.Node.DOM_EVENTS[r]){return b.one("#"+this.get("id")).on(r,q);}return b.on.apply(this,arguments);},_draw:function(){},_updateHandler:function(s){var r=this,q=r.node;r._fillChangeHandler();r._strokeChangeHandler();q.style.width=this.get("width")+"px";q.style.height=this.get("height")+"px";this._draw();r._updateTransform();},_createGraphicNode:function(q){q=q||this._type;return m.createElement("<"+q+' xmlns="urn:schemas-microsft.com:vml" style="behavior:url(#default#VML);display:inline-block;" class="vml'+q+'"/>');},_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};},set:function(){var q=this;e.prototype.set.apply(q,arguments);if(q.initialized){q._updateHandler();}},getBounds:function(t){var v=this.get("stroke"),s=this.get("width"),u=this.get("height"),r=this.get("x"),z=this.get("y"),q=0;if(v&&v.weight){q=v.weight;}s=(r+s+q)-(r-q);u=(z+u+q)-(z-q);r-=q;z-=q;return this._normalizedMatrix.getContentRect(s,u,r,z);},destroy:function(){var q=this.get("graphic");if(q){q.removeShape(this);}else{this._destroy();}},_destroy:function(){if(this.node){if(this._fillNode){this.node.removeChild(this._fillNode);this._fillNode=null;}if(this._strokeNode){this.node.removeChild(this._strokeNode);this._strokeNode=null;}b.one(this.node).remove(true);}}},b.VMLDrawing.prototype));p.ATTRS={transformOrigin:{valueFn:function(){return[0.5,0.5];}},transform:{setter:function(t){var s=0,q,r;this.matrix.init();this._normalizedMatrix.init();this._transforms=this.matrix.getTransformArray(t);q=this._transforms.length;for(;s0?q*2:0;return r;}},height:{setter:function(q){this.set("radius",q/2);return q;},getter:function(){var q=this.get("radius"),r=q&&q>0?q*2:0;return r;}}});b.VMLCircle=l;a=function(){a.superclass.constructor.apply(this,arguments);};a.NAME="vmlPieSlice";b.extend(a,b.VMLShape,b.mix({_type:"shape",_draw:function(u){var r=this.get("cx"),v=this.get("cy"),t=this.get("startAngle"),s=this.get("arc"),q=this.get("radius");this.clear();this.drawWedge(r,v,t,s,q);this.end();}},b.VMLDrawing.prototype));a.ATTRS=b.mix({cx:{value:0},cy:{value:0},startAngle:{value:0},arc:{value:0},radius:{value:0}},b.VMLShape.ATTRS); -b.VMLPieSlice=a;i=function(){i.superclass.constructor.apply(this,arguments);};i.NAME="vmlGraphic";i.ATTRS={render:{},id:{valueFn:function(){return b.guid();},setter:function(r){var q=this._node;if(q){q.setAttribute("id",r);}return r;}},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(q){if(this._node){this._node.style.width=q+"px";}return q;}},height:{setter:function(q){if(this._node){this._node.style.height=q+"px";}return q;}},autoSize:{value:false},resizeDown:{getter:function(){return this._resizeDown;},setter:function(q){this._resizeDown=q;if(this._node){this._redraw();}return q;}},x:{getter:function(){return this._x;},setter:function(q){this._x=q;if(this._node){this._node.style.left=q+"px";}return q;}},y:{getter:function(){return this._y;},setter:function(q){this._y=q;if(this._node){this._node.style.top=q+"px";}return q;}},autoDraw:{value:true},visible:{value:true,setter:function(q){this._toggleVisible(q);return q;}}};b.extend(i,b.GraphicBase,{_x:0,_y:0,getXY:function(){var r=this.parentNode,q=this.get("x"),t=this.get("y"),s;if(r){s=b.one(r).getXY();s[0]+=q;s[1]+=t;}else{s=b.DOM._getOffset(this._node);}return s;},_resizeDown:false,initializer:function(r){var s=this.get("render"),q=this.get("visible")?"visible":"hidden";this._shapes={};this._contentBounds={left:0,top:0,right:0,bottom:0};this._node=this._createGraphic();this._node.style.visibility=q;this._node.setAttribute("id",this.get("id"));if(s){this.render(s);}},render:function(t){var q=b.one(t),r=this.get("width")||parseInt(q.getComputedStyle("width"),10),s=this.get("height")||parseInt(q.getComputedStyle("height"),10);q=q||m.body;q.appendChild(this._node);this.setSize(r,s);this.parentNode=q;this.set("width",r);this.set("height",s);return this;},destroy:function(){this.clear();b.one(this._node).remove(true);},addShape:function(q){q.graphic=this;if(!this.get("visible")){q.visible=false;}var s=this._getShapeClass(q.type),r=new s(q);this._appendShape(r);return r;},_appendShape:function(r){var s=r.node,q=this._frag||this._node;if(this.get("autoDraw")){q.appendChild(s);}else{this._getDocFrag().appendChild(s);}},removeShape:function(q){if(!(q instanceof p)){if(d.isString(q)){q=this._shapes[q];}}if(q&&(q instanceof p)){q._destroy();this._shapes[q.get("id")]=null;delete this._shapes[q.get("id")];}if(this.get("autoDraw")){this._redraw();}},removeAllShapes:function(){var q=this._shapes,r;for(r in q){if(q.hasOwnProperty(r)){q[r].destroy();}}this._shapes={};},_removeChildren:function(q){if(q.hasChildNodes()){var r;while(q.firstChild){r=q.firstChild;this._removeChildren(r);q.removeChild(r);}}},clear:function(){this.removeAllShapes();this._removeChildren(this._node);},_toggleVisible:function(t){var s,r=this._shapes,q=t?"visible":"hidden";if(r){for(s in r){if(r.hasOwnProperty(s)){r[s].set("visible",t);}}}if(this._node){this._node.style.visibility=q;}},setSize:function(q,r){q=Math.round(q);r=Math.round(r);this._node.style.width=q+"px";this._node.style.height=r+"px";this._node.coordSize=q+" "+r;},setPosition:function(q,r){q=Math.round(q);r=Math.round(r);this._node.style.left=q+"px";this._node.style.top=r+"px";},_createGraphic:function(){var q=m.createElement('');return q;},_createGraphicNode:function(q){return m.createElement("<"+q+' xmlns="urn:schemas-microsft.com:vml" style="behavior:url(#default#VML);display:inline-block;zoom:1;" />');},getShapeById:function(q){return this._shapes[q];},_getShapeClass:function(r){var q=this._shapeClass[r];if(q){return q;}return r;},_shapeClass:{circle:b.VMLCircle,rect:b.VMLRect,path:b.VMLPath,ellipse:b.VMLEllipse,pieslice:b.VMLPieSlice},batch:function(r){var q=this.get("autoDraw");this.set("autoDraw",false);r.apply();this._redraw();this.set("autoDraw",q);},_getDocFrag:function(){if(!this._frag){this._frag=m.createDocumentFragment();}return this._frag;},addToRedrawQueue:function(q){var s,r;this._shapes[q.get("id")]=q;if(!this._resizeDown){s=q.getBounds();r=this._contentBounds;r.left=r.lefts.right?r.right:s.right;r.bottom=r.bottom>s.bottom?r.bottom:s.bottom;r.width=r.right-r.left;r.height=r.bottom-r.top;this._contentBounds=r;}if(this.get("autoDraw")){this._redraw();}},_redraw:function(){var q=this._resizeDown?this._getUpdatedContentBounds():this._contentBounds;if(this.get("autoSize")){this.setSize(q.right,q.bottom);}if(this._frag){this._node.appendChild(this._frag);this._frag=null;}},_getUpdatedContentBounds:function(){var u,s,r,q=this._shapes,t={left:0,top:0,right:0,bottom:0};for(s in q){if(q.hasOwnProperty(s)){r=q[s];u=r.getBounds();t.left=Math.min(t.left,u.left);t.top=Math.min(t.top,u.top);t.right=Math.max(t.right,u.right);t.bottom=Math.max(t.bottom,u.bottom);}}t.width=t.right-t.left;t.height=t.bottom-t.top;this._contentBounds=t;return t;}});b.VMLGraphic=i;},"@VERSION@",{skinnable:false,requires:["graphics"]}); \ No newline at end of file +YUI.add("graphics-vml",function(b){var d=b.Lang,j=d.isNumber,f=d.isArray,k=d.isString,h=b.DOM,c=b.Selector,n=b.config.doc,e=b.AttributeLite,q,m,p,l,o,i,a;function g(){}g.prototype={_coordSpaceMultiplier:100,_round:function(r){return Math.round(r*this._coordSpaceMultiplier);},_addToPath:function(r){this._path=this._path||"";if(this._movePath){this._path+=this._movePath;this._movePath=null;}this._path+=r;},_currentX:0,_currentY:0,curveTo:function(u,s,F,E,B,A){var C,v,G,D,t,r,z;this._addToPath(" c "+this._round(u)+", "+this._round(s)+", "+this._round(F)+", "+this._round(E)+", "+this._round(B)+", "+this._round(A));D=Math.max(B,Math.max(u,F));r=Math.max(A,Math.max(s,E));t=Math.min(B,Math.min(u,F));z=Math.min(A,Math.min(s,E));C=Math.abs(D-t);v=Math.abs(r-z);G=[[this._currentX,this._currentY],[u,s],[F,E],[B,A]];this._setCurveBoundingBox(G,C,v);this._currentX=B;this._currentY=A;},quadraticCurveTo:function(w,v,A,z){var s=this._currentX,r=this._currentY,u=s+0.67*(w-s),t=r+0.67*(v-r),C=u+(A-s)*0.34,B=t+(z-r)*0.34;this.curveTo(u,t,C,B,A,z);},drawRect:function(r,u,s,t){this.moveTo(r,u);this.lineTo(r+s,u);this.lineTo(r+s,u+t);this.lineTo(r,u+t);this.lineTo(r,u);this._currentX=r;this._currentY=u;return this;},drawRoundRect:function(r,z,s,u,t,v){this.moveTo(r,z+v);this.lineTo(r,z+u-v);this.quadraticCurveTo(r,z+u,r+t,z+u);this.lineTo(r+s-t,z+u);this.quadraticCurveTo(r+s,z+u,r+s,z+u-v);this.lineTo(r+s,z+v);this.quadraticCurveTo(r+s,z,r+s-t,z);this.lineTo(r+t,z);this.quadraticCurveTo(r,z,r,z+v);return this;},drawCircle:function(s,w,r){var u=0,t=360,v=r*2;t*=65535;this._drawingComplete=false;this._trackSize(s+v,w+v);this.moveTo((s+v),(w+r));this._addToPath(" ae "+this._round(s+r)+", "+this._round(w+r)+", "+this._round(r)+", "+this._round(r)+", "+u+", "+t);return this;},drawEllipse:function(t,B,u,A){var z=0,v=360,s=u*0.5,r=A*0.5;v*=65535;this._drawingComplete=false;this._trackSize(t+u,B+A);this.moveTo((t+u),(B+r));this._addToPath(" ae "+this._round(t+s)+", "+this._round(t+s)+", "+this._round(B+r)+", "+this._round(s)+", "+this._round(r)+", "+z+", "+v);return this;},drawDiamond:function(s,w,v,r){var u=v*0.5,t=r*0.5;this.moveTo(s+u,w);this.lineTo(s+v,w+t);this.lineTo(s+u,w+r);this.lineTo(s,w+t);this.lineTo(s+u,w);return this;},drawWedge:function(s,w,u,t,r){var v=r*2;if(Math.abs(t)>360){t=360;}this._currentX=s;this._currentY=w;u*=-65535;t*=65536;u=Math.round(u);t=Math.round(t);this.moveTo(s,w);this._addToPath(" ae "+this._round(s)+", "+this._round(w)+", "+this._round(r)+" "+this._round(r)+", "+u+", "+t);this._trackSize(v,v);return this;},lineTo:function(w,v,t){var s=arguments,u,r,x=" l ";if(typeof w==="string"||typeof w==="number"){s=[[w,v]];}r=s.length;for(u=0;uthis._right){this._right=r;}if(rthis._bottom){this._bottom=s;}this._width=this._right-this._left;this._height=this._bottom-this._top;},_left:0,_right:0,_top:0,_bottom:0,_width:0,_height:0};b.VMLDrawing=g;q=function(){this._transforms=[];this.matrix=new b.Matrix();this._normalizedMatrix=new b.Matrix();q.superclass.constructor.apply(this,arguments);};q.NAME="vmlShape";b.extend(q,b.GraphicBase,b.mix({_type:"shape",init:function(){this.initializer.apply(this,arguments);},initializer:function(r){var s=this,t=r.graphic;s.createNode();if(t){this._setGraphic(t);}this._updateHandler();},_setGraphic:function(r){var s;if(r instanceof b.VMLGraphic){this._graphic=r;}else{r=b.one(r);s=new b.VMLGraphic({render:r});s._appendShape(this);this._graphic=s;}},createNode:function(){var G,C=this.get("x"),A=this.get("y"),D=this.get("width"),I=this.get("height"),F,u,M,J=this.get("visible")?"visible":"hidden",L,z,v,E,s,B,K,r,H,t;F=this.get("id");u=this._type=="path"?"shape":this._type;z="vml"+u+" yui3-vmlShape yui3-"+this.constructor.NAME;v=this._getStrokeProps();H=this._getFillProps();M="<"+u+' xmlns="urn:schemas-microsft.com:vml" id="'+F+'" class="'+z+'" style="behavior:url(#default#VML);display:inline-block;position:absolute;left:'+C+"px;top:"+A+"px;width:"+D+"px;height:"+I+"px;visibility:"+J+'"';if(v&&v.weight&&v.weight>0){E=v.endcap;s=parseFloat(v.opacity);B=v.joinstyle;K=v.miterlimit;r=v.dashstyle;M+=' stroked="t" strokecolor="'+v.color+'" strokeWeight="'+v.weight+'px"';L='";G=n.createElement(M);if(this._strokeNode){G.appendChild(this._strokeNode);}if(this._fillNode){G.appendChild(this._fillNode);}this.node=G;this._strokeFlag=false;this._fillFlag=false;},addClass:function(r){var s=this.node;h.addClass(s,r);},removeClass:function(r){var s=this.node;h.removeClass(s,r);},getXY:function(){var u=this._graphic,s=u.getXY(),r=this.get("x"),t=this.get("y");return[s[0]+r,s[1]+t];},setXY:function(s){var t=this._graphic,r=t.getXY();this.set("x",s[0]-r[0]);this.set("y",s[1]-r[1]);},contains:function(r){return r===b.one(this.node);},compareTo:function(r){var s=this.node;return s===r;},test:function(r){return c.test(this.node,r);},_getStrokeProps:function(){var y,A=this.get("stroke"),w,s,u="",r,t=0,v,z,x;if(A&&A.weight&&A.weight>0){y={};z=A.linecap||"flat";x=A.linejoin||"round";if(z!="round"&&z!="square"){z="flat";}w=parseFloat(A.opacity);s=A.dashstyle||"none";A.color=A.color||"#000000";A.weight=A.weight||1;A.opacity=j(w)?w:1;y.stroked=true;y.color=A.color;y.weight=A.weight;y.endcap=z;y.opacity=A.opacity;if(f(s)){u=[];v=s.length;for(t=0;t0){A=B.linecap||"flat";z=B.linejoin||"round";if(A!="round"&&A!="square"){A="flat";}y=parseFloat(B.opacity);s=B.dashstyle||"none";B.color=B.color||"#000000";B.weight=B.weight||1;B.opacity=j(y)?y:1;t.stroked=true;t.strokeColor=B.color;t.strokeWeight=B.weight+"px";if(!this._strokeNode){this._strokeNode=this._createGraphicNode("stroke");t.appendChild(this._strokeNode);}this._strokeNode.endcap=A;this._strokeNode.opacity=B.opacity;if(f(s)){v=[];w=s.length;for(u=0;u';}}}}u.filled=v;}return u;},_fillChangeHandler:function(y){if(!this._fillFlag){return;}var u=this.node,x=this.get("fill"),r,t,v=false,s,w;if(x){if(x.type=="radial"||x.type=="linear"){v=true;w=this._getGradientFill(x);if(this._fillNode){for(s in w){if(w.hasOwnProperty(s)){if(s=="colors"){this._fillNode.colors.value=w[s];}else{this._fillNode[s]=w[s];}}}}else{t='';this._fillNode=n.createElement(t);u.appendChild(this._fillNode);}}else{if(this._fillNode){this._fillNode.opacity=1;this._fillNode.type="solid";}}}}}u.filled=v;this._fillFlag=false;},_updateFillNode:function(r){if(!this._fillNode){this._fillNode=this._createGraphicNode("fill");r.appendChild(this._fillNode);}},_getGradientFill:function(L){var P={},D,B,A=L.type,E=this.get("width"),O=this.get("height"),F=j,J,C=L.stops,N=C.length,y,K,M=0,G,s="",v=L.cx,t=L.cy,x=L.fx,u=L.fy,H=L.r,z,I=L.rotation||0;if(A==="linear"){if(I<=270){I=Math.abs(I-270);}else{if(I<360){I=270+(360-I);}else{I=270;}}P.type="gradient";P.angle=I;}else{if(A==="radial"){D=E*(H*2);B=O*(H*2);x=H*2*(x-0.5);u=H*2*(u-0.5);x+=v;u+=t;P.focussize=(D/E)/10+"% "+(B/O)/10+"%";P.alignshape=false;P.type="gradientradial";P.focus="100%";P.focusposition=Math.round(x*100)+"% "+Math.round(u*100)+"%";}}for(;M0?M+1:"";P["opacity"+G]=y+"";s+=", "+z+" "+K;}if(parseFloat(z)<100){s+=", 100% "+K;}P.colors=s.substr(2);return P;},_addTransform:function(s,r){r=b.Array(r);this._transform=d.trim(this._transform+" "+s+"("+r.join(", ")+")");r.unshift(s);this._transforms.push(r);if(this.initialized){this._updateTransform();}},_updateTransform:function(){var u=this.node,F,t,v,E=this.get("x"),C=this.get("y"),A,w,D=this.matrix,r=this._normalizedMatrix,s=this instanceof b.VMLPath,z=0,B=this._transforms.length;if(this._transforms&&this._transforms.length>0){v=this.get("transformOrigin");if(s){r.translate(this._left,this._top);}A=v[0]-0.5;w=v[1]-0.5;A=Math.max(-0.5,Math.min(0.5,A));w=Math.max(-0.5,Math.min(0.5,w));for(;z');this.node.appendChild(this._skew);}this._skew.matrix=t;this._skew.on=true;this._skew.offset=this._getSkewOffsetValue(r.dx)+"px, "+this._getSkewOffsetValue(r.dy)+"px";this._skew.origin=A+", "+w;}if(this._type!="path"){this._transforms=[];}u.style.left=E+"px";u.style.top=C+"px";},_getSkewOffsetValue:function(s){var r=b.MatrixUtil.sign(s),t=Math.abs(s);s=Math.min(t,32767)*r;return s;},_translateX:0,_translateY:0,_transform:"",translate:function(r,s){this._translateX+=r;this._translateY+=s;this._addTransform("translate",arguments);},translateX:function(r){this._translateX+=r;this._addTransform("translateX",arguments);},translateY:function(r){this._translateY+=r;this._addTransform("translateY",arguments);},skew:function(r,s){this._addTransform("skew",arguments);},skewX:function(r){this._addTransform("skewX",arguments);},skewY:function(r){this._addTransform("skewY",arguments);},rotate:function(r){this._addTransform("rotate",arguments);},scale:function(r,s){this._addTransform("scale",arguments);},on:function(s,r){if(b.Node.DOM_EVENTS[s]){return b.one("#"+this.get("id")).on(s,r);}return b.on.apply(this,arguments);},_draw:function(){},_updateHandler:function(t){var s=this,r=s.node;s._fillChangeHandler();s._strokeChangeHandler();r.style.width=this.get("width")+"px";r.style.height=this.get("height")+"px";this._draw();s._updateTransform();},_createGraphicNode:function(r){r=r||this._type;return n.createElement("<"+r+' xmlns="urn:schemas-microsft.com:vml" style="behavior:url(#default#VML);display:inline-block;" class="vml'+r+'"/>');},_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};},set:function(){var r=this;e.prototype.set.apply(r,arguments);if(r.initialized){r._updateHandler();}},getBounds:function(u){var z=this.get("stroke"),t=this.get("width"),v=this.get("height"),s=this.get("x"),A=this.get("y"),r=0;if(z&&z.weight){r=z.weight;}t=(s+t+r)-(s-r);v=(A+v+r)-(A-r);s-=r;A-=r;return this._normalizedMatrix.getContentRect(t,v,s,A);},destroy:function(){var r=this.get("graphic");if(r){r.removeShape(this);}else{this._destroy();}},_destroy:function(){if(this.node){if(this._fillNode){this.node.removeChild(this._fillNode);this._fillNode=null;}if(this._strokeNode){this.node.removeChild(this._strokeNode);this._strokeNode=null;}b.one(this.node).remove(true);}}},b.VMLDrawing.prototype));q.ATTRS={transformOrigin:{valueFn:function(){return[0.5,0.5];}},transform:{setter:function(u){var t=0,r,s;this.matrix.init();this._normalizedMatrix.init();this._transforms=this.matrix.getTransformArray(u);r=this._transforms.length;for(;t0?r*2:0;return s;}},height:{setter:function(r){this.set("radius",r/2);return r;},getter:function(){var r=this.get("radius"),s=r&&r>0?r*2:0;return s;}}});b.VMLCircle=m;a=function(){a.superclass.constructor.apply(this,arguments);};a.NAME="vmlPieSlice";b.extend(a,b.VMLShape,b.mix({_type:"shape",_draw:function(v){var s=this.get("cx"),w=this.get("cy"),u=this.get("startAngle"),t=this.get("arc"),r=this.get("radius");this.clear();this.drawWedge(s,w,u,t,r);this.end();}},b.VMLDrawing.prototype));a.ATTRS=b.mix({cx:{value:0},cy:{value:0},startAngle:{value:0},arc:{value:0},radius:{value:0}},b.VMLShape.ATTRS); +b.VMLPieSlice=a;i=function(){i.superclass.constructor.apply(this,arguments);};i.NAME="vmlGraphic";i.ATTRS={render:{},id:{valueFn:function(){return b.guid();},setter:function(s){var r=this._node;if(r){r.setAttribute("id",s);}return s;}},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(r){if(this._node){this._node.style.width=r+"px";}return r;}},height:{setter:function(r){if(this._node){this._node.style.height=r+"px";}return r;}},autoSize:{value:false},resizeDown:{getter:function(){return this._resizeDown;},setter:function(r){this._resizeDown=r;if(this._node){this._redraw();}return r;}},x:{getter:function(){return this._x;},setter:function(r){this._x=r;if(this._node){this._node.style.left=r+"px";}return r;}},y:{getter:function(){return this._y;},setter:function(r){this._y=r;if(this._node){this._node.style.top=r+"px";}return r;}},autoDraw:{value:true},visible:{value:true,setter:function(r){this._toggleVisible(r);return r;}}};b.extend(i,b.GraphicBase,{_x:0,_y:0,getXY:function(){var s=this.parentNode,r=this.get("x"),u=this.get("y"),t;if(s){t=b.one(s).getXY();t[0]+=r;t[1]+=u;}else{t=b.DOM._getOffset(this._node);}return t;},_resizeDown:false,initializer:function(s){var t=this.get("render"),r=this.get("visible")?"visible":"hidden";this._shapes={};this._contentBounds={left:0,top:0,right:0,bottom:0};this._node=this._createGraphic();this._node.style.visibility=r;this._node.setAttribute("id",this.get("id"));if(t){this.render(t);}},render:function(u){var r=b.one(u),s=this.get("width")||parseInt(r.getComputedStyle("width"),10),t=this.get("height")||parseInt(r.getComputedStyle("height"),10);r=r||n.body;r.appendChild(this._node);this.setSize(s,t);this.parentNode=r;this.set("width",s);this.set("height",t);return this;},destroy:function(){this.clear();b.one(this._node).remove(true);},addShape:function(r){r.graphic=this;if(!this.get("visible")){r.visible=false;}var t=this._getShapeClass(r.type),s=new t(r);this._appendShape(s);return s;},_appendShape:function(s){var t=s.node,r=this._frag||this._node;if(this.get("autoDraw")){r.appendChild(t);}else{this._getDocFrag().appendChild(t);}},removeShape:function(r){if(!(r instanceof q)){if(d.isString(r)){r=this._shapes[r];}}if(r&&(r instanceof q)){r._destroy();this._shapes[r.get("id")]=null;delete this._shapes[r.get("id")];}if(this.get("autoDraw")){this._redraw();}},removeAllShapes:function(){var r=this._shapes,s;for(s in r){if(r.hasOwnProperty(s)){r[s].destroy();}}this._shapes={};},_removeChildren:function(r){if(r.hasChildNodes()){var s;while(r.firstChild){s=r.firstChild;this._removeChildren(s);r.removeChild(s);}}},clear:function(){this.removeAllShapes();this._removeChildren(this._node);},_toggleVisible:function(u){var t,s=this._shapes,r=u?"visible":"hidden";if(s){for(t in s){if(s.hasOwnProperty(t)){s[t].set("visible",u);}}}if(this._node){this._node.style.visibility=r;}},setSize:function(r,s){r=Math.round(r);s=Math.round(s);this._node.style.width=r+"px";this._node.style.height=s+"px";this._node.coordSize=r+" "+s;},setPosition:function(r,s){r=Math.round(r);s=Math.round(s);this._node.style.left=r+"px";this._node.style.top=s+"px";},_createGraphic:function(){var r=n.createElement('');return r;},_createGraphicNode:function(r){return n.createElement("<"+r+' xmlns="urn:schemas-microsft.com:vml" style="behavior:url(#default#VML);display:inline-block;zoom:1;" />');},getShapeById:function(r){return this._shapes[r];},_getShapeClass:function(s){var r=this._shapeClass[s];if(r){return r;}return s;},_shapeClass:{circle:b.VMLCircle,rect:b.VMLRect,path:b.VMLPath,ellipse:b.VMLEllipse,pieslice:b.VMLPieSlice},batch:function(s){var r=this.get("autoDraw");this.set("autoDraw",false);s.apply();this._redraw();this.set("autoDraw",r);},_getDocFrag:function(){if(!this._frag){this._frag=n.createDocumentFragment();}return this._frag;},addToRedrawQueue:function(r){var t,s;this._shapes[r.get("id")]=r;if(!this._resizeDown){t=r.getBounds();s=this._contentBounds;s.left=s.leftt.right?s.right:t.right;s.bottom=s.bottom>t.bottom?s.bottom:t.bottom;s.width=s.right-s.left;s.height=s.bottom-s.top;this._contentBounds=s;}if(this.get("autoDraw")){this._redraw();}},_redraw:function(){var r=this._resizeDown?this._getUpdatedContentBounds():this._contentBounds;if(this.get("autoSize")){this.setSize(r.right,r.bottom);}if(this._frag){this._node.appendChild(this._frag);this._frag=null;}},_getUpdatedContentBounds:function(){var v,t,s,r=this._shapes,u={left:0,top:0,right:0,bottom:0};for(t in r){if(r.hasOwnProperty(t)){s=r[t];v=s.getBounds();u.left=Math.min(u.left,v.left);u.top=Math.min(u.top,v.top);u.right=Math.max(u.right,v.right);u.bottom=Math.max(u.bottom,v.bottom);}}u.width=u.right-u.left;u.height=u.bottom-u.top;this._contentBounds=u;return u;}});b.VMLGraphic=i;},"@VERSION@",{skinnable:false,requires:["graphics"]}); \ No newline at end of file diff --git a/build/graphics-vml/graphics-vml.js b/build/graphics-vml/graphics-vml.js index aa37cd97647..52b20e33dee 100644 --- a/build/graphics-vml/graphics-vml.js +++ b/build/graphics-vml/graphics-vml.js @@ -3,6 +3,7 @@ YUI.add('graphics-vml', function(Y) { var Y_LANG = Y.Lang, IS_NUM = Y_LANG.isNumber, IS_ARRAY = Y_LANG.isArray, + IS_STRING = Y_LANG.isString, Y_DOM = Y.DOM, Y_SELECTOR = Y.Selector, DOCUMENT = Y.config.doc, @@ -60,6 +61,11 @@ VMLDrawing.prototype = { _addToPath: function(val) { this._path = this._path || ""; + if(this._movePath) + { + this._path += this._movePath; + this._movePath = null; + } this._path += val; }, @@ -308,7 +314,7 @@ VMLDrawing.prototype = { * @param {Number} y y-coordinate for the end point. */ moveTo: function(x, y) { - this._addToPath(" m " + this._round(x) + ", " + this._round(y)); + this._movePath = " m " + this._round(x) + ", " + this._round(y); this._trackSize(x, y); this._currentX = x; this._currentY = y; @@ -356,6 +362,7 @@ VMLDrawing.prototype = { node.style.height = h + "px"; } this._path = path; + this._movePath = null; this._updateTransform(); }, @@ -393,6 +400,7 @@ VMLDrawing.prototype = { this._left = 0; this._top = 0; this._path = ""; + this._movePath = null; }, /**