highcharts-fork-vermorxt
Version:
JavaScript charting framework
107 lines (104 loc) • 88 kB
JavaScript
/*
Highcharts Gantt JS v8.0.4 (2020-03-10)
Gantt series
(c) 2016-2019 Lars A. V. Cabrera
License: www.highcharts.com/license
*/
(function(p){"object"===typeof module&&module.exports?(p["default"]=p,module.exports=p):"function"===typeof define&&define.amd?define("highcharts/modules/gantt",["highcharts"],function(E){p(E);p.Highcharts=E;return p}):p("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(p){function E(d,a,z,k){d.hasOwnProperty(a)||(d[a]=k.apply(null,z))}p=p?p._modules:{};E(p,"parts-gantt/CurrentDateIndicator.js",[p["parts/Globals.js"],p["parts/Utilities.js"],p["parts/PlotLineOrBand.js"]],function(d,a,z){var k=
a.addEvent,u=a.merge;a=a.wrap;var p={currentDateIndicator:!0,color:"#ccd6eb",width:2,label:{format:"%a, %b %d %Y, %H:%M",formatter:function(a,k){return d.dateFormat(k,a)},rotation:0,style:{fontSize:"10px"}}};k(d.Axis,"afterSetOptions",function(){var a=this.options,k=a.currentDateIndicator;k&&(k="object"===typeof k?u(p,k):u(p),k.value=new Date,a.plotLines||(a.plotLines=[]),a.plotLines.push(k))});k(z,"render",function(){this.label&&this.label.attr({text:this.getLabelText(this.options.label)})});a(z.prototype,
"getLabelText",function(a,k){var d=this.options;return d.currentDateIndicator&&d.label&&"function"===typeof d.label.formatter?(d.value=new Date,d.label.formatter.call(this,d.value,d.label.format)):a.call(this,k)})});E(p,"parts-gantt/GridAxis.js",[p["parts/Globals.js"],p["parts/Tick.js"],p["parts/Utilities.js"]],function(d,a,z){var k=z.addEvent,u=z.defined,p=z.erase,D=z.find,y=z.isArray,A=z.isNumber,x=z.merge,t=z.pick,r=z.timeUnits,B=z.wrap,F=d.dateFormat,q=function(b){return z.isObject(b,!0)},h=d.Chart,
c=d.Axis,l=function(b){var f=b.options;f.labels||(f.labels={});f.labels.align=t(f.labels.align,"center");b.categories||(f.showLastLabel=!1);b.labelRotation=0;f.labels.rotation=0},C={top:0,right:1,bottom:2,left:3,0:"top",1:"right",2:"bottom",3:"left"};c.prototype.isOuterAxis=function(){var b=this,f=b.columnIndex,n=b.linkedParent&&b.linkedParent.columns||b.columns,c=f?b.linkedParent:b,e=-1,l=0;b.chart[b.coll].forEach(function(f,g){f.side!==b.side||f.options.isInternal||(l=g,f===c&&(e=g))});return l===
e&&(A(f)?n.length===f:!0)};c.prototype.getMaxLabelDimensions=function(b,f){var n={width:0,height:0};f.forEach(function(f){f=b[f];if(q(f)){var c=q(f.label)?f.label:{};f=c.getBBox?c.getBBox().height:0;c.textStr&&!A(c.textPxLength)&&(c.textPxLength=c.getBBox().width);c=A(c.textPxLength)?Math.round(c.textPxLength):0;n.height=Math.max(f,n.height);n.width=Math.max(c,n.width)}});return n};d.dateFormats.W=function(b){b=new this.Date(b);var f=(this.get("Day",b)+6)%7,n=new this.Date(b.valueOf());this.set("Date",
n,this.get("Date",b)-f+3);f=new this.Date(this.get("FullYear",n),0,1);4!==this.get("Day",f)&&(this.set("Month",b,0),this.set("Date",b,1+(11-this.get("Day",f))%7));return(1+Math.floor((n.valueOf()-f.valueOf())/6048E5)).toString()};d.dateFormats.E=function(b){return F("%a",b,!0).charAt(0)};k(a,"afterGetLabelPosition",function(b){var f=this.label,n=this.axis,c=n.reversed,e=n.chart,l=n.options,v=l&&q(l.grid)?l.grid:{};l=n.options.labels;var g=l.align,m=C[n.side],w=b.tickmarkOffset,G=n.tickPositions,K=
this.pos-w;G=A(G[b.index+1])?G[b.index+1]-w:n.max+w;var H=n.tickSize("tick",!0);w=y(H)?H[0]:0;H=H&&H[1]/2;if(!0===v.enabled){if("top"===m){v=n.top+n.offset;var h=v-w}else"bottom"===m?(h=e.chartHeight-n.bottom+n.offset,v=h+w):(v=n.top+n.len-n.translate(c?G:K),h=n.top+n.len-n.translate(c?K:G));"right"===m?(m=e.chartWidth-n.right+n.offset,c=m+w):"left"===m?(c=n.left+n.offset,m=c-w):(m=Math.round(n.left+n.translate(c?G:K))-H,c=Math.round(n.left+n.translate(c?K:G))-H);this.slotWidth=c-m;b.pos.x="left"===
g?m:"right"===g?c:m+(c-m)/2;b.pos.y=h+(v-h)/2;e=e.renderer.fontMetrics(l.style.fontSize,f.element);f=f.getBBox().height;l.useHTML?b.pos.y+=e.b+-(f/2):(f=Math.round(f/e.h),b.pos.y+=(e.b-(e.h-e.f))/2+-((f-1)*e.h/2));b.pos.x+=n.horiz&&l.x||0}});k(c,"afterTickSize",function(b){var f=this.defaultLeftAxisOptions,n=this.horiz,c=this.options.grid;c=void 0===c?{}:c;var e=this.maxLabelDimensions;c.enabled&&(f=2*Math.abs(f.labels.x),n=n?c.cellHeight||f+e.height:f+e.width,y(b.tickSize)?b.tickSize[0]=n:b.tickSize=
[n])});k(c,"afterGetTitlePosition",function(b){var f=this.options;if(!0===(f&&q(f.grid)?f.grid:{}).enabled){var c=this.axisTitle,e=c&&c.getBBox().width,l=this.horiz,h=this.left,v=this.top,g=this.width,m=this.height,w=f.title;f=this.opposite;var G=this.offset,K=this.tickSize()||[0],H=w.x||0,r=w.y||0,I=t(w.margin,l?5:10);c=this.chart.renderer.fontMetrics(w.style&&w.style.fontSize,c).f;K=(l?v+m:h)+K[0]/2*(f?-1:1)*(l?1:-1)+(this.side===C.bottom?c:0);b.titlePosition.x=l?h-e/2-I+H:K+(f?g:0)+G+H;b.titlePosition.y=
l?K-(f?m:0)+(f?c:-c)/2+G+r:v-I+r}});B(c.prototype,"unsquish",function(b){var f=this.options;return!0===(f&&q(f.grid)?f.grid:{}).enabled&&this.categories?this.tickInterval:b.apply(this,Array.prototype.slice.call(arguments,1))});k(c,"afterSetOptions",function(b){var f=this.options;b=b.userOptions;var c=f&&q(f.grid)?f.grid:{};if(!0===c.enabled){var e=x(!0,{className:"highcharts-grid-axis "+(b.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]]},b);"xAxis"===this.coll&&(u(b.linkedTo)&&!u(b.tickPixelInterval)&&(e.tickPixelInterval=350),u(b.tickPixelInterval)||!u(b.linkedTo)||u(b.tickPositioner)||u(b.tickInterval)||(e.tickPositioner=
function(b,f){var c=this.linkedParent&&this.linkedParent.tickPositions&&this.linkedParent.tickPositions.info;if(c){var g,m=e.units;for(g=0;g<m.length;g++)if(m[g][0]===c.unitName){var w=g;break}if(m[w+1]){var n=m[w+1][0];var l=(m[w+1][1]||[1])[0]}else"year"===c.unitName&&(n="year",l=10*c.count);c=r[n];this.tickInterval=c*l;return this.getTimeTicks({unitRange:c,count:l,unitName:n},b,f,this.options.startOfWeek)}}));x(!0,this.options,e);this.horiz&&(f.minPadding=t(b.minPadding,0),f.maxPadding=t(b.maxPadding,
0));A(f.grid.borderWidth)&&(f.tickWidth=f.lineWidth=c.borderWidth)}});k(c,"afterSetAxisTranslation",function(){var b=this.options,f=b&&q(b.grid)?b.grid:{},c=this.tickPositions&&this.tickPositions.info,e=this.userOptions.labels||{};this.horiz&&(!0===f.enabled&&this.series.forEach(function(b){b.options.pointRange=0}),c&&(!1===b.dateTimeLabelFormats[c.unitName].range||1<c.count)&&!u(e.align)&&(b.labels.align="left",u(e.x)||(b.labels.x=3)))});k(c,"trimTicks",function(){var b=this.options,f=b&&q(b.grid)?
b.grid:{},c=this.categories,e=this.tickPositions,l=e[0],h=e[e.length-1],v=this.linkedParent&&this.linkedParent.min||this.min,g=this.linkedParent&&this.linkedParent.max||this.max,m=this.tickInterval;!0!==f.enabled||c||!this.horiz&&!this.isLinked||(l<v&&l+m>v&&!b.startOnTick&&(e[0]=v),h>g&&h-m<g&&!b.endOnTick&&(e[e.length-1]=g))});k(c,"afterRender",function(){var b=this.options,f=b&&q(b.grid)?b.grid:{},c=this.chart.renderer;if(!0===f.enabled){this.maxLabelDimensions=this.getMaxLabelDimensions(this.ticks,
this.tickPositions);this.rightWall&&this.rightWall.destroy();if(this.isOuterAxis()&&this.axisLine){var e=b.lineWidth;if(e){var l=this.getLinePath(e);var h=l.indexOf("M")+1;var v=l.indexOf("L")+1;f=l.indexOf("M")+2;var g=l.indexOf("L")+2;var m=(this.tickSize("tick")[0]-1)*(this.side===C.top||this.side===C.left?-1:1);this.horiz?(l[f]+=m,l[g]+=m):(l[h]+=m,l[v]+=m);this.axisLineExtra?this.axisLineExtra.animate({d:l}):(this.axisLineExtra=c.path(l).attr({zIndex:7}).addClass("highcharts-axis-line").add(this.axisGroup),
c.styledMode||this.axisLineExtra.attr({stroke:b.lineColor,"stroke-width":e}));this.axisLine[this.showAxis?"show":"hide"](!0)}}(this.columns||[]).forEach(function(g){g.render()})}});var e={afterGetOffset:function(){(this.columns||[]).forEach(function(b){b.getOffset()})},afterInit:function(){var b=this.chart,f=this.userOptions,e=this.options;e=e&&q(e.grid)?e.grid:{};e.enabled&&(l(this),B(this,"labelFormatter",function(b){var g=this.axis,f=g.tickPositions,c=this.value,e=(g.isLinked?g.linkedParent:g).series[0],
n=c===f[0];f=c===f[f.length-1];e=e&&D(e.options.data,function(b){return b[g.isXAxis?"x":"y"]===c});this.isFirst=n;this.isLast=f;this.point=e;return b.call(this)}));if(e.columns)for(var h=this.columns=[],t=this.columnIndex=0;++t<e.columns.length;){var C=x(f,e.columns[e.columns.length-t-1],{linkedTo:0,type:"category"});delete C.grid.columns;C=new c(this.chart,C,!0);C.isColumn=!0;C.columnIndex=t;p(b.axes,C);p(b[this.coll],C);h.push(C)}},afterSetOptions:function(b){b=(b=b.userOptions)&&q(b.grid)?b.grid:
{};var f=b.columns;b.enabled&&f&&x(!0,this.options,f[f.length-1])},afterSetScale:function(){(this.columns||[]).forEach(function(b){b.setScale()})},destroy:function(b){(this.columns||[]).forEach(function(f){f.destroy(b.keepEvents)})},init:function(b){var f=(b=b.userOptions)&&q(b.grid)?b.grid:{};f.enabled&&u(f.borderColor)&&(b.tickColor=b.lineColor=f.borderColor)}};Object.keys(e).forEach(function(b){k(c,b,e[b])});k(h,"afterSetChartSize",function(){this.axes.forEach(function(b){(b.columns||[]).forEach(function(b){b.setAxisSize();
b.setAxisTranslation()})})})});E(p,"modules/static-scale.src.js",[p["parts/Globals.js"],p["parts/Utilities.js"]],function(d,a){var z=a.addEvent,k=a.defined,u=a.isNumber,p=a.pick;a=d.Chart;z(d.Axis,"afterSetOptions",function(){var a=this.chart.options&&this.chart.options.chart;!this.horiz&&u(this.options.staticScale)&&(!a.height||a.scrollablePlotArea&&a.scrollablePlotArea.minHeight)&&(this.staticScale=this.options.staticScale)});a.prototype.adjustHeight=function(){"adjustHeight"!==this.redrawTrigger&&
((this.axes||[]).forEach(function(a){var d=a.chart,u=!!d.initiatedScale&&d.options.animation,x=a.options.staticScale;if(a.staticScale&&k(a.min)){var t=p(a.unitLength,a.max+a.tickInterval-a.min)*x;t=Math.max(t,x);x=t-d.plotHeight;1<=Math.abs(x)&&(d.plotHeight=t,d.redrawTrigger="adjustHeight",d.setSize(void 0,d.chartHeight+x,u));a.series.forEach(function(t){(t=t.sharedClipKey&&d[t.sharedClipKey])&&t.attr({height:d.plotHeight})})}}),this.initiatedScale=!0);this.redrawTrigger=null};z(a,"render",a.prototype.adjustHeight)});
E(p,"mixins/tree-series.js",[p["parts/Color.js"],p["parts/Utilities.js"]],function(d,a){var z=a.extend,k=a.isArray,u=a.isNumber,p=a.isObject,D=a.merge,y=a.pick;return{getColor:function(a,x){var t=x.index,r=x.mapOptionsToLevel,B=x.parentColor,k=x.parentColorIndex,q=x.series,h=x.colors,c=x.siblings,l=q.points,C=q.chart.options.chart,e;if(a){l=l[a.i];a=r[a.level]||{};if(r=l&&a.colorByPoint){var b=l.index%(h?h.length:C.colorCount);var f=h&&h[b]}if(!q.chart.styledMode){h=l&&l.options.color;C=a&&a.color;
if(e=B)e=(e=a&&a.colorVariation)&&"brightness"===e.key?d.parse(B).brighten(t/c*e.to).get():B;e=y(h,C,f,e,q.color)}var n=y(l&&l.options.colorIndex,a&&a.colorIndex,b,k,x.colorIndex)}return{color:e,colorIndex:n}},getLevelOptions:function(a){var x=null;if(p(a)){x={};var t=u(a.from)?a.from:1;var r=a.levels;var B={};var d=p(a.defaults)?a.defaults:{};k(r)&&(B=r.reduce(function(a,h){if(p(h)&&u(h.level)){var c=D({},h);var l="boolean"===typeof c.levelIsConstant?c.levelIsConstant:d.levelIsConstant;delete c.levelIsConstant;
delete c.level;h=h.level+(l?0:t-1);p(a[h])?z(a[h],c):a[h]=c}return a},{}));r=u(a.to)?a.to:1;for(a=0;a<=r;a++)x[a]=D({},d,p(B[a])?B[a]:{})}return x},setTreeValues:function r(a,t){var B=t.before,x=t.idRoot,q=t.mapIdToNode[x],h=t.points[a.i],c=h&&h.options||{},l=0,C=[];z(a,{levelDynamic:a.level-(("boolean"===typeof t.levelIsConstant?t.levelIsConstant:1)?0:q.level),name:y(h&&h.name,""),visible:x===a.id||("boolean"===typeof t.visible?t.visible:!1)});"function"===typeof B&&(a=B(a,t));a.children.forEach(function(c,
b){var f=z({},t);z(f,{index:b,siblings:a.children.length,visible:a.visible});c=r(c,f);C.push(c);c.visible&&(l+=c.val)});a.visible=0<l||a.visible;B=y(c.value,l);z(a,{children:C,childrenTotal:l,isLeaf:a.visible&&!l,val:B});return a},updateRootId:function(a){if(p(a)){var t=p(a.options)?a.options:{};t=y(a.rootNode,t.rootId,"");p(a.userOptions)&&(a.userOptions.rootId=t);a.rootNode=t}return t}}});E(p,"parts-gantt/Tree.js",[p["parts/Utilities.js"]],function(d){var a=d.extend,z=d.isNumber,k=d.pick,u=function(a,
d){var u=a.reduce(function(a,t){var r=k(t.parent,"");"undefined"===typeof a[r]&&(a[r]=[]);a[r].push(t);return a},{});Object.keys(u).forEach(function(a,t){var r=u[a];""!==a&&-1===d.indexOf(a)&&(r.forEach(function(a){t[""].push(a)}),delete t[a])});return u},p=function(d,u,A,x,t,r){var B=0,F=0,q=r&&r.after,h=r&&r.before;u={data:x,depth:A-1,id:d,level:A,parent:u};var c,l;"function"===typeof h&&h(u,r);h=(t[d]||[]).map(function(a){var e=p(a.id,d,A+1,a,t,r),b=a.start;a=!0===a.milestone?b:a.end;c=!z(c)||
b<c?b:c;l=!z(l)||a>l?a:l;B=B+1+e.descendants;F=Math.max(e.height+1,F);return e});x&&(x.start=k(x.start,c),x.end=k(x.end,l));a(u,{children:h,descendants:B,height:F});"function"===typeof q&&q(u,r);return u};return{getListOfParents:u,getNode:p,getTree:function(a,d){var k=a.map(function(a){return a.id});a=u(a,k);return p("",null,1,null,a,d)}}});E(p,"modules/broken-axis.src.js",[p["parts/Globals.js"],p["parts/Utilities.js"]],function(d,a){var p=a.addEvent,k=a.extend,u=a.find,J=a.fireEvent,D=a.isArray,
y=a.pick,A=d.Axis;a=d.Series;var x=function(a,r){return u(r,function(t){return t.from<a&&a<t.to})};k(A.prototype,{isInBreak:function(a,r){var t=a.repeat||Infinity,d=a.from,q=a.to-a.from;r=r>=d?(r-d)%t:t-(d-r)%t;return a.inclusive?r<=q:r<q&&0!==r},isInAnyBreak:function(a,r){var t=this.options.breaks,d=t&&t.length,q;if(d){for(;d--;)if(this.isInBreak(t[d],a)){var h=!0;q||(q=y(t[d].showPoints,!this.isXAxis))}var c=h&&r?h&&!q:h}return c}});p(A,"afterInit",function(){"function"===typeof this.setBreaks&&
this.setBreaks(this.options.breaks,!1)});p(A,"afterSetTickPositions",function(){if(this.isBroken){var a=this.tickPositions,r=this.tickPositions.info,d=[],k;for(k=0;k<a.length;k++)this.isInAnyBreak(a[k])||d.push(a[k]);this.tickPositions=d;this.tickPositions.info=r}});p(A,"afterSetOptions",function(){this.isBroken&&(this.options.ordinal=!1)});A.prototype.setBreaks=function(a,r){function t(c){var l=c,a;for(a=0;a<q.breakArray.length;a++){var e=q.breakArray[a];if(e.to<=c)l-=e.len;else if(e.from>=c)break;
else if(q.isInBreak(e,c)){l-=c-e.from;break}}return l}function d(c){var a;for(a=0;a<q.breakArray.length;a++){var h=q.breakArray[a];if(h.from>=c)break;else h.to<c?c+=h.len:q.isInBreak(h,c)&&(c+=h.len)}return c}var q=this,h=D(a)&&!!a.length;q.isDirty=q.isBroken!==h;q.isBroken=h;q.options.breaks=q.userOptions.breaks=a;q.forceRedraw=!0;q.series.forEach(function(c){c.isDirty=!0});h||q.val2lin!==t||(delete q.val2lin,delete q.lin2val);h&&(q.userOptions.ordinal=!1,q.val2lin=t,q.lin2val=d,q.setExtremes=function(c,
a,h,e,b){if(this.isBroken){for(var f,n=this.options.breaks;f=x(c,n);)c=f.to;for(;f=x(a,n);)a=f.from;a<c&&(a=c)}A.prototype.setExtremes.call(this,c,a,h,e,b)},q.setAxisTranslation=function(c){A.prototype.setAxisTranslation.call(this,c);this.unitLength=null;if(this.isBroken){c=q.options.breaks;var a=[],h=[],e=0,b,f=q.userMin||q.min,n=q.userMax||q.max,t=y(q.pointRangePadding,0),r;c.forEach(function(g){b=g.repeat||Infinity;q.isInBreak(g,f)&&(f+=g.to%b-f%b);q.isInBreak(g,n)&&(n-=n%b-g.from%b)});c.forEach(function(g){v=
g.from;for(b=g.repeat||Infinity;v-b>f;)v-=b;for(;v<f;)v+=b;for(r=v;r<n;r+=b)a.push({value:r,move:"in"}),a.push({value:r+(g.to-g.from),move:"out",size:g.breakSize})});a.sort(function(g,b){return g.value===b.value?("in"===g.move?0:1)-("in"===b.move?0:1):g.value-b.value});var d=0;var v=f;a.forEach(function(g){d+="in"===g.move?1:-1;1===d&&"in"===g.move&&(v=g.value);0===d&&(h.push({from:v,to:g.value,len:g.value-v-(g.size||0)}),e+=g.value-v-(g.size||0))});q.breakArray=h;q.unitLength=n-f-e+t;J(q,"afterBreaks");
q.staticScale?q.transA=q.staticScale:q.unitLength&&(q.transA*=(n-q.min+t)/q.unitLength);t&&(q.minPixelPadding=q.transA*q.minPointOffset);q.min=f;q.max=n}});y(r,!0)&&this.chart.redraw()};p(a,"afterGeneratePoints",function(){var a=this.options.connectNulls,r=this.points,d=this.xAxis,k=this.yAxis;if(this.isDirty)for(var q=r.length;q--;){var h=r[q],c=!(null===h.y&&!1===a)&&(d&&d.isInAnyBreak(h.x,!0)||k&&k.isInAnyBreak(h.y,!0));h.visible=c?!1:!1!==h.options.visible}});p(a,"afterRender",function(){this.drawBreaks(this.xAxis,
["x"]);this.drawBreaks(this.yAxis,y(this.pointArrayMap,["y"]))});d.Series.prototype.drawBreaks=function(a,r){var t=this,d=t.points,q,h,c,l;a&&r.forEach(function(r){q=a.breakArray||[];h=a.isXAxis?a.min:y(t.options.threshold,a.min);d.forEach(function(e){l=y(e["stack"+r.toUpperCase()],e[r]);q.forEach(function(b){c=!1;if(h<b.from&&l>b.to||h>b.from&&l<b.from)c="pointBreak";else if(h<b.from&&l>b.from&&l<b.to||h>b.from&&l>b.to&&l<b.from)c="pointInBreak";c&&J(a,c,{point:e,brk:b})})})})};d.Series.prototype.gappedPath=
function(){var a=this.currentDataGrouping,r=a&&a.gapSize;a=this.options.gapSize;var k=this.points.slice(),x=k.length-1,q=this.yAxis,h;if(a&&0<x)for("value"!==this.options.gapUnit&&(a*=this.basePointRange),r&&r>a&&r>=this.basePointRange&&(a=r),h=void 0;x--;)h&&!1!==h.visible||(h=k[x+1]),r=k[x],!1!==h.visible&&!1!==r.visible&&(h.x-r.x>a&&(h=(r.x+h.x)/2,k.splice(x+1,0,{isNull:!0,x:h}),this.options.stacking&&(h=q.stacks[this.stackKey][h]=new d.StackItem(q,q.options.stackLabels,!1,h,this.stack),h.total=
0)),h=r);return this.getGraphPath(k)}});E(p,"parts-gantt/TreeGrid.js",[p["parts/Globals.js"],p["mixins/tree-series.js"],p["parts/Tick.js"],p["parts-gantt/Tree.js"],p["parts/Utilities.js"]],function(d,a,p,k,u){var z=u.addEvent,D=u.defined,y=u.fireEvent,A=u.extend,x=u.isNumber,t=u.isString,r=u.merge,B=u.pick,F=u.wrap,q=function(b){return Array.prototype.slice.call(b,1)},h=u.find,c=a.getLevelOptions,l=function(b){return u.isObject(b,!0)};d=d.Axis;a=function(b,g){var f;for(f in g)if(Object.hasOwnProperty.call(g,
f)){var c=g[f];F(b,f,c)}};var C=function(b,g){var f=b.collapseStart;b=b.collapseEnd;b>=g&&(f-=.5);return{from:f,to:b,showPoints:!1}},e=function(b){return Object.keys(b.mapOfPosToGridNode).reduce(function(g,f){f=+f;b.min<=f&&b.max>=f&&!b.isInAnyBreak(f)&&g.push(f);return g},[])},b=function(b,g){var f=b.options.breaks||[],c=C(g,b.max);return f.some(function(g){return g.from===c.from&&g.to===c.to})},f=function(b,g){var f=b.options.breaks||[];b=C(g,b.max);f.push(b);return f},n=function(b,g){var f=b.options.breaks||
[],c=C(g,b.max);return f.reduce(function(b,g){g.to===c.to&&g.from===c.from||b.push(g);return b},[])},Q=function(b,g){var f=b.labelIcon,c=!f,e=g.renderer,a=g.xy,n=g.options,v=n.width,l=n.height,h=a.x-v/2-n.padding;a=a.y-l/2;var t=g.collapsed?90:180,r=g.show&&x(a);c&&(b.labelIcon=f=e.path(e.symbols[n.type](n.x,n.y,v,l)).addClass("highcharts-label-icon").add(g.group));r||f.attr({y:-9999});e.styledMode||f.attr({"stroke-width":1,fill:B(g.color,"#666666")}).css({cursor:"pointer",stroke:n.lineColor,strokeWidth:n.lineWidth});
f[c?"attr":"animate"]({translateX:h,translateY:a,rotation:t})},P=function(b,g,f){var c=[],m=[],e={},n={},a=-1,v="boolean"===typeof g?g:!1;b=k.getTree(b,{after:function(b){b=n[b.pos];var g=0,f=0;b.children.forEach(function(b){f+=b.descendants+1;g=Math.max(b.height+1,g)});b.descendants=f;b.height=g;b.collapsed&&m.push(b)},before:function(b){var g=l(b.data)?b.data:{},f=t(g.name)?g.name:"",m=e[b.parent];m=l(m)?n[m.pos]:null;var w=function(b){return b.name===f},G;v&&l(m)&&(G=h(m.children,w))?(w=G.pos,
G.nodes.push(b)):w=a++;n[w]||(n[w]=G={depth:m?m.depth+1:0,name:f,nodes:[b],children:[],pos:w},-1!==w&&c.push(f),l(m)&&m.children.push(G));t(b.id)&&(e[b.id]=b);!0===g.collapsed&&(G.collapsed=!0);b.pos=w}});n=function(b,g){var f=function(b,c,m){var e=c+(-1===c?0:g-1),n=(e-c)/2,a=c+n;b.nodes.forEach(function(b){var g=b.data;l(g)&&(g.y=c+g.seriesIndex,delete g.seriesIndex);b.pos=a});m[a]=b;b.pos=a;b.tickmarkOffset=n+.5;b.collapseStart=e+.5;b.children.forEach(function(b){f(b,e+1,m);e=b.collapseEnd-.5});
b.collapseEnd=e+.5;return m};return f(b["-1"],-1,{})}(n,f);return{categories:c,mapOfIdToNode:e,mapOfPosToGridNode:n,collapsedNodes:m,tree:b}},M=function(b){b.target.axes.filter(function(b){return"treegrid"===b.options.type}).forEach(function(g){var m=g.options||{},e=m.labels,n,a=m.uniqueNames,v=0;if(!g.mapOfPosToGridNode||g.series.some(function(b){return!b.hasRendered||b.isDirtyData||b.isDirty})){m=g.series.reduce(function(b,g){g.visible&&(g.options.data.forEach(function(g){l(g)&&(g.seriesIndex=v,
b.push(g))}),!0===a&&v++);return b},[]);var h=P(m,a,!0===a?v:1);g.categories=h.categories;g.mapOfPosToGridNode=h.mapOfPosToGridNode;g.hasNames=!0;g.tree=h.tree;g.series.forEach(function(b){var g=b.options.data.map(function(b){return l(b)?r(b):b});b.visible&&b.setData(g,!1)});g.mapOptionsToLevel=c({defaults:e,from:1,levels:e.levels,to:g.tree.height});"beforeRender"===b.type&&(n=z(g,"foundExtremes",function(){h.collapsedNodes.forEach(function(b){b=f(g,b);g.setBreaks(b,!1)});n()}))}})};a(d.prototype,
{init:function(b,g,f){var c="treegrid"===f.type;c&&(z(g,"beforeRender",M),z(g,"beforeRedraw",M),f=r({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},f,{reversed:!0,grid:{columns:void 0}}));b.apply(this,[g,f]);c&&(this.hasNames=!0,this.options.showLastLabel=!0)},getMaxLabelDimensions:function(b){var g=this.options,f=g&&g.labels;g=f&&x(f.indentation)?g.labels.indentation:
0;f=b.apply(this,q(arguments));if("treegrid"===this.options.type&&this.mapOfPosToGridNode){var c=this.mapOfPosToGridNode[-1].height;f.width+=g*(c-1)}return f},generateTick:function(b,g){var f=l(this.mapOptionsToLevel)?this.mapOptionsToLevel:{},c=this.ticks,e=c[g],n;if("treegrid"===this.options.type){var a=this.mapOfPosToGridNode[g];(f=f[a.depth])&&(n={labels:f});e?(e.parameters.category=a.name,e.options=n,e.addLabel()):c[g]=new p(this,g,null,void 0,{category:a.name,tickmarkOffset:a.tickmarkOffset,
options:n})}else b.apply(this,q(arguments))},setTickInterval:function(b){var g=this.options;"treegrid"===g.type?(this.min=B(this.userMin,g.min,this.dataMin),this.max=B(this.userMax,g.max,this.dataMax),y(this,"foundExtremes"),this.setAxisTranslation(!0),this.tickmarkOffset=.5,this.tickInterval=1,this.tickPositions=this.mapOfPosToGridNode?e(this):[]):b.apply(this,q(arguments))}});a(p.prototype,{getLabelPosition:function(b,g,f,c,e,n,a,h,t){var m=B(this.options&&this.options.labels,n);n=this.pos;var w=
this.axis,v="treegrid"===w.options.type;b=b.apply(this,[g,f,c,e,m,a,h,t]);v&&(g=m&&l(m.symbol)?m.symbol:{},m=m&&x(m.indentation)?m.indentation:0,n=(n=(w=w.mapOfPosToGridNode)&&w[n])&&n.depth||1,b.x+=g.width+2*g.padding+(n-1)*m);return b},renderLabel:function(f){var g=this,c=g.pos,e=g.axis,n=g.label,a=e.mapOfPosToGridNode,h=e.options,v=B(g.options&&g.options.labels,h&&h.labels),t=v&&l(v.symbol)?v.symbol:{},r=(a=a&&a[c])&&a.depth;h="treegrid"===h.type;var d=!(!n||!n.element),C=-1<e.tickPositions.indexOf(c);
c=e.chart.styledMode;h&&a&&d&&n.addClass("highcharts-treegrid-node-level-"+r);f.apply(g,q(arguments));h&&a&&d&&0<a.descendants&&(e=b(e,a),Q(g,{color:!c&&n.styles.color,collapsed:e,group:n.parentGroup,options:t,renderer:n.renderer,show:C,xy:n.xy}),t="highcharts-treegrid-node-"+(e?"expanded":"collapsed"),n.addClass("highcharts-treegrid-node-"+(e?"collapsed":"expanded")).removeClass(t),c||n.css({cursor:"pointer"}),[n,g.labelIcon].forEach(function(b){b.attachedTreeGridEvents||(z(b.element,"mouseover",
function(){n.addClass("highcharts-treegrid-node-active");n.renderer.styledMode||n.css({textDecoration:"underline"})}),z(b.element,"mouseout",function(){var b=D(v.style)?v.style:{};n.removeClass("highcharts-treegrid-node-active");n.renderer.styledMode||n.css({textDecoration:b.textDecoration})}),z(b.element,"click",function(){g.toggleCollapse()}),b.attachedTreeGridEvents=!0)}))}});A(p.prototype,{collapse:function(b){var g=this.axis,c=f(g,g.mapOfPosToGridNode[this.pos]);g.setBreaks(c,B(b,!0))},expand:function(b){var g=
this.axis,f=n(g,g.mapOfPosToGridNode[this.pos]);g.setBreaks(f,B(b,!0))},toggleCollapse:function(c){var g=this.axis;var e=g.mapOfPosToGridNode[this.pos];e=b(g,e)?n(g,e):f(g,e);g.setBreaks(e,B(c,!0))}});d.prototype.utils={getNode:k.getNode}});E(p,"parts-gantt/PathfinderAlgorithms.js",[p["parts/Utilities.js"]],function(d){function a(a,r,d){d=d||0;var t=a.length-1;r-=1e-7;for(var q,h;d<=t;)if(q=t+d>>1,h=r-a[q].xMin,0<h)d=q+1;else if(0>h)t=q-1;else return q;return 0<d?d-1:0}function p(t,r){for(var d=a(t,
r.x+1)+1;d--;){var k;if(k=t[d].xMax>=r.x)k=t[d],k=r.x<=k.xMax&&r.x>=k.xMin&&r.y<=k.yMax&&r.y>=k.yMin;if(k)return d}return-1}function k(a){var d=[];if(a.length){d.push("M",a[0].start.x,a[0].start.y);for(var t=0;t<a.length;++t)d.push("L",a[t].end.x,a[t].end.y)}return d}function u(a,d){a.yMin=A(a.yMin,d.yMin);a.yMax=y(a.yMax,d.yMax);a.xMin=A(a.xMin,d.xMin);a.xMax=y(a.xMax,d.xMax)}var J=d.extend,D=d.pick,y=Math.min,A=Math.max,x=Math.abs;return{straight:function(a,d){return{path:["M",a.x,a.y,"L",d.x,d.y],
obstacles:[{start:a,end:d}]}},simpleConnect:J(function(a,d,u){function t(b,c,e,a,l){b={x:b.x,y:b.y};b[c]=e[a||c]+(l||0);return b}function q(b,c,e){var f=x(c[e]-b[e+"Min"])>x(c[e]-b[e+"Max"]);return t(c,e,b,e+(f?"Max":"Min"),f?1:-1)}var h=[],c=D(u.startDirectionX,x(d.x-a.x)>x(d.y-a.y))?"x":"y",l=u.chartObstacles,C=p(l,a);u=p(l,d);if(-1<u){var e=l[u];u=q(e,d,c);e={start:u,end:d};var b=u}else b=d;-1<C&&(l=l[C],u=q(l,a,c),h.push({start:a,end:u}),u[c]>=a[c]===u[c]>=b[c]&&(c="y"===c?"x":"y",d=a[c]<d[c],
h.push({start:u,end:t(u,c,l,c+(d?"Max":"Min"),d?1:-1)}),c="y"===c?"x":"y"));a=h.length?h[h.length-1].end:a;u=t(a,c,b);h.push({start:a,end:u});c=t(u,"y"===c?"x":"y",b);h.push({start:u,end:c});h.push(e);return{path:k(h),obstacles:h}},{requiresObstacles:!0}),fastAvoid:J(function(d,r,z){function t(b,g,f){var c,e=b.x<g.x?1:-1;if(b.x<g.x){var n=b;var m=g}else n=g,m=b;if(b.y<g.y){var w=b;var l=g}else w=g,l=b;for(c=0>e?y(a(v,m.x),v.length-1):0;v[c]&&(0<e&&v[c].xMin<=m.x||0>e&&v[c].xMax>=n.x);){if(v[c].xMin<=
m.x&&v[c].xMax>=n.x&&v[c].yMin<=l.y&&v[c].yMax>=w.y)return f?{y:b.y,x:b.x<g.x?v[c].xMin-1:v[c].xMax+1,obstacle:v[c]}:{x:b.x,y:b.y<g.y?v[c].yMin-1:v[c].yMax+1,obstacle:v[c]};c+=e}return g}function q(b,g,f,c,e){var a=e.soft,n=e.hard,m=c?"x":"y",w={x:g.x,y:g.y},l={x:g.x,y:g.y};e=b[m+"Max"]>=a[m+"Max"];a=b[m+"Min"]<=a[m+"Min"];var h=b[m+"Max"]>=n[m+"Max"];n=b[m+"Min"]<=n[m+"Min"];var v=x(b[m+"Min"]-g[m]),d=x(b[m+"Max"]-g[m]);f=10>x(v-d)?g[m]<f[m]:d<v;l[m]=b[m+"Min"];w[m]=b[m+"Max"];b=t(g,l,c)[m]!==l[m];
g=t(g,w,c)[m]!==w[m];f=b?g?f:!0:g?!1:f;f=a?e?f:!0:e?!1:f;return n?h?f:!0:h?!1:f}function h(g,f,c){if(g.x===f.x&&g.y===f.y)return[];var e=c?"x":"y",a=z.obstacleOptions.margin;var m={soft:{xMin:n,xMax:Q,yMin:P,yMax:M},hard:z.hardBounds};var l=p(v,g);if(-1<l){l=v[l];m=q(l,g,f,c,m);u(l,z.hardBounds);var w=c?{y:g.y,x:l[m?"xMax":"xMin"]+(m?1:-1)}:{x:g.x,y:l[m?"yMax":"yMin"]+(m?1:-1)};var d=p(v,w);-1<d&&(d=v[d],u(d,z.hardBounds),w[e]=m?A(l[e+"Max"]-a+1,(d[e+"Min"]+l[e+"Max"])/2):y(l[e+"Min"]+a-1,(d[e+"Max"]+
l[e+"Min"])/2),g.x===w.x&&g.y===w.y?(b&&(w[e]=m?A(l[e+"Max"],d[e+"Max"])+1:y(l[e+"Min"],d[e+"Min"])-1),b=!b):b=!1);g=[{start:g,end:w}]}else e=t(g,{x:c?f.x:g.x,y:c?g.y:f.y},c),g=[{start:g,end:{x:e.x,y:e.y}}],e[c?"x":"y"]!==f[c?"x":"y"]&&(m=q(e.obstacle,e,f,!c,m),u(e.obstacle,z.hardBounds),m={x:c?e.x:e.obstacle[m?"xMax":"xMin"]+(m?1:-1),y:c?e.obstacle[m?"yMax":"yMin"]+(m?1:-1):e.y},c=!c,g=g.concat(h({x:e.x,y:e.y},m,c)));return g=g.concat(h(g[g.length-1].end,f,!c))}function c(b,g,f){var c=y(b.xMax-g.x,
g.x-b.xMin)<y(b.yMax-g.y,g.y-b.yMin);f=q(b,g,f,c,{soft:z.hardBounds,hard:z.hardBounds});return c?{y:g.y,x:b[f?"xMax":"xMin"]+(f?1:-1)}:{x:g.x,y:b[f?"yMax":"yMin"]+(f?1:-1)}}var l=D(z.startDirectionX,x(r.x-d.x)>x(r.y-d.y)),C=l?"x":"y",e=[],b=!1,f=z.obstacleMetrics,n=y(d.x,r.x)-f.maxWidth-10,Q=A(d.x,r.x)+f.maxWidth+10,P=y(d.y,r.y)-f.maxHeight-10,M=A(d.y,r.y)+f.maxHeight+10,v=z.chartObstacles;var g=a(v,n);f=a(v,Q);v=v.slice(g,f+1);if(-1<(f=p(v,r))){var m=c(v[f],r,d);e.push({end:r,start:m});r=m}for(;-1<
(f=p(v,r));)g=0>r[C]-d[C],m={x:r.x,y:r.y},m[C]=v[f][g?C+"Max":C+"Min"]+(g?1:-1),e.push({end:r,start:m}),r=m;d=h(d,r,l);d=d.concat(e.reverse());return{path:k(d),obstacles:d}},{requiresObstacles:!0})}});E(p,"parts-gantt/ArrowSymbols.js",[p["parts/Globals.js"]],function(d){d.SVGRenderer.prototype.symbols.arrow=function(a,d,k,u){return["M",a,d+u/2,"L",a+k,d,"L",a,d+u/2,"L",a+k,d+u]};d.SVGRenderer.prototype.symbols["arrow-half"]=function(a,p,k,u){return d.SVGRenderer.prototype.symbols.arrow(a,p,k/2,u)};
d.SVGRenderer.prototype.symbols["triangle-left"]=function(a,d,k,u){return["M",a+k,d,"L",a,d+u/2,"L",a+k,d+u,"Z"]};d.SVGRenderer.prototype.symbols["arrow-filled"]=d.SVGRenderer.prototype.symbols["triangle-left"];d.SVGRenderer.prototype.symbols["triangle-left-half"]=function(a,p,k,u){return d.SVGRenderer.prototype.symbols["triangle-left"](a,p,k/2,u)};d.SVGRenderer.prototype.symbols["arrow-filled-half"]=d.SVGRenderer.prototype.symbols["triangle-left-half"]});E(p,"parts-gantt/Pathfinder.js",[p["parts/Globals.js"],
p["parts/Point.js"],p["parts/Utilities.js"],p["parts-gantt/PathfinderAlgorithms.js"]],function(d,a,p,k){function u(b){var f=b.shapeArgs;return f?{xMin:f.x,xMax:f.x+f.width,yMin:f.y,yMax:f.y+f.height}:(f=b.graphic&&b.graphic.getBBox())?{xMin:b.plotX-f.width/2,xMax:b.plotX+f.width/2,yMin:b.plotY-f.height/2,yMax:b.plotY+f.height/2}:null}function z(b){for(var f=b.length,c=0,a,l,d=[],v=function(b,f,c){c=h(c,10);var g=b.yMax+c>f.yMin-c&&b.yMin-c<f.yMax+c,a=b.xMax+c>f.xMin-c&&b.xMin-c<f.xMax+c,m=g?b.xMin>
f.xMax?b.xMin-f.xMax:f.xMin-b.xMax:Infinity,n=a?b.yMin>f.yMax?b.yMin-f.yMax:f.yMin-b.yMax:Infinity;return a&&g?c?v(b,f,Math.floor(c/2)):Infinity:e(m,n)};c<f;++c)for(a=c+1;a<f;++a)l=v(b[c],b[a]),80>l&&d.push(l);d.push(80);return C(Math.floor(d.sort(function(b,f){return b-f})[Math.floor(d.length/10)]/2-1),1)}function D(b,f,c){this.init(b,f,c)}function y(b){this.init(b)}function A(b){if(b.options.pathfinder||b.series.reduce(function(b,c){c.options&&F(!0,c.options.connectors=c.options.connectors||{},
c.options.pathfinder);return b||c.options&&c.options.pathfinder},!1))F(!0,b.options.connectors=b.options.connectors||{},b.options.pathfinder),r('WARNING: Pathfinder options have been renamed. Use "chart.connectors" or "series.connectors" instead.')}"";var x=p.addEvent,t=p.defined,r=p.error,B=p.extend,F=p.merge,q=p.objectEach,h=p.pick,c=p.splat,l=d.deg2rad,C=Math.max,e=Math.min;B(d.defaultOptions,{connectors:{type:"straight",lineWidth:1,marker:{enabled:!1,align:"center",verticalAlign:"middle",inside:!1,
lineWidth:1},startMarker:{symbol:"diamond"},endMarker:{symbol:"arrow-filled"}}});D.prototype={init:function(b,f,c){this.fromPoint=b;this.toPoint=f;this.options=c;this.chart=b.series.chart;this.pathfinder=this.chart.pathfinder},renderPath:function(b,f,c){var e=this.chart,a=e.styledMode,n=e.pathfinder,l=!e.options.chart.forExport&&!1!==c,g=this.graphics&&this.graphics.path;n.group||(n.group=e.renderer.g().addClass("highcharts-pathfinder-group").attr({zIndex:-1}).add(e.seriesGroup));n.group.translate(e.plotLeft,
e.plotTop);g&&g.renderer||(g=e.renderer.path().add(n.group),a||g.attr({opacity:0}));g.attr(f);b={d:b};a||(b.opacity=1);g[l?"animate":"attr"](b,c);this.graphics=this.graphics||{};this.graphics.path=g},addMarker:function(b,f,c){var e=this.fromPoint.series.chart,a=e.pathfinder;e=e.renderer;var n="start"===b?this.fromPoint:this.toPoint,h=n.getPathfinderAnchorPoint(f);if(f.enabled){c="start"===b?{x:c[4],y:c[5]}:{x:c[c.length-5],y:c[c.length-4]};c=n.getRadiansToVector(c,h);h=n.getMarkerVector(c,f.radius,
h);c=-c/l;if(f.width&&f.height){var g=f.width;var m=f.height}else g=m=2*f.radius;this.graphics=this.graphics||{};h={x:h.x-g/2,y:h.y-m/2,width:g,height:m,rotation:c,rotationOriginX:h.x,rotationOriginY:h.y};this.graphics[b]?this.graphics[b].animate(h):(this.graphics[b]=e.symbol(f.symbol).addClass("highcharts-point-connecting-path-"+b+"-marker").attr(h).add(a.group),e.styledMode||this.graphics[b].attr({fill:f.color||this.fromPoint.color,stroke:f.lineColor,"stroke-width":f.lineWidth,opacity:0}).animate({opacity:1},
n.series.options.animation))}},getPath:function(b){var f=this.pathfinder,c=this.chart,e=f.algorithms[b.type],a=f.chartObstacles;if("function"!==typeof e)r('"'+b.type+'" is not a Pathfinder algorithm.');else return e.requiresObstacles&&!a&&(a=f.chartObstacles=f.getChartObstacles(b),c.options.connectors.algorithmMargin=b.algorithmMargin,f.chartObstacleMetrics=f.getObstacleMetrics(a)),e(this.fromPoint.getPathfinderAnchorPoint(b.startMarker),this.toPoint.getPathfinderAnchorPoint(b.endMarker),F({chartObstacles:a,
lineObstacles:f.lineObstacles||[],obstacleMetrics:f.chartObstacleMetrics,hardBounds:{xMin:0,xMax:c.plotWidth,yMin:0,yMax:c.plotHeight},obstacleOptions:{margin:b.algorithmMargin},startDirectionX:f.getAlgorithmStartDirection(b.startMarker)},b))},render:function(){var b=this.fromPoint,f=b.series,c=f.chart,a=c.pathfinder,l=F(c.options.connectors,f.options.connectors,b.options.connectors,this.options),h={};c.styledMode||(h.stroke=l.lineColor||b.color,h["stroke-width"]=l.lineWidth,l.dashStyle&&(h.dashstyle=
l.dashStyle));h["class"]="highcharts-point-connecting-path highcharts-color-"+b.colorIndex;l=F(h,l);t(l.marker.radius)||(l.marker.radius=e(C(Math.ceil((l.algorithmMargin||8)/2)-1,1),5));b=this.getPath(l);c=b.path;b.obstacles&&(a.lineObstacles=a.lineObstacles||[],a.lineObstacles=a.lineObstacles.concat(b.obstacles));this.renderPath(c,h,f.options.animation);this.addMarker("start",F(l.marker,l.startMarker),c);this.addMarker("end",F(l.marker,l.endMarker),c)},destroy:function(){this.graphics&&(q(this.graphics,
function(b){b.destroy()}),delete this.graphics)}};y.prototype={algorithms:k,init:function(b){this.chart=b;this.connections=[];x(b,"redraw",function(){this.pathfinder.update()})},update:function(b){var f=this.chart,e=this,l=e.connections;e.connections=[];f.series.forEach(function(b){b.visible&&!b.options.isInternal&&b.points.forEach(function(b){var g,m=b.options&&b.options.connect&&c(b.options.connect);b.visible&&!1!==b.isInside&&m&&m.forEach(function(c){g=f.get("string"===typeof c?c:c.to);g instanceof
a&&g.series.visible&&g.visible&&!1!==g.isInside&&e.connections.push(new D(b,g,"string"===typeof c?{}:c))})})});for(var h=0,d,v,g=l.length,m=e.connections.length;h<g;++h){v=!1;for(d=0;d<m;++d)if(l[h].fromPoint===e.connections[d].fromPoint&&l[h].toPoint===e.connections[d].toPoint){e.connections[d].graphics=l[h].graphics;v=!0;break}v||l[h].destroy()}delete this.chartObstacles;delete this.lineObstacles;e.renderConnections(b)},renderConnections:function(b){b?this.chart.series.forEach(function(b){var c=
function(){var c=b.chart.pathfinder;(c&&c.connections||[]).forEach(function(c){c.fromPoint&&c.fromPoint.series===b&&c.render()});b.pathfinderRemoveRenderEvent&&(b.pathfinderRemoveRenderEvent(),delete b.pathfinderRemoveRenderEvent)};!1===b.options.animation?c():b.pathfinderRemoveRenderEvent=x(b,"afterAnimate",c)}):this.connections.forEach(function(b){b.render()})},getChartObstacles:function(b){for(var c=[],e=this.chart.series,a=h(b.algorithmMargin,0),l,d=0,v=e.length;d<v;++d)if(e[d].visible&&!e[d].options.isInternal)for(var g=
0,m=e[d].points.length,w;g<m;++g)w=e[d].points[g],w.visible&&(w=u(w))&&c.push({xMin:w.xMin-a,xMax:w.xMax+a,yMin:w.yMin-a,yMax:w.yMax+a});c=c.sort(function(b,g){return b.xMin-g.xMin});t(b.algorithmMargin)||(l=b.algorithmMargin=z(c),c.forEach(function(b){b.xMin-=l;b.xMax+=l;b.yMin-=l;b.yMax+=l}));return c},getObstacleMetrics:function(b){for(var c=0,e=0,a,l,h=b.length;h--;)a=b[h].xMax-b[h].xMin,l=b[h].yMax-b[h].yMin,c<a&&(c=a),e<l&&(e=l);return{maxHeight:e,maxWidth:c}},getAlgorithmStartDirection:function(b){var c=
"top"!==b.verticalAlign&&"bottom"!==b.verticalAlign;return"left"!==b.align&&"right"!==b.align?c?void 0:!1:c?!0:void 0}};d.Connection=D;d.Pathfinder=y;B(a.prototype,{getPathfinderAnchorPoint:function(b){var c=u(this);switch(b.align){case "right":var e="xMax";break;case "left":e="xMin"}switch(b.verticalAlign){case "top":var a="yMin";break;case "bottom":a="yMax"}return{x:e?c[e]:(c.xMin+c.xMax)/2,y:a?c[a]:(c.yMin+c.yMax)/2}},getRadiansToVector:function(b,c){t(c)||(c=u(this),c={x:(c.xMin+c.xMax)/2,y:(c.yMin+
c.yMax)/2});return Math.atan2(c.y-b.y,b.x-c.x)},getMarkerVector:function(b,c,e){var f=2*Math.PI,a=u(this),l=a.xMax-a.xMin,n=a.yMax-a.yMin,g=Math.atan2(n,l),m=!1;l/=2;var h=n/2,d=a.xMin+l;a=a.yMin+h;for(var C=d,k=a,q={},r=1,t=1;b<-Math.PI;)b+=f;for(;b>Math.PI;)b-=f;f=Math.tan(b);b>-g&&b<=g?(t=-1,m=!0):b>g&&b<=Math.PI-g?t=-1:b>Math.PI-g||b<=-(Math.PI-g)?(r=-1,m=!0):r=-1;m?(C+=r*l,k+=t*l*f):(C+=n/(2*f)*r,k+=t*h);e.x!==d&&(C=e.x);e.y!==a&&(k=e.y);q.x=C+c*Math.cos(b);q.y=k-c*Math.sin(b);return q}});d.Chart.prototype.callbacks.push(function(b){!1!==
b.options.connectors.enabled&&(A(b),this.pathfinder=new y(this),this.pathfinder.update(!0))})});E(p,"modules/xrange.src.js",[p["parts/Globals.js"],p["parts/Color.js"],p["parts/Point.js"],p["parts/Utilities.js"]],function(d,a,p,k){var u=a.parse;a=k.addEvent;var z=k.clamp,D=k.correctFloat,y=k.defined,A=k.find,x=k.isNumber,t=k.isObject,r=k.merge,B=k.pick;k=k.seriesType;var F=d.seriesTypes.column,q=d.Axis,h=d.Series;k("xrange","column",{colorByPoint:!0,dataLabels:{formatter:function(){var c=this.point.partialFill;
t(c)&&(c=c.amount);if(x(c)&&0<c)return D(100*c)+"%"},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:d.seriesTypes.line.prototype.animate,cropShoulder:1,getExtremesFromAll:!0,autoIncrement:d.noop,buildKDTree:d.noop,getColumnMetrics:function(){function c(){a.series.forEach(function(c){var b=
c.xAxis;c.xAxis=c.yAxis;c.yAxis=b})}var a=this.chart;c();var h=F.prototype.getColumnMetrics.call(this);c();return h},cropData:function(c,a,d,e){a=h.prototype.cropData.call(this,this.x2Data,a,d,e);a.xData=c.slice(a.start,a.end);return a},findPointIndex:function(c){var a=this.cropped,h=this.cropStart,e=this.points,b=c.id;if(b)var f=(f=A(e,function(c){return c.id===b}))?f.index:void 0;"undefined"===typeof f&&(f=(f=A(e,function(b){return b.x===c.x&&b.x2===c.x2&&!b.touched}))?f.index:void 0);a&&x(f)&&
x(h)&&f>=h&&(f-=h);return f},translatePoint:function(c){var a=this.xAxis,h=this.yAxis,e=this.columnMetrics,b=this.options,f=b.minPointLength||0,n=c.plotX,d=B(c.x2,c.x+(c.len||0)),k=a.translate(d,0,0,0,1);d=Math.abs(k-n);var q=this.chart.inverted,v=B(b.borderWidth,1)%2/2,g=e.offset,m=Math.round(e.width);f&&(f-=d,0>f&&(f=0),n-=f/2,k+=f/2);n=Math.max(n,-10);k=z(k,-10,a.len+10);y(c.options.pointWidth)&&(g-=(Math.ceil(c.options.pointWidth)-m)/2,m=Math.ceil(c.options.pointWidth));b.pointPlacement&&x(c.plotY)&&
h.categories&&(c.plotY=h.translate(c.y,0,1,0,1,b.pointPlacement));c.shapeArgs={x:Math.floor(Math.min(n,k))+v,y:Math.floor(c.plotY+g)+v,width:Math.round(Math.abs(k-n)),height:m,r:this.options.borderRadius};b=c.shapeArgs.x;f=b+c.shapeArgs.width;0>b||f>a.len?(b=z(b,0,a.len),f=z(f,0,a.len),k=f-b,c.dlBox=r(c.shapeArgs,{x:b,width:f-b,centerX:k?k/2:null})):c.dlBox=null;b=c.tooltipPos;f=q?1:0;k=q?0:1;e=this.columnMetrics?this.columnMetrics.offset:-e.width/2;b[f]=z(b[f]+d/2*(a.reversed?-1:1)*(q?-1:1),0,a.len-
1);b[k]=z(b[k]+(q?-1:1)*e,0,h.len-1);if(e=c.partialFill)t(e)&&(e=e.amount),x(e)||(e=0),h=c.shapeArgs,c.partShapeArgs={x:h.x,y:h.y,width:h.width,height:h.height,r:this.options.borderRadius},n=Math.max(Math.round(d*e+c.plotX-n),0),c.clipRectArgs={x:a.reversed?h.x+d-n:h.x,y:h.y,width:n,height:h.height}},translate:function(){F.prototype.translate.apply(this,arguments);this.points.forEach(function(c){this.translatePoint(c)},this)},drawPoint:function(c,a){var h=this.options,e=this.chart.renderer,b=c.graphic,
f=c.shapeType,l=c.shapeArgs,d=c.partShapeArgs,k=c.clipRectArgs,q=c.partialFill,v=h.stacking&&!h.borderRadius,g=c.state,m=h.states[g||"normal"]||{},w="undefined"===typeof g?"attr":a;g=this.pointAttribs(c,g);m=B(this.chart.options.chart.animation,m.animation);if(c.isNull||!1===c.visible)b&&(c.graphic=b.destroy());else{if(b)b.rect[a](l);else c.graphic=b=e.g("point").addClass(c.getClassName()).add(c.group||this.group),b.rect=e[f](r(l)).addClass(c.getClassName()).addClass("highcharts-partfill-original").add(b);
d&&(b.partRect?(b.partRect[a](r(d)),b.partialClipRect[a](r(k))):(b.partialClipRect=e.clipRect(k.x,k.y,k.width,k.height),b.partRect=e[f](d).addClass("highcharts-partfill-overlay").add(b).clip(b.partialClipRect)));this.chart.styledMode||(b.rect[a](g,m).shadow(h.shadow,null,v),d&&(t(q)||(q={}),t(h.partialFill)&&(q=r(q,h.partialFill)),c=q.fill||u(g.fill).brighten(-.3).get()||u(c.color||this.color).brighten(-.3).get(),g.fill=c,b.partRect[w](g,m).shadow(h.shadow,null,v)))}},drawPoints:function(){var c=
this,a=c.getAnimationVerb();c.points.forEach(function(h){c.drawPoint(h,a)})},getAnimationVerb:function(){return this.chart.pointCount<(this.options.animationLimit||250)?"animate":"attr"}},{resolveColor:function(){var c=this.series;if(c.options.colorByPoint&&!this.options.color){var a=c.options.colors||c.chart.options.colors;var h=this.y%(a?a.length:c.chart.options.chart.colorCount);a=a&&a[h];c.chart.styledMode||(this.color=a);this.options.colorIndex||(this.colorIndex=h)}else this.color||(this.color=
c.color)},init:function(){p.prototype.init.apply(this,arguments);this.y||(this.y=0);return this},setState:function(){p.prototype.setState.apply(this,arguments);this.series.drawPoint(this,this.series.getAnimationVerb())},getLabelConfig:function(){var c=p.prototype.getLabelConfig.call(this),a=this.series.yAxis.categories;c.x2=this.x2;c.yCategory=this.yCategory=a&&a[this.y];return c},tooltipDateKeys:["x","x2"],isValid:function(){return"number"===typeof this.x&&"number"===typeof this.x2}});a(q,"afterGetSeriesExtremes",
function(){var c=this.series,a;if(this.isXAxis){var h=B(this.dataMax,-Number.MAX_VALUE);c.forEach(function(c){c.x2Data&&c.x2Data.forEach(function(b){b>h&&(h=b,a=!0)})});a&&(this.dataMax=h)}});""});E(p,"parts-gantt/GanttSeries.js",[p["parts/Globals.js"],p["parts/Utilities.js"]],function(d,a){var p=a.isNumber,k=a.merge,u=a.pick,E=a.seriesType,D=a.splat,y=d.dateFormat,A=d.seriesTypes.xrange;E("gantt","xrange",{grouping:!1,dataLabels:{enabled:!0},tooltip:{headerFormat:'<span style="font-size: 10px">{series.name}</span><br/>',
pointFormat:null,pointFormatter:function(){var a=this.series,d=a.chart.tooltip,k=a.xAxis,u=a.tooltipOptions.dateTimeLabelFormats,p=k.options.startOfWeek,q=a.tooltipOptions,h=q.xDateFormat;a=this.options.milestone;var c="<b>"+(this.name||this.yCategory)+"</b>";if(q.pointFormat)return this.tooltipFormatter(q.pointFormat);h||(h=D(d.getDateFormat(k.closestPointRange,this.start,p,u))[0]);d=y(h,this.start);k=y(h,this.end);c+="<br/>";return a?c+(d+"<br/>"):c+("Start: "+d+"<br/>End: ")+(k+"<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(a){A.prototype.translatePoint.call(this,a);if(a.options.milestone){var d=a.shapeArgs;var k=d.height;a.shapeArgs={x:d.x-k/2,y:d.y,width:k,height:k}}},drawPoint:function(a,d){var k=this.options,t=this.chart.renderer,u=a.shapeArgs,q=a.plotY,h=a.graphic,c=a.selected&&"select",l=
k.stacking&&!k.borderRadius;if(a.options.milestone)if(p(q)&&null!==a.y&&!1!==a.visible){u=t.symbols.diamond(u.x,u.y,u.width,u.height);if(h)h[d]({d:u});else a.graphic=t.path(u).addClass(a.getClassName(),!0).add(a.group||this.group);this.chart.styledMode||a.graphic.attr(this.pointAttribs(a,c)).shadow(k.shadow,null,l)}else h&&(a.graphic=h.destroy());else A.prototype.drawPoint.call(this,a,d)},setData:d.Series.prototype.setData,setGanttPointAliases:function(a){function d(d,k){"undefined"!==typeof k&&(a[d]=
k)}d("x",u(a.start,a.x));d("x2",u(a.end,a.x2));d("partialFill",u(a.completed,a.partialFill));d("connect",u(a.dependency,a.connect))}},k(A.prototype.pointClass.prototype,{applyOptions:function(a,u){a=k(a);d.seriesTypes.gantt.prototype.setGanttPointAliases(a);return a=A.prototype.pointClass.prototype.applyOptions.call(this,a,u)},isValid:function(){return("number"===typeof this.start||"number"===typeof this.x)&&("number"===typeof this.end||"number"===typeof this.x2||this.milestone)}}));""});E(p,"parts-gantt/GanttChart.js",
[p["parts/Globals.js"],p["parts/Utilities.js"]],function(d,a){var p=a.isArray,k=a.merge,u=a.splat,E=d.Chart;d.ganttChart=function(a,y,z){var x="string"===typeof a||a.nodeName,t=y.series,r=d.getOptions(),A,D=y;y=arguments[x?1:0];p(y.xAxis)||(y.xAxis=[y.xAxis||{},{}]);y.xAxis=y.xAxis.map(function(a,h){1===h&&(A=0);return k(r.xAxis,{grid:{enabled:!0},opposite:!0,linkedTo:A},a,{type:"datetime"})});y.yAxis=u(y.yAxis||{}).map(function(a){return k(r.yAxis,{grid:{enabled:!0},staticScale:50,reversed:!0,type:a.categories?
a.type:"treegrid"},a)});y.series=null;y=k(!0,{chart:{type:"gantt"},title:{text:null},legend:{enabled:!1}},y,{isGantt:!0});y.series=D.series=t;y.series.forEach(function(a){a.data.forEach(function(a){d.seriesTypes.gantt.prototype.setGanttPointAliases(a)})});return x?new E(a,y,z):new E(y,y)}});E(p,"parts/Scrollbar.js",[p["parts/Globals.js"],p["parts/Utilities.js"]],function(d,a){var p=a.addEvent,k=a.correctFloat,u=a.defined,E=a.destroyObjectProperties,D=a.fireEvent,y=a.merge,A=a.pick,x=a.removeEvent;
a=d.Axis;var t=d.defaultOptions,r=d.hasTouch,B,F={height:d.isTouchDevice?20:14,barBorderRadius:0,buttonBorderRadius:0,liveRedraw:void 0,margin:10,minWidth:6,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:1,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"#333333",trackBackgroundColor:"#f2f2f2",trackBorderColor:"#f2f2f2",trackBorderWidth:1};t.scrollbar=y(!0,F,t.scrollbar);d.swapXY=B=function(a,
c){var h=a.length;if(c)for(c=0;c<h;c+=3){var d=a[c+1];a[c+1]=a[c+2];a[c+2]=d}return a};var q=function(){function a(c,a,d){this._events=[];this.from=this.chartY=this.chartX=0;this.scrollbar=this.group=void 0;this.scrollbarButtons=[];this.scrollbarGroup=void 0;this.scrollbarLeft=0;this.scrollbarRifles=void 0;this.scrollbarStrokeWidth=1;this.to=this.size=this.scrollbarTop=0;this.track=void 0;this.trackBorderWidth=1;this.userOptions={};this.y=this.x=0;this.chart=d;this.options=a;this.renderer=d.renderer;
this.init(c,a,d)}a.prototype.addEvents=function(){var c=this.options.inverted?[1,0]:[0,1],a=this.scrollbarButtons,d=this.scrollbarGroup.element,e=this.track.element,b=this.mouseDownHandler.bind(this),f=this.mouseMoveHandler.bind(this),h=this.mouseUpHandler.bind(this);c=[[a[c[0]].element,"click",this.buttonToMinClick.bind(this)],[a[c[1]].element,"click",this.buttonToMaxClick.bind(this)],[e,"click",this.trackClick.bind(this)],[d,"mousedown",b],[d.ownerDocument,"mousemove",f],[d.ownerDocument,"mouseup",
h]];r&&c.push([d,"touchstart",b],[d.ownerDocument,"touchmove",f],[d.ownerDocument,"touchend",h]);c.forEach(function(b){p.apply(null,b)});this._events=c};a.prototype.buttonToMaxClick=function(c){var a=(this.to-this.from)*A(this.options.step,.2);this.updatePosition(this.from+a,this.to+a);D(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:c})};a.prototype.buttonToMinClick=function(c){var a=k(this.to-this.from)*A(this.options.step,.2);this.updatePosition(k(this.from-a),k(this.to-
a));D(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:c})};a.prototype.cursorToScrollbarPosition=function(c){var a=this.options;a=a.minWidth>this.calculatedWidth?a.minWidth:0;return{chartX:(c.chartX-this.x-this.xOffset)/(this.barWidth-a),chartY:(c.chartY-this.y-this.yOffset)/(this.barWidth-a)}};a.prototype.destroy=function(){var c=this.chart.scroller;this.removeEvents();["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(c){this[c]&&this[c].destroy&&
(this[c]=this[c].destroy())},this);c&&this===c.scrollbar&&(c.scrollbar=null,E(c.scrollbarButtons))};a.prototype.drawScrollbarButton=function(c){var a=this.renderer,d=this.scrollbarButtons,e=this.options,b=this.size;var f=a.g().add(this.group);d.push(f);f=a.rect().addClass("highcharts-scrollbar-button").add(f);this.chart.styledMode||f.attr({stroke:e.buttonBorderColor,"stroke-width":e.buttonBorderWidth,fill:e.buttonBackgroundColor});f.attr(f.crisp({x:-.5,y:-.5,width:b+1,height:b+1,r:e.buttonBorderRadius},
f.strokeWidth()));f=a.path(B(["M",b/2+(c?-1:1),b/2-3,"L",b/2+(c?-1:1),b/2+3,"L",b/2+(c?2:-2),b/2],e.vertical)).addClass("highcharts-scrollbar-arrow").add(d[c]);this.chart.styledMode||f.attr({fill:e.buttonArrowColor})};a.prototype.init=function(c,a,d){this.scrollbarButtons=[];this.renderer=c;this.userOptions=a;this.options=y(F,a);this.chart=d;this.size=A(this.options.size,this.options.height);a.enabled&&(this.render(),this.addEvents())};a.prototype.mouseDownHandler=function(a){a=this.chart.pointer.normalize(a);
a=this.cursorToScrollbarPosition(a);this.chartX=a.chartX;this.chartY=a.chartY;this.initPositions=[this.from,this.to];this.grabbedCenter=!0};a.prototype.mouseMoveHandler=function(a){var c=this.chart.pointer.normalize(a),d=this.options.vertical?"chartY":"chartX",e=this.initPositions||[];!this.grabbedCenter||a.touches&&0===a.touches[0][d]||(c=this.cursorToScrollbarPosition(c)[d],d=this[d],d=c-d,this.hasDragged=!0,this.updatePosition(e[0]+d,e[1]+d),this.hasDragged&&D(this,"changed",{from:this.from,to:this.to,
trigger:"scrollbar",DOMType:a.type,DOMEvent:a}))};a.prototype.mouseUpHandler=function(a){this.hasDragged&&D(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:a.type,DOMEvent:a});this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null};a.prototype.position=function(a,d,h,e)