/* Highcharts JS v7.1.1 (2019-04-09) Tree Grid (c) 2016-2019 Jon Arild Nygard License: www.highcharts.com/license */ (function(k){"object"===typeof module&&module.exports?(k["default"]=k,module.exports=k):"function"===typeof define&&define.amd?define("highcharts/modules/treegrid",["highcharts"],function(y){k(y);k.Highcharts=y;return k}):k("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(k){function y(b,n,k,r){b.hasOwnProperty(n)||(b[n]=r.apply(null,k))}k=k?k._modules:{};y(k,"parts-gantt/GridAxis.js",[k["parts/Globals.js"]],function(b){var n=b.addEvent,k=b.dateFormat,r=b.defined,v=b.isArray,z=b.isNumber, t=function(c){return b.isObject(c,!0)},p=b.merge,m=b.pick,h=b.wrap,e=b.Axis,g=b.Tick,l={top:0,right:1,bottom:2,left:3,0:"top",1:"right",2:"bottom",3:"left"};e.prototype.isNavigatorAxis=function(){return/highcharts-navigator-[xy]axis/.test(this.options.className)};e.prototype.isOuterAxis=function(){var c=this,a=-1,f=!0;c.chart.axes.forEach(function(d,q){d.side!==c.side||d.isNavigatorAxis()||(d===c?a=q:0<=a&&q>a&&(f=!1))});return f};e.prototype.getMaxLabelDimensions=function(c,a){var f={width:0,height:0}; a.forEach(function(a){a=c[a];var d;t(a)&&(d=t(a.label)?a.label:{},a=d.getBBox?d.getBBox().height:0,d=z(d.textPxLength)?d.textPxLength:0,f.height=Math.max(a,f.height),f.width=Math.max(d,f.width))});return f};b.dateFormats.W=function(c){c=new Date(c);var a;c.setHours(0,0,0,0);c.setDate(c.getDate()-(c.getDay()||7));a=new Date(c.getFullYear(),0,1);return Math.ceil(((c-a)/864E5+1)/7)};b.dateFormats.E=function(c){return k("%a",c,!0).charAt(0)};n(g,"afterGetLabelPosition",function(c){var a=this.label,f= this.axis,d=f.reversed,q=f.chart,e=f.options,b=e&&t(e.grid)?e.grid:{},e=f.options.labels,g=e.align,u=l[f.side],h=c.tickmarkOffset,p=f.tickPositions,m=this.pos-h,p=z(p[c.index+1])?p[c.index+1]-h:f.max+h,n=f.tickSize("tick",!0),h=v(n)?n[0]:0,n=n&&n[1]/2,x;!0===b.enabled&&("top"===u?(b=f.top+f.offset,x=b-h):"bottom"===u?(x=q.chartHeight-f.bottom+f.offset,b=x+h):(b=f.top+f.len-f.translate(d?p:m),x=f.top+f.len-f.translate(d?m:p)),"right"===u?(u=q.chartWidth-f.right+f.offset,d=u+h):"left"===u?(d=f.left+ f.offset,u=d-h):(u=Math.round(f.left+f.translate(d?p:m))-n,d=Math.round(f.left+f.translate(d?m:p))-n),this.slotWidth=d-u,c.pos.x="left"===g?u:"right"===g?d:u+(d-u)/2,c.pos.y=x+(b-x)/2,q=q.renderer.fontMetrics(e.style.fontSize,a.element),a=a.getBBox().height,e.useHTML?c.pos.y+=q.b+-(a/2):(a=Math.round(a/q.h),c.pos.y+=(q.b-(q.h-q.f))/2+-((a-1)*q.h/2)),c.pos.x+=f.horiz&&e.x||0)});n(e,"afterTickSize",function(c){var a=this.maxLabelDimensions,f=this.options;!0===(f&&t(f.grid)?f.grid:{}).enabled&&(f=2* Math.abs(this.defaultLeftAxisOptions.labels.x),a=f+(this.horiz?a.height:a.width),v(c.tickSize)?c.tickSize[0]=a:c.tickSize=[a])});n(e,"afterGetTitlePosition",function(c){var a=this.options;if(!0===(a&&t(a.grid)?a.grid:{}).enabled){var f=this.axisTitle,d=f&&f.getBBox().width,e=this.horiz,b=this.left,g=this.top,h=this.width,p=this.height,n=a.title,a=this.opposite,r=this.offset,k=this.tickSize()||[0],B=n.x||0,x=n.y||0,A=m(n.margin,e?5:10),f=this.chart.renderer.fontMetrics(n.style&&n.style.fontSize,f).f, k=(e?g+p:b)+k[0]/2*(a?-1:1)*(e?1:-1)+(this.side===l.bottom?f:0);c.titlePosition.x=e?b-d/2-A+B:k+(a?h:0)+r+B;c.titlePosition.y=e?k-(a?p:0)+(a?f:-f)/2+r+x:g-A+x}});h(e.prototype,"unsquish",function(c){var a=this.options;return!0===(a&&t(a.grid)?a.grid:{}).enabled&&this.categories?this.tickInterval:c.apply(this,Array.prototype.slice.call(arguments,1))});n(e,"afterSetOptions",function(c){var a=this.options;c=c.userOptions;var f,d=a&&t(a.grid)?a.grid:{};!0===d.enabled&&(f=p(!0,{className:"highcharts-grid-axis "+ (c.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]]},c),"xAxis"===this.coll&&(r(c.linkedTo)&&!r(c.tickPixelInterval)&&(f.tickPixelInterval= 350),r(c.tickPixelInterval)||!r(c.linkedTo)||r(c.tickPositioner)||r(c.tickInterval)||(f.tickPositioner=function(a,c){var d=this.linkedParent&&this.linkedParent.tickPositions&&this.linkedParent.tickPositions.info;if(d){var e,q,g,h,l=f.units;for(h=0;hg||eg)&&!c.startOnTick&&(d[0]=g),(bl&&b-hq?a:q;l=l+1+f.descendants;c=Math.max(f.height+1,c);return f});h&&(h.start=r(h.start,d),h.end=r(h.end,q));n(p,{children:f,descendants:l,height:c});"function"===typeof a&&a(p,g);return p};return{getListOfParents:v, getNode:z,getTree:function(b,p){var m=b.map(function(b){return b.id});b=v(b,m);return z("",null,1,null,b,p)}}});y(k,"mixins/tree-series.js",[k["parts/Globals.js"]],function(b){var n=b.extend,k=b.isArray,r=b.isObject,v=b.isNumber,z=b.merge,t=b.pick;return{getColor:function(p,m){var h=m.index,e=m.mapOptionsToLevel,g=m.parentColor,l=m.parentColorIndex,c=m.series,a=m.colors,f=m.siblings,d=c.points,q=c.chart.options.chart,n,k,w,u;if(p){d=d[p.i];p=e[p.level]||{};if(e=d&&p.colorByPoint)k=d.index%(a?a.length: q.colorCount),n=a&&a[k];if(!c.chart.styledMode){a=d&&d.options.color;q=p&&p.color;if(w=g)w=(w=p&&p.colorVariation)&&"brightness"===w.key?b.color(g).brighten(h/f*w.to).get():g;w=t(a,q,n,w,c.color)}u=t(d&&d.options.colorIndex,p&&p.colorIndex,k,l,m.colorIndex)}return{color:w,colorIndex:u}},getLevelOptions:function(b){var p=null,h,e,g,l;if(r(b))for(p={},g=v(b.from)?b.from:1,l=b.levels,e={},h=r(b.defaults)?b.defaults:{},k(l)&&(e=l.reduce(function(c,a){var b,d;r(a)&&v(a.level)&&(d=z({},a),b="boolean"=== typeof d.levelIsConstant?d.levelIsConstant:h.levelIsConstant,delete d.levelIsConstant,delete d.level,a=a.level+(b?0:g-1),r(c[a])?n(c[a],d):c[a]=d);return c},{})),l=v(b.to)?b.to:1,b=0;b<=l;b++)p[b]=z({},h,r(e[b])?e[b]:{});return p},setTreeValues:function m(b,e){var g=e.before,l=e.idRoot,c=e.mapIdToNode[l],a=e.points[b.i],f=a&&a.options||{},d=0,q=[];n(b,{levelDynamic:b.level-(("boolean"===typeof e.levelIsConstant?e.levelIsConstant:1)?0:c.level),name:t(a&&a.name,""),visible:l===b.id||("boolean"===typeof e.visible? e.visible:!1)});"function"===typeof g&&(b=g(b,e));b.children.forEach(function(a,c){var f=n({},e);n(f,{index:c,siblings:b.children.length,visible:b.visible});a=m(a,f);q.push(a);a.visible&&(d+=a.val)});b.visible=0=c?(g-c)%e:e-(c-g)%e;return b.inclusive?g<=a:g=b)break;else if(a.isInBreak(d,b)){c-=b-d.from;break}return c}function c(b){var c,d;for(d=0;d=b);d++)c.tol;)m-=g;for(;ma.to||f>a.from&&ha.from&& ha.from&&h>a.to&&he&&(e=g);c--;)l[c+1].x-l[c].x>e&&(g=(l[c].x+l[c+1].x)/2,l.splice(c+1,0,{isNull:!0,x:g}),this.options.stacking&&(g=a.stacks[this.stackKey][g]=new b.StackItem(a,a.options.stackLabels, !1,g,this.stack),g.total=0));return this.getGraphPath(l)}});y(k,"parts-gantt/TreeGrid.js",[k["parts/Globals.js"],k["parts-gantt/Tree.js"],k["mixins/tree-series.js"]],function(b,k,y){var n=b.addEvent,v=function(a){return Array.prototype.slice.call(a,1)},z=b.defined,t=b.extend,p=b.find,m=b.fireEvent,h=y.getLevelOptions,e=b.merge,g=b.isNumber,l=function(a){return b.isObject(a,!0)},c=b.isString,a=b.pick,f=b.wrap;y=b.Axis;var d=b.Tick,q=function(a,b){var c,d;for(c in b)b.hasOwnProperty(c)&&(d=b[c],f(a, c,d))},C=function(a,b){var c=a.collapseStart;a=a.collapseEnd;a>=b&&(c-=.5);return{from:c,to:a,showPoints:!1}},E=function(a){return Object.keys(a.mapOfPosToGridNode).reduce(function(b,c){c=+c;a.min<=c&&a.max>=c&&!a.isInAnyBreak(c)&&b.push(c);return b},[])},w=function(a,b){var c=a.options.breaks||[],d=C(b,a.max);return c.some(function(a){return a.from===d.from&&a.to===d.to})},u=function(a,b){var c=a.options.breaks||[];a=C(b,a.max);c.push(a);return c},D=function(a,b){var c=a.options.breaks||[],d=C(b, a.max);return c.reduce(function(a,b){b.to===d.to&&b.from===d.from||a.push(b);return a},[])},F=function(c,d){var f=c.labelIcon,e=!f,g=d.renderer,l=d.xy,h=d.options,A=h.width,k=h.height,p=l.x-A/2-h.padding,l=l.y-k/2,n=d.collapsed?90:180,m=d.show&&b.isNumber(l);e&&(c.labelIcon=f=g.path(g.symbols[h.type](h.x,h.y,A,k)).addClass("highcharts-label-icon").add(d.group));m||f.attr({y:-9999});g.styledMode||f.attr({"stroke-width":1,fill:a(d.color,"#666666")}).css({cursor:"pointer",stroke:h.lineColor,strokeWidth:h.lineWidth}); f[e?"attr":"animate"]({translateX:p,translateY:l,rotation:n})},G=function(a,b,d){var f=[],e=[],g={},h={},A=-1,n="boolean"===typeof b?b:!1;a=k.getTree(a,{after:function(a){a=h[a.pos];var b=0,c=0;a.children.forEach(function(a){c+=a.descendants+1;b=Math.max(a.height+1,b)});a.descendants=c;a.height=b;a.collapsed&&e.push(a)},before:function(a){var b=l(a.data)?a.data:{},d=c(b.name)?b.name:"",e=g[a.parent],e=l(e)?h[e.pos]:null,k=function(a){return a.name===d},m;n&&l(e)&&(m=p(e.children,k))?(k=m.pos,m.nodes.push(a)): k=A++;h[k]||(h[k]=m={depth:e?e.depth+1:0,name:d,nodes:[a],children:[],pos:k},-1!==k&&f.push(d),l(e)&&e.children.push(m));c(a.id)&&(g[a.id]=a);!0===b.collapsed&&(m.collapsed=!0);a.pos=k}});h=function(a,b){var c=function(a,d,e){var f=d+(-1===d?0:b-1),g=(f-d)/2,h=d+g;a.nodes.forEach(function(a){var b=a.data;l(b)&&(b.y=d+b.seriesIndex,delete b.seriesIndex);a.pos=h});e[h]=a;a.pos=h;a.tickmarkOffset=g+.5;a.collapseStart=f+.5;a.children.forEach(function(a){c(a,f+1,e);f=a.collapseEnd-.5});a.collapseEnd=f+ .5;return e};return c(a["-1"],-1,{})}(h,d);return{categories:f,mapOfIdToNode:g,mapOfPosToGridNode:h,collapsedNodes:e,tree:a}},B=function(a){a.target.axes.filter(function(a){return"treegrid"===a.options.type}).forEach(function(a){var c=a.options||{},d=c.labels,f,g=c.uniqueNames,k=0,c=a.series.reduce(function(a,b){b.visible&&(b.options.data.forEach(function(b){l(b)&&(b.seriesIndex=k,a.push(b))}),!0===g&&k++);return a},[]),m=G(c,g,!0===g?k:1);a.categories=m.categories;a.mapOfPosToGridNode=m.mapOfPosToGridNode; a.hasNames=!0;a.tree=m.tree;a.series.forEach(function(a){var b=a.options.data.map(function(a){return l(a)?e(a):a});a.visible&&a.setData(b,!1)});a.mapOptionsToLevel=h({defaults:d,from:1,levels:d.levels,to:a.tree.height});f=b.addEvent(a,"foundExtremes",function(){m.collapsedNodes.forEach(function(b){b=u(a,b);a.setBreaks(b,!1)});f()})})};q(y.prototype,{init:function(a,b,c){var d="treegrid"===c.type;d&&(n(b,"beforeRender",B),n(b,"beforeRedraw",B),c=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},c,{reversed:!0,grid:{columns:void 0}}));a.apply(this,[b,c]);d&&(this.hasNames=!0,this.options.showLastLabel=!0)},getMaxLabelDimensions:function(a){var b=this.options,c=b&&b.labels,b=c&&g(c.indentation)?b.labels.indentation:0,c=a.apply(this,v(arguments)),d;"treegrid"===this.options.type&&this.mapOfPosToGridNode&&(d=this.mapOfPosToGridNode[-1].height,c.width+=b*(d-1));return c},generateTick:function(a, b){var c=l(this.mapOptionsToLevel)?this.mapOptionsToLevel:{},e=this.ticks,f=e[b],g,h;"treegrid"===this.options.type?(h=this.mapOfPosToGridNode[b],(c=c[h.depth])&&(g={labels:c}),f?(f.parameters.category=h.name,f.options=g,f.addLabel()):e[b]=new d(this,b,null,void 0,{category:h.name,tickmarkOffset:h.tickmarkOffset,options:g})):a.apply(this,v(arguments))},setTickInterval:function(b){var c=this.options;"treegrid"===c.type?(this.min=a(this.userMin,c.min,this.dataMin),this.max=a(this.userMax,c.max,this.dataMax), m(this,"foundExtremes"),this.setAxisTranslation(!0),this.tickmarkOffset=.5,this.tickInterval=1,this.tickPositions=this.mapOfPosToGridNode?E(this):[]):b.apply(this,v(arguments))}});q(d.prototype,{getLabelPosition:function(b,c,d,f,e,h,k,m,p){var n=a(this.options&&this.options.labels,h);h=this.pos;var q=this.axis,A="treegrid"===q.options.type;b=b.apply(this,[c,d,f,e,n,k,m,p]);A&&(c=n&&l(n.symbol)?n.symbol:{},n=n&&g(n.indentation)?n.indentation:0,h=(h=(q=q.mapOfPosToGridNode)&&q[h])&&h.depth||1,b.x+= c.width+2*c.padding+(h-1)*n);return b},renderLabel:function(c){var d=this,f=d.pos,e=d.axis,g=d.label,h=e.mapOfPosToGridNode,k=e.options,m=a(d.options&&d.options.labels,k&&k.labels),n=m&&l(m.symbol)?m.symbol:{},p=(h=h&&h[f])&&h.depth,k="treegrid"===k.type,q=!(!g||!g.element),r=-1