/**
* Highcharts JS v11.2.0 (2023-10-30)
*
* Marker clusters module for Highcharts
*
* (c) 2010-2021 Wojciech Chmiel
*
* License: www.highcharts.com/license
*/!function(t){"object"==typeof module&&module.exports?(t.default=t,module.exports=t):"function"==typeof define&&define.amd?define("highcharts/modules/marker-clusters",["highcharts"],function(e){return t(e),t.Highcharts=e,t}):t("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(t){"use strict";var e=t?t._modules:{};function i(t,e,i,r){t.hasOwnProperty(e)||(t[e]=r.apply(null,i),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:e,module:t[e]}})))}i(e,"Extensions/MarkerClusters/MarkerClusterDefaults.js",[],function(){return{cluster:{enabled:!1,allowOverlap:!0,animation:{duration:500},drillToCluster:!0,minimumClusterSize:2,layoutAlgorithm:{gridSize:50,distance:40,kmeansThreshold:100},marker:{symbol:"cluster",radius:15,lineWidth:0,lineColor:"#ffffff"},dataLabels:{enabled:!0,format:"{point.clusterPointsAmount}",verticalAlign:"middle",align:"center",style:{color:"contrast"},inside:!0}},tooltip:{clusterFormat:"Clustered points: {point.clusterPointsAmount}
"}}}),i(e,"Extensions/MarkerClusters/MarkerClusterScatter.js",[e["Core/Animation/AnimationUtilities.js"],e["Extensions/MarkerClusters/MarkerClusterDefaults.js"],e["Core/Utilities.js"]],function(t,e,i){var r,a=t.animObject,s=e.cluster,n=i.addEvent,o=i.defined,l=i.error,u=i.isArray,p=i.isFunction,d=i.isObject,h=i.isNumber,c=i.merge,m=i.objectEach,f=i.pushUnique,g=i.relativeLength,x=i.syncTimeout,y=[],C={grid:function(t,e,i,r){var a,s,n,o,l,u={},p=this.getGridOffset(),d=this.getScaledGridSize(r);for(l=0;l1&&(a=b(g[x]),n.push({posX:a.x,posY:a.y,oldX:0,oldY:0,startPointsLen:g[x].length,points:[]}));for(;h;){for(var y=0;yn[C].oldX+1||n[C].posXn[C].oldY+1||n[C].posYp.minX||this.initMaxY&&this.initMaxYp.minY)this.initMaxX=p.maxX,this.initMinX=p.minX,this.initMaxY=p.maxY,this.initMinY=p.minY,h=this.markerClusterAlgorithms?this.markerClusterAlgorithms.kmeans.call(this,t,e,i,r):{},this.baseClusters=null;else{this.baseClusters||(this.baseClusters={clusters:this.markerClusterInfo.clusters,noise:this.markerClusterInfo.noise});for(var c=0,m=this.baseClusters.clusters;c=0?u-l:l,a>l+n&&o(f.pointsOutside)?f.pointsOutside.push(y):o(f.pointsInside)&&f.pointsInside.push(y)}f.pointsInside.length&&(h[f.id]=f.pointsInside);for(var v=0,M=0,I=f.pointsOutside;M=z.minX-l&&A[M]<=z.maxX+l&&(X[M]||z.minY)>=z.minY-u&&(X[M]||z.maxY)<=z.maxY+u&&(P.push(A[M]),E.push(X[M]),w.push(M));o(c)&&o(d)&&h(f)&&h(m)&&(I.dataMaxX=c,I.dataMinX=d,I.dataMaxY=f,I.dataMinY=m),y=(C=(p(x)?x:I.markerClusterAlgorithms?x&&I.markerClusterAlgorithms[x]?I.markerClusterAlgorithms[x]:P.length=D){if(a=t[v],i=X(),o=a.length,e.zones)for(k=0;k=e.zones[k].from&&o<=e.zones[k].to&&((y=e.zones[k]).zoneIndex=k,x=e.zones[k].marker,C=e.zones[k].className);for(g=b(a),"grid"!==e.layoutAlgorithm.type||e.allowOverlap?m={x:g.x,y:g.y}:(h=this.options.marker||{},m=this.preventClusterCollisions({x:g.x,y:g.y,key:v,groupedData:t,gridSize:this.getScaledGridSize(e.layoutAlgorithm),defaultRadius:h.radius||3+(h.lineWidth||0),clusterRadius:x&&x.radius?x.radius:(e.marker||{}).radius||s.marker.radius})),k=0;k.75&&l<1.25?a=!1:l>=1/u&&l<2*(1/u)?(a=!1,o=u):l<=u&&l>u/2&&(a=!1,o=1/u),n++}return r/o/l}function R(){var t=this.markerClusterSeriesData,e=((this.markerClusterInfo||{}).pointsState||{}).oldState||{},i=k.map(function(t){return(e[t].point||{}).id||""});(t||[]).forEach(function(t){t&&-1!==i.indexOf(t.id)?(t.graphic&&t.graphic.hide(),t.dataLabel&&t.dataLabel.hide()):t&&t.destroy&&t.destroy()})}function U(t){var e,i=!1;return!!d(t)&&(m(t,function(t){if(i=!0,!u(t)||!t.length){i=!1;return}for(e=0;e=z[p].from&&j<=z[p].to&&(O=o((z[p].marker||{}).radius)?z[p].marker.radius||0:D&&D.radius?D.radius:s.marker.radius);v[V].length>1&&0===O&&D&&D.radius?O=D.radius:1===v[V].length&&(O=M),f=I+O,O=0,h!==C&&Math.abs(E-i)