sunburst.js 18.4 KB
Newer Older
Thitichaipun Wutthisak committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
/*
 Highcharts JS v6.0.4 (2017-12-15)

 (c) 2016 Highsoft AS
 Authors: Jon Arild Nygard

 License: www.highcharts.com/license
*/
(function(B){"object"===typeof module&&module.exports?module.exports=B:B(Highcharts)})(function(B){(function(c){var k=c.deg2rad,e=c.isNumber,h=c.pick,v=c.relativeLength;c.CenteredSeriesMixin={getCenter:function(){var c=this.options,t=this.chart,p=2*(c.slicedOffset||0),q=t.plotWidth-2*p,t=t.plotHeight-2*p,e=c.center,e=[h(e[0],"50%"),h(e[1],"50%"),c.size||"100%",c.innerSize||0],k=Math.min(q,t),n,A;for(n=0;4>n;++n)A=e[n],c=2>n||2===n&&/%$/.test(A),e[n]=v(A,[q,t,k,e[2]][n])+(c?p:0);e[3]>e[2]&&(e[3]=e[2]);
return e},getStartAndEndRadians:function(c,t){c=e(c)?c:0;t=e(t)&&t>c&&360>t-c?t:c+360;return{start:k*(c+-90),end:k*(t+-90)}}}})(B);var M=function(){return function(c){var k=this,e=k.graphic,h=c.animate,v=c.attr,l=c.onComplete,t=c.css,p=c.group,q=c.renderer,L=c.shapeArgs;c=c.shapeType;k.shouldDraw()?(e||(k.graphic=e=q[c](L).add(p)),e.css(t).attr(v).animate(h,void 0,l)):e&&e.animate(h,void 0,function(){k.graphic=e=e.destroy();"function"===typeof l&&l()});e&&e.addClass(k.getClassName(),!0)}}(),J=function(c){var k=
c.each,e=c.extend,h=c.pick;return{getColor:function(e,l){var t=l.index,p=l.levelMap,q=l.parentColor,k=l.parentColorIndex,w=l.series,n=l.colors,A=l.siblings,m=w.points,y,D,H,v;if(e){m=m[e.i];e=p[e.levelDynamic]||{};if(y=m&&("boolean"===typeof e.colorByPoint?e.colorByPoint:!!w.options.colorByPoint))H=m.index%(n?n.length:w.chart.options.chart.colorCount),D=n&&n[H];n=m&&m.options.color;y=e&&e.color;if(p=q)p=(p=e&&e.colorVariation)&&"brightness"===p.key?c.color(q).brighten(t/A*p.to).get():q;y=h(n,y,D,
p,w.color);v=h(m&&m.options.colorIndex,e&&e.colorIndex,H,k,l.colorIndex)}return{color:y,colorIndex:v}},setTreeValues:function l(c,p){var q=p.before,t=p.idRoot,w=p.mapIdToNode[t],n=p.points[c.i],A=n&&n.options||{},m=0,y=[];e(c,{levelDynamic:c.level-(("boolean"===typeof p.levelIsConstant?p.levelIsConstant:1)?0:w.level),name:h(n&&n.name,""),visible:t===c.id||("boolean"===typeof p.visible?p.visible:!1)});"function"===typeof q&&(c=q(c,p));k(c.children,function(q,h){var n=e({},p);e(n,{index:h,siblings:c.children.length,
visible:c.visible});q=l(q,n);y.push(q);q.visible&&(m+=q.val)});c.visible=0<m||c.visible;q=h(A.value,m);e(c,{children:y,childrenTotal:m,isLeaf:c.visible&&!m,val:q});return c}}}(B);(function(c,k){var e=c.seriesType,h=c.seriesTypes,v=c.map,l=c.merge,t=c.extend,p=c.noop,q=c.each,B=k.getColor,w=c.grep,n=c.isNumber,A=c.isString,m=c.pick,y=c.Series,D=c.stableSort,H=c.Color,I=function(a,b,d){d=d||this;c.objectEach(a,function(r,f){b.call(d,r,f,a)})},G=c.reduce,E=function(a,b,d){d=d||this;a=b.call(d,a);!1!==
a&&E(a,b,d)};e("treemap","scatter",{showInLegend:!1,marker:!1,dataLabels:{enabled:!0,defer:!1,verticalAlign:"middle",formatter:function(){return this.point.name||this.point.id},inside:!0},tooltip:{headerFormat:"",pointFormat:"\x3cb\x3e{point.name}\x3c/b\x3e: {point.value}\x3cbr/\x3e"},ignoreHiddenPoint:!0,layoutAlgorithm:"sliceAndDice",layoutStartingDirection:"vertical",alternateStartingDirection:!1,levelIsConstant:!0,drillUpButton:{position:{align:"right",x:-10,y:10}},borderColor:"#e6e6e6",borderWidth:1,
opacity:.15,states:{hover:{borderColor:"#999999",brightness:h.heatmap?0:.1,halo:!1,opacity:.75,shadow:!1}}},{pointArrayMap:["value"],axisTypes:h.heatmap?["xAxis","yAxis","colorAxis"]:["xAxis","yAxis"],directTouch:!0,optionalAxis:"colorAxis",getSymbol:p,parallelArrays:["x","y","value","colorValue"],colorKey:"colorValue",translateColors:h.heatmap&&h.heatmap.prototype.translateColors,colorAttribs:h.heatmap&&h.heatmap.prototype.colorAttribs,trackerGroups:["group","dataLabelsGroup"],getListOfParents:function(a,
b){a=G(a||[],function(a,b,f){b=m(b.parent,"");void 0===a[b]&&(a[b]=[]);a[b].push(f);return a},{});I(a,function(a,r,f){""!==r&&-1===c.inArray(r,b)&&(q(a,function(a){f[""].push(a)}),delete f[r])});return a},getTree:function(){var a=v(this.data,function(a){return a.id}),a=this.getListOfParents(this.data,a);this.nodeMap=[];return this.buildNode("",-1,0,a,null)},init:function(a,b){y.prototype.init.call(this,a,b);this.options.allowDrillToNode&&c.addEvent(this,"click",this.onClickDrillToNode)},buildNode:function(a,
b,d,c,f){var g=this,r=[],u=g.points[b],C=0,e;q(c[a]||[],function(b){e=g.buildNode(g.points[b].id,b,d+1,c,a);C=Math.max(e.height+1,C);r.push(e)});b={id:a,i:b,children:r,height:C,level:d,parent:f,visible:!1};g.nodeMap[b.id]=b;u&&(u.node=b);return b},setTreeValues:function(a){var b=this,d=b.options,c=b.nodeMap[b.rootNode],d="boolean"===typeof d.levelIsConstant?d.levelIsConstant:!0,f=0,g=[],z,u=b.points[a.i];q(a.children,function(a){a=b.setTreeValues(a);g.push(a);a.ignore||(f+=a.val)});D(g,function(a,
b){return a.sortIndex-b.sortIndex});z=m(u&&u.options.value,f);u&&(u.value=z);t(a,{children:g,childrenTotal:f,ignore:!(m(u&&u.visible,!0)&&0<z),isLeaf:a.visible&&!f,levelDynamic:a.level-(d?0:c.level),name:m(u&&u.name,""),sortIndex:m(u&&u.sortIndex,-z),val:z});return a},calculateChildrenAreas:function(a,b){var d=this,c=d.options,f=this.levelMap[a.levelDynamic+1],g=m(d[f&&f.layoutAlgorithm]&&f.layoutAlgorithm,c.layoutAlgorithm),z=c.alternateStartingDirection,u=[];a=w(a.children,function(a){return!a.ignore});
f&&f.layoutStartingDirection&&(b.direction="vertical"===f.layoutStartingDirection?0:1);u=d[g](b,a);q(a,function(a,f){f=u[f];a.values=l(f,{val:a.childrenTotal,direction:z?1-b.direction:b.direction});a.pointValues=l(f,{x:f.x/d.axisRatio,width:f.width/d.axisRatio});a.children.length&&d.calculateChildrenAreas(a,a.values)})},setPointValues:function(){var a=this,b=a.xAxis,d=a.yAxis;q(a.points,function(c){var f=c.node,g=f.pointValues,r,u,e;e=(a.pointAttribs(c)["stroke-width"]||0)%2/2;g&&f.visible?(f=Math.round(b.translate(g.x,
0,0,0,1))-e,r=Math.round(b.translate(g.x+g.width,0,0,0,1))-e,u=Math.round(d.translate(g.y,0,0,0,1))-e,g=Math.round(d.translate(g.y+g.height,0,0,0,1))-e,c.shapeType="rect",c.shapeArgs={x:Math.min(f,r),y:Math.min(u,g),width:Math.abs(r-f),height:Math.abs(g-u)},c.plotX=c.shapeArgs.x+c.shapeArgs.width/2,c.plotY=c.shapeArgs.y+c.shapeArgs.height/2):(delete c.plotX,delete c.plotY)})},setColorRecursive:function(a,b,d,c,f){var g=this,r=g&&g.chart,r=r&&r.options&&r.options.colors,e;if(a){e=B(a,{colors:r,index:c,
levelMap:g.levelMap,parentColor:b,parentColorIndex:d,series:g,siblings:f});if(b=g.points[a.i])b.color=e.color,b.colorIndex=e.colorIndex;q(a.children||[],function(b,d){g.setColorRecursive(b,e.color,e.colorIndex,d,a.children.length)})}},algorithmGroup:function(a,b,d,c){this.height=a;this.width=b;this.plot=c;this.startDirection=this.direction=d;this.lH=this.nH=this.lW=this.nW=this.total=0;this.elArr=[];this.lP={total:0,lH:0,nH:0,lW:0,nW:0,nR:0,lR:0,aspectRatio:function(a,b){return Math.max(a/b,b/a)}};
this.addElement=function(a){this.lP.total=this.elArr[this.elArr.length-1];this.total+=a;0===this.direction?(this.lW=this.nW,this.lP.lH=this.lP.total/this.lW,this.lP.lR=this.lP.aspectRatio(this.lW,this.lP.lH),this.nW=this.total/this.height,this.lP.nH=this.lP.total/this.nW,this.lP.nR=this.lP.aspectRatio(this.nW,this.lP.nH)):(this.lH=this.nH,this.lP.lW=this.lP.total/this.lH,this.lP.lR=this.lP.aspectRatio(this.lP.lW,this.lH),this.nH=this.total/this.width,this.lP.nW=this.lP.total/this.nH,this.lP.nR=this.lP.aspectRatio(this.lP.nW,
this.nH));this.elArr.push(a)};this.reset=function(){this.lW=this.nW=0;this.elArr=[];this.total=0}},algorithmCalcPoints:function(a,b,d,c){var f,g,r,e,C=d.lW,p=d.lH,x=d.plot,n,m=0,h=d.elArr.length-1;b?(C=d.nW,p=d.nH):n=d.elArr[d.elArr.length-1];q(d.elArr,function(a){if(b||m<h)0===d.direction?(f=x.x,g=x.y,r=C,e=a/r):(f=x.x,g=x.y,e=p,r=a/e),c.push({x:f,y:g,width:r,height:e}),0===d.direction?x.y+=e:x.x+=r;m+=1});d.reset();0===d.direction?d.width-=C:d.height-=p;x.y=x.parent.y+(x.parent.height-d.height);
x.x=x.parent.x+(x.parent.width-d.width);a&&(d.direction=1-d.direction);b||d.addElement(n)},algorithmLowAspectRatio:function(a,b,d){var c=[],f=this,g,e={x:b.x,y:b.y,parent:b},u=0,p=d.length-1,n=new this.algorithmGroup(b.height,b.width,b.direction,e);q(d,function(d){g=d.val/b.val*b.height*b.width;n.addElement(g);n.lP.nR>n.lP.lR&&f.algorithmCalcPoints(a,!1,n,c,e);u===p&&f.algorithmCalcPoints(a,!0,n,c,e);u+=1});return c},algorithmFill:function(a,b,d){var c=[],f,g=b.direction,e=b.x,u=b.y,n=b.width,p=b.height,
x,m,h,t;q(d,function(d){f=d.val/b.val*b.height*b.width;x=e;m=u;0===g?(t=p,h=f/t,n-=h,e+=h):(h=n,t=f/h,p-=t,u+=t);c.push({x:x,y:m,width:h,height:t});a&&(g=1-g)});return c},strip:function(a,b){return this.algorithmLowAspectRatio(!1,a,b)},squarified:function(a,b){return this.algorithmLowAspectRatio(!0,a,b)},sliceAndDice:function(a,b){return this.algorithmFill(!0,a,b)},stripes:function(a,b){return this.algorithmFill(!1,a,b)},translate:function(){var a=this,b=a.rootNode=m(a.rootNode,a.options.rootId,""),
d,c;y.prototype.translate.call(a);a.levelMap=G(a.options.levels||[],function(a,b){a[b.level]=b;return a},{});c=a.tree=a.getTree();d=a.nodeMap[b];""===b||d&&d.children.length||(a.drillToNode("",!1),b=a.rootNode,d=a.nodeMap[b]);E(a.nodeMap[a.rootNode],function(b){var d=!1,c=b.parent;b.visible=!0;if(c||""===c)d=a.nodeMap[c];return d});E(a.nodeMap[a.rootNode].children,function(a){var b=!1;q(a,function(a){a.visible=!0;a.children.length&&(b=(b||[]).concat(a.children))});return b});a.setTreeValues(c);a.axisRatio=
a.xAxis.len/a.yAxis.len;a.nodeMap[""].pointValues=b={x:0,y:0,width:100,height:100};a.nodeMap[""].values=b=l(b,{width:b.width*a.axisRatio,direction:"vertical"===a.options.layoutStartingDirection?0:1,val:c.val});a.calculateChildrenAreas(c,b);a.colorAxis?a.translateColors():a.options.colorByPoint||a.setColorRecursive(a.tree);a.options.allowDrillToNode&&(d=d.pointValues,a.xAxis.setExtremes(d.x,d.x+d.width,!1),a.yAxis.setExtremes(d.y,d.y+d.height,!1),a.xAxis.setScale(),a.yAxis.setScale());a.setPointValues()},
drawDataLabels:function(){var a=this,b=w(a.points,function(a){return a.node.visible}),d,c;q(b,function(b){c=a.levelMap[b.node.levelDynamic];d={style:{}};b.node.isLeaf||(d.enabled=!1);c&&c.dataLabels&&(d=l(d,c.dataLabels),a._hasPointLabels=!0);b.shapeArgs&&(d.style.width=b.shapeArgs.width,b.dataLabel&&b.dataLabel.css({width:b.shapeArgs.width+"px"}));b.dlOptions=l(d,b.options.dataLabels)});y.prototype.drawDataLabels.call(this)},alignDataLabel:function(a){h.column.prototype.alignDataLabel.apply(this,
arguments);a.dataLabel&&a.dataLabel.attr({zIndex:(a.node.zIndex||0)+1})},pointAttribs:function(a,b){var c=a&&this.levelMap[a.node.levelDynamic]||{},e=this.options,f=b&&e.states[b]||{},g=a&&a.getClassName()||"";a={stroke:a&&a.borderColor||c.borderColor||f.borderColor||e.borderColor,"stroke-width":m(a&&a.borderWidth,c.borderWidth,f.borderWidth,e.borderWidth),dashstyle:a&&a.borderDashStyle||c.borderDashStyle||f.borderDashStyle||e.borderDashStyle,fill:a&&a.color||this.color};-1!==g.indexOf("highcharts-above-level")?
(a.fill="none",a["stroke-width"]=0):-1!==g.indexOf("highcharts-internal-node-interactive")?(b=m(f.opacity,e.opacity),a.fill=H(a.fill).setOpacity(b).get(),a.cursor="pointer"):-1!==g.indexOf("highcharts-internal-node")?a.fill="none":b&&(a.fill=H(a.fill).brighten(f.brightness).get());return a},drawPoints:function(){var a=this,b=w(a.points,function(a){return a.node.visible});q(b,function(b){var c="level-group-"+b.node.levelDynamic;a[c]||(a[c]=a.chart.renderer.g(c).attr({zIndex:1E3-b.node.levelDynamic}).add(a.group));
b.group=a[c]});h.column.prototype.drawPoints.call(this);a.options.allowDrillToNode&&q(b,function(b){b.graphic&&(b.drillId=a.options.interactByLeaf?a.drillToByLeaf(b):a.drillToByGroup(b))})},onClickDrillToNode:function(a){var b=(a=a.point)&&a.drillId;A(b)&&(a.setState(""),this.drillToNode(b))},drillToByGroup:function(a){var b=!1;1!==a.node.level-this.nodeMap[this.rootNode].level||a.node.isLeaf||(b=a.id);return b},drillToByLeaf:function(a){var b=!1;if(a.node.parent!==this.rootNode&&a.node.isLeaf)for(a=
a.node;!b;)a=this.nodeMap[a.parent],a.parent===this.rootNode&&(b=a.id);return b},drillUp:function(){var a=this.nodeMap[this.rootNode];a&&A(a.parent)&&this.drillToNode(a.parent)},drillToNode:function(a,b){var c=this.nodeMap[a];this.idPreviousRoot=this.rootNode;this.rootNode=a;""===a?this.drillUpButton=this.drillUpButton.destroy():this.showDrillUpButton(c&&c.name||a);this.isDirty=!0;m(b,!0)&&this.chart.redraw()},showDrillUpButton:function(a){var b=this;a=a||"\x3c Back";var c=b.options.drillUpButton,
e,f;c.text&&(a=c.text);this.drillUpButton?(this.drillUpButton.placed=!1,this.drillUpButton.attr({text:a}).align()):(f=(e=c.theme)&&e.states,this.drillUpButton=this.chart.renderer.button(a,null,null,function(){b.drillUp()},e,f&&f.hover,f&&f.select).addClass("highcharts-drillup-button").attr({align:c.position.align,zIndex:7}).add().align(c.position,!1,c.relativeTo||"plotBox"))},buildKDTree:p,drawLegendSymbol:c.LegendSymbolMixin.drawRectangle,getExtremes:function(){y.prototype.getExtremes.call(this,
this.colorValueData);this.valueMin=this.dataMin;this.valueMax=this.dataMax;y.prototype.getExtremes.call(this)},getExtremesFromAll:!0,bindAxes:function(){var a={endOnTick:!1,gridLineWidth:0,lineWidth:0,min:0,dataMin:0,minPadding:0,max:100,dataMax:100,maxPadding:0,startOnTick:!1,title:null,tickPositions:[]};y.prototype.bindAxes.call(this);c.extend(this.yAxis.options,a);c.extend(this.xAxis.options,a)},utils:{recursive:E,reduce:G}},{getClassName:function(){var a=c.Point.prototype.getClassName.call(this),
b=this.series,d=b.options;this.node.level<=b.nodeMap[b.rootNode].level?a+=" highcharts-above-level":this.node.isLeaf||m(d.interactByLeaf,!d.allowDrillToNode)?this.node.isLeaf||(a+=" highcharts-internal-node"):a+=" highcharts-internal-node-interactive";return a},isValid:function(){return this.id||n(this.value)},setState:function(a){c.Point.prototype.setState.call(this,a);this.graphic&&this.graphic.attr({zIndex:"hover"===a?1:0})},setVisible:h.pie.prototype.pointClass.prototype.setVisible})})(B,J);(function(c,
k,e){var h=c.CenteredSeriesMixin,v=c.Series,l=c.each,t=c.extend,p=h.getCenter,q=e.getColor,B=h.getStartAndEndRadians,w=c.grep,n=c.isNumber,A=c.isObject,m=c.isString,y=c.merge,D=c.pick,H=180/Math.PI,h=c.seriesType,I=e.setTreeValues,G=c.reduce,E=function(a,b){var c=b.mapIdToNode[a.parent],e=b.series,f=e.chart,g=e.points[a.i];b=q(a,{colors:f&&f.options&&f.options.colors,colorIndex:e.colorIndex,colorByPoint:e.colorByPoint,index:b.index,levelMap:b.levelMap,parentColor:c&&c.color,parentColorIndex:c&&c.colorIndex,
series:b.series,siblings:b.siblings});a.color=b.color;a.colorIndex=b.colorIndex;g&&(g.color=a.color,g.colorIndex=a.colorIndex,a.sliced=g.sliced);return a};h("sunburst","treemap",{center:["50%","50%"],dataLabels:{defer:!0,style:{textOverflow:"ellipsis"},rotationMode:"perpendicular"},rootId:void 0,levelIsConstant:!0,slicedOffset:10},{drawDataLabels:c.noop,drawPoints:function(){var a=this,b=a.levelMap,c=a.shapeRoot,e=a.group,f=a.hasRendered,g=a.rootNode,p=a.idPreviousRoot,u=a.nodeMap,h=u[p],q=h&&h.shapeArgs,
h=a.points,m=a.startAndEndRadians,k=a.chart,k=k&&k.options&&k.options.chart||{},K="boolean"===typeof k.animation?k.animation:!0,w=a.center[3]/2,B=a.chart.renderer,D,G=!1,E=!1;if(k=!!(K&&f&&g!==p&&a.dataLabelsGroup))a.dataLabelsGroup.attr({opacity:0}),D=function(){G=!0;a.dataLabelsGroup&&a.dataLabelsGroup.animate({opacity:1,visibility:"visible"})};l(h,function(d){var h,r,k=d.node,z=b[k.levelDynamic];h=d.shapeExisting||{};var l=k.shapeArgs||{},x,C=!(!k.visible||!k.shapeArgs);if(f&&K){var v={};r={end:l.end,
start:l.start,innerR:l.innerR,r:l.r,x:l.x,y:l.y};C?!d.graphic&&q&&(v=g===d.id?{start:m.start,end:m.end}:q.end<=l.start?{start:m.end,end:m.end}:{start:m.start,end:m.start},v.innerR=v.r=w):d.graphic&&(p===d.id?r={innerR:w,r:w}:c&&(r=c.end<=h.start?{innerR:w,r:w,start:m.end,end:m.end}:{innerR:w,r:w,start:m.start,end:m.start}));h=v}else r=l,h={};var v=[l.plotX,l.plotY],F;d.node.isLeaf||(g===d.id?(F=u[g],F=F.parent):F=d.id);t(d,{shapeExisting:l,tooltipPos:v,drillId:F,name:""+(d.name||d.id||d.index),plotX:l.plotX,
plotY:l.plotY,value:k.val,isNull:!C});v=d.options;F=a.options;k=A(l)?l:{};F=A(F)?F.dataLabels:{};v=A(v)?v.dataLabels:{};z=A(z)?z.dataLabels:{};z=y({rotationMode:"perpendicular",style:{width:k.radius}},F,z,v);n(z.rotation)||(k=k.end-(k.end-k.start)/2,k=k*H%180,"parallel"===z.rotationMode&&(k-=90),90<k&&(k-=180),z.rotation=k);0===z.rotation&&(z.rotation=.001);d.dlOptions=z;!E&&C&&(E=!0,x=D);d.draw({animate:r,attr:t(h,a.pointAttribs&&a.pointAttribs(d,d.selected&&"select")),onComplete:x,group:e,renderer:B,
shapeType:"arc",shapeArgs:l})});k&&E?(a.hasRendered=!1,a.options.dataLabels.defer=!0,v.prototype.drawDataLabels.call(a),a.hasRendered=!0,G&&D()):v.prototype.drawDataLabels.call(a)},pointAttribs:c.seriesTypes.column.prototype.pointAttribs,layoutAlgorithm:function(a,b,c){var d=a.start,e=a.end-d,g=a.val,h=a.x,k=a.y,m=a.r,p=m+a.radius,l=n(c.slicedOffset)?c.slicedOffset:0;return G(b||[],function(b,f){var n=1/g*f.val*e,r=d+n/2,q=h+Math.cos(r)*l,r=k+Math.sin(r)*l;f={x:f.sliced&&f.id!==c.idRoot?q:h,y:f.sliced&&
f.id!==c.idRoot?r:k,innerR:m,r:p,radius:a.radius,start:d,end:d+n};b.push(f);d=f.end;return b},[])},setShapeArgs:function(a,b,c){var d=[];a=w(a.children,function(a){return a.visible});d=this.layoutAlgorithm(b,a,c);l(a,function(a,b){b=d[b];var e=b.start+(b.end-b.start)/2,f=b.innerR+(b.r-b.innerR)/2,e=0===b.innerR&&6.28<b.end-b.start?{x:b.x,y:b.y}:{x:b.x+Math.cos(e)*f,y:b.y+Math.sin(e)*f},f=a.val?a.childrenTotal>a.val?a.childrenTotal:a.val:a.childrenTotal,g=(b.end-b.start)/(2*Math.PI),h=2*Math.PI*b.innerR;
this.points[a.i]&&(this.points[a.i].innerArcLength=g*h);a.shapeArgs=y(b,{plotX:e.x,plotY:e.y});a.values=y(b,{val:f});a.children.length&&this.setShapeArgs(a,a.values,c)},this)},translate:function(){var a=this.options,b=this.center=p.call(this),c=this.startAndEndRadians=B(a.startAngle,a.endAngle),e=b[3]/2,f=b[2]/2,g=this.rootNode=D(this.rootNode,a.rootId,""),h=this.nodeMap,k,l=h&&h[g],n,q;this.shapeRoot=l&&l.shapeArgs;v.prototype.translate.call(this);this.levelMap=G(this.options.levels||[],function(a,
b){a[b.level]=b;return a},{});q=this.tree=this.getTree();h=this.nodeMap;l=h[g];k=m(l.parent)?l.parent:"";n=h[k];I(q,{before:E,idRoot:g,levelIsConstant:a.levelIsConstant,levelMap:this.levelMap,mapIdToNode:h,points:this.points,series:this});b=h[""].shapeArgs={end:c.end,r:e,radius:(f-e)/(g===k?l.height:l.height+1),start:c.start,val:n.val,x:b[0],y:b[1]};this.setShapeArgs(n,b,{idRoot:g,slicedOffset:a.slicedOffset})},animate:function(a){var b=this.chart,c=[b.plotWidth/2,b.plotHeight/2],e=b.plotLeft,f=b.plotTop,
b=this.group;a?(a={translateX:c[0]+e,translateY:c[1]+f,scaleX:.001,scaleY:.001,rotation:10,opacity:.01},b.attr(a)):(a={translateX:e,translateY:f,scaleX:1,scaleY:1,rotation:0,opacity:1},b.animate(a,this.options.animation),this.animate=null)}},{draw:k,shouldDraw:function(){return!this.isNull}})})(B,M,J)});