/* Highcharts Gantt JS v11.1.0 (2023-06-05) Gantt series (c) 2016-2021 Lars A. V. Cabrera License: www.highcharts.com/license */ 'use strict';(function(e){"object"===typeof module&&module.exports?(e["default"]=e,module.exports=e):"function"===typeof define&&define.amd?define("highcharts/modules/gantt",["highcharts"],function(L){e(L);e.Highcharts=L;return e}):e("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(e){function L(e,A,x,H){e.hasOwnProperty(A)||(e[A]=H.apply(null,x),"function"===typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:A,module:e[A]}})))}e=e?e._modules: {};L(e,"Core/Axis/NavigatorAxisComposition.js",[e["Core/Globals.js"],e["Core/Utilities.js"]],function(e,A){function F(){this.navigatorAxis||(this.navigatorAxis=new r(this))}function H(b){var l=this.chart,q=l.options,a=q.navigator;const h=this.navigatorAxis,B=l.zooming.pinchType;q=q.rangeSelector;l=l.zooming.type;this.isXAxis&&(a&&a.enabled||q&&q.enabled)&&("y"===l?b.zoomed=!1:(!E&&"xy"===l||E&&"xy"===B)&&this.options.range&&(a=h.previousZoom,w(b.newMin)?h.previousZoom=[this.min,this.max]:a&&(b.newMin= a[0],b.newMax=a[1],h.previousZoom=void 0)));"undefined"!==typeof b.zoomed&&b.preventDefault()}const {isTouchDevice:E}=e,{addEvent:D,correctFloat:p,defined:w,isNumber:v,pick:b}=A,m=[];class r{static compose(b){A.pushUnique(m,b)&&(b.keepProps.push("navigatorAxis"),D(b,"init",F),D(b,"zoom",H))}constructor(b){this.axis=b}destroy(){this.axis=void 0}toFixedRange(m,l,q,a){const h=this.axis;var B=h.chart;m=b(q,h.translate(m,!0,!h.horiz));l=b(a,h.translate(l,!0,!h.horiz));B=B&&B.fixedRange;const r=(h.pointRange|| 0)/2;w(q)||(m=p(m+r));w(a)||(l=p(l-r));B&&h.dataMin&&h.dataMax&&(l>=h.dataMax&&(m=p(h.dataMax-B)),m<=h.dataMin&&(l=p(h.dataMin+B)));v(m)&&v(l)||(m=l=void 0);return{min:m,max:l}}}return r});L(e,"Stock/Navigator/NavigatorDefaults.js",[e["Core/Color/Color.js"],e["Core/Series/SeriesRegistry.js"]],function(e,A){({parse:e}=e);({seriesTypes:A}=A);A={height:40,margin:25,maskInside:!0,handles:{width:7,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2", borderColor:"#999999"},maskFill:e("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:"undefined"===typeof A.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8, 12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{overscroll:0,className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1}, yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}};"";return A});L(e,"Stock/Navigator/NavigatorSymbols.js",[],function(){return{"navigator-handle":function(e,A,x,H,E={}){e=E.width?E.width/2:x;A=Math.round(e/3)+.5;H=E.height||H;return[["M",-e-1,.5],["L",e,.5],["L",e,H+.5],["L",-e-1,H+.5],["L",-e-1,.5],["M",-A,4],["L",-A,H-3],["M",A-1,4],["L",A-1,H-3]]}}}); L(e,"Stock/Navigator/NavigatorComposition.js",[e["Core/Defaults.js"],e["Core/Globals.js"],e["Core/Axis/NavigatorAxisComposition.js"],e["Stock/Navigator/NavigatorDefaults.js"],e["Stock/Navigator/NavigatorSymbols.js"],e["Core/Renderer/RendererRegistry.js"],e["Core/Utilities.js"]],function(e,A,x,H,E,D,p){function w(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function v(){var d;const c=this.legend,f=this.navigator;let C,u,k;if(f){C=c&&c.options;u=f.xAxis;k=f.yAxis;const {scrollbarHeight:g, scrollButtonSize:a}=f;this.inverted?(f.left=f.opposite?this.chartWidth-g-f.height:this.spacing[3]+g,f.top=this.plotTop+a):(f.left=y(u.left,this.plotLeft+a),f.top=f.navigatorOptions.top||this.chartHeight-f.height-g-((null===(d=this.scrollbar)||void 0===d?void 0:d.options.margin)||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(C&&"bottom"===C.verticalAlign&&"proximate"!==C.layout&&C.enabled&&!C.floating?c.legendHeight+y(C.margin,10):0)-(this.titleOffset? this.titleOffset[2]:0));u&&k&&(this.inverted?u.options.left=k.options.left=f.left:u.options.top=k.options.top=f.top,u.setAxisSize(),k.setAxisSize())}}function b(d){this.navigator||this.scroller||!this.options.navigator.enabled&&!this.options.scrollbar.enabled||(this.scroller=this.navigator=new k(this),y(d.redraw,!0)&&this.redraw(d.animation))}function m(){const d=this.options;if(d.navigator.enabled||d.scrollbar.enabled)this.scroller=this.navigator=new k(this)}function r(){var d=this.options;const c= d.navigator;d=d.rangeSelector;if((c&&c.enabled||d&&d.enabled)&&(!B&&"x"===this.zooming.type||B&&"x"===this.zooming.pinchType))return!1}function I(d){const c=d.navigator;c&&d.xAxis[0]&&(d=d.xAxis[0].getExtremes(),c.render(d.min,d.max))}function l(d){const c=d.options.navigator||{},f=d.options.scrollbar||{};this.navigator||this.scroller||!c.enabled&&!f.enabled||(g(!0,this.options.navigator,c),g(!0,this.options.scrollbar,f),delete d.options.navigator,delete d.options.scrollbar)}function q(){this.chart.navigator&& !this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}const {defaultOptions:a,setOptions:h}=e,{isTouchDevice:B}=A,{getRendererType:M}=D,{addEvent:G,extend:n,merge:g,pick:y}=p,z=[];let k;return{compose:function(d,c,f,C){x.compose(d);k=f;p.pushUnique(z,c)&&(c.prototype.callbacks.push(I),G(c,"afterAddSeries",w),G(c,"afterSetChartSize",v),G(c,"afterUpdate",b),G(c,"beforeRender",m),G(c,"beforeShowResetZoom",r),G(c,"update",l));p.pushUnique(z,C)&&G(C,"afterUpdate",q);p.pushUnique(z,M)&& n(M().prototype.symbols,E);p.pushUnique(z,h)&&n(a,{navigator:H})}}});L(e,"Core/Axis/ScrollbarAxis.js",[e["Core/Utilities.js"]],function(e){const {addEvent:A,defined:x,pick:F}=e,E=[];class D{static compose(p,w){if(!e.pushUnique(E,p))return p;const v=b=>{const m=F(b.options&&b.options.min,b.min),r=F(b.options&&b.options.max,b.max);return{axisMin:m,axisMax:r,scrollMin:x(b.dataMin)?Math.min(m,b.min,b.dataMin,F(b.threshold,Infinity)):m,scrollMax:x(b.dataMax)?Math.max(r,b.max,b.dataMax,F(b.threshold,-Infinity)): r}};A(p,"afterInit",function(){const b=this;b.options&&b.options.scrollbar&&b.options.scrollbar.enabled&&(b.options.scrollbar.vertical=!b.horiz,b.options.startOnTick=b.options.endOnTick=!1,b.scrollbar=new w(b.chart.renderer,b.options.scrollbar,b.chart),A(b.scrollbar,"changed",function(m){let {axisMin:r,axisMax:e,scrollMin:l,scrollMax:q}=v(b);var a=q-l;let h;x(r)&&x(e)&&(b.horiz&&!b.reversed||!b.horiz&&b.reversed?(h=l+a*this.to,a=l+a*this.from):(h=l+a*(1-this.from),a=l+a*(1-this.to)),this.shouldUpdateExtremes(m.DOMType)? b.setExtremes(a,h,!0,"mousemove"===m.DOMType||"touchmove"===m.DOMType?!1:void 0,m):this.setRange(this.from,this.to))}))});A(p,"afterRender",function(){let {scrollMin:b,scrollMax:m}=v(this),r=this.scrollbar;var e=this.axisTitleMargin+(this.titleOffset||0),l=this.chart.scrollbarsOffsets;let q=this.options.margin||0;r&&(this.horiz?(this.opposite||(l[1]+=e),r.position(this.left,this.top+this.height+2+l[1]-(this.opposite?q:0),this.width,this.height),this.opposite||(l[1]+=q),e=1):(this.opposite&&(l[0]+= e),r.position(r.options.opposite?this.left+this.width+2+l[0]-(this.opposite?0:q):this.opposite?0:q,this.top,this.width,this.height),this.opposite&&(l[0]+=q),e=0),l[e]+=r.size+(r.options.margin||0),isNaN(b)||isNaN(m)||!x(this.min)||!x(this.max)||this.min===this.max?r.setRange(0,1):(l=(this.min-b)/(m-b),e=(this.max-b)/(m-b),this.horiz&&!this.reversed||!this.horiz&&this.reversed?r.setRange(l,e):r.setRange(1-e,1-l)))});A(p,"afterGetOffset",function(){const b=this.scrollbar;var m=b&&!b.options.opposite; m=this.horiz?2:m?3:1;b&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[m]+=b.size+(b.options.margin||0))});return p}}return D});L(e,"Stock/Scrollbar/ScrollbarDefaults.js",[e["Core/Globals.js"]],function(e){return{height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc", buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1}});L(e,"Stock/Scrollbar/Scrollbar.js",[e["Core/Defaults.js"],e["Core/Globals.js"],e["Core/Axis/ScrollbarAxis.js"],e["Stock/Scrollbar/ScrollbarDefaults.js"],e["Core/Utilities.js"]],function(e,A,x,H,E){const {defaultOptions:D}=e,{addEvent:p,correctFloat:w,defined:v,destroyObjectProperties:b,fireEvent:m,merge:r,pick:I,removeEvent:l}=E;class q{static compose(a){x.compose(a, q)}static swapXY(a,h){h&&a.forEach(a=>{const h=a.length;let B;for(let n=0;nthis.calculatedWidth?h.minWidth:0;return{chartX:(a.chartX-this.x-this.xOffset)/(this.barWidth-h),chartY:(a.chartY-this.y-this.yOffset)/(this.barWidth-h)}}destroy(){const a=this,h=a.chart.scroller;a.removeEvents();["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(h){a[h]&&a[h].destroy&&(a[h]=a[h].destroy())});h&&a===h.scrollbar&& (h.scrollbar=null,b(h.scrollbarButtons))}drawScrollbarButton(a){const h=this.renderer,B=this.scrollbarButtons,b=this.options,l=this.size;var n=h.g().add(this.group);B.push(n);b.buttonsEnabled&&(n=h.rect().addClass("highcharts-scrollbar-button").add(n),this.chart.styledMode||n.attr({stroke:b.buttonBorderColor,"stroke-width":b.buttonBorderWidth,fill:b.buttonBackgroundColor}),n.attr(n.crisp({x:-.5,y:-.5,width:l+1,height:l+1,r:b.buttonBorderRadius},n.strokeWidth())),a=h.path(q.swapXY([["M",l/2+(a?-1: 1),l/2-3],["L",l/2+(a?-1:1),l/2+3],["L",l/2+(a?2:-2),l/2]],b.vertical)).addClass("highcharts-scrollbar-arrow").add(B[a]),this.chart.styledMode||a.attr({fill:b.buttonArrowColor}))}init(a,h,b){this.scrollbarButtons=[];this.renderer=a;this.userOptions=h;this.options=r(H,D.scrollbar,h);this.options.margin=I(this.options.margin,10);this.chart=b;this.size=I(this.options.size,this.options.height);h.enabled&&(this.render(),this.addEvents())}mouseDownHandler(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}mouseMoveHandler(a){var h=this.chart.pointer.normalize(a),b=this.options.vertical?"chartY":"chartX";const l=this.initPositions||[];!this.grabbedCenter||a.touches&&0===a.touches[0][b]||(h=this.cursorToScrollbarPosition(h)[b],b=this[b],b=h-b,this.hasDragged=!0,this.updatePosition(l[0]+b,l[1]+b),this.hasDragged&&m(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:a.type,DOMEvent:a}))}mouseUpHandler(a){this.hasDragged&& m(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:a.type,DOMEvent:a});this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(a,h,b,l){const {buttonsEnabled:q,margin:n=0,vertical:g}=this.options,y=this.rendered?"animate":"attr";let z=l,k=0;this.group.show();this.x=a;this.y=h+this.trackBorderWidth;this.width=b;this.height=l;this.xOffset=z;this.yOffset=k;g?(this.width=this.yOffset=b=this.size,this.xOffset=z=0,this.yOffset=k=q?this.size:0,this.barWidth=l-(q?2*b: 0),this.x=a+=n):(this.height=l=this.size,this.xOffset=z=q?this.size:0,this.barWidth=b-(q?2*l:0),this.y+=n);this.group[y]({translateX:a,translateY:this.y});this.track[y]({width:b,height:l});this.scrollbarButtons[1][y]({translateX:g?0:b-z,translateY:g?l-k:0})}removeEvents(){this._events.forEach(function(a){l.apply(null,a)});this._events.length=0}render(){const a=this.renderer,h=this.options,b=this.size,l=this.chart.styledMode,m=a.g("scrollbar").attr({zIndex:h.zIndex}).hide().add();this.group=m;this.track= a.rect().addClass("highcharts-scrollbar-track").attr({r:h.trackBorderRadius||0,height:b,width:b}).add(m);l||this.track.attr({fill:h.trackBackgroundColor,stroke:h.trackBorderColor,"stroke-width":h.trackBorderWidth});const n=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-n%2/2,y:-n%2/2});this.scrollbarGroup=a.g().add(m);this.scrollbar=a.rect().addClass("highcharts-scrollbar-thumb").attr({height:b-n,width:b-n,r:h.barBorderRadius||0}).add(this.scrollbarGroup);this.scrollbarRifles= a.path(q.swapXY([["M",-3,b/4],["L",-3,2*b/3],["M",0,b/4],["L",0,2*b/3],["M",3,b/4],["L",3,2*b/3]],h.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup);l||(this.scrollbar.attr({fill:h.barBackgroundColor,stroke:h.barBorderColor,"stroke-width":h.barBorderWidth}),this.scrollbarRifles.attr({stroke:h.rifleColor,"stroke-width":1}));this.scrollbarStrokeWidth=this.scrollbar.strokeWidth();this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2);this.drawScrollbarButton(0); this.drawScrollbarButton(1)}setRange(a,h){const b=this.options,l=b.vertical;var q=b.minWidth,n=this.barWidth;const g=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(v(n)){var y=n*Math.min(h,1);a=Math.max(a,0);var z=Math.ceil(n*a);this.calculatedWidth=y=w(y-z);y=y?this.scrollbarRifles.hide():this.scrollbarRifles.show();!1===b.showFull&&(0>=a&&1<=h?this.group.hide():this.group.show());this.rendered=!0}}shouldUpdateExtremes(a){return I(this.options.liveRedraw,A.svg&&!A.isTouchDevice&&!this.chart.boosted)||"mouseup"===a||"touchend"===a||!v(a)}trackClick(a){const h= this.chart.pointer.normalize(a),b=this.to-this.from,l=this.y+this.scrollbarTop,q=this.x+this.scrollbarLeft;this.options.vertical&&h.chartY>l||!this.options.vertical&&h.chartX>q?this.updatePosition(this.from+b,this.to+b):this.updatePosition(this.from-b,this.to-b);m(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:a})}update(a){this.destroy();this.init(this.chart.renderer,r(!0,this.options,a),this.chart)}updatePosition(a,h){1a&&(h=w(h-a),a=0);this.from= a;this.to=h}}q.defaultOptions=H;D.scrollbar=r(!0,q.defaultOptions,D.scrollbar);return q});L(e,"Stock/Navigator/Navigator.js",[e["Core/Axis/Axis.js"],e["Core/Defaults.js"],e["Core/Globals.js"],e["Core/Axis/NavigatorAxisComposition.js"],e["Stock/Navigator/NavigatorComposition.js"],e["Stock/Scrollbar/Scrollbar.js"],e["Core/Utilities.js"]],function(e,A,x,H,E,D,p){function w(c,...f){f=[].filter.call(f,n);if(f.length)return Math[c].apply(0,f)}const {defaultOptions:v}=A,{hasTouch:b,isTouchDevice:m}=x,{addEvent:r, clamp:I,correctFloat:l,defined:q,destroyObjectProperties:a,erase:h,extend:B,find:M,isArray:G,isNumber:n,merge:g,pick:y,removeEvent:z,splat:k}=p;class d{static compose(c,f,C){E.compose(c,f,d,C)}constructor(c){this.rendered=this.range=this.outline=this.opposite=this.navigatorSize=this.navigatorSeries=this.navigatorOptions=this.navigatorGroup=this.navigatorEnabled=this.left=this.height=this.handles=this.chart=this.baseSeries=void 0;this.scrollbarHeight=0;this.zoomedMin=this.zoomedMax=this.yAxis=this.xAxis= this.top=this.size=this.shades=this.scrollButtonSize=void 0;this.init(c)}drawHandle(c,f,C,u){const d=this.navigatorOptions.handles.height;this.handles[f][u](C?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(c,10)+.5-d)}:{translateX:Math.round(this.left+parseInt(c,10)),translateY:Math.round(this.top+this.height/2-d/2-1)})}drawOutline(c,f,C,d){const u=this.navigatorOptions.maskInside;var k=this.outline.strokeWidth();const g=k/2;var a=k%2/2;const t=this.scrollButtonSize, n=this.size,K=this.top;k=this.height;const h=K-g,z=K+k;let b=this.left;C?(C=K+f+a,f=K+c+a,a=[["M",b+k,K-t-a],["L",b+k,C],["L",b,C],["M",b,f],["L",b+k,f],["L",b+k,K+n+t]],u&&a.push(["M",b+k,C-g],["L",b+k,f+g])):(b-=t,c+=b+t-a,f+=b+t-a,a=[["M",b,h],["L",c,h],["L",c,z],["M",f,z],["L",f,h],["L",b+n+2*t,K+g]],u&&a.push(["M",c-g,h],["L",f+g,h]));this.outline[d]({d:a})}drawMasks(c,f,C,d){const k=this.left,u=this.top,g=this.height;let a,t,n,b;C?(n=[k,k,k],b=[u,u+c,u+f],t=[g,g,g],a=[c,f-c,this.size-f]):(n= [k,k+c,k+f],b=[u,u,u],t=[c,f-c,this.size-f],a=[g,g,g]);this.shades.forEach((c,f)=>{c[d]({x:n[f],y:b[f],width:t[f],height:a[f]})})}renderElements(){const c=this,f=c.navigatorOptions,C=f.maskInside,k=c.chart,d=k.renderer,g={cursor:k.inverted?"ns-resize":"ew-resize"},a=c.navigatorGroup=d.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();[!C,C,!C].forEach((C,u)=>{const t=d.rect().addClass("highcharts-navigator-mask"+(1===u?"-inside":"-outside")).add(a);k.styledMode||(t.attr({fill:C?f.maskFill: "rgba(0,0,0,0)"}),1===u&&t.css(g));c.shades[u]=t});c.outline=d.path().addClass("highcharts-navigator-outline").add(a);k.styledMode||c.outline.attr({"stroke-width":f.outlineWidth,stroke:f.outlineColor});if(f.handles&&f.handles.enabled){const C=f.handles,{height:u,width:n}=C;[0,1].forEach(f=>{c.handles[f]=d.symbol(C.symbols[f],-n/2-1,0,n,u,C);k.inverted&&c.handles[f].attr({rotation:90,rotationOriginX:Math.floor(-n/2),rotationOriginY:(u+n)/2});c.handles[f].attr({zIndex:7-f}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+ ["left","right"][f]).add(a);k.styledMode||c.handles[f].attr({fill:C.backgroundColor,stroke:C.borderColor,"stroke-width":C.lineWidth}).css(g)})}}update(c){(this.series||[]).forEach(c=>{c.baseSeries&&delete c.baseSeries.navigatorSeries});this.destroy();g(!0,this.chart.options.navigator,c);this.init(this.chart)}render(c,f,C,k){var d=this.chart;const u=this.xAxis,g=u.pointRange||0;var a=u.navigatorAxis.fake?d.xAxis[0]:u;const t=this.navigatorEnabled;var b=this.rendered,h=d.inverted;const z=d.xAxis[0].minRange, m=d.xAxis[0].options.maxRange,e=this.scrollButtonSize;let r=this.scrollbarHeight,B;if(!this.hasDragged||q(C)){c=l(c-g/2);f=l(f+g/2);if(!n(c)||!n(f))if(b)C=0,k=y(u.width,a.width);else return;this.left=y(u.left,d.plotLeft+e+(h?d.plotWidth:0));var p=this.size=B=y(u.len,(h?d.plotHeight:d.plotWidth)-2*e);d=h?r:B+2*e;C=y(C,u.toPixels(c,!0));k=y(k,u.toPixels(f,!0));n(C)&&Infinity!==Math.abs(C)||(C=0,k=d);c=u.toValue(C,!0);f=u.toValue(k,!0);var v=Math.abs(l(f-c));vm&&(this.grabbedLeft?C=u.toPixels(f-m-g,!0):this.grabbedRight&&(k=u.toPixels(c+m+g,!0)));this.zoomedMax=I(Math.max(C,k),0,p);this.zoomedMin=I(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(C,k),0,p);this.range=this.zoomedMax-this.zoomedMin;p=Math.round(this.zoomedMax);C=Math.round(this.zoomedMin);t&&(this.navigatorGroup.attr({visibility:"inherit"}),b=b&&!this.hasDragged?"animate":"attr",this.drawMasks(C,p,h,b),this.drawOutline(C,p, h,b),this.navigatorOptions.handles.enabled&&(this.drawHandle(C,0,h,b),this.drawHandle(p,1,h,b)));this.scrollbar&&(h?(h=this.top-e,a=this.left-r+(t||!a.opposite?0:(a.titleOffset||0)+a.axisTitleMargin),r=B+2*e):(h=this.top+(t?this.height:-r),a=this.left-e),this.scrollbar.position(a,h,d,r),this.scrollbar.setRange(this.zoomedMin/(B||1),this.zoomedMax/(B||1)));this.rendered=!0}}addMouseEvents(){const c=this,f=c.chart,k=f.container;let d=[],g,a;c.mouseMoveHandler=g=function(f){c.onMouseMove(f)};c.mouseUpHandler= a=function(f){c.onMouseUp(f)};d=c.getPartsEvents("mousedown");d.push(r(f.renderTo,"mousemove",g),r(k.ownerDocument,"mouseup",a));b&&(d.push(r(f.renderTo,"touchmove",g),r(k.ownerDocument,"touchend",a)),d.concat(c.getPartsEvents("touchstart")));c.eventsToUnbind=d;c.series&&c.series[0]&&d.push(r(c.series[0].xAxis,"foundExtremes",function(){f.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(c){const f=this,d=[];["shades","handles"].forEach(function(k){f[k].forEach(function(C,u){d.push(r(C.element, c,function(c){f[k+"Mousedown"](c,u)}))})});return d}shadesMousedown(c,f){c=this.chart.pointer.normalize(c);const d=this.chart,k=this.xAxis,g=this.zoomedMin,a=this.size,b=this.range;let n=this.left,t=c.chartX,h,z;d.inverted&&(t=c.chartY,n=this.top);1===f?(this.grabbedCenter=t,this.fixedWidth=b,this.dragOffset=t-g):(c=t-n-b/2,0===f?c=Math.max(0,c):2===f&&c+b>=a&&(c=a-b,this.reversedExtremes?(c-=b,z=this.getUnionExtremes().dataMin):h=this.getUnionExtremes().dataMax),c!==g&&(this.fixedWidth=b,f=k.navigatorAxis.toFixedRange(c, c+b,z,h),q(f.min)&&d.xAxis[0].setExtremes(Math.min(f.min,f.max),Math.max(f.min,f.max),!0,null,{trigger:"navigator"})))}handlesMousedown(c,f){this.chart.pointer.normalize(c);c=this.chart;const d=c.xAxis[0],k=this.reversedExtremes;0===f?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=k?d.min:d.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=k?d.max:d.min);c.fixedRange=null}onMouseMove(c){const f=this;var d=f.chart;const k=f.navigatorSize,g=f.range, a=f.dragOffset,b=d.inverted;let n=f.left;c.touches&&0===c.touches[0].pageX||(c=d.pointer.normalize(c),d=c.chartX,b&&(n=f.top,d=c.chartY),f.grabbedLeft?(f.hasDragged=!0,f.render(0,0,d-n,f.otherHandlePos)):f.grabbedRight?(f.hasDragged=!0,f.render(0,0,f.otherHandlePos,d-n)):f.grabbedCenter&&(f.hasDragged=!0,dk+a-g&&(d=k+a-g),f.render(0,0,d-a,d-a+g)),f.hasDragged&&f.scrollbar&&y(f.scrollbar.options.liveRedraw,!m&&!this.chart.boosted)&&(c.DOMType=c.type,setTimeout(function(){f.onMouseUp(c)},0)))}onMouseUp(c){var f= this.chart,d=this.xAxis,k=this.scrollbar;const g=c.DOMEvent||c,a=f.inverted,b=this.rendered&&!this.hasDragged?"animate":"attr";let h,t;(!this.hasDragged||k&&k.hasDragged)&&"scrollbar"!==c.trigger||(k=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?h=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(t=this.fixedExtreme),this.zoomedMax===this.size&&(t=this.reversedExtremes?k.dataMin:k.dataMax),0===this.zoomedMin&&(h=this.reversedExtremes?k.dataMax:k.dataMin),d=d.navigatorAxis.toFixedRange(this.zoomedMin, this.zoomedMax,h,t),q(d.min)&&f.xAxis[0].setExtremes(Math.min(d.min,d.max),Math.max(d.min,d.max),!0,this.hasDragged?!1:null,{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:g}));"mousemove"!==c.DOMType&&"touchmove"!==c.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null);this.navigatorEnabled&&n(this.zoomedMin)&&n(this.zoomedMax)&&(f=Math.round(this.zoomedMin),c=Math.round(this.zoomedMax), this.shades&&this.drawMasks(f,c,a,b),this.outline&&this.drawOutline(f,c,a,b),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(f,0,a,b),this.drawHandle(c,1,a,b)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(c){c()}),this.eventsToUnbind=void 0);this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){const c=this.baseSeries||[];this.navigatorEnabled&&c[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&c.forEach(function(c){z(c, "updatedData",this.updatedDataHandler)},this),c[0].xAxis&&z(c[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}init(c){var f=c.options,d=f.navigator||{},k=d.enabled,a=f.scrollbar||{},b=a.enabled;f=k&&d.height||0;var h=b&&a.height||0;const z=a.buttonsEnabled&&h||0;this.handles=[];this.shades=[];this.chart=c;this.setBaseSeries();this.height=f;this.scrollbarHeight=h;this.scrollButtonSize=z;this.scrollbarEnabled=b;this.navigatorEnabled=k;this.navigatorOptions=d;this.scrollbarOptions=a;this.opposite= y(d.opposite,!(k||!c.inverted));const t=this;k=t.baseSeries;a=c.xAxis.length;b=c.yAxis.length;h=k&&k[0]&&k[0].xAxis||c.xAxis[0]||{options:{}};c.isDirtyBox=!0;t.navigatorEnabled?(t.xAxis=new e(c,g({breaks:h.options.breaks,ordinal:h.options.ordinal},d.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis",type:"datetime",index:a,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},c.inverted?{offsets:[z,0,-z,0],width:f}:{offsets:[0,-z,0,z], height:f}),"xAxis"),t.yAxis=new e(c,g(d.yAxis,{id:"navigator-y-axis",alignTicks:!1,offset:0,index:b,isInternal:!0,reversed:y(d.yAxis&&d.yAxis.reversed,c.yAxis[0]&&c.yAxis[0].reversed,!1),zoomEnabled:!1},c.inverted?{width:f}:{height:f}),"yAxis"),k||d.series.data?t.updateNavigatorSeries(!1):0===c.series.length&&(t.unbindRedraw=r(c,"beforeRedraw",function(){0!c.options.isInternal).index:0);(d.series||[]).forEach((f,d)=>{f.options.isInternal||!f.options.showInNavigator&&(d!==c&&f.options.id!==c||!1===f.options.showInNavigator)||k.push(f)});this.xAxis&&!this.xAxis.navigatorAxis.fake&& this.updateNavigatorSeries(!0,f)}updateNavigatorSeries(c,f){const d=this,a=d.chart,b=d.baseSeries,h={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:"navigator-x-axis",yAxis:"navigator-y-axis",showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},n=d.series=(d.series||[]).filter(c=>{const f=c.baseSeries;return 0>b.indexOf(f)?(f&&(z(f,"updatedData",d.updatedDataHandler),delete f.navigatorSeries),c.chart&&c.destroy(),!1):!0});let l,t,J=d.navigatorOptions.series, K;b&&b.length&&b.forEach(c=>{const u=c.navigatorSeries;var C=B({color:c.color,visible:c.visible},G(J)?v.navigator.series:J);u&&!1===d.navigatorOptions.adaptToUpdatedData||(h.name="Navigator "+b.length,l=c.options||{},K=l.navigatorOptions||{},C.dataLabels=k(C.dataLabels),t=g(l,h,C,K),t.pointRange=y(C.pointRange,K.pointRange,v.plotOptions[t.type||"line"].pointRange),C=K.data||C.data,d.hasNavigatorData=d.hasNavigatorData||!!C,t.data=C||l.data&&l.data.slice(0),u&&u.options?u.update(t,f):(c.navigatorSeries= a.initSeries(t),c.navigatorSeries.baseSeries=c,n.push(c.navigatorSeries)))});if(J.data&&(!b||!b.length)||G(J))d.hasNavigatorData=!1,J=k(J),J.forEach((c,f)=>{h.name="Navigator "+(n.length+1);t=g(v.navigator.series,{color:a.series[f]&&!a.series[f].options.isInternal&&a.series[f].color||a.options.colors[f]||a.options.colors[0]},h,c);t.data=c.data;t.data&&(d.hasNavigatorData=!0,n.push(a.initSeries(t)))});c&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){const c=this,f=c.baseSeries||[];f[0]&&f[0].xAxis&& f[0].eventsToUnbind.push(r(f[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes));f.forEach(f=>{f.eventsToUnbind.push(r(f,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)}));f.eventsToUnbind.push(r(f,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)}));!1!==this.navigatorOptions.adaptToUpdatedData&&f.xAxis&&f.eventsToUnbind.push(r(f,"updatedData",this.updatedDataHandler));f.eventsToUnbind.push(r(f,"remove",function(){this.navigatorSeries&& (h(c.series,this.navigatorSeries),q(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(c){return this.baseSeries.reduce(function(c,d){return Math.min(c,d.xData&&d.xData.length?d.xData[0]:c)},c)}modifyNavigatorAxisExtremes(){const c=this.xAxis;if("undefined"!==typeof c.getExtremes){const f=this.getUnionExtremes(!0);!f||f.dataMin===c.min&&f.dataMax===c.max||(c.min=f.dataMin,c.max=f.dataMax)}}modifyBaseAxisExtremes(){const c=this.chart.navigator; var f=this.getExtremes();const d=f.dataMin,k=f.dataMax;f=f.max-f.min;const g=c.stickToMin,a=c.stickToMax,b=y(this.options.overscroll,0),h=c.series&&c.series[0],t=!!this.setExtremes;let z,l;this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger||(g&&(l=d,z=l+f),a&&(z=k+b,g||(l=Math.max(d,z-f,c.getBaseSeriesMin(h&&h.xData?h.xData[0]:-Number.MAX_VALUE)))),t&&(g||a)&&n(l)&&(this.min=this.userMin=l,this.max=this.userMax=z));c.stickToMin=c.stickToMax=null}updatedDataHandler(){const c=this.chart.navigator, f=this.navigatorSeries;c.stickToMax=y(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,c.reversedExtremes?0===Math.round(c.zoomedMin):Math.round(c.zoomedMax)>=Math.round(c.size));c.stickToMin=c.shouldStickToMin(this,c);f&&!c.hasNavigatorData&&(f.options.pointStart=this.xData[0],f.setData(this.options.data,!1,null,!1))}shouldStickToMin(c,f){f=f.getBaseSeriesMin(c.xData[0]);var d=c.xAxis;c=d.max;const k=d.min;d=d.options.range;return n(c)&&n(k)?d&&0{c.destroy&&c.destroy()});"series xAxis yAxis shades outline scrollbarTrack scrollbarRifles scrollbarGroup scrollbar navigatorGroup rendered".split(" ").forEach(c=>{this[c]&&this[c].destroy&&this[c].destroy();this[c]=null});[this.handles].forEach(c=>{a(c)})}}return d});L(e,"Stock/RangeSelector/RangeSelectorDefaults.js",[], function(){return{lang:{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"",rangeSelectorTo:"\u2192"},rangeSelector:{allButtonsEnabled:!1,buttons:void 0,buttonSpacing:5,dropdown:"responsive",enabled:void 0,verticalAlign:"top",buttonTheme:{width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputBoxBorderColor:"none",inputBoxHeight:17,inputBoxWidth:void 0,inputDateFormat:"%e %b %Y",inputDateParser:void 0,inputEditDateFormat:"%Y-%m-%d",inputEnabled:!0,inputPosition:{align:"right",x:0, y:0},inputSpacing:5,selected:void 0,buttonPosition:{align:"left",x:0,y:0},inputStyle:{color:"#334eff",cursor:"pointer",fontSize:"0.8em"},labelStyle:{color:"#666666",fontSize:"0.8em"}}}});L(e,"Stock/RangeSelector/RangeSelectorComposition.js",[e["Core/Defaults.js"],e["Stock/RangeSelector/RangeSelectorDefaults.js"],e["Core/Utilities.js"]],function(e,A,x){function F(){const g=this.range,k=g.type,d=this.max,c=this.chart.time,f=function(f,d){const g="year"===k?"FullYear":"Month",a=new c.Date(f),u=c.get(g, a);c.set(g,a,u+d);u===c.get(g,a)&&c.set("Date",a,0);return a.getTime()-f};let a,u;B(g)?(a=d-g,u=g):g&&(a=d+f(d,-(g.count||1)),this.chart&&(this.chart.fixedRange=d-a));const b=G(this.dataMin,Number.MIN_VALUE);B(a)||(a=b);a<=b&&(a=b,"undefined"===typeof u&&(u=f(a,g.count)),this.newMax=Math.min(a+u,G(this.dataMax,Number.MAX_VALUE)));B(d)?!B(g)&&g&&g._offsetMin&&(a+=g._offsetMin):a=void 0;return a}function E(){this.options.rangeSelector&&this.options.rangeSelector.enabled&&(this.rangeSelector=new y(this))} function D(){var a=this.axes;const k=this.rangeSelector;k&&(B(k.deferredYTDClick)&&(k.clickButton(k.deferredYTDClick),delete k.deferredYTDClick),a.forEach(d=>{d.updateNames();d.setScale()}),this.getAxisMargins(),k.render(),a=k.options.verticalAlign,k.options.floating||("bottom"===a?this.extraBottomMargin=!0:"middle"!==a&&(this.extraTopMargin=!0)))}function p(a){let k,d,c,f;const g=a.rangeSelector,u=()=>{g&&(k=a.xAxis[0].getExtremes(),d=a.legend,f=g&&g.options.verticalAlign,B(k.min)&&g.render(k.min, k.max),d.display&&"top"===f&&f===d.options.verticalAlign&&(c=M(a.spacingBox),c.y="vertical"===d.options.layout?a.plotTop:c.y+g.getHeight(),d.group.placed=!1,d.align(c)))};g&&(h(n,c=>c[0]===a)||n.push([a,[l(a.xAxis[0],"afterSetExtremes",function(c){g&&g.render(c.min,c.max)}),l(a,"redraw",u)]]),u())}function w(){for(let a=0,k=n.length;ac());n.splice(a,1);break}}}function v(){var a=this.rangeSelector;a&&(a=a.getHeight(),this.extraTopMargin&&(this.plotTop+= a),this.extraBottomMargin&&(this.marginBottom+=a))}function b(){var a=this.rangeSelector;a&&!a.options.floating&&(a.render(),a=a.options.verticalAlign,"bottom"===a?this.extraBottomMargin=!0:"middle"!==a&&(this.extraTopMargin=!0))}function m(a){var k=a.options.rangeSelector;a=this.extraBottomMargin;const d=this.extraTopMargin;let c=this.rangeSelector;k&&k.enabled&&!q(c)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=c=new y(this));this.extraTopMargin=this.extraBottomMargin= !1;c&&(p(this),k=k&&k.verticalAlign||c.options&&c.options.verticalAlign,c.options.floating||("bottom"===k?this.extraBottomMargin=!0:"middle"!==k&&(this.extraTopMargin=!0)),this.extraBottomMargin!==a||this.extraTopMargin!==d)&&(this.isDirtyBox=!0)}const {defaultOptions:r,setOptions:I}=e,{addEvent:l,defined:q,extend:a,find:h,isNumber:B,merge:M,pick:G}=x,n=[],g=[];let y;return{compose:function(h,k,d){y=d;x.pushUnique(g,h)&&(h.prototype.minFromRange=F);x.pushUnique(g,k)&&(l(k,"afterGetContainer",E),l(k, "beforeRender",D),l(k,"destroy",w),l(k,"getMargins",v),l(k,"render",b),l(k,"update",m),k.prototype.callbacks.push(p));x.pushUnique(g,I)&&(a(r,{rangeSelector:A.rangeSelector}),a(r.lang,A.lang))}}});L(e,"Stock/RangeSelector/RangeSelector.js",[e["Core/Axis/Axis.js"],e["Core/Defaults.js"],e["Core/Globals.js"],e["Stock/RangeSelector/RangeSelectorComposition.js"],e["Core/Renderer/SVG/SVGElement.js"],e["Core/Utilities.js"]],function(e,A,x,H,E,D){function p(k){if(-1!==k.indexOf("%L"))return"text";const d= "aAdewbBmoyY".split("").some(c=>-1!==k.indexOf("%"+c)),c="HkIlMS".split("").some(c=>-1!==k.indexOf("%"+c));return d&&c?"datetime-local":d?"date":c?"time":"text"}const {defaultOptions:w}=A,{addEvent:v,createElement:b,css:m,defined:r,destroyObjectProperties:I,discardElement:l,extend:q,fireEvent:a,isNumber:h,merge:B,objectEach:M,pad:G,pick:n,pInt:g,splat:y}=D;class z{static compose(k,d){H.compose(k,d,z)}constructor(k){this.buttons=void 0;this.buttonOptions=z.prototype.defaultButtons;this.initialButtonGroupWidth= 0;this.options=void 0;this.chart=k;this.init(k)}clickButton(k,d){const c=this.chart,f=this.buttonOptions[k],g=c.xAxis[0];var u=c.scroller&&c.scroller.getUnionExtremes()||g||{},b=f.type;const l=f.dataGrouping;let z=u.dataMin,q=u.dataMax,t,J=g&&Math.round(Math.min(g.max,n(q,g.max))),K;u=f._range;let m,B,p,I=!0;if(null!==z&&null!==q){c.fixedRange=u;this.setSelected(k);l&&(this.forcedDataGrouping=!0,e.prototype.setDataGrouping.call(g||{chart:this.chart},l,!1),this.frozenStates=f.preserveDataGrouping); if("month"===b||"year"===b)g?(b={range:f,max:J,chart:c,dataMin:z,dataMax:q},t=g.minFromRange.call(b),h(b.newMax)&&(J=b.newMax),I=!1):u=f;else if(u)t=Math.max(J-u,z),J=Math.min(t+u,q),I=!1;else if("ytd"===b)if(g){if("undefined"===typeof q||"undefined"===typeof z)z=Number.MAX_VALUE,q=Number.MIN_VALUE,c.series.forEach(c=>{if(c=c.xData)z=Math.min(c[0],z),q=Math.max(c[c.length-1],q)}),d=!1;b=this.getYTDExtremes(q,z,c.time.useUTC);t=m=b.min;J=b.max}else{this.deferredYTDClick=k;return}else"all"===b&&g&& (c.navigator&&c.navigator.baseSeries[0]&&(c.navigator.baseSeries[0].xAxis.options.range=void 0),t=z,J=q);I&&f._offsetMin&&r(t)&&(t+=f._offsetMin);f._offsetMax&&r(J)&&(J+=f._offsetMax);this.dropdown&&(this.dropdown.selectedIndex=k+1);g?g.setExtremes(t,J,n(d,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:f}):(K=y(c.options.xAxis)[0],p=K.range,K.range=u,B=K.min,K.min=m,v(c,"load",function(){K.range=p;K.min=B}));a(this,"afterBtnClick")}}setSelected(k){this.selected=this.options.selected= k}init(k){const d=this,c=k.options.rangeSelector,f=c.buttons||d.defaultButtons.slice(),g=c.selected,b=function(){const c=d.minInput,f=d.maxInput;c&&c.blur&&a(c,"blur");f&&f.blur&&a(f,"blur")};d.chart=k;d.options=c;d.buttons=[];d.buttonOptions=f;this.eventsToUnbind=[];this.eventsToUnbind.push(v(k.container,"mousedown",b));this.eventsToUnbind.push(v(k,"resize",b));f.forEach(d.computeButtonRange);"undefined"!==typeof g&&f[g]&&this.clickButton(g,!1);this.eventsToUnbind.push(v(k,"load",function(){k.xAxis&& k.xAxis[0]&&v(k.xAxis[0],"setExtremes",function(c){this.max-this.min!==k.fixedRange&&"rangeSelectorButton"!==c.trigger&&"updatedData"!==c.trigger&&d.forcedDataGrouping&&!d.frozenStates&&this.setDataGrouping(!1,!1)})}))}updateButtonStates(){const k=this;var d=this.chart;const c=this.dropdown,f=d.xAxis[0],a=Math.round(f.max-f.min),g=!f.hasVisibleSeries,b=d.scroller&&d.scroller.getUnionExtremes()||f,n=b.dataMin,l=b.dataMax;d=k.getYTDExtremes(l,n,d.time.useUTC);const z=d.min,t=d.max,y=k.selected,K=k.options.allButtonsEnabled, q=k.buttons;let m=h(y);k.buttonOptions.forEach((d,b)=>{var u=d._range,h=d.type,C=d.count||1;const J=q[b],e=d._offsetMax-d._offsetMin,r=b===y,B=u>l-n,R=u=864E5*{month:28,year:365}[h]*C-e&&a-36E5<=864E5*{month:31,year:366}[h]*C+e?u=!0:"ytd"===h?(u=t-z+e===a,O=!r):"all"===h&&(u=f.max-f.min>=l-n,N=!r&&m&&u);h=!K&&(B||R||N||g);C=r&&u||u&&!m&&!O||r&&k.frozenStates;h?d=3:C&&(m=!0,d=2);J.state!==d&&(J.setState(d),c&&(c.options[b+1].disabled= h,2===d&&(c.selectedIndex=b+1)),0===d&&y===b&&k.setSelected())})}computeButtonRange(k){const d=k.type,c=k.count||1,f={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5};if(f[d])k._range=f[d]*c;else if("month"===d||"year"===d)k._range=864E5*{month:30,year:365}[d]*c;k._offsetMin=n(k.offsetMin,0);k._offsetMax=n(k.offsetMax,0);k._range+=k._offsetMax-k._offsetMin}getInputValue(k){k="min"===k?this.minInput:this.maxInput;const d=this.chart.options.rangeSelector,c=this.chart.time;return k? ("text"===k.type&&d.inputDateParser||this.defaultInputDateParser)(k.value,c.useUTC,c):0}setInputValue(k,d){const c=this.options,f=this.chart.time,a="min"===k?this.minInput:this.maxInput;k="min"===k?this.minDateBox:this.maxDateBox;if(a){var g=a.getAttribute("data-hc-time");g=r(g)?Number(g):void 0;r(d)&&(r(g)&&a.setAttribute("data-hc-time-previous",g),a.setAttribute("data-hc-time",d),g=d);a.value=f.dateFormat(this.inputTypeFormats[a.type]||c.inputEditDateFormat,g);k&&k.attr({text:f.dateFormat(c.inputDateFormat, g)})}}setInputExtremes(k,d,c){if(k="min"===k?this.minInput:this.maxInput){const f=this.inputTypeFormats[k.type],a=this.chart.time;f&&(d=a.dateFormat(f,d),k.min!==d&&(k.min=d),c=a.dateFormat(f,c),k.max!==c&&(k.max=c))}}showInput(k){const d="min"===k?this.minDateBox:this.maxDateBox;if((k="min"===k?this.minInput:this.maxInput)&&d&&this.inputGroup){const c="text"===k.type,{translateX:f,translateY:a}=this.inputGroup,{inputBoxWidth:g}=this.options;m(k,{width:c?d.width+(g?-2:20)+"px":"auto",height:d.height- 2+"px",border:"2px solid silver"});c&&g?m(k,{left:f+d.x+"px",top:a+"px"}):m(k,{left:Math.min(Math.round(d.x+f-(k.offsetWidth-d.width)/2),this.chart.chartWidth-k.offsetWidth)+"px",top:a-(k.offsetHeight-d.height)/2+"px"})}}hideInput(k){(k="min"===k?this.minInput:this.maxInput)&&m(k,{top:"-9999em",border:0,width:"1px",height:"1px"})}defaultInputDateParser(k,d,c){var f=k.split("/").join("-").split(" ").join("T");-1===f.indexOf("T")&&(f+="T00:00");if(d)f+="Z";else{var a;if(a=x.isSafari)a=f,a=!(6=a?`+${G(-a)}:00`:`-${G(a)}:00`)}f=Date.parse(f);h(f)||(k=k.split("-"),f=Date.UTC(g(k[0]),g(k[1])-1,g(k[2])));c&&d&&h(f)&&(f+=c.getTimezoneOffset(f));return f}drawInput(a){function d(){const {maxInput:f,minInput:d}=g,k=c.xAxis[0];var b=c.scroller&&c.scroller.xAxis?c.scroller.xAxis:k;const t=b.dataMin;b=b.dataMax;let u=g.getInputValue(a);u!==Number(J.getAttribute("data-hc-time-previous"))&& h(u)&&(J.setAttribute("data-hc-time-previous",u),y&&f&&h(t)?u>Number(f.getAttribute("data-hc-time"))?u=void 0:ub&&(u=b)),"undefined"!==typeof u&&k.setExtremes(y?u:k.min,y?k.max:u,void 0,void 0,{trigger:"rangeSelectorInput"}))}const {chart:c,div:f,inputGroup:k}=this,g=this,n=c.renderer.style||{};var l=c.renderer;const z=c.options.rangeSelector,y="min"===a;var t=w.lang[y?"rangeSelectorFrom":"rangeSelectorTo"]||"";t=l.label(t,0).addClass("highcharts-range-label").attr({padding:t? 2:0,height:t?z.inputBoxHeight:0}).add(k);l=l.label("",0).addClass("highcharts-range-input").attr({padding:2,width:z.inputBoxWidth,height:z.inputBoxHeight,"text-align":"center"}).on("click",function(){g.showInput(a);g[a+"Input"].focus()});c.styledMode||l.attr({stroke:z.inputBoxBorderColor,"stroke-width":1});l.add(k);const J=b("input",{name:a,className:"highcharts-range-selector"},void 0,f);J.setAttribute("type",p(z.inputDateFormat||"%e %b %Y"));c.styledMode||(t.css(B(n,z.labelStyle)),l.css(B({color:"#333333"}, n,z.inputStyle)),m(J,q({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:n.fontSize,fontFamily:n.fontFamily,top:"-9999em"},z.inputStyle)));J.onfocus=()=>{g.showInput(a)};J.onblur=()=>{J===x.doc.activeElement&&d();g.hideInput(a);g.setInputValue(a);J.blur()};let K=!1;J.onchange=()=>{K||(d(),g.hideInput(a),J.blur())};J.onkeypress=c=>{13===c.keyCode&&d()};J.onkeydown=c=>{K=!0;38!==c.keyCode&&40!==c.keyCode||d()};J.onkeyup= ()=>{K=!1};return{dateBox:l,input:J,label:t}}getPosition(){var a=this.chart;const d=a.options.rangeSelector;a="top"===d.verticalAlign?a.plotTop-a.axisOffset[0]:0;return{buttonTop:a+d.buttonPosition.y,inputTop:a+d.inputPosition.y-10}}getYTDExtremes(a,d,c){const f=this.chart.time;var k=new f.Date(a);const g=f.get("FullYear",k);c=c?f.Date.UTC(g,0,1):+new f.Date(g,0,1);d=Math.max(d,c);k=k.getTime();return{max:Math.min(a||k,k),min:d}}render(a,d){var c=this.chart,f=c.renderer;const g=c.container;var k= c.options;const h=k.rangeSelector,l=n(k.chart.style&&k.chart.style.zIndex,0)+1;k=h.inputEnabled;if(!1!==h.enabled){this.rendered||(this.group=f.g("range-selector-group").attr({zIndex:7}).add(),this.div=b("div",void 0,{position:"relative",height:0,zIndex:l}),this.buttonOptions.length&&this.renderButtons(),g.parentNode&&g.parentNode.insertBefore(this.div,g),k&&(this.inputGroup=f.g("input-group").add(this.group),f=this.drawInput("min"),this.minDateBox=f.dateBox,this.minLabel=f.label,this.minInput=f.input, f=this.drawInput("max"),this.maxDateBox=f.dateBox,this.maxLabel=f.label,this.maxInput=f.input));if(k&&(this.setInputValue("min",a),this.setInputValue("max",d),a=c.scroller&&c.scroller.getUnionExtremes()||c.xAxis[0]||{},r(a.dataMin)&&r(a.dataMax)&&(c=c.xAxis[0].minRange||0,this.setInputExtremes("min",a.dataMin,Math.min(a.dataMax,this.getInputValue("max"))-c),this.setInputExtremes("max",Math.max(a.dataMin,this.getInputValue("min"))+c,a.dataMax)),this.inputGroup)){let c=0;[this.minLabel,this.minDateBox, this.maxLabel,this.maxDateBox].forEach(f=>{if(f){const {width:d}=f.getBBox();d&&(f.attr({x:c}),c+=d+h.inputSpacing)}})}this.alignElements();this.rendered=!0}}renderButtons(){const {buttons:g,chart:d,options:c}=this,f=w.lang,h=d.renderer,u=B(c.buttonTheme),l=u&&u.states,z=u.width||28;delete u.width;delete u.states;this.buttonGroup=h.g("range-selector-buttons").add(this.group);const y=this.dropdown=b("select",void 0,{position:"absolute",width:"1px",height:"1px",padding:0,border:0,top:"-9999em",cursor:"pointer", opacity:.0001},this.div);v(y,"touchstart",()=>{y.style.fontSize="16px"});[[x.isMS?"mouseover":"mouseenter"],[x.isMS?"mouseout":"mouseleave"],["change","click"]].forEach(([c,f])=>{v(y,c,()=>{const d=g[this.currentButtonIndex()];d&&a(d.element,f||c)})});this.zoomText=h.label(f&&f.rangeSelectorZoom||"",0).attr({padding:c.buttonTheme.padding,height:c.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup);this.chart.styledMode||(this.zoomText.css(c.labelStyle),u["stroke-width"]=n(u["stroke-width"], 0));b("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,y);this.buttonOptions.forEach((c,f)=>{b("option",{textContent:c.title||c.text},void 0,y);g[f]=h.button(c.text,0,0,d=>{const a=c.events&&c.events.click;let g;a&&(g=a.call(c,d));!1!==g&&this.clickButton(f);this.isActive=!0},u,l&&l.hover,l&&l.select,l&&l.disabled).attr({"text-align":"center",width:z}).add(this.buttonGroup);c.title&&g[f].attr("title",c.title)})}alignElements(){const {buttonGroup:a,buttons:d,chart:c,group:f,inputGroup:g, options:b,zoomText:h}=this;var l=c.options;const z=l.exporting&&!1!==l.exporting.enabled&&l.navigation&&l.navigation.buttonOptions,{buttonPosition:y,inputPosition:t,verticalAlign:q}=b;l=(f,d)=>z&&this.titleCollision(c)&&"top"===q&&"right"===d.align&&d.y-f.getBBox().height-12<(z.y||0)+(z.height||0)+c.spacing[0]?-40:0;var K=c.plotLeft;if(f&&y&&t){var m=y.x-c.spacing[3];if(a){this.positionButtons();if(!this.initialButtonGroupWidth){let c=0;h&&(c+=h.getBBox().width+5);d.forEach((f,a)=>{c+=f.width;a!== d.length-1&&(c+=b.buttonSpacing)});this.initialButtonGroupWidth=c}K-=c.spacing[3];this.updateButtonStates();var e=l(a,y);this.alignButtonGroup(e);f.placed=a.placed=c.hasLoaded}e=0;g&&(e=l(g,t),"left"===t.align?m=K:"right"===t.align&&(m=-Math.max(c.axisOffset[1],-e)),g.align({y:t.y,width:g.getBBox().width,align:t.align,x:t.x+m-2},!0,c.spacingBox),g.placed=c.hasLoaded);this.handleCollision(e);f.align({verticalAlign:q},!0,c.spacingBox);l=f.alignAttr.translateY;K=f.getBBox().height+20;m=0;"bottom"=== q&&(m=(m=c.legend&&c.legend.options)&&"bottom"===m.verticalAlign&&m.enabled&&!m.floating?c.legend.legendHeight+n(m.margin,10):0,K=K+m-20,m=l-K-(b.floating?0:b.y)-(c.titleOffset?c.titleOffset[2]:0)-10);if("top"===q)b.floating&&(m=0),c.titleOffset&&c.titleOffset[0]&&(m=c.titleOffset[0]),m+=c.margin[0]-c.spacing[0]||0;else if("middle"===q)if(t.y===y.y)m=l;else if(t.y||y.y)m=0>t.y||0>y.y?m-Math.min(t.y,y.y):l-K;f.translate(b.x,b.y+Math.floor(m));const {minInput:k,maxInput:u,dropdown:z}=this;b.inputEnabled&& k&&u&&(k.style.marginTop=f.translateY+"px",u.style.marginTop=f.translateY+"px");z&&(z.style.marginTop=f.translateY+"px")}}alignButtonGroup(a,d){const {chart:c,options:f,buttonGroup:g}=this,{buttonPosition:k}=f,b=c.plotLeft-c.spacing[3];let h=k.x-c.spacing[3];"right"===k.align?h+=a-b:"center"===k.align&&(h-=b/2);g&&g.align({y:k.y,width:n(d,this.initialButtonGroupWidth),align:k.align,x:h},!0,c.spacingBox)}positionButtons(){const {buttons:a,chart:d,options:c,zoomText:f}=this,g=d.hasLoaded?"animate": "attr",{buttonPosition:b}=c,h=d.plotLeft;let l=h;f&&"hidden"!==f.visibility&&(f[g]({x:n(h+b.x,h)}),l+=b.x+f.getBBox().width+5);for(let f=0,d=this.buttonOptions.length;f{let c=0;this.buttons.forEach(f=>{f=f.getBBox();f.width>c&&(c=f.width)});return c},n=d=>{if(f&&c){const k= f.alignAttr.translateX+f.alignOptions.x-a+f.getBBox().x+2,h=f.alignOptions.width,t=c.alignAttr.translateX+c.getBBox().x;return t+d>k&&k+h>t&&g.y{f&&c&&f.attr({translateX:f.alignAttr.translateX+(d.axisOffset[1]>=-a?0:-a),translateY:f.alignAttr.translateY+c.getBBox().height+10})};if(c){if("always"===k){this.collapseButtons(a);n(h())&&l();return}"never"===k&&this.expandButtons()}f&&c?b.align===g.align||n(this.initialButtonGroupWidth+20)?"responsive"===k?(this.collapseButtons(a), n(h())&&l()):l():"responsive"===k&&this.expandButtons():c&&"responsive"===k&&(this.initialButtonGroupWidth>d.plotWidth?this.collapseButtons(a):this.expandButtons())}collapseButtons(a){const {buttons:d,buttonOptions:c,chart:f,dropdown:g,options:k,zoomText:b}=this,h=f.userOptions.rangeSelector&&f.userOptions.rangeSelector.buttonTheme||{},l=c=>({text:c?`${c} \u25be`:"\u25be",width:"auto",paddingLeft:n(k.buttonTheme.paddingLeft,h.padding,8),paddingRight:n(k.buttonTheme.paddingRight,h.padding,8)});b&& b.hide();let z=!1;c.forEach((c,f)=>{f=d[f];2!==f.state?f.hide():(f.show(),f.attr(l(c.text)),z=!0)});z||(g&&(g.selectedIndex=0),d[0].show(),d[0].attr(l(this.zoomText&&this.zoomText.textStr)));const {align:t}=k.buttonPosition;this.positionButtons();"right"!==t&&"center"!==t||this.alignButtonGroup(a,d[this.currentButtonIndex()].getBBox().width);this.showDropdown()}expandButtons(){const {buttons:a,buttonOptions:d,options:c,zoomText:f}=this;this.hideDropdown();f&&f.show();d.forEach((f,d)=>{d=a[d];d.show(); d.attr({text:f.text,width:c.buttonTheme.width||28,paddingLeft:n(c.buttonTheme.paddingLeft,"unset"),paddingRight:n(c.buttonTheme.paddingRight,"unset")});2>d.state&&d.setState(0)});this.positionButtons()}currentButtonIndex(){const {dropdown:a}=this;return a&&0g&&0>f||0c()),a.eventsToUnbind=void 0);I(a.buttons);d&&(d.onfocus=d.onblur=d.onchange=null);c&&(c.onfocus=c.onblur=c.onchange=null);M(a,function(c,d){c&&"chart"!==d&&(c instanceof E?c.destroy():c instanceof window.HTMLElement&&l(c));c!==z.prototype[d]&&(a[d]=null)},this)}}q(z.prototype,{defaultButtons:[{type:"month",count:1,text:"1m", title:"View 1 month"},{type:"month",count:3,text:"3m",title:"View 3 months"},{type:"month",count:6,text:"6m",title:"View 6 months"},{type:"ytd",text:"YTD",title:"View year to date"},{type:"year",count:1,text:"1y",title:"View 1 year"},{type:"all",text:"All",title:"View all"}],inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}});"";return z});L(e,"Series/XRange/XRangeSeriesDefaults.js",[e["Core/Utilities.js"]],function(e){const {correctFloat:A,isNumber:x,isObject:F}= e;"";return{colorByPoint:!0,dataLabels:{formatter:function(){let e=this.point.partialFill;F(e)&&(e=e.amount);if(x(e)&&0{point.x} - {point.x2}
',pointFormat:'\u25cf {series.name}: {point.yCategory}
'},borderRadius:3,pointRange:0}});L(e,"Series/XRange/XRangePoint.js",[e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]], function(e,A){const {series:{prototype:{pointClass:{prototype:x}}},seriesTypes:{column:{prototype:{pointClass:F}}}}=e;({extend:e}=A);class E extends F{constructor(){super(...arguments);this.series=this.options=void 0}static getColorByCategory(e,p){const w=e.options.colors||e.chart.options.colors;e=p.y%(w?w.length:e.chart.options.chart.colorCount);return{colorIndex:e,color:w&&w[e]}}resolveColor(){const e=this.series;if(e.options.colorByPoint&&!this.options.color){const p=E.getColorByCategory(e,this); e.chart.styledMode||(this.color=p.color);this.options.colorIndex||(this.colorIndex=p.colorIndex)}else this.color||(this.color=e.color)}init(){x.init.apply(this,arguments);this.y||(this.y=0);return this}setState(){x.setState.apply(this,arguments);this.series.drawPoint(this,this.series.getAnimationVerb())}getLabelConfig(){const e=x.getLabelConfig.call(this),p=this.series.yAxis.categories;e.x2=this.x2;e.yCategory=this.yCategory=p&&p[this.y];return e}isValid(){return"number"===typeof this.x&&"number"=== typeof this.x2}}e(E.prototype,{ttBelow:!1,tooltipDateKeys:["x","x2"]});"";return E});L(e,"Series/XRange/XRangeSeries.js",[e["Core/Globals.js"],e["Core/Color/Color.js"],e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"],e["Series/XRange/XRangeSeriesDefaults.js"],e["Series/XRange/XRangePoint.js"]],function(e,A,x,H,E,D){function p(){let a,b;if(this.isXAxis){a=M(this.dataMax,-Number.MAX_VALUE);for(const g of this.series)if(g.x2Data)for(const k of g.x2Data)k&&k>a&&(a=k,b=!0);b&&(this.dataMax=a)}} ({noop:e}=e);const {parse:w}=A,{series:{prototype:v},seriesTypes:{column:b}}=x,{addEvent:m,clamp:r,defined:I,extend:l,find:q,isNumber:a,isObject:h,merge:B,pick:M}=H,G=[];class n extends b{constructor(){super(...arguments);this.points=this.options=this.data=void 0}static compose(a){H.pushUnique(G,a)&&m(a,"afterGetSeriesExtremes",p)}init(){super.init.apply(this,arguments);this.options.stacking=void 0}getColumnMetrics(){const a=()=>{for(const a of this.chart.series){const g=a.xAxis;a.xAxis=a.yAxis;a.yAxis= g}};a();const b=super.getColumnMetrics();a();return b}cropData(a,b,h,k){b=v.cropData.call(this,this.x2Data,b,h,k);b.xData=a.slice(b.start,b.end);return b}findPointIndex(g){const {cropStart:b,points:h}=this,{id:k}=g;if(k)var d=(d=q(h,c=>c.id===k))?d.index:void 0;"undefined"===typeof d&&(d=(d=q(h,c=>c.x===g.x&&c.x2===g.x2&&!c.touched))?d.index:void 0);this.cropped&&a(d)&&a(b)&&d>=b&&(d-=b);return d}alignDataLabel(a){const g=a.plotX;a.plotX=M(a.dlBox&&a.dlBox.centerX,a.plotX);super.alignDataLabel.apply(this, arguments);a.plotX=g}translatePoint(g){const b=this.xAxis;var n=this.yAxis,k=this.columnMetrics,d=this.options,{borderRadius:c}=d,f=d.minPointLength||0,l=(g.shapeArgs&&g.shapeArgs.width||0)/2,u=this.pointXOffset=k.offset,e=M(g.x2,g.x+(g.len||0));let q=g.plotX;var m=b.translate(e,0,0,0,1);e=Math.abs(m-q);const p=this.chart.inverted,t=M(d.borderWidth,1)%2/2;let J=k.offset,K=Math.round(k.width);f&&(f-=e,0>f&&(f=0),q-=f/2,m+=f/2);q=Math.max(q,-10);m=r(m,-10,b.len+10);I(g.options.pointWidth)&&(J-=(Math.ceil(g.options.pointWidth)- K)/2,K=Math.ceil(g.options.pointWidth));d.pointPlacement&&a(g.plotY)&&n.categories&&(g.plotY=n.translate(g.y,0,1,0,1,d.pointPlacement));d=Math.floor(Math.min(q,m))+t;d={x:d,y:Math.floor(g.plotY+J)+t,width:Math.floor(Math.max(q,m))+t-d,height:K};g.shapeArgs=d;a(c)&&(g.shapeArgs.r=c);p?g.tooltipPos[1]+=u+l:g.tooltipPos[0]-=l+u-d.width/2;l=d.x;u=l+d.width;0>l||u>b.len?(l=r(l,0,b.len),u=r(u,0,b.len),m=u-l,g.dlBox=B(d,{x:l,width:u-l,centerX:m?m/2:null})):g.dlBox=null;l=g.tooltipPos;u=p?1:0;m=p?0:1;k=this.columnMetrics? this.columnMetrics.offset:-k.width/2;l[u]=p?l[u]+d.width/2:r(l[u]+(b.reversed?-1:0)*d.width,0,b.len-1);l[m]=r(l[m]+(p?-1:1)*k,0,n.len-1);if(n=g.partialFill)h(n)&&(n=n.amount),a(n)||(n=0),a(c)&&(g.partShapeArgs=B(d,{r:c})),c=Math.max(Math.round(e*n+g.plotX-q),0),g.clipRectArgs={x:b.reversed?d.x+e-c:d.x,y:d.y,width:c,height:d.height}}translate(){super.translate.apply(this,arguments);for(const a of this.points)this.translatePoint(a)}drawPoint(a,b){const g=this.options,k=this.chart.renderer,d=a.shapeType, c=a.shapeArgs,f=a.partShapeArgs,n=a.clipRectArgs;var l=a.state,e=g.states[l||"normal"]||{};const m="undefined"===typeof l?"attr":b;l=this.pointAttribs(a,l);e=M(this.chart.options.chart.animation,e.animation);let q=a.graphic,y=a.partialFill;if(a.isNull||!1===a.visible)q&&(a.graphic=q.destroy());else{if(q)q.rect[b](c);else a.graphic=q=k.g("point").addClass(a.getClassName()).add(a.group||this.group),q.rect=k[d](B(c)).addClass(a.getClassName()).addClass("highcharts-partfill-original").add(q);f&&(q.partRect? (q.partRect[b](B(f)),q.partialClipRect[b](B(n))):(q.partialClipRect=k.clipRect(n.x,n.y,n.width,n.height),q.partRect=k[d](f).addClass("highcharts-partfill-overlay").add(q).clip(q.partialClipRect)));this.chart.styledMode||(q.rect[b](l,e).shadow(g.shadow),f&&(h(y)||(y={}),h(g.partialFill)&&(y=B(g.partialFill,y)),a=y.fill||w(l.fill).brighten(-.3).get()||w(a.color||this.color).brighten(-.3).get(),l.fill=a,q.partRect[m](l,e).shadow(g.shadow)))}}drawPoints(){const a=this.getAnimationVerb();for(const g of this.points)this.drawPoint(g, a)}getAnimationVerb(){return this.chart.pointCount<(this.options.animationLimit||250)?"animate":"attr"}isPointInside(a){const g=a.shapeArgs,b=a.plotX,k=a.plotY;return g?"undefined"!==typeof b&&"undefined"!==typeof k&&0<=k&&k<=this.yAxis.len&&0<=(g.x||0)+(g.width||0)&&b<=this.xAxis.len:super.isPointInside.apply(this,arguments)}}n.defaultOptions=B(b.defaultOptions,E);l(n.prototype,{pointClass:D,cropShoulder:1,getExtremesFromAll:!0,parallelArrays:["x","x2","y"],requireSorting:!1,type:"xrange",animate:v.animate, autoIncrement:e,buildKDTree:e});x.registerSeriesType("xrange",n);return n});L(e,"Series/Gantt/GanttPoint.js",[e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(e,A){({seriesTypes:{xrange:{prototype:{pointClass:e}}}}=e);const {pick:x}=A;class F extends e{constructor(){super(...arguments);this.series=this.options=void 0}static setGanttPointAliases(e){function A(p,w){"undefined"!==typeof w&&(e[p]=w)}A("x",x(e.start,e.x));A("x2",x(e.end,e.x2));A("partialFill",x(e.completed,e.partialFill))}applyOptions(e, x){e=super.applyOptions.call(this,e,x);F.setGanttPointAliases(e);return e}isValid(){return("number"===typeof this.start||"number"===typeof this.x)&&("number"===typeof this.end||"number"===typeof this.x2||this.milestone)}}return F});L(e,"Core/Axis/BrokenAxis.js",[e["Core/Axis/Stacking/StackItem.js"],e["Core/Utilities.js"]],function(e,A){const {addEvent:x,find:F,fireEvent:E,isArray:D,isNumber:p,pick:w}=A;var v;(function(b){function m(){"undefined"!==typeof this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks, !1)}function r(){this.brokenAxis&&this.brokenAxis.hasBreaks&&(this.options.ordinal=!1)}function I(){const a=this.brokenAxis;if(a&&a.hasBreaks){const g=this.tickPositions,b=this.tickPositions.info,h=[];for(let b=0;bg.to||d>g.from&&fg.from&&fg.from&&f>g.to&&fh&&g>=this.basePointRange&&(h=g);k--;)d&& !1!==d.visible||(d=a[k+1]),g=a[k],!1!==d.visible&&!1!==g.visible&&(d.x-g.x>h&&(d=(g.x+d.x)/2,a.splice(k+1,0,{isNull:!0,x:d}),b.stacking&&this.options.stacking&&(d=b.stacking.stacks[this.stackKey][d]=new e(b,b.options.stackLabels,!1,d,this.stack),d.total=0)),d=g);return this.getGraphPath(a)}const v=[];b.compose=function(b,g){A.pushUnique(v,b)&&(b.keepProps.push("brokenAxis"),x(b,"init",l),x(b,"afterInit",m),x(b,"afterSetTickPositions",I),x(b,"afterSetOptions",r));if(A.pushUnique(v,g)){const b=g.prototype; b.drawBreaks=h;b.gappedPath=B;x(g,"afterGeneratePoints",q);x(g,"afterRender",a)}return b};class G{static isInBreak(a,g){const b=a.repeat||Infinity,h=a.from,k=a.to-a.from;g=g>=h?(g-h)%b:b-(h-g)%b;return a.inclusive?g<=k:g=a);h++)b.to=a)break;else if(G.isInBreak(h,a)){b-=a-h.from;break}return b}constructor(a){this.hasBreaks=!1;this.axis=a}findBreakAt(a,b){return F(b,function(b){return b.fromq;)t-=e;for(;ta.render());if(!this.horiz&&this.chart.hasRendered&&(this.scrollbar||this.linkedParent&&this.linkedParent.scrollbar)){a=this.tickmarkOffset;c=this.tickPositions[this.tickPositions.length- 1];d=this.tickPositions[0];let g,b;for(;(g=this.hiddenLabels.pop())&&g.element;)g.show();for(;(b=this.hiddenMarks.pop())&&b.element;)b.show();(g=this.ticks[d].label)&&(f-d>a?this.hiddenLabels.push(g.hide()):g.show());(g=this.ticks[c].label)&&(c-k>a?this.hiddenLabels.push(g.hide()):g.show());(f=this.ticks[c].mark)&&c-k{a.options.pointRange=0}),a&&c.dateTimeLabelFormats&&c.labels&&!y(f.align)&&(!1===c.dateTimeLabelFormats[a.unitName].range||1a.setScale())}function I(a){const {horiz:c,maxLabelDimensions:f,options:{grid:g={}}}=this;if(g.enabled&&f){var b=2*this.options.labels.distance; b=c?g.cellHeight||b+f.height:b+f.width;d(a.tickSize)?a.tickSize[0]=b:a.tickSize=[b,0]}}function l(){this.axes.forEach(a=>{(a.grid&&a.grid.columns||[]).forEach(a=>{a.setAxisSize();a.setAxisTranslation()})})}function q(a){const {grid:c}=this;(c.columns||[]).forEach(c=>c.destroy(a.keepEvents));c.columns=void 0}function a(a){a=a.userOptions||{};const c=a.grid||{};c.enabled&&y(c.borderColor)&&(a.tickColor=a.lineColor=c.borderColor);this.grid||(this.grid=new Q(this));this.hiddenLabels=[];this.hiddenMarks= []}function h(a){var f=this.label;const d=this.axis;var g=d.reversed,b=d.chart,h=d.options.grid||{};const k=d.options.labels,l=k.align;var e=N[d.side],q=a.tickmarkOffset,u=d.tickPositions;const n=this.pos-q;u=c(u[a.index+1])?u[a.index+1]-q:(d.max||0)+q;var t=d.tickSize("tick");q=t?t[0]:0;t=t?t[1]/2:0;if(!0===h.enabled){let c;"top"===e?(h=d.top+d.offset,c=h-q):"bottom"===e?(c=b.chartHeight-d.bottom+d.offset,h=c+q):(h=d.top+d.len-(d.translate(g?u:n)||0),c=d.top+d.len-(d.translate(g?n:u)||0));"right"=== e?(e=b.chartWidth-d.right+d.offset,g=e+q):"left"===e?(g=d.left+d.offset,e=g-q):(e=Math.round(d.left+(d.translate(g?u:n)||0))-t,g=Math.min(Math.round(d.left+(d.translate(g?n:u)||0))-t,d.left+d.len));this.slotWidth=g-e;a.pos.x="left"===l?e:"right"===l?g:e+(g-e)/2;a.pos.y=c+(h-c)/2;f&&(b=b.renderer.fontMetrics(f),f=f.getBBox().height,a.pos.y=k.useHTML?a.pos.y+(b.b+-(f/2)):a.pos.y+((b.b-(b.h-b.f))/2+-((Math.round(f/b.h)-1)*b.h/2)));a.pos.x+=d.horiz&&k.x||0}}function B(a){const {axis:c,value:d}=a;if(c.options.grid&& c.options.grid.enabled){var g=c.tickPositions;const b=(c.linkedParent||c).series[0],h=d===g[0];g=d===g[g.length-1];const l=b&&k(b.options.data,function(a){return a[c.isXAxis?"x":"y"]===d});let e;l&&b.is("gantt")&&(e=f(l),A.seriesTypes.gantt.prototype.pointClass.setGanttPointAliases(e));a.isFirst=h;a.isLast=g;a.point=e}}function M(){const a=this.options,c=this.categories,d=this.tickPositions,f=d[0],g=d[d.length-1],b=this.linkedParent&&this.linkedParent.min||this.min,h=this.linkedParent&&this.linkedParent.max|| this.max,k=this.tickInterval;!0!==(a.grid||{}).enabled||c||!this.horiz&&!this.isLinked||(fb&&!a.startOnTick&&(d[0]=b),g>h&&g-k{c.side!==a.side||c.options.isInternal||(h=d,c===g&&(b=d))});return h===b&&(c(d)?f.length===d:!0)}renderBorder(a){const c=this.axis,d=c.chart.renderer,f=c.options;a=d.path(a).addClass("highcharts-axis-line").add(c.axisBorder); d.styledMode||a.attr({stroke:f.lineColor,"stroke-width":f.lineWidth,zIndex:7});return a}}n.E=function(a){return this.dateFormat("%a",a,!0).charAt(0)};n.W=function(a){const c=this,d=new this.Date(a);["Hours","Milliseconds","Minutes","Seconds"].forEach(function(a){c.set(a,d,0)});var f=(this.get("Day",d)+6)%7;a=new this.Date(d.valueOf());this.set("Date",a,this.get("Date",d)-f+3);f=new this.Date(this.get("FullYear",a),0,1);4!==this.get("Day",f)&&(this.set("Month",d,0),this.set("Date",d,1+(11-this.get("Day", f))%7));return(1+Math.floor((a.valueOf()-f.valueOf())/6048E5)).toString()};"";return{compose:function(c,d,f){x.pushUnique(O,c)&&(c.keepProps.push("grid"),c.prototype.getMaxLabelDimensions=F,P(c.prototype,"unsquish",G),g(c,"init",a),g(c,"afterGetOffset",E),g(c,"afterGetTitlePosition",D),g(c,"afterInit",p),g(c,"afterRender",w),g(c,"afterSetAxisTranslation",v),g(c,"afterSetOptions",b),g(c,"afterSetOptions",m),g(c,"afterSetScale",r),g(c,"afterTickSize",I),g(c,"trimTicks",M),g(c,"destroy",q));x.pushUnique(O, d)&&g(d,"afterSetChartSize",l);x.pushUnique(O,f)&&(g(f,"afterGetLabelPosition",h),g(f,"labelFormat",B));return c}}});L(e,"Gantt/Tree.js",[e["Core/Utilities.js"]],function(e){const {extend:A,isNumber:x,pick:F}=e,E=function(e,w){const p=e.reduce(function(b,e){const m=F(e.parent,"");"undefined"===typeof b[m]&&(b[m]=[]);b[m].push(e);return b},{});Object.keys(p).forEach(function(b,e){const m=p[b];""!==b&&-1===w.indexOf(b)&&(m.forEach(function(b){e[""].push(b)}),delete e[b])});return p},D=function(e,w, v,b,m,r){let p=0,l=0,q=r&&r.after;var a=r&&r.before;w={data:b,depth:v-1,id:e,level:v,parent:w};let h,B;"function"===typeof a&&a(w,r);a=(m[e]||[]).map(function(a){const b=D(a.id,e,v+1,a,m,r),q=a.start;a=!0===a.milestone?q:a.end;h=!x(h)||qB?a:B;p=p+1+b.descendants;l=Math.max(b.height+1,l);return b});b&&(b.start=F(b.start,h),b.end=F(b.end,B));A(w,{children:a,descendants:p,height:l});"function"===typeof q&&q(w,r);return w};return{getListOfParents:E,getNode:D,getTree:function(e,w){const p= e.map(function(b){return b.id});e=E(e,p);return D("",null,1,null,e,w)}}});L(e,"Core/Axis/TreeGrid/TreeGridTick.js",[e["Core/Utilities.js"]],function(e){function A(){this.treeGrid||(this.treeGrid=new r(this))}function x(b,l){b=b.treeGrid;const e=!b.labelIcon,a=l.renderer;var h=l.xy;const m=l.options,r=m.width||0,p=m.height||0;var n=h.x-r/2-(m.padding||0);h=h.y-p/2;const g=l.collapsed?90:180,y=l.show&&w(h);let z=b.labelIcon;z||(b.labelIcon=z=a.path(a.symbols[m.type](m.x||0,m.y||0,r,p)).addClass("highcharts-label-icon").add(l.group)); z[y?"show":"hide"]();a.styledMode||z.attr({cursor:"pointer",fill:v(l.color,"#666666"),"stroke-width":1,stroke:m.lineColor,strokeWidth:m.lineWidth||0});z[e?"attr":"animate"]({translateX:n,translateY:h,rotation:g})}function F(b,l,e,a,h,m,r,G,n){var g=v(this.options&&this.options.labels,m);m=this.pos;var q=this.axis;const B="treegrid"===q.options.type;b=b.apply(this,[l,e,a,h,g,r,G,n]);B&&(l=g&&p(g.symbol,!0)?g.symbol:{},g=g&&w(g.indentation)?g.indentation:0,m=(m=(q=q.treeGrid.mapOfPosToGridNode)&&q[m])&& m.depth||1,b.x+=(l.width||0)+2*(l.padding||0)+(m-1)*g);return b}function E(b){const l=this;var e=l.pos,a=l.axis;const h=l.label;var m=a.treeGrid.mapOfPosToGridNode,r=a.options;const w=v(l.options&&l.options.labels,r&&r.labels);var n=w&&p(w.symbol,!0)?w.symbol:{};const g=(m=m&&m[e])&&m.depth;r="treegrid"===r.type;const y=-1{a&&!a.attachedTreeGridEvents&&(D(a.element,"mouseover",function(){h.addClass("highcharts-treegrid-node-active"); h.renderer.styledMode||h.css({textDecoration:"underline"})}),D(a.element,"mouseout",function(){{const a=p(w.style)?w.style:{};h.removeClass("highcharts-treegrid-node-active");h.renderer.styledMode||h.css({textDecoration:a.textDecoration})}}),D(a.element,"click",function(){l.treeGrid.toggleCollapse()}),a.attachedTreeGridEvents=!0)}))}const {addEvent:D,isObject:p,isNumber:w,pick:v,wrap:b}=e,m=[];class r{static compose(r){e.pushUnique(m,r)&&(D(r,"init",A),b(r.prototype,"getLabelPosition",F),b(r.prototype, "renderLabel",E),r.prototype.collapse=function(b){this.treeGrid.collapse(b)},r.prototype.expand=function(b){this.treeGrid.expand(b)},r.prototype.toggleCollapse=function(b){this.treeGrid.toggleCollapse(b)})}constructor(b){this.tick=b}collapse(b){var e=this.tick;const m=e.axis,a=m.brokenAxis;a&&m.treeGrid.mapOfPosToGridNode&&(e=m.treeGrid.collapse(m.treeGrid.mapOfPosToGridNode[e.pos]),a.setBreaks(e,v(b,!0)))}destroy(){this.labelIcon&&this.labelIcon.destroy()}expand(b){var e=this.tick;const m=e.axis, a=m.brokenAxis;a&&m.treeGrid.mapOfPosToGridNode&&(e=m.treeGrid.expand(m.treeGrid.mapOfPosToGridNode[e.pos]),a.setBreaks(e,v(b,!0)))}toggleCollapse(b){var e=this.tick;const m=e.axis,a=m.brokenAxis;a&&m.treeGrid.mapOfPosToGridNode&&(e=m.treeGrid.toggleCollapse(m.treeGrid.mapOfPosToGridNode[e.pos]),a.setBreaks(e,v(b,!0)))}}return r});L(e,"Series/TreeUtilities.js",[e["Core/Color/Color.js"],e["Core/Utilities.js"]],function(e,A){function x(b,e){var m=e.before;const p=e.idRoot,l=e.mapIdToNode[p],q=e.points[b.i], a=q&&q.options||{},h=[];let B=0;b.levelDynamic=b.level-(!1!==e.levelIsConstant?0:l.level);b.name=v(q&&q.name,"");b.visible=p===b.id||!0===e.visible;"function"===typeof m&&(b=m(b,e));b.children.forEach((a,l)=>{const m=F({},e);F(m,{index:l,siblings:b.children.length,visible:b.visible});a=x(a,m);h.push(a);a.visible&&(B+=a.val)});m=v(a.value,B);b.visible=0<=m&&(0{let h,e;p(b)&&D(b.level)&&(e=w({},b),h=v(e.levelIsConstant,r.levelIsConstant),delete e.levelIsConstant,delete e.level,b=b.level+(h?0:l-1),p(a[b])?w(!0,a[b],e):a[b]=e);return a},{}));q=D(b.to)?b.to:1;for(b=0;b<=q;b++)e[b]=w({},r,p(x[b])?x[b]:{})}return e}, setTreeValues:x,updateRootId:function(b){if(p(b)){var e=p(b.options)?b.options:{};e=v(b.rootNode,e.rootId,"");p(b.userOptions)&&(b.userOptions.rootId=e);b.rootNode=e}return e}}});L(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(e,A,x,H,E,D){function p(a,c){const d=a.collapseEnd||0;a=a.collapseStart||0;d>=c&&(a-=.5);return{from:a, to:d,showPoints:!1}}function w(a,c,f){const d=[],b=[],g={},h="boolean"===typeof c?c:!1;let k={},e=-1;a=x.getTree(a,{after:function(a){a=k[a.pos];let c=0,d=0;a.children.forEach(function(a){d+=(a.descendants||0)+1;c=Math.max((a.height||0)+1,c)});a.descendants=d;a.height=c;a.collapsed&&b.push(a)},before:function(a){const c=B(a.data,!0)?a.data:{},f=M(c.name)?c.name:"";var b=g[a.parent];b=B(b,!0)?k[b.pos]:null;var l=function(a){return a.name===f};let m;h&&B(b,!0)&&(m=q(b.children,l))?(l=m.pos,m.nodes.push(a)): l=e++;k[l]||(k[l]=m={depth:b?b.depth+1:0,name:f,id:c.id,nodes:[a],children:[],pos:l},-1!==l&&d.push(f),B(b,!0)&&b.children.push(m));M(a.id)&&(g[a.id]=a);m&&!0===c.collapsed&&(m.collapsed=!0);a.pos=l}});k=function(a,c){const d=function(a,f,b){let g=f+(-1===f?0:c-1);const h=(g-f)/2,k=f+h;a.nodes.forEach(function(a){const c=a.data;B(c,!0)&&(c.y=f+(c.seriesIndex||0),delete c.seriesIndex);a.pos=k});b[k]=a;a.pos=k;a.tickmarkOffset=h+.5;a.collapseStart=g+.5;a.children.forEach(function(a){d(a,g+1,b);g=(a.collapseEnd|| 0)-.5});a.collapseEnd=g+.5;return b};return d(a["-1"],-1,{})}(k,f);return{categories:d,mapOfIdToNode:g,mapOfPosToGridNode:k,collapsedNodes:b,tree:a}}function v(a){a.target.axes.filter(function(a){return"treegrid"===a.options.type}).forEach(function(c){var d=c.options||{};const b=d.labels,g=d.uniqueNames;d=d.max;let k=0,e;if(!c.treeGrid.mapOfPosToGridNode||c.series.some(function(a){return!a.hasRendered||a.isDirtyData||a.isDirty})){e=c.series.reduce(function(a,c){c.visible&&((c.options.data||[]).forEach(function(d){c.options.keys&& c.options.keys.length&&(d=c.pointClass.prototype.optionsToObject.call({series:c},d),c.pointClass.setGanttPointAliases(d));B(d,!0)&&(d.seriesIndex=k,a.push(d))}),!0===g&&k++);return a},[]);if(d&&e.lengtha.collapseStart!==c.collapseStart||a.collapseEnd!==c.collapseEnd)))})}),l(d,"afterBreaks",function(){"yAxis"===d.coll&&!d.staticScale&&d.chart.options.chart.height&&(d.isDirty=!0)}),b=G({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},b,{reversed:!0,grid:{columns:void 0}}));a.apply(d,[c,b,g]);f&&(d.hasNames=!0,d.options.showLastLabel=!0)}function r(d){const c=this.options;"treegrid"===c.type?(this.min=n(this.userMin,c.min,this.dataMin),this.max=n(this.userMax,c.max,this.dataMax),a(this,"foundExtremes"),this.setAxisTranslation(),this.tickmarkOffset=.5,this.tickInterval= 1,this.tickPositions=this.treeGrid.mapOfPosToGridNode?this.treeGrid.getTickPositions():[]):d.apply(this,Array.prototype.slice.call(arguments,1))}const {getLevelOptions:I}=E,{addEvent:l,find:q,fireEvent:a,isArray:h,isObject:B,isString:M,merge:G,pick:n,wrap:g}=D,y=[];let z;class k{static compose(a,c,f,h){if(D.pushUnique(y,a)){-1===a.keepProps.indexOf("treeGrid")&&a.keepProps.push("treeGrid");const c=a.prototype;g(c,"generateTick",b);g(c,"init",m);g(c,"setTickInterval",r);c.utils={getNode:x.getNode}}D.pushUnique(y, h)&&(z||(z=h));A.compose(a,c,h);e.compose(a,f);H.compose(h);return a}constructor(a){this.axis=a}setCollapsedStatus(a){const c=this.axis,d=c.chart;c.series.forEach(function(c){const b=c.options.data;if(a.id&&b){const f=d.get(a.id);c=b[c.data.indexOf(f)];f&&c&&(f.collapsed=a.collapsed,c.collapsed=a.collapsed)}})}collapse(a){const c=this.axis,d=c.options.breaks||[],b=p(a,c.max);d.push(b);a.collapsed=!0;c.treeGrid.setCollapsedStatus(a);return d}expand(a){const c=this.axis,d=c.options.breaks||[],b=p(a, c.max);a.collapsed=!1;c.treeGrid.setCollapsedStatus(a);return d.reduce(function(a,c){c.to===b.to&&c.from===b.from||a.push(c);return a},[])}getTickPositions(){const a=this.axis,c=Math.floor(a.min/a.tickInterval)*a.tickInterval,b=Math.ceil(a.max/a.tickInterval)*a.tickInterval;return Object.keys(a.treeGrid.mapOfPosToGridNode||{}).reduce(function(d,f){f=+f;!(f>=c&&f<=b)||a.brokenAxis&&a.brokenAxis.isInAnyBreak(f)||d.push(f);return d},[])}isCollapsed(a){const c=this.axis,d=c.options.breaks||[],b=p(a,c.max); return d.some(function(a){return a.from===b.from&&a.to===b.to})}toggleCollapse(a){return this.isCollapsed(a)?this.expand(a):this.collapse(a)}}return k});L(e,"Extensions/StaticScale.js",[e["Core/Axis/Axis.js"],e["Core/Chart/Chart.js"],e["Core/Utilities.js"]],function(e,A,x){const {addEvent:F,defined:E,isNumber:D,pick:p}=x;F(e,"afterSetOptions",function(){const e=this.chart.options.chart;!this.horiz&&D(this.options.staticScale)&&(!e.height||e.scrollablePlotArea&&e.scrollablePlotArea.minHeight)&&(this.staticScale= this.options.staticScale)});A.prototype.adjustHeight=function(){"adjustHeight"!==this.redrawTrigger&&((this.axes||[]).forEach(function(e){let v=e.chart,b=!!v.initiatedScale&&v.options.animation;var m=e.options.staticScale;let r;e.staticScale&&E(e.min)&&(r=p(e.brokenAxis&&e.brokenAxis.unitLength,e.max+e.tickInterval-e.min)*m,r=Math.max(r,m),m=r-v.plotHeight,!v.scrollablePixelsY&&1<=Math.abs(m)&&(v.plotHeight=r,v.redrawTrigger="adjustHeight",v.setSize(void 0,v.chartHeight+m,b)),e.series.forEach(function(b){(b= b.sharedClipKey&&v.sharedClips[b.sharedClipKey])&&b.attr(v.inverted?{width:v.plotHeight}:{height:v.plotHeight})}))}),this.initiatedScale=!0);this.redrawTrigger=null};F(A,"render",A.prototype.adjustHeight)});L(e,"Gantt/Connection.js",[e["Core/Defaults.js"],e["Core/Globals.js"],e["Core/Series/Point.js"],e["Core/Utilities.js"]],function(e,A,x,H){function F(b){var a=b.shapeArgs;return a?{xMin:a.x||0,xMax:(a.x||0)+(a.width||0),yMin:a.y||0,yMax:(a.y||0)+(a.height||0)}:(a=b.graphic&&b.graphic.getBBox())? {xMin:b.plotX-a.width/2,xMax:b.plotX+a.width/2,yMin:b.plotY-a.height/2,yMax:b.plotY+a.height/2}:null}({defaultOptions:e}=e);const {defined:D,error:p,extend:w,merge:v,objectEach:b}=H;"";const m=A.deg2rad,r=Math.max,I=Math.min;w(e,{connectors:{type:"straight",lineWidth:1,marker:{enabled:!1,align:"center",verticalAlign:"middle",inside:!1,lineWidth:1},startMarker:{symbol:"diamond"},endMarker:{symbol:"arrow-filled"}}});class l{constructor(b,a,h){this.toPoint=this.pathfinder=this.graphics=this.fromPoint= this.chart=void 0;this.init(b,a,h)}init(b,a,h){this.fromPoint=b;this.toPoint=a;this.options=h;this.chart=b.series.chart;this.pathfinder=this.chart.pathfinder}renderPath(b,a,h){let e=this.chart,l=e.styledMode,m=e.pathfinder,n=!e.options.chart.forExport&&!1!==h,g=this.graphics&&this.graphics.path;m.group||(m.group=e.renderer.g().addClass("highcharts-pathfinder-group").attr({zIndex:-1}).add(e.seriesGroup));m.group.translate(e.plotLeft,e.plotTop);g&&g.renderer||(g=e.renderer.path().add(m.group),l||g.attr({opacity:0})); g.attr(a);b={d:b};l||(b.opacity=1);g[n?"animate":"attr"](b,h);this.graphics=this.graphics||{};this.graphics.path=g}addMarker(b,a,h){var e=this.fromPoint.series.chart;let l=e.pathfinder;e=e.renderer;let q="start"===b?this.fromPoint:this.toPoint;var n=q.getPathfinderAnchorPoint(a);let g,r;a.enabled&&((h="start"===b?h[1]:h[h.length-2])&&"M"===h[0]||"L"===h[0])&&(h={x:h[1],y:h[2]},h=q.getRadiansToVector(h,n),n=q.getMarkerVector(h,a.radius,n),h=-h/m,a.width&&a.height?(g=a.width,r=a.height):g=r=2*a.radius, this.graphics=this.graphics||{},n={x:n.x-g/2,y:n.y-r/2,width:g,height:r,rotation:h,rotationOriginX:n.x,rotationOriginY:n.y},this.graphics[b]?this.graphics[b].animate(n):(this.graphics[b]=e.symbol(a.symbol).addClass("highcharts-point-connecting-path-"+b+"-marker highcharts-color-"+this.fromPoint.colorIndex).attr(n).add(l.group),e.styledMode||this.graphics[b].attr({fill:a.color||this.fromPoint.color,stroke:a.lineColor,"stroke-width":a.lineWidth,opacity:0}).animate({opacity:1},q.series.options.animation)))}getPath(b){let a= this.pathfinder,h=this.chart,e=a.algorithms[b.type],l=a.chartObstacles;if("function"!==typeof e)return p('"'+b.type+'" is not a Pathfinder algorithm.'),{path:[],obstacles:[]};e.requiresObstacles&&!l&&(l=a.chartObstacles=a.getChartObstacles(b),h.options.connectors.algorithmMargin=b.algorithmMargin,a.chartObstacleMetrics=a.getObstacleMetrics(l));return e(this.fromPoint.getPathfinderAnchorPoint(b.startMarker),this.toPoint.getPathfinderAnchorPoint(b.endMarker),v({chartObstacles:l,lineObstacles:a.lineObstacles|| [],obstacleMetrics:a.chartObstacleMetrics,hardBounds:{xMin:0,xMax:h.plotWidth,yMin:0,yMax:h.plotHeight},obstacleOptions:{margin:b.algorithmMargin},startDirectionX:a.getAlgorithmStartDirection(b.startMarker)},b))}render(){var b=this.fromPoint;let a=b.series;var h=a.chart;let e=h.pathfinder,l=v(h.options.connectors,a.options.connectors,b.options.connectors,this.options),m={};h.styledMode||(m.stroke=l.lineColor||b.color,m["stroke-width"]=l.lineWidth,l.dashStyle&&(m.dashstyle=l.dashStyle));m["class"]= "highcharts-point-connecting-path highcharts-color-"+b.colorIndex;l=v(m,l);D(l.marker.radius)||(l.marker.radius=I(r(Math.ceil((l.algorithmMargin||8)/2)-1,1),5));b=this.getPath(l);h=b.path;b.obstacles&&(e.lineObstacles=e.lineObstacles||[],e.lineObstacles=e.lineObstacles.concat(b.obstacles));this.renderPath(h,m,a.options.animation);this.addMarker("start",v(l.marker,l.startMarker),h);this.addMarker("end",v(l.marker,l.endMarker),h)}destroy(){this.graphics&&(b(this.graphics,function(b){b.destroy()}),delete this.graphics)}} A.Connection=l;w(x.prototype,{getPathfinderAnchorPoint:function(b){let a=F(this),h,e;switch(b.align){case "right":h="xMax";break;case "left":h="xMin"}switch(b.verticalAlign){case "top":e="yMin";break;case "bottom":e="yMax"}return{x:h?a[h]:(a.xMin+a.xMax)/2,y:e?a[e]:(a.yMin+a.yMax)/2}},getRadiansToVector:function(b,a){let h;D(a)||(h=F(this))&&(a={x:(h.xMin+h.xMax)/2,y:(h.yMin+h.yMax)/2});return Math.atan2(a.y-b.y,b.x-a.x)},getMarkerVector:function(b,a,h){var e=2*Math.PI,l=F(this),m=l.xMax-l.xMin;let n= l.yMax-l.yMin,g=Math.atan2(n,m),r=!1;m/=2;let q=n/2,k=l.xMin+m;l=l.yMin+q;var d=k,c=l;let f=1,p=1;for(;b<-Math.PI;)b+=e;for(;b>Math.PI;)b-=e;e=Math.tan(b);b>-g&&b<=g?(p=-1,r=!0):b>g&&b<=Math.PI-g?p=-1:b>Math.PI-g||b<=-(Math.PI-g)?(f=-1,r=!0):f=-1;r?(d+=f*m,c+=p*m*e):(d+=n/(2*e)*f,c+=p*q);h.x!==k&&(d=h.x);h.y!==l&&(c=h.y);return{x:d+a*Math.cos(b),y:c-a*Math.sin(b)}}});return l});L(e,"Gantt/PathfinderAlgorithms.js",[e["Core/Utilities.js"]],function(e){function A(b,e,p){p=p||0;let l=b.length-1;e-=1e-7; let m,a;for(;p<=l;)if(m=l+p>>1,a=e-b[m].xMin,0a)l=m-1;else return m;return 0=e.x)l=b[m],l=e.x<=l.xMax&&e.x>=l.xMin&&e.y<=l.yMax&&e.y>=l.yMin;if(l)return m}return-1}function F(b){const e=[];if(b.length){e.push(["M",b[0].start.x,b[0].start.y]);for(let m=0;mv(b[e]-a[e+"Max"]);return l(b,e,a,e+(g?"Max":"Min"),g?1:-1)}let a=[];var h=D(p.startDirectionX,v(e.x-b.x)>v(e.y-b.y))?"x":"y",r=p.chartObstacles;let w=x(r,b);p=x(r,e);let A;if(-1=b[h]===p[h]>=A[h]&&(h= "y"===h?"x":"y",e=b[h]l?p(A(f,g.x),f.length-1):0;f[k]&&(0l&&f[k].xMax>=d.x);){if(f[k].xMin<= g.x&&f[k].xMax>=d.x&&f[k].yMin<=e.y&&f[k].yMax>=h.y)return b?{y:a.y,x:a.x=g[h+"Max"];g=a[h+"Min"]<=g[h+"Min"];let n=a[h+"Max"]>=e[h+"Max"];e=a[h+"Min"]<=e[h+"Min"];let u=v(a[h+"Min"]-c[h]),p=v(a[h+"Max"]-c[h]);b=10>v(u-p)?c[h]v(e.y-b.y)),H=r?"x":"y";let G,n=[],g=!1;var y=I.obstacleMetrics;let z=p(b.x,e.x)-y.maxWidth-10,k=w(b.x,e.x)+y.maxWidth+10,d=p(b.y,e.y)-y.maxHeight-10,c=w(b.y,e.y)+y.maxHeight+10,f=I.chartObstacles;var C=A(f,z);y=A(f,k);f=f.slice(C,y+1);-1<(y=x(f,e))&&(G=h(f[y],e,b),n.push({end:e,start:G}),e= G);for(;-1<(y=x(f,e));)C=0>e[H]-b[H],G={x:e.x,y:e.y},G[H]=f[y][C?H+"Max":H+"Min"]+(C?1:-1),n.push({end:e,start:G}),e=G;b=a(b,e,r);b=b.concat(n.reverse());return{path:F(b),obstacles:b}};b.requiresObstacles=!0;return{fastAvoid:b,straight:function(b,e){return{path:[["M",b.x,b.y],["L",e.x,e.y]],obstacles:[{start:b,end:e}]}},simpleConnect:e}});L(e,"Gantt/Pathfinder.js",[e["Gantt/Connection.js"],e["Core/Chart/Chart.js"],e["Core/Defaults.js"],e["Core/Globals.js"],e["Core/Series/Point.js"],e["Core/Utilities.js"], e["Gantt/PathfinderAlgorithms.js"]],function(e,A,x,H,E,D,p){function w(a){var b=a.shapeArgs;return b?{xMin:b.x||0,xMax:(b.x||0)+(b.width||0),yMin:b.y||0,yMax:(b.y||0)+(b.height||0)}:(b=a.graphic&&a.graphic.getBBox())?{xMin:a.plotX-b.width/2,xMax:a.plotX+b.width/2,yMin:a.plotY-b.height/2,yMax:a.plotY+b.height/2}:null}function v(b){let g=b.length,e=0,h,k,d=[],c=function(b,d,g){g=a(g,10);const f=b.yMax+g>d.yMin-g&&b.yMin-gd.xMin-g&&b.xMin-gd.xMax?b.xMin-d.xMax: d.xMin-b.xMax:Infinity,k=e?b.yMin>d.yMax?b.yMin-d.yMax:d.yMin-b.yMax:Infinity;return e&&f?g?c(b,d,Math.floor(g/2)):Infinity:L(h,k)};for(;ek&&d.push(k);d.push(80);return B(Math.floor(d.sort(function(a,b){return a-b})[Math.floor(d.length/10)]/2-1),1)}function b(a){if(a.options.pathfinder||a.series.reduce(function(a,b){b.options&&q(!0,b.options.connectors=b.options.connectors||{},b.options.pathfinder);return a||b.options&&b.options.pathfinder},!1))q(!0,a.options.connectors= a.options.connectors||{},a.options.pathfinder),F('WARNING: Pathfinder options have been renamed. Use "chart.connectors" or "series.connectors" instead.')}({defaultOptions:x}=x);const {addEvent:m,defined:r,error:F,extend:l,merge:q,pick:a,splat:h}=D;"";const B=Math.max,L=Math.min;l(x,{connectors:{type:"straight",lineWidth:1,marker:{enabled:!1,align:"center",verticalAlign:"middle",inside:!1,lineWidth:1},startMarker:{symbol:"diamond"},endMarker:{symbol:"arrow-filled"}}});class G{constructor(a){this.lineObstacles= this.group=this.connections=this.chartObstacleMetrics=this.chartObstacles=this.chart=void 0;this.init(a)}init(a){this.chart=a;this.connections=[];m(a,"redraw",function(){this.pathfinder.update()})}update(a){const b=this.chart,l=this,m=l.connections;l.connections=[];b.series.forEach(function(a){a.visible&&!a.options.isInternal&&a.points.forEach(function(a){var c=a.options;c&&c.dependency&&(c.connect=c.dependency);let d;c=a.options&&a.options.connect&&h(a.options.connect);a.visible&&!1!==a.isInside&& c&&c.forEach(function(c){d=b.get("string"===typeof c?c:c.to);d instanceof E&&d.series.visible&&d.visible&&!1!==d.isInside&&l.connections.push(new e(a,d,"string"===typeof c?{}:c))})})});for(let a=0,b,c,f=m.length,g=l.connections.length;aMath.PI;)a-=g;g=Math.tan(a);a>-f&&a<=f?(t=-1,l=!0):a>f&&a<=Math.PI-f?t=-1:a>Math.PI-f||a<=-(Math.PI-f)?(r=-1,l=!0):r=-1;l?(q+=r*d, p+=t*d*g):(q+=c/(2*g)*r,p+=t*m);e.x!==n&&(q=e.x);e.y!==h&&(p=e.y);return{x:q+b*Math.cos(a),y:p-b*Math.sin(a)}}});A.prototype.callbacks.push(function(a){!1!==a.options.connectors.enabled&&(b(a),this.pathfinder=new G(this),this.pathfinder.update(!0))});return G});L(e,"Series/Gantt/GanttSeries.js",[e["Core/Axis/Axis.js"],e["Core/Chart/Chart.js"],e["Series/Gantt/GanttPoint.js"],e["Core/Series/SeriesRegistry.js"],e["Core/Axis/Tick.js"],e["Core/Utilities.js"],e["Core/Axis/TreeGrid/TreeGridAxis.js"]],function(e, A,x,H,E,D,p){const {series:w,seriesTypes:{xrange:v}}=H,{extend:b,isNumber:m,merge:r}=D;p.compose(e,A,w,E);class F extends v{constructor(){super(...arguments);this.points=this.options=this.data=void 0}drawPoint(b,e){let a=this.options,h=this.chart.renderer;var l=b.shapeArgs;let q=b.plotY,p=b.graphic,n=b.selected&&"select",g=a.stacking&&!a.borderRadius;if(b.options.milestone)if(m(q)&&null!==b.y&&!1!==b.visible){l=h.symbols.diamond(l.x||0,l.y||0,l.width||0,l.height||0);if(p)p[e]({d:l});else b.graphic= h.path(l).addClass(b.getClassName(),!0).add(b.group||this.group);this.chart.styledMode||b.graphic.attr(this.pointAttribs(b,n)).shadow(a.shadow,null,g)}else p&&(b.graphic=p.destroy());else v.prototype.drawPoint.call(this,b,e)}translatePoint(b){let e,a;v.prototype.translatePoint.call(this,b);b.options.milestone&&(e=b.shapeArgs,a=e.height||0,b.shapeArgs={x:(e.x||0)-a/2,y:e.y,width:a,height:a})}}F.defaultOptions=r(v.defaultOptions,{grouping:!1,dataLabels:{enabled:!0},tooltip:{headerFormat:'{series.name}
', pointFormat:null,pointFormatter:function(){var b=this.series,e=b.xAxis;let a=b.tooltipOptions.dateTimeLabelFormats,h=e.options.startOfWeek,p=b.tooltipOptions,r=p.xDateFormat,v=this.options.milestone,n=""+(this.name||this.yCategory)+"";if(p.pointFormat)return this.tooltipFormatter(p.pointFormat);!r&&m(this.start)&&(r=b.chart.time.getDateFormat(e.closestPointRange,this.start,h,a||{}));e=b.chart.time.dateFormat(r,this.start);b=b.chart.time.dateFormat(r,this.end);n+="
";return v?n+(e+"
"): n+("Start: "+e+"
End: ")+(b+"
")}},connectors:{type:"simpleConnect",animation:{reversed:!0},startMarker:{enabled:!0,symbol:"arrow-filled",radius:4,fill:"#fa0",align:"left"},endMarker:{enabled:!1,align:"right"}}});b(F.prototype,{pointArrayMap:["start","end","y"],pointClass:x,setData:w.prototype.setData});H.registerSeriesType("gantt",F);"";return F});L(e,"Core/Chart/GanttChart.js",[e["Core/Chart/Chart.js"],e["Core/Defaults.js"],e["Core/Utilities.js"]],function(e,A,x){const {getOptions:F}=A, {isArray:E,merge:D,splat:p}=x;class w extends e{init(e,b){const m=F(),r=e.xAxis,v=e.yAxis;let l;e.xAxis=e.yAxis=void 0;const q=D(!0,{chart:{type:"gantt"},title:{text:null},legend:{enabled:!1},navigator:{series:{type:"gantt"},yAxis:{type:"category"}}},e,{isGantt:!0});e.xAxis=r;e.yAxis=v;q.xAxis=(E(e.xAxis)?e.xAxis:[e.xAxis||{},{}]).map(function(a,b){1===b&&(l=0);return D(m.xAxis,{grid:{enabled:!0},opposite:!0,linkedTo:l},a,{type:"datetime"})});q.yAxis=p(e.yAxis||{}).map(function(a){return D(m.yAxis, {grid:{enabled:!0},staticScale:50,reversed:!0,type:a.categories?a.type:"treegrid"},a)});super.init(q,b)}}(function(e){e.ganttChart=function(b,m,p){return new e(b,m,p)}})(w||(w={}));return w});L(e,"Extensions/ArrowSymbols.js",[e["Core/Utilities.js"]],function(e){function A(e,w,v,b){return[["M",e,w+b/2],["L",e+v,w],["L",e,w+b/2],["L",e+v,w+b]]}function x(e,w,v,b){return A(e,w,v/2,b)}function F(e,w,v,b){return[["M",e+v,w],["L",e,w+b/2],["L",e+v,w+b],["Z"]]}function E(e,w,v,b){return F(e,w,v/2,b)}const D= [];return{compose:function(p){e.pushUnique(D,p)&&(p=p.prototype.symbols,p.arrow=A,p["arrow-filled"]=F,p["arrow-filled-half"]=E,p["arrow-half"]=x,p["triangle-left"]=F,p["triangle-left-half"]=E)}}});L(e,"Extensions/CurrentDateIndication.js",[e["Core/Utilities.js"]],function(e){function A(){const b=this.options;var e=b.currentDateIndicator;e&&(e="object"===typeof e?D(v,e):D(v),e.value=Date.now(),e.className="highcharts-current-date-indicator",b.plotLines||(b.plotLines=[]),b.plotLines.push(e))}function x(){this.label&& this.label.attr({text:this.getLabelText(this.options.label)})}function F(b,e){const m=this.options;return m&&m.className&&-1!==m.className.indexOf("highcharts-current-date-indicator")&&m.label&&"function"===typeof m.label.formatter?(m.value=Date.now(),m.label.formatter.call(this,m.value,m.label.format)):b.call(this,e)}const {addEvent:E,merge:D,wrap:p}=e,w=[],v={color:"#ccd3ff",width:2,label:{format:"%a, %b %d %Y, %H:%M",formatter:function(b,e){return this.axis.chart.time.dateFormat(e||"",b)},rotation:0, style:{fontSize:"0.7em"}}};return{compose:function(b,m){e.pushUnique(w,b)&&E(b,"afterSetOptions",A);e.pushUnique(w,m)&&(E(m,"render",x),p(m.prototype,"getLabelText",F))}}});L(e,"masters/modules/gantt.src.js",[e["Core/Globals.js"],e["Stock/Navigator/Navigator.js"],e["Stock/Scrollbar/Scrollbar.js"],e["Stock/RangeSelector/RangeSelector.js"],e["Series/XRange/XRangeSeries.js"],e["Core/Chart/GanttChart.js"],e["Extensions/ArrowSymbols.js"],e["Extensions/CurrentDateIndication.js"]],function(e,A,x,H,E,D,p, w){e.GanttChart=D;e.ganttChart=D.ganttChart;e.Navigator=A;e.RangeSelector=H;e.Scrollbar=x;p.compose(e.SVGRenderer);w.compose(e.Axis,e.PlotLineOrBand);A.compose(e.Axis,e.Chart,e.Series);H.compose(e.Axis,e.Chart);x.compose(e.Axis);E.compose(e.Axis)})}); //# sourceMappingURL=gantt.js.map