UNPKG

@fusioncharts/widgets

Version:

FusionCharts JavaScript charting framework

1 lines 71 kB
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule=true;exports.default=void 0;var _inheritsLoose2=_interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _commonchartapi=_interopRequireDefault(require("@fusioncharts/charts/src/chart/_internal/commonchartapi"));var _legend9=_interopRequireDefault(require("@fusioncharts/charts/src/factories/legend"));var _legendSpacemanager=require("@fusioncharts/charts/src/chart/_internal/legend-spacemanager");var _radialtrack=_interopRequireDefault(require("../../dataset/radialtrack"));var _radialbar=_interopRequireDefault(require("../../../src/dataset/radialbar"));var _lib=require("@fusioncharts/core/src/lib");var _polarUtil=require("@fusioncharts/utils/src/scale-utils/polar-util");var _trustedPolicy=_interopRequireDefault(require("@fusioncharts/utils/src/trusted-policy"));var TICK_VALUE_GAP=8,ICON_PADDING=10;function createLabelPadding(paddingStr){var labelPaddingArr=paddingStr.split(" ").map((function(padding){return parseInt(padding,10)}));if(labelPaddingArr.every((function(padding){return isNaN(padding)}))){return{top:6,right:10,bottom:6,left:10}}if(labelPaddingArr.length===1){labelPaddingArr.push(labelPaddingArr[0]);labelPaddingArr.push(labelPaddingArr[0]);labelPaddingArr.push(labelPaddingArr[0])}else if(labelPaddingArr.length===2){labelPaddingArr.push(labelPaddingArr[0]);labelPaddingArr.push(labelPaddingArr[1])}else if(labelPaddingArr.length===3){labelPaddingArr.push(labelPaddingArr[1])}labelPaddingArr.map((function(padding,index){if(isNaN(padding)){if(index===0){return 6}else if(index===1){return labelPaddingArr[index-1]}return labelPaddingArr[index-2]}return padding}));return{top:labelPaddingArr[0],right:labelPaddingArr[1],bottom:labelPaddingArr[2],left:labelPaddingArr[3]}}function radialBarFactoryFn(chart){var parent=chart,config=chart.config,bars=parent.getChildren(_radialbar.default.getType()),lenBars=bars?bars.length:0,dataSource=chart.getFromEnv("dataSource");if(Array.isArray(dataSource.data)){if(dataSource.data.length>lenBars){var children=parent.getChildren("plot");for(var child=0;child<lenBars;child++){children[child].configure({startangle:config.startangle,endangle:config.endangle,barstartradius:config.barstartradius,barendradius:config.barendradius,barborder:config.barborder,barbordercolor:config.barbordercolor,barborderalpha:config.barborderalpha,barborderthickness:config.barborderthickness,color:config.plots[child].color,baralpha:config.plots[child].baralpha,legenditemalpha:config.plots[child].baralpha,legenditemcolor:config.plots[child].color,legenditembordercolor:config.barbordercolor,value:config.plots[child].value,dataValue:config.plots[child].dataValue,label:config.plots[child].label,iconurl:config.plots[child].iconurl,contexttext:config.plots[child].contextlabeltext,tooltext:config.plots[child].tooltext,plotHidden:config.plots[child].initiallyhidden,plotIndex:child})}for(var _child=0;_child<dataSource.data.length-lenBars;_child++){var childInstance=new _radialbar.default,childComp=parent.attachChild(childInstance,"plot");childComp.configure({startangle:config.startangle,endangle:config.endangle,barstartradius:config.barstartradius,barendradius:config.barendradius,barborder:config.barborder,barbordercolor:config.barbordercolor,barborderalpha:config.barborderalpha,barborderthickness:config.barborderthickness,color:config.plots[_child].color,baralpha:config.plots[_child].baralpha,legenditemalpha:config.plots[_child].baralpha,legenditemcolor:config.plots[_child].color,legenditembordercolor:config.barbordercolor,value:config.plots[_child].value,dataValue:config.plots[_child].dataValue,label:config.plots[_child].label,iconurl:config.plots[_child].iconurl,contexttext:config.plots[_child].contextlabeltext,tooltext:config.plots[_child].tooltext,plotHidden:config.plots[_child].initiallyhidden,plotIndex:_child})}}else if(dataSource.data.length===lenBars){var _children=parent.getChildren("plot");for(var index=0;index<lenBars;index++){_children[index].configure({startangle:config.startangle,endangle:config.endangle,barstartradius:config.barstartradius,barendradius:config.barendradius,barborder:config.barborder,barbordercolor:config.barbordercolor,barborderalpha:config.barborderalpha,barborderthickness:config.barborderthickness,color:config.plots[index].color,baralpha:config.plots[index].baralpha,legenditemalpha:config.plots[index].baralpha,legenditemcolor:config.plots[index].color,legenditembordercolor:config.barbordercolor,value:config.plots[index].value,dataValue:config.plots[index].dataValue,label:config.plots[index].label,iconurl:config.plots[index].iconurl,contexttext:config.plots[index].contextlabeltext,tooltext:config.plots[index].tooltext,plotHidden:config.plots[index].initiallyhidden,plotIndex:index})}}else{var _children2=parent.getChildren("plot");for(var _index=0;_index<dataSource.data.length;_index++){_children2[_index].configure({startangle:config.startangle,endangle:config.endangle,barstartradius:config.barstartradius,barendradius:config.barendradius,barborder:config.barborder,barbordercolor:config.barbordercolor,barborderalpha:config.barborderalpha,barborderthickness:config.barborderthickness,color:config.plots[_index].color,baralpha:config.plots[_index].baralpha,legenditemalpha:config.plots[_index].baralpha,legenditemcolor:config.plots[_index].color,legenditembordercolor:config.barbordercolor,value:config.plots[_index].value,dataValue:config.plots[_index].dataValue,label:config.plots[_index].label,iconurl:config.plots[_index].iconurl,contexttext:config.plots[_index].contextlabeltext,tooltext:config.plots[_index].tooltext,plotHidden:config.plots[_index].initiallyhidden,plotIndex:_index})}for(var _child2=dataSource.data.length;_child2<lenBars;_child2++){_children2[_child2].remove()}}}else{var _children3=parent.getChildren("plot");for(var _index2=0;_index2<lenBars;_index2++){_children3[_index2].remove()}}}function radialTrackFactoryFn(chart){var parent=chart,config=chart.config,tracks=parent.getChildren(_radialtrack.default.getType()),lenTracks=tracks?tracks.length:0,dataSource=chart.getFromEnv("dataSource");if(Array.isArray(dataSource.data)){if(dataSource.data.length>lenTracks){var children=parent.getChildren("dataset");for(var child=0;child<lenTracks;child++){children[child].configure({startangle:config.startangle,endangle:config.endangle,trackpadding:config.trackpadding,trackmargin:config.trackmargin,trackstartradius:config.trackstartradius,trackendradius:config.trackendradius,trackfillcolor:config.tracks[child].trackfillcolor,trackalpha:config.tracks[child].trackalpha,trackborder:config.trackborder,trackbordercolor:config.trackbordercolor,trackborderalpha:config.trackborderalpha,trackborderthickness:config.trackborderthickness,numTicks:config.numticks,tickMarkLength:config.tickmarklength,tickvaluefontsizeWithUnit:config.tickvaluefontsizeWithUnit,showticks:config.showticks,showtickmarks:config.showtickmarks,showtickvalues:config.showtickvalues,tickmarkcolor:config.tickmarkcolor,tickmarkthickness:config.tickmarkthickness,tickalpha:config.tickalpha,tickvaluealpha:config.tickvaluealpha,tickvaluelabelfont:config.tickvaluelabelfont,tickvaluefontcolor:config.tickvaluefontcolor,baseFontColor:config.baseFontColor,tickvaluegap:TICK_VALUE_GAP,label:config.tracks[child].label,iconurl:config.tracks[child].iconurl,labelFontColor:config.tracks[child].labelFontColor,value:config.tracks[child].value})}for(var _child3=0;_child3<dataSource.data.length-lenTracks;_child3++){var childInstance=new _radialtrack.default,childComp=parent.attachChild(childInstance,"dataset");childComp.configure({startangle:config.startangle,endangle:config.endangle,trackpadding:config.trackpadding,trackmargin:config.trackmargin,trackstartradius:config.trackstartradius,trackendradius:config.trackendradius,trackfillcolor:config.tracks[_child3].trackfillcolor,trackalpha:config.tracks[_child3].trackalpha,trackborder:config.trackborder,trackbordercolor:config.trackbordercolor,trackborderalpha:config.trackborderalpha,trackborderthickness:config.trackborderthickness,numTicks:config.numticks,tickMarkLength:config.tickmarklength,tickvaluefontsizeWithUnit:config.tickvaluefontsizeWithUnit,showticks:config.showticks,showtickmarks:config.showtickmarks,showtickvalues:config.showtickvalues,tickmarkcolor:config.tickmarkcolor,tickmarkthickness:config.tickmarkthickness,tickalpha:config.tickalpha,tickvaluealpha:config.tickvaluealpha,tickvaluelabelfont:config.tickvaluelabelfont,tickvaluefontcolor:config.tickvaluefontcolor,baseFontColor:config.baseFontColor,tickvaluegap:TICK_VALUE_GAP,label:config.tracks[_child3].label,iconurl:config.tracks[_child3].iconurl,labelFontColor:config.tracks[_child3].labelFontColor,value:config.tracks[_child3].value})}}else if(dataSource.data.length===lenTracks){var _children4=parent.getChildren("dataset");for(var index=0;index<lenTracks;index++){_children4[index].configure({startangle:config.startangle,endangle:config.endangle,trackpadding:config.trackpadding,trackmargin:config.trackmargin,trackstartradius:config.trackstartradius,trackendradius:config.trackendradius,trackfillcolor:config.tracks[index].trackfillcolor,trackalpha:config.tracks[index].trackalpha,trackborder:config.trackborder,trackbordercolor:config.trackbordercolor,trackborderalpha:config.trackborderalpha,trackborderthickness:config.trackborderthickness,numTicks:config.numticks,tickMarkLength:config.tickmarklength,tickvaluefontsizeWithUnit:config.tickvaluefontsizeWithUnit,showticks:config.showticks,showtickmarks:config.showtickmarks,showtickvalues:config.showtickvalues,tickmarkcolor:config.tickmarkcolor,tickmarkthickness:config.tickmarkthickness,tickalpha:config.tickalpha,tickvaluealpha:config.tickvaluealpha,tickvaluelabelfont:config.tickvaluelabelfont,tickvaluefontcolor:config.tickvaluefontcolor,baseFontColor:config.baseFontColor,tickvaluegap:TICK_VALUE_GAP,label:config.tracks[index].label,iconurl:config.tracks[index].iconurl,labelFontColor:config.tracks[index].labelFontColor,value:config.tracks[index].value})}}else{var _children5=parent.getChildren("dataset");for(var _child4=dataSource.data.length;_child4<lenTracks;_child4++){_children5[_child4].remove()}}}else{if(lenTracks===0){var _childInstance=new _radialtrack.default;parent.attachChild(_childInstance,"dataset");_childInstance.configure({startangle:config.startangle,endangle:config.endangle,trackpadding:config.trackpadding,trackmargin:config.trackmargin,trackstartradius:config.trackstartradius,trackendradius:config.trackendradius,trackfillcolor:config.tracks[0].trackfillcolor,trackalpha:config.tracks[0].trackalpha,trackborder:config.trackborder,trackbordercolor:config.trackbordercolor,trackborderalpha:config.trackborderalpha,trackborderthickness:config.trackborderthickness,numTicks:config.numticks,tickMarkLength:config.tickmarklength,tickvaluefontsizeWithUnit:config.tickvaluefontsizeWithUnit,showticks:config.showticks,showtickmarks:config.showtickmarks,showtickvalues:config.showtickvalues,tickmarkcolor:config.tickmarkcolor,tickmarkthickness:config.tickmarkthickness,tickalpha:config.tickalpha,tickvaluealpha:config.tickvaluealpha,tickvaluelabelfont:config.tickvaluelabelfont,tickvaluefontcolor:config.tickvaluefontcolor,baseFontColor:config.baseFontColor,tickvaluegap:TICK_VALUE_GAP,label:config.tracks[0].label,iconurl:config.tracks[0].iconurl,labelFontColor:config.tracks[0].labelFontColor,value:config.tracks[0].value})}else{var _child5=parent.getChildren("dataset");for(var _index3=0;_index3<lenTracks-1;_index3++){if(_index3===0){tracks[_index3].configure({startangle:config.startangle,endangle:config.endangle,trackpadding:config.trackpadding,trackmargin:config.trackmargin,trackstartradius:config.trackstartradius,trackendradius:config.trackendradius,trackfillcolor:config.tracks[_index3].trackfillcolor,trackalpha:config.tracks[_index3].trackalpha,trackborder:config.trackborder,trackbordercolor:config.trackbordercolor,trackborderalpha:config.trackborderalpha,trackborderthickness:config.trackborderthickness,numTicks:config.numticks,tickMarkLength:config.tickmarklength,tickvaluefontsizeWithUnit:config.tickvaluefontsizeWithUnit,showticks:config.showticks,showtickmarks:config.showtickmarks,showtickvalues:config.showtickvalues,tickmarkcolor:config.tickmarkcolor,tickmarkthickness:config.tickmarkthickness,tickalpha:config.tickalpha,tickvaluealpha:config.tickvaluealpha,tickvaluelabelfont:config.tickvaluelabelfont,tickvaluefontcolor:config.tickvaluefontcolor,baseFontColor:config.baseFontColor,tickvaluegap:TICK_VALUE_GAP,label:config.tracks[_index3].label,iconurl:config.tracks[_index3].iconurl,labelFontColor:config.tracks[_index3].labelFontColor,value:config.tracks[_index3].value})}else{_child5[_index3].remove()}}}}}var RadialBar=function(_CommonAPI){function RadialBar(){var _this;_this=_CommonAPI.call(this)||this;_this.deregisterFactory("canvas");_this.registerFactory("RadialTrack",radialTrackFactoryFn);_this.registerFactory("RadialBarPlot",radialBarFactoryFn,["legend"]);_this.registerFactory("legend",_legend9.default);return _this}(0,_inheritsLoose2.default)(RadialBar,_CommonAPI);RadialBar.getName=function getName(){return"RadialBar"};var _proto=RadialBar.prototype;_proto.getName=function getName(){return"RadialBar"};RadialBar.getType=function getType(){return"chartAPI"};_proto.getType=function getType(){return"chartAPI"};_proto._checkInvalidData=function _checkInvalidData(){return false};_proto._checkInvalidSpecificData=function _checkInvalidSpecificData(){var jsonData=this.getFromEnv("dataSource"),datasetsJSON=jsonData.data;if(!datasetsJSON){return true}return false};_proto.__setDefaultConfig=function __setDefaultConfig(){var chart=this,config=chart.config;config.innerradius=55;config.outerradius=77;config.startangle=90;config.endangle=180;config.trackpadding=0;config.trackmargin=6;config.trackstartradius="100%";config.trackendradius="100%";config.trackfillcolor="#cdcdcd";config.trackborder="none";config.trackbordercolor="#000000";config.trackborderalpha="100%";config.trackborderthickness=1;config.barstartradius="100%";config.barendradius="100%";config.barborder="none";config.barbordercolor="#000000";config.barborderalpha="100%";config.barborderthickness=1;config.plots=[{color:"#0000ff",baralpha:"100%",value:0}];config.tracks=[{trackfillcolor:"#cdcdcd",trackalpha:"40%"}];config.showticks=1;config.numticks="auto";config.showtickvalues=1;config.tickvaluelabelfont="Verdana,sans";config.tickvaluefontsize="10"+_lib.PXSTRING;config.tickvaluefontcolor="#000000";config.showtickmarks=1;config.tickmarkcolor="#000000";config.tickmarklength=5;config.tickmarkthickness=1;config.tickalpha="100%";config.showcontextlabel=0;config.defaultcontextlabel="";config.contextlabeltext="";config.contextlabelfont="Verdana,sans";config.contextlabelfontsize="10"+_lib.PXSTRING;config.contextlabelfontcolor="#000000";config.contextlabelalpha="100%";config.showlabels=0;config.usedataplotcolorforlabels=0;config.labeltext="$label, $datavalue";config.placevaluesinside=0;config.labelposition="start";config.labelpadding="6px 10px 6px 10px";config.showlabelicon=0;config.iconscale="100%";config.iconposition="end";config.interactivelegend=1;config.showtooltip=1;this.config.style={inCanvasStyle:{}};this.config.dataLabelStyle={}};_proto.configureAttributes=function configureAttributes(dataSource){_CommonAPI.prototype.configureAttributes.call(this,dataSource);var config=this.config,chartAttr=dataSource.chart,numTicks;var chartAttrToolbarColorAvailable=chartAttr.trackfillcolor;config.innerradius=(0,_lib.pluck)(chartAttr.innerradius,config.innerradius);config.outerradius=(0,_lib.pluck)(chartAttr.outerradius,config.outerradius);config.interactivelegend=parseInt((0,_lib.pluck)(chartAttr.interactivelegend,config.interactivelegend,1),10);config.showLegend=parseInt(chartAttr.showlegend,10);config.startangle=(0,_lib.pluckNumber)(chartAttr.startangle,config.startangle);config.endangle=(0,_lib.pluckNumber)(chartAttr.endangle,config.endangle);config.startangle=config.startangle>=0&&config.startangle<=360?config.startangle:90;config.endangle=config.endangle>=0&&config.endangle<=360?config.endangle:180;config.trackpadding=(0,_lib.pluck)(chartAttr.trackpadding,config.trackpadding);config.trackmargin=(0,_lib.pluck)(chartAttr.trackmargin,config.trackmargin);config.trackstartradius=(0,_lib.pluck)(chartAttr.trackstartradius,config.trackstartradius);config.trackendradius=(0,_lib.pluck)(chartAttr.trackendradius,config.trackendradius);config.trackfillcolor=(0,_lib.pluck)(chartAttr.trackfillcolor,config.trackfillcolor);config.trackborder=(0,_lib.pluck)(chartAttr.trackborder,config.trackborder);config.trackbordercolor=(0,_lib.pluck)(chartAttr.trackbordercolor,config.trackbordercolor);config.trackborderalpha=parseInt((0,_lib.pluck)(chartAttr.trackborderalpha,config.trackborderalpha),10)/100;config.trackborderthickness=(0,_lib.pluck)(chartAttr.trackborderthickness,config.trackborderthickness);config.barstartradius=(0,_lib.pluck)(chartAttr.barstartradius,config.barstartradius);config.barendradius=(0,_lib.pluck)(chartAttr.barendradius,config.barendradius);config.barborder=(0,_lib.pluck)(chartAttr.barborder,config.barborder);config.barbordercolor=(0,_lib.pluck)(chartAttr.barbordercolor,config.barbordercolor);config.barborderalpha=parseInt((0,_lib.pluck)(chartAttr.barborderalpha,config.barborderalpha),10)/100;config.barborderthickness=(0,_lib.pluck)(chartAttr.barborderthickness,config.barborderthickness);if(config.style.inCancolor.indexOf("#")===-1){config.style.inCancolor="#"+config.style.inCancolor}config.baseFontColor=(0,_lib.pluck)(chartAttr.baseFontColor,config.style.inCancolor);numTicks=(0,_lib.pluck)(chartAttr.numticks,config.numticks);config.numticks=isNaN(numTicks)?"auto":numTicks;config.tickmarklength=parseInt((0,_lib.pluck)(chartAttr.tickmarklength,config.tickmarklength),10);config.showticks=(0,_lib.pluck)(chartAttr.showticks,config.showticks);config.showtickmarks=(0,_lib.pluck)(chartAttr.showtickmarks,config.showtickmarks,config.showticks);config.showtickvalues=(0,_lib.pluck)(chartAttr.showtickvalues,config.showtickvalues,config.showticks);config.tickmarkcolor=(0,_lib.pluck)(chartAttr.tickmarkcolor,config.tickmarkcolor);config.tickmarkthickness=parseInt((0,_lib.pluck)(chartAttr.tickmarkthickness,config.tickmarkthickness),10);config.tickalpha=parseInt((0,_lib.pluck)(chartAttr.tickalpha,config.tickalpha),10)/100;config.tickvaluealpha=parseInt((0,_lib.pluck)(chartAttr.tickvaluealpha,chartAttr.tickalpha,"100%"),10)/100;config.tickvaluelabelfont=(0,_lib.pluck)(chartAttr.tickvaluelabelfont,config.style.inCanfontFamily);config.tickvaluefontcolor=(0,_lib.pluck)(chartAttr.tickvaluefontcolor,config.baseFontColor);config.tickvaluefontsizeWithUnit=(0,_lib.pluckFontSizeMaintainUnit)(chartAttr.tickvaluefontsize,config.style.inCanfontSizeWithUnit);config.tickvaluefontsize=this.computeFontSize(config.tickvaluefontsizeWithUnit);config.palettecolors=(0,_lib.pluck)(chartAttr.palettecolors,config.palettecolors);if(config.palettecolors){config.paletteColorsArray=config.palettecolors.trim().split(",");config.paletteColorsArray=config.paletteColorsArray.filter((function(color){return color}))}config.showcontextlabel=parseInt((0,_lib.pluck)(chartAttr.showcontextlabel,config.showcontextlabel),10);config.defaultcontextlabel=(0,_lib.parseUnsafeString)((0,_lib.pluck)(chartAttr.defaultcontextlabel,config.defaultcontextlabel));config.contextlabeltext=(0,_lib.pluck)(chartAttr.contextlabeltext,config.contextlabeltext);config.contextlabelfont=(0,_lib.pluck)(chartAttr.contextlabelfont,config.style.inCanfontFamily);config.contextlabelfontsizewithunit=(0,_lib.pluckFontSizeMaintainUnit)(chartAttr.contextlabelfontsize,config.style.inCanfontSizeWithUnit);config.contextlabelfontsize=this.computeFontSize(config.contextlabelfontsizewithunit);config.contextlabelfontcolor=(0,_lib.pluck)(chartAttr.contextlabelfontcolor,config.baseFontColor);config.contextlabelalpha=parseInt((0,_lib.pluck)(chartAttr.contextlabelalpha,config.contextlabelalpha),10)/100;config.contexttext=chartAttr.contextlabeltext;config.showlabels=(0,_lib.pluckNumber)(chartAttr.showlabels,config.showlabels)||0;config.usedataplotcolorforlabels=(0,_lib.pluckNumber)(chartAttr.usedataplotcolorforlabels,config.usedataplotcolorforlabels)||0;config.labeltext=(0,_lib.pluck)(chartAttr.labeltext,config.labeltext);config.placevaluesinside=parseInt((0,_lib.pluckNumber)(chartAttr.placevaluesinside,config.placevaluesinside)||0,10);config.labelposition=(0,_lib.pluck)(chartAttr.labelposition,config.labelposition);config.labelpadding="6px "+(config.placevaluesinside?"10px":"15px");config.labelpadding=createLabelPadding((0,_lib.pluck)(chartAttr.labelpadding,config.labelpadding));config.showlabelicon=(0,_lib.pluckNumber)(chartAttr.showlabelicon,config.showlabelicon)||0;config.iconscale=(0,_lib.pluck)(chartAttr.iconscale,config.iconscale);config.iconposition=(0,_lib.pluck)(chartAttr.iconposition,config.iconposition);if(Array.isArray(dataSource.data)){for(var i=0;i<dataSource.data.length;i++){config.tracks[i]={};config.tracks[i].trackfillcolor=chartAttrToolbarColorAvailable&&dataSource.data[i].trackfillcolor?(0,_lib.pluck)(config.trackfillcolor,dataSource.data[i].trackfillcolor):(0,_lib.pluck)(dataSource.data[i].trackfillcolor,config.trackfillcolor);config.tracks[i].trackalpha=parseInt((0,_lib.pluck)(dataSource.data[i].trackalpha,"40%"),10)/100;config.tracks[i].value=(0,_lib.pluckNumber)(dataSource.data[i].value,0);config.tracks[i].label=(0,_lib.pluck)(dataSource.data[i].label,"");config.tracks[i].iconurl=(0,_lib.pluck)(dataSource.data[i].icon,"");config.tracks[i].labelFontColor=(0,_lib.pluck)(dataSource.data[i].color,"#0000ff");config.plots[i]={};config.plots[i].color=(0,_lib.pluck)(dataSource.data[i].color,config.paletteColorsArray?config.paletteColorsArray[i]:"#0000ff");config.plots[i].baralpha=parseInt((0,_lib.pluck)(dataSource.data[i].baralpha,"100"),10)/100;config.plots[i].value=(0,_lib.pluckNumber)(parseInt(dataSource.data[i].value,10),0);config.plots[i].iconurl=(0,_lib.pluck)(dataSource.data[i].icon,"");config.plots[i].label=(0,_lib.pluck)(dataSource.data[i].label,"");config.plots[i].contextlabeltext=(0,_lib.pluck)(dataSource.data[i].contextlabeltext,config.contextlabeltext);config.plots[i].tooltext=(0,_lib.pluck)(dataSource.data[i].tooltext,chartAttr.plottooltext);config.plots[i].initiallyhidden=config.interactivelegend?(0,_lib.pluckNumber)(dataSource.data[i].initiallyhidden,0):0;config.plots[i].dataValue=config.plots[i].value+"%"}}config.rings=Array.isArray(dataSource.data)&&dataSource.data.length||1;this.addToEnv("chartConfig",this.config);this.createBaseComponent()};_proto._manageLegendSpace=function _manageLegendSpace(){_legendSpacemanager._manageLegendSpace.call(this)};_proto.legendInteractivity=function legendInteractivity(legendItem){if(!legendItem.getFromEnv("chart-attrib").interactivelegend){return}var plots=this.getChildren("plot"),tracks=this.getChildren("dataset"),legendItemId=legendItem.getId(),plot,track;if(legendItem.hasState("highlight")){legendItem.removeLegendState("highlight")}for(var i=0;i<plots.length;i++){plot=plots[i];track=tracks[i];if(plot.config.legendItemId===legendItemId){if(!plot.config.plotHidden){plot.config.realBarAlpha=plot.config.realBarAlpha||plot.config.baralpha;plot.config.realBarBorderAlpha=plot.config.realBarBorderAlpha||plot.config.barborderalpha;plot.setData({baralpha:0,barborderalpha:0},true);if(plot.label){this.removeGraphicalElement(plot.label)}if(plot.iconImage){this.removeGraphicalElement(plot.iconImage)}if(plot.plotIdentifier){this.removeGraphicalElement(plot.plotIdentifier)}if(plot.labelDiv){this.getFromEnv("chart-container").removeChild(plot.labelDiv);delete plot.labelDiv}legendItem.setLegendState("hidden",true);plot.config.plotHidden=true}else{plot.setData({baralpha:plot.config.realBarAlpha,barborderalpha:plot.config.realBarBorderAlpha},true);this.drawLabel(track,plot);legendItem.removeLegendState("hidden");plot.config.plotHidden=false}legendItem.getFromEnv("chart-attrib").interactivelegend=0}}};_proto._spaceManager=function _spaceManager(){var _this2=this;var config=this.config,side,chartMaxDiameter,trackthickness,barthickness,data=this.getFromEnv("dataSource").data,box=_lib.UNDEF,counter=0,captionSpace;this.config.showLegend&&this._manageLegendSpace();config.tickvaluefontsize=this.computeFontSize(config.tickvaluefontsizeWithUnit);config.availableHeight=this.getFromEnv("chartConfig").availableHeight;config.availableWidth=this.getFromEnv("chartConfig").availableWidth;side=config.availableHeight>config.availableWidth?config.availableWidth:config.availableHeight;config.outerradius=(0,_lib.convertToPixels)(config.outerradius,side/2);config.outerradius=config.outerradius<0?77:config.outerradius;config.innerradius=(0,_lib.convertToPixels)(config.innerradius,side/2);config.innerradius=config.innerradius<0?55:config.innerradius;config.trackstartradius=(0,_lib.convertToPixels)(config.trackstartradius,side/2);config.trackstartradius=config.trackstartradius>100?100:config.trackstartradius;config.trackendradius=(0,_lib.convertToPixels)(config.trackendradius,side/2);config.trackendradius=config.trackendradius>100?100:config.trackendradius;config.barstartradius=(0,_lib.convertToPixels)(config.barstartradius,side/2);config.barstartradius=config.barstartradius>100?100:config.barstartradius;config.barendradius=(0,_lib.convertToPixels)(config.barendradius,side/2);config.barendradius=config.barendradius>100?100:config.barendradius;config.trackmargin=(0,_lib.convertToPixels)(config.trackmargin,side/2);if(config.innerradius>=config.outerradius){config.innerradius=55;config.outerradius=77}chartMaxDiameter=(config.outerradius+(config.showticks?config.tickmarklength:0)+(config.showtickvalues?TICK_VALUE_GAP+config.tickvaluefontsize:0))*2;captionSpace=this._manageChartMenuBar(chartMaxDiameter<config.availableHeight?config.availableHeight-chartMaxDiameter:config.availableHeight/2);chartMaxDiameter-=(captionSpace.top||0)+(captionSpace.bottom||0);if(chartMaxDiameter>side){config.outerradius=side/2-(config.showticks?config.tickmarklength:0)-(config.showtickvalues?config.tickvaluefontsize:0)}trackthickness=(config.outerradius-config.innerradius-(config.rings-1)*config.trackmargin)/config.rings;if(trackthickness<0){config.trackmargin=0;trackthickness=(config.outerradius-config.innerradius)/config.rings}config.trackpadding=(0,_lib.convertToPixels)(config.trackpadding,trackthickness/2);if(config.trackpadding>trackthickness/2){config.trackpadding=0}barthickness=trackthickness-config.trackpadding*2;if(barthickness<0){barthickness=(config.outerradius-config.innerradius)/config.rings}this.getChildren("dataset")&&this.getChildren("dataset").forEach((function(el,index){box=_lib.UNDEF;if(!data||Array.isArray(data)&&data.length===0){box=side}else{if(!config.tracks[counter].thickness){config.tracks[counter].thickness=trackthickness}box=(config.innerradius+(counter+1)*trackthickness+counter*config.trackmargin)*2}el.setNodePath(box,trackthickness,config);counter+=1;counter%=config.rings;if(index===_this2.getChildren("dataset").length-1){el.config.isLast=true}}));counter=0;this.getChildren("plot")&&this.getChildren("plot").forEach((function(el){box=_lib.UNDEF;if(!data||Array.isArray(data)&&data.length===0){box=side}else{if(!config.plots[counter].thickness){config.plots[counter].thickness=trackthickness}box=(config.innerradius+(counter+1)*trackthickness+counter*config.trackmargin)*2-2*config.trackpadding}el.setNodePath(box,barthickness,config);counter+=1;counter%=config.rings}))};_proto._postSpaceManagement=function _postSpaceManagement(){this.allocateDimensionOfChartMenuBar();this.config.showLegend&&this.getChildren("legend")&&this.getChildren("legend")[0].postSpaceManager()};_proto.draw=function draw(){_CommonAPI.prototype.draw.call(this);var node=this,animationManager=this.getFromEnv("animationManager"),element=this.getChildContainer("node-container"),ticksContainer=this.getChildContainer("ticks-container");node.addChildContainer("node-container",animationManager.setAnimation({el:element||"group",component:node,label:"node-container",id:"node-container",attr:{name:"node-container"},container:this.getChildContainer("plotGroup")}));node.addChildContainer("ticks-container",animationManager.setAnimation({el:ticksContainer||"group",component:node,label:"ticks-container",id:"ticks-container",attr:{name:"ticks-container"},container:this.getChildContainer("node-container")}));for(var i=0;i<this.config.plots.length&&i<this.config.tracks.length;i++){var currentPlot=this.getChildren("plot")[i];this.addExtEventListener("fc-mouseover",currentPlot._mouseOverHandler,currentPlot);this.addExtEventListener("fc-mouseout",currentPlot._mouseOutHandler,currentPlot);this.addExtEventListener("fc-click",currentPlot._mouseClickHandler,currentPlot)}if(!this.config.defaultcontextlabel){this.config.defaultcontextlabel=""}this.drawContextLabel(this.config.defaultcontextlabel)};_proto.drawLabel=function drawLabel(track,plot){var chartConfig=this.getFromEnv("chartConfig"),animationManager=this.getFromEnv("animationManager"),toolTipController=this.getFromEnv("toolTipController"),smartLabel=this.getFromEnv("smartLabel"),config=this.config,canvasLeft=chartConfig.canvasLeft,canvasTop=chartConfig.canvasTop,availableWidth=chartConfig.canvasWidth,availableHeight=chartConfig.canvasHeight,centerX=canvasLeft+availableWidth/2,centerY=canvasTop+availableHeight/2,startAngle=(0,_polarUtil.changeAngleBase)(track.config.startingAngle),endingAngle=(0,_polarUtil.changeAngleBase)(track.config.endingAngle),endAngle=startAngle===endingAngle?endingAngle-.1:endingAngle,labelFontSize=track.config.thickness-config.labelpadding.top-config.labelpadding.bottom,labelFontColor=config.usedataplotcolorforlabels?plot.config.color:config.style.inCancolor,labelTextObj,theta,labelText=config.labeltext,iconSize,labelGraphicsAttr,plotIdentifierShow=labelText.toLowerCase().indexOf("$plotidentifier")>-1,plotIdSvgString,radius,showIcon=this.config.showlabelicon;plot.config.labelFontSize=labelFontSize=labelFontSize<5?track.config.thickness:labelFontSize;iconSize=labelFontSize*parseInt(config.iconscale,10)/100;if(iconSize>=Math.abs(config.innerradius-config.outerradius)){iconSize=labelFontSize}iconSize=iconSize<0?labelFontSize:iconSize;if(plot.label){this.removeGraphicalElement(plot.label)}if(plot.iconImage){this.removeGraphicalElement(plot.iconImage)}if(plot.plotIdentifier){this.removeGraphicalElement(plot.plotIdentifier)}if(plot.labelDiv){this.getFromEnv("chart-container").removeChild(plot.labelDiv);delete plot.labelDiv}if(config.placevaluesinside){if(!config.showlabels||labelText.length===0){config.iconposition="start"}if(plotIdentifierShow){labelText=labelText.toLowerCase().replace("$plotidentifier","");plotIdSvgString=plot.getParsedText("$plotIdentifier",false,labelFontSize)}labelText=plot.getParsedText(labelText,false,labelFontSize)||track.config.label;if(config.showlabelicon&&track.config.iconurl){if(config.iconposition!=="end"){var iconRotation,iconCoords,iconTransform;if(config.labelposition==="end"){radius=track.config.innerRadius+(track.config.thickness-iconSize)/2;iconRotation=(0,_polarUtil.normaliseAngle)(endAngle)-track.config.paddingAngle;iconCoords=(0,_polarUtil.pointOnCircleFromCenter)(centerX,centerY,radius,iconRotation);iconTransform="R"+(iconRotation-180)+", "+iconCoords.x+", "+iconCoords.y}else{radius=track.config.outerRadius-(track.config.thickness-iconSize)/2;iconRotation=(0,_polarUtil.normaliseAngle)(startAngle)+track.config.paddingAngle;iconCoords=(0,_polarUtil.pointOnCircleFromCenter)(centerX,centerY,radius,iconRotation);iconTransform="R"+iconRotation+", "+iconCoords.x+", "+iconCoords.y}plot.iconImage=animationManager.setAnimation({el:"image",attr:{src:track.config.iconurl,x:iconCoords.x,y:iconCoords.y,width:iconSize,height:iconSize,transform:iconTransform},container:{id:"node-container",isParent:true},component:this,label:"image"});this.addGraphicalElement("iconImage",plot.iconImage,true)}}if(config.showlabels&&plotIdentifierShow){var el=document.createElement("div");el.innerHTML=_trustedPolicy.default.createHTML(plotIdSvgString);var pathElement=el.firstChild.firstElementChild||el.firstChild,pathAttributes=pathElement&&pathElement.attributes,plotIdentifierAttr={},path,legend=this.getFromEnv("legend"),legendItem=config.showLegend&&legend.getItem(plot.config.legendItemId),graphicalElement=legendItem&&legendItem.getGraphicalElement(),legendItemSymbol=graphicalElement&&graphicalElement.legendItemSymbol,iconAngle=config.iconposition!=="end"?track.config.iconAngle:0,symbolBBox=legendItemSymbol&&legendItemSymbol.node.getBBox(),svgScale=1,plotIdentifierCoords,plotIdentifierRotation;if(!symbolBBox){symbolBBox={width:labelFontSize}}if(labelFontSize&&symbolBBox&&labelFontSize<symbolBBox.height){svgScale=labelFontSize/symbolBBox.height}if(config.labelposition==="end"){radius=track.config.innerRadius+(track.config.thickness-labelFontSize)/2;plotIdentifierRotation=(0,_polarUtil.normaliseAngle)(endAngle)-track.config.paddingAngle-iconAngle;plotIdentifierCoords=(0,_polarUtil.pointOnCircleFromCenter)(centerX,centerY,radius,plotIdentifierRotation);plotIdentifierRotation-=180}else{radius=track.config.outerRadius-(track.config.thickness-labelFontSize)/2;plotIdentifierRotation=(0,_polarUtil.normaliseAngle)(startAngle)+track.config.paddingAngle+iconAngle;plotIdentifierCoords=(0,_polarUtil.pointOnCircleFromCenter)(centerX,centerY,radius,plotIdentifierRotation)}if(pathElement.tagName==="path"){for(var i=0;i<pathAttributes.length;i++){if(pathAttributes[i].name==="d"){path=pathAttributes[i].nodeValue}else{plotIdentifierAttr[pathAttributes[i].name]=pathAttributes[i].nodeValue}}plotIdentifierAttr.path=path}else{plotIdentifierAttr.path="M0,0L"+labelFontSize+",0,"+labelFontSize+","+labelFontSize+",0,"+labelFontSize+"Z";plotIdentifierAttr["stroke-width"]=.1;plotIdentifierAttr.fill=plot.config.realColor||plot.config.color}plotIdentifierAttr.transform="T"+plotIdentifierCoords.x+", "+plotIdentifierCoords.y+" R"+plotIdentifierRotation+", "+plotIdentifierCoords.x+", "+plotIdentifierCoords.y+" S"+svgScale;plot.plotIdentifier=animationManager.setAnimation({el:"path",attr:plotIdentifierAttr,container:{id:"plot",isParent:true},label:"plotIdentifier",component:this});this.addGraphicalElement("plotIdentifier",plot.plotIdentifier,true)}if(config.showlabels&&labelText.length>0){var trackArc=(0,_polarUtil.findArc)(startAngle,startAngle===endingAngle?endingAngle-.1:endingAngle),trackLength=2*Math.PI*track.config.innerRadius/360*trackArc;var labelStyle={"font-family":config.style.inCanfontFamily,"font-size":labelFontSize,"line-height":labelFontSize*1.2};smartLabel.setStyle(labelStyle);labelTextObj=smartLabel.getSmartText(labelText,trackLength-config.labelpadding.left-config.labelpadding.right-(config.showlabelicon?iconSize+15:0)-(plotIdentifierShow?labelFontSize:0),labelFontSize*1.2,false);labelGraphicsAttr={text:labelTextObj.text,x:track.config.path_d[1],y:track.config.path_d[2],fill:labelFontColor,"font-family":config.style.inCanfontFamily,"font-size":labelFontSize,"text-anchor":"start",textpath:{path:track.config.labelPath[config.labelposition][config.iconposition]}};plot.label=animationManager.setAnimation({el:"text",attr:labelGraphicsAttr,container:{id:"plot",isParent:true},label:"label",component:this});this.addGraphicalElement("trackLabel",plot.label,true)}if(config.showlabelicon&&track.config.iconurl){if(config.iconposition==="end"){var _iconRotation,_iconCoords,_iconTransform,numberOfChars=plot.label.node.getNumberOfChars()-1;if(config.labelposition==="start"){radius=track.config.outerRadius-(track.config.thickness-iconSize)/2;_iconRotation=plot.label.node.getRotationOfChar(numberOfChars)+track.config.iconAngle;_iconCoords=(0,_polarUtil.pointOnCircleFromCenter)(centerX,centerY,radius,_iconRotation);_iconTransform="R"+_iconRotation+", "+_iconCoords.x+", "+_iconCoords.y}else{radius=track.config.innerRadius+(track.config.thickness-iconSize)/2;_iconRotation=plot.label.node.getRotationOfChar(numberOfChars)-180-track.config.iconAngle;_iconCoords=(0,_polarUtil.pointOnCircleFromCenter)(centerX,centerY,radius,_iconRotation);_iconTransform="R"+(_iconRotation-180)+", "+_iconCoords.x+", "+_iconCoords.y}plot.iconImage=animationManager.setAnimation({el:"image",attr:{src:track.config.iconurl,x:_iconCoords.x,y:_iconCoords.y,width:iconSize,height:iconSize,transform:_iconTransform},container:{id:"node-container",isParent:true},component:this,label:"image"});this.addGraphicalElement("iconImage",plot.iconImage,true)}}}else if(startAngle!==endingAngle){var newRadius,iconAttr={},labelTextAttr={},_plotIdentifierAttr={},distance=0;if(config.labelposition==="end"){if(endAngle>=0&&endAngle<180||endAngle===360){if(config.iconposition==="end"){distance=distance+config.labelpadding.left;if(plotIdentifierShow&&config.showlabels){var _el=document.createElement("div");_el.innerHTML=_trustedPolicy.default.createHTML(plot.getParsedText("$plotIdentifier"));var _pathElement=_el.firstChild.firstElementChild||_el.firstChild,_pathAttributes=_pathElement&&_pathElement.attributes,_path,_legend=this.getFromEnv("legend"),_legendItem=config.showLegend&&_legend.getItem(plot.config.legendItemId),_graphicalElement=_legendItem&&_legendItem.getGraphicalElement(),_legendItemSymbol=_graphicalElement&&_graphicalElement.legendItemSymbol,_symbolBBox=_legendItemSymbol&&_legendItemSymbol.node.getBBox(),_svgScale=1,_plotIdentifierCoords;distance=distance+labelFontSize/2;newRadius=Math.sqrt(Math.pow(track.config.outerRadius-track.config.thickness/2,2)+Math.pow(distance,2));theta=Math.atan(distance/track.config.outerRadius)*(180/Math.PI);_plotIdentifierCoords=(0,_polarUtil.pointOnCircleFromCenter)(centerX,centerY,newRadius,(0,_polarUtil.normaliseAngle)(endAngle)+theta);if(!_symbolBBox){_symbolBBox={width:labelFontSize}}if(labelFontSize&&_symbolBBox&&labelFontSize<_symbolBBox.height){_svgScale=labelFontSize/_symbolBBox.height}if(_pathElement.tagName==="path"){for(var _i=0;_i<_pathAttributes.length;_i++){if(_pathAttributes[_i].name==="d"){_path=_pathAttributes[_i].nodeValue}else{_plotIdentifierAttr[_pathAttributes[_i].name]=_pathAttributes[_i].nodeValue}}_plotIdentifierAttr.path=_path}else{_plotIdentifierAttr.path="M0,0L"+labelFontSize+",0,"+labelFontSize+","+labelFontSize+",0,"+labelFontSize+"Z";_plotIdentifierAttr["stroke-width"]=.1;_plotIdentifierAttr.fill=plot.config.realColor||plot.config.color}_plotIdentifierAttr.transform="T"+(_plotIdentifierCoords.x-_symbolBBox.width*_svgScale/2)+", "+(_plotIdentifierCoords.y-_symbolBBox.height*_svgScale/2)+" R"+(endAngle-90)+", "+_plotIdentifierCoords.x+", "+_plotIdentifierCoords.y+" S"+_svgScale;this.addPlotIdentifier(_plotIdentifierAttr,plot);distance=distance+labelFontSize+1}if(config.showlabels){radius=track.config.outerRadius-(track.config.thickness-labelFontSize)/2-labelFontSize/2;newRadius=Math.sqrt(Math.pow(radius,2)+Math.pow(distance,2));theta=Math.atan(distance/track.config.outerRadius)*(180/Math.PI);labelText=plot.getParsedText(labelText.replace("$plotIdentifier","").replace("$plotidentifier",""));var labelCoords=(0,_polarUtil.pointOnCircleFromCenter)(centerX,centerY,newRadius,(0,_polarUtil.normaliseAngle)(endAngle)+theta),labelLength;var _labelStyle={"font-family":config.style.inCanfontFamily,"font-size":labelFontSize,"line-height":labelFontSize*1.2};smartLabel.setStyle(_labelStyle);labelTextObj=smartLabel.getSmartText(labelText,config.outerradius,labelFontSize*1.2,false);labelTextAttr.x=labelCoords.x;labelTextAttr.y=labelCoords.y;labelTextAttr.fill=labelFontColor;labelTextAttr["font-family"]=config.style.inCanfontFamily;labelTextAttr["font-size"]=labelFontSize;labelTextAttr["text-anchor"]="start";labelTextAttr.transform="R"+(endAngle-90)+", "+labelTextAttr.x+", "+labelTextAttr.y;labelTextAttr.text=labelTextObj.text;labelLength=this.addLabel(labelTextAttr,plot);distance=distance+labelLength}if(showIcon&&track.config.iconurl){distance=distance+ICON_PADDING;newRadius=Math.sqrt(Math.pow(track.config.outerRadius+(track.config.thickness-labelFontSize)/2,2)+Math.pow(distance,2));theta=Math.atan(distance/track.config.outerRadius)*(180/Math.PI);iconAttr.iconCoords=(0,_polarUtil.pointOnCircleFromCenter)(centerX,centerY,newRadius,(0,_polarUtil.normaliseAngle)(endAngle)+theta);iconAttr.transform="R"+(endAngle-90)+", "+iconAttr.iconCoords.x+", "+iconAttr.iconCoords.y;iconAttr.iconSize=labelFontSize;this.addIcon(iconAttr,plot,track)}}else{distance=distance+config.labelpadding.left;if(showIcon){if(track.config.iconurl){newRadius=Math.sqrt(Math.pow(track.config.outerRadius+(track.config.thickness-labelFontSize)/2,2)+Math.pow(distance,2));theta=Math.atan(distance/track.config.outerRadius)*(180/Math.PI);iconAttr.iconCoords=(0,_polarUtil.pointOnCircleFromCenter)(centerX,centerY,newRadius,(0,_polarUtil.normaliseAngle)(endAngle)+theta);iconAttr.transform="R"+(endAngle-90)+", "+iconAttr.iconCoords.x+", "+iconAttr.iconCoords.y;iconAttr.iconSize=labelFontSize;this.addIcon(iconAttr,plot,track)}distance=distance+labelFontSize+ICON_PADDING}if(plotIdentifierShow&&config.showlabels){distance=distance+labelFontSize/2;var _el2=document.createElement("div");_el2.innerHTML=_trustedPolicy.default.createHTML(plot.getParsedText("$plotIdentifier"));var _pathElement2=_el2.firstChild.firstElementChild||_el2.firstChild,_pathAttributes2=_pathElement2&&_pathElement2.attributes,_path2,_legend2=this.getFromEnv("legend"),_legendItem2=config.showLegend&&_legend2.getItem(plot.config.legendItemId),_graphicalElement2=_legendItem2&&_legendItem2.getGraphicalElement(),_legendItemSymbol2=_graphicalElement2&&_graphicalElement2.legendItemSymbol,_symbolBBox2=_legendItemSymbol2&&_legendItemSymbol2.node.getBBox(),_svgScale2=1,_plotIdentifierCoords2;newRadius=Math.sqrt(Math.pow(track.config.outerRadius-track.config.thickness/2,2)+Math.pow(distance,2));theta=Math.atan(distance/track.config.outerRadius)*(180/Math.PI);_plotIdentifierCoords2=(0,_polarUtil.pointOnCircleFromCenter)(centerX,centerY,newRadius,(0,_polarUtil.normaliseAngle)(endAngle)+theta);if(!_symbolBBox2){_symbolBBox2={width:labelFontSize}}if(labelFontSize&&_symbolBBox2&&labelFontSize<_symbolBBox2.height){_svgScale2=labelFontSize/_symbolBBox2.height}if(_pathElement2.tagName==="path"){for(var _i2=0;_i2<_pathAttributes2.length;_i2++){if(_pathAttributes2[_i2].name==="d"){_path2=_pathAttributes2[_i2].nodeValue}else{_plotIdentifierAttr[_pathAttributes2[_i2].name]=_pathAttributes2[_i2].nodeValue}}_plotIdentifierAttr.path=_path2}else{_plotIdentifierAttr.path="M0,0L"+labelFontSize+",0,"+labelFontSize+","+labelFontSize+",0,"+labelFontSize+"Z";_plotIdentifierAttr["stroke-width"]=.1;_plotIdentifierAttr.fill=plot.config.realColor||plot.config.color}_plotIdentifierAttr.transform="T"+(_plotIdentifierCoords2.x-_symbolBBox2.width*_svgScale2/2)+", "+(_plotIdentifierCoords2.y-_symbolBBox2.height*_svgScale2/2)+" R"+(endAngle-90)+", "+_plotIdentifierCoords2.x+", "+_plotIdentifierCoords2.y+" S"+_svgScale2;this.addPlotIdentifier(_plotIdentifierAttr,plot);distance=distance+labelFontSize}if(config.showlabels){radius=track.config.outerRadius-(track.config.thickness-labelFontSize)/2-labelFontSize/2;newRadius=Math.sqrt(Math.pow(radius,2)+Math.pow(distance,2));theta=Math.atan(distance/radius)*(180/Math.PI);labelText=plot.getParsedText(labelText.replace("$plotIdentifier","").replace("$plotidentifier",""));var _labelCoords=(0,_polarUtil.pointOnCircleFromCenter)(centerX,centerY,newRadius,(0,_polarUtil.normaliseAngle)(endAngle)+theta);var _labelStyle2={"font-family":config.style.inCanfontFamily,"font-size":labelFontSize,"line-height":labelFontSize*1.2};smartLabel.setStyle(_labelStyle2);labelTextObj=smartLabel.getSmartText(labelText,config.outerradius,labelFontSize*1.2,false);labelTextAttr.x=_labelCoords.x;labelTextAttr.y=_labelCoords.y;labelTextAttr.fill=labelFontColor;labelTextAttr["font-family"]=config.style.inCanfontFamily;labelTextAttr["font-size"]=labelFontSize;labelTextAttr["text-anchor"]="start";labelTextAttr.transform="R"+(endAngle-90)+", "+labelTextAttr.x+", "+labelTextAttr.y;labelTextAttr.text=labelTextObj.text;this.addLabel(labelTextAttr,plot)}}}else if(endAngle>=180&&endAngle<360){if(config.iconposition==="end"){distance=distance-config.labelpadding.right;if(showIcon){distance=distance-labelFontSize;if(track.config.iconurl){newRadius=Math.sqrt(Math.pow(track.config.innerRadius-(track.config.thickness-labelFontSize)/2,2)+Math.pow(distance,2));theta=Math.atan(distance/track.config.innerRadius)*(180/Math.PI);iconAttr.iconCoords=(0,_polarUtil.pointOnCircleFromCenter)(centerX,centerY,newRadius,(0,_polarUtil.normaliseAngle)(endAngle)-theta);iconAttr.transform="R"+(endAngle+90)+", "+iconAttr.iconCoords.x+", "+iconAttr.iconCoords.y;iconAttr.iconSize=labelFontSize;this.addIcon(iconAttr,plot,track)}distance=distance-ICON_PADDING}if(config.showlabels){radius=track.config.innerRadius+(track.config.thickness-labelFontSize)/2+labelFontSize/2;newRadius=Math.sqrt(Math.pow(radius,2)+Math.pow(distance,2));theta=Math.atan(distance/radius)*(180/Math.PI);labelText=plot.getParsedText(labelText.replace("$plotIdentifier","").replace("$plotidentifier",""));var _labelCoords2=(0,_polarUtil.pointOnCircleFromCenter)(centerX,centerY,newRadius,(0,_polarUtil.normaliseAngle)(endAngle)-theta),_labelLength;var _labelStyle3={"font-family":config.style.inCanfontFamily,"font-size":labelFontSize,"line-height":labelFontSize*1.2};smartLabel.setStyle(_labelStyle3);labelTextObj=smartLabel.getSmartText(labelText,config.outerradius,labelFontSize*1.2,false);labelTextAttr.x=_labelCoords2.x;labelTextAttr.y=_labelCoords2.y;labelTextAttr.fill=labelFontColor;labelTextAttr["font-family"]=config.style.inCanfontFamily;labelTextAttr["font-size"]=labelFontSize;labelTextAttr["text-anchor"]="end";labelTextAttr.transform="R"+(endAngle+90)+", "+labelTextAttr.x+", "+labelTextAttr.y;labelTextAttr.text=labelTextObj.text;_labelLength=this.addLabel(labelTextAttr,plot);distance=distance-_labelLength-labelFontSize}if(plotIdentifierShow&&config.showlabels){var _el3=document.createElement("div");_el3.innerHTML=_trustedPolicy.default.createHTML(plot.getParsedText("$plotIdentifier"));var _pathElement3=_el3.firstChild.firstElementChild||_el3.firstChild,_pathAttributes3=_pathElement3&&_pathElement3.attributes,_path3,_legend3=this.getFromEnv("legend"),_legendItem3=config.showLegend&&_legend3.getItem(plot.config.legendItemId),_graphicalElement3=_legendItem3&&_legendItem3.getGraphicalElement(),_legendItemSymbol3=_graphicalElement3&&_graphicalElement3.legendItemSymbol,_symbolBBox3=_legendItemSymbol3&&_legendItemSymbol3.node.getBBox(),_svgScale3=1,_plotIdentifierCoords3;newRadius=Math.sqrt(Math.pow(track.config.innerRadius+track.config.thickness/2,2)+Math.pow(distance,2));theta=Math.atan(distance/track.config.innerRadius)*(180/Math.PI);_plotIdentifierCoords3=(0,_polarUtil.pointOnCircleFromCenter)(centerX,centerY,newRadius,(0,_polarUtil.normaliseAngle)(endAngle)-theta);if(!_symbolBBox3){_symbolBBox3={width:labelFontSize}}if(labelFontSize&&_symbolBBox3&&labelFontSize<_symbolBBox3.height){_svgScale3=labelFontSize/_symbolBBox3.height}if(_pathElement3.tagName==="path"){for(var _i3=0;_i3<_pathAttributes3.length;_i3++){if(_pathAttributes3[_i3].name==="d"){_path3=_pathAttributes3[_i3].nodeValue}else{_plotIdentifierAttr[_pathAttributes3[_i3].name]=_pathAttributes3[_i3].nodeValue}}_plotIdentifierAttr.path=_path3}else{_plotIdentifierAttr.path="M0,0L"+labelFontSize+",0,"+labelFontSize+","+labelFontSize+",0,"+labelFontSize+"Z";_plotIdentifierAttr["stroke-width"]=.1;_plotIdentifierAttr.fill=plot.config.realColor||plot.config.color}_plotIdentifierAttr.transform="T"+(_plotIdentifierCoords3.x-_symbolBBox3.width*_svgScale3/2)+", "+(_plotIdentifierCoords3.y-_symbolBBox3.height*_svgScale3/2)+" R"+(endAngle+90)+", "+_plotIdentifierCoords3.x+", "+_plotIdentifierCoords3.y+" S"+_svgScale3;this.addPlotIdentifier(_plotIdentifierAttr,plot)}}else{distance=distance-config.labelpadding.right;if(config.showlabels){radius=track.config.innerRadius+(track.config.thickness-labelFontSize)/2+labelFontSize/2;newRadius=Math.sqrt(Math.pow(radius,2)+Math.pow(distance,2));theta=Math.atan(distance/radius)*(180/Math.PI);labelText=plot.getParsedText(labelText.replace("$plotIdentifier","").replace("$plotidentifier",""));var _labelCoords3=(0,_polarUtil.pointOnCircleFromCenter)(centerX,centerY,newRadius,(0,_polarUtil.normaliseAngle)(endAngle)-theta),_labelLength2;var _labelStyle4={"font-family":config.style.inCanfontFamily,"font-size":labelFontSize,"line-height":labelFontSize*1.2};smartLabel.setStyle(_labelStyle4);labelTextObj=smartLabel.getSmartText(labelText,config.outerradius,labelFontSize*1.2,false);labelTextAttr.x=_labelCoords3.x;labelTextAttr.y=_labelCoords3.y;labelTextAttr.fill=labelFontColor;labelTextAttr["font-family"]=config.style.inCanfontFamily;labelTextAttr["font-size"]=labelFontSize;labelTextAttr["text-anchor"]="end";labelTextAttr.transform="R"+(endAngle+90)+", "+labelTextAttr.x+", "+labelTextAttr.y;labelTextAttr.text=labelTextObj.text;_labelLength2=this.addLabel(labelTextAttr,plot);distance=distance-_labelLength2-labelFontSize}if(plotIdentifierShow&&config.showlabels){var _el4=document.createElement("div");_el4.innerHTML=_trustedPolicy.default.createHTML(plot.getParsedText("$plotIdentifier"));var _pathElement4=_el4.firstChild.firstElementChild||_el4.firstChild,_pathAttributes4=_pathElement4&&_pathElement4.attributes,_path4,_legend4=this.getFromEnv("legend"),_legendItem4=config.showLegend&&_legend4.getItem(plot.config.legendItemId),_graphicalElement4=_legendItem4&&_legendItem4.getGraphicalElement(),_legendItemSymbol4=_graphicalElement4&&_graphicalElement4.legendItemSymbol,_symbolBBox4=_legendItemSymbol4&&_legendItemSymbol4.node.getBBox(),_svgScale4=1,_plotIdentifierCoords4;newRadius=Math.sqrt(Math.pow(track.config.innerRadius+track.config.thickness/2,2)+Math.pow(distance,2));theta=Math.atan(distance/track.config.innerRadius)*(180/Math.PI);_plotIdentifierCoords4=(0,_pol