js-pkg
Version:
Npm package of Syncfusion.JavaScript.
10 lines • 109 kB
JavaScript
/*!
* filename: ej.sunburstchart.min.js
* version : 15.3.0.33
* Copyright Syncfusion Inc. 2001 - 2017. All rights reserved.
* Use of this code is subject to the terms of our license.
* A copy of the current license can be obtained at any time by e-mailing
* licensing@syncfusion.com. Any infringement will be prosecuted under
* applicable laws.
*/
(function(n){typeof define=="function"&&define.amd?define(["./../common/ej.core.min","./../common/ej.data.min"],n):n()})(function(){var t=this&&this.__extends||function(n,t){function r(){this.constructor=n}for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i]);n.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)},n;(function(n){var h,y,c,p,u,o,r,i,a,f,e,w,s,l,b,v;(function(n){n[n.left="left"]="left";n[n.right="right"]="right";n[n.center="center"]="center"})(n.sunburstHorizontalAlignment||(n.sunburstHorizontalAlignment={}));h=n.sunburstHorizontalAlignment,function(n){n[n.circle="circle"]="circle";n[n.diamond="diamond"]="diamond";n[n.cross="cross"]="cross";n[n.pentagon="pentagon"]="pentagon";n[n.rectangle="rectangle"]="rectangle";n[n.triangle="triangle"]="triangle"}(n.sunburstLegendShape||(n.sunburstLegendShape={}));y=n.sunburstLegendShape,function(n){n[n.top="top"]="top";n[n.bottom="bottom"]="bottom";n[n.middle="middle"]="middle"}(n.sunburstVerticalAlignment||(n.sunburstVerticalAlignment={}));c=n.sunburstVerticalAlignment,function(n){n[n.flatlight="flatlight"]="flatlight";n[n.flatdark="flatdark"]="flatdark"}(n.sunburstTheme||(n.sunburstTheme={}));p=n.sunburstTheme,function(n){n[n.opacity="opacity"]="opacity";n[n.color="color"]="color"}(n.sunburstHighlightType||(n.sunburstHighlightType={}));u=n.sunburstHighlightType,function(n){n[n.rotation="rotation"]="rotation";n[n.fadeIn="fadeIn"]="fadeIn"}(n.sunburstAnimationType||(n.sunburstAnimationType={}));o=n.sunburstAnimationType,function(n){n[n.opacity="opacity"]="opacity";n[n.color="color"]="color"}(n.sunburstSelectionType||(n.sunburstSelectionType={}));r=n.sunburstSelectionType,function(n){n[n.top="top"]="top";n[n.bottom="bottom"]="bottom";n[n.left="left"]="left";n[n.right="right"]="right";n[n.float="float"]="float"}(n.sunburstLegendPosition||(n.sunburstLegendPosition={}));i=n.sunburstLegendPosition,function(n){n[n.none="none"]="none";n[n.toggleSegmentVisibility="toggleSegmentVisibility"]="toggleSegmentVisibility";n[n.toggleSegmentSelection="toggleSegmentSelection"]="toggleSegmentSelection"}(n.sunburstLegendClickAction||(n.sunburstLegendClickAction={}));a=n.sunburstLegendClickAction,function(n){n[n.near="near"]="near";n[n.far="far"]="far";n[n.center="center"]="center"}(n.sunburstAlignment||(n.sunburstAlignment={}));f=n.sunburstAlignment,function(n){n[n.point="point"]="point";n[n.all="all"]="all";n[n.child="child"]="child";n[n.parent="parent"]="parent"}(n.sunburstHighlightMode||(n.sunburstHighlightMode={}));e=n.sunburstHighlightMode,function(n){n[n.point="point"]="point";n[n.all="all"]="all";n[n.child="child"]="child";n[n.parent="parent"]="parent"}(n.sunburstSelectionMode||(n.sunburstSelectionMode={}));w=n.sunburstSelectionMode,function(n){n[n.trim="trim"]="trim";n[n.hide="hide"]="hide";n[n.none="none"]="none"}(n.sunburstLabelOverflowMode||(n.sunburstLabelOverflowMode={}));s=n.sunburstLabelOverflowMode,function(n){n[n.angle="angle"]="angle";n[n.normal="normal"]="normal"}(n.sunburstLabelRotationMode||(n.sunburstLabelRotationMode={}));l=n.sunburstLabelRotationMode,function(n){n[n.center="center"]="center";n[n.near="near"]="near";n[n.far="far"]="far"}(n.titleAlignment||(n.titleAlignment={}));b=n.titleAlignment;v=function(v){function b(t,b){v.call(this);this.defaults={enableAnimation:!1,load:null,preRender:null,loaded:null,dataLabelRendering:null,titleRendering:null,tooltipInitialize:null,pointRegionClick:null,drillDownClick:null,drillDownBack:null,drillDownReset:null,pointRegionMouseMove:null,legendItemRendering:null,legendItemClick:null,segmentRendering:null,animationType:o.rotation,palette:null,opacity:1,valueMemberPath:null,margin:{top:10,bottom:10,left:10,right:10},points:{x:null,y:null,text:null,fill:null},border:{color:null,width:2},segmentBorder:{color:null,width:2},startAngle:null,endAngle:null,dataSource:null,isResponsive:!0,size:{height:"",width:""},innerRadius:.4,radius:1,tooltip:{visible:!1,border:{color:"#707070",width:1},fill:"#FFFFFF",opacity:.95,font:{fontFamily:"Segoe UI",fontStyle:"Normal",fontWeight:"Regular",color:"#707070",opacity:1,size:"12px"},template:null,format:"#point.x# : #point.y#"},dataLabelSettings:{visible:!1,labelRotationMode:l.angle,font:{fontFamily:"Segoe UI",fontStyle:"Normal",fontWeight:"Regular",color:null,opacity:1,size:"12px"},template:null,fill:null,labelOverflowMode:s.trim},title:{text:"",textAlignment:f.center,font:{fontFamily:"Segoe UI",fontWeight:"Regular",fontStyle:"Normal",color:null,opacity:1,size:"20px"},subtitle:{visible:!0,textAlignment:f.far,text:"",font:{fontFamily:"Segoe UI",fontWeight:"Regular",fontStyle:"Normal",color:null,opacity:1,size:"12px"}},visible:!0},zoomSettings:{enable:!1,toolbarHorizontalAlignment:h.right,toolbarVerticalAlignment:c.top},highlightSettings:{enable:!1,mode:e.point,opacity:.5,color:"red",type:u.opacity},selectionSettings:{enable:!1,mode:w.point,opacity:.5,color:"green",type:r.opacity},levels:null,legend:{clickAction:a.toggleSegmentVisibility,visible:!1,position:i.bottom,rowCount:null,columnCount:null,shape:y.circle,alignment:f.center,title:{font:{fontFamily:"Segoe UI",fontWeight:"Regular",fontStyle:"Normal",color:null,opacity:1,size:"12px"},text:"",textAlignment:f.center,visible:!0},itemStyle:{height:7.5,width:7.5},itemPadding:10,size:{height:null,width:null},border:{color:null,width:1},font:{fontFamily:"Segoe UI",fontWeight:"Regular",fontStyle:"Normal",color:null,opacity:1,size:"12px"},location:{x:null,y:null}},theme:p.flatlight,background:null};this.model=null;this.svgLink="http://www.w3.org/2000/svg";this.elementSpacing=10;this._id=null;this._legendHighlight=!1;this.legendClicked=!1;this._legendMaxWidth=0;this._legendMaxHeight=0;this._drillInnerRadius=[];this._drillOuterRadius=[];this.common={data:null,cancel:!1};this.legendPages=[];this.groupID=[];this.highlightgroupID=[];this.selectedgroupID=[];this.baseID=null;this._previousState=[];this._drillDownStartAngle=[];this._drillDownEndAngle=[];this._sunburstRedraw=!1;this._isDoubleClickEvent=!1;this.tapCount=0;this.drilldownCount=0;this.tapped=0;this._points=[];this.visiblePoints=[];this.parentNames=[];this.levelNames=[];this.isResize=!1;this.revAnimation=!1;this.validTags=["div"];this._id=t;!b||(this.model=n.compareExtend({},b,this.defaults))}return t(b,v),b.prototype._destroy=function(){var n;n=document.getElementById(this.container.id);this.isNullOrUndefined(n)||(this.unBindEvents(this.parentElement),this.unbindResizeEvents(),n.parentNode.removeChild(n))},b.prototype.unBindEvents=function(n){var t="",i=this.browserInfo(),r=i.isMSPointerEnabled,u=i.pointerEnabled,e=r?u?"pointerup":"MSPointerUp":"touchend mouseup",o=r?u?"pointermove":"MSPointerMove":"touchmove mousemove",f;t=o;t=t.split(" ");for(f in t)n.removeEventListener(t[f],this.sunburstMousemove),n.removeEventListener(e,this.sunburstLeave);n.removeEventListener("mouseout",this.sunburstLeave)},b.prototype.unbindResizeEvents=function(){ej.isTouchDevice()&&this._isOrientationSupported()?window.removeEventListener("orientationchange",this.sunBurstResize):window.removeEventListener("resize",this.sunBurstResize)},b.prototype._setModel=function(t){for(var i in t)switch(i){default:n.deepExtend(!0,this.model,{},t[i])}this.redraw()},b.prototype.supportSVG=function(){return!!document.createElementNS&&!!document.createElementNS("http://www.w3.org/2000/svg","svg")},b.prototype._init=function(){if(this.supportSVG()){var n=void 0,r=void 0,t=void 0,i=void 0;this._startAngle=this.model.startAngle;this._endAngle=this.model.endAngle;this.isResize||(this._enableAnimation=this.model.enableAnimation,this._drillDownStartAngle=[],this._drillDownEndAngle=[],this._drillInnerRadius=[],this._drillOuterRadius=[]);r=$.extend({},this.common);this._trigger("load",r);this.parentElement=this.isNullOrUndefined(this.parentElement)?document.getElementById(this._id):this.parentElement;n=this.createSvg({id:this._id+"_svg"});this.container=n;this.parentElement.appendChild(n);this.setSvgsize(this.model.size,this._id);this._sunburstRedraw==!1&&this.bindEvents(this.parentElement);this.isResize?this.isResize=this.isResize?!1:!0:(!this.isNullOrUndefined(this.model.dataSource)&&this.model.dataSource.length>0&&this.processDataSource(this.model.dataSource),this.setColors(this.model.points),this._previousState.push(this.model.points),this.processData(this.model.points));t=$.extend({},this.common);t.data={};this._trigger("preRender",t);this.drawSunburst(this.layerData);this._isDrillDown&&this.drawToolbar(n);i=$.extend({},this.common);i.data={model:this.model};this._trigger("loaded",i)}else alert("Sunburst will not be support in IE version < 8")},b.prototype.drawSunburst=function(n){var s,h,f,t,e,i=this.model.title,c=this.model.legend,l=this.model.dataLabelSettings,v=this.model.enableAnimation,r,u,a;s=this.drawContainerRect();document.getElementById(this._id+"_svg").appendChild(s);c.visible&&!this.legendClicked&&this.calculateLegendBounds();e={width:this.width,height:this.height};i.text!=""&&i.visible&&(h=this.drawTitle(i,e),document.getElementById(this._id+"_svg").appendChild(h));this.areaBounds=this.calculateSize(e,i);f=this.sunburstRender(n);document.getElementById(this._id+"_svg").appendChild(f);this._enableAnimation&&(r=void 0,this.groupingRegions(this.model.points),this.animationRegions.length>0&&(this.model.animationType==o.rotation?this._isDrillDown?this.rotateDrillDownAnimation(this,this.animationRegions):this.rotateAnimation(this,this.animationRegions):(this.totallayerCount>1?(u=this.animationRegions[0].length,r=this.animationRegions[0][u-1].endAngle):(u=this.animationRegions.length,r=this.animationRegions[u-1][0].endAngle),this.animateLayer(this,f,this.animationRegions[0],0,0,r))));l.visible&&(t=this.drawDatalabel(n),l.template==null?(this._enableAnimation&&t.setAttribute("visibility","hidden"),document.getElementById(this._id+"_svg").appendChild(t)):this._enableAnimation&&(document.getElementById(t.id).style.visibility="hidden"),this.sunburstDoubleClick=this.sunburstDoubleClick.bind(this),document.getElementById(t.id).addEventListener("dblclick",this.sunburstDoubleClick,!0));c.visible&&(this.gLegendEle=this.createGroup({id:this._id+"SunburstLegend"}),this.model.legendInitialize&&(a=$.extend({},this.common),this._trigger("legendInitialize",a)),this.drawSunburstLegend())},b.prototype.animateLayer=function(n,t,i,r,u,f){var h=i[r].startAngle,o=i[r].endAngle,w,e,a,g,nt,c,b,k,s,v=h,l,y,p=0,d=50;w=(o-h)/Math.ceil(d*(o-h)/f);y=n.model.opacity/2/Math.ceil(d*(o-h)/f);e=i[r];this.layeranim=setInterval(function(){a=e.layerNumber;g=e.layerIndex;nt=e.pointIndex;k=n.circularRadius[a-1];l=e.id;v=v+w;c=v;e.endAngle=c>o?o:c;n.isNullOrUndefined(n.model)?clearInterval(n.layeranim):(b=n.calculateArcData(e,a,k),s=t.querySelector("#"+l),p+=y,s&&(s.setAttribute("d",b.Direction),s.setAttribute("opacity",p.toString())),document.getElementById(l).getAttribute("visibility")=="hidden"&&document.getElementById(l).setAttribute("visibility","visible"),c>=o&&(clearInterval(n.layeranim),n.fadeIn(s,p,n,y),r=r+1,r<i.length?n.animateLayer(n,t,i,r,u,f):(r=0,u=u+1,u<n.animationRegions.length?n.animateLayer(n,t,n.animationRegions[u],r,u,f):n.model.dataLabelSettings.visible&&(document.getElementById(n._id+"_svg_DataLabelGroup").style.visibility="visible"))))},10)},b.prototype.fadeIn=function(n,t,i){var r=setInterval(function(){t=t+.1;n.setAttribute("opacity",t.toString());(i.model==null||t>=i.model.opacity)&&clearInterval(r)},50)},b.prototype.rotateAnimation=function(n,t){var y=t.length,r=0,e,h,u,f,l,i=0,a,v,o,c,s=0;l=document.getElementById(n._id+"_svg");f=n.model.startAngle||0;u=n.model.endAngle||360;o=Math.abs(u-f);c=10/o;r=20/360*o+f;y>0&&(this.rotateanim=setInterval(function(){if(n.model){if(e=document.getElementById(n._id+"_svg_SunBurstElementGroup"),e!=null&&e.parentNode.removeChild(e),n.model.startAngle=f,n.model.endAngle=r>u?u:r,n._enableAnimation=!1,h=n.sunburstRender(n.layerData),l.appendChild(h),i=i+c,i=i>1?1:i,a=n.width/2*(1-i),v=n.height/2*(1-i),h.setAttribute("transform","translate("+a+","+v+") scale("+i+")"),r>=u&&(clearInterval(n.rotateanim),n.rotateanim=undefined,n._enableAnimation=!0,n.model.startAngle=f,n.model.endAngle=u,n.model.dataLabelSettings.visible)){var t=document.getElementById(n._id+"_svg_DataLabelGroup"),y=.1;n.model.dataLabelSettings.template==null?document.getElementById(n._id+"_svg").appendChild(t):document.getElementById(n._id).appendChild(t);t.style.visibility="visible";t.style.opacity=y.toString();n.datalabelanim=setInterval(function(){t.style.opacity=y.toString();y=y+.05;y>1&&clearInterval(n.datalabelanim)},10)}r=r+(10-s);s=s+.1;c=1/(o/10-s)}else clearInterval(n.rotateanim)},25))},b.prototype.rotateDrillDownAnimation=function(n,t){var w=t.length,s=0,h=0,c,l,i,r,a,f=0,v,y,o=1,u=.05,e=0,p;a=document.getElementById(n._id+"_svg");r=n.model.startAngle||0;i=n.model.endAngle||360;s=f=n._drillDownStartAngle[n.drilldownCount-1];h=e=n._drillDownEndAngle[n.drilldownCount-1];v=(s-r)/20;y=(i-h)/20;w>0&&(p=setInterval(function(){var t,w,b;c=document.getElementById(n._id+"_svg_SunBurstElementGroup");c.parentNode.removeChild(c);n.model.startAngle=f<r?r:f;n.model.endAngle=e>i?i:e;n._enableAnimation=!1;l=n.sunburstRender(n.layerData);a.appendChild(l);f<=r&&e>=i&&(clearInterval(p),n._enableAnimation=!0,n.model.startAngle=r,n.model.endAngle=i,n.model.dataLabelSettings.visible&&(t=document.getElementById(n._id+"_svg_DataLabelGroup"),w=.1,n.model.dataLabelSettings.template==null?document.getElementById(n._id+"_svg").appendChild(t):document.getElementById(n._id).appendChild(t),t.style.visibility="visible",t.style.opacity=w.toString(),b=setInterval(function(){t.style.opacity=w.toString();w=w+.05;w>1&&clearInterval(b)},10)));o=o+(1-u);u=u+.015;u=u>.7?.7:u;f=s-v*o;e=h+y*o},25))},b.prototype.groupingRegions=function(){var e=this.sunburstRegions,n,t,r=this.sunburstRegions[this.sunburstRegions.length-1].region,u=[],f,i;for(this.animationRegions=[],u.push(r),i=0;i<r.length;i++)e.length>1?(n=[],t=this.layerData[r[i].layerIndex].point[r[i].pointIndex],f=t.groupNumber,this.isNullOrUndefined(t.point)||this.findChildRegions(t.point,n,t.layerNumber,u,f),this.model.animationType==o.rotation?(n.splice(0,0,t),t.count=0,t.groupLength=n.length,this.animationRegions.push(n)):this.animationRegions=u):(n=[],n.push(r[i]),this.animationRegions.push(n))},b.prototype.findChildRegions=function(n,t,i,r,u){for(var f=0;f<n.length;f++)n[f].pointIndex=f,n[f].layerNumber=this.layerData[n.layerData].layerNumber,n[f].groupNumber=u,n[f].count=0,this.model.animationType==o.rotation?t.push(n[f]):(this.isNullOrUndefined(r[n[f].layerNumber-1])&&(r[n[f].layerNumber-1]=[]),r[n[f].layerNumber-1].push(n[f])),this.isNullOrUndefined(n[f].point)||this.findChildRegions(n[f].point,t,i,r,u)},b.prototype.bindEvents=function(n){var t="",i="",r=this.browserInfo(),u=ej.isDevice(),f=r.isMSPointerEnabled,e=r.pointerEnabled,s=f?e?"pointerup":"MSPointerUp":"touchend mouseup",h=f?e?"pointermove":"MSPointerMove":"touchmove mousemove",o;t=h;t=t.split(" ");this.sunburstMousemove=this.sunburstMousemove.bind(this);this.sunburstClick=this.sunburstClick.bind(this);n.addEventListener("click",this.sunburstClick,!0);this.sunburstLeave=this.sunburstLeave.bind(this);for(o in t)(n.addEventListener(s,this.sunburstLeave),i=t[o],u&&i=="mousemove")||n.addEventListener(i,this.sunburstMousemove);u&&n.addEventListener("mousedown",this.sunburstMousemove);n.addEventListener("mouseout",this.sunburstLeave,!0);this.getIEversion()!=-1&&(this.sunburstDoubletap=this.sunburstDoubletap.bind(this),n.addEventListener("pointerdown",this.sunburstDoubletap,!0));this.model.isResponsive&&this.bindResizeEvents()},b.prototype.browserInfo=function(){var n={},t=[],i={webkit:/(chrome)[ \/]([\w.]+)/i,safari:/(webkit)[ \/]([\w.]+)/i,msie:/(msie) ([\w.]+)/i,opera:/(opera)(?:.*version|)[ \/]([\w.]+)/i,mozilla:/(mozilla)(?:.*? rv:([\w.]+)|)/i};for(var r in i)if(i.hasOwnProperty(r)&&(t=navigator.userAgent.match(i[r]),t)){n.name=t[1].toLowerCase();n.version=t[2];!navigator.userAgent.match(/Trident\/7\./)||(n.name="msie");break}return n.isMSPointerEnabled=n.name=="msie"&&n.version>9&&window.navigator.msPointerEnabled,n.pointerEnabled=window.navigator.pointerEnabled,n},b.prototype.sunburstDoubletap=function(n){var t=n.target.id,i;t.indexOf("reset")==-1&&t.indexOf("back")==-1&&(n.preventDefault(),this.tapped=this.tapped+1,i=this.tapped)},b.prototype.bindResizeEvents=function(){this.sunBurstResize=this.sunBurstResize.bind(this);ej.isTouchDevice()&&this._isOrientationSupported()?window.addEventListener("orientationchange",this.sunBurstResize,!0):window.addEventListener("resize",this.sunBurstResize.bind(this),!0)},b.prototype._isOrientationSupported=function(){return"orientation"in window&&"onorientationchange"in window},b.prototype.sunBurstResize=function(){var n=this,t=$(n.container);this._resizeTO&&clearTimeout(this._resizeTO);this._resizeTO=setTimeout(function(){n.model&&(n.isResize=!0,n.isNullOrUndefined(document.getElementById(n._id+"reset"))||(n._isDrillDown=!0),n.legendClicked=!0,n._enableAnimation=!1,n.redraw(),n._enableAnimation=n.model.enableAnimation,n._isDrillDown=!1,n.legendClicked=!1)},500)},b.prototype.getIEversion=function(){var i=-1,n,t;return navigator.appName=="Microsoft Internet Explorer"?(n=navigator.userAgent,t=new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})"),t.exec(n)!=null&&(i=parseFloat(RegExp.$1))):navigator.appName=="Netscape"&&(n=navigator.userAgent,t=new RegExp("Trident/.*rv:([0-9]{1,}[.0-9]{0,})"),t.exec(n)!=null&&(i=parseFloat(RegExp.$1))),i},b.prototype.sunburstDoubleClick=function(n){var t;this.model.zoomSettings.enable&&(t=this.getSunburstPoint(n),this.isNullOrUndefined(t)||(t.pointData[0].layerNumber==1?this.drilldownCount==0&&this.drillDown(t):this.drillDown(t)))},b.prototype.drillDown=function(n){var t,u=[],f,i,e,s,r,h,c;i=document.getElementById(this._id+"_svg");i.parentNode.replaceChild(i.cloneNode(!1),i);t=this.layerData[n.pointData[0].layerIndex].point[n.pointData[0].pointIndex];this.drilldownCount=this.drilldownCount+1;this._drillDownStartAngle.push(t.startAngle*180/Math.PI);this._drillDownEndAngle.push(t.endAngle*180/Math.PI);this._isDrillDown=!0;this._isDoubleClickEvent=!0;this.model.enableAnimation&&this.model.animationType==o.rotation&&(r=n.pointData[0].layerNumber,r==1?(this._drillInnerRadius.push(this.innerRadius),this._drillOuterRadius.push(this.circularRadius)):(h=this.innerRadius.slice(r-1,this.innerRadius.length),c=this.circularRadius.slice(r-1,this.circularRadius.length),this._drillInnerRadius.push(h),this._drillOuterRadius.push(c)));f={fill:n.pointData[0].fill,x:n.pointData[0].x,y:n.pointData[0].y,point:t.point,text:n.pointData[0].text};this.model.drillDownClick&&(e=$.extend({},this.common),e.data=f,this._trigger("drillDownClick",e));u.push(f);this._previousState.push(u);this.processData(u);this.drawSunburst(this.layerData);this._isDrillDown=!1;this.isNullOrUndefined(document.getElementById(this._id+"reset"))&&(s=document.getElementById(this._id+"_svg"),this.drawToolbar(s))},b.prototype.drawToolbar=function(n){var t,i,r;r=n.getBoundingClientRect();i=this.drawResetButton(r);n.appendChild(i);this.reset=this.reset.bind(this);document.getElementById(this._id+"reset").addEventListener("click",this.reset,!0);t=this.drawBackButton(r);n.appendChild(t);this.back=this.back.bind(this);document.getElementById(this._id+"back").addEventListener("click",this.back,!0);ej.isDevice()||(document.getElementById(this._id+"back").addEventListener("mousemove",this.sunburstMousemove,!0),document.getElementById(this._id+"reset").addEventListener("mousemove",this.sunburstMousemove,!0));this.toolbarPositioning(t,i)},b.prototype.toolbarPositioning=function(n,t){var e,o,u,f,s,r,i=this.elementSpacing,l=this.model.zoomSettings.toolbarHorizontalAlignment,a=this.model.zoomSettings.toolbarVerticalAlignment;r=n.getBoundingClientRect();s=t.getBoundingClientRect();l==h.right?(o=this.width-i-s.width,u=this.width-2*i-2*s.width):l==h.left?(u=i,o=r.width+2*i):l==h.center&&(u=this.width/2-(r.width+i+s.width)/2,o=u+i+r.width);a==c.top?f=i:a==c.bottom?f=this.height-i-r.height:a==c.middle&&(f=this.height/2-r.height/2);e="translate("+o.toString()+","+f.toString()+")";t.setAttribute("transform",e);e="translate("+u.toString()+","+f.toString()+")";n.setAttribute("transform",e)},b.prototype.drawBackButton=function(){var n,t,i;return i=this.createGroup({id:this._id+"back"}),n={id:this._id+"backPath",d:"M24,27H3c-1.7,0-3-1.3-3-3V3c0-1.7,1.3-3,3-3h21c1.7,0,3,1.3,3,3v21C27,25.7,25.7,27,24,27z",fill:"#D6D6D6"},t=this.drawPath(n),i.appendChild(t),n={id:this._id+"backPath1",x:7.7,y:12.5,width:13.8,height:2,fill:"#5E5C5C"},t=this.drawRect(n),i.appendChild(t),n={id:this._id+"backPath2",points:"11.4,19.8 5.5,13.5 11.4,7.2 12.9,8.6 8.2,13.5 12.9,18.4",fill:"#5E5C5C"},t=this.drawPolygon(n),i.appendChild(t),i},b.prototype.back=function(){var f=this.layerData,n=document.getElementById(this._id+"_svg"),e=document.getElementById(this._id+"back"),s=document.getElementById(this._id+"reset"),u=this.model,t,i,r;this.revAnimation||(u.drillDownBack&&(i=$.extend({},this.common),i.data=f,this._trigger("drillDownBack",i)),this._enableAnimation&&u.animationType==o.rotation?(this._enableAnimation=!1,this.reverseAnimation(this,this.animationRegions)):(n.parentNode.replaceChild(n.cloneNode(!1),n),r=this._previousState.length-1,this.layerData=this._previousState[r-1],this._previousState.splice(r,1),this.drilldownCount=this.drilldownCount-1,this.processData(this.layerData),this.drawSunburst(this.layerData),this.drilldownCount!=0&&(t=document.getElementById(this._id+"_svg"),t.appendChild(s),t.appendChild(e))))},b.prototype.reverseAnimation=function(n,t){var nt=t.length,e=0,o=0,h,b,c,l,r,a,v,k,d,y=0,i,tt=document.getElementById(n._id+"back"),it=document.getElementById(n._id+"reset"),s,f,p,w,u=.1,g;r=document.getElementById(n._id+"_svg");l=n.model.startAngle||0;c=n.model.endAngle||360;e=n._drillDownStartAngle[n.drilldownCount-1];o=n._drillDownEndAngle[n.drilldownCount-1];k=(e-l)/20;d=(c-o)/20;i=document.getElementById(n._id+"_svg_DataLabelGroup");nt>0&&(g=setInterval(function(){if(n.revAnimation=!0,h=document.getElementById(n._id+"_svg_SunBurstElementGroup"),h&&h.parentNode.removeChild(h),i&&(i.style.visibility="hidden"),a=k*y+l,n.model.startAngle=a>=e?e:a,v=c-d*y,n.model.endAngle=v<o?o:v,b=n.sunburstRender(n.layerData),r.appendChild(b),v<=o&&a>=e){clearInterval(g);s=document.getElementById(n._id+"_svg_SunBurstElementGroup");s.id=n._id+"_svg_tempSeg";f=document.getElementById(n._id+"_svg_DataLabelGroup");r.parentNode.replaceChild(r.cloneNode(!1),r);document.getElementById(n._id+"_svg").appendChild(s);f&&(f.id=n._id+"_svg_tempLabel",document.getElementById(n._id+"_svg").appendChild(f));p=n._previousState.length-1;n.layerData=n._previousState[p-1];n._previousState.splice(p,1);n.model.startAngle=l;n.model.endAngle=c;n.drilldownCount=n.drilldownCount-1;n._drillDownStartAngle.length=n.drilldownCount;n._drillDownEndAngle.length=n.drilldownCount;n._drillInnerRadius.length=n.drilldownCount;n._drillOuterRadius.length=n.drilldownCount;n.processData(n.layerData);n.drawSunburst(n.layerData);n.drilldownCount!=0&&(r=document.getElementById(n._id+"_svg"),r.appendChild(it),r.appendChild(tt));n._enableAnimation=!0;w=document.getElementById(n._id+"_svg_SunBurstElementGroup");w.style.opacity=u.toString();i&&(i.style.opacity=u.toString());n.model.dataLabelSettings.visible&&(i=document.getElementById(n._id+"_svg_DataLabelGroup"),n.model.dataLabelSettings.template==null?document.getElementById(n._id+"_svg").appendChild(i):document.getElementById(n._id).appendChild(i),i.style.visibility="visible",i.style.opacity=u.toString());var t=setInterval(function(){w.style.opacity=u.toString();i&&(i.style.opacity=u.toString());u>=1&&(clearInterval(t),n.revAnimation=!1,s.parentNode.removeChild(s),f&&f.parentNode.removeChild(f));u=u+.1},50)}y=y+1},40))},b.prototype.drawResetButton=function(){var n,i,t,r;return t=this.createGroup({id:this._id+"reset"}),n={id:this._id+"resetPath",d:"M24,27H3c-1.7,0-3-1.3-3-3V3c0-1.7,1.3-3,3-3h21c1.7,0,3,1.3,3,3v21C27,25.7,25.7,27,24,27z",fill:"#D6D6D6"},i=this.drawPath(n),t.appendChild(i),n={id:this._id+"resetPath1",d:"M13.6,21.9c-3.6,0-6.8-2.3-8-5.7l1.8-0.6c0.9,2.6,3.4,4.4,6.2,4.4c3.4,0,6.2-2.6,6.5-6l1.9,0.2 C21.6,18.6,18,21.9,13.6,21.9z",fill:"#5E5C5C"},i=this.drawPath(n),t.appendChild(i),n={id:this._id+"resetPath2",d:"M7.1,12.5l-1.9-0.3c0.6-4.1,4.2-7.1,8.3-7.1c3,0,5.8,1.6,7.3,4.2c0.1,0.2,0.2,0.4,0.3,0.6l-1.7,0.8 c-0.1-0.2-0.2-0.3-0.2-0.4c-1.2-2-3.3-3.3-5.7-3.3C10.4,7,7.6,9.3,7.1,12.5z",fill:"#5E5C5C"},i=this.drawPath(n),t.appendChild(i),n={id:this._id+"resetPath3",points:"21.4,11.9 16.2,10.7 16.6,8.9 19.9,9.6 20.7,6.3 22.5,6.7",fill:"#5E5C5C"},r=this.drawPolygon(n),t.appendChild(r),n={id:this._id+"resetPath4",points:"6.3,20.3 4.5,19.9 5.6,14.8 10.8,16 10.4,17.8 7.1,17.1",fill:"#5E5C5C"},r=this.drawPolygon(n),t.appendChild(r),t},b.prototype.reset=function(){if(this.model.drillDownReset){var n=$.extend({},this.common);this._trigger("drillDownReset",n)}this.redraw()},b.prototype.redraw=function(){this.legendPages=[];this.isResize||(this.drilldownCount=0,this._previousState=[],this._drillDownStartAngle=[],this._drillDownEndAngle=[],this._drillInnerRadius=[],this._drillOuterRadius=[]);this._sunburstRedraw=!0;var n=document.getElementById(this._id+"_svg");this.isNullOrUndefined(n)||(n.parentNode.removeChild(n),(this.rotateanim||this.model.enableAnimation)&&this.stopAnimation(),this.parentElement=undefined,this._init(),this._sunburstRedraw=!1)},b.prototype.stopAnimation=function(){this.rotateanim&&(clearInterval(this.rotateanim),this.isResize||(this._enableAnimation=this.model.enableAnimation),this.model.startAngle=this._startAngle,this.model.endAngle=this._endAngle,this.datalabelanim&&clearInterval(this.datalabelanim));this.layeranim&&clearInterval(this.layeranim)},b.prototype.sunburstMousemove=function(n){var e=n.target.id,y,i,c,v,l,o,s,t,r,h,f;if(e.indexOf("reset")!=-1||e.indexOf("back")!=-1)if(this.toolbarTooltip(n,e),e.indexOf("reset")!=-1)for(y=document.getElementById(this._id+"reset"),t=0;t<5;t++)t==0?document.getElementById(this._id+"resetPath").setAttribute("fill","rgb(20, 185, 255)"):document.getElementById(this._id+"resetPath"+t.toString()).setAttribute("fill","#FFFFFF");else for(t=0;t<3;t++)t==0?document.getElementById(this._id+"backPath").setAttribute("fill","rgb(20, 185, 255)"):document.getElementById(this._id+"backPath"+t.toString()).setAttribute("fill","#FFFFFF");else if(document.getElementById(this._id+"toolbarTooltip")!=null&&document.getElementById(this._id+"toolbarTooltip").style.visibility!="hidden"&&(document.getElementById(this._id+"toolbarTooltip").style.visibility="hidden",document.getElementById(this._id+"reset")!=null&&document.getElementById(this._id+"back")!=null)){for(t=0;t<5;t++)t==0?document.getElementById(this._id+"resetPath").setAttribute("fill","#D6D6D6"):document.getElementById(this._id+"resetPath"+t.toString()).setAttribute("fill","#5E5C5C");for(t=0;t<3;t++)t==0?document.getElementById(this._id+"backPath").setAttribute("fill","#D6D6D6"):document.getElementById(this._id+"backPath"+t.toString()).setAttribute("fill","#5E5C5C")}if(i=this.getSunburstPoint(n),i!=undefined&&this.model.pointRegionMouseMove&&(c=$.extend({},this.common),c.data=i,this._trigger("pointRegionMouseMove",c)),!this.isNullOrUndefined(i)&&this.model.tooltip.visible){for(v={id:this._id+"_ToolTip"},this.gTransToolEle=this.createGroup(v),l={X:i.location.x,Y:Math.abs(i.location.y)},t=0;t<this.layerData.length;t++)this.layerData[t].layerNumber==i.pointData[0].layerNumber&&(this.isNullOrUndefined(i.pointData[0].parentName)?(s=this.layerData[0],o=this.layerData[0].point[i.pointData[0].pointIndex]):this.layerData[t].parentName==i.pointData[0].parentName&&(s=this.layerData[t],o=this.layerData[t].point[i.pointData[0].pointIndex]));this.model.tooltip.template?this.createTooltiptemplate(l,o,s,i):this.showTooltip(l,o,s,i)}else this.isNullOrUndefined(document.getElementById(this._id+"_ToolTip"))||(document.getElementById(this._id+"_ToolTip").style.visibility="hidden");if(this.model.highlightSettings.enable&&(r=void 0,h=this.model.highlightSettings,this.highlightSunburst(i),!this.isNullOrUndefined(i)&&this.model.legend.visible))for(f=0;f<this.model.points.length;f++)r=document.getElementById(this._id+"_svg_LegendItemShape"+f),h.type==u.opacity?this.selectedGroupNumber-1!=f&&i.pointData[0].legendIndex!=f&&(this.isNullOrUndefined(r)||(r.style.opacity=h.opacity.toString())):i.pointData[0].legendIndex==f?r.getAttribute("class")!="SelectionStyleSunburst"&&(r.setAttribute("class","HighlightStyleSunburst"),r.style.opacity=h.opacity.toString()):r.getAttribute("class")=="HighlightStyleSunburst"||r.removeAttribute("class");e.indexOf(this._id+"_svg_LegendItem")!=-1&&this.model.legend.clickAction==a.toggleSegmentSelection&&this.legendSegments(e)},b.prototype.legendSegments=function(n){var o,u,s,t,f,h,e,r,i;for(o=n.replace(this._id+"_svg",""),u=parseInt(o.replace(/[^0-9\.]/g,"")),s=document.getElementById(this._id+"legendItem_Group"),t=s.childNodes,f=this.model.highlightSettings.opacity.toString(),r=0;r<t.length;r++)document.getElementById(t[r].id).style.opacity=u!=r?f:"1";for(h=document.getElementById(this._id+"_svg_SunBurstElementGroup"),t=h.childNodes,i=0;i<t.length;i++)t[i].id.indexOf("_legendIndex"+u)==-1&&(document.getElementById(t[i].id).style.opacity=f);if(this.model.dataLabelSettings.visible&&(e=document.getElementById(this._id+"_svg_DataLabelGroup"),e))for(t=e.childNodes,i=0;i<t.length;i++)t[i].id.indexOf("_legendIndex"+u)==-1&&(document.getElementById(t[i].id).style.opacity=f);this._legendHighlight=!0},b.prototype.toolbarTooltip=function(n,t){var i,r,u;t=t.indexOf("reset")!=-1?"Reset":"Back";r={top:n.clientY,left:n.clientX,"background-color":"white","border-style":"solid",position:"absolute","border-color":"#2F4F4F","border-width":"1px",opacity:.95,"z-index":1e6,"border-radius":"0px 0px","padding-left":"5px","padding-right":"5px","padding-top":"2px","padding-bottom":"2px"};this.isNullOrUndefined(document.getElementById(this._id+"toolbarTooltip"))?(i=document.createElement("div"),i.setAttribute("id",this._id+"toolbarTooltip")):i=document.getElementById(this._id+"toolbarTooltip");i.style.pointerEvents="none";this.setStyles(r,i);u={top:n.clientY,left:n.clientX,color:this.model.tooltip.font.color,"font-size":this.model.tooltip.font.size,"font-family":this.model.tooltip.font.fontFamily,"font-style":this.model.tooltip.font.fontStyle,"font-weight":this.model.tooltip.font.fontWeight,"align-self":"baseline"};this.setStyles(u,i);this.isNullOrUndefined(document.getElementById(this._id+"toolbarTooltip"))&&document.body.appendChild(i);i.innerHTML=t;i.style.visibility=="hidden"&&(i.style.visibility="visible");i.style.left=(n.clientX+window.pageXOffset+10).toString()+"px";i.style.top=(n.clientY+window.pageYOffset+10).toString()+"px"},b.prototype.removeHighlight=function(n){for(var t=0;t<n.length&&document.getElementById(n[t])!=null;t++)document.getElementById(n[t]).getAttribute("class")=="HighlightStyleSunburst"&&document.getElementById(n[t]).removeAttribute("class")},b.prototype.isSelectedElement=function(n,t){for(var r=!1,i=0;i<t.length;i++)n==t[i]&&(r=!0);return r},b.prototype.highlightSunburst=function(n){var r=document.getElementsByTagName("path"),o=n,f,h,y,b,p,d=this.model.legend,i=this.model.highlightSettings,g=this.model.points,k,c,l,a,v,s,w,t;if(this.isNullOrUndefined(o))if(i.type!=u.opacity){if(i.mode==e.point)f=document.getElementsByClassName("HighlightStyleSunburst"),f.length>0&&(f[0].removeAttribute("class"),this.baseID=undefined);else if(i.mode==e.all){if(!this.isNullOrUndefined(this.highlightgroupID)){for(s=0;s<this.highlightgroupID.length;s++)document.getElementById(this.highlightgroupID[s])!=null&&(document.getElementById(this.highlightgroupID[s]).getAttribute("class")==null||document.getElementById(this.highlightgroupID[s]).getAttribute("class")=="HighlightStyleSunburst")&&document.getElementById(this.highlightgroupID[s]).removeAttribute("class");this.groupID=undefined;this.selelectedElementId=undefined}}else if(f=document.getElementsByClassName("HighlightStyleSunburst"),f.length>0){for(w=0;w<f.length;w++)this.highlightgroupID.push(f[w].id);this.removeHighlight(this.highlightgroupID);this.highlightgroupID=[];this.highlightedElementId=null}}else for(t=0;t<r.length;t++)this.selectedgroupID.length==0?this.selectedgroupID.indexOf(r[t].id)==-1&&(r[t].style.opacity="1"):this.selectedgroupID.indexOf(r[t].id)==-1&&(r[t].style.opacity=this.model.selectionSettings.opacity.toString());else if(i.mode==e.point)if(i.type!=u.opacity)f=document.getElementsByClassName("HighlightStyleSunburst"),i.mode==e.point&&f.length>0&&f[0].removeAttribute("class"),h=document.getElementById(o.pointData[0].id),k=this.isSelectedElement(h.id,this.selectedgroupID),document.getElementById(h.id).getAttribute("class")!=null||k||this.createHighlightStyle(h,i),this.baseID=h.id;else{for(t=0;t<r.length;t++)this.selectedgroupID.indexOf(r[t].id)==-1&&(r[t].style.opacity=i.opacity.toString());document.getElementById(o.pointData[0].id).style.opacity="1"}else if(i.mode==e.all){if(y=this.findGroupElements(o),b=this._id+"_legendIndex"+y[0].legendIndex+"_layerNumber1_layerIndex0_pointIndex"+y[0].pointIndex.toString(),i.type!=u.opacity){if(p=document.getElementsByClassName("HighlightStyleSunburst"),p.length>0)for(c=0;c<p.length;c++)this.highlightgroupID.push(p[c].id),this.highlightgroupID[c].indexOf(this._id+"_svg_LegendItemShape")<0&&this.removeHighlight(this.highlightgroupID);this.groupID=undefined;this.highlightgroupID=[];this.selelectedElementId=undefined}if(this.highlightGroup(y,o),i.type==u.opacity){for(l=0;l<r.length;l++)this.selectedgroupID.indexOf(r[l].id)==-1&&(r[l].style.opacity=i.opacity.toString());for(t=0;t<this.highlightgroupID.length;t++)document.getElementById(this.highlightgroupID[t]).style.opacity="1"}}else if(i.mode==e.child){if(b=o.pointData[0].id,i.type!=u.opacity&&(!this.isNullOrUndefined(this.highlightgroupID)&&this.highlightgroupID.length>0&&this.removeHighlight(this.highlightgroupID),this.highlightgroupID=[],this.highlightedElementId=undefined),this.highlightChild(o),i.type==u.opacity){for(a=0;a<r.length;a++)this.selectedgroupID.indexOf(r[a].id)==-1&&(r[a].style.opacity=i.opacity.toString());for(t=0;t<this.highlightgroupID.length;t++)document.getElementById(this.highlightgroupID[t]).style.opacity="1";this.highlightedElementId=undefined}}else if(b=o.pointData[0].id,i.type!=u.opacity&&(!this.isNullOrUndefined(this.groupID)&&this.groupID.length>0&&this.removeHighlight(this.groupID),this.groupID=undefined,this.selelectedElementId=undefined),this.highlightParent(o),i.type==u.opacity){for(v=0;v<r.length;v++)this.selectedgroupID.indexOf(r[v].id)==-1&&(r[v].style.opacity=this.model.selectionSettings.opacity.toString());for(t=0;t<this.groupID.length;t++)document.getElementById(this.groupID[t]).style.opacity="1"}},b.prototype.highlightGroup=function(n,t){var i,f=this.model.highlightSettings,e=!1,r,o;for(this.highlightgroupID=[],r=0;r<n.length;r++)if(n[r].layerNumber==1)i=document.getElementById(this._id+"_legendIndex"+t.pointData[0].legendIndex+"_layerNumber1_layerIndex0_pointIndex"+n[r].pointIndex.toString()),e=this.isSelectedElement(i.id,this.selectedgroupID),f.type==u.opacity||document.getElementById(i.id).getAttribute("class")!=null||e||(this.createHighlightStyle(i,f),this.selelectedElementId=i.id),this.highlightgroupID.push(i.id);else for(o=0;o<n[r].point.length;o++)n[r].layerNumber!=1&&(i=document.getElementById(this._id+"_legendIndex"+t.pointData[0].legendIndex+"_layerNumber"+n[r].layerNumber.toString()+"_layerIndex"+n[r].layerIndex.toString()+"_pointIndex"+o.toString()),e=this.isSelectedElement(i.id,this.selectedgroupID),f.type==u.opacity||document.getElementById(i.id).getAttribute("class")!=null||e||this.createHighlightStyle(i,f),this.highlightgroupID.push(i.id))},b.prototype.highlightParent=function(n){var t,o,f=this.model.highlightSettings,e=!1,r=n.pointData[0],i;for(this.groupID=[],this.parentEle=[],this.parentEle.push(r),o=r.id,this.isNullOrUndefined(r.parentName)||this.findSelectionparent(r.parentName,r.legendIndex),i=0;i<this.parentEle.length;i++)document.getElementById("selectionSunburst")?(t=document.getElementById(this._id+"_legendIndex"+r.legendIndex+"_layerNumber"+this.parentEle[i].layerNumber.toString()+"_layerIndex"+this.parentEle[i].layerIndex.toString()+"_pointIndex"+this.parentEle[i].pointIndex),e=this.isSelectedElement(t.id,this.selectedgroupID),f.type==u.opacity||e||this.createHighlightStyle(t,f),this.groupID.push(t.id),this.highlightgroupID.push(t.id)):(t=document.getElementById(this._id+"_legendIndex"+r.legendIndex+"_layerNumber"+this.parentEle[i].layerNumber.toString()+"_layerIndex"+this.parentEle[i].layerIndex.toString()+"_pointIndex"+this.parentEle[i].pointIndex),e=this.isSelectedElement(t.id,this.selectedgroupID),f.type==u.opacity||e||this.createHighlightStyle(t,f),this.groupID.push(t.id),this.highlightgroupID.push(t.id))},b.prototype.highlightChild=function(n){var f,o,i=this.model.highlightSettings,l,h,c,e=!1,r,t,s;if(this.childEle=[],this.highlightgroupID=[],f=this.layerData[n.pointData[0].layerIndex].point[n.pointData[0].pointIndex],o=n.pointData[0].id,r=document.getElementById(o),e=this.isSelectedElement(r.id,this.selectedgroupID),f.point||f.layerIndex==0||e){for(l=n.pointData[0].layerNumber,this.isNullOrUndefined(f.point)||this.findChild(f,l),i.type==u.opacity||e||this.createHighlightStyle(r,i),this.highlightgroupID.push(r.id),this.highlightedElementId=o,t=0;t<this.childEle.length;t++)if(this.childEle[t].layerNumber>n.pointData[0].layerNumber)for(s=0;s<this.childEle[t].length;s++)h=this._id+"_legendIndex"+n.pointData[0].legendIndex+"_layerNumber"+this.childEle[t].layerNumber.toString()+"_layerIndex"+this.childEle[t].layerIndex+"_pointIndex"+s.toString(),c=document.getElementById(h),e=this.isSelectedElement(h,this.selectedgroupID),i.type==u.opacity||e||this.createHighlightStyle(c,i),this.highlightgroupID.push(c.id)}else i.type!=u.opacity&&(this.createHighlightStyle(r,i),this.highlightedElementId=o),this.highlightgroupID.push(r.id)},b.prototype.createHighlightStyle=function(n,t){var i,r,u;n.getAttribute("class")!="SelectionStyleSunburst"&&(document.getElementById("highlightSunburst")||(i=document.createElement("style"),i.type="text/css",r=t.color,u="1",i.innerHTML=" .HighlightStyleSunburst{ fill:"+r+";opacity:"+u+";stroke:;stroke-width:1}",i.setAttribute("id","highlightSunburst"),document.body.appendChild(i)),n.setAttribute("class","HighlightStyleSunburst"))},b.prototype.showTooltip=function(n,t,i,r){var h=7,c,u,l,o,s,e,f=this.model.tooltip,y=document.getElementById(this._id+"_svg"),p=window.pageYOffset,w=window.pageXOffset,a=y.getBoundingClientRect(),v;o=n.X+h/2+w+a.left;s=n.Y-3*h+p+a.top;document.getElementById(this._id+"_ToolTip")==null?(u=document.createElement("div"),u.id=this._id+"_ToolTip",u.style.pointerEvents="none"):(u=document.getElementById(this._id+"_ToolTip"),u.style.pointerEvents="none");c=this.formatTooltip(r.pointData[0],f.format);e=$.extend({},this.common);e.data={pointIndex:r.pointData[0].pointIndex,currentText:c,Location:{x:o,Y:s}};this._trigger("tooltipInitialize",e);u.innerHTML=e.data.currentText;l={top:e.data.Location.X,left:e.data.Location.Y,"background-color":f.fill,"border-style":"solid",position:"absolute","border-color":f.border.color,"border-width":f.border.width+"px",opacity:f.opacity,"z-index":1e6,"border-radius":"0px 0px","padding-left":"5px","padding-right":"5px","padding-top":"2px","padding-bottom":"2px"};this.setStyles(l,u);v={top:s,left:o,color:f.font.color,"font-size":f.font.size,"font-family":f.font.fontFamily,"font-style":f.font.fontStyle,"font-weight":f.font.fontWeight,"align-self":"baseline"};this.setStyles(v,u);this.isNullOrUndefined(document.getElementById(this._id+"Tooltip"))&&document.body.appendChild(u);u.style.visibility=="hidden"&&(u.style.visibility="visible");u.style.left=o.toString()+"px";u.style.top=s.toString()+"px"},b.prototype.formatTooltip=function(n,t){var i=t;return i.search("#point.x#")!=-1&&(i=i.replace("#point.x#",n.x)),i.search("#point.y#")!=-1&&(i=i.replace("#point.y#",n.y)),i},b.prototype.setStyles=function(n,t){for(var r=Object.keys(n),u,f=r.map(function(t){return n[t]}),i=0,e=r.length;i<e;i++)u=r[i],t.style[u]=f[i]},b.prototype.createTooltiptemplate=function(n,t,i,r){var u=document.getElementById("tooltipDiv"),f,e,s=document.getElementById(this._id+"_svg"),h=window.pageYOffset,c=window.pageXOffset,o=s.getBoundingClientRect();f=n.X+c+o.left+10;e=n.Y+h+o.top;this.isNullOrUndefined(u)?(this.tooltipfirst=!0,u=document.createElement("div"),u.className="tooltipDiv",u.style.position="absolute",u.style.zIndex="13000",u.style.display="block",u.id="tooltipDiv",u.style.backgroundColor="white",document.body.appendChild(u),this.clonenode=document.getElementById(this.model.tooltip.template).cloneNode(!0),this.clonenode.style.display="block",document.getElementById("tooltipDiv").innerHTML="",this.clonenode.innerHTML=this.parseTooltipTemplate(r.pointData[0],this.clonenode.innerHTML),document.getElementById("tooltipDiv").appendChild(this.clonenode)):(u.style.display="block",this.tooltipfirst=!1,this.clonenode.innerHTML=this.parseTooltipTemplate(r.pointData[0],this.clonenode.innerHTML));document.getElementById("tooltipDiv").style.left=f.toString()+"px";document.getElementById("tooltipDiv").style.top=e.toString()+"px"},b.prototype.parseTooltipTemplate=function(n){var i=document.getElementById(this.model.tooltip.template).cloneNode(!0),t=i.innerHTML;return t.search("#point.x#")!=-1&&(t=t.replace("#point.x#",n.x.toString())),t.search("#point.y#")!=-1&&(t=t.replace("#point.y#",n.y.toString())),t.search("#point.text#")!=-1&&(t=this.isNullOrUndefined(n.text)?t.replace("#point.text#",n.y.toString()):t.replace("#point.text#",n.text.toString())),t},b.prototype.bindClickEvent=function(n){var t,i;return t=this.getSunburstPoint(n),!this.isNullOrUndefined(t)&&this.model.pointRegionClick&&(i=$.extend({},this.common),i.data=t,this._trigger("pointRegionClick",i)),t},b.prototype.sunburstClick=function(n){var o=this.bindClickEvent(n),t,s,f,e=this.model.selectionSettings,h,u,i;if(e.enable&&(this.selectSunburst(o,n),!this.isNullOrUndefined(o)&&this.model.legend.visible))for(i=0;i<this.model.points.length;i++)u=document.getElementById(this._id+"_svg_LegendItemShape"+i),h=this.model.points[i],e.type==r.opacity?o.pointData[0].legendIndex!=i&&(u.style.opacity=e.opacity.toString()):this.selectedGroupNumber-1==i?(u.setAttribute("class","SelectionStyleSunburst"),u.style.opacity=e.opacity.toString()):u.getAttribute("class")=="SelectionStyleSunburst"||u.removeAttribute("class");t=this;t.tapCount++;s=setTimeout(function(){t.tapCount>=2&&t._isDoubleClickEvent==!1&&(t.sunburstDoubleClick(n),t._isDoubleClickEvent=!1);t.tapCount=0},200);f=document.getElementById(t._id+"toolbarTooltip");t.isNullOrUndefined(f)||f.parentNode.removeChild(f)},b.prototype.isTouch=function(n){var i,t;return(i=this.browserInfo(),t=n.originalEvent?n.originalEvent:n,t.pointerType=="touch"||t.pointerType==2||t.type.indexOf("touch")>-1)?!0:!1},b.prototype.sunburstLeave=function(n){var i=this,u=n.target.id,l,h,c,f,e,o,s,r,a,v,t;if(this._legendHighlight){for(l=document.getElementById(this._id+"legendItem_Group"),h=l.childNodes,r=0;r<h.length;r++)document.getElementById(h[r].id).style.opacity="1";for(c=document.querySelectorAll("[id^="+this._id+"_legendIndex]"),s=0;s<c.length;s++)document.getElementById(c[s].id).style.opacity="1";this._legendHighlight=!1}if(this.model.legend.visible&&this.model.highlightSettings.enable)for(r=0;r<this.model.points.length;r++)f=document.getElementById(this._id+"_svg_LegendItemShape"+r),f!=null&&(f.style.opacity="1",f.removeAttribute("class"));if(this.isNullOrUndefined(document.getElementById(i._id+"_ToolTip"))||(ej.isTouchDevice()||this.isTouch(n)?a=setTimeout(function(){document.getElementById(i._id+"_ToolTip").style.visibility="hidden"},3e3):u==i._id+"_svg_svgRect"&&(this._hideTooltip||clearTimeout(this._hideTooltip),this._hideTooltip=setTimeout(function(){document.getElementById(i._id+"_ToolTip").style.visibility="hidden"},1e3))),o=document.getElementById(i._id+"toolbarTooltip"),i.isNullOrUndefined(o)||o.parentNode.removeChild(o),e=document.getElementById("tooltipDiv"),i.isNullOrUndefined(e)||(ej.isTouchDevice()||this.isTouch(n)?v=setTimeout(function(){e.style.display="none"},3e3):u==i._id+"_svg_svgRect"&&(this._hideTooltipTemplate||clearTimeout(this._hideTooltipTemplate),this._hideTooltipTemplate=setTimeout(function(){e.style.display="none"},1e3))),u.indexOf(this._id+"reset")!=-1)for(t=0;t<5;t++)t==0?document.getElementById(this._id+"resetPath").setAttribute("fill","#D6D6D6"):document.getElementById(this._id+"resetPath"+t.toString()).setAttribute("fill","#5E5C5C");if(u.indexOf(this._id+"back")!=-1)for(t=0;t<3;t++)t==0?document.getElementById(this._id+"backPath").setAttribute("fill","#D6D6D6"):document.getElementById(this._id+"backPath"+t.toString()).setAttribute("fill","#5E5C5C")},b.prototype.selectSunburst=function(n,t){var l,d,a,v=this.model.selectionSettings.mode.toString(),e=document.getElementsByTagName("path"),g,s=this.model.selectionSettings.opacity.toString(),o=this.model.selectionSettings.type,p=this.model.legend,w=this.model.points,i,y,h,b,c,u,k,f;if(this.isNullOrUndefined(n)){if(r.opacity!=o)v=="point"?(h=document.getElementsByClassName("SelectionStyleSunburst"),h.length>0&&h[0].removeAttribute("class")):this.selectedgroupID.length>0&&(this.removeSelection(this.selectedgroupID),this.selectedgroupID=[],this.selectedGroupNumber=null,v=="child"&&(this.selelectedElementId=null),v=="parent"&&(this.groupNumber=null));else{for(this.selectedgroupID=[],f=0;f<e.length;f++)e[f].style.opacity="1";this.mouseClickedElementId="";this.selectedGroupNumber=null}this.removeLegendSelection()}else if(this.selectedgroupID.length>0&&this.removeSelection(this.selectedgroupID),v=="point"){if(this.selectedgroupID=[],g=t.target.id.replace("_layerIndex"+n.pointData[0].layerIndex.toString(),""),r.opacity!=o)!this.isNullOrUndefined(this.highlightgroupID)&&this.highlightgroupID.length>0&&this.removeHighlight(this.highlightgroupID),l=document.getElementById(n.pointData[0].id),l.getAttribute("class")=="SelectionStyleSunburst"?(l.removeAttribute("class"),this.highlightgroupID.indexOf(l.id)!=-1&&l.setAttribute("class","HighlightStyleSunburst")):(h=document.getElementsByClassName("SelectionStyleSunburst"),this.highlightgroupID.length>0&&h.length>0&&this.highlightgroupID.indexOf(h[0].id)!=-1&&h[0].setAttribute("class","HighlightStyleSunburst"),h.length>0&&h[0].getAttribute("class")=="SelectionStyleSunburst"&&h[0].removeAttribute("class"),!this.isNullOrUndefined(this.highlightgroupID)&&this.highlightgroupID.length>0&&this.removeHighlight(this.highlightgroupID),this.selectPointData(l),this.selectedgroupID.push(l.id));else{if(this.mouseClickedElementId!=g){for(u=0;u<e.length;u++)e[u].style.opacity=s;document.getElementById(n.pointData[0].id).style.opacity="1";this.mouseClickedElementId=g;this.selectedgroupID.push(n.pointData[0].id)}else{for(f=0;f<e.length;f++)e[f].style.opacity="1";this.mouseClickedElementId=""}this.selectedGroupNumber=n.pointData[0].groupNumber}if(p.visible&&this.selectedgroupID.length>0)for(c=0;c<w.length;c++)i=document.getElementById(this._id+"_svg_LegendItemShape"+c),n.pointData[0].legendIndex!=c?i!=null&&(i.style.opacity=s,i.removeAttribute("class")):r.opacity==o?i.style.opacity="1":(i.setAttribute("class","SelectionStyleSunburst"),i.style.opacity=s);this.selectedgroupID.length==0&&this.removeLegendSelection()}else if(v=="all")if(y=this.findGroupElements(n),a=n.pointData[0].id,this.selectedgroupID.indexOf(a)==-1){if(this.selectedGroupNumber!=y[0].groupNumber?(this.selectedgroupID.length>0&&this.removeSelection(this.selectedgroupID),this.selectGroup(y,n),this.selectedGroupNumber=y[0].groupNumber):(this.selectedgroupID.length>0&&this.removeSelection(this.selectedgroupID),this.selectedgroupID=[],this.selectedGroupNumber=null),r.opacity==o){for(u=0;u<e.length;u++)e[u].style.opacity=s;for(f=0;f<this.selectedgroupID.length;f++)document.getElementById(this.selectedgroupID[f]).style.opacity="1";this.isSelected=!0}if(p.visible){for(b=0;b<w.length;b++)i=document.getElementById(this._id+"_svg_LegendItemShape"+b),i!=null&&(i.style.opacity=s,i.removeAttribute("class"));r.opacity!=o?document.getElementById(this._id+"_svg_LegendItemShape"+y[0].pointIndex.toString()).setAttribute("class","SelectionStyleSunburst"):document.getElementById(this._id+"_svg_LegendItemShape"+y[0].pointIndex.toString()).style.opacity="1"}}else{if(this.selectedgroupID.length>0)if(r.opacity!=o)this.removeSelection(this.selectedgroupID);else for(u=0;u<e.length;u++)e[u].style.opacity="1";this.isSelected=!1;this.selectedGroupNumber=null;this.selectedgroupID=[];this.baseID="";this.removeLegendSelection()}else if(v=="child")if(a=n.pointData[0].id,this.selectedgroupID.indexOf(a)==-1){if(!this.isNullOrUndefined(this.selectedgroupID)&&this.selectedgroupID.length>0&&this.removeSelection(this.selectedgroupID),!this.isNullOrUndefined(this.highlightgroupID)&&this.highlightgroupID.length>0&&this.removeHighlight(this.highlightgroupID),this.selectedgroupID=[],this.selelectedElementId=undefined,this.selectchild(n),r.opacity==o){for(u=0;u<e.length;u++)e[u].style.opacity=s;for(f=0;f<this.selectedgroupID.length;f++)document.getElementById(this.selectedgroupID[f]).style.opacity="1";this.isSelected=!0}if(this.selectedGroupNumber=n.pointData[0].groupNumber,p.visible)for(c=0;c<w.length;c++)i=document.getElementById(this._id+"_svg_LegendItemShape"+c),n.pointData[0].legendIndex!=c?i!=null&&(i.style.opacity=s,i.rem