"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 _componentInterface=require("@fusioncharts/core/src/component-interface");var _dependencyManager=require("@fusioncharts/core/src/dependency-manager");var _index=_interopRequireDefault(require("./index.animation"));(0,_dependencyManager.addDep)({name:"column3dManagerAnimation",type:"animationRule",extension:_index.default});var Column3dGroup=function(_ComponentInterface){(0,_inheritsLoose2.default)(Column3dGroup,_ComponentInterface);function Column3dGroup(){var _this;_this=_ComponentInterface.call(this)||this;_this.setState("visible",true);return _this}var _proto=Column3dGroup.prototype;_proto.getType=function getType(){return"group"};_proto.getName=function getName(){return"column3d"};_proto.getCanvasPadding=function getCanvasPadding(){var manager=this,dim,key,returnDimension={paddingLeft:0,paddingRight:0,paddingTop:0,paddingBottom:0};manager._mapChildren((function(child){dim=child.getCanvasPadding&&child.getCanvasPadding()||{};for(key in dim){if(dim.hasOwnProperty(key)){returnDimension[key]=Math.max(dim[key],returnDimension[key])}}}));return returnDimension};_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},container:pContainer,component:manager,label:"group"}))}};_proto.draw3DContainer=function draw3DContainer(){var manager=this,animationManager=manager.getFromEnv("animationManager"),container=manager.getChildContainer("plotGroup3d"),xAxis=manager.getFromEnv("xAxis"),ii=xAxis.getTicksLen(),i,plotNegativeGroup=container&&container.negative,plotPositiveGroup=container&&container.positive,parentContainer=this.getLinkedParent().getChildContainer().columnVcanvasGroup;!manager.getChildContainer("plotGroup3d")&&manager.addChildContainer("plotGroup3d",animationManager.setAnimation({el:"group",attr:{name:"3d-plots"},container:parentContainer,component:manager,label:"group"}));container=manager.getChildContainer("plotGroup3d");manager.addToEnv("plotGroup3d",container);plotNegativeGroup=container.negative=animationManager.setAnimation({el:plotNegativeGroup||"group",attr:{name:"negative-values"},container:container,component:manager,label:"group"});plotPositiveGroup=container.positive=animationManager.setAnimation({el:plotPositiveGroup||"group",attr:{name:"positive-values"},container:container,component:manager,label:"group"});container.zeroPlane=animationManager.setAnimation({el:container.zeroPlane||"group",attr:{name:"zero-plane"},container:container,component:manager,label:"group"}).insertBefore(container.positive);if(!(container.negativeGroupArray=container.negativeGroupArray=plotNegativeGroup.data("categoryplots"))){plotNegativeGroup.data("categoryplots",new Array(ii));container.negativeGroupArray=plotNegativeGroup.data("categoryplots")}if(!(container.positiveGroupAarray=container.positiveGroupAarray=plotPositiveGroup.data("categoryplots"))){plotPositiveGroup.data("categoryplots",new Array(ii));container.positiveGroupAarray=plotPositiveGroup.data("categoryplots")}for(i=0;i<ii;i++){container.negativeGroupArray[i]=animationManager.setAnimation({el:container.negativeGroupArray[i]||"group",attr:{name:"negative-group-"+i},container:plotNegativeGroup,component:manager,label:"group"});container.positiveGroupAarray[i]=animationManager.setAnimation({el:container.positiveGroupAarray[i]||"group",attr:{name:"positive-group-"+i},container:plotPositiveGroup,component:manager,label:"group"})}};_proto.drawZeroPlane=function drawZeroPlane(){var manager=this,chart=manager.getFromEnv("chart"),animationManager=chart.getFromEnv("animationManager"),isBar=chart.isBar,chartConfig=chart.config,use3DLighting=chartConfig.use3dlighting,container=manager.getChildContainer("plotGroup3d"),yAxis=manager.getFromEnv("yAxis"),yAxisMaxmin=yAxis.getLimit(),yMax=yAxisMaxmin.max,yMin=yAxisMaxmin.min,zeroPlane=manager.getGraphicalElement("zeroplane"),zeroplaneAttr={},xDepth=chartConfig.xDepth,yDepth=chartConfig.yDepth,yBasePos=yAxis.getPixel(yAxis.getAxisBase()),MINWIDTH=1,data,attr,zeroPlaneGroup;if(yMin<0&&yMax>=0){!manager.graphics&&(manager.graphics={});zeroPlaneGroup=container.zeroPlane;zeroplaneAttr.fill=chartConfig.zeroPlaneColor;zeroplaneAttr.noGradient=!use3DLighting;zeroplaneAttr.stroke=chartConfig.zeroPlaneBorderColor||"none";zeroplaneAttr["stroke-width"]=chartConfig.zeroPlaneShowBorder?1:0;zeroplaneAttr.x=isBar?yBasePos-xDepth:chartConfig.canvasLeft-xDepth;zeroplaneAttr.y=isBar?chartConfig.canvasTop+yDepth:yBasePos+yDepth;zeroplaneAttr.width=isBar?MINWIDTH:chartConfig.canvasWidth;zeroplaneAttr.height=isBar?chartConfig.canvasHeight:MINWIDTH;zeroplaneAttr.xDepth=xDepth;zeroplaneAttr.yDepth=yDepth;if(zeroPlane){zeroPlane.show();zeroPlane._.cubetop.show();zeroPlane._.cubeside.show()}data={el:zeroPlane||"cubepath",attr:zeroplaneAttr,container:zeroPlaneGroup,component:manager,label:"zeroPlane"}}else{if(zeroPlane){if(isBar){attr={x:yBasePos-yDepth}}else{attr={y:yBasePos+yDepth}}data={el:zeroPlane,attr:attr,component:manager,doNotRemove:true,callback:function callback(){zeroPlane.hide();zeroPlane._.cubetop.hide();zeroPlane._.cubeside.hide()},container:container,label:"zeroPlane"}}}data&&manager.addGraphicalElement("zeroplane",animationManager.setAnimation(data))};_proto.draw=function draw(){this.createContainer();this.draw3DContainer();this.drawZeroPlane()};_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 Column3dGroup}(_componentInterface.ComponentInterface);var _default=Column3dGroup;exports.default=_default;