highcharts 11.3.0 → 11.4.0

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 (773) hide show
  1. package/README.md +1 -1
  2. package/bower.json +1 -1
  3. package/css/annotations/popup.css +27 -19
  4. package/css/stocktools/gui.css +19 -7
  5. package/es-modules/Accessibility/A11yI18n.js +4 -6
  6. package/es-modules/Accessibility/Accessibility.js +8 -6
  7. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +11 -6
  8. package/es-modules/Accessibility/Components/LegendComponent.js +4 -4
  9. package/es-modules/Accessibility/Components/MenuComponent.js +3 -6
  10. package/es-modules/Accessibility/Components/NavigatorComponent.js +6 -3
  11. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +4 -7
  12. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +18 -3
  13. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +5 -3
  14. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +4 -4
  15. package/es-modules/Accessibility/FocusBorder.js +5 -5
  16. package/es-modules/Accessibility/HighContrastMode.js +22 -13
  17. package/es-modules/Accessibility/HighContrastTheme.js +2 -6
  18. package/es-modules/Accessibility/KeyboardNavigation.js +17 -8
  19. package/es-modules/Accessibility/Options/A11yDefaults.js +11 -1
  20. package/es-modules/Accessibility/ProxyElement.js +4 -4
  21. package/es-modules/Accessibility/ProxyProvider.js +8 -2
  22. package/es-modules/Accessibility/Utils/DOMElementProvider.js +8 -0
  23. package/es-modules/Accessibility/Utils/EventProvider.js +9 -0
  24. package/es-modules/Core/Animation/Fx.js +3 -3
  25. package/es-modules/Core/Axis/Axis.js +43 -97
  26. package/es-modules/Core/Axis/Axis3DComposition.js +5 -5
  27. package/es-modules/Core/Axis/Axis3DDefaults.js +1 -1
  28. package/es-modules/Core/Axis/AxisDefaults.js +18 -7
  29. package/es-modules/Core/Axis/BrokenAxis.js +4 -6
  30. package/es-modules/Core/Axis/Color/ColorAxis.js +2 -1
  31. package/es-modules/Core/Axis/Color/ColorAxisComposition.js +3 -5
  32. package/es-modules/Core/Axis/DateTimeAxis.js +3 -5
  33. package/es-modules/Core/Axis/GridAxis.js +7 -7
  34. package/es-modules/Core/Axis/LogarithmicAxis.js +2 -4
  35. package/es-modules/Core/Axis/NavigatorAxisComposition.js +26 -22
  36. package/es-modules/Core/Axis/OrdinalAxis.js +97 -53
  37. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +3 -3
  38. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js +4 -5
  39. package/es-modules/Core/Axis/RadialAxis.js +5 -5
  40. package/es-modules/Core/Axis/ScrollbarAxis.js +2 -2
  41. package/es-modules/Core/Axis/Stacking/StackItem.js +8 -4
  42. package/es-modules/Core/Axis/Stacking/StackingAxis.js +3 -5
  43. package/es-modules/Core/Axis/Tick.js +16 -7
  44. package/es-modules/Core/Axis/Tick3DComposition.js +2 -2
  45. package/es-modules/Core/Axis/TreeGrid/TreeGridAxis.js +4 -8
  46. package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +3 -6
  47. package/es-modules/Core/Axis/WaterfallAxis.js +3 -3
  48. package/es-modules/Core/Axis/ZAxis.js +6 -11
  49. package/es-modules/Core/Chart/Chart.js +201 -176
  50. package/es-modules/Core/Chart/Chart3D.js +1 -1
  51. package/es-modules/Core/Chart/ChartDefaults.js +7 -0
  52. package/es-modules/Core/Chart/GanttChart.js +2 -2
  53. package/es-modules/Core/Chart/MapChart.js +12 -2
  54. package/es-modules/Core/Chart/StockChart.js +12 -11
  55. package/es-modules/Core/Color/Color.js +3 -3
  56. package/es-modules/Core/Color/Palettes.js +2 -2
  57. package/es-modules/Core/Defaults.js +18 -15
  58. package/es-modules/Core/Geometry/CircleUtilities.js +3 -3
  59. package/es-modules/Core/Globals.js +2 -2
  60. package/es-modules/Core/HttpUtilities.js +4 -4
  61. package/es-modules/Core/Legend/Legend.js +6 -6
  62. package/es-modules/Core/MSPointer.js +7 -7
  63. package/es-modules/Core/Pointer.js +230 -245
  64. package/es-modules/Core/Renderer/HTML/AST.js +1 -1
  65. package/es-modules/Core/Renderer/HTML/HTMLElement.js +213 -26
  66. package/es-modules/Core/Renderer/RendererUtilities.js +1 -1
  67. package/es-modules/Core/Renderer/SVG/SVGElement.js +85 -52
  68. package/es-modules/Core/Renderer/SVG/SVGLabel.js +14 -11
  69. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +17 -14
  70. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +8 -7
  71. package/es-modules/Core/Renderer/SVG/Symbols.js +1 -1
  72. package/es-modules/Core/Renderer/SVG/TextBuilder.js +2 -2
  73. package/es-modules/Core/Responsive.js +5 -6
  74. package/es-modules/Core/Series/DataLabel.js +70 -90
  75. package/es-modules/Core/Series/DataSeriesComposition.js +1 -1
  76. package/es-modules/Core/Series/DataSeriesConverter.js +2 -2
  77. package/es-modules/Core/Series/Point.js +48 -40
  78. package/es-modules/Core/Series/Series.js +61 -51
  79. package/es-modules/Core/Series/Series3D.js +2 -2
  80. package/es-modules/Core/Series/SeriesRegistry.js +10 -2
  81. package/es-modules/Core/Templating.js +1 -1
  82. package/es-modules/Core/Time.js +12 -7
  83. package/es-modules/Core/Tooltip.js +19 -17
  84. package/es-modules/Core/Utilities.js +54 -26
  85. package/es-modules/Data/Connectors/CSVConnector.js +2 -2
  86. package/es-modules/Data/Connectors/DataConnector.js +4 -2
  87. package/es-modules/Data/Connectors/GoogleSheetsConnector.js +2 -2
  88. package/es-modules/Data/Connectors/HTMLTableConnector.js +2 -2
  89. package/es-modules/Data/Connectors/JSONConnector.js +3 -5
  90. package/es-modules/Data/Converters/CSVConverter.js +1 -3
  91. package/es-modules/Data/Converters/DataConverter.js +8 -2
  92. package/es-modules/Data/Converters/HTMLTableConverter.js +1 -3
  93. package/es-modules/Data/Converters/JSONConverter.js +1 -0
  94. package/es-modules/Data/DataTable.js +1 -2
  95. package/es-modules/Data/Formula/FormulaProcessor.js +4 -2
  96. package/es-modules/Data/Modifiers/DataModifier.js +15 -3
  97. package/es-modules/Extensions/Annotations/Annotation.js +6 -7
  98. package/es-modules/Extensions/Annotations/AnnotationChart.js +4 -5
  99. package/es-modules/Extensions/Annotations/AnnotationDefaults.js +4 -4
  100. package/es-modules/Extensions/Annotations/ControlPoint.js +2 -2
  101. package/es-modules/Extensions/Annotations/ControlTarget.js +1 -1
  102. package/es-modules/Extensions/Annotations/Controllables/Controllable.js +7 -3
  103. package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +3 -3
  104. package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +8 -9
  105. package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +3 -4
  106. package/es-modules/Extensions/Annotations/EventEmitter.js +6 -6
  107. package/es-modules/Extensions/Annotations/NavigationBindings.js +29 -18
  108. package/es-modules/Extensions/Annotations/NavigationBindingsDefaults.js +6 -6
  109. package/es-modules/Extensions/Annotations/Popup/Popup.js +1 -1
  110. package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +10 -6
  111. package/es-modules/Extensions/Annotations/Popup/PopupComposition.js +2 -2
  112. package/es-modules/Extensions/Annotations/Popup/PopupIndicators.js +31 -31
  113. package/es-modules/Extensions/Annotations/Popup/PopupTabs.js +1 -1
  114. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +14 -11
  115. package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +1 -1
  116. package/es-modules/Extensions/Annotations/Types/Measure.js +1 -1
  117. package/es-modules/Extensions/ArrowSymbols.js +7 -13
  118. package/es-modules/Extensions/Boost/Boost.js +39 -7
  119. package/es-modules/Extensions/Boost/BoostChart.js +4 -4
  120. package/es-modules/Extensions/Boost/BoostSeries.js +58 -13
  121. package/es-modules/Extensions/Boost/WGLRenderer.js +3 -3
  122. package/es-modules/Extensions/Boost/WGLVertexBuffer.js +1 -1
  123. package/es-modules/Extensions/BoostCanvas.js +5 -4
  124. package/es-modules/Extensions/BorderRadius.js +5 -4
  125. package/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +9 -9
  126. package/es-modules/Extensions/CurrentDateIndication.js +1 -1
  127. package/es-modules/Extensions/Data.js +11 -11
  128. package/es-modules/Extensions/DataGrouping/DataGrouping.js +1 -1
  129. package/es-modules/Extensions/DataGrouping/DataGroupingAxisComposition.js +8 -9
  130. package/es-modules/Extensions/DataGrouping/DataGroupingDefaults.js +1 -1
  131. package/es-modules/Extensions/DataGrouping/DataGroupingSeriesComposition.js +6 -7
  132. package/es-modules/Extensions/Debugger/Debugger.js +1 -1
  133. package/es-modules/Extensions/Debugger/ErrorMessages.js +2 -2
  134. package/es-modules/Extensions/DragPanes/AxisResizer.js +13 -16
  135. package/es-modules/Extensions/DragPanes/DragPanes.js +2 -4
  136. package/es-modules/Extensions/DraggablePoints/DragDropDefaults.js +2 -1
  137. package/es-modules/Extensions/DraggablePoints/DragDropUtilities.js +1 -1
  138. package/es-modules/Extensions/DraggablePoints/DraggableChart.js +4 -4
  139. package/es-modules/Extensions/DraggablePoints/DraggablePoints.js +8 -9
  140. package/es-modules/Extensions/Drilldown/Drilldown.js +11 -9
  141. package/es-modules/Extensions/Drilldown/DrilldownSeries.js +5 -6
  142. package/es-modules/Extensions/ExportData/ExportData.js +27 -18
  143. package/es-modules/Extensions/Exporting/Exporting.js +25 -20
  144. package/es-modules/Extensions/Exporting/ExportingDefaults.js +1 -1
  145. package/es-modules/Extensions/Exporting/Fullscreen.js +5 -10
  146. package/es-modules/Extensions/MarkerClusters/MarkerClusterScatter.js +26 -21
  147. package/es-modules/Extensions/MarkerClusters/MarkerClusterSymbols.js +2 -12
  148. package/es-modules/Extensions/MarkerClusters/MarkerClusters.js +3 -3
  149. package/es-modules/Extensions/MouseWheelZoom/MouseWheelZoom.js +51 -161
  150. package/es-modules/Extensions/NoDataToDisplay/NoDataToDisplay.js +3 -5
  151. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +5 -6
  152. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  153. package/es-modules/Extensions/OverlappingDataLabels.js +21 -49
  154. package/es-modules/Extensions/Pane/PaneComposition.js +3 -5
  155. package/es-modules/Extensions/ParallelCoordinates/ParallelAxis.js +2 -4
  156. package/es-modules/Extensions/ParallelCoordinates/ParallelCoordinates.js +5 -6
  157. package/es-modules/Extensions/ParallelCoordinates/ParallelSeries.js +1 -1
  158. package/es-modules/Extensions/PatternFill.js +19 -22
  159. package/es-modules/Extensions/PriceIndication.js +1 -1
  160. package/es-modules/Extensions/ScrollablePlotArea.js +218 -292
  161. package/es-modules/Extensions/SeriesLabel/SeriesLabel.js +26 -18
  162. package/es-modules/Extensions/Sonification/Options.js +1 -0
  163. package/es-modules/Extensions/Sonification/SonificationSpeaker.js +2 -2
  164. package/es-modules/Extensions/Sonification/SynthPatch.js +3 -3
  165. package/es-modules/Extensions/StaticScale.js +3 -5
  166. package/es-modules/Gantt/Legacy.js +1 -1
  167. package/es-modules/Gantt/Pathfinder.js +2 -2
  168. package/es-modules/Gantt/PathfinderComposition.js +3 -5
  169. package/es-modules/Gantt/Tree.js +3 -3
  170. package/es-modules/Maps/GeoJSONComposition.js +20 -13
  171. package/es-modules/Maps/MapNavigation.js +2 -2
  172. package/es-modules/Maps/MapPointer.js +3 -19
  173. package/es-modules/Maps/MapSymbols.js +3 -9
  174. package/es-modules/Maps/MapView.js +134 -74
  175. package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +5 -4
  176. package/es-modules/Series/Area/AreaSeries.js +2 -4
  177. package/es-modules/Series/Area3D/Area3DSeries.js +1 -1
  178. package/es-modules/Series/AreaRange/AreaRangePoint.js +2 -2
  179. package/es-modules/Series/AreaRange/AreaRangeSeries.js +2 -3
  180. package/es-modules/Series/AreaSpline/AreaSplineSeries.js +1 -1
  181. package/es-modules/Series/Bar/BarSeries.js +1 -1
  182. package/es-modules/Series/Bellcurve/BellcurveSeries.js +1 -1
  183. package/es-modules/Series/BoxPlot/BoxPlotSeriesDefaults.js +4 -0
  184. package/es-modules/Series/Bubble/BubbleLegendComposition.js +1 -1
  185. package/es-modules/Series/Bubble/BubbleLegendDefaults.js +2 -2
  186. package/es-modules/Series/Bubble/BubbleLegendItem.js +3 -3
  187. package/es-modules/Series/Bubble/BubbleSeries.js +1 -1
  188. package/es-modules/Series/Bullet/BulletSeriesDefaults.js +2 -2
  189. package/es-modules/Series/Candlestick/CandlestickSeries.js +2 -2
  190. package/es-modules/Series/Candlestick/CandlestickSeriesDefaults.js +1 -5
  191. package/es-modules/Series/ColorMapComposition.js +1 -1
  192. package/es-modules/Series/Column/ColumnDataLabel.js +2 -2
  193. package/es-modules/Series/Column/ColumnSeries.js +20 -22
  194. package/es-modules/Series/Column/ColumnSeriesDefaults.js +1 -1
  195. package/es-modules/Series/Column3D/Column3DComposition.js +1 -1
  196. package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +2 -1
  197. package/es-modules/Series/Cylinder/CylinderComposition.js +9 -9
  198. package/es-modules/Series/DataModifyComposition.js +5 -5
  199. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +3 -2
  200. package/es-modules/Series/DependencyWheel/DependencyWheelSeriesDefaults.js +1 -1
  201. package/es-modules/Series/DragNodesComposition.js +7 -7
  202. package/es-modules/Series/DrawPointUtilities.js +0 -2
  203. package/es-modules/Series/Dumbbell/DumbbellSeriesDefaults.js +1 -1
  204. package/es-modules/Series/Funnel/FunnelSeries.js +1 -1
  205. package/es-modules/Series/Funnel3D/Funnel3DComposition.js +6 -6
  206. package/es-modules/Series/Funnel3D/Funnel3DSeriesDefaults.js +2 -2
  207. package/es-modules/Series/Funnel3D/SVGElement3DFunnel.js +1 -1
  208. package/es-modules/Series/Gantt/GanttSeries.js +0 -1
  209. package/es-modules/Series/GeoHeatmap/GeoHeatmapSeries.js +5 -5
  210. package/es-modules/Series/GraphLayoutComposition.js +1 -1
  211. package/es-modules/Series/Heatmap/HeatmapSeries.js +2 -2
  212. package/es-modules/Series/Heatmap/HeatmapSeriesDefaults.js +1 -1
  213. package/es-modules/Series/HeikinAshi/HeikinAshiPoint.js +3 -1
  214. package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +3 -3
  215. package/es-modules/Series/HeikinAshi/HeikinAshiSeriesDefaults.js +1 -1
  216. package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +2 -2
  217. package/es-modules/Series/Item/ItemSeries.js +1 -1
  218. package/es-modules/Series/Line/LineSeries.js +1 -1
  219. package/es-modules/Series/Lollipop/LollipopSeries.js +3 -1
  220. package/es-modules/Series/Map/MapPoint.js +5 -1
  221. package/es-modules/Series/Map/MapSeries.js +32 -7
  222. package/es-modules/Series/Map/MapSeriesDefaults.js +5 -3
  223. package/es-modules/Series/Networkgraph/EulerIntegration.js +5 -5
  224. package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +4 -4
  225. package/es-modules/Series/Networkgraph/NetworkgraphSeriesDefaults.js +5 -5
  226. package/es-modules/Series/Networkgraph/QuadTree.js +1 -1
  227. package/es-modules/Series/Networkgraph/QuadTreeNode.js +1 -1
  228. package/es-modules/Series/Networkgraph/VerletIntegration.js +9 -9
  229. package/es-modules/Series/NodesComposition.js +1 -1
  230. package/es-modules/Series/OHLC/OHLCSeries.js +1 -1
  231. package/es-modules/Series/OHLC/OHLCSeriesDefaults.js +1 -1
  232. package/es-modules/Series/OnSeriesComposition.js +1 -1
  233. package/es-modules/Series/Organization/OrganizationPoint.js +1 -1
  234. package/es-modules/Series/Organization/OrganizationSeries.js +22 -10
  235. package/es-modules/Series/Organization/OrganizationSeriesDefaults.js +15 -2
  236. package/es-modules/Series/PackedBubble/PackedBubbleLayout.js +3 -5
  237. package/es-modules/Series/PackedBubble/PackedBubblePoint.js +1 -1
  238. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +6 -10
  239. package/es-modules/Series/Pictorial/PictorialSeries.js +2 -2
  240. package/es-modules/Series/Pie/PieDataLabel.js +2 -2
  241. package/es-modules/Series/Pie/PiePoint.js +1 -1
  242. package/es-modules/Series/Pie/PieSeries.js +10 -1
  243. package/es-modules/Series/Pie/PieSeriesDefaults.js +1 -1
  244. package/es-modules/Series/Pie3D/Pie3DSeries.js +2 -2
  245. package/es-modules/Series/PolarComposition.js +22 -20
  246. package/es-modules/Series/Sankey/SankeyColumnComposition.js +1 -1
  247. package/es-modules/Series/Sankey/SankeySeries.js +8 -8
  248. package/es-modules/Series/Sankey/SankeySeriesDefaults.js +57 -13
  249. package/es-modules/Series/SeriesOnPointComposition.js +3 -3
  250. package/es-modules/Series/Spline/SplineSeries.js +1 -1
  251. package/es-modules/Series/Sunburst/SunburstPoint.js +1 -1
  252. package/es-modules/Series/Sunburst/SunburstSeries.js +2 -7
  253. package/es-modules/Series/Sunburst/SunburstSeriesDefaults.js +3 -3
  254. package/es-modules/Series/Sunburst/SunburstUtilities.js +1 -1
  255. package/es-modules/Series/TiledWebMap/TiledWebMapSeries.js +23 -25
  256. package/es-modules/Series/Tilemap/TilemapSeries.js +2 -2
  257. package/es-modules/Series/Timeline/TimelineSeries.js +2 -2
  258. package/es-modules/Series/TreeUtilities.js +23 -1
  259. package/es-modules/Series/Treegraph/TreegraphLayout.js +7 -11
  260. package/es-modules/Series/Treegraph/TreegraphPoint.js +1 -0
  261. package/es-modules/Series/Treegraph/TreegraphSeries.js +8 -8
  262. package/es-modules/Series/Treegraph/TreegraphSeriesDefaults.js +39 -2
  263. package/es-modules/Series/Treemap/TreemapSeries.js +4 -2
  264. package/es-modules/Series/Treemap/TreemapUtilities.js +0 -7
  265. package/es-modules/Series/Variwide/VariwideComposition.js +6 -2
  266. package/es-modules/Series/Variwide/VariwideSeries.js +1 -1
  267. package/es-modules/Series/Venn/VennSeries.js +4 -4
  268. package/es-modules/Series/Venn/VennUtils.js +5 -6
  269. package/es-modules/Series/Waterfall/WaterfallSeriesDefaults.js +1 -1
  270. package/es-modules/Series/Windbarb/WindbarbSeries.js +1 -1
  271. package/es-modules/Series/Wordcloud/WordcloudUtils.js +6 -4
  272. package/es-modules/Series/XRange/XRangePoint.js +2 -2
  273. package/es-modules/Series/XRange/XRangeSeries.js +1 -1
  274. package/es-modules/Shared/BaseForm.js +1 -1
  275. package/es-modules/Stock/Indicators/AD/ADIndicator.js +3 -1
  276. package/es-modules/Stock/Indicators/APO/APOIndicator.js +1 -1
  277. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +1 -1
  278. package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +1 -1
  279. package/es-modules/Stock/Indicators/CMO/CMOIndicator.js +2 -2
  280. package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +1 -1
  281. package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +1 -1
  282. package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +1 -1
  283. package/es-modules/Stock/Indicators/LinearRegression/LinearRegressionIndicator.js +7 -7
  284. package/es-modules/Stock/Indicators/MultipleLinesComposition.js +9 -9
  285. package/es-modules/Stock/Indicators/OBV/OBVIndicator.js +1 -1
  286. package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +1 -1
  287. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +2 -2
  288. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +1 -1
  289. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +16 -17
  290. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +4 -5
  291. package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +1 -1
  292. package/es-modules/Stock/Indicators/Zigzag/ZigzagIndicator.js +5 -5
  293. package/es-modules/Stock/Navigator/ChartNavigatorComposition.js +188 -0
  294. package/es-modules/Stock/Navigator/Navigator.js +42 -27
  295. package/es-modules/Stock/Navigator/NavigatorComposition.js +10 -149
  296. package/es-modules/Stock/Navigator/NavigatorDefaults.js +16 -2
  297. package/es-modules/Stock/Navigator/StandaloneNavigator.js +334 -0
  298. package/es-modules/Stock/Navigator/StandaloneNavigatorDefaults.js +64 -0
  299. package/es-modules/Stock/RangeSelector/RangeSelector.js +28 -16
  300. package/es-modules/Stock/RangeSelector/RangeSelectorComposition.js +2 -2
  301. package/es-modules/Stock/Scrollbar/Scrollbar.js +10 -10
  302. package/es-modules/Stock/Scrollbar/ScrollbarDefaults.js +1 -3
  303. package/es-modules/Stock/StockTools/StockToolbar.js +6 -5
  304. package/es-modules/Stock/StockTools/StockTools.js +10 -13
  305. package/es-modules/Stock/StockTools/StockToolsBindings.js +35 -35
  306. package/es-modules/Stock/StockTools/StockToolsDefaults.js +2 -1
  307. package/es-modules/Stock/StockTools/StockToolsGui.js +7 -8
  308. package/es-modules/Stock/StockTools/StockToolsUtilities.js +8 -9
  309. package/es-modules/Stock/Utilities/StockUtilities.js +41 -0
  310. package/es-modules/masters/highcharts-3d.src.js +2 -1
  311. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  312. package/es-modules/masters/highcharts-more.src.js +2 -1
  313. package/es-modules/masters/highcharts.src.js +41 -40
  314. package/es-modules/masters/highmaps.src.js +1 -1
  315. package/es-modules/masters/highstock.src.js +1 -1
  316. package/es-modules/masters/indicators/acceleration-bands.src.js +3 -1
  317. package/es-modules/masters/indicators/accumulation-distribution.src.js +3 -1
  318. package/es-modules/masters/indicators/ao.src.js +3 -1
  319. package/es-modules/masters/indicators/apo.src.js +3 -1
  320. package/es-modules/masters/indicators/aroon-oscillator.src.js +3 -1
  321. package/es-modules/masters/indicators/aroon.src.js +3 -1
  322. package/es-modules/masters/indicators/atr.src.js +3 -1
  323. package/es-modules/masters/indicators/bollinger-bands.src.js +3 -1
  324. package/es-modules/masters/indicators/cci.src.js +3 -1
  325. package/es-modules/masters/indicators/chaikin.src.js +3 -1
  326. package/es-modules/masters/indicators/cmf.src.js +3 -1
  327. package/es-modules/masters/indicators/cmo.src.js +3 -1
  328. package/es-modules/masters/indicators/dema.src.js +3 -1
  329. package/es-modules/masters/indicators/disparity-index.src.js +3 -1
  330. package/es-modules/masters/indicators/dmi.src.js +3 -1
  331. package/es-modules/masters/indicators/dpo.src.js +3 -1
  332. package/es-modules/masters/indicators/ema.src.js +2 -0
  333. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +3 -1
  334. package/es-modules/masters/indicators/indicators-all.src.js +3 -1
  335. package/es-modules/masters/indicators/indicators.src.js +7 -1
  336. package/es-modules/masters/indicators/keltner-channels.src.js +3 -1
  337. package/es-modules/masters/indicators/klinger.src.js +3 -1
  338. package/es-modules/masters/indicators/macd.src.js +3 -1
  339. package/es-modules/masters/indicators/mfi.src.js +3 -1
  340. package/es-modules/masters/indicators/momentum.src.js +3 -1
  341. package/es-modules/masters/indicators/natr.src.js +3 -1
  342. package/es-modules/masters/indicators/obv.src.js +3 -1
  343. package/es-modules/masters/indicators/pivot-points.src.js +3 -1
  344. package/es-modules/masters/indicators/ppo.src.js +3 -1
  345. package/es-modules/masters/indicators/price-channel.src.js +3 -1
  346. package/es-modules/masters/indicators/price-envelopes.src.js +3 -1
  347. package/es-modules/masters/indicators/psar.src.js +3 -1
  348. package/es-modules/masters/indicators/regressions.src.js +3 -1
  349. package/es-modules/masters/indicators/roc.src.js +3 -1
  350. package/es-modules/masters/indicators/rsi.src.js +3 -1
  351. package/es-modules/masters/indicators/slow-stochastic.src.js +3 -1
  352. package/es-modules/masters/indicators/stochastic.src.js +3 -1
  353. package/es-modules/masters/indicators/supertrend.src.js +3 -1
  354. package/es-modules/masters/indicators/tema.src.js +3 -1
  355. package/es-modules/masters/indicators/trendline.src.js +3 -1
  356. package/es-modules/masters/indicators/trix.src.js +3 -1
  357. package/es-modules/masters/indicators/volume-by-price.src.js +3 -1
  358. package/es-modules/masters/indicators/vwap.src.js +3 -1
  359. package/es-modules/masters/indicators/williams-r.src.js +3 -1
  360. package/es-modules/masters/indicators/wma.src.js +3 -1
  361. package/es-modules/masters/indicators/zigzag.src.js +3 -1
  362. package/es-modules/masters/modules/accessibility.src.js +4 -1
  363. package/es-modules/masters/modules/annotations-advanced.src.js +3 -5
  364. package/es-modules/masters/modules/annotations.src.js +6 -3
  365. package/es-modules/masters/modules/arc-diagram.src.js +3 -1
  366. package/es-modules/masters/modules/arrow-symbols.src.js +2 -1
  367. package/es-modules/masters/modules/boost-canvas.src.js +2 -1
  368. package/es-modules/masters/modules/boost.src.js +3 -2
  369. package/es-modules/masters/modules/broken-axis.src.js +4 -3
  370. package/es-modules/masters/modules/bullet.src.js +3 -1
  371. package/es-modules/masters/modules/coloraxis.src.js +4 -3
  372. package/es-modules/masters/modules/current-date-indicator.src.js +2 -1
  373. package/es-modules/masters/modules/cylinder.src.js +3 -1
  374. package/es-modules/masters/modules/data-tools.src.js +9 -8
  375. package/es-modules/masters/modules/data.src.js +9 -8
  376. package/es-modules/masters/modules/datagrouping.src.js +7 -5
  377. package/es-modules/masters/modules/debugger.src.js +3 -2
  378. package/es-modules/masters/modules/dependency-wheel.src.js +3 -1
  379. package/es-modules/masters/modules/dotplot.src.js +3 -1
  380. package/es-modules/masters/modules/drag-panes.src.js +2 -1
  381. package/es-modules/masters/modules/draggable-points.src.js +2 -1
  382. package/es-modules/masters/modules/drilldown.src.js +3 -2
  383. package/es-modules/masters/modules/dumbbell.src.js +3 -1
  384. package/es-modules/masters/modules/export-data.src.js +5 -4
  385. package/es-modules/masters/modules/exporting.src.js +6 -5
  386. package/es-modules/masters/modules/flowmap.src.js +3 -1
  387. package/es-modules/masters/modules/full-screen.src.js +4 -3
  388. package/es-modules/masters/modules/funnel.src.js +2 -1
  389. package/es-modules/masters/modules/funnel3d.src.js +4 -3
  390. package/es-modules/masters/modules/gantt.src.js +15 -17
  391. package/es-modules/masters/modules/geoheatmap.src.js +3 -1
  392. package/es-modules/masters/modules/grid-axis.src.js +2 -1
  393. package/es-modules/masters/modules/heatmap.src.js +3 -5
  394. package/es-modules/masters/modules/heikinashi.src.js +2 -1
  395. package/es-modules/masters/modules/histogram-bellcurve.src.js +3 -1
  396. package/es-modules/masters/modules/hollowcandlestick.src.js +3 -1
  397. package/es-modules/masters/modules/item-series.src.js +3 -1
  398. package/es-modules/masters/modules/lollipop.src.js +3 -1
  399. package/es-modules/masters/modules/map.src.js +15 -10
  400. package/es-modules/masters/modules/marker-clusters.src.js +2 -1
  401. package/es-modules/masters/modules/mouse-wheel-zoom.src.js +4 -2
  402. package/es-modules/masters/modules/navigator.src.d.ts +1 -0
  403. package/es-modules/masters/modules/navigator.src.js +19 -0
  404. package/es-modules/masters/modules/networkgraph.src.js +2 -1
  405. package/es-modules/masters/modules/no-data-to-display.src.js +2 -1
  406. package/es-modules/masters/modules/offline-exporting.src.js +4 -3
  407. package/es-modules/masters/modules/organization.src.js +3 -1
  408. package/es-modules/masters/modules/overlapping-datalabels.src.js +4 -2
  409. package/es-modules/masters/modules/parallel-coordinates.src.js +2 -1
  410. package/es-modules/masters/modules/pareto.src.js +3 -1
  411. package/es-modules/masters/modules/pathfinder.src.js +4 -3
  412. package/es-modules/masters/modules/pattern-fill.src.js +2 -1
  413. package/es-modules/masters/modules/pictorial.src.js +3 -1
  414. package/es-modules/masters/modules/price-indicator.src.js +2 -1
  415. package/es-modules/masters/modules/pyramid3d.src.js +3 -1
  416. package/es-modules/masters/modules/sankey.src.js +3 -1
  417. package/es-modules/masters/modules/series-label.src.js +2 -1
  418. package/es-modules/masters/modules/series-on-point.src.js +2 -1
  419. package/es-modules/masters/modules/solid-gauge.src.js +3 -1
  420. package/es-modules/masters/modules/sonification.src.js +2 -1
  421. package/es-modules/masters/modules/static-scale.src.js +2 -1
  422. package/es-modules/masters/modules/stock-tools.src.js +5 -3
  423. package/es-modules/masters/modules/stock.src.js +20 -15
  424. package/es-modules/masters/modules/streamgraph.src.js +3 -1
  425. package/es-modules/masters/modules/sunburst.src.js +4 -3
  426. package/es-modules/masters/modules/tiledwebmap.src.js +5 -4
  427. package/es-modules/masters/modules/tilemap.src.js +2 -1
  428. package/es-modules/masters/modules/timeline.src.js +3 -1
  429. package/es-modules/masters/modules/treegraph.src.js +3 -1
  430. package/es-modules/masters/modules/treegrid.src.js +2 -2
  431. package/es-modules/masters/modules/treemap.src.js +5 -4
  432. package/es-modules/masters/modules/variable-pie.src.js +3 -1
  433. package/es-modules/masters/modules/variwide.src.js +2 -1
  434. package/es-modules/masters/modules/vector.src.js +3 -1
  435. package/es-modules/masters/modules/venn.src.js +3 -1
  436. package/es-modules/masters/modules/windbarb.src.js +3 -1
  437. package/es-modules/masters/modules/wordcloud.src.js +3 -1
  438. package/es-modules/masters/modules/xrange.src.js +2 -1
  439. package/es-modules/masters/standalone-navigator.src.js +13 -0
  440. package/es-modules/masters/themes/avocado.src.js +2 -1
  441. package/es-modules/masters/themes/brand-dark.src.js +2 -1
  442. package/es-modules/masters/themes/brand-light.src.js +2 -1
  443. package/es-modules/masters/themes/dark-blue.src.js +2 -1
  444. package/es-modules/masters/themes/dark-green.src.js +2 -1
  445. package/es-modules/masters/themes/dark-unica.src.js +2 -1
  446. package/es-modules/masters/themes/gray.src.js +2 -1
  447. package/es-modules/masters/themes/grid-light.src.js +2 -1
  448. package/es-modules/masters/themes/grid.src.js +2 -1
  449. package/es-modules/masters/themes/high-contrast-dark.src.js +2 -1
  450. package/es-modules/masters/themes/high-contrast-light.src.js +2 -1
  451. package/es-modules/masters/themes/sand-signika.src.js +2 -1
  452. package/es-modules/masters/themes/skies.src.js +2 -1
  453. package/es-modules/masters/themes/sunset.src.js +2 -1
  454. package/es-modules/tsconfig.tsbuildinfo +1 -0
  455. package/globals.d.ts +9 -0
  456. package/globals.src.d.ts +9 -0
  457. package/highcharts-3d.js +3 -3
  458. package/highcharts-3d.src.js +32 -33
  459. package/highcharts-gantt.js +4 -4
  460. package/highcharts-gantt.src.js +5703 -5639
  461. package/highcharts-more.d.ts +4 -0
  462. package/highcharts-more.js +3 -3
  463. package/highcharts-more.src.d.ts +4 -0
  464. package/highcharts-more.src.js +88 -87
  465. package/highcharts.d.ts +834 -5365
  466. package/highcharts.js +4 -4
  467. package/highcharts.src.d.ts +834 -5365
  468. package/highcharts.src.js +1583 -1682
  469. package/highmaps.js +4 -4
  470. package/highmaps.src.js +1837 -1835
  471. package/highstock.js +4 -4
  472. package/highstock.src.js +12488 -12510
  473. package/indicators/acceleration-bands.js +3 -3
  474. package/indicators/acceleration-bands.src.js +12 -11
  475. package/indicators/accumulation-distribution.js +3 -3
  476. package/indicators/accumulation-distribution.src.js +6 -3
  477. package/indicators/ao.js +3 -3
  478. package/indicators/ao.src.js +3 -2
  479. package/indicators/apo.js +3 -3
  480. package/indicators/apo.src.js +4 -3
  481. package/indicators/aroon-oscillator.js +3 -3
  482. package/indicators/aroon-oscillator.src.js +12 -11
  483. package/indicators/aroon.js +3 -3
  484. package/indicators/aroon.src.js +13 -12
  485. package/indicators/atr.js +3 -3
  486. package/indicators/atr.src.js +3 -2
  487. package/indicators/bollinger-bands.js +3 -3
  488. package/indicators/bollinger-bands.src.js +12 -11
  489. package/indicators/cci.js +3 -3
  490. package/indicators/cci.src.js +3 -2
  491. package/indicators/chaikin.js +3 -3
  492. package/indicators/chaikin.src.js +7 -4
  493. package/indicators/cmf.js +3 -3
  494. package/indicators/cmf.src.js +4 -3
  495. package/indicators/cmo.js +3 -3
  496. package/indicators/cmo.src.js +5 -4
  497. package/indicators/dema.js +3 -3
  498. package/indicators/dema.src.js +3 -2
  499. package/indicators/disparity-index.js +3 -3
  500. package/indicators/disparity-index.src.js +3 -2
  501. package/indicators/dmi.js +3 -3
  502. package/indicators/dmi.src.js +12 -11
  503. package/indicators/dpo.js +3 -3
  504. package/indicators/dpo.src.js +4 -3
  505. package/indicators/ema.js +1 -1
  506. package/indicators/ema.src.js +2 -1
  507. package/indicators/ichimoku-kinko-hyo.js +3 -3
  508. package/indicators/ichimoku-kinko-hyo.src.js +3 -2
  509. package/indicators/indicators-all.js +3 -3
  510. package/indicators/indicators-all.src.js +63 -60
  511. package/indicators/indicators.js +3 -3
  512. package/indicators/indicators.src.js +286 -3
  513. package/indicators/keltner-channels.js +3 -3
  514. package/indicators/keltner-channels.src.js +12 -11
  515. package/indicators/klinger.js +3 -3
  516. package/indicators/klinger.src.js +13 -12
  517. package/indicators/macd.js +3 -3
  518. package/indicators/macd.src.js +3 -2
  519. package/indicators/mfi.js +3 -3
  520. package/indicators/mfi.src.js +3 -2
  521. package/indicators/momentum.js +3 -3
  522. package/indicators/momentum.src.js +3 -2
  523. package/indicators/natr.js +3 -3
  524. package/indicators/natr.src.js +3 -2
  525. package/indicators/obv.js +3 -3
  526. package/indicators/obv.src.js +4 -3
  527. package/indicators/pivot-points.js +3 -3
  528. package/indicators/pivot-points.src.js +5 -4
  529. package/indicators/ppo.js +3 -3
  530. package/indicators/ppo.src.js +4 -3
  531. package/indicators/price-channel.js +3 -3
  532. package/indicators/price-channel.src.js +12 -11
  533. package/indicators/price-envelopes.js +3 -3
  534. package/indicators/price-envelopes.src.js +12 -11
  535. package/indicators/psar.js +3 -3
  536. package/indicators/psar.src.js +3 -2
  537. package/indicators/regressions.js +3 -3
  538. package/indicators/regressions.src.js +10 -9
  539. package/indicators/roc.js +3 -3
  540. package/indicators/roc.src.js +3 -2
  541. package/indicators/rsi.js +3 -3
  542. package/indicators/rsi.src.js +3 -2
  543. package/indicators/slow-stochastic.js +3 -3
  544. package/indicators/slow-stochastic.src.js +3 -2
  545. package/indicators/stochastic.js +3 -3
  546. package/indicators/stochastic.src.js +12 -11
  547. package/indicators/supertrend.js +3 -3
  548. package/indicators/supertrend.src.js +20 -19
  549. package/indicators/tema.js +3 -3
  550. package/indicators/tema.src.js +3 -2
  551. package/indicators/trendline.js +3 -3
  552. package/indicators/trendline.src.js +3 -2
  553. package/indicators/trix.js +3 -3
  554. package/indicators/trix.src.js +3 -2
  555. package/indicators/volume-by-price.js +3 -3
  556. package/indicators/volume-by-price.src.js +8 -7
  557. package/indicators/vwap.js +3 -3
  558. package/indicators/vwap.src.js +3 -2
  559. package/indicators/williams-r.js +3 -3
  560. package/indicators/williams-r.src.js +4 -3
  561. package/indicators/wma.js +3 -3
  562. package/indicators/wma.src.js +3 -2
  563. package/indicators/zigzag.js +3 -3
  564. package/indicators/zigzag.src.js +8 -7
  565. package/lib/svg2pdf.js +7 -7
  566. package/lib/svg2pdf.src.js +185 -150
  567. package/modules/accessibility.js +3 -3
  568. package/modules/accessibility.src.js +664 -2793
  569. package/modules/annotations-advanced.d.ts +3 -0
  570. package/modules/annotations-advanced.js +3 -3
  571. package/modules/annotations-advanced.src.d.ts +3 -0
  572. package/modules/annotations-advanced.src.js +2949 -2920
  573. package/modules/annotations.d.ts +0 -3
  574. package/modules/annotations.js +3 -3
  575. package/modules/annotations.src.d.ts +0 -3
  576. package/modules/annotations.src.js +2926 -2905
  577. package/modules/arc-diagram.js +3 -3
  578. package/modules/arc-diagram.src.js +8 -6
  579. package/modules/arrow-symbols.js +3 -3
  580. package/modules/arrow-symbols.src.js +10 -13
  581. package/modules/boost-canvas.js +3 -3
  582. package/modules/boost-canvas.src.js +73 -26
  583. package/modules/boost.js +3 -3
  584. package/modules/boost.src.js +108 -30
  585. package/modules/broken-axis.js +3 -3
  586. package/modules/broken-axis.src.js +9 -9
  587. package/modules/bullet.js +3 -3
  588. package/modules/bullet.src.js +5 -4
  589. package/modules/coloraxis.js +3 -3
  590. package/modules/coloraxis.src.js +10 -9
  591. package/modules/current-date-indicator.js +3 -3
  592. package/modules/current-date-indicator.src.js +3 -2
  593. package/modules/cylinder.js +3 -3
  594. package/modules/cylinder.src.js +12 -11
  595. package/modules/data-tools.js +3 -3
  596. package/modules/data-tools.src.js +53 -36
  597. package/modules/data.d.ts +2 -2
  598. package/modules/data.js +3 -3
  599. package/modules/data.src.d.ts +2 -2
  600. package/modules/data.src.js +24 -23
  601. package/modules/datagrouping.js +3 -3
  602. package/modules/datagrouping.src.js +25 -23
  603. package/modules/debugger.js +3 -3
  604. package/modules/debugger.src.js +6 -5
  605. package/modules/dependency-wheel.js +3 -3
  606. package/modules/dependency-wheel.src.js +7 -5
  607. package/modules/dotplot.js +3 -3
  608. package/modules/dotplot.src.js +3 -2
  609. package/modules/drag-panes.js +3 -3
  610. package/modules/drag-panes.src.js +19 -21
  611. package/modules/draggable-points.js +3 -3
  612. package/modules/draggable-points.src.js +18 -16
  613. package/modules/drilldown.js +3 -3
  614. package/modules/drilldown.src.js +29 -26
  615. package/modules/dumbbell.js +3 -3
  616. package/modules/dumbbell.src.js +5 -4
  617. package/modules/export-data.js +3 -3
  618. package/modules/export-data.src.js +33 -22
  619. package/modules/exporting.d.ts +1 -1
  620. package/modules/exporting.js +3 -3
  621. package/modules/exporting.src.d.ts +1 -1
  622. package/modules/exporting.src.js +40 -39
  623. package/modules/flowmap.js +3 -3
  624. package/modules/flowmap.src.js +3 -2
  625. package/modules/full-screen.js +3 -3
  626. package/modules/full-screen.src.js +9 -13
  627. package/modules/funnel.js +3 -3
  628. package/modules/funnel.src.js +3 -2
  629. package/modules/funnel3d.js +3 -3
  630. package/modules/funnel3d.src.js +12 -12
  631. package/modules/gantt.d.ts +3 -4
  632. package/modules/gantt.js +3 -3
  633. package/modules/gantt.src.d.ts +3 -4
  634. package/modules/gantt.src.js +4165 -4002
  635. package/modules/geoheatmap.js +3 -3
  636. package/modules/geoheatmap.src.js +8 -7
  637. package/modules/grid-axis.js +3 -3
  638. package/modules/grid-axis.src.js +9 -8
  639. package/modules/heatmap.d.ts +2 -2
  640. package/modules/heatmap.js +3 -3
  641. package/modules/heatmap.src.d.ts +2 -2
  642. package/modules/heatmap.src.js +21 -15
  643. package/modules/heikinashi.js +3 -3
  644. package/modules/heikinashi.src.js +9 -6
  645. package/modules/histogram-bellcurve.js +3 -3
  646. package/modules/histogram-bellcurve.src.js +4 -3
  647. package/modules/hollowcandlestick.js +3 -3
  648. package/modules/hollowcandlestick.src.js +5 -4
  649. package/modules/item-series.js +3 -3
  650. package/modules/item-series.src.js +4 -3
  651. package/modules/lollipop.js +3 -3
  652. package/modules/lollipop.src.js +6 -3
  653. package/modules/map.d.ts +22 -1
  654. package/modules/map.js +3 -3
  655. package/modules/map.src.d.ts +22 -1
  656. package/modules/map.src.js +256 -155
  657. package/modules/marker-clusters.js +3 -3
  658. package/modules/marker-clusters.src.js +35 -37
  659. package/modules/mouse-wheel-zoom.js +3 -3
  660. package/modules/mouse-wheel-zoom.src.js +55 -163
  661. package/modules/navigator.d.ts +148 -0
  662. package/modules/navigator.js +9 -0
  663. package/modules/navigator.src.d.ts +148 -0
  664. package/modules/navigator.src.js +3921 -0
  665. package/modules/networkgraph.d.ts +2 -2
  666. package/modules/networkgraph.js +3 -3
  667. package/modules/networkgraph.src.d.ts +2 -2
  668. package/modules/networkgraph.src.js +36 -35
  669. package/modules/no-data-to-display.js +3 -3
  670. package/modules/no-data-to-display.src.js +6 -6
  671. package/modules/offline-exporting.js +3 -3
  672. package/modules/offline-exporting.src.js +10 -10
  673. package/modules/organization.js +3 -3
  674. package/modules/organization.src.js +41 -15
  675. package/modules/overlapping-datalabels.js +3 -3
  676. package/modules/overlapping-datalabels.src.js +4 -2
  677. package/modules/parallel-coordinates.js +3 -3
  678. package/modules/parallel-coordinates.src.js +12 -12
  679. package/modules/pareto.js +3 -3
  680. package/modules/pareto.src.js +3 -2
  681. package/modules/pathfinder.js +3 -3
  682. package/modules/pathfinder.src.js +18 -22
  683. package/modules/pattern-fill.js +3 -3
  684. package/modules/pattern-fill.src.js +22 -23
  685. package/modules/pictorial.js +3 -3
  686. package/modules/pictorial.src.js +25 -26
  687. package/modules/price-indicator.js +3 -3
  688. package/modules/price-indicator.src.js +3 -2
  689. package/modules/pyramid3d.js +3 -3
  690. package/modules/pyramid3d.src.js +3 -2
  691. package/modules/sankey.js +3 -3
  692. package/modules/sankey.src.js +93 -26
  693. package/modules/series-label.js +3 -3
  694. package/modules/series-label.src.js +28 -19
  695. package/modules/series-on-point.js +3 -3
  696. package/modules/series-on-point.src.js +5 -4
  697. package/modules/solid-gauge.js +3 -3
  698. package/modules/solid-gauge.src.js +3 -2
  699. package/modules/sonification.d.ts +2 -2
  700. package/modules/sonification.js +3 -3
  701. package/modules/sonification.src.d.ts +2 -2
  702. package/modules/sonification.src.js +8 -6
  703. package/modules/static-scale.js +3 -3
  704. package/modules/static-scale.src.js +6 -6
  705. package/modules/stock-tools.js +3 -3
  706. package/modules/stock-tools.src.js +109 -96
  707. package/modules/stock.d.ts +1 -1
  708. package/modules/stock.js +3 -3
  709. package/modules/stock.src.d.ts +1 -1
  710. package/modules/stock.src.js +10762 -10685
  711. package/modules/streamgraph.js +3 -3
  712. package/modules/streamgraph.src.js +3 -2
  713. package/modules/sunburst.js +3 -3
  714. package/modules/sunburst.src.js +50 -37
  715. package/modules/tiledwebmap.js +4 -4
  716. package/modules/tiledwebmap.src.js +28 -29
  717. package/modules/tilemap.js +3 -3
  718. package/modules/tilemap.src.js +4 -3
  719. package/modules/timeline.js +3 -3
  720. package/modules/timeline.src.js +5 -4
  721. package/modules/treegraph.js +3 -3
  722. package/modules/treegraph.src.js +58 -23
  723. package/modules/treegrid.js +3 -3
  724. package/modules/treegrid.src.js +49 -33
  725. package/modules/treemap.js +3 -3
  726. package/modules/treemap.src.js +44 -26
  727. package/modules/variable-pie.js +3 -3
  728. package/modules/variable-pie.src.js +3 -2
  729. package/modules/variwide.js +3 -3
  730. package/modules/variwide.src.js +9 -4
  731. package/modules/vector.js +3 -3
  732. package/modules/vector.src.js +3 -2
  733. package/modules/venn.js +3 -3
  734. package/modules/venn.src.js +16 -17
  735. package/modules/windbarb.js +3 -3
  736. package/modules/windbarb.src.js +5 -4
  737. package/modules/wordcloud.js +3 -3
  738. package/modules/wordcloud.src.js +10 -8
  739. package/modules/xrange.js +3 -3
  740. package/modules/xrange.src.js +5 -4
  741. package/package.json +1 -1
  742. package/standalone-navigator.js +2 -0
  743. package/standalone-navigator.src.js +49402 -0
  744. package/themes/avocado.js +3 -3
  745. package/themes/avocado.src.js +2 -1
  746. package/themes/brand-dark.js +3 -3
  747. package/themes/brand-dark.src.js +2 -1
  748. package/themes/brand-light.js +3 -3
  749. package/themes/brand-light.src.js +2 -1
  750. package/themes/dark-blue.js +3 -3
  751. package/themes/dark-blue.src.js +2 -1
  752. package/themes/dark-green.js +3 -3
  753. package/themes/dark-green.src.js +2 -1
  754. package/themes/dark-unica.js +3 -3
  755. package/themes/dark-unica.src.js +2 -1
  756. package/themes/gray.js +3 -3
  757. package/themes/gray.src.js +2 -1
  758. package/themes/grid-light.js +3 -3
  759. package/themes/grid-light.src.js +2 -1
  760. package/themes/grid.js +3 -3
  761. package/themes/grid.src.js +2 -1
  762. package/themes/high-contrast-dark.js +3 -3
  763. package/themes/high-contrast-dark.src.js +2 -1
  764. package/themes/high-contrast-light.js +3 -3
  765. package/themes/high-contrast-light.src.js +2 -1
  766. package/themes/sand-signika.js +3 -3
  767. package/themes/sand-signika.src.js +2 -1
  768. package/themes/skies.js +3 -3
  769. package/themes/skies.src.js +2 -1
  770. package/themes/sunset.js +3 -3
  771. package/themes/sunset.src.js +2 -1
  772. package/es-modules/Core/Renderer/HTML/HTMLRenderer.js +0 -259
  773. package/lib/canvg.js +0 -8
