highcharts
Version:
JavaScript charting framework
13 lines • 30.5 kB
JavaScript
let e;/**
* Highcharts Gantt JS v13.0.1 (2026-08-17)
* @module highcharts/modules/treegrid
* @requires highcharts
*
* Tree Grid
*
* (c) 2016-2026 Highsoft AS
* Author: Jon Arild Nygård
*
* A commercial license may be required depending on use,
* see www.highcharts.com/license
*/import*as t from"../highcharts.js";let i={};i.n=e=>{let t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{if(Array.isArray(t))for(var s=0;s<t.length;){var r=t[s++],o=t[s++];i.o(e,r)?0===o&&s++:0===o?Object.defineProperty(e,r,{enumerable:!0,value:t[s++]}):Object.defineProperty(e,r,{enumerable:!0,get:o})}else for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);let s=t.default;var r,o,n,a=i.n(s);let l=t.default.StackItem;var d=i.n(l);!function(e){function t(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function i(){Object.keys(this.options.breaks?.[0]||{}).length&&(this.options.ordinal=!1)}function r(){let e=this.brokenAxis;if(e?.hasBreaks){let t=this.tickPositions,i=this.tickPositions.info,s=[];for(let i=0;i<t.length;i++)e.isInAnyBreak(t[i])||s.push(t[i]);this.tickPositions=s,this.tickPositions.info=i}}function o(){this.brokenAxis||(this.brokenAxis=new c(this))}function n(){let{isDirty:e,options:{connectNulls:t},points:i,xAxis:s,yAxis:r}=this;if(e){let e=i.length;for(;e--;){let o=i[e],n=(null!==o.y||!1!==t)&&(s?.brokenAxis?.isInAnyBreak(o.x,!0)||r?.brokenAxis?.isInAnyBreak(o.y,!0));o.visible=!n&&!1!==o.options.visible}}}function a(){this.drawBreaks(this.xAxis,["x"]),this.drawBreaks(this.yAxis,(0,s.pick)(this.pointArrayMap,["y"]))}function l(e,t){let i,r,o,n=this,a=n.points;if(e?.brokenAxis?.hasBreaks){let l=e.brokenAxis;t.forEach(function(t){i=l?.breakArray||[],r=e.isXAxis?e.min:(0,s.pick)(n.options.threshold,e.min),a.forEach(function(n){o=n["stack"+t.toUpperCase()]??n[t],i.forEach(function(t){if((0,s.isNumber)(r)&&(0,s.isNumber)(o)){let i="";r<t.from&&o>t.to||r>t.from&&o<t.from?i="pointBreak":(r<t.from&&o>t.from&&o<t.to||r>t.from&&o>t.to&&o<t.from)&&(i="pointInBreak"),i&&(0,s.fireEvent)(e,i,{point:n,brk:t})}})})})}}function h(){let e=this.currentDataGrouping,t=e?.gapSize,i=this.points.slice(),s=this.yAxis,r=this.options.gapSize,o=i.length-1;if(r&&o>0){let e,n;for("value"!==this.options.gapUnit&&(r*=this.basePointRange),t&&t>r&&t>=this.basePointRange&&(r=t);o--;)if(n&&!1!==n.visible||(n=i[o+1]),e=i[o],!1!==n.visible&&!1!==e.visible){if(n.x-e.x>r){let t=(e.x+n.x)/2;i.splice(o+1,0,{isNull:!0,x:t}),s.stacking&&this.options.stacking&&((s.stacking.stacks[this.stackKey][t]=new(d())(s,s.options.stackLabels,!1,t,this.stack??"")).total=0)}n=e}}return this.getGraphPath(i)}e.compose=function(e,d){if(!e.keepProps.includes("brokenAxis")){e.keepProps.push("brokenAxis"),(0,s.addEvent)(e,"init",o),(0,s.addEvent)(e,"afterInit",t),(0,s.addEvent)(e,"afterSetTickPositions",r),(0,s.addEvent)(e,"afterSetOptions",i);let c=d.prototype;c.drawBreaks=l,c.gappedPath=h,(0,s.addEvent)(d,"afterGeneratePoints",n),(0,s.addEvent)(d,"afterRender",a)}return e};class c{static isInBreak(e,t){let i=e.repeat||1/0,s=e.from,r=e.to-e.from,o=t>=s?(t-s)%i:i-(s-t)%i;return e.inclusive?o<=r:o<r&&0!==o}static lin2Val(e){let t=this.min||0,i=this.brokenAxis,r=i?.breakArray;if(!r?.length||!(0,s.isNumber)(e))return e;let o=e;if(e>t)for(let e of r)if(e.from>o)break;else e.to<=o&&e.to>t?o+=e.len:c.isInBreak(e,o)&&(o+=e.len);else if(e<t)for(let e of r)if(e.from>t)break;else e.from>=o&&e.from<t?o-=e.len:c.isInBreak(e,o)&&(o-=e.len);return o}static val2Lin(e){let t=this.min||0,i=this.brokenAxis,r=i?.breakArray;if(!r?.length||!(0,s.isNumber)(e))return e;let o=e;if(e>t){for(let i of r)if(i.to<=e&&i.to>t)o-=i.len;else if(i.from>e)break;else if(c.isInBreak(i,e)){o-=e-i.from;break}}else if(e<t){for(let i of r)if(i.from>=e&&i.from<t)o+=i.len;else if(i.from>t)break;else if(c.isInBreak(i,e)){o+=i.to-e;break}}return o}constructor(e){this.axis=e}findBreakAt(e,t){return(0,s.find)(t,function(t){return t.from<e&&e<t.to})}isInAnyBreak(e,t){let i=this.axis,r=i.options.breaks||[],o=r.length,n,a,l;if(o&&(0,s.isNumber)(e)){for(;o--;)c.isInBreak(r[o],e)&&(n=!0,a||(a=(0,s.pick)(r[o].showPoints,!i.isXAxis)));l=n&&t?n&&!a:n}return l}setBreaks(e,t){let i=this,r=i.axis,o=r.chart.time,n=(0,s.isArray)(e)&&!!Object.keys(e?.[0]||{}).length;r.isDirty=(i.hasBreaks??!1)!==n,i.hasBreaks=n,e?.forEach(e=>{e.from=o.parse(e.from)||0,e.to=o.parse(e.to)||0}),e!==r.options.breaks&&(r.options.breaks=r.userOptions.breaks=e),r.forceRedraw=!0,r.series.forEach(function(e){e.isDirty=!0}),n||r.val2lin!==c.val2Lin||(delete r.val2lin,delete r.lin2val),n&&(r.userOptions.ordinal=!1,r.lin2val=c.lin2Val,r.val2lin=c.val2Lin,r.setExtremes=function(e,t,s,o,n){if(i.hasBreaks&&!r.treeGrid?.tree){let s,r=this.brokenAxis.breakArray||[];for(;s=i.findBreakAt(e,r);)e=s.to;for(;s=i.findBreakAt(t,r);)t=s.from;t<e&&(t=e)}r.constructor.prototype.setExtremes.call(this,e,t,s,o,n)},r.setAxisTranslation=function(){if(r.constructor.prototype.setAxisTranslation.call(this),i.unitLength=void 0,i.hasBreaks){let e=r.options.breaks||[],t=[],o=[],n=r.pointRangePadding??0,a=0,l,d,h=r.userMin??r.min,p=r.userMax??r.max,f,u,m=(0,s.isNumber)(h)?Math.min(r.dataMin??h,h):r.dataMin??h,g=(0,s.isNumber)(p)?Math.max(r.dataMax??p,p):r.dataMax??p;r.treeGrid?.tree||e.forEach(function(e){d=e.repeat||1/0,(0,s.isNumber)(h)&&(0,s.isNumber)(p)&&(c.isInBreak(e,h)&&(h+=e.to%d-h%d),c.isInBreak(e,p)&&(p-=p%d-e.from%d))}),(0,s.isNumber)(m)&&(0,s.isNumber)(g)&&e.forEach(function(e){for(f=e.from,d=e.repeat||1/0;f-d>m;)f-=d;for(;f<m;)f+=d;for(u=f;u<g;u+=d)t.push({value:u,move:"in"}),t.push({value:u+e.to-e.from,move:"out",size:e.breakSize})}),t.sort(function(e,t){return e.value===t.value?("in"!==e.move)-("in"!==t.move):e.value-t.value}),l=0,f=m,t.forEach(e=>{1===(l+="in"===e.move?1:-1)&&"in"===e.move&&(f=e.value),0===l&&(0,s.isNumber)(f)&&(o.push({from:f,to:e.value,len:e.value-f-(e.size||0)}),(0,s.isNumber)(h)&&(0,s.isNumber)(p)&&f<p&&e.value>h&&(a+=e.value-f-(e.size||0)))}),i.breakArray=o,(0,s.isNumber)(h)&&(0,s.isNumber)(p)&&(0,s.isNumber)(r.min)&&(i.unitLength=p-h-a+n,(0,s.fireEvent)(r,"afterBreaks"),r.staticScale?r.transA=r.staticScale:i.unitLength&&(r.transA*=(p-r.min+n)/i.unitLength),n&&(r.minPixelPadding=r.transA*(r.minPointOffset||0)),r.min=h,r.max=p)}}),(0,s.pick)(t,!0)&&r.chart.redraw()}}e.Additions=c}(o||(o={}));let h=o,c=t.default.Axis;var p=i.n(c);let{dateFormats:f}=a();function u(e){return(0,s.isObject)(e,!0)}function m(e,t){let i={width:0,height:0};if(t.forEach(function(t){let r=e[t],o=0,n=0,a;u(r)&&(o=(a=u(r.label)?r.label:{}).getBBox?a.getBBox().height:0,a.textStr&&!(0,s.isNumber)(a.textPxLength)&&(a.textPxLength=a.getBBox().width),n=(0,s.isNumber)(a.textPxLength)?Math.round(a.textPxLength):0,a.textStr&&(n=Math.round(a.getBBox().width)),i.height=Math.max(o,i.height),i.width=Math.max(n,i.width))}),"treegrid"===this.type&&this.treeGrid&&this.treeGrid.mapOfPosToGridNode){let e=this.treeGrid.mapOfPosToGridNode[-1].height||0;i.width+=this.options.labels.indentation*(e-1)}return i}function g(e){let{grid:t}=this,i=3===this.side;if(i||e.apply(this),!t?.isColumn){let e=t?.columns||[];i&&(e=e.slice().reverse()),e.forEach(e=>{e.getOffset()})}i&&e.apply(this)}function k(e){if(!0===(this.options.grid||{}).enabled){let{axisTitle:t,height:i,horiz:s,left:r,offset:o,opposite:a,options:l,top:d,width:h}=this,c=this.tickSize(),p=t?.getBBox().width,f=l.title,{x:u,y:m}=f,g=f.margin??(s?5:10),k=t?this.chart.renderer.fontMetrics(t).f:0,b=(s?d+i:r)+(s?1:-1)*(a?-1:1)*(c?c[0]/2:0)+(this.side===n.bottom?k:0);if(e.titlePosition.x=s?r-(p||0)/2-g+u:b+(a?h:0)+o+u,e.titlePosition.y=s?b-(a?i:0)+(a?k:-k)/2+o+m:d-g+m,!s){let[t=0]=c||[];"left"===f.textAlign?e.titlePosition.x-=t/2:"right"===f.textAlign&&(e.titlePosition.x+=t/2)}}}function b(){let e,{chart:t,options:{grid:i={}},userOptions:r}=this;if(i.enabled&&((e=this.options).labels.align=(0,s.pick)(e.labels.align,"center"),this.categories||(e.showLastLabel=!1),this.labelRotation=0,e.labels.rotation=0,e.minTickInterval=1),i.columns){let e=this.grid.columns=[],o=this.grid.columnIndex=0;for(;++o<i.columns.length;){let n=(0,s.merge)(r,i.columns[o],{isInternal:!0,linkedTo:0,scrollbar:{enabled:!1}},{grid:{columns:void 0}}),a=new(p())(this.chart,n,this.coll);a.grid.isColumn=!0,a.grid.columnIndex=o,(0,s.erase)(t.axes,a),(0,s.erase)(t[this.coll]||[],a),e.push(a)}}}function x(){let{axisTitle:e,grid:t,options:i}=this;if(!0===(i.grid||{}).enabled){let s=this.min||0,r=this.max||0,o=this.ticks[this.tickPositions[0]];if(e&&!this.chart.styledMode&&o?.slotWidth&&!this.options.title.style.width&&e.css({width:`${o.slotWidth}px`}),this.maxLabelDimensions=this.getMaxLabelDimensions(this.ticks,this.tickPositions),this.rightWall&&this.rightWall.destroy(),this.grid?.isOuterAxis()&&this.axisLine){let e=i.lineWidth;if(e){let t=this.getLinePath(e),o=t[0],a=t[1],l=(this.tickSize("tick")||[1])[0]*(this.side===n.top||this.side===n.left?-1:1);if("M"===o[0]&&"L"===a[0]&&(this.horiz?(o[2]+=l,a[2]+=l):(o[1]+=l,a[1]+=l)),!this.horiz&&this.chart.marginRight){let e=["L",this.left,o[2]||0],t=[o,e],n=["L",this.chart.chartWidth-this.chart.marginRight,this.toPixels(r+this.tickmarkOffset)],l=[["M",a[1]||0,this.toPixels(r+this.tickmarkOffset)],n];this.grid.upperBorder||s%1==0||(this.grid.upperBorder=this.grid.renderBorder(t)),this.grid.upperBorder&&(this.grid.upperBorder.attr({stroke:i.lineColor,"stroke-width":i.lineWidth}),this.grid.upperBorder.animate({d:t})),this.grid.lowerBorder||r%1==0||(this.grid.lowerBorder=this.grid.renderBorder(l)),this.grid.lowerBorder&&(this.grid.lowerBorder.attr({stroke:i.lineColor,"stroke-width":i.lineWidth}),this.grid.lowerBorder.animate({d:l}))}this.grid.axisLineExtra?(this.grid.axisLineExtra.attr({stroke:i.lineColor,"stroke-width":i.lineWidth}),this.grid.axisLineExtra.animate({d:t})):this.grid.axisLineExtra=this.grid.renderBorder(t),this.axisLine[this.showAxis?"show":"hide"]()}}if((t?.columns||[]).forEach(e=>e.render()),!this.horiz&&this.chart.hasRendered&&(this.scrollbar||this.linkedParent?.scrollbar)&&this.tickPositions.length){let e,t,i=this.tickmarkOffset,o=this.tickPositions[this.tickPositions.length-1],n=this.tickPositions[0];for(;(e=this.hiddenLabels.pop())&&e.element;)e.show();for(;(t=this.hiddenMarks.pop())&&t.element;)t.show();(e=this.ticks[n].label)&&(s-n>i?this.hiddenLabels.push(e.hide()):e.show()),(e=this.ticks[o].label)&&(o-r>i?this.hiddenLabels.push(e.hide()):e.show());let a=this.ticks[o].mark;a&&o-r<i&&o-r>0&&this.ticks[o].isLast&&this.hiddenMarks.push(a.hide())}}}function v(){let e=this.tickPositions?.info,t=this.options,i=t.grid||{},r=this.userOptions.labels||{};i.enabled&&(this.horiz?(this.series.forEach(e=>{e.options.pointRange=0}),e&&t.dateTimeLabelFormats&&t.labels&&!(0,s.defined)(r.align)&&(!1===t.dateTimeLabelFormats[e.unitName].range||e.count>1)&&(t.labels.align="left",(0,s.defined)(r.x)||(t.labels.x=3))):"treegrid"!==this.type&&this.grid&&this.grid.columns&&(this.minPointOffset=this.tickInterval))}function y(e){let t,i=this.options,r=e.userOptions,o=i&&u(i.grid)?i.grid:{};!0===o.enabled&&(t=(0,s.merge)(!0,{className:"highcharts-grid-axis "+(r.className||""),dateTimeLabelFormats:{hour:{list:["%[HM]","%[H]"]},day:{list:["%[AeB]","%[aeb]","%[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,style:{textOverflow:"ellipsis"}},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&&((0,s.defined)(r.linkedTo)&&!(0,s.defined)(r.tickPixelInterval)&&(t.tickPixelInterval=350),!(!(0,s.defined)(r.tickPixelInterval)&&(0,s.defined)(r.linkedTo))||(0,s.defined)(r.tickPositioner)||(0,s.defined)(r.tickInterval)||(0,s.defined)(r.units)||(t.tickPositioner=function(e,i){let r=this.linkedParent?.tickPositions?.info;if(r){let o=t.units||[],n,a=1,l="year";for(let e=0;e<o.length;e++){let t=o[e];if(t&&t[0]===r.unitName){n=e;break}}let d=(0,s.isNumber)(n)&&o[n+1];if(d){l=d[0]||"year";let e=d[1];a=e?.[0]||1}else"year"===r.unitName&&(a=10*r.count);let h=s.timeUnits[l];return this.tickInterval=h*a,this.chart.time.getTimeTicks({unitRange:h,count:a,unitName:l},e,i,this.options.startOfWeek)}})),(0,s.merge)(!0,this.options,t),this.horiz&&(i.minPadding=(0,s.pick)(r.minPadding,0),i.maxPadding=(0,s.pick)(r.maxPadding,0)),(0,s.isNumber)(i.grid.borderWidth)&&(i.tickWidth=i.lineWidth=o.borderWidth))}function P(e){let t=e.userOptions,i=t?.grid||{},r=i.columns;i.enabled&&r&&(0,s.merge)(!0,this.options,r[0])}function O(){(this.grid.columns||[]).forEach(e=>e.setScale())}function E(e){let{horiz:t,maxLabelDimensions:i,options:{grid:r={}}}=this;if(r.enabled&&i){let o=2*this.options.labels.distance,n=t?r.cellHeight||o+i.height:o+i.width;(0,s.isArray)(e.tickSize)?e.tickSize[0]=n:e.tickSize=[n,0]}}function N(){this.axes.forEach(e=>{(e.grid?.columns||[]).forEach(e=>{e.setAxisSize(),e.setAxisTranslation()})})}function A(e){let{grid:t}=this;t&&((t.columns||[]).forEach(t=>t.destroy(e.keepEvents)),t.columns=void 0)}function G(e){let t=e.userOptions||{},i=(0,s.merge)({borderColor:"var(--highcharts-neutral-color-20)"},t.grid||{});i.enabled&&(0,s.defined)(i.borderColor)&&(t.tickColor=t.lineColor=i.borderColor),this.grid||(this.grid=new M(this)),this.hiddenLabels=[],this.hiddenMarks=[],i.enabled&&(this.clippable=!1)}function w(e){let t=this.label,i=this.axis,r=i.reversed,o=i.chart,a=i.options.grid||{},l=i.options.labels,d=l.align,h=n[i.side],c=e.tickmarkOffset,p=i.tickPositions,f=this.pos-c,u=(0,s.isNumber)(p[e.index+1])?p[e.index+1]-c:(i.max||0)+c,m=i.tickSize("tick"),g=m?m[0]:0,k=m?m[1]/2:0;if(!0===a.enabled){let s,n,a,c;if("top"===h?n=(s=i.top+i.offset)-g:"bottom"===h?s=(n=o.chartHeight-i.bottom+i.offset)+g:(s=i.top+i.len-(i.translate(r?u:f)||0),n=i.top+i.len-(i.translate(r?f:u)||0)),"right"===h?c=(a=o.chartWidth-i.right+i.offset)+g:"left"===h?a=(c=i.left+i.offset)-g:(a=Math.round(i.left+(i.translate(r?u:f)||0))-k,c=Math.min(Math.round(i.left+(i.translate(r?f:u)||0))-k,i.left+i.len)),this.slotWidth=c-a,e.pos.x="left"===d?a:"right"===d?c:a+(c-a)/2,e.pos.y=n+(s-n)/2,t){let i=o.renderer.fontMetrics(t),s=t.getBBox().height;if(l.useHTML)e.pos.y+=i.b+-(s/2);else{let t=Math.round(s/i.h);e.pos.y+=(i.b-(i.h-i.f))/2+-((t-1)*i.h/2)}}e.pos.x+=i.horiz&&l.x||0}}function B(e){let{axis:t,value:i}=e;if(t.options.grid?.enabled){let r,o=t.tickPositions,n=(t.linkedParent||t).series,l=n.reduce((e,t)=>t.is("gantt")?e?.concat(t.options?.data??[]):e,[])??[],d=i===o[0],h=i===o[o.length-1],c=n[0]&&(0,s.find)(l,function(e){return e[t.isXAxis?"x":"y"]===i});c&&(r=(0,s.merge)(c),a().seriesTypes.gantt.prototype.pointClass.setGanttPointAliases(r,t.chart)),e.isFirst=d,e.isLast=h,e.point=r}}function I(){let e=this.options,t=e.grid||{},i=this.categories,r=this.tickPositions,o=r[0],n=r[1],a=r[r.length-1],l=r[r.length-2],d=this.linkedParent?.min,h=this.linkedParent?.max,c=d||this.min,p=h||this.max,f=this.tickInterval,u=(0,s.isNumber)(c)&&c>=o+f&&c<n,m=(0,s.isNumber)(c)&&o<c&&o+f>c,g=(0,s.isNumber)(p)&&a>p&&a-f<p,k=(0,s.isNumber)(p)&&p<=a-f&&p>l;!0===t.enabled&&!i&&(this.isXAxis||this.isLinked)&&((m||u)&&!e.startOnTick&&(r[0]=c),(g||k)&&!e.endOnTick&&(r[r.length-1]=p))}function T(e){var t;let{options:{grid:i={}}}=this;return!0===i.enabled&&this.categories?this.tickInterval:e.apply(this,(t=arguments,Array.prototype.slice.call(t,1)))}(r=n||(n={}))[r.top=0]="top",r[r.right=1]="right",r[r.bottom=2]="bottom",r[r.left=3]="left";class M{constructor(e){this.axis=e}isOuterAxis(){let e=this.axis,t=e.chart,i=e.grid.columnIndex,r=e.linkedParent?.grid.columns||e.grid.columns||[],o=i?e.linkedParent:e,n=-1,a=0;return 3===e.side&&!t.inverted&&r.length?!e.linkedParent:((t[e.coll]||[]).forEach((t,i)=>{t.side!==e.side||t.options.isInternal||(a=i,t===o&&(n=i))}),a===n&&(!(0,s.isNumber)(i)||r.length===i))}renderBorder(e){let t=this.axis,i=t.chart.renderer,s=t.options,r=i.path(e).addClass("highcharts-axis-line").add(t.axisGroup);return i.styledMode||r.attr({stroke:s.lineColor,"stroke-width":s.lineWidth,zIndex:7}),r}}f.E=function(e){return this.dateFormat("%a",e,!0).charAt(0)},f.W=function(e){let t=this.toParts(e),i=(t[7]+6)%7,s=t.slice(0);s[2]=t[2]-i+3;let r=this.toParts(this.makeTime(s[0],0,1));return 4!==r[7]&&(t[1]=0,t[2]=1+(11-r[7])%7),(1+Math.floor((this.makeTime(s[0],s[1],s[2])-this.makeTime(r[0],r[1],r[2]))/6048e5)).toString()};function L(e,t,i,r,o,n){let a=n&&n.after,l=n&&n.before,d={data:r,depth:i-1,id:e,level:i,parent:t||""},h=0,c=0,p,f;"function"==typeof l&&l(d,n);let u=(o[e]||[]).map(t=>{let r=L(t.id,e,i+1,t,o,n),a=t.start||NaN,l=!0===t.milestone?a:t.end||NaN;return p=!(0,s.isNumber)(p)||a<p?a:p,f=!(0,s.isNumber)(f)||l>f?l:f,h=h+1+r.descendants,c=Math.max(r.height+1,c),r});return r&&(r.start??(r.start=p),r.end??(r.end=f)),(0,s.extend)(d,{children:u,descendants:h,height:c}),"function"==typeof a&&a(d,n),d}let C=function(e,t){let i,s;return L("",null,1,null,(i=[],Object.keys(s=e.reduce((e,t)=>{let{parent:s="",id:r}=t;return void 0===e[s]&&(e[s]=[]),e[s].push(t),r&&i.push(r),e},{})).forEach(e=>{if(""!==e&&-1===i.indexOf(e)){let t=s[e].map(function(e){let{...t}=e;return t});s[""].push(...t),delete s[e]}}),s),t)};function S(){this.treeGrid||(this.treeGrid=new W(this))}function j(e,t,i,r,o,n,a,l,d){let h,c,p,f=(0,s.pick)(this.options?.labels,n),u=this.pos,m=this.axis,g="treegrid"===m.type,k=e.apply(this,[t,i,r,o,f,a,l,d]);if(g){let{width:e=0,padding:t=5*!m.linkedParent}=f&&(0,s.isObject)(f.symbol,!0)?f.symbol:{},i=f&&(0,s.isNumber)(f.indentation)?f.indentation:0;h=m.treeGrid.mapOfPosToGridNode,c=h?.[u],p=c?.depth||1,k.x+=e+2*t+(p-1)*i}return k}function z(e){let t,{pos:i,axis:r,label:o,treeGrid:n,options:a}=this,l=n?.labelIcon,d=o?.element,{treeGrid:h,options:c,chart:p,tickPositions:f}=r,u=h.mapOfPosToGridNode,m=(0,s.pick)(a?.labels,c?.labels),g=m&&(0,s.isObject)(m.symbol,!0)?m.symbol:{},k=u?.[i],{descendants:b,depth:x}=k||{},v=k&&b&&b>0,y="treegrid"===r.type&&d,P=f.indexOf(i)>-1,O="highcharts-treegrid-node-",E=O+"level-",N=p.styledMode;if(y&&k&&o.removeClass(RegExp(E+".*")).addClass(E+x),e.apply(this,Array.prototype.slice.call(arguments,1)),y&&v){var A;let e,i,r,a,d,c,p,f,u,b,x,v;t=h.isCollapsed(k),A={color:!N&&o.styles.color||"",collapsed:t,group:o.parentGroup,options:g,renderer:o.renderer,show:P,xy:o.xy},i=!(e=this.treeGrid).labelIcon,r=A.renderer,a=A.xy,c=(d=A.options).width||0,p=d.height||0,f=d.padding??this.axis.linkedParent?0:5,u={x:a.x-c/2-f,y:a.y-p/2},b=A.collapsed?90:180,x=A.show&&(0,s.isNumber)(u.y),(v=e.labelIcon)||(e.labelIcon=v=r.path(r.symbols[d.type](d.x||0,d.y||0,c,p)).addClass("highcharts-label-icon").add(A.group)),v[x?"show":"hide"](),r.styledMode||v.attr({cursor:"pointer",fill:A.color||"var(--highcharts-neutral-color-60)","stroke-width":1,stroke:d.lineColor,strokeWidth:d.lineWidth||0}),v[i?"attr":"animate"]({translateX:u.x,translateY:u.y,rotation:b}),o.addClass(O+(t?"collapsed":"expanded")).removeClass(O+(t?"expanded":"collapsed")),N||o.css({cursor:"pointer"}),[o,l].forEach(e=>{e&&!e.attachedTreeGridEvents&&((0,s.addEvent)(e.element,"mouseover",function(){o.addClass("highcharts-treegrid-node-active"),o.renderer.styledMode||o.css({textDecoration:"underline"})}),(0,s.addEvent)(e.element,"mouseout",function(){let e;e=(0,s.isObject)(m.style)?m.style:{},o.removeClass("highcharts-treegrid-node-active"),o.renderer.styledMode||o.css({textDecoration:e.textDecoration||"none"})}),(0,s.addEvent)(e.element,"click",function(){n.toggleCollapse()}),e.attachedTreeGridEvents=!0)})}else l&&((0,s.removeEvent)(d),o?.css({cursor:"default"}),l.destroy(),n.labelIcon=void 0)}class W{static compose(e){let t=e.prototype;t.toggleCollapse||((0,s.addEvent)(e,"init",S),(0,s.wrap)(t,"getLabelPosition",j),(0,s.wrap)(t,"renderLabel",z),t.collapse=function(e){this.treeGrid.collapse(e)},t.expand=function(e){this.treeGrid.expand(e)},t.toggleCollapse=function(e){this.treeGrid.toggleCollapse(e)})}constructor(e){this.tick=e}collapse(e){let{pos:t,axis:i}=this.tick,{treeGrid:s,brokenAxis:r}=i,o=s.mapOfPosToGridNode;r&&o&&r.setBreaks(s.collapse(o[t]),e??!0)}destroy(){this.labelIcon?.destroy()}expand(e){let{pos:t,axis:i}=this.tick,{treeGrid:s,brokenAxis:r}=i,o=s.mapOfPosToGridNode;r&&o&&r.setBreaks(s.expand(o[t]),e??!0)}toggleCollapse(e=!0){let{axis:t,pos:i}=this.tick,{brokenAxis:r,treeGrid:o}=t;if(r&&o.mapOfPosToGridNode){let n=!!(t.scrollbar&&t.staticScale),a=t.pos+t.len+(o.pendingSizeAdjustment||0);if(o.pendingSizeAdjustment=0,r.setBreaks(o.toggleCollapse(o.mapOfPosToGridNode[i]),n&&e),n){let e=t.toValue(t.toPixels(t.dataMax)),i=t.toValue(a)-t.tickmarkOffset,r=t.userMin??t.min;if(o.adjustedMax=e!==t.dataMax?e-t.tickmarkOffset:void 0,i>t.dataMax){let e=a-t.toPixels(t.dataMax+t.tickmarkOffset);i=o.adjustedMax??t.dataMax,(r=t.toValue(t.toPixels(r-t.tickmarkOffset)-e)+t.tickmarkOffset)<t.dataMin&&(e=t.toPixels(t.dataMin)-t.toPixels(r),r=t.dataMin,o.pendingSizeAdjustment=e)}t.setExtremes((0,s.correctFloat)(r),(0,s.correctFloat)(i),!1,!1,{trigger:"toggleCollapse"})}e&&t.chart.redraw()}}}let R=t.default.Color;var D=i.n(R);let{getLevelOptions:F}={getColor:function(e,t){let i,r,o,n,a,l,d=t.index,h=t.mapOptionsToLevel,c=t.parentColor,p=t.parentColorIndex,f=t.series,u=t.colors,m=t.siblings,g=f.points,k=f.chart.options.chart;if(e){let b;i=g[e.i],r=h[e.level]||{},i&&r.colorByPoint&&(n=i.index%(u?u.length:k.colorCount),o=u&&u[n]),f.chart.styledMode||(a=(0,s.pick)(i&&i.options.color,r&&r.color,o,c&&((b=r&&r.colorVariation)&&"brightness"===b.key&&d&&m?D().parse(c).brighten(b.to*(d/m)).get():c),f.color)),l=(0,s.pick)(i&&i.options.colorIndex,r&&r.colorIndex,n,p,t.colorIndex)}return{color:a,colorIndex:l}},getLevelOptions:function(e){let t,i,r,o,n,a,l={};if((0,s.isObject)(e))for(o=(0,s.isNumber)(e.from)?e.from:1,a=e.levels,i={},t=(0,s.isObject)(e.defaults)?e.defaults:{},(0,s.isArray)(a)&&(i=a.reduce((e,i)=>{let r,n,a;return(0,s.isObject)(i)&&(0,s.isNumber)(i.level)&&(a=(0,s.merge)({},i),n=(0,s.pick)(a.levelIsConstant,t.levelIsConstant),delete a.levelIsConstant,delete a.level,r=i.level+(n?0:o-1),(0,s.isObject)(e[r])?(0,s.merge)(!0,e[r],a):e[r]=a),e},{})),n=(0,s.isNumber)(e.to)?e.to:1,r=0;r<=n;r++)l[r]=(0,s.merge)({},t,(0,s.isObject)(i[r])?i[r]:{});return l},getNodeWidth:function(e,t){let{chart:i,options:r}=e,{nodeDistance:o=0,nodeWidth:n=0}=r,{plotSizeX:a=1}=i;if("auto"===n){if("string"==typeof o&&/%$/.test(o))return a/(t+parseFloat(o)/100*(t-1));let e=Number(o);return(a+e)/(t||1)-e}return(0,s.relativeLength)(n,a)},setTreeValues:function e(t,i){let r=i.before,o=i.idRoot,n=i.mapIdToNode[o],a=!1!==i.levelIsConstant,l=i.points[t.i],d=l&&l.options||{},h=[],c=0;t.levelDynamic=t.level-(a?0:n.level),t.name=(0,s.pick)(l&&l.name,""),t.visible=o===t.id||!0===i.visible,"function"==typeof r&&(t=r(t,i)),t.children.forEach((r,o)=>{let n=(0,s.extend)({},i);(0,s.extend)(n,{index:o,siblings:t.children.length,visible:t.visible}),r=e(r,n),h.push(r),r.visible&&(c+=r.val)});let p=(0,s.pick)(d.value,c);return t.visible=p>=0&&(c>0||t.visible),t.children=h,t.childrenTotal=c,t.isLeaf=t.visible&&!c,t.val=p,t},updateRootId:function(e){let t,i;return(0,s.isObject)(e)&&(i=(0,s.isObject)(e.options)?e.options:{},t=(0,s.pick)(e.rootNode,i.rootId,""),(0,s.isObject)(e.userOptions)&&(e.userOptions.rootId=t),e.rootNode=t),t}};function V(e){return Array(e.dataTable.rowCount).fill(void 0).map((t,i)=>e.dataTable.getRowObject(i))}function H(e){return{from:e.collapseStart||0,to:e.collapseEnd||0,showPoints:!1}}function X(e,t,i){var r;let o,n=[],a=[],l={},d=t||!1,h={},c=-1,p=C(e,{after:function(e){let t=h[e.pos],i=0,s=0;t.children.forEach(function(e){s+=(e.descendants||0)+1,i=Math.max((e.height||0)+1,i)}),t.descendants=s,t.height=i,t.collapsed&&a.push(t)},before:function(e){let t,i,r=(0,s.isObject)(e.data,!0)?e.data:{},o=(0,s.isString)(r.name)?r.name:"",a=l[e.parent],p=(0,s.isObject)(a,!0)?h[a.pos]:null;d&&(0,s.isObject)(p,!0)&&(t=(0,s.find)(p.children,function(e){return e.name===o}))?(i=t.pos,t.nodes.push(e)):i=c++,!h[i]&&(h[i]=t={depth:p?p.depth+1:0,name:o,id:r.id,nodes:[e],children:[],pos:i},-1!==i&&n.push(o),(0,s.isObject)(p,!0)&&p.children.push(t)),(0,s.isString)(e.id)&&(l[e.id]=e),t&&!0===r.collapsed&&(t.collapsed=!0),e.pos=i}});return r=h,{categories:n,mapOfIdToNode:l,mapOfPosToGridNode:h=(o=function(e,t,r){let n=e.nodes,a=t+(-1===t?0:i-1),l=(a-t)/2,d=t+l;return n.forEach(function(e){let i=e.data;(0,s.isObject)(i,!0)&&(i.y=t+(i.yIndex||0)),e.pos=d}),r[d]=e,e.pos=d,e.tickmarkOffset=l+.5,e.collapseStart=a+.5,e.children.forEach(function(e){o(e,a+1,r),a=(e.collapseEnd||0)-.5}),e.collapseEnd=a+.5,r})(r["-1"],-1,{}),collapsedNodes:a,tree:p}}function q(e){let t=e.target;t.axes.filter(e=>"treegrid"===e.type).forEach(function(i){let r=i.options,o=r.labels,n=i.uniqueNames,a=t.time.parse(r.max),l=!i.treeGrid.mapOfPosToGridNode||i.series.some(function(e){return!e.hasRendered||e.isDirtyData||e.isDirty}),d=0,h,c;if(l){let r=[];if(h=i.series.reduce(function(e,i){let o=V(i),a=o[0],l=Array.isArray(a)&&!a.find(e=>"object"==typeof e);return r.push(l),i.visible&&(o.forEach(function(r){(l||i.options.keys?.length)&&(r=i.pointClass.prototype.optionsToObject.call({series:i},r),i.pointClass.setGanttPointAliases(r,t)),(0,s.isObject)(r,!0)&&(r.yIndex=d,r.seriesIndex=i.index,e.push(r))}),!0===n&&d++),e},[]),a&&h.length<a)for(let e=h.length;e<=a;e++)h.push({name:e+""});i.categories=(c=X(h,n||!1,!0===n?d:1)).categories,i.treeGrid.mapOfPosToGridNode=c.mapOfPosToGridNode,i.hasNames=!0,i.treeGrid.tree=c.tree,i.series.forEach(e=>{let t=h.filter(t=>t.seriesIndex===e.index);t.forEach(e=>{delete e.seriesIndex,delete e.yIndex}),e.visible&&e.setData(t,!1)}),i.treeGrid.mapOptionsToLevel=F({defaults:o,from:1,levels:o?.levels,to:i.treeGrid.tree?.height}),"beforeRender"===e.type&&(i.treeGrid.collapsedNodes=c.collapsedNodes)}})}function U(t,i){let s=this.treeGrid.mapOptionsToLevel||{},r="treegrid"===this.type,o=this.ticks,n=o[i],a,l,d;r&&this.treeGrid.mapOfPosToGridNode?((a=s[(d=this.treeGrid.mapOfPosToGridNode[i]).depth])&&(l={labels:a}),!n&&e?o[i]=n=new e(this,i,void 0,void 0,{category:d.name,tickmarkOffset:d.tickmarkOffset,options:l}):(n.parameters.category=d.name,n.options=l,n.addLabel(),this.isDirty=!0)):t.apply(this,Array.prototype.slice.call(arguments,1))}function _(e,t,i,r){let o=this,n="treegrid"===i.type;o.treeGrid||(o.treeGrid=new Y(o)),n&&((0,s.addEvent)(t,"beforeRender",q,{order:0}),(0,s.addEvent)(t,"beforeRedraw",q),(0,s.addEvent)(t,"addSeries",function(e){if(e.options.data){let t=X(e.options.data,i.uniqueNames||!1,1);o.treeGrid.collapsedNodes=(o.treeGrid.collapsedNodes||[]).concat(t.collapsedNodes)}}),(0,s.addEvent)(o,"foundExtremes",function(){o.treeGrid.collapsedNodes?.forEach(function(e){let t=o.treeGrid.collapse(e);o.brokenAxis&&(o.brokenAxis.setBreaks(t,!1),o.treeGrid.collapsedNodes&&(o.treeGrid.collapsedNodes=o.treeGrid.collapsedNodes.filter(t=>e.collapseStart!==t.collapseStart||e.collapseEnd!==t.collapseEnd)))})}),(0,s.addEvent)(o,"afterBreaks",function(){"yAxis"===o.coll&&!o.staticScale&&o.chart.options.chart.height&&(o.isDirty=!0)}),i=(0,s.merge)({grid:{enabled:!0},labels:{align:"left",levels:[{level:void 0},{level:1,style:{fontWeight:"bold"}}],symbol:{type:"triangle",x:-5,y:-3,height:6,width:8}},uniqueNames:!1},i,{reversed:!0})),e.apply(o,[t,i,r]),n&&(o.hasNames=!0,o.options.showLastLabel=!0)}function $(e){let t=this.options,i=this.chart.time,r="number"==typeof t.linkedTo?this.chart[this.coll]?.[t.linkedTo]:void 0;if("treegrid"===this.type){if(this.min=this.userMin??i.parse(t.min)??this.dataMin,this.max=this.userMax??i.parse(t.max)??this.dataMax,(0,s.fireEvent)(this,"foundExtremes"),this.setAxisTranslation(),this.tickInterval=1,this.tickmarkOffset=.5,this.tickPositions=this.treeGrid.mapOfPosToGridNode?this.treeGrid.getTickPositions():[],r){let e=r.getExtremes();this.min=e.min??e.dataMin,this.max=e.max??e.dataMax,this.tickPositions=r.tickPositions}this.linkedParent=r}else e.apply(this,Array.prototype.slice.call(arguments,1))}function K(e){let t=this;"treegrid"===this.type&&t.visible&&t.tickPositions.forEach(function(e){let i=t.ticks[e];i.label?.attachedTreeGridEvents&&((0,s.removeEvent)(i.label.element),i.label.attachedTreeGridEvents=!1)}),e.apply(t,Array.prototype.slice.call(arguments,1))}class Y{static compose(t,i,r,o){var n,a,l;if(!t.keepProps.includes("treeGrid")){let i=t.prototype;t.keepProps.push("treeGrid"),(0,s.wrap)(i,"generateTick",U),(0,s.wrap)(i,"init",_),(0,s.wrap)(i,"setTickInterval",$),(0,s.wrap)(i,"redraw",K),i.utils={getNode:L},e||(e=o)}return n=t,a=i,l=o,n.keepProps.includes("grid")||(n.keepProps.push("grid"),n.prototype.getMaxLabelDimensions=m,(0,s.wrap)(n.prototype,"unsquish",T),(0,s.wrap)(n.prototype,"getOffset",g),(0,s.addEvent)(n,"init",G),(0,s.addEvent)(n,"afterGetTitlePosition",k),(0,s.addEvent)(n,"afterInit",b),(0,s.addEvent)(n,"afterRender",x),(0,s.addEvent)(n,"afterSetAxisTranslation",v),(0,s.addEvent)(n,"afterSetOptions",y),(0,s.addEvent)(n,"afterSetOptions",P),(0,s.addEvent)(n,"afterSetScale",O),(0,s.addEvent)(n,"afterTickSize",E),(0,s.addEvent)(n,"trimTicks",I),(0,s.addEvent)(n,"destroy",A),(0,s.addEvent)(a,"afterSetChartSize",N),(0,s.addEvent)(l,"afterGetLabelPosition",w),(0,s.addEvent)(l,"labelFormat",B)),h.compose(t,r),W.compose(o),t}constructor(e){this.pendingSizeAdjustment=0,this.axis=e}setCollapsedStatus(e){let t=this.axis,i=t.chart;t.series.forEach(function(t){let r=V(t);if(e.id&&r){let o=i.get(e.id),n=r[t.data.indexOf(o)];t.dataTable.setRow({collapsed:e.collapsed},t.data.indexOf(o)),o&&(0,s.isObject)(n,!0)&&(o.collapsed=e.collapsed,n.collapsed=e.collapsed)}})}collapse(e){let t=this.axis,i=t.options.breaks||[],s=H(e);return i.push(s),e.collapsed=!0,t.treeGrid.setCollapsedStatus(e),i}expand(e){let t=this.axis,i=H(e);return e.collapsed=!1,t.treeGrid.setCollapsedStatus(e),t.options.breaks?.reduce(function(e,t){return(t.to!==i.to||t.from!==i.from)&&e.push(t),e},[])||[]}getTickPositions(){let e=this.axis,t=Math.floor(e.min/e.tickInterval)*e.tickInterval,i=Math.ceil(e.max/e.tickInterval)*e.tickInterval;return Object.keys(e.treeGrid.mapOfPosToGridNode||{}).reduce(function(s,r){let o=+r;return o>=t&&o<=i&&!e.brokenAxis?.isInAnyBreak(o)&&s.push(o),s},[])}isCollapsed(e){let t=this.axis.options.breaks||[],i=H(e);return t.some(function(e){return e.from===i.from&&e.to===i.to})}toggleCollapse(e){return this.isCollapsed(e)?this.expand(e):this.collapse(e)}}let J=a();Y.compose(J.Axis,J.Chart,J.Series,J.Tick);let Q=a();export{Q as default};