UNPKG

quoslibero

Version:

FusionCharts JavaScript charting framework

1 lines 23.3 kB
import MSCartesian from'../../../../fc-charts/src/chart/_internal/mscartesian';import canvasFactory from'../../factories/gantt-canvas';import ganttAxisFactory from'../../factories/gantt-axis';import Milestone from'../../dataset/gantt/milestone';import Task from'../../dataset/gantt/task';import Connector from'../../dataset/gantt/connector';import datasetFactory from'../../factories/gantt-dataset';import{ScrollBar}from'../../../../fc-core/src/toolbox';import{timeYear,timeMonth,timeDay,timeMinute,timeSecond,timeHour}from'../../../../../vendors/fc-utils/src/time-intervals';import{pluckNumber,defaultGaugePaletteOptions,pluck,extend2,chartPaletteStr,pluckFontSize,POSITION_BOTTOM,setAttribDefs,attrTypeBool,attrTypeNum,dropHash,toRaphaelColor,getLightColor}from'../../../../fc-core/src/lib';let UNDEF,mathMax=Math.max,mathMin=Math.min,_scrollBar=function(){var a=[];return{get:function(){return a},clear:function(){a.length=0},add:function(b,c){a.push({conf:b,handler:c})}}}(),_isOutofTimeRange=function(a,b,c,d){if(0<a)switch(b){case'y':return+timeYear.offset(c,a)<d;case'm':return+timeMonth.offset(c,a)<d;case'd':return+timeDay.offset(c,a)<d;case'h':return+timeHour.offset(c,a)<d;case'mn':return+timeMinute.offset(c,a)<d;case's':return+timeSecond.offset(c,a)<d;}};setAttribDefs&&setAttribDefs({showpercentlabel:{type:attrTypeBool,pAttr:'showpercentlabel'},fontsize:{type:attrTypeNum},alpha:{type:attrTypeNum},showborder:{type:attrTypeBool},borderthickness:{type:attrTypeNum},borderalpha:{type:attrTypeNum},showHoverEffect:{type:attrTypeNum},hoverFillAlpha:{type:attrTypeNum},slackHoverFillColor:{type:attrTypeNum},slackHoverFillAlpha:{type:attrTypeBool},showlabels:{type:attrTypeBool,pAttr:'showtasknames'},slackfillcolor:{pAttr:'slackfillcolor'},showtasklabels:{type:attrTypeBool,pAttr:'showtasknames'},showtasknames:{type:attrTypeBool,pAttr:'showlabels'},showconnectorhovereffect:{type:attrTypeNum,pAttr:'showhovereffect'},connectorextension:{type:attrTypeNum},tasklabelspadding:{type:attrTypeNum},taskdatepadding:{type:attrTypeNum},showstartdate:{type:attrTypeNum,pAttr:'showtaskstartdate'},showenddate:{type:attrTypeNum,pAttr:'showtaskenddate'},showtaskhovereffect:{type:attrTypeNum,pAttr:'showhovereffect'},useverticalscrolling:{type:attrTypeNum},taskbarroundradius:{type:attrTypeNum},showshadow:{type:attrTypeNum},showslackasfill:{type:attrTypeNum}});class Gantt extends MSCartesian{constructor(){super(),this._scrollBar=_scrollBar,this.components={},this.fireGroupEvent=!0,this.hasInteractiveLegend=!1,this.defaultPaletteOptions=extend2(extend2({},defaultGaugePaletteOptions),{paletteColors:[['AFD8F8','F6BD0F','8BBA00','FF8E46','008E8E','D64646','8E468E','588526','B3AA00','008ED6','9D080D','A186BE','CC6600','FDC689','ABA000','F26D7D','FFF200','0054A6','F7941C','CC3300','006600','663300','6DCFF6'],['AFD8F8','F6BD0F','8BBA00','FF8E46','008E8E','D64646','8E468E','588526','B3AA00','008ED6','9D080D','A186BE','CC6600','FDC689','ABA000','F26D7D','FFF200','0054A6','F7941C','CC3300','006600','663300','6DCFF6'],['AFD8F8','F6BD0F','8BBA00','FF8E46','008E8E','D64646','8E468E','588526','B3AA00','008ED6','9D080D','A186BE','CC6600','FDC689','ABA000','F26D7D','FFF200','0054A6','F7941C','CC3300','006600','663300','6DCFF6'],['AFD8F8','F6BD0F','8BBA00','FF8E46','008E8E','D64646','8E468E','588526','B3AA00','008ED6','9D080D','A186BE','CC6600','FDC689','ABA000','F26D7D','FFF200','0054A6','F7941C','CC3300','006600','663300','6DCFF6'],['AFD8F8','F6BD0F','8BBA00','FF8E46','008E8E','D64646','8E468E','588526','B3AA00','008ED6','9D080D','A186BE','CC6600','FDC689','ABA000','F26D7D','FFF200','0054A6','F7941C','CC3300','006600','663300','6DCFF6']],bgColor:['FFFFFF','FFFFFF','FFFFFF','FFFFFF','FFFFFF'],bgAngle:[270,270,270,270,270],bgRatio:['100','100','100','100','100'],bgAlpha:['100','100','100','100','100'],canvasBgColor:['FFFFFF','FFFFFF','FFFFFF','FFFFFF','FFFFFF'],canvasBgAngle:[0,0,0,0,0],canvasBgAlpha:['100','100','100','100','100'],canvasBgRatio:['','','','',''],canvasBorderColor:['545454','545454','415D6F','845001','68001B'],canvasBorderAlpha:[100,100,100,90,100],gridColor:['DDDDDD','D8DCC5','99C4CD','DEC49C','FEC1D0'],gridResizeBarColor:['999999','545454','415D6F','845001','D55979'],categoryBgColor:['F1F1F1','EEF0E6','F2F8F9','F7F0E6','FFF4F8'],dataTableBgColor:['F1F1F1','EEF0E6','F2F8F9','F7F0E6','FFF4F8'],toolTipBgColor:['FFFFFF','FFFFFF','FFFFFF','FFFFFF','FFFFFF'],toolTipBorderColor:['545454','545454','415D6F','845001','68001B'],baseFontColor:['555555','60634E','025B6A','A15E01','68001B'],borderColor:['767575','545454','415D6F','845001','68001B'],borderAlpha:[50,50,50,50,50],legendBgColor:['ffffff','ffffff','ffffff','ffffff','ffffff'],legendBorderColor:['666666','545454','415D6F','845001','D55979'],plotBorderColor:['999999','8A8A8A','6BA9B6','C1934D','FC819F'],plotFillColor:['EEEEEE','D8DCC5','BCD8DE','E9D8BE','FEDAE3'],scrollBarColor:['EEEEEE','D8DCC5','99C4CD','DEC49C','FEC1D0']}),this.registerFactory('canvas',canvasFactory),this.registerFactory('axis',ganttAxisFactory,['canvas']),this.registerFactory('dataset',datasetFactory,['canvas'])}static getName(){return'Gantt'}draw(){super.draw(),this.createScrollbarContainer()}getName(){return'Gantt'}__setDefaultConfig(){super.__setDefaultConfig();let a=this.config;a.alignCaptionWithCanvas=0,a.defaultDatasetType='task',a.taskbarroundradius=0,a.taskbarfillmix=' { light-10 }, { dark-20 }, { light-50 }, { light-85 }',a.taskbarfillratio='0,8,84,8',a.showslackasfill=1,a.dateintooltip=1,a.tasklabelsalign='center',a.datepadding=3,a.showtasknames=0,a.showpercentlabel=!1,a.showhovereffect=1,a.slackfillcolor='FF5E5E',a.connectorextension=10,a.tasklabelspadding=2,a.taskdatepadding=3,a.showlabels=UNDEF,a.showtooltip=1,a.showtaskhovereffect=UNDEF,a.useverticalscrolling=1,a.ganttpanedurationunit=UNDEF,a.ganttpaneduration=UNDEF,a.showtaskstartdate=UNDEF,a.showtaskenddate=UNDEF,a.ganttwidthpercent=UNDEF,a.showshadow=1,a.enablemousetracking=!1}_checkInvalidSpecificData(){let a=this.getFromEnv('dataSource'),b=a.processes,c=b&&b.process,d=c&&c.length,e=a.tasks,f=e&&e.task||e,g=f&&f.length,h=a.categories,i=h&&h[0]&&h[0].category,j=i&&i.length;return!d||!g||!j}parseChartAttr(a){let b=this.config,c=a&&a.chart||this.getFromEnv('chart-attrib');super.parseChartAttr(a),b.showBorder=pluckNumber(c.showborder,0),b.alignLegendWithCanvas=0}_feedAxesRawData(){let a=this.getFromEnv('color-manager'),b=this.getFromEnv('dataSource'),c=b.chart,d=this.is3d,e=d?chartPaletteStr.chart3D:chartPaletteStr.chart2D;return{xAxisConf:[{isVertical:!1,isReverse:!1,isOpposit:!0,outCanfontFamily:pluck(c.outcnvbasefont,c.basefont,'Verdana,sans'),outCanfontSize:pluckFontSize(c.outcnvbasefontsize,c.basefontsize,10),outCancolor:pluck(c.outcnvbasefontcolor,c.basefontcolor,a.getColor(e.baseFontColor)).replace(/^#? ([a-f0-9]+)/ig,'#$1'),axisBreaks:c.xaxisbreaks,axisNamePadding:c.xaxisnamepadding,axisValuePadding:c.labelpadding,axisNameFont:c.xaxisnamefont,axisNameFontSize:c.xaxisnamefontsize,axisNameFontColor:c.xaxisnamefontcolor,axisNameFontBold:c.xaxisnamefontbold,axisNameFontItalic:c.xaxisnamefontitalic,axisNameBgColor:c.xaxisnamebgcolor,axisNameBorderColor:c.xaxisnamebordercolor,axisNameAlpha:c.xaxisnamealpha,axisNameFontAlpha:c.xaxisnamefontalpha,axisNameBgAlpha:c.xaxisnamebgalpha,axisNameBorderAlpha:c.xaxisnameborderalpha,axisNameBorderPadding:c.xaxisnameborderpadding,axisNameBorderRadius:c.xaxisnameborderradius,axisNameBorderThickness:c.xaxisnameborderthickness,axisNameBorderDashed:c.xaxisnameborderdashed,axisNameBorderDashLen:c.xaxisnameborderdashlen,axisNameBorderDashGap:c.xaxisnameborderdashgap,useEllipsesWhenOverflow:c.useellipseswhenoverflow,divLineColor:pluck(c.vdivlinecolor,a.getColor(e.divLineColor)),divLineAlpha:pluck(c.vdivlinealpha,d?a.getColor('divLineAlpha3D'):a.getColor('divLineAlpha')),divLineThickness:pluckNumber(c.vdivlinethickness,1),divLineIsDashed:!!pluckNumber(c.vdivlinedashed,c.vdivlineisdashed,0),divLineDashLen:pluckNumber(c.vdivlinedashlen,4),divLineDashGap:pluckNumber(c.vdivlinedashgap,2),showAlternateGridColor:pluckNumber(c.showalternatevgridcolor,0),alternateGridColor:pluck(c.alternatevgridcolor,a.getColor('altVGridColor')),alternateGridAlpha:pluck(c.alternatevgridalpha,a.getColor('altVGridAlpha')),numDivLines:pluckNumber(c.numvdivlines,this.config.numVDivLines),labelFont:c.labelfont,labelFontSize:c.labelfontsize,labelFontColor:c.labelfontcolor,labelFontAlpha:c.labelalpha,labelFontBold:c.labelfontbold,labelFontItalic:c.labelfontitalic,maxLabelHeight:c.maxlabelheight,axisName:c.xaxisname,axisMinValue:c.xaxisminvalue,axisMaxValue:c.xaxismaxvalue,setAdaptiveMin:c.setadaptivexmin,adjustDiv:c.adjustvdiv,labelDisplay:c.labeldisplay,showLabels:c.showlabels,rotateLabels:c.rotatelabels,slantLabel:pluckNumber(c.slantlabels,c.slantlabel),labelStep:pluckNumber(c.labelstep,c.xaxisvaluesstep),showAxisValues:pluckNumber(c.showxaxisvalues,c.showxaxisvalue),showLimits:pluckNumber(c.showvlimits,this.config.showvlimits),showDivLineValues:pluckNumber(c.showvdivlinevalues,c.showvdivlinevalues),zeroPlaneColor:c.vzeroplanecolor,zeroPlaneThickness:c.vzeroplanethickness||2,zeroPlaneAlpha:c.vzeroplanealpha,showZeroPlaneValue:c.showvzeroplanevalue,vTrendLines:b.trendlines,trendlineColor:c.trendlinecolor,trendlineToolText:c.trendlinetooltext,trendlineThickness:c.trendlinethickness,trendlineAlpha:c.trendlinealpha,showTrendlinesOnTop:c.showtrendlinesontop,showAxisLine:pluckNumber(c.showxaxisline,c.showaxislines,c.drawAxisLines,0),axisLineThickness:pluckNumber(c.xaxislinethickness,c.axislinethickness,1),axisLineAlpha:pluckNumber(c.xaxislinealpha,c.axislinealpha,100),axisLineColor:pluck(c.xaxislinecolor,c.axislinecolor,'#000000')}],yAxisConf:[{isVertical:!0,isReverse:!0,isOpposit:!1,outCanfontFamily:pluck(c.outcnvbasefont,c.basefont,'Verdana,sans'),outCanfontSize:pluckFontSize(c.outcnvbasefontsize,c.basefontsize,10),outCancolor:pluck(c.outcnvbasefontcolor,c.basefontcolor,a.getColor(e.baseFontColor)).replace(/^#? ([a-f0-9]+)/ig,'#$1'),axisBreaks:c.yaxisbreaks,axisNamePadding:c.yaxisnamepadding,axisValuePadding:c.yaxisvaluespadding,axisNameFont:c.yaxisnamefont,axisNameFontSize:c.yaxisnamefontsize,axisNameFontColor:c.yaxisnamefontcolor,axisNameFontBold:c.yaxisnamefontbold,axisNameFontItalic:c.yaxisnamefontitalic,axisNameBgColor:c.yaxisnamebgcolor,axisNameBorderColor:c.yaxisnamebordercolor,axisNameAlpha:c.yaxisnamealpha,axisNameFontAlpha:c.yaxisnamefontalpha,axisNameBgAlpha:c.yaxisnamebgalpha,axisNameBorderAlpha:c.yaxisnameborderalpha,axisNameBorderPadding:c.yaxisnameborderpadding,axisNameBorderRadius:c.yaxisnameborderradius,axisNameBorderThickness:c.yaxisnameborderthickness,axisNameBorderDashed:c.yaxisnameborderdashed,axisNameBorderDashLen:c.yaxisnameborderdashlen,axisNameBorderDashGap:c.yaxisnameborderdashgap,axisNameWidth:c.yaxisnamewidth,useEllipsesWhenOverflow:c.useellipseswhenoverflow,rotateAxisName:pluckNumber(c.rotateyaxisname,1),axisName:c.yaxisname,divLineColor:pluck(c.divlinecolor,a.getColor(e.divLineColor)),divLineAlpha:pluck(c.divlinealpha,d?a.getColor('divLineAlpha3D'):a.getColor('divLineAlpha')),divLineThickness:pluckNumber(c.divlinethickness,1),divLineIsDashed:!!pluckNumber(c.divlinedashed,c.divlineisdashed,0),divLineDashLen:pluckNumber(c.divlinedashlen,4),divLineDashGap:pluckNumber(c.divlinedashgap,2),showAlternateGridColor:pluckNumber(c.showalternatehgridcolor,1),alternateGridColor:pluck(c.alternatehgridcolor,a.getColor('altHGridColor')),alternateGridAlpha:pluck(c.alternatehgridalpha,a.getColor('altHGridAlpha')),numDivLines:pluckNumber(c.numdivlines,this.numDivLines),axisMinValue:c.yaxisminvalue,axisMaxValue:c.yaxismaxvalue,setAdaptiveMin:c.setadaptiveymin,adjustDiv:c.adjustdiv,labelStep:c.yaxisvaluesstep,showAxisValues:pluckNumber(c.showyaxisvalues,c.showyaxisvalue),showLimits:pluckNumber(c.showlimits,this.showLimits),showDivLineValues:pluckNumber(c.showdivlinevalues,c.showdivlinevalue),zeroPlaneColor:c.zeroplanecolor,zeroPlaneThickness:c.zeroplanethickness||2,zeroPlaneAlpha:c.zeroplanealpha,showZeroPlaneValue:c.showzeroplanevalue,trendlineColor:c.trendlinecolor,trendlineToolText:c.trendlinetooltext,trendlineThickness:c.trendlinethickness,trendlineAlpha:c.trendlinealpha,showTrendlinesOnTop:c.showtrendlinesontop,showAxisLine:pluckNumber(c.showyaxisline,c.showaxislines,c.drawAxisLines,0),axisLineThickness:pluckNumber(c.yaxislinethickness,c.axislinethickness,1),axisLineAlpha:pluckNumber(c.yaxislinealpha,c.axislinealpha,100),axisLineColor:pluck(c.yaxislinecolor,c.axislinecolor,'#000000')}]}}_resetViewPortConfig(){var a=this;a.config.viewPortConfig={scaleX:1,scaleY:1,x:0,y:0}}_setCategories(){var a=this.getFromEnv('dataSource'),b=this.getChildren('xAxis')[0],c=this.getChildren('yAxis')[0],d=a.categories,e=a.datatable,f=a.processes;c.setAxisPadding(.5,.5),c.setProcess(f),c.setDataTable(e),b.setCategory(d)}getDSdef(a){switch(a){case'milestone':return Milestone;case'connector':return Connector;case'task':default:return Task;}}_createLegendItems(){let a,b,c,d,e,f,g,h,j,k,l,m=this,n=m.getFromEnv('dataSource'),o=m.getFromEnv('legend'),p=o.getChildren('legendItem'),q=n.legend&&n.legend.item||[];if(this.config.legendItemIds||(this.config.legendItemIds=[]),j=p&&p.length||0,k=q.length,j>k){for(b=k;b<j;b++)o.disposeItem(p[b].getId());p&&p.splice(k,j-k)}for(b=0,a=q.length;b<a;b++)g=q[b],o.getItem(this.config.legendItemIds[b])?l=this.config.legendItemIds[b]:(l=o.createItem(),this.config.legendItemIds.push(l)),e=g.color,c=getLightColor(e,60).replace(dropHash,'#'),d=getLightColor(e,40),f={FCcolor:{color:e+','+e+','+d+','+e+','+e,ratio:'0,70,30',angle:270,alpha:'100,100,100,100,100'}},h={label:g.label,interactiveLegend:!1},o.getItem(l).configure(h),o.getItem(l).setStateCosmetics('default',{symbol:{fill:toRaphaelColor(f),stroke:toRaphaelColor(c)}})}_spaceManager(){let a,b,c,d,e,f,g=this.config,h=this.getChildren('xAxis')[0],i=this.getChildren('yAxis')[0],j=this.getChildren('legend')[0],k=g.ganttwidthpercent,l=g.borderWidth,m=0,n=0;this._resetViewPortConfig(),this._allocateSpace({top:l,bottom:l,left:l,right:l}),this._allocateSpace(this._manageActionBarSpace&&this._manageActionBarSpace(.225*g.availableHeight)||{}),j&&(c=j.config.legendPos),a=c===POSITION_BOTTOM?.6*g.canvasHeight:.6*g.canvasWidth,this._manageChartMenuBar(a),d='right'===c?.3*g.canvasWidth:.3*g.canvasHeight,g.showLegend&&this._manageLegendSpace(d),g.actualCanvasTop=g.canvasTop,g.actualCanvasLeft=g.canvasLeft,b=g.canvasWidth*((100-(k||67))/100),e=i.placeAxis(b),m+=(e.left||0)+(e.right||0),i&&this._allocateSpace(e),a=c===POSITION_BOTTOM?.6*g.canvasHeight:.6*g.canvasWidth,a=.6*g.canvasHeight,e=h.placeAxis(a),n+=e.top||0,g.totalWidth=m,g.totalHeight=n,h&&this._allocateSpace(e),f=i&&i.setProcessHeight(),i.setAxisConfig({processTotalHeight:f})}_postSpaceManagement(){var a,b,c,d,e,f,g,h,i,j=Math.max,k=this,l=k.config,m=this.getChildren('xAxis')[0],n=this.getChildren('yAxis')[0],o=m.getLimit(),p=n.getAxisConfig('processTotalHeight'),q=l.canvasHeight,r=this.getChildren('legend')[0],s=l.xDepth,t=this.getChildren('canvas')[0].config,u=t.canvasBorderWidth,v=t.canvasPadding,w=k.getChildren('vScrollBar')&&k.getChildren('vScrollBar')[0],x=w&&w.config,y=t.canvasPaddingLeft,z=t.canvasPaddingRight,A=+l.ganttpaneduration,B=l.ganttpanedurationunit,C=k.getChildren('hProcessScrollBar')&&k.getChildren('hProcessScrollBar')[0],D=k.getChildren('hScrollBar')&&k.getChildren('hScrollBar')[0],E=D&&D.config.height||0,F=C&&C.config.height||0;l.hScrollEnabled=e=!isNaN(A)&&B!==UNDEF&&_isOutofTimeRange(A,B,o.min,o.max),c=n.getAxisConfig('totalWidth'),d=n.getAxisConfig('totalVisiblelWidth'),f=!!(c>d),g=j(f?F:0,e?E:0),h=q-g,p>h&&(b=!0),a=b?x.width||0:0,i=l.canvasWidth-(s||0)-j(y,v)-j(z,v)-a,m&&m.setAxisDimention({x:t.canvasLeft+(s||0)+j(y,v),y:t.canvasTop-(l.shift||0),opposite:t.canvasTop+t.canvasHeight+u,axisLength:i}),l.currentCanvasWidth=i,n&&n.setAxisDimention({x:t.canvasLeft-(l.shift||0),y:t.canvasTop,opposite:t.canvasRight+u,axisLength:l.canvasHeight}),k._manageScrollbarPosition(),l.showLegend&&r.postSpaceManager(),k.setScrollDimensions(),k.allocateDimensionOfChartMenuBar()}createScrollbarContainer(){let a=this,b=a.getChildContainer(),c=a.getContainer(),d=c.scrollBarParentGroup,e=a.getFromEnv('animationManager');d||(d=c.scrollBarParentGroup=e.setAnimation({el:'group',attr:{name:'scrollBarParentGroup'},container:c.parentgroup,component:a}),a.config.scrollbarContainer=d,d.insertBefore(b.datalabelsGroup))}setScrollDimensions(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q=this,r=q.config,s=q.getChildren(),t=s.xAxis[0],u=t.config.axisRange,v=r.viewPortConfig,w=r.scrollOptions||(r.scrollOptions={}),x=u.max,y=u.min,z=w.horizontalVxLength,A=q.getChildren('hScrollBar')[0],B=A.getChildren('scrollAnchor')[0],C=B.config,D=q.getChildren('vScrollBar')[0],E=q.getChildren('hProcessScrollBar')[0],F=r.useverticalscrolling,G=r.canvasRight,H=v.scaleX,I=v.scaleY,J=r.vScrollEnabled,K=s.yAxis[0],L=J?D.config.conf.width:0,M=q.getContainer();d=r.canvasLeft,e=r.canvasTop,f=r.canvasHeight,g=r.canvasWidth,h=s.canvas[0].config,w.viewPortMin=y,w.viewPortMax=x,w.scrollRatio=z/(x-y),l=w.windowedCanvasWidth=t.getPixel(z),m=w.fullCanvasWidth=t.getPixel(x-y)-l,k=w.fullCanvasHeight=K.getAxisConfig('processTotalHeight'),j=w.windowedCanvasHeight=f,n=K.getAxisConfig('totalWidth'),o=K.getAxisConfig('totalVisiblelWidth'),i=1/I,p=M.scrollBarParentGroup,!1!==r.hScrollEnabled&&(a=A.config,A.setDimension({x:d,y:e+f,width:g-L}),a.scrollRatio=1/H,a.scrollPosition=C.scrollPosition=v.x*H/(g*(H-1)),a.roundEdges=h.isRoundEdges,a.fullCanvasWidth=m,a.windowedCanvasWidth=l,a.parentLayer=p),!1!==J&&F&&(b=D.config,D.setDimension({x:G-L,y:e,height:f}),b.scrollRatio=i,b.roundEdges=h.isRoundEdges,b.fullCanvasWidth=k,b.windowedCanvasWidth=j,b.parentLayer=p),o<n&&0<o&&(c=E.config,E.setDimension({x:d-o,y:e+f,width:o}),c.scrollRatio=o/n,c.roundEdges=h.isRoundEdges,c.fullCanvasWidth=m,c.windowedCanvasWidth=l,c.parentLayer=p)}_setAxisScale(){var a,b,c,d,e,f,g,h,i,j=this,k=j.getChildren(),l=j.config,m=k.xAxis[0],n=m.getLimit(),o=n.max,p=n.min,q=new Date(p),r=k.yAxis[0],s=j.getFromEnv('number-formatter'),t=+l.ganttpaneduration,u=l.scrollOptions||(l.scrollOptions={}),v=l.ganttpanedurationunit,w=l.canvasHeight,x=l.scrolltodate,y=l.canvasWidth,z=l.canvasLeft,A=j.getChildren('hProcessScrollBar')[0],B=j.getChildren('hScrollBar')[0],C=j.getChildren('vScrollBar')[0],D=B&&B.config&&B.config.height||0,E=A&&A.config&&A.config.height||0,F=m.getPixel(o)-z,G=r.getAxisConfig('processTotalHeight');if(!l.hScrollEnabled)B.remove();else{switch(v){case'y':q.setFullYear(q.getFullYear()+t);break;case'm':q.setMonth(q.getMonth()+t);break;case'd':q.setDate(q.getDate()+t);break;case'h':q.setHours(q.getHours()+t);break;case'mn':q.setMinutes(q.getMinutes()+t);break;default:q.setSeconds(q.getSeconds()+t);}q=q.getTime(),h=m.getPixel(q)-z,l.hScrollEnabled=!0,l.viewPortConfig.scaleX=a=F/h,u.horizontalVxLength=(o-p)/i*t,x&&(b=s.getDateValue(x).ms,d=m.getPixel(b),l.viewPortConfig.x=mathMin(d-z,y*(a-1))/a)}f=r.getAxisConfig('totalWidth'),e=r.getAxisConfig('totalVisiblelWidth'),f>e?l.hProcessScrollEnabled=!0:(l.hProcessScrollEnabled=!1,A.remove()),c=mathMax(l.hProcessScrollEnabled?E:0,l.hScrollEnabled?D:0),g=w-c,Math.floor(G)>g&&l.useverticalscrolling?(l.viewPortConfig.scaleY=G/g,l.vScrollEnabled=!0):(l.vScrollEnabled=!1,C.remove())}_createToolBoxGantt(){var a,b,c,d,e=this,f=e.getChildren('hScrollBar')&&e.getChildren('hScrollBar')[0],g=e.getChildren('vScrollBar')&&e.getChildren('vScrollBar')[0],h=e.getChildren('hProcessScrollBar')&&e.getChildren('hProcessScrollBar')[0],i=e.getChildren(),j=i.yAxis[0],k=e._scrollBar,l=i.chartMenuBar||{},m=i.actionBar,n=k.get,o=k.add;l.drawn||m&&m.drawn||(k.clear(),o({isHorizontal:!0,scale:1,scrollPosition:0},{scroll:function(a,b){return function(){a.updateManagerH(arguments[0],b)}}(e,!0),scrollStart:function(b){a=b,e.fireChartInstanceEvent('scrollstart',{scrollPosition:b})},scrollEnd:function(b){e.fireChartInstanceEvent('scrollend',{scrollPosition:b,prevScrollPosition:a})}}),o({isHorizontal:!1,scale:1,scrollPosition:0},{scroll:function(a,b){return function(){a.updateManagerV(arguments[0],b)}}(e,!1),scrollStart:function(b){a=b,e.fireChartInstanceEvent('scrollstart',{scrollPosition:b})},scrollEnd:function(b){e.fireChartInstanceEvent('scrollend',{scrollPosition:b,prevScrollPosition:a})}}),o({isHorizontal:!0,scale:1,scrollPosition:0},{scroll:function(){return function(){j.manageProcessScroll(arguments[0])}}(e,!0),scrollStart:function(b){a=b,e.fireChartInstanceEvent('scrollstart',{scrollPosition:b})},scrollEnd:function(b){e.fireChartInstanceEvent('scrollend',{scrollPosition:b,prevScrollPosition:a})}}),b=n()[0],d=n()[1],c=n()[2],!f&&(f=e.attachChild(new ScrollBar,'hScrollBar')),f.configure(b.conf),f.attachEventHandlers(b.handler),!g&&(g=e.attachChild(new ScrollBar,'vScrollBar')),g.configure(d.conf),g.attachEventHandlers(d.handler),!h&&(h=e.attachChild(new ScrollBar,'hProcessScrollBar')),h.configure(c.conf),h.attachEventHandlers(c.handler))}_manageScrollbarPosition(){var a,b,c,d=this,e=d.config,f=d.getChildren('hScrollBar')[0],g=d.getChildren('vScrollBar')[0],h=d.getChildren('hProcessScrollBar')[0],i=e.totalWidth||0,j=e.totalHeight||0;d._setAxisScale&&d._setAxisScale(),f=d.getChildren('hScrollBar')[0],g=d.getChildren('vScrollBar')[0],h=d.getChildren('hProcessScrollBar')[0],b=e.vScrollEnabled,a=e.hScrollEnabled,c=f.getLogicalSpace(),e.hScrollHeight=!1===a?0:c.height+g.config.padding,c=g.getLogicalSpace(),e.vScrollWidth=!1===b?0:c.width+g.config.conf.padding,c=h.getLogicalSpace(),e.hProcessScrollHeight=e.hProcessScrollEnabled?c.height+h.config.padding:0,j+=mathMax(e.hProcessScrollHeight,e.hScrollHeight),d._allocateSpace({bottom:mathMax(e.hProcessScrollHeight,e.hScrollHeight)}),e.totalWidth=i,e.totalHeight=j}updateManagerH(a){var b,c=this,d=c.config,e=d.lastXpos||(d.lastXpos={x:0,y:0}),f=c.config.viewPortConfig,g=c.getFromEnv('animationManager'),h=f.scaleX,i=c.getChildren(),j=i.xAxis[0],k=c.getChildContainer(),l=k.plotGroup,m=c.getChildContainer('datalabelsGroup'),n=k.datalabelsGroup,o=k.trackerGroup,p=d.xOffset||0,q=d.yOffset||0,r=d.currentCanvasWidth,s=j.getContainer('ganttPlotLineContainer');p=d.xOffset=r*(h-1)*a,f.x=p/h,j.translateAxis(-p,void 0),e.x=-p,b='t'+-p+', '+-q,g.setAnimation({el:l,attr:{transform:b},component:c}),g.setAnimation({el:n,attr:{transform:b},component:c}),g.setAnimation({el:o,attr:{transform:b},component:c}),g.setAnimation({el:m,attr:{transform:b},component:c}),g.setAnimation({el:s,attr:{transform:'t'+-p+', '+0},component:c})}updateManagerV(a){var b,c=this,d=c.config,e=c.getFromEnv('animationManager'),f=d.lastXpos||(d.lastXpos={x:0,y:0}),g=c.config.viewPortConfig,h=c.getChildren(),i=h.yAxis[0],j=d.yOffset||0,k=d.canvasHeight,l=g.scaleY,m=c.getChildContainer('datalabelsGroup'),n=i.getContainer('labelContainer'),o=c.getChildContainer('plotGroup'),p=i.getContainer('ganttPlotHoverBandContainer'),q=i.getContainer('ganttPlotLineContainer');j=d.yOffset=k*(l-1)*a,g.y=j/l,b=i.config.lastTranslate||(i.config.lastTranslate={x:0,y:0}),e.setAnimation({el:n,attr:{transform:'t'+b.x+', '+-j},component:c}),e.setAnimation({el:p,attr:{transform:'t0, '+-j},component:c}),e.setAnimation({el:o,attr:{transform:'t'+f.x+', '+-j},component:c}),e.setAnimation({el:m,attr:{transform:'t'+f.x+', '+-j},component:c}),e.setAnimation({el:q,attr:{transform:'t0, '+-j},component:c})}}export default Gantt;