highcharts 13.0.1 → 13.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (915) hide show
  1. package/bower.json +2 -3
  2. package/es-modules/Accessibility/A11yI18n.js +4 -4
  3. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +6 -4
  4. package/es-modules/Accessibility/Components/LegendComponent.js +2 -2
  5. package/es-modules/Accessibility/Components/NavigatorComponent.js +2 -2
  6. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +13 -10
  7. package/es-modules/Accessibility/Components/ZoomComponent.js +2 -2
  8. package/es-modules/Accessibility/FocusBorder.js +2 -2
  9. package/es-modules/Accessibility/Options/DeprecatedOptions.js +1 -2
  10. package/es-modules/Core/Animation/AnimationUtilities.js +3 -2
  11. package/es-modules/Core/Axis/Axis.js +48 -57
  12. package/es-modules/Core/Axis/Axis3DComposition.js +8 -6
  13. package/es-modules/Core/Axis/BrokenAxis.js +6 -5
  14. package/es-modules/Core/Axis/Color/ColorAxis.js +17 -10
  15. package/es-modules/Core/Axis/Color/ColorAxisComposition.js +2 -2
  16. package/es-modules/Core/Axis/GridAxis.js +4 -4
  17. package/es-modules/Core/Axis/LogarithmicAxis.js +5 -3
  18. package/es-modules/Core/Axis/NavigatorAxisComposition.js +2 -2
  19. package/es-modules/Core/Axis/OrdinalAxis.js +9 -7
  20. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +3 -2
  21. package/es-modules/Core/Axis/RadialAxis.js +15 -9
  22. package/es-modules/Core/Axis/ScrollbarAxis.js +3 -3
  23. package/es-modules/Core/Axis/Stacking/StackItem.js +5 -5
  24. package/es-modules/Core/Axis/Stacking/StackingAxis.js +4 -4
  25. package/es-modules/Core/Axis/Tick.js +10 -11
  26. package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +3 -3
  27. package/es-modules/Core/Chart/Chart.js +14 -14
  28. package/es-modules/Core/Chart/Chart3D.js +3 -3
  29. package/es-modules/Core/Chart/ChartDefaults.js +23 -0
  30. package/es-modules/Core/Chart/MapChart.js +7 -5
  31. package/es-modules/Core/Chart/StockChart.js +15 -11
  32. package/es-modules/Core/Color/Color.js +3 -1
  33. package/es-modules/Core/Defaults.js +35 -0
  34. package/es-modules/Core/Globals.js +1 -1
  35. package/es-modules/Core/Legend/Legend.js +16 -12
  36. package/es-modules/Core/Legend/LegendSymbol.js +2 -2
  37. package/es-modules/Core/MSPointer.js +2 -2
  38. package/es-modules/Core/Math3D.js +6 -7
  39. package/es-modules/Core/Pointer.js +9 -9
  40. package/es-modules/Core/Renderer/RendererUtilities.js +2 -2
  41. package/es-modules/Core/Renderer/SVG/SVGElement.js +11 -9
  42. package/es-modules/Core/Renderer/SVG/SVGElement3D.js +2 -2
  43. package/es-modules/Core/Renderer/SVG/SVGLabel.js +5 -5
  44. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +5 -5
  45. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +11 -9
  46. package/es-modules/Core/Renderer/SVG/Symbols.js +6 -5
  47. package/es-modules/Core/Renderer/SVG/TextBuilder.js +2 -2
  48. package/es-modules/Core/Responsive.js +7 -5
  49. package/es-modules/Core/Series/DataLabel.js +8 -6
  50. package/es-modules/Core/Series/OverlappingDataLabels.js +5 -2
  51. package/es-modules/Core/Series/Point.js +3 -3
  52. package/es-modules/Core/Series/Series.js +37 -21
  53. package/es-modules/Core/Series/Series3D.js +2 -2
  54. package/es-modules/Core/Templating.js +2 -2
  55. package/es-modules/Core/Tooltip.js +11 -7
  56. package/es-modules/Core/Utilities.js +4 -3
  57. package/es-modules/Data/Connectors/DataConnector.js +2 -2
  58. package/es-modules/Data/Connectors/GoogleSheetsConnector.js +2 -2
  59. package/es-modules/Data/DataTable.js +17 -0
  60. package/es-modules/Extensions/Annotations/Annotation.js +4 -4
  61. package/es-modules/Extensions/Annotations/AnnotationChart.js +2 -2
  62. package/es-modules/Extensions/Annotations/ControlPoint.js +2 -2
  63. package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +2 -2
  64. package/es-modules/Extensions/Annotations/EventEmitter.js +4 -4
  65. package/es-modules/Extensions/Annotations/NavigationBindings.js +6 -3
  66. package/es-modules/Extensions/Annotations/NavigationBindingsUtilities.js +2 -2
  67. package/es-modules/Extensions/Annotations/Popup/Popup.js +3 -2
  68. package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +4 -6
  69. package/es-modules/Extensions/Annotations/Types/Measure.js +3 -3
  70. package/es-modules/Extensions/Annotations/Types/VerticalLine.js +3 -3
  71. package/es-modules/Extensions/Boost/BoostChart.js +11 -4
  72. package/es-modules/Extensions/Boost/BoostSeries.js +8 -9
  73. package/es-modules/Extensions/Boost/WGLRenderer.js +9 -6
  74. package/es-modules/Extensions/Boost/WGLShader.js +3 -3
  75. package/es-modules/Extensions/BoostCanvas.js +2 -2
  76. package/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +5 -4
  77. package/es-modules/Extensions/DataGrouping/DataGrouping.js +2 -2
  78. package/es-modules/Extensions/DataGrouping/DataGroupingAxisComposition.js +4 -3
  79. package/es-modules/Extensions/DataGrouping/DataGroupingSeriesComposition.js +2 -2
  80. package/es-modules/Extensions/DraggablePoints/DragDropProps.js +2 -3
  81. package/es-modules/Extensions/ExportData/ExportData.js +17 -16
  82. package/es-modules/Extensions/Exporting/Exporting.js +7 -7
  83. package/es-modules/Extensions/MouseWheelZoom/MouseWheelZoom.js +2 -2
  84. package/es-modules/Extensions/Pane/PaneComposition.js +2 -2
  85. package/es-modules/Extensions/ParallelCoordinates/ParallelAxis.js +2 -2
  86. package/es-modules/Extensions/PatternFill.js +7 -5
  87. package/es-modules/Extensions/PriceIndication.js +5 -4
  88. package/es-modules/Extensions/SeriesLabel/SeriesLabel.js +7 -7
  89. package/es-modules/Extensions/Sonification/MIDI.js +2 -3
  90. package/es-modules/Extensions/Sonification/Sonification.js +2 -2
  91. package/es-modules/Extensions/Sonification/SonificationSpeaker.js +3 -2
  92. package/es-modules/Extensions/Sonification/SynthPatch.js +3 -3
  93. package/es-modules/Extensions/Sonification/TimelineFromChart.js +11 -11
  94. package/es-modules/Gantt/Legacy.js +2 -2
  95. package/es-modules/Gantt/Pathfinder.js +3 -3
  96. package/es-modules/Gantt/PathfinderAlgorithms.js +4 -3
  97. package/es-modules/Gantt/Tree.js +1 -1
  98. package/es-modules/Maps/MapNavigation.js +4 -4
  99. package/es-modules/Maps/MapPointer.js +2 -2
  100. package/es-modules/Maps/MapView.js +2 -2
  101. package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +8 -6
  102. package/es-modules/Series/Area/AreaSeries.js +4 -5
  103. package/es-modules/Series/BoxPlot/BoxPlotSeries.js +13 -4
  104. package/es-modules/Series/Bubble/BubbleLegendItem.js +10 -6
  105. package/es-modules/Series/Bubble/BubbleSeries.js +10 -9
  106. package/es-modules/Series/Bullet/BulletSeries.js +17 -10
  107. package/es-modules/Series/CenteredUtilities.js +7 -5
  108. package/es-modules/Series/Column/ColumnSeries.js +2 -2
  109. package/es-modules/Series/Column3D/Column3DComposition.js +6 -5
  110. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +4 -4
  111. package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +4 -2
  112. package/es-modules/Series/Cylinder/CylinderComposition.js +2 -2
  113. package/es-modules/Series/DataModifyComposition.js +9 -7
  114. package/es-modules/Series/DotPlot/DotPlotSeries.js +3 -2
  115. package/es-modules/Series/Dumbbell/DumbbellPoint.js +14 -3
  116. package/es-modules/Series/Dumbbell/DumbbellSeries.js +24 -7
  117. package/es-modules/Series/FlowMap/FlowMapPoint.js +5 -3
  118. package/es-modules/Series/FlowMap/FlowMapSeries.js +17 -9
  119. package/es-modules/Series/Funnel/FunnelSeries.js +2 -2
  120. package/es-modules/Series/Funnel3D/Funnel3DSeries.js +7 -5
  121. package/es-modules/Series/Gauge/GaugeSeries.js +2 -2
  122. package/es-modules/Series/GeoHeatmap/GeoHeatmapSeries.js +4 -4
  123. package/es-modules/Series/Heatmap/HeatmapPoint.js +6 -6
  124. package/es-modules/Series/Heatmap/HeatmapPointOptions.js +12 -0
  125. package/es-modules/Series/Heatmap/HeatmapSeries.js +13 -13
  126. package/es-modules/Series/Heatmap/HeatmapSeriesOptions.js +12 -0
  127. package/es-modules/Series/Histogram/HistogramPoint.js +17 -0
  128. package/es-modules/Series/Histogram/HistogramPointOptions.js +12 -0
  129. package/es-modules/Series/Histogram/HistogramSeries.js +14 -2
  130. package/es-modules/Series/Histogram/HistogramSeriesOptions.js +12 -0
  131. package/es-modules/Series/InterpolationUtilities.js +5 -5
  132. package/es-modules/Series/Item/ItemPointOptions.js +14 -0
  133. package/es-modules/Series/Item/ItemSeries.js +18 -6
  134. package/es-modules/Series/Item/ItemSeriesOptions.js +14 -0
  135. package/es-modules/Series/Map/MapPoint.js +5 -3
  136. package/es-modules/Series/Map/MapSeries.js +5 -8
  137. package/es-modules/Series/Networkgraph/NetworkgraphPoint.js +3 -3
  138. package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +4 -2
  139. package/es-modules/Series/Networkgraph/ReingoldFruchtermanLayout.js +18 -9
  140. package/es-modules/Series/NodesComposition.js +9 -10
  141. package/es-modules/Series/Organization/OrganizationPoint.js +3 -2
  142. package/es-modules/Series/PackedBubble/PackedBubbleLayout.js +3 -3
  143. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +5 -5
  144. package/es-modules/Series/Pictorial/PictorialSeries.js +4 -2
  145. package/es-modules/Series/Pie/PieDataLabel.js +2 -2
  146. package/es-modules/Series/Pie/PiePoint.js +2 -2
  147. package/es-modules/Series/Pie/PieSeries.js +3 -2
  148. package/es-modules/Series/Pie3D/Pie3DSeries.js +8 -4
  149. package/es-modules/Series/PolarComposition.js +8 -7
  150. package/es-modules/Series/Sankey/SankeySeries.js +11 -5
  151. package/es-modules/Series/Scatter/ScatterSeries.js +6 -5
  152. package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +2 -2
  153. package/es-modules/Series/Spline/SplineSeries.js +5 -5
  154. package/es-modules/Series/TiledWebMap/TiledWebMapSeries.js +8 -6
  155. package/es-modules/Series/Tilemap/TilemapShapes.js +2 -2
  156. package/es-modules/Series/Timeline/TimelinePoint.js +2 -2
  157. package/es-modules/Series/Timeline/TimelineSeries.js +4 -3
  158. package/es-modules/Series/TreeUtilities.js +16 -7
  159. package/es-modules/Series/Treegraph/TreegraphLink.js +2 -2
  160. package/es-modules/Series/Treemap/TreemapPoint.js +2 -2
  161. package/es-modules/Series/Treemap/TreemapSeries.js +14 -11
  162. package/es-modules/Series/VariablePie/VariablePieSeries.js +6 -4
  163. package/es-modules/Series/Variwide/VariwideSeries.js +2 -2
  164. package/es-modules/Series/Waterfall/WaterfallSeries.js +2 -2
  165. package/es-modules/Series/Windbarb/WindbarbSeries.js +2 -2
  166. package/es-modules/Shared/TimeBase.js +8 -2
  167. package/es-modules/Shared/Utilities.js +9 -7
  168. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +3 -3
  169. package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +4 -3
  170. package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +1 -1
  171. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +2 -2
  172. package/es-modules/Stock/Navigator/ChartNavigatorComposition.js +4 -4
  173. package/es-modules/Stock/Navigator/Navigator.js +26 -26
  174. package/es-modules/Stock/Navigator/StandaloneNavigator.js +4 -4
  175. package/es-modules/Stock/RangeSelector/RangeSelector.js +15 -11
  176. package/es-modules/Stock/RangeSelector/RangeSelectorComposition.js +3 -3
  177. package/es-modules/Stock/Scrollbar/Scrollbar.js +8 -7
  178. package/es-modules/Stock/StockTools/StockToolbar.js +5 -5
  179. package/es-modules/Stock/StockTools/StockTools.js +2 -2
  180. package/es-modules/Stock/StockTools/StockToolsGui.js +4 -2
  181. package/es-modules/masters/highcharts-3d.src.js +1 -1
  182. package/es-modules/masters/highcharts-autoload.src.js +1 -1
  183. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  184. package/es-modules/masters/highcharts-more.src.js +1 -1
  185. package/es-modules/masters/highcharts.src.js +7 -2
  186. package/es-modules/masters/highmaps.src.js +1 -1
  187. package/es-modules/masters/highstock.src.js +1 -1
  188. package/es-modules/masters/i18n/fr-FR.src.d.ts +1 -1
  189. package/es-modules/masters/i18n/fr-FR.src.js +1 -1
  190. package/es-modules/masters/i18n/nb-NO.src.d.ts +1 -1
  191. package/es-modules/masters/i18n/nb-NO.src.js +1 -1
  192. package/es-modules/masters/i18n/zh-CN.src.d.ts +1 -1
  193. package/es-modules/masters/i18n/zh-CN.src.js +1 -1
  194. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  195. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  196. package/es-modules/masters/indicators/ao.src.js +1 -1
  197. package/es-modules/masters/indicators/apo.src.js +1 -1
  198. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  199. package/es-modules/masters/indicators/aroon.src.js +1 -1
  200. package/es-modules/masters/indicators/atr.src.js +1 -1
  201. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  202. package/es-modules/masters/indicators/cci.src.js +1 -1
  203. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  204. package/es-modules/masters/indicators/cmf.src.js +1 -1
  205. package/es-modules/masters/indicators/cmo.src.js +1 -1
  206. package/es-modules/masters/indicators/dema.src.js +1 -1
  207. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  208. package/es-modules/masters/indicators/dmi.src.js +1 -1
  209. package/es-modules/masters/indicators/dpo.src.js +1 -1
  210. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  211. package/es-modules/masters/indicators/indicators-all.src.js +1 -1
  212. package/es-modules/masters/indicators/indicators.src.js +1 -1
  213. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  214. package/es-modules/masters/indicators/klinger.src.js +1 -1
  215. package/es-modules/masters/indicators/macd.src.js +1 -1
  216. package/es-modules/masters/indicators/mfi.src.js +1 -1
  217. package/es-modules/masters/indicators/momentum.src.js +1 -1
  218. package/es-modules/masters/indicators/natr.src.js +1 -1
  219. package/es-modules/masters/indicators/obv.src.js +1 -1
  220. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  221. package/es-modules/masters/indicators/ppo.src.js +1 -1
  222. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  223. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  224. package/es-modules/masters/indicators/psar.src.js +1 -1
  225. package/es-modules/masters/indicators/regressions.src.js +1 -1
  226. package/es-modules/masters/indicators/roc.src.js +1 -1
  227. package/es-modules/masters/indicators/rsi.src.js +1 -1
  228. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  229. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  230. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  231. package/es-modules/masters/indicators/tema.src.js +1 -1
  232. package/es-modules/masters/indicators/trendline.src.js +1 -1
  233. package/es-modules/masters/indicators/trix.src.js +1 -1
  234. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  235. package/es-modules/masters/indicators/vwap.src.js +1 -1
  236. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  237. package/es-modules/masters/indicators/wma.src.js +1 -1
  238. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  239. package/es-modules/masters/modules/accessibility.src.js +1 -1
  240. package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
  241. package/es-modules/masters/modules/annotations.src.js +1 -1
  242. package/es-modules/masters/modules/arc-diagram.src.js +1 -1
  243. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  244. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  245. package/es-modules/masters/modules/boost.src.js +1 -1
  246. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  247. package/es-modules/masters/modules/bullet.src.js +1 -1
  248. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  249. package/es-modules/masters/modules/contour.src.js +1 -1
  250. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  251. package/es-modules/masters/modules/cylinder.src.js +1 -1
  252. package/es-modules/masters/modules/data-sorting.src.js +1 -1
  253. package/es-modules/masters/modules/data-tools.src.js +1 -1
  254. package/es-modules/masters/modules/data.src.js +1 -1
  255. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  256. package/es-modules/masters/modules/debugger.src.js +1 -1
  257. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  258. package/es-modules/masters/modules/dotplot.src.js +1 -1
  259. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  260. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  261. package/es-modules/masters/modules/drilldown.src.js +1 -1
  262. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  263. package/es-modules/masters/modules/export-data.src.js +1 -1
  264. package/es-modules/masters/modules/exporting.src.js +1 -1
  265. package/es-modules/masters/modules/flowmap.src.js +1 -1
  266. package/es-modules/masters/modules/full-screen.src.js +1 -1
  267. package/es-modules/masters/modules/funnel.src.js +1 -1
  268. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  269. package/es-modules/masters/modules/gantt.src.js +1 -1
  270. package/es-modules/masters/modules/geoheatmap.src.js +1 -1
  271. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  272. package/es-modules/masters/modules/heatmap.src.js +1 -1
  273. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  274. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  275. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  276. package/es-modules/masters/modules/item-series.src.js +1 -1
  277. package/es-modules/masters/modules/lollipop.src.js +1 -1
  278. package/es-modules/masters/modules/map.src.js +1 -1
  279. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  280. package/es-modules/masters/modules/mouse-wheel-zoom.src.js +1 -1
  281. package/es-modules/masters/modules/navigator.src.js +1 -1
  282. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  283. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  284. package/es-modules/masters/modules/non-cartesian-zoom.src.js +1 -1
  285. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  286. package/es-modules/masters/modules/organization.src.js +1 -1
  287. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  288. package/es-modules/masters/modules/pareto.src.js +1 -1
  289. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  290. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  291. package/es-modules/masters/modules/pictorial.src.js +1 -1
  292. package/es-modules/masters/modules/pointandfigure.src.js +1 -1
  293. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  294. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  295. package/es-modules/masters/modules/renko.src.js +1 -1
  296. package/es-modules/masters/modules/sankey.src.js +1 -1
  297. package/es-modules/masters/modules/series-label.src.js +1 -1
  298. package/es-modules/masters/modules/series-on-point.src.js +1 -1
  299. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  300. package/es-modules/masters/modules/sonification.src.js +1 -1
  301. package/es-modules/masters/modules/static-scale.src.js +1 -1
  302. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  303. package/es-modules/masters/modules/stock.src.js +1 -1
  304. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  305. package/es-modules/masters/modules/sunburst.src.js +1 -1
  306. package/es-modules/masters/modules/textpath.src.js +1 -1
  307. package/es-modules/masters/modules/tiledwebmap.src.js +1 -1
  308. package/es-modules/masters/modules/tilemap.src.js +1 -1
  309. package/es-modules/masters/modules/timeline.src.js +1 -1
  310. package/es-modules/masters/modules/treegraph.src.js +1 -1
  311. package/es-modules/masters/modules/treegrid.src.js +1 -1
  312. package/es-modules/masters/modules/treemap.src.js +1 -1
  313. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  314. package/es-modules/masters/modules/variwide.src.js +1 -1
  315. package/es-modules/masters/modules/vector.src.js +1 -1
  316. package/es-modules/masters/modules/venn.src.js +1 -1
  317. package/es-modules/masters/modules/windbarb.src.js +1 -1
  318. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  319. package/es-modules/masters/modules/xrange.src.js +1 -1
  320. package/es-modules/masters/standalone-navigator.src.js +1 -1
  321. package/es-modules/masters/themes/adaptive.src.js +1 -1
  322. package/es-modules/masters/themes/avocado.src.js +1 -1
  323. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  324. package/es-modules/masters/themes/grid-light.src.js +1 -1
  325. package/es-modules/masters/themes/high-contrast.src.js +1 -1
  326. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  327. package/es-modules/masters/themes/sunset.src.js +1 -1
  328. package/es-modules/tsconfig.tsbuildinfo +1 -1
  329. package/esm/highcharts-3d.js +2 -2
  330. package/esm/highcharts-3d.src.js +40 -32
  331. package/esm/highcharts-autoload.js +1 -1
  332. package/esm/highcharts-autoload.src.js +1 -1
  333. package/esm/highcharts-gantt.js +1 -1
  334. package/esm/highcharts-gantt.src.js +1 -1
  335. package/esm/highcharts-more.js +2 -2
  336. package/esm/highcharts-more.src.js +90 -56
  337. package/esm/highcharts.js +4 -4
  338. package/esm/highcharts.src.js +312 -207
  339. package/esm/highmaps.js +1 -1
  340. package/esm/highmaps.src.js +1 -1
  341. package/esm/highstock.js +1 -1
  342. package/esm/highstock.src.js +1 -1
  343. package/esm/i18n/fr-FR.js +1 -1
  344. package/esm/i18n/fr-FR.src.js +1 -1
  345. package/esm/i18n/nb-NO.js +1 -1
  346. package/esm/i18n/nb-NO.src.js +1 -1
  347. package/esm/i18n/zh-CN.js +1 -1
  348. package/esm/i18n/zh-CN.src.js +1 -1
  349. package/esm/indicators/acceleration-bands.js +1 -1
  350. package/esm/indicators/acceleration-bands.src.js +1 -1
  351. package/esm/indicators/accumulation-distribution.js +1 -1
  352. package/esm/indicators/accumulation-distribution.src.js +1 -1
  353. package/esm/indicators/ao.js +1 -1
  354. package/esm/indicators/ao.src.js +1 -1
  355. package/esm/indicators/apo.js +1 -1
  356. package/esm/indicators/apo.src.js +1 -1
  357. package/esm/indicators/aroon-oscillator.js +1 -1
  358. package/esm/indicators/aroon-oscillator.src.js +1 -1
  359. package/esm/indicators/aroon.js +2 -2
  360. package/esm/indicators/aroon.src.js +3 -3
  361. package/esm/indicators/atr.js +1 -1
  362. package/esm/indicators/atr.src.js +1 -1
  363. package/esm/indicators/bollinger-bands.js +1 -1
  364. package/esm/indicators/bollinger-bands.src.js +1 -1
  365. package/esm/indicators/cci.js +1 -1
  366. package/esm/indicators/cci.src.js +1 -1
  367. package/esm/indicators/chaikin.js +1 -1
  368. package/esm/indicators/chaikin.src.js +1 -1
  369. package/esm/indicators/cmf.js +1 -1
  370. package/esm/indicators/cmf.src.js +1 -1
  371. package/esm/indicators/cmo.js +1 -1
  372. package/esm/indicators/cmo.src.js +1 -1
  373. package/esm/indicators/dema.js +1 -1
  374. package/esm/indicators/dema.src.js +1 -1
  375. package/esm/indicators/disparity-index.js +1 -1
  376. package/esm/indicators/disparity-index.src.js +1 -1
  377. package/esm/indicators/dmi.js +1 -1
  378. package/esm/indicators/dmi.src.js +1 -1
  379. package/esm/indicators/dpo.js +2 -2
  380. package/esm/indicators/dpo.src.js +4 -3
  381. package/esm/indicators/ichimoku-kinko-hyo.js +1 -1
  382. package/esm/indicators/ichimoku-kinko-hyo.src.js +1 -1
  383. package/esm/indicators/indicators-all.js +2 -2
  384. package/esm/indicators/indicators-all.src.js +8 -7
  385. package/esm/indicators/indicators.js +2 -2
  386. package/esm/indicators/indicators.src.js +2 -2
  387. package/esm/indicators/keltner-channels.js +1 -1
  388. package/esm/indicators/keltner-channels.src.js +1 -1
  389. package/esm/indicators/klinger.js +1 -1
  390. package/esm/indicators/klinger.src.js +1 -1
  391. package/esm/indicators/macd.js +1 -1
  392. package/esm/indicators/macd.src.js +1 -1
  393. package/esm/indicators/mfi.js +1 -1
  394. package/esm/indicators/mfi.src.js +1 -1
  395. package/esm/indicators/momentum.js +1 -1
  396. package/esm/indicators/momentum.src.js +1 -1
  397. package/esm/indicators/natr.js +1 -1
  398. package/esm/indicators/natr.src.js +1 -1
  399. package/esm/indicators/obv.js +1 -1
  400. package/esm/indicators/obv.src.js +1 -1
  401. package/esm/indicators/pivot-points.js +1 -1
  402. package/esm/indicators/pivot-points.src.js +1 -1
  403. package/esm/indicators/ppo.js +1 -1
  404. package/esm/indicators/ppo.src.js +1 -1
  405. package/esm/indicators/price-channel.js +1 -1
  406. package/esm/indicators/price-channel.src.js +1 -1
  407. package/esm/indicators/price-envelopes.js +1 -1
  408. package/esm/indicators/price-envelopes.src.js +1 -1
  409. package/esm/indicators/psar.js +1 -1
  410. package/esm/indicators/psar.src.js +1 -1
  411. package/esm/indicators/regressions.js +1 -1
  412. package/esm/indicators/regressions.src.js +1 -1
  413. package/esm/indicators/roc.js +1 -1
  414. package/esm/indicators/roc.src.js +1 -1
  415. package/esm/indicators/rsi.js +1 -1
  416. package/esm/indicators/rsi.src.js +2 -2
  417. package/esm/indicators/slow-stochastic.js +1 -1
  418. package/esm/indicators/slow-stochastic.src.js +1 -1
  419. package/esm/indicators/stochastic.js +1 -1
  420. package/esm/indicators/stochastic.src.js +1 -1
  421. package/esm/indicators/supertrend.js +1 -1
  422. package/esm/indicators/supertrend.src.js +1 -1
  423. package/esm/indicators/tema.js +1 -1
  424. package/esm/indicators/tema.src.js +1 -1
  425. package/esm/indicators/trendline.js +1 -1
  426. package/esm/indicators/trendline.src.js +1 -1
  427. package/esm/indicators/trix.js +1 -1
  428. package/esm/indicators/trix.src.js +1 -1
  429. package/esm/indicators/volume-by-price.js +1 -1
  430. package/esm/indicators/volume-by-price.src.js +1 -1
  431. package/esm/indicators/vwap.js +1 -1
  432. package/esm/indicators/vwap.src.js +1 -1
  433. package/esm/indicators/williams-r.js +1 -1
  434. package/esm/indicators/williams-r.src.js +1 -1
  435. package/esm/indicators/wma.js +1 -1
  436. package/esm/indicators/wma.src.js +1 -1
  437. package/esm/indicators/zigzag.js +1 -1
  438. package/esm/indicators/zigzag.src.js +1 -1
  439. package/esm/modules/accessibility.js +2 -2
  440. package/esm/modules/accessibility.src.js +69 -63
  441. package/esm/modules/annotations-advanced.js +3 -3
  442. package/esm/modules/annotations-advanced.src.js +25 -23
  443. package/esm/modules/annotations.js +3 -3
  444. package/esm/modules/annotations.src.js +21 -19
  445. package/esm/modules/arc-diagram.js +2 -2
  446. package/esm/modules/arc-diagram.src.js +16 -15
  447. package/esm/modules/arrow-symbols.js +1 -1
  448. package/esm/modules/arrow-symbols.src.js +1 -1
  449. package/esm/modules/boost-canvas.js +2 -2
  450. package/esm/modules/boost-canvas.src.js +29 -20
  451. package/esm/modules/boost.js +2 -2
  452. package/esm/modules/boost.src.js +28 -19
  453. package/esm/modules/broken-axis.js +2 -2
  454. package/esm/modules/broken-axis.src.js +6 -5
  455. package/esm/modules/bullet.js +2 -2
  456. package/esm/modules/bullet.src.js +17 -10
  457. package/esm/modules/coloraxis.js +2 -2
  458. package/esm/modules/coloraxis.src.js +18 -11
  459. package/esm/modules/contour.js +1 -1
  460. package/esm/modules/contour.src.js +1 -1
  461. package/esm/modules/current-date-indicator.js +1 -1
  462. package/esm/modules/current-date-indicator.src.js +1 -1
  463. package/esm/modules/cylinder.js +2 -2
  464. package/esm/modules/cylinder.src.js +9 -10
  465. package/esm/modules/data-sorting.js +1 -1
  466. package/esm/modules/data-sorting.src.js +1 -1
  467. package/esm/modules/data-tools.js +2 -2
  468. package/esm/modules/data-tools.src.js +20 -3
  469. package/esm/modules/data.js +1 -1
  470. package/esm/modules/data.src.js +1 -1
  471. package/esm/modules/datagrouping.js +2 -2
  472. package/esm/modules/datagrouping.src.js +6 -5
  473. package/esm/modules/debugger.js +1 -1
  474. package/esm/modules/debugger.src.js +1 -1
  475. package/esm/modules/dependency-wheel.js +1 -1
  476. package/esm/modules/dependency-wheel.src.js +1 -1
  477. package/esm/modules/dotplot.js +2 -2
  478. package/esm/modules/dotplot.src.js +3 -2
  479. package/esm/modules/drag-panes.js +1 -1
  480. package/esm/modules/drag-panes.src.js +1 -1
  481. package/esm/modules/draggable-points.js +2 -2
  482. package/esm/modules/draggable-points.src.js +2 -3
  483. package/esm/modules/drilldown.js +2 -2
  484. package/esm/modules/drilldown.src.js +5 -4
  485. package/esm/modules/dumbbell.js +2 -2
  486. package/esm/modules/dumbbell.src.js +37 -9
  487. package/esm/modules/export-data.js +2 -2
  488. package/esm/modules/export-data.src.js +17 -16
  489. package/esm/modules/exporting.js +2 -2
  490. package/esm/modules/exporting.src.js +7 -7
  491. package/esm/modules/flowmap.js +2 -2
  492. package/esm/modules/flowmap.src.js +21 -11
  493. package/esm/modules/full-screen.js +1 -1
  494. package/esm/modules/full-screen.src.js +1 -1
  495. package/esm/modules/funnel.js +2 -2
  496. package/esm/modules/funnel.src.js +2 -2
  497. package/esm/modules/funnel3d.js +2 -2
  498. package/esm/modules/funnel3d.src.js +14 -13
  499. package/esm/modules/gantt.js +2 -2
  500. package/esm/modules/gantt.src.js +93 -76
  501. package/esm/modules/geoheatmap.js +2 -2
  502. package/esm/modules/geoheatmap.src.js +8 -8
  503. package/esm/modules/grid-axis.js +2 -2
  504. package/esm/modules/grid-axis.src.js +4 -4
  505. package/esm/modules/heatmap.js +2 -2
  506. package/esm/modules/heatmap.src.js +22 -22
  507. package/esm/modules/heikinashi.js +1 -1
  508. package/esm/modules/heikinashi.src.js +1 -1
  509. package/esm/modules/histogram-bellcurve.js +1 -1
  510. package/esm/modules/histogram-bellcurve.src.js +15 -3
  511. package/esm/modules/hollowcandlestick.js +1 -1
  512. package/esm/modules/hollowcandlestick.src.js +1 -1
  513. package/esm/modules/item-series.js +2 -2
  514. package/esm/modules/item-series.src.js +18 -6
  515. package/esm/modules/lollipop.js +1 -1
  516. package/esm/modules/lollipop.src.js +1 -1
  517. package/esm/modules/map.js +2 -2
  518. package/esm/modules/map.src.js +65 -57
  519. package/esm/modules/marker-clusters.js +1 -1
  520. package/esm/modules/marker-clusters.src.js +1 -1
  521. package/esm/modules/mouse-wheel-zoom.js +2 -2
  522. package/esm/modules/mouse-wheel-zoom.src.js +3 -3
  523. package/esm/modules/navigator.js +2 -2
  524. package/esm/modules/navigator.src.js +47 -45
  525. package/esm/modules/networkgraph.js +2 -2
  526. package/esm/modules/networkgraph.src.js +31 -21
  527. package/esm/modules/no-data-to-display.js +1 -1
  528. package/esm/modules/no-data-to-display.src.js +1 -1
  529. package/esm/modules/non-cartesian-zoom.js +1 -1
  530. package/esm/modules/non-cartesian-zoom.src.js +1 -1
  531. package/esm/modules/offline-exporting.js +1 -1
  532. package/esm/modules/offline-exporting.src.js +1 -1
  533. package/esm/modules/organization.js +2 -2
  534. package/esm/modules/organization.src.js +3 -2
  535. package/esm/modules/parallel-coordinates.js +2 -2
  536. package/esm/modules/parallel-coordinates.src.js +2 -2
  537. package/esm/modules/pareto.js +1 -1
  538. package/esm/modules/pareto.src.js +1 -1
  539. package/esm/modules/pathfinder.js +2 -2
  540. package/esm/modules/pathfinder.src.js +7 -6
  541. package/esm/modules/pattern-fill.js +2 -2
  542. package/esm/modules/pattern-fill.src.js +7 -5
  543. package/esm/modules/pictorial.js +2 -2
  544. package/esm/modules/pictorial.src.js +10 -6
  545. package/esm/modules/pointandfigure.js +1 -1
  546. package/esm/modules/pointandfigure.src.js +1 -1
  547. package/esm/modules/price-indicator.js +2 -2
  548. package/esm/modules/price-indicator.src.js +5 -4
  549. package/esm/modules/pyramid3d.js +1 -1
  550. package/esm/modules/pyramid3d.src.js +1 -1
  551. package/esm/modules/renko.js +1 -1
  552. package/esm/modules/renko.src.js +1 -1
  553. package/esm/modules/sankey.js +2 -2
  554. package/esm/modules/sankey.src.js +34 -20
  555. package/esm/modules/series-label.js +2 -2
  556. package/esm/modules/series-label.src.js +7 -7
  557. package/esm/modules/series-on-point.js +1 -1
  558. package/esm/modules/series-on-point.src.js +1 -1
  559. package/esm/modules/solid-gauge.js +2 -2
  560. package/esm/modules/solid-gauge.src.js +2 -2
  561. package/esm/modules/sonification.js +2 -2
  562. package/esm/modules/sonification.src.js +19 -19
  563. package/esm/modules/static-scale.js +1 -1
  564. package/esm/modules/static-scale.src.js +1 -1
  565. package/esm/modules/stock-tools.js +3 -3
  566. package/esm/modules/stock-tools.src.js +15 -10
  567. package/esm/modules/stock.js +2 -2
  568. package/esm/modules/stock.src.js +90 -76
  569. package/esm/modules/streamgraph.js +1 -1
  570. package/esm/modules/streamgraph.src.js +1 -1
  571. package/esm/modules/sunburst.js +2 -2
  572. package/esm/modules/sunburst.src.js +41 -26
  573. package/esm/modules/textpath.js +1 -1
  574. package/esm/modules/textpath.src.js +1 -1
  575. package/esm/modules/tiledwebmap.js +2 -2
  576. package/esm/modules/tiledwebmap.src.js +8 -6
  577. package/esm/modules/tilemap.js +2 -2
  578. package/esm/modules/tilemap.src.js +3 -3
  579. package/esm/modules/timeline.js +2 -2
  580. package/esm/modules/timeline.src.js +5 -4
  581. package/esm/modules/treegraph.js +2 -2
  582. package/esm/modules/treegraph.src.js +17 -8
  583. package/esm/modules/treegrid.js +2 -2
  584. package/esm/modules/treegrid.src.js +28 -18
  585. package/esm/modules/treemap.js +2 -2
  586. package/esm/modules/treemap.src.js +35 -22
  587. package/esm/modules/variable-pie.js +2 -2
  588. package/esm/modules/variable-pie.src.js +6 -4
  589. package/esm/modules/variwide.js +2 -2
  590. package/esm/modules/variwide.src.js +2 -2
  591. package/esm/modules/vector.js +1 -1
  592. package/esm/modules/vector.src.js +1 -1
  593. package/esm/modules/venn.js +1 -1
  594. package/esm/modules/venn.src.js +1 -1
  595. package/esm/modules/windbarb.js +2 -2
  596. package/esm/modules/windbarb.src.js +2 -2
  597. package/esm/modules/wordcloud.js +1 -1
  598. package/esm/modules/wordcloud.src.js +1 -1
  599. package/esm/modules/xrange.js +1 -1
  600. package/esm/modules/xrange.src.js +1 -1
  601. package/esm/standalone-navigator.js +4 -4
  602. package/esm/standalone-navigator.src.js +355 -249
  603. package/esm/themes/adaptive.js +1 -1
  604. package/esm/themes/adaptive.src.js +1 -1
  605. package/esm/themes/avocado.js +1 -1
  606. package/esm/themes/avocado.src.js +1 -1
  607. package/esm/themes/dark-unica.js +1 -1
  608. package/esm/themes/dark-unica.src.js +1 -1
  609. package/esm/themes/grid-light.js +1 -1
  610. package/esm/themes/grid-light.src.js +1 -1
  611. package/esm/themes/high-contrast.js +1 -1
  612. package/esm/themes/high-contrast.src.js +1 -1
  613. package/esm/themes/sand-signika.js +1 -1
  614. package/esm/themes/sand-signika.src.js +1 -1
  615. package/esm/themes/sunset.js +1 -1
  616. package/esm/themes/sunset.src.js +1 -1
  617. package/highcharts-3d.js +2 -2
  618. package/highcharts-3d.src.js +40 -32
  619. package/highcharts-autoload.d.ts +8 -2
  620. package/highcharts-autoload.js +4 -4
  621. package/highcharts-autoload.src.d.ts +8 -2
  622. package/highcharts-autoload.src.js +313 -208
  623. package/highcharts-gantt.js +4 -4
  624. package/highcharts-gantt.src.js +404 -283
  625. package/highcharts-more.js +2 -2
  626. package/highcharts-more.src.js +90 -56
  627. package/highcharts.d.ts +61 -4
  628. package/highcharts.js +4 -4
  629. package/highcharts.src.d.ts +61 -4
  630. package/highcharts.src.js +312 -207
  631. package/highmaps.js +4 -4
  632. package/highmaps.src.js +390 -272
  633. package/highstock.js +4 -4
  634. package/highstock.src.js +413 -293
  635. package/i18n/fr-FR.js +1 -1
  636. package/i18n/fr-FR.src.js +1 -1
  637. package/i18n/nb-NO.js +1 -1
  638. package/i18n/nb-NO.src.js +1 -1
  639. package/i18n/zh-CN.js +1 -1
  640. package/i18n/zh-CN.src.js +1 -1
  641. package/indicators/acceleration-bands.js +1 -1
  642. package/indicators/acceleration-bands.src.js +1 -1
  643. package/indicators/accumulation-distribution.js +1 -1
  644. package/indicators/accumulation-distribution.src.js +1 -1
  645. package/indicators/ao.js +1 -1
  646. package/indicators/ao.src.js +1 -1
  647. package/indicators/apo.js +1 -1
  648. package/indicators/apo.src.js +1 -1
  649. package/indicators/aroon-oscillator.js +1 -1
  650. package/indicators/aroon-oscillator.src.js +1 -1
  651. package/indicators/aroon.js +2 -2
  652. package/indicators/aroon.src.js +3 -3
  653. package/indicators/atr.js +1 -1
  654. package/indicators/atr.src.js +1 -1
  655. package/indicators/bollinger-bands.js +1 -1
  656. package/indicators/bollinger-bands.src.js +1 -1
  657. package/indicators/cci.js +1 -1
  658. package/indicators/cci.src.js +1 -1
  659. package/indicators/chaikin.js +1 -1
  660. package/indicators/chaikin.src.js +1 -1
  661. package/indicators/cmf.js +1 -1
  662. package/indicators/cmf.src.js +1 -1
  663. package/indicators/cmo.js +1 -1
  664. package/indicators/cmo.src.js +1 -1
  665. package/indicators/dema.js +1 -1
  666. package/indicators/dema.src.js +1 -1
  667. package/indicators/disparity-index.js +1 -1
  668. package/indicators/disparity-index.src.js +1 -1
  669. package/indicators/dmi.js +1 -1
  670. package/indicators/dmi.src.js +1 -1
  671. package/indicators/dpo.js +2 -2
  672. package/indicators/dpo.src.js +4 -3
  673. package/indicators/ichimoku-kinko-hyo.js +1 -1
  674. package/indicators/ichimoku-kinko-hyo.src.js +1 -1
  675. package/indicators/indicators-all.js +2 -2
  676. package/indicators/indicators-all.src.js +8 -7
  677. package/indicators/indicators.js +2 -2
  678. package/indicators/indicators.src.js +2 -2
  679. package/indicators/keltner-channels.js +1 -1
  680. package/indicators/keltner-channels.src.js +1 -1
  681. package/indicators/klinger.js +1 -1
  682. package/indicators/klinger.src.js +1 -1
  683. package/indicators/macd.js +1 -1
  684. package/indicators/macd.src.js +1 -1
  685. package/indicators/mfi.js +1 -1
  686. package/indicators/mfi.src.js +1 -1
  687. package/indicators/momentum.js +1 -1
  688. package/indicators/momentum.src.js +1 -1
  689. package/indicators/natr.js +1 -1
  690. package/indicators/natr.src.js +1 -1
  691. package/indicators/obv.js +1 -1
  692. package/indicators/obv.src.js +1 -1
  693. package/indicators/pivot-points.js +1 -1
  694. package/indicators/pivot-points.src.js +1 -1
  695. package/indicators/ppo.js +1 -1
  696. package/indicators/ppo.src.js +1 -1
  697. package/indicators/price-channel.js +1 -1
  698. package/indicators/price-channel.src.js +1 -1
  699. package/indicators/price-envelopes.js +1 -1
  700. package/indicators/price-envelopes.src.js +1 -1
  701. package/indicators/psar.js +1 -1
  702. package/indicators/psar.src.js +1 -1
  703. package/indicators/regressions.js +1 -1
  704. package/indicators/regressions.src.js +1 -1
  705. package/indicators/roc.js +1 -1
  706. package/indicators/roc.src.js +1 -1
  707. package/indicators/rsi.js +1 -1
  708. package/indicators/rsi.src.js +2 -2
  709. package/indicators/slow-stochastic.js +1 -1
  710. package/indicators/slow-stochastic.src.js +1 -1
  711. package/indicators/stochastic.js +1 -1
  712. package/indicators/stochastic.src.js +1 -1
  713. package/indicators/supertrend.js +1 -1
  714. package/indicators/supertrend.src.js +1 -1
  715. package/indicators/tema.js +1 -1
  716. package/indicators/tema.src.js +1 -1
  717. package/indicators/trendline.js +1 -1
  718. package/indicators/trendline.src.js +1 -1
  719. package/indicators/trix.js +1 -1
  720. package/indicators/trix.src.js +1 -1
  721. package/indicators/volume-by-price.js +1 -1
  722. package/indicators/volume-by-price.src.js +1 -1
  723. package/indicators/vwap.js +1 -1
  724. package/indicators/vwap.src.js +1 -1
  725. package/indicators/williams-r.js +1 -1
  726. package/indicators/williams-r.src.js +1 -1
  727. package/indicators/wma.js +1 -1
  728. package/indicators/wma.src.js +1 -1
  729. package/indicators/zigzag.js +1 -1
  730. package/indicators/zigzag.src.js +1 -1
  731. package/modules/accessibility.js +2 -2
  732. package/modules/accessibility.src.js +69 -63
  733. package/modules/annotations-advanced.js +3 -3
  734. package/modules/annotations-advanced.src.js +25 -23
  735. package/modules/annotations.js +3 -3
  736. package/modules/annotations.src.js +21 -19
  737. package/modules/arc-diagram.js +2 -2
  738. package/modules/arc-diagram.src.js +16 -15
  739. package/modules/arrow-symbols.js +1 -1
  740. package/modules/arrow-symbols.src.js +1 -1
  741. package/modules/boost-canvas.js +2 -2
  742. package/modules/boost-canvas.src.js +29 -20
  743. package/modules/boost.js +2 -2
  744. package/modules/boost.src.js +28 -19
  745. package/modules/broken-axis.js +2 -2
  746. package/modules/broken-axis.src.js +6 -5
  747. package/modules/bullet.js +2 -2
  748. package/modules/bullet.src.js +17 -10
  749. package/modules/coloraxis.js +2 -2
  750. package/modules/coloraxis.src.js +18 -11
  751. package/modules/contour.js +4 -4
  752. package/modules/contour.src.js +19 -12
  753. package/modules/current-date-indicator.js +1 -1
  754. package/modules/current-date-indicator.src.js +1 -1
  755. package/modules/cylinder.js +2 -2
  756. package/modules/cylinder.src.js +9 -10
  757. package/modules/data-sorting.js +1 -1
  758. package/modules/data-sorting.src.js +1 -1
  759. package/modules/data-tools.js +2 -2
  760. package/modules/data-tools.src.js +20 -3
  761. package/modules/data.js +1 -1
  762. package/modules/data.src.js +1 -1
  763. package/modules/datagrouping.js +2 -2
  764. package/modules/datagrouping.src.js +6 -5
  765. package/modules/debugger.js +1 -1
  766. package/modules/debugger.src.js +1 -1
  767. package/modules/dependency-wheel.js +1 -1
  768. package/modules/dependency-wheel.src.js +1 -1
  769. package/modules/dotplot.js +2 -2
  770. package/modules/dotplot.src.js +3 -2
  771. package/modules/drag-panes.js +1 -1
  772. package/modules/drag-panes.src.js +1 -1
  773. package/modules/draggable-points.js +2 -2
  774. package/modules/draggable-points.src.js +2 -3
  775. package/modules/drilldown.js +2 -2
  776. package/modules/drilldown.src.js +5 -4
  777. package/modules/dumbbell.js +2 -2
  778. package/modules/dumbbell.src.js +37 -9
  779. package/modules/export-data.js +2 -2
  780. package/modules/export-data.src.js +17 -16
  781. package/modules/exporting.js +2 -2
  782. package/modules/exporting.src.js +7 -7
  783. package/modules/flowmap.js +2 -2
  784. package/modules/flowmap.src.js +21 -11
  785. package/modules/full-screen.js +1 -1
  786. package/modules/full-screen.src.js +1 -1
  787. package/modules/funnel.js +2 -2
  788. package/modules/funnel.src.js +2 -2
  789. package/modules/funnel3d.js +2 -2
  790. package/modules/funnel3d.src.js +14 -13
  791. package/modules/gantt.js +6 -6
  792. package/modules/gantt.src.js +96 -79
  793. package/modules/geoheatmap.d.ts +0 -12
  794. package/modules/geoheatmap.js +2 -2
  795. package/modules/geoheatmap.src.d.ts +0 -12
  796. package/modules/geoheatmap.src.js +8 -8
  797. package/modules/grid-axis.js +2 -2
  798. package/modules/grid-axis.src.js +4 -4
  799. package/modules/heatmap.d.ts +0 -12
  800. package/modules/heatmap.js +4 -4
  801. package/modules/heatmap.src.d.ts +0 -12
  802. package/modules/heatmap.src.js +40 -33
  803. package/modules/heikinashi.js +1 -1
  804. package/modules/heikinashi.src.js +1 -1
  805. package/modules/histogram-bellcurve.js +1 -1
  806. package/modules/histogram-bellcurve.src.js +15 -3
  807. package/modules/hollowcandlestick.js +1 -1
  808. package/modules/hollowcandlestick.src.js +1 -1
  809. package/modules/item-series.js +2 -2
  810. package/modules/item-series.src.js +18 -6
  811. package/modules/lollipop.js +1 -1
  812. package/modules/lollipop.src.js +1 -1
  813. package/modules/map.d.ts +0 -12
  814. package/modules/map.js +4 -4
  815. package/modules/map.src.d.ts +0 -12
  816. package/modules/map.src.js +83 -68
  817. package/modules/marker-clusters.js +1 -1
  818. package/modules/marker-clusters.src.js +1 -1
  819. package/modules/mouse-wheel-zoom.js +2 -2
  820. package/modules/mouse-wheel-zoom.src.js +3 -3
  821. package/modules/navigator.js +2 -2
  822. package/modules/navigator.src.js +47 -45
  823. package/modules/networkgraph.js +2 -2
  824. package/modules/networkgraph.src.js +31 -21
  825. package/modules/no-data-to-display.js +1 -1
  826. package/modules/no-data-to-display.src.js +1 -1
  827. package/modules/non-cartesian-zoom.js +1 -1
  828. package/modules/non-cartesian-zoom.src.js +1 -1
  829. package/modules/offline-exporting.js +1 -1
  830. package/modules/offline-exporting.src.js +1 -1
  831. package/modules/organization.js +2 -2
  832. package/modules/organization.src.js +3 -2
  833. package/modules/parallel-coordinates.js +2 -2
  834. package/modules/parallel-coordinates.src.js +2 -2
  835. package/modules/pareto.js +1 -1
  836. package/modules/pareto.src.js +1 -1
  837. package/modules/pathfinder.js +2 -2
  838. package/modules/pathfinder.src.js +7 -6
  839. package/modules/pattern-fill.js +2 -2
  840. package/modules/pattern-fill.src.js +7 -5
  841. package/modules/pictorial.js +2 -2
  842. package/modules/pictorial.src.js +10 -6
  843. package/modules/pointandfigure.js +1 -1
  844. package/modules/pointandfigure.src.js +1 -1
  845. package/modules/price-indicator.js +2 -2
  846. package/modules/price-indicator.src.js +5 -4
  847. package/modules/pyramid3d.js +1 -1
  848. package/modules/pyramid3d.src.js +1 -1
  849. package/modules/renko.js +1 -1
  850. package/modules/renko.src.js +1 -1
  851. package/modules/sankey.js +2 -2
  852. package/modules/sankey.src.js +34 -20
  853. package/modules/series-label.js +2 -2
  854. package/modules/series-label.src.js +7 -7
  855. package/modules/series-on-point.js +1 -1
  856. package/modules/series-on-point.src.js +1 -1
  857. package/modules/solid-gauge.js +2 -2
  858. package/modules/solid-gauge.src.js +2 -2
  859. package/modules/sonification.js +2 -2
  860. package/modules/sonification.src.js +19 -19
  861. package/modules/static-scale.js +1 -1
  862. package/modules/static-scale.src.js +1 -1
  863. package/modules/stock-tools.js +3 -3
  864. package/modules/stock-tools.src.js +15 -10
  865. package/modules/stock.js +6 -6
  866. package/modules/stock.src.js +105 -89
  867. package/modules/streamgraph.js +1 -1
  868. package/modules/streamgraph.src.js +1 -1
  869. package/modules/sunburst.js +2 -2
  870. package/modules/sunburst.src.js +41 -26
  871. package/modules/textpath.js +1 -1
  872. package/modules/textpath.src.js +1 -1
  873. package/modules/tiledwebmap.js +2 -2
  874. package/modules/tiledwebmap.src.js +8 -6
  875. package/modules/tilemap.js +2 -2
  876. package/modules/tilemap.src.js +3 -3
  877. package/modules/timeline.js +2 -2
  878. package/modules/timeline.src.js +5 -4
  879. package/modules/treegraph.js +2 -2
  880. package/modules/treegraph.src.js +17 -8
  881. package/modules/treegrid.js +2 -2
  882. package/modules/treegrid.src.js +28 -18
  883. package/modules/treemap.js +2 -2
  884. package/modules/treemap.src.js +35 -22
  885. package/modules/variable-pie.js +2 -2
  886. package/modules/variable-pie.src.js +6 -4
  887. package/modules/variwide.js +2 -2
  888. package/modules/variwide.src.js +2 -2
  889. package/modules/vector.js +1 -1
  890. package/modules/vector.src.js +1 -1
  891. package/modules/venn.js +1 -1
  892. package/modules/venn.src.js +1 -1
  893. package/modules/windbarb.js +2 -2
  894. package/modules/windbarb.src.js +2 -2
  895. package/modules/wordcloud.js +1 -1
  896. package/modules/wordcloud.src.js +1 -1
  897. package/modules/xrange.js +1 -1
  898. package/modules/xrange.src.js +1 -1
  899. package/package.json +2 -3
  900. package/standalone-navigator.js +4 -4
  901. package/standalone-navigator.src.js +355 -249
  902. package/themes/adaptive.js +1 -1
  903. package/themes/adaptive.src.js +1 -1
  904. package/themes/avocado.js +1 -1
  905. package/themes/avocado.src.js +1 -1
  906. package/themes/dark-unica.js +1 -1
  907. package/themes/dark-unica.src.js +1 -1
  908. package/themes/grid-light.js +1 -1
  909. package/themes/grid-light.src.js +1 -1
  910. package/themes/high-contrast.js +1 -1
  911. package/themes/high-contrast.src.js +1 -1
  912. package/themes/sand-signika.js +1 -1
  913. package/themes/sand-signika.src.js +1 -1
  914. package/themes/sunset.js +1 -1
  915. package/themes/sunset.src.js +1 -1
