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