@fusioncharts/charts
Version:
JavaScript Data Visualisation Library
1 lines • 3.65 kB
JavaScript
;var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule=true;exports.default=void 0;var _inheritsLoose2=_interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _pie2d=_interopRequireDefault(require("../pie2d"));var _pie3d=_interopRequireDefault(require("../../dataset/pie3d"));var _lib=require("@fusioncharts/core/src/lib");var math=Math,mathRound=math.round,mathMin=math.min,mathMax=math.max,mathPI=math.PI,CHART_STR="3D Pie Chart",PIE3D_STR="Pie3D";var Pie3D=function(_Pie2D){function Pie3D(){var _this;_this=_Pie2D.call(this)||this;_this.defaultPlotShadow=0;return _this}(0,_inheritsLoose2.default)(Pie3D,_Pie2D);Pie3D.getName=function getName(){return"Pie3D"};var _proto=Pie3D.prototype;_proto.getName=function getName(){return"Pie3D"};_proto.__setDefaultConfig=function __setDefaultConfig(){_Pie2D.prototype.__setDefaultConfig.call(this);var config=this.config;config.is3D=true;config.friendlyName=CHART_STR;config.defaultDatasetType=PIE3D_STR;config.plotborderthickness=.1;config.alphaanimation=1};_proto.animate=function animate(){var i,point,graphic,pointGraphics,pointConfig,element,args,up,start,end,chart=this,chartComponents=chart.components,dataSet=chartComponents.dataset[0],dataSetConfig=dataSet.config,dataSetComponents=dataSet.components,plotItems=dataSetComponents.data,len=plotItems.length,alphaAnim=dataSetConfig.alphaAnimation,animationObj=chart.get("config","animationObj"),animationDuration=animationObj.duration||0,mainElm=animationObj.dummyObj,animObj=animationObj.animObj,animType=animationObj.animType;if(!alphaAnim){for(i=0;i<len;i++){point=plotItems[i];pointGraphics=point.graphics;pointConfig=point.config;args=pointConfig.shapeArgs;up=2*mathPI;element=pointGraphics.element;if(element){element.attr({sAngle:up,eAngle:up});start=args.sAngle;end=args.eAngle;graphic.animateWith(mainElm,animObj,{cx:start-up,cy:end-up},animationDuration,animType)}}}};_proto._stubRadius=function _stubRadius(chartWorkingWidth,labelMaxW,chartWrkngHt,lblDistance,sliceDistance,lineHeight,pieMinRad){var chart=this,chartWorkingHeight=chartWrkngHt,pieMinRadius=pieMinRad,slicingDistance=sliceDistance,labelDistance=lblDistance,dataSet=chart.getChildren("dataset")[0],conf=dataSet.config,fcJSONChart=dataSet.config,userGivenSlicingDist=(0,_lib.pluckNumber)(fcJSONChart.slicingdistance),dataLabelOptions=conf.dataLabelOptions||(conf.dataLabelOptions=dataSet._parseDataLabelOptions()),availableRadius=0,MINSLICINGDIST=10,pieYScale=conf.pieYScale,pieSliceDepth=conf.pieSliceDepth,shortFall;chartWorkingHeight-=pieSliceDepth;availableRadius=mathMin(chartWorkingWidth/2-labelMaxW-slicingDistance,(chartWorkingHeight/2-lineHeight)/pieYScale)-labelDistance;if(availableRadius>=pieMinRadius){pieMinRadius=availableRadius}else if(!userGivenSlicingDist){shortFall=pieMinRadius-availableRadius;slicingDistance=labelDistance=mathMax(mathMin(labelDistance-shortFall,slicingDistance),MINSLICINGDIST)}conf.slicingDistance=slicingDistance;conf.pieMinRadius=pieMinRadius;dataLabelOptions.distance=labelDistance;return pieMinRadius};_proto._startingAngle=function _startingAngle(angl,relative){var ang,angle=angl,chart=this,dataSet=chart.getChildren("dataset")[0],seriesData=dataSet.config,currentAngle=(ang=seriesData.startAngle)+(ang<0?360:0);if(!isNaN(angle)){if(!(seriesData.singletonCase||seriesData.isRotating)){angle+=relative?currentAngle:0;dataSet._rotate(angle);currentAngle=angle}}return mathRound(((currentAngle%=360)+(currentAngle<0?360:0))*100)/100};_proto.getDSdef=function getDSdef(){return _pie3d.default};return Pie3D}(_pie2d.default);var _default=exports.default=Pie3D;