@fusioncharts/charts
Version:
JavaScript Data Visualisation Library
1 lines • 7.61 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 _componentInterface=require("@fusioncharts/core/src/component-interface");var _lib=require("@fusioncharts/core/src/lib");var math=Math,mathMin=math.min,mathMax=math.max,mathAbs=math.abs,UNDEF;var ColumnMultiSeriesgroup=function(_ComponentInterface){function ColumnMultiSeriesgroup(){var _this;_this=_ComponentInterface.call(this)||this;_this.setState("visible",true);return _this}(0,_inheritsLoose2.default)(ColumnMultiSeriesgroup,_ComponentInterface);var _proto=ColumnMultiSeriesgroup.prototype;_proto.getType=function getType(){return"group"};ColumnMultiSeriesgroup.getName=function getName(){return"columnMultiSeriesgroup"};_proto.getName=function getName(){return"columnMultiSeriesgroup"};_proto.preConfigure=function preConfigure(managerJSON){if(!managerJSON){return false}this.config.JSONData=managerJSON;_ComponentInterface.prototype.preConfigure.call(this,managerJSON)};_proto.configure=function configure(managerJSON){if(!managerJSON){return false}_ComponentInterface.prototype.configure.call(this,managerJSON)};_proto.setVisibility=function setVisibility(){var manager=this,numVisibleDataset=0;manager._mapChildren((function(child){child.setVisibility&&child.setVisibility()}));manager._mapChildren((function(child){child.getState("visible")&&numVisibleDataset++}));manager.setState("visible",!!numVisibleDataset)};_proto.createContainer=function createContainer(){var manager=this,animationManager=manager.getFromEnv("animationManager"),key,parent=manager.getLinkedParent(),pContainer,parentChildContainers=parent.getChildContainer();for(key in parentChildContainers){pContainer=parentChildContainers[key];!manager.getChildContainer(key)&&manager.addChildContainer(key,animationManager.setAnimation({el:"group",attr:{name:"manager-"+key},component:manager,container:pContainer}))}};_proto.allocatePosition=function allocatePosition(){this.setColumnPosition()};_proto.draw=function draw(){this.createContainer()};_proto.getCanvasPadding=function getCanvasPadding(){var manager=this,dim,key,returnDimension={paddingLeft:0,paddingRight:0,paddingTop:0,paddingBottom:0};manager.setColumnPosition();manager._mapChildren((function(child){dim=!child.getState("removed")&&child.getState("visible")&&child.getCanvasPadding&&child.getCanvasPadding()||{};for(key in dim){if(dim.hasOwnProperty(key)){returnDimension[key]=Math.max(dim[key],returnDimension[key])}}}));return returnDimension};_proto.setColumnPosition=function setColumnPosition(){var manager=this,chartConfig=manager.getFromEnv("chartConfig"),chartAttr=manager.getFromEnv("chart-attrib"),xAxis=manager.getFromEnv("xAxis"),oldNumOfColumns=manager.getFromEnv("numOfColumns"),definedGroupPadding=chartConfig.plotSpacePercent,plotSpacePercent=mathMax((0,_lib.pluckNumber)(definedGroupPadding,20)%100,0),groupPadding=plotSpacePercent/200,xAxisZeroPos=xAxis.getPixel(0),xAxisFirstPos=xAxis.getPixel(1),maxColWidth=manager.getFromEnv("chart").isBar?chartConfig.maxBarHeight:chartConfig.maxColWidth,groupMaxWidth=mathAbs(xAxisFirstPos-xAxisZeroPos),groupNetWidth,columnWidth,commonXShift,plotEffectivePadding,plotPaddingPercent=chartConfig.plotPaddingPercent,plotPadding,xPosFirst,xPosNext,isCrisp=true,groupNetHalfWidth,groupNetGapWidth=4,overlapColumns=chartConfig.overlapColumns,count=0,numOfColumns=0,i=0;manager.addToEnv("groupMaxWidth",groupMaxWidth);manager._mapChildren((function(child){if(!child.getState("removed")&&child.getState("visible")!==false){numOfColumns++;child.addToEnv("updatedIndex",i++)}}));manager.addToEnv("numOfColumns",numOfColumns);manager.addToEnv("numColDiff",(0,_lib.pluckNumber)(oldNumOfColumns-numOfColumns,0));groupNetWidth=(1-definedGroupPadding*.01)*groupMaxWidth||mathMin(groupMaxWidth*(1-groupPadding*2),maxColWidth*(numOfColumns||1));chartAttr.plotspacepercent===UNDEF&&groupNetWidth>=chartConfig.canvasWidth/2&&(groupNetWidth=groupMaxWidth-maxColWidth/2);columnWidth=numOfColumns===0?groupNetWidth:groupNetWidth/numOfColumns;plotPadding=numOfColumns>1?!overlapColumns&&plotPaddingPercent===UNDEF?4:plotPaddingPercent>0?columnWidth*plotPaddingPercent/100:0:0;plotEffectivePadding=mathMin(columnWidth-1,plotPadding);manager.addToEnv("oldPlotWidth",manager.getFromEnv("plotWidth"));manager.addToEnv("plotWidth",columnWidth-plotEffectivePadding);manager.addToEnv("oldPlotPadding",manager.getFromEnv("plotPadding"));manager.addToEnv("plotPadding",plotEffectivePadding);commonXShift=-(numOfColumns/2*columnWidth-columnWidth/2);manager.addToEnv("oldGroupNetWidth",manager.getFromEnv("groupNetWidth"));manager.addToEnv("groupNetWidth",groupNetWidth);manager._mapChildren((function(child){if(!child.getState("removed")&&child.getState("visible")){child.addToEnv("shift",commonXShift+count*columnWidth+plotEffectivePadding/2);count++}}));groupNetHalfWidth=groupNetWidth/2;xPosFirst=xAxisZeroPos-groupNetHalfWidth;xPosNext=xAxisFirstPos-groupNetHalfWidth;if(xPosNext-(xPosFirst+groupNetWidth)<groupNetGapWidth){isCrisp=false}if(plotSpacePercent===0){isCrisp=true}manager.addToEnv("isCrisp",isCrisp)};_proto.childChanged=function childChanged(updateInfo){if(updateInfo===void 0){updateInfo={}}var manager=this,config=manager.config,parent=manager.getLinkedParent(),range,count=0,prevVisiblity=manager.getState("visible"),changeInfo={},informParent;manager._mapChildren((function(child){if(child.getState("visible")){count++}}));manager.setState("visible",!!count);prevVisiblity!==!!count&&(informParent=true);if(updateInfo.dataLimitChanged!==false){range=manager.getDataLimits();if(range.min!==config.range.min||range.max!==config.range.max){config.range.min=range.min;config.range.max=range.max;changeInfo.dataLimitChanged=true;informParent=true}}if(informParent){parent.childChanged&&parent.childChanged(changeInfo)}else{manager.asyncDraw()}};_proto.getAxisValuePadding=function getAxisValuePadding(){var paddingObj={},axisPaddingLeft=-Infinity,axisPaddingRight=-Infinity;this._mapChildren((function(child){if(child.getState("removed")){return}paddingObj=child.getAxisValuePadding&&child.getAxisValuePadding()||{};axisPaddingLeft=Math.max(axisPaddingLeft,paddingObj.left||-Infinity);axisPaddingRight=Math.max(axisPaddingRight,paddingObj.right||-Infinity)}));if(axisPaddingLeft===-Infinity){axisPaddingLeft=0}if(axisPaddingRight===-Infinity){axisPaddingRight=0}if(!this.config.padding){this.config.padding={};this.config.padding.left=axisPaddingLeft;this.config.padding.right=axisPaddingRight}return{left:axisPaddingLeft,right:axisPaddingRight}};_proto.getDataLimits=function getDataLimits(allVisible){var manager=this,min=+Infinity,max=-Infinity,maxminObj,numOfColumns=0,getMaxMin=function getMaxMin(_maxminObj){max=Math.max(max,_maxminObj.max);min=Math.min(min,_maxminObj.min)};manager._mapChildren((function(child){if(child.getState("removed")){return}if(child.getState("visible")===false){if(allVisible){maxminObj=child.getDataLimits(allVisible);getMaxMin(maxminObj)}return}numOfColumns++;maxminObj=child.getDataLimits(allVisible);getMaxMin(maxminObj)}));if(!numOfColumns){manager.setState("visible",false)}else{manager.setState("visible",true)}if(!this.config.range){this.config.range={};this.config.range.min=this.config.dataMin;this.config.range.max=this.config.dataMax}return{max:max,min:min}};_proto.isVisible=function isVisible(){return!this.isNotVisible};return ColumnMultiSeriesgroup}(_componentInterface.ComponentInterface);var _default=exports.default=ColumnMultiSeriesgroup;