1!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.Color,t._Highcharts.Templating,t._Highcharts.Point,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.Color,t.Templating,t.Point,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.Color,t._Highcharts.Templating,t._Highcharts.Point,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.Color,t.Highcharts.Templating,t.Highcharts.Point,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={960:t=>{t.exports=n},620:t=>{t.exports=a},260:t=>{t.exports=r},28:t=>{t.exports=l},448:t=>{t.exports=s},820:t=>{t.exports=i},512:t=>{t.exports=e},184:t=>{t.exports=h},984:t=>{t.exports=o},944:e=>{e.exports=t}},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:()=>Oa});var b=f(944),y=f.n(b),x=f(512),P=f.n(x),v=f(820),M=f.n(v);let{deg2rad:L}=y(),{fireEvent:k,isNumber:w,pick:A,relativeLength:S}=y();!function(t){t.getCenter=function(){let t,e,i,s=this.options,a=this.chart,o=2*(s.slicedOffset||0),r=a.plotWidth-2*o,n=a.plotHeight-2*o,l=s.center,h=Math.min(r,n),p=s.thickness,d=s.size,c=s.innerSize||0;"string"==typeof d&&(d=parseFloat(d)),"string"==typeof c&&(c=parseFloat(c));let u=[A(l?.[0],"50%"),A(l?.[1],"50%"),A(d&&d<0?void 0:s.size,"100%"),A(c&&c<0?void 0:s.innerSize||0,"0%")];for(!a.angular||this instanceof M()||(u[3]=0),e=0;e<4;++e)i=u[e],t=e<2||2===e&&/%$/.test(i),u[e]=S(i,[r,n,h,u[2]][e])+(t?o:0);return u[3]>u[2]&&(u[3]=u[2]),w(p)&&2*p<u[2]&&p>0&&(u[3]=u[2]-2*p),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 I(t){let e,i=this;return t&&i.pane.forEach(s=>{R(t.chartX-i.plotLeft,t.chartY-i.plotTop,s.center)&&(e=s)}),e}function R(t,e,i,s,a){let o=!0,r=i[0],n=i[1],l=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));a!==s&&(o=s>a?i>=s&&i<=Math.PI||i<=a&&i>=-Math.PI:i>=s&&i<=N(a,8))}return l<=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=>R(t.x,t.y,e.center,e.axis&&e.axis.normalizedStartAngleRad,e.axis&&e.axis.normalizedEndAngleRad)))}function z(t){let e=this.chart;t.hoverPoint&&t.hoverPoint.plotX&&t.hoverPoint.plotY&&e.hoverPane&&!R(t.hoverPoint.plotX,t.hoverPoint.plotY,e.hoverPane.center)&&(t.hoverPoint=void 0)}function D(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 O={pane:{center:["50%","50%"],size:"85%",innerSize:"0%",startAngle:0},background:{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%"}},{extend:H,merge:B,splat:W}=y();class F{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=B(O.pane,this.chart.angular?{background:{}}:void 0,t)}render(){let t=this.options,e=this.chart.renderer;this.group||(this.group=e.g("pane-group").attr({zIndex:t.zIndex||
10}).add()),this.updateCenter();let i=this.options.background;if(i){let t=Math.max((i=W(i)).length,this.background.length||0);for(let e=0;e<t;e++)i[e]&&this.axis?this.renderBackground(B(O.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||H(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){B(!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)}}F.compose=function(t,e){let i=t.prototype;i.getHoverPane||(i.collectionsWithUpdate.push("pane"),i.getHoverPane=I,C(t,"afterIsInsidePlot",E),C(e,"afterGetHoverData",z),C(e,"beforeGetHoverData",D))};let{area:{prototype:{pointClass:G,pointClass:{prototype:q}}}}=P().seriesTypes,{defined:V,isNumber:_}=y(),{noop:U}=y(),{area:K,area:{prototype:j},column:{prototype:Z}}=P().seriesTypes,{addEvent:$,defined:Q,extend:J,isArray:tt,isNumber:et,pick:it,merge:st}=y();class at extends K{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,a=[],o=[],r=j.getGraphPath,n=this.options,l=this.chart.polar,h=l&&!1!==n.connectEnds,p=n.connectNulls,d=n.step;for(e=(t=t||this.points).length;e--;){i=t[e];let r=l?{plotX:i.rectPlotX,plotY:i.yBottom,doCurve:!1}:{plotX:i.plotX,plotY:i.plotY,doCurve:!1};i.isNull||h||p||t[e+1]&&!t[e+1].isNull||o.push(r),s={polarPlotY:i.polarPlotY,rectPlotX:i.rectPlotX,yBottom:i.yBottom,plotX:it(i.plotHighX,i.plotX),plotY:i.plotHigh,isNull:i.isNull},o.push(s),a.push(s),i.isNull||h||p||t[e-1]&&!t[e-1].isNull||o.push(r)}let c=r.call(this,t);d&&(!0===d&&(d="left"),n.step={left:"right",center:"center",right:"left"}[d]);let u=r.call(this,a),g=r.call(this,o);n.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(tt(l)?(s=l[0]||{enabled:!1},a=l[1]||{enabled:!1}):((s=J({},l)).x=l.xHigh,s.y=l.yHigh,(a=J({},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(){Z.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=st(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
1:e.zone,y:e.y},(e.graphic||e.graphics[0])&&(e.graphics[0]=e.graphic),e.graphic=e.graphics[1],e.plotY=e.plotHigh,Q(e.plotHighX)&&(e.plotX=e.plotHighX),e.y=it(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&&(J(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)}}at.defaultOptions=st(K.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}}),$(at,"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=et(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}),$(at,"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}),J(at.prototype,{deferTranslatePolar:!0,pointArrayMap:["low","high"],pointClass:class extends G{setState(){let t=this.state,e=this.series,i=e.chart.polar;V(this.plotHigh)||(this.plotHigh=e.yAxis.toPixels(this.high,!0)),V(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&&_(this.plotHighX)&&(this.plotX=this.plotHighX),q.setState.apply(this,arguments),this.state=t,this.plotY=this.plotLow,this.graphic=this.graphics&&this.graphics[0],i&&_(this.plotLowX)&&(this.plotX=this.plotLowX),e.upperStateMarkerGraphic=e.stateMarkerGraphic,e.stateMarkerGraphic=e.lowerStateMarkerGraphic,e.lowerStateMarkerGraphic=void 0;let s=e.modifyMarkerSettings();q.setState.apply(this,arguments),e.restoreMarkerSettings(s)}haloPath(){let t=this.series.chart.polar,e=[];return this.plotY=this.plotLow,t&&_(this.plotLowX)&&(this.plotX=this.plotLowX),this.isInside&&(e=q.haloPath.apply(this,arguments)),this.plotY=this.plotHigh,t&&_(this.plotHighX)&&(this.plotX=this.plotHighX),this.isTopInside&&(e=e.concat(q.haloPath.apply(this,arguments))),e}isValid(){return _(this.low)&&_(this.high)}},pointValKey:"low",setStackedPoints:U}),P().registerSeriesType("arearange",at);let ot=at,{spline:{prototype:rt}}=P().seriesTypes,{merge:nt,extend:lt}=y();class ht extends ot{}ht.defaultOptions=nt(ot.defaultOptions),lt(ht.prototype,{getPointSpline:rt.getPointSpline}),P().registerSeriesType("areasplinerange",ht);var pt=f(448),dt=f.n(pt);let{noop:ct}=y(),{crisp:ut,extend:gt,merge:ft,pick:mt,relativeLength:bt}=y();class yt extends(dt()){pointAttribs(){return{}}getWhiskerPair(t,e,i,s,a){let o=a.whiskers.strokeWidth(),r=(i,s)=>{let a=bt(i,2*t)/2,r=ut(s,o);return[["M",ut(e-a),r],["L",ut(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=this.points,p=this.options,d=this.chart,c=d.renderer,u=!1!==this.doQuartiles,g=this.options.whiskerLength;for(let f of h){let h=(o=f.graphic)?"animate":"attr",m=f.shapeArgs,b={},y={},x={},P={},v=f.color||this.color,M=f.options.whiskerLength||g;if(void 0!==f.plotY){let L;r=m.width,l=(n=m.x)+r,t=u?f.q1Plot:f.lowPlot,e=u?f.q3Plot:f.lowPlot,i=f.highPlot,s=f.lowPlot,o||(f.graphic=o=c.g("point").add(this.group),f.stem=c.path().addClass("highcharts-boxplot-stem").add(o),g&&(f.whiskers=c.path().addClass("highcharts-boxplot-whisker").add(o)),u&&(f.box=c.path(void 0).addClass("highcharts-boxplot-box").add(o)),f.medianShape=c.path(void 0).addClass("highcharts-boxplot-median").add(o)),d.styledMode||(y.stroke=f.stemColor||p.stemColor||v,y["stroke-width"]=mt(f.stemWidth,p.stemWidth,p.lineWidth),y.dashstyle=f.stemDashStyle||p.stemDashStyle||p.dashStyle,f.stem.attr(y),M&&(x.stroke=f.whiskerColor||p.whiskerColor||v,x["stroke-width"]=mt(f.whiskerWidth,p.whiskerWidth,p.lineWidth),x.dashstyle=f.whiskerDashStyle||p.whiskerDashStyle||p.dashStyle,f.whiskers.attr(x)),u&&(b.fill=f.fillColor||p.fillColor||v,b.stroke=p.lineColor||v,b["stroke-width"]=p.lineWidth||0,b.dashstyle=f.boxDashStyle||p.boxDashStyle||p.dashStyle,f.box.attr(b)),P.stroke=f.medianColor||p.medianColor||v,P["stroke-width"]=mt(f.medianWidth,p.medianWidth,p.lineWidth),P.dashstyle=f.medianDashStyle||p.medianDashStyle||p.dashStyle,f.medianShape.attr(P));let k=ut((f.plotX||0)+(this.pointXOffset||0)+(this.barW||0)/2,f.stem.strokeWidth());if(L=[["M",k,e],["L",k,i],["M",k,t],["L",k,s]],f.stem[h]({d:L}),u){let i=f.box.strokeWidth();t=ut(t,i),e=ut(e,i),L=[["M",n=ut(n,i),e],["L",n,t],["L",l=ut(l,i),t],["L",l,e],["L",n,e],["Z"]],f.box[h]({d:L})}if(M){let t=r/2,e=this.getWhiskerPair(t,k,f.upperWhiskerLength??p.upperWhiskerLength??M,f.lowerWhiskerLength??p.lowerWhiskerLength??M,f);f.whiskers[h]({d:e})}L=[["M",n,a=ut(f.medianPlot,f.medianShape.strokeWidth())],["L",l,a]],f.medianShape[h]({d:L})}}}toYData(t){return[t.low,t.q1,t.median,t.q3,t.high]}}yt.defaultOptions=ft(dt().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}),gt(yt.prototype,{pointArrayMap:["low","q1","median","q3","high"],pointV
1alKey:"high",drawDataLabels:ct,setStackedPoints:ct}),P().registerSeriesType("boxplot",yt);let xt=yt,Pt={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 vt=f(620),Mt=f.n(vt),Lt=f(984),kt=f.n(Lt);let{parse:wt}=Mt(),{noop:At}=y(),{arrayMax:St,arrayMin:Tt,isNumber:Ct,merge:Nt,pick:Xt,stableSort:Yt}=y(),It=class{constructor(t,e){this.setState=At,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=Xt(t.options.itemDistance,20),s=this.legendItem||{},a=this.options,o=a.ranges,r=a.connectorDistance;if(!o||!o.length||!Ct(o[0].value))return void(t.options.bubbleLegend.autoRanges=!0);Yt(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=Xt(h.borderColor,e.borderColor,i.color),a.fill=Xt(h.color,e.color,1!==n?wt(i.color).setOpacity(n).get("rgba"):i.color),o.stroke=Xt(h.connectorColor,e.connectorColor,i.color)),t[p].radius=this.getRangeRadius(h.value),t[p]=Nt(t[p],{center:t[0].radius-t[p].radius+s}),l||Nt(!0,t[p],{bubbleAttribs:Nt(a),connectorAttribs:Nt(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.radiu
vendor: 4,545 bytes, line 1
1s||0,y=p-d-f/2+m/2,x=(y%1?1:.5)-(m%2?0:.5),P=n.styledMode,v=g||"left"===u?-c:c;"center"===u&&(v=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+v,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 M=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+v+s.labels.x,y:y+s.labels.y+.4*M.getBBox().height};M.attr(L),h.push(M),M.placed=!0,M.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?kt().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,e,i=this.legend.bubbleLegend,s=i.chart.series,a=i.options.ranges,o=Number.MAX_VALUE,r=-Number.MAX_VALUE;return s.forEach(function(t){t.isBubble&&!t.ignoreSeries&&(e=t.getColumn("z").filter(Ct)).length&&(o=Xt(t.options.zMin,Math.min(o,Math.max(Tt(e),!1===t.options.displayNegative?t.options.zThreshold:-Number.MAX_VALUE))),r=Xt(t.options.zMax,Math.max(r,St(e))))}),t=o===r?[{value:r}]:[{value:o},{value:(o+r)/2},{value:r,autoRanges:!0}],a.length&&a[0].radius&&t.reverse(),t.forEach(function(e,i){a&&a[i]&&(t[i]=Nt(a[i],e))}),t}predictBubbleSizes(){let t,e=this.chart,i=e.legend.options,s=i.floating,a="horizontal"===i.layout,o=a?e.legend.lastLineHeight:0,r=e.plotSizeX,n=e.plotSizeY,l=e.series[this.options.seriesIndex],h=l.getPxExtremes(),p=Math.ceil(h.minPxSize),d=Math.ceil(h.maxPxSize),c=Math.min(n,r),u=l.options.maxSize;return s||!/%$/.test(u)?t=d:(t=(c+o)*(u=parseFloat(u))/100/(u/100+1),(a&&n-t>=r||!a&&r-t>=n)&&(t=d)),[p,Math.ceil(t)]}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:Rt}=y(),{composed:Et}=y(),{addEvent:zt,objectEach:Dt,pushUnique:Ot,wrap:Ht}=y();function Bt(t,e,i){let s,a,o,r=this.legend,n=Wt(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(),Dt(t.ticks,function(t){t.isNew=!0,t.isNewLabel=!0})}),this.getMargins()),s.placed=!0,t.call(this,e,i),r.bubbleLegend.correctSizes(),Vt(r,Ft(r))):(t.call(this,e,i),r&&r.options.enabled&&r.bubbleLegend&&(r.render(),Vt(r,Ft(r))))}function Wt(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 Ft(t){let e,i,s,a=t.allItems,o=[],r=a.length,n=0,l=0;for(n=0;n<r;n++)if(i=a[n].legendItem||{},s=(a[n+1]||{}).legendItem||{},i.labelHeight&&(a[n].itemHeight=i.labelHeight),a[n]===a[r-1]||i.y!==s.y){for(o.push({height:0}),e=o[o.length-1];l<=n;l++)a[l].itemHeight>e.height&&(e.height=a[l].itemHeight);e.step=n}return o}function Gt(t){let e=this.bubbleLegend,i=this.options,s=i.bubbleLegend,a=Wt(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 It(s,this),this.bubbleLegend.addToLegend(t.allItems))}function qt(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=Wt(s)>=0,this.bubbleLegend.visible!==e&&(this.update({bubbleLegend:{enabled:e}}),this.bubbleLegend.visible=e),i.visible=a)}
1function Vt(t,e){let i,s,a,o,r=t.allItems,n=t.options.rtl,l=0;r.forEach((t,r)=>{(o=t.legendItem||{}).group&&(i=o.group.translateX||0,s=o.y||0,((a=t.movementX)||n&&t.ranges)&&(a=n?i-t.options.maxSize/2:i+a,o.group.attr({translateX:a})),r>e[l].step&&l++,o.group.attr({translateY:Math.round(s+e[l].height/2)}),o.y=s+e[l].height/2)})}let _t=function(t,e){Ot(Et,"Series.BubbleLegend")&&(Rt({legend:{bubbleLegend:Pt}}),Ht(t.prototype,"drawChartBox",Bt),zt(e,"afterGetAllItems",Gt),zt(e,"itemClick",qt))};var Ut=f(260),Kt=f.n(Ut);let{seriesTypes:{scatter:{prototype:{pointClass:jt}}}}=P(),{extend:Zt}=y();class $t extends jt{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;return a.renderer.symbols.circle(i.len-t[1]-e,s.len-t[0]-e,2*e,2*e)}return Kt().prototype.haloPath.call(this,e)}}Zt($t.prototype,{ttBelow:!1});let{parse:Qt}=Mt(),{composed:Jt,noop:te}=y(),{series:ee,seriesTypes:{column:{prototype:ie},scatter:se}}=P(),{addEvent:ae,arrayMax:oe,arrayMin:re,clamp:ne,extend:le,isNumber:he,merge:pe,pick:de,pushUnique:ce}=y();function ue(){let t,e=this.len,{coll:i,isXAxis:s,min:a}=this,o=(this.max||0)-(a||0),r=0,n=e,l=e/o;("xAxis"===i||"yAxis"===i)&&(this.series.forEach(e=>{if(e.bubblePadding&&e.reserveSpace()){this.allowZoomOutside=!0,t=!0;let i=e.getColumn(s?"x":"y");if(s&&((e.onPoint||e).getRadii(0,0,e),e.onPoint&&(e.radii=e.onPoint.radii)),o>0){let t=i.length;for(;t--;)if(he(i[t])&&this.dataMin<=i[t]&&i[t]<=this.max){let s=e.radii&&e.radii[t]||0;r=Math.min((i[t]-a)*l-s,r),n=Math.max((i[t]-a)*l+s,n)}}}}),t&&o>0&&!this.logarithmic&&(n-=e,l*=(e+Math.max(0,r)-Math.min(n,e))/e,[["min","userMin",r],["max","userMax",n]].forEach(t=>{void 0===de(this.options[t[0]],this[t[1]])&&(this[t[0]]+=t[2]/l)})))}function ge(){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 fe extends se{static compose(t,e,i){_t(e,i),ce(Jt,"Series.Bubble")&&(ae(t,"foundExtremes",ue),ae(t,"afterRender",ge))}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,e,i,s=this.getColumn("z"),a=this.getColumn("y"),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(de(e,a.zMin),a.zMin),i=Math.max(de(i,a.zMax),a.zMax),t=!0)}}),t?(r={zMin:e,zMax:i},this.chart.bubbleZExtremes=r):r={zMin:0,zMax:0}}for(e=0,t=s.length;e<t;e++)i=s[e],o.push(this.getRadius(r.zMin,r.zMax,n,l,i,a&&a[e]));this.radii=o}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(he(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?le(i,{x:(t.plotX||0)-a/2,y:(t.plotY||0)-s/2}):i}pointAttribs(t,e){let i=this.options.marker.fillOpacity,s=ee.prototype.pointAttribs.call(this,t,e);return 1!==i&&(s.fill=Qt(s.fill).setOpacity(i).get("rgba")),s}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)),he(r)&&r>=s/2?(o.marker=le(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(de(this.options.minSize,8));return{minPxSize:i,maxPxSize:Math.max(e(de(this.options.maxSize,"20%")),i)}}getZExtremes(){let t=this.options,e=this.getColumn("z").filter(he);if(e.length){let i=de(t.zMin,ne(re(e),!1===t.displayNegative?t.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),s=de(t.zMax,oe(e));if(he(i)&&he(s))return{zMin:i,zMax:s}}}
1searchKDTree(t,e,i,s=te,a=te){return s=(t,e,i)=>{let s,a=t[i]||0,o=e[i]||0,r=!1;return a<0&&o<0?(s=a-(t.marker?.radius||0)>=o-(e.marker?.radius||0)?t:e,r=!0):s=a<o?t:e,[s,r]},a=(t,e,i)=>!i&&t>e||t<e,super.searchKDTree(t,e,i,s,a)}}fe.defaultOptions=pe(se.defaultOptions,{dataLabels:{formatter:function(){let{numberFormatter:t}=this.series.chart,{z:e}=this.point;return he(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"}),le(fe.prototype,{alignDataLabel:ie.alignDataLabel,applyZones:te,bubblePadding:!0,isBubble:!0,keysAffectYAxis:["y"],pointArrayMap:["y","z"],pointClass:$t,parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",zoneAxis:"z"}),ae(fe,"updatedData",t=>{delete t.target.chart.bubbleZExtremes}),ae(fe,"remove",t=>{delete t.target.chart.bubbleZExtremes}),P().registerSeriesType("bubble",fe);let{seriesTypes:{column:{prototype:{pointClass:{prototype:me}}},arearange:{prototype:{pointClass:be}}}}=P(),{extend:ye,isNumber:xe}=y();class Pe extends be{isValid(){return xe(this.low)}}ye(Pe.prototype,{setState:me.setState});let{noop:ve}=y(),{seriesTypes:{arearange:Me,column:Le,column:{prototype:ke}}}=P(),{addEvent:we,clamp:Ae,extend:Se,isNumber:Te,merge:Ce,pick:Ne}=y();class Xe extends Me{setOptions(){return Ce(!0,arguments[0],{stacking:void 0}),Me.prototype.setOptions.apply(this,arguments)}translate(){return ke.translate.apply(this)}pointAttribs(){return ke.pointAttribs.apply(this,arguments)}translate3dPoints(){return ke.translate3dPoints.apply(this,arguments)}translate3dShapes(){return ke.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(Te(g)&&Te(u))if(p.plotHigh=Ae(g,-h,h),p.plotLow=Ae(u,-h,h),s=p.plotHigh,Math.abs(t=Ne(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=Ce(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]}})}}Xe.defaultOptions=Ce(Le.defaultOptions,Me.defaultOptions,{borderRadius:{where:"all"},pointRange:null,legendSymbol:"rectangle",marker:null,states:{hover:{halo:!1}}}),we(Xe,"afterColumnTranslate",function(){Xe.prototype.afterColumnTranslate.apply(this)},{order:5}),Se(Xe.prototype,{directTouch:!0,pointClass:Pe,trackerGroups:["group","dataLabelsGroup"],adjustForMissingColumns:ke.adjustForMissingColumns,animate:ke.animate,crispCol:ke.crispCol,drawGraph:ve,drawPoints:ke.drawPoints,getSymbol:ve,drawTracker:ke.drawTracker,getColumnMetrics:ke.getColumnMetrics}),P().registerSeriesType("columnrange",Xe);let{column:Ye}=P().seriesTypes,{clamp:Ie,merge:Re,pick:Ee}=y();class ze extends Ye{translate(){let t=this.chart,e=this.options,i=this.dense=this.closestPointRange*this.xAxis.transA<2,s=this.borderWidth=Ee(e.borderWidth,i?0:1),a=this.yAxis,o=e.threshold,r=Ee(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,c,u,g,f,m,b,y,x,P,v,M=Ee(i.yBottom,p),L=999+Math.abs(M),k=Ie(i.plotY,-L,a.len+L),w=d/2,A=Math.min(k,M),S=Math.max(k,M)-A,T=i.plotX+h;e.centerInCategory&&(T=this.adjustForMissingColumns(T,l,i,n)),i.barX=T,i.pointWidth=l,i.tooltipPos=t.inverted?[a.len+a.pos-t.plotLeft-k,this.xAxis.len-T-w,S]:[T+w,k+a.pos-t.plotTop,S],s=o+(i.total||i.y),"percent"===e.stacking&&(s=o+(i.y<0)?-100:100);let C=a.toPixels(s,!0);u=(c=t.plotHeight-C-(t.plotHeight-p))?w*(A-C)/c:0,g=c?w*(A+S-C)/c:0,m=T-u+w,b=T+u+w,y=T+g+w,x=T-g+w,P=A-r,v=A+S,i.y<0&&(P=A,v=A+S+r),t.inverted&&(f=a.width-A,c=C-(a.width-p),u=w*(C-f)/c,g=w*(C-(f-S))/c,b=(m=T+w+u)-2*u,y=T-g+w,x=T+g+w,P=A,v=A+S-r,i.y<0&&(v=A+S+r)),i.shapeType="path",i.shapeArgs={x:m,y:P,width:b-m,height:S,d:[["M",m,P],["L",b,P],["L",y,v],["L",x,v],["Z"]]}}}}ze.defaultOptions=Re(Ye.defaultOptions,{}),P().registerSeriesType("columnpyramid",ze);let{arearange:De}=P().seriesTypes,{addEvent:Oe,merge:He,extend:Be}=y();class We extends xt{getColumnMetrics(){return this.linkedParent&&this.linkedParent.columnMetrics||dt().prototype.getColumnMetrics.call(this)}
1drawDataLabels(){let t=this.pointValKey;if(De)for(let e of(De.prototype.drawDataLabels.call(this),this.points))e.y=e[t]}toYData(t){return[t.low,t.high]}}We.defaultOptions=He(xt.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}),Oe(We,"afterTranslate",function(){for(let t of this.points)t.plotLow=t.plotY},{order:0}),Be(We.prototype,{pointArrayMap:["low","high"],pointValKey:"high",doQuartiles:!1}),P().registerSeriesType("errorbar",We);let{series:{prototype:{pointClass:Fe}}}=P(),{noop:Ge}=y(),{series:qe,seriesTypes:{column:Ve}}=P(),{clamp:_e,isNumber:Ue,extend:Ke,merge:je,pick:Ze,pInt:$e,defined:Qe}=y();class Je extends qe{translate(){let t=this.yAxis,e=this.options,i=t.center;this.generatePoints(),this.points.forEach(s=>{let a=je(e.dial,s.dial),o=$e(a.radius)*i[2]/200,r=$e(a.baseLength)*o/100,n=$e(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);(Ue(p)||!1===e.wrap)&&(p=Ue(p)?p/180*Math.PI:0,d=_e(d,t.startAngleRad-p,t.endAngleRad+p)),d=180*d/Math.PI,s.shapeType="path";let c=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"]];s.shapeArgs={d:c,translateX:i[0],translateY:i[1],rotation:d},s.plotX=i[0],s.plotY=i[1],Qe(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=je(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),qe.prototype.render.call(this),this.group.clip(this.chart.clipRect)}setData(t,e){qe.prototype.setData.call(this,t,!1),this.processData(),this.generatePoints(),Ze(e,!0)&&this.chart.redraw()}hasData(){return!!this.points.length}}Je.defaultOptions=je(qe.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}),Ke(Je.prototype,{angular:!0,directTouch:!0,drawGraph:Ge,drawTracker:Ve.prototype.drawTracker,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,pointClass:class extends Fe{setState(t){this.state=t}},trackerGroups:["group","dataLabelsGroup"]}),P().registerSeriesType("gauge",Je);let{composed:ti}=y(),{addEvent:ei,pushUnique:ii}=y();function si(){let t,e,i,s=this;s.container&&(t=ei(s.container,"mousedown",t=>{let a=s.hoverPoint;a&&a.series&&a.series.hasDraggableNodes&&a.series.options.draggable&&(a.series.onMouseDown(a,t),e=ei(s.container,"mousemove",t=>a&&a.series&&a.series.onMouseMove(a,t)),i=ei(s.container.ownerDocument,"mouseup",t=>(e(),i(),a&&a.series&&a.series.onMouseUp(a,t))))})),ei(s,"destroy",function(){t()})}let ai={compose:function(t){ii(ti,"DragNodes")&&ei(t,"load",si)},onMouseDown:function(t,e){let i=this.chart.pointer?.normalize(e)||e;t.fixedPosition={chartX:i.chartX,chartY:i.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:oi}=y(),{composed:ri}=y(),{addEvent:ni,pushUnique:li}=y();function hi(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(t=>{t.updateSimulation()}),this.redraw())}function pi(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(t=>{t.updateSimulation(!1)}),this.redraw())}function di(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(t=>{t.stop()})}function ci(){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){for(oi(!1,this),this.graphLayoutsLookup.forEach(t=>t.start());!t;)t=!0,this.graphLayoutsLookup.forEach(i);
1e&&this.series.forEach(t=>{t&&t.layout&&t.render()})}}let ui={compose:function(t){li(ri,"GraphLayout")&&(ni(t,"afterPrint",hi),ni(t,"beforePrint",pi),ni(t,"predraw",di),ni(t,"render",ci))},integrations:{},layouts:{}};var gi=f(960),fi=f.n(gi);let{seriesTypes:{bubble:{prototype:{pointClass:mi}}}}=P(),{isNumber:bi}=y(),yi={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?1:0)}},{noop:xi}=y(),Pi={barycenter:function(){let t,e,i=this.options.gravitationalConstant,s=this.box,a=this.nodes;for(let o of a)this.options.splitSeries&&!o.isParentNode?(t=o.series.parentNode.plotX,e=o.series.parentNode.plotY):(t=s.width/2,e=s.height/2),o.fixedPosition||(o.plotX-=(o.plotX-t)*i/(o.mass*Math.sqrt(a.length)),o.plotY-=(o.plotY-e)*i/(o.mass*Math.sqrt(a.length)))},getK:xi,integrate:yi.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)}},vi={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.dis
vendor: 4,607 bytes, line 1
1pX+=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 Mi{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 Mi({left:this.box.left,top:this.box.top,width:t,height:e}),this.nodes[1]=new Mi({left:this.box.left+t,top:this.box.top,width:t,height:e}),this.nodes[2]=new Mi({left:this.box.left+t,top:this.box.top+e,width:t,height:e}),this.nodes[3]=new Mi({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?i?0:3: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 Mi({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 Li=class{constructor(t,e,i,s){this.box={left:t,top:e,width:i,height:s},this.maxDepth=25,this.root=new Mi(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:ki}=y(),{clamp:wi,defined:Ai,isFunction:Si,fireEvent:Ti,pick:Ci}=y();class Ni{constructor(){this.box={},this.currentStep=0,this.initialRendering=!0,this.links=[],this.nodes=[],this.series=[],this.simulation=!1}static compose(t){ui.compose(t),ui.integrations.euler=vi,ui.integrations.verlet=yi,ui.layouts["reingold-fruchterman"]=Ni}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=ui.integrations[t.integration],this.enableSimulation=t.enableSimulation,this.attractiveForce=Ci(t.attractiveForce,this.integration.attractiveForceFunction),this.repulsiveForce=Ci(t.repulsiveForce,this.integration.repulsiveForceFunction),this.approximation=t.approximation}updateSimulation(t){this.enableSimulation=Ci(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&&ki.cancelAnimationFrame(this.simulation),this.simulation=ki.requestAnimationFrame(()=>
1this.step())):(this.simulation=!1,this.series.forEach(t=>{Ti(t,"afterSimulation")}))}}stop(){this.simulation&&ki.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=Ci(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 Li(this.box.left,this.box.top,this.box.width,this.box.height),this.quadTree.insertNodes(this.nodes)}initPositions(){let t=this.options.initialPositions;if(Si(t))for(let e of(t.call(this),this.nodes))Ai(e.prevX)||(e.prevX=e.plotX),Ai(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=Ci(t.plotX,e.width/2+r*Math.cos(i*s)),t.plotY=t.prevY=Ci(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=Ci(t.plotX,e.width*a(o)),t.plotY=t.prevY=Ci(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=wi(t.plotX,e.left+i,e.width-i),t.plotY=wi(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:s,absX:Math.abs(i),absY:Math.abs(s)}}}
1let Xi=Ni,{addEvent:Yi,pick:Ii}=y();function Ri(){let t=this.series,e=[];return t.forEach(t=>{t.parentNode&&t.parentNode.selected&&e.push(t.parentNode)}),e}function Ei(){this.allDataPoints&&delete this.allDataPoints}class zi extends Xi{constructor(){super(...arguments),this.index=NaN,this.nodes=[],this.series=[]}static compose(t){Xi.compose(t),ui.integrations.packedbubble=Pi,ui.layouts.packedbubble=zi;let e=t.prototype;e.getSelectedParentNodes||(Yi(t,"beforeRedraw",Ei),e.getSelectedParentNodes=Ri)}beforeStep(){this.options.marker&&this.series.forEach(t=>{t&&t.calculateParentRadius()})}isStable(){let t=Math.abs(this.prevSystemTemperature-this.systemTemperature);return 1>Math.abs(10*this.systemTemperature/Math.sqrt(this.nodes.length))&&t<1e-5||this.temperature<=0}setCircularPositions(){let t,e,i=this.box,s=this.nodes,a=2*Math.PI/(s.length+1),o=this.options.initialPositionRadius,r=0;for(let n of s)this.options.splitSeries&&!n.isParentNode?(t=n.series.parentNode.plotX,e=n.series.parentNode.plotY):(t=i.width/2,e=i.height/2),n.plotX=n.prevX=Ii(n.plotX,t+o*Math.cos(n.index||r*a)),n.plotY=n.prevY=Ii(n.plotY,e+o*Math.sin(n.index||r*a)),n.dispX=0,n.dispY=0,r++}repulsiveForces(){let t,e,i,s=this,a=s.options.bubblePadding,o=s.nodes;o.forEach(r=>{r.degree=r.mass,r.neighbours=0,o.forEach(o=>{t=0,r!==o&&!r.fixedPosition&&(s.options.seriesInteraction||r.series===o.series)&&(i=s.getDistXY(r,o),(e=s.vectorLength(i)-(r.marker.radius+o.marker.radius+a))<0&&(r.degree+=.01,r.neighbours++,t=s.repulsiveForce(-e/Math.sqrt(r.neighbours),s.k,r,o)),s.force("repulsive",r,t*o.mass,i,o,e))})})}applyLimitBox(t,e){let i,s;this.options.splitSeries&&!t.isParentNode&&this.options.parentNodeLimit&&(i=this.getDistXY(t,t.series.parentNode),(s=t.series.parentNodeRadius-t.marker.radius-this.vectorLength(i))<0&&s>-2*t.marker.radius&&(t.plotX-=.01*i.x,t.plotY-=.01*i.y)),super.applyLimitBox(t,e)}}ui.layouts.packedbubble=zi;let{merge:Di,syncTimeout:Oi}=y(),{animObject:Hi}=y();var Bi=f(28),Wi=f.n(Bi);let{deg2rad:Fi}=y(),{addEvent:Gi,merge:qi,uniqueKey:Vi,defined:_i,extend:Ui}=y();function Ki(t,e){e=qi(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},e);let i=this.renderer.url,s=this.text||this,a=s.textPath,{attributes:o,enabled:r}=e;if(t=t||a&&a.path,a&&a.undo(),t&&r){let e=Gi(s,"afterModifyTree",e=>{if(t&&r){let a=t.attr("id");a||t.attr("id",a=Vi());let r={x:0,y:0};_i(o.dx)&&(r.dx=o.dx,delete o.dx),_i(o.dy)&&(r.dy=o.dy,delete o.dy),s.attr(r),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let n=e.nodes.slice(0);e.nodes.length=0,e.nodes[0]={tagName:"textPath",attributes:Ui(o,{"text-anchor":o.textAnchor,href:`${i}#${a}`}),children:n}}});s.textPath={path:t,undo:e}}else s.attr({dx:0,dy:0}),delete s.textPath;return this.added&&(s.textCache="",this.renderer.buildText(s)),this}function ji(t){let e=t.bBox,i=this.element?.querySelector("textPath");if(i){let s=[],{b:a,h:o}=this.renderer.fontMetrics(this.element),r=o-a,n=RegExp('(<tspan>|<tspan(?!\\sclass="highcharts-br")[^>]*>|<\\/tspan>)',"g"),l=i.innerHTML.replace(n,"").split(/<tspan class="highcharts-br"[^>]*>/),h=l.length,p=(t,e)=>{let{x:s,y:o}=e,n=(i.getRotationOfChar(t)-90)*Fi,l=Math.cos(n),h=Math.sin(n);return[[s-r*l,o-r*h],[s+a*l,o+a*h]]};for(let e=0,a=0;a<h;a++){let o=l[a].length;for(let r=0;r<o;r+=5)try{let t=e+r+a,[o,n]=p(t,i.getStartPositionOfChar(t));0===r?(s.push(n),s.push(o)):(0===a&&s.unshift(n),a===h-1&&s.push(o))}catch(t){break}e+=o-1;try{let t=e+a,o=i.getEndPositionOfChar(t),[r,n]=p(t,o);s.unshift(n),s.unshift(r)}catch(t){break}}s.length&&s.push(s[0].slice()),e.polygon=s}return e}function Zi(t){let e=t.labelOptions,i=t.point,s=e[i.formatPrefix+"TextPath"]||e.textPath;s&&!e.useHTML&&(this.setTextPath(i.getDataLabelPath?.(this)||i.graphic,s),i.dataLabelPath&&!s.enabled&&(i.dataLabelPath=i.dataLabelPath.destroy()))}let{parse:$i}=Mt(),{noop:Qi}=y(),{series:{prototype:Ji},seriesTypes:{bubble:ts}}=P(),{initDataLabels:es,initDataLabelsDefer:is}={initDataLabels:function(){let t=this.options.dataLabels;if(!this.dataLabelsGroup){let e=this.initDataLabelsGroup();return!this.chart.styledMode&&t?.style&&e.css(t.style),e.attr({opacity:0}
1),this.visible&&e.show(),e}return this.dataLabelsGroup.attr(Di({opacity:1},this.getPlotBox("data-labels"))),this.dataLabelsGroup},initDataLabelsDefer:function(){let t=this.options.dataLabels;t?.defer&&this.options.layoutAlgorithm?.enableSimulation?Oi(()=>{this.deferDataLabels=!1},t?Hi(t.animation).defer:0):this.deferDataLabels=!1}},{addEvent:ss,clamp:as,defined:os,extend:rs,fireEvent:ns,isArray:ls,isNumber:hs,merge:ps,pick:ds}=y();!function(t){Gi(t,"afterGetBBox",ji),Gi(t,"beforeAddingDataLabel",Zi);let e=t.prototype;e.setTextPath||(e.setTextPath=Ki)}(Wi());class cs extends ts{constructor(){super(...arguments),this.parentNodeMass=0,this.deferDataLabels=!0}static compose(t,e,i){ts.compose(t,e,i),ai.compose(e),zi.compose(e)}accumulateAllPoints(){let t=this.chart,e=[];for(let i of t.series)if(i.is("packedbubble")&&i.reserveSpace()){let t=i.getColumn("value");for(let s=0;s<t.length;s++)e.push([null,null,t[s],i.index,s,{id:s,marker:{radius:0}}])}return e}addLayout(){let t,e=this.options.layoutAlgorithm=this.options.layoutAlgorithm||{},i=e.type||"packedbubble",s=this.chart.options.chart,a=this.chart.graphLayoutsStorage,o=this.chart.graphLayoutsLookup;a||(this.chart.graphLayoutsStorage=a={},this.chart.graphLayoutsLookup=o=[]),(t=a[i])||(e.enableSimulation=os(s.forExport)?!s.forExport:e.enableSimulation,a[i]=t=new ui.layouts[i],t.init(e),o.splice(t.index,0,t)),this.layout=t,this.points.forEach(t=>{t.mass=2,t.degree=1,t.collisionNmb=1}),t.setArea(0,0,this.chart.plotWidth,this.chart.plotHeight),t.addElementsToCollection([this],t.series),t.addElementsToCollection(this.points,t.nodes)}addSeriesLayout(){let t=this.options.layoutAlgorithm=this.options.layoutAlgorithm||{},e=t.type||"packedbubble",i=this.chart.graphLayoutsStorage,s=this.chart.graphLayoutsLookup,a=ps(t,t.parentNodeOptions,{enableSimulation:this.layout.options.enableSimulation}),o=i[e+"-series"];o||(i[e+"-series"]=o=new ui.layouts[e],o.init(a),s.splice(o.index,0,o)),this.parentNodeLayout=o,this.createParentNodes()}calculateParentRadius(){let t=this.seriesBox();this.parentNodeRadius=as(Math.sqrt(2*this.parentNodeMass/Math.PI)+20,20,t?Math.max(Math.sqrt(Math.pow(t.width,2)+Math.pow(t.height,2))/2+20,20):Math.sqrt(2*this.parentNodeMass/Math.PI)+20),this.parentNode&&(this.parentNode.marker.radius=this.parentNode.radius=this.parentNodeRadius)}calculateZExtremes(){let t=this.chart.series,e=this.options.zMin,i=this.options.zMax,s=1/0,a=-1/0;return e&&i?[e,i]:(t.forEach(t=>{t.getColumn("value").forEach(t=>{os(t)&&(t>a&&(a=t),t<s&&(s=t))})}),[e=ds(e,s),i=ds(i,a)])}checkOverlap(t,e){let i=t[0]-e[0],s=t[1]-e[1];return Math.sqrt(i*i+s*s)-Math.abs(t[2]+e[2])<-.001}createParentNodes(){let t,e=this.pointClass,i=this.chart,s=this.parentNodeLayout,a=this.layout.options,o=this.parentNode,r={radius:this.parentNodeRadius,lineColor:this.color,fillColor:$i(this.color).brighten(.4).get()};a.parentNodeOptions&&(r=ps(a.parentNodeOptions.marker||{},r)),this.parentNodeMass=0,this.points.forEach(t=>{this.parentNodeMass+=Math.PI*Math.pow(t.marker.radius,2)}),this.calculateParentRadius(),s.nodes.forEach(e=>{e.seriesIndex===this.index&&(t=!0)}),s.setArea(0,0,i.plotWidth,i.plotHeight),t||(o||(o=new e(this,{mass:this.parentNodeRadius/2,marker:r,dataLabels:{inside:!1},states:{normal:{marker:r},hover:{marker:r}},dataLabelOnNull:!0,degree:this.parentNodeRadius,isParentNode:!0,seriesIndex:this.index})),this.parentNode&&(o.plotX=this.parentNode.plotX,o.plotY=this.parentNode.plotY),this.parentNode=o,s.addElementsToCollection([this],s.series),s.addElementsToCollection([o],s.nodes))}deferLayout(){let t=this.options.layoutAlgorithm;this.visible&&(this.addLayout(),t.splitSeries&&this.addSeriesLayout())}destroy(){this.chart.graphLayoutsLookup&&this.chart.graphLayoutsLookup.forEach(t=>{t.removeElementFromCollection(this,t.series)},this),this.parentNode&&this.parentNodeLayout&&(this.parentNodeLayout.removeElementFromCollection(this.parentNode,this.parentNodeLayout.nodes),this.parentNode.dataLabel&&(this.parentNode.dataLabel=this.parentNode.dataLabel.destroy())),Ji.destroy.apply(this,arguments)}drawDataLabels(){!this.deferDataLabels&&(Ji.drawDataLabels.call(this,this.points),this.parentNode&&(this.parentNode.formatPrefix="parentNode",Ji.drawDataLabels.call(this,[this.parentNode])))}drawGraph(){if(!this.layout||!this.layout.options.splitSeries)return;let t=this.chart,e=this.layout.options.parentNodeOptions.marker,i={fill:e.fillColor||$i(this.color).brighten(.4).get(),opacity:e.fillOpacity,stroke:e.lineColor||this.color,"stroke-width":ds(e.lineWidth,this.options.lineWidth)},s={};this.parentNodesGroup=this.plotGroup("parentNodesGroup","parentNode",this.visible?"inherit":"hidden",.1,t.seriesGroup),this.group?.attr({zIndex:2}),this.calculateParentRadius(),this.parentNode&&os(this.parentNode.plotX)&&os(this.parentNode.plotY)&&os(this.parentNodeRadius)&&(s=ps({x:this.parentNode.plotX-this.parentNodeRadius,y:this.parentNode.plotY-this.parentNodeRadius,width:2*this.parentNodeRadius,height:2*this.parentNodeRadius},i),this.parentNode.graphic||(this.graph=this.parentNode.graphic=t.renderer.symbol(i.symbol).add(this.parentNodesGroup)),this.parentNode.graphic.attr(s))}drawTracker(){let t,e=this.parentNode;super.drawTracker(),e&&(t=ls(e.dataLabels)?e.dataLabels:e.dataLabel?[e.dataLabel]:[],e.graphic&&(e.graphic.element.point=e),t.forEach(t=>{(t.div||t.element).point=e}))}getPointRadius(){let t,e,i,s,a=this.chart,o=a.plotWidth,r=a.plotHeight,n=this.options,l=n.useSimulation,h=Math.min(o,r),p={},d=[],c=a.allDataPoints||[],u=c.length;["minSize","maxSize"].forEach(t=>{let e=parseInt(n[t],10),i=/%$/.test(n[t]);p[t]=i?h*e/100:e*Math.sqrt(u)}),a.minRadius=t=p.minSize/Math.sqrt(u),a.maxRadius=e=p.maxSize/Math.sqrt(u);let g=l?this.calculateZExtremes():[t,e];
vendor: 2,070 bytes, line 1
1c.forEach((a,o)=>{i=l?as(a[2],g[0],g[1]):a[2],0===(s=this.getRadius(g[0],g[1],t,e,i))&&(s=null),c[o][2]=s,d.push(s)}),this.radii=d}init(){return Ji.init.apply(this,arguments),is.call(this),this.eventsToUnbind.push(ss(this,"updatedData",function(){this.chart.series.forEach(t=>{t.type===this.type&&(t.isDirty=!0)},this)})),this}onMouseUp(t){if(t.fixedPosition&&!t.removed){let e,i=this.layout,s=this.parentNodeLayout;s&&i.options.dragBetweenSeries&&s.nodes.forEach(s=>{t&&t.marker&&s!==t.series.parentNode&&(e=i.getDistXY(t,s),i.vectorLength(e)-s.marker.radius-t.marker.radius<0&&(s.series.addPoint(ps(t.options,{plotX:t.plotX,plotY:t.plotY}),!1),i.removeElementFromCollection(t,i.nodes),t.remove()))}),ai.onMouseUp.apply(this,arguments)}}placeBubbles(t){let e,i,s=this.checkOverlap,a=this.positionBubble,o=[],r=1,n=0,l=0,h=[],p=t.sort((t,e)=>e[2]-t[2]);if(p.length){if(o.push([[0,0,p[0][2],p[0][3],p[0][4]]]),p.length>1)for(o.push([[0,0-p[1][2]-p[0][2],p[1][2],p[1][3],p[1][4]]]),i=2;i<p.length;i++)p[i][2]=p[i][2]||1,s(e=a(o[r][n],o[r-1][l],p[i]),o[r][0])?(o.push([]),l=0,o[r+1].push(a(o[r][n],o[r][0],p[i])),r++,n=0):r>1&&o[r-1][l+1]&&s(e,o[r-1][l+1])?(l++,o[r].push(a(o[r][n],o[r-1][l],p[i])),n++):(n++,o[r].push(e));this.chart.stages=o,this.chart.rawPositions=[].concat.apply([],o),this.resizeRadius(),h=this.chart.rawPositions}return h}pointAttribs(t,e){let i=this.options,s=t&&t.isParentNode,a=i.marker;s&&i.layoutAlgorithm&&i.layoutAlgorithm.parentNodeOptions&&(a=i.layoutAlgorithm.parentNodeOptions.marker);let o=a.fillOpacity,r=Ji.pointAttribs.call(this,t,e);return 1!==o&&(r["fill-opacity"]=o),r}positionBubble(t,e,i){let s=Math.asin,a=Math.acos,o=Math.pow,r=Math.abs,n=(0,Math.sqrt)(o(t[0]-e[0],2)+o(t[1]-e[1],2)),l=a((o(n,2)+o(i[2]+e[2],2)-o(i[2]+t[2],2))/(2*(i[2]+e[2])*n)),h=s(r(t[0]-e[0])/n),p=(t[1]-e[1]<0?0:Math.PI)+l+h*((t[0]-e[0])*(t[1]-e[1])<0?1:-1),d=Math.cos(p),c=Math.sin(p);return[e[0]+(e[2]+i[2])*c,e[1]-(e[2]+i[2])*d,i[2],i[3],i[4]]}render(){let t=[];Ji.render.apply(this,arguments),!this.options.dataLabels.allowOverlap&&(this.data.forEach(e=>
1{ls(e.dataLabels)&&e.dataLabels.forEach(e=>{t.push(e)})}),this.options.useSimulation&&this.chart.hideOverlappingLabels(t))}resizeRadius(){let t,e,i,s,a,o=this.chart,r=o.rawPositions,n=Math.min,l=Math.max,h=o.plotLeft,p=o.plotTop,d=o.plotHeight,c=o.plotWidth;for(let o of(t=i=Number.POSITIVE_INFINITY,e=s=Number.NEGATIVE_INFINITY,r))a=o[2],t=n(t,o[0]-a),e=l(e,o[0]+a),i=n(i,o[1]-a),s=l(s,o[1]+a);let u=[e-t,s-i],g=[(c-h)/u[0],(d-p)/u[1]],f=n.apply([],g);if(Math.abs(f-1)>1e-10){for(let t of r)t[2]*=f;this.placeBubbles(r)}else o.diffY=d/2+p-i-(s-i)/2,o.diffX=c/2+h-t-(e-t)/2}seriesBox(){let t,e=this.chart,i=this.data,s=Math.max,a=Math.min,o=[e.plotLeft,e.plotLeft+e.plotWidth,e.plotTop,e.plotTop+e.plotHeight];return i.forEach(e=>{os(e.plotX)&&os(e.plotY)&&e.marker.radius&&(t=e.marker.radius,o[0]=a(o[0],e.plotX-t),o[1]=s(o[1],e.plotX+t),o[2]=a(o[2],e.plotY-t),o[3]=s(o[3],e.plotY+t))}),hs(o.width/o.height)?o:null}setVisible(){let t=this;Ji.setVisible.apply(t,arguments),t.parentNodeLayout&&t.graph?t.visible?(t.graph.show(),t.parentNode.dataLabel&&t.parentNode.dataLabel.show()):(t.graph.hide(),t.parentNodeLayout.removeElementFromCollection(t.parentNode,t.parentNodeLayout.nodes),t.parentNode.dataLabel&&t.parentNode.dataLabel.hide()):t.layout&&(t.visible?t.layout.addElementsToCollection(t.points,t.layout.nodes):t.points.forEach(e=>{t.layout.removeElementFromCollection(e,t.layout.nodes)}))}translate(){let t,e,i,s=this.chart,a=this.data,o=this.index,r=this.options.useSimulation;for(let n of(this.generatePoints(),os(s.allDataPoints)||(s.allDataPoints=this.accumulateAllPoints(),this.getPointRadius()),r?i=s.allDataPoints:(i=this.placeBubbles(s.allDataPoints),this.options.draggable=!1),i))n[3]===o&&(t=a[n[4]],e=ds(n[2],void 0),r||(t.plotX=n[0]-s.plotLeft+s.diffX,t.plotY=n[1]-s.plotTop+s.diffY),hs(e)&&(t.marker=rs(t.marker,{radius:e,width:2*e,height:2*e}),t.radius=e));r&&this.deferLayout(),ns(this,"afterTranslate")}}cs.defaultOptions=ps(ts.defaultOptions,{minSize:"10%",maxSize:"50%",sizeBy:"area",zoneAxis:"y",crisp:!1,tooltip:{pointFormat:"Value: {point.value}"},draggable:!0,useSimulation:!0,parentNode:{allowPointSelect:!1},dataLabels:{formatter:function(){let{numberFormatter:t}=this.series.chart,{value:e}=this.point;return bi(e)?t(e,-1):""},parentNodeFormatter:function(){return this.name||""},parentNodeTextPath:{enabled:!0},padding:0,style:{transition:"opacity 2000ms"}},layoutAlgorithm:{initialPositions:"circle",initialPositionRadius:20,bubblePadding:5,parentNodeLimit:!1,seriesInteraction:!0,dragBetweenSeries:!1,parentNodeOptions:{maxIterations:400,gravitationalConstant:.03,maxSpeed:50,initialPositionRadius:100,seriesInteraction:!0,marker:{fillColor:null,fillOpacity:1,lineWidth:null,lineColor:null,symbol:"circle"}},enableSimulation:!0,type:"packedbubble",integration:"packedbubble",maxIterations:1e3,splitSeries:!1,maxSpeed:5,gravitationalConstant:.01,friction:-.981}}),rs(cs.prototype,{pointClass:class extends mi{destroy(){return this.series?.layout&&this.series.layout.removeElementFromCollection(this,this.series.layout.nodes),Kt().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,Kt().prototype.firePointEvent.apply(this,arguments),t.allowPointSelect=e}else Kt().prototype.firePointEvent.apply(this,arguments)}select(){let t=this.series.chart;this.isParentNode?(t.getSelectedPoints=t.getSelectedParentNodes,Kt().prototype.select.apply(this,arguments),t.getSelectedPoints=fi().prototype.getSelectedPoints):Kt().prototype.select.apply(this,arguments)}},axisTypes:[],directTouch:!0,forces:["barycenter","repulsive"],hasDraggableNodes:!0,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointArrayMap:["value"],pointValKey:"value",requireSorting:!1,trackerGroups:["group","dataLabelsGroup","parentNodesGroup"],initDataLabels:es,alignDataLabel:Ji.alignDataLabel,indexateNodes:Qi,onMouseDown:ai.onMouseDown,onMouseMove:ai.onMouseMove,redrawHalo:ai.redrawHalo,searchPoint:Qi}),P().registerSeriesType("packedbubble",cs);let{noop:us}=y(),{area:gs,line:fs,scatter:ms}=P().seriesTypes,{extend:bs,merge:ys}=y();class xs extends ms{getGraphPath(){let t=fs.prototype.getGraphPath.call(this),e=t.length+1;for(;e--;)(e===t.length||"M"===t[e][0])&&e>0&&t.splice(e,0,["Z"]);return this.areaPath=t,t}drawGraph(){this.options.fillColor=this.color,gs.prototype.drawGraph.call(this)}}xs.defaultOptions=ys(ms.defaultOptions,{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:""},trackByArea:!0,legendSymbol:"rectangle"}),bs(xs.prototype,{type:"polygon",drawTracker:fs.prototype.drawTracker,setStackedPoints:us}),P().registerSeriesType("polygon",xs);
1let Ps={circular:{gridLineWidth:1,labels:{align:void 0,x:0,y:void 0},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},radial:{gridLineInterpolation:"circle",gridLineWidth:1,labels:{align:"right",padding:5,x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}},radialGauge:{endOnTick:!1,gridLineWidth:0,labels:{align:"center",distance:-25,x:0,y:void 0},lineWidth:1,minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickPosition:"inside",tickWidth:2,title:{rotation:0,text:""},zIndex:2}},{defaultOptions:vs}=y(),{composed:Ms,noop:Ls}=y(),{addEvent:ks,correctFloat:ws,defined:As,extend:Ss,fireEvent:Ts,isObject:Cs,merge:Ns,pick:Xs,pushUnique:Ys,relativeLength:Is,wrap:Rs}=y();!function(t){function e(){this.autoConnect=this.isCircular&&void 0===Xs(this.userMax,this.options.max)&&ws(this.endAngleRad-this.startAngleRad)===ws(2*Math.PI),!this.isCircular&&this.chart.inverted&&this.max++,this.autoConnect&&(this.max+=(this.categories?1:this.pointRange)||this.closestPointRange||0)}function i(){return()=>{if(this.isRadial&&this.tickPositions&&this.options.labels&&!0!==this.options.labels.allowOverlap)return this.tickPositions.map(t=>this.ticks[t]&&this.ticks[t].label).filter(t=>!!t)}}function s(){return Ls}function a(t,e,i){let s,a,o,r=this.pane.center,n=t.value;return this.isCircular?(As(n)?t.point&&(t.point.shapeArgs||{}).start&&(n=this.chart.inverted?this.translate(t.point.rectPlotY,!0):t.point.x):(a=t.chartX||0,o=t.chartY||0,n=this.translate(Math.atan2(o-i,a-e)-this.startAngleRad,!0)),a=(s=this.getPosition(n)).x,o=s.y):(As(n)||(a=t.chartX,o=t.chartY),As(a)&&As(o)&&(i=r[1]+this.chart.plotTop,n=this.translate(Math.min(Math.sqrt(Math.pow(a-e,2)+Math.pow(o-i,2)),r[2]/2)-r[3]/2,!0))),[n,a||0,o||0]}function o(t,e,i){let s,a,o=this.pane.center,r=this.chart,n=this.left||0,l=this.top||0,h=Xs(e,o[2]/2-this.offset);return void 0===i&&(i=this.horiz?0:this.center&&-this.center[3]/2),i&&(h+=i),this.isCircular||void 0!==e?((a=this.chart.renderer.symbols.arc(n+o[0],l+o[1],h,h,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0})).xBounds=[n+o[0]],a.yBounds=[l+o[1]-h]):(s=this.postTranslate(this.angleRad,h),a=[["M",this.center[0]+r.plotLeft,this.center[1]+r.plotTop],["L",s.x,s.y]]),a}function r(){this.constructor.prototype.getOffset.call(this),this.chart.axisOffset[this.side]=0}function n(t,e,i){let s,a,o,r,n,l,h=this.chart,p=t=>{if("string"==typeof t){let e=parseInt(t,10);return b.test(t)&&(e=e*u/100),e}return t}
1,d=this.center,c=this.startAngleRad,u=d[2]/2,g=Math.min(this.offset,0),f=this.left||0,m=this.top||0,b=/%$/,y=this.isCircular,x=Xs(p(i.outerRadius),u),P=p(i.innerRadius),v=Xs(p(i.thickness),10);if("polygon"===this.options.gridLineInterpolation)l=this.getPlotLinePath({value:t}).concat(this.getPlotLinePath({value:e,reverse:!0}));else{t=Math.max(t,this.min),e=Math.min(e,this.max);let p=this.translate(t),u=this.translate(e);y||(x=p||0,P=u||0),"circle"!==i.shape&&y?(s=c+(p||0),a=c+(u||0)):(s=-Math.PI/2,a=1.5*Math.PI,n=!0),x-=g,v-=g,l=h.renderer.symbols.arc(f+d[0],m+d[1],x,x,{start:Math.min(s,a),end:Math.max(s,a),innerR:Xs(P,x-v),open:n,borderRadius:i.borderRadius}),y&&(o=(a+s)/2,r=f+d[0]+d[2]/2*Math.cos(o),l.xBounds=o>-Math.PI/2&&o<Math.PI/2?[r,h.plotWidth]:[0,r],l.yBounds=[m+d[1]+d[2]/2*Math.sin(o)],l.yBounds[0]+=o>-Math.PI&&o<0||o>Math.PI?-10:10)}return l}function l(t){let e,i,s,a,o,r,n,l,h,p=this.pane.center,d=this.chart,c=d.inverted,u=t.reverse,g=this.pane.options.background?this.pane.options.background[0]||this.pane.options.background:{},f=g.innerRadius||"0%",m=g.outerRadius||"100%",b=p[0]+d.plotLeft,y=p[1]+d.plotTop,x=this.height,P=t.isCrosshair,v=p[3]/2,M=t.value,L=this.getPosition(M),k=L.x,w=L.y;if(P&&(M=(l=this.getCrosshairPosition(t,b,y))[0],k=l[1],w=l[2]),this.isCircular)i=Math.sqrt(Math.pow(k-b,2)+Math.pow(w-y,2)),s="string"==typeof f?Is(f,1):f/i,a="string"==typeof m?Is(m,1):m/i,p&&v&&(s<(e=v/i)&&(s=e),a<e&&(a=e)),h=[["M",b+s*(k-b),y-s*(y-w)],["L",k-(1-a)*(k-b),w+(1-a)*(y-w)]];else if((M=this.translate(M))&&(M<0||M>x)&&(M=0),"circle"===this.options.gridLineInterpolation)h=this.getLinePath(0,M,v);else if(h=[],d[c?"yAxis":"xAxis"].forEach(t=>{t.pane===this.pane&&(o=t)}),o){n=o.tickPositions,o.autoConnect&&(n=n.concat([n[0]])),u&&(n=n.slice().reverse()),M&&(M+=v);for(let t=0;t<n.length;t++)r=o.getPosition(n[t],M),h.push(t?["L",r.x,r.y]:["M",r.x,r.y])}return h}function h(t,e){let i=this.translate(t);return this.postTranslate(this.isCircular?i:this.angleRad,Xs(this.isCircular?e:i<0?0:i,this.center[2]/2)-this.offset)}function p(){let t=this.center,e=this.chart,i=this.options.title;return{x:e.plotLeft+t[0]+(i.x||0),y:e.plotTop+t[1]-{high:.5,middle:.25,low:0}[i.align]*t[2]+(i.y||0)}}function d(t){t.beforeSetTickPositions=e,t.createLabelCollector=i,t.getCrosshairPosition=a,t.getLinePath=o,t.getOffset=r,t.getPlotBandPath=n,t.getPlotLinePath=l,t.getPosition=h,t.getTitlePosition=p,t.postTranslate=v,t.setAxisSize=L,t.setAxisTranslation=k,t.setOptions=w}function c(){let t=this.chart,e=this.options,i=t.angular&&this.isXAxis,s=this.pane,a=s&&s.options;if(!i&&s&&(t.angular||t.polar)){let t=2*Math.PI,i=(Xs(a.startAngle,0)-90)*Math.PI/180,s=(Xs(a.endAngle,Xs(a.startAngle,0)+360)-90)*Math.PI/180;this.angleRad=(e.angle||0)*Math.PI/180,this.startAngleRad=i,this.endAngleRad=s,this.offset=e.offset||0;let o=(i%t+t)%t,r=(s%t+t)%t;o>Math.PI&&(o-=t),r>Math.PI&&(r-=t),this.normalizedStartAngleRad=o,this.normalizedEndAngleRad=r}}function u(t){this.isRadial&&(t.align=void 0,t.preventDefault())}function g(){if(this.chart&&this.chart.labelCollectors){let t=this.labelCollector?this.chart.labelCollectors.indexOf(this.labelCollector):-1;t>=0&&this.chart.labelCollectors.splice(t,1)}}function f(t){let e,i=this.chart,a=i.angular,o=i.polar,r=this.isXAxis,n=this.coll,l=t.userOptions.pane||0,h=this.pane=i.pane&&i.pane[l];"colorAxis"!==n?(a?(a&&r?(this.isHidden=!0,this.createLabelCollector=s,this.getOffset=Ls,this.redraw=M,this.render=M,this.setScale=Ls,this.setCategories=Ls,this.setTitle=Ls):d(this),e=!r):o&&(d(this),e=this.horiz),a||o?(this.isRadial=!0,this.labelCollector||(this.labelCollector=this.createLabelCollector()),this.labelCollector&&i.labelCollectors.push(this.labelCollector)):this.isRadial=!1,h&&e&&(h.axis=this),this.isCircular=e):this.isRadial=!1}function m(){this.isRadial&&this.beforeSetTickPositions()}function b(t){let e=this.label;if(!e)return;let i,s=this.axis,a=e.getBBox(),o=s.options.labels,r=(s.translate(this.pos)+s.startAngleRad+Math.PI/2)/Math.PI*180%360,n=Math.round(r),l=As(o.y)?0:-.3*a.height,h=o.y,p=20,d=o.align,c="end",u=n<0?n+360:n,g=u,f=0,m=0;s.isRadial&&(i=s.getPosition(this.pos,s.center[2]/2+Is(Xs(o.distance,-25),s.center[2]/2,-s.center[2]/2)),"auto"===o.rotation?e.attr({rotation:r}):As(h)||(h=s.chart.renderer.fontMetrics(e).b-a.height/2),As(d)||(s.isCircular?(a.width>s.len*s.tickInterval/(s.max-s.min)&&(p=0),d=r>p&&r<180-p?"left":r>180+p&&r<360-p?"right":"center"):d="center",e.attr({align:d})),"auto"===d&&2===s.tickPositions.length&&s.isCircular&&(u>90&&u<180?u=180-u:u>270&&u<=360&&(u=540-u),g>180&&g<=360&&(g=360-g),(s.pane.options.startAngle===n||s.pane.options.startAngle===n+360||s.pane.options.startAngle===n-360)&&(c="start"),d=n>=-90&&n<=90||n>=-360&&n<=-270||n>=270&&n<=360?"start"===c?"right":"left":"start"===c?"left":"right",g>70&&g<110&&(d="center"),u<15||u>=180&&u<195?f=.3*a.height:u>=15&&u<=35?f="start"===c?0:.75*a.height:u>=195&&u<=215?f="start"===c?.75*a.height:0:u>35&&u<=90?f="start"===c?-.25*a.height:a.height:u>215&&u<=270&&(f="start"===c?a.height:-.25*a.height),g<15?m="start"===c?-.15*a.height:.15*a.height:g>165&&g<=180&&(m="start"===c?.15*a.height:-.15*a.height),e.attr({align:d}),e.translate(m,f+l)),t.pos.x=i.x+(o.x||0),t.pos.y=i.y+(h||0))}function x(t){this.axis.getPosition&&Ss(t.pos,this.axis.getPosition(this.pos))}function P({options:e}){e.xAxis&&Ns(!0,t.radialDefaultOptions.circular,e.xAxis),e.yAxis&&Ns(!0,t.radialDefaultOptions.radialGauge,e.yAxis)}function v(t,e){let i=this.chart,s=this.center;return t=this.startAngleRad+t,{x:i.plotLeft+s[0]+Math.cos(t)*e,y:i.plotTop+s[1]+Math.sin(t)*e}}function M(){this.isDirty=!1}function L(){let t,e;this.constructor.prototype.setAxisSize.call(this),this.isRadial&&(this.pane.updateCenter(this),t=this.center=this.pane.center.slice(),this.isCircular?this.sector=this.endAngleRad-this.startAngleRad:(e=this.postTranslate(this.angleRad,t[3]/2),t[0]=e.x-this.chart.plotLeft,t[1]=e.y-this.chart.plotTop),this.len=this.width=this.height=(t[2]-t[3])*Xs(this.sector,1)/2)}function k(){this.constructor.prototype.setAxisTranslation.call(this),this.center&&(this.isCircular?this.transA=(this.endAngleRad-this.startAngleRad)/(this.max-this.min||1):this.transA=(this.center[2]-this.center[3])/2/(this.max-this.min||1),this.isXAxis?this.minPixelPadding=this.transA*this.minPointOffset:this.minPixelPadding=0)}
1function w(e){let{coll:i}=this,{angular:s,inverted:a,polar:o}=this.chart,r={};s?this.isXAxis||(r=Ns(vs.yAxis,t.radialDefaultOptions.radialGauge)):o&&(r=this.horiz?Ns(vs.xAxis,t.radialDefaultOptions.circular):Ns("xAxis"===i?vs.xAxis:vs.yAxis,t.radialDefaultOptions.radial)),a&&"yAxis"===i&&(r.stackLabels=Cs(vs.yAxis,!0)?vs.yAxis.stackLabels:{},r.reversedStacks=!0);let n=this.options=Ns(r,e);n.plotBands||(n.plotBands=[]),Ts(this,"afterSetOptions")}function A(t,e,i,s,a,o,r){let n,l=this.axis;return l.isRadial?["M",e,i,"L",(n=l.getPosition(this.pos,l.center[2]/2+s)).x,n.y]:t.call(this,e,i,s,a,o,r)}t.radialDefaultOptions=Ns(Ps),t.compose=function(t,e){return Ys(Ms,"Axis.Radial")&&(ks(t,"afterInit",c),ks(t,"autoLabelAlign",u),ks(t,"destroy",g),ks(t,"init",f),ks(t,"initialAxisTranslation",m),ks(e,"afterGetLabelPosition",b),ks(e,"afterGetPosition",x),ks(y(),"setOptions",P),Rs(e.prototype,"getMarkPath",A)),t}}(d||(d={}));let Es=d,{animObject:zs}=y(),{composed:Ds}=y(),{addEvent:Os,defined:Hs,find:Bs,isNumber:Ws,merge:Fs,pick:Gs,pushUnique:qs,relativeLength:Vs,splat:_s,uniqueKey:Us,wrap:Ks}=y();function js(){(this.pane||[]).forEach(t=>{t.render()})}function Zs(t){let e=t.args[0].xAxis,i=t.args[0].yAxis,s=t.args[0].chart;e&&i&&("polygon"===i.gridLineInterpolation?(e.startOnTick=!0,e.endOnTick=!0):"polygon"===e.gridLineInterpolation&&s.inverted&&(i.startOnTick=!0,i.endOnTick=!0))}function $s(){this.pane||(this.pane=[]),this.options.pane=_s(this.options.pane||{}),this.options.pane.forEach(t=>{new F(t,this)},this)}function Qs(t){let e=t.args.marker,i=this.chart.xAxis[0],s=this.chart.yAxis[0],a=this.chart.inverted,o=a?s:i,r=a?i:s;if(this.chart.polar){t.preventDefault();let i=(e.attr?e.attr("start"):e.start)-o.startAngleRad,s=e.attr?e.attr("r"):e.r,a=(e.attr?e.attr("end"):e.end)-o.startAngleRad,n=e.attr?e.attr("innerR"):e.innerR;t.result.x=i+o.pos,t.result.width=a-i,t.result.y=r.len+r.pos-s,t.result.height=s-n}}function Js(t){let e=this.chart;if(e.polar&&e.hoverPane&&e.hoverPane.axis){t.preventDefault();let i=e.hoverPane.center,s=e.mouseDownX||0,a=e.mouseDownY||0,o=t.args.chartY,r=t.args.chartX,n=2*Math.PI,l=e.hoverPane.axis.startAngleRad,h=e.hoverPane.axis.endAngleRad,p=e.inverted?e.xAxis[0]:e.yAxis[0],d={},c="arc";if(d.x=i[0]+e.plotLeft,d.y=i[1]+e.plotTop,this.zoomHor){let t=l>0?h-l:Math.abs(l)+Math.abs(h),u=Math.atan2(a-e.plotTop-i[1],s-e.plotLeft-i[0])-l,g=Math.atan2(o-e.plotTop-i[1],r-e.plotLeft-i[0])-l;d.r=i[2]/2,d.innerR=i[3]/2,u<=0&&(u+=n),g<=0&&(g+=n),g<u&&(g=[u,u=g][0]),t<n&&l+g>h+(n-t)/2&&(g=u,u=l<=0?l:0);let f=d.start=Math.max(u+l,l),m=d.end=Math.min(g+l,h);if("polygon"===p.options.gridLineInterpolation){let t=e.hoverPane.axis,s=f-t.startAngleRad+t.pos,a=p.getPlotLinePath({value:p.max}),o=t.toValue(s),r=t.toValue(s+(m-f));if(o<t.getExtremes().min){let{min:e,max:i}=t.getExtremes();o=i-(e-o)}if(r<t.getExtremes().min){let{min:e,max:i}=t.getExtremes();r=i-(e-r)}r<o&&(r=[o,o=r][0]),(a=sa(a,o,r,t)).push(["L",i[0]+e.plotLeft,e.plotTop+i[1]]),d.d=a,c="path"}}if(this.zoomVert){let t=e.inverted?e.xAxis[0]:e.yAxis[0],n=Math.sqrt(Math.pow(s-e.plotLeft-i[0],2)+Math.pow(a-e.plotTop-i[1],2)),p=Math.sqrt(Math.pow(r-e.plotLeft-i[0],2)+Math.pow(o-e.plotTop-i[1],2));if(p<n&&(n=[p,p=n][0]),p>i[2]/2&&(p=i[2]/2),n<i[3]/2&&(n=i[3]/2),this.zoomHor||(d.start=l,d.end=h),d.r=p,d.innerR=n,"polygon"===t.options.gridLineInterpolation){let e=t.toValue(t.len+t.pos-n),i=t.toValue(t.len+t.pos-p),s=t.getPlotLinePath({value:i}).concat(t.getPlotLinePath({value:e,reverse:!0}));d.d=s,c="path"}}if(this.zoomHor&&this.zoomVert&&"polygon"===p.options.gridLineInterpolation){let t=e.hoverPane.axis,i=d.start||0,s=d.end||0,a=i-t.startAngleRad+t.pos,o=t.toValue(a),r=t.toValue(a+(s-i));if(d.d instanceof Array){let t=d.d.slice(0,d.d.length/2),i=d.d.slice(d.d.length/2,d.d.length);i=[...i].reverse();let s=e.hoverPane.axis;t=sa(t,o,r,s),(i=sa(i,o,r,s))&&(i[0][0]="L"),i=[...i].reverse(),d.d=t.concat(i),c="path"}}t.attrs=d,t.shapeType=c}}function ta(){let t=this.chart;t.polar&&(this.polar=new ua(this),t.inverted&&(this.isRadialSeries=!0,this.is("column")&&(this.isRadialBar=!0)))}function ea(){if(this.chart.polar&&this.xAxis){let{xAxis:t,yAxis:e}=this,i=this.chart;
1this.kdByAngle=i.tooltip&&i.tooltip.shared,this.kdByAngle||i.inverted?this.searchPoint=ia:this.options.findNearestPointBy="xy";let s=this.points,a=s.length;for(;a--;)this.is("column")||this.is("columnrange")||this.polar.toXY(s[a]),i.hasParallelCoordinates||this.yAxis.reversed||(Gs(s[a].y,Number.MIN_VALUE)<e.min||s[a].x<t.min||s[a].x>t.max?(s[a].isNull=!0,s[a].plotY=NaN):s[a].isNull=s[a].isValid&&!s[a].isValid());this.hasClipCircleSetter||(this.hasClipCircleSetter=!!this.eventsToUnbind.push(Os(this,"afterRender",function(){let t;i.polar&&!1!==this.options.clip&&(t=this.yAxis.pane.center,this.clipCircle?this.clipCircle.animate({x:t[0],y:t[1],r:t[2]/2,innerR:t[3]/2}):this.clipCircle=function(t,e,i,s,a){let o=Us(),r=t.createElement("clipPath").attr({id:o}).add(t.defs),n=a?t.arc(e,i,s,a,0,2*Math.PI).add(r):t.circle(e,i,s).add(r);return n.id=o,n.clipPath=r,n}(i.renderer,t[0],t[1],t[2]/2,t[3]/2),this.group.clip(this.clipCircle),this.setClip=y().noop)})))}}function ia(t){let e=this.chart,i=this.xAxis,s=this.yAxis,a=i.pane&&i.pane.center,o=t.chartX-(a&&a[0]||0)-e.plotLeft,r=t.chartY-(a&&a[1]||0)-e.plotTop,n=e.inverted?{clientX:t.chartX-s.pos,plotY:t.chartY-i.pos}:{clientX:180+-180/Math.PI*Math.atan2(o,r)};return this.searchKDTree(n)}function sa(t,e,i,s){let a=s.tickInterval,o=s.tickPositions,r=Bs(o,t=>t>=i),n=Bs([...o].reverse(),t=>t<=e);return Hs(r)||(r=o[o.length-1]),Hs(n)||(n=o[0],r+=a,t[0][0]="L",t.unshift(t[t.length-3])),(t=t.slice(o.indexOf(n),o.indexOf(r)+1))[0][0]="M",t}function aa(t,e){return Bs(this.pane||[],t=>t.options.id===e)||t.call(this,e)}function oa(t,e,i,s,a,o){let r,n,l,h=this.chart,p=Gs(s.inside,!!this.options.stacking);if(h.polar){if(r=e.rectPlotX/Math.PI*180,h.inverted)this.forceDL=h.isInsidePlot(e.plotX,e.plotY),p&&e.shapeArgs?(n=e.shapeArgs,a=Fs(a,{x:(l=this.yAxis.postTranslate(((n.start||0)+(n.end||0))/2-this.xAxis.startAngleRad,e.barX+e.pointWidth/2)).x-h.plotLeft,y:l.y-h.plotTop})):e.tooltipPos&&(a=Fs(a,{x:e.tooltipPos[0],y:e.tooltipPos[1]})),s.align=Gs(s.align,"center"),s.verticalAlign=Gs(s.verticalAlign,"middle");else{var d;let t,e;null===(d=s).align&&(t=r>20&&r<160?"left":r>200&&r<340?"right":"center",d.align=t),null===d.verticalAlign&&(e=r<45||r>315?"bottom":r>135&&r<225?"top":"middle",d.verticalAlign=e),s=d}M().prototype.alignDataLabel.call(this,e,i,s,a,o),this.isRadialBar&&e.shapeArgs&&e.shapeArgs.start===e.shapeArgs.end?i.hide():i.show()}else t.call(this,e,i,s,a,o)}function ra(){let t,e,i,s,a,o,r,n,l,h,p,d,c,u=this.options,g=u.stacking,f=this.chart,m=this.xAxis,b=this.yAxis,x=b.reversed,P=b.center,v=m.startAngleRad,M=m.endAngleRad-v,L=u.threshold,k=0,w=0,A=0;if(m.isRadial)for(i=(t=this.points).length,s=b.translate(b.min),a=b.translate(b.max),L=u.threshold||0,f.inverted&&Ws(L)&&Hs(k=b.translate(L))&&(k<0?k=0:k>M&&(k=M),this.translatedThreshold=k+v);i--;){if(p=(e=t[i]).barX,r=e.x,n=e.y,e.shapeType="arc",f.inverted){e.plotY=b.translate(n),g&&b.stacking?(h=b.stacking.stacks[(n<0?"-":"")+this.stackKey],this.visible&&h&&h[r]&&!e.isNull&&(l=h[r].points[this.getStackIndicator(void 0,r,this.index).key],w=b.translate(l[0]),A=b.translate(l[1]),Hs(w)&&(w=y().clamp(w,0,M)))):(w=k,A=e.plotY),w>A&&(A=[w,w=A][0]),x?A>s?A=s:w<a?w=a:(w>s||A<a)&&(w=A=M):w<s?w=s:A>a?A=a:(A<s||w>a)&&(w=A=0),b.min>b.max&&(w=A=x?M:0),w+=v,A+=v,P&&(e.barX=p+=P[3]/2),d=Math.max(p,0),c=Math.max(p+e.pointWidth,0);let t=u.borderRadius,i=Vs(("object"==typeof t?t.radius:t)||0,c-d);e.shapeArgs={x:P[0],y:P[1],r:c,innerR:d,start:w,end:A,borderRadius:i},e.opacity=w===A?0:void 0,e.plotY=(Hs(this.translatedThreshold)&&(w<this.translatedThreshold?w:A))-v}else w=p+v,e.shapeArgs=this.polar.arc(e.yBottom,e.plotY,w,w+e.pointWidth),e.shapeArgs.borderRadius=0;this.polar.toXY(e),f.inverted?(o=b.postTranslate(e.rectPlotY,p+e.pointWidth/2),e.tooltipPos=[o.x-f.plotLeft,o.y-f.plotTop]):e.tooltipPos=[e.plotX,e.plotY],P&&(e.ttBelow=e.plotY>P[1])}}function na(t,e){let i,s,a=this;if(this.chart.polar){e=e||this.points;for(let t=0;t<e.length;t++)if(!e[t].isNull){i=t;break}!1!==this.options.connectEnds&&void 0!==i&&(this.connectEnds=!0,e.splice(e.length,0,e[i]),s=!0),e.forEach(t=>{void 0===t.polarPlotY&&a.polar.toXY(t)})}
1let o=t.apply(this,[].slice.call(arguments,1));return s&&e.pop(),o}function la(t,e){let i=this.chart,s={xAxis:[],yAxis:[]};return i.polar?i.axes.forEach(t=>{if("colorAxis"===t.coll)return;let a=t.isXAxis,o=t.center,r=e.chartX-o[0]-i.plotLeft,n=e.chartY-o[1]-i.plotTop;s[a?"xAxis":"yAxis"].push({axis:t,value:t.translate(a?Math.PI-Math.atan2(r,n):Math.sqrt(Math.pow(r,2)+Math.pow(n,2)),!0)})}):s=t.call(this,e),s}function ha(t,e){this.chart.polar||t.call(this,e)}function pa(t,e){let i,s,a,o,r,n,l=this,h=this.chart,p=this.group,d=this.markerGroup,c=this.xAxis&&this.xAxis.center,u=h.plotLeft,g=h.plotTop,f=this.options.animation;h.polar?l.isRadialBar?e||(l.startAngleRad=Gs(l.translatedThreshold,l.xAxis.startAngleRad),y().seriesTypes.pie.prototype.animate.call(l,e)):(f=zs(f),l.is("column")?e||(s=c[3]/2,l.points.forEach(t=>{a=t.graphic,r=(o=t.shapeArgs)&&o.r,n=o&&o.innerR,a&&o&&(a.attr({r:s,innerR:s}),a.animate({r:r,innerR:n},l.options.animation))})):e?(i={translateX:c[0]+u,translateY:c[1]+g,scaleX:.001,scaleY:.001},p.attr(i),d&&d.attr(i)):(i={translateX:u,translateY:g,scaleX:1,scaleY:1},p.animate(i,f),d&&d.animate(i,f))):t.call(this,e)}function da(t,e,i,s){let a,o;if(this.chart.polar)if(s){let t=(o=function t(e,i,s,a){let o,r,n,l,h,p,d=a?1:0,c=(o=i>=0&&i<=e.length-1?i:i<0?e.length-1+i:0)-1<0?e.length-(1+d):o-1,u=o+1>e.length-1?d:o+1,g=e[c],f=e[u],m=g.plotX,b=g.plotY,y=f.plotX,x=f.plotY,P=e[o].plotX,v=e[o].plotY;
1r=(1.5*P+m)/2.5,n=(1.5*v+b)/2.5,l=(1.5*P+y)/2.5,h=(1.5*v+x)/2.5;let M=Math.sqrt(Math.pow(r-P,2)+Math.pow(n-v,2)),L=Math.sqrt(Math.pow(l-P,2)+Math.pow(h-v,2)),k=Math.atan2(n-v,r-P);p=Math.PI/2+(k+Math.atan2(h-v,l-P))/2,Math.abs(k-p)>Math.PI/2&&(p-=Math.PI),r=P+Math.cos(p)*M,n=v+Math.sin(p)*M;let w={rightContX:l=P+Math.cos(Math.PI+p)*L,rightContY:h=v+Math.sin(Math.PI+p)*L,leftContX:r,leftContY:n,plotX:P,plotY:v};return s&&(w.prevPointCont=t(e,c,!1,a)),w}(e,s,!0,this.connectEnds)).prevPointCont&&o.prevPointCont.rightContX,i=o.prevPointCont&&o.prevPointCont.rightContY;a=["C",Ws(t)?t:o.plotX,Ws(i)?i:o.plotY,Ws(o.leftContX)?o.leftContX:o.plotX,Ws(o.leftContY)?o.leftContY:o.plotY,o.plotX,o.plotY]}else a=["M",i.plotX,i.plotY];else a=t.call(this,e,i,s);return a}function ca(t,e,i=this.plotY){if(!this.destroyed){let{plotX:s,series:a}=this,{chart:o}=a;return o.polar&&Ws(s)&&Ws(i)?[s+(e?o.plotLeft:0),i+(e?o.plotTop:0)]:t.call(this,e,i)}}class ua{static compose(t,e,i,s,a,o,r,n,l,h){if(F.compose(e,i),Es.compose(t,a),qs(Ds,"Polar")){let t=e.prototype,a=o.prototype,p=i.prototype,d=s.prototype;if(Os(e,"afterDrawChartBox",js),Os(e,"createAxes",$s),Os(e,"init",Zs),Ks(t,"get",aa),Ks(p,"getCoordinates",la),Ks(p,"pinch",ha),Os(i,"getSelectionMarkerAttrs",Js),Os(i,"getSelectionBox",Qs),Os(s,"afterInit",ta),Os(s,"afterTranslate",ea,{order:2}),Os(s,"afterColumnTranslate",ra,{order:4}),Ks(d,"animate",pa),Ks(a,"pos",ca),n){let t=n.prototype;Ks(t,"alignDataLabel",oa),Ks(t,"animate",pa)}if(l&&Ks(l.prototype,"getGraphPath",na),h){let t=h.prototype;Ks(t,"getPointSpline",da),r&&(r.prototype.getPointSpline=t.getPointSpline)}}}constructor(t){this.series=t}arc(t,e,i,s){let a=this.series,o=a.xAxis.center,r=a.yAxis.len,n=o[3]/2,l=r-e+n,h=r-Gs(t,r)+n;return a.yAxis.reversed&&(l<0&&(l=n),h<0&&(h=n)),{x:o[0],y:o[1],r:l,innerR:h,start:i,end:s}}toXY(t){let e,i=this.series,s=i.chart,a=i.xAxis,o=i.yAxis,r=t.plotX,n=s.inverted,l=t.y,h=t.plotY,p=n?r:o.len-h;if(n&&i&&!i.isRadialBar&&(t.plotY=h=Ws(l)?o.translate(l):0),t.rectPlotX=r,t.rectPlotY=h,o.center&&(p+=o.center[3]/2),Ws(h)){let e=n?o.postTranslate(h,p):a.postTranslate(r,p);t.plotX=t.polarPlotX=e.x-s.plotLeft,t.plotY=t.polarPlotY=e.y-s.plotTop}i.kdByAngle?((e=(r/Math.PI*180+a.pane.options.startAngle)%360)<0&&(e+=360),t.clientX=e):t.clientX=t.plotX}}var ga=f(184),fa=f.n(ga);let{composed:ma}=y(),{addEvent:ba,objectEach:ya,pushUnique:xa}=y();!function(t){function e(){let t=this.waterfall.stacks;t&&(t.changed=!1,delete t.alreadyChanged)}function i(){let t=this.options.stackLabels;t&&t.enabled&&this.waterfall.stacks&&this.waterfall.renderStackTotals()}function s(){this.waterfall||(this.waterfall=new o(this))}function a(){let t=this.axes;for(let e of this.series)if(e.options.stacking){for(let e of t)e.isXAxis||(e.waterfall.stacks.changed=!0);break}}t.compose=function(t,o){xa(ma,"Axis.Waterfall")&&(ba(t,"init",s),ba(t,"afterBuildStacks",e),ba(t,"afterRender",i),ba(o,"beforeRedraw",a))};class o{constructor(t){this.axis=t,this.stacks={changed:!1}}renderStackTotals(){let t=this.axis,e=t.waterfall.stacks,i=t.stacking&&t.stacking.stackTotalGroup,s=new(fa())(t,t.options.stackLabels||{},!1,0,void 0);this.dummyStackItem=s,i&&ya(e,t=>{ya(t,(t,e)=>{s.total=t.stackTotal,s.x=+e,t.label&&(s.label=t.label),fa().prototype.render.call(s,i),t.label=s.label,delete s.label})}),s.total=null}}t.Composition=o}(c||(c={}));let Pa=c,{isNumber:va}=y();class Ma extends dt().prototype.pointClass{getClassName(){let t=Kt().prototype.getClassName.call(this);return this.isSum?t+=" highcharts-sum":this.isIntermediateSum&&(t+=" highcharts-intermediate-sum"),t}isValid(){return va(this.y)||this.isSum||!!this.isIntermediateSum}}let{column:La,line:ka}=P().seriesTypes,{addEvent:wa,arrayMax:Aa,arrayMin:Sa,correctFloat:Ta,crisp:Ca,extend:Na,isNumber:Xa,merge:Ya,objectEach:Ia,pick:Ra}=y();function Ea(t,e){return Object.hasOwnProperty.call(t,e)}class za extends La{generatePoints(){La.prototype.generatePoints.apply(this);let t=this.getColumn("y",!0);for(let e=0,i=this.points.length;e<i;e++){let i=this.points[e],s=t[e];Xa(s)&&(i.isIntermediateSum||i.isSum)&&(i.y=Ta(s))}}processData(t){let e,i,s,a,o,r,n=this.options,l=this.getColumn("y"),h=n.data,p=l.length,d=n.threshold||0;s=i=a=o=0;for(let t=0;t<p;t++)r=l[t],e=h?.[t]||{},"sum"===r||e.isSum?l[t]=Ta(s):"intermediateSum"===r||e.isIntermediateSum?(l[t]=Ta(i),i=0):(s+=r,i+=r),a=Math.min(s,a),o=Math.max(s,o);super.processData.call(this,t),n.stacking||(this.dataMin=a+d,this.dataMax=o)}toYData(t){return t.isSum?"sum":t.isIntermediateSum?"intermediateSum":t.y}pointAttribs(t,e){let i=this.options.upColor;i&&!t.options.color&&Xa(t.y)&&(t.color=t.y>0?i:void 0);let s=La.prototype.pointAttribs.call(this,t,e);return delete s.dashstyle,s}getGraphPath(){return[["M",0,0]]}getCrispPath(){let t=this.data.filter(t=>Xa(t.y)),e=this.yAxis,i=t.length,s=this.graph?.strokeWidth()||0,a=this.xAxis.reversed,o=this.yAxis.reversed,r=this.options.stacking,n=[];for(let l=1;l<i;l++){if(!this.options.connectNulls&&!Xa(this.data[t[l].index-1].y))continue;
1let i=t[l].box,h=t[l-1],p=h.y||0,d=t[l-1].box;if(!i||!d)continue;let c=e.waterfall.stacks[this.stackKey],u=p>0?-d.height:0;if(c&&d&&i){let t,p=c[l-1];if(r){let i=p.connectorThreshold;t=Ca(e.translate(i,!1,!0,!1,!0)+(o?u:0),s)}else t=Ca(d.y+(h.minPointLengthOffset||0),s);n.push(["M",(d.x||0)+(a?0:d.width||0),t],["L",(i.x||0)+(a&&i.width||0),t])}if(d&&n.length&&(!r&&p<0&&!o||p>0&&o)){let t=n[n.length-2];t&&"number"==typeof t[2]&&(t[2]+=d.height||0);let e=n[n.length-1];e&&"number"==typeof e[2]&&(e[2]+=d.height||0)}}return n}drawGraph(){ka.prototype.drawGraph.call(this),this.graph&&this.graph.attr({d:this.getCrispPath()})}setStackedPoints(t){let e,i,s,a,o,r,n,l,h,p=this.options,d=t.waterfall?.stacks,c=p.threshold||0,u=this.stackKey,g=this.getColumn("x"),f=this.getColumn("y"),m=g.length,b=c,y=b,x=0,P=0,v=0,M=(t,s,a,o)=>{if(e){if(i)for(;a<i;a++)e.stackState[a]+=o;else e.stackState[0]=t,i=e.stackState.length;e.stackState.push(e.stackState[i-1]+s)}};if(t.stacking&&d&&this.reserveSpace()){h=d.changed,(l=d.alreadyChanged)&&0>l.indexOf(u)&&(h=!0),d[u]||(d[u]={});let t=d[u];if(t)for(let l=0;l<m;l++)(!t[n=g[l]]||h)&&(t[n]={negTotal:0,posTotal:0,stackTotal:0,threshold:0,stateIndex:0,stackState:[],label:h&&t[n]?t[n].label:void 0}),e=t[n],(r=f[l])>=0?e.posTotal+=r:e.negTotal+=r,o=p.data[l],s=e.absolutePos=e.posTotal,a=e.absoluteNeg=e.negTotal,e.stackTotal=s+a,i=e.stackState.length,o&&o.isIntermediateSum?(M(v,P,0,v),v=P,P=c,b^=y,y^=b,b^=y):o&&o.isSum?(M(c,x,i,0),b=c):(M(b,r,0,x),o&&(x+=r,P+=r)),e.stateIndex++,e.threshold=b,b+=e.stackTotal;d.changed=!1,d.alreadyChanged||(d.alreadyChanged=[]),d.alreadyChanged.push(u)}}getExtremes(){let t,e,i,s=this.options.stacking;return s?(t=this.yAxis.waterfall.stacks,e=this.stackedYNeg=[],i=this.stackedYPos=[],Ia(t[this.stackKey],"overlap"===s?function(t){e.push(Sa(t.stackState)),i.push(Aa(t.stackState))}:function(t){e.push(t.negTotal+t.threshold),i.push(t.posTotal+t.threshold)}),{dataMin:Sa(e),dataMax:Aa(i)}):{dataMin:this.dataMin,dataMax:this.dataMax}}}za.defaultOptions=Ya(La.defaultOptions,{dataLabels:{inside:!0},lineWidth:1,lineColor:"#333333",dashStyle:"Dot",borderColor:"#333333",states:{hover:{lineWidthPlus:0}}}),za.compose=Pa.compose,Na(za.prototype,{pointValKey:"y",showLine:!0,pointClass:Ma}),wa(za,"afterColumnTranslate",function(){let t,e,i,s,{options:a,points:o,yAxis:r}=this,n=Ra(a.minPointLength,5),l=n/2,h=a.threshold||0,p=a.stacking,d=r.waterfall.stacks[this.stackKey],c=this.getColumn("y",!0),u=h,g=h;for(let a=0;a<o.length;a++){let f=o[a],m=c[a],b=Na({x:0,y:0,width:0,height:0},f.shapeArgs||{});f.box=b;let y=[0,m],x=f.y||0;if(p){if(d){let o=d[a];"overlap"===p?(e=o.stackState[o.stateIndex--],t=x>=0?e:e-x,Ea(o,"absolutePos")&&delete o.absolutePos,Ea(o,"absoluteNeg")&&delete o.absoluteNeg):(x>=0?(e=o.threshold+o.posTotal,o.posTotal-=x,t=e):(e=o.threshold+o.negTotal,o.negTotal-=x,t=e-x),!o.posTotal&&Xa(o.absolutePos)&&Ea(o,"absolutePos")&&(o.posTotal=o.absolutePos,delete o.absolutePos),!o.negTotal&&Xa(o.absoluteNeg)&&Ea(o,"absoluteNeg")&&(o.negTotal=o.absoluteNeg,delete o.absoluteNeg)),f.isSum||(o.connectorThreshold=o.threshold+o.stackTotal),r.reversed?(i=x>=0?t-x:t+x,s=t):(i=t,s=t-x),f.below=i<=h,b.y=r.translate(i,!1,!0,!1,!0),b.height=Math.abs(b.y-r.translate(s,!1,!0,!1,!0));let n=r.waterfall.dummyStackItem;n&&(n.x=a,n.label=d[a].label,n.setOffset(this.pointXOffset||0,this.barW||0,this.stackedYNeg[a],this.stackedYPos[a],void 0,this.xAxis))}}else t=Math.max(g,g+x)+y[0],b.y=r.translate(t,!1,!0,!1,!0),f.isSum?(b.y=r.translate(y[1],!1,!0,!1,!0),b.height=Math.min(r.translate(y[0],!1,!0,!1,!0),r.len)-b.y,f.below=y[1]<=h):f.isIntermediateSum?(x>=0?(i=y[1]+u,s=u):(i=u,s=y[1]+u),r.reversed&&(i^=s,s^=i,i^=s),b.y=r.translate(i,!1,!0,!1,!0),b.height=Math.abs(b.y-Math.min(r.translate(s,!1,!0,!1,!0),r.len)),u+=y[1],f.below=i<=h):(b.height=m>0?r.translate(g,!1,!0,!1,!0)-b.y:r.translate(g,!1,!0,!1,!0)-r.translate(g-m,!1,!0,!1,!0),g+=m,f.below=g<h),b.height<0&&(b.y+=b.height,b.height*=-1);f.plotY=b.y,f.yBottom=b.y+b.height,b.height<=n&&!f.isNull?(b.height=n,b.y-=l,f.yBottom=b.y+b.height,f.plotY=b.y,f.minPointLengthOffset=x<0?-l:l):(f.isNull&&(b.width=0),f.minPointLengthOffset=0);let P=f.plotY+(f.negative?b.height:0);f.below&&(f.plotY+=b.height),f.tooltipPos&&(this.chart.inverted?f.tooltipPos[0]=r.len-P:f.tooltipPos[1]=P),f.isInside=this.isPointInside(f);let v=Ca(f.yBottom,this.borderWidth);b.y=Ca(b.y,this.borderWidth),b.height=v-b.y,Ya(!0,f.shapeArgs,b)}},{order:2}),P().registerSeriesType("waterfall",za);let Da=y();Da.RadialAxis=Es,fe.compose(Da.Axis,Da.Chart,Da.Legend),cs.compose(Da.Axis,Da.Chart,Da.Legend),F.compose(Da.Chart,Da.Pointer),ua.compose(Da.Axis,Da.Chart,Da.Pointer,Da.Series,Da.Tick,Da.Point,P().seriesTypes.areasplinerange,P().seriesTypes.column,P().seriesTypes.line,P().seriesTypes.spline),za.compose(Da.Axis,Da.Chart);let Oa=Da;return m.default})());
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.