@@ -1,9 +1,9 @@
1
- /**
2
- * Highcharts JS v11.3.0 (2024-01-10)
1
+ !/**
2
+ * Highcharts JS v11.4.0 (2024-03-04)
3
3
  *
4
4
  * Arc diagram module
5
5
  *
6
6
  * (c) 2021 Piotr Madej
7
7
  *
8
8
  * License: www.highcharts.com/license
9
- */!function(e){"object"==typeof module&&module.exports?(e.default=e,module.exports=e):"function"==typeof define&&define.amd?define("highcharts/modules/arc-diagram",["highcharts","highcharts/modules/sankey"],function(t){return e(t),e.Highcharts=t,e}):e("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(e){"use strict";var t=e?e._modules:{};function i(e,t,i,o){e.hasOwnProperty(t)||(e[t]=o.apply(null,i),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:t,module:e[t]}})))}i(t,"Series/ArcDiagram/ArcDiagramPoint.js",[t["Series/NodesComposition.js"],t["Core/Series/SeriesRegistry.js"],t["Core/Utilities.js"]],function(e,t,i){let{seriesTypes:{sankey:{prototype:{pointClass:o}}}}=t,{extend:s}=i;class a extends o{isValid(){return!0}}return s(a.prototype,{setState:e.setNodeState}),a}),i(t,"Series/ArcDiagram/ArcDiagramSeries.js",[t["Series/ArcDiagram/ArcDiagramPoint.js"],t["Series/Sankey/SankeyColumnComposition.js"],t["Core/Series/Series.js"],t["Core/Series/SeriesRegistry.js"],t["Core/Renderer/SVG/SVGRenderer.js"],t["Core/Utilities.js"]],function(e,t,i,o,s,a){let{prototype:{symbols:n}}=s,{seriesTypes:{column:r,sankey:l}}=o,{extend:h,merge:d,pick:p,relativeLength:m}=a;class u extends l{createNodeColumns(){let e=this,i=e.chart,o=t.compose([],e);return o.sankeyColumn.maxLength=i.inverted?i.plotHeight:i.plotWidth,o.sankeyColumn.getTranslationFactor=e=>{let t=o.slice(),s=this.options.minLinkWidth||0,a,n=0,r,l,h=0,d=1,p=0,m=(i.plotSizeX||0)-(e.options.marker&&e.options.marker.lineWidth||0)-(o.length-1)*e.nodePadding;for(;o.length;){for(n=m/o.sankeyColumn.sum(),a=!1,r=o.length;r--;){l=o[r].getSum()*n*d;let e=Math.min(i.plotHeight,i.plotWidth);l>e?d=Math.min(e/l,d):l<s&&(o.splice(r,1),m-=s,l=s,a=!0),p+=l*(1-d)/2,h=Math.max(h,l)}if(!a)break}return o.length=0,t.forEach(e=>{e.scale=d,o.push(e)}),o.sankeyColumn.maxRadius=h,o.sankeyColumn.scale=d,o.sankeyColumn.additionalSpace=p,n},o.sankeyColumn.offset=function(t,s){let a=t.series.options.equalNodes,n=o.sankeyColumn.additionalSpace||0,r,l=e.nodePadding,h=Math.min(i.plotWidth,i.plotHeight,(o.sankeyColumn.maxLength||0)/e.nodes.length-l);for(let i=0;i<o.length;i++){let d=o[i].getSum()*(o.sankeyColumn.scale||0),p=a?h:Math.max(d*s,e.options.minLinkWidth||0);if(r=d?p+l:0,o[i]===t)return{relativeLeft:n+m(t.options.offset||0,r)};n+=r}},e.nodes.forEach(function(e){e.column=0,o.push(e)}),[o]}translateLink(e){let t=e.fromNode,i=e.toNode,o=this.chart,s=this.translationFactor,a=e.options,n=this.options,r=p(a.linkWeight,n.linkWeight,Math.max((e.weight||0)*s*t.scale,this.options.minLinkWidth||0)),l=e.series.options.centeredLinks,h=t.nodeY,d=(t,i)=>{let o=(t.offset(e,i)||0)*s,a=Math.min(t.nodeX+o,t.nodeX+(t.shapeArgs&&t.shapeArgs.height||0)-r);return a},m=l?t.nodeX+((t.shapeArgs.height||0)-r)/2:d(t,"linksFrom"),u=l?i.nodeX+((i.shapeArgs.height||0)-r)/2:d(i,"linksTo"),c=h,g=r;m>u&&([m,u]=[u,m]),n.reversed&&([m,u]=[u,m],c=(o.plotSizeY||0)-c,g=-g),e.shapeType="path",e.linkBase=[m,m+r,u,u+r];let f=(u+r-m)/Math.abs(u+r-m)*p(n.linkRadius,Math.min(Math.abs(u+r-m)/2,t.nodeY-Math.abs(r)));e.shapeArgs={d:[["M",m,c],["A",(u+r-m)/2,f,0,0,1,u+r,c],["L",u,c],["A",(u-m-r)/2,f-r,0,0,0,m+r,c],["Z"]]},e.dlBox={x:m+(u-m)/2,y:c-f,height:r,width:0},e.tooltipPos=o.inverted?[(o.plotSizeY||0)-e.dlBox.y-r/2,(o.plotSizeX||0)-e.dlBox.x]:[e.dlBox.x,e.dlBox.y+r/2],e.y=e.plotY=1,e.x=e.plotX=1,e.color||(e.color=t.color)}translateNode(e,t){let i=this.translationFactor,o=this.chart,s=o.inverted?o.plotWidth:o.plotHeight,a=this.options,r=Math.min(o.plotWidth,o.plotHeight,s/e.series.nodes.length-this.nodePadding),h=e.getSum()*(t.sankeyColumn.scale||0),m=a.equalNodes,u=m?r:Math.max(h*i,this.options.minLinkWidth||0),c=Math.round(a.marker&&a.marker.lineWidth||0)%2/2,g=t.sankeyColumn.offset(e,i),f=Math.floor(p(g&&g.absoluteLeft,(t.sankeyColumn.left(i)||0)+(g&&g.relativeLeft||0)))+c,y=d(a.marker,e.options.marker),k=y.symbol,S=y.radius,C=parseInt(a.offset,10)*((o.inverted?o.plotWidth:o.plotHeight)-(Math.floor(this.colDistance*(e.column||0)+(y.lineWidth||0)/2)+c+(t.sankeyColumn.scale||0)*(t.sankeyColumn.maxRadius||0)/2))/100;if(e.sum=h,h){e.nodeX=f,e.nodeY=C;let t=e.options.width||a.width||u,i=e.options.height||a.height||u,s=C;a.reversed&&(s=(o.plotSizeY||0)-C,o.inverted&&(s=(o.plotSizeY||0)-C)),this.mapOptionsToLevel&&(e.dlOptions=l.getDLOptions({level:this.mapOptionsToLevel[e.level],optionsPoint:e.options})),e.plotX=1,e.plotY=1,e.tooltipPos=o.inverted?[(o.plotSizeY||0)-s-i/2,(o.plotSizeX||0)-f-t/2]:[f+t/2,s+i/2],e.shapeType="path",e.shapeArgs={d:n[k||"circle"](f,s-(S||i)/2,S||t,S||i),width:S||t,height:S||i},e.dlBox={x:f+t/2,y:s,height:0,width:0}}else e.dlOptions={enabled:!1}}drawDataLabels(){if(this.options.dataLabels){let e=this.options.dataLabels.textPath;r.prototype.drawDataLabels.call(this,this.nodes),this.options.dataLabels.textPath=this.options.dataLabels.linkTextPath,r.prototype.drawDataLabels.call(this,this.data),this.options.dataLabels.textPath=e}}pointAttribs(e,t){if(e&&e.isNode){let{opacity:e,...t}=i.prototype.pointAttribs.apply(this,arguments);return t}return super.pointAttribs.apply(this,arguments)}markerAttribs(e){return e.isNode?super.markerAttribs.apply(this,arguments):{}}}return u.defaultOptions=d(l.defaultOptions,{centeredLinks:!1,offset:"100%",equalNodes:!1,reversed:!1,dataLabels:{linkTextPath:{attributes:{startOffset:"25%"}}},marker:{symbol:"circle",fillOpacity:1,lineWidth:0,states:{}}}),h(u.prototype,{orderNodes:!1}),u.prototype.pointClass=e,o.registerSeriesType("arcdiagram",u),u}),i(t,"masters/modules/arc-diagram.src.js",[],function(){})});
9
+ */function(e){"object"==typeof module&&module.exports?(e.default=e,module.exports=e):"function"==typeof define&&define.amd?define("highcharts/modules/arc-diagram",["highcharts","highcharts/modules/sankey"],function(t){return e(t),e.Highcharts=t,e}):e("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(e){"use strict";var t=e?e._modules:{};function i(e,t,i,o){e.hasOwnProperty(t)||(e[t]=o.apply(null,i),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:t,module:e[t]}})))}i(t,"Series/ArcDiagram/ArcDiagramPoint.js",[t["Series/NodesComposition.js"],t["Core/Series/SeriesRegistry.js"],t["Core/Utilities.js"]],function(e,t,i){let{seriesTypes:{sankey:{prototype:{pointClass:o}}}}=t,{extend:s}=i;class a extends o{isValid(){return!0}}return s(a.prototype,{setState:e.setNodeState}),a}),i(t,"Series/ArcDiagram/ArcDiagramSeries.js",[t["Series/ArcDiagram/ArcDiagramPoint.js"],t["Series/Sankey/SankeyColumnComposition.js"],t["Core/Series/Series.js"],t["Core/Series/SeriesRegistry.js"],t["Core/Renderer/SVG/SVGRenderer.js"],t["Core/Utilities.js"]],function(e,t,i,o,s,a){let{prototype:{symbols:n}}=s,{seriesTypes:{column:r,sankey:l}}=o,{extend:h,merge:d,pick:p,relativeLength:m}=a;class u extends l{createNodeColumns(){let e=this,i=e.chart,o=t.compose([],e);return o.sankeyColumn.maxLength=i.inverted?i.plotHeight:i.plotWidth,o.sankeyColumn.getTranslationFactor=e=>{let t=o.slice(),s=this.options.minLinkWidth||0,a,n=0,r,l,h=0,d=1,p=0,m=(i.plotSizeX||0)-(e.options.marker&&e.options.marker.lineWidth||0)-(o.length-1)*e.nodePadding;for(;o.length;){for(n=m/o.sankeyColumn.sum(),a=!1,r=o.length;r--;){l=o[r].getSum()*n*d;let e=Math.min(i.plotHeight,i.plotWidth);l>e?d=Math.min(e/l,d):l<s&&(o.splice(r,1),m-=s,l=s,a=!0),p+=l*(1-d)/2,h=Math.max(h,l)}if(!a)break}return o.length=0,t.forEach(e=>{e.scale=d,o.push(e)}),o.sankeyColumn.maxRadius=h,o.sankeyColumn.scale=d,o.sankeyColumn.additionalSpace=p,n},o.sankeyColumn.offset=function(t,s){let a=t.series.options.equalNodes,n=o.sankeyColumn.additionalSpace||0,r,l=e.nodePadding,h=Math.min(i.plotWidth,i.plotHeight,(o.sankeyColumn.maxLength||0)/e.nodes.length-l);for(let i=0;i<o.length;i++){let d=o[i].getSum()*(o.sankeyColumn.scale||0),p=a?h:Math.max(d*s,e.options.minLinkWidth||0);if(r=d?p+l:0,o[i]===t)return{relativeLeft:n+m(t.options.offset||0,r)};n+=r}},e.nodes.forEach(function(e){e.column=0,o.push(e)}),[o]}translateLink(e){let t=e.fromNode,i=e.toNode,o=this.chart,s=this.translationFactor,a=e.options,n=this.options,r=p(a.linkWeight,n.linkWeight,Math.max((e.weight||0)*s*t.scale,this.options.minLinkWidth||0)),l=e.series.options.centeredLinks,h=t.nodeY,d=(t,i)=>{let o=(t.offset(e,i)||0)*s;return Math.min(t.nodeX+o,t.nodeX+(t.shapeArgs&&t.shapeArgs.height||0)-r)},m=l?t.nodeX+((t.shapeArgs.height||0)-r)/2:d(t,"linksFrom"),u=l?i.nodeX+((i.shapeArgs.height||0)-r)/2:d(i,"linksTo"),c=h;m>u&&([m,u]=[u,m]),n.reversed&&([m,u]=[u,m],c=(o.plotSizeY||0)-c),e.shapeType="path",e.linkBase=[m,m+r,u,u+r];let g=(u+r-m)/Math.abs(u+r-m)*p(n.linkRadius,Math.min(Math.abs(u+r-m)/2,t.nodeY-Math.abs(r)));e.shapeArgs={d:[["M",m,c],["A",(u+r-m)/2,g,0,0,1,u+r,c],["L",u,c],["A",(u-m-r)/2,g-r,0,0,0,m+r,c],["Z"]]},e.dlBox={x:m+(u-m)/2,y:c-g,height:r,width:0},e.tooltipPos=o.inverted?[(o.plotSizeY||0)-e.dlBox.y-r/2,(o.plotSizeX||0)-e.dlBox.x]:[e.dlBox.x,e.dlBox.y+r/2],e.y=e.plotY=1,e.x=e.plotX=1,e.color||(e.color=t.color)}translateNode(e,t){let i=this.translationFactor,o=this.chart,s=o.inverted?o.plotWidth:o.plotHeight,a=this.options,r=Math.min(o.plotWidth,o.plotHeight,s/e.series.nodes.length-this.nodePadding),h=e.getSum()*(t.sankeyColumn.scale||0),m=a.equalNodes?r:Math.max(h*i,this.options.minLinkWidth||0),u=Math.round(a.marker&&a.marker.lineWidth||0)%2/2,c=t.sankeyColumn.offset(e,i),g=Math.floor(p(c&&c.absoluteLeft,(t.sankeyColumn.left(i)||0)+(c&&c.relativeLeft||0)))+u,f=d(a.marker,e.options.marker),y=f.symbol,k=f.radius,S=parseInt(a.offset,10)*((o.inverted?o.plotWidth:o.plotHeight)-(Math.floor(this.colDistance*(e.column||0)+(f.lineWidth||0)/2)+u+(t.sankeyColumn.scale||0)*(t.sankeyColumn.maxRadius||0)/2))/100;if(e.sum=h,h){e.nodeX=g,e.nodeY=S;let t=e.options.width||a.width||m,i=e.options.height||a.height||m,s=S;a.reversed&&(s=(o.plotSizeY||0)-S,o.inverted&&(s=(o.plotSizeY||0)-S)),this.mapOptionsToLevel&&(e.dlOptions=l.getDLOptions({level:this.mapOptionsToLevel[e.level],optionsPoint:e.options})),e.plotX=1,e.plotY=1,e.tooltipPos=o.inverted?[(o.plotSizeY||0)-s-i/2,(o.plotSizeX||0)-g-t/2]:[g+t/2,s+i/2],e.shapeType="path",e.shapeArgs={d:n[y||"circle"](g,s-(k||i)/2,k||t,k||i),width:k||t,height:k||i},e.dlBox={x:g+t/2,y:s,height:0,width:0}}else e.dlOptions={enabled:!1}}drawDataLabels(){if(this.options.dataLabels){let e=this.options.dataLabels.textPath;r.prototype.drawDataLabels.call(this,this.nodes),this.options.dataLabels.textPath=this.options.dataLabels.linkTextPath,r.prototype.drawDataLabels.call(this,this.data),this.options.dataLabels.textPath=e}}pointAttribs(e,t){if(e&&e.isNode){let{...e}=i.prototype.pointAttribs.apply(this,arguments);return e}return super.pointAttribs.apply(this,arguments)}markerAttribs(e){return e.isNode?super.markerAttribs.apply(this,arguments):{}}}return u.defaultOptions=d(l.defaultOptions,{centeredLinks:!1,offset:"100%",equalNodes:!1,reversed:!1,dataLabels:{linkTextPath:{attributes:{startOffset:"25%"}}},marker:{symbol:"circle",fillOpacity:1,lineWidth:0,states:{}}}),h(u.prototype,{orderNodes:!1}),u.prototype.pointClass=e,o.registerSeriesType("arcdiagram",u),u}),i(t,"masters/modules/arc-diagram.src.js",[t["Core/Globals.js"]],function(e){return e})});
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v11.3.0 (2024-01-10)
2
+ * @license Highcharts JS v11.4.0 (2024-03-05)
3
3
  *
4
4
  * Arc diagram module
5
5
  *
@@ -221,14 +221,13 @@
221
221
  ((fromNode.shapeArgs.height || 0) - linkWeight) / 2 :
222
222
  getX(fromNode, 'linksFrom'), toX = centeredLinks ? toNode.nodeX +
223
223
  ((toNode.shapeArgs.height || 0) - linkWeight) / 2 :
224
- getX(toNode, 'linksTo'), bottom = nodeTop, linkWidth = linkWeight;
224
+ getX(toNode, 'linksTo'), bottom = nodeTop;
225
225
  if (fromX > toX) {
226
226
  [fromX, toX] = [toX, fromX];
227
227
  }
228
228
  if (seriesOptions.reversed) {
229
229
  [fromX, toX] = [toX, fromX];
230
230
  bottom = (chart.plotSizeY || 0) - bottom;
231
- linkWidth = -linkWidth;
232
231
  }
233
232
  point.shapeType = 'path';
234
233
  point.linkBase = [
@@ -368,9 +367,11 @@
368
367
  this.options.dataLabels.textPath = textPath;
369
368
  }
370
369
  }
371
- pointAttribs(point, state) {
370
+ pointAttribs(point,
371
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
372
+ state) {
372
373
  if (point && point.isNode) {
373
- const { opacity, ...attrs } = Series.prototype.pointAttribs
374
+ const { ...attrs } = Series.prototype.pointAttribs
374
375
  .apply(this, arguments);
375
376
  return attrs;
376
377
  }
@@ -623,8 +624,9 @@
623
624
 
624
625
  return ArcDiagramSeries;
625
626
  });
626
- _registerModule(_modules, 'masters/modules/arc-diagram.src.js', [], function () {
627
+ _registerModule(_modules, 'masters/modules/arc-diagram.src.js', [_modules['Core/Globals.js']], function (Highcharts) {
627
628
 
628
629
 
630
+ return Highcharts;
629
631
  });
630
632
  }));
@@ -1,9 +1,9 @@
1
- /**
2
- * Highcharts JS v11.3.0 (2024-01-10)
1
+ !/**
2
+ * Highcharts JS v11.4.0 (2024-03-04)
3
3
  *
4
4
  * Arrow Symbols
5
5
  *
6
6
  * (c) 2017-2024 Lars A. V. Cabrera
7
7
  *
8
8
  * License: www.highcharts.com/license
9
- */!function(o){"object"==typeof module&&module.exports?(o.default=o,module.exports=o):"function"==typeof define&&define.amd?define("highcharts/modules/arrow-symbols",["highcharts"],function(e){return o(e),o.Highcharts=e,o}):o("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(o){"use strict";var e=o?o._modules:{};function t(o,e,t,n){o.hasOwnProperty(e)||(o[e]=n.apply(null,t),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:e,module:o[e]}})))}t(e,"Extensions/ArrowSymbols.js",[e["Core/Globals.js"],e["Core/Utilities.js"]],function(o,e){let{composed:t}=o,{pushUnique:n}=e;function r(o,e,t,n){return[["M",o,e+n/2],["L",o+t,e],["L",o,e+n/2],["L",o+t,e+n]]}function s(o,e,t,n){return r(o,e,t/2,n)}function i(o,e,t,n){return[["M",o+t,e],["L",o,e+n/2],["L",o+t,e+n],["Z"]]}function l(o,e,t,n){return i(o,e,t/2,n)}return{compose:function o(e){if(n(t,o)){let o=e.prototype.symbols;o.arrow=r,o["arrow-filled"]=i,o["arrow-filled-half"]=l,o["arrow-half"]=s,o["triangle-left"]=i,o["triangle-left-half"]=l}}}}),t(e,"masters/modules/arrow-symbols.src.js",[e["Core/Globals.js"],e["Extensions/ArrowSymbols.js"]],function(o,e){e.compose(o.SVGRenderer)})});
9
+ */function(o){"object"==typeof module&&module.exports?(o.default=o,module.exports=o):"function"==typeof define&&define.amd?define("highcharts/modules/arrow-symbols",["highcharts"],function(e){return o(e),o.Highcharts=e,o}):o("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(o){"use strict";var e=o?o._modules:{};function t(o,e,t,n){o.hasOwnProperty(e)||(o[e]=n.apply(null,t),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:e,module:o[e]}})))}t(e,"Extensions/ArrowSymbols.js",[],function(){function o(o,e,t,n){return[["M",o,e+n/2],["L",o+t,e],["L",o,e+n/2],["L",o+t,e+n]]}function e(e,t,n,r){return o(e,t,n/2,r)}function t(o,e,t,n){return[["M",o+t,e],["L",o,e+n/2],["L",o+t,e+n],["Z"]]}function n(o,e,n,r){return t(o,e,n/2,r)}return{compose:function(r){let s=r.prototype.symbols;s.arrow=o,s["arrow-filled"]=t,s["arrow-filled-half"]=n,s["arrow-half"]=e,s["triangle-left"]=t,s["triangle-left-half"]=n}}}),t(e,"masters/modules/arrow-symbols.src.js",[e["Core/Globals.js"],e["Extensions/ArrowSymbols.js"]],function(o,e){return e.compose(o.SVGRenderer),o})});
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v11.3.0 (2024-01-10)
2
+ * @license Highcharts JS v11.4.0 (2024-03-05)
3
3
  *
4
4
  * Arrow Symbols
5
5
  *
@@ -35,7 +35,7 @@
35
35
  }
36
36
  }
37
37
  }
38
- _registerModule(_modules, 'Extensions/ArrowSymbols.js', [_modules['Core/Globals.js'], _modules['Core/Utilities.js']], function (H, U) {
38
+ _registerModule(_modules, 'Extensions/ArrowSymbols.js', [], function () {
39
39
  /* *
40
40
  *
41
41
  * (c) 2017 Highsoft AS
@@ -46,8 +46,6 @@
46
46
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
47
47
  *
48
48
  * */
49
- const { composed } = H;
50
- const { pushUnique } = U;
51
49
  /* *
52
50
  *
53
51
  * Functions
@@ -126,15 +124,13 @@
126
124
  * @private
127
125
  */
128
126
  function compose(SVGRendererClass) {
129
- if (pushUnique(composed, compose)) {
130
- const symbols = SVGRendererClass.prototype.symbols;
131
- symbols.arrow = arrow;
132
- symbols['arrow-filled'] = triangleLeft;
133
- symbols['arrow-filled-half'] = triangleLeftHalf;
134
- symbols['arrow-half'] = arrowHalf;
135
- symbols['triangle-left'] = triangleLeft;
136
- symbols['triangle-left-half'] = triangleLeftHalf;
137
- }
127
+ const symbols = SVGRendererClass.prototype.symbols;
128
+ symbols.arrow = arrow;
129
+ symbols['arrow-filled'] = triangleLeft;
130
+ symbols['arrow-filled-half'] = triangleLeftHalf;
131
+ symbols['arrow-half'] = arrowHalf;
132
+ symbols['triangle-left'] = triangleLeft;
133
+ symbols['triangle-left-half'] = triangleLeftHalf;
138
134
  }
139
135
  /**
140
136
  * Creates a left-oriented triangle.
@@ -219,5 +215,6 @@
219
215
  const G = Highcharts;
220
216
  ArrowSymbols.compose(G.SVGRenderer);
221
217
 
218
+ return Highcharts;
222
219
  });
223
220
  }));
@@ -1,5 +1,5 @@
1
- /**
2
- * Highcharts JS v11.3.0 (2024-01-10)
1
+ !/**
2
+ * Highcharts JS v11.4.0 (2024-03-04)
3
3
  *
4
4
  * Boost module
5
5
  *
@@ -7,4 +7,4 @@
7
7
  * Author: Torstein Honsi
8
8
  *
9
9
  * License: www.highcharts.com/license
10
- */!function(t){"object"==typeof module&&module.exports?(t.default=t,module.exports=t):"function"==typeof define&&define.amd?define("highcharts/modules/boost-canvas",["highcharts"],function(e){return t(e),t.Highcharts=e,t}):t("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(t){"use strict";var e=t?t._modules:{};function i(t,e,i,s){t.hasOwnProperty(e)||(t[e]=s.apply(null,i),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:e,module:t[e]}})))}i(e,"Extensions/Boost/Boostables.js",[],function(){return["area","areaspline","arearange","column","columnrange","bar","line","scatter","heatmap","bubble","treemap"]}),i(e,"Extensions/Boost/BoostableMap.js",[e["Extensions/Boost/Boostables.js"]],function(t){let e={};return t.forEach(t=>{e[t]=!0}),e}),i(e,"Extensions/Boost/BoostChart.js",[e["Extensions/Boost/BoostableMap.js"],e["Core/Globals.js"],e["Core/Utilities.js"]],function(t,e,i){let{composed:s}=e,{addEvent:o,pick:r,pushUnique:n}=i;function a(e){let i=e.series,s=e.boost=e.boost||{},o=e.options.boost||{},n=r(o.seriesThreshold,50);if(i.length>=n)return!0;if(1===i.length)return!1;let a=o.allowForce;if(void 0===a){for(let t of(a=!0,e.xAxis))if(r(t.min,-1/0)>r(t.dataMin,-1/0)||r(t.max,1/0)<r(t.dataMax,1/0)){a=!1;break}}if(void 0!==s.forceChartBoost){if(a)return s.forceChartBoost;s.forceChartBoost=void 0}let l=0,h=0,d;for(let e of i)0!==(d=e.options).boostThreshold&&!1!==e.visible&&"heatmap"!==e.type&&(t[e.type]&&++l,function(...t){let e=-Number.MAX_VALUE;return t.forEach(function(t){if(null!=t&&void 0!==t.length&&t.length>0)return e=t.length,!0}),e}(e.processedXData,d.data,e.points)>=(d.boostThreshold||Number.MAX_VALUE)&&++h);return s.forceChartBoost=a&&(l===i.length&&h===l||h>5),s.forceChartBoost}function l(t){function e(){t.boost&&t.boost.wgl&&a(t)&&t.boost.wgl.render(t)}o(t,"predraw",function(){t.boost=t.boost||{},t.boost.forceChartBoost=void 0,t.boosted=!1,t.boost.clear&&t.boost.clear(),t.boost.canvas&&t.boost.wgl&&a(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)}),o(t,"load",e,{order:-1}),o(t,"redraw",e);let i=-1,s=-1;o(t.pointer,"afterGetHoverData",()=>{let e=t.hoverSeries;if(t.boost=t.boost||{},t.boost.markerGroup&&e){let o=t.inverted?e.yAxis:e.xAxis,r=t.inverted?e.xAxis:e.yAxis;(o&&o.pos!==i||r&&r.pos!==s)&&(t.boost.markerGroup.translate(o.pos,r.pos),i=o.pos,s=r.pos)}})}return{compose:function t(e,i){return i&&n(s,t)&&e.prototype.callbacks.push(l),e},getBoostClipRect:function(t,e){let i={x:t.plotLeft,y:t.plotTop,width:t.plotWidth,height:t.navigator?t.navigator.top+t.navigator.height-t.plotTop:t.plotHeight};if(e.getClipBox){let{xAxis:s,yAxis:o}=e;if(i=e.getClipBox(),t.inverted){let t=i.width;i.width=i.height,i.height=t,i.x=o.pos,i.y=s.pos}else i.x=s.pos,i.y=o.pos}if(e===t){let e=t.inverted?t.xAxis:t.yAxis;e.length<=1&&(i.y=Math.min(e[0].pos,i.y),i.height=e[0].pos-t.plotTop+e[0].len)}return i},isChartSeriesBoosting:a}}),i(e,"Extensions/Boost/WGLDrawMode.js",[],function(){return{area:"LINES",arearange:"LINES",areaspline:"LINES",column:"LINES",columnrange:"LINES",bar:"LINES",line:"LINE_STRIP",scatter:"POINTS",heatmap:"TRIANGLES",treemap:"TRIANGLES",bubble:"POINTS"}}),i(e,"Extensions/Boost/WGLShader.js",[e["Core/Utilities.js"]],function(t){let{clamp:e,error:i,pick:s}=t;return 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 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 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 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 checkTreshold) {\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 (checkTreshold > 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 && 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&&i("[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,i,o,r=1){let n=t.options,a=Number.MAX_VALUE,l=-Number.MAX_VALUE;if(this.gl&&this.shaderProgram&&t.is("bubble")){let h=t.getPxExtremes();a=s(n.zMin,e(i,!1===n.displayNegative?n.zThreshold:-Number.MAX_VALUE,a)),l=s(n.zMax,Math.max(l,o)),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",h.minPxSize*r),this.setUniform("bubbleMaxSize",h.maxPxSize*r),this.setUniform("bubbleZMin",a),this.setUniform("bubbleZMax",l),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?1:0)}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?1:0)}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)}}}}),i(e,"Extensions/Boost/WGLVertexBuffer.js",[],function(){return 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;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))}}}),i(e,"Extensions/Boost/WGLRenderer.js",[e["Core/Color/Color.js"],e["Core/Globals.js"],e["Core/Utilities.js"],e["Extensions/Boost/WGLDrawMode.js"],e["Extensions/Boost/WGLShader.js"],e["Extensions/Boost/WGLVertexBuffer.js"]],function(t,e,i,s,o,r){let{parse:n}=t,{doc:a,win:l}=e,{isNumber:h,isObject:d,merge:c,objectEach:u,pick:g}=i,f={column:!0,columnrange:!0,bar:!0,area:!0,areaspline:!0,arearange:!0},p={scatter:!0,bubble:!0},m=["webgl","experimental-webgl","moz-webgl","webkit-3d"];class b{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.xData||t.options.xData||t.processedXData,s=(e?t.data:i||t.options.data).length,"treemap"===t.type?s*=12:"heatmap"===t.type?s*=6:f[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||l.devicePixelRatio||1}setOptions(t){"pixelRatio"in t||(t.pixelRatio=1),c(!0,this.settings,t)}allocateBuffer(t){let e=this.vbuffer,i=0;this.settings.usePreallocated&&(t.series.forEach(t=>{t.boosted&&(i+=b.seriesPointCount(t))}),e&&e.allocate(i))}allocateBufferForSingleSeries(t){let e=this.vbuffer,i=0;this.settings.usePreallocated&&(t.boosted&&(i=b.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,r=t.pointArrayMap&&"low,high"===t.pointArrayMap.join(","),{chart:a,options:l,sorted:h,xAxis:c,yAxis:u}=t,g=!!l.stacking,p=l.data,m=t.xAxis.getExtremes(),b=m.min-(t.xAxis.minPointOffset||0),x=m.max+(t.xAxis.minPointOffset||0),A=t.yAxis.getExtremes(),v=A.min-(t.yAxis.minPointOffset||0),y=A.max+(t.yAxis.minPointOffset||0),P=t.xData||l.xData||t.processedXData,T=t.yData||l.yData||t.processedYData,E=t.zData||l.zData||t.processedZData,S=!P||0===P.length,C=l.connectNulls,M=t.points||!1,R=g?t.data:P||p,U={x:Number.MAX_VALUE,y:0},k={x:-Number.MAX_VALUE,y:0},D=void 0===a.index,w=f[t.type],B=l.zoneAxis||"y",L=l.zones||!1,z=l.threshold,N=this.getPixelRatio(),_=t.chart.plotWidth,I=!1,G=!1,O,X,V=0,j=!1,F,Y,H,W,K=-1,Z=!1,q=!1,Q,J=!1,$=!1,tt=!1,te=!1,ti=!0,ts=!0,to,tr=!1,tn=!1,ta=0;if(l.boostData&&l.boostData.length>0)return;if(l.gapSize&&(tn="value"!==l.gapUnit?l.gapSize*t.closestPointRange:l.gapSize),L&&(to=[],L.forEach((t,e)=>{if(t.color){let i=n(t.color).rgba;i[0]/=255,i[1]/=255,i[2]/=255,to[e]=i,tr||void 0!==t.value||(tr=i)}}),!tr)){let e=t.pointAttribs&&t.pointAttribs().fill||t.color;tr=n(e).rgba,tr[0]/=255,tr[1]/=255,tr[2]/=255}a.inverted&&(_=t.chart.plotHeight),t.closestPointRangePx=Number.MAX_VALUE;let tl=t=>{t&&(e.colorData.push(t[0]),e.colorData.push(t[1]),e.colorData.push(t[2]),e.colorData.push(t[3]))},th=(t,r,n,a=1,l)=>{tl(l),1!==N&&(!s.useGPUTranslations||e.skipTranslation)&&(t*=N,r*=N,a*=N),s.usePreallocated&&o?(o.push(t,r,n?1:0,a),ta+=4):(i.push(t),i.push(r),i.push(n?N:0),i.push(a))},td=()=>{e.segments.length&&(e.segments[e.segments.length-1].to=i.length||ta)},tc=()=>{e.segments.length&&e.segments[e.segments.length-1].from===(i.length||ta)||(td(),e.segments.push({from:i.length||ta}))},tu=(t,e,i,s,o)=>{tl(o),th(t+i,e),tl(o),th(t,e),tl(o),th(t,e+s),tl(o),th(t,e+s),tl(o),th(t+i,e+s),tl(o),th(t+i,e)};if(tc(),M&&M.length>0){e.skipTranslation=!0,e.drawMode="TRIANGLES",M[0].node&&M[0].node.levelDynamic&&M.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}),M.forEach(e=>{let i,s;let o=e.plotY;if(void 0!==o&&!isNaN(o)&&null!==e.y&&e.shapeArgs){let{x:o=0,y:r=0,width:l=0,height:h=0}=e.shapeArgs;i=(s=a.styledMode?e.series.colorAttribs(e):s=e.series.pointAttribs(e))["stroke-width"]||0,tt=n(s.fill).rgba,tt[0]/=255,tt[1]/=255,tt[2]/=255,t.is("treemap")&&(i=i||1,X=n(s.stroke).rgba,X[0]/=255,X[1]/=255,X[2]/=255,tu(o,r,l,h,X),i/=2),t.is("heatmap")&&a.inverted&&(o=c.len-o,r=u.len-r,l=-l,h=-h),tu(o+i,r+i,l-2*i,h-2*i,tt)}}),td();return}for(;K<R.length-1;){if(void 0===(H=R[++K]))continue;if(D)break;let i=p&&p[K];if(!S&&d(i,!0)&&i.color&&(tt=n(i.color).rgba,tt[0]/=255,tt[1]/=255,tt[2]/=255),S?(F=H[0],Y=H[1],R[K+1]&&(q=R[K+1][0]),R[K-1]&&(Z=R[K-1][0]),H.length>=3&&(W=H[2],H[2]>e.zMax&&(e.zMax=H[2]),H[2]<e.zMin&&(e.zMin=H[2]))):(F=H,Y=T[K],R[K+1]&&(q=R[K+1]),R[K-1]&&(Z=R[K-1]),E&&E.length&&(W=E[K],E[K]>e.zMax&&(e.zMax=E[K]),E[K]<e.zMin&&(e.zMin=E[K]))),!C&&(null===F||null===Y)){tc();continue}if(q&&q>=b&&q<=x&&(J=!0),Z&&Z>=b&&Z<=x&&($=!0),r?(S&&(Y=H.slice(1,3)),Q=Y[0],Y=Y[1]):g&&(F=H.x,Q=(Y=H.stackY)-H.y),null!=v&&null!=y&&(ti=Y>=v&&Y<=y),F>x&&k.x<x&&(k.x=F,k.y=Y),F<b&&U.x>b&&(U.x=F,U.y=Y),null!==Y||!C){if(null===Y||!ti&&!J&&!$){tc();continue}if(h&&(q>=b||F>=b)&&(Z<=x||F<=x)&&(te=!0),te||J||$){if(tn&&F-Z>tn&&tc(),L){let t;L.some((e,i)=>{let s=L[i-1];return"x"===B?void 0!==e.value&&F<=e.value&&(to[i]&&(!s||F>=s.value)&&(t=to[i]),!0):void 0!==e.value&&Y<=e.value&&(to[i]&&(!s||Y>=s.value)&&(t=to[i]),!0)}),tt=t||tr||tt}if(s.useGPUTranslations||(e.skipTranslation=!0,F=c.toPixels(F,!0),Y=u.toPixels(Y,!0),!(F>_)||"POINTS"!==e.drawMode)){if(e.hasMarkers&&te&&!1!==I&&(t.closestPointRangePx=Math.min(t.closestPointRangePx,Math.abs(F-I))),!s.useGPUTranslations&&!s.usePreallocated&&I&&1>Math.abs(F-I)&&G&&1>Math.abs(Y-G)){s.debug.showSkipSummary&&++V;continue}w&&(O=Q,(!1===Q||void 0===Q)&&(O=Y<0?Y:0),(r||g)&&!u.logarithmic||(O=Math.max(null===z?v:z,v)),s.useGPUTranslations||(O=u.toPixels(O,!0)),th(F,O,0,0,tt)),l.step&&!ts&&th(F,G,0,2,tt),th(F,Y,0,"bubble"===t.type?W||1:2,tt),I=F,G=Y,j=!0,ts=!1}}}}s.debug.showSkipSummary&&console.log("skipped points:",V);let tg=(t,i)=>{if(s.useGPUTranslations||(e.skipTranslation=!0,t.x=c.toPixels(t.x,!0),t.y=u.toPixels(t.y,!0)),i){this.data=[t.x,t.y,0,2].concat(this.data);return}th(t.x,t.y,0,2)};!j&&!1!==C&&"line_strip"===t.drawMode&&(U.x<Number.MAX_VALUE&&tg(U,!0),k.x>-Number.MAX_VALUE&&tg(k)),td()}pushSeries(t){let e=this.markerData,i=this.series,o=this.settings;i.length>0&&i[i.length-1].hasMarkers&&(i[i.length-1].markerTo=e.length),o.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:s[t.type]||"LINE_STRIP"};t.index>=i.length?i.push(r):i[t.index]=r,this.pushSeriesData(t,r),o.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("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("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(i){let s=this.gl,o=this.settings,a=this.shader,l=this.vbuffer,d=this.getPixelRatio();if(!i)return!1;this.width=i.chartWidth*d,this.height=i.chartHeight*d;let c=this.height,u=this.width;if(!s||!a||!u||!c)return!1;o.debug.timeRendering&&console.time("gl rendering"),s.canvas.width=u,s.canvas.height=c,a.bind(),s.viewport(0,0,u,c),a.setPMatrix(b.orthoMatrix(u,c)),o.lineWidth>1&&!e.isMS&&s.lineWidth(o.lineWidth),l&&(l.build(this.data,"aVertexPosition",4),l.bind()),a.setInverted(i.inverted),this.series.forEach((e,c)=>{let u=e.series.options,f=u.marker,m=void 0!==u.lineWidth?u.lineWidth:1,b=u.threshold,x=h(b),A=e.series.yAxis.getThreshold(b),v=g(u.marker?u.marker.enabled:null,!!e.series.xAxis.isRadial||null,e.series.closestPointRangePx>2*((u.marker?u.marker.radius:10)||10)),y=this.textureHandles[f&&f.symbol||e.series.symbol]||this.textureHandles.circle,P,T,E,S=[];if(0!==e.segments.length&&e.segments[0].from!==e.segments[0].to&&(y.isReady&&(s.bindTexture(s.TEXTURE_2D,y.handle),a.setTexture(y.handle)),i.styledMode?E=e.series.markerGroup&&e.series.markerGroup.getStyle("fill"):(E="POINTS"===e.drawMode&&e.series.pointAttribs&&e.series.pointAttribs().fill||e.series.color,u.colorByPoint&&(E=e.series.chart.options.colors[c])),e.series.fillOpacity&&u.fillOpacity&&(E=new t(E).setOpacity(g(u.fillOpacity,1)).get()),S=n(E).rgba,o.useAlpha||(S[3]=1),"LINES"===e.drawMode&&o.useAlpha&&S[3]<1&&(S[3]/=10),"add"===u.boostBlending?(s.blendFunc(s.SRC_ALPHA,s.ONE),s.blendEquation(s.FUNC_ADD)):"mult"===u.boostBlending||"multiply"===u.boostBlending?s.blendFunc(s.DST_COLOR,s.ZERO):"darken"===u.boostBlending?(s.blendFunc(s.ONE,s.ONE),s.blendEquation(s.FUNC_MIN)):s.blendFuncSeparate(s.SRC_ALPHA,s.ONE_MINUS_SRC_ALPHA,s.ONE,s.ONE_MINUS_SRC_ALPHA),a.reset(),e.colorData.length>0?(a.setUniform("hasColor",1),(T=new r(s,a)).build(Array(e.segments[0].from).concat(e.colorData),"aColor",4),T.bind()):(a.setUniform("hasColor",0),s.disableVertexAttribArray(s.getAttribLocation(a.getProgram(),"aColor"))),a.setColor(S),this.setXAxis(e.series.xAxis),this.setYAxis(e.series.yAxis),this.setThreshold(x,A),"POINTS"===e.drawMode&&a.setPointSize(2*g(u.marker&&u.marker.radius,.5)*d),a.setSkipTranslation(e.skipTranslation),"bubble"===e.series.type&&a.setBubbleUniforms(e.series,e.zMin,e.zMax,d),a.setDrawAsCircle(p[e.series.type]||!1),l)){if(m>0||"LINE_STRIP"!==e.drawMode)for(P=0;P<e.segments.length;P++)l.render(e.segments[P].from,e.segments[P].to,e.drawMode);if(e.hasMarkers&&v)for(a.setPointSize(2*g(u.marker&&u.marker.radius,5)*d),a.setDrawAsCircle(!0),P=0;P<e.segments.length;P++)l.render(e.segments[P].from,e.segments[P].to,"POINTS")}}),o.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(b.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<m.length&&(this.gl=t.getContext(m[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 n=this.shader=new o(s);if(!n)return!1;this.vbuffer=new r(s,n);let l=(t,e)=>{let i={isReady:!1,texture:a.createElement("canvas"),handle:s.createTexture()},o=i.texture.getContext("2d");this.textureHandles[t]=i,i.texture.width=512,i.texture.height=512,o.mozImageSmoothingEnabled=!1,o.webkitImageSmoothingEnabled=!1,o.msImageSmoothingEnabled=!1,o.imageSmoothingEnabled=!1,o.strokeStyle="rgba(255, 255, 255, 0)",o.fillStyle="#FFF",e(o);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(t){}};return l("circle",t=>{t.beginPath(),t.arc(256,256,256,0,2*Math.PI),t.stroke(),t.fill()}),l("square",t=>{t.fillRect(0,0,512,512)}),l("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()}),l("triangle",t=>{t.beginPath(),t.moveTo(0,512),t.lineTo(256,0),t.lineTo(512,512),t.lineTo(0,512),t.fill()}),l("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&&(u(this.textureHandles,e=>{e.handle&&t.deleteTexture(e.handle)}),t.canvas.width=1,t.canvas.height=1)}}return b}),i(e,"Extensions/Boost/BoostSeries.js",[e["Extensions/Boost/BoostableMap.js"],e["Extensions/Boost/Boostables.js"],e["Extensions/Boost/BoostChart.js"],e["Core/Defaults.js"],e["Core/Globals.js"],e["Core/Utilities.js"],e["Extensions/Boost/WGLRenderer.js"]],function(t,e,i,s,o,r,n){let a,l;let{getBoostClipRect:h,isChartSeriesBoosting:d}=i,{getOptions:c}=s,{composed:u,doc:g,noop:f,win:p}=o,{addEvent:m,destroyObjectProperties:b,error:x,extend:A,fireEvent:v,isArray:y,isNumber:P,pick:T,pushUnique:E,wrap:S,defined:C}=r;function M(t,e){let i=e.boost;t&&i&&i.target&&i.canvas&&!d(e.chart)&&t.allocateBufferForSingleSeries(e)}function R(t){return T(t&&t.options&&t.options.boost&&t.options.boost.enabled,!0)}function U(t,e){let i=t.constructor,s=t.seriesGroup||e.group,o=t.chartWidth,r=t.chartHeight,a=t,c="undefined"!=typeof SVGForeignObjectElement;a=d(t)?t:e;let u=a.boost=a.boost||{};return c=!1,l||(l=g.createElement("canvas")),!u.target&&(u.canvas=l,t.renderer.forExport||!c?(a.renderTarget=u.target=t.renderer.image("",0,0,o,r).addClass("highcharts-boost-canvas").add(s),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(s),a.renderTarget=u.target=g.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(){o=t.chartWidth,r=t.chartHeight,(u.targetFo||u.target).attr({x:0,y:0,width:o,height:r}).css({pointerEvents:"none",mixedBlendMode:"normal",opacity:1}),a instanceof i&&a.boost.markerGroup.translate(t.plotLeft,t.plotTop)},u.clipRect=t.renderer.clipRect(),(u.targetFo||u.target).attr({zIndex:e.options.zIndex}).clip(u.clipRect),a instanceof i&&(a.boost.markerGroup=a.renderer.g().add(s).translate(e.xAxis.pos,e.yAxis.pos))),u.canvas.width=o,u.canvas.height=r,u.clipRect&&u.clipRect.attr(h(t,a)),u.resize(),u.clear(),!u.wgl&&(u.wgl=new n(t=>{t.settings.debug.timeBufferCopy&&console.time("buffer copy"),u.copy(),t.settings.debug.timeBufferCopy&&console.timeEnd("buffer copy")}),u.wgl.init(u.canvas)||x("[highcharts boost] - unable to init WebGL renderer"),u.wgl.setOptions(t.options.boost||{}),a instanceof i&&u.wgl.allocateBuffer(t)),u.wgl.setSize(o,r),u.wgl}function k(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()}["graph","area","tracker"].forEach(e=>{let i=t[e];i&&(t[e]=i.destroy())}),t.zones.forEach(b)}function D(t,e,i,s,o,r){o=o||0,s=s||3e3;let n=o+s,a=!0;for(;a&&o<n&&o<t.length;)a=e(t[o],o),++o;a&&(o<t.length?r?D(t,e,i,s,o,r):p.requestAnimationFrame?p.requestAnimationFrame(function(){D(t,e,i,s,o)}):setTimeout(D,0,t,e,i,s,o):i&&i())}function w(t,e){let i=t.options,s=i.data,o=t.xAxis&&t.xAxis.options,r=t.yAxis&&t.yAxis.options,n=t.colorAxis&&t.colorAxis.options;return s.length>(i.boostThreshold||Number.MAX_VALUE)&&P(r.min)&&P(r.max)&&(!e||P(o.min)&&P(o.max))&&(!n||P(n.min)&&P(n.max))}let B=(t,e)=>!t.forceCrop&&(d(t.chart)||(e?e.length:0)>=(t.options.boostThreshold||Number.MAX_VALUE));function L(){let t=this,e=t.chart;e.boost&&e.boost.markerGroup===t.markerGroup&&(t.markerGroup=null),e.hoverPoints&&(e.hoverPoints=e.hoverPoints.filter(function(e){return e.series===t})),e.hoverPoint&&e.hoverPoint.series===t&&(e.hoverPoint=null)}function z(){let t=this.boost;t&&t.canvas&&t.target&&(t.wgl&&t.wgl.clear(),t.clear&&t.clear())}function N(t){let e=t.boost;e&&e.canvas&&e.target&&e.wgl&&!d(t.chart)&&e.wgl.render(t.chart)}function _(t,e){let i=t.options,s=t.xAxis,o=t.pointClass;if(e instanceof o)return e;let r=t.xData||i.xData||t.processedXData||!1,n=new o(t,(t.options.data||[])[e.i],r?r[e.i]:void 0);return n.category=T(s.categories?s.categories[n.x]:n.x,n.x),n.dist=e.dist,n.distX=e.distX,n.plotX=e.plotX,n.plotY=e.plotY,n.index=e.i,n.percentage=e.percentage,n.isInside=t.isPointInside(n),n}function I(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,r=e.cropThreshold,n=e.data||this.data,a=this.xData,l=i.getExtremes(),h=l.max,d=l.min,c=this.yData,u=s.getExtremes(),g=u.max,f=u.min;if(!this.boosted&&i.old&&s.old&&d>=(i.old.min??-Number.MAX_VALUE)&&h<=(i.old.max??Number.MAX_VALUE)&&f>=(s.old.min??-Number.MAX_VALUE)&&g<=(s.old.max??Number.MAX_VALUE))return this.processedXData??(this.processedXData=a),this.processedYData??(this.processedYData=c),!0;if(!o||n.length<o||r&&!this.forceCrop&&!this.getExtremesFromAll&&!e.getExtremesFromAll&&n.length<r)return this.processedXData=a,this.processedYData=c,!0;let p=[],m=[],b=[],x=!1,A,v;for(let t=0,e=a.length;t<e;++t)A=a[t],v=c[t],A>=d&&A<=h&&v>=f&&v<=g?(p.push({x:A,y:v}),m.push(A),b.push(v)):x=!0;return this.cropped=x,this.cropStart=0,this.processedXData=m,this.processedYData=b,B(this,m)||(this.processedData=p),!0}function G(){let t=this.options||{},e=this.chart,i=this.xAxis,s=this.yAxis,o=t.xData||this.processedXData,r=t.yData||this.processedYData,n=this.processedData||t.data,l=i.getExtremes(),h=l.min-(i.minPointOffset||0),c=l.max+(i.minPointOffset||0),u=s.getExtremes(),g=u.min-(s.minPointOffset||0),p=u.max+(s.minPointOffset||0),m={},b=!!this.sampling,x=t.enableMouseTracking,A=t.threshold,y=this.pointArrayMap&&"low,high"===this.pointArrayMap.join(","),P=!!t.stacking,T=this.cropStart||0,E=this.requireSorting,S=!o,R="x"===t.findNearestPointBy,w=this.xData||this.options.xData||this.processedXData||!1,B=!1,L,z=s.getThreshold(A),_,I,G,O;if(B=U(e,this),e.boosted=!0,!this.visible)return;(this.points||this.graph)&&k(this),d(e)?(this.markerGroup&&this.markerGroup!==e.boost.markerGroup&&this.markerGroup.destroy(),this.markerGroup=e.boost.markerGroup,this.boost&&this.boost.target&&(this.renderTarget=this.boost.target=this.boost.target.destroy())):(e.boost&&this.markerGroup===e.boost.markerGroup&&(this.markerGroup=void 0),this.markerGroup=this.plotGroup("markerGroup","markers",!0,1,e.seriesGroup));let X=this.points=[],V=(t,o,r,n)=>{let l=!!w&&w[T+r],h=t=>{e.inverted&&(t=i.len-t,o=s.len-o),X.push({destroy:f,x:l,clientX:t,plotX:t,plotY:o,i:T+r,percentage:n})};t=Math.ceil(t),a=R?t:t+","+o,x&&(m[a]?l===w[w.length-1]&&(X.length--,h(t)):(m[a]=!0,h(t)))};this.buildKDTree=f,B&&(M(B,this),B.pushSeries(this),N(this));let j=B.settings;e.renderer.forExport||(j.debug.timeKDTree&&console.time("kd tree building"),D(P?this.data.slice(T):o||n,function(t,o){let n=void 0===e.index,a,l,d,u,f,m=!1,x=!0;return!C(t)||(!n&&(S?(a=t[0],l=t[1]):(a=t,l=r[o]),y?(S&&(l=t.slice(1,3)),m=l[0],l=l[1]):P&&(a=t.x,m=(l=t.stackY)-t.y,f=t.percentage),E||(x=(l||0)>=g&&l<=p),null!==l&&a>=h&&a<=c&&x&&(d=i.toPixels(a,!0),b?((void 0===G||d===L)&&(y||(m=l),(void 0===O||l>I)&&(I=l,O=o),(void 0===G||m<_)&&(_=m,G=o)),R&&d===L||(void 0!==G&&(u=s.toPixels(I,!0),z=s.toPixels(_,!0),V(d,u,O,f),z!==u&&V(d,z,G,f)),G=O=void 0,L=d)):V(d,u=Math.ceil(s.toPixels(l,!0)),o,f))),!n)},()=>{v(this,"renderedCanvas"),delete this.buildKDTree,this.options&&this.buildKDTree(),j.debug.timeKDTree&&console.timeEnd("kd tree building")}))}function O(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=U(this.chart,this);i&&(M(i,this),i.pushSeries(this)),N(this)}function X(t){return this.boosted&&w(this)?{}:t.apply(this,[].slice.call(arguments,1))}function V(e){let i=this.options.data;if(R(this.chart)&&t[this.type]){let t=this.is("scatter")&&!this.is("bubble");if((!B(this,i)||t||this.options.stacking||!w(this,!0))&&(t&&!this.yAxis.treeGrid?I.call(this,arguments[1]):e.apply(this,[].slice.call(arguments,1)),i=this.processedXData),this.boosted=B(this,i),this.boosted){let t;this.options.data&&this.options.data.length&&!P(t=this.getFirstValidPoint(this.options.data))&&!y(t)&&x(12,!1,this.chart),function(t){t.boost=t.boost||{getPoint:e=>_(t,e)};let e=t.boost.altered=[];if(["allowDG","directTouch","stickyTracking"].forEach(i=>{e.push({prop:i,val:t[i],own:Object.hasOwnProperty.call(t,i)})}),t.allowDG=!1,t.directTouch=!1,t.stickyTracking=!0,t.finishedAnimating=!0,t.labelBySeries&&(t.labelBySeries=t.labelBySeries.destroy()),t.is("scatter")&&t.data.length){for(let e of t.data)e?.destroy?.();t.data.length=0,t.points.length=0,delete t.processedData}}(this)}else!function(t){let e=t.boost;e&&((e.altered||[]).forEach(e=>{e.own?t[e.prop]=e.val:delete t[e.prop]}),e.clear&&e.clear())}(this)}else e.apply(this,[].slice.call(arguments,1))}function j(t){let e=t.apply(this,[].slice.call(arguments,1));return this.boost&&e?this.boost.getPoint(e):e}return{compose:function i(s,o,r){if(E(u,i)){let i=c().plotOptions,n=s.prototype;if(m(s,"destroy",L),m(s,"hide",z),r&&(n.renderCanvas=G),S(n,"getExtremes",X),S(n,"processData",V),S(n,"searchPoint",j),["translate","generatePoints","drawTracker","drawPoints","render"].forEach(e=>(function(e,i,s){function o(e){let i=this.options.stacking&&("translate"===s||"generatePoints"===s);this.boosted&&!i&&R(this.chart)&&"heatmap"!==this.type&&"treemap"!==this.type&&t[this.type]&&0!==this.options.boostThreshold?"render"===s&&this.renderCanvas&&this.renderCanvas():e.call(this)}if(S(e,s,o),"translate"===s)for(let t of["column","arearange","columnrange","heatmap","treemap"])i[t]&&S(i[t].prototype,s,o)})(n,o,e)),e.forEach(t=>{let e=i[t];e&&(e.boostThreshold=5e3,e.boostData=[],o[t].prototype.fillOpacity=!0)}),r){let{area:t,areaspline:e,bubble:i,column:s,heatmap:r,scatter:n,treemap:a}=o;if(t&&A(t.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),e&&A(e.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),i){let t=i.prototype;delete t.buildKDTree,S(t,"markerAttribs",function(t){return!this.boosted&&t.apply(this,[].slice.call(arguments,1))})}s&&A(s.prototype,{fill:!0,sampling:!0}),n&&(n.prototype.fill=!0),[r,a].forEach(t=>{t&&S(t.prototype,"drawPoints",O)})}}return s},destroyGraphics:k,eachAsync:D,getPoint:_}}),i(e,"Extensions/BoostCanvas.js",[e["Extensions/Boost/BoostChart.js"],e["Extensions/Boost/BoostSeries.js"],e["Core/Color/Color.js"],e["Core/Globals.js"],e["Core/Utilities.js"]],function(t,e,i,s,o){var r;let{getBoostClipRect:n,isChartSeriesBoosting:a}=t,{destroyGraphics:l}=e,{parse:h}=i,{composed:d,doc:c,noop:u}=s,{addEvent:g,fireEvent:f,isNumber:p,merge:m,pick:b,pushUnique:x,wrap:A}=o;return function(t){let s;let r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=";function v(t,e,i,s,o){o&&e!==o.clientX&&(t.moveTo(o.clientX,o.yBottom),t.lineTo(o.clientX,o.plotY),t.lineTo(e,i),t.lineTo(e,s))}function y(t,e,i,s,o){t.moveTo(e,i),t.arc(e,i,this.radii&&this.radii[o],0,2*Math.PI,!1)}function P(t,e,i,s){t.rect(e-1,i,1,s-i)}function T(){this.boost&&this.boost.copy&&this.boost.copy()}function E(){let t=this.boost||{};t.target&&t.target.attr({href:r}),t.canvas&&t.canvas.getContext("2d").clearRect(0,0,t.canvas.width,t.canvas.height)}function S(){a(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 C(t,e,i){t.lineTo(e,i)}function M(){let t;let e=this.chart,i=a(e)?e:this,s=i===e?e.seriesGroup:e.seriesGroup||this.group,o=e.chartWidth,l=e.chartHeight,h=function(t,e,i,s,o,r,n){t.call(this,i,e,s,o,r,n)},d=i.boost=i.boost||{};return t=d.targetCtx,d.canvas||(d.canvas=c.createElement("canvas"),d.target=e.renderer.image("",0,0,o,l).addClass("highcharts-boost-canvas").add(s),t=d.targetCtx=d.canvas.getContext("2d"),e.inverted&&["moveTo","lineTo","rect","arc"].forEach(e=>{A(t,e,h)}),d.copy=function(){d.target.attr({href:d.canvas.toDataURL("image/png")})},d.clear=function(){t.clearRect(0,0,d.canvas.width,d.canvas.height),i===d.target&&d.target.attr({href:r})},d.clipRect=e.renderer.clipRect(),d.target.clip(d.clipRect)),d.canvas.width!==o&&(d.canvas.width=o),d.canvas.height!==l&&(d.canvas.height=l),d.target.attr({x:0,y:0,width:o,height:l,style:"pointer-events: none",href:r}),d.clipRect&&d.clipRect.attr(n(e,i)),t}function R(){let t=this,n=t.options,a=t.chart,d=t.xAxis,c=t.yAxis,x=a.options.boost||{},A={timeRendering:x.timeRendering||!1,timeSeriesProcessing:x.timeSeriesProcessing||!1,timeSetup:x.timeSetup||!1},v=t.processedXData,y=t.processedYData,P=n.data,T=d.getExtremes(),E=T.min,S=T.max,C=c.getExtremes(),M=C.min,R=C.max,U={},k=!!t.sampling,D=n.marker&&n.marker.radius,w=t.cvsStrokeBatch||1e3,B=n.enableMouseTracking,L=n.threshold,z=p(L),N=c.getThreshold(L),_=t.fill,I=t.pointArrayMap&&"low,high"===t.pointArrayMap.join(","),G=!!n.stacking,O=t.cropStart||0,X=a.options.loading,V=t.requireSorting,j=n.connectNulls,F=!v,Y=G?t.data:v||P,H=t.fillOpacity?i.parse(t.color).setOpacity(b(n.fillOpacity,.75)).get():t.color,W="x"===n.findNearestPointBy,K=this.boost||{},Z=t.cvsDrawPoint,q=n.lineWidth?t.cvsLineTo:void 0,Q=D&&D<=1?t.cvsMarkerSquare:t.cvsMarkerCircle;K.target&&K.target.attr({href:r}),(t.points||t.graph)&&l(t),t.plotGroup("group","series",t.visible?"visible":"hidden",n.zIndex,a.seriesGroup),t.markerGroup=t.group,g(t,"destroy",function(){t.markerGroup=null});let J=this.points=[],$=this.getContext();if(t.buildKDTree=u,K.clear&&K.clear(),!t.visible)return;P.length>99999&&(a.options.loading=m(X,{labelStyle:{backgroundColor:h("#ffffff").setOpacity(.75).get(),padding:"1em",borderRadius:"0.5em"},style:{backgroundColor:"none",opacity:1}}),o.clearTimeout(s),a.showLoading("Drawing..."),a.options.loading=X),A.timeRendering&&console.time("canvas rendering");let tt=0,te,ti,ts=N,to,tr,tn,ta,tl,th,td=function(){_?($.fillStyle=H,$.fill()):($.strokeStyle=t.color,$.lineWidth=n.lineWidth,$.stroke())},tc=function(e,i,s,o){0===tt&&($.beginPath(),q&&($.lineJoin="round")),a.scroller&&"highcharts-navigator-series"===t.options.className?(i+=a.scroller.top,s&&(s+=a.scroller.top)):i+=a.plotTop,e+=a.plotLeft,to?$.moveTo(e,i):Z?Z($,e,i,s,ti):q?q($,e,i):Q&&Q.call(t,$,e,i,D,o),(tt+=1)===w&&(td(),tt=0),ti={clientX:e,plotY:i,yBottom:s}},tu=this.xData||this.options.xData||this.processedXData||!1,tg=function(t,e,i){th=W?t:t+","+e,B&&!U[th]&&(U[th]=!0,a.inverted&&(t=d.len-t,e=c.len-e),J.push({x:!!tu&&tu[O+i],clientX:t,plotX:t,plotY:e,i:O+i}))};e.eachAsync(Y,(e,i)=>{let s=void 0===a.index,o,r,n,l,h,u,g=!1,f=!1,p=NaN,m=NaN,b=!0;return!s&&(F?(o=e[0],r=e[1],Y[i+1]&&(p=Y[i+1][0]),Y[i-1]&&(m=Y[i-1][0])):(o=e,r=y[i],Y[i+1]&&(p=Y[i+1]),Y[i-1]&&(m=Y[i-1])),p&&p>=E&&p<=S&&(g=!0),m&&m>=E&&m<=S&&(f=!0),I?(F&&(r=e.slice(1,3)),u=r[0],r=r[1]):G&&(o=e.x,u=(r=e.stackY)-e.y),h=null===r,V||(b=r>=M&&r<=R),!h&&(o>=E&&o<=S&&b||g||f)&&(n=Math.round(d.toPixels(o,!0)),k?((void 0===ta||n===te)&&(I||(u=r),(void 0===tl||r>tn)&&(tn=r,tl=i),(void 0===ta||u<tr)&&(tr=u,ta=i)),n!==te&&(void 0!==ta&&(l=c.toPixels(tn,!0),ts=c.toPixels(tr,!0),tc(n,z?Math.min(l,N):l,z?Math.max(ts,N):ts,i),tg(n,l,tl),ts!==l&&tg(n,ts,ta)),ta=tl=void 0,te=n)):(tc(n,l=Math.round(c.toPixels(r,!0)),ts,i),tg(n,l,i))),to=h&&!j,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 e=a.loadingDiv,i=a.loadingShown;td(),t.canvasToSVG(),A.timeRendering&&console.timeEnd("canvas rendering"),f(t,"renderedCanvas"),i&&(e.style.transition="opacity 250ms",e.opacity=0,a.loadingShown=!1,s=setTimeout(function(){e.parentNode&&e.parentNode.removeChild(e),a.loadingDiv=a.loadingSpan=null},250)),delete t.buildKDTree,t.buildKDTree()},a.renderer.forExport?Number.MAX_VALUE:void 0)}function U(t,e,i,s){t.moveTo(e,i),t.arc(e,i,s,0,2*Math.PI,!1)}function k(t,e,i,s){t.rect(e-s,i-s,2*s,2*s)}function D(){let t=this.chart,e=this.getContext(),i=this.chart.inverted,s=this.xAxis,o=this.yAxis;e?(this.points.forEach(r=>{let n=r.plotY,a;if(void 0!==n&&!isNaN(n)&&null!==r.y&&e){let{x:n=0,y:l=0,width:h=0,height:d=0}=r.shapeArgs||{};a=t.styledMode?r.series.colorAttribs(r):r.series.pointAttribs(r),e.fillStyle=a.fill,i?e.fillRect(o.len-l+s.left,s.len-n+o.top,-d,-h):e.fillRect(n+s.left,l+o.top,h,d)}}),this.canvasToSVG()):this.chart.showLoading("Your browser doesn't support HTML5 canvas, <br>please use a modern browser")}t.compose=function t(e,i,s){if(x(d,t)){let t=i.prototype,{area:o,bubble:r,column:n,heatmap:a,scatter:l}=s;if(e.prototype.callbacks.push(t=>{g(t,"predraw",E),g(t,"render",T)}),t.canvasToSVG=S,t.cvsLineTo=C,t.getContext=M,t.renderCanvas=R,o){let t=o.prototype;t.cvsDrawPoint=v,t.fill=!0,t.fillOpacity=!0,t.sampling=!0}if(r){let t=r.prototype;t.cvsMarkerCircle=y,t.cvsStrokeBatch=1}if(n){let t=n.prototype;t.cvsDrawPoint=P,t.fill=!0,t.sampling=!0}if(a){let t=a.prototype;A(t,"drawPoints",D)}if(l){let t=l.prototype;t.cvsMarkerCircle=U,t.cvsMarkerSquare=k,t.fill=!0}}}}(r||(r={})),r}),i(e,"masters/modules/boost-canvas.src.js",[e["Core/Globals.js"],e["Extensions/BoostCanvas.js"]],function(t,e){t.initCanvasBoost=function(){e.compose(t.Chart,t.Series,t.seriesTypes)}})});
10
+ */function(t){"object"==typeof module&&module.exports?(t.default=t,module.exports=t):"function"==typeof define&&define.amd?define("highcharts/modules/boost-canvas",["highcharts"],function(e){return t(e),t.Highcharts=e,t}):t("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(t){"use strict";var e=t?t._modules:{};function i(t,e,i,s){t.hasOwnProperty(e)||(t[e]=s.apply(null,i),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:e,module:t[e]}})))}i(e,"Extensions/Boost/Boostables.js",[],function(){return["area","areaspline","arearange","column","columnrange","bar","line","scatter","heatmap","bubble","treemap"]}),i(e,"Extensions/Boost/BoostableMap.js",[e["Extensions/Boost/Boostables.js"]],function(t){let e={};return t.forEach(t=>{e[t]=!0}),e}),i(e,"Extensions/Boost/BoostChart.js",[e["Extensions/Boost/BoostableMap.js"],e["Core/Globals.js"],e["Core/Utilities.js"]],function(t,e,i){let{composed:s}=e,{addEvent:o,pick:r,pushUnique:n}=i;function a(e){let i=e.series,s=e.boost=e.boost||{},o=e.options.boost||{},n=r(o.seriesThreshold,50);if(i.length>=n)return!0;if(1===i.length)return!1;let a=o.allowForce;if(void 0===a){for(let t of(a=!0,e.xAxis))if(r(t.min,-1/0)>r(t.dataMin,-1/0)||r(t.max,1/0)<r(t.dataMax,1/0)){a=!1;break}}if(void 0!==s.forceChartBoost){if(a)return s.forceChartBoost;s.forceChartBoost=void 0}let l=0,h=0,d;for(let e of i)0!==(d=e.options).boostThreshold&&!1!==e.visible&&"heatmap"!==e.type&&(t[e.type]&&++l,function(...t){let e=-Number.MAX_VALUE;return t.forEach(function(t){if(null!=t&&void 0!==t.length&&t.length>0)return e=t.length,!0}),e}(e.processedXData,d.data,e.points)>=(d.boostThreshold||Number.MAX_VALUE)&&++h);return s.forceChartBoost=a&&(l===i.length&&h===l||h>5),s.forceChartBoost}function l(t){function e(){t.boost&&t.boost.wgl&&a(t)&&t.boost.wgl.render(t)}o(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&&a(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)}),o(t,"load",e,{order:-1}),o(t,"redraw",e);let i=-1,s=-1;o(t.pointer,"afterGetHoverData",()=>{let e=t.hoverSeries;if(t.boost=t.boost||{},t.boost.markerGroup&&e){let o=t.inverted?e.yAxis:e.xAxis,r=t.inverted?e.xAxis:e.yAxis;(o&&o.pos!==i||r&&r.pos!==s)&&(t.boost.markerGroup.translate(o.pos,r.pos),i=o.pos,s=r.pos)}})}return{compose:function(t,e){return e&&n(s,"Boost.Chart")&&t.prototype.callbacks.push(l),t},getBoostClipRect:function(t,e){let i={x:t.plotLeft,y:t.plotTop,width:t.plotWidth,height:t.navigator?t.navigator.top+t.navigator.height-t.plotTop:t.plotHeight};if(e.getClipBox){let{xAxis:s,yAxis:o}=e;if(i=e.getClipBox(),t.inverted){let t=i.width;i.width=i.height,i.height=t,i.x=o.pos,i.y=s.pos}else i.x=s.pos,i.y=o.pos}if(e===t){let e=t.inverted?t.xAxis:t.yAxis;e.length<=1&&(i.y=Math.min(e[0].pos,i.y),i.height=e[0].pos-t.plotTop+e[0].len)}return i},isChartSeriesBoosting:a}}),i(e,"Extensions/Boost/WGLDrawMode.js",[],function(){return{area:"LINES",arearange:"LINES",areaspline:"LINES",column:"LINES",columnrange:"LINES",bar:"LINES",line:"LINE_STRIP",scatter:"POINTS",heatmap:"TRIANGLES",treemap:"TRIANGLES",bubble:"POINTS"}}),i(e,"Extensions/Boost/WGLShader.js",[e["Core/Utilities.js"]],function(t){let{clamp:e,error:i,pick:s}=t;return 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 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 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 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 checkTreshold) {\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 (checkTreshold > 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 && 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&&i("[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,i,o,r=1){let n=t.options,a=Number.MAX_VALUE,l=-Number.MAX_VALUE;if(this.gl&&this.shaderProgram&&t.is("bubble")){let h=t.getPxExtremes();a=s(n.zMin,e(i,!1===n.displayNegative?n.zThreshold:-Number.MAX_VALUE,a)),l=s(n.zMax,Math.max(l,o)),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",h.minPxSize*r),this.setUniform("bubbleMaxSize",h.maxPxSize*r),this.setUniform("bubbleZMin",a),this.setUniform("bubbleZMax",l),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?1:0)}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?1:0)}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)}}}}),i(e,"Extensions/Boost/WGLVertexBuffer.js",[],function(){return 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;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))}}}),i(e,"Extensions/Boost/WGLRenderer.js",[e["Core/Color/Color.js"],e["Core/Globals.js"],e["Core/Utilities.js"],e["Extensions/Boost/WGLDrawMode.js"],e["Extensions/Boost/WGLShader.js"],e["Extensions/Boost/WGLVertexBuffer.js"]],function(t,e,i,s,o,r){let{parse:n}=t,{doc:a,win:l}=e,{isNumber:h,isObject:d,merge:c,objectEach:u,pick:g}=i,f={column:!0,columnrange:!0,bar:!0,area:!0,areaspline:!0,arearange:!0},p={scatter:!0,bubble:!0},m=["webgl","experimental-webgl","moz-webgl","webkit-3d"];class b{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.xData||t.options.xData||t.processedXData,s=(e?t.data:i||t.options.data).length,"treemap"===t.type?s*=12:"heatmap"===t.type?s*=6:f[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||l.devicePixelRatio||1}setOptions(t){"pixelRatio"in t||(t.pixelRatio=1),c(!0,this.settings,t)}allocateBuffer(t){let e=this.vbuffer,i=0;this.settings.usePreallocated&&(t.series.forEach(t=>{t.boosted&&(i+=b.seriesPointCount(t))}),e&&e.allocate(i))}allocateBufferForSingleSeries(t){let e=this.vbuffer,i=0;this.settings.usePreallocated&&(t.boosted&&(i=b.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,r=t.pointArrayMap&&"low,high"===t.pointArrayMap.join(","),{chart:a,options:l,sorted:h,xAxis:c,yAxis:u}=t,g=!!l.stacking,p=l.data,m=t.xAxis.getExtremes(),b=m.min-(t.xAxis.minPointOffset||0),x=m.max+(t.xAxis.minPointOffset||0),A=t.yAxis.getExtremes(),v=A.min-(t.yAxis.minPointOffset||0),y=A.max+(t.yAxis.minPointOffset||0),P=t.xData||l.xData||t.processedXData,T=t.yData||l.yData||t.processedYData,E=t.zData||l.zData||t.processedZData,S=!P||0===P.length,M=l.connectNulls,C=t.points||!1,U=g?t.data:P||p,R={x:Number.MAX_VALUE,y:0},k={x:-Number.MAX_VALUE,y:0},D=void 0===a.index,w=f[t.type],B=l.zoneAxis||"y",L=l.zones||!1,N=l.threshold,_=this.getPixelRatio(),z=t.chart.plotWidth,I=!1,G=!1,O,X,V=0,j=!1,F,Y,H,W,K=-1,Z=!1,q=!1,Q,J=!1,$=!1,tt=!1,te=!1,ti=!0,ts=!0,to,tr=!1,tn=!1,ta=0;if(l.boostData&&l.boostData.length>0)return;l.gapSize&&(tn="value"!==l.gapUnit?l.gapSize*t.closestPointRange:l.gapSize),L&&(to=[],L.forEach((t,e)=>{if(t.color){let i=n(t.color).rgba;i[0]/=255,i[1]/=255,i[2]/=255,to[e]=i,tr||void 0!==t.value||(tr=i)}}),tr||(tr=n(t.pointAttribs&&t.pointAttribs().fill||t.color).rgba,tr[0]/=255,tr[1]/=255,tr[2]/=255)),a.inverted&&(z=t.chart.plotHeight),t.closestPointRangePx=Number.MAX_VALUE;let tl=t=>{t&&(e.colorData.push(t[0]),e.colorData.push(t[1]),e.colorData.push(t[2]),e.colorData.push(t[3]))},th=(t,r,n,a=1,l)=>{tl(l),1!==_&&(!s.useGPUTranslations||e.skipTranslation)&&(t*=_,r*=_,a*=_),s.usePreallocated&&o?(o.push(t,r,n?1:0,a),ta+=4):(i.push(t),i.push(r),i.push(n?_:0),i.push(a))},td=()=>{e.segments.length&&(e.segments[e.segments.length-1].to=i.length||ta)},tc=()=>{e.segments.length&&e.segments[e.segments.length-1].from===(i.length||ta)||(td(),e.segments.push({from:i.length||ta}))},tu=(t,e,i,s,o)=>{tl(o),th(t+i,e),tl(o),th(t,e),tl(o),th(t,e+s),tl(o),th(t,e+s),tl(o),th(t+i,e+s),tl(o),th(t+i,e)};if(tc(),C&&C.length>0){e.skipTranslation=!0,e.drawMode="TRIANGLES",C[0].node&&C[0].node.levelDynamic&&C.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}),C.forEach(e=>{let i,s;let o=e.plotY;if(void 0!==o&&!isNaN(o)&&null!==e.y&&e.shapeArgs){let{x:o=0,y:r=0,width:l=0,height:h=0}=e.shapeArgs;i=(s=a.styledMode?e.series.colorAttribs(e):s=e.series.pointAttribs(e))["stroke-width"]||0,tt=n(s.fill).rgba,tt[0]/=255,tt[1]/=255,tt[2]/=255,t.is("treemap")&&(i=i||1,X=n(s.stroke).rgba,X[0]/=255,X[1]/=255,X[2]/=255,tu(o,r,l,h,X),i/=2),t.is("heatmap")&&a.inverted&&(o=c.len-o,r=u.len-r,l=-l,h=-h),tu(o+i,r+i,l-2*i,h-2*i,tt)}}),td();return}for(;K<U.length-1;){if(void 0===(H=U[++K]))continue;if(D)break;let i=p&&p[K];if(!S&&d(i,!0)&&i.color&&(tt=n(i.color).rgba,tt[0]/=255,tt[1]/=255,tt[2]/=255),S?(F=H[0],Y=H[1],U[K+1]&&(q=U[K+1][0]),U[K-1]&&(Z=U[K-1][0]),H.length>=3&&(W=H[2],H[2]>e.zMax&&(e.zMax=H[2]),H[2]<e.zMin&&(e.zMin=H[2]))):(F=H,Y=T[K],U[K+1]&&(q=U[K+1]),U[K-1]&&(Z=U[K-1]),E&&E.length&&(W=E[K],E[K]>e.zMax&&(e.zMax=E[K]),E[K]<e.zMin&&(e.zMin=E[K]))),!M&&(null===F||null===Y)){tc();continue}if(q&&q>=b&&q<=x&&(J=!0),Z&&Z>=b&&Z<=x&&($=!0),r?(S&&(Y=H.slice(1,3)),Q=Y[0],Y=Y[1]):g&&(F=H.x,Q=(Y=H.stackY)-H.y),null!=v&&null!=y&&(ti=Y>=v&&Y<=y),F>x&&k.x<x&&(k.x=F,k.y=Y),F<b&&R.x>b&&(R.x=F,R.y=Y),null!==Y||!M){if(null===Y||!ti&&!J&&!$){tc();continue}if(h&&(q>=b||F>=b)&&(Z<=x||F<=x)&&(te=!0),te||J||$){if(tn&&F-Z>tn&&tc(),L){let t;L.some((e,i)=>{let s=L[i-1];return"x"===B?void 0!==e.value&&F<=e.value&&(to[i]&&(!s||F>=s.value)&&(t=to[i]),!0):void 0!==e.value&&Y<=e.value&&(to[i]&&(!s||Y>=s.value)&&(t=to[i]),!0)}),tt=t||tr||tt}if(s.useGPUTranslations||(e.skipTranslation=!0,F=c.toPixels(F,!0),Y=u.toPixels(Y,!0),!(F>z)||"POINTS"!==e.drawMode)){if(e.hasMarkers&&te&&!1!==I&&(t.closestPointRangePx=Math.min(t.closestPointRangePx,Math.abs(F-I))),!s.useGPUTranslations&&!s.usePreallocated&&I&&1>Math.abs(F-I)&&G&&1>Math.abs(Y-G)){s.debug.showSkipSummary&&++V;continue}w&&(O=Q,(!1===Q||void 0===Q)&&(O=Y<0?Y:0),(r||g)&&!u.logarithmic||(O=Math.max(null===N?v:N,v)),s.useGPUTranslations||(O=u.toPixels(O,!0)),th(F,O,0,0,tt)),l.step&&!ts&&th(F,G,0,2,tt),th(F,Y,0,"bubble"===t.type?W||1:2,tt),I=F,G=Y,j=!0,ts=!1}}}}s.debug.showSkipSummary&&console.log("skipped points:",V);let tg=(t,i)=>{if(s.useGPUTranslations||(e.skipTranslation=!0,t.x=c.toPixels(t.x,!0),t.y=u.toPixels(t.y,!0)),i){this.data=[t.x,t.y,0,2].concat(this.data);return}th(t.x,t.y,0,2)};!j&&!1!==M&&"line_strip"===t.drawMode&&(R.x<Number.MAX_VALUE&&tg(R,!0),k.x>-Number.MAX_VALUE&&tg(k)),td()}pushSeries(t){let e=this.markerData,i=this.series,o=this.settings;i.length>0&&i[i.length-1].hasMarkers&&(i[i.length-1].markerTo=e.length),o.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:s[t.type]||"LINE_STRIP"};t.index>=i.length?i.push(r):i[t.index]=r,this.pushSeriesData(t,r),o.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("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("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(i){let s=this.gl,o=this.settings,a=this.shader,l=this.vbuffer,d=this.getPixelRatio();if(!i)return!1;this.width=i.chartWidth*d,this.height=i.chartHeight*d;let c=this.height,u=this.width;if(!s||!a||!u||!c)return!1;o.debug.timeRendering&&console.time("gl rendering"),s.canvas.width=u,s.canvas.height=c,a.bind(),s.viewport(0,0,u,c),a.setPMatrix(b.orthoMatrix(u,c)),o.lineWidth>1&&!e.isMS&&s.lineWidth(o.lineWidth),l&&(l.build(this.data,"aVertexPosition",4),l.bind()),a.setInverted(i.inverted),this.series.forEach((e,c)=>{let u=e.series.options,f=u.marker,m=void 0!==u.lineWidth?u.lineWidth:1,b=u.threshold,x=h(b),A=e.series.yAxis.getThreshold(b),v=g(u.marker?u.marker.enabled:null,!!e.series.xAxis.isRadial||null,e.series.closestPointRangePx>2*((u.marker?u.marker.radius:10)||10)),y=this.textureHandles[f&&f.symbol||e.series.symbol]||this.textureHandles.circle,P,T,E,S=[];if(0!==e.segments.length&&e.segments[0].from!==e.segments[0].to&&(y.isReady&&(s.bindTexture(s.TEXTURE_2D,y.handle),a.setTexture(y.handle)),i.styledMode?E=e.series.markerGroup&&e.series.markerGroup.getStyle("fill"):(E="POINTS"===e.drawMode&&e.series.pointAttribs&&e.series.pointAttribs().fill||e.series.color,u.colorByPoint&&(E=e.series.chart.options.colors[c])),e.series.fillOpacity&&u.fillOpacity&&(E=new t(E).setOpacity(g(u.fillOpacity,1)).get()),S=n(E).rgba,o.useAlpha||(S[3]=1),"LINES"===e.drawMode&&o.useAlpha&&S[3]<1&&(S[3]/=10),"add"===u.boostBlending?(s.blendFunc(s.SRC_ALPHA,s.ONE),s.blendEquation(s.FUNC_ADD)):"mult"===u.boostBlending||"multiply"===u.boostBlending?s.blendFunc(s.DST_COLOR,s.ZERO):"darken"===u.boostBlending?(s.blendFunc(s.ONE,s.ONE),s.blendEquation(s.FUNC_MIN)):s.blendFuncSeparate(s.SRC_ALPHA,s.ONE_MINUS_SRC_ALPHA,s.ONE,s.ONE_MINUS_SRC_ALPHA),a.reset(),e.colorData.length>0?(a.setUniform("hasColor",1),(T=new r(s,a)).build(Array(e.segments[0].from).concat(e.colorData),"aColor",4),T.bind()):(a.setUniform("hasColor",0),s.disableVertexAttribArray(s.getAttribLocation(a.getProgram(),"aColor"))),a.setColor(S),this.setXAxis(e.series.xAxis),this.setYAxis(e.series.yAxis),this.setThreshold(x,A),"POINTS"===e.drawMode&&a.setPointSize(2*g(u.marker&&u.marker.radius,.5)*d),a.setSkipTranslation(e.skipTranslation),"bubble"===e.series.type&&a.setBubbleUniforms(e.series,e.zMin,e.zMax,d),a.setDrawAsCircle(p[e.series.type]||!1),l)){if(m>0||"LINE_STRIP"!==e.drawMode)for(P=0;P<e.segments.length;P++)l.render(e.segments[P].from,e.segments[P].to,e.drawMode);if(e.hasMarkers&&v)for(a.setPointSize(2*g(u.marker&&u.marker.radius,5)*d),a.setDrawAsCircle(!0),P=0;P<e.segments.length;P++)l.render(e.segments[P].from,e.segments[P].to,"POINTS")}}),o.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(b.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<m.length&&(this.gl=t.getContext(m[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 n=this.shader=new o(s);if(!n)return!1;this.vbuffer=new r(s,n);let l=(t,e)=>{let i={isReady:!1,texture:a.createElement("canvas"),handle:s.createTexture()},o=i.texture.getContext("2d");this.textureHandles[t]=i,i.texture.width=512,i.texture.height=512,o.mozImageSmoothingEnabled=!1,o.webkitImageSmoothingEnabled=!1,o.msImageSmoothingEnabled=!1,o.imageSmoothingEnabled=!1,o.strokeStyle="rgba(255, 255, 255, 0)",o.fillStyle="#FFF",e(o);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(t){}};return l("circle",t=>{t.beginPath(),t.arc(256,256,256,0,2*Math.PI),t.stroke(),t.fill()}),l("square",t=>{t.fillRect(0,0,512,512)}),l("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()}),l("triangle",t=>{t.beginPath(),t.moveTo(0,512),t.lineTo(256,0),t.lineTo(512,512),t.lineTo(0,512),t.fill()}),l("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&&(u(this.textureHandles,e=>{e.handle&&t.deleteTexture(e.handle)}),t.canvas.width=1,t.canvas.height=1)}}return b}),i(e,"Extensions/Boost/BoostSeries.js",[e["Extensions/Boost/BoostableMap.js"],e["Extensions/Boost/Boostables.js"],e["Extensions/Boost/BoostChart.js"],e["Core/Defaults.js"],e["Core/Globals.js"],e["Core/Utilities.js"],e["Extensions/Boost/WGLRenderer.js"]],function(t,e,i,s,o,r,n){let a,l;let{getBoostClipRect:h,isChartSeriesBoosting:d}=i,{getOptions:c}=s,{composed:u,doc:g,noop:f,win:p}=o,{addEvent:m,destroyObjectProperties:b,error:x,extend:A,fireEvent:v,isArray:y,isNumber:P,pick:T,pushUnique:E,wrap:S,defined:M}=r;function C(t,e){let i=e.boost;t&&i&&i.target&&i.canvas&&!d(e.chart)&&t.allocateBufferForSingleSeries(e)}function U(t){return T(t&&t.options&&t.options.boost&&t.options.boost.enabled,!0)}function R(t,e){let i=t.constructor,s=t.seriesGroup||e.group,o=t.chartWidth,r=t.chartHeight,a=t,c="undefined"!=typeof SVGForeignObjectElement,u=(a=d(t)?t:e).boost=a.boost||{};if(c=!1,l||(l=g.createElement("canvas")),!u.target&&(u.canvas=l,t.renderer.forExport||!c?(a.renderTarget=u.target=t.renderer.image("",0,0,o,r).addClass("highcharts-boost-canvas").add(s),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(s),a.renderTarget=u.target=g.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(){o=t.chartWidth,r=t.chartHeight,(u.targetFo||u.target).attr({x:0,y:0,width:o,height:r}).css({pointerEvents:"none",mixedBlendMode:"normal",opacity:1}),a instanceof i&&a.boost.markerGroup.translate(t.plotLeft,t.plotTop)},u.clipRect=t.renderer.clipRect(),(u.targetFo||u.target).attr({zIndex:e.options.zIndex}),a instanceof i&&(a.boost.markerGroup=a.renderer.g().add(s).translate(e.xAxis.pos,e.yAxis.pos))),u.canvas.width=o,u.canvas.height=r,u.clipRect){let e=h(t,a),i=e.width===t.clipBox.width&&e.height===t.clipBox.height?s:u.targetFo||u.target;u.clipRect.attr(e),i?.clip(u.clipRect)}return u.resize(),u.clear(),!u.wgl&&(u.wgl=new n(t=>{t.settings.debug.timeBufferCopy&&console.time("buffer copy"),u.copy(),t.settings.debug.timeBufferCopy&&console.timeEnd("buffer copy")}),u.wgl.init(u.canvas)||x("[highcharts boost] - unable to init WebGL renderer"),u.wgl.setOptions(t.options.boost||{}),a instanceof i&&u.wgl.allocateBuffer(t)),u.wgl.setSize(o,r),u.wgl}function k(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))b(e,void 0,!0)}function D(t,e,i,s,o,r){let n=(o=o||0)+(s=s||3e3),a=!0;for(;a&&o<n&&o<t.length;)a=e(t[o],o),++o;a&&(o<t.length?r?D(t,e,i,s,o,r):p.requestAnimationFrame?p.requestAnimationFrame(function(){D(t,e,i,s,o)}):setTimeout(D,0,t,e,i,s,o):i&&i())}function w(t,e){let i=t.options,s=i.data,o=t.xAxis&&t.xAxis.options,r=t.yAxis&&t.yAxis.options,n=t.colorAxis&&t.colorAxis.options;return s.length>(i.boostThreshold||Number.MAX_VALUE)&&P(r.min)&&P(r.max)&&(!e||P(o.min)&&P(o.max))&&(!n||P(n.min)&&P(n.max))}let B=(t,e)=>!t.forceCrop&&(d(t.chart)||(e?e.length:0)>=(t.options.boostThreshold||Number.MAX_VALUE));function L(){let t=this,e=t.chart;e.boost&&e.boost.markerGroup===t.markerGroup&&(t.markerGroup=null),e.hoverPoints&&(e.hoverPoints=e.hoverPoints.filter(function(e){return e.series===t})),e.hoverPoint&&e.hoverPoint.series===t&&(e.hoverPoint=null)}function N(){let t=this.boost;t&&t.canvas&&t.target&&(t.wgl&&t.wgl.clear(),t.clear&&t.clear())}function _(t){let e=t.boost;e&&e.canvas&&e.target&&e.wgl&&!d(t.chart)&&e.wgl.render(t.chart)}function z(t,e){let i=t.options,s=t.xAxis,o=t.pointClass;if(e instanceof o)return e;let r=t.xData||i.xData||t.processedXData||!1,n=new o(t,(t.options.data||[])[e.i],r?r[e.i]:void 0);return n.category=T(s.categories?s.categories[n.x]:n.x,n.x),n.dist=e.dist,n.distX=e.distX,n.plotX=e.plotX,n.plotY=e.plotY,n.index=e.i,n.percentage=e.percentage,n.isInside=t.isPointInside(n),n}function I(t){var e,i,s,o;let{options:r,xAxis:n,yAxis:a}=this;if(!this.isDirty&&!n.isDirty&&!a.isDirty&&!t)return!1;this.yAxis.setTickInterval();let l=r.boostThreshold||0,h=r.cropThreshold,d=r.data||this.data,c=this.xData,u=n.getExtremes(),g=u.max??Number.MAX_VALUE,f=u.min??-Number.MAX_VALUE,p=this.yData,m=a.getExtremes(),b=m.max??Number.MAX_VALUE,x=m.min??-Number.MAX_VALUE;if(!this.boosted&&n.old&&a.old&&f>=(n.old.min??-Number.MAX_VALUE)&&g<=(n.old.max??Number.MAX_VALUE)&&x>=(a.old.min??-Number.MAX_VALUE)&&b<=(a.old.max??Number.MAX_VALUE))return this.processedXData??(this.processedXData=c),this.processedYData??(this.processedYData=p),!0;if(!l||d.length<l||h&&!this.forceCrop&&!this.getExtremesFromAll&&!r.getExtremesFromAll&&d.length<h)return this.processedXData=c,this.processedYData=p,!0;let A=[],v=[],y=[],T=!(P(u.max)||P(u.min)),E=!(P(m.max)||P(m.min)),S=!1,M,C=c[0],U=c[0],R,k=p[0],D=p[0];for(let t=0,e=c.length;t<e;++t)M=c[t],R=p[t],M>=f&&M<=g&&R>=x&&R<=b?(A.push({x:M,y:R}),v.push(M),y.push(R),T&&(C=Math.max(C,M),U=Math.min(U,M)),E&&(k=Math.max(k,R),D=Math.min(D,R))):S=!0;return T&&((e=n.options).max??(e.max=C),(i=n.options).min??(i.min=U)),E&&((s=a.options).max??(s.max=k),(o=a.options).min??(o.min=D)),this.cropped=S,this.cropStart=0,this.processedXData=v,this.processedYData=y,B(this,v)||(this.processedData=A),!0}function G(){let t=this.options||{},e=this.chart,i=this.xAxis,s=this.yAxis,o=t.xData||this.processedXData,r=t.yData||this.processedYData,n=this.processedData||t.data,l=i.getExtremes(),h=l.min-(i.minPointOffset||0),c=l.max+(i.minPointOffset||0),u=s.getExtremes(),g=u.min-(s.minPointOffset||0),p=u.max+(s.minPointOffset||0),m={},b=!!this.sampling,x=t.enableMouseTracking,A=t.threshold,y=this.pointArrayMap&&"low,high"===this.pointArrayMap.join(","),P=!!t.stacking,T=this.cropStart||0,E=this.requireSorting,S=!o,U="x"===t.findNearestPointBy,w=this.xData||this.options.xData||this.processedXData||!1,B=!1,L,N=s.getThreshold(A),z,I,G,O;if(i.isPanning||s.isPanning||(B=R(e,this),e.boosted=!0,!this.visible))return;(this.points||this.graph)&&k(this),d(e)?(this.markerGroup&&this.markerGroup!==e.boost.markerGroup&&this.markerGroup.destroy(),this.markerGroup=e.boost.markerGroup,this.boost&&this.boost.target&&(this.renderTarget=this.boost.target=this.boost.target.destroy())):(e.boost&&this.markerGroup===e.boost.markerGroup&&(this.markerGroup=void 0),this.markerGroup=this.plotGroup("markerGroup","markers",!0,1,e.seriesGroup));let X=this.points=[],V=(t,o,r,n)=>{let l=!!w&&w[T+r],h=t=>{e.inverted&&(t=i.len-t,o=s.len-o),X.push({destroy:f,x:l,clientX:t,plotX:t,plotY:o,i:T+r,percentage:n})};t=Math.ceil(t),a=U?t:t+","+o,x&&(m[a]?l===w[w.length-1]&&(X.length--,h(t)):(m[a]=!0,h(t)))};this.buildKDTree=f,v(this,"renderCanvas"),B&&(C(B,this),B.pushSeries(this),_(this));let j=B.settings;e.renderer.forExport||(j.debug.timeKDTree&&console.time("kd tree building"),D(P?this.data.slice(T):o||n,function(t,o){let n=void 0===e.index,a,l,d,u,f,m=!1,x=!0;return!M(t)||(!n&&(S?(a=t[0],l=t[1]):(a=t,l=r[o]),y?(S&&(l=t.slice(1,3)),m=l[0],l=l[1]):P&&(a=t.x,m=(l=t.stackY)-t.y,f=t.percentage),E||(x=(l||0)>=g&&l<=p),null!==l&&a>=h&&a<=c&&x&&(d=i.toPixels(a,!0),b?((void 0===G||d===L)&&(y||(m=l),(void 0===O||l>I)&&(I=l,O=o),(void 0===G||m<z)&&(z=m,G=o)),U&&d===L||(void 0!==G&&(u=s.toPixels(I,!0),N=s.toPixels(z,!0),V(d,u,O,f),N!==u&&V(d,N,G,f)),G=O=void 0,L=d)):V(d,u=Math.ceil(s.toPixels(l,!0)),o,f))),!n)},()=>{v(this,"renderedCanvas"),delete this.buildKDTree,this.options&&this.buildKDTree(),j.debug.timeKDTree&&console.timeEnd("kd tree building")}))}function O(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=R(this.chart,this);i&&(C(i,this),i.pushSeries(this)),_(this)}function X(t){if(this.boosted){if(w(this))return{};if(this.xAxis.isPanning||this.yAxis.isPanning)return this}return t.apply(this,[].slice.call(arguments,1))}function V(e){let i=this.options.data;if(U(this.chart)&&t[this.type]){let t=this.is("scatter")&&!this.is("bubble");if(!B(this,i)||t||this.options.stacking||!w(this,!0)){if(this.boosted&&(this.xAxis?.isPanning||this.yAxis?.isPanning))return;t&&!this.yAxis.treeGrid?I.call(this,arguments[1]):e.apply(this,[].slice.call(arguments,1)),i=this.processedXData}if(this.boosted=B(this,i),this.boosted){let t;this.options.data&&this.options.data.length&&!P(t=this.getFirstValidPoint(this.options.data))&&!y(t)&&x(12,!1,this.chart),function(t){t.boost=t.boost||{getPoint:e=>z(t,e)};let e=t.boost.altered=[];if(["allowDG","directTouch","stickyTracking"].forEach(i=>{e.push({prop:i,val:t[i],own:Object.hasOwnProperty.call(t,i)})}),t.allowDG=!1,t.directTouch=!1,t.stickyTracking=!0,t.finishedAnimating=!0,t.labelBySeries&&(t.labelBySeries=t.labelBySeries.destroy()),t.is("scatter")&&t.data.length){for(let e of t.data)e?.destroy?.();t.data.length=0,t.points.length=0,delete t.processedData}}(this)}else!function(t){let e=t.boost;e&&((e.altered||[]).forEach(e=>{e.own?t[e.prop]=e.val:delete t[e.prop]}),e.clear&&e.clear())}(this)}else e.apply(this,[].slice.call(arguments,1))}function j(t){let e=t.apply(this,[].slice.call(arguments,1));return this.boost&&e?this.boost.getPoint(e):e}return{compose:function(i,s,o){if(E(u,"Boost.Series")){let r=c().plotOptions,n=i.prototype;if(m(i,"destroy",L),m(i,"hide",N),o&&(n.renderCanvas=G),S(n,"getExtremes",X),S(n,"processData",V),S(n,"searchPoint",j),["translate","generatePoints","drawTracker","drawPoints","render"].forEach(e=>(function(e,i,s){function o(e){let i=this.options.stacking&&("translate"===s||"generatePoints"===s);this.boosted&&!i&&U(this.chart)&&"heatmap"!==this.type&&"treemap"!==this.type&&t[this.type]&&0!==this.options.boostThreshold?"render"===s&&this.renderCanvas&&this.renderCanvas():e.call(this)}if(S(e,s,o),"translate"===s)for(let t of["column","arearange","columnrange","heatmap","treemap"])i[t]&&S(i[t].prototype,s,o)})(n,s,e)),e.forEach(t=>{let e=r[t];e&&(e.boostThreshold=5e3,e.boostData=[],s[t].prototype.fillOpacity=!0)}),o){let{area:t,areaspline:e,bubble:i,column:o,heatmap:r,scatter:n,treemap:a}=s;if(t&&A(t.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),e&&A(e.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),i){let t=i.prototype;delete t.buildKDTree,S(t,"markerAttribs",function(t){return!this.boosted&&t.apply(this,[].slice.call(arguments,1))})}o&&A(o.prototype,{fill:!0,sampling:!0}),n&&(n.prototype.fill=!0),[r,a].forEach(t=>{t&&S(t.prototype,"drawPoints",O)})}}return i},destroyGraphics:k,eachAsync:D,getPoint:z}}),i(e,"Extensions/BoostCanvas.js",[e["Extensions/Boost/BoostChart.js"],e["Extensions/Boost/BoostSeries.js"],e["Core/Color/Color.js"],e["Core/Globals.js"],e["Core/Utilities.js"]],function(t,e,i,s,o){var r;let{getBoostClipRect:n,isChartSeriesBoosting:a}=t,{destroyGraphics:l}=e,{parse:h}=i,{doc:d,noop:c}=s,{addEvent:u,fireEvent:g,isNumber:f,merge:p,pick:m,wrap:b}=o;return function(t){let s;let r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=";function x(t,e,i,s,o){o&&e!==o.clientX&&(t.moveTo(o.clientX,o.yBottom),t.lineTo(o.clientX,o.plotY),t.lineTo(e,i),t.lineTo(e,s))}function A(t,e,i,s,o){t.moveTo(e,i),t.arc(e,i,this.radii&&this.radii[o],0,2*Math.PI,!1)}function v(t,e,i,s){t.rect(e-1,i,1,s-i)}function y(){this.boost&&this.boost.copy&&this.boost.copy()}function P(){let t=this.boost||{};t.target&&t.target.attr({href:r}),t.canvas&&t.canvas.getContext("2d").clearRect(0,0,t.canvas.width,t.canvas.height)}function T(){a(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 E(t,e,i){t.lineTo(e,i)}function S(){let t;let e=this.chart,i=a(e)?e:this,s=i===e?e.seriesGroup:e.seriesGroup||this.group,o=e.chartWidth,l=e.chartHeight,h=function(t,e,i,s,o,r,n){t.call(this,i,e,s,o,r,n)},c=i.boost=i.boost||{};return t=c.targetCtx,c.canvas||(c.canvas=d.createElement("canvas"),c.target=e.renderer.image("",0,0,o,l).addClass("highcharts-boost-canvas").add(s),t=c.targetCtx=c.canvas.getContext("2d"),e.inverted&&["moveTo","lineTo","rect","arc"].forEach(e=>{b(t,e,h)}),c.copy=function(){c.target.attr({href:c.canvas.toDataURL("image/png")})},c.clear=function(){t.clearRect(0,0,c.canvas.width,c.canvas.height),i===c.target&&c.target.attr({href:r})},c.clipRect=e.renderer.clipRect(),c.target.clip(c.clipRect)),c.canvas.width!==o&&(c.canvas.width=o),c.canvas.height!==l&&(c.canvas.height=l),c.target.attr({x:0,y:0,width:o,height:l,style:"pointer-events: none",href:r}),c.clipRect&&c.clipRect.attr(n(e,i)),t}function M(){let t=this,n=t.options,a=t.chart,d=t.xAxis,b=t.yAxis,x=a.options.boost||{},A={timeRendering:x.timeRendering||!1,timeSeriesProcessing:x.timeSeriesProcessing||!1,timeSetup:x.timeSetup||!1},v=t.processedXData,y=t.processedYData,P=n.data,T=d.getExtremes(),E=T.min,S=T.max,M=b.getExtremes(),C=M.min,U=M.max,R={},k=!!t.sampling,D=n.marker&&n.marker.radius,w=t.cvsStrokeBatch||1e3,B=n.enableMouseTracking,L=n.threshold,N=f(L),_=b.getThreshold(L),z=t.fill,I=t.pointArrayMap&&"low,high"===t.pointArrayMap.join(","),G=!!n.stacking,O=t.cropStart||0,X=a.options.loading,V=t.requireSorting,j=n.connectNulls,F=!v,Y=G?t.data:v||P,H=t.fillOpacity?i.parse(t.color).setOpacity(m(n.fillOpacity,.75)).get():t.color,W="x"===n.findNearestPointBy,K=this.boost||{},Z=t.cvsDrawPoint,q=n.lineWidth?t.cvsLineTo:void 0,Q=D&&D<=1?t.cvsMarkerSquare:t.cvsMarkerCircle;K.target&&K.target.attr({href:r}),(t.points||t.graph)&&l(t),t.plotGroup("group","series",t.visible?"visible":"hidden",n.zIndex,a.seriesGroup),t.markerGroup=t.group,u(t,"destroy",function(){t.markerGroup=null});let J=this.points=[],$=this.getContext();if(t.buildKDTree=c,K.clear&&K.clear(),!t.visible)return;P.length>99999&&(a.options.loading=p(X,{labelStyle:{backgroundColor:h("#ffffff").setOpacity(.75).get(),padding:"1em",borderRadius:"0.5em"},style:{backgroundColor:"none",opacity:1}}),o.clearTimeout(s),a.showLoading("Drawing..."),a.options.loading=X),A.timeRendering&&console.time("canvas rendering");let tt=0,te,ti,ts=_,to,tr,tn,ta,tl,th,td=function(){z?($.fillStyle=H,$.fill()):($.strokeStyle=t.color,$.lineWidth=n.lineWidth,$.stroke())},tc=function(e,i,s,o){0===tt&&($.beginPath(),q&&($.lineJoin="round")),a.scroller&&"highcharts-navigator-series"===t.options.className?(i+=a.scroller.top,s&&(s+=a.scroller.top)):i+=a.plotTop,e+=a.plotLeft,to?$.moveTo(e,i):Z?Z($,e,i,s,ti):q?q($,e,i):Q&&Q.call(t,$,e,i,D,o),(tt+=1)===w&&(td(),tt=0),ti={clientX:e,plotY:i,yBottom:s}},tu=this.xData||this.options.xData||this.processedXData||!1,tg=function(t,e,i){th=W?t:t+","+e,B&&!R[th]&&(R[th]=!0,a.inverted&&(t=d.len-t,e=b.len-e),J.push({x:!!tu&&tu[O+i],clientX:t,plotX:t,plotY:e,i:O+i}))};e.eachAsync(Y,(e,i)=>{let s=void 0===a.index,o,r,n,l,h,c,u=!1,g=!1,f=NaN,p=NaN,m=!0;return!s&&(F?(o=e[0],r=e[1],Y[i+1]&&(f=Y[i+1][0]),Y[i-1]&&(p=Y[i-1][0])):(o=e,r=y[i],Y[i+1]&&(f=Y[i+1]),Y[i-1]&&(p=Y[i-1])),f&&f>=E&&f<=S&&(u=!0),p&&p>=E&&p<=S&&(g=!0),I?(F&&(r=e.slice(1,3)),c=r[0],r=r[1]):G&&(o=e.x,c=(r=e.stackY)-e.y),h=null===r,V||(m=r>=C&&r<=U),!h&&(o>=E&&o<=S&&m||u||g)&&(n=Math.round(d.toPixels(o,!0)),k?((void 0===ta||n===te)&&(I||(c=r),(void 0===tl||r>tn)&&(tn=r,tl=i),(void 0===ta||c<tr)&&(tr=c,ta=i)),n!==te&&(void 0!==ta&&(l=b.toPixels(tn,!0),ts=b.toPixels(tr,!0),tc(n,N?Math.min(l,_):l,N?Math.max(ts,_):ts,i),tg(n,l,tl),ts!==l&&tg(n,ts,ta)),ta=tl=void 0,te=n)):(tc(n,l=Math.round(b.toPixels(r,!0)),ts,i),tg(n,l,i))),to=h&&!j,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 e=a.loadingDiv,i=a.loadingShown;td(),t.canvasToSVG(),A.timeRendering&&console.timeEnd("canvas rendering"),g(t,"renderedCanvas"),i&&(e.style.transition="opacity 250ms",e.opacity=0,a.loadingShown=!1,s=setTimeout(function(){e.parentNode&&e.parentNode.removeChild(e),a.loadingDiv=a.loadingSpan=null},250)),delete t.buildKDTree,t.buildKDTree()},a.renderer.forExport?Number.MAX_VALUE:void 0)}function C(t,e,i,s){t.moveTo(e,i),t.arc(e,i,s,0,2*Math.PI,!1)}function U(t,e,i,s){t.rect(e-s,i-s,2*s,2*s)}function R(){let t=this.chart,e=this.getContext(),i=this.chart.inverted,s=this.xAxis,o=this.yAxis;e?(this.points.forEach(r=>{let n=r.plotY,a;if(void 0!==n&&!isNaN(n)&&null!==r.y&&e){let{x:n=0,y:l=0,width:h=0,height:d=0}=r.shapeArgs||{};a=t.styledMode?r.series.colorAttribs(r):r.series.pointAttribs(r),e.fillStyle=a.fill,i?e.fillRect(o.len-l+s.left,s.len-n+o.top,-d,-h):e.fillRect(n+s.left,l+o.top,h,d)}}),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 s=e.prototype;if(!s.renderCanvas){let{area:e,bubble:o,column:r,heatmap:n,scatter:a}=i;if(t.prototype.callbacks.push(t=>{u(t,"predraw",P),u(t,"render",y)}),s.canvasToSVG=T,s.cvsLineTo=E,s.getContext=S,s.renderCanvas=M,e){let t=e.prototype;t.cvsDrawPoint=x,t.fill=!0,t.fillOpacity=!0,t.sampling=!0}if(o){let t=o.prototype;t.cvsMarkerCircle=A,t.cvsStrokeBatch=1}if(r){let t=r.prototype;t.cvsDrawPoint=v,t.fill=!0,t.sampling=!0}if(n&&b(n.prototype,"drawPoints",R),a){let t=a.prototype;t.cvsMarkerCircle=C,t.cvsMarkerSquare=U,t.fill=!0}}}}(r||(r={})),r}),i(e,"masters/modules/boost-canvas.src.js",[e["Core/Globals.js"],e["Extensions/BoostCanvas.js"]],function(t,e){return t.initCanvasBoost=function(){e.compose(t.Chart,t.Series,t.seriesTypes)},t})});