/** * Highcharts Gantt JS v11.2.0 (2023-10-30) * * Tree Grid * * (c) 2016-2021 Jon Arild Nygard * * License: www.highcharts.com/license */!function(t){"object"==typeof module&&module.exports?(t.default=t,module.exports=t):"function"==typeof define&&define.amd?define("highcharts/modules/treegrid",["highcharts"],function(e){return t(e),t.Highcharts=e,t}):t("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(t){"use strict";var e=t?t._modules:{};function i(t,e,i,r){t.hasOwnProperty(e)||(t[e]=r.apply(null,i),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:e,module:t[e]}})))}i(e,"Core/Axis/BrokenAxis.js",[e["Core/Axis/Stacking/StackItem.js"],e["Core/Utilities.js"]],function(t,e){var i,r=e.addEvent,s=e.find,o=e.fireEvent,n=e.isArray,a=e.isNumber,l=e.pick;return function(i){var d=[];function h(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function c(){var t;(null===(t=this.brokenAxis)||void 0===t?void 0:t.hasBreaks)&&(this.options.ordinal=!1)}function p(){var t=this.brokenAxis;if(null==t?void 0:t.hasBreaks){for(var e=this.tickPositions,i=this.tickPositions.info,r=[],s=0;se.to||s>e.from&&ne.from&&ne.from&&n>e.to&&n0){"value"!==this.options.gapUnit&&(o*=this.basePointRange),i&&i>o&&i>=this.basePointRange&&(o=i);for(var a=void 0,l=void 0;n--;)if(l&&!1!==l.visible||(l=r[n+1]),a=r[n],!1!==l.visible&&!1!==a.visible){if(l.x-a.x>o){var d=(a.x+l.x)/2;r.splice(n+1,0,{isNull:!0,x:d}),s.stacking&&this.options.stacking&&((s.stacking.stacks[this.stackKey][d]=new t(s,s.options.stackLabels,!1,d,this.stack)).total=0)}l=a}}return this.getGraphPath(r)}i.compose=function(t,i){if(e.pushUnique(d,t)&&(t.keepProps.push("brokenAxis"),r(t,"init",u),r(t,"afterInit",h),r(t,"afterSetTickPositions",p),r(t,"afterSetOptions",c)),e.pushUnique(d,i)){var s=i.prototype;s.drawBreaks=g,s.gappedPath=m,r(i,"afterGeneratePoints",f),r(i,"afterRender",v)}return t};var k=function(){function t(t){this.hasBreaks=!1,this.axis=t}return t.isInBreak=function(t,e){var i=t.repeat||1/0,r=t.from,s=t.to-t.from,o=e>=r?(e-r)%i:i-(r-e)%i;return t.inclusive?o<=s:o=n);o++)s.to=e)break;else if(t.isInBreak(s,e)){n-=e-s.from;break}return n},t.prototype.findBreakAt=function(t,e){return s(e,function(e){return e.fromv;)n-=i;for(;nf?this.hiddenLabels.push(m.hide()):m.show()),(m=this.ticks[v].label)&&(v-r>f?this.hiddenLabels.push(m.hide()):m.show());var x=this.ticks[v].mark;x&&v-r0&&this.ticks[v].isLast&&this.hiddenMarks.push(x.hide())}}}function P(){var t=this.tickPositions&&this.tickPositions.info,e=this.options,i=e.grid||{},r=this.userOptions.labels||{};i.enabled&&(this.horiz?(this.series.forEach(function(t){t.options.pointRange=0}),t&&e.dateTimeLabelFormats&&e.labels&&!a(r.align)&&(!1===e.dateTimeLabelFormats[t.unitName].range||t.count>1)&&(e.labels.align="left",a(r.x)||(e.labels.x=3))):"treegrid"!==this.options.type&&this.grid&&this.grid.columns&&(this.minPointOffset=this.tickInterval))}function A(t){var e,i=this.options,r=t.userOptions,s=i&&m(i.grid)?i.grid:{};!0===s.enabled&&(e=p(!0,{className:"highcharts-grid-axis "+(r.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:"0.9em"}},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]]},r),"xAxis"===this.coll&&(a(r.linkedTo)&&!a(r.tickPixelInterval)&&(e.tickPixelInterval=350),!a(r.tickPixelInterval)&&a(r.linkedTo)&&!a(r.tickPositioner)&&!a(r.tickInterval)&&(e.tickPositioner=function(t,i){var r=this.linkedParent&&this.linkedParent.tickPositions&&this.linkedParent.tickPositions.info;if(r){for(var s=e.units||[],o=void 0,n=1,a="year",l=0;ll&&!t.startOnTick&&(r[0]=l),o>d&&o-hc?a:c,v=v+1+r.descendants,g=Math.max(r.height+1,g),r});return a&&(a.start=r(a.start,h),a.end=r(a.end,c)),e(f,{children:m,descendants:v,height:g}),"function"==typeof p&&p(f,d),f}return{getNode:s,getTree:function(t,e){return s("",null,1,null,t.reduce(function(t,e){var i=r(e.parent,"");return void 0===t[i]&&(t[i]=[]),t[i].push(e),t},{}),e)}}}),i(e,"Core/Axis/TreeGrid/TreeGridTick.js",[e["Core/Utilities.js"]],function(t){var e=t.addEvent,i=t.isObject,r=t.isNumber,s=t.pick,o=t.wrap,n=[];function a(){this.treeGrid||(this.treeGrid=new h(this))}function l(t,e,o,n,a,l,d,h,c){var p,u,f,v,g,m=s(this.options&&this.options.labels,l),k=this.pos,x=this.axis,b="treegrid"===x.options.type,y=t.apply(this,[e,o,n,a,m,d,h,c]);return b&&(p=m&&i(m.symbol,!0)?m.symbol:{},u=m&&r(m.indentation)?m.indentation:0,g=(v=(f=x.treeGrid.mapOfPosToGridNode)&&f[k])&&v.depth||1,y.x+=(p.width||0)+2*(p.padding||0)+(g-1)*u),y}function d(t){var o,n,a,l,d,h,c,p,u,f,v,g,m,k,x,b=this,y=b.pos,G=b.axis,P=b.label,A=G.treeGrid.mapOfPosToGridNode,T=G.options,O=s(b.options&&b.options.labels,T&&T.labels),B=O&&i(O.symbol,!0)?O.symbol:{},C=A&&A[y],w=C&&C.depth,I="treegrid"===T.type,N=G.tickPositions.indexOf(y)>-1,E="highcharts-treegrid-node-",L=G.chart.styledMode;I&&C&&P&&P.element&&P.addClass(E+"level-"+w),t.apply(b,Array.prototype.slice.call(arguments,1)),I&&P&&P.element&&C&&C.descendants&&C.descendants>0&&(m=G.treeGrid.isCollapsed(C),o={color:!L&&P.styles&&P.styles.color||"",collapsed:m,group:P.parentGroup,options:B,renderer:P.renderer,show:N,xy:P.xy},a=!(n=b.treeGrid).labelIcon,l=o.renderer,d=o.xy,c=(h=o.options).width||0,p=h.height||0,u={x:d.x-c/2-(h.padding||0),y:d.y-p/2},f=o.collapsed?90:180,v=o.show&&r(u.y),(g=n.labelIcon)||(n.labelIcon=g=l.path(l.symbols[h.type](h.x||0,h.y||0,c,p)).addClass("highcharts-label-icon").add(o.group)),g[v?"show":"hide"](),l.styledMode||g.attr({cursor:"pointer",fill:s(o.color,"#666666"),"stroke-width":1,stroke:h.lineColor,strokeWidth:h.lineWidth||0}),g[a?"attr":"animate"]({translateX:u.x,translateY:u.y,rotation:f}),k=E+(m?"collapsed":"expanded"),x=E+(m?"expanded":"collapsed"),P.addClass(k).removeClass(x),L||P.css({cursor:"pointer"}),[P,b.treeGrid.labelIcon].forEach(function(t){t&&!t.attachedTreeGridEvents&&(e(t.element,"mouseover",function(){P.addClass("highcharts-treegrid-node-active"),P.renderer.styledMode||P.css({textDecoration:"underline"})}),e(t.element,"mouseout",function(){var t;t=i(O.style)?O.style:{},P.removeClass("highcharts-treegrid-node-active"),P.renderer.styledMode||P.css({textDecoration:t.textDecoration})}),e(t.element,"click",function(){b.treeGrid.toggleCollapse()}),t.attachedTreeGridEvents=!0)}))}var h=function(){function i(t){this.tick=t}return i.compose=function(i){t.pushUnique(n,i)&&(e(i,"init",a),o(i.prototype,"getLabelPosition",l),o(i.prototype,"renderLabel",d),i.prototype.collapse=function(t){this.treeGrid.collapse(t)},i.prototype.expand=function(t){this.treeGrid.expand(t)},i.prototype.toggleCollapse=function(t){this.treeGrid.toggleCollapse(t)})},i.prototype.collapse=function(t){var e=this.tick,i=e.axis,r=i.brokenAxis;if(r&&i.treeGrid.mapOfPosToGridNode){var o=e.pos,n=i.treeGrid.mapOfPosToGridNode[o],a=i.treeGrid.collapse(n);r.setBreaks(a,s(t,!0))}},i.prototype.destroy=function(){this.labelIcon&&this.labelIcon.destroy()},i.prototype.expand=function(t){var e=this.tick,i=e.axis,r=i.brokenAxis;if(r&&i.treeGrid.mapOfPosToGridNode){var o=e.pos,n=i.treeGrid.mapOfPosToGridNode[o],a=i.treeGrid.expand(n);r.setBreaks(a,s(t,!0))}},i.prototype.toggleCollapse=function(t){var e=this.tick,i=e.axis,r=i.brokenAxis;if(r&&i.treeGrid.mapOfPosToGridNode){var o=e.pos,n=i.treeGrid.mapOfPosToGridNode[o],a=i.treeGrid.toggleCollapse(n);r.setBreaks(a,s(t,!0))}},i}();return h}),i(e,"Series/TreeUtilities.js",[e["Core/Color/Color.js"],e["Core/Utilities.js"]],function(t,e){var i=e.extend,r=e.isArray,s=e.isNumber,o=e.isObject,n=e.merge,a=e.pick;return{getColor:function(e,i){var r,s,o,n,l,d,h,c=i.index,p=i.mapOptionsToLevel,u=i.parentColor,f=i.parentColorIndex,v=i.series,g=i.colors,m=i.siblings,k=v.points,x=v.chart.options.chart;return e&&(s=k[e.i],o=p[e.level]||{},s&&o.colorByPoint&&(l=s.index%(g?g.length:x.colorCount),n=g&&g[l]),v.chart.styledMode||(d=a(s&&s.options.color,o&&o.color,n,u&&((r=o&&o.colorVariation)&&"brightness"===r.key&&c&&m?t.parse(u).brighten(r.to*(c/m)).get():u),v.color)),h=a(s&&s.options.colorIndex,o&&o.colorIndex,l,f,i.colorIndex)),{color:d,colorIndex:h}},getLevelOptions:function(t){var e,i,l,d,h,c,p={};if(o(t))for(d=s(t.from)?t.from:1,c=t.levels,i={},e=o(t.defaults)?t.defaults:{},r(c)&&(i=c.reduce(function(t,i){var r,l,h;return o(i)&&s(i.level)&&(l=a((h=n({},i)).levelIsConstant,e.levelIsConstant),delete h.levelIsConstant,delete h.level,o(t[r=i.level+(l?0:d-1)])?n(!0,t[r],h):t[r]=h),t},{})),h=s(t.to)?t.to:1,l=0;l<=h;l++)p[l]=n({},e,o(i[l])?i[l]:{});return p},setTreeValues:function t(e,r){var s=r.before,o=r.idRoot,n=r.mapIdToNode[o],l=!1!==r.levelIsConstant,d=r.points[e.i],h=d&&d.options||{},c=[],p=0;e.levelDynamic=e.level-(l?0:n.level),e.name=a(d&&d.name,""),e.visible=o===e.id||!0===r.visible,"function"==typeof s&&(e=s(e,r)),e.children.forEach(function(s,o){var n=i({},r);i(n,{index:o,siblings:e.children.length,visible:e.visible}),s=t(s,n),c.push(s),s.visible&&(p+=s.val)});var u=a(h.value,p);return e.visible=u>=0&&(p>0||e.visible),e.children=c,e.childrenTotal=p,e.isLeaf=e.visible&&!p,e.val=u,e},updateRootId:function(t){var e,i;return o(t)&&(i=o(t.options)?t.options:{},e=a(t.rootNode,i.rootId,""),o(t.userOptions)&&(t.userOptions.rootId=e),t.rootNode=e),e}}}),i(e,"Core/Axis/TreeGrid/TreeGridAxis.js",[e["Core/Axis/BrokenAxis.js"],e["Core/Axis/GridAxis.js"],e["Gantt/Tree.js"],e["Core/Axis/TreeGrid/TreeGridTick.js"],e["Series/TreeUtilities.js"],e["Core/Utilities.js"]],function(t,e,i,r,s,o){var n,a=s.getLevelOptions,l=o.addEvent,d=o.find,h=o.fireEvent,c=o.isArray,p=o.isObject,u=o.isString,f=o.merge,v=o.pick,g=o.wrap,m=[];function k(t,e){var i=t.collapseEnd||0,r=t.collapseStart||0;return i>=e&&(r-=.5),{from:r,to:i,showPoints:!1}}function x(t,e,r){var s,o,n=[],a=[],l={},h="boolean"==typeof e&&e,c={},f=-1,v=i.getTree(t,{after:function(t){var e=c[t.pos],i=0,r=0;e.children.forEach(function(t){r+=(t.descendants||0)+1,i=Math.max((t.height||0)+1,i)}),e.descendants=r,e.height=i,e.collapsed&&a.push(e)},before:function(t){var e,i,r=p(t.data,!0)?t.data:{},s=u(r.name)?r.name:"",o=l[t.parent],a=p(o,!0)?c[o.pos]:null;h&&p(a,!0)&&(e=d(a.children,function(t){return t.name===s}))?(i=e.pos,e.nodes.push(t)):i=f++,!c[i]&&(c[i]=e={depth:a?a.depth+1:0,name:s,id:r.id,nodes:[t],children:[],pos:i},-1!==i&&n.push(s),p(a,!0)&&a.children.push(e)),u(t.id)&&(l[t.id]=t),e&&!0===r.collapsed&&(e.collapsed=!0),t.pos=i}});return s=c,{categories:n,mapOfIdToNode:l,mapOfPosToGridNode:c=(o=function(t,e,i){var s=t.nodes,n=e+(-1===e?0:r-1),a=(n-e)/2,l=e+a;return s.forEach(function(t){var i=t.data;p(i,!0)&&(i.y=e+(i.seriesIndex||0),delete i.seriesIndex),t.pos=l}),i[l]=t,t.pos=l,t.tickmarkOffset=a+.5,t.collapseStart=n+.5,t.children.forEach(function(t){o(t,n+1,i),n=(t.collapseEnd||0)-.5}),t.collapseEnd=n+.5,i})(s["-1"],-1,{}),collapsedNodes:a,tree:v}}function b(t){t.target.axes.filter(function(t){return"treegrid"===t.options.type}).forEach(function(e){var i,r,s=e.options||{},o=s.labels,n=s.uniqueNames,l=s.max,d=!e.treeGrid.mapOfPosToGridNode||e.series.some(function(t){return!t.hasRendered||t.isDirtyData||t.isDirty}),h=0;if(d){if(i=e.series.reduce(function(t,e){return e.visible&&((e.options.data||[]).forEach(function(i){e.options.keys&&e.options.keys.length&&(i=e.pointClass.prototype.optionsToObject.call({series:e},i),e.pointClass.setGanttPointAliases(i)),p(i,!0)&&(i.seriesIndex=h,t.push(i))}),!0===n&&h++),t},[]),l&&i.length=0&&e.indexOf(t.x2)>=0&&(e=t)}),p(e,!0)?f(e):e});t.visible&&t.setData(e,!1)}),e.treeGrid.mapOptionsToLevel=a({defaults:o,from:1,levels:o&&o.levels,to:e.treeGrid.tree&&e.treeGrid.tree.height}),"beforeRender"===t.type&&(e.treeGrid.collapsedNodes=r.collapsedNodes)}})}function y(t,e){var i,r,s,o=this.treeGrid.mapOptionsToLevel||{},a="treegrid"===this.options.type,l=this.ticks,d=l[e];a&&this.treeGrid.mapOfPosToGridNode?((i=o[(s=this.treeGrid.mapOfPosToGridNode[e]).depth])&&(r={labels:i}),!d&&n?l[e]=d=new n(this,e,void 0,void 0,{category:s.name,tickmarkOffset:s.tickmarkOffset,options:r}):(d.parameters.category=s.name,d.options=r,d.addLabel())):t.apply(this,Array.prototype.slice.call(arguments,1))}function G(t,e,i,r){var s=this,o="treegrid"===i.type;s.treeGrid||(s.treeGrid=new A(s)),o&&(l(e,"beforeRender",b),l(e,"beforeRedraw",b),l(e,"addSeries",function(t){if(t.options.data){var e=x(t.options.data,i.uniqueNames||!1,1);s.treeGrid.collapsedNodes=(s.treeGrid.collapsedNodes||[]).concat(e.collapsedNodes)}}),l(s,"foundExtremes",function(){s.treeGrid.collapsedNodes&&s.treeGrid.collapsedNodes.forEach(function(t){var e=s.treeGrid.collapse(t);s.brokenAxis&&(s.brokenAxis.setBreaks(e,!1),s.treeGrid.collapsedNodes&&(s.treeGrid.collapsedNodes=s.treeGrid.collapsedNodes.filter(function(e){return t.collapseStart!==e.collapseStart||t.collapseEnd!==e.collapseEnd})))})}),l(s,"afterBreaks",function(){"yAxis"===s.coll&&!s.staticScale&&s.chart.options.chart.height&&(s.isDirty=!0)}),i=f({grid:{enabled:!0},labels:{align:"left",levels:[{level:void 0},{level:1,style:{fontWeight:"bold"}}],symbol:{type:"triangle",x:-5,y:-5,height:10,width:10,padding:5}},uniqueNames:!1},i,{reversed:!0,grid:{columns:void 0}})),t.apply(s,[e,i,r]),o&&(s.hasNames=!0,s.options.showLastLabel=!0)}function P(t){var e=this.options;"treegrid"===e.type?(this.min=v(this.userMin,e.min,this.dataMin),this.max=v(this.userMax,e.max,this.dataMax),h(this,"foundExtremes"),this.setAxisTranslation(),this.tickmarkOffset=.5,this.tickInterval=1,this.tickPositions=this.treeGrid.mapOfPosToGridNode?this.treeGrid.getTickPositions():[]):t.apply(this,Array.prototype.slice.call(arguments,1))}var A=function(){function s(t){this.axis=t}return s.compose=function(s,a,l,d){if(o.pushUnique(m,s)){-1===s.keepProps.indexOf("treeGrid")&&s.keepProps.push("treeGrid");var h=s.prototype;g(h,"generateTick",y),g(h,"init",G),g(h,"setTickInterval",P),h.utils={getNode:i.getNode}}return o.pushUnique(m,d)&&!n&&(n=d),e.compose(s,a,d),t.compose(s,l),r.compose(d),s},s.prototype.setCollapsedStatus=function(t){var e=this.axis,i=e.chart;e.series.forEach(function(e){var r=e.options.data;if(t.id&&r){var s=i.get(t.id),o=r[e.data.indexOf(s)];s&&o&&(s.collapsed=t.collapsed,o.collapsed=t.collapsed)}})},s.prototype.collapse=function(t){var e=this.axis,i=e.options.breaks||[],r=k(t,e.max);return i.push(r),t.collapsed=!0,e.treeGrid.setCollapsedStatus(t),i},s.prototype.expand=function(t){var e=this.axis,i=e.options.breaks||[],r=k(t,e.max);return t.collapsed=!1,e.treeGrid.setCollapsedStatus(t),i.reduce(function(t,e){return(e.to!==r.to||e.from!==r.from)&&t.push(e),t},[])},s.prototype.getTickPositions=function(){var t=this.axis,e=Math.floor(t.min/t.tickInterval)*t.tickInterval,i=Math.ceil(t.max/t.tickInterval)*t.tickInterval;return Object.keys(t.treeGrid.mapOfPosToGridNode||{}).reduce(function(r,s){var o=+s;return o>=e&&o<=i&&!(t.brokenAxis&&t.brokenAxis.isInAnyBreak(o))&&r.push(o),r},[])},s.prototype.isCollapsed=function(t){var e=this.axis,i=e.options.breaks||[],r=k(t,e.max);return i.some(function(t){return t.from===r.from&&t.to===r.to})},s.prototype.toggleCollapse=function(t){return this.isCollapsed(t)?this.expand(t):this.collapse(t)},s}();return A}),i(e,"masters/modules/treegrid.src.js",[e["Core/Globals.js"],e["Core/Axis/TreeGrid/TreeGridAxis.js"]],function(t,e){e.compose(t.Axis,t.Chart,t.Series,t.Tick)})});//# sourceMappingURL=treegrid.js.map