@@ -1,6 +1,6 @@
1
1
  // SPDX-License-Identifier: LicenseRef-Highcharts
2
2
  /**
3
- * @license Highcharts JS v13.0.1 (2026-08-17)
3
+ * @license Highcharts JS v13.0.2 (2026-08-27)
4
4
  * @module highcharts/modules/annotations
5
5
  * @requires highcharts
6
6
  *
@@ -104,7 +104,7 @@ var external_highcharts_src_js_default_default = /*#__PURE__*/__webpack_require_
104
104
  function chartAddAnnotation(options, redraw) {
105
105
  const annotation = this.initAnnotation(options);
106
106
  this.options.annotations.push(annotation.options);
107
- if ((0,external_highcharts_src_js_default_namespaceObject.pick)(redraw, true)) {
107
+ if (redraw ?? true) {
108
108
  annotation.redraw();
109
109
  annotation.graphic.attr({
110
110
  opacity: 1
@@ -1302,7 +1302,8 @@ class EventEmitter {
1302
1302
  emitter.removeMouseUp = (0,external_highcharts_src_js_default_namespaceObject.addEvent)(doc, isTouchDevice || firesTouchEvents ? 'touchend' : 'mouseup', function () {
1303
1303
  // Sometimes the target is the annotation and sometimes its the
1304
1304
  // controllable
1305
- const annotation = (0,external_highcharts_src_js_default_namespaceObject.pick)(emitter.target && emitter.target.annotation, emitter.target);
1305
+ const annotation = ((emitter.target && emitter.target.annotation) ??
1306
+ emitter.target);
1306
1307
  if (annotation) {
1307
1308
  // Keep annotation selected after dragging control point
1308
1309
  annotation.cancelClick = emitter.hasDragged;
@@ -1311,8 +1312,7 @@ class EventEmitter {
1311
1312
  emitter.chart.hasDraggedAnnotation = false;
1312
1313
  if (emitter.hasDragged) {
1313
1314
  // ControlPoints vs Annotation:
1314
- (0,external_highcharts_src_js_default_namespaceObject.fireEvent)((0,external_highcharts_src_js_default_namespaceObject.pick)(annotation, // #15952
1315
- emitter), 'afterUpdate');
1315
+ (0,external_highcharts_src_js_default_namespaceObject.fireEvent)((annotation ?? emitter), 'afterUpdate');
1316
1316
  }
1317
1317
  emitter.hasDragged = false;
1318
1318
  emitter.onMouseUp();
@@ -1401,7 +1401,7 @@ class ControlPoint extends Annotations_EventEmitter {
1401
1401
  this.chart = chart;
1402
1402
  this.target = target;
1403
1403
  this.options = options;
1404
- this.index = (0,external_highcharts_src_js_default_namespaceObject.pick)(options.index, index);
1404
+ this.index = (options.index ?? index);
1405
1405
  }
1406
1406
  /* *
1407
1407
  *
@@ -1553,7 +1553,7 @@ function getAssignedAxis(coords) {
1553
1553
  const extremes = coord.axis.getExtremes(), axisMin = extremes.min, axisMax = extremes.max,
1554
1554
  // Correct axis edges when axis has series
1555
1555
  // with pointRange (like column)
1556
- minPointOffset = (0,external_highcharts_src_js_default_namespaceObject.pick)(coord.axis.minPointOffset, 0);
1556
+ minPointOffset = (coord.axis.minPointOffset ?? 0);
1557
1557
  return (0,external_highcharts_src_js_default_namespaceObject.isNumber)(axisMin) && (0,external_highcharts_src_js_default_namespaceObject.isNumber)(axisMax) &&
1558
1558
  coord.value >= (axisMin - minPointOffset) &&
1559
1559
  coord.value <= (axisMax + minPointOffset) &&
@@ -3793,7 +3793,7 @@ class ControllableLabel extends Controllables_Controllable {
3793
3793
  if (itemOptions.distance && tooltip) {
3794
3794
  itemPosition = tooltip.getPosition.call({
3795
3795
  chart,
3796
- distance: (0,external_highcharts_src_js_default_namespaceObject.pick)(itemOptions.distance, 16),
3796
+ distance: (itemOptions.distance ?? 16),
3797
3797
  getPlayingField: tooltip.getPlayingField,
3798
3798
  pointer: tooltip.pointer
3799
3799
  }, width, height, {
@@ -4289,11 +4289,9 @@ function addToolbar(chart, options, callback) {
4289
4289
  className: 'highcharts-annotation-label'
4290
4290
  }, void 0, popupDiv);
4291
4291
  label.setAttribute('aria-label', 'Annotation type');
4292
- label.appendChild(PopupAnnotations_doc.createTextNode((0,external_highcharts_src_js_default_namespaceObject.pick)(
4293
- // Advanced annotations:
4294
- lang[options.langKey] || options.langKey,
4295
- // Basic shapes:
4296
- options.shapes && options.shapes[0].type, '')));
4292
+ label.appendChild(PopupAnnotations_doc.createTextNode(((lang[options.langKey] || options.langKey) ??
4293
+ (options.shapes && options.shapes[0].type) ??
4294
+ '')));
4297
4295
  // Add buttons
4298
4296
  let button = this.addButton(popupDiv, lang.editButton || 'Edit', 'edit', popupDiv, () => {
4299
4297
  showForm.call(this, 'annotation-edit', chart, options, callback);
@@ -5346,7 +5344,8 @@ class Popup extends Shared_BaseForm {
5346
5344
  * Return created input element.
5347
5345
  */
5348
5346
  addInput(option, indicatorType, parentDiv, inputAttributes) {
5349
- const optionParamList = option.split('.'), optionName = optionParamList[optionParamList.length - 1], lang = this.lang, inputName = 'highcharts-' + indicatorType + '-' + (0,external_highcharts_src_js_default_namespaceObject.pick)(inputAttributes.htmlFor, optionName);
5347
+ const optionParamList = option.split('.'), optionName = optionParamList[optionParamList.length - 1], lang = this.lang, inputName = 'highcharts-' + indicatorType + '-' +
5348
+ (inputAttributes.htmlFor ?? optionName);
5350
5349
  if (!optionName.match(/^\d+$/)) {
5351
5350
  // Add label
5352
5351
  (0,external_highcharts_src_js_default_namespaceObject.createElement)('label', {
@@ -5969,7 +5968,7 @@ class Annotation extends Annotations_EventEmitter {
5969
5968
  if (!item.graphic) {
5970
5969
  this.renderItem(item);
5971
5970
  }
5972
- item.redraw((0,external_highcharts_src_js_default_namespaceObject.pick)(animation, true) && item.graphic.placed);
5971
+ item.redraw((animation ?? true) && item.graphic.placed);
5973
5972
  if (item.points.length) {
5974
5973
  adjustVisibility(item);
5975
5974
  }
@@ -6112,7 +6111,7 @@ class Annotation extends Annotations_EventEmitter {
6112
6111
  * annotation's visibility is toggled.
6113
6112
  */
6114
6113
  setVisibility(visible) {
6115
- const options = this.options, navigation = this.chart.navigationBindings, visibility = (0,external_highcharts_src_js_default_namespaceObject.pick)(visible, !options.visible);
6114
+ const options = this.options, navigation = this.chart.navigationBindings, visibility = (visible ?? !options.visible);
6116
6115
  this.graphic.attr('visibility', visibility ? 'inherit' : 'hidden');
6117
6116
  if (!visibility) {
6118
6117
  const setItemControlPointsVisibility = function (item) {
@@ -6148,7 +6147,7 @@ class Annotation extends Annotations_EventEmitter {
6148
6147
  // Update options in chart options, used in exporting (#9767, #21507):
6149
6148
  chart.options.annotations[userOptionsIndex] = this.options;
6150
6149
  this.isUpdating = true;
6151
- if ((0,external_highcharts_src_js_default_namespaceObject.pick)(redraw, true)) {
6150
+ if (redraw ?? true) {
6152
6151
  chart.drawAnnotations();
6153
6152
  }
6154
6153
  (0,external_highcharts_src_js_default_namespaceObject.fireEvent)(this, 'afterUpdate');
@@ -7257,7 +7256,7 @@ class NavigationBindings {
7257
7256
  let parent = config;
7258
7257
  path.forEach((name, index) => {
7259
7258
  if (name !== '__proto__' && name !== 'constructor') {
7260
- const nextName = (0,external_highcharts_src_js_default_namespaceObject.pick)(path[index + 1], '');
7259
+ const nextName = (path[index + 1] ?? '');
7261
7260
  if (pathLength === index) {
7262
7261
  // Last index, put value:
7263
7262
  parent[name] = value;
@@ -7303,7 +7302,10 @@ class NavigationBindings {
7303
7302
  * Annotation options to be displayed in popup box
7304
7303
  */
7305
7304
  annotationToFields(annotation) {
7306
- const options = annotation.options, editables = NavigationBindings.annotationsEditable, nestedEditables = editables.nestedOptions, type = (0,external_highcharts_src_js_default_namespaceObject.pick)(options.type, options.shapes?.[0]?.type, options.labels?.[0]?.type, 'label'), nonEditables = NavigationBindings.annotationsNonEditable[options.langKey] || [], visualOptions = {
7305
+ const options = annotation.options, editables = NavigationBindings.annotationsEditable, nestedEditables = editables.nestedOptions, type = options.type ??
7306
+ options.shapes?.[0]?.type ??
7307
+ options.labels?.[0]?.type ??
7308
+ 'label', nonEditables = NavigationBindings.annotationsNonEditable[options.langKey] || [], visualOptions = {
7307
7309
  langKey: options.langKey,
7308
7310
  type: type
7309
7311
  };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Highcharts JS v13.0.1 (2026-08-17)
2
+ * Highcharts JS v13.0.2 (2026-08-27)
3
3
  * @module modules/arc-diagram
4
4
  * @requires highcharts/modules/sankey
5
5
  *
@@ -10,4 +10,4 @@
10
10
  *
11
11
  * A commercial license may be required depending on use,
12
12
  * see www.highcharts.com/license
13
- */import*as t from"../highcharts.js";let e={};e.n=t=>{let o=t&&t.__esModule?()=>t.default:()=>t;return e.d(o,{a:o}),o},e.d=(t,o)=>{if(Array.isArray(o))for(var s=0;s<o.length;){var i=o[s++],n=o[s++];e.o(t,i)?0===n&&s++:0===n?Object.defineProperty(t,i,{enumerable:!0,value:o[s++]}):Object.defineProperty(t,i,{enumerable:!0,get:n})}else for(var i in o)e.o(o,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:o[i]})},e.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);let o=t.default;var s,i,n,a=e.n(o);let r=t.default.SeriesRegistry;var l=e.n(r);let{series:{prototype:h,prototype:{pointClass:{prototype:d}}}}=l();!function(t){function e(){if(!this.hasDataLabels?.()&&this.nodes)for(let t of this.nodes)t.destroyElements({dataLabel:1})}function s(){return this.data=[].concat(this.points||[],this.nodes),h.destroy.apply(this,arguments)}function i(){this.nodes&&(this.nodes.forEach(t=>{t.destroy()}),this.nodes.length=0),h.setData.apply(this,arguments)}function n(t){let e=arguments,o=this.isNode?this.linksTo.concat(this.linksFrom):[this.fromNode,this.toNode];"select"!==t&&o.forEach(t=>{t&&t.series&&(d.setState.apply(t,e),!t.isNode&&(t.fromNode.graphic&&d.setState.apply(t.fromNode,e),t.toNode&&t.toNode.graphic&&d.setState.apply(t.toNode,e)))}),d.setState.apply(this,e)}function a(t,e,s,i){let n=this.series.options.nodes,a=this.series.options.data,r=a?.length||0,l=a?.[this.index];if(d.update.call(this,t,!this.isNode&&e,s,i),this.isNode){let t=(n||[]).reduce((t,e,o)=>this.id===e.id?o:t,-1),i=(0,o.merge)(n&&n[t]||{},a?.[this.index]||{});a&&(l?a[this.index]=l:a.length=r),n?t>=0?n[t]=i:n.push(i):this.series.options.nodes=[i],(0,o.pick)(e,!0)&&this.series.chart.redraw(s)}}t.compose=function(t,r){let l=t.prototype,h=r.prototype;return l.setNodeState=n,l.setState=n,l.update=a,h.destroy=s,h.setData=i,(0,o.addEvent)(r,"afterUpdate",e),r},t.createNode=function(t){let e=this.pointClass,s=(t,e)=>(0,o.find)(t,t=>t.id===e),i=s(this.nodes,t),n;if(!i){n=this.options.nodes&&s(this.options.nodes,t);let a=new e(this,(0,o.extend)({className:"highcharts-node",isNode:!0,id:t,y:1},n));a.linksTo=[],a.linksFrom=[],a.getSum=function(){let t=0,e=0;return a.linksTo.forEach(e=>{t+=e.weight||0}),a.linksFrom.forEach(t=>{e+=t.weight||0}),Math.max(t,e)},a.offset=function(t,e){let o=0;for(let s=0;s<a[e].length;s++){if(a[e][s]===t)return o;o+=a[e][s].weight}},a.hasShape=function(){let t=0;return a.linksTo.forEach(e=>{e.outgoing&&t++}),!a.linksTo.length||t!==a.linksTo.length},a.index=this.nodes.push(a)-1,i=a}return i.formatPrefix="node",i.name=i.name||i.options.id||"",i.mass=(0,o.pick)(i.options.mass,i.options.marker&&i.options.marker.radius,this.options.marker&&this.options.marker.radius,4),i},t.destroy=s,t.generatePoints=function(){let t=this.chart,e={};h.generatePoints.call(this),this.nodes||(this.nodes=[]),this.colorCounter=0,this.nodes.forEach(t=>{t.linksFrom.length=0,t.linksTo.length=0,t.level=t.options.level}),this.points.forEach(s=>{(0,o.defined)(s.from)&&(e[s.from]||(e[s.from]=this.createNode(s.from)),e[s.from].linksFrom.push(s),s.fromNode=e[s.from],t.styledMode?s.colorIndex=(0,o.pick)(s.options.colorIndex,e[s.from].colorIndex):s.color=s.options.color||e[s.from].color),(0,o.defined)(s.to)&&(e[s.to]||(e[s.to]=this.createNode(s.to)),e[s.to].linksTo.push(s),s.toNode=e[s.to]),s.name=s.name||s.id},this),this.nodeLookup=e},t.setNodeState=n,t.updateNode=a}(i||(i={}));let p=i,{seriesTypes:{sankey:{prototype:{pointClass:u}}}}=l();class c extends u{isValid(){return!0}}(0,o.extend)(c.prototype,{setState:p.setNodeState});var f=n||(n={});f.compose=function(t,e){return t.sankeyColumn=new m(t,e),t};class m{constructor(t,e){this.points=t,this.series=e}getTranslationFactor(t){let e=this.points,o=e.slice(),s=t.chart,i=t.options.minLinkWidth||0,n,a=0,r,l=(s.plotSizeY||0)-(t.options.borderWidth||0)-(e.length-1)*t.nodePadding;for(;e.length;){for(a=l/e.sankeyColumn.sum(),n=!1,r=e.length;r--;)e[r].getSum()*a<i&&(e.splice(r,1),l=Math.max(0,l-i),n=!0);if(!n)break}for(let t of(e.length=0,o))e.push(t);return a}top(t){let e=this.series,s=e.nodePadding,i=this.points.reduce((o,i)=>(o>0&&(o+=s),o+=Math.max(i.getSum()*t,e.options.minLinkWidth||0)),0);return(0,o.getAlignFactor)(e.options.nodeAlignment||"center")*((e.chart.plotSizeY||0)-i)}left(t){let e=this.series,o=e.chart,s=e.options.equalNodes,i=o.inverted?o.plotHeight:o.plotWidth,n=e.nodePadding,a=this.points.reduce((o,a)=>(o>0&&(o+=n),o+=s?i/a.series.nodes.length-n:Math.max(a.getSum()*t,e.options.minLinkWidth||0)),0);return((o.plotSizeX||0)-Math.round(a))/2}sum(){return this.points.reduce((t,e)=>t+e.getSum(),0)}offset(t,e){let s=this.points,i=this.series,n=i.nodePadding,a=0,r;if(i.is("organization")&&t.hangsFrom)return{absoluteTop:t.hangsFrom.nodeY};for(let l=0;l<s.length;l++){let h=s[l].getSum(),d=Math.max(h*e,i.options.minLinkWidth||0),p=t.options[i.chart.inverted?"offsetHorizontal":"offsetVertical"],u=t.options.offset||0;if(r=h?d+n:0,s[l]===t)return{relativeTop:a+((0,o.defined)(p)?(0,o.relativeLength)(p,d):(0,o.relativeLength)(u,r))};a+=r}}}f.SankeyColumnAdditions=m;let g=n,y=t.default.Series;var x=e.n(y);let k=t.default.SVGRenderer;var b=e.n(k);let L=t.default.SVGElement;var P=e.n(L);let{composed:S,deg2rad:v}=a();s=P(),(0,o.pushUnique)(S,"TextPath")&&((0,o.addEvent)(s,"afterGetBBox",function(t){let e=t.bBox,o=this.element?.querySelector("textPath");if(o){let t=[],{b:s,h:i}=this.renderer.fontMetrics(this.element),n=i-s,a=RegExp('(<tspan>|<tspan(?!\\sclass="highcharts-br")[^>]*>|<\\/tspan>)',"g"),r=o.innerHTML.replace(a,"").split(/<tspan class="highcharts-br"[^>]*>/),l=r.length,h=(t,e)=>{let{x:i,y:a}=e,r=(o.getRotationOfChar(t)-90)*v,l=Math.cos(r),h=Math.sin(r);return[[i-n*l,a-n*h],[i+s*l,a+s*h]]};for(let e=0,s=0;s<l;s++){let i=r[s].length;for(let n=0;n<i;n+=5)try{let i=e+n+s,[a,r]=h(i,o.getStartPositionOfChar(i));0===n?(t.push(r),t.push(a)):(0===s&&t.unshift(r),s===l-1&&t.push(a))}catch{break}e+=i-1;try{let i=e+s,n=o.getEndPositionOfChar(i),[a,r]=h(i,n);t.unshift(r),t.unshift(a)}catch{break}}t.length&&t.push(t[0].slice()),e.polygon=t}return e}),(0,o.addEvent)(s,"beforeAddingDataLabel",function(t){let e=t.labelOptions,o=t.point,s=e[o.formatPrefix+"TextPath"]||e.textPath;s&&!e.useHTML&&(this.setTextPath(o.getDataLabelPath?.(this)||o.graphic,s),o.dataLabelPath&&!s.enabled&&(o.dataLabelPath=o.dataLabelPath.destroy()))}),s.prototype.setTextPath=s.prototype.setTextPath??function(t,e){let s=this.renderer.url,i=this.text||this,n=i.textPath,{attributes:a,enabled:r}=(0,o.merge)({enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},e);if(t=t||n&&n.path,n?.undo(),t&&r){let e=(0,o.addEvent)(i,"afterModifyTree",e=>{if(t&&r){let n=t.attr("id");n||t.attr("id",n=(0,o.uniqueKey)());let r={x:0,y:0};(0,o.defined)(a.dx)&&(r.dx=a.dx,delete a.dx),(0,o.defined)(a.dy)&&(r.dy=a.dy,delete a.dy),i.attr(r),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let l=e.nodes.slice(0);e.nodes.length=0,e.nodes[0]={tagName:"textPath",attributes:(0,o.extend)(a,{"text-anchor":a.textAnchor,href:`${s}#${n}`}),children:l}}});i.textPath={path:t,undo:e}}else i.attr({dx:0,dy:0}),delete i.textPath;return this.added&&(i.textCache="",this.renderer.buildText(i)),this});let{prototype:{symbols:N}}=b(),{seriesTypes:{column:T,sankey:C}}=l();class M extends C{createNodeColumns(){let t=this,e=t.chart,s=g.compose([],t);return s.sankeyColumn.maxLength=e.inverted?e.plotHeight:e.plotWidth,s.sankeyColumn.getTranslationFactor=t=>{let o=s.slice(),i=this.options.minLinkWidth||0,n,a=0,r,l,h=0,d=1,p=0,u=(e.plotSizeX||0)-(t.options.marker&&t.options.marker.lineWidth||0)-(s.length-1)*t.nodePadding;for(;s.length;){for(a=u/s.sankeyColumn.sum(),n=!1,r=s.length;r--;){l=s[r].getSum()*a*d;let t=Math.min(e.plotHeight,e.plotWidth);l>t?d=Math.min(t/l,d):l<i&&(s.splice(r,1),u-=i,l=i,n=!0),p+=l*(1-d)/2,h=Math.max(h,l)}if(!n)break}return s.length=0,o.forEach(t=>{t.scale=d,s.push(t)}),s.sankeyColumn.maxRadius=h,s.sankeyColumn.scale=d,s.sankeyColumn.additionalSpace=p,a},s.sankeyColumn.offset=function(i,n){let a=i.series.options.equalNodes,r=t.nodePadding,l=Math.min(e.plotWidth,e.plotHeight,(s.sankeyColumn.maxLength||0)/t.nodes.length-r),h=s.sankeyColumn.additionalSpace||0,d;for(let e=0;e<s.length;e++){let p=s[e].getSum()*(s.sankeyColumn.scale||0),u=a?l:Math.max(p*n,t.options.minLinkWidth||0);if(d=p?u+r:0,s[e]===i)return{relativeLeft:h+(0,o.relativeLength)(i.options.offset||0,d)};h+=d}},t.nodes.forEach(function(t){t.column=0,s.push(t)}),[s]}translateLink(t){let e=t.fromNode,s=t.toNode,i=this.chart,n=this.translationFactor,a=t.options,r=this.options,l=(0,o.pick)(a.linkWeight,r.linkWeight,Math.max((t.weight||0)*n*e.scale,this.options.minLinkWidth||0)),h=t.series.options.centeredLinks,d=e.nodeY,p=(e,o)=>{let s=(e.offset(t,o)||0)*n;return Math.min(e.nodeX+s,e.nodeX+(e.shapeArgs&&e.shapeArgs.height||0)-l)},u=h?e.nodeX+((e.shapeArgs.height||0)-l)/2:p(e,"linksFrom"),c=h?s.nodeX+((s.shapeArgs.height||0)-l)/2:p(s,"linksTo"),f=d;u>c&&([u,c]=[c,u]),r.reversed&&([u,c]=[c,u],f=(i.plotSizeY||0)-f),t.shapeType="path",t.linkBase=[u,u+l,c,c+l];let m=(c+l-u)/Math.abs(c+l-u)*(0,o.pick)(r.linkRadius,Math.min(Math.abs(c+l-u)/2,e.nodeY-Math.abs(l)));t.shapeArgs={d:[["M",u,f],["A",(c+l-u)/2,m,0,0,1,c+l,f],["L",c,f],["A",(c-u-l)/2,m-l,0,0,0,u+l,f],["Z"]]},t.dlBox={x:u+(c-u)/2,y:f-m,height:l,width:0},t.tooltipPos=i.inverted?[(i.plotSizeY||0)-t.dlBox.y-l/2,(i.plotSizeX||0)-t.dlBox.x]:[t.dlBox.x,t.dlBox.y+l/2],t.y=t.plotY=1,t.x=t.plotX=1,t.color||(t.color=e.color)}translateNode(t,e){let s=this.translationFactor,i=this.chart,n=i.inverted?i.plotWidth:i.plotHeight,a=this.options,r=Math.min(i.plotWidth,i.plotHeight,n/t.series.nodes.length-this.nodePadding),l=t.getSum()*(e.sankeyColumn.scale||0),h=a.equalNodes?r:Math.max(l*s,this.options.minLinkWidth||0),d=a.marker?.lineWidth||0,p=e.sankeyColumn.offset(t,s),u=(0,o.crisp)((0,o.pick)(p&&p.absoluteLeft,(e.sankeyColumn.left(s)||0)+(p&&p.relativeLeft||0)),d),c=(0,o.merge)(a.marker,t.options.marker),f=c.symbol,m=c.radius,g=parseInt(a.offset??"100",10)*((i.inverted?i.plotWidth:i.plotHeight)-((0,o.crisp)(this.colDistance*(t.column||0)+(c.lineWidth||0)/2,d)+(e.sankeyColumn.scale||0)*(e.sankeyColumn.maxRadius||0)/2))/100;if(t.sum=l,l){t.nodeX=u,t.nodeY=g;let e=t.options.width||a.width||h,o=t.options.height||a.height||h,s=g;a.reversed&&(s=(i.plotSizeY||0)-g,i.inverted&&(s=(i.plotSizeY||0)-g)),this.mapOptionsToLevel&&(t.dlOptions={...C.getDLOptions({level:this.mapOptionsToLevel[t.level],optionsPoint:t.options}),zIndex:void 0},delete t.dlOptions.zIndex),t.plotX=1,t.plotY=1,t.tooltipPos=i.inverted?[(i.plotSizeY||0)-s-o/2,(i.plotSizeX||0)-u-e/2]:[u+e/2,s+o/2],t.shapeType="path",t.shapeArgs={d:N[f||"circle"](u,s-(m||o)/2,m||e,m||o),width:m||e,height:m||o},t.dlBox={x:u+e/2,y:s,height:0,width:0}}else t.dlOptions={enabled:!1}}drawDataLabels(){if(this.options.dataLabels){let t=this.options.dataLabels.textPath;T.prototype.drawDataLabels.call(this,this.nodes),this.options.dataLabels.textPath=this.options.dataLabels.linkTextPath,T.prototype.drawDataLabels.call(this,this.data),this.options.dataLabels.textPath=t}}pointAttribs(t,e){if(t&&t.isNode){let{...t}=x().prototype.pointAttribs.apply(this,arguments);return t}return super.pointAttribs.apply(this,arguments)}markerAttribs(t){return t.isNode?super.markerAttribs.apply(this,arguments):{}}}M.defaultOptions=(0,o.merge)(C.defaultOptions,{centeredLinks:!1,equalNodes:!1,dataLabels:{linkTextPath:{attributes:{startOffset:"25%"}}},marker:{fillOpacity:1,lineWidth:0,states:{},symbol:"circle"},offset:"100%",reversed:!1}),(0,o.extend)(M.prototype,{orderNodes:!1}),M.prototype.pointClass=c,l().registerSeriesType("arcdiagram",M);let W=a();export{W as default};
13
+ */import*as t from"../highcharts.js";let e={};e.n=t=>{let o=t&&t.__esModule?()=>t.default:()=>t;return e.d(o,{a:o}),o},e.d=(t,o)=>{if(Array.isArray(o))for(var s=0;s<o.length;){var i=o[s++],n=o[s++];e.o(t,i)?0===n&&s++:0===n?Object.defineProperty(t,i,{enumerable:!0,value:o[s++]}):Object.defineProperty(t,i,{enumerable:!0,get:n})}else for(var i in o)e.o(o,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:o[i]})},e.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);let o=t.default;var s,i,n,a=e.n(o);let r=t.default.SeriesRegistry;var l=e.n(r);let{series:{prototype:h,prototype:{pointClass:{prototype:d}}}}=l();!function(t){function e(){if(!this.hasDataLabels?.()&&this.nodes)for(let t of this.nodes)t.destroyElements({dataLabel:1})}function s(){return this.data=[].concat(this.points||[],this.nodes),h.destroy.apply(this,arguments)}function i(){this.nodes&&(this.nodes.forEach(t=>{t.destroy()}),this.nodes.length=0),h.setData.apply(this,arguments)}function n(t){let e=arguments,o=this.isNode?this.linksTo.concat(this.linksFrom):[this.fromNode,this.toNode];"select"!==t&&o.forEach(t=>{t&&t.series&&(d.setState.apply(t,e),!t.isNode&&(t.fromNode.graphic&&d.setState.apply(t.fromNode,e),t.toNode&&t.toNode.graphic&&d.setState.apply(t.toNode,e)))}),d.setState.apply(this,e)}function a(t,e,s,i){let n=this.series.options.nodes,a=this.series.options.data,r=a?.length||0,l=a?.[this.index];if(d.update.call(this,t,!this.isNode&&e,s,i),this.isNode){let t=(n||[]).reduce((t,e,o)=>this.id===e.id?o:t,-1),i=(0,o.merge)(n&&n[t]||{},a?.[this.index]||{});a&&(l?a[this.index]=l:a.length=r),n?t>=0?n[t]=i:n.push(i):this.series.options.nodes=[i],(e??!0)&&this.series.chart.redraw(s)}}t.compose=function(t,r){let l=t.prototype,h=r.prototype;return l.setNodeState=n,l.setState=n,l.update=a,h.destroy=s,h.setData=i,(0,o.addEvent)(r,"afterUpdate",e),r},t.createNode=function(t){let e=this.pointClass,s=(t,e)=>(0,o.find)(t,t=>t.id===e),i=s(this.nodes,t),n;if(!i){n=this.options.nodes&&s(this.options.nodes,t);let a=new e(this,(0,o.extend)({className:"highcharts-node",isNode:!0,id:t,y:1},n));a.linksTo=[],a.linksFrom=[],a.getSum=function(){let t=0,e=0;return a.linksTo.forEach(e=>{t+=e.weight||0}),a.linksFrom.forEach(t=>{e+=t.weight||0}),Math.max(t,e)},a.offset=function(t,e){let o=0;for(let s=0;s<a[e].length;s++){if(a[e][s]===t)return o;o+=a[e][s].weight}},a.hasShape=function(){let t=0;return a.linksTo.forEach(e=>{e.outgoing&&t++}),!a.linksTo.length||t!==a.linksTo.length},a.index=this.nodes.push(a)-1,i=a}return i.formatPrefix="node",i.name=i.name||i.options.id||"",i.mass=i.options.mass??(i.options.marker&&i.options.marker.radius)??(this.options.marker&&this.options.marker.radius)??4,i},t.destroy=s,t.generatePoints=function(){let t=this.chart,e={};h.generatePoints.call(this),this.nodes||(this.nodes=[]),this.colorCounter=0,this.nodes.forEach(t=>{t.linksFrom.length=0,t.linksTo.length=0,t.level=t.options.level}),this.points.forEach(s=>{(0,o.defined)(s.from)&&(e[s.from]||(e[s.from]=this.createNode(s.from)),e[s.from].linksFrom.push(s),s.fromNode=e[s.from],t.styledMode?s.colorIndex=s.options.colorIndex??e[s.from].colorIndex:s.color=s.options.color||e[s.from].color),(0,o.defined)(s.to)&&(e[s.to]||(e[s.to]=this.createNode(s.to)),e[s.to].linksTo.push(s),s.toNode=e[s.to]),s.name=s.name||s.id},this),this.nodeLookup=e},t.setNodeState=n,t.updateNode=a}(i||(i={}));let p=i,{seriesTypes:{sankey:{prototype:{pointClass:u}}}}=l();class f extends u{isValid(){return!0}}(0,o.extend)(f.prototype,{setState:p.setNodeState});var c=n||(n={});c.compose=function(t,e){return t.sankeyColumn=new m(t,e),t};class m{constructor(t,e){this.points=t,this.series=e}getTranslationFactor(t){let e=this.points,o=e.slice(),s=t.chart,i=t.options.minLinkWidth||0,n,a=0,r,l=(s.plotSizeY||0)-(t.options.borderWidth||0)-(e.length-1)*t.nodePadding;for(;e.length;){for(a=l/e.sankeyColumn.sum(),n=!1,r=e.length;r--;)e[r].getSum()*a<i&&(e.splice(r,1),l=Math.max(0,l-i),n=!0);if(!n)break}for(let t of(e.length=0,o))e.push(t);return a}top(t){let e=this.series,s=e.nodePadding,i=this.points.reduce((o,i)=>(o>0&&(o+=s),o+=Math.max(i.getSum()*t,e.options.minLinkWidth||0)),0);return(0,o.getAlignFactor)(e.options.nodeAlignment||"center")*((e.chart.plotSizeY||0)-i)}left(t){let e=this.series,o=e.chart,s=e.options.equalNodes,i=o.inverted?o.plotHeight:o.plotWidth,n=e.nodePadding,a=this.points.reduce((o,a)=>(o>0&&(o+=n),o+=s?i/a.series.nodes.length-n:Math.max(a.getSum()*t,e.options.minLinkWidth||0)),0);return((o.plotSizeX||0)-Math.round(a))/2}sum(){return this.points.reduce((t,e)=>t+e.getSum(),0)}offset(t,e){let s=this.points,i=this.series,n=i.nodePadding,a=0,r;if(i.is("organization")&&t.hangsFrom)return{absoluteTop:t.hangsFrom.nodeY};for(let l=0;l<s.length;l++){let h=s[l].getSum(),d=Math.max(h*e,i.options.minLinkWidth||0),p=t.options[i.chart.inverted?"offsetHorizontal":"offsetVertical"],u=t.options.offset||0;if(r=h?d+n:0,s[l]===t)return{relativeTop:a+((0,o.defined)(p)?(0,o.relativeLength)(p,d):(0,o.relativeLength)(u,r))};a+=r}}}c.SankeyColumnAdditions=m;let g=n,y=t.default.Series;var x=e.n(y);let k=t.default.SVGRenderer;var b=e.n(k);let L=t.default.SVGElement;var P=e.n(L);let{composed:S,deg2rad:v}=a();s=P(),(0,o.pushUnique)(S,"TextPath")&&((0,o.addEvent)(s,"afterGetBBox",function(t){let e=t.bBox,o=this.element?.querySelector("textPath");if(o){let t=[],{b:s,h:i}=this.renderer.fontMetrics(this.element),n=i-s,a=RegExp('(<tspan>|<tspan(?!\\sclass="highcharts-br")[^>]*>|<\\/tspan>)',"g"),r=o.innerHTML.replace(a,"").split(/<tspan class="highcharts-br"[^>]*>/),l=r.length,h=(t,e)=>{let{x:i,y:a}=e,r=(o.getRotationOfChar(t)-90)*v,l=Math.cos(r),h=Math.sin(r);return[[i-n*l,a-n*h],[i+s*l,a+s*h]]};for(let e=0,s=0;s<l;s++){let i=r[s].length;for(let n=0;n<i;n+=5)try{let i=e+n+s,[a,r]=h(i,o.getStartPositionOfChar(i));0===n?(t.push(r),t.push(a)):(0===s&&t.unshift(r),s===l-1&&t.push(a))}catch{break}e+=i-1;try{let i=e+s,n=o.getEndPositionOfChar(i),[a,r]=h(i,n);t.unshift(r),t.unshift(a)}catch{break}}t.length&&t.push(t[0].slice()),e.polygon=t}return e}),(0,o.addEvent)(s,"beforeAddingDataLabel",function(t){let e=t.labelOptions,o=t.point,s=e[o.formatPrefix+"TextPath"]||e.textPath;s&&!e.useHTML&&(this.setTextPath(o.getDataLabelPath?.(this)||o.graphic,s),o.dataLabelPath&&!s.enabled&&(o.dataLabelPath=o.dataLabelPath.destroy()))}),s.prototype.setTextPath=s.prototype.setTextPath??function(t,e){let s=this.renderer.url,i=this.text||this,n=i.textPath,{attributes:a,enabled:r}=(0,o.merge)({enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},e);if(t=t||n&&n.path,n?.undo(),t&&r){let e=(0,o.addEvent)(i,"afterModifyTree",e=>{if(t&&r){let n=t.attr("id");n||t.attr("id",n=(0,o.uniqueKey)());let r={x:0,y:0};(0,o.defined)(a.dx)&&(r.dx=a.dx,delete a.dx),(0,o.defined)(a.dy)&&(r.dy=a.dy,delete a.dy),i.attr(r),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let l=e.nodes.slice(0);e.nodes.length=0,e.nodes[0]={tagName:"textPath",attributes:(0,o.extend)(a,{"text-anchor":a.textAnchor,href:`${s}#${n}`}),children:l}}});i.textPath={path:t,undo:e}}else i.attr({dx:0,dy:0}),delete i.textPath;return this.added&&(i.textCache="",this.renderer.buildText(i)),this});let{prototype:{symbols:N}}=b(),{seriesTypes:{column:T,sankey:C}}=l();class M extends C{createNodeColumns(){let t=this,e=t.chart,s=g.compose([],t);return s.sankeyColumn.maxLength=e.inverted?e.plotHeight:e.plotWidth,s.sankeyColumn.getTranslationFactor=t=>{let o=s.slice(),i=this.options.minLinkWidth||0,n,a=0,r,l,h=0,d=1,p=0,u=(e.plotSizeX||0)-(t.options.marker&&t.options.marker.lineWidth||0)-(s.length-1)*t.nodePadding;for(;s.length;){for(a=u/s.sankeyColumn.sum(),n=!1,r=s.length;r--;){l=s[r].getSum()*a*d;let t=Math.min(e.plotHeight,e.plotWidth);l>t?d=Math.min(t/l,d):l<i&&(s.splice(r,1),u-=i,l=i,n=!0),p+=l*(1-d)/2,h=Math.max(h,l)}if(!n)break}return s.length=0,o.forEach(t=>{t.scale=d,s.push(t)}),s.sankeyColumn.maxRadius=h,s.sankeyColumn.scale=d,s.sankeyColumn.additionalSpace=p,a},s.sankeyColumn.offset=function(i,n){let a=i.series.options.equalNodes,r=t.nodePadding,l=Math.min(e.plotWidth,e.plotHeight,(s.sankeyColumn.maxLength||0)/t.nodes.length-r),h=s.sankeyColumn.additionalSpace||0,d;for(let e=0;e<s.length;e++){let p=s[e].getSum()*(s.sankeyColumn.scale||0),u=a?l:Math.max(p*n,t.options.minLinkWidth||0);if(d=p?u+r:0,s[e]===i)return{relativeLeft:h+(0,o.relativeLength)(i.options.offset||0,d)};h+=d}},t.nodes.forEach(function(t){t.column=0,s.push(t)}),[s]}translateLink(t){let e=t.fromNode,o=t.toNode,s=this.chart,i=this.translationFactor,n=t.options,a=this.options,r=n.linkWeight??a.linkWeight??Math.max((t.weight||0)*i*e.scale,this.options.minLinkWidth||0),l=t.series.options.centeredLinks,h=e.nodeY,d=(e,o)=>{let s=(e.offset(t,o)||0)*i;return Math.min(e.nodeX+s,e.nodeX+(e.shapeArgs&&e.shapeArgs.height||0)-r)},p=l?e.nodeX+((e.shapeArgs.height||0)-r)/2:d(e,"linksFrom"),u=l?o.nodeX+((o.shapeArgs.height||0)-r)/2:d(o,"linksTo"),f=h;p>u&&([p,u]=[u,p]),a.reversed&&([p,u]=[u,p],f=(s.plotSizeY||0)-f),t.shapeType="path",t.linkBase=[p,p+r,u,u+r];let c=(u+r-p)/Math.abs(u+r-p)*(a.linkRadius??Math.min(Math.abs(u+r-p)/2,e.nodeY-Math.abs(r)));t.shapeArgs={d:[["M",p,f],["A",(u+r-p)/2,c,0,0,1,u+r,f],["L",u,f],["A",(u-p-r)/2,c-r,0,0,0,p+r,f],["Z"]]},t.dlBox={x:p+(u-p)/2,y:f-c,height:r,width:0},t.tooltipPos=s.inverted?[(s.plotSizeY||0)-t.dlBox.y-r/2,(s.plotSizeX||0)-t.dlBox.x]:[t.dlBox.x,t.dlBox.y+r/2],t.y=t.plotY=1,t.x=t.plotX=1,t.color||(t.color=e.color)}translateNode(t,e){let s=this.translationFactor,i=this.chart,n=i.inverted?i.plotWidth:i.plotHeight,a=this.options,r=Math.min(i.plotWidth,i.plotHeight,n/t.series.nodes.length-this.nodePadding),l=t.getSum()*(e.sankeyColumn.scale||0),h=a.equalNodes?r:Math.max(l*s,this.options.minLinkWidth||0),d=a.marker?.lineWidth||0,p=e.sankeyColumn.offset(t,s),u=(0,o.crisp)((p&&p.absoluteLeft)??(e.sankeyColumn.left(s)||0)+(p&&p.relativeLeft||0),d),f=(0,o.merge)(a.marker,t.options.marker),c=f.symbol,m=f.radius,g=parseInt(a.offset??"100",10)*((i.inverted?i.plotWidth:i.plotHeight)-((0,o.crisp)(this.colDistance*(t.column||0)+(f.lineWidth||0)/2,d)+(e.sankeyColumn.scale||0)*(e.sankeyColumn.maxRadius||0)/2))/100;if(t.sum=l,l){t.nodeX=u,t.nodeY=g;let e=t.options.width||a.width||h,o=t.options.height||a.height||h,s=g;a.reversed&&(s=(i.plotSizeY||0)-g,i.inverted&&(s=(i.plotSizeY||0)-g)),this.mapOptionsToLevel&&(t.dlOptions={...C.getDLOptions({level:this.mapOptionsToLevel[t.level],optionsPoint:t.options}),zIndex:void 0},delete t.dlOptions.zIndex),t.plotX=1,t.plotY=1,t.tooltipPos=i.inverted?[(i.plotSizeY||0)-s-o/2,(i.plotSizeX||0)-u-e/2]:[u+e/2,s+o/2],t.shapeType="path",t.shapeArgs={d:N[c||"circle"](u,s-(m||o)/2,m||e,m||o),width:m||e,height:m||o},t.dlBox={x:u+e/2,y:s,height:0,width:0}}else t.dlOptions={enabled:!1}}drawDataLabels(){if(this.options.dataLabels){let t=this.options.dataLabels.textPath;T.prototype.drawDataLabels.call(this,this.nodes),this.options.dataLabels.textPath=this.options.dataLabels.linkTextPath,T.prototype.drawDataLabels.call(this,this.data),this.options.dataLabels.textPath=t}}pointAttribs(t,e){if(t&&t.isNode){let{...t}=x().prototype.pointAttribs.apply(this,arguments);return t}return super.pointAttribs.apply(this,arguments)}markerAttribs(t){return t.isNode?super.markerAttribs.apply(this,arguments):{}}}M.defaultOptions=(0,o.merge)(C.defaultOptions,{centeredLinks:!1,equalNodes:!1,dataLabels:{linkTextPath:{attributes:{startOffset:"25%"}}},marker:{fillOpacity:1,lineWidth:0,states:{},symbol:"circle"},offset:"100%",reversed:!1}),(0,o.extend)(M.prototype,{orderNodes:!1}),M.prototype.pointClass=f,l().registerSeriesType("arcdiagram",M);let W=a();export{W as default};
@@ -1,6 +1,6 @@
1
1
  // SPDX-License-Identifier: LicenseRef-Highcharts
2
2
  /**
3
- * @license Highcharts JS v13.0.1 (2026-08-17)
3
+ * @license Highcharts JS v13.0.2 (2026-08-27)
4
4
  * @module modules/arc-diagram
5
5
  * @requires highcharts/modules/sankey
6
6
  *
@@ -184,13 +184,10 @@ var NodesComposition;
184
184
  // For use in formats
185
185
  node.name = node.name || node.options.id || '';
186
186
  // Mass is used in networkgraph:
187
- node.mass = (0,external_highcharts_src_js_default_namespaceObject.pick)(
188
- // Node:
189
- node.options.mass, node.options.marker && node.options.marker.radius,
190
- // Series:
191
- this.options.marker && this.options.marker.radius,
192
- // Default:
193
- 4);
187
+ node.mass = (node.options.mass ??
188
+ (node.options.marker && node.options.marker.radius) ??
189
+ (this.options.marker && this.options.marker.radius) ??
190
+ 4);
194
191
  return node;
195
192
  }
196
193
  NodesComposition.createNode = createNode;
@@ -233,7 +230,9 @@ var NodesComposition;
233
230
  point.fromNode = nodeLookup[point.from];
234
231
  // Point color defaults to the fromNode's color
235
232
  if (chart.styledMode) {
236
- point.colorIndex = (0,external_highcharts_src_js_default_namespaceObject.pick)(point.options.colorIndex, nodeLookup[point.from].colorIndex);
233
+ point.colorIndex =
234
+ point.options.colorIndex ??
235
+ nodeLookup[point.from].colorIndex;
237
236
  }
238
237
  else {
239
238
  point.color =
@@ -331,7 +330,7 @@ var NodesComposition;
331
330
  else {
332
331
  this.series.options.nodes = [nodeConfig];
333
332
  }
334
- if ((0,external_highcharts_src_js_default_namespaceObject.pick)(redraw, true)) {
333
+ if (redraw ?? true) {
335
334
  this.series.chart.redraw(animation);
336
335
  }
337
336
  }
@@ -1297,9 +1296,11 @@ class ArcDiagramSeries extends SankeySeries {
1297
1296
  * @internal
1298
1297
  */
1299
1298
  translateLink(point) {
1300
- const series = this, fromNode = point.fromNode, toNode = point.toNode, chart = this.chart, translationFactor = series.translationFactor, pointOptions = point.options, seriesOptions = series.options, linkWeight = (0,external_highcharts_src_js_default_namespaceObject.pick)(pointOptions.linkWeight, seriesOptions.linkWeight, Math.max((point.weight || 0) *
1301
- translationFactor *
1302
- fromNode.scale, (series.options.minLinkWidth || 0))), centeredLinks = point.series.options.centeredLinks, nodeTop = fromNode.nodeY;
1299
+ const series = this, fromNode = point.fromNode, toNode = point.toNode, chart = this.chart, translationFactor = series.translationFactor, pointOptions = point.options, seriesOptions = series.options, linkWeight = (pointOptions.linkWeight ??
1300
+ seriesOptions.linkWeight ??
1301
+ Math.max((point.weight || 0) *
1302
+ translationFactor *
1303
+ fromNode.scale, series.options.minLinkWidth || 0)), centeredLinks = point.series.options.centeredLinks, nodeTop = fromNode.nodeY;
1303
1304
  const getX = (node, fromOrTo) => {
1304
1305
  const linkLeft = ((node.offset(point, fromOrTo) || 0) *
1305
1306
  translationFactor);
@@ -1328,7 +1329,7 @@ class ArcDiagramSeries extends SankeySeries {
1328
1329
  toX,
1329
1330
  toX + linkWeight
1330
1331
  ];
1331
- const linkRadius = ((toX + linkWeight - fromX) / Math.abs(toX + linkWeight - fromX)) * (0,external_highcharts_src_js_default_namespaceObject.pick)(seriesOptions.linkRadius, Math.min(Math.abs(toX + linkWeight - fromX) / 2, fromNode.nodeY - Math.abs(linkWeight)));
1332
+ const linkRadius = ((toX + linkWeight - fromX) / Math.abs(toX + linkWeight - fromX)) * (seriesOptions.linkRadius ?? Math.min(Math.abs(toX + linkWeight - fromX) / 2, fromNode.nodeY - Math.abs(linkWeight)));
1332
1333
  point.shapeArgs = {
1333
1334
  d: [
1334
1335
  ['M', fromX, bottom],
@@ -1385,7 +1386,7 @@ class ArcDiagramSeries extends SankeySeries {
1385
1386
  const series = this, translationFactor = series.translationFactor, chart = series.chart, maxNodesLength = chart.inverted ?
1386
1387
  chart.plotWidth : chart.plotHeight, options = series.options, maxRadius = Math.min(chart.plotWidth, chart.plotHeight, maxNodesLength / node.series.nodes.length - this.nodePadding), sum = node.getSum() * (column.sankeyColumn.scale || 0), equalNodes = options.equalNodes, nodeHeight = equalNodes ?
1387
1388
  maxRadius :
1388
- Math.max(sum * translationFactor, this.options.minLinkWidth || 0), lineWidth = options.marker?.lineWidth || 0, nodeOffset = column.sankeyColumn.offset(node, translationFactor), fromNodeLeft = (0,external_highcharts_src_js_default_namespaceObject.crisp)((0,external_highcharts_src_js_default_namespaceObject.pick)(nodeOffset && nodeOffset.absoluteLeft, ((column.sankeyColumn.left(translationFactor) || 0) +
1389
+ Math.max(sum * translationFactor, this.options.minLinkWidth || 0), lineWidth = options.marker?.lineWidth || 0, nodeOffset = column.sankeyColumn.offset(node, translationFactor), fromNodeLeft = (0,external_highcharts_src_js_default_namespaceObject.crisp)(((nodeOffset && nodeOffset.absoluteLeft) ?? ((column.sankeyColumn.left(translationFactor) || 0) +
1389
1390
  (nodeOffset && nodeOffset.relativeLeft || 0))), lineWidth), markerOptions = (0,external_highcharts_src_js_default_namespaceObject.merge)(options.marker, node.options.marker), symbol = markerOptions.symbol, markerRadius = markerOptions.radius, top = parseInt(options.offset ?? '100', 10) *
1390
1391
  ((chart.inverted ?
1391
1392
  chart.plotWidth : chart.plotHeight) - ((0,external_highcharts_src_js_default_namespaceObject.crisp)(this.colDistance * (node.column || 0) +
@@ -1,5 +1,5 @@
1
1
  let e;/**
2
- * Highcharts JS v13.0.1 (2026-08-17)
2
+ * Highcharts JS v13.0.2 (2026-08-27)
3
3
  * @module highcharts/modules/arrow-symbols
4
4
  * @requires highcharts
5
5
  *
@@ -1,6 +1,6 @@
1
1
  // SPDX-License-Identifier: LicenseRef-Highcharts
2
2
  /**
3
- * @license Highcharts JS v13.0.1 (2026-08-17)
3
+ * @license Highcharts JS v13.0.2 (2026-08-27)
4
4
  * @module highcharts/modules/arrow-symbols
5
5
  * @requires highcharts
6
6
  *
@@ -1,5 +1,5 @@
1
1
  let t,e;/**
2
- * Highcharts JS v13.0.1 (2026-08-17)
2
+ * Highcharts JS v13.0.2 (2026-08-27)
3
3
  * @module highcharts/modules/boost-canvas
4
4
  * @requires highcharts
5
5
  *
@@ -10,4 +10,4 @@ let t,e;/**
10
10
  *
11
11
  * A commercial license may be required depending on use,
12
12
  * see www.highcharts.com/license
13
- */import*as i from"../highcharts.js";let s={};s.n=t=>{let e=t&&t.__esModule?()=>t.default:()=>t;return s.d(e,{a:e}),e},s.d=(t,e)=>{if(Array.isArray(e))for(var i=0;i<e.length;){var r=e[i++],o=e[i++];s.o(t,r)?0===o&&i++:0===o?Object.defineProperty(t,r,{enumerable:!0,value:e[i++]}):Object.defineProperty(t,r,{enumerable:!0,get:o})}else for(var r in e)s.o(e,r)&&!s.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);let r=i.default;var o,n=s.n(r);let a=["area","areaspline","arearange","column","columnrange","bar","line","scatter","heatmap","bubble","treemap"],l={};a.forEach(t=>{l[t]=!0});let{composed:h}=n();function u(t){let e=t.series,i=t.boost=t.boost||{},s=t.options.boost||{},o=(0,r.pick)(s.seriesThreshold,50);if(e.length>=o)return!0;if(1===e.length)return!1;let n=s.allowForce;if(void 0===n){for(let e of(n=!0,t.xAxis))if((0,r.pick)(e.min,-1/0)>(0,r.pick)(e.dataMin,-1/0)||(0,r.pick)(e.max,1/0)<(0,r.pick)(e.dataMax,1/0)){n=!1;break}}if(void 0!==i.forceChartBoost){if(n)return i.forceChartBoost;i.forceChartBoost=void 0}let a=0,h=0,u=0,d;for(let t of e)0!==(d=t.options).boostThreshold&&!1!==t.visible&&"heatmap"!==t.type&&(++h,l[t.type]&&++a,function(...t){let e=-Number.MAX_VALUE;return t.forEach(t=>{if(null!=t&&void 0!==t.length&&t.length>0)return e=t.length,!0}),e}(t.getColumn("x",!0),d.data||[],t.points)>=(d.boostThreshold||Number.MAX_VALUE)&&++u);return i.forceChartBoost=n&&(a===e.length&&u===a||!!i.markerGroup&&a===h&&u===a||u>5),i.forceChartBoost}function d(t){function e(){t.boost&&t.boost.wgl&&u(t)&&t.boost.wgl.render(t)}(0,r.addEvent)(t,"predraw",function(){t.boost=t.boost||{},t.boost.forceChartBoost=void 0,t.boosted=!1,t.axes.some(t=>t.isPanning)||t.boost.clear?.(),t.boost.canvas&&t.boost.wgl&&u(t)&&t.boost.wgl.allocateBuffer(t),t.boost.markerGroup&&t.xAxis&&t.xAxis.length>0&&t.yAxis&&t.yAxis.length>0&&t.boost.markerGroup.translate(t.xAxis[0].pos,t.yAxis[0].pos)}),(0,r.addEvent)(t,"load",e,{order:-1}),(0,r.addEvent)(t,"redraw",e);let i=-1,s=-1;(0,r.addEvent)(t.pointer,"afterGetHoverData",e=>{let r=e.hoverPoint?.series;if(t.boost=t.boost||{},t.boost.markerGroup&&r){let e=t.inverted?r.yAxis:r.xAxis,o=t.inverted?r.xAxis:r.yAxis;(e&&e.pos!==i||o&&o.pos!==s)&&(t.series.forEach(t=>{t.halo?.hide()}),t.boost.markerGroup.translate(e.pos,o.pos),i=e.pos,s=o.pos)}})}let c={compose:function(t,e){return e&&(0,r.pushUnique)(h,"Boost.Chart")&&t.prototype.callbacks.push(d),t},getBoostClipRect:function(t,e){let i=t.navigator,s={x:t.plotLeft,y:t.plotTop,width:t.plotWidth,height:t.plotHeight};if(i&&t.inverted?(s.width+=i.top+i.height,i.opposite||(s.x=i.left)):i&&!t.inverted&&(s.height=i.top+i.height-t.plotTop),e.is){let{xAxis:i,yAxis:r}=e;if(s=t.getClipBox(e),t.inverted){let t=s.width;s.width=s.height,s.height=t,s.x=r.pos,s.y=i.pos}else s.x=i.pos,s.y=r.pos}if(e===t){let e=t.inverted?t.xAxis:t.yAxis;e.length<=1&&(s.y=Math.min(e[0].pos,s.y),s.height=e[0].pos-t.plotTop+e[0].len)}return s},isChartSeriesBoosting:u},g=i.default.Color;var m=s.n(g);let p={area:"LINES",arearange:"LINES",areaspline:"LINES",column:"LINES",columnrange:"LINES",bar:"LINES",line:"LINE_STRIP",scatter:"POINTS",heatmap:"TRIANGLES",treemap:"TRIANGLES",bubble:"POINTS"},f=class{constructor(t){if(this.errors=[],this.uLocations={},this.gl=t,t&&!this.createShader())return}bind(){this.gl&&this.shaderProgram&&this.gl.useProgram(this.shaderProgram)}createShader(){let t=this.stringToProgram("#version 100\n#define LN10 2.302585092994046\nprecision highp float;\nattribute vec4 aVertexPosition;\nattribute vec4 aColor;\nvarying highp vec2 position;\nvarying highp vec4 vColor;\nuniform mat4 uPMatrix;\nuniform float pSize;\nuniform float translatedThreshold;\nuniform bool hasThreshold;\nuniform bool skipTranslation;\nuniform float xAxisTrans;\nuniform float xAxisMin;\nuniform float xAxisMax;\nuniform float xAxisMinPad;\nuniform float xAxisPointRange;\nuniform float xAxisLen;\nuniform bool xAxisPostTranslate;\nuniform float xAxisOrdinalSlope;\nuniform float xAxisOrdinalOffset;\nuniform float xAxisPos;\nuniform bool xAxisCVSCoord;\nuniform bool xAxisIsLog;\nuniform bool xAxisReversed;\nuniform float yAxisTrans;\nuniform float yAxisMin;\nuniform float yAxisMax;\nuniform float yAxisMinPad;\nuniform float yAxisPointRange;\nuniform float yAxisLen;\nuniform bool yAxisPostTranslate;\nuniform float yAxisOrdinalSlope;\nuniform float yAxisOrdinalOffset;\nuniform float yAxisPos;\nuniform bool yAxisCVSCoord;\nuniform bool yAxisIsLog;\nuniform bool yAxisReversed;\nuniform bool isCircle;\nuniform bool isBubble;\nuniform bool bubbleSizeByArea;\nuniform float bubbleZMin;\nuniform float bubbleZMax;\nuniform float bubbleZThreshold;\nuniform float bubbleMinSize;\nuniform float bubbleMaxSize;\nuniform bool bubbleSizeAbs;\nuniform bool isInverted;\nfloat bubbleRadius(){\nfloat value = aVertexPosition.w;\nfloat zMax = bubbleZMax;\nfloat zMin = bubbleZMin;\nfloat radius = 0.0;\nfloat pos = 0.0;\nfloat zRange = zMax - zMin;\nif (bubbleSizeAbs){\nvalue = value - bubbleZThreshold;\nzMax = max(zMax - bubbleZThreshold, zMin - bubbleZThreshold);\nzMin = 0.0;\n}\nif (value < zMin){\nradius = bubbleZMin / 2.0 - 1.0;\n} else {\npos = zRange > 0.0 ? (value - zMin) / zRange : 0.5;\nif (bubbleSizeByArea && pos > 0.0){\npos = sqrt(pos);\n}\nradius = ceil(bubbleMinSize + pos * (bubbleMaxSize - bubbleMinSize)) / 2.0;\n}\nreturn radius * 2.0;\n}\nfloat translate(float val,\nfloat pointPlacement,\nfloat localA,\nfloat localMin,\nfloat minPixelPadding,\nfloat pointRange,\nfloat len,\nbool cvsCoord,\nbool isLog,\nbool reversed\n){\nfloat sign = 1.0;\nfloat cvsOffset = 0.0;\nif (cvsCoord) {\nsign *= -1.0;\ncvsOffset = len;\n}\nif (isLog) {\nval = log(val) / LN10;\n}\nif (reversed) {\nsign *= -1.0;\ncvsOffset -= sign * len;\n}\nreturn sign * (val - localMin) * localA + cvsOffset + \n(sign * minPixelPadding);\n}\nfloat xToPixels(float value) {\nif (skipTranslation){\nreturn value;// + xAxisPos;\n}\nreturn translate(value, 0.0, xAxisTrans, xAxisMin, xAxisMinPad, xAxisPointRange, xAxisLen, xAxisCVSCoord, xAxisIsLog, xAxisReversed);// + xAxisPos;\n}\nfloat yToPixels(float value, float checkThreshold) {\nfloat v;\nif (skipTranslation){\nv = value;// + yAxisPos;\n} else {\nv = translate(value, 0.0, yAxisTrans, yAxisMin, yAxisMinPad, yAxisPointRange, yAxisLen, yAxisCVSCoord, yAxisIsLog, yAxisReversed);// + yAxisPos;\nif (v > yAxisLen) {\nv = yAxisLen;\n}\n}\nif (checkThreshold > 0.0 && hasThreshold) {\nv = min(v, translatedThreshold);\n}\nreturn v;\n}\nvoid main(void) {\nif (isBubble){\ngl_PointSize = bubbleRadius();\n} else {\ngl_PointSize = pSize;\n}\nvColor = aColor;\nif (!skipTranslation && isCircle && (\naVertexPosition.x < xAxisMin ||\naVertexPosition.x > xAxisMax ||\naVertexPosition.y < yAxisMin ||\naVertexPosition.y > yAxisMax\n)) {\ngl_Position = uPMatrix * vec4(2.0, 2.0, 2.0, 1.0);\n} else if (skipTranslation && isInverted) {\ngl_Position = uPMatrix * vec4(aVertexPosition.y + yAxisPos, aVertexPosition.x + xAxisPos, 0.0, 1.0);\n} else if (isInverted) {\ngl_Position = uPMatrix * vec4(yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, xToPixels(aVertexPosition.x) + xAxisPos, 0.0, 1.0);\n} else {\ngl_Position = uPMatrix * vec4(xToPixels(aVertexPosition.x) + xAxisPos, yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, 0.0, 1.0);\n}\n}","vertex"),e=this.stringToProgram("precision highp float;\nuniform vec4 fillColor;\nvarying highp vec2 position;\nvarying highp vec4 vColor;\nuniform sampler2D uSampler;\nuniform bool isCircle;\nuniform bool hasColor;\nvoid main(void) {\nvec4 col = fillColor;\nvec4 tcol = texture2D(uSampler, gl_PointCoord.st);\nif (hasColor) {\ncol = vColor;\n}\nif (isCircle) {\ncol *= tcol;\nif (tcol.r < 0.0) {\ndiscard;\n} else {\ngl_FragColor = col;\n}\n} else {\ngl_FragColor = col;\n}\n}","fragment"),i=t=>this.gl.getUniformLocation(this.shaderProgram,t);return t&&e?(this.shaderProgram=this.gl.createProgram(),this.gl.attachShader(this.shaderProgram,t),this.gl.attachShader(this.shaderProgram,e),this.gl.linkProgram(this.shaderProgram),this.gl.getProgramParameter(this.shaderProgram,this.gl.LINK_STATUS))?(this.gl.useProgram(this.shaderProgram),this.gl.bindAttribLocation(this.shaderProgram,0,"aVertexPosition"),this.pUniform=i("uPMatrix"),this.psUniform=i("pSize"),this.fcUniform=i("fillColor"),this.isBubbleUniform=i("isBubble"),this.bubbleSizeAbsUniform=i("bubbleSizeAbs"),this.bubbleSizeAreaUniform=i("bubbleSizeByArea"),this.uSamplerUniform=i("uSampler"),this.skipTranslationUniform=i("skipTranslation"),this.isCircleUniform=i("isCircle"),this.isInverted=i("isInverted"),!0):(this.errors.push(this.gl.getProgramInfoLog(this.shaderProgram)),this.handleErrors(),this.shaderProgram=!1,!1):(this.shaderProgram=!1,this.handleErrors(),!1)}handleErrors(){this.errors.length&&(0,r.error)("[highcharts boost] shader error - "+this.errors.join("\n"))}stringToProgram(t,e){let i=this.gl.createShader("vertex"===e?this.gl.VERTEX_SHADER:this.gl.FRAGMENT_SHADER);return(this.gl.shaderSource(i,t),this.gl.compileShader(i),this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS))?i:(this.errors.push("when compiling "+e+" shader:\n"+this.gl.getShaderInfoLog(i)),!1)}destroy(){this.gl&&this.shaderProgram&&(this.gl.deleteProgram(this.shaderProgram),this.shaderProgram=!1)}fillColorUniform(){return this.fcUniform}getProgram(){return this.shaderProgram}pointSizeUniform(){return this.psUniform}perspectiveUniform(){return this.pUniform}reset(){this.gl&&this.shaderProgram&&(this.gl.uniform1i(this.isBubbleUniform,0),this.gl.uniform1i(this.isCircleUniform,0))}setBubbleUniforms(t,e,i,s=1){let o=t.options,n=Number.MAX_VALUE,a=-Number.MAX_VALUE;if(this.gl&&this.shaderProgram&&t.is("bubble")){let l=t.getPxExtremes();n=(0,r.pick)(o.zMin,(0,r.clamp)(e,!1===o.displayNegative?o.zThreshold:-Number.MAX_VALUE,n)),a=(0,r.pick)(o.zMax,Math.max(a,i)),this.gl.uniform1i(this.isBubbleUniform,1),this.gl.uniform1i(this.isCircleUniform,1),this.gl.uniform1i(this.bubbleSizeAreaUniform,"width"!==t.options.sizeBy),this.gl.uniform1i(this.bubbleSizeAbsUniform,t.options.sizeByAbsoluteValue),this.setUniform("bubbleMinSize",l.minPxSize*s),this.setUniform("bubbleMaxSize",l.maxPxSize*s),this.setUniform("bubbleZMin",n),this.setUniform("bubbleZMax",a),this.setUniform("bubbleZThreshold",t.options.zThreshold)}}setColor(t){this.gl&&this.shaderProgram&&this.gl.uniform4f(this.fcUniform,t[0]/255,t[1]/255,t[2]/255,t[3])}setDrawAsCircle(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.isCircleUniform,+!!t)}setInverted(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.isInverted,t)}setPMatrix(t){this.gl&&this.shaderProgram&&this.gl.uniformMatrix4fv(this.pUniform,!1,t)}setPointSize(t){this.gl&&this.shaderProgram&&this.gl.uniform1f(this.psUniform,t)}setSkipTranslation(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.skipTranslationUniform,+(!0===t))}setTexture(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.uSamplerUniform,t)}setUniform(t,e){if(this.gl&&this.shaderProgram){let i=this.uLocations[t]=this.uLocations[t]||this.gl.getUniformLocation(this.shaderProgram,t);this.gl.uniform1f(i,e)}}},b=class{constructor(t,e,i){this.buffer=!1,this.iterator=0,this.preAllocated=!1,this.vertAttribute=!1,this.components=i||2,this.dataComponents=i,this.gl=t,this.shader=e}allocate(t){this.iterator=-1,this.preAllocated=new Float32Array(4*t)}bind(){if(!this.buffer)return!1;this.gl.vertexAttribPointer(this.vertAttribute,this.components,this.gl.FLOAT,!1,0,0)}build(t,e,i){let s;return(this.data=t||[],this.data&&0!==this.data.length||this.preAllocated)?(this.components=i||this.components,this.buffer&&this.gl.deleteBuffer(this.buffer),this.preAllocated||(s=new Float32Array(this.data)),this.buffer=this.gl.createBuffer(),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.buffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.preAllocated||s,this.gl.STATIC_DRAW),this.vertAttribute=this.gl.getAttribLocation(this.shader.getProgram(),e),this.gl.enableVertexAttribArray(this.vertAttribute),s=!1,!0):(this.destroy(),!1)}destroy(){this.buffer&&(this.gl.deleteBuffer(this.buffer),this.buffer=!1,this.vertAttribute=!1),this.iterator=0,this.components=this.dataComponents||2,this.data=[]}push(t,e,i,s){this.preAllocated&&(this.preAllocated[++this.iterator]=t,this.preAllocated[++this.iterator]=e,this.preAllocated[++this.iterator]=i,this.preAllocated[++this.iterator]=s)}render(t,e,i){let s=this.preAllocated?this.preAllocated.length:this.data?.length||0;return!!this.buffer&&!!s&&((!t||t>s||t<0)&&(t=0),(!e||e>s)&&(e=s),!(t>=e)&&(i=i||"POINTS",this.gl.drawArrays(this.gl[i],t/this.components,(e-t)/this.components),!0))}},{getBoostClipRect:x}=c,{parse:A}=m(),{doc:y,win:v}=n(),P={column:!0,columnrange:!0,bar:!0,area:!0,areaspline:!0,arearange:!0},T={scatter:!0,bubble:!0},C=["webgl","experimental-webgl","moz-webgl","webkit-3d"],M={},E=(t,e)=>{if(M[e])return M[e];let i=0===e.indexOf("var(")&&t[e.slice(4,-1).trim()];if(i)return M[e]=i,i;if(0===e.indexOf("color-mix(")){let i=/^color-mix\(in srgb,([a-z0-9\(\)\-\#]+),([a-z0-9\(\)\-\#]+) ([0-9\.%]+)/.exec(e);if(i){let s=parseFloat(i[3])/100,r=E(t,i[1]),o=E(t,i[2]),n=new(m())(r).tweenTo(new(m())(o),s);return M[e]=n,n}}return e};class k{static orthoMatrix(t,e){return[2/t,0,0,0,0,-(2/e),0,0,0,0,-2,0,-1,1,-1,1]}static seriesPointCount(t){let e,i,s;return t.boosted?(e=!!t.options.stacking,i=(t.getColumn("x").length?t.getColumn("x"):void 0)||t.options.xData||t.getColumn("x",!0),s=(e?t.data:i||t.options.data).length,"treemap"===t.type?s*=12:"heatmap"===t.type?s*=6:P[t.type]&&(s*=2),s):0}constructor(t){this.data=[],this.height=0,this.isInited=!1,this.markerData=[],this.series=[],this.textureHandles={},this.width=0,this.postRenderCallback=t,this.settings={pointSize:1,lineWidth:1,fillColor:"#AA00AA",useAlpha:!0,usePreallocated:!1,useGPUTranslations:!1,debug:{timeRendering:!1,timeSeriesProcessing:!1,timeSetup:!1,timeBufferCopy:!1,timeKDTree:!1,showSkipSummary:!1}}}getPixelRatio(){return this.settings.pixelRatio||v.devicePixelRatio||1}setOptions(t){"pixelRatio"in t||(t.pixelRatio=1),(0,r.merge)(!0,this.settings,t)}allocateBuffer(t){let e=this.vbuffer,i=0;this.settings.usePreallocated&&(t.series.forEach(t=>{t.boosted&&(i+=k.seriesPointCount(t))}),e&&e.allocate(i))}allocateBufferForSingleSeries(t){let e=this.vbuffer,i=0;this.settings.usePreallocated&&(t.boosted&&(i=k.seriesPointCount(t)),e&&e.allocate(i))}clear(){let t=this.gl;t&&t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT)}pushSeriesData(t,e){let i=this.data,s=this.settings,o=this.vbuffer,n=t.pointArrayMap&&"low,high"===t.pointArrayMap.join(","),{chart:a,options:l,sorted:h,xAxis:u,yAxis:d}=t,c=!!l.stacking,g=l.data,p=t.xAxis.getExtremes(),f=p.min-(t.xAxis.minPointOffset||0),b=p.max+(t.xAxis.minPointOffset||0),x=t.yAxis.getExtremes(),y=x.min-(t.yAxis.minPointOffset||0),v=x.max+(t.yAxis.minPointOffset||0),T=(t.getColumn("x").length?t.getColumn("x"):void 0)||l.xData||t.getColumn("x",!0),C=(t.getColumn("y").length?t.getColumn("y"):void 0)||l.yData||t.getColumn("y",!0),M=(t.getColumn("z").length?t.getColumn("z"):void 0)||l.zData||t.getColumn("z",!0),k=!T||0===T.length,{colorByPoint:S,connectNulls:w,threshold:R,zoneAxis:U="y",zones:N}=l,L=t.points||!1,_=c?t.data:T||g,z={x:Number.MAX_VALUE,y:0},D={x:-Number.MAX_VALUE,y:0},O=void 0===a.index,G=P[t.type],I=this.getPixelRatio(),B=a.options.colors||[],V=t.chart.plotWidth,X=!1,F=!1,j,H,Y=0,W=!1,K,q,Z,Q,J=-1,$=!1,tt=!1,te,ti=!1,ts=!1,tr,to=!1,tn=!0,ta=!0,tl=[],th=!1,tu=!1,td=0,tc=0;if(l.boostData&&l.boostData.length>0)return;if(l.gapSize&&(tu="value"!==l.gapUnit?l.gapSize*t.closestPointRange:l.gapSize),a.boost){let t=a.renderer.circle(0,0,1).attr({fill:"var(--highcharts-background-color)"}).add(),e=new(m())(getComputedStyle(t.element).getPropertyValue("fill")).get(),i=new(m())(a.palette?.cssVars.dark["--highcharts-background-color"]||"").get();t.destroy(),a.boost.cssVars=a.palette?.cssVars[e===i?"dark":"light"]}let tg=a.boost?.cssVars||{};if(N?.length&&(tl=[],N.forEach((t,e)=>{if("string"==typeof t.color){let i=A(E(tg,t.color)).rgba;i[0]/=255,i[1]/=255,i[2]/=255,tl[e]=i,th||void 0!==t.value||(th=i)}}),!th)){let e=t.pointAttribs&&t.pointAttribs().fill||t.color;th=A("string"==typeof e?E(tg,e):"").rgba,th[0]/=255,th[1]/=255,th[2]/=255}a.inverted&&(V=t.chart.plotHeight),t.closestPointRangePx=Number.MAX_VALUE;let tm=t=>{t&&(e.colorData.push(t[0]),e.colorData.push(t[1]),e.colorData.push(t[2]),e.colorData.push(t[3]))},tp=(t,r,n,a=1,l)=>{tm(l),1!==I&&(!s.useGPUTranslations||e.skipTranslation)&&(t*=I,r*=I,a*=I),s.usePreallocated&&o?(o.push(t,r,+!!n,a),td+=4):(i.push(t),i.push(r),i.push(n?I:0),i.push(a))},tf=()=>{e.segments.length&&(e.segments[e.segments.length-1].to=i.length||td)},tb=()=>{e.segments.length&&e.segments[e.segments.length-1].from===(i.length||td)||(tf(),e.segments.push({from:i.length||td}))},tx=(t,e,i,s,r)=>{tm(r),tp(t+i,e),tm(r),tp(t,e),tm(r),tp(t,e+s),tm(r),tp(t,e+s),tm(r),tp(t+i,e+s),tm(r),tp(t+i,e)};if(tb(),L&&L.length>0){e.skipTranslation=!0,e.drawMode="TRIANGLES",L[0].node&&L[0].node.levelDynamic&&L.sort((t,e)=>{if(t.node){if(t.node.levelDynamic>e.node.levelDynamic)return 1;if(t.node.levelDynamic<e.node.levelDynamic)return -1}return 0}),L.forEach(e=>{let i,s,r=e.plotY;if(void 0!==r&&!isNaN(r)&&null!==e.y&&e.shapeArgs){let{x:r=0,y:o=0,width:n=0,height:l=0}=e.shapeArgs;i=(s=a.styledMode?e.series.colorAttribs(e):s=e.series.pointAttribs(e))["stroke-width"]||0,"string"==typeof s.fill&&(s.fill=E(tg,s.fill)),tr=A(s.fill).rgba,tr[0]/=255,tr[1]/=255,tr[2]/=255,t.is("treemap")&&(i=i||1,"string"==typeof s.stroke&&(s.stroke=E(tg,s.stroke)),H=A(s.stroke).rgba,H[0]/=255,H[1]/=255,H[2]/=255,tx(r,o,n,l,H),i/=2),t.is("heatmap")&&a.inverted&&(r=u.len-r,o=d.len-o,n=-n,l=-l),tx(r+i,o+i,n-2*i,l-2*i,tr)}}),tf();return}for(;J<_.length-1;){if(void 0===(Z=_[++J]))continue;if(O)break;let i=g&&g[J];if(!k){let e;(0,r.isObject)(i,!0)&&i.color&&(e=A(i.color).rgba);let s=t.options.keys?.indexOf("color");Array.isArray(i)&&s&&"string"==typeof i[s]?e=A(i[s]).rgba:S&&(tc%=B.length,e=A(E(tg,B[tc])).rgba),e&&((tr=e)[0]=e[0]/255,tr[1]=e[1]/255,tr[2]=e[2]/255,tr[3]=e[3]),tc++}if(k?(K=Z[0],q=Z[1],_[J+1]&&(tt=_[J+1][0]),_[J-1]&&($=_[J-1][0]),Z.length>=3&&(Q=Z[2],Z[2]>e.zMax&&(e.zMax=Z[2]),Z[2]<e.zMin&&(e.zMin=Z[2]))):(K=Z,q=C?.[J],_[J+1]&&(tt=_[J+1]),_[J-1]&&($=_[J-1]),M&&M.length&&(Q=M[J],M[J]>e.zMax&&(e.zMax=M[J]),M[J]<e.zMin&&(e.zMin=M[J]))),!w&&(null===K||null===q)){tb();continue}if(tt&&tt>=f&&tt<=b&&(ti=!0),$&&$>=f&&$<=b&&(ts=!0),n?(k&&(q=Z.slice(1,3)),te=t.getColumn("low",!0)?.[J],q=t.getColumn("high",!0)?.[J]||0):c&&(K=Z.x,te=(q=Z.stackY)-Z.y),null!=y&&null!=v&&(tn=q>=y&&q<=v),!h&&!tn||(K>b&&D.x<b&&(D.x=K,D.y=q),K<f&&z.x>f&&(z.x=K,z.y=q),null===q&&w))continue;if(null===q||!tn&&_.length>1&&!ti&&!ts){tb();continue}if((h&&(tt>=f||K>=f)&&($<=b||K<=b)||!h&&K>=f&&K<=b)&&(to=!0),to||ti||ts){if(tu&&K-$>tu&&tb(),N?.length){let t,e,i="x"===U?K:q;N.some((t,s)=>void 0!==t.value&&i<t.value&&(e=s,!0)),void 0!==e&&tl[e]&&(t=tl[e]),tr=t||th||tr}if(s.useGPUTranslations||(e.skipTranslation=!0,K=u.toPixels(K,!0),q=d.toPixels(q,!0),!(K>V)||"POINTS"!==e.drawMode)){if(e.hasMarkers&&to&&!1!==X&&(t.closestPointRangePx=Math.min(t.closestPointRangePx,Math.abs(K-X))),!s.useGPUTranslations&&!s.usePreallocated&&X&&1>Math.abs(K-X)&&F&&1>Math.abs(q-F)){s.debug.showSkipSummary&&++Y;continue}G&&(j=te||0,(!1===te||void 0===te)&&(j=q<0?q:0),(n||c)&&!d.logarithmic||(j=Math.max(R??y,y)),s.useGPUTranslations||(j=d.toPixels(j,!0)),tp(K,j,!1,0,tr)),l.step&&!ta&&tp(K,F,!1,2,tr),tp(K,q,!1,"bubble"===t.type?Q||1:2,tr),X=K,F=q,W=!0,ta=!1}}}s.debug.showSkipSummary&&console.log("skipped points:",Y);let tA=(t,i)=>{if(s.useGPUTranslations||(e.skipTranslation=!0,t.x=u.toPixels(t.x,!0),t.y=d.toPixels(t.y,!0)),i){this.data=[t.x,t.y,0,2].concat(this.data);return}tp(t.x,t.y,0,2)};!W&&!1!==w&&"line_strip"===t.drawMode&&(z.x<Number.MAX_VALUE&&tA(z,!0),D.x>-Number.MAX_VALUE&&tA(D)),tf()}pushSeries(t){let e=this.markerData,i=this.series,s=this.settings;i.length>0&&i[i.length-1].hasMarkers&&(i[i.length-1].markerTo=e.length),s.debug.timeSeriesProcessing&&console.time("building "+t.type+" series");let r={segments:[],markerFrom:e.length,colorData:[],series:t,zMin:Number.MAX_VALUE,zMax:-Number.MAX_VALUE,hasMarkers:!!t.options.marker&&!1!==t.options.marker.enabled,showMarkers:!0,drawMode:p[t.type]||"LINE_STRIP"};t.index>=i.length?i.push(r):i[t.index]=r,this.pushSeriesData(t,r),s.debug.timeSeriesProcessing&&console.timeEnd("building "+t.type+" series")}flush(){let t=this.vbuffer;this.data=[],this.markerData=[],this.series=[],t&&t.destroy()}setXAxis(t){let e=this.shader;if(!e)return;let i=this.getPixelRatio();e.setUniform("xAxisTrans",t.transA*i),e.setUniform("xAxisMin",t.min),e.setUniform("xAxisMax",t.max),e.setUniform("xAxisMinPad",t.minPixelPadding*i),e.setUniform("xAxisPointRange",t.pointRange),e.setUniform("xAxisLen",t.len*i),e.setUniform("xAxisPos",t.pos*i),e.setUniform("xAxisCVSCoord",!t.horiz),e.setUniform("xAxisIsLog",!!t.logarithmic),e.setUniform("xAxisReversed",!!t.reversed)}setYAxis(t){let e=this.shader;if(!e)return;let i=this.getPixelRatio();e.setUniform("yAxisTrans",t.transA*i),e.setUniform("yAxisMin",t.min),e.setUniform("yAxisMax",t.max),e.setUniform("yAxisMinPad",t.minPixelPadding*i),e.setUniform("yAxisPointRange",t.pointRange),e.setUniform("yAxisLen",t.len*i),e.setUniform("yAxisPos",t.pos*i),e.setUniform("yAxisCVSCoord",!t.horiz),e.setUniform("yAxisIsLog",!!t.logarithmic),e.setUniform("yAxisReversed",!!t.reversed)}setThreshold(t,e){let i=this.shader;i&&(i.setUniform("hasThreshold",t),i.setUniform("translatedThreshold",e))}renderChart(t){let e=this.gl,i=this.settings,s=this.shader,o=this.vbuffer;M={};let a=this.getPixelRatio();if(!t)return!1;this.width=t.chartWidth*a,this.height=t.chartHeight*a;let l=this.height,h=this.width,u=t.options.colors||[];if(!e||!s||!h||!l)return!1;i.debug.timeRendering&&console.time("gl rendering"),e.canvas.width=h,e.canvas.height=l,s.bind(),e.viewport(0,0,h,l),s.setPMatrix(k.orthoMatrix(h,l)),i.lineWidth>1&&!n().isMS&&e.lineWidth(i.lineWidth),o&&(o.build(this.data,"aVertexPosition",4),o.bind()),s.setInverted(t.inverted),this.series.forEach((n,h)=>{let d=n.series.options,c=d.marker,g=void 0!==d.lineWidth?d.lineWidth:1,p=d.threshold,f=(0,r.isNumber)(p),y=n.series.yAxis.getThreshold(p),v=(0,r.pick)(d.marker?d.marker.enabled:null,!!n.series.xAxis.isRadial||null,n.series.closestPointRangePx>2*((d.marker?d.marker.radius:10)||10)),P=this.textureHandles[c&&c.symbol||n.series.symbol]||this.textureHandles.circle,C,M,k,S=[];if(0!==n.segments.length&&n.segments[0].from!==n.segments[0].to&&(P.isReady&&(e.bindTexture(e.TEXTURE_2D,P.handle),s.setTexture(P.handle)),t.styledMode?n.series.markerGroup===n.series.chart.boost?.markerGroup?(delete n.series.markerGroup,n.series.markerGroup=n.series.plotGroup("markerGroup","markers","visible",1,t.seriesGroup).addClass("highcharts-tracker"),k=n.series.markerGroup.getStyle("fill"),n.series.markerGroup.destroy(),n.series.markerGroup=n.series.chart.boost?.markerGroup):k=n.series.markerGroup?.getStyle("fill"):(k="POINTS"===n.drawMode&&n.series.pointAttribs&&n.series.pointAttribs().fill||n.series.color,d.colorByPoint&&"string"==typeof u[h]&&(k=u[h])),n.series.fillOpacity&&d.fillOpacity&&k&&(k=new(m())(k).setOpacity((0,r.pick)(d.fillOpacity,1)).get()),"string"==typeof k&&(k=E(t.boost?.cssVars||{},k)),S=A(k).rgba,i.useAlpha||(S[3]=1),"add"===d.boostBlending?(e.blendFunc(e.SRC_ALPHA,e.ONE),e.blendEquation(e.FUNC_ADD)):"mult"===d.boostBlending||"multiply"===d.boostBlending?e.blendFunc(e.DST_COLOR,e.ZERO):"darken"===d.boostBlending?(e.blendFunc(e.ONE,e.ONE),e.blendEquation(e.FUNC_MIN)):e.blendFuncSeparate(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA,e.ONE,e.ONE_MINUS_SRC_ALPHA),s.reset(),n.colorData.length>0?(s.setUniform("hasColor",1),(M=new b(e,s)).build(Array(n.segments[0].from).concat(n.colorData),"aColor",4),M.bind()):(s.setUniform("hasColor",0),e.disableVertexAttribArray(e.getAttribLocation(s.getProgram(),"aColor"))),s.setColor(S),this.setXAxis(n.series.xAxis),this.setYAxis(n.series.yAxis),this.setThreshold(f,y),"POINTS"===n.drawMode&&s.setPointSize(2*(0,r.pick)(d.marker&&d.marker.radius,.5)*a),s.setSkipTranslation(n.skipTranslation),"bubble"===n.series.type&&s.setBubbleUniforms(n.series,n.zMin,n.zMax,a),s.setDrawAsCircle(T[n.series.type]||!1),o)){if(g>0||"LINE_STRIP"!==n.drawMode){let{x:i,y:s,width:r,height:h}=x(t,n.series);for(e.enable(e.SCISSOR_TEST),e.scissor(i*a,l-(s+h)*a,r*a,h*a),C=0;C<n.segments.length;C++)o.render(n.segments[C].from,n.segments[C].to,n.drawMode);e.disable(e.SCISSOR_TEST)}if(n.hasMarkers&&v)for(s.setPointSize(2*(0,r.pick)(d.marker&&d.marker.radius,5)*a),s.setDrawAsCircle(!0),C=0;C<n.segments.length;C++)o.render(n.segments[C].from,n.segments[C].to,"POINTS")}}),i.debug.timeRendering&&console.timeEnd("gl rendering"),this.postRenderCallback&&this.postRenderCallback(this),this.flush()}render(t){if(this.clear(),t.renderer.forExport)return this.renderChart(t);this.isInited?this.renderChart(t):setTimeout(()=>{this.render(t)},1)}setSize(t,e){let i=this.shader;i&&(this.width!==t||this.height!==e)&&(this.width=t,this.height=e,i.bind(),i.setPMatrix(k.orthoMatrix(t,e)))}init(t,e){let i=this.settings;if(this.isInited=!1,!t)return!1;i.debug.timeSetup&&console.time("gl setup");for(let e=0;e<C.length&&(this.gl=t.getContext(C[e],{}),!this.gl);++e);let s=this.gl;if(!s)return!1;e||this.flush(),s.enable(s.BLEND),s.blendFunc(s.SRC_ALPHA,s.ONE_MINUS_SRC_ALPHA),s.disable(s.DEPTH_TEST),s.depthFunc(s.LESS);let r=this.shader=new f(s);if(!r)return!1;this.vbuffer=new b(s,r);let o=(t,e)=>{let i={isReady:!1,texture:y.createElement("canvas"),handle:s.createTexture()},r=i.texture.getContext("2d");this.textureHandles[t]=i,i.texture.width=512,i.texture.height=512,r.mozImageSmoothingEnabled=!1,r.webkitImageSmoothingEnabled=!1,r.msImageSmoothingEnabled=!1,r.imageSmoothingEnabled=!1,r.strokeStyle="rgba(255, 255, 255, 0)",r.fillStyle="#FFF",e(r);try{s.activeTexture(s.TEXTURE0),s.bindTexture(s.TEXTURE_2D,i.handle),s.texImage2D(s.TEXTURE_2D,0,s.RGBA,s.RGBA,s.UNSIGNED_BYTE,i.texture),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MAG_FILTER,s.LINEAR),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MIN_FILTER,s.LINEAR),s.bindTexture(s.TEXTURE_2D,null),i.isReady=!0}catch{}};return o("circle",t=>{t.beginPath(),t.arc(256,256,256,0,2*Math.PI),t.stroke(),t.fill()}),o("square",t=>{t.fillRect(0,0,512,512)}),o("diamond",t=>{t.beginPath(),t.moveTo(256,0),t.lineTo(512,256),t.lineTo(256,512),t.lineTo(0,256),t.lineTo(256,0),t.fill()}),o("triangle",t=>{t.beginPath(),t.moveTo(0,512),t.lineTo(256,0),t.lineTo(512,512),t.lineTo(0,512),t.fill()}),o("triangle-down",t=>{t.beginPath(),t.moveTo(0,0),t.lineTo(256,512),t.lineTo(512,0),t.lineTo(0,0),t.fill()}),this.isInited=!0,i.debug.timeSetup&&console.timeEnd("gl setup"),!0}destroy(){let t=this.gl,e=this.shader,i=this.vbuffer;this.flush(),i&&i.destroy(),e&&e.destroy(),t&&((0,r.objectEach)(this.textureHandles,e=>{e.handle&&t.deleteTexture(e.handle)}),t.canvas.width=1,t.canvas.height=1)}}let{setLength:S,splice:w}={convertToNumber:function(t,e){switch(typeof t){case"boolean":return+!!t;case"number":return isNaN(t)&&!e?null:t;default:return isNaN(t=parseFloat(`${t??""}`))&&!e?null:t}},setLength:function(t,e,i){return Array.isArray(t)?(t.length=e,t):t[i?"subarray":"slice"](0,e)},splice:function(t,e,i,s,r=[]){if(Array.isArray(t))return Array.isArray(r)||(r=Array.from(r)),{removed:t.splice(e,i,...r),array:t};let o=Object.getPrototypeOf(t).constructor,n=t[s?"subarray":"slice"](e,e+i),a=new o(t.length-i+r.length);return a.set(t.subarray(0,e),0),a.set(r,e),a.set(t.subarray(e+i),e+r.length),{removed:n,array:a}}},R=class{constructor(t={}){this.isDataTable=!0,this.autoId=!t.id,this.columns={},this.id=t.id||(0,r.uniqueKey)(),this.rowCount=0,this.versionTag=(0,r.uniqueKey)();let e=0;(0,r.objectEach)(t.columns||{},(t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,(0,r.objectEach)(this.columns,(e,i)=>{e.length!==t&&(this.columns[i]=S(e,t))})}deleteRows(t,e=1){if(e>0&&t<this.rowCount){let i=0;(0,r.objectEach)(this.columns,(s,r)=>{this.columns[r]=w(s,t,e).array,i=s.length}),this.rowCount=i}(0,r.fireEvent)(this,"afterDeleteRows",{rowIndex:t,rowCount:e}),this.versionTag=(0,r.uniqueKey)()}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRowObject(t,e){let i={},s=this.columns;for(let r of(e??(e=Object.keys(this.columns)),e))i[r]=s[r]?.[t];return i}setColumn(t,e=[],i=0,s){this.setColumns({[t]:e},i,s)}setColumns(t,e,i){let s=this.rowCount;(0,r.objectEach)(t,(t,e)=>{this.columns[e]=t.slice(),s=t.length}),this.applyRowCount(s),i?.silent||((0,r.fireEvent)(this,"afterSetColumns"),this.versionTag=(0,r.uniqueKey)())}setRow(t,e=this.rowCount,i,s){var o;let{columns:n}=this,a=i?this.rowCount+1:e+1,l=Object.keys(t);if(s?.addColumns!==!1)for(let t=0,e=l.length;t<e;t++)n[o=l[t]]||(n[o]=Array(this.rowCount));(0,r.objectEach)(n,(s,r)=>{s&&(i?s=w(s,e,0,!0,[t[r]]).array:s[e]=r in t?t[r]:s[e],n[r]=s)}),this.applyRowCount(Math.max(a,this.rowCount)),s?.silent||((0,r.fireEvent)(this,"afterSetRows",{rowIndex:e}),this.versionTag=(0,r.uniqueKey)())}getModified(){return this.modified||this}},{getBoostClipRect:U,isChartSeriesBoosting:N}=c,{getOptions:L}=n(),{composed:_,doc:z,noop:D,win:O}=n();function G(t,e){let i=e.boost;t&&i&&i.target&&i.canvas&&!N(e.chart)&&t.allocateBufferForSingleSeries(e)}function I(t){return(0,r.pick)(t&&t.options&&t.options.boost&&t.options.boost.enabled,!0)}function B(t,i){let s=t.constructor,o=t.seriesGroup||i.group,n=t.chartWidth,a=t.chartHeight,l=t,h="u">typeof SVGForeignObjectElement,u=!1;N(t)?l=t:(l=i,u=!!(i.options.events?.click||i.options.point?.events?.click));let d=l.boost=l.boost||{};if(h=!1,e||(e=z.createElement("canvas")),!d.target&&(d.canvas=e,t.renderer.forExport||!h?(l.renderTarget=d.target=t.renderer.image("",0,0,n,a).addClass("highcharts-boost-canvas").add(o),d.clear=function(){d.target.attr({href:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="})},d.copy=function(){d.resize(),d.target.attr({href:d.canvas.toDataURL("image/png")})}):(d.targetFo=t.renderer.createElement("foreignObject").add(o),l.renderTarget=d.target=z.createElement("canvas"),d.targetCtx=d.target.getContext("2d"),d.targetFo.element.appendChild(d.target),d.clear=function(){d.target.width=d.canvas.width,d.target.height=d.canvas.height},d.copy=function(){d.target.width=d.canvas.width,d.target.height=d.canvas.height,d.targetCtx.drawImage(d.canvas,0,0)}),d.resize=function(){n=t.chartWidth,a=t.chartHeight,(d.targetFo||d.target).attr({x:0,y:0,width:n,height:a}).css({pointerEvents:u?void 0:"none",mixedBlendMode:"normal",opacity:1}).addClass(u?"highcharts-tracker":""),l instanceof s&&l.boost?.markerGroup?.translate(t.plotLeft,t.plotTop)},d.clipRect=t.renderer.clipRect(),(d.targetFo||d.target).attr({zIndex:i.options.zIndex}),l instanceof s&&(l.boost.markerGroup=l.renderer.g().add(o).translate(i.xAxis.pos,i.yAxis.pos))),d.canvas.width=n,d.canvas.height=a,d.clipRect){let e=U(t,l);d.clipRect.attr(e),t.navigator||e.width!==t.clipBox.width||e.height!==t.clipBox.height?(d.targetFo||d.target).clip(d.clipRect):o?.clip(t.renderer.clipRect(e.x-4,e.y,e.width+4,e.height+4))}return d.resize(),d.clear(),!d.wgl&&(d.wgl=new k(t=>{t.settings.debug.timeBufferCopy&&console.time("buffer copy"),d.copy(),t.settings.debug.timeBufferCopy&&console.timeEnd("buffer copy")}),d.wgl.init(d.canvas)||(0,r.error)("[highcharts boost] - unable to init WebGL renderer"),d.wgl.setOptions(t.options.boost||{}),l instanceof s&&d.wgl.allocateBuffer(t)),d.wgl.setSize(n,a),d.wgl}function V(t){let e=t.points;if(e){let t,i;for(i=0;i<e.length;i+=1)(t=e[i])&&t.destroyElements&&t.destroyElements()}for(let e of(["graph","area","tracker"].forEach(e=>{let i=t[e];i&&(t[e]=i.destroy())}),t.zones))(0,r.destroyObjectProperties)(e,void 0,!0)}function X(t,e,i,s,r,o){let n=(r=r||0)+(s=s||3e3),a=!0;for(;a&&r<n&&r<t.length;)a=e(t[r],r),++r;a&&(r<t.length?o?X(t,e,i,s,r,o):O.requestAnimationFrame?O.requestAnimationFrame(function(){X(t,e,i,s,r)}):setTimeout(X,0,t,e,i,s,r):i&&i())}function F(t,e){let i=t.options,s=(0,r.pick)(i.boostThreshold,Number.MAX_VALUE);if(0===s)return!1;let o=t.dataTable.getModified().rowCount,n=t.xAxis&&t.xAxis.options,a=t.yAxis&&t.yAxis.options,l=t.colorAxis&&t.colorAxis.options;return o>=s&&(0,r.isNumber)(a?.min)&&(0,r.isNumber)(a?.max)&&(!e||(0,r.isNumber)(n?.min)&&(0,r.isNumber)(n?.max))&&(!l||(0,r.isNumber)(l.min)&&(0,r.isNumber)(l.max))}let j=(t,e)=>{let{options:i,forceCrop:s,chart:o}=t,n=(0,r.pick)(i.boostThreshold,Number.MAX_VALUE);return!s&&0!==n&&(N(o)||(e?.length??0)>=n)};function H(){let t=this,e=t.chart;e.boost&&e.boost.markerGroup===t.markerGroup&&(t.markerGroup=void 0),e.hoverPoints&&(e.hoverPoints=e.hoverPoints.filter(function(e){return e.series===t})),e.hoverPoint&&e.hoverPoint.series===t&&(e.hoverPoint=void 0)}function Y(){let t=this.boost,e=this.chart.boost,i=e?.markerGroup;t&&t.canvas&&t.target&&(t.wgl&&t.wgl.clear(),t.clear&&t.clear()),i&&this.markerGroup===i&&this.chart.series.some(t=>t.visible&&t.markerGroup===i)&&i.show()}function W(t){let e=t.boost;e&&e.canvas&&e.target&&e.wgl&&!N(t.chart)&&e.wgl.render(t.chart)}function K(t,e){let i=t.options,s=t.xAxis,o=t.pointClass;if(e instanceof o)return e;let n=i.data,a=t.is("scatter"),l=(a&&t.getColumn("x",!0).length?t.getColumn("x",!0):void 0)||(t.getColumn("x").length?t.getColumn("x"):void 0)||i.xData||t.getColumn("x",!0)||!1,h=t.getColumn("y",!0)||i.yData||!1,u=e.i,d=n?.[u]?.color,c=new o(t,a&&l&&h?[l[u],h[u]]:((0,r.isArray)(n)?n:[])[u],l?l[u]:void 0);if(a&&i?.keys?.length){let t=i.keys;for(let e=t.length-1;e>-1;e--)c[t[e]]=n[u][e]}return c.category=(0,r.pick)(s.categories?s.categories[c.x]:c.x,c.x),c.key=c.name??c.category,c.dist=e.dist,c.distX=e.distX,c.plotX=e.plotX,c.plotY=e.plotY,c.percentage=e.percentage,c.isInside=t.isPointInside(c),d&&(c.color=d),c}function q(t){let{options:e,xAxis:i,yAxis:s}=this;if(!this.isDirty&&!i.isDirty&&!s.isDirty&&!t)return!1;this.yAxis.setTickInterval();let o=e.boostThreshold||0,n=e.cropThreshold,a=this.getColumn("x"),l=i.getExtremes(),h=l.max??Number.MAX_VALUE,u=l.min??-Number.MAX_VALUE,d=this.getColumn("y"),c=s.getExtremes(),g=c.max??Number.MAX_VALUE,m=c.min??-Number.MAX_VALUE,p=s.userMin??((0,r.isNumber)(s.options.min)?s.options.min:-Number.MAX_VALUE),f=s.userMax??((0,r.isNumber)(s.options.max)?s.options.max:Number.MAX_VALUE);if(!this.boosted&&i.old&&s.old&&u>=(i.old.min??-Number.MAX_VALUE)&&h<=(i.old.max??Number.MAX_VALUE)&&m>=(s.old.min??-Number.MAX_VALUE)&&g<=(s.old.max??Number.MAX_VALUE))return this.dataTable.getModified().setColumns({x:a,y:d}),!0;let b=this.dataTable.rowCount;if(!o||b<o||n&&!this.forceCrop&&!this.getExtremesFromAll&&!e.getExtremesFromAll&&b<n)return this.dataTable.getModified().setColumns({x:a,y:d}),!0;let x=[],A=[],y=[],v=!((0,r.isNumber)(l.max)||(0,r.isNumber)(l.min)),P=!((0,r.isNumber)(c.max)||(0,r.isNumber)(c.min)),T=!1,C,M=a[0],E=a[0],k,S=d?.[0],w=d?.[0];for(let t=0,e=a.length;t<e;++t)C=a[t],k=d?.[t],C>=u&&C<=h&&k>=p&&k<=f?(x.push(C),A.push(k),y.push(t),v&&(M=Math.max(M,C),E=Math.min(E,C)),P&&(S=Math.max(S,k),w=Math.min(w,k))):T=!0;return v&&(i.dataMax=Math.max(M,i.dataMax||0),i.dataMin=Math.min(E,i.dataMin||0)),P&&(s.dataMax=Math.max(S,s.dataMax||0),s.dataMin=Math.min(w,s.dataMin||0)),this.cropped=T,this.cropStart=0,T&&!this.dataTable.modified&&(this.dataTable.modified=new R,this.hasProcessedDataTable=!0),this.dataTable.getModified().setColumns({x:x,y:A}),!0}function Z(){let e=this.options||{},i=this.chart,s=i.boost,o=this.boost,n=this.xAxis,a=this.yAxis,l=e.xData||this.getColumn("x",!0),h=e.yData||this.getColumn("y",!0),u=this.getColumn("low",!0),d=this.getColumn("high",!0),c=e.data,g=n.getExtremes(),m=g.min-(n.minPointOffset||0),p=g.max+(n.minPointOffset||0),f=a.getExtremes(),b=f.min-(a.minPointOffset||0),x=f.max+(a.minPointOffset||0),A={},y=!!this.sampling,v=e.enableMouseTracking,P=e.threshold,T=this.pointArrayMap&&"low,high"===this.pointArrayMap.join(","),C=!!e.stacking,M=this.cropStart||0,E=this.requireSorting,k=!l,S="x"===e.findNearestPointBy,w=(this.getColumn("x").length?this.getColumn("x"):void 0)||this.options.xData||this.getColumn("x",!0),R=(0,r.pick)(e.lineWidth,1),U=e.nullInteraction&&b,L=i.tooltip,_=!1,z,O=a.getThreshold(P),I,F,j,H;if(!this.boosted||(this.points?.forEach(t=>{t?.destroyElements?.()}),this.points=[],L&&!L.isHidden?(i.hoverPoint?.series===this||i.hoverPoints?.some(t=>t.series===this))&&(i.hoverPoint=i.hoverPoints=void 0,L.hide(0)):i.hoverPoints&&(i.hoverPoints=i.hoverPoints.filter(t=>t.series!==this)),n.isPanning||a.isPanning)||(_=B(i,this),i.boosted=!0,!this.visible))return;(this.points||this.graph)&&V(this),N(i)?(this.markerGroup&&this.markerGroup!==s?.markerGroup&&this.markerGroup.destroy(),this.markerGroup=s?.markerGroup,o&&o.target&&(this.renderTarget=o.target=o.target.destroy())):(this.markerGroup===s?.markerGroup&&(this.markerGroup=void 0),this.markerGroup=this.plotGroup("markerGroup","markers","visible",1,i.seriesGroup).addClass("highcharts-tracker"));let Y=this.points=[],K=(e,s,r,o)=>{let l=!!w&&w[M+r],h=t=>{i.inverted&&(t=n.len-t,s=a.len-s),Y.push({destroy:D,x:l,clientX:t,plotX:t,plotY:s,i:M+r,percentage:o})};e=Math.ceil(e),t=S?e:e+","+s,v&&(A[t]?l===w[w.length-1]&&(Y.length--,h(e)):(A[t]=!0,h(e)))};this.buildKDTree=D,(0,r.fireEvent)(this,"renderCanvas"),s&&R>1&&this.is("line")&&(s.lineWidthFilter?.remove(),s.lineWidthFilter=i.renderer.definition({tagName:"filter",children:[{tagName:"feMorphology",attributes:{operator:"dilate",radius:.25*R}}],attributes:{id:"linewidth"}}),(o?.target||s.target)?.attr({filter:"url(#linewidth)"})),_&&(G(_,this),_.pushSeries(this),W(this));let q=_.settings,Z=(0,r.isNumber)(q.chunkSize)&&q.chunkSize>0?q.chunkSize:3e3,Q=()=>{(0,r.fireEvent)(this,"renderedCanvas"),delete this.buildKDTree,this.options&&this.buildKDTree(),q.debug.timeKDTree&&console.timeEnd("kd tree building")};i.renderer.forExport||(q.debug.timeKDTree&&console.time("kd tree building"),X(C?this.data.slice(M):l||c,function(t,e){let s=void 0===i.index,o,l,c,g,f,A=!1,v=!0;return!(0,r.defined)(t)||(!s&&(k?(o=t[0],l=t[1]):(o=t,l=h[e]??U??null),T?(k&&(l=t.slice(1,3)),A=u[e],l=d[e]):C&&(o=t.x,A=(l=t.stackY)-t.y,f=t.percentage),E||(v=(l||0)>=b&&l<=x),null!==l&&o>=m&&o<=p&&v&&(c=n.toPixels(o,!0),y?((void 0===j||c===z)&&(T||(A=l),(void 0===H||l>F)&&(F=l,H=e),(void 0===j||A<I)&&(I=A,j=e)),S&&c===z||(void 0!==j&&(g=a.toPixels(F,!0),O=a.toPixels(I,!0),K(c,g,H,f),O!==g&&K(c,O,j,f)),j=H=void 0,z=c)):K(c,g=Math.ceil(a.toPixels(l,!0)),e,f))),!s)},Q,Z))}function Q(t){let e=!0;if(this.chart.options&&this.chart.options.boost&&(e=void 0===this.chart.options.boost.enabled||this.chart.options.boost.enabled),!e||!this.boosted)return t.call(this);this.chart.boosted=!0;let i=B(this.chart,this);i&&(G(i,this),i.pushSeries(this)),W(this)}function J(t){if(this.boosted){if(F(this,!0))return{};if(this.xAxis?.isPanning||this.yAxis?.isPanning)return this}return t.apply(this,[].slice.call(arguments,1))}function $(t){let e=this.options.data;if(I(this.chart)&&l[this.type]){let s=this.is("scatter")&&!this.is("bubble")&&!this.is("treemap")&&!this.is("heatmap");if(!j(this,e)||s||this.is("treemap")||this.options.stacking||!F(this,!0)){if(this.boosted&&(this.xAxis?.isPanning||this.yAxis?.isPanning))return;s&&"treegrid"!==this.yAxis.type?q.call(this,arguments[1]):t.apply(this,[].slice.call(arguments,1)),e=this.getColumn("x",!0)}if(this.boosted=j(this,e),this.boosted){let t;this.options.data?.length&&(t=this.getFirstValidPoint(this.options.data),(0,r.isNumber)(t)||(0,r.isArray)(t)||this.is("treemap")||(0,r.error)(12,!1,this.chart));var i=this;i.boost=i.boost||{getPoint:t=>K(i,t)};let e=i.boost.altered=[];if(["allowDG","directTouch","stickyTracking"].forEach(t=>{e.push({prop:t,val:i[t],own:Object.hasOwnProperty.call(i,t)})}),i.allowDG=!1,i.directTouch=!1,i.stickyTracking=!0,i.finishedAnimating=!0,i.labelBySeries&&(i.labelBySeries=i.labelBySeries.destroy()),i.is("scatter")&&!i.is("treemap")&&i.data.length){for(let t of i.data)t?.destroy?.();i.data.length=0,i.points.length=0}}else!function(t){let e=t.boost,i=t.chart,s=i.boost;if(s?.markerGroup)for(let t of(s.markerGroup.destroy(),s.markerGroup=void 0,i.series))t.markerGroup=void 0,t.markerGroup=t.plotGroup("markerGroup","markers","visible",1,i.seriesGroup).addClass("highcharts-tracker");e&&((e.altered||[]).forEach(e=>{e.own?t[e.prop]=e.val:delete t[e.prop]}),e.clear&&e.clear()),(i.seriesGroup||t.group)?.clip()}(this)}else t.apply(this,[].slice.call(arguments,1))}function tt(t){let e=t.apply(this,[].slice.call(arguments,1));return this.boost&&e?this.boost.getPoint(e):e}let te={compose:function(t,e,i,s){if((0,r.pushUnique)(_,"Boost.Series")){let o=L().plotOptions,n=t.prototype;if((0,r.addEvent)(t,"destroy",H),(0,r.addEvent)(t,"hide",Y),s&&(n.renderCanvas=Z),(0,r.wrap)(n,"getExtremes",J),(0,r.wrap)(n,"processData",$),(0,r.wrap)(n,"searchPoint",tt),["translate","generatePoints","drawTracker","drawPoints","render"].forEach(t=>(function(t,e,i){function s(t){let e=this.options.stacking&&("translate"===i||"generatePoints"===i);this.boosted&&!e&&I(this.chart)&&"heatmap"!==this.type&&"treemap"!==this.type&&l[this.type]&&0!==this.options.boostThreshold?"render"===i&&this.renderCanvas&&this.renderCanvas():t.call(this)}if((0,r.wrap)(t,i,s),"translate"===i)for(let t of["column","arearange","columnrange","heatmap","treemap"])e[t]&&(0,r.wrap)(e[t].prototype,i,s)})(n,e,t)),(0,r.wrap)(i.prototype,"firePointEvent",function(t,e,i){if("click"===e&&this.series.boosted){let t=i.point;if((t.dist||t.distX)>=(t.series.options.marker?.radius??10))return}return t.apply(this,[].slice.call(arguments,1))}),a.forEach(t=>{let i=o[t];i&&(i.boostThreshold=5e3,i.boostData=[],e[t].prototype.fillOpacity=!0)}),s){let{area:t,areaspline:i,bubble:s,column:o,heatmap:n,scatter:a,treemap:l}=e;if(t&&(0,r.extend)(t.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),i&&(0,r.extend)(i.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),s){let t=s.prototype;delete t.buildKDTree,(0,r.wrap)(t,"markerAttribs",function(t){return!this.boosted&&t.apply(this,[].slice.call(arguments,1))})}o&&(0,r.extend)(o.prototype,{fill:!0,sampling:!0}),a&&(a.prototype.fill=!0),[n,l].forEach(t=>{t&&(0,r.wrap)(t.prototype,"drawPoints",Q)})}}return t},destroyGraphics:V,eachAsync:X,getPoint:K},{getBoostClipRect:ti,isChartSeriesBoosting:ts}=c,{destroyGraphics:tr}=te,{parse:to}=m(),{doc:tn,noop:ta}=n();!function(t){let e,i="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=";function s(t,e,i,s,r){r&&e!==r.clientX&&(t.moveTo(r.clientX,r.yBottom),t.lineTo(r.clientX,r.plotY),t.lineTo(e,i),t.lineTo(e,s))}function o(t,e,i,s,r){t.moveTo(e,i),t.arc(e,i,this.radii&&this.radii[r],0,2*Math.PI,!1)}function n(t,e,i,s){t.rect(e-1,i,1,s-i)}function a(){this.boost&&this.boost.copy&&this.boost.copy()}function l(){let t=this.boost||{};t.target&&t.target.attr({href:i}),t.canvas&&t.canvas.getContext("2d").clearRect(0,0,t.canvas.width,t.canvas.height)}function h(){ts(this.chart)?this.boost&&this.boost.clear&&this.boost.clear():this.boost&&this.boost.copy?this.boost.copy():this.chart.boost&&this.chart.boost.copy&&this.chart.boost.copy()}function u(t,e,i){t.lineTo(e,i)}function d(){let t,e=this.chart,s=ts(e)?e:this,o=s===e?e.seriesGroup:e.seriesGroup||this.group,n=e.chartWidth,a=e.chartHeight,l=function(t,e,i,s,r,o,n){t.call(this,i,e,s,r,o,n)},h=s.boost=s.boost||{};return t=h.targetCtx,h.canvas||(h.canvas=tn.createElement("canvas"),h.target=e.renderer.image("",0,0,n,a).addClass("highcharts-boost-canvas").add(o),t=h.targetCtx=h.canvas.getContext("2d"),e.inverted&&["moveTo","lineTo","rect","arc"].forEach(e=>{(0,r.wrap)(t,e,l)}),h.copy=function(){h.target.attr({href:h.canvas.toDataURL("image/png")})},h.clear=function(){t.clearRect(0,0,h.canvas.width,h.canvas.height),s===h.target&&h.target.attr({href:i})},h.clipRect=e.renderer.clipRect(),h.target.clip(h.clipRect)),h.canvas.width!==n&&(h.canvas.width=n),h.canvas.height!==a&&(h.canvas.height=a),h.target.attr({x:0,y:0,width:n,height:a,style:"pointer-events: none",href:i}),h.clipRect&&h.clipRect.attr(ti(e,s)),t}function c(){let t=this,s=t.options,o=t.chart,n=t.xAxis,a=t.yAxis,l=o.options.boost||{},h={timeRendering:l.timeRendering||!1,timeSeriesProcessing:l.timeSeriesProcessing||!1,timeSetup:l.timeSetup||!1},u=t.getColumn("x",!0),d=t.getColumn("y",!0),c=s.data||[],g=n.getExtremes(),p=g.min,f=g.max,b=a.getExtremes(),x=b.min,A=b.max,y={},v=!!t.sampling,P=s.marker&&s.marker.radius,T=t.cvsStrokeBatch||1e3,C=s.enableMouseTracking,M=s.threshold,E=(0,r.isNumber)(M),k=a.getThreshold(M),S=t.fill,w=t.pointArrayMap&&"low,high"===t.pointArrayMap.join(","),R=!!s.stacking,U=t.cropStart||0,N=o.options.loading,L=t.requireSorting,_=s.connectNulls,z=!u,D=R?t.data:u||c,O=t.fillOpacity?m().parse(t.color).setOpacity((0,r.pick)(s.fillOpacity,.75)).get():t.color,G="x"===s.findNearestPointBy,I=this.boost||{},B=t.cvsDrawPoint,V=s.lineWidth?t.cvsLineTo:void 0,X=P&&P<=1?t.cvsMarkerSquare:t.cvsMarkerCircle;I.target&&I.target.attr({href:i}),(t.points||t.graph)&&tr(t),t.plotGroup("group","series",t.visible?"visible":"hidden",s.zIndex,o.seriesGroup),t.markerGroup=t.group,(0,r.addEvent)(t,"destroy",function(){t.markerGroup=null});let F=this.points=[],j=this.getContext();if(t.buildKDTree=ta,I.clear&&I.clear(),!t.visible)return;c.length>99999&&(o.options.loading=(0,r.merge)(N,{labelStyle:{backgroundColor:to("var(--highcharts-background-color)").setOpacity(.75).get(),padding:"1em",borderRadius:"0.5em"},style:{backgroundColor:"none",opacity:1}}),(0,r.internalClearTimeout)(e),o.showLoading("Drawing..."),o.options.loading=N),h.timeRendering&&console.time("canvas rendering");let H=0,Y,W,K=k,q,Z,Q,J,$,tt,ti=function(){S?(j.fillStyle=O,j.fill()):(j.strokeStyle=t.color,j.lineWidth=s.lineWidth,j.stroke())},ts=function(e,i,s,r){0===H&&(j.beginPath(),V&&(j.lineJoin="round")),o.scroller&&"highcharts-navigator-series"===t.options.className?(i+=o.scroller.top,s&&(s+=o.scroller.top)):i+=o.plotTop,e+=o.plotLeft,q?j.moveTo(e,i):B?B(j,e,i,s,W):V?V(j,e,i):X&&X.call(t,j,e,i,P,r),(H+=1)===T&&(ti(),H=0),W={clientX:e,plotY:i,yBottom:s}},tn=(this.getColumn("x").length?this.getColumn("x"):void 0)||this.options.xData||!!this.getColumn("x",!0).length&&this.getColumn("x",!0),tl=function(t,e,i){tt=G?t:t+","+e,C&&!y[tt]&&(y[tt]=!0,o.inverted&&(t=n.len-t,e=a.len-e),F.push({x:!!tn&&tn[U+i],clientX:t,plotX:t,plotY:e,i:U+i}))};te.eachAsync(D,(e,i)=>{let s=void 0===o.index,r,l,h,u,c,g,m=!1,b=!1,y=NaN,P=NaN,T=!0;return!s&&(z?(r=e[0],l=e[1],D[i+1]&&(y=D[i+1][0]),D[i-1]&&(P=D[i-1][0])):(r=e,l=d[i],D[i+1]&&(y=D[i+1]),D[i-1]&&(P=D[i-1])),y&&y>=p&&y<=f&&(m=!0),P&&P>=p&&P<=f&&(b=!0),w?(z&&(l=e.slice(1,3)),g=l[0],l=l[1]):R&&(r=e.x,g=(l=e.stackY)-e.y),c=null===l,L||(T=l>=x&&l<=A),!c&&(r>=p&&r<=f&&T||m||b)&&(h=Math.round(n.toPixels(r,!0)),v?((void 0===J||h===Y)&&(w||(g=l),(void 0===$||l>Q)&&(Q=l,$=i),(void 0===J||g<Z)&&(Z=g,J=i)),h!==Y&&(void 0!==J&&(u=a.toPixels(Q,!0),K=a.toPixels(Z,!0),ts(h,E?Math.min(u,k):u,E?Math.max(K,k):K,i),tl(h,u,$),K!==u&&tl(h,K,J)),J=$=void 0,Y=h)):(ts(h,u=Math.round(a.toPixels(l,!0)),K,i),tl(h,u,i))),q=c&&!_,i%5e4==0&&(t.boost&&t.boost.copy?t.boost.copy():t.chart.boost&&t.chart.boost.copy&&t.chart.boost.copy())),!s},function(){let i=o.loadingDiv,s=o.loadingShown;ti(),t.canvasToSVG(),h.timeRendering&&console.timeEnd("canvas rendering"),(0,r.fireEvent)(t,"renderedCanvas"),s&&(i.style.transition="opacity 250ms",i.opacity=0,o.loadingShown=!1,e=setTimeout(function(){i.parentNode&&i.parentNode.removeChild(i),o.loadingDiv=o.loadingSpan=null},250)),delete t.buildKDTree,t.buildKDTree()},o.renderer.forExport?Number.MAX_VALUE:void 0)}function g(t,e,i,s){t.moveTo(e,i),t.arc(e,i,s,0,2*Math.PI,!1)}function p(t,e,i,s){t.rect(e-s,i-s,2*s,2*s)}function f(){let t=this.chart,e=this.getContext(),i=this.chart.inverted,s=this.xAxis,r=this.yAxis;e?(this.points.forEach(o=>{let n=o.plotY;if(void 0!==n&&!isNaN(n)&&null!==o.y&&e){let{x:n=0,y:a=0,width:l=0,height:h=0}=o.shapeArgs||{};e.fillStyle=(t.styledMode?o.series.colorAttribs(o):o.series.pointAttribs(o)).fill,i?e.fillRect(r.len-a+s.left,s.len-n+r.top,-h,-l):e.fillRect(n+s.left,a+r.top,l,h)}}),this.canvasToSVG()):this.chart.showLoading("Your browser doesn't support HTML5 canvas, <br>please use a modern browser")}t.compose=function(t,e,i){let m=e.prototype;if(!m.renderCanvas){let{area:e,bubble:b,column:x,heatmap:A,scatter:y}=i;if(t.prototype.callbacks.push(t=>{(0,r.addEvent)(t,"predraw",l),(0,r.addEvent)(t,"render",a)}),m.canvasToSVG=h,m.cvsLineTo=u,m.getContext=d,m.renderCanvas=c,e){let t=e.prototype;t.cvsDrawPoint=s,t.fill=!0,t.fillOpacity=!0,t.sampling=!0}if(b){let t=b.prototype;t.cvsMarkerCircle=o,t.cvsStrokeBatch=1}if(x){let t=x.prototype;t.cvsDrawPoint=n,t.fill=!0,t.sampling=!0}if(A){let t=A.prototype;(0,r.wrap)(t,"drawPoints",f)}if(y){let t=y.prototype;t.cvsMarkerCircle=g,t.cvsMarkerSquare=p,t.fill=!0}}}}(o||(o={}));let tl=o,th=n();th.initCanvasBoost=function(){tl.compose(th.Chart,th.Series,th.seriesTypes)};let tu=n();export{tu as default};
13
+ */import*as i from"../highcharts.js";let s={};s.n=t=>{let e=t&&t.__esModule?()=>t.default:()=>t;return s.d(e,{a:e}),e},s.d=(t,e)=>{if(Array.isArray(e))for(var i=0;i<e.length;){var r=e[i++],o=e[i++];s.o(t,r)?0===o&&i++:0===o?Object.defineProperty(t,r,{enumerable:!0,value:e[i++]}):Object.defineProperty(t,r,{enumerable:!0,get:o})}else for(var r in e)s.o(e,r)&&!s.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);let r=i.default;var o,n=s.n(r);let a=["area","areaspline","arearange","column","columnrange","bar","line","scatter","heatmap","bubble","treemap"],l={};a.forEach(t=>{l[t]=!0});let{composed:h}=n();function d(t){let e=t.series,i=t.boost=t.boost||{},s=t.options.boost||{},r=s.seriesThreshold??50;if(e.length>=r)return!0;if(1===e.length)return!1;let o=s.allowForce;if(void 0===o){for(let e of(o=!0,t.xAxis))if((e.min??-1/0)>(e.dataMin??-1/0)||(e.max??1/0)<(e.dataMax??1/0)){o=!1;break}}if(void 0!==i.forceChartBoost){if(o)return i.forceChartBoost;i.forceChartBoost=void 0}let n=0,a=0,h=0,d;for(let t of e)0!==(d=t.options).boostThreshold&&!1!==t.visible&&"heatmap"!==t.type&&(++a,l[t.type]&&++n,function(...t){let e=-Number.MAX_VALUE;return t.forEach(t=>{if(null!=t&&void 0!==t.length&&t.length>0)return e=t.length,!0}),e}(t.getColumn("x",!0),d.data||[],t.points)>=(d.boostThreshold||Number.MAX_VALUE)&&++h);return i.forceChartBoost=o&&(n===e.length&&h===n||!!i.markerGroup&&n===a&&h===n||h>5),i.forceChartBoost}function u(t){function e(){t.boost&&t.boost.wgl&&d(t)&&t.boost.wgl.render(t)}(0,r.addEvent)(t,"predraw",function(){t.boost=t.boost||{},t.boost.forceChartBoost=void 0,t.boosted=!1,t.axes.some(t=>t.isPanning)||t.boost.clear?.(),t.boost.canvas&&t.boost.wgl&&d(t)&&t.boost.wgl.allocateBuffer(t),t.boost.markerGroup&&t.xAxis&&t.xAxis.length>0&&t.yAxis&&t.yAxis.length>0&&t.boost.markerGroup.translate(t.xAxis[0].pos,t.yAxis[0].pos)}),(0,r.addEvent)(t,"load",e,{order:-1}),(0,r.addEvent)(t,"redraw",e);let i=-1,s=-1;(0,r.addEvent)(t.pointer,"afterGetHoverData",e=>{let r=e.hoverPoint?.series;if(t.boost=t.boost||{},t.boost.markerGroup&&r){let e=t.inverted?r.yAxis:r.xAxis,o=t.inverted?r.xAxis:r.yAxis;(e&&e.pos!==i||o&&o.pos!==s)&&(t.series.forEach(t=>{t.halo?.hide()}),t.boost.markerGroup.translate(e.pos,o.pos),i=e.pos,s=o.pos)}})}let c={compose:function(t,e){return e&&(0,r.pushUnique)(h,"Boost.Chart")&&t.prototype.callbacks.push(u),t},getBoostClipRect:function(t,e){let i=t.navigator,s={x:t.plotLeft,y:t.plotTop,width:t.plotWidth,height:t.plotHeight};if(i&&t.inverted?(s.width+=i.top+i.height,i.opposite||(s.x=i.left)):i&&!t.inverted&&(s.height=i.top+i.height-t.plotTop),e.is){let{xAxis:i,yAxis:r}=e;if(s=t.getClipBox(e),t.inverted){let t=s.width;s.width=s.height,s.height=t,s.x=r.pos,s.y=i.pos}else s.x=i.pos,s.y=r.pos}if(e===t){let e=t.inverted?t.xAxis:t.yAxis;t.inverted||i||!t.clipBox||(s.width=t.clipBox.width,s.height=t.clipBox.height),e.length<=1&&(s.y=Math.min(e[0].pos,s.y),s.height=e[0].pos-t.plotTop+e[0].len)}return s},isChartSeriesBoosting:d},g=i.default.Color;var m=s.n(g);let f={area:"LINES",arearange:"LINES",areaspline:"LINES",column:"LINES",columnrange:"LINES",bar:"LINES",line:"LINE_STRIP",scatter:"POINTS",heatmap:"TRIANGLES",treemap:"TRIANGLES",bubble:"POINTS"},p=class{constructor(t){if(this.errors=[],this.uLocations={},this.gl=t,t&&!this.createShader())return}bind(){this.gl&&this.shaderProgram&&this.gl.useProgram(this.shaderProgram)}createShader(){let t=this.stringToProgram("#version 100\n#define LN10 2.302585092994046\nprecision highp float;\nattribute vec4 aVertexPosition;\nattribute vec4 aColor;\nvarying highp vec2 position;\nvarying highp vec4 vColor;\nuniform mat4 uPMatrix;\nuniform float pSize;\nuniform float translatedThreshold;\nuniform bool hasThreshold;\nuniform bool skipTranslation;\nuniform float xAxisTrans;\nuniform float xAxisMin;\nuniform float xAxisMax;\nuniform float xAxisMinPad;\nuniform float xAxisPointRange;\nuniform float xAxisLen;\nuniform bool xAxisPostTranslate;\nuniform float xAxisOrdinalSlope;\nuniform float xAxisOrdinalOffset;\nuniform float xAxisPos;\nuniform bool xAxisCVSCoord;\nuniform bool xAxisIsLog;\nuniform bool xAxisReversed;\nuniform float yAxisTrans;\nuniform float yAxisMin;\nuniform float yAxisMax;\nuniform float yAxisMinPad;\nuniform float yAxisPointRange;\nuniform float yAxisLen;\nuniform bool yAxisPostTranslate;\nuniform float yAxisOrdinalSlope;\nuniform float yAxisOrdinalOffset;\nuniform float yAxisPos;\nuniform bool yAxisCVSCoord;\nuniform bool yAxisIsLog;\nuniform bool yAxisReversed;\nuniform bool isCircle;\nuniform bool isBubble;\nuniform bool bubbleSizeByArea;\nuniform float bubbleZMin;\nuniform float bubbleZMax;\nuniform float bubbleZThreshold;\nuniform float bubbleMinSize;\nuniform float bubbleMaxSize;\nuniform bool bubbleSizeAbs;\nuniform bool isInverted;\nfloat bubbleRadius(){\nfloat value = aVertexPosition.w;\nfloat zMax = bubbleZMax;\nfloat zMin = bubbleZMin;\nfloat radius = 0.0;\nfloat pos = 0.0;\nfloat zRange = zMax - zMin;\nif (bubbleSizeAbs){\nvalue = value - bubbleZThreshold;\nzMax = max(zMax - bubbleZThreshold, zMin - bubbleZThreshold);\nzMin = 0.0;\n}\nif (value < zMin){\nradius = bubbleZMin / 2.0 - 1.0;\n} else {\npos = zRange > 0.0 ? (value - zMin) / zRange : 0.5;\nif (bubbleSizeByArea && pos > 0.0){\npos = sqrt(pos);\n}\nradius = ceil(bubbleMinSize + pos * (bubbleMaxSize - bubbleMinSize)) / 2.0;\n}\nreturn radius * 2.0;\n}\nfloat translate(float val,\nfloat pointPlacement,\nfloat localA,\nfloat localMin,\nfloat minPixelPadding,\nfloat pointRange,\nfloat len,\nbool cvsCoord,\nbool isLog,\nbool reversed\n){\nfloat sign = 1.0;\nfloat cvsOffset = 0.0;\nif (cvsCoord) {\nsign *= -1.0;\ncvsOffset = len;\n}\nif (isLog) {\nval = log(val) / LN10;\n}\nif (reversed) {\nsign *= -1.0;\ncvsOffset -= sign * len;\n}\nreturn sign * (val - localMin) * localA + cvsOffset + \n(sign * minPixelPadding);\n}\nfloat xToPixels(float value) {\nif (skipTranslation){\nreturn value;// + xAxisPos;\n}\nreturn translate(value, 0.0, xAxisTrans, xAxisMin, xAxisMinPad, xAxisPointRange, xAxisLen, xAxisCVSCoord, xAxisIsLog, xAxisReversed);// + xAxisPos;\n}\nfloat yToPixels(float value, float checkThreshold) {\nfloat v;\nif (skipTranslation){\nv = value;// + yAxisPos;\n} else {\nv = translate(value, 0.0, yAxisTrans, yAxisMin, yAxisMinPad, yAxisPointRange, yAxisLen, yAxisCVSCoord, yAxisIsLog, yAxisReversed);// + yAxisPos;\nif (v > yAxisLen) {\nv = yAxisLen;\n}\n}\nif (checkThreshold > 0.0 && hasThreshold) {\nv = min(v, translatedThreshold);\n}\nreturn v;\n}\nvoid main(void) {\nif (isBubble){\ngl_PointSize = bubbleRadius();\n} else {\ngl_PointSize = pSize;\n}\nvColor = aColor;\nif (!skipTranslation && isCircle && (\naVertexPosition.x < xAxisMin ||\naVertexPosition.x > xAxisMax ||\naVertexPosition.y < yAxisMin ||\naVertexPosition.y > yAxisMax\n)) {\ngl_Position = uPMatrix * vec4(2.0, 2.0, 2.0, 1.0);\n} else if (skipTranslation && isInverted) {\ngl_Position = uPMatrix * vec4(aVertexPosition.y + yAxisPos, aVertexPosition.x + xAxisPos, 0.0, 1.0);\n} else if (isInverted) {\ngl_Position = uPMatrix * vec4(yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, xToPixels(aVertexPosition.x) + xAxisPos, 0.0, 1.0);\n} else {\ngl_Position = uPMatrix * vec4(xToPixels(aVertexPosition.x) + xAxisPos, yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, 0.0, 1.0);\n}\n}","vertex"),e=this.stringToProgram("precision highp float;\nuniform vec4 fillColor;\nvarying highp vec2 position;\nvarying highp vec4 vColor;\nuniform sampler2D uSampler;\nuniform bool isCircle;\nuniform bool hasColor;\nvoid main(void) {\nvec4 col = fillColor;\nvec4 tcol = texture2D(uSampler, gl_PointCoord.st);\nif (hasColor) {\ncol = vColor;\n}\nif (isCircle) {\ncol *= tcol;\nif (tcol.r < 0.0) {\ndiscard;\n} else {\ngl_FragColor = col;\n}\n} else {\ngl_FragColor = col;\n}\n}","fragment"),i=t=>this.gl.getUniformLocation(this.shaderProgram,t);return t&&e?(this.shaderProgram=this.gl.createProgram(),this.gl.attachShader(this.shaderProgram,t),this.gl.attachShader(this.shaderProgram,e),this.gl.linkProgram(this.shaderProgram),this.gl.getProgramParameter(this.shaderProgram,this.gl.LINK_STATUS))?(this.gl.useProgram(this.shaderProgram),this.gl.bindAttribLocation(this.shaderProgram,0,"aVertexPosition"),this.pUniform=i("uPMatrix"),this.psUniform=i("pSize"),this.fcUniform=i("fillColor"),this.isBubbleUniform=i("isBubble"),this.bubbleSizeAbsUniform=i("bubbleSizeAbs"),this.bubbleSizeAreaUniform=i("bubbleSizeByArea"),this.uSamplerUniform=i("uSampler"),this.skipTranslationUniform=i("skipTranslation"),this.isCircleUniform=i("isCircle"),this.isInverted=i("isInverted"),!0):(this.errors.push(this.gl.getProgramInfoLog(this.shaderProgram)),this.handleErrors(),this.shaderProgram=!1,!1):(this.shaderProgram=!1,this.handleErrors(),!1)}handleErrors(){this.errors.length&&(0,r.error)("[highcharts boost] shader error - "+this.errors.join("\n"))}stringToProgram(t,e){let i=this.gl.createShader("vertex"===e?this.gl.VERTEX_SHADER:this.gl.FRAGMENT_SHADER);return(this.gl.shaderSource(i,t),this.gl.compileShader(i),this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS))?i:(this.errors.push("when compiling "+e+" shader:\n"+this.gl.getShaderInfoLog(i)),!1)}destroy(){this.gl&&this.shaderProgram&&(this.gl.deleteProgram(this.shaderProgram),this.shaderProgram=!1)}fillColorUniform(){return this.fcUniform}getProgram(){return this.shaderProgram}pointSizeUniform(){return this.psUniform}perspectiveUniform(){return this.pUniform}reset(){this.gl&&this.shaderProgram&&(this.gl.uniform1i(this.isBubbleUniform,0),this.gl.uniform1i(this.isCircleUniform,0))}setBubbleUniforms(t,e,i,s=1){let o=t.options,n=Number.MAX_VALUE,a=-Number.MAX_VALUE;if(this.gl&&this.shaderProgram&&t.is("bubble")){let l=t.getPxExtremes();n=o.zMin??(0,r.clamp)(e,!1===o.displayNegative?o.zThreshold:-Number.MAX_VALUE,n),a=o.zMax??Math.max(a,i),this.gl.uniform1i(this.isBubbleUniform,1),this.gl.uniform1i(this.isCircleUniform,1),this.gl.uniform1i(this.bubbleSizeAreaUniform,"width"!==t.options.sizeBy),this.gl.uniform1i(this.bubbleSizeAbsUniform,t.options.sizeByAbsoluteValue),this.setUniform("bubbleMinSize",l.minPxSize*s),this.setUniform("bubbleMaxSize",l.maxPxSize*s),this.setUniform("bubbleZMin",n),this.setUniform("bubbleZMax",a),this.setUniform("bubbleZThreshold",t.options.zThreshold)}}setColor(t){this.gl&&this.shaderProgram&&this.gl.uniform4f(this.fcUniform,t[0]/255,t[1]/255,t[2]/255,t[3])}setDrawAsCircle(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.isCircleUniform,+!!t)}setInverted(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.isInverted,t)}setPMatrix(t){this.gl&&this.shaderProgram&&this.gl.uniformMatrix4fv(this.pUniform,!1,t)}setPointSize(t){this.gl&&this.shaderProgram&&this.gl.uniform1f(this.psUniform,t)}setSkipTranslation(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.skipTranslationUniform,+(!0===t))}setTexture(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.uSamplerUniform,t)}setUniform(t,e){if(this.gl&&this.shaderProgram){let i=this.uLocations[t]=this.uLocations[t]||this.gl.getUniformLocation(this.shaderProgram,t);this.gl.uniform1f(i,e)}}},b=class{constructor(t,e,i){this.buffer=!1,this.iterator=0,this.preAllocated=!1,this.vertAttribute=!1,this.components=i||2,this.dataComponents=i,this.gl=t,this.shader=e}allocate(t){this.iterator=-1,this.preAllocated=new Float32Array(4*t)}bind(){if(!this.buffer)return!1;this.gl.vertexAttribPointer(this.vertAttribute,this.components,this.gl.FLOAT,!1,0,0)}build(t,e,i){let s;return(this.data=t||[],this.data&&0!==this.data.length||this.preAllocated)?(this.components=i||this.components,this.buffer&&this.gl.deleteBuffer(this.buffer),this.preAllocated||(s=new Float32Array(this.data)),this.buffer=this.gl.createBuffer(),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.buffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.preAllocated||s,this.gl.STATIC_DRAW),this.vertAttribute=this.gl.getAttribLocation(this.shader.getProgram(),e),this.gl.enableVertexAttribArray(this.vertAttribute),s=!1,!0):(this.destroy(),!1)}destroy(){this.buffer&&(this.gl.deleteBuffer(this.buffer),this.buffer=!1,this.vertAttribute=!1),this.iterator=0,this.components=this.dataComponents||2,this.data=[]}push(t,e,i,s){this.preAllocated&&(this.preAllocated[++this.iterator]=t,this.preAllocated[++this.iterator]=e,this.preAllocated[++this.iterator]=i,this.preAllocated[++this.iterator]=s)}render(t,e,i){let s=this.preAllocated?this.preAllocated.length:this.data?.length||0;return!!this.buffer&&!!s&&((!t||t>s||t<0)&&(t=0),(!e||e>s)&&(e=s),!(t>=e)&&(i=i||"POINTS",this.gl.drawArrays(this.gl[i],t/this.components,(e-t)/this.components),!0))}},{getBoostClipRect:x}=c,{parse:A}=m(),{doc:y,win:v}=n(),P={column:!0,columnrange:!0,bar:!0,area:!0,areaspline:!0,arearange:!0},T={scatter:!0,bubble:!0},C=["webgl","experimental-webgl","moz-webgl","webkit-3d"],M={},E=(t,e)=>{if(M[e])return M[e];let i=0===e.indexOf("var(")&&t[e.slice(4,-1).trim()];if(i)return M[e]=i,i;if(0===e.indexOf("color-mix(")){let i=/^color-mix\(in srgb,([a-z0-9\(\)\-\#]+),([a-z0-9\(\)\-\#]+) ([0-9\.%]+)/.exec(e);if(i){let s=parseFloat(i[3])/100,r=E(t,i[1]),o=E(t,i[2]),n=new(m())(r).tweenTo(new(m())(o),s);return M[e]=n,n}}return e};class S{static orthoMatrix(t,e){return[2/t,0,0,0,0,-(2/e),0,0,0,0,-2,0,-1,1,-1,1]}static seriesPointCount(t){let e,i,s;return t.boosted?(e=!!t.options.stacking,i=(t.getColumn("x").length?t.getColumn("x"):void 0)||t.options.xData||t.getColumn("x",!0),s=(e?t.data:i||t.options.data).length,"treemap"===t.type?s*=12:"heatmap"===t.type?s*=6:P[t.type]&&(s*=2),s):0}constructor(t){this.data=[],this.height=0,this.isInited=!1,this.markerData=[],this.series=[],this.textureHandles={},this.width=0,this.postRenderCallback=t,this.settings={pointSize:1,lineWidth:1,fillColor:"#AA00AA",useAlpha:!0,usePreallocated:!1,useGPUTranslations:!1,debug:{timeRendering:!1,timeSeriesProcessing:!1,timeSetup:!1,timeBufferCopy:!1,timeKDTree:!1,showSkipSummary:!1}}}getPixelRatio(){return this.settings.pixelRatio||v.devicePixelRatio||1}setOptions(t){"pixelRatio"in t||(t.pixelRatio=1),(0,r.merge)(!0,this.settings,t)}allocateBuffer(t){let e=this.vbuffer,i=0;this.settings.usePreallocated&&(t.series.forEach(t=>{t.boosted&&(i+=S.seriesPointCount(t))}),e&&e.allocate(i))}allocateBufferForSingleSeries(t){let e=this.vbuffer,i=0;this.settings.usePreallocated&&(t.boosted&&(i=S.seriesPointCount(t)),e&&e.allocate(i))}clear(){let t=this.gl;t&&t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT)}pushSeriesData(t,e){let i=this.data,s=this.settings,o=this.vbuffer,n=t.pointArrayMap&&"low,high"===t.pointArrayMap.join(","),{chart:a,options:l,sorted:h,xAxis:d,yAxis:u}=t,c=!!l.stacking,g=l.data,f=t.xAxis.getExtremes(),p=f.min-(t.xAxis.minPointOffset||0),b=f.max+(t.xAxis.minPointOffset||0),x=t.yAxis.getExtremes(),y=x.min-(t.yAxis.minPointOffset||0),v=x.max+(t.yAxis.minPointOffset||0),T=(t.getColumn("x").length?t.getColumn("x"):void 0)||l.xData||t.getColumn("x",!0),C=(t.getColumn("y").length?t.getColumn("y"):void 0)||l.yData||t.getColumn("y",!0),M=(t.getColumn("z").length?t.getColumn("z"):void 0)||l.zData||t.getColumn("z",!0),S=!T||0===T.length,{colorByPoint:k,connectNulls:w,threshold:R,zoneAxis:U="y",zones:N}=l,L=t.points||!1,_=c?t.data:T||g,z={x:Number.MAX_VALUE,y:0},D={x:-Number.MAX_VALUE,y:0},O=void 0===a.index,G=P[t.type],I=this.getPixelRatio(),B=a.options.colors||[],V=t.chart.plotWidth,X=!1,F=!1,j,H,Y=0,W=!1,K,q,Z,Q,J=-1,$=!1,tt=!1,te,ti=!1,ts=!1,tr,to=!1,tn=!0,ta=!0,tl=[],th=!1,td=!1,tu=0,tc=0;if(l.boostData&&l.boostData.length>0)return;if(l.gapSize&&(td="value"!==l.gapUnit?l.gapSize*t.closestPointRange:l.gapSize),a.boost){let t=a.renderer.circle(0,0,1).attr({fill:"var(--highcharts-background-color)"}).add(),e=new(m())(getComputedStyle(t.element).getPropertyValue("fill")).get(),i=new(m())(a.palette?.cssVars.dark["--highcharts-background-color"]||"").get();t.destroy(),a.boost.cssVars=a.palette?.cssVars[e===i?"dark":"light"]}let tg=a.boost?.cssVars||{};if(N?.length&&(tl=[],N.forEach((t,e)=>{if("string"==typeof t.color){let i=A(E(tg,t.color)).rgba;i[0]/=255,i[1]/=255,i[2]/=255,tl[e]=i,th||void 0!==t.value||(th=i)}}),!th)){let e=t.pointAttribs&&t.pointAttribs().fill||t.color;th=A("string"==typeof e?E(tg,e):"").rgba,th[0]/=255,th[1]/=255,th[2]/=255}a.inverted&&(V=t.chart.plotHeight),t.closestPointRangePx=Number.MAX_VALUE;let tm=t=>{t&&(e.colorData.push(t[0]),e.colorData.push(t[1]),e.colorData.push(t[2]),e.colorData.push(t[3]))},tf=(t,r,n,a=1,l)=>{tm(l),1!==I&&(!s.useGPUTranslations||e.skipTranslation)&&(t*=I,r*=I,a*=I),s.usePreallocated&&o?(o.push(t,r,+!!n,a),tu+=4):(i.push(t),i.push(r),i.push(n?I:0),i.push(a))},tp=()=>{e.segments.length&&(e.segments[e.segments.length-1].to=i.length||tu)},tb=()=>{e.segments.length&&e.segments[e.segments.length-1].from===(i.length||tu)||(tp(),e.segments.push({from:i.length||tu}))},tx=(t,e,i,s,r)=>{tm(r),tf(t+i,e),tm(r),tf(t,e),tm(r),tf(t,e+s),tm(r),tf(t,e+s),tm(r),tf(t+i,e+s),tm(r),tf(t+i,e)};if(tb(),L&&L.length>0){e.skipTranslation=!0,e.drawMode="TRIANGLES",L[0].node&&L[0].node.levelDynamic&&L.sort((t,e)=>{if(t.node){if(t.node.levelDynamic>e.node.levelDynamic)return 1;if(t.node.levelDynamic<e.node.levelDynamic)return -1}return 0}),L.forEach(e=>{let i,s,r=e.plotY;if(void 0!==r&&!isNaN(r)&&null!==e.y&&e.shapeArgs){let{x:r=0,y:o=0,width:n=0,height:l=0}=e.shapeArgs;i=(s=a.styledMode?e.series.colorAttribs(e):s=e.series.pointAttribs(e))["stroke-width"]||0,"string"==typeof s.fill&&(s.fill=E(tg,s.fill)),tr=A(s.fill).rgba,tr[0]/=255,tr[1]/=255,tr[2]/=255,t.is("treemap")&&(i=i||1,"string"==typeof s.stroke&&(s.stroke=E(tg,s.stroke)),H=A(s.stroke).rgba,H[0]/=255,H[1]/=255,H[2]/=255,tx(r,o,n,l,H),i/=2),t.is("heatmap")&&a.inverted&&(r=d.len-r,o=u.len-o,n=-n,l=-l),tx(r+i,o+i,n-2*i,l-2*i,tr)}}),tp();return}for(;J<_.length-1;){if(void 0===(Z=_[++J]))continue;if(O)break;let i=g&&g[J];if(!S){let e;(0,r.isObject)(i,!0)&&i.color&&(e=A(i.color).rgba);let s=t.options.keys?.indexOf("color");Array.isArray(i)&&s&&"string"==typeof i[s]?e=A(i[s]).rgba:k&&(tc%=B.length,e=A(E(tg,B[tc])).rgba),e&&((tr=e)[0]=e[0]/255,tr[1]=e[1]/255,tr[2]=e[2]/255,tr[3]=e[3]),tc++}if(S?(K=Z[0],q=Z[1],_[J+1]&&(tt=_[J+1][0]),_[J-1]&&($=_[J-1][0]),Z.length>=3&&(Q=Z[2],Z[2]>e.zMax&&(e.zMax=Z[2]),Z[2]<e.zMin&&(e.zMin=Z[2]))):(K=Z,q=C?.[J],_[J+1]&&(tt=_[J+1]),_[J-1]&&($=_[J-1]),M&&M.length&&(Q=M[J],M[J]>e.zMax&&(e.zMax=M[J]),M[J]<e.zMin&&(e.zMin=M[J]))),!w&&(null===K||null===q)){tb();continue}if(tt&&tt>=p&&tt<=b&&(ti=!0),$&&$>=p&&$<=b&&(ts=!0),n?(S&&(q=Z.slice(1,3)),te=t.getColumn("low",!0)?.[J],q=t.getColumn("high",!0)?.[J]||0):c&&(K=Z.x,te=(q=Z.stackY)-Z.y),null!=y&&null!=v&&(tn=q>=y&&q<=v),!h&&!tn||(K>b&&D.x<b&&(D.x=K,D.y=q),K<p&&z.x>p&&(z.x=K,z.y=q),null===q&&w))continue;if(null===q||!tn&&_.length>1&&!ti&&!ts){tb();continue}if((h&&(tt>=p||K>=p)&&($<=b||K<=b)||!h&&K>=p&&K<=b)&&(to=!0),to||ti||ts){if(td&&K-$>td&&tb(),N?.length){let t,e,i="x"===U?K:q;N.some((t,s)=>void 0!==t.value&&i<t.value&&(e=s,!0)),void 0!==e&&tl[e]&&(t=tl[e]),tr=t||th||tr}if(s.useGPUTranslations||(e.skipTranslation=!0,K=d.toPixels(K,!0),q=u.toPixels(q,!0),!(K>V)||"POINTS"!==e.drawMode)){if(e.hasMarkers&&to&&!1!==X&&(t.closestPointRangePx=Math.min(t.closestPointRangePx,Math.abs(K-X))),!s.useGPUTranslations&&!s.usePreallocated&&X&&1>Math.abs(K-X)&&F&&1>Math.abs(q-F)){s.debug.showSkipSummary&&++Y;continue}G&&(j=te||0,(!1===te||void 0===te)&&(j=q<0?q:0),(n||c)&&!u.logarithmic||(j=Math.max(R??y,y)),s.useGPUTranslations||(j=u.toPixels(j,!0)),tf(K,j,!1,0,tr)),l.step&&!ta&&tf(K,F,!1,2,tr),tf(K,q,!1,"bubble"===t.type?Q||1:2,tr),X=K,F=q,W=!0,ta=!1}}}s.debug.showSkipSummary&&console.log("skipped points:",Y);let tA=(t,i)=>{if(s.useGPUTranslations||(e.skipTranslation=!0,t.x=d.toPixels(t.x,!0),t.y=u.toPixels(t.y,!0)),i){this.data=[t.x,t.y,0,2].concat(this.data);return}tf(t.x,t.y,0,2)};!W&&!1!==w&&"line_strip"===t.drawMode&&(z.x<Number.MAX_VALUE&&tA(z,!0),D.x>-Number.MAX_VALUE&&tA(D)),tp()}pushSeries(t){let e=this.markerData,i=this.series,s=this.settings;i.length>0&&i[i.length-1].hasMarkers&&(i[i.length-1].markerTo=e.length),s.debug.timeSeriesProcessing&&console.time("building "+t.type+" series");let r={segments:[],markerFrom:e.length,colorData:[],series:t,zMin:Number.MAX_VALUE,zMax:-Number.MAX_VALUE,hasMarkers:!!t.options.marker&&!1!==t.options.marker.enabled,showMarkers:!0,drawMode:f[t.type]||"LINE_STRIP"};t.index>=i.length?i.push(r):i[t.index]=r,this.pushSeriesData(t,r),s.debug.timeSeriesProcessing&&console.timeEnd("building "+t.type+" series")}flush(){let t=this.vbuffer;this.data=[],this.markerData=[],this.series=[],t&&t.destroy()}setXAxis(t){let e=this.shader;if(!e)return;let i=this.getPixelRatio();e.setUniform("xAxisTrans",t.transA*i),e.setUniform("xAxisMin",t.min),e.setUniform("xAxisMax",t.max),e.setUniform("xAxisMinPad",t.minPixelPadding*i),e.setUniform("xAxisPointRange",t.pointRange),e.setUniform("xAxisLen",t.len*i),e.setUniform("xAxisPos",t.pos*i),e.setUniform("xAxisCVSCoord",!t.horiz),e.setUniform("xAxisIsLog",!!t.logarithmic),e.setUniform("xAxisReversed",!!t.reversed)}setYAxis(t){let e=this.shader;if(!e)return;let i=this.getPixelRatio();e.setUniform("yAxisTrans",t.transA*i),e.setUniform("yAxisMin",t.min),e.setUniform("yAxisMax",t.max),e.setUniform("yAxisMinPad",t.minPixelPadding*i),e.setUniform("yAxisPointRange",t.pointRange),e.setUniform("yAxisLen",t.len*i),e.setUniform("yAxisPos",t.pos*i),e.setUniform("yAxisCVSCoord",!t.horiz),e.setUniform("yAxisIsLog",!!t.logarithmic),e.setUniform("yAxisReversed",!!t.reversed)}setThreshold(t,e){let i=this.shader;i&&(i.setUniform("hasThreshold",t),i.setUniform("translatedThreshold",e))}renderChart(t){let e=this.gl,i=this.settings,s=this.shader,o=this.vbuffer;M={};let a=this.getPixelRatio();if(!t)return!1;this.width=t.chartWidth*a,this.height=t.chartHeight*a;let l=this.height,h=this.width,d=t.options.colors||[];if(!e||!s||!h||!l)return!1;i.debug.timeRendering&&console.time("gl rendering"),e.canvas.width=h,e.canvas.height=l,s.bind(),e.viewport(0,0,h,l),s.setPMatrix(S.orthoMatrix(h,l)),i.lineWidth>1&&!n().isMS&&e.lineWidth(i.lineWidth),o&&(o.build(this.data,"aVertexPosition",4),o.bind()),s.setInverted(t.inverted),this.series.forEach((n,h)=>{let u=n.series.options,c=u.marker,g=void 0!==u.lineWidth?u.lineWidth:1,f=u.threshold,p=(0,r.isNumber)(f),y=n.series.yAxis.getThreshold(f),v=(u.marker?u.marker.enabled:null)??(!!n.series.xAxis.isRadial||null)??n.series.closestPointRangePx>2*((u.marker?u.marker.radius:10)||10),P=this.textureHandles[c&&c.symbol||n.series.symbol]||this.textureHandles.circle,C,M,S,k=[];if(0!==n.segments.length&&n.segments[0].from!==n.segments[0].to&&(P.isReady&&(e.bindTexture(e.TEXTURE_2D,P.handle),s.setTexture(P.handle)),t.styledMode?n.series.markerGroup===n.series.chart.boost?.markerGroup?(delete n.series.markerGroup,n.series.markerGroup=n.series.plotGroup("markerGroup","markers","visible",1,t.seriesGroup).addClass("highcharts-tracker"),S=n.series.markerGroup.getStyle("fill"),n.series.markerGroup.destroy(),n.series.markerGroup=n.series.chart.boost?.markerGroup):S=n.series.markerGroup?.getStyle("fill"):(S="POINTS"===n.drawMode&&n.series.pointAttribs&&n.series.pointAttribs().fill||n.series.color,u.colorByPoint&&"string"==typeof d[h]&&(S=d[h])),n.series.fillOpacity&&u.fillOpacity&&S&&(S=new(m())(S).setOpacity(u.fillOpacity??1).get()),"string"==typeof S&&(S=E(t.boost?.cssVars||{},S)),k=A(S).rgba,i.useAlpha||(k[3]=1),"add"===u.boostBlending?(e.blendFunc(e.SRC_ALPHA,e.ONE),e.blendEquation(e.FUNC_ADD)):"mult"===u.boostBlending||"multiply"===u.boostBlending?e.blendFunc(e.DST_COLOR,e.ZERO):"darken"===u.boostBlending?(e.blendFunc(e.ONE,e.ONE),e.blendEquation(e.FUNC_MIN)):e.blendFuncSeparate(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA,e.ONE,e.ONE_MINUS_SRC_ALPHA),s.reset(),n.colorData.length>0?(s.setUniform("hasColor",1),(M=new b(e,s)).build(Array(n.segments[0].from).concat(n.colorData),"aColor",4),M.bind()):(s.setUniform("hasColor",0),e.disableVertexAttribArray(e.getAttribLocation(s.getProgram(),"aColor"))),s.setColor(k),this.setXAxis(n.series.xAxis),this.setYAxis(n.series.yAxis),this.setThreshold(p,y),"POINTS"===n.drawMode&&s.setPointSize(((u.marker&&u.marker.radius)??.5)*2*a),s.setSkipTranslation(n.skipTranslation),"bubble"===n.series.type&&s.setBubbleUniforms(n.series,n.zMin,n.zMax,a),s.setDrawAsCircle(T[n.series.type]||!1),o)){if(g>0||"LINE_STRIP"!==n.drawMode){let{x:i,y:s,width:r,height:h}=x(t,n.series);for(e.enable(e.SCISSOR_TEST),e.scissor(i*a,l-(s+h)*a,r*a,h*a),C=0;C<n.segments.length;C++)o.render(n.segments[C].from,n.segments[C].to,n.drawMode);e.disable(e.SCISSOR_TEST)}if(n.hasMarkers&&v)for(s.setPointSize(((u.marker&&u.marker.radius)??5)*2*a),s.setDrawAsCircle(!0),C=0;C<n.segments.length;C++)o.render(n.segments[C].from,n.segments[C].to,"POINTS")}}),i.debug.timeRendering&&console.timeEnd("gl rendering"),this.postRenderCallback&&this.postRenderCallback(this),this.flush()}render(t){if(this.clear(),t.renderer.forExport)return this.renderChart(t);this.isInited?this.renderChart(t):setTimeout(()=>{this.render(t)},1)}setSize(t,e){let i=this.shader;i&&(this.width!==t||this.height!==e)&&(this.width=t,this.height=e,i.bind(),i.setPMatrix(S.orthoMatrix(t,e)))}init(t,e){let i=this.settings;if(this.isInited=!1,!t)return!1;i.debug.timeSetup&&console.time("gl setup");for(let e=0;e<C.length&&(this.gl=t.getContext(C[e],{}),!this.gl);++e);let s=this.gl;if(!s)return!1;e||this.flush(),s.enable(s.BLEND),s.blendFunc(s.SRC_ALPHA,s.ONE_MINUS_SRC_ALPHA),s.disable(s.DEPTH_TEST),s.depthFunc(s.LESS);let r=this.shader=new p(s);if(!r)return!1;this.vbuffer=new b(s,r);let o=(t,e)=>{let i={isReady:!1,texture:y.createElement("canvas"),handle:s.createTexture()},r=i.texture.getContext("2d");this.textureHandles[t]=i,i.texture.width=512,i.texture.height=512,r.mozImageSmoothingEnabled=!1,r.webkitImageSmoothingEnabled=!1,r.msImageSmoothingEnabled=!1,r.imageSmoothingEnabled=!1,r.strokeStyle="rgba(255, 255, 255, 0)",r.fillStyle="#FFF",e(r);try{s.activeTexture(s.TEXTURE0),s.bindTexture(s.TEXTURE_2D,i.handle),s.texImage2D(s.TEXTURE_2D,0,s.RGBA,s.RGBA,s.UNSIGNED_BYTE,i.texture),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MAG_FILTER,s.LINEAR),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MIN_FILTER,s.LINEAR),s.bindTexture(s.TEXTURE_2D,null),i.isReady=!0}catch{}};return o("circle",t=>{t.beginPath(),t.arc(256,256,256,0,2*Math.PI),t.stroke(),t.fill()}),o("square",t=>{t.fillRect(0,0,512,512)}),o("diamond",t=>{t.beginPath(),t.moveTo(256,0),t.lineTo(512,256),t.lineTo(256,512),t.lineTo(0,256),t.lineTo(256,0),t.fill()}),o("triangle",t=>{t.beginPath(),t.moveTo(0,512),t.lineTo(256,0),t.lineTo(512,512),t.lineTo(0,512),t.fill()}),o("triangle-down",t=>{t.beginPath(),t.moveTo(0,0),t.lineTo(256,512),t.lineTo(512,0),t.lineTo(0,0),t.fill()}),this.isInited=!0,i.debug.timeSetup&&console.timeEnd("gl setup"),!0}destroy(){let t=this.gl,e=this.shader,i=this.vbuffer;this.flush(),i&&i.destroy(),e&&e.destroy(),t&&((0,r.objectEach)(this.textureHandles,e=>{e.handle&&t.deleteTexture(e.handle)}),t.canvas.width=1,t.canvas.height=1)}}let{setLength:k,splice:w}={convertToNumber:function(t,e){switch(typeof t){case"boolean":return+!!t;case"number":return isNaN(t)&&!e?null:t;default:return isNaN(t=parseFloat(`${t??""}`))&&!e?null:t}},setLength:function(t,e,i){return Array.isArray(t)?(t.length=e,t):t[i?"subarray":"slice"](0,e)},splice:function(t,e,i,s,r=[]){if(Array.isArray(t))return Array.isArray(r)||(r=Array.from(r)),{removed:t.splice(e,i,...r),array:t};let o=Object.getPrototypeOf(t).constructor,n=t[s?"subarray":"slice"](e,e+i),a=new o(t.length-i+r.length);return a.set(t.subarray(0,e),0),a.set(r,e),a.set(t.subarray(e+i),e+r.length),{removed:n,array:a}}},R=class{constructor(t={}){this.isDataTable=!0,this.autoId=!t.id,this.columns={},this.id=t.id||(0,r.uniqueKey)(),this.rowCount=0,this.versionTag=(0,r.uniqueKey)();let e=0;(0,r.objectEach)(t.columns||{},(t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,(0,r.objectEach)(this.columns,(e,i)=>{e.length!==t&&(this.columns[i]=k(e,t))})}deleteRows(t,e=1){if(e>0&&t<this.rowCount){let i=0;(0,r.objectEach)(this.columns,(s,r)=>{this.columns[r]=w(s,t,e).array,i=s.length}),this.rowCount=i}(0,r.fireEvent)(this,"afterDeleteRows",{rowIndex:t,rowCount:e}),this.versionTag=(0,r.uniqueKey)()}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRowObject(t,e){let i={},s=this.columns;for(let r of(e??(e=Object.keys(this.columns)),e))i[r]=s[r]?.[t];return i}setColumn(t,e=[],i=0,s){this.setColumns({[t]:e},i,s)}setColumns(t,e,i){let s=this.rowCount;(0,r.objectEach)(t,(t,e)=>{this.columns[e]=t.slice(),s=t.length}),this.applyRowCount(s),i?.silent||((0,r.fireEvent)(this,"afterSetColumns"),this.versionTag=(0,r.uniqueKey)())}setRow(t,e=this.rowCount,i,s){var o;let{columns:n}=this,a=i?this.rowCount+1:e+1,l=Object.keys(t);if(s?.addColumns!==!1)for(let t=0,e=l.length;t<e;t++)n[o=l[t]]||(n[o]=Array(this.rowCount));(0,r.objectEach)(n,(s,r)=>{s&&(i?s=w(s,e,0,!0,[t[r]]).array:s[e]=r in t?t[r]:s[e],n[r]=s)}),this.applyRowCount(Math.max(a,this.rowCount)),s?.silent||((0,r.fireEvent)(this,"afterSetRows",{rowIndex:e}),this.versionTag=(0,r.uniqueKey)())}getModified(){return this.modified||this}},{getBoostClipRect:U,isChartSeriesBoosting:N}=c,{getOptions:L}=n(),{composed:_,doc:z,noop:D,win:O}=n();function G(t,e){let i=e.boost;t&&i&&i.target&&i.canvas&&!N(e.chart)&&t.allocateBufferForSingleSeries(e)}function I(t){return(t&&t.options&&t.options.boost&&t.options.boost.enabled)??!0}function B(t,i){let s=t.constructor,o=t.seriesGroup||i.group,n=t.chartWidth,a=t.chartHeight,l=t,h="u">typeof SVGForeignObjectElement,d=!1;N(t)?l=t:(l=i,d=!!(i.options.events?.click||i.options.point?.events?.click));let u=l.boost=l.boost||{};if(h=!1,e||(e=z.createElement("canvas")),!u.target&&(u.canvas=e,t.renderer.forExport||!h?(l.renderTarget=u.target=t.renderer.image("",0,0,n,a).addClass("highcharts-boost-canvas").add(o),u.clear=function(){u.target.attr({href:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="})},u.copy=function(){u.resize(),u.target.attr({href:u.canvas.toDataURL("image/png")})}):(u.targetFo=t.renderer.createElement("foreignObject").add(o),l.renderTarget=u.target=z.createElement("canvas"),u.targetCtx=u.target.getContext("2d"),u.targetFo.element.appendChild(u.target),u.clear=function(){u.target.width=u.canvas.width,u.target.height=u.canvas.height},u.copy=function(){u.target.width=u.canvas.width,u.target.height=u.canvas.height,u.targetCtx.drawImage(u.canvas,0,0)}),u.resize=function(){n=t.chartWidth,a=t.chartHeight,(u.targetFo||u.target).attr({x:0,y:0,width:n,height:a}).css({pointerEvents:d?void 0:"none",mixedBlendMode:"normal",opacity:1}).addClass(d?"highcharts-tracker":""),l instanceof s&&l.boost?.markerGroup?.translate(t.plotLeft,t.plotTop)},u.clipRect=t.renderer.clipRect(),(u.targetFo||u.target).attr({zIndex:i.options.zIndex}),l instanceof s&&(l.boost.markerGroup=l.renderer.g().add(o).translate(i.xAxis.pos,i.yAxis.pos))),u.canvas.width=n,u.canvas.height=a,u.clipRect){let e=U(t,l);u.clipRect.attr(e),t.navigator||e.width!==t.clipBox.width||e.height!==t.clipBox.height?(u.targetFo||u.target).clip(u.clipRect):o?.clip(t.renderer.clipRect(e.x-4,e.y,e.width+4,e.height+4))}return u.resize(),u.clear(),!u.wgl&&(u.wgl=new S(t=>{t.settings.debug.timeBufferCopy&&console.time("buffer copy"),u.copy(),t.settings.debug.timeBufferCopy&&console.timeEnd("buffer copy")}),u.wgl.init(u.canvas)||(0,r.error)("[highcharts boost] - unable to init WebGL renderer"),u.wgl.setOptions(t.options.boost||{}),l instanceof s&&u.wgl.allocateBuffer(t)),u.wgl.setSize(n,a),u.wgl}function V(t){let e=t.points;if(e){let t,i;for(i=0;i<e.length;i+=1)(t=e[i])&&t.destroyElements&&t.destroyElements()}for(let e of(["graph","area","tracker"].forEach(e=>{let i=t[e];i&&(t[e]=i.destroy())}),t.zones))(0,r.destroyObjectProperties)(e,void 0,!0)}function X(t,e,i,s,r,o){let n=(r=r||0)+(s=s||3e3),a=!0;for(;a&&r<n&&r<t.length;)a=e(t[r],r),++r;a&&(r<t.length?o?X(t,e,i,s,r,o):O.requestAnimationFrame?O.requestAnimationFrame(function(){X(t,e,i,s,r)}):setTimeout(X,0,t,e,i,s,r):i&&i())}function F(t,e){let i=t.options.boostThreshold??Number.MAX_VALUE;if(0===i)return!1;let s=t.dataTable.getModified().rowCount,o=t.xAxis&&t.xAxis.options,n=t.yAxis&&t.yAxis.options,a=t.colorAxis&&t.colorAxis.options;return s>=i&&(0,r.isNumber)(n?.min)&&(0,r.isNumber)(n?.max)&&(!e||(0,r.isNumber)(o?.min)&&(0,r.isNumber)(o?.max))&&(!a||(0,r.isNumber)(a.min)&&(0,r.isNumber)(a.max))}let j=(t,e)=>{let{options:i,forceCrop:s,chart:r}=t,o=i.boostThreshold??Number.MAX_VALUE;return!s&&0!==o&&(N(r)||(e?.length??0)>=o)};function H(){let t=this,e=t.chart;e.boost&&e.boost.markerGroup===t.markerGroup&&(t.markerGroup=void 0),e.hoverPoints&&(e.hoverPoints=e.hoverPoints.filter(function(e){return e.series===t})),e.hoverPoint&&e.hoverPoint.series===t&&(e.hoverPoint=void 0)}function Y(){let t=this.boost,e=this.chart.boost,i=e?.markerGroup;t&&t.canvas&&t.target&&(t.wgl&&t.wgl.clear(),t.clear&&t.clear()),i&&this.markerGroup===i&&this.chart.series.some(t=>t.visible&&t.markerGroup===i)&&i.show()}function W(t){let e=t.boost;e&&e.canvas&&e.target&&e.wgl&&!N(t.chart)&&e.wgl.render(t.chart)}function K(t,e){let i=t.options,s=t.xAxis,o=t.pointClass;if(e instanceof o)return e;let n=i.data,a=t.is("scatter"),l=(a&&t.getColumn("x",!0).length?t.getColumn("x",!0):void 0)||(t.getColumn("x").length?t.getColumn("x"):void 0)||i.xData||t.getColumn("x",!0)||!1,h=t.getColumn("y",!0)||i.yData||!1,d=e.i,u=n?.[d]?.color,c=new o(t,a&&l&&h?[l[d],h[d]]:((0,r.isArray)(n)?n:[])[d],l?l[d]:void 0);if(a&&i?.keys?.length){let t=i.keys;for(let e=t.length-1;e>-1;e--)c[t[e]]=n[d][e]}return c.category=s.categories?s.categories[c.x]:c.x??c.x,c.key=c.name??c.category,c.dist=e.dist,c.distX=e.distX,c.plotX=e.plotX,c.plotY=e.plotY,c.percentage=e.percentage,c.isInside=t.isPointInside(c),u&&(c.color=u),c}function q(t){let{options:e,xAxis:i,yAxis:s}=this;if(!this.isDirty&&!i.isDirty&&!s.isDirty&&!t)return!1;this.yAxis.setTickInterval();let o=e.boostThreshold||0,n=e.cropThreshold,a=this.getColumn("x"),l=i.getExtremes(),h=l.max??Number.MAX_VALUE,d=l.min??-Number.MAX_VALUE,u=this.getColumn("y"),c=s.getExtremes(),g=c.max??Number.MAX_VALUE,m=c.min??-Number.MAX_VALUE,f=s.userMin??((0,r.isNumber)(s.options.min)?s.options.min:-Number.MAX_VALUE),p=s.userMax??((0,r.isNumber)(s.options.max)?s.options.max:Number.MAX_VALUE);if(!this.boosted&&i.old&&s.old&&d>=(i.old.min??-Number.MAX_VALUE)&&h<=(i.old.max??Number.MAX_VALUE)&&m>=(s.old.min??-Number.MAX_VALUE)&&g<=(s.old.max??Number.MAX_VALUE))return this.dataTable.getModified().setColumns({x:a,y:u}),!0;let b=this.dataTable.rowCount;if(!o||b<o||n&&!this.forceCrop&&!this.getExtremesFromAll&&!e.getExtremesFromAll&&b<n)return this.dataTable.getModified().setColumns({x:a,y:u}),!0;let x=[],A=[],y=[],v=!((0,r.isNumber)(l.max)||(0,r.isNumber)(l.min)),P=!((0,r.isNumber)(c.max)||(0,r.isNumber)(c.min)),T=!1,C,M=a[0],E=a[0],S,k=u?.[0],w=u?.[0];for(let t=0,e=a.length;t<e;++t)C=a[t],S=u?.[t],C>=d&&C<=h&&S>=f&&S<=p?(x.push(C),A.push(S),y.push(t),v&&(M=Math.max(M,C),E=Math.min(E,C)),P&&(k=Math.max(k,S),w=Math.min(w,S))):T=!0;return v&&(i.dataMax=Math.max(M,i.dataMax||0),i.dataMin=Math.min(E,i.dataMin||0)),P&&(s.dataMax=Math.max(k,s.dataMax||0),s.dataMin=Math.min(w,s.dataMin||0)),this.cropped=T,this.cropStart=0,T&&!this.dataTable.modified&&(this.dataTable.modified=new R,this.hasProcessedDataTable=!0),this.dataTable.getModified().setColumns({x:x,y:A}),!0}function Z(){let e=this.options||{},i=this.chart,s=i.boost,o=this.boost,n=this.xAxis,a=this.yAxis,l=e.xData||this.getColumn("x",!0),h=e.yData||this.getColumn("y",!0),d=this.getColumn("low",!0),u=this.getColumn("high",!0),c=e.data,g=n.getExtremes(),m=g.min-(n.minPointOffset||0),f=g.max+(n.minPointOffset||0),p=a.getExtremes(),b=p.min-(a.minPointOffset||0),x=p.max+(a.minPointOffset||0),A={},y=!!this.sampling,v=e.enableMouseTracking,P=e.threshold,T=this.pointArrayMap&&"low,high"===this.pointArrayMap.join(","),C=!!e.stacking,M=this.cropStart||0,E=this.requireSorting,S=!l,k="x"===e.findNearestPointBy,w=(this.getColumn("x").length?this.getColumn("x"):void 0)||this.options.xData||this.getColumn("x",!0),R=e.lineWidth??1,U=e.nullInteraction&&b,L=i.tooltip,_=!1,z,O=a.getThreshold(P),I,F,j,H;if(!this.boosted||(this.points?.forEach(t=>{t?.destroyElements?.()}),this.points=[],L&&!L.isHidden?(i.hoverPoint?.series===this||i.hoverPoints?.some(t=>t.series===this))&&(i.hoverPoint=i.hoverPoints=void 0,L.hide(0)):i.hoverPoints&&(i.hoverPoints=i.hoverPoints.filter(t=>t.series!==this)),n.isPanning||a.isPanning)||(_=B(i,this),i.boosted=!0,!this.visible))return;(this.points||this.graph)&&V(this),N(i)?(this.markerGroup&&this.markerGroup!==s?.markerGroup&&this.markerGroup.destroy(),this.markerGroup=s?.markerGroup,o&&o.target&&(this.renderTarget=o.target=o.target.destroy())):(this.markerGroup===s?.markerGroup&&(this.markerGroup=void 0),this.markerGroup=this.plotGroup("markerGroup","markers","visible",1,i.seriesGroup).addClass("highcharts-tracker"));let Y=this.points=[],K=(e,s,r,o)=>{let l=!!w&&w[M+r],h=t=>{i.inverted&&(t=n.len-t,s=a.len-s),Y.push({destroy:D,x:l,clientX:t,plotX:t,plotY:s,i:M+r,percentage:o})};e=Math.ceil(e),t=k?e:e+","+s,v&&(A[t]?l===w[w.length-1]&&(Y.length--,h(e)):(A[t]=!0,h(e)))};this.buildKDTree=D,(0,r.fireEvent)(this,"renderCanvas"),s&&R>1&&this.is("line")&&(s.lineWidthFilter?.remove(),s.lineWidthFilter=i.renderer.definition({tagName:"filter",children:[{tagName:"feMorphology",attributes:{operator:"dilate",radius:.25*R}}],attributes:{id:"linewidth"}}),(o?.target||s.target)?.attr({filter:"url(#linewidth)"})),_&&(G(_,this),_.pushSeries(this),W(this));let q=_.settings,Z=(0,r.isNumber)(q.chunkSize)&&q.chunkSize>0?q.chunkSize:3e3,Q=()=>{(0,r.fireEvent)(this,"renderedCanvas"),delete this.buildKDTree,this.options&&this.buildKDTree(),q.debug.timeKDTree&&console.timeEnd("kd tree building")};i.renderer.forExport||(q.debug.timeKDTree&&console.time("kd tree building"),X(C?this.data.slice(M):l||c,function(t,e){let s=void 0===i.index,o,l,c,g,p,A=!1,v=!0;return!(0,r.defined)(t)||(!s&&(S?(o=t[0],l=t[1]):(o=t,l=h[e]??U??null),T?(S&&(l=t.slice(1,3)),A=d[e],l=u[e]):C&&(o=t.x,A=(l=t.stackY)-t.y,p=t.percentage),E||(v=(l||0)>=b&&l<=x),null!==l&&o>=m&&o<=f&&v&&(c=n.toPixels(o,!0),y?((void 0===j||c===z)&&(T||(A=l),(void 0===H||l>F)&&(F=l,H=e),(void 0===j||A<I)&&(I=A,j=e)),k&&c===z||(void 0!==j&&(g=a.toPixels(F,!0),O=a.toPixels(I,!0),K(c,g,H,p),O!==g&&K(c,O,j,p)),j=H=void 0,z=c)):K(c,g=Math.ceil(a.toPixels(l,!0)),e,p))),!s)},Q,Z))}function Q(t){let e=!0;if(this.chart.options&&this.chart.options.boost&&(e=void 0===this.chart.options.boost.enabled||this.chart.options.boost.enabled),!e||!this.boosted)return t.call(this);this.chart.boosted=!0;let i=B(this.chart,this);i&&(G(i,this),i.pushSeries(this)),W(this)}function J(t){if(this.boosted){if(F(this,!0))return{};if(this.xAxis?.isPanning||this.yAxis?.isPanning)return this}return t.apply(this,[].slice.call(arguments,1))}function $(t){let e=this.options.data;if(I(this.chart)&&l[this.type]){let s=this.is("scatter")&&!this.is("bubble")&&!this.is("treemap")&&!this.is("heatmap");if(!j(this,e)||s||this.is("treemap")||this.options.stacking||!F(this,!0)){if(this.boosted&&(this.xAxis?.isPanning||this.yAxis?.isPanning))return;s&&"treegrid"!==this.yAxis.type?q.call(this,arguments[1]):t.apply(this,[].slice.call(arguments,1)),e=this.getColumn("x",!0)}if(this.boosted=j(this,e),this.boosted){let t;this.options.data?.length&&(t=this.getFirstValidPoint(this.options.data),(0,r.isNumber)(t)||(0,r.isArray)(t)||this.is("treemap")||(0,r.error)(12,!1,this.chart));var i=this;i.boost=i.boost||{getPoint:t=>K(i,t)};let e=i.boost.altered=[];if(["allowDG","directTouch","stickyTracking"].forEach(t=>{e.push({prop:t,val:i[t],own:Object.hasOwnProperty.call(i,t)})}),i.allowDG=!1,i.directTouch=!1,i.stickyTracking=!0,i.finishedAnimating=!0,i.labelBySeries&&(i.labelBySeries=i.labelBySeries.destroy()),i.is("scatter")&&!i.is("treemap")&&i.data.length){for(let t of i.data)t?.destroy?.();i.data.length=0,i.points.length=0}}else!function(t){let e=t.boost,i=t.chart,s=i.boost;if(s?.markerGroup)for(let t of(s.markerGroup.destroy(),s.markerGroup=void 0,i.series))t.markerGroup=void 0,t.markerGroup=t.plotGroup("markerGroup","markers","visible",1,i.seriesGroup).addClass("highcharts-tracker");e&&((e.altered||[]).forEach(e=>{e.own?t[e.prop]=e.val:delete t[e.prop]}),e.clear&&e.clear()),(i.seriesGroup||t.group)?.clip()}(this)}else t.apply(this,[].slice.call(arguments,1))}function tt(t){let e=t.apply(this,[].slice.call(arguments,1));return this.boost&&e?this.boost.getPoint(e):e}let te={compose:function(t,e,i,s){if((0,r.pushUnique)(_,"Boost.Series")){let o=L().plotOptions,n=t.prototype;if((0,r.addEvent)(t,"destroy",H),(0,r.addEvent)(t,"hide",Y),s&&(n.renderCanvas=Z),(0,r.wrap)(n,"getExtremes",J),(0,r.wrap)(n,"processData",$),(0,r.wrap)(n,"searchPoint",tt),["translate","generatePoints","drawTracker","drawPoints","render"].forEach(t=>(function(t,e,i){function s(t){let e=this.options.stacking&&("translate"===i||"generatePoints"===i);this.boosted&&!e&&I(this.chart)&&"heatmap"!==this.type&&"treemap"!==this.type&&l[this.type]&&0!==this.options.boostThreshold?"render"===i&&this.renderCanvas&&this.renderCanvas():t.call(this)}if((0,r.wrap)(t,i,s),"translate"===i)for(let t of["column","arearange","columnrange","heatmap","treemap"])e[t]&&(0,r.wrap)(e[t].prototype,i,s)})(n,e,t)),(0,r.wrap)(i.prototype,"firePointEvent",function(t,e,i){if("click"===e&&this.series.boosted){let t=i.point;if((t.dist||t.distX)>=(t.series.options.marker?.radius??10))return}return t.apply(this,[].slice.call(arguments,1))}),a.forEach(t=>{let i=o[t];i&&(i.boostThreshold=5e3,i.boostData=[],e[t].prototype.fillOpacity=!0)}),s){let{area:t,areaspline:i,bubble:s,column:o,heatmap:n,scatter:a,treemap:l}=e;if(t&&(0,r.extend)(t.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),i&&(0,r.extend)(i.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),s){let t=s.prototype;delete t.buildKDTree,(0,r.wrap)(t,"markerAttribs",function(t){return!this.boosted&&t.apply(this,[].slice.call(arguments,1))})}o&&(0,r.extend)(o.prototype,{fill:!0,sampling:!0}),a&&(a.prototype.fill=!0),[n,l].forEach(t=>{t&&(0,r.wrap)(t.prototype,"drawPoints",Q)})}}return t},destroyGraphics:V,eachAsync:X,getPoint:K},{getBoostClipRect:ti,isChartSeriesBoosting:ts}=c,{destroyGraphics:tr}=te,{parse:to}=m(),{doc:tn,noop:ta}=n();!function(t){let e,i="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=";function s(t,e,i,s,r){r&&e!==r.clientX&&(t.moveTo(r.clientX,r.yBottom),t.lineTo(r.clientX,r.plotY),t.lineTo(e,i),t.lineTo(e,s))}function o(t,e,i,s,r){t.moveTo(e,i),t.arc(e,i,this.radii&&this.radii[r],0,2*Math.PI,!1)}function n(t,e,i,s){t.rect(e-1,i,1,s-i)}function a(){this.boost&&this.boost.copy&&this.boost.copy()}function l(){let t=this.boost||{};t.target&&t.target.attr({href:i}),t.canvas&&t.canvas.getContext("2d").clearRect(0,0,t.canvas.width,t.canvas.height)}function h(){ts(this.chart)?this.boost&&this.boost.clear&&this.boost.clear():this.boost&&this.boost.copy?this.boost.copy():this.chart.boost&&this.chart.boost.copy&&this.chart.boost.copy()}function d(t,e,i){t.lineTo(e,i)}function u(){let t,e=this.chart,s=ts(e)?e:this,o=s===e?e.seriesGroup:e.seriesGroup||this.group,n=e.chartWidth,a=e.chartHeight,l=function(t,e,i,s,r,o,n){t.call(this,i,e,s,r,o,n)},h=s.boost=s.boost||{};return t=h.targetCtx,h.canvas||(h.canvas=tn.createElement("canvas"),h.target=e.renderer.image("",0,0,n,a).addClass("highcharts-boost-canvas").add(o),t=h.targetCtx=h.canvas.getContext("2d"),e.inverted&&["moveTo","lineTo","rect","arc"].forEach(e=>{(0,r.wrap)(t,e,l)}),h.copy=function(){h.target.attr({href:h.canvas.toDataURL("image/png")})},h.clear=function(){t.clearRect(0,0,h.canvas.width,h.canvas.height),s===h.target&&h.target.attr({href:i})},h.clipRect=e.renderer.clipRect(),h.target.clip(h.clipRect)),h.canvas.width!==n&&(h.canvas.width=n),h.canvas.height!==a&&(h.canvas.height=a),h.target.attr({x:0,y:0,width:n,height:a,style:"pointer-events: none",href:i}),h.clipRect&&h.clipRect.attr(ti(e,s)),t}function c(){let t=this,s=t.options,o=t.chart,n=t.xAxis,a=t.yAxis,l=o.options.boost||{},h={timeRendering:l.timeRendering||!1,timeSeriesProcessing:l.timeSeriesProcessing||!1,timeSetup:l.timeSetup||!1},d=t.getColumn("x",!0),u=t.getColumn("y",!0),c=s.data||[],g=n.getExtremes(),f=g.min,p=g.max,b=a.getExtremes(),x=b.min,A=b.max,y={},v=!!t.sampling,P=s.marker&&s.marker.radius,T=t.cvsStrokeBatch||1e3,C=s.enableMouseTracking,M=s.threshold,E=(0,r.isNumber)(M),S=a.getThreshold(M),k=t.fill,w=t.pointArrayMap&&"low,high"===t.pointArrayMap.join(","),R=!!s.stacking,U=t.cropStart||0,N=o.options.loading,L=t.requireSorting,_=s.connectNulls,z=!d,D=R?t.data:d||c,O=t.fillOpacity?m().parse(t.color).setOpacity(s.fillOpacity??.75).get():t.color,G="x"===s.findNearestPointBy,I=this.boost||{},B=t.cvsDrawPoint,V=s.lineWidth?t.cvsLineTo:void 0,X=P&&P<=1?t.cvsMarkerSquare:t.cvsMarkerCircle;I.target&&I.target.attr({href:i}),(t.points||t.graph)&&tr(t),t.plotGroup("group","series",t.visible?"visible":"hidden",s.zIndex,o.seriesGroup),t.markerGroup=t.group,(0,r.addEvent)(t,"destroy",function(){t.markerGroup=null});let F=this.points=[],j=this.getContext();if(t.buildKDTree=ta,I.clear&&I.clear(),!t.visible)return;c.length>99999&&(o.options.loading=(0,r.merge)(N,{labelStyle:{backgroundColor:to("var(--highcharts-background-color)").setOpacity(.75).get(),padding:"1em",borderRadius:"0.5em"},style:{backgroundColor:"none",opacity:1}}),(0,r.internalClearTimeout)(e),o.showLoading("Drawing..."),o.options.loading=N),h.timeRendering&&console.time("canvas rendering");let H=0,Y,W,K=S,q,Z,Q,J,$,tt,ti=function(){k?(j.fillStyle=O,j.fill()):(j.strokeStyle=t.color,j.lineWidth=s.lineWidth,j.stroke())},ts=function(e,i,s,r){0===H&&(j.beginPath(),V&&(j.lineJoin="round")),o.scroller&&"highcharts-navigator-series"===t.options.className?(i+=o.scroller.top,s&&(s+=o.scroller.top)):i+=o.plotTop,e+=o.plotLeft,q?j.moveTo(e,i):B?B(j,e,i,s,W):V?V(j,e,i):X&&X.call(t,j,e,i,P,r),(H+=1)===T&&(ti(),H=0),W={clientX:e,plotY:i,yBottom:s}},tn=(this.getColumn("x").length?this.getColumn("x"):void 0)||this.options.xData||!!this.getColumn("x",!0).length&&this.getColumn("x",!0),tl=function(t,e,i){tt=G?t:t+","+e,C&&!y[tt]&&(y[tt]=!0,o.inverted&&(t=n.len-t,e=a.len-e),F.push({x:!!tn&&tn[U+i],clientX:t,plotX:t,plotY:e,i:U+i}))};te.eachAsync(D,(e,i)=>{let s=void 0===o.index,r,l,h,d,c,g,m=!1,b=!1,y=NaN,P=NaN,T=!0;return!s&&(z?(r=e[0],l=e[1],D[i+1]&&(y=D[i+1][0]),D[i-1]&&(P=D[i-1][0])):(r=e,l=u[i],D[i+1]&&(y=D[i+1]),D[i-1]&&(P=D[i-1])),y&&y>=f&&y<=p&&(m=!0),P&&P>=f&&P<=p&&(b=!0),w?(z&&(l=e.slice(1,3)),g=l[0],l=l[1]):R&&(r=e.x,g=(l=e.stackY)-e.y),c=null===l,L||(T=l>=x&&l<=A),!c&&(r>=f&&r<=p&&T||m||b)&&(h=Math.round(n.toPixels(r,!0)),v?((void 0===J||h===Y)&&(w||(g=l),(void 0===$||l>Q)&&(Q=l,$=i),(void 0===J||g<Z)&&(Z=g,J=i)),h!==Y&&(void 0!==J&&(d=a.toPixels(Q,!0),K=a.toPixels(Z,!0),ts(h,E?Math.min(d,S):d,E?Math.max(K,S):K,i),tl(h,d,$),K!==d&&tl(h,K,J)),J=$=void 0,Y=h)):(ts(h,d=Math.round(a.toPixels(l,!0)),K,i),tl(h,d,i))),q=c&&!_,i%5e4==0&&(t.boost&&t.boost.copy?t.boost.copy():t.chart.boost&&t.chart.boost.copy&&t.chart.boost.copy())),!s},function(){let i=o.loadingDiv,s=o.loadingShown;ti(),t.canvasToSVG(),h.timeRendering&&console.timeEnd("canvas rendering"),(0,r.fireEvent)(t,"renderedCanvas"),s&&(i.style.transition="opacity 250ms",i.opacity=0,o.loadingShown=!1,e=setTimeout(function(){i.parentNode&&i.parentNode.removeChild(i),o.loadingDiv=o.loadingSpan=null},250)),delete t.buildKDTree,t.buildKDTree()},o.renderer.forExport?Number.MAX_VALUE:void 0)}function g(t,e,i,s){t.moveTo(e,i),t.arc(e,i,s,0,2*Math.PI,!1)}function f(t,e,i,s){t.rect(e-s,i-s,2*s,2*s)}function p(){let t=this.chart,e=this.getContext(),i=this.chart.inverted,s=this.xAxis,r=this.yAxis;e?(this.points.forEach(o=>{let n=o.plotY;if(void 0!==n&&!isNaN(n)&&null!==o.y&&e){let{x:n=0,y:a=0,width:l=0,height:h=0}=o.shapeArgs||{};e.fillStyle=(t.styledMode?o.series.colorAttribs(o):o.series.pointAttribs(o)).fill,i?e.fillRect(r.len-a+s.left,s.len-n+r.top,-h,-l):e.fillRect(n+s.left,a+r.top,l,h)}}),this.canvasToSVG()):this.chart.showLoading("Your browser doesn't support HTML5 canvas, <br>please use a modern browser")}t.compose=function(t,e,i){let m=e.prototype;if(!m.renderCanvas){let{area:e,bubble:b,column:x,heatmap:A,scatter:y}=i;if(t.prototype.callbacks.push(t=>{(0,r.addEvent)(t,"predraw",l),(0,r.addEvent)(t,"render",a)}),m.canvasToSVG=h,m.cvsLineTo=d,m.getContext=u,m.renderCanvas=c,e){let t=e.prototype;t.cvsDrawPoint=s,t.fill=!0,t.fillOpacity=!0,t.sampling=!0}if(b){let t=b.prototype;t.cvsMarkerCircle=o,t.cvsStrokeBatch=1}if(x){let t=x.prototype;t.cvsDrawPoint=n,t.fill=!0,t.sampling=!0}if(A){let t=A.prototype;(0,r.wrap)(t,"drawPoints",p)}if(y){let t=y.prototype;t.cvsMarkerCircle=g,t.cvsMarkerSquare=f,t.fill=!0}}}}(o||(o={}));let tl=o,th=n();th.initCanvasBoost=function(){tl.compose(th.Chart,th.Series,th.seriesTypes)};let td=n();export{td as default};