Files
controls-web/OLD/controlsdev/charts/fusioncharts/fusioncharts.gantt.js
2026-02-17 09:29:34 -06:00

102 lines
47 KiB
JavaScript

/*
FusionCharts JavaScript Library - Gantt Chart
Copyright FusionCharts Technologies LLP
License Information at <http://www.fusioncharts.com/license>
@version 3.4.0
*/
FusionCharts.register("module",["private","modules.renderer.js-gantt",function(){var da=this,K=da.hcLib,Da=da.window,ta=/msie/i.test(Da.navigator.userAgent)&&!Da.opera,rb=K.chartAPI,Oa=K.chartAPI,db=K.extend2,e=K.pluck,d=K.pluckNumber,pa=K.getFirstColor,Ea=K.graphics,X=Ea.convertColor,eb=Ea.getDarkColor,dc=Ea.parseColor,Fa=K.parseUnsafeString,Ga=K.getFirstValue,Wb=K.getValidValue,ka=K.Raphael,ec=K.COMMASTRING,Pa=K.setLineHeight,Db=K.getDashStyle,Eb=K.toRaphaelColor,Qa=K.each,fc=K.FC_CONFIG_STRING,
Na="rgba(192,192,192,"+(ta?0.002:1E-6)+")",Xb=Ea.mapSymbolName,ta=Math,Ha=ta.ceil,ua=ta.round,V=ta.max,Ca=ta.min,gc=ta.abs,Ra=parseInt,Fb=parseFloat,hc={pageX:0,pageY:0},Y=K.plotEventHandler,ha,na,sb=K.hasTouch=void 0!==Da.document.documentElement.ontouchstart,ic=K.addEvent,jc=K.removeEvent,fb=function(b){return void 0!==b&&null!==b},gb={left:"start",right:"end",center:"middle"},Sa={left:0,right:1,center:0.5,undefined:0.5},tb={top:1,bottom:0,middle:0.5,undefined:0.5},Ta={left:5,right:-5,center:0,
undefined:0},Da=!/fusioncharts\.com$/i.test(Da.location.hostname),Ia=function(b,a){this.min=b.min;this.max=d(b.visibleMax,b.max);this.pixelValueRatio=a/(this.max-this.min);this.startPixel=b.chart.marginLeft+b.chart.ganttStartX};Ia.prototype={getPixel:function(b){return this.startPixel+(b-this.min)*this.pixelValueRatio}};Ia.prototype.constructor=Ia;rb("gantt",{friendlyName:"Gantt Chart",rendererId:"gantt",standaloneInit:!0,defaultSeriesType:"gantt",canvasborderthickness:1,defaultPlotShadow:1,creditLabel:Da,
fireGroupEvent:!0,defaultPaletteOptions:function(){var b=arguments;return K.extend2(K.extend2(K.extend2(K.extend2({},b[0]),b[1]),b[2]),b[3])}(db({},K.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".split(" "),"AFD8F8 F6BD0F 8BBA00 FF8E46 008E8E D64646 8E468E 588526 B3AA00 008ED6 9D080D A186BE CC6600 FDC689 ABA000 F26D7D FFF200 0054A6 F7941C CC3300 006600 663300 6DCFF6".split(" "),
"AFD8F8 F6BD0F 8BBA00 FF8E46 008E8E D64646 8E468E 588526 B3AA00 008ED6 9D080D A186BE CC6600 FDC689 ABA000 F26D7D FFF200 0054A6 F7941C CC3300 006600 663300 6DCFF6".split(" "),"AFD8F8 F6BD0F 8BBA00 FF8E46 008E8E D64646 8E468E 588526 B3AA00 008ED6 9D080D A186BE CC6600 FDC689 ABA000 F26D7D FFF200 0054A6 F7941C CC3300 006600 663300 6DCFF6".split(" "),"AFD8F8 F6BD0F 8BBA00 FF8E46 008E8E D64646 8E468E 588526 B3AA00 008ED6 9D080D A186BE CC6600 FDC689 ABA000 F26D7D FFF200 0054A6 F7941C CC3300 006600 663300 6DCFF6".split(" ")],
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"]}),charttopmargin:10,chartbottommargin:20,series:function(){var b=this.dataObj,a=b.chart,I=(I=b.categories)||[],c=I.length,r=this.hcJSON,g=r.chart,t=r[fc],p=this.smartLabel,f=this.colorManager,h=r.categories={},v=[],C=this.inCanvasStyle,q=this.numberFormatter,
z=Infinity,l=-Infinity,n=g.origW-g.marginLeft-g.marginRight,F=g.origH-g.marginTop-g.marginBottom,m=b.processes||{},k=m&&m.process,x=k&&k.length,u=Ra(C.fontSize,10),O=b.datatable,S=O&&O.datacolumn,D=S&&S.length,ea=b.connectors,L=ea&&ea.length,M=r.connectors=[],N=b.milestones&&b.milestones.milestone,A=N&&N.length,Z=r.milestone=[],E=b.tasks,$=E&&E.task,J=$&&$.length,w=0,s=0,Yb=d(a.forceganttwidthpercent,0),aa=0,Y=0,na=!1,ka={top:"top",bottom:"bottom"},B={top:"top",bottom:"bottom",undefined:"middle"},
Q={right:"right",left:"left"},ba={right:"right",left:"left",undefined:"center"},G=r.dataTable={},hb=Infinity,ib=-Infinity,ha=r.processIDMap=[],da,ta,Da=d(a.dateintooltip,1),Ha=b.legend&&b.legend.item,Ea=r.tasksMap||(r.tasksMap={}),za,Ia,Gb,jb,ub,Oa,Hb,Ib,qa,va,Aa,Qa,gb,Sa,Ta,vb,rb,wa,oa,kb,R,Jb,Ua,Va,Kb,Lb,Ba,la,ma,Wa,Xa,Ya,lb,Za,$a,Ja,Ka,fa,sb,Ob,ga,ja,ca,mb,nb,ab,T,H,Pb,bb,wb,La,xb,Qb,Mb,ob,Rb,yb,zb,Ab,Bb,Cb,Nb,pb,tb,Zb,$b,ac,Ma,U,bc,ra,P,xa,ya,qb,ia,Sb,Tb,Ub,Vb,sa,cb,cc,y,W;if(x){r.tasks=[];delete r.yAxis;
delete r.xAxis;g.backgroundColor=X(e(a.bgcolor,"FFFFFF"),e(a.bgalpha,f.getColor("bgAlpha")));d(a.showborder,0)||(g.borderWidth=0);g.plotBorderColor=X(e(a.canvasbordercolor,f.getColor("canvasBorderColor")),0===d(a.showcanvasborder,1)?0:e(a.canvasborderalpha,100));g.backgroundColor={FCcolor:{color:e(a.bgcolor,"FFFFFF"),alpha:e(a.bgalpha,f.getColor("bgAlpha")),angle:e(a.bgangle,f.getColor("bgAngle")),ratio:e(a.bgratio,f.getColor("bgRatio"))}};g.plotBackgroundColor={FCcolor:{color:e(a.canvasbgcolor,f.getColor("canvasBgColor")),
alpha:e(a.canvasbgalpha,f.getColor("canvasBgAlpha")),angle:e(a.canvasbgangle,f.getColor("canvasBgAngle")),ratio:e(a.canvasbgratio,f.getColor("canvasBgRatio"))}};g.plotBorderWidth=d(a.canvasborderthickness,1);g.outputDateFormat=e(a.outputdateformat,g.dateFormat);g.extendCategoryBg=d(a.extendcategorybg,0);g.ganttLineColor=X(e(a.ganttlinecolor,f.getColor("gridColor")),d(a.ganttlinealpha,100));g.ganttLineThickness=d(a.ganttlinethickness,1);g.ganttLineDashStyle=d(a.ganttlinedashed,0)?Db(d(a.ganttlinedashlen,
1),a.ganttlinedashgap,g.ganttLineThickness):void 0;g.gridBorderColor=X(e(a.gridbordercolor,f.getColor("gridColor")),d(a.gridborderalpha,100));g.gridBorderThickness=d(a.gridborderthickness,1);g.gridBorderDashStyle=d(a.gridborderdashed,0)?Db(d(a.gridborderdashlen,1),a.gridborderdashgap,g.gridborderThickness):void 0;g.showSlackAsFill=d(a.showslackasfill,1);g.slackFillColor=pa(e(a.slackfillcolor,"FF5E5E"));g.gridResizeBarColor=X(e(a.gridresizebarcolor,f.getColor("gridResizeBarColor")),d(a.gridresizebaralpha,
100));g.gridResizeBarThickness=d(a.gridresizebarthickness,1);g.taskBarRoundRadius=d(a.taskbarroundradius,0);g.taskBarFillMix=a.taskbarfillmix;g.taskBarFillRatio=a.taskbarfillratio;void 0===g.taskBarFillMix&&(g.taskBarFillMix="{light-10},{dark-20},{light-50},{light-85}");void 0===g.taskBarFillRatio&&(g.taskBarFillRatio="0,8,84,8");g.connectorExtension=d(a.connectorextension,10);g.clickURL=e(a.clickurl,"");g.annRenderDelay=a.annrenderdelay;g.taskDatePadding=d(a.taskdatepadding,3);g.taskLabelPadding=
d(a.tasklabelspadding,2);g.ganttStartX=d(a.ganttwidthpercent,65);100<g.ganttStartX&&(g.ganttStartX=100);Aa=g.ganttStartX=0.01*(100-g.ganttStartX)*n;g.gridWidth=n-g.ganttStartX;cc=d(a.showfulldatatable,1);ab=m.width;ab=d(g.ganttStartX*(/\%/g.test(ab)&&0.01*Fb(ab,10))||ab);Aa-=d(ab,0);da=ua(ab);Y+=1;for(y=0;y<D;y+=1)Hb=S[y].width,Ib=d(g.ganttStartX*(/\%/g.test(Hb)&&0.01*Fb(Hb,10))||Hb),Aa-=d(Ib,0),Ib=S[y].width=ua(Ib),Y+=1;0<=Aa?Aa/=Y:(na=!0,Aa=g.ganttStartX/Y);if(Yb||!cc)for((isNaN(da)||na)&&(da=Aa),
y=0;y<D;y+=1)(isNaN(S[y].width)||na)&&(S[y].width=Aa);for(y=0;y<c;y+=1){ja=I[y];z=Infinity;l=-Infinity;mb=e(ja.bgcolor,f.getColor("categoryBgColor"));nb=d(ja.bgalpha,100);Wa=e(ja.font,C.fontFamily);Xa=d(ja.fontsize,u+1);Ya=e(ja.fontcolor,C.color);lb=d(ja.isbold,1);Za=d(ja.isitalic,0);$a=d(ja.isunderline,0);d(ja.verticalpadding,3);Ja=e(ja.align,"center").toLowerCase();Ka=e(ja.valign,"middle").toLowerCase();sb=(Ob=ja.category)&&Ob.length;Ma=0;ia={};for(W=0;W<sb;W+=1)ga=Ob[W],la=q.getDateValue(ga.start).ms,
ma=q.getDateValue(ga.end).ms,isNaN(la)&&(la=void 0),la>l&&(l=la),la<=z&&(z=la),isNaN(ma)&&(ma=void 0),ma>l&&(l=ma),ma<=z&&(z=ma),fa=Fa(e(ga.label,ga.name)),U={color:pa(e(ga.fontcolor,Ya)),fontFamily:e(ga.font,Wa),fontSize:d(ga.fontsize,Xa)+"px",fontWeight:d(ga.isbold,lb)&&"bold"||"normal",fontStyle:d(ga.isitalic,Za)&&"italic"||"normal",textDecoration:d(ga.isunderline,$a)&&"underline"||"none"},Pa(U),p.setStyle(U),qa=p.getOriSize(fa),Ma=V(Ma,qa.height),P="FCCAT_"+y+"_"+W,Ia=e(ga.hoverbandcolor,ja.hoverbandcolor,
a.categoryhoverbandcolor,a.hoverbandcolor,f.getColor("gridColor")),Gb=d(ga.hoverbandalpha,ja.hoverbandalpha,a.categoryhoverbandalpha,a.hoverbandalpha,30),jb=d(ga.showhoverband,ja.showhoverband,a.showcategoryhoverband,a.showhoverband,a.showhovereffect,1),h[P]={text:fa,style:U,start:la,end:ma,index:W,isLast:y===c-1,bgColor:X(e(ga.bgcolor,mb),d(ga.bgalpha,nb)),dimension:ia,link:ga.link,align:ba[[e(ga.align,Ja).toLowerCase()]],vAlign:B[ka[e(ga.valign,Ka).toLowerCase()]],hoverColor:X(Ia,Gb),useHover:jb,
usePlotHover:d(ga.showganttpanehoverband,ja.showganttpanehoverband,a.showganttpaneverticalhoverband,jb)},h[xa]&&(h[xa].nextCol=h[P],h[P].prevCol=h[xa]),xa=P;if(wb=h["FCCAT_"+y+"_0"])h[P].first=wb,wb.last=h[P],h[bb]&&(h[bb].nextRow=wb,wb.prevRow=h[bb]);bb=P;ia.h=Ma+5+2*d(ja.verticalpadding,3);ia.y=s;ia.min=z;ia.max=l;ia.numCat=W;s+=ia.h;ib=V(ib,l);hb=Ca(hb,z)}h.min=hb;h.max=ib;if(x){Ma=va=0;cb="right"===e(m.positioningrid,"left").toLowerCase();U={color:pa(e(m.headerfontcolor,C.color)),fontFamily:e(m.headerfont,
C.fontFamily),fontSize:d(m.headerfontsize,u+3)+"px",fontWeight:d(m.headerisbold,1)&&"bold"||"normal",fontStyle:d(m.headerisitalic,0)&&"italic"||"normal",textDecoration:d(m.headerisunderline,0)&&"underline"||"none"};Pa(U);fa=Fa(m.headertext);p.setStyle(U);qa=p.getOriSize(fa);va=V(va,qa.width);Ja=ba[Q[e(m.headeralign,"center").toLowerCase()]];Ka=B[ka[e(m.headervalign,"middle").toLowerCase()]];ia={};P=ya=bb="processHeader";G.processHeader={text:fa,style:U,align:Ja,vAlign:Ka,isHeader:!0,link:e(m.headerlink),
dimension:{x:0,w:0,h:V(qa.height,s)},bgColor:X(e(m.headerbgcolor,f.getColor("dataTableBgColor")),d(m.headerbgalpha,100)),key:P,isLast:cb,drawResizer:!cb&&D,prevCol:null,nextCol:null,prevRow:null,nextRow:null};mb=e(m.bgcolor,f.getColor("dataTableBgColor"));nb=d(m.bgalpha,100);Wa=e(m.font,C.fontFamily);Xa=d(m.fontsize,u);Ya=e(m.fontcolor,C.color);lb=d(m.isbold,0);Za=d(m.isitalic,0);$a=d(m.isunderline,0);Ja=e(m.align,"center").toLowerCase();Ka=e(m.valign,"middle").toLowerCase();for(y=0;y<x;y+=1)ca=k[y],
Ia=e(ca.hoverbandcolor,m.hoverbandcolor,a.processhoverbandcolor,a.hoverbandcolor,f.getColor("gridColor")),Gb=d(ca.hoverbandalpha,m.hoverbandalpha,a.processhoverbandalpha,a.hoverbandalpha,30),jb=d(ca.showhoverband,m.showhoverband,a.showprocesshoverband,a.showhoverband,a.showhovereffect,1),U={color:pa(e(ca.fontcolor,Ya)),fontSize:d(ca.fontsize,Xa)+"px",fontFamily:e(ca.font,Wa),fontWeight:d(ca.isbold,lb)&&"bold"||"normal",fontStyle:d(ca.isitalic,Za)&&"italic"||"normal",textDecoration:d(ca.isunderline,
$a)&&"underline"||"none"},Pa(U),fa=Fa(e(ca.label,ca.name)),p.setStyle(U),qa=p.getOriSize(fa),Ma=V(Ma,qa.height),va=V(va,qa.width),xa=P,P=e(ca.id,"__FCDPID__"+y).toUpperCase(),G[P]&&(P="__FCDPID__"+y),ha[y]=P,G[P]={text:qa.text,style:U,link:ca.link,id:P,align:ba[[e(ca.align,Ja).toLowerCase()]],vAlign:B[ka[e(ca.valign,Ka).toLowerCase()]],bgColor:X(e(ca.bgcolor,mb),d(ca.bgalpha,nb)),prevCol:G[xa],dimension:ia,hoverColor:X(Ia,Gb),useHover:jb,usePlotHover:d(ca.showganttpanehoverband,m.showganttpanehoverband,
a.showganttpanehorizontalhoverband,jb),isLast:cb,nextCol:null,prevRow:null,nextRow:null},G[xa]&&(G[xa].nextCol=G[P]);G[P].first=G[ya];G[ya].last=G[P];G[ya].processCount=x;G[ya].maxProcessHeight=Ma+8;ta=Ma+8;isNaN(da)&&(da=va+10);aa+=da;ia.x=0;G[ya].dimension.w=ia.w=da;ia.h=ta=V((F-G[ya].dimension.h)/x,ta)}cb&&(aa=0);if(D)for(r.datacolumns=[],y=0;y<D;y+=1){T=S[y];va=0;mb=pa(e(T.bgcolor,O.bgcolor,f.getColor("dataTableBgColor")));nb=d(T.bgalpha,O.bgalpha,100);Wa=e(T.font,O.font,C.fontFamily);Ya=pa(e(T.fontcolor,
O.fontcolor,C.color));Xa=d(T.fontsize,O.fontsize,u);lb=d(T.isbold,O.isbold,0);Za=d(T.isitalic,O.isitalic,0);$a=d(T.isunderline,O.isunderline,0);Ja=ba[Q[e(T.align,O.align,"center").toLowerCase()]];Ka=B[ka[e(T.valign,O.valign,"middle").toLowerCase()]];U={color:pa(e(T.headerfontcolor,O.headerfontcolor,Ya)),fontFamily:e(T.headerfont,O.headerfont,Wa),fontSize:d(T.headerfontsize,O.headerfontsize,Xa+3)+"px",fontWeight:d(T.headerisbold,O.headerisbold,1)&&"bold"||"normal",fontStyle:d(T.headerisitalic,O.headerisitalic,
Za)&&"italic"||"normal",textDecoration:d(T.headerisunderline,O.headerisunderline,$a)&&"underline"||"none"};Pa(U);fa=Fa(T.headertext);p.setStyle(U);qa=p.getOriSize(fa);va=V(va,qa.width);P=ya="_FCDtHeader_"+y;kb=G[P]={text:fa,style:U,align:ba[Q[e(T.headeralign,O.headeralign,Ja).toLowerCase()]],vAlign:B[ka[e(T.headervalign,O.headervalign,Ka).toLowerCase()]],link:e(T.headerlink),drawResizer:cb||y<D-1,dimension:{x:0+aa,w:T.width,h:G.processHeader&&G.processHeader.dimension.h},isHeader:!0,key:P,bgColor:X(e(T.headerbgcolor,
O.headerbgcolor,f.getColor("dataTableBgColor")),d(T.headerbgalpha,O.headerbgalpha,100))};kb.data=[];bc=T.text||[];qb=G.processHeader;La=G[bb];La.nextRow=G[P];G[P].prevRow=La;qb=qb.nextCol;La=La.nextCol;ia={};bb=ya;for(W=0;qb;qb=qb.nextCol,La=La.nextCol,W+=1)xa=P,P="_FCDt_"+y+"_"+W,(ra=bc[W])?(U={fontFamily:e(ra.font,Wa),color:pa(e(ra.fontcolor,Ya)),fontSize:d(ra.fontsize,Xa)+"px",fontWeight:d(ra.isbold,lb)&&"bold"||"normal",fontStyle:d(ra.isitalic,Za)&&"italic"||"normal",textDecoration:d(ra.isunderline,
$a)&&"underline"||"none"},Pa(U),p.setStyle(U),fa=Fa(ra.label),qa=p.getOriSize(fa),va=V(va,qa.width),G[P]={text:fa,style:U,link:e(ra.link,""),bgColor:X(e(ra.bgcolor,mb),d(ra.bgalpha,nb)),align:ba[Q[e(ra.align,Ja).toLowerCase()]],vAlign:B[ka[e(ra.valign,Ka).toLowerCase()]],prevCol:G[xa],dimension:ia,nextCol:null,nextRow:null,prevRow:null}):G[P]={prevCol:G[xa],dimension:ia,isNaN:!0,nextCol:null,nextRow:null,prevRow:null},G[xa].nextCol=G[P],G[P].prevRow=La,La.nextRow=G[P],G[P].hoverColor=G[ha[W]].hoverColor,
G[P].useHover=G[ha[W]].useHover,G[P].usePlotHover=G[ha[W]].usePlotHover;G[P].first=G[ya];G[ya].last=G[P];isNaN(T.width)?kb.width=va+10:kb.width=T.width;ia.x=0+aa;aa+=G[ya].dimension.w=ia.w=kb.width;ia.h=ta;r.datacolumns.push(kb)}cb&&(ca=G.processHeader,ca.dimension.x=ca.nextCol.dimension.x=aa,aa+=da);Yb||(g.ganttStartX=Ca(g.ganttStartX,aa));g.totalGridWidth=aa;Tb=b.trendlines||{};r.trendlines=[];for(y=0;y<Tb.length;y+=1)for(A=(Ub=Tb[y].line)&&Ub.length,W=0;W<A;W+=1)sa=Ub[W],Vb=d(sa.istrendzone,0),
Ba=e(sa.color,f.getColor("legendBorderColor")),U=db({},t.trendStyle),U.color=X(Ba),Pa(U),r.trendlines.push({start:q.getDateValue(sa.start).ms,end:q.getDateValue(sa.end).ms,displayValue:Fa(e(sa.displayvalue,sa.start)),color:X(Ba,d(sa.alpha,Vb?40:99)),style:U,isTrendZone:Vb,dashedStyle:d(sa.dashed,0)?Db(d(sa.dashlen,3),d(sa.dashgap,3),d(sa.thickness,1)):void 0,thickness:d(sa.thickness,1)});if(J){z=Infinity;l=-Infinity;d(a.taskbarroundradius,0);Va=a.taskbarfillmix;Kb=a.taskbarfillratio;void 0===Va&&
(Va="{light-10},{dark-20},{light-50},{light-85}");void 0===Kb&&(Kb="0,8,84,8");g.shadow=d(a.showshadow,1);Oa=d(a.showslackasfill,1);for(y=0;y<J;y+=1)H=$[y],Pb=w%x,la=q.getDateValue(H.start).ms,ma=q.getDateValue(H.end).ms,P=e(G[Ga(H.processid,"").toUpperCase()],G["__FCDPID__"+Pb],G[ha[Pb]]).id.toUpperCase(),xb=d(H.alpha,E.alpha,100),Ba=e(H.color,E.color,f.getColor("plotFillColor")),Mb=d(H.borderalpha,E.borderalpha,100),Qb=e(H.bordercolor,E.bordercolor,f.getColor("plotBorderColor")),isNaN(la)&&(la=
void 0),la>l&&(l=la),la<=z&&(z=la),isNaN(ma)&&(ma=void 0),ma>l&&(l=ma),ma<=z&&(z=ma),U={color:pa(e(H.fontcolor,E.fontcolor,C.color)),fontSize:d(H.fontsize,E.fontsize,u)+"px",fontFamily:e(H.font,E.font,C.fontFamily)},Pa(U),w+=1,ob=f.parseColorMix(Ba,Va),Rb=f.parseAlphaList(xb.toString(),ob.length),yb=f.parseRatioList(Kb,ob.length),zb=d(H.angle,E.angle,270),Nb=f.parseColorMix(e(H.slackfillcolor,E.slackfillcolor,a.slackfillcolor,"FF5E5E"),Va),pb=Ca(d(H.percentcomplete,-1),100),fa=Ga(e(H.label,H.name),
""),Cb="",d(H.showlabel,H.showname,E.showlabels,E.showname,a.showtasklabels,a.showtasknames,0)&&(Cb=fa),d(H.showpercentlabel,E.showpercentlabel,a.showpercentlabel,0)&&-1!==pb&&(Cb+=" "+pb+"%"),tb={FCcolor:{color:ob.join(),alpha:Rb,ratio:yb,angle:zb}},Nb=Oa?{FCcolor:{color:Nb.join(),alpha:Rb,ratio:yb,angle:zb}}:Na,Zb={FCcolor:{color:f.parseColorMix(e(H.hoverfillcolor,E.hoverfillcolor,a.taskhoverfillcolor,eb(Ba,80)),Va).join(),alpha:f.parseAlphaList(e(H.hoverfillalpha,E.hoverfillalpha,a.taskhoverfillalpha,
xb).toString(),ob.length),ratio:yb,angle:zb}},$b=X(e(H.hoverbordercolor,E.hoverbordercolor,a.taskhoverbordercolor,eb(Qb,80)),e(H.hoverborderalpha,E.hoverborderalpha,a.taskhoverborderalpha,Mb)),ac=Oa?{FCcolor:{color:f.parseColorMix(eb(e(H.slackhoverfillcolor,E.slackhoverfillcolor,a.slackhoverfillcolor,a.slackfillcolor,"FF5E5E"),80),Va).join(),alpha:f.parseAlphaList(e(H.slackhoverfillalpha,E.slackhoverfillalpha,a.slackhoverfillalpha,xb).toString(),ob.length),ratio:yb,angle:zb}}:Na,Ab=q.getFormattedDate(la),
Bb=q.getFormattedDate(ma),za=Wb(Fa(e(H.tooltext,H.hovertext,E.plottooltext,t.tooltext))),za=void 0!==za?K.parseTooltext(za,[3,28,29,30,31],{end:Bb,start:Ab,label:fa,percentComplete:-1!==pb?q.percentValue(pb):"",processName:G[P]&&G[P].text},H):(""!==fa?fa+(Da?", ":""):"")+(Da?Ab+" - "+Bb:""),Ua=Ga(H.id,"").toUpperCase(),Ea[Ga(Ua,y)]={dataObj:{processId:P,label:Cb,labelAlign:ba[[e(H.labelalign,a.tasklabelsalign,"center").toLowerCase()]],link:H.link,start:la,end:ma,id:Ga(H.id,"").toUpperCase(),showAsGroup:d(H.showasgroup,
0),animation:d(H.animation,a.animation,a.defaultanimation,1),style:U,percentComplete:pb,color:Eb(tb),slackColor:Eb(Nb),hoverFillColor:Eb(Zb),hoverBorderColor:$b,slackHoverColor:Eb(ac),showHoverEffect:d(H.showhovereffect,E.showhovereffect,a.showtaskhovereffect,a.showhovereffect,1),shadow:{opacity:V(xb,Mb)/100,inverted:!0},borderColor:X(Qb,Mb),borderThickness:d(H.showborder,E.showborder,1)?d(H.borderthickness,E.borderthickness,1):0,height:e(H.height,"35%"),topPadding:e(H.toppadding,"35%"),showPercentLabel:d(H.showpercentlabel,
E.showpercentlabel,a.showpercentlabel,0),startDate:d(H.showstartdate,E.showstartdate,a.showtaskstartdate)?Ab:void 0,endDate:d(H.showenddate,E.showenddate,a.showtaskenddate)?Bb:void 0,toolText:za,_start:H.start,_end:H.end,_formatSDate:Ab,_formatEDate:Bb,_label:fa}},v.push(Ea[Ga(Ua,y)].dataObj);ib=V(ib,l);hb=Ca(hb,z)}r.series.push({showInLegend:!1,data:v});A=N&&N.length;for(y=0;y<A;y+=1)R=N[y],Ua=Ga(R.taskid,"").toUpperCase(),Lb=e(R.shape,"polygon").toLowerCase(),Jb=d(R.numsides,5),Sb=0,"star"===Lb?
Sb=0.4:(Lb=Xb(Jb),Lb=Xb(Jb).split("-")[0]),Ba=e(R.color,f.getColor("legendBorderColor")),za=Wb(Fa(e(R.tooltext,R.hovertext,a.milestonetooltext))),void 0!==za&&Ea[Ua]?(H=Ea[Ua].dataObj,za=K.parseTooltext(za,[28,32,33,34,35,36],{date:q.getFormattedDate(R.date),taskStartDate:H._formatSDate,taskEndDate:H._formatEDate,taskLabel:H._label,taskPercentComplete:-1!==H.percentComplete?q.percentValue(H.percentComplete):"",processName:G[H.processId]&&G[H.processId].text},R)):za=q.getFormattedDate(R.date),Z.push({numSides:Jb,
startAngle:d(R.startangle,90),radius:R.radius,origDate:R.date,date:q.getDateValue(R.date),fillColor:pa(Ba),fillAlpha:0.01*d(R.fillalpha,R.alpha,100),borderColor:pa(e(R.bordercolor,Ba)),borderAlpha:0.01*d(R.borderalpha,R.alpha,100),hoverFillColor:pa(e(R.hoverfillcolor,a.milestonehoverfillcolor,eb(Ba,80))),hoverFillAlpha:0.01*d(R.hoverfillalpha,a.milestonehoverfillalpha,R.fillalpha,R.alpha,100),hoverBorderColor:pa(e(R.hoverbordercolor,a.milestonehoverbordercolor,eb(e(R.bordercolor,Ba),80))),hoverBorderAlpha:0.01*
d(R.hoverborderalpha,a.milestonehoverborderalpha,R.borderalpha,R.alpha,100),showHoverEffect:d(R.showhovereffect,a.showmilestonehovereffect,a.showhovereffect,1),depth:Sb,taskId:Ua,borderThickness:d(R.borderthickness,1),link:R.link,toolText:za});for(y=0;y<L;y+=1)if(gb=(Qa=(wa=ea[y])&&wa.connector)&&Qa.length)for(W=0;W<gb;W+=1)oa=Qa[W],Sa=e(oa.color,wa.color,f.getColor("plotBorderColor")),Ta=d(oa.alpha,wa.alpha,100),vb=d(oa.thickness,wa.thickness,1),rb=d(oa.isdashed,wa.isdashed,1),M.push({fromTaskId:Ga(oa.fromtaskid,
"").toUpperCase(),toTaskId:Ga(oa.totaskid,"").toUpperCase(),fromTaskConnectStart:d(oa.fromtaskconnectstart,0),toTaskConnectStart:d(oa.totaskconnectstart,1),color:X(Sa),alpha:0.01*Ta,link:oa.link,showHoverEffect:d(oa.showhovereffect,wa.showhovereffect,a.showconnectorhovereffect,a.showhovereffect,1),hoverColor:X(e(oa.hovercolor,wa.hovercolor,a.connectorhovercolor,eb(Sa,80)),d(oa.hoveralpha,wa.hoveralpha,a.connectorhoveralpha,Ta)),hoverThickness:d(oa.hoverthickness,wa.hoverthickness,a.connectorhoverthickness,
vb),thickness:vb,dashedStyle:rb?Db(d(oa.dashlen,wa.dashlen,5),d(oa.dashgap,wa.dashgap,vb),vb):void 0});r.legend.enabled=Boolean(d(a.showlegend,1));r.legend.interactiveLegend=!1;r.legend.itemStyle.cursor="default";r.legend.itemHoverStyle={cursor:"inherit"};A=Ha&&Ha.length;for(y=0;y<A;y+=1)ub=Ha[y],fb(ub.label)&&""!==ub.label&&r.series.push({name:Fa(ub.label),showInLegend:!0,type:!1,color:dc(e(ub.color,f.getPlotColor()))});r.max=ib;r.min=hb;r.chart.hasScroll=!0;return r}},spaceManager:function(b,a,
I,c){this.titleSpaceManager(b,a,I,0.3*c);var r=this.numberFormatter,g=b.chart,t=a.chart,p=b.dataTable,f=b.categories,h=b.scrollOptions={},v=p.__scrollOptions={},p=p.processHeader;c=c-g.marginTop-g.marginBottom;I=I-g.marginLeft-g.marginRight;var C=g.totalGridWidth,q=b.verticalScroll={enabled:d(t.useverticalscrolling,1)},z=d(t.ganttpaneduration,-1),l=e(t.ganttpanedurationunit,"s").toLowerCase(),r=r.getDateValue(t.scrolltodate).ms,n=p&&p.maxProcessHeight;if(p){b.legend.enabled&&(c-=this.placeLegendBlockBottom(b,
a,I,c/2));c-=p.dimension.h;h.padding=d(t.scrollpadding,b.chart.plotBorderWidth/2);h.height=d(t.scrollheight,16);h.showButtons=!!d(t.scrollshowbuttons,1);h.buttonPadding=d(t.scrollbtnpadding,0);h.flatScrollBars=d(t.flatscrollbars,0);h.color=pa(e(t.scrollcolor,this.colorManager.getColor("altHGridColor")));a=h.height+h.padding;C>g.ganttStartX&&(v.enabled=!0,v.startPercent=Boolean(d(t.scrolltoend,0)));I-=g.ganttStartX;f.scroll={};h=new Date(f&&f.min);if(-1!==z){switch(l){case "y":h.setYear(h.getFullYear()+
z);break;case "m":h.setMonth(h.getMonth()+z);break;case "d":h.setDate(h.getDate()+z);break;case "h":h.setHours(h.getHours()+z);break;case "mn":h.setMinutes(h.getMinutes()+z);break;default:h.setSeconds(h.getSeconds()+z)}h=h.getTime();h>b.min&&h<b.max&&(b.visibleMax=h,f.scroll.enabled=!0)}if(v.enabled||f.scroll.enabled)c-=a;v=c/p.processCount;n=d(t.rowheight,n);0<n-v&&(n=3>n-v?v:c/ua(c/n));p.maxProcessHeight=n;q.enabled&&v<n?(v=n,q.startPercent=Boolean(d(t.scrolltoend,0)),I-=a):q.enabled=!1;f.scroll.startPercent=
d(t.scrolltoend,0);if(Infinity===b.min||-Infinity===b.max||b.min===b.max)b.min=f.min=0,b.max=f.max=1;if(Infinity===f.min||-Infinity===f.max)f.min=b.min,f.max=b.max;f.axis=new Ia(b,I);f.startX=f.axis.getPixel(Ca(f.min,b.min));f.endX=f.axis.getPixel(V(f.max,b.max));f.visibleW=I;r&&r>f.min&&r<f.max&&(f.scroll.startPercent=Ca((f.axis.getPixel(r)-f.startX)/(f.endX-f.startX-f.visibleW),1));for(g.processHeight=c+p.dimension.h;p;)p.nextCol&&(p.nextCol.dimension.h=v),p=p.nextRow}}},rb.gaugebase);Oa("renderer.gantt",
{drawProcess:function(b){var a=this,d=a.options,c=d.chart,r=a.paper,g=a.logic,t=g.smartLabel,p=a.canvasTop,f=a.canvasLeft,h=a.layers,v=h.gridLayer,C=h.gridHeaderLayer,q=c.gridBorderThickness,z=0.5*q,l=c.gridBorderColor,n=c.gridBorderDashStyle,F=0,m=0,k=[],x=p,u=b.dimension.w||16,O=b.dimension.x||0,S=d.dataTable.processHeader,D=S.nextCol.dimension.h,ea=S.dimension.h+S.processCount*S.nextCol.dimension.h,g=X(e(g.dataObj.chart.rolloverbandcolor,"#FF0000"),e(g.dataObj.chart.rolloverbandalpha,30)),L=S.items||
(S.items={}),d=d.categories||{},M,N,A,Z,E,$,J,w,s,K,aa;L.hoverEle||(L.hoverEle=r.rect(d.startX,0,d.endX,D,0,h.dataset).attr({fill:g,visibility:"hidden","stroke-width":0}));s=function(b){Y.call(this,a,b,"ProcessClick")};K=function(b){ha=clearTimeout(ha);na&&a.gridOutHandler.call(na);na=null;a.gridHoverHandler.call(this);Y.call(this,a,b,"ProcessRollOver")};for(aa=function(b){na=this;ha=clearTimeout(ha);ha=setTimeout(function(){a.gridOutHandler.call(na)},500);Y.call(na,a,b,"ProcessRollOut")};b;)w=b.dimension,
J=f+O,A=b.text,A=b.align,L=b.items||(b.items={}),D=b.link,N=b.isHeader?C:v,Z=L.background,d=Ha(x+m)-0.5,A={x:Ha(J+F)-0.5,y:d,width:u+0.5,height:w.h+z+0.5,radius:0,fill:b.bgColor||Na,"stroke-dasharray":n,stroke:l,cursor:D?"pointer":"","stroke-width":0},Z?Z.attr(A):(L.background=r.rect(N).attr(A).hover(K,aa),M={isHeader:b.isHeader,label:b.text,vAlign:b.vAlign,align:b.align,link:b.link,id:b.id},L.background.click(s).data("dataObj",b).data("eventArgs",M).data("data",{y:d,gridObj:b,rollOverColor:g,useHover:!0,
useNext:!0,hoverEle:S.items.hoverEle})),b.isNaN||(w=b.dimension,A=b.text,A=b.align,Z=L.label,A=b.text,fb(A)&&""!==A&&($=b.style,t.setStyle($),E=t.getSmartText(A,u-8,V(Ra($.lineHeight,10),w.h)),$.title=E.oriText,A=b.align,A={text:E.text,x:J+u*Sa[A]+Ta[A],y:x+w.h-w.h*tb[b.vAlign],"text-anchor":gb[A],cursor:D?"pointer":"","vertical-align":b.vAlign},Z?Z.attr(A):L.label=r.text(N).attr(A).css($).hover(K,aa).click(s).data("eventArgs",M).data("dataObj",b).data("data",{y:d,gridObj:b,rollOverColor:g,useHover:!0,
useNext:!0,hoverEle:S.items.hoverEle}))),b.xPos=J,b.yPos=Ha(x+w.h)-q%2*0.5,k.push("M",J,b.yPos,"h",u),(Z=L.hBorder)?Z.attr("path",k):L.hBorder=r.path(k,N).attr({"stroke-dasharray":n,stroke:l,"stroke-width":q}),x+=w.h,b.nextCol||(F=z,m-=0,Z=b.first.items.vBorder,A=["M",Ha(J+u)-q%2*0.5,p,"v",ea],Z?Z.attr("path",A):b.first.items.vBorder=r.path(A,C).attr({"stroke-dasharray":n,stroke:l,"stroke-width":q}),b.nextRow&&!b.isLast&&(b.first.items.dragEle||(b.first.items.dragEle=r.path(A,h.gridTracker).attr({stroke:c.gridResizeBarColor,
"stroke-width":c.gridResizeBarThickness,visibility:"hidden"})),b.first.items.tracker||(b.first.items.tracker=r.path(A,h.gridTracker).attr({stroke:Na,ishot:!0,"stroke-width":30}).css("cursor",ka.svg&&"ew-resize"||"e-resize").drag(this.dragMove,this.dragStart,this.dragUp).data("drag-options",{grid:b.first,xPos:Ha(J+u)-q%2*0.5,chart:a})))),b=b.nextCol},dragStart:function(){var b=this.data("drag-options"),a=b.grid,I=a.items,c=a.nextRow,e={style:{lineHeight:16}},g=a.nextCol.style||e,t=c&&c.nextCol&&c.nextCol.style||
e,p=b.chart,f=p.canvasLeft,h=a.dimension,g=V(Ra(a.style.lineHeight,10),Ra(g.lineHeight,10))+2,e=V(Ra((c||e).style.lineHeight,10),Ra(t.lineHeight,10))+2;b.leftSideLimit=f+d(a.dimension.x,0)+g;b.rightSideLimit=f+d(c&&c.dimension.x+c.dimension.w,h.x+h.w)-e;b.origX=b.lastX||(b.lastX=0);I.dragEle.show();p.trackerClicked=!0;b.draged=!1},dragMove:function(b){var a=this.data("drag-options"),d=a.grid.items,c=a.xPos+b,e=a.leftSideLimit,g=a.rightSideLimit;c<e&&(b=e-a.xPos);c>g&&(b=g-a.xPos);c={transform:"t"+
(a.origX+b)+ec+0};this.attr(c);d.dragEle.attr(c);a.draged=!0;a.lastX=b},dragUp:function(){var b=this.data("drag-options"),a=b.chart,d=b.grid,c=d.nextRow,e=a.canvasLeft,g=d.dimension,t=c&&c.dimension,p=d.items,f={hcJSON:{dataTable:{}}};a.trackerClicked=!1;p.dragEle.hide();b.draged&&(g.w=b.xPos+b.lastX-e-g.x,d.nextCol&&(d.nextCol.dimension.w=g.w),f.hcJSON.dataTable[d.key]={dimension:g},c&&(t.w+=t.x-g.x-g.w,t.x=g.x+g.w,c.dimension.w=t.w,c.dimension.x=t.x,a.drawProcess(c),f.hcJSON.dataTable[c.key]={dimension:t}),
a.drawProcess(d),db(a.logic.chartInstance.jsVars._reflowData,f,!0),b.xPos+=b.lastX,b.lastX+=b.origX)},drawCategories:function(){var b=this,a=b.options,e=a.chart,c=b.paper,r=b.layers,g=b.logic.smartLabel,t=b.canvasTop,p=a.categories,f=a.dataTable.processHeader,h=p.FCCAT_0_0,v=p.axis,C=p.endX,q=p.startX,z=C-q,l=e.ganttLineThickness,n=f.totalPH+f.dimension.h,F=[],m=[],k=r.dataset,r=r.ganttHeaderLayer,x,u,O,S,D,K,L,M,N,A,Z,E,$,J,w;$=function(a){Y.call(this,b,a,"CategoryClick")};J=function(a){ha=clearTimeout(ha);
na&&b.gridOutHandler.call(na);na=null;b.gridHoverHandler.call(this);Y.call(this,b,a,"CategoryRollOver")};w=function(a){na=this;ha=clearTimeout(ha);ha=setTimeout(function(){b.gridOutHandler.call(na)},500);Y.call(na,b,a,"CategoryRollOut")};S=p.items||(p.items={});f=a.dataTable.processHeader;for(S.hoverEle=c.rect(0,t+f.dimension.h,50,n,0,k).attr({fill:Na,visibility:"hidden","stroke-width":0});h;)u=z/h.dimension.numCat,D=q+u*(h.index+1),N=D-u,M=h.dimension.h,A=N,E=t+h.dimension.y,K=h.align,L=h.vAlign,
O=h.link,S=h.items||(h.items={}),u=!(!h.nextRow&&h.nextCol),Z=a.verticalScroll.enabled&&u?a.scrollOptions.height:0,x={align:h.align,vAlign:h.vAlign,link:h.link,text:h.text},N=A=d(v.getPixel(h.start),N),D=d(v.getPixel(!u&&h.nextCol.start||(u?V(h.end||0,a.max):void 0)),D),u=D-N,A=ua(A)+0.5,E=ua(E)+0.5,h.isLast&&(F.push("M",A,E,"v",n),E-=0.5*l,M-=l,e.extendCategoryBg&&c.rect(A,E,u,n,0,k).attr({fill:h.bgColor,"stroke-width":0,stroke:e.ganttLineColor}).toBack()),S.background=c.rect(A,E,u+Z,M,0,r).attr({fill:h.bgColor,
"stroke-width":0,cursor:O?"pointer":"",stroke:e.ganttLineColor}).click($).data("eventArgs",x).data("dataObj",h).hover(J,w).data("data",{x:A,width:u,gridObj:h,hoverEle:p.items.hoverEle}),m.push("M",A,E,"v",M),h.nextRow&&m.push("M",q,E+M,"H",C+Z),g.setStyle(h.style),D=g.getSmartText(h.text,u-5,M),h.style.title=D.oriText,S.label=c.text(r).attr({text:D.text,x:A+u*Sa[K]+Ta[K],y:E+M-M*tb[L],"text-anchor":gb[K],cursor:O?"pointer":"","vertical-align":L}).css(h.style).hover(J,w).click($).data("eventArgs",
x).data("dataObj",h).data("data",{x:A,width:u,gridObj:h,hoverEle:p.items.hoverEle}),h=h.nextCol;for(;f;)F.push("M",p.startX,f.yPos,"H",C),f=f.nextCol;S=p.items||(p.items={});S.headerGrid=c.path(m,r).attr({"stroke-dasharray":e.ganttLineDashStyle,"stroke-width":l,stroke:e.ganttLineColor});S.processGrid=c.path(F,k).attr({"stroke-dasharray":e.ganttLineDashStyle,"stroke-width":e.ganttLineThickness,stroke:e.ganttLineColor})},drawScroller:function(){var b=this,a=b.options,e=b.paper,c=b.layers,r=b.canvasTop,
g=b.canvasHeight,t=a.scrollOptions,p=a.categories,f=p.startX,h=p.endX-f,v=t.flatScrollBars,C={hcJSON:{categories:{scroll:{}}}},q=c.dataset,z=c.datalabels,l=c.ganttTracker,n=c.ganttHeaderLayer,F=b.logic.chartInstance&&b.logic.chartInstance.jsVars._reflowData||{},m=a.chart,k=c.gridLayer,x=(f=a.dataTable)&&f.processHeader,u=b.canvasLeft,O=b.canvasWidth,K=m.gridBorderThickness,D=m.totalGridWidth,ea=Ca(m.ganttStartX,D)+K,L=p.scroll,M=f&&f.__scrollOptions,N=a.verticalScroll,A={hcJSON:{dataTable:{__scrollOptions:{}},
verticalScroll:{}}},Z=A.hcJSON.dataTable.__scrollOptions,E=x.totalPH=x.processCount*x.nextCol.dimension.h,$=c.gridHeaderLayer,J=c.gridTracker,w,s,f=d(p.startX,m.ganttStartX),c=c.scroll=c.scroll||e.group("scroll").insertAfter(l);L.enabled&&(a=p.visibleW/h,L.scroller=e.scroller(f,r+g-t.height,p.visibleW,t.height,!0,{showButtons:t.showButtons,displayStyleFlat:v,buttonWidth:t.buttonWidth,scrollRatio:a,scrollPosition:L.startPercent},c).attr({"scroll-display-style":v,fill:t.color}).scroll(function(a){s=
-ua(a*(h-p.visibleW));q&&q.transform(["T",s,q.data("vOffset")]);z&&z.transform(["T",s,z.data("vOffset")]);l&&l.transform(["T",s,l.data("vOffset")]);n&&n.transform(["T",s,0]);q&&q.data("hOffset",s);z&&z.data("hOffset",s);l&&l.data("hOffset",s);C.hcJSON.categories.scroll.startPercent=a;db(F,C,!0)}),function(){var a;ka.eve.on("raphael.scroll.start."+L.scroller.id,function(c){a=c;da.raiseEvent("scrollstart",{scrollPosition:c},b.logic.chartInstance)});ka.eve.on("raphael.scroll.end."+L.scroller.id,function(c){da.raiseEvent("scrollend",
{prevScrollPosition:a,scrollPosition:c},b.logic.chartInstance)})}(),L.startPercent&&(s=-ua(L.startPercent*(h-p.visibleW)),q&&q.data("hOffset",s),z&&z.data("hOffset",s),l&&l.data("hOffset",s),n&&n.transform(["T",s,0]),q&&q.transform(["T",s,q.data("vOffset")]),z&&z.transform(["T",s,q.data("vOffset")]),l&&l.transform(["T",s,q.data("vOffset")])));M.enabled&&(M.scroller=e.scroller(u,r+g-t.height,ea,t.height,!0,{showButtons:t.showButtons,displayStyleFlat:v,buttonWidth:t.buttonWidth,scrollRatio:ea/D,scrollPosition:M.startPercent},
c).attr({"scroll-display-style":v,fill:t.color}).scroll(function(a){s=-ua(a*(D-ea));k&&k.transform(["T",s,k.data("vOffset")]);$&&$.transform(["T",s,0]);J&&J.transform(["T",s,J.data("vOffset")]);k.data("hOffset",s);$.data("hOffset",s);J.data("hOffset",s);Z.startPercent=a;db(F,A,!0)}),function(){var a;ka.eve.on("raphael.scroll.start."+M.scroller.id,function(c){a=c;da.raiseEvent("scrollstart",{scrollPosition:c},b.logic.chartInstance)});ka.eve.on("raphael.scroll.end."+M.scroller.id,function(c){da.raiseEvent("scrollend",
{prevScrollPosition:a,scrollPosition:c},b.logic.chartInstance)})}(),M.startPercent&&(s=-ua(M.startPercent*(D-ea)),k&&k.transform(["T",s,0]),J&&J.transform(["T",s,0]),$&&$.transform(["T",s,0]),k.data("hOffset",s),J.data("hOffset",s)));N.enabled&&(w=m.processHeight-x.dimension.h,N.scroller=e.scroller(u+O-t.height,r+x.dimension.h,t.height,m.processHeight-x.dimension.h,!1,{showButtons:t.showButtons,displayStyleFlat:v,buttonWidth:t.buttonWidth,scrollRatio:w/E,scrollPosition:N.startPercent},c).attr({"scroll-display-style":v,
fill:t.color}).scroll(function(a){s=-ua(a*(E-w));k&&k.transform(["T",k.data("hOffset"),s]);q&&q.transform(["T",q.data("hOffset"),s]);z&&z.transform(["T",z.data("hOffset"),s]);l&&l.transform(["T",l.data("hOffset"),s]);J&&J.transform(["T",J.data("hOffset"),s]);k.data("vOffset",s);J.data("vOffset",s);q.data("vOffset",s);l.data("vOffset",s);z.data("vOffset",s);A.hcJSON.verticalScroll.startPercent=a;db(F,A,!0)}),function(){var a;ka.eve.on("raphael.scroll.start."+N.scroller.id,function(c){a=c;da.raiseEvent("scrollstart",
{scrollPosition:c},b.logic.chartInstance)});ka.eve.on("raphael.scroll.end."+N.scroller.id,function(c){da.raiseEvent("scrollend",{prevScrollPosition:a,scrollPosition:c},b.logic.chartInstance)})}(),N.startPercent&&(s=-ua(N.startPercent*(E-w)),k&&k.transform(["T",k.data("hOffset"),s]),q&&q.transform(["T",q.data("hOffset"),s]),z&&z.transform(["T",z.data("hOffset"),s]),l&&l.transform(["T",l.data("hOffset"),s]),J&&J.transform(["T",J.data("hOffset"),s]),k.data("vOffset",s),J.data("vOffset",s),q.data("vOffset",
s),z.data("vOffset",s),l.data("vOffset",s)))},finalizeScrollPlots:function(){var b=this,a=b.options,d=b.canvasTop,c=a.categories,e=c.endX,g=c.startX,t=c.scroll,p=a.chart,f=a.dataTable,h=f&&f.processHeader,v=b.canvasLeft,C=p.gridBorderThickness,q=p.totalGridWidth,z=Ca(p.ganttStartX,q)+C,l,n,F,m,k,x=e-g-c.visibleW,e=b.container,u=f&&f.__scrollOptions,O=a.verticalScroll,S=h.totalPH,D=p.processHeight-h.dimension.h,ea,L,M,N,A,t=c.scroll,a=function(a){var e=b.elements.canvas,f=N.left,p=N.top,r=a.type,s=
sb&&K.getTouchEvent(a)||hc,f=a.layerX||s.layerX||(a.pageX||s.pageX)-f;a=a.layerY||s.layerY||(a.pageY||s.pageY)-p;switch(r){case "dragstart":A=e.isPointInside(f,a);ea=f>g&&f<g+c.visibleW;M=f>v&&f<g+c.visibleW&&a>d+h.dimension.h;L=f<g;l=A&&f||null;n=A&&a||null;break;case "dragend":A=!1;k=m=F=n=l=void 0;break;default:if(!A||b.trackerClicked)break;e=f-l;r=a-n;l=f;n=a;ea&&t&&t.scroller&&(F=t.scroller.attrs["scroll-position"]-e/x,t.scroller.attr({"scroll-position":F}));M&&O&&O.scroller&&(m=O.scroller.attrs["scroll-position"]-
r/(S-D),O.scroller.attr({"scroll-position":m}));L&&u&&u.scroller&&(k=u.scroller.attrs["scroll-position"]-e/(q-z),u.scroller.attr({"scroll-position":k}))}};sb&&(N=K.getPosition(e),e&&(jc(e,"dragstart drag dragend",a),ic(e,"dragstart drag dragend",a)))},gridHoverHandler:function(){var b=this.data("data"),a=b.gridObj,d=!!a.prevRow,c={};if(!a.isHeader)if(b.x&&(c.x=b.x),b.y&&(c.y=b.y),b.width&&(c.width=b.width),b.height&&(c.height=b.height),a.hoverColor&&(c.fill=a.hoverColor),a.usePlotHover&&b.hoverEle.attr(c).show(),
b.useNext&&a.useHover){for(;a&&d;)a=a.prevRow,d=!!a.prevRow;for(;a;)a.items.background.attr("fill",a.hoverColor),a=a.nextRow}else a.useHover&&a.items.background.attr("fill",a.hoverColor)},gridOutHandler:function(){var b=this.data("data"),a=b.gridObj,d=!!a.prevRow;if(!a.isHeader)if(a.usePlotHover&&b.hoverEle.hide(),b.useNext&&a.useHover){for(;a&&d;)a=a.prevRow,d=!!a.prevRow;for(;a;)a.items.background.attr("fill",a.bgColor||Na),a=a.nextRow}else a.useHover&&a.items.background.attr("fill",a.bgColor)},
drawAxes:function(){if(this.options.dataTable){Oa["renderer.cartesian"].drawAxes.call(this,arguments);var b=this.options,a=b.chart,e=this.paper,c=this.layers,r=c.layerBelowDataset,g=c.layerAboveDataset,t=c.gridLayer,p=c.dataset,f=b.dataTable,h=b.categories,f=f&&f.processHeader,v=this.canvasTop,p=this.canvasLeft,t=a.gridBorderThickness,C=Ca(a.ganttStartX,a.totalGridWidth)+t,q=f.dimension,z=q.h,q=a.processHeight-q.h,l=d(h.startX,a.ganttStartX),h=h.visibleW,a=0.5*a.ganttLineThickness,t=0.5*t;f.totalPH=
f.processCount*f.nextCol.dimension.h;t=c.gridLayer=c.gridLayer||e.group("grid",r).attr({"clip-rect":[p,v+z+t,C,q-t]});c.gridHeaderLayer=c.gridHeaderLayer||e.group("grid-header",r).attr({"clip-rect":[p,v,C,z+q]});r=c.gridTracker=c.gridTracker||e.group("grid-tracker",r).attr({"clip-rect":[p,v,C,z+q]});t.data("vOffset",0);t.data("hOffset",0);r.data("vOffset",0);r.data("hOffset",0);c.ganttHeaderLayer=c.ganttHeaderLayer||e.group("gantt",g).attr({"clip-rect":[l,v,h+(b.verticalScroll.enabled?b.scrollOptions.height:
0),this.chartHeight]});p=c.dataset.attr({"clip-rect":[l,v+z-a,h,q+a]});b=c.datalabels.attr({"clip-rect":[l,v+z-a-10,h,q+a+10]});e=c.ganttTracker=e.group("gantt-hot",c.tracker).attr({"clip-rect":[l,v+z-a,h,q+a]});p.data("vOffset",0);p.data("hOffset",0);b.data("vOffset",0);b.data("hOffset",0);e.data("vOffset",0);for(e.data("hOffset",0);f;)this.drawProcess(f),f=f.nextRow;this.drawCategories()}},drawPlotGantt:function(b){var a=this,I=a.options,c=I.chart,r=a.paper,g=a.layers,t=b.data,p=b.items,f=t.length,
h=g.dataset,v=g.datalabels,C=I.dataTable,q=C.processHeader,z=I.categories,l=z.axis,n=a.canvasTop,F=c.taskBarRoundRadius,f=I.plotOptions.series,m=isNaN(+f.animation)&&f.animation.duration||1E3*f.animation,k=I.tasksMap||(I.tasksMap={}),x=I.milestone,u=I.trendlines,O=q.dimension.h,K=c.taskDatePadding,D,ea,L,M,N,A,Z,E,$,J,w,s,X,aa,da,V,ha,B,Q,ba,G;b.graphics=[];da=h.shadows||(h.shadows=r.group("shadows",h));f=u&&u.length;for(b=0;b<f;b+=1)w=u[b],w.end||(w.end=w.start),w.end&&(Q=l.getPixel(w.start),V=l.getPixel(w.end),
ba=w.thickness,I=w.items||(w.items={}),D=void 0,w.isTrendZone?(J=["M",Q+0.5*(V-Q),n+O,"v",n+q.totalPH],ba=V-Q):(J=["M",Q,n+O,"L",V,n+O+q.totalPH],D=w.dashedStyle),I.trendLine=r.path(J,h).attr({stroke:w.color,"stroke-width":ba,"stroke-dasharray":D}),fb(w.displayValue)&&""!==w.displayValue&&(I.label=r.text(g.ganttHeaderLayer).attr({text:w.displayValue,x:J[1],y:0}).css(w.style),D=I.label._getBBox().height,w=n+c.processHeight+(!z.scroll.enabled||c.marginBottom<D?0.5*D:-(0.5*D)-5),I.label.attr("y",w)));
v.hide();g=function(){v.show()};u=q=function(b){Y.call(this,a,b)};z=function(b){Y.call(this,a,b,"DataPlotRollOver")};n=function(b){Y.call(this,a,b,"DataPlotRollOut")};O=function(b){b&&b.click(function(b){Y.call(this,a,b)}).hover(function(b){var c=this.data("dataObj");Y.call(this,a,b,"DataPlotRollOver");c.showHoverEffect&&a.taskHoverHandler.call(this,a)},function(b){var c=this.data("dataObj");Y.call(this,a,b,"DataPlotRollOut");c.showHoverEffect&&a.taskHoverOutHandler.call(this,a)}).data("dataObj",
B).data("eventArgs",ea)};f=t.length;for(b=0;b<f;b+=1)B=t[b],I=B.processId,w=C[I],V=ha=B.color,I=B.items||(B.items={}),J=B.animation?m||1E3:0,w&&(G=B.borderThickness,Q=ua(l.getPixel(B.start)),ba=gc(M=l.getPixel(B.end)-Q),Q&&ba&&(L=w.dimension.h,w=w.yPos-L,D=L*(/%/g.test(B.height)&&0.01*Fb(B.height,10))||d(B.height,L),s=L*(/%/g.test(B.topPadding)&&0.01*Fb(B.topPadding,10))||d(B.topPadding,L),w+=Ca(s,L-D),aa=0.5*D,X=B.toolText,s=B.link,(L=p[b])||(L=p[b]={index:b,dataLabel:null,start:B.start,end:B.end,
startLabel:null,endLabel:null,tracker:null}),B.index=b,N=e(B.id,b),""!==N&&k[N]&&(k[N].items=L,k[N].x=Q,k[N].y=w,k[N].h=D,k[N].w=ba),M=N=A=Z=E=$=null,B.showAsGroup?(J?(M=r.path(["M",Q,w],h),M.animate({path:["M",Q,w,"v",D,"L",Q+aa,w+aa,"H",Q+ba-aa,"L",Q+ba,w+D,"v",-D,"H",Q]},J,"normal",g)):(M=r.path(["M",Q,w,"v",D,"L",Q+aa,w+aa,"H",Q+ba-aa,"L",Q+ba,w+D,"v",-D,"H",Q],h),g&&g()),M.attr({fill:V,stroke:B.borderColor,cursor:s?"pointer":"",ishot:!0,"stroke-width":B.borderThickness}).tooltip(X).shadow(c.shadow&&
B.shadow,da)):(-1!==B.percentComplete&&(M=ba*B.percentComplete*0.01,V=Na,N=I.taskFill=r.rect(Q,w,0,D,0,h).attr({fill:ha,cursor:s?"pointer":"",ishot:!0,"stroke-width":0,width:J?0:M||1}).tooltip(X),J&&N.animate({width:M||1},J,"normal"),A=r.rect(Q,w,0,D,0,h).attr({fill:B.slackColor,cursor:s?"pointer":"",ishot:!0,"stroke-width":0,x:J?Q:Q+M||1,width:J?0:ba-M||1}).tooltip(X),J&&A.animate({x:Q+M||1,width:ba-M||1},J,"normal")),I=ka.crispBound(Q,w,ba,D,G),M=r.rect(I.x,I.y,0,I.height,F,h).attr({fill:V,stroke:B.borderColor,
cursor:s?"pointer":"",ishot:!0,"stroke-width":B.borderThickness,width:J?0:I.width||1}).tooltip(X).shadow(c.shadow&&B.shadow,da),J?M.animate({width:I.width||1},J,"normal",g):g&&g()),fb(B.label)&&""!==B.label&&(I=B.labelAlign,Z=r.text().attr({text:B.label,x:Q+ba*Sa[I]+Ta[I],"text-anchor":gb[I],cursor:s?"pointer":"",ishot:!0,y:w-0.5*Ra(B.style.lineHeight,10)-c.taskLabelPadding}).css(B.style),v.appendChild(Z)),fb(B.startDate)&&""!==B.startDate&&(E=r.text().attr({text:B.startDate,x:Q-2-K,y:w+0.5*D,cursor:s?
"pointer":"",ishot:!0,"text-anchor":"end"}).css(B.style),v.appendChild(E)),fb(B.endDate)&&""!==B.endDate&&($=r.text().attr({text:B.endDate,x:Q+ba+2+K,y:w+0.5*D,cursor:s?"pointer":"",ishot:!0,"text-anchor":"start"}).css(B.style),v.appendChild($)),L.graphic=M,L.percentCompleteGraphic=N,L.slackGraphic=A,L.dataLabel=Z,L.startLabel=E,L.endLabel=$,ea={processId:B.processId,taskId:B.id,start:B._start,end:B._end,showAsGroup:B.showAsGroup,sourceType:"task",percentComplete:-1!==B.percentComplete&&B.percentComplete},
N&&N.click(q).hover(z,n).data("eventArgs",ea),A&&A.click(u).data("eventArgs",ea),Qa([M,Z,E,$],O)));p=function(b){Y.call(this,a,b,"MilestoneClick")};C=function(b){var c=this.data("dataObj");Y.call(this,a,b,"MilestoneRollOver");c.showHoverEffect&&c.items.graphic.attr({fill:c.hoverFillColor,stroke:c.hoverBorderColor,"fill-opacity":c.hoverFillAlpha,"stroke-opacity":c.hoverBorderAlpha})};F=function(b){var c=this.data("dataObj");Y.call(this,a,b,"MilestoneRollOut");c.showHoverEffect&&c.items.graphic.attr({fill:c.fillColor,
stroke:c.borderColor,"fill-opacity":c.fillAlpha,"stroke-opacity":c.borderAlpha})};this.drawConnectors();I=null;f=x&&x.length;for(b=0;b<f;b+=1)c=x[b],w=k[c.taskId],I=c.items||(c.items={}),w&&(t=ka.animation({"fill-opacity":c.fillAlpha,"stroke-opacity":c.borderAlpha},m,"normal"),ea={sides:c.sides,date:c.origDate,radius:c.radius,taskId:c.taskId,toolText:c.toolText,numSides:c.numSides},I.graphic=r.polypath(c.numSides,l.getPixel(c.date.ms),w.y+0.5*w.h,d(c.radius,0.6*w.h),c.startAngle,c.depth,h).attr({fill:c.fillColor,
"fill-opacity":m?0:c.fillAlpha,stroke:c.borderColor,"stroke-opacity":m?0:c.borderAlpha,ishot:!0,cursor:c.link?"pointer":"","stroke-width":c.borderThickness}).tooltip(c.toolText).click(p).data("eventArgs",ea).data("dataObj",c),m&&I.graphic.animate(t.delay(m)),I.graphic.hover(C,F))},taskHoverOutHandler:function(b){var a=b.options.tasksMap;b=this.data("dataObj");var a=a[e(b.id,b.index)].items,d={fill:b.color,stroke:b.borderColor,"stroke-width":b.borderThickness,"stroke-dasharray":b.dashedStyle};-1===
b.percentComplete||b.showAsGroup||(a.slackGraphic.attr({fill:b.slackColor}),a.percentCompleteGraphic.attr({fill:b.color}),delete d.fill);a.graphic.attr(d)},taskHoverHandler:function(b){var a=b.options.tasksMap;b=this.data("dataObj");var a=a[e(b.id,b.index)].items,d={fill:b.hoverFillColor,stroke:b.hoverBorderColor};-1===b.percentComplete||b.showAsGroup||(a.slackGraphic.attr({fill:b.slackHoverColor}),a.percentCompleteGraphic.attr({fill:b.hoverFillColor}),delete d.fill);a.graphic.attr(d)},drawConnectors:function(){var b=
this,a=b.paper,d=b.options,c=d.chart.connectorExtension,e=d.connectors,g=d.tasksMap,t=e.length,p=b.layers.dataset,f=[],d=d.plotOptions.series,d=isNaN(+d.animation)&&d.animation.duration||1E3*d.animation,h,v,C,q,z,l,n,F,m,k,x,u,K,S,D;K=function(a){Y.call(this,b,a,"ConnectorClick")};S=function(a){var c=this.data("dataObj"),d=g[c.fromTaskId],e=g[c.toTaskId],f={stroke:c.hoverColor,"stroke-dasharray":c.dashedStyle,"stroke-width":c.hoverThickness};Y.call(this,b,a,"ConnectorRollOver");c.showHoverEffect&&
(Qa([d,e],function(a){var b={fill:a.dataObj.hoverFillColor,stroke:a.dataObj.hoverBorderColor};-1===a.dataObj.percentComplete||a.dataObj.showAsGroup||(a.items.slackGraphic.attr({fill:a.dataObj.slackHoverColor}),a.items.percentCompleteGraphic.attr({fill:a.dataObj.hoverFillColor,stroke:a.dataObj.hoverBorderColor}),delete b.fill);a.items.graphic.attr(b)}),c.items.connector.attr(f))};D=function(a){var c=this.data("dataObj"),d=g[c.fromTaskId],e=g[c.toTaskId],f={stroke:c.color,"stroke-width":c.thickness,
"stroke-dasharray":c.dashedStyle};Y.call(this,b,a,"ConnectorRollOut");c.showHoverEffect&&(Qa([d,e],function(a){var b={fill:a.dataObj.color,stroke:a.dataObj.borderColor,"stroke-width":a.dataObj.borderThickness,"stroke-dasharray":a.dataObj.dashedStyle};-1===a.dataObj.percentComplete||a.dataObj.showAsGroup||(a.items.slackGraphic.attr({fill:a.dataObj.slackColor}),a.items.percentCompleteGraphic.attr({fill:a.dataObj.color}),delete b.fill);a.items.graphic.attr(b)}),c.items.connector.attr(f))};for(h=0;h<=
t;h+=1)if(C=e[h]||{},l=C.fromTaskId,q=C.toTaskId,v=g[l],m=g[q],q=C.items||(C.items={}),v&&m){k=v.y+0.5*v.h;x=m.y+0.5*m.h;z=k==x;l=v.x;n=v.x+v.w;F=m.x;m=m.x+m.w;u=u=0;0===C.fromTaskConnectStart&&1===C.toTaskConnectStart&&(u=1);0===C.fromTaskConnectStart&&0===C.toTaskConnectStart&&(u=2);1===C.fromTaskConnectStart&&1===C.toTaskConnectStart&&(u=3);1===C.fromTaskConnectStart&&0===C.toTaskConnectStart&&(u=4);if(z)switch(v=v.height,u){case 1:u=(F-n)/10;f=["M",n,k,n+u,k,"L",n+u,k,n+u,k-v,"L",n+u,k-v,F-u,
k-v,"L",F-u,k-v,F-u,k,"L",F-u,k,F,x,"L",m+c,x,m,x];break;case 2:f=["M",n,k,n+c,k,"L",n+c,k,n+c,k-v,"L",n+c,k-v,m+c,k-v,"L",m+c,x-v,m+c,x];break;case 3:f=["M",l,k,l-c,k,"L",l-c,k,l-c,k-v,"L",l-c,k-v,F-c,k-v,"L",F-c,k-v,F-c,k,"L",F-c,k,F,k];break;case 4:f=["M",l,k,l-c,k,"L",l-c,k,l-c,k-v,"L",l-c,k-v,m+c,k-v,"L",m+c,k-v,m+c,k,"L",m+c,k,m,k]}else switch(u){case 1:f=["M",n,k,n+(F-n)/2,k,"L",n+(F-n)/2,k,n+(F-n)/2,x,"L",n+(F-n)/2,x,F,x];f=n<=F?["M",n,k,n+(F-n)/2,k,"L",n+(F-n)/2,k,n+(F-n)/2,x,"L",n+(F-n)/
2,x,F,x]:["M",n,k,n+c,k,"L",n+c,k,n+c,k+(x-k)/2,"L",n+c,k+(x-k)/2,F-c,k+(x-k)/2,"L",F-c,k+(x-k)/2,F-c,x,"L",F-c,x,F,x];break;case 2:u=0>m-n?0:m-n;f=["M",n,k,n+c+u,k,"L",n+c+u,k,n+c+u,x,"L",n+c+u,x,m,x];break;case 3:u=0>l-F?0:l-F;f=["M",l,k,l-c-u,k,"L",l-c-u,k,l-c-u,x,"L",l-c-u,x,F,x];break;case 4:f=l>m?["M",l,k,l-(l-m)/2,k,"L",l-(l-m)/2,k,l-(l-m)/2,x,"L",l-(l-m)/2,x,m,x]:["M",l,k,l-c,k,"L",l-c,k,l-c,k+(x-k)/2,"L",l-c,k+(x-k)/2,m+c,k+(x-k)/2,"L",m+c,k+(x-k)/2,m+c,x,"L",m+c,x,m,x]}q.connector?q.connector.animate({path:f}):
(l=ka.animation({"stroke-opacity":C.alpha},d,"normal"),q.connector=a.path(f,p).attr({stroke:C.color,"stroke-opacity":0,"stroke-width":C.thickness,"stroke-dasharray":C.dashedStyle}).animate(l.delay(d)));l={fromTaskId:C.fromTaskId,toTaskId:C.toTaskId,fromTaskConnectStart:C.fromTaskConnectStart,toTaskConnectStart:C.toTaskConnectStart,sourceType:"connector"};q.tracker=a.path(f,p).attr({stroke:Na,"stroke-width":V(C.thickness,10),ishot:!0,cursor:C.link?"pointer":""}).data("dataObj",C).data("eventArgs",
l).click(K);q.tracker.hover(S,D)}}},Oa["renderer.cartesian"])}]);