/* Highcharts Gantt JS v10.2.1 (2022-08-29) Tree Grid (c) 2016-2021 Jon Arild Nygard License: www.highcharts.com/license */ (function(c){"object"===typeof module&&module.exports?(c["default"]=c,module.exports=c):"function"===typeof define&&define.amd?define("highcharts/modules/treegrid",["highcharts"],function(F){c(F);c.Highcharts=F;return c}):c("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(c){function F(c,w,C,u){c.hasOwnProperty(w)||(c[w]=u.apply(null,C),"function"===typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:w,module:c[w]}})))}c=c?c._modules:{};F(c, "Core/Axis/BrokenAxis.js",[c["Core/Axis/Stacking/StackItem.js"],c["Core/Utilities.js"]],function(c,w){var C=w.addEvent,u=w.find,E=w.fireEvent,B=w.isArray,p=w.isNumber,y=w.pick,z;(function(a){function A(){"undefined"!==typeof this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function D(){this.brokenAxis&&this.brokenAxis.hasBreaks&&(this.options.ordinal=!1)}function H(){var a=this.brokenAxis;if(a&&a.hasBreaks){for(var b=this.tickPositions,d=this.tickPositions.info,l=[],e=0;eb.to||k>b.from&&xb.from&&xb.from&&x>b.to&&xl&&b>=this.basePointRange&&(l=b),k=void 0;e--;)k&&!1!==k.visible||(k=a[e+1]),b=a[e],!1!==k.visible&&!1!==b.visible&&(k.x-b.x>l&&(k=(b.x+k.x)/2,a.splice(e+1,0,{isNull:!0,x:k}),d.stacking&&this.options.stacking&&(k=d.stacking.stacks[this.stackKey][k]=new c(d,d.options.stackLabels,!1,k,this.stack),k.total=0)), k=b);return this.getGraphPath(a)}var v=[];a.compose=function(a,b){-1===v.indexOf(a)&&(v.push(a),a.keepProps.push("brokenAxis"),C(a,"init",t),C(a,"afterInit",A),C(a,"afterSetTickPositions",H),C(a,"afterSetOptions",D));if(-1===v.indexOf(b)){v.push(b);var d=b.prototype;d.drawBreaks=f;d.gappedPath=n;C(b,"afterGeneratePoints",r);C(b,"afterRender",m)}return a};var z=function(){function a(a){this.hasBreaks=!1;this.axis=a}a.isInBreak=function(a,d){var b=a.repeat||Infinity,e=a.from,k=a.to-a.from;d=d>=e?(d- e)%b:b-(e-d)%b;return a.inclusive?d<=k:d=b)break;else e.to=b)break;else if(a.isInBreak(k,b)){l-=b-k.from;break}}return l};a.prototype.findBreakAt= function(a,d){return u(d,function(b){return b.fromm;)q-=n;for(;qa?this.hiddenLabels.push(e.hide()):e.show());(e=this.ticks[q].label)&&(q-h>a?this.hiddenLabels.push(e.hide()):e.show());(b=this.ticks[q].mark)&&q-hk&&!a.startOnTick&&(h[0]=k),e>f&&e-ln?a:n;p=p+1+m.descendants;t=Math.max(m.height+1,t);return m});a&&(a.start=u(a.start,f),a.end=u(a.end,n));w(y,{children:m,descendants:p,height:t});"function"===typeof r&&r(y,D);return y};return{getListOfParents:E,getNode:B,getTree:function(c, y){var p=c.map(function(a){return a.id});c=E(c,p);return B("",null,1,null,c,y)}}});F(c,"Core/Axis/TreeGrid/TreeGridTick.js",[c["Core/Utilities.js"]],function(c){function w(){this.treeGrid||(this.treeGrid=new D(this))}function C(a,t){a=a.treeGrid;var r=!a.labelIcon,m=t.renderer,f=t.xy,n=t.options,c=n.width||0,p=n.height||0,A=f.x-c/2-(n.padding||0);f=f.y-p/2;var b=t.collapsed?90:180,d=t.show&&y(f),l=a.labelIcon;l||(a.labelIcon=l=m.path(m.symbols[n.type](n.x||0,n.y||0,c,p)).addClass("highcharts-label-icon").add(t.group)); l[d?"show":"hide"]();m.styledMode||l.attr({cursor:"pointer",fill:z(t.color,"#666666"),"stroke-width":1,stroke:n.lineColor,strokeWidth:n.lineWidth||0});l[r?"attr":"animate"]({translateX:A,translateY:f,rotation:b})}function u(a,t,r,m,f,n,c,A,w){var b=z(this.options&&this.options.labels,n);n=this.pos;var d=this.axis,l="treegrid"===d.options.type;a=a.apply(this,[t,r,m,f,b,c,A,w]);l&&(t=b&&p(b.symbol,!0)?b.symbol:{},b=b&&y(b.indentation)?b.indentation:0,n=(n=(d=d.treeGrid.mapOfPosToGridNode)&&d[n])&&n.depth|| 1,a.x+=(t.width||0)+2*(t.padding||0)+(n-1)*b);return a}function E(a){var c=this,r=c.pos,m=c.axis,f=c.label,n=m.treeGrid.mapOfPosToGridNode,v=m.options,A=z(c.options&&c.options.labels,v&&v.labels),w=A&&p(A.symbol,!0)?A.symbol:{},b=(n=n&&n[r])&&n.depth;v="treegrid"===v.type;var d=-1=b&&(a-=.5);return{from:a,to:h, showPoints:!1}}function y(a,b,c){var h=[],d=[],e={},k="boolean"===typeof b?b:!1,f={},l=-1;a=C.getTree(a,{after:function(a){a=f[a.pos];var b=0,h=0;a.children.forEach(function(a){h+=(a.descendants||0)+1;b=Math.max((a.height||0)+1,b)});a.descendants=h;a.height=b;a.collapsed&&d.push(a)},before:function(a){var b=n(a.data,!0)?a.data:{},c=v(b.name)?b.name:"",d=e[a.parent];d=n(d,!0)?f[d.pos]:null;var m=function(a){return a.name===c},x;k&&n(d,!0)&&(x=r(d.children,m))?(m=x.pos,x.nodes.push(a)):m=l++;f[m]|| (f[m]=x={depth:d?d.depth+1:0,name:c,id:b.id,nodes:[a],children:[],pos:m},-1!==m&&h.push(c),n(d,!0)&&d.children.push(x));v(a.id)&&(e[a.id]=a);x&&!0===b.collapsed&&(x.collapsed=!0);a.pos=m}});f=function(a,b){var h=function(a,c,d){var e=c+(-1===c?0:b-1),g=(e-c)/2,f=c+g;a.nodes.forEach(function(a){var b=a.data;n(b,!0)&&(b.y=c+(b.seriesIndex||0),delete b.seriesIndex);a.pos=f});d[f]=a;a.pos=f;a.tickmarkOffset=g+.5;a.collapseStart=e+.5;a.children.forEach(function(a){h(a,e+1,d);e=(a.collapseEnd||0)-.5}); a.collapseEnd=e+.5;return d};return h(a["-1"],-1,{})}(f,c);return{categories:h,mapOfIdToNode:e,mapOfPosToGridNode:f,collapsedNodes:d,tree:a}}function z(a){a.target.axes.filter(function(a){return"treegrid"===a.options.type}).forEach(function(b){var c=b.options||{},d=c.labels,h=c.uniqueNames;c=c.max;var e=0;if(!b.treeGrid.mapOfPosToGridNode||b.series.some(function(a){return!a.hasRendered||a.isDirtyData||a.isDirty})){var k=b.series.reduce(function(a,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));n(c,!0)&&(c.seriesIndex=e,a.push(c))}),!0===h&&e++);return a},[]);if(c&&k.length=b&&e<=c)||a.brokenAxis&&a.brokenAxis.isInAnyBreak(e)|| d.push(e);return d},[])};e.prototype.isCollapsed=function(a){var b=this.axis,c=b.options.breaks||[],d=p(a,b.max);return c.some(function(a){return a.from===d.from&&a.to===d.to})};e.prototype.toggleCollapse=function(a){return this.isCollapsed(a)?this.expand(a):this.collapse(a)};return e}();return e});F(c,"masters/modules/treegrid.src.js",[c["Core/Globals.js"],c["Core/Axis/TreeGrid/TreeGridAxis.js"]],function(c,w){w.compose(c.Axis,c.Chart,c.Series,c.Tick)})}); //# sourceMappingURL=treegrid.js.map