UNPKG

highcharts

Version:
107 lines (104 loc) 96.1 kB
/* Highcharts Gantt JS v8.2.0 (2020-08-20) Gantt series (c) 2016-2019 Lars A. V. Cabrera License: www.highcharts.com/license */ (function(e){"object"===typeof module&&module.exports?(e["default"]=e,module.exports=e):"function"===typeof define&&define.amd?define("highcharts/modules/gantt",["highcharts"],function(J){e(J);e.Highcharts=J;return e}):e("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(e){function J(e,n,v,x){e.hasOwnProperty(n)||(e[n]=x.apply(null,v))}e=e?e._modules:{};J(e,"Gantt/Tree.js",[e["Core/Utilities.js"]],function(e){var n=e.extend,v=e.isNumber,x=e.pick,w=function(n,u){var l=n.reduce(function(b, m){var q=x(m.parent,"");"undefined"===typeof b[q]&&(b[q]=[]);b[q].push(m);return b},{});Object.keys(l).forEach(function(b,m){var q=l[b];""!==b&&-1===u.indexOf(b)&&(q.forEach(function(b){m[""].push(b)}),delete m[b])});return l},y=function(e,u,l,b,m,q){var z=0,F=0,G=q&&q.after,k=q&&q.before;u={data:b,depth:l-1,id:e,level:l,parent:u};var f,a;"function"===typeof k&&k(u,q);k=(m[e]||[]).map(function(h){var d=y(h.id,e,l+1,h,m,q),r=h.start;h=!0===h.milestone?r:h.end;f=!v(f)||r<f?r:f;a=!v(a)||h>a?h:a;z=z+ 1+d.descendants;F=Math.max(d.height+1,F);return d});b&&(b.start=x(b.start,f),b.end=x(b.end,a));n(u,{children:k,descendants:z,height:F});"function"===typeof G&&G(u,q);return u};return{getListOfParents:w,getNode:y,getTree:function(e,u){var l=e.map(function(b){return b.id});e=w(e,l);return y("",null,1,null,e,u)}}});J(e,"Core/Axis/TreeGridTick.js",[e["Core/Utilities.js"]],function(e){var n=e.addEvent,v=e.defined,x=e.isObject,w=e.isNumber,y=e.pick,C=e.wrap,u;(function(l){function b(){this.treeGrid||(this.treeGrid= new G(this))}function m(k,f){k=k.treeGrid;var a=!k.labelIcon,h=f.renderer,d=f.xy,r=f.options,c=r.width,A=r.height,t=d.x-c/2-r.padding;d=d.y-A/2;var I=f.collapsed?90:180,D=f.show&&w(d),B=k.labelIcon;B||(k.labelIcon=B=h.path(h.symbols[r.type](r.x,r.y,c,A)).addClass("highcharts-label-icon").add(f.group));D||B.attr({y:-9999});h.styledMode||B.attr({"stroke-width":1,fill:y(f.color,"#666666")}).css({cursor:"pointer",stroke:r.lineColor,strokeWidth:r.lineWidth});B[a?"attr":"animate"]({translateX:t,translateY:d, rotation:I})}function q(k,f,a,h,d,r,c,A,t){var I=y(this.options&&this.options.labels,r);r=this.pos;var D=this.axis,B="treegrid"===D.options.type;k=k.apply(this,[f,a,h,d,I,c,A,t]);B&&(f=I&&x(I.symbol,!0)?I.symbol:{},I=I&&w(I.indentation)?I.indentation:0,r=(r=(D=D.treeGrid.mapOfPosToGridNode)&&D[r])&&r.depth||1,k.x+=f.width+2*f.padding+(r-1)*I);return k}function z(k){var f=this,a=f.pos,h=f.axis,d=f.label,r=h.treeGrid.mapOfPosToGridNode,c=h.options,A=y(f.options&&f.options.labels,c&&c.labels),t=A&&x(A.symbol, !0)?A.symbol:{},I=(r=r&&r[a])&&r.depth;c="treegrid"===c.type;var D=-1<h.tickPositions.indexOf(a);a=h.chart.styledMode;c&&r&&d&&d.element&&d.addClass("highcharts-treegrid-node-level-"+I);k.apply(f,Array.prototype.slice.call(arguments,1));c&&d&&d.element&&r&&r.descendants&&0<r.descendants&&(h=h.treeGrid.isCollapsed(r),m(f,{color:!a&&d.styles&&d.styles.color||"",collapsed:h,group:d.parentGroup,options:t,renderer:d.renderer,show:D,xy:d.xy}),t="highcharts-treegrid-node-"+(h?"expanded":"collapsed"),d.addClass("highcharts-treegrid-node-"+ (h?"collapsed":"expanded")).removeClass(t),a||d.css({cursor:"pointer"}),[d,f.treeGrid.labelIcon].forEach(function(c){c&&!c.attachedTreeGridEvents&&(n(c.element,"mouseover",function(){d.addClass("highcharts-treegrid-node-active");d.renderer.styledMode||d.css({textDecoration:"underline"})}),n(c.element,"mouseout",function(){var c=v(A.style)?A.style:{};d.removeClass("highcharts-treegrid-node-active");d.renderer.styledMode||d.css({textDecoration:c.textDecoration})}),n(c.element,"click",function(){f.treeGrid.toggleCollapse()}), c.attachedTreeGridEvents=!0)}))}var F=!1;l.compose=function(k){F||(n(k,"init",b),C(k.prototype,"getLabelPosition",q),C(k.prototype,"renderLabel",z),k.prototype.collapse=function(f){this.treeGrid.collapse(f)},k.prototype.expand=function(f){this.treeGrid.expand(f)},k.prototype.toggleCollapse=function(f){this.treeGrid.toggleCollapse(f)},F=!0)};var G=function(){function k(f){this.tick=f}k.prototype.collapse=function(f){var a=this.tick,h=a.axis,d=h.brokenAxis;d&&h.treeGrid.mapOfPosToGridNode&&(a=h.treeGrid.collapse(h.treeGrid.mapOfPosToGridNode[a.pos]), d.setBreaks(a,y(f,!0)))};k.prototype.expand=function(f){var a=this.tick,h=a.axis,d=h.brokenAxis;d&&h.treeGrid.mapOfPosToGridNode&&(a=h.treeGrid.expand(h.treeGrid.mapOfPosToGridNode[a.pos]),d.setBreaks(a,y(f,!0)))};k.prototype.toggleCollapse=function(f){var a=this.tick,h=a.axis,d=h.brokenAxis;d&&h.treeGrid.mapOfPosToGridNode&&(a=h.treeGrid.toggleCollapse(h.treeGrid.mapOfPosToGridNode[a.pos]),d.setBreaks(a,y(f,!0)))};return k}();l.Additions=G})(u||(u={}));return u});J(e,"Mixins/TreeSeries.js",[e["Core/Color.js"], e["Core/Utilities.js"]],function(e,n){var v=n.extend,x=n.isArray,w=n.isNumber,y=n.isObject,C=n.merge,u=n.pick;return{getColor:function(l,b){var m=b.index,q=b.mapOptionsToLevel,z=b.parentColor,F=b.parentColorIndex,G=b.series,k=b.colors,f=b.siblings,a=G.points,h=G.chart.options.chart,d;if(l){a=a[l.i];l=q[l.level]||{};if(q=a&&l.colorByPoint){var r=a.index%(k?k.length:h.colorCount);var c=k&&k[r]}if(!G.chart.styledMode){k=a&&a.options.color;h=l&&l.color;if(d=z)d=(d=l&&l.colorVariation)&&"brightness"=== d.key?e.parse(z).brighten(m/f*d.to).get():z;d=u(k,h,c,d,G.color)}var A=u(a&&a.options.colorIndex,l&&l.colorIndex,r,F,b.colorIndex)}return{color:d,colorIndex:A}},getLevelOptions:function(l){var b=null;if(y(l)){b={};var m=w(l.from)?l.from:1;var q=l.levels;var z={};var F=y(l.defaults)?l.defaults:{};x(q)&&(z=q.reduce(function(b,k){if(y(k)&&w(k.level)){var f=C({},k);var a="boolean"===typeof f.levelIsConstant?f.levelIsConstant:F.levelIsConstant;delete f.levelIsConstant;delete f.level;k=k.level+(a?0:m-1); y(b[k])?v(b[k],f):b[k]=f}return b},{}));q=w(l.to)?l.to:1;for(l=0;l<=q;l++)b[l]=C({},F,y(z[l])?z[l]:{})}return b},setTreeValues:function q(b,m){var z=m.before,F=m.idRoot,G=m.mapIdToNode[F],k=m.points[b.i],f=k&&k.options||{},a=0,h=[];v(b,{levelDynamic:b.level-(("boolean"===typeof m.levelIsConstant?m.levelIsConstant:1)?0:G.level),name:u(k&&k.name,""),visible:F===b.id||("boolean"===typeof m.visible?m.visible:!1)});"function"===typeof z&&(b=z(b,m));b.children.forEach(function(d,r){var c=v({},m);v(c,{index:r, siblings:b.children.length,visible:b.visible});d=q(d,c);h.push(d);d.visible&&(a+=d.val)});b.visible=0<a||b.visible;z=u(f.value,a);v(b,{children:h,childrenTotal:a,isLeaf:b.visible&&!a,val:z});return b},updateRootId:function(b){if(y(b)){var m=y(b.options)?b.options:{};m=u(b.rootNode,m.rootId,"");y(b.userOptions)&&(b.userOptions.rootId=m);b.rootNode=m}return m}}});J(e,"Core/Axis/GridAxis.js",[e["Core/Axis/Axis.js"],e["Core/Globals.js"],e["Core/Options.js"],e["Core/Axis/Tick.js"],e["Core/Utilities.js"]], function(e,n,v,x,w){var y=v.dateFormat,C=w.addEvent,u=w.defined,l=w.erase,b=w.find,m=w.isArray,q=w.isNumber,z=w.merge,F=w.pick,G=w.timeUnits,k=w.wrap;v=n.Chart;var f=function(d){var r=d.options;r.labels||(r.labels={});r.labels.align=F(r.labels.align,"center");d.categories||(r.showLastLabel=!1);d.labelRotation=0;r.labels.rotation=0};"";e.prototype.getMaxLabelDimensions=function(d,r){var c={width:0,height:0};r.forEach(function(r){var a=d[r];r=0;if(w.isObject(a,!0)){var A=w.isObject(a.label,!0)?a.label: {};a=A.getBBox?A.getBBox().height:0;A.textStr&&(r=Math.round(A.getBBox().width));c.height=Math.max(a,c.height);c.width=Math.max(r,c.width)}});return c};n.dateFormats.W=function(a){a=new this.Date(a);var r=(this.get("Day",a)+6)%7,c=new this.Date(a.valueOf());this.set("Date",c,this.get("Date",a)-r+3);r=new this.Date(this.get("FullYear",c),0,1);4!==this.get("Day",r)&&(this.set("Month",a,0),this.set("Date",a,1+(11-this.get("Day",r))%7));return(1+Math.floor((c.valueOf()-r.valueOf())/6048E5)).toString()}; n.dateFormats.E=function(a){return y("%a",a,!0).charAt(0)};C(v,"afterSetChartSize",function(){this.axes.forEach(function(a){(a.grid&&a.grid.columns||[]).forEach(function(r){r.setAxisSize();r.setAxisTranslation()})})});C(x,"afterGetLabelPosition",function(a){var r=this.label,c=this.axis,d=c.reversed,t=c.chart,f=c.options.grid||{},D=c.options.labels,B=D.align,E=h.Side[c.side],g=a.tickmarkOffset,p=c.tickPositions,H=this.pos-g;p=q(p[a.index+1])?p[a.index+1]-g:c.max+g;var K=c.tickSize("tick");g=K?K[0]: 0;K=K?K[1]/2:0;if(!0===f.enabled){if("top"===E){f=c.top+c.offset;var L=f-g}else"bottom"===E?(L=t.chartHeight-c.bottom+c.offset,f=L+g):(f=c.top+c.len-c.translate(d?p:H),L=c.top+c.len-c.translate(d?H:p));"right"===E?(E=t.chartWidth-c.right+c.offset,d=E+g):"left"===E?(d=c.left+c.offset,E=d-g):(E=Math.round(c.left+c.translate(d?p:H))-K,d=Math.round(c.left+c.translate(d?H:p))-K);this.slotWidth=d-E;a.pos.x="left"===B?E:"right"===B?d:E+(d-E)/2;a.pos.y=L+(f-L)/2;t=t.renderer.fontMetrics(D.style.fontSize, r.element);r=r.getBBox().height;D.useHTML?a.pos.y+=t.b+-(r/2):(r=Math.round(r/t.h),a.pos.y+=(t.b-(t.h-t.f))/2+-((r-1)*t.h/2));a.pos.x+=c.horiz&&D.x||0}});var a=function(){function a(a){this.axis=a}a.prototype.isOuterAxis=function(){var a=this.axis,c=a.grid.columnIndex,d=a.linkedParent&&a.linkedParent.grid.columns||a.grid.columns,t=c?a.linkedParent:a,h=-1,f=0;a.chart[a.coll].forEach(function(c,r){c.side!==a.side||c.options.isInternal||(f=r,c===t&&(h=r))});return f===h&&(q(c)?d.length===c:!0)};return a}(), h=function(){function d(){}d.compose=function(a){e.keepProps.push("grid");k(a.prototype,"unsquish",d.wrapUnsquish);C(a,"init",d.onInit);C(a,"afterGetOffset",d.onAfterGetOffset);C(a,"afterGetTitlePosition",d.onAfterGetTitlePosition);C(a,"afterInit",d.onAfterInit);C(a,"afterRender",d.onAfterRender);C(a,"afterSetAxisTranslation",d.onAfterSetAxisTranslation);C(a,"afterSetOptions",d.onAfterSetOptions);C(a,"afterSetOptions",d.onAfterSetOptions2);C(a,"afterSetScale",d.onAfterSetScale);C(a,"afterTickSize", d.onAfterTickSize);C(a,"trimTicks",d.onTrimTicks);C(a,"destroy",d.onDestroy)};d.onAfterGetOffset=function(){var a=this.grid;(a&&a.columns||[]).forEach(function(a){a.getOffset()})};d.onAfterGetTitlePosition=function(a){if(!0===(this.options.grid||{}).enabled){var c=this.axisTitle,r=this.height,t=this.horiz,h=this.left,f=this.offset,B=this.opposite,E=this.options.title,g=void 0===E?{}:E;E=this.top;var p=this.width,H=this.tickSize(),K=c&&c.getBBox().width,L=g.x||0,k=g.y||0,b=F(g.margin,t?5:10);c=this.chart.renderer.fontMetrics(g.style&& g.style.fontSize,c).f;H=(t?E+r:h)+(t?1:-1)*(B?-1:1)*(H?H[0]/2:0)+(this.side===d.Side.bottom?c:0);a.titlePosition.x=t?h-K/2-b+L:H+(B?p:0)+f+L;a.titlePosition.y=t?H-(B?r:0)+(B?c:-c)/2+f+k:E-b+k}};d.onAfterInit=function(){var a=this.chart,c=this.options.grid;c=void 0===c?{}:c;var d=this.userOptions;c.enabled&&(f(this),k(this,"labelFormatter",function(a){var c=this.axis,g=this.value,p=c.tickPositions,r=(c.isLinked?c.linkedParent:c).series[0],d=g===p[0];p=g===p[p.length-1];r=r&&b(r.options.data,function(p){return p[c.isXAxis? "x":"y"]===g});this.isFirst=d;this.isLast=p;this.point=r;return a.call(this)}));if(c.columns)for(var t=this.grid.columns=[],h=this.grid.columnIndex=0;++h<c.columns.length;){var D=z(d,c.columns[c.columns.length-h-1],{linkedTo:0,type:"category",scrollbar:{enabled:!1}});delete D.grid.columns;D=new e(this.chart,D);D.grid.isColumn=!0;D.grid.columnIndex=h;l(a.axes,D);l(a[this.coll],D);t.push(D)}};d.onAfterRender=function(){var a=this.grid,c=this.options,h=this.chart.renderer;if(!0===(c.grid||{}).enabled){this.maxLabelDimensions= this.getMaxLabelDimensions(this.ticks,this.tickPositions);this.rightWall&&this.rightWall.destroy();if(this.grid&&this.grid.isOuterAxis()&&this.axisLine){var t=c.lineWidth;if(t){var f=this.getLinePath(t),D=f[0],k=f[1],E=((this.tickSize("tick")||[1])[0]-1)*(this.side===d.Side.top||this.side===d.Side.left?-1:1);"M"===D[0]&&"L"===k[0]&&(this.horiz?(D[2]+=E,k[2]+=E):(D[1]+=E,k[1]+=E));this.grid.axisLineExtra?this.grid.axisLineExtra.animate({d:f}):(this.grid.axisLineExtra=h.path(f).attr({zIndex:7}).addClass("highcharts-axis-line").add(this.axisGroup), h.styledMode||this.grid.axisLineExtra.attr({stroke:c.lineColor,"stroke-width":t}));this.axisLine[this.showAxis?"show":"hide"](!0)}}(a&&a.columns||[]).forEach(function(g){g.render()})}};d.onAfterSetAxisTranslation=function(){var a=this.tickPositions&&this.tickPositions.info,c=this.options,d=c.grid||{},t=this.userOptions.labels||{};this.horiz&&(!0===d.enabled&&this.series.forEach(function(a){a.options.pointRange=0}),a&&c.dateTimeLabelFormats&&c.labels&&!u(t.align)&&(!1===c.dateTimeLabelFormats[a.unitName].range|| 1<a.count)&&(c.labels.align="left",u(t.x)||(c.labels.x=3)))};d.onAfterSetOptions=function(a){var c=this.options;a=a.userOptions;var d=c&&w.isObject(c.grid,!0)?c.grid:{};if(!0===d.enabled){var r=z(!0,{className:"highcharts-grid-axis "+(a.className||""),dateTimeLabelFormats:{hour:{list:["%H:%M","%H"]},day:{list:["%A, %e. %B","%a, %e. %b","%E"]},week:{list:["Week %W","W%W"]},month:{list:["%B","%b","%o"]}},grid:{borderWidth:1},labels:{padding:2,style:{fontSize:"13px"}},margin:0,title:{text:null,reserveSpace:!1, rotation:0},units:[["millisecond",[1,10,100]],["second",[1,10]],["minute",[1,5,15]],["hour",[1,6]],["day",[1]],["week",[1]],["month",[1]],["year",null]]},a);"xAxis"===this.coll&&(u(a.linkedTo)&&!u(a.tickPixelInterval)&&(r.tickPixelInterval=350),u(a.tickPixelInterval)||!u(a.linkedTo)||u(a.tickPositioner)||u(a.tickInterval)||(r.tickPositioner=function(a,c){var d=this.linkedParent&&this.linkedParent.tickPositions&&this.linkedParent.tickPositions.info;if(d){var t,g=r.units;for(t=0;t<g.length;t++)if(g[t][0]=== d.unitName){var p=t;break}if(g[p+1]){var H=g[p+1][0];var h=(g[p+1][1]||[1])[0]}else"year"===d.unitName&&(H="year",h=10*d.count);d=G[H];this.tickInterval=d*h;return this.getTimeTicks({unitRange:d,count:h,unitName:H},a,c,this.options.startOfWeek)}}));z(!0,this.options,r);this.horiz&&(c.minPadding=F(a.minPadding,0),c.maxPadding=F(a.maxPadding,0));q(c.grid.borderWidth)&&(c.tickWidth=c.lineWidth=d.borderWidth)}};d.onAfterSetOptions2=function(a){a=(a=a.userOptions)&&a.grid||{};var c=a.columns;a.enabled&& c&&z(!0,this.options,c[c.length-1])};d.onAfterSetScale=function(){(this.grid.columns||[]).forEach(function(a){a.setScale()})};d.onAfterTickSize=function(a){var c=e.defaultLeftAxisOptions,d=this.horiz,t=this.maxLabelDimensions,h=this.options.grid;h=void 0===h?{}:h;h.enabled&&t&&(c=2*Math.abs(c.labels.x),d=d?h.cellHeight||c+t.height:c+t.width,m(a.tickSize)?a.tickSize[0]=d:a.tickSize=[d,0])};d.onDestroy=function(a){var c=this.grid;(c.columns||[]).forEach(function(c){c.destroy(a.keepEvents)});c.columns= void 0};d.onInit=function(d){d=d.userOptions||{};var c=d.grid||{};c.enabled&&u(c.borderColor)&&(d.tickColor=d.lineColor=c.borderColor);this.grid||(this.grid=new a(this))};d.onTrimTicks=function(){var a=this.options,c=this.categories,d=this.tickPositions,h=d[0],f=d[d.length-1],k=this.linkedParent&&this.linkedParent.min||this.min,b=this.linkedParent&&this.linkedParent.max||this.max,E=this.tickInterval;!0!==(a.grid||{}).enabled||c||!this.horiz&&!this.isLinked||(h<k&&h+E>k&&!a.startOnTick&&(d[0]=k),f> b&&f-E<b&&!a.endOnTick&&(d[d.length-1]=b))};d.wrapUnsquish=function(a){var c=this.options.grid;return!0===(void 0===c?{}:c).enabled&&this.categories?this.tickInterval:a.apply(this,Array.prototype.slice.call(arguments,1))};return d}();(function(a){a=a.Side||(a.Side={});a[a.top=0]="top";a[a.right=1]="right";a[a.bottom=2]="bottom";a[a.left=3]="left"})(h||(h={}));h.compose(e);return h});J(e,"Core/Axis/BrokenAxis.js",[e["Core/Axis/Axis.js"],e["Core/Globals.js"],e["Core/Utilities.js"],e["Extensions/Stacking.js"]], function(e,n,v,x){var w=v.addEvent,y=v.find,C=v.fireEvent,u=v.isArray,l=v.isNumber,b=v.pick,m=n.Series,q=function(){function m(b){this.hasBreaks=!1;this.axis=b}m.isInBreak=function(b,m){var k=b.repeat||Infinity,f=b.from,a=b.to-b.from;m=m>=f?(m-f)%k:k-(f-m)%k;return b.inclusive?m<=a:m<a&&0!==m};m.lin2Val=function(b){var q=this.brokenAxis;q=q&&q.breakArray;if(!q)return b;var k;for(k=0;k<q.length;k++){var f=q[k];if(f.from>=b)break;else f.to<b?b+=f.len:m.isInBreak(f,b)&&(b+=f.len)}return b};m.val2Lin= function(b){var q=this.brokenAxis;q=q&&q.breakArray;if(!q)return b;var k=b,f;for(f=0;f<q.length;f++){var a=q[f];if(a.to<=b)k-=a.len;else if(a.from>=b)break;else if(m.isInBreak(a,b)){k-=b-a.from;break}}return k};m.prototype.findBreakAt=function(b,m){return y(m,function(k){return k.from<b&&b<k.to})};m.prototype.isInAnyBreak=function(q,l){var k=this.axis,f=k.options.breaks,a=f&&f.length,h;if(a){for(;a--;)if(m.isInBreak(f[a],q)){var d=!0;h||(h=b(f[a].showPoints,!k.isXAxis))}var r=d&&l?d&&!h:d}return r}; m.prototype.setBreaks=function(q,l){var k=this,f=k.axis,a=u(q)&&!!q.length;f.isDirty=k.hasBreaks!==a;k.hasBreaks=a;f.options.breaks=f.userOptions.breaks=q;f.forceRedraw=!0;f.series.forEach(function(a){a.isDirty=!0});a||f.val2lin!==m.val2Lin||(delete f.val2lin,delete f.lin2val);a&&(f.userOptions.ordinal=!1,f.lin2val=m.lin2Val,f.val2lin=m.val2Lin,f.setExtremes=function(a,d,f,c,b){if(k.hasBreaks){for(var t,h=this.options.breaks;t=k.findBreakAt(a,h);)a=t.to;for(;t=k.findBreakAt(d,h);)d=t.from;d<a&&(d= a)}e.prototype.setExtremes.call(this,a,d,f,c,b)},f.setAxisTranslation=function(a){e.prototype.setAxisTranslation.call(this,a);k.unitLength=null;if(k.hasBreaks){a=f.options.breaks||[];var d=[],h=[],c=0,A,t=f.userMin||f.min,q=f.userMax||f.max,D=b(f.pointRangePadding,0),B;a.forEach(function(a){A=a.repeat||Infinity;m.isInBreak(a,t)&&(t+=a.to%A-t%A);m.isInBreak(a,q)&&(q-=q%A-a.from%A)});a.forEach(function(a){g=a.from;for(A=a.repeat||Infinity;g-A>t;)g-=A;for(;g<t;)g+=A;for(B=g;B<q;B+=A)d.push({value:B, move:"in"}),d.push({value:B+(a.to-a.from),move:"out",size:a.breakSize})});d.sort(function(a,g){return a.value===g.value?("in"===a.move?0:1)-("in"===g.move?0:1):a.value-g.value});var E=0;var g=t;d.forEach(function(a){E+="in"===a.move?1:-1;1===E&&"in"===a.move&&(g=a.value);0===E&&(h.push({from:g,to:a.value,len:a.value-g-(a.size||0)}),c+=a.value-g-(a.size||0))});f.breakArray=k.breakArray=h;k.unitLength=q-t-c+D;C(f,"afterBreaks");f.staticScale?f.transA=f.staticScale:k.unitLength&&(f.transA*=(q-f.min+ D)/k.unitLength);D&&(f.minPixelPadding=f.transA*f.minPointOffset);f.min=t;f.max=q}});b(l,!0)&&f.chart.redraw()};return m}();n=function(){function z(){}z.compose=function(z,e){z.keepProps.push("brokenAxis");var k=m.prototype;k.drawBreaks=function(f,a){var h=this,d=h.points,r,c,A,t;if(f&&f.brokenAxis&&f.brokenAxis.hasBreaks){var k=f.brokenAxis;a.forEach(function(a){r=k&&k.breakArray||[];c=f.isXAxis?f.min:b(h.options.threshold,f.min);d.forEach(function(d){t=b(d["stack"+a.toUpperCase()],d[a]);r.forEach(function(a){if(l(c)&& l(t)){A=!1;if(c<a.from&&t>a.to||c>a.from&&t<a.from)A="pointBreak";else if(c<a.from&&t>a.from&&t<a.to||c>a.from&&t>a.to&&t<a.from)A="pointInBreak";A&&C(f,A,{point:d,brk:a})}})})})}};k.gappedPath=function(){var f=this.currentDataGrouping,a=f&&f.gapSize;f=this.options.gapSize;var h=this.points.slice(),d=h.length-1,r=this.yAxis,c;if(f&&0<d)for("value"!==this.options.gapUnit&&(f*=this.basePointRange),a&&a>f&&a>=this.basePointRange&&(f=a),c=void 0;d--;)c&&!1!==c.visible||(c=h[d+1]),a=h[d],!1!==c.visible&& !1!==a.visible&&(c.x-a.x>f&&(c=(a.x+c.x)/2,h.splice(d+1,0,{isNull:!0,x:c}),r.stacking&&this.options.stacking&&(c=r.stacking.stacks[this.stackKey][c]=new x(r,r.options.stackLabels,!1,c,this.stack),c.total=0)),c=a);return this.getGraphPath(h)};w(z,"init",function(){this.brokenAxis||(this.brokenAxis=new q(this))});w(z,"afterInit",function(){"undefined"!==typeof this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)});w(z,"afterSetTickPositions",function(){var f=this.brokenAxis;if(f&&f.hasBreaks){var a= this.tickPositions,h=this.tickPositions.info,d=[],r;for(r=0;r<a.length;r++)f.isInAnyBreak(a[r])||d.push(a[r]);this.tickPositions=d;this.tickPositions.info=h}});w(z,"afterSetOptions",function(){this.brokenAxis&&this.brokenAxis.hasBreaks&&(this.options.ordinal=!1)});w(e,"afterGeneratePoints",function(){var f=this.options.connectNulls,a=this.points,h=this.xAxis,d=this.yAxis;if(this.isDirty)for(var r=a.length;r--;){var c=a[r],b=!(null===c.y&&!1===f)&&(h&&h.brokenAxis&&h.brokenAxis.isInAnyBreak(c.x,!0)|| d&&d.brokenAxis&&d.brokenAxis.isInAnyBreak(c.y,!0));c.visible=b?!1:!1!==c.options.visible}});w(e,"afterRender",function(){this.drawBreaks(this.xAxis,["x"]);this.drawBreaks(this.yAxis,b(this.pointArrayMap,["y"]))})};return z}();n.compose(e,m);return n});J(e,"Core/Axis/TreeGridAxis.js",[e["Core/Axis/Axis.js"],e["Core/Axis/Tick.js"],e["Gantt/Tree.js"],e["Core/Axis/TreeGridTick.js"],e["Mixins/TreeSeries.js"],e["Core/Utilities.js"]],function(e,n,v,x,w,y){var C=w.getLevelOptions,u=y.addEvent,l=y.find,b= y.fireEvent,m=y.isNumber,q=y.isObject,z=y.isString,F=y.merge,G=y.pick,k=y.wrap,f;(function(a){function h(a,g){var p=a.collapseStart||0;a=a.collapseEnd||0;a>=g&&(p-=.5);return{from:p,to:a,showPoints:!1}}function d(a,g,p){var c=[],d=[],t={},h={},f=-1,r="boolean"===typeof g?g:!1;a=v.getTree(a,{after:function(a){a=h[a.pos];var g=0,c=0;a.children.forEach(function(a){c+=(a.descendants||0)+1;g=Math.max((a.height||0)+1,g)});a.descendants=c;a.height=g;a.collapsed&&d.push(a)},before:function(a){var g=q(a.data, !0)?a.data:{},p=z(g.name)?g.name:"",d=t[a.parent];d=q(d,!0)?h[d.pos]:null;var H=function(a){return a.name===p},b;r&&q(d,!0)&&(b=l(d.children,H))?(H=b.pos,b.nodes.push(a)):H=f++;h[H]||(h[H]=b={depth:d?d.depth+1:0,name:p,nodes:[a],children:[],pos:H},-1!==H&&c.push(p),q(d,!0)&&d.children.push(b));z(a.id)&&(t[a.id]=a);b&&!0===g.collapsed&&(b.collapsed=!0);a.pos=H}});h=function(a,g){var c=function(a,p,d){var h=p+(-1===p?0:g-1),t=(h-p)/2,H=p+t;a.nodes.forEach(function(a){var g=a.data;q(g,!0)&&(g.y=p+(g.seriesIndex|| 0),delete g.seriesIndex);a.pos=H});d[H]=a;a.pos=H;a.tickmarkOffset=t+.5;a.collapseStart=h+.5;a.children.forEach(function(a){c(a,h+1,d);h=(a.collapseEnd||0)-.5});a.collapseEnd=h+.5;return d};return c(a["-1"],-1,{})}(h,p);return{categories:c,mapOfIdToNode:t,mapOfPosToGridNode:h,collapsedNodes:d,tree:a}}function f(a){a.target.axes.filter(function(a){return"treegrid"===a.options.type}).forEach(function(g){var p=g.options||{},c=p.labels,h=p.uniqueNames,t=0,f=p.max;if(!g.treeGrid.mapOfPosToGridNode||g.series.some(function(a){return!a.hasRendered|| a.isDirtyData||a.isDirty})){p=g.series.reduce(function(a,g){g.visible&&((g.options.data||[]).forEach(function(g){q(g,!0)&&(g.seriesIndex=t,a.push(g))}),!0===h&&t++);return a},[]);if(f&&p.length<f)for(var r=p.length;r<=f;r++)p.push({name:r+"\u200b"});p=d(p,h||!1,!0===h?t:1);g.categories=p.categories;g.treeGrid.mapOfPosToGridNode=p.mapOfPosToGridNode;g.hasNames=!0;g.treeGrid.tree=p.tree;g.series.forEach(function(a){var g=(a.options.data||[]).map(function(a){return q(a,!0)?F(a):a});a.visible&&a.setData(g, !1)});g.treeGrid.mapOptionsToLevel=C({defaults:c,from:1,levels:c&&c.levels,to:g.treeGrid.tree&&g.treeGrid.tree.height});"beforeRender"===a.type&&(g.treeGrid.collapsedNodes=p.collapsedNodes)}})}function c(a,g){var c=this.treeGrid.mapOptionsToLevel||{},d=this.ticks,h=d[g],t;if("treegrid"===this.options.type&&this.treeGrid.mapOfPosToGridNode){var f=this.treeGrid.mapOfPosToGridNode[g];(c=c[f.depth])&&(t={labels:c});h?(h.parameters.category=f.name,h.options=t,h.addLabel()):d[g]=new n(this,g,void 0,void 0, {category:f.name,tickmarkOffset:f.tickmarkOffset,options:t})}else a.apply(this,Array.prototype.slice.call(arguments,1))}function A(a){var g=this.options;g=(g=g&&g.labels)&&m(g.indentation)?g.indentation:0;var c=a.apply(this,Array.prototype.slice.call(arguments,1));if("treegrid"===this.options.type&&this.treeGrid.mapOfPosToGridNode){var d=this.treeGrid.mapOfPosToGridNode[-1].height||0;c.width+=g*(d-1)}return c}function t(a,g,c){var p=this,h="treegrid"===c.type;p.treeGrid||(p.treeGrid=new B(p));h&& (u(g,"beforeRender",f),u(g,"beforeRedraw",f),u(g,"addSeries",function(a){a.options.data&&(a=d(a.options.data,c.uniqueNames||!1,1),p.treeGrid.collapsedNodes=(p.treeGrid.collapsedNodes||[]).concat(a.collapsedNodes))}),u(p,"foundExtremes",function(){p.treeGrid.collapsedNodes&&p.treeGrid.collapsedNodes.forEach(function(a){var g=p.treeGrid.collapse(a);p.brokenAxis&&(p.brokenAxis.setBreaks(g,!1),p.treeGrid.collapsedNodes&&(p.treeGrid.collapsedNodes=p.treeGrid.collapsedNodes.filter(function(g){return a.collapseStart!== g.collapseStart||a.collapseEnd!==g.collapseEnd})))})}),u(p,"afterBreaks",function(){var a;"yAxis"===p.coll&&!p.staticScale&&(null===(a=p.chart.options.chart)||void 0===a?0:a.height)&&(p.isDirty=!0)}),c=F({grid:{enabled:!0},labels:{align:"left",levels:[{level:void 0},{level:1,style:{fontWeight:"bold"}}],symbol:{type:"triangle",x:-5,y:-5,height:10,width:10,padding:5}},uniqueNames:!1},c,{reversed:!0,grid:{columns:void 0}}));a.apply(p,[g,c]);h&&(p.hasNames=!0,p.options.showLastLabel=!0)}function I(a){var g= this.options;"treegrid"===g.type?(this.min=G(this.userMin,g.min,this.dataMin),this.max=G(this.userMax,g.max,this.dataMax),b(this,"foundExtremes"),this.setAxisTranslation(!0),this.tickmarkOffset=.5,this.tickInterval=1,this.tickPositions=this.treeGrid.mapOfPosToGridNode?this.treeGrid.getTickPositions():[]):a.apply(this,Array.prototype.slice.call(arguments,1))}var D=!1;a.compose=function(a){D||(k(a.prototype,"generateTick",c),k(a.prototype,"getMaxLabelDimensions",A),k(a.prototype,"init",t),k(a.prototype, "setTickInterval",I),x.compose(n),D=!0)};var B=function(){function a(a){this.axis=a}a.prototype.collapse=function(a){var g=this.axis,c=g.options.breaks||[];a=h(a,g.max);c.push(a);return c};a.prototype.expand=function(a){var g=this.axis,c=g.options.breaks||[],d=h(a,g.max);return c.reduce(function(a,g){g.to===d.to&&g.from===d.from||a.push(g);return a},[])};a.prototype.getTickPositions=function(){var a=this.axis;return Object.keys(a.treeGrid.mapOfPosToGridNode||{}).reduce(function(g,c){c=+c;!(a.min<= c&&a.max>=c)||a.brokenAxis&&a.brokenAxis.isInAnyBreak(c)||g.push(c);return g},[])};a.prototype.isCollapsed=function(a){var g=this.axis,c=g.options.breaks||[],d=h(a,g.max);return c.some(function(a){return a.from===d.from&&a.to===d.to})};a.prototype.toggleCollapse=function(a){return this.isCollapsed(a)?this.expand(a):this.collapse(a)};return a}();a.Additions=B})(f||(f={}));e.prototype.utils={getNode:v.getNode};f.compose(e);return f});J(e,"Extensions/CurrentDateIndication.js",[e["Core/Globals.js"],e["Core/Options.js"], e["Core/Utilities.js"],e["Core/Axis/PlotLineOrBand.js"]],function(e,n,v,x){var w=n.dateFormat;n=v.addEvent;var y=v.merge;v=v.wrap;var C={currentDateIndicator:!0,color:"#ccd6eb",width:2,label:{format:"%a, %b %d %Y, %H:%M",formatter:function(e,l){return w(l,e)},rotation:0,style:{fontSize:"10px"}}};n(e.Axis,"afterSetOptions",function(){var e=this.options,l=e.currentDateIndicator;l&&(l="object"===typeof l?y(C,l):y(C),l.value=new Date,e.plotLines||(e.plotLines=[]),e.plotLines.push(l))});n(x,"render",function(){this.label&& this.label.attr({text:this.getLabelText(this.options.label)})});v(x.prototype,"getLabelText",function(e,l){var b=this.options;return b.currentDateIndicator&&b.label&&"function"===typeof b.label.formatter?(b.value=new Date,b.label.formatter.call(this,b.value,b.label.format)):e.call(this,l)})});J(e,"Extensions/StaticScale.js",[e["Core/Globals.js"],e["Core/Utilities.js"]],function(e,n){var v=n.addEvent,x=n.defined,w=n.isNumber,y=n.pick;n=e.Chart;v(e.Axis,"afterSetOptions",function(){var e=this.chart.options&& this.chart.options.chart;!this.horiz&&w(this.options.staticScale)&&(!e.height||e.scrollablePlotArea&&e.scrollablePlotArea.minHeight)&&(this.staticScale=this.options.staticScale)});n.prototype.adjustHeight=function(){"adjustHeight"!==this.redrawTrigger&&((this.axes||[]).forEach(function(e){var n=e.chart,l=!!n.initiatedScale&&n.options.animation,b=e.options.staticScale;if(e.staticScale&&x(e.min)){var m=y(e.brokenAxis&&e.brokenAxis.unitLength,e.max+e.tickInterval-e.min)*b;m=Math.max(m,b);b=m-n.plotHeight; 1<=Math.abs(b)&&(n.plotHeight=m,n.redrawTrigger="adjustHeight",n.setSize(void 0,n.chartHeight+b,l));e.series.forEach(function(b){(b=b.sharedClipKey&&n[b.sharedClipKey])&&b.attr({height:n.plotHeight})})}}),this.initiatedScale=!0);this.redrawTrigger=null};v(n,"render",n.prototype.adjustHeight)});J(e,"Extensions/ArrowSymbols.js",[e["Core/Renderer/SVG/SVGRenderer.js"]],function(e){e.prototype.symbols.arrow=function(e,v,x,w){return[["M",e,v+w/2],["L",e+x,v],["L",e,v+w/2],["L",e+x,v+w]]};e.prototype.symbols["arrow-half"]= function(n,v,x,w){return e.prototype.symbols.arrow(n,v,x/2,w)};e.prototype.symbols["triangle-left"]=function(e,v,x,w){return[["M",e+x,v],["L",e,v+w/2],["L",e+x,v+w],["Z"]]};e.prototype.symbols["arrow-filled"]=e.prototype.symbols["triangle-left"];e.prototype.symbols["triangle-left-half"]=function(n,v,x,w){return e.prototype.symbols["triangle-left"](n,v,x/2,w)};e.prototype.symbols["arrow-filled-half"]=e.prototype.symbols["triangle-left-half"]});J(e,"Gantt/Connection.js",[e["Core/Globals.js"],e["Core/Options.js"], e["Core/Series/Point.js"],e["Core/Utilities.js"]],function(e,n,v,x){function w(b){var m=b.shapeArgs;return m?{xMin:m.x,xMax:m.x+m.width,yMin:m.y,yMax:m.y+m.height}:(m=b.graphic&&b.graphic.getBBox())?{xMin:b.plotX-m.width/2,xMax:b.plotX+m.width/2,yMin:b.plotY-m.height/2,yMax:b.plotY+m.height/2}:null}"";var y=x.defined,C=x.error,u=x.extend,l=x.merge,b=x.objectEach,m=e.deg2rad,q=Math.max,z=Math.min;u(n.defaultOptions,{connectors:{type:"straight",lineWidth:1,marker:{enabled:!1,align:"center",verticalAlign:"middle", inside:!1,lineWidth:1},startMarker:{symbol:"diamond"},endMarker:{symbol:"arrow-filled"}}});n=function(){function e(b,k,f){this.toPoint=this.pathfinder=this.graphics=this.fromPoint=this.chart=void 0;this.init(b,k,f)}e.prototype.init=function(b,k,f){this.fromPoint=b;this.toPoint=k;this.options=f;this.chart=b.series.chart;this.pathfinder=this.chart.pathfinder};e.prototype.renderPath=function(b,k,f){var a=this.chart,h=a.styledMode,d=a.pathfinder,r=!a.options.chart.forExport&&!1!==f,c=this.graphics&&this.graphics.path; d.group||(d.group=a.renderer.g().addClass("highcharts-pathfinder-group").attr({zIndex:-1}).add(a.seriesGroup));d.group.translate(a.plotLeft,a.plotTop);c&&c.renderer||(c=a.renderer.path().add(d.group),h||c.attr({opacity:0}));c.attr(k);b={d:b};h||(b.opacity=1);c[r?"animate":"attr"](b,f);this.graphics=this.graphics||{};this.graphics.path=c};e.prototype.addMarker=function(b,k,f){var a=this.fromPoint.series.chart,h=a.pathfinder;a=a.renderer;var d="start"===b?this.fromPoint:this.toPoint,r=d.getPathfinderAnchorPoint(k); if(k.enabled&&((f="start"===b?f[1]:f[f.length-2])&&"M"===f[0]||"L"===f[0])){f={x:f[1],y:f[2]};f=d.getRadiansToVector(f,r);r=d.getMarkerVector(f,k.radius,r);f=-f/m;if(k.width&&k.height){var c=k.width;var A=k.height}else c=A=2*k.radius;this.graphics=this.graphics||{};r={x:r.x-c/2,y:r.y-A/2,width:c,height:A,rotation:f,rotationOriginX:r.x,rotationOriginY:r.y};this.graphics[b]?this.graphics[b].animate(r):(this.graphics[b]=a.symbol(k.symbol).addClass("highcharts-point-connecting-path-"+b+"-marker").attr(r).add(h.group), a.styledMode||this.graphics[b].attr({fill:k.color||this.fromPoint.color,stroke:k.lineColor,"stroke-width":k.lineWidth,opacity:0}).animate({opacity:1},d.series.options.animation))}};e.prototype.getPath=function(b){var k=this.pathfinder,f=this.chart,a=k.algorithms[b.type],h=k.chartObstacles;if("function"!==typeof a)return C('"'+b.type+'" is not a Pathfinder algorithm.'),{path:[],obstacles:[]};a.requiresObstacles&&!h&&(h=k.chartObstacles=k.getChartObstacles(b),f.options.connectors.algorithmMargin=b.algorithmMargin, k.chartObstacleMetrics=k.getObstacleMetrics(h));return a(this.fromPoint.getPathfinderAnchorPoint(b.startMarker),this.toPoint.getPathfinderAnchorPoint(b.endMarker),l({chartObstacles:h,lineObstacles:k.lineObstacles||[],obstacleMetrics:k.chartObstacleMetrics,hardBounds:{xMin:0,xMax:f.plotWidth,yMin:0,yMax:f.plotHeight},obstacleOptions:{margin:b.algorithmMargin},startDirectionX:k.getAlgorithmStartDirection(b.startMarker)},b))};e.prototype.render=function(){var b=this.fromPoint,k=b.series,f=k.chart,a= f.pathfinder,h=l(f.options.connectors,k.options.connectors,b.options.connectors,this.options),d={};f.styledMode||(d.stroke=h.lineColor||b.color,d["stroke-width"]=h.lineWidth,h.dashStyle&&(d.dashstyle=h.dashStyle));d["class"]="highcharts-point-connecting-path highcharts-color-"+b.colorIndex;h=l(d,h);y(h.marker.radius)||(h.marker.radius=z(q(Math.ceil((h.algorithmMargin||8)/2)-1,1),5));b=this.getPath(h);f=b.path;b.obstacles&&(a.lineObstacles=a.lineObstacles||[],a.lineObstacles=a.lineObstacles.concat(b.obstacles)); this.renderPath(f,d,k.options.animation);this.addMarker("start",l(h.marker,h.startMarker),f);this.addMarker("end",l(h.marker,h.endMarker),f)};e.prototype.destroy=function(){this.graphics&&(b(this.graphics,function(b){b.destroy()}),delete this.graphics)};return e}();e.Connection=n;u(v.prototype,{getPathfinderAnchorPoint:function(b){var m=w(this);switch(b.align){case "right":var k="xMax";break;case "left":k="xMin"}switch(b.verticalAlign){case "top":var f="yMin";break;case "bottom":f="yMax"}return{x:k? m[k]:(m.xMin+m.xMax)/2,y:f?m[f]:(m.yMin+m.yMax)/2}},getRadiansToVector:function(b,m){var k;y(m)||(k=w(this))&&(m={x:(k.xMin+k.xMax)/2,y:(k.yMin+k.yMax)/2});return Math.atan2(m.y-b.y,b.x-m.x)},getMarkerVector:function(b,m,k){var f=2*Math.PI,a=w(this),h=a.xMax-a.xMin,d=a.yMax-a.yMin,r=Math.atan2(d,h),c=!1;h/=2;var A=d/2,t=a.xMin+h;a=a.yMin+A;for(var e=t,D=a,B={},E=1,g=1;b<-Math.PI;)b+=f;for(;b>Math.PI;)b-=f;f=Math.tan(b);b>-r&&b<=r?(g=-1,c=!0):b>r&&b<=Math.PI-r?g=-1:b>Math.PI-r||b<=-(Math.PI-r)?(E= -1,c=!0):E=-1;c?(e+=E*h,D+=g*h*f):(e+=d/(2*f)*E,D+=g*A);k.x!==t&&(e=k.x);k.y!==a&&(D=k.y);B.x=e+m*Math.cos(b);B.y=D-m*Math.sin(b);return B}});return n});J(e,"Gantt/PathfinderAlgorithms.js",[e["Core/Utilities.js"]],function(e){function n(b,e,l){l=l||0;var m=b.length-1;e-=1e-7;for(var q,k;l<=m;)if(q=m+l>>1,k=e-b[q].xMin,0<k)l=q+1;else if(0>k)m=q-1;else return q;return 0<l?l-1:0}function v(b,e){for(var m=n(b,e.x+1)+1;m--;){var q;if(q=b[m].xMax>=e.x)q=b[m],q=e.x<=q.xMax&&e.x>=q.xMin&&e.y<=q.yMax&&e.y>= q.yMin;if(q)return m}return-1}function x(b){var e=[];if(b.length){e.push(["M",b[0].start.x,b[0].start.y]);for(var m=0;m<b.length;++m)e.push(["L",b[m].end.x,b[m].end.y])}return e}function w(b,e){b.yMin=l(b.yMin,e.yMin);b.yMax=u(b.yMax,e.yMax);b.xMin=l(b.xMin,e.xMin);b.xMax=u(b.xMax,e.xMax)}var y=e.extend,C=e.pick,u=Math.min,l=Math.max,b=Math.abs;e=y(function(e,q,l){function m(a,d,b,h,f){a={x:a.x,y:a.y};a[d]=b[h||d]+(f||0);return a}function n(a,d,h){var c=b(d[h]-a[h+"Min"])>b(d[h]-a[h+"Max"]);return m(d, h,a,h+(c?"Max":"Min"),c?1:-1)}var k=[],f=C(l.startDirectionX,b(q.x-e.x)>b(q.y-e.y))?"x":"y",a=l.chartObstacles,h=v(a,e);l=v(a,q);if(-1<l){var d=a[l];l=n(d,q,f);d={start:l,end:q};var r=l}else r=q;-1<h&&(a=a[h],l=n(a,e,f),k.push({start:e,end:l}),l[f]>=e[f]===l[f]>=r[f]&&(f="y"===f?"x":"y",q=e[f]<q[f],k.push({start:l,end:m(l,f,a,f+(q?"Max":"Min"),q?1:-1)}),f="y"===f?"x":"y"));e=k.length?k[k.length-1].end:e;l=m(e,f,r);k.push({start:e,end:l});f=m(l,"y"===f?"x":"y",r);k.push({start:l,end:f});k.push(d); return{path:x(k),obstacles:k}},{requiresObstacles:!0});return{fastAvoid:y(function(e,q,z){function m(a,g,c){var p,d=a.x<g.x?1:-1;if(a.x<g.x){var b=a;var h=g}else b=g,h=a;if(a.y<g.y){var f=a;var t=g}else f=g,t=a;for(p=0>d?u(n(B,h.x),B.length-1):0;B[p]&&(0<d&&B[p].xMin<=h.x||0>d&&B[p].xMax>=b.x);){if(B[p].xMin<=h.x&&B[p].xMax>=b.x&&B[p].yMin<=t.y&&B[p].yMax>=f.y)return c?{y:a.y,x:a.x<g.x?B[p].xMin-1:B[p].xMax+1,obstacle:B[p]}:{x:a.x,y:a.y<g.y?B[p].yMin-1:B[p].yMax+1,obstacle:B[p]};p+=d}return g}function y(a, g,c,d,h){var p=h.soft,f=h.hard,t=d?"x":"y",r={x:g.x,y:g.y},e={x:g.x,y:g.y};h=a[t+"Max"]>=p[t+"Max"];p=a[t+"Min"]<=p[t+"Min"];var k=a[t+"Max"]>=f[t+"Max"];f=a[t+"Min"]<=f[t+"Min"];var A=b(a[t+"Min"]-g[t]),H=b(a[t+"Max"]-g[t]);c=10>b(A-H)?g[t]<c[t]:H<A;e[t]=a[t+"Min"];r[t]=a[t+"Max"];a=m(g,e,d)[t]!==e[t];g=m(g,r,d)[t]!==r[t];c=a?g?c:!0:g?!1:c;c=p?h?c:!0:h?!1:c;return f?k?c:!0:k?!1:c}function k(a,g,c){if(a.x===g.x&&a.y===g.y)return[];var d=c?"x":"y",b=z.obstacleOptions.margin;var p={soft:{xMin:A,xMax:t, yMin:I,yMax:D},hard:z.hardBounds};var h=v(B,a);if(-1<h){h=B[h];p=y(h,a,g,c,p);w(h,z.hardBounds);var f=c?{y:a.y,x:h[p?"xMax":"xMin"]+(p?1:-1)}:{x:a.x,y:h[p?"yMax":"yMin"]+(p?1:-1)};var e=v(B,f);-1<e&&(e=B[e],w(e,z.hardBounds),f[d]=p?l(h[d+"Max"]-b+1,(e[d+"Min"]+h[d+"Max"])/2):u(h[d+"Min"]+b-1,(e[d+"Max"]+h[d+"Min"])/2),a.x===f.x&&a.y===f.y?(r&&(f[d]=p?l(h[d+"Max"],e[d+"Max"])+1:u(h[d+"Min"],e[d+"Min"])-1),r=!r):r=!1);a=[{start:a,end:f}]}else d=m(a,{x:c?g.x:a.x,y:c?a.y:g.y},c),a=[{start:a,end:{x:d.x, y:d.y}}],d[c?"x":"y"]!==g[c?"x":"y"]&&(p=y(d.obstacle,d,g,!c,p),w(d.obstacle,z.hardBounds),p={x:c?d.x:d.obstacle[p?"xMax":"xMin"]+(p?1:-1),y:c?d.obstacle[p?"yMax":"yMin"]+(p?1:-1):d.y},c=!c,a=a.concat(k({x:d.x,y:d.y},p,c)));return a=a.concat(k(a[a.length-1].end,g,!c))}function f(a,g,c){var d=u(a.xMax-g.x,g.x-a.xMin)<u(a.yMax-g.y,g.y-a.yMin);c=y(a,g,c,d,{soft:z.hardBounds,hard:z.hardBounds});return d?{y:g.y,x:a[c?"xMax":"xMin"]+(c?1:-1)}:{x:g.x,y:a[c?"yMax":"yMin"]+(c?1:-1)}}var a=C(z.startDirectionX, b(q.x-e.x)>b(q.y-e.y)),h=a?"x":"y",d=[],r=!1,c=z.obstacleMetrics,A=u(e.x,q.x)-c.maxWidth-10,t=l(e.x,q.x)+c.maxWidth+10,I=u(e.y,q.y)-c.maxHeight-10,D=l(e.y,q.y)+c.maxHeight+10,B=z.chartObstacles;var E=n(B,A);c=n(B,t);B=B.slice(E,c+1);if(-1<(c=v(B,q))){var g=f(B[c],q,e);d.push({end:q,start:g});q=g}for(;-1<(c=v(B,q));)E=0>q[h]-e[h],g={x:q.x,y:q.y},g[h]=B[c][E?h+"Max":h+"Min"]+(E?1:-1),d.push({end:q,start:g}),q=g;e=k(e,q,a);e=e.concat(d.reverse());return{path:x(e),obstacles:e}},{requiresObstacles:!0}), straight:function(b,e){return{path:[["M",b.x,b.y],["L",e.x,e.y]],obstacles:[{start:b,end:e}]}},simpleConnect:e}});J(e,"Gantt/Pathfinder.js",[e["Gantt/Connection.js"],e["Core/Chart/Chart.js"],e["Core/Globals.js"],e["Core/Options.js"],e["Core/Series/Point.js"],e["Core/Utilities.js"],e["Gantt/PathfinderAlgorithms.js"]],function(e,n,v,x,w,y,C){function u(a){var c=a.shapeArgs;return c?{xMin:c.x,xMax:c.x+c.width,yMin:c.y,yMax:c.y+c.height}:(c=a.graphic&&a.graphic.getBBox())?{xMin:a.plotX-c.width/2,xMax:a.plotX+ c.width/2,yMin:a.plotY-c.height/2,yMax:a.plotY+c.height/2}:null}function l(d){for(var c=d.length,b=0,t,f,e=[],r=function(a,g,c){c=k(c,10);var d=a.yMax+c>g.yMin-c&&a.yMin-c<g.yMax+c,b=a.xMax+c>g.xMin-c&&a.xMin-c<g.xMax+c,p=d?a.xMin>g.xMax?a.xMin-g.xMax:g.xMin-a.xMax:Infinity,t=b?a.yMin>g.yMax?a.yMin-g.yMax:g.yMin-a.yMax:Infinity;return b&&d?c?r(a,g,Math.floor(c/2)):Infinity:h(p,t)};b<c;++b)for(t=b+1;t<c;++t)f=r(d[b],d[t]),80>f&&e.push(f);e.push(80);return a(Math.floor(e.sort(function(a,g){return a- g})[Math.floor(e.length/10)]/2-1),1)}function b(a){if(a.options.pathfinder||a.series.reduce(function(a,d){d.options&&G(!0,d.options.connectors=d.options.connectors||{},d.options.pathfinder);return a||d.options&&d.options.pathfinder},!1))G(!0,a.options.connectors=a.options.connectors||{},a.options.pathfinder),z('WARNING: Pathfinder options have been renamed. Use "chart.connectors" or "series.connectors" instead.')}"";var m=y.addEvent,q=y.defined,z=y.error,F=y.extend,G=y.merge,k=y.pick,f=y.splat,a= Math.max,h=Math.min;F(x.defaultOptions,{connectors:{type:"straight",lineWidth:1,marker:{enabled:!1,align:"center",verticalAlign:"middle",inside:!1,lineWidth:1},startMarker:{symbol:"diamond"},endMarker:{symbol:"arrow-filled"}}});var d=function(){function a(a){this.lineObstacles=this.group=this.connections=this.chartObstacleMetrics=this.chartObstacles=this.chart=void 0;this.init(a)}a.prototype.init=function(a){this.chart=a;this.connections=[];m(a,"redraw",function(){this.pathfinder.update()})};a.prototype.update= function(a){var c=this.chart,d=this,b=d.connections;d.connections=[];c.series.forEach(function(a){a.visible&&!a.options.isInternal&&a.points.forEach(function(a){var g,b=a.options&&a.options.connect&&f(a.options.connect);a.visible&&!1!==a.isInside&&b&&b.forEach(function(b){g=c.get("string"===typeof b?b:b.to);g instanceof w&&g.series.visible&&g.visible&&!1!==g.isInside&&d.connections.push(new e(a,g,"string"===typeof b?{}:b))})})});for(var h=0,r,k,g=b.length,p=d.connections.length;h<g;++h){k=!1;for(r= 0;r<p;++r)if(b[h].fromPoint===d.connections[r].fromPoint&&b[h].toPoint===d.connections[r].toPoint){d.connections[r].graphics=b[h].graphics;k=!0;break}k||b[h].destroy()}delete this.chartObstacles;delete this.lineObstacles;d.renderConnections(a)};a.prototype.renderConnections=function(a){a?this.chart.series.forEach(function(a){var c=function(){var c=a.chart.pathfinder;(c&&c.connections||[]).forEach(function(c){c.fromPoint&&c.fromPoint.series===a&&c.render()});a.pathfinderRemoveRenderEvent&&(a.pathfinderRemoveRenderEvent(), delete a.pathfinderRemoveRenderEvent)};!1===a.options.animation?c():a.pathfinderRemoveRenderEvent=m(a,"afterAnimate",c)}):this.connections.forEach(function(a){a.render()})};a.prototype.getChartObstacles=function(a){for(var c=[],d=this.chart.series,b=k(a.algorithmMargin,0),h,f=0,e=d.length;f<e;++f)if(d[f].visible&&!d[f].options.isInternal)for(var g=0,p=d[f].points.length,r;g<p;++g)r=d[f].points[g],r.visible&&(r=u(r))&&c.push({xMin:r.xMin-b,xMax:r.xMax+b,yMin:r.yMin-b,yMax:r.yMax+b});c=c.sort(function(a, g){return a.xMin-g.xMin});q(a.algorithmMargin)||(h=a.algorithmMargin=l(c),c.forEach(function(a){a.xMin-=h;a.xMax+=h;a.yMin-=h;a.yMax+=h}));return c};a.prototype.getObstacleMetrics=function(a){for(var c=0,d=0,b,h,f=a.length;f--;)b=a[f].xMax-a[f].xMin,h=a[f].yMax-a[f].yMin,c<b&&(c=b),d<h&&(d=h);return{maxHeight:d,maxWidth:c}};a.prototype.getAlgorithmStartDirection=function(a){var c="top"!==a.verticalAlign&&"bottom"!==a.verticalAlign;return"left"!==a.align&&"right"!==a.align?c?void 0:!1:c?!0:void 0}; return a}();d.prototype.algorithms=C;v.Pathfinder=d;F(w.prototype,{getPathfinderAnchorPoint:function(a){var c=u(this);switch(a.align){case "right":var d="xMax";break;case "left":d="xMin"}switch(a.verticalAlign){case "top":var b="yMin";break;case "bottom":b="yMax"}return{x:d?c[d]:(c.xMin+c.xMax)/2,y:b?c[b]:(c.yMin+c.yMax)/2}},getRadiansToVector:function(a,c){var d;q(c)||(d=u(this))&&(c={x:(d.xMin+d.xMax)/2,y:(d.yMin+d.yMax)/2});return Math.atan2(c.y-a.y,a.x-c.x)},getMarkerVector:function(a,c,d){var b= 2*Math.PI,h=u(this),f=h.xMax-h.xMin,e=h.yMax-h.yMin,r=Math.atan2(e,f),g=!1;f/=2;var p=e/2,k=h.xMin+f;h=h.yMin+p;for(var m=k,l=h,q={},A=1,n=1;a<-Math.PI;)a+=b;for(;a>Math.PI;)a-=b;b=Math.tan(a);a>-r&&a<=r?(n=-1,g=!0):a>r&&a<=Math.PI-r?n=-1:a>Math.PI-r||a<=-(Math.PI-r)?(A=-1,g=!0):A=-1;g?(m+=A*f,l+=n*f*b):(m+=e/(2*b)*A,l+=n*p);d.x!==k&&(m=d.x);d.y!==h&&(l=d.y);q.x=m+c*Math.cos(a);q.y=l-c*Math.sin(a);return q}});n.prototype.callbacks.push(function(a){!1!==a.options.connectors.enabled&&(b(a),this.pathfinder= new d(this),this.pathfinder.update(!0))});return d});J(e,"Series/XRangeSeries.js",[e["Core/Axis/Axis.js"],e["Core/Globals.js"],e["Core/Color.js"],e["Core/Series/Point.js"],e["Core/Utilities.js"]],function(e,n,v,x,w){var y=v.parse;v=w.addEvent;var C=w.clamp,u=w.correctFloat,l=w.defined,b=w.find,m=w.isNumber,q=w.isObject,z=w.merge,F=w.pick;w=w.seriesType;var G=n.seriesTypes.column,k=n.seriesTypes,f=n.Series;w("xrange","column",{colorByPoint:!0,dataLabels:{formatter:function(){var a=this.point.partialFill; q(a)&&(a=a.amount);if(m(a)&&0<a)return u(100*a)+"%"},inside:!0,verticalAlign:"middle"},tooltip:{headerFormat:'<span style="font-size: 10px">{point.x} - {point.x2}</span><br/>',pointFormat:'<span style="color:{point.color}">\u25cf</span> {series.name}: <b>{point.yCategory}</b><br/>'},borderRadius:3,pointRange:0},{type:"xrange",parallelArrays:["x","x2","y"],requireSorting:!1,animate:k.line.prototype.animate,cropShoulder:1,getExtremesFromAll:!0,autoIncrement:n.noop,buildKDTree:n.noop,init:function(){k.column.prototype.init.apply(this, arguments);this.options.stacking=void 0},getColumnMetrics:function(){function a(){b.series.forEach(function(a){var c=a.xAxis;a.xAxis=a.yAxis;a.yAxis=c})}var b=this.chart;a();var d=G.prototype.getColumnMetrics.call(this);a();return d},cropData:function(a,b,d,e){b=f.prototype.cropData.call(this,this.x2Data,b,d,e);b.xData=a.slice(b.start,b.end);return b},findPointIndex:function(a){var h=this.cropped,d=this.cropStart,f=this.points,c=a.id;if(c)var e=(e=b(f,function(a){return a.id===c}))?e.index:void 0; "undefined"===typeof e&&(e=(e=b(f,function(c){return c.x===a.x&&c.x2===a.x2&&!c.touched}))?e.index:void 0);h&&m(e)&&m(d)&&e>=d&&(e-=d);return e},translatePoint:function(a){var b=this.xAxis,d=this.yAxis,f=this.columnMetrics,c=this.options,e=c.minPointLength||0,t=a.plotX,k=F(a.x2,a.x+(a.len||0)),D=b.translate(k,0,0,0,1);k=Math.abs(D-t);var B=this.chart.inverted,E=F(c.borderWidth,1)%2/2,g=f.offset,p=Math.round(f.width);e&&(e-=k,0>e&&(e=0),t-=e/2,D+=e/2);t=Math.max(t,-10);D=C(D,-10,b.len+10);l(a.options.pointWidth)&& (g-=(Math.ceil(a.options.pointWidth)-p)/2,p=Math.ceil(a.options.pointWidth));c.pointPlacement&&m(a.plotY)&&d.categories&&(a.plotY=d.translate(a.y,0,1,0,1,c.pointPlacement));a.shapeArgs={x:Math.floor(Math.min(t,D))+E,y:Math.floor(a.plotY+g)+E,width:Math.round(Math.abs(D-t)),height:p,r:this.options.borderRadius};c=a.shapeArgs.x;e=c+a.shapeArgs.width;0>c||e>b.len?(c=C(c,0,b.len),e=C(e,0,b.len),D=e-c,a.dlBox=z(a.shapeArgs,{x:c,width:e-c,centerX:D?D/2:null})):a.dlBox=null;c=a.tooltipPos;e=B?1:0;D=B?0: 1;f=this.columnMetrics?this.columnMetrics.offset:-f.width/2;c[e]=C(c[e]+k/2*(b.reversed?-1:1)*(B?-1:1),0,b.len-1);c[D]=C(c[D]+(B?-1:1)*f,0,d.len-1);if(f=a.partialFill)q(f)&&(f=f.amount),m(f)||(f=0),d=a.shapeArgs,a.partShapeArgs={x:d.x,y:d.y,width:d.width,height:d.height,r:this.options.borderRadius},t=Math.max(Math.round(k*f+a.plotX-t),0),a.clipRectArgs={x:b.reversed?d.x+k-t:d.x,y:d.y,width:t,height:d.height}},translate:function(){G.prototype.translate.apply(this,arguments);this.points.forEach(function(a){this.translatePoint(a)}, this)},drawPoint:function(a,b){var d=this.options,f=this.chart.renderer,c=a.graphic,h=a.shapeType,e=a.shapeArgs,k=a.partShapeArgs,m=a.clipRectArgs,l=a.partialFill,E=d.stacking&&!d.borderRadius,g=a.state,p=d.states[g||"normal"]||{},H="undefined"===typeof g?"attr":b;g=this.pointAttribs(a,g);p=F(this.chart.options.chart.animation,p.animation);if(a.isNull||!1===a.visible)c&&(a.graphic=c.destroy());else{if(c)c.rect[b](e);else a.graphic=c=f.g("point").addClass(a.getClassName()).add(a.group||this.group), c.rect=f[h](z(e)).addClass(a.getClassName()).addClass("highcharts-partfill-original").add(c);k&&(c.partRect?(c.partRect[b](z(k)),c.partialClipRect[b](z(m))):(c.partialClipRect=f.clipRect(m.x,m.y,m.width,m.height),c.partRect=f[h](k).addClass("highcharts-partfill-overlay").add(c).clip(c.partialClipRect)));this.chart.styledMode||(c.rect[b](g,p).shadow(d.shadow,null,E),k&&(q(l)||(l={}),q(d.partialFill)&&(l=z(l,d.partialFill)),a=l.fill||y(g.fill).brighten(-.3).get()||y(a.color||this.color).brighten(-.3).get(), g.fill=a,c.partRect[H](g,p).shadow(d.shadow,null,E)))}},drawPoints:function(){var a=this,b=a.getAnimationVerb();a.points.forEach(function(d){a.drawPoint(d,b)})},getAnimationVerb:function(){return this.chart.pointCount<(this.options.animationLimit||250)?"animate":"attr"}},{resolveColor:function(){var a=this.series;if(a.options.colorByPoint&&!this.options.color){var b=a.options.colors||a.chart.options.colors;var d=this.y%(b?b.length:a.chart.options.chart.colorCount);b=b&&b[d];a.chart.styledMode||(this.color= b);this.options.colorIndex||(this.colorIndex=d)}else this.color||(this.color=a.color)},init:function(){x.prototype.init.apply(this,arguments);this.y||(this.y=0);return this},setState:function(){x.prototype.setState.apply(this,arguments);this.series.drawPoint(this,this.series.getAnimationVerb())},getLabelConfig:function(){var a=x.prototype.getLabelConfig.call(this),b=this.series.yAxis.categories;a.x2=this.x2;a.yCategory=this.yCategory=b&&b[this.y];return a},tooltipDateKeys:["x","x2"],isValid:function(){return"number"=== typeof this.x&&"number"===typeof this.x2}});v(e,"afterGetSeriesExtremes",function(){var a=this.series,b;if(this.isXAxis){var d=F(this.dataMax,-Number.MAX_VALUE);a.forEach(function(a){a.x2Data&&a.x2Data.forEach(function(a){a>d&&(d=a,b=!0)})});b&&(this.dataMax=d)}});""});J(e,"Series/GanttSeries.js",[e["Core/Globals.js"],e["Core/Options.js"],e["Core/Utilities.js"]],function(e,n,v){var x=n.dateFormat,w=v.isNumber,y=v.merge,C=v.pick;n=v.seriesType;var u=v.splat,l=e.seriesTypes.xrange;n("gantt","xrange", {grouping:!1,dataLabels:{enabled:!0},tooltip:{headerFormat:'<span style="font-size: 10px">{series.name}</span><br/>',pointFormat:null,pointFormatter:function(){var b=this.series,e=b.chart.tooltip,l=b.xAxis,n=b.tooltipOptions.dateTimeLabelFormats,w=l.options.startOfWeek,v=b.tooltipOptions,k=v.xDateFormat;b=this.options.milestone;var f="<b>"+(this.name||this.yCategory)+"</b>";if(v.pointFormat)return this.tooltipFormatter(v.pointFormat);k||(k=u(e.getDateFormat(l.closestPointRange,this.start,w,n))[0]); e=x(k,this.start);l=x(k,this.end);f+="<br/>";return b?f+(e+"<br/>"):f+("Start: "+e+"<br/>End: ")+(l+"<br/>")}},connectors:{type:"simpleConnect",animation:{reversed:!0},startMarker:{enabled:!0,symbol:"arrow-filled",radius:4,fill:"#fa0",align:"left"},endMarker:{enabled:!1,align:"right"}}},{pointArrayMap:["start","end","y"],keyboardMoveVertical:!1,translatePoint:function(b){l.prototype.translatePoint.call(this,b);if(b.options.milestone){var e=b.shapeArgs;var q=e.height;b.shapeArgs={x:e.x-q/2,y:e.y,width:q, height:q}}},drawPoint:function(b,e){var m=this.options,n=this.chart.renderer,u=b.shapeArgs,v=b.plotY,k=b.graphic,f=b.selected&&"select",a=m.stacking&&!m.borderRadius;if(b.options.milestone)if(w(v)&&null!==b.y&&!1!==b.visible){u=n.symbols.diamond(u.x,u.y,u.width,u.height);if(k)k[e]({d:u});else b.graphic=n.path(u).addClass(b.getClassName(),!0).add(b.group||this.group);this.chart.styledMode||b.graphic.attr(this.pointAttribs(b,f)).shadow(m.shadow,null,a)}else k&&(b.graphic=k.destroy());else l.prototype.drawPoint.call(this, b,e)},setData:e.Series.prototype.setData,setGanttPointAliases:function(b){function e(e,l){"undefined"!==typeof l&&(b[e]=l)}e("x",C(b.start,b.x));e("x2",C(b.end,b.