UNPKG

highcharts

Version:
9 lines 99.2 kB
!/** * Highcharts JS v12.4.0 (2025-09-04) * @module highcharts/highcharts-more * @requires highcharts * * (c) 2009-2025 Highsoft AS * * License: www.highcharts.com/license */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Series,t._Highcharts.Series.types.column,t._Highcharts.Templating,t._Highcharts.Point,t._Highcharts.Color,t._Highcharts.Chart,t._Highcharts.SVGElement,t._Highcharts.StackItem):"function"==typeof define&&define.amd?define("highcharts/highcharts-more",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry,t.Series,t.Series,["types"],["column"],t.Templating,t.Point,t.Color,t.Chart,t.SVGElement,t.StackItem)}):"object"==typeof exports?exports["highcharts/highcharts-more"]=e(t._Highcharts,t._Highcharts.SeriesRegistry,t._Highcharts.Series,t._Highcharts.Series.types.column,t._Highcharts.Templating,t._Highcharts.Point,t._Highcharts.Color,t._Highcharts.Chart,t._Highcharts.SVGElement,t._Highcharts.StackItem):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry,t.Highcharts.Series,t.Highcharts.Series.types.column,t.Highcharts.Templating,t.Highcharts.Point,t.Highcharts.Color,t.Highcharts.Chart,t.Highcharts.SVGElement,t.Highcharts.StackItem)}("undefined"==typeof window?this:window,(t,e,i,s,a,o,r,n,l,h)=>(()=>{"use strict";var p,d,c,u={28:t=>{t.exports=l},184:t=>{t.exports=h},260:t=>{t.exports=o},448:t=>{t.exports=s},512:t=>{t.exports=e},620:t=>{t.exports=r},820:t=>{t.exports=i},944:e=>{e.exports=t},960:t=>{t.exports=n},984:t=>{t.exports=a}},g={};function f(t){var e=g[t];if(void 0!==e)return e.exports;var i=g[t]={exports:{}};return u[t](i,i.exports,f),i.exports}f.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return f.d(e,{a:e}),e},f.d=(t,e)=>{for(var i in e)f.o(e,i)&&!f.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},f.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var m={};f.d(m,{default:()=>ak});var b=f(944),y=f.n(b),x=f(512),P=f.n(x),M=f(820),v=f.n(M);let{deg2rad:L}=y(),{fireEvent:k,isNumber:w,pick:A,relativeLength:S}=y();!function(t){t.getCenter=function(){let t=this.options,e=this.chart,i=2*(t.slicedOffset||0),s=e.plotWidth-2*i,a=e.plotHeight-2*i,o=t.center,r=Math.min(s,a),n=t.thickness,l,h=t.size,p=t.innerSize||0,d,c;"string"==typeof h&&(h=parseFloat(h)),"string"==typeof p&&(p=parseFloat(p));let u=[A(o?.[0],"50%"),A(o?.[1],"50%"),A(h&&h<0?void 0:t.size,"100%"),A(p&&p<0?void 0:t.innerSize||0,"0%")];for(!e.angular||this instanceof v()||(u[3]=0),d=0;d<4;++d)c=u[d],l=d<2||2===d&&/%$/.test(c),u[d]=S(c,[s,a,r,u[2]][d])+(l?i:0);return u[3]>u[2]&&(u[3]=u[2]),w(n)&&2*n<u[2]&&n>0&&(u[3]=u[2]-2*n),k(this,"afterGetCenter",{positions:u}),u},t.getStartAndEndRadians=function(t,e){let i=w(t)?t:0,s=w(e)&&e>i&&e-i<360?e:i+360;return{start:L*(i+-90),end:L*(s+-90)}}}(p||(p={}));let T=p,{addEvent:C,correctFloat:N,defined:X,pick:Y}=y();function R(t){let e,i=this;return t&&i.pane.forEach(s=>{I(t.chartX-i.plotLeft,t.chartY-i.plotTop,s.center)&&(e=s)}),e}function I(t,e,i,s,a){let o=!0,r=i[0],n=i[1],l=2*Math.PI,h=Math.sqrt(Math.pow(t-r,2)+Math.pow(e-n,2));if(X(s)&&X(a)){let i=Math.atan2(N(e-n,8),N(t-r,8));i=(i+l)%l,s=(s+l)%l,Math.abs((a=(a+l)%l)-s)>1e-6&&(o=s>a?i>=s||i<=a:i>=s&&i<=a)}else o=!0;return h<=Math.ceil(i[2]/2)&&o}function E(t){this.polar&&(t.options.inverted&&([t.x,t.y]=[t.y,t.x]),t.isInsidePlot=this.pane.some(e=>I(t.x,t.y,e.center,e.axis&&e.axis.normalizedStartAngleRad,e.axis&&e.axis.normalizedEndAngleRad)))}function D(t){let e=this.chart;t.hoverPoint&&t.hoverPoint.plotX&&t.hoverPoint.plotY&&e.hoverPane&&!I(t.hoverPoint.plotX,t.hoverPoint.plotY,e.hoverPane.center)&&(t.hoverPoint=void 0)}function z(t){let e=this.chart;e.polar?(e.hoverPane=e.getHoverPane(t),t.filter=function(i){return i.visible&&!(!t.shared&&i.directTouch)&&Y(i.options.enableMouseTracking,!0)&&(!e.hoverPane||i.xAxis.pane===e.hoverPane)}):e.hoverPane=void 0}let{defaultOptions:O}=y(),H={shape:"circle",borderRadius:0,borderWidth:1,borderColor:"#cccccc",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#ffffff"],[1,"#e6e6e6"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"},B={background:H,center:["50%","50%"],size:"85%",innerSize:"0%",startAngle:0};O.pane=B;let W={pane:B,background:H},{extend:F,merge:G,splat:q}=y();class V{constructor(t,e){this.coll="pane",this.init(t,e)}init(t,e){this.chart=e,this.background=[],e.pane.push(this),this.setOptions(t)}setOptions(t){this.options=t=G(W.pane,{background:this.chart.angular?{}:void 0},t)}render(){let t=this.options,e=this.chart.renderer;this.group||(this.group=e.g("pane-group").attr({zIndex:t.zIndex||0}).add()),this.updateCenter();let i=this.options.background;if(i){let t=Math.max((i=q(i)).length,this.background.length||0);for(let e=0;e<t;e++)i[e]&&this.axis?this.renderBackground(G(W.background,i[e]),e):this.background[e]&&(this.background[e]=this.background[e].destroy(),this.background.splice(e,1))}}renderBackground(t,e){let i={class:"highcharts-pane "+(t.className||"")},s="animate";this.chart.styledMode||F(i,{fill:t.backgroundColor,stroke:t.borderColor,"stroke-width":t.borderWidth}),this.background[e]||(this.background[e]=this.chart.renderer.path().add(this.group),s="attr"),this.background[e][s]({d:this.axis.getPlotBandPath(t.from,t.to,t)}).attr(i)}updateCenter(t){this.center=(t||this.axis||{}).center=T.getCenter.call(this)}update(t,e){G(!0,this.options,t),this.setOptions(this.options),this.render(),this.chart.axes.forEach(function(t){t.pane===this&&(t.pane=null,t.update({},e))},this)}}V.compose=function(t,e){let i=t.prototype;i.getHoverPane||(i.collectionsWithUpdate.push("pane"),i.getHoverPane=R,C(t,"afterIsInsidePlot",E),C(e,"afterGetHoverData",D),C(e,"beforeGetHoverData",z))};let{area:{prototype:{pointClass:_,pointClass:{prototype:U}}}}=P().seriesTypes,{defined:K,isNumber:j}=y(),Z=class extends _{setState(){let t=this.state,e=this.series,i=e.chart.polar;K(this.plotHigh)||(this.plotHigh=e.yAxis.toPixels(this.high,!0)),K(this.plotLow)||(this.plotLow=this.plotY=e.yAxis.toPixels(this.low,!0)),e.lowerStateMarkerGraphic=e.stateMarkerGraphic,e.stateMarkerGraphic=e.upperStateMarkerGraphic,this.graphic=this.graphics&&this.graphics[1],this.plotY=this.plotHigh,i&&j(this.plotHighX)&&(this.plotX=this.plotHighX),U.setState.apply(this,arguments),this.state=t,this.plotY=this.plotLow,this.graphic=this.graphics&&this.graphics[0],i&&j(this.plotLowX)&&(this.plotX=this.plotLowX),e.upperStateMarkerGraphic=e.stateMarkerGraphic,e.stateMarkerGraphic=e.lowerStateMarkerGraphic,e.lowerStateMarkerGraphic=void 0;let s=e.modifyMarkerSettings();U.setState.apply(this,arguments),e.restoreMarkerSettings(s)}haloPath(){let t=this.series.chart.polar,e=[];return this.plotY=this.plotLow,t&&j(this.plotLowX)&&(this.plotX=this.plotLowX),this.isInside&&(e=U.haloPath.apply(this,arguments)),this.plotY=this.plotHigh,t&&j(this.plotHighX)&&(this.plotX=this.plotHighX),this.isTopInside&&(e=e.concat(U.haloPath.apply(this,arguments))),e}isValid(){return j(this.low)&&j(this.high)}},{noop:$}=y(),{area:Q,area:{prototype:J},column:{prototype:tt}}=P().seriesTypes,{addEvent:te,defined:ti,extend:ts,isArray:ta,isNumber:to,pick:tr,merge:tn}=y();class tl extends Q{toYData(t){return[t.low,t.high]}highToXY(t){let e=this.chart,i=this.xAxis.postTranslate(t.rectPlotX||0,this.yAxis.len-(t.plotHigh||0));t.plotHighX=i.x-e.plotLeft,t.plotHigh=i.y-e.plotTop,t.plotLowX=t.plotX}getGraphPath(t){let e=[],i=[],s=J.getGraphPath,a=this.options,o=this.chart.polar,r=o&&!1!==a.connectEnds,n=a.connectNulls,l,h,p,d=a.step;for(l=(t=t||this.points).length;l--;){h=t[l];let s=o?{plotX:h.rectPlotX,plotY:h.yBottom,doCurve:!1}:{plotX:h.plotX,plotY:h.plotY,doCurve:!1};h.isNull||r||n||t[l+1]&&!t[l+1].isNull||i.push(s),p={polarPlotY:h.polarPlotY,rectPlotX:h.rectPlotX,yBottom:h.yBottom,plotX:tr(h.plotHighX,h.plotX),plotY:h.plotHigh,isNull:h.isNull},i.push(p),e.push(p),h.isNull||r||n||t[l-1]&&!t[l-1].isNull||i.push(s)}let c=s.call(this,t);d&&(!0===d&&(d="left"),a.step=({left:"right",center:"center",right:"left"})[d]);let u=s.call(this,e),g=s.call(this,i);a.step=d;let f=[].concat(c,u);return!this.chart.polar&&g[0]&&"M"===g[0][0]&&(g[0]=["L",g[0][1],g[0][2]]),this.graphPath=f,this.areaPath=c.concat(g),f.isArea=!0,f.xMap=c.xMap,this.areaPath.xMap=c.xMap,f}drawDataLabels(){let t,e,i,s,a,o=this.points,r=o.length,n=[],l=this.options.dataLabels,h=this.chart.inverted;if(l){if(ta(l)?(s=l[0]||{enabled:!1},a=l[1]||{enabled:!1}):((s=ts({},l)).x=l.xHigh,s.y=l.yHigh,(a=ts({},l)).x=l.xLow,a.y=l.yLow),s.enabled||this.hasDataLabels?.()){for(t=r;t--;)if(e=o[t]){let{plotHigh:a=0,plotLow:o=0}=e;i=s.inside?a<o:a>o,e.y=e.high,e._plotY=e.plotY,e.plotY=a,n[t]=e.dataLabel,e.dataLabel=e.dataLabelUpper,e.below=i,h?s.align||(s.align=i?"right":"left"):s.verticalAlign||(s.verticalAlign=i?"top":"bottom")}for(this.options.dataLabels=s,J.drawDataLabels&&J.drawDataLabels.apply(this,arguments),t=r;t--;)(e=o[t])&&(e.dataLabelUpper=e.dataLabel,e.dataLabel=n[t],delete e.dataLabels,e.y=e.low,e.plotY=e._plotY)}if(a.enabled||this.hasDataLabels?.()){for(t=r;t--;)if(e=o[t]){let{plotHigh:t=0,plotLow:s=0}=e;i=a.inside?t<s:t>s,e.below=!i,h?a.align||(a.align=i?"left":"right"):a.verticalAlign||(a.verticalAlign=i?"bottom":"top")}this.options.dataLabels=a,J.drawDataLabels&&J.drawDataLabels.apply(this,arguments)}if(s.enabled)for(t=r;t--;)(e=o[t])&&(e.dataLabels=[e.dataLabelUpper,e.dataLabel].filter(function(t){return!!t}));this.options.dataLabels=l}}alignDataLabel(){tt.alignDataLabel.apply(this,arguments)}modifyMarkerSettings(){let t={marker:this.options.marker,symbol:this.symbol};if(this.options.lowMarker){let{options:{marker:t,lowMarker:e}}=this;this.options.marker=tn(t,e),e.symbol&&(this.symbol=e.symbol)}return t}restoreMarkerSettings(t){this.options.marker=t.marker,this.symbol=t.symbol}drawPoints(){let t,e,i=this.points.length,s=this.modifyMarkerSettings();for(J.drawPoints.apply(this,arguments),this.restoreMarkerSettings(s),t=0;t<i;)(e=this.points[t]).graphics=e.graphics||[],e.origProps={plotY:e.plotY,plotX:e.plotX,isInside:e.isInside,negative:e.negative,zone:e.zone,y:e.y},(e.graphic||e.graphics[0])&&(e.graphics[0]=e.graphic),e.graphic=e.graphics[1],e.plotY=e.plotHigh,ti(e.plotHighX)&&(e.plotX=e.plotHighX),e.y=tr(e.high,e.origProps.y),e.negative=e.y<(this.options.threshold||0),this.zones.length&&(e.zone=e.getZone()),this.chart.polar||(e.isInside=e.isTopInside=void 0!==e.plotY&&e.plotY>=0&&e.plotY<=this.yAxis.len&&e.plotX>=0&&e.plotX<=this.xAxis.len),t++;for(J.drawPoints.apply(this,arguments),t=0;t<i;)(e=this.points[t]).graphics=e.graphics||[],(e.graphic||e.graphics[1])&&(e.graphics[1]=e.graphic),e.graphic=e.graphics[0],e.origProps&&(ts(e,e.origProps),delete e.origProps),t++}hasMarkerChanged(t,e){let i=t.lowMarker,s=e.lowMarker||{};return i&&(!1===i.enabled||s.symbol!==i.symbol||s.height!==i.height||s.width!==i.width)||super.hasMarkerChanged(t,e)}}tl.defaultOptions=tn(Q.defaultOptions,{lineWidth:1,threshold:null,tooltip:{pointFormat:'<span style="color:{series.color}">●</span> {series.name}: <b>{point.low}</b> - <b>{point.high}</b><br/>'},trackByArea:!0,dataLabels:{align:void 0,verticalAlign:void 0,xLow:0,xHigh:0,yLow:0,yHigh:0}}),te(tl,"afterTranslate",function(){"low,high"===this.pointArrayMap.join(",")&&this.points.forEach(t=>{let e=t.high,i=t.plotY;t.isNull?t.plotY=void 0:(t.plotLow=i,t.plotHigh=to(e)?this.yAxis.translate(this.dataModify?this.dataModify.modifyValue(e):e,!1,!0,void 0,!0):void 0,this.dataModify&&(t.yBottom=t.plotHigh))})},{order:0}),te(tl,"afterTranslate",function(){this.points.forEach(t=>{if(this.chart.polar)this.highToXY(t),t.plotLow=t.plotY,t.tooltipPos=[((t.plotHighX||0)+(t.plotLowX||0))/2,((t.plotHigh||0)+(t.plotLow||0))/2];else{let e=t.pos(!1,t.plotLow),i=t.pos(!1,t.plotHigh);e&&i&&(e[0]=(e[0]+i[0])/2,e[1]=(e[1]+i[1])/2),t.tooltipPos=e}})},{order:3}),ts(tl.prototype,{deferTranslatePolar:!0,pointArrayMap:["low","high"],pointClass:Z,pointValKey:"low",setStackedPoints:$}),P().registerSeriesType("arearange",tl);let th=tl,{spline:{prototype:tp}}=P().seriesTypes,{merge:td,extend:tc}=y();class tu extends th{}tu.defaultOptions=td(th.defaultOptions),tc(tu.prototype,{getPointSpline:tp.getPointSpline}),P().registerSeriesType("areasplinerange",tu);var tg=f(448),tf=f.n(tg);let{noop:tm}=y(),{crisp:tb,extend:ty,merge:tx,pick:tP,relativeLength:tM}=y();class tv extends tf(){pointAttribs(){return{}}getWhiskerPair(t,e,i,s,a){let o=a.whiskers.strokeWidth(),r=(i,s)=>{let a=tM(i,2*t)/2,r=tb(s,o);return[["M",tb(e-a),r],["L",tb(e+a),r]]};return[...r(i,a.highPlot),...r(s,a.lowPlot)]}translate(){let t=this.yAxis,e=this.pointArrayMap;super.translate.apply(this),this.points.forEach(function(i){e.forEach(function(e){null!==i[e]&&(i[e+"Plot"]=t.translate(i[e],0,1,0,1))}),i.plotHigh=i.highPlot})}drawPoints(){let t,e,i,s,a,o,r,n,l,h,p,d=this.points,c=this.options,u=this.chart,g=u.renderer,f=!1!==this.doQuartiles,m=this.options.whiskerLength;for(let b of d){let d=(n=b.graphic)?"animate":"attr",y=b.shapeArgs,x={},P={},M={},v={},L=b.color||this.color,k=b.options.whiskerLength||m;if(void 0!==b.plotY){let w;l=y.width,p=(h=y.x)+l,t=f?b.q1Plot:b.lowPlot,e=f?b.q3Plot:b.lowPlot,i=b.highPlot,s=b.lowPlot,n||(b.graphic=n=g.g("point").add(this.group),b.stem=g.path().addClass("highcharts-boxplot-stem").add(n),m&&(b.whiskers=g.path().addClass("highcharts-boxplot-whisker").add(n)),f&&(b.box=g.path(r).addClass("highcharts-boxplot-box").add(n)),b.medianShape=g.path(o).addClass("highcharts-boxplot-median").add(n)),u.styledMode||(P.stroke=b.stemColor||c.stemColor||L,P["stroke-width"]=tP(b.stemWidth,c.stemWidth,c.lineWidth),P.dashstyle=b.stemDashStyle||c.stemDashStyle||c.dashStyle,b.stem.attr(P),k&&(M.stroke=b.whiskerColor||c.whiskerColor||L,M["stroke-width"]=tP(b.whiskerWidth,c.whiskerWidth,c.lineWidth),M.dashstyle=b.whiskerDashStyle||c.whiskerDashStyle||c.dashStyle,b.whiskers.attr(M)),f&&(x.fill=b.fillColor||c.fillColor||L,x.stroke=c.lineColor||L,x["stroke-width"]=c.lineWidth||0,x.dashstyle=b.boxDashStyle||c.boxDashStyle||c.dashStyle,b.box.attr(x)),v.stroke=b.medianColor||c.medianColor||L,v["stroke-width"]=tP(b.medianWidth,c.medianWidth,c.lineWidth),v.dashstyle=b.medianDashStyle||c.medianDashStyle||c.dashStyle,b.medianShape.attr(v));let A=tb((b.plotX||0)+(this.pointXOffset||0)+(this.barW||0)/2,b.stem.strokeWidth());if(w=[["M",A,e],["L",A,i],["M",A,t],["L",A,s]],b.stem[d]({d:w}),f){let i=b.box.strokeWidth();t=tb(t,i),e=tb(e,i),w=[["M",h=tb(h,i),e],["L",h,t],["L",p=tb(p,i),t],["L",p,e],["L",h,e],["Z"]],b.box[d]({d:w})}if(k){let t=l/2,e=this.getWhiskerPair(t,A,b.upperWhiskerLength??c.upperWhiskerLength??k,b.lowerWhiskerLength??c.lowerWhiskerLength??k,b);b.whiskers[d]({d:e})}w=[["M",h,a=tb(b.medianPlot,b.medianShape.strokeWidth())],["L",p,a]],b.medianShape[d]({d:w})}}}toYData(t){return[t.low,t.q1,t.median,t.q3,t.high]}}tv.defaultOptions=tx(tf().defaultOptions,{threshold:null,tooltip:{pointFormat:'<span style="color:{point.color}">●</span> <b>{series.name}</b><br/>Maximum: {point.high}<br/>Upper quartile: {point.q3}<br/>Median: {point.median}<br/>Lower quartile: {point.q1}<br/>Minimum: {point.low}<br/>'},whiskerLength:"50%",fillColor:"#ffffff",lineWidth:1,medianWidth:2,whiskerWidth:2}),ty(tv.prototype,{pointArrayMap:["low","q1","median","q3","high"],pointValKey:"high",drawDataLabels:tm,setStackedPoints:tm}),P().registerSeriesType("boxplot",tv);let tL=tv,tk={borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:"0.9em",color:"#000000"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0};var tw=f(984),tA=f.n(tw);let{noop:tS}=y(),{arrayMax:tT,arrayMin:tC,isNumber:tN,merge:tX,pick:tY,stableSort:tR}=y(),tI=class{constructor(t,e){this.setState=tS,this.init(t,e)}init(t,e){this.options=t,this.visible=!0,this.chart=e.chart,this.legend=e}addToLegend(t){t.splice(this.options.legendIndex,0,this)}drawLegendSymbol(t){let e,i=tY(t.options.itemDistance,20),s=this.legendItem||{},a=this.options,o=a.ranges,r=a.connectorDistance;if(!o||!o.length||!tN(o[0].value)){t.options.bubbleLegend.autoRanges=!0;return}tR(o,function(t,e){return e.value-t.value}),this.ranges=o,this.setOptions(),this.render();let n=this.getMaxLabelSize(),l=this.ranges[0].radius,h=2*l;e=(e=r-l+n.width)>0?e:0,this.maxLabel=n,this.movementX="left"===a.labels.align?e:0,s.labelWidth=h+e+i,s.labelHeight=h+n.height/2}setOptions(){let t=this.ranges,e=this.options,i=this.chart.series[e.seriesIndex],s=this.legend.baseline,a={zIndex:e.zIndex,"stroke-width":e.borderWidth},o={zIndex:e.zIndex,"stroke-width":e.connectorWidth},r={align:this.legend.options.rtl||"left"===e.labels.align?"right":"left",zIndex:e.zIndex},n=i.options.marker.fillOpacity,l=this.chart.styledMode;t.forEach(function(h,p){l||(a.stroke=tY(h.borderColor,e.borderColor,i.color),a.fill=h.color||e.color,a.fill||(a.fill=i.color,a["fill-opacity"]=n??1),o.stroke=tY(h.connectorColor,e.connectorColor,i.color)),t[p].radius=this.getRangeRadius(h.value),t[p]=tX(t[p],{center:t[0].radius-t[p].radius+s}),l||tX(!0,t[p],{bubbleAttribs:tX(a),connectorAttribs:tX(o),labelAttribs:r})},this)}getRangeRadius(t){let e=this.options,i=this.options.seriesIndex,s=this.chart.series[i],a=e.ranges[0].value,o=e.ranges[e.ranges.length-1].value,r=e.minSize,n=e.maxSize;return s.getRadius.call(this,o,a,r,n,t)}render(){let t=this.legendItem||{},e=this.chart.renderer,i=this.options.zThreshold;for(let s of(this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),t.symbol=e.g("bubble-legend"),t.label=e.g("bubble-legend-item").css(this.legend.itemStyle||{}),t.symbol.translateX=0,t.symbol.translateY=0,t.symbol.add(t.label),t.label.add(t.group),this.ranges))s.value>=i&&this.renderRange(s);this.hideOverlappingLabels()}renderRange(t){let e=this.ranges[0],i=this.legend,s=this.options,a=s.labels,o=this.chart,r=o.series[s.seriesIndex],n=o.renderer,l=this.symbols,h=l.labels,p=t.center,d=Math.abs(t.radius),c=s.connectorDistance||0,u=a.align,g=i.options.rtl,f=s.borderWidth,m=s.connectorWidth,b=e.radius||0,y=p-d-f/2+m/2,x=(y%1?1:.5)-(m%2?0:.5),P=n.styledMode,M=g||"left"===u?-c:c;"center"===u&&(M=0,s.connectorDistance=0,t.labelAttribs.align="center"),l.bubbleItems.push(n.circle(b,p+x,d).attr(P?{}:t.bubbleAttribs).addClass((P?"highcharts-color-"+r.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(s.className||"")).add(this.legendItem.symbol)),l.connectors.push(n.path(n.crispLine([["M",b,y],["L",b+M,y]],s.connectorWidth)).attr(P?{}:t.connectorAttribs).addClass((P?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(s.connectorClassName||"")).add(this.legendItem.symbol));let v=n.text(this.formatLabel(t)).attr(P?{}:t.labelAttribs).css(P?{}:a.style).addClass("highcharts-bubble-legend-labels "+(s.labels.className||"")).add(this.legendItem.symbol),L={x:b+M+s.labels.x,y:y+s.labels.y+.4*v.getBBox().height};v.attr(L),h.push(v),v.placed=!0,v.alignAttr=L}getMaxLabelSize(){let t,e;return this.symbols.labels.forEach(function(i){e=i.getBBox(!0),t=t?e.width>t.width?e:t:e}),t||{}}formatLabel(t){let e=this.options,i=e.labels.formatter,s=e.labels.format,{numberFormatter:a}=this.chart;return s?tA().format(s,t,this.chart):i?i.call(t):a(t.value,1)}hideOverlappingLabels(){let t=this.chart,e=this.options.labels.allowOverlap,i=this.symbols;!e&&i&&(t.hideOverlappingLabels(i.labels),i.labels.forEach(function(t,e){t.newOpacity?t.newOpacity!==t.oldOpacity&&i.connectors[e].show():i.connectors[e].hide()}))}getRanges(){let t=this.legend.bubbleLegend,e=t.chart.series,i=t.options.ranges,s,a,o=Number.MAX_VALUE,r=-Number.MAX_VALUE;return e.forEach(function(t){t.isBubble&&!t.ignoreSeries&&(a=t.getColumn("z").filter(tN)).length&&(o=tY(t.options.zMin,Math.min(o,Math.max(tC(a),!1===t.options.displayNegative?t.options.zThreshold:-Number.MAX_VALUE))),r=tY(t.options.zMax,Math.max(r,tT(a))))}),s=o===r?[{value:r}]:[{value:o},{value:(o+r)/2},{value:r,autoRanges:!0}],i.length&&i[0].radius&&s.reverse(),s.forEach(function(t,e){i&&i[e]&&(s[e]=tX(i[e],t))}),s}predictBubbleSizes(){let t=this.chart,e=t.legend.options,i=e.floating,s="horizontal"===e.layout,a=s?t.legend.lastLineHeight:0,o=t.plotSizeX,r=t.plotSizeY,n=t.series[this.options.seriesIndex],l=n.getPxExtremes(),h=Math.ceil(l.minPxSize),p=Math.ceil(l.maxPxSize),d=Math.min(r,o),c,u=n.options.maxSize;return i||!/%$/.test(u)?c=p:(c=(d+a)*(u=parseFloat(u))/100/(u/100+1),(s&&r-c>=o||!s&&o-c>=r)&&(c=p)),[h,Math.ceil(c)]}updateRanges(t,e){let i=this.legend.options.bubbleLegend;i.minSize=t,i.maxSize=e,i.ranges=this.getRanges()}correctSizes(){let t=this.legend,e=this.chart.series[this.options.seriesIndex].getPxExtremes();Math.abs(Math.ceil(e.maxPxSize)-this.options.maxSize)>1&&(this.updateRanges(this.options.minSize,e.maxPxSize),t.render())}},{setOptions:tE}=y(),{composed:tD}=y(),{addEvent:tz,objectEach:tO,pushUnique:tH,wrap:tB}=y();function tW(t,e,i){let s,a,o,r=this.legend,n=tF(this)>=0;r&&r.options.enabled&&r.bubbleLegend&&r.options.bubbleLegend.autoRanges&&n?(s=r.bubbleLegend.options,a=r.bubbleLegend.predictBubbleSizes(),r.bubbleLegend.updateRanges(a[0],a[1]),s.placed||(r.group.placed=!1,r.allItems.forEach(t=>{(o=t.legendItem||{}).group&&(o.group.translateY=void 0)})),r.render(),s.placed||(this.getMargins(),this.axes.forEach(t=>{t.setScale(),t.updateNames(),tO(t.ticks,function(t){t.isNew=!0,t.isNewLabel=!0})}),this.getMargins()),s.placed=!0,t.call(this,e,i),r.bubbleLegend.correctSizes(),t_(r,tG(r))):(t.call(this,e,i),r&&r.options.enabled&&r.bubbleLegend&&(r.render(),t_(r,tG(r))))}function tF(t){let e=t.series,i=0;for(;i<e.length;){if(e[i]&&e[i].isBubble&&e[i].visible&&e[i].dataTable.rowCount)return i;i++}return -1}function tG(t){let e=t.allItems,i=[],s=e.length,a,o,r,n=0,l=0;for(n=0;n<s;n++)if(o=e[n].legendItem||{},r=(e[n+1]||{}).legendItem||{},o.labelHeight&&(e[n].itemHeight=o.labelHeight),e[n]===e[s-1]||o.y!==r.y){for(i.push({height:0}),a=i[i.length-1];l<=n;l++)e[l].itemHeight>a.height&&(a.height=e[l].itemHeight);a.step=n}return i}function tq(t){let e=this.bubbleLegend,i=this.options,s=i.bubbleLegend,a=tF(this.chart);e&&e.ranges&&e.ranges.length&&(s.ranges.length&&(s.autoRanges=!!s.ranges[0].autoRanges),this.destroyItem(e)),a>=0&&i.enabled&&s.enabled&&(s.seriesIndex=a,this.bubbleLegend=new tI(s,this),this.bubbleLegend.addToLegend(t.allItems))}function tV(t){let e;if(t.defaultPrevented)return!1;let i=t.legendItem,s=this.chart,a=i.visible;this&&this.bubbleLegend&&(i.visible=!a,i.ignoreSeries=a,e=tF(s)>=0,this.bubbleLegend.visible!==e&&(this.update({bubbleLegend:{enabled:e}}),this.bubbleLegend.visible=e),i.visible=a)}function t_(t,e){let i=t.allItems,s=t.options.rtl,a,o,r,n,l=0;i.forEach((t,i)=>{(n=t.legendItem||{}).group&&(a=n.group.translateX||0,o=n.y||0,((r=t.movementX)||s&&t.ranges)&&(r=s?a-t.options.maxSize/2:a+r,n.group.attr({translateX:r})),i>e[l].step&&l++,n.group.attr({translateY:Math.round(o+e[l].height/2)}),n.y=o+e[l].height/2)})}let tU={compose:function(t,e){tH(tD,"Series.BubbleLegend")&&(tE({legend:{bubbleLegend:tk}}),tB(t.prototype,"drawChartBox",tW),tz(e,"afterGetAllItems",tq),tz(e,"itemClick",tV))}};var tK=f(260),tj=f.n(tK);let{seriesTypes:{scatter:{prototype:{pointClass:tZ}}}}=P(),{extend:t$}=y();class tQ extends tZ{haloPath(t){let e=(t&&this.marker&&this.marker.radius||0)+t;if(this.series.chart.inverted){let t=this.pos()||[0,0],{xAxis:i,yAxis:s,chart:a}=this.series,o=2*e;return a.renderer.symbols.circle((i?.len||0)-t[1]-e,(s?.len||0)-t[0]-e,o,o)}return tj().prototype.haloPath.call(this,e)}}t$(tQ.prototype,{ttBelow:!1});let{composed:tJ,noop:t0}=y(),{series:t1,seriesTypes:{column:{prototype:t2},scatter:t3}}=P(),{addEvent:t5,arrayMax:t8,arrayMin:t6,clamp:t9,extend:t4,isNumber:t7,merge:et,pick:ee,pushUnique:ei}=y();function es(){let t=this.len,{coll:e,isXAxis:i,min:s}=this,a=(this.max||0)-(s||0),o=0,r=t,n=t/a,l;("xAxis"===e||"yAxis"===e)&&(this.series.forEach(t=>{if(t.bubblePadding&&t.reserveSpace()){this.allowZoomOutside=!0,l=!0;let e=t.getColumn(i?"x":"y");if(i&&((t.onPoint||t).getRadii(0,0,t),t.onPoint&&(t.radii=t.onPoint.radii)),a>0){let i=e.length;for(;i--;)if(t7(e[i])&&this.dataMin<=e[i]&&e[i]<=this.max){let a=t.radii&&t.radii[i]||0;o=Math.min((e[i]-s)*n-a,o),r=Math.max((e[i]-s)*n+a,r)}}}}),l&&a>0&&!this.logarithmic&&(r-=t,n*=(t+Math.max(0,o)-Math.min(r,t))/t,[["min","userMin",o],["max","userMax",r]].forEach(t=>{void 0===ee(this.options[t[0]],this[t[1]])&&(this[t[0]]+=t[2]/n)})))}function ea(){let{ticks:t,tickPositions:e,dataMin:i=0,dataMax:s=0,categories:a}=this,o=this.options.type;if((a?.length||"category"===o)&&this.series.find(t=>t.bubblePadding)){let a=e.length;for(;a--;){let o=t[e[a]],r=o.pos||0;(r>s||r<i)&&o.label?.hide()}}}class eo extends t3{static compose(t,e,i){tU.compose(e,i),ei(tJ,"Series.Bubble")&&(t5(t,"foundExtremes",es),t5(t,"afterRender",ea))}animate(t){!t&&this.points.length<this.options.animationLimit&&this.points.forEach(function(t){let{graphic:e,plotX:i=0,plotY:s=0}=t;e&&e.width&&(this.hasRendered||e.attr({x:i,y:s,width:1,height:1}),e.animate(this.markerAttribs(t),this.options.animation))},this)}getRadii(){let t=this.getColumn("z"),e=this.getColumn("y"),i=[],s,a,o,r=this.chart.bubbleZExtremes,{minPxSize:n,maxPxSize:l}=this.getPxExtremes();if(!r){let t,e=Number.MAX_VALUE,i=-Number.MAX_VALUE;this.chart.series.forEach(s=>{if(s.bubblePadding&&s.reserveSpace()){let a=(s.onPoint||s).getZExtremes();a&&(e=Math.min(ee(e,a.zMin),a.zMin),i=Math.max(ee(i,a.zMax),a.zMax),t=!0)}}),t?(r={zMin:e,zMax:i},this.chart.bubbleZExtremes=r):r={zMin:0,zMax:0}}for(a=0,s=t.length;a<s;a++)o=t[a],i.push(this.getRadius(r.zMin,r.zMax,n,l,o,e&&e[a]));this.radii=i}getRadius(t,e,i,s,a,o){let r=this.options,n="width"!==r.sizeBy,l=r.zThreshold,h=e-t,p=.5;if(null===o||null===a)return null;if(t7(a)){if(r.sizeByAbsoluteValue&&(a=Math.abs(a-l),e=h=Math.max(e-l,Math.abs(t-l)),t=0),a<t)return i/2-1;h>0&&(p=(a-t)/h)}return n&&p>=0&&(p=Math.sqrt(p)),Math.ceil(i+p*(s-i))/2}hasData(){return!!this.dataTable.rowCount}markerAttribs(t,e){let i=super.markerAttribs(t,e),{height:s=0,width:a=0}=i;return this.chart.inverted?t4(i,{x:(t.plotX||0)-a/2,y:(t.plotY||0)-s/2}):i}pointAttribs(t,e){let i=this.options.marker,s=i?.fillOpacity,a=t1.prototype.pointAttribs.call(this,t,e);return a["fill-opacity"]=s??1,a}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){let{data:t,options:e,radii:i}=this,{minPxSize:s}=this.getPxExtremes(),a=t.length;for(;a--;){let o=t[a],r=i?i[a]:0;"z"===this.zoneAxis&&(o.negative=(o.z||0)<(e.zThreshold||0)),t7(r)&&r>=s/2?(o.marker=t4(o.marker,{radius:r,width:2*r,height:2*r}),o.dlBox={x:o.plotX-r,y:o.plotY-r,width:2*r,height:2*r}):(o.shapeArgs=o.plotY=o.dlBox=void 0,o.isInside=!1)}}getPxExtremes(){let t=Math.min(this.chart.plotWidth,this.chart.plotHeight),e=e=>{let i;return"string"==typeof e&&(i=/%$/.test(e),e=parseInt(e,10)),i?t*e/100:e},i=e(ee(this.options.minSize,8)),s=Math.max(e(ee(this.options.maxSize,"20%")),i);return{minPxSize:i,maxPxSize:s}}getZExtremes(){let t=this.options,e=this.getColumn("z").filter(t7);if(e.length){let i=ee(t.zMin,t9(t6(e),!1===t.displayNegative?t.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),s=ee(t.zMax,t8(e));if(t7(i)&&t7(s))return{zMin:i,zMax:s}}}searchKDTree(t,e,i,s=t0,a=t0){return s=(t,e,i)=>{let s=t[i]||0,a=e[i]||0,o,r=!1;return s===a?o=t.index>e.index?t:e:s<0&&a<0?(o=s-(t.marker?.radius||0)>=a-(e.marker?.radius||0)?t:e,r=!0):o=s<a?t:e,[o,r]},a=(t,e,i)=>!i&&t>e||t<e,super.searchKDTree(t,e,i,s,a)}}eo.defaultOptions=et(t3.defaultOptions,{dataLabels:{formatter:function(){let{numberFormatter:t}=this.series.chart,{z:e}=this.point;return t7(e)?t(e,-1):""},inside:!0,verticalAlign:"middle"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"}),t4(eo.prototype,{alignDataLabel:t2.alignDataLabel,applyZones:t0,bubblePadding:!0,isBubble:!0,keysAffectYAxis:["y"],pointArrayMap:["y","z"],pointClass:tQ,parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",zoneAxis:"z"}),t5(eo,"updatedData",t=>{delete t.target.chart.bubbleZExtremes}),t5(eo,"remove",t=>{delete t.target.chart.bubbleZExtremes}),P().registerSeriesType("bubble",eo);let{seriesTypes:{column:{prototype:{pointClass:{prototype:er}}},arearange:{prototype:{pointClass:en}}}}=P(),{extend:el,isNumber:eh}=y();class ep extends en{isValid(){return eh(this.low)}}el(ep.prototype,{setState:er.setState});let{noop:ed}=y(),{seriesTypes:{arearange:ec,column:eu,column:{prototype:eg}}}=P(),{addEvent:ef,clamp:em,extend:eb,isNumber:ey,merge:ex,pick:eP}=y();class eM extends ec{setOptions(){return ex(!0,arguments[0],{stacking:void 0}),ec.prototype.setOptions.apply(this,arguments)}translate(){return eg.translate.apply(this)}pointAttribs(){return eg.pointAttribs.apply(this,arguments)}translate3dPoints(){return eg.translate3dPoints.apply(this,arguments)}translate3dShapes(){return eg.translate3dShapes.apply(this,arguments)}afterColumnTranslate(){let t,e,i,s,a=this.yAxis,o=this.xAxis,r=o.startAngleRad,n=this.chart,l=this.xAxis.isRadial,h=Math.max(n.chartWidth,n.chartHeight)+999;this.points.forEach(p=>{let d=p.shapeArgs||{},c=this.options.minPointLength,u=p.plotY,g=a.translate(p.high,0,1,0,1);if(ey(g)&&ey(u))if(p.plotHigh=em(g,-h,h),p.plotLow=em(u,-h,h),s=p.plotHigh,Math.abs(t=eP(p.rectPlotY,p.plotY)-p.plotHigh)<c?(e=c-t,t+=e,s-=e/2):t<0&&(t*=-1,s-=t),l&&this.polar)i=p.barX+r,p.shapeType="arc",p.shapeArgs=this.polar.arc(s+t,s,i,i+p.pointWidth);else{d.height=t,d.y=s;let{x:e=0,width:i=0}=d;p.shapeArgs=ex(p.shapeArgs,this.crispCol(e,s,i,t)),p.tooltipPos=n.inverted?[a.len+a.pos-n.plotLeft-s-t/2,o.len+o.pos-n.plotTop-e-i/2,t]:[o.left-n.plotLeft+e+i/2,a.pos-n.plotTop+s+t/2,t]}})}}eM.defaultOptions=ex(eu.defaultOptions,ec.defaultOptions,{borderRadius:{where:"all"},pointRange:null,legendSymbol:"rectangle",marker:null,states:{hover:{halo:!1}}}),ef(eM,"afterColumnTranslate",function(){eM.prototype.afterColumnTranslate.apply(this)},{order:5}),eb(eM.prototype,{directTouch:!0,pointClass:ep,trackerGroups:["group","dataLabelsGroup"],adjustForMissingColumns:eg.adjustForMissingColumns,animate:eg.animate,crispCol:eg.crispCol,drawGraph:ed,drawPoints:eg.drawPoints,getSymbol:ed,drawTracker:eg.drawTracker,getColumnMetrics:eg.getColumnMetrics}),P().registerSeriesType("columnrange",eM);let{column:ev}=P().seriesTypes,{clamp:eL,merge:ek,pick:ew}=y();class eA extends ev{translate(){let t=this.chart,e=this.options,i=this.dense=this.closestPointRange*this.xAxis.transA<2,s=this.borderWidth=ew(e.borderWidth,+!i),a=this.yAxis,o=e.threshold,r=ew(e.minPointLength,5),n=this.getColumnMetrics(),l=n.width,h=this.pointXOffset=n.offset,p=this.translatedThreshold=a.getThreshold(o),d=this.barW=Math.max(l,1+2*s);for(let i of(t.inverted&&(p-=.5),e.pointPadding&&(d=Math.ceil(d)),super.translate(),this.points)){let s=ew(i.yBottom,p),c=999+Math.abs(s),u=eL(i.plotY,-c,a.len+c),g=d/2,f=Math.min(u,s),m=Math.max(u,s)-f,b=i.plotX+h,y,x,P,M,v,L,k,w,A,S,T;e.centerInCategory&&(b=this.adjustForMissingColumns(b,l,i,n)),i.barX=b,i.pointWidth=l,i.tooltipPos=t.inverted?[a.len+a.pos-t.plotLeft-u,this.xAxis.len-b-g,m]:[b+g,u+a.pos-t.plotTop,m],y=o+(i.total||i.y),"percent"===e.stacking&&(y=o+(i.y<0)?-100:100);let C=a.toPixels(y,!0);P=(x=t.plotHeight-C-(t.plotHeight-p))?g*(f-C)/x:0,M=x?g*(f+m-C)/x:0,L=b-P+g,k=b+P+g,w=b+M+g,A=b-M+g,S=f-r,T=f+m,i.y<0&&(S=f,T=f+m+r),t.inverted&&(v=a.width-f,x=C-(a.width-p),P=g*(C-v)/x,M=g*(C-(v-m))/x,k=(L=b+g+P)-2*P,w=b-M+g,A=b+M+g,S=f,T=f+m-r,i.y<0&&(T=f+m+r)),i.shapeType="path",i.shapeArgs={x:L,y:S,width:k-L,height:m,d:[["M",L,S],["L",k,S],["L",w,T],["L",A,T],["Z"]]}}}}eA.defaultOptions=ek(ev.defaultOptions,{}),P().registerSeriesType("columnpyramid",eA);let{arearange:eS}=P().seriesTypes,{addEvent:eT,merge:eC,extend:eN}=y();class eX extends tL{getColumnMetrics(){return this.linkedParent&&this.linkedParent.columnMetrics||tf().prototype.getColumnMetrics.call(this)}drawDataLabels(){let t=this.pointValKey;if(eS)for(let e of(eS.prototype.drawDataLabels.call(this),this.points))e.y=e[t]}toYData(t){return[t.low,t.high]}}eX.defaultOptions=eC(tL.defaultOptions,{color:"#000000",grouping:!1,linkedTo:":previous",tooltip:{pointFormat:'<span style="color:{point.color}">●</span> {series.name}: <b>{point.low}</b> - <b>{point.high}</b><br/>'},whiskerWidth:null}),eT(eX,"afterTranslate",function(){for(let t of this.points)t.plotLow=t.plotY},{order:0}),eN(eX.prototype,{pointArrayMap:["low","high"],pointValKey:"high",doQuartiles:!1}),P().registerSeriesType("errorbar",eX);let{series:{prototype:{pointClass:eY}}}=P(),{noop:eR}=y(),{series:eI,seriesTypes:{column:eE}}=P(),{clamp:eD,isNumber:ez,extend:eO,merge:eH,pick:eB,pInt:eW,defined:eF}=y();class eG extends eI{translate(){let t=this.yAxis,e=this.options,i=t.center;this.generatePoints(),this.points.forEach(s=>{let a=eH(e.dial,s.dial),o=eW(a.radius)*i[2]/200,r=eW(a.baseLength)*o/100,n=eW(a.rearLength)*o/100,l=a.baseWidth,h=a.topWidth,p=e.overshoot,d=t.startAngleRad+t.translate(s.y,void 0,void 0,void 0,!0);(ez(p)||!1===e.wrap)&&(p=ez(p)?p/180*Math.PI:0,d=eD(d,t.startAngleRad-p,t.endAngleRad+p)),d=180*d/Math.PI,s.shapeType="path",s.shapeArgs={d:a.path||[["M",-n,-l/2],["L",r,-l/2],["L",o,-h/2],["L",o,h/2],["L",r,l/2],["L",-n,l/2],["Z"]],translateX:i[0],translateY:i[1],rotation:d},s.plotX=i[0],s.plotY=i[1],eF(s.y)&&t.max-t.min&&(s.percentage=(s.y-t.min)/(t.max-t.min)*100)})}drawPoints(){let t=this,e=t.chart,i=t.yAxis.center,s=t.pivot,a=t.options,o=a.pivot,r=e.renderer;t.points.forEach(i=>{let s=i.graphic,o=i.shapeArgs,n=o.d,l=eH(a.dial,i.dial);s?(s.animate(o),o.d=n):i.graphic=r[i.shapeType](o).addClass("highcharts-dial").add(t.group),e.styledMode||i.graphic[s?"animate":"attr"]({stroke:l.borderColor,"stroke-width":l.borderWidth,fill:l.backgroundColor})}),s?s.animate({translateX:i[0],translateY:i[1]}):o&&(t.pivot=r.circle(0,0,o.radius).attr({zIndex:2}).addClass("highcharts-pivot").translate(i[0],i[1]).add(t.group),e.styledMode||t.pivot.attr({fill:o.backgroundColor,stroke:o.borderColor,"stroke-width":o.borderWidth}))}animate(t){let e=this;t||e.points.forEach(t=>{let i=t.graphic;i&&(i.attr({rotation:180*e.yAxis.startAngleRad/Math.PI}),i.animate({rotation:t.shapeArgs.rotation},e.options.animation))})}render(){this.group=this.plotGroup("group","series",this.visible?"inherit":"hidden",this.options.zIndex,this.chart.seriesGroup),eI.prototype.render.call(this),this.group.clip(this.chart.clipRect)}setData(t,e){eI.prototype.setData.call(this,t,!1),this.processData(),this.generatePoints(),eB(e,!0)&&this.chart.redraw()}hasData(){return!!this.points.length}}eG.defaultOptions=eH(eI.defaultOptions,{dataLabels:{borderColor:"#cccccc",borderRadius:3,borderWidth:1,crop:!1,defer:!1,enabled:!0,verticalAlign:"top",y:15,zIndex:2},dial:{backgroundColor:"#000000",baseLength:"70%",baseWidth:3,borderColor:"#cccccc",borderWidth:0,radius:"80%",rearLength:"10%",topWidth:1},pivot:{radius:5,borderWidth:0,borderColor:"#cccccc",backgroundColor:"#000000"},tooltip:{headerFormat:""},showInLegend:!1}),eO(eG.prototype,{angular:!0,directTouch:!0,drawGraph:eR,drawTracker:eE.prototype.drawTracker,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,pointClass:class extends eY{setState(t){this.state=t}},trackerGroups:["group","dataLabelsGroup"]}),P().registerSeriesType("gauge",eG);var eq=f(620),eV=f.n(eq);let{composed:e_}=y(),{addEvent:eU,pushUnique:eK}=y();function ej(){let t,e,i,s,a=this;a.container&&(t=eU(a.container,"mousedown",t=>{e&&e(),i&&i(),(s=a.hoverPoint)&&s.series&&s.series.hasDraggableNodes&&s.series.options.draggable&&(s.series.onMouseDown(s,t),e=eU(a.container,"mousemove",t=>s&&s.series&&s.series.onMouseMove(s,t)),i=eU(a.container.ownerDocument,"mouseup",t=>(e(),i(),s&&s.series&&s.series.onMouseUp(s,t))))})),eU(a,"destroy",function(){t()})}let eZ={compose:function(t){eK(e_,"DragNodes")&&eU(t,"load",ej)},onMouseDown:function(t,e){let{panKey:i}=this.chart.options.chart;if(i&&e[`${i}Key`])return;let s=this.chart.pointer?.normalize(e)||e;t.fixedPosition={chartX:s.chartX,chartY:s.chartY,plotX:t.plotX,plotY:t.plotY},t.inDragMode=!0},onMouseMove:function(t,e){if(t.fixedPosition&&t.inDragMode){let i,s,a=this.chart,o=a.pointer?.normalize(e)||e,r=t.fixedPosition.chartX-o.chartX,n=t.fixedPosition.chartY-o.chartY,l=a.graphLayoutsLookup;(Math.abs(r)>5||Math.abs(n)>5)&&(i=t.fixedPosition.plotX-r,s=t.fixedPosition.plotY-n,a.isInsidePlot(i,s)&&(t.plotX=i,t.plotY=s,t.hasDragged=!0,this.redrawHalo(t),l.forEach(t=>{t.restartSimulation()})))}},onMouseUp:function(t){t.fixedPosition&&(t.hasDragged&&(this.layout.enableSimulation?this.layout.start():this.chart.redraw()),t.inDragMode=t.hasDragged=!1,this.options.fixedDraggable||delete t.fixedPosition)},redrawHalo:function(t){t&&this.halo&&this.halo.attr({d:t.haloPath(this.options.states.hover.halo.size)})}},{setAnimation:e$}=y(),{composed:eQ}=y(),{addEvent:eJ,pushUnique:e0}=y();function e1(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(t=>{t.updateSimulation()}),this.redraw())}function e2(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(t=>{t.updateSimulation(!1)}),this.redraw())}function e3(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(t=>{t.stop()})}function e5(){let t,e=!1,i=i=>{i.maxIterations--&&isFinite(i.temperature)&&!i.isStable()&&!i.enableSimulation&&(i.beforeStep&&i.beforeStep(),i.step(),t=!1,e=!0)};if(this.graphLayoutsLookup&&!this.pointer?.hasDragged){for(e$(!1,this),this.graphLayoutsLookup.forEach(t=>t.start());!t;)t=!0,this.graphLayoutsLookup.forEach(i);e&&this.series.forEach(t=>{t&&t.layout&&t.render()})}}let e8={compose:function(t){e0(eQ,"GraphLayout")&&(eJ(t,"afterPrint",e1),eJ(t,"beforePrint",e2),eJ(t,"predraw",e3),eJ(t,"render",e5))},integrations:{},layouts:{}};var e6=f(960),e9=f.n(e6);let{seriesTypes:{bubble:{prototype:{pointClass:e4}}}}=P(),e7=class extends e4{destroy(){return this.series?.layout&&this.series.layout.removeElementFromCollection(this,this.series.layout.nodes),tj().prototype.destroy.apply(this,arguments)}firePointEvent(){let t=this.series.options;if(this.isParentNode&&t.parentNode){let e=t.allowPointSelect;t.allowPointSelect=t.parentNode.allowPointSelect,tj().prototype.firePointEvent.apply(this,arguments),t.allowPointSelect=e}else tj().prototype.firePointEvent.apply(this,arguments)}select(){let t=this.series.chart;this.isParentNode?(t.getSelectedPoints=t.getSelectedParentNodes,tj().prototype.select.apply(this,arguments),t.getSelectedPoints=e9().prototype.getSelectedPoints):tj().prototype.select.apply(this,arguments)}setState(t,e){this?.graphic?.parentGroup?.element&&super.setState(t,e)}},{isNumber:it}=y(),ie={attractive:function(t,e,i){let s=t.getMass(),a=-i.x*e*this.diffTemperature,o=-i.y*e*this.diffTemperature;t.fromNode.fixedPosition||(t.fromNode.plotX-=a*s.fromNode/t.fromNode.degree,t.fromNode.plotY-=o*s.fromNode/t.fromNode.degree),t.toNode.fixedPosition||(t.toNode.plotX+=a*s.toNode/t.toNode.degree,t.toNode.plotY+=o*s.toNode/t.toNode.degree)},attractiveForceFunction:function(t,e){return(e-t)/t},barycenter:function(){let t=this.options.gravitationalConstant||0,e=(this.barycenter.xFactor-(this.box.left+this.box.width)/2)*t,i=(this.barycenter.yFactor-(this.box.top+this.box.height)/2)*t;this.nodes.forEach(function(t){t.fixedPosition||(t.plotX-=e/t.mass/t.degree,t.plotY-=i/t.mass/t.degree)})},getK:function(t){return Math.pow(t.box.width*t.box.height/t.nodes.length,.5)},integrate:function(t,e){let i=-t.options.friction,s=t.options.maxSpeed,a=e.prevX,o=e.prevY,r=(e.plotX+e.dispX-a)*i,n=(e.plotY+e.dispY-o)*i,l=Math.abs,h=l(r)/(r||1),p=l(n)/(n||1),d=h*Math.min(s,Math.abs(r)),c=p*Math.min(s,Math.abs(n));e.prevX=e.plotX+e.dispX,e.prevY=e.plotY+e.dispY,e.plotX+=d,e.plotY+=c,e.temperature=t.vectorLength({x:d,y:c})},repulsive:function(t,e,i){let s=e*this.diffTemperature/t.mass/t.degree;t.fixedPosition||(t.plotX+=i.x*s,t.plotY+=i.y*s)},repulsiveForceFunction:function(t,e){return(e-t)/t*(e>t)}},{noop:ii}=y(),is={barycenter:function(){let t,e,i=this.options.gravitationalConstant||0,s=this.box,a=this.nodes,o=Math.sqrt(a.length);for(let r of a)if(!r.fixedPosition){let a=r.mass*o,n=r.plotX||0,l=r.plotY||0,h=r.series,p=h.parentNode;this.resolveSplitSeries(r)&&p&&!r.isParentNode?(t=p.plotX||0,e=p.plotY||0):(t=s.width/2,e=s.height/2),r.plotX=n-(n-t)*i/a,r.plotY=l-(l-e)*i/a,h.chart.hoverPoint===r&&h.redrawHalo&&h.halo&&h.redrawHalo(r)}},getK:ii,integrate:ie.integrate,repulsive:function(t,e,i,s){let a=e*this.diffTemperature/t.mass/t.degree,o=i.x*a,r=i.y*a;t.fixedPosition||(t.plotX+=o,t.plotY+=r),s.fixedPosition||(s.plotX-=o,s.plotY-=r)},repulsiveForceFunction:function(t,e,i,s){return Math.min(t,(i.marker.radius+s.marker.radius)/2)}},ia={attractive:function(t,e,i,s){let a=t.getMass(),o=i.x/s*e,r=i.y/s*e;t.fromNode.fixedPosition||(t.fromNode.dispX-=o*a.fromNode/t.fromNode.degree,t.fromNode.dispY-=r*a.fromNode/t.fromNode.degree),t.toNode.fixedPosition||(t.toNode.dispX+=o*a.toNode/t.toNode.degree,t.toNode.dispY+=r*a.toNode/t.toNode.degree)},attractiveForceFunction:function(t,e){return t*t/e},barycenter:function(){let t=this.options.gravitationalConstant,e=this.barycenter.xFactor,i=this.barycenter.yFactor;this.nodes.forEach(function(s){if(!s.fixedPosition){let a=s.getDegree(),o=a*(1+a/2);s.dispX+=(e-s.plotX)*t*o/s.degree,s.dispY+=(i-s.plotY)*t*o/s.degree}})},getK:function(t){return Math.pow(t.box.width*t.box.height/t.nodes.length,.3)},integrate:function(t,e){e.dispX+=e.dispX*t.options.friction,e.dispY+=e.dispY*t.options.friction;let i=e.temperature=t.vectorLength({x:e.dispX,y:e.dispY});0!==i&&(e.plotX+=e.dispX/i*Math.min(Math.abs(e.dispX),t.temperature),e.plotY+=e.dispY/i*Math.min(Math.abs(e.dispY),t.temperature))},repulsive:function(t,e,i,s){t.dispX+=i.x/s*e/t.degree,t.dispY+=i.y/s*e/t.degree},repulsiveForceFunction:function(t,e){return e*e/t}};class io{constructor(t){this.body=!1,this.isEmpty=!1,this.isInternal=!1,this.nodes=[],this.box=t,this.boxSize=Math.min(t.width,t.height)}divideBox(){let t=this.box.width/2,e=this.box.height/2;this.nodes[0]=new io({left:this.box.left,top:this.box.top,width:t,height:e}),this.nodes[1]=new io({left:this.box.left+t,top:this.box.top,width:t,height:e}),this.nodes[2]=new io({left:this.box.left+t,top:this.box.top+e,width:t,height:e}),this.nodes[3]=new io({left:this.box.left,top:this.box.top+e,width:t,height:e})}getBoxPosition(t){let e=t.plotX<this.box.left+this.box.width/2,i=t.plotY<this.box.top+this.box.height/2;return e?3*!i:i?1:2}insert(t,e){let i;this.isInternal?this.nodes[this.getBoxPosition(t)].insert(t,e-1):(this.isEmpty=!1,this.body?e?(this.isInternal=!0,this.divideBox(),!0!==this.body&&(this.nodes[this.getBoxPosition(this.body)].insert(this.body,e-1),this.body=!0),this.nodes[this.getBoxPosition(t)].insert(t,e-1)):((i=new io({top:t.plotX||NaN,left:t.plotY||NaN,width:.1,height:.1})).body=t,i.isInternal=!1,this.nodes.push(i)):(this.isInternal=!1,this.body=t))}updateMassAndCenter(){let t=0,e=0,i=0;if(this.isInternal){for(let s of this.nodes)s.isEmpty||(t+=s.mass,e+=s.plotX*s.mass,i+=s.plotY*s.mass);e/=t,i/=t}else this.body&&(t=this.body.mass,e=this.body.plotX,i=this.body.plotY);this.mass=t,this.plotX=e,this.plotY=i}}let ir=class{constructor(t,e,i,s){this.box={left:t,top:e,width:i,height:s},this.maxDepth=25,this.root=new io(this.box),this.root.isInternal=!0,this.root.isRoot=!0,this.root.divideBox()}calculateMassAndCenter(){this.visitNodeRecursive(null,null,function(t){t.updateMassAndCenter()})}insertNodes(t){for(let e of t)this.root.insert(e,this.maxDepth)}visitNodeRecursive(t,e,i){let s;if(t||(t=this.root),t===this.root&&e&&(s=e(t)),!1!==s){for(let a of t.nodes){if(a.isInternal){if(e&&(s=e(a)),!1===s)continue;this.visitNodeRecursive(a,e,i)}else a.body&&e&&e(a.body);i&&i(a)}t===this.root&&i&&i(t)}}},{win:il}=y(),{clamp:ih,defined:ip,isFunction:id,fireEvent:ic,pick:iu}=y();class ig{constructor(){this.box={},this.currentStep=0,this.initialRendering=!0,this.links=[],this.nodes=[],this.series=[],this.simulation=!1}static compose(t){e8.compose(t),e8.integrations.euler=ia,e8.integrations.verlet=ie,e8.layouts["reingold-fruchterman"]=ig}init(t){this.options=t,this.nodes=[],this.links=[],this.series=[],this.box={x:0,y:0,width:0,height:0},this.setInitialRendering(!0),this.integration=e8.integrations[t.integration],this.enableSimulation=t.enableSimulation,this.attractiveForce=iu(t.attractiveForce,this.integration.attractiveForceFunction),this.repulsiveForce=iu(t.repulsiveForce,this.integration.repulsiveForceFunction),this.approximation=t.approximation}updateSimulation(t){this.enableSimulation=iu(t,this.options.enableSimulation)}start(){let t=this.series,e=this.options;this.currentStep=0,this.forces=t[0]&&t[0].forces||[],this.chart=t[0]&&t[0].chart,this.initialRendering&&(this.initPositions(),t.forEach(function(t){t.finishedAnimating=!0,t.render()})),this.setK(),this.resetSimulation(e),this.enableSimulation&&this.step()}step(){let t=this.series;for(let t of(this.currentStep++,"barnes-hut"===this.approximation&&(this.createQuadTree(),this.quadTree.calculateMassAndCenter()),this.forces||[]))this[t+"Forces"](this.temperature);if(this.applyLimits(),this.temperature=this.coolDown(this.startTemperature,this.diffTemperature,this.currentStep),this.prevSystemTemperature=this.systemTemperature,this.systemTemperature=this.getSystemTemperature(),this.enableSimulation){for(let e of t)e.chart&&e.render();this.maxIterations--&&isFinite(this.temperature)&&!this.isStable()?(this.simulation&&il.cancelAnimationFrame(this.simulation),this.simulation=il.requestAnimationFrame(()=>this.step())):(this.simulation=!1,this.series.forEach(t=>{ic(t,"afterSimulation")}))}}stop(){this.simulation&&il.cancelAnimationFrame(this.simulation)}setArea(t,e,i,s){this.box={left:t,top:e,width:i,height:s}}setK(){this.k=this.options.linkLength||this.integration.getK(this)}addElementsToCollection(t,e){for(let i of t)-1===e.indexOf(i)&&e.push(i)}removeElementFromCollection(t,e){let i=e.indexOf(t);-1!==i&&e.splice(i,1)}clear(){this.nodes.length=0,this.links.length=0,this.series.length=0,this.resetSimulation()}resetSimulation(){this.forcedStop=!1,this.systemTemperature=0,this.setMaxIterations(),this.setTemperature(),this.setDiffTemperature()}restartSimulation(){this.simulation?this.resetSimulation():(this.setInitialRendering(!1),this.enableSimulation?this.start():this.setMaxIterations(1),this.chart&&this.chart.redraw(),this.setInitialRendering(!0))}setMaxIterations(t){this.maxIterations=iu(t,this.options.maxIterations)}setTemperature(){this.temperature=this.startTemperature=Math.sqrt(this.nodes.length)}setDiffTemperature(){this.diffTemperature=this.startTemperature/(this.options.maxIterations+1)}setInitialRendering(t){this.initialRendering=t}createQuadTree(){this.quadTree=new ir(this.box.left,this.box.top,this.box.width,this.box.height),this.quadTree.insertNodes(this.nodes)}initPositions(){let t=this.options.initialPositions;if(id(t))for(let e of(t.call(this),this.nodes))ip(e.prevX)||(e.prevX=e.plotX),ip(e.prevY)||(e.prevY=e.plotY),e.dispX=0,e.dispY=0;else"circle"===t?this.setCircularPositions():this.setRandomPositions()}setCircularPositions(){let t,e=this.box,i=this.nodes,s=2*Math.PI/(i.length+1),a=i.filter(function(t){return 0===t.linksTo.length}),o={},r=this.options.initialPositionRadius,n=t=>{for(let e of t.linksFrom||[])o[e.toNode.id]||(o[e.toNode.id]=!0,l.push(e.toNode),n(e.toNode))},l=[];for(let t of a)l.push(t),n(t);if(l.length)for(let t of i)-1===l.indexOf(t)&&l.push(t);else l=i;for(let i=0,a=l.length;i<a;++i)(t=l[i]).plotX=t.prevX=iu(t.plotX,e.width/2+r*Math.cos(i*s)),t.plotY=t.prevY=iu(t.plotY,e.height/2+r*Math.sin(i*s)),t.dispX=0,t.dispY=0}setRandomPositions(){let t,e=this.box,i=this.nodes,s=i.length+1,a=t=>{let e=t*t/Math.PI;return e-Math.floor(e)};for(let o=0,r=i.length;o<r;++o)(t=i[o]).plotX=t.prevX=iu(t.plotX,e.width*a(o)),t.plotY=t.prevY=iu(t.plotY,e.height*a(s+o)),t.dispX=0,t.dispY=0}force(t,...e){this.integration[t].apply(this,e)}barycenterForces(){this.getBarycenter(),this.force("barycenter")}getBarycenter(){let t=0,e=0,i=0;for(let s of this.nodes)e+=s.plotX*s.mass,i+=s.plotY*s.mass,t+=s.mass;return this.barycenter={x:e,y:i,xFactor:e/t,yFactor:i/t},this.barycenter}barnesHutApproximation(t,e){let i,s,a=this.getDistXY(t,e),o=this.vectorLength(a);return t!==e&&0!==o&&(e.isInternal?e.boxSize/o<this.options.theta&&0!==o?(s=this.repulsiveForce(o,this.k),this.force("repulsive",t,s*e.mass,a,o),i=!1):i=!0:(s=this.repulsiveForce(o,this.k),this.force("repulsive",t,s*e.mass,a,o))),i}repulsiveForces(){if("barnes-hut"===this.approximation)for(let t of this.nodes)this.quadTree.visitNodeRecursive(null,e=>this.barnesHutApproximation(t,e));else{let t,e,i;for(let s of this.nodes)for(let a of this.nodes)s===a||s.fixedPosition||(i=this.getDistXY(s,a),0!==(e=this.vectorLength(i))&&(t=this.repulsiveForce(e,this.k),this.force("repulsive",s,t*a.mass,i,e)))}}attractiveForces(){let t,e,i;for(let s of this.links)s.fromNode&&s.toNode&&(t=this.getDistXY(s.fromNode,s.toNode),0!==(e=this.vectorLength(t))&&(i=this.attractiveForce(e,this.k),this.force("attractive",s,i,t,e)))}applyLimits(){for(let t of this.nodes)t.fixedPosition||(this.integration.integrate(this,t),this.applyLimitBox(t,this.box),t.dispX=0,t.dispY=0)}applyLimitBox(t,e){let i=t.radius;t.plotX=ih(t.plotX,e.left+i,e.width-i),t.plotY=ih(t.plotY,e.top+i,e.height-i)}coolDown(t,e,i){return t-e*i}isStable(){return 1e-5>Math.abs(this.systemTemperature-this.prevSystemTemperature)||this.temperature<=0}getSystemTemperature(){let t=0;for(let e of this.nodes)t+=e.temperature;return t}vectorLength(t){return Math.sqrt(t.x*t.x+t.y*t.y)}getDistR(t,e){let i=this.getDistXY(t,e);return this.vectorLength(i)}getDistXY(t,e){let i=t.plotX-e.plotX,s=t.plotY-e.plotY;return{x:i,y