highcharts 10.0.0 → 10.2.1

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 (942) hide show
  1. package/bower.json +1 -1
  2. package/css/highcharts.css +10 -20
  3. package/css/themes/dark-unica.css +10 -20
  4. package/css/themes/grid-light.css +10 -20
  5. package/css/themes/sand-signika.css +10 -20
  6. package/es-modules/Accessibility/A11yI18n.js +4 -4
  7. package/es-modules/Accessibility/Accessibility.js +8 -3
  8. package/es-modules/Accessibility/Components/AnnotationsA11y.js +3 -3
  9. package/es-modules/Accessibility/Components/ContainerComponent.js +11 -10
  10. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +18 -11
  11. package/es-modules/Accessibility/Components/LegendComponent.js +11 -11
  12. package/es-modules/Accessibility/Components/MenuComponent.js +3 -1
  13. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +3 -1
  14. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +3 -1
  15. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +34 -17
  16. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +35 -10
  17. package/es-modules/Accessibility/Components/ZoomComponent.js +30 -70
  18. package/es-modules/Accessibility/FocusBorder.js +6 -5
  19. package/es-modules/Accessibility/HighContrastMode.js +1 -1
  20. package/es-modules/Accessibility/KeyboardNavigation.js +2 -2
  21. package/es-modules/Accessibility/Options/{Options.js → A11yDefaults.js} +73 -5
  22. package/es-modules/Accessibility/Options/DeprecatedOptions.js +12 -2
  23. package/es-modules/Accessibility/Options/{LangOptions.js → LangDefaults.js} +46 -31
  24. package/es-modules/Accessibility/Utils/ChartUtilities.js +10 -5
  25. package/es-modules/Core/Animation/Fx.js +1 -1
  26. package/es-modules/Core/Axis/Axis.js +51 -46
  27. package/es-modules/Core/Axis/Axis3D.js +1 -1
  28. package/es-modules/Core/Axis/AxisDefaults.js +9 -9
  29. package/es-modules/Core/Axis/BrokenAxis.js +1 -1
  30. package/es-modules/Core/Axis/Color/ColorAxis.js +4 -2
  31. package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +7 -3
  32. package/es-modules/Core/Axis/DateTimeAxis.js +5 -3
  33. package/es-modules/Core/Axis/GridAxis.js +821 -822
  34. package/es-modules/Core/Axis/LogarithmicAxis.js +1 -1
  35. package/es-modules/Core/Axis/NavigatorAxis.js +2 -2
  36. package/es-modules/Core/Axis/OrdinalAxis.js +26 -3
  37. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +3 -3
  38. package/es-modules/Core/Axis/RadialAxis.js +1 -1
  39. package/es-modules/Core/Axis/Stacking/StackItem.js +262 -0
  40. package/es-modules/Core/Axis/Stacking/StackingAxis.js +468 -0
  41. package/es-modules/Core/Axis/Tick.js +22 -18
  42. package/es-modules/Core/Axis/TreeGrid/TreeGridAxis.js +732 -0
  43. package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +313 -0
  44. package/es-modules/Core/Axis/WaterfallAxis.js +1 -1
  45. package/es-modules/Core/Axis/ZAxis.js +76 -71
  46. package/es-modules/Core/Chart/Chart.js +42 -9
  47. package/es-modules/Core/Chart/Chart3D.js +2 -2
  48. package/es-modules/Core/Chart/ChartDefaults.js +165 -5
  49. package/es-modules/Core/Chart/GanttChart.js +3 -1
  50. package/es-modules/Core/Chart/MapChart.js +3 -1
  51. package/es-modules/Core/Chart/StockChart.js +12 -8
  52. package/es-modules/Core/Color/Color.js +1 -1
  53. package/es-modules/Core/DefaultOptions.js +19 -16
  54. package/es-modules/Core/Geometry/CircleUtilities.js +4 -4
  55. package/es-modules/Core/Globals.js +2 -1
  56. package/es-modules/Core/HttpUtilities.js +39 -37
  57. package/es-modules/Core/Legend/Legend.js +4 -4
  58. package/es-modules/Core/MSPointer.js +3 -1
  59. package/es-modules/{Extensions → Core}/Math3D.js +48 -43
  60. package/es-modules/Core/Navigator.js +31 -14
  61. package/es-modules/Core/Pointer.js +8 -10
  62. package/es-modules/Core/Renderer/HTML/AST.js +13 -7
  63. package/es-modules/Core/Renderer/HTML/HTMLElement.js +3 -1
  64. package/es-modules/Core/Renderer/HTML/HTMLRenderer.js +3 -1
  65. package/es-modules/Core/Renderer/SVG/SVGElement.js +132 -192
  66. package/es-modules/Core/Renderer/SVG/SVGLabel.js +32 -28
  67. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +50 -45
  68. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +5 -3
  69. package/es-modules/Core/Renderer/SVG/TextBuilder.js +5 -3
  70. package/es-modules/Core/Scrollbar.js +12 -6
  71. package/es-modules/Core/ScrollbarDefaults.js +8 -8
  72. package/es-modules/Core/Series/DataLabel.js +63 -40
  73. package/es-modules/Core/Series/Point.js +11 -2
  74. package/es-modules/Core/Series/Series.js +60 -43
  75. package/es-modules/Core/Series/Series3D.js +4 -2
  76. package/es-modules/Core/Series/SeriesDefaults.js +11 -6
  77. package/es-modules/Core/Series/SeriesRegistry.js +6 -29
  78. package/es-modules/Core/Time.js +6 -7
  79. package/es-modules/Core/Tooltip.js +17 -6
  80. package/es-modules/Core/Utilities.js +7 -9
  81. package/es-modules/Data/DataConverter.js +6 -1
  82. package/es-modules/Data/DataPromise.js +1 -1
  83. package/es-modules/Data/DataSeriesComposition.js +288 -0
  84. package/es-modules/Data/DataSeriesConverter.js +1 -1
  85. package/es-modules/Data/DataTable.js +14 -12
  86. package/es-modules/Data/Modifiers/ChainModifier.js +4 -2
  87. package/es-modules/Data/Modifiers/DataModifier.js +1 -1
  88. package/es-modules/Data/Modifiers/GroupModifier.js +4 -2
  89. package/es-modules/Data/Modifiers/InvertModifier.js +10 -8
  90. package/es-modules/Data/Modifiers/RangeModifier.js +4 -2
  91. package/es-modules/Data/Modifiers/SeriesPointsModifier.js +4 -2
  92. package/es-modules/Data/Modifiers/SortModifier.js +4 -2
  93. package/es-modules/Data/Parsers/CSVParser.js +3 -1
  94. package/es-modules/Data/Parsers/DataParser.js +2 -2
  95. package/es-modules/Data/Parsers/GoogleSheetsParser.js +3 -2
  96. package/es-modules/Data/Parsers/HTMLTableParser.js +3 -1
  97. package/es-modules/Data/Stores/CSVStore.js +8 -5
  98. package/es-modules/Data/Stores/DataStore.js +1 -1
  99. package/es-modules/Data/Stores/GoogleSheetsStore.js +3 -1
  100. package/es-modules/Data/Stores/HTMLTableStore.js +3 -1
  101. package/es-modules/Extensions/Annotations/Annotation.js +652 -0
  102. package/es-modules/Extensions/Annotations/AnnotationChart.js +291 -0
  103. package/es-modules/Extensions/Annotations/AnnotationDefaults.js +624 -0
  104. package/es-modules/Extensions/Annotations/ControlPoint.js +89 -64
  105. package/es-modules/Extensions/Annotations/{Mixins/ControllableMixin.js → Controllables/Controllable.js} +300 -241
  106. package/es-modules/Extensions/Annotations/Controllables/ControllableCircle.js +63 -50
  107. package/es-modules/Extensions/Annotations/Controllables/ControllableDefaults.js +95 -0
  108. package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +95 -63
  109. package/es-modules/Extensions/Annotations/Controllables/ControllableImage.js +50 -44
  110. package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +95 -78
  111. package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +167 -51
  112. package/es-modules/Extensions/Annotations/Controllables/ControllableRect.js +53 -52
  113. package/es-modules/Extensions/Annotations/{Mixins/EventEmitterMixin.js → EventEmitter.js} +136 -116
  114. package/es-modules/Extensions/Annotations/MockPoint.js +210 -145
  115. package/es-modules/Extensions/Annotations/NavigationBindings.js +272 -663
  116. package/es-modules/Extensions/Annotations/NavigationBindingsDefaults.js +396 -0
  117. package/es-modules/Extensions/Annotations/NavigationBindingsUtilities.js +98 -0
  118. package/es-modules/Extensions/Annotations/Popup/Popup.js +295 -0
  119. package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +177 -0
  120. package/es-modules/Extensions/Annotations/Popup/PopupComposition.js +81 -0
  121. package/es-modules/Extensions/Annotations/Popup/PopupIndicators.js +609 -0
  122. package/es-modules/Extensions/Annotations/Popup/PopupTabs.js +134 -0
  123. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +23 -23
  124. package/es-modules/Extensions/Annotations/Types/CrookedLine.js +15 -21
  125. package/es-modules/Extensions/Annotations/Types/ElliottWave.js +14 -12
  126. package/es-modules/Extensions/Annotations/Types/Fibonacci.js +33 -23
  127. package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +67 -65
  128. package/es-modules/Extensions/Annotations/Types/InfinityLine.js +14 -21
  129. package/es-modules/Extensions/Annotations/Types/Measure.js +259 -251
  130. package/es-modules/Extensions/Annotations/Types/Pitchfork.js +15 -19
  131. package/es-modules/Extensions/Annotations/Types/TimeCycles.js +24 -19
  132. package/es-modules/Extensions/Annotations/Types/Tunnel.js +17 -15
  133. package/es-modules/Extensions/Annotations/Types/VerticalLine.js +15 -17
  134. package/es-modules/Extensions/Boost/Boost.js +320 -15
  135. package/es-modules/Extensions/Boost/BoostChart.js +245 -0
  136. package/es-modules/Extensions/Boost/BoostSeries.js +927 -0
  137. package/es-modules/Extensions/Boost/BoostableMap.js +21 -5
  138. package/es-modules/Extensions/Boost/Boostables.js +13 -2
  139. package/es-modules/Extensions/Boost/NamedColors.js +15 -6
  140. package/es-modules/Extensions/Boost/WGLDrawMode.js +36 -0
  141. package/es-modules/Extensions/Boost/WGLRenderer.js +288 -295
  142. package/es-modules/Extensions/Boost/WGLShader.js +370 -376
  143. package/es-modules/Extensions/Boost/WGLVertexBuffer.js +192 -0
  144. package/es-modules/Extensions/BoostCanvas.js +70 -48
  145. package/es-modules/Extensions/Breadcrumbs.js +37 -9
  146. package/es-modules/Extensions/CurrentDateIndication.js +1 -1
  147. package/es-modules/Extensions/Data.js +638 -602
  148. package/es-modules/Extensions/DataGrouping.js +68 -28
  149. package/es-modules/Extensions/Debugger/Debugger.js +60 -22
  150. package/es-modules/Extensions/Debugger/ErrorMessages.js +4 -0
  151. package/es-modules/Extensions/DownloadURL.js +3 -3
  152. package/es-modules/Extensions/DragPanes.js +1 -1
  153. package/es-modules/Extensions/DraggablePoints.js +4 -3
  154. package/es-modules/Extensions/Drilldown.js +15 -14
  155. package/es-modules/Extensions/{ExportData.js → ExportData/ExportData.js} +358 -498
  156. package/es-modules/Extensions/ExportData/ExportDataDefaults.js +272 -0
  157. package/es-modules/Extensions/Exporting/Exporting.js +30 -17
  158. package/es-modules/Extensions/Exporting/ExportingDefaults.js +10 -8
  159. package/es-modules/Extensions/Exporting/Fullscreen.js +352 -0
  160. package/es-modules/Extensions/GeoJSON.js +3 -4
  161. package/es-modules/Extensions/MarkerClusters.js +5 -3
  162. package/es-modules/Extensions/NoDataToDisplay.js +1 -1
  163. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  164. package/es-modules/Extensions/Oldie/Oldie.js +2 -2
  165. package/es-modules/Extensions/OverlappingDataLabels.js +5 -4
  166. package/es-modules/Extensions/Pane.js +3 -3
  167. package/es-modules/Extensions/ParallelCoordinates.js +12 -8
  168. package/es-modules/Extensions/PatternFill.js +14 -2
  169. package/es-modules/Extensions/RangeSelector.js +29 -18
  170. package/es-modules/Extensions/ScrollablePlotArea.js +4 -4
  171. package/es-modules/Extensions/{SeriesLabel.js → SeriesLabel/SeriesLabel.js} +264 -386
  172. package/es-modules/Extensions/SeriesLabel/SeriesLabelDefaults.js +124 -0
  173. package/es-modules/Extensions/SeriesLabel/SeriesLabelUtilities.js +67 -0
  174. package/es-modules/Extensions/Sonification/ChartSonify.js +1 -1
  175. package/es-modules/Extensions/Sonification/Earcon.js +1 -1
  176. package/es-modules/Extensions/Themes/HighContrastDark.js +10 -10
  177. package/es-modules/Extensions/Themes/HighContrastLight.js +9 -9
  178. package/es-modules/Maps/MapNavigation.js +3 -7
  179. package/es-modules/Maps/MapPointer.js +1 -1
  180. package/es-modules/Maps/MapView.js +31 -19
  181. package/es-modules/Maps/MapViewInsetsOptionsDefault.js +1 -1
  182. package/es-modules/Maps/MapViewOptionsDefault.js +3 -1
  183. package/es-modules/Maps/Projection.js +13 -11
  184. package/es-modules/Series/ArcDiagram/ArcDiagramPoint.js +3 -1
  185. package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +12 -2
  186. package/es-modules/Series/Area/AreaSeries.js +21 -14
  187. package/es-modules/Series/{Area3DSeries.js → Area3D/Area3DSeries.js} +42 -20
  188. package/es-modules/Series/AreaRange/AreaRangePoint.js +24 -11
  189. package/es-modules/Series/AreaRange/AreaRangeSeries.js +162 -149
  190. package/es-modules/Series/AreaSpline/AreaSplineSeries.js +45 -41
  191. package/es-modules/Series/AreaSplineRange/AreaSplineRangeSeries.js +43 -43
  192. package/es-modules/Series/Bar/BarSeries.js +3 -1
  193. package/es-modules/Series/Bellcurve/BellcurveSeries.js +3 -1
  194. package/es-modules/Series/BoxPlot/BoxPlotSeries.js +4 -2
  195. package/es-modules/Series/Bubble/BubbleLegendComposition.js +223 -231
  196. package/es-modules/Series/Bubble/BubbleLegendDefaults.js +1 -1
  197. package/es-modules/Series/Bubble/BubbleLegendItem.js +46 -45
  198. package/es-modules/Series/Bubble/BubblePoint.js +3 -1
  199. package/es-modules/Series/Bubble/BubbleSeries.js +96 -68
  200. package/es-modules/Series/Bullet/BulletPoint.js +3 -1
  201. package/es-modules/Series/Bullet/BulletSeries.js +4 -3
  202. package/es-modules/Series/Candlestick/CandlestickSeries.js +5 -3
  203. package/es-modules/Series/CenteredUtilities.js +8 -2
  204. package/es-modules/Series/ColorMapComposition.js +111 -0
  205. package/es-modules/Series/Column/ColumnSeries.js +8 -4
  206. package/es-modules/Series/Column3D/Column3DComposition.js +2 -2
  207. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +4 -2
  208. package/es-modules/Series/ColumnRange/ColumnRangePoint.js +17 -13
  209. package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +60 -57
  210. package/es-modules/Series/Cylinder/CylinderComposition.js +1 -1
  211. package/es-modules/Series/Cylinder/CylinderPoint.js +3 -1
  212. package/es-modules/Series/Cylinder/CylinderSeries.js +3 -1
  213. package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +27 -12
  214. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +19 -3
  215. package/es-modules/Series/DotPlot/DotPlotSeries.js +3 -1
  216. package/es-modules/Series/DragNodesComposition.js +166 -0
  217. package/es-modules/Series/DrawPointUtilities.js +87 -0
  218. package/es-modules/Series/Dumbbell/DumbbellPoint.js +3 -1
  219. package/es-modules/Series/Dumbbell/DumbbellSeries.js +4 -2
  220. package/es-modules/Series/ErrorBar/ErrorBarSeries.js +4 -2
  221. package/es-modules/Series/Flags/FlagsPoint.js +4 -1
  222. package/es-modules/Series/Flags/FlagsSeries.js +13 -16
  223. package/es-modules/Series/Funnel/FunnelSeries.js +5 -3
  224. package/es-modules/Series/Funnel3D/Funnel3DPoint.js +3 -1
  225. package/es-modules/Series/Funnel3D/Funnel3DSeries.js +4 -2
  226. package/es-modules/Series/Gantt/GanttPoint.js +3 -1
  227. package/es-modules/Series/Gantt/GanttSeries.js +4 -2
  228. package/es-modules/Series/Gauge/GaugePoint.js +3 -1
  229. package/es-modules/Series/Gauge/GaugeSeries.js +196 -174
  230. package/es-modules/Series/GraphLayoutComposition.js +130 -0
  231. package/es-modules/Series/HLC/HLCPoint.js +3 -1
  232. package/es-modules/Series/HLC/HLCSeries.js +4 -2
  233. package/es-modules/Series/Heatmap/HeatmapPoint.js +7 -5
  234. package/es-modules/Series/Heatmap/HeatmapSeries.js +34 -34
  235. package/es-modules/Series/HeikinAshi/HeikinAshiPoint.js +3 -1
  236. package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +3 -1
  237. package/es-modules/Series/Histogram/HistogramSeries.js +3 -1
  238. package/es-modules/Series/HollowCandlestick/HollowCandlestickPoint.js +3 -1
  239. package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +11 -9
  240. package/es-modules/Series/Item/ItemPoint.js +3 -1
  241. package/es-modules/Series/Item/ItemSeries.js +3 -1
  242. package/es-modules/Series/Line/LineSeries.js +4 -2
  243. package/es-modules/Series/Lollipop/LollipopPoint.js +24 -12
  244. package/es-modules/Series/Lollipop/LollipopSeries.js +18 -11
  245. package/es-modules/Series/Map/MapPoint.js +8 -6
  246. package/es-modules/Series/Map/MapSeries.js +115 -28
  247. package/es-modules/Series/MapBubble/MapBubblePoint.js +18 -18
  248. package/es-modules/Series/MapBubble/MapBubbleSeries.js +69 -21
  249. package/es-modules/Series/MapLine/MapLineSeries.js +18 -1
  250. package/es-modules/Series/MapPoint/MapPointPoint.js +4 -2
  251. package/es-modules/Series/MapPoint/MapPointSeries.js +14 -2
  252. package/es-modules/Series/Networkgraph/EulerIntegration.js +199 -0
  253. package/es-modules/Series/Networkgraph/NetworkgraphPoint.js +290 -0
  254. package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +401 -0
  255. package/es-modules/Series/Networkgraph/NetworkgraphSeriesDefaults.js +545 -0
  256. package/es-modules/Series/Networkgraph/QuadTree.js +66 -272
  257. package/es-modules/Series/Networkgraph/QuadTreeNode.js +271 -0
  258. package/es-modules/Series/Networkgraph/{Layouts.js → ReingoldFruchtermanLayout.js} +240 -259
  259. package/es-modules/Series/Networkgraph/VerletIntegration.js +193 -0
  260. package/es-modules/Series/NodesComposition.js +45 -40
  261. package/es-modules/Series/OHLC/OHLCPoint.js +3 -1
  262. package/es-modules/Series/OHLC/OHLCSeries.js +3 -1
  263. package/es-modules/Series/Organization/OrganizationPoint.js +3 -1
  264. package/es-modules/Series/Organization/OrganizationSeries.js +14 -4
  265. package/es-modules/Series/PackedBubble/PackedBubbleIntegration.js +81 -0
  266. package/es-modules/Series/PackedBubble/{PackedBubbleComposition.js → PackedBubbleLayout.js} +114 -79
  267. package/es-modules/Series/PackedBubble/PackedBubblePoint.js +5 -3
  268. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +200 -571
  269. package/es-modules/Series/PackedBubble/PackedBubbleSeriesDefaults.js +394 -0
  270. package/es-modules/Series/ParetoSeries/ParetoSeries.js +3 -1
  271. package/es-modules/Series/Pie/PieDataLabel.js +4 -2
  272. package/es-modules/Series/Pie/PiePoint.js +3 -1
  273. package/es-modules/Series/Pie/PieSeries.js +54 -38
  274. package/es-modules/Series/Pie3D/Pie3DPoint.js +3 -1
  275. package/es-modules/Series/Pie3D/Pie3DSeries.js +3 -1
  276. package/es-modules/Series/PolarComposition.js +819 -0
  277. package/es-modules/Series/Polygon/PolygonSeries.js +3 -1
  278. package/es-modules/Series/Pyramid/PyramidSeries.js +3 -1
  279. package/es-modules/Series/Pyramid3D/Pyramid3DSeries.js +3 -1
  280. package/es-modules/Series/Sankey/SankeyPoint.js +3 -1
  281. package/es-modules/Series/Sankey/SankeySeries.js +38 -10
  282. package/es-modules/Series/Scatter/ScatterSeries.js +14 -6
  283. package/es-modules/Series/Scatter3D/Scatter3DPoint.js +3 -1
  284. package/es-modules/Series/Scatter3D/Scatter3DSeries.js +4 -2
  285. package/es-modules/Series/SeriesOnPointComposition.js +395 -0
  286. package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +6 -4
  287. package/es-modules/Series/Spline/SplineSeries.js +13 -4
  288. package/es-modules/Series/Streamgraph/StreamgraphSeries.js +3 -1
  289. package/es-modules/Series/Sunburst/SunburstPoint.js +8 -9
  290. package/es-modules/Series/Sunburst/SunburstSeries.js +32 -5
  291. package/es-modules/Series/Tilemap/TilemapPoint.js +3 -1
  292. package/es-modules/Series/Tilemap/TilemapSeries.js +3 -1
  293. package/es-modules/Series/Timeline/TimelinePoint.js +3 -1
  294. package/es-modules/Series/Timeline/TimelineSeries.js +8 -4
  295. package/es-modules/Series/Treemap/TreemapPoint.js +8 -4
  296. package/es-modules/Series/Treemap/TreemapSeries.js +12 -10
  297. package/es-modules/Series/VariablePie/VariablePieSeries.js +3 -1
  298. package/es-modules/Series/Variwide/VariwidePoint.js +3 -1
  299. package/es-modules/Series/Variwide/VariwideSeries.js +3 -1
  300. package/es-modules/Series/Vector/VectorSeries.js +5 -5
  301. package/es-modules/Series/Venn/VennPoint.js +5 -5
  302. package/es-modules/Series/Venn/VennSeries.js +9 -6
  303. package/es-modules/Series/Waterfall/WaterfallPoint.js +3 -1
  304. package/es-modules/Series/Waterfall/WaterfallSeries.js +14 -12
  305. package/es-modules/Series/Windbarb/WindbarbPoint.js +3 -1
  306. package/es-modules/Series/Windbarb/WindbarbSeries.js +3 -1
  307. package/es-modules/Series/Wordcloud/WordcloudPoint.js +6 -6
  308. package/es-modules/Series/Wordcloud/WordcloudSeries.js +12 -9
  309. package/es-modules/Series/Wordcloud/WordcloudUtils.js +1 -1
  310. package/es-modules/Series/XRange/XRangePoint.js +57 -46
  311. package/es-modules/Series/XRange/XRangeSeries.js +124 -274
  312. package/es-modules/Series/XRange/XRangeSeriesDefaults.js +211 -0
  313. package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +13 -3
  314. package/es-modules/Stock/Indicators/AD/ADIndicator.js +8 -1
  315. package/es-modules/Stock/Indicators/AO/AOIndicator.js +27 -14
  316. package/es-modules/Stock/Indicators/APO/APOIndicator.js +9 -2
  317. package/es-modules/Stock/Indicators/ATR/ATRIndicator.js +19 -4
  318. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +18 -3
  319. package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +9 -3
  320. package/es-modules/Stock/Indicators/BB/BBIndicator.js +11 -5
  321. package/es-modules/Stock/Indicators/CCI/CCIIndicator.js +19 -4
  322. package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +23 -1
  323. package/es-modules/Stock/Indicators/CMO/CMOIndicator.js +18 -2
  324. package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +10 -3
  325. package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +28 -1
  326. package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +18 -7
  327. package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +22 -9
  328. package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +3 -1
  329. package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +13 -1
  330. package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +37 -16
  331. package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +28 -1
  332. package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +15 -2
  333. package/es-modules/Stock/Indicators/LinearRegression/{LinearRegression.js → LinearRegressionIndicator.js} +14 -2
  334. package/es-modules/Stock/Indicators/LinearRegressionAngle/{LinearRegressionAngle.js → LinearRegressionAngleIndicator.js} +15 -8
  335. package/es-modules/Stock/Indicators/LinearRegressionIntercept/{LinearRegressionIntercept.js → LinearRegressionInterceptIndicator.js} +14 -2
  336. package/es-modules/Stock/Indicators/LinearRegressionSlopes/{LinearRegressionSlopes.js → LinearRegressionSlopesIndicator.js} +14 -2
  337. package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +47 -23
  338. package/es-modules/Stock/Indicators/MFI/MFIIndicator.js +26 -11
  339. package/es-modules/Stock/Indicators/Momentum/MomentumIndicator.js +33 -3
  340. package/es-modules/Stock/Indicators/MultipleLinesComposition.js +85 -95
  341. package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +19 -2
  342. package/es-modules/Stock/Indicators/OBV/OBVIndicator.js +13 -1
  343. package/es-modules/Stock/Indicators/PC/PCIndicator.js +16 -9
  344. package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +17 -5
  345. package/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +19 -4
  346. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +19 -7
  347. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsPoint.js +19 -13
  348. package/es-modules/Stock/Indicators/PriceEnvelopes/PriceEnvelopesIndicator.js +28 -1
  349. package/es-modules/Stock/Indicators/ROC/ROCIndicator.js +18 -3
  350. package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +23 -3
  351. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +4 -2
  352. package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +28 -1
  353. package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +18 -1
  354. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +23 -7
  355. package/es-modules/Stock/Indicators/TEMA/TEMAIndicator.js +3 -1
  356. package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +28 -1
  357. package/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +17 -5
  358. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +35 -4
  359. package/es-modules/Stock/Indicators/VBP/VBPPoint.js +9 -7
  360. package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +14 -2
  361. package/es-modules/Stock/Indicators/WMA/WMAIndicator.js +33 -3
  362. package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +13 -1
  363. package/es-modules/Stock/Indicators/Zigzag/ZigzagIndicator.js +14 -2
  364. package/es-modules/Stock/StockToolbar.js +568 -0
  365. package/es-modules/Stock/StockTools.js +256 -0
  366. package/es-modules/Stock/StockToolsBindings.js +140 -647
  367. package/es-modules/Stock/StockToolsDefaults.js +1190 -0
  368. package/es-modules/Stock/StockToolsGui.js +150 -1771
  369. package/es-modules/Stock/StockToolsUtilities.js +423 -0
  370. package/es-modules/masters/highcharts-3d.src.js +5 -4
  371. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  372. package/es-modules/masters/highcharts-more.src.js +7 -6
  373. package/es-modules/masters/highcharts.src.js +5 -2
  374. package/es-modules/masters/highmaps.src.js +1 -1
  375. package/es-modules/masters/highstock.src.js +1 -1
  376. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  377. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  378. package/es-modules/masters/indicators/ao.src.js +1 -1
  379. package/es-modules/masters/indicators/apo.src.js +1 -1
  380. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  381. package/es-modules/masters/indicators/aroon.src.js +1 -1
  382. package/es-modules/masters/indicators/atr.src.js +1 -1
  383. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  384. package/es-modules/masters/indicators/cci.src.js +1 -1
  385. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  386. package/es-modules/masters/indicators/cmf.src.js +1 -1
  387. package/es-modules/masters/indicators/cmo.src.js +1 -1
  388. package/es-modules/masters/indicators/dema.src.js +1 -1
  389. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  390. package/es-modules/masters/indicators/dmi.src.js +1 -1
  391. package/es-modules/masters/indicators/dpo.src.js +1 -1
  392. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  393. package/es-modules/masters/indicators/indicators-all.src.js +5 -7
  394. package/es-modules/masters/indicators/indicators.src.js +1 -1
  395. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  396. package/es-modules/masters/indicators/klinger.src.js +1 -1
  397. package/es-modules/masters/indicators/macd.src.js +1 -1
  398. package/es-modules/masters/indicators/mfi.src.js +1 -1
  399. package/es-modules/masters/indicators/momentum.src.js +1 -1
  400. package/es-modules/masters/indicators/natr.src.js +1 -1
  401. package/es-modules/masters/indicators/obv.src.js +1 -1
  402. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  403. package/es-modules/masters/indicators/ppo.src.js +1 -1
  404. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  405. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  406. package/es-modules/masters/indicators/psar.src.js +1 -1
  407. package/es-modules/masters/indicators/regressions.src.js +5 -5
  408. package/es-modules/masters/indicators/roc.src.js +1 -1
  409. package/es-modules/masters/indicators/rsi.src.js +1 -1
  410. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  411. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  412. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  413. package/es-modules/masters/indicators/tema.src.js +1 -1
  414. package/es-modules/masters/indicators/trendline.src.js +1 -1
  415. package/es-modules/masters/indicators/trix.src.js +1 -1
  416. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  417. package/es-modules/masters/indicators/vwap.src.js +1 -1
  418. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  419. package/es-modules/masters/indicators/wma.src.js +1 -1
  420. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  421. package/es-modules/masters/modules/accessibility.src.js +1 -1
  422. package/es-modules/masters/modules/annotations-advanced.src.js +6 -4
  423. package/es-modules/masters/modules/annotations.src.js +6 -4
  424. package/es-modules/masters/modules/arc-diagram.src.js +1 -1
  425. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  426. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  427. package/es-modules/masters/modules/boost.src.js +6 -2
  428. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  429. package/es-modules/masters/modules/bullet.src.js +1 -1
  430. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  431. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  432. package/es-modules/masters/modules/cylinder.src.js +1 -1
  433. package/es-modules/masters/modules/data.src.js +2 -1
  434. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  435. package/es-modules/masters/modules/debugger.src.js +5 -3
  436. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  437. package/es-modules/masters/modules/dotplot.src.js +1 -1
  438. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  439. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  440. package/es-modules/masters/modules/drilldown.src.js +1 -1
  441. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  442. package/es-modules/masters/modules/export-data.src.js +5 -2
  443. package/es-modules/masters/modules/exporting.src.js +1 -2
  444. package/es-modules/masters/modules/full-screen.src.js +6 -2
  445. package/es-modules/masters/modules/funnel.src.js +1 -1
  446. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  447. package/es-modules/masters/modules/gantt.src.js +3 -2
  448. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  449. package/es-modules/masters/modules/heatmap.src.js +1 -1
  450. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  451. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  452. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  453. package/es-modules/masters/modules/item-series.src.js +1 -1
  454. package/es-modules/masters/modules/lollipop.src.js +1 -1
  455. package/es-modules/masters/modules/map.src.js +2 -2
  456. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  457. package/es-modules/masters/modules/networkgraph.src.js +5 -2
  458. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  459. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  460. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  461. package/es-modules/masters/modules/oldie.src.js +1 -1
  462. package/es-modules/masters/modules/organization.src.js +1 -1
  463. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  464. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  465. package/es-modules/masters/modules/pareto.src.js +1 -1
  466. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  467. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  468. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  469. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  470. package/es-modules/masters/modules/sankey.src.js +1 -1
  471. package/es-modules/masters/modules/series-label.src.js +5 -2
  472. package/es-modules/masters/modules/series-on-point.src.js +16 -0
  473. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  474. package/es-modules/masters/modules/sonification.src.js +2 -6
  475. package/es-modules/masters/modules/static-scale.src.js +1 -1
  476. package/es-modules/masters/modules/stock-tools.src.js +10 -3
  477. package/es-modules/masters/modules/stock.src.js +1 -1
  478. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  479. package/es-modules/masters/modules/sunburst.src.js +1 -1
  480. package/es-modules/masters/modules/tilemap.src.js +1 -1
  481. package/es-modules/masters/modules/timeline.src.js +1 -1
  482. package/es-modules/masters/modules/treegrid.src.js +2 -2
  483. package/es-modules/masters/modules/treemap.src.js +1 -1
  484. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  485. package/es-modules/masters/modules/variwide.src.js +1 -1
  486. package/es-modules/masters/modules/vector.src.js +1 -1
  487. package/es-modules/masters/modules/venn.src.js +1 -1
  488. package/es-modules/masters/modules/windbarb.src.js +1 -1
  489. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  490. package/es-modules/masters/modules/xrange.src.js +5 -2
  491. package/es-modules/masters/themes/avocado.src.js +1 -1
  492. package/es-modules/masters/themes/brand-dark.src.js +1 -1
  493. package/es-modules/masters/themes/brand-light.src.js +1 -1
  494. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  495. package/es-modules/masters/themes/dark-green.src.js +1 -1
  496. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  497. package/es-modules/masters/themes/gray.src.js +1 -1
  498. package/es-modules/masters/themes/grid-light.src.js +1 -1
  499. package/es-modules/masters/themes/grid.src.js +1 -1
  500. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  501. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  502. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  503. package/es-modules/masters/themes/skies.src.js +1 -1
  504. package/es-modules/masters/themes/sunset.src.js +1 -1
  505. package/highcharts-3d.js +98 -99
  506. package/highcharts-3d.js.map +1 -1
  507. package/highcharts-3d.src.js +233 -212
  508. package/highcharts-gantt.js +809 -805
  509. package/highcharts-gantt.js.map +1 -1
  510. package/highcharts-gantt.src.js +3817 -3470
  511. package/highcharts-more.d.ts +15 -8
  512. package/highcharts-more.js +201 -195
  513. package/highcharts-more.js.map +1 -1
  514. package/highcharts-more.src.d.ts +15 -8
  515. package/highcharts-more.src.js +7994 -7461
  516. package/highcharts.d.ts +11364 -1136
  517. package/highcharts.js +593 -591
  518. package/highcharts.js.map +1 -1
  519. package/highcharts.src.d.ts +11364 -1136
  520. package/highcharts.src.js +1408 -1117
  521. package/highmaps.js +762 -758
  522. package/highmaps.js.map +1 -1
  523. package/highmaps.src.js +2237 -1721
  524. package/highstock.js +796 -792
  525. package/highstock.js.map +1 -1
  526. package/highstock.src.js +1617 -1224
  527. package/indicators/acceleration-bands.d.ts +1 -17
  528. package/indicators/acceleration-bands.js +11 -12
  529. package/indicators/acceleration-bands.js.map +1 -1
  530. package/indicators/acceleration-bands.src.d.ts +1 -17
  531. package/indicators/acceleration-bands.src.js +99 -101
  532. package/indicators/accumulation-distribution.js +1 -1
  533. package/indicators/accumulation-distribution.js.map +1 -1
  534. package/indicators/accumulation-distribution.src.js +6 -1
  535. package/indicators/ao.js +6 -6
  536. package/indicators/ao.js.map +1 -1
  537. package/indicators/ao.src.js +25 -16
  538. package/indicators/apo.js +1 -1
  539. package/indicators/apo.js.map +1 -1
  540. package/indicators/apo.src.js +6 -1
  541. package/indicators/aroon-oscillator.d.ts +1 -17
  542. package/indicators/aroon-oscillator.js +10 -10
  543. package/indicators/aroon-oscillator.js.map +1 -1
  544. package/indicators/aroon-oscillator.src.d.ts +1 -17
  545. package/indicators/aroon-oscillator.src.js +95 -101
  546. package/indicators/aroon.d.ts +1 -17
  547. package/indicators/aroon.js +11 -11
  548. package/indicators/aroon.js.map +1 -1
  549. package/indicators/aroon.src.d.ts +1 -17
  550. package/indicators/aroon.src.js +104 -101
  551. package/indicators/atr.js +1 -1
  552. package/indicators/atr.js.map +1 -1
  553. package/indicators/atr.src.js +17 -4
  554. package/indicators/bollinger-bands.d.ts +1 -17
  555. package/indicators/bollinger-bands.js +11 -12
  556. package/indicators/bollinger-bands.js.map +1 -1
  557. package/indicators/bollinger-bands.src.d.ts +1 -17
  558. package/indicators/bollinger-bands.src.js +97 -103
  559. package/indicators/cci.js +1 -1
  560. package/indicators/cci.js.map +1 -1
  561. package/indicators/cci.src.js +17 -4
  562. package/indicators/chaikin.js +8 -8
  563. package/indicators/chaikin.js.map +1 -1
  564. package/indicators/chaikin.src.js +13 -5
  565. package/indicators/cmf.js +1 -1
  566. package/indicators/cmf.js.map +1 -1
  567. package/indicators/cmf.src.js +21 -1
  568. package/indicators/cmo.js +1 -1
  569. package/indicators/cmo.js.map +1 -1
  570. package/indicators/cmo.src.js +16 -2
  571. package/indicators/dema.js +1 -1
  572. package/indicators/dema.js.map +1 -1
  573. package/indicators/dema.src.js +26 -1
  574. package/indicators/disparity-index.js +1 -1
  575. package/indicators/disparity-index.src.js +1 -1
  576. package/indicators/dmi.js +12 -12
  577. package/indicators/dmi.js.map +1 -1
  578. package/indicators/dmi.src.js +104 -105
  579. package/indicators/dpo.js +1 -1
  580. package/indicators/dpo.js.map +1 -1
  581. package/indicators/dpo.src.js +20 -9
  582. package/indicators/ichimoku-kinko-hyo.js +1 -1
  583. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  584. package/indicators/ichimoku-kinko-hyo.src.js +35 -16
  585. package/indicators/indicators-all.d.ts +1 -17
  586. package/indicators/indicators-all.js +200 -199
  587. package/indicators/indicators-all.js.map +1 -1
  588. package/indicators/indicators-all.src.d.ts +1 -17
  589. package/indicators/indicators-all.src.js +882 -284
  590. package/indicators/indicators.js +1 -1
  591. package/indicators/indicators.js.map +1 -1
  592. package/indicators/indicators.src.js +12 -2
  593. package/indicators/keltner-channels.d.ts +1 -17
  594. package/indicators/keltner-channels.js +11 -12
  595. package/indicators/keltner-channels.js.map +1 -1
  596. package/indicators/keltner-channels.src.d.ts +1 -17
  597. package/indicators/keltner-channels.src.js +114 -99
  598. package/indicators/klinger.js +14 -14
  599. package/indicators/klinger.js.map +1 -1
  600. package/indicators/klinger.src.js +101 -102
  601. package/indicators/macd.js +10 -9
  602. package/indicators/macd.js.map +1 -1
  603. package/indicators/macd.src.js +46 -25
  604. package/indicators/mfi.js +1 -1
  605. package/indicators/mfi.js.map +1 -1
  606. package/indicators/mfi.src.js +24 -11
  607. package/indicators/momentum.js +1 -1
  608. package/indicators/momentum.js.map +1 -1
  609. package/indicators/momentum.src.js +31 -3
  610. package/indicators/natr.js +1 -1
  611. package/indicators/natr.js.map +1 -1
  612. package/indicators/natr.src.js +17 -3
  613. package/indicators/obv.js +1 -1
  614. package/indicators/obv.js.map +1 -1
  615. package/indicators/obv.src.js +11 -1
  616. package/indicators/pivot-points.js +1 -1
  617. package/indicators/pivot-points.js.map +1 -1
  618. package/indicators/pivot-points.src.js +32 -19
  619. package/indicators/ppo.js +1 -1
  620. package/indicators/ppo.js.map +1 -1
  621. package/indicators/ppo.src.js +15 -5
  622. package/indicators/price-channel.d.ts +1 -17
  623. package/indicators/price-channel.js +11 -11
  624. package/indicators/price-channel.js.map +1 -1
  625. package/indicators/price-channel.src.d.ts +1 -17
  626. package/indicators/price-channel.src.js +102 -107
  627. package/indicators/price-envelopes.js +1 -1
  628. package/indicators/price-envelopes.js.map +1 -1
  629. package/indicators/price-envelopes.src.js +26 -1
  630. package/indicators/psar.js +1 -1
  631. package/indicators/psar.js.map +1 -1
  632. package/indicators/psar.src.js +17 -4
  633. package/indicators/regressions.js +12 -11
  634. package/indicators/regressions.js.map +1 -1
  635. package/indicators/regressions.src.js +50 -15
  636. package/indicators/roc.js +1 -1
  637. package/indicators/roc.js.map +1 -1
  638. package/indicators/roc.src.js +16 -3
  639. package/indicators/rsi.js +1 -1
  640. package/indicators/rsi.js.map +1 -1
  641. package/indicators/rsi.src.js +21 -3
  642. package/indicators/slow-stochastic.js +1 -1
  643. package/indicators/slow-stochastic.js.map +1 -1
  644. package/indicators/slow-stochastic.src.js +26 -1
  645. package/indicators/stochastic.d.ts +1 -17
  646. package/indicators/stochastic.js +12 -12
  647. package/indicators/stochastic.js.map +1 -1
  648. package/indicators/stochastic.src.d.ts +1 -17
  649. package/indicators/stochastic.src.js +104 -99
  650. package/indicators/supertrend.js +7 -7
  651. package/indicators/supertrend.js.map +1 -1
  652. package/indicators/supertrend.src.js +21 -9
  653. package/indicators/tema.js +1 -1
  654. package/indicators/tema.src.js +1 -1
  655. package/indicators/trendline.js +1 -1
  656. package/indicators/trendline.js.map +1 -1
  657. package/indicators/trendline.src.js +15 -5
  658. package/indicators/trix.js +1 -1
  659. package/indicators/trix.js.map +1 -1
  660. package/indicators/trix.src.js +26 -1
  661. package/indicators/volume-by-price.js +17 -17
  662. package/indicators/volume-by-price.js.map +1 -1
  663. package/indicators/volume-by-price.src.js +38 -10
  664. package/indicators/vwap.js +1 -1
  665. package/indicators/vwap.js.map +1 -1
  666. package/indicators/vwap.src.js +12 -2
  667. package/indicators/williams-r.js +1 -1
  668. package/indicators/williams-r.js.map +1 -1
  669. package/indicators/williams-r.src.js +11 -1
  670. package/indicators/wma.js +1 -1
  671. package/indicators/wma.js.map +1 -1
  672. package/indicators/wma.src.js +31 -3
  673. package/indicators/zigzag.js +1 -1
  674. package/indicators/zigzag.js.map +1 -1
  675. package/indicators/zigzag.src.js +12 -2
  676. package/modules/accessibility.js +246 -242
  677. package/modules/accessibility.js.map +1 -1
  678. package/modules/accessibility.src.js +797 -664
  679. package/modules/annotations-advanced.d.ts +1 -1
  680. package/modules/annotations-advanced.js +193 -192
  681. package/modules/annotations-advanced.js.map +1 -1
  682. package/modules/annotations-advanced.src.d.ts +1 -1
  683. package/modules/annotations-advanced.src.js +9229 -8589
  684. package/modules/annotations.d.ts +1 -1
  685. package/modules/annotations.js +128 -126
  686. package/modules/annotations.js.map +1 -1
  687. package/modules/annotations.src.d.ts +1 -1
  688. package/modules/annotations.src.js +6190 -5528
  689. package/modules/arc-diagram.js +7 -7
  690. package/modules/arc-diagram.js.map +1 -1
  691. package/modules/arc-diagram.src.js +10 -2
  692. package/modules/arrow-symbols.js +1 -1
  693. package/modules/arrow-symbols.src.js +1 -1
  694. package/modules/boost-canvas.d.ts +19 -0
  695. package/modules/boost-canvas.js +81 -15
  696. package/modules/boost-canvas.js.map +1 -1
  697. package/modules/boost-canvas.src.d.ts +19 -0
  698. package/modules/boost-canvas.src.js +3342 -52
  699. package/modules/boost.d.ts +8 -26
  700. package/modules/boost.js +88 -80
  701. package/modules/boost.js.map +1 -1
  702. package/modules/boost.src.d.ts +8 -26
  703. package/modules/boost.src.js +2435 -1889
  704. package/modules/broken-axis.js +2 -2
  705. package/modules/broken-axis.js.map +1 -1
  706. package/modules/broken-axis.src.js +2 -2
  707. package/modules/bullet.js +1 -1
  708. package/modules/bullet.js.map +1 -1
  709. package/modules/bullet.src.js +2 -5
  710. package/modules/coloraxis.js +2 -2
  711. package/modules/coloraxis.js.map +1 -1
  712. package/modules/coloraxis.src.js +9 -5
  713. package/modules/current-date-indicator.js +1 -1
  714. package/modules/current-date-indicator.src.js +2 -2
  715. package/modules/cylinder.js +9 -9
  716. package/modules/cylinder.js.map +1 -1
  717. package/modules/cylinder.src.js +2 -2
  718. package/modules/data.d.ts +12 -12
  719. package/modules/data.js +33 -34
  720. package/modules/data.js.map +1 -1
  721. package/modules/data.src.d.ts +12 -12
  722. package/modules/data.src.js +862 -829
  723. package/modules/datagrouping.d.ts +22 -0
  724. package/modules/datagrouping.js +9 -9
  725. package/modules/datagrouping.js.map +1 -1
  726. package/modules/datagrouping.src.d.ts +22 -0
  727. package/modules/datagrouping.src.js +69 -29
  728. package/modules/debugger.js +8 -6
  729. package/modules/debugger.js.map +1 -1
  730. package/modules/debugger.src.js +85 -40
  731. package/modules/dependency-wheel.js +12 -12
  732. package/modules/dependency-wheel.js.map +1 -1
  733. package/modules/dependency-wheel.src.js +41 -14
  734. package/modules/dotplot.js +1 -1
  735. package/modules/dotplot.src.js +1 -1
  736. package/modules/drag-panes.js +1 -1
  737. package/modules/drag-panes.src.js +2 -2
  738. package/modules/draggable-points.js +5 -5
  739. package/modules/draggable-points.js.map +1 -1
  740. package/modules/draggable-points.src.js +5 -4
  741. package/modules/drilldown.d.ts +0 -10
  742. package/modules/drilldown.js +37 -37
  743. package/modules/drilldown.js.map +1 -1
  744. package/modules/drilldown.src.d.ts +0 -10
  745. package/modules/drilldown.src.js +59 -25
  746. package/modules/dumbbell.d.ts +4 -0
  747. package/modules/dumbbell.js +17 -17
  748. package/modules/dumbbell.js.map +1 -1
  749. package/modules/dumbbell.src.d.ts +4 -0
  750. package/modules/dumbbell.src.js +24 -12
  751. package/modules/export-data.js +25 -22
  752. package/modules/export-data.js.map +1 -1
  753. package/modules/export-data.src.js +641 -469
  754. package/modules/exporting.d.ts +8 -8
  755. package/modules/exporting.js +39 -39
  756. package/modules/exporting.js.map +1 -1
  757. package/modules/exporting.src.d.ts +8 -8
  758. package/modules/exporting.src.js +442 -319
  759. package/modules/full-screen.js +8 -8
  760. package/modules/full-screen.js.map +1 -1
  761. package/modules/full-screen.src.js +196 -78
  762. package/modules/funnel.js +1 -1
  763. package/modules/funnel.src.js +3 -3
  764. package/modules/funnel3d.js +2 -2
  765. package/modules/funnel3d.js.map +1 -1
  766. package/modules/funnel3d.src.js +2 -2
  767. package/modules/gantt.js +219 -217
  768. package/modules/gantt.js.map +1 -1
  769. package/modules/gantt.src.js +2420 -2364
  770. package/modules/grid-axis.js +23 -23
  771. package/modules/grid-axis.js.map +1 -1
  772. package/modules/grid-axis.src.js +890 -891
  773. package/modules/heatmap.js +40 -40
  774. package/modules/heatmap.js.map +1 -1
  775. package/modules/heatmap.src.js +137 -108
  776. package/modules/heikinashi.js +1 -1
  777. package/modules/heikinashi.src.js +1 -1
  778. package/modules/histogram-bellcurve.js +1 -1
  779. package/modules/histogram-bellcurve.src.js +1 -1
  780. package/modules/hollowcandlestick.js +1 -1
  781. package/modules/hollowcandlestick.src.js +9 -9
  782. package/modules/item-series.js +1 -1
  783. package/modules/item-series.src.js +1 -1
  784. package/modules/lollipop.js +6 -6
  785. package/modules/lollipop.js.map +1 -1
  786. package/modules/lollipop.src.js +37 -22
  787. package/modules/map.d.ts +3 -3
  788. package/modules/map.js +171 -169
  789. package/modules/map.js.map +1 -1
  790. package/modules/map.src.d.ts +3 -3
  791. package/modules/map.src.js +830 -605
  792. package/modules/marker-clusters.js +1 -1
  793. package/modules/marker-clusters.js.map +1 -1
  794. package/modules/marker-clusters.src.js +4 -6
  795. package/modules/networkgraph.d.ts +1 -17
  796. package/modules/networkgraph.js +55 -50
  797. package/modules/networkgraph.js.map +1 -1
  798. package/modules/networkgraph.src.d.ts +1 -17
  799. package/modules/networkgraph.src.js +2339 -2008
  800. package/modules/no-data-to-display.js +1 -1
  801. package/modules/no-data-to-display.src.js +2 -2
  802. package/modules/offline-exporting.js +3 -3
  803. package/modules/offline-exporting.js.map +1 -1
  804. package/modules/offline-exporting.src.js +5 -5
  805. package/modules/oldie-polyfills.js +1 -1
  806. package/modules/oldie-polyfills.src.js +1 -1
  807. package/modules/oldie.js +2 -2
  808. package/modules/oldie.src.js +3 -3
  809. package/modules/organization.js +15 -15
  810. package/modules/organization.js.map +1 -1
  811. package/modules/organization.src.js +12 -4
  812. package/modules/overlapping-datalabels.js +1 -1
  813. package/modules/overlapping-datalabels.src.js +1 -1
  814. package/modules/parallel-coordinates.js +11 -11
  815. package/modules/parallel-coordinates.js.map +1 -1
  816. package/modules/parallel-coordinates.src.js +14 -9
  817. package/modules/pareto.js +1 -1
  818. package/modules/pareto.src.js +1 -1
  819. package/modules/pathfinder.js +1 -1
  820. package/modules/pathfinder.src.js +1 -1
  821. package/modules/pattern-fill.js +15 -14
  822. package/modules/pattern-fill.js.map +1 -1
  823. package/modules/pattern-fill.src.js +15 -2
  824. package/modules/price-indicator.js +1 -1
  825. package/modules/price-indicator.src.js +1 -1
  826. package/modules/pyramid3d.js +1 -1
  827. package/modules/pyramid3d.src.js +1 -1
  828. package/modules/sankey.d.ts +1 -17
  829. package/modules/sankey.js +32 -32
  830. package/modules/sankey.js.map +1 -1
  831. package/modules/sankey.src.d.ts +1 -17
  832. package/modules/sankey.src.js +102 -57
  833. package/modules/series-label.js +18 -18
  834. package/modules/series-label.js.map +1 -1
  835. package/modules/series-label.src.js +474 -387
  836. package/modules/series-on-point.js +18 -0
  837. package/modules/series-on-point.js.map +1 -0
  838. package/modules/series-on-point.src.js +468 -0
  839. package/modules/solid-gauge.js +4 -4
  840. package/modules/solid-gauge.js.map +1 -1
  841. package/modules/solid-gauge.src.js +6 -6
  842. package/modules/sonification.d.ts +2 -2
  843. package/modules/sonification.js +1 -1
  844. package/modules/sonification.js.map +1 -1
  845. package/modules/sonification.src.d.ts +2 -2
  846. package/modules/sonification.src.js +4 -8
  847. package/modules/static-scale.js +1 -1
  848. package/modules/static-scale.src.js +1 -1
  849. package/modules/stock-tools.d.ts +1 -23
  850. package/modules/stock-tools.js +109 -179
  851. package/modules/stock-tools.js.map +1 -1
  852. package/modules/stock-tools.src.d.ts +1 -23
  853. package/modules/stock-tools.src.js +2652 -6347
  854. package/modules/stock.d.ts +8 -0
  855. package/modules/stock.js +205 -204
  856. package/modules/stock.js.map +1 -1
  857. package/modules/stock.src.d.ts +8 -0
  858. package/modules/stock.src.js +208 -106
  859. package/modules/streamgraph.js +1 -1
  860. package/modules/streamgraph.src.js +1 -1
  861. package/modules/sunburst.js +73 -73
  862. package/modules/sunburst.js.map +1 -1
  863. package/modules/sunburst.src.js +251 -193
  864. package/modules/tilemap.js +1 -1
  865. package/modules/tilemap.src.js +1 -1
  866. package/modules/timeline.js +1 -1
  867. package/modules/timeline.js.map +1 -1
  868. package/modules/timeline.src.js +6 -4
  869. package/modules/treegrid.js +57 -57
  870. package/modules/treegrid.js.map +1 -1
  871. package/modules/treegrid.src.js +1908 -1901
  872. package/modules/treemap.js +54 -53
  873. package/modules/treemap.js.map +1 -1
  874. package/modules/treemap.src.js +217 -183
  875. package/modules/variable-pie.js +1 -1
  876. package/modules/variable-pie.src.js +1 -1
  877. package/modules/variwide.js +1 -1
  878. package/modules/variwide.src.js +1 -1
  879. package/modules/vector.js +2 -2
  880. package/modules/vector.js.map +1 -1
  881. package/modules/vector.src.js +3 -5
  882. package/modules/venn.js +31 -31
  883. package/modules/venn.js.map +1 -1
  884. package/modules/venn.src.js +82 -111
  885. package/modules/windbarb.js +1 -1
  886. package/modules/windbarb.src.js +1 -1
  887. package/modules/wordcloud.js +23 -23
  888. package/modules/wordcloud.js.map +1 -1
  889. package/modules/wordcloud.src.js +84 -113
  890. package/modules/xrange.js +17 -17
  891. package/modules/xrange.js.map +1 -1
  892. package/modules/xrange.src.js +411 -397
  893. package/package.json +1 -1
  894. package/themes/avocado.js +1 -1
  895. package/themes/avocado.src.js +1 -1
  896. package/themes/brand-dark.js +1 -1
  897. package/themes/brand-dark.src.js +1 -1
  898. package/themes/brand-light.js +1 -1
  899. package/themes/brand-light.src.js +1 -1
  900. package/themes/dark-blue.js +1 -1
  901. package/themes/dark-blue.src.js +1 -1
  902. package/themes/dark-green.js +1 -1
  903. package/themes/dark-green.src.js +1 -1
  904. package/themes/dark-unica.js +1 -1
  905. package/themes/dark-unica.src.js +1 -1
  906. package/themes/gray.js +1 -1
  907. package/themes/gray.src.js +1 -1
  908. package/themes/grid-light.js +1 -1
  909. package/themes/grid-light.src.js +1 -1
  910. package/themes/grid.js +1 -1
  911. package/themes/grid.src.js +1 -1
  912. package/themes/high-contrast-dark.js +2 -2
  913. package/themes/high-contrast-dark.src.js +11 -11
  914. package/themes/high-contrast-light.js +2 -2
  915. package/themes/high-contrast-light.src.js +10 -10
  916. package/themes/sand-signika.js +1 -1
  917. package/themes/sand-signika.src.js +1 -1
  918. package/themes/skies.js +1 -1
  919. package/themes/skies.src.js +1 -1
  920. package/themes/sunset.js +1 -1
  921. package/themes/sunset.src.js +1 -1
  922. package/es-modules/Core/Axis/StackingAxis.js +0 -216
  923. package/es-modules/Core/Axis/TreeGridAxis.js +0 -720
  924. package/es-modules/Core/Axis/TreeGridTick.js +0 -317
  925. package/es-modules/Extensions/Annotations/Annotations.js +0 -1449
  926. package/es-modules/Extensions/Annotations/Mixins/MarkerMixin.js +0 -179
  927. package/es-modules/Extensions/Annotations/Popup.js +0 -1123
  928. package/es-modules/Extensions/Boost/BoostAttach.js +0 -150
  929. package/es-modules/Extensions/Boost/BoostInit.js +0 -323
  930. package/es-modules/Extensions/Boost/BoostOptions.js +0 -245
  931. package/es-modules/Extensions/Boost/BoostOverrides.js +0 -386
  932. package/es-modules/Extensions/Boost/BoostUtils.js +0 -255
  933. package/es-modules/Extensions/Boost/WGLVBuffer.js +0 -153
  934. package/es-modules/Extensions/FullScreen.js +0 -240
  935. package/es-modules/Extensions/Polar.js +0 -740
  936. package/es-modules/Extensions/Stacking.js +0 -517
  937. package/es-modules/Series/ColorMapMixin.js +0 -84
  938. package/es-modules/Series/DrawPointComposition.js +0 -114
  939. package/es-modules/Series/Networkgraph/DraggableNodes.js +0 -132
  940. package/es-modules/Series/Networkgraph/Integrations.js +0 -348
  941. package/es-modules/Series/Networkgraph/Networkgraph.js +0 -1178
  942. package/es-modules/Series/XRange/XRangeComposition.js +0 -49
@@ -0,0 +1,927 @@
1
+ /* *
2
+ *
3
+ * Copyright (c) 2019-2021 Highsoft AS
4
+ *
5
+ * Boost module: stripped-down renderer for higher performance
6
+ *
7
+ * License: highcharts.com/license
8
+ *
9
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
+ *
11
+ * */
12
+ 'use strict';
13
+ import BoostableMap from './BoostableMap.js';
14
+ import Boostables from './Boostables.js';
15
+ import BoostChart from './BoostChart.js';
16
+ var getBoostClipRect = BoostChart.getBoostClipRect, isChartSeriesBoosting = BoostChart.isChartSeriesBoosting;
17
+ import DefaultOptions from '../../Core/DefaultOptions.js';
18
+ var getOptions = DefaultOptions.getOptions;
19
+ import H from '../../Core/Globals.js';
20
+ var doc = H.doc, noop = H.noop, win = H.win;
21
+ import U from '../../Core/Utilities.js';
22
+ var addEvent = U.addEvent, error = U.error, extend = U.extend, fireEvent = U.fireEvent, isArray = U.isArray, isNumber = U.isNumber, pick = U.pick, wrap = U.wrap;
23
+ import WGLRenderer from './WGLRenderer.js';
24
+ /* *
25
+ *
26
+ * Constants
27
+ *
28
+ * */
29
+ var CHUNK_SIZE = 3000;
30
+ var composedClasses = [];
31
+ /* *
32
+ *
33
+ * Variables
34
+ *
35
+ * */
36
+ var index, mainCanvas;
37
+ /* *
38
+ *
39
+ * Functions
40
+ *
41
+ * */
42
+ /**
43
+ * @private
44
+ */
45
+ function allocateIfNotSeriesBoosting(renderer, series) {
46
+ var boost = series.boost;
47
+ if (renderer &&
48
+ boost &&
49
+ boost.target &&
50
+ boost.canvas &&
51
+ !isChartSeriesBoosting(series.chart)) {
52
+ renderer.allocateBufferForSingleSeries(series);
53
+ }
54
+ }
55
+ /**
56
+ * Return true if ths boost.enabled option is true
57
+ *
58
+ * @private
59
+ * @param {Highcharts.Chart} chart
60
+ * The chart
61
+ * @return {boolean}
62
+ * True, if boost is enabled.
63
+ */
64
+ function boostEnabled(chart) {
65
+ return pick((chart &&
66
+ chart.options &&
67
+ chart.options.boost &&
68
+ chart.options.boost.enabled), true);
69
+ }
70
+ /**
71
+ * @private
72
+ */
73
+ function compose(SeriesClass, seriesTypes, wglMode) {
74
+ var PointClass = SeriesClass.prototype.pointClass;
75
+ if (composedClasses.indexOf(PointClass) === -1) {
76
+ composedClasses.push(PointClass);
77
+ wrap(PointClass.prototype, 'haloPath', wrapPointHaloPath);
78
+ }
79
+ if (composedClasses.indexOf(SeriesClass) === -1) {
80
+ composedClasses.push(SeriesClass);
81
+ addEvent(SeriesClass, 'destroy', onSeriesDestroy);
82
+ addEvent(SeriesClass, 'hide', onSeriesHide);
83
+ var seriesProto_1 = SeriesClass.prototype;
84
+ if (wglMode) {
85
+ seriesProto_1.renderCanvas = seriesRenderCanvas;
86
+ }
87
+ wrap(seriesProto_1, 'getExtremes', wrapSeriesGetExtremes);
88
+ wrap(seriesProto_1, 'markerAttribs', wrapSeriesMarkerAttribs);
89
+ wrap(seriesProto_1, 'processData', wrapSeriesProcessData);
90
+ wrap(seriesProto_1, 'searchPoint', wrapSeriesSearchPoint);
91
+ [
92
+ 'translate',
93
+ 'generatePoints',
94
+ 'drawTracker',
95
+ 'drawPoints',
96
+ 'render'
97
+ ].forEach(function (method) {
98
+ return wrapSeriesFunctions(seriesProto_1, seriesTypes, method);
99
+ });
100
+ }
101
+ if (composedClasses.indexOf(getOptions) === -1) {
102
+ composedClasses.push(getOptions);
103
+ var plotOptions_1 = getOptions().plotOptions;
104
+ // Set default options
105
+ Boostables.forEach(function (type) {
106
+ var typePlotOptions = plotOptions_1[type];
107
+ if (typePlotOptions) {
108
+ typePlotOptions.boostThreshold = 5000;
109
+ typePlotOptions.boostData = [];
110
+ seriesTypes[type].prototype.fillOpacity = true;
111
+ }
112
+ });
113
+ }
114
+ if (wglMode) {
115
+ var AreaSeries = seriesTypes.area, AreaSplineSeries = seriesTypes.areaspline, BubbleSeries = seriesTypes.bubble, ColumnSeries = seriesTypes.column, HeatmapSeries = seriesTypes.heatmap, ScatterSeries = seriesTypes.scatter, TreemapSeries = seriesTypes.treemap;
116
+ if (AreaSeries &&
117
+ composedClasses.indexOf(AreaSeries) === -1) {
118
+ composedClasses.push(AreaSeries);
119
+ extend(AreaSeries.prototype, {
120
+ fill: true,
121
+ fillOpacity: true,
122
+ sampling: true
123
+ });
124
+ }
125
+ if (AreaSplineSeries &&
126
+ composedClasses.indexOf(AreaSplineSeries) === -1) {
127
+ composedClasses.push(AreaSplineSeries);
128
+ extend(AreaSplineSeries.prototype, {
129
+ fill: true,
130
+ fillOpacity: true,
131
+ sampling: true
132
+ });
133
+ }
134
+ if (BubbleSeries &&
135
+ composedClasses.indexOf(BubbleSeries) === -1) {
136
+ composedClasses.push(BubbleSeries);
137
+ var bubbleProto_1 = BubbleSeries.prototype;
138
+ // By default, the bubble series does not use the KD-tree, so force
139
+ // it to.
140
+ delete bubbleProto_1.buildKDTree;
141
+ // seriesTypes.bubble.prototype.directTouch = false;
142
+ // Needed for markers to work correctly
143
+ wrap(bubbleProto_1, 'markerAttribs', function (proceed) {
144
+ if (this.boosted) {
145
+ return false;
146
+ }
147
+ return proceed.apply(this, [].slice.call(arguments, 1));
148
+ });
149
+ }
150
+ if (ColumnSeries &&
151
+ composedClasses.indexOf(ColumnSeries) === -1) {
152
+ composedClasses.push(ColumnSeries);
153
+ extend(ColumnSeries.prototype, {
154
+ fill: true,
155
+ sampling: true
156
+ });
157
+ }
158
+ if (ScatterSeries &&
159
+ composedClasses.indexOf(ScatterSeries) === -1) {
160
+ composedClasses.push(ScatterSeries);
161
+ ScatterSeries.prototype.fill = true;
162
+ }
163
+ // We need to handle heatmaps separatly, since we can't perform the
164
+ // size/color calculations in the shader easily.
165
+ // @todo This likely needs future optimization.
166
+ [HeatmapSeries, TreemapSeries].forEach(function (SC) {
167
+ if (SC && composedClasses.indexOf(SC) === -1) {
168
+ composedClasses.push(SC);
169
+ wrap(SC.prototype, 'drawPoints', wrapSeriesDrawPoints);
170
+ }
171
+ });
172
+ }
173
+ return SeriesClass;
174
+ }
175
+ /**
176
+ * Create a canvas + context and attach it to the target
177
+ *
178
+ * @private
179
+ * @function createAndAttachRenderer
180
+ *
181
+ * @param {Highcharts.Chart} chart
182
+ * the chart
183
+ *
184
+ * @param {Highcharts.Series} series
185
+ * the series
186
+ *
187
+ * @return {Highcharts.BoostGLRenderer}
188
+ * the canvas renderer
189
+ */
190
+ function createAndAttachRenderer(chart, series) {
191
+ var ChartClass = chart.constructor, targetGroup = chart.seriesGroup || series.group, alpha = 1;
192
+ var width = chart.chartWidth, height = chart.chartHeight, target = chart, foSupported = typeof SVGForeignObjectElement !== 'undefined';
193
+ if (isChartSeriesBoosting(chart)) {
194
+ target = chart;
195
+ }
196
+ else {
197
+ target = series;
198
+ }
199
+ var boost = target.boost =
200
+ target.boost ||
201
+ {};
202
+ // Support for foreignObject is flimsy as best.
203
+ // IE does not support it, and Chrome has a bug which messes up
204
+ // the canvas draw order.
205
+ // As such, we force the Image fallback for now, but leaving the
206
+ // actual Canvas path in-place in case this changes in the future.
207
+ foSupported = false;
208
+ if (!mainCanvas) {
209
+ mainCanvas = doc.createElement('canvas');
210
+ }
211
+ if (!boost.target) {
212
+ boost.canvas = mainCanvas;
213
+ // Fall back to image tag if foreignObject isn't supported,
214
+ // or if we're exporting.
215
+ if (chart.renderer.forExport || !foSupported) {
216
+ target.renderTarget = boost.target = chart.renderer.image('', 0, 0, width, height)
217
+ .addClass('highcharts-boost-canvas')
218
+ .add(targetGroup);
219
+ boost.clear = function () {
220
+ boost.target.attr({
221
+ // Insert a blank pixel (#17182)
222
+ /* eslint-disable-next-line max-len*/
223
+ href: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII='
224
+ });
225
+ };
226
+ boost.copy = function () {
227
+ boost.resize();
228
+ boost.target.attr({
229
+ href: boost.canvas.toDataURL('image/png')
230
+ });
231
+ };
232
+ }
233
+ else {
234
+ boost.targetFo = chart.renderer
235
+ .createElement('foreignObject')
236
+ .add(targetGroup);
237
+ target.renderTarget = boost.target =
238
+ doc.createElement('canvas');
239
+ boost.targetCtx = boost.target.getContext('2d');
240
+ boost.targetFo.element.appendChild(boost.target);
241
+ boost.clear = function () {
242
+ boost.target.width = boost.canvas.width;
243
+ boost.target.height = boost.canvas.height;
244
+ };
245
+ boost.copy = function () {
246
+ boost.target.width = boost.canvas.width;
247
+ boost.target.height = boost.canvas.height;
248
+ boost.targetCtx.drawImage(boost.canvas, 0, 0);
249
+ };
250
+ }
251
+ boost.resize = function () {
252
+ width = chart.chartWidth;
253
+ height = chart.chartHeight;
254
+ (boost.targetFo || boost.target)
255
+ .attr({
256
+ x: 0,
257
+ y: 0,
258
+ width: width,
259
+ height: height
260
+ })
261
+ .css({
262
+ pointerEvents: 'none',
263
+ mixedBlendMode: 'normal',
264
+ opacity: alpha
265
+ });
266
+ if (target instanceof ChartClass) {
267
+ target.boost.markerGroup.translate(chart.plotLeft, chart.plotTop);
268
+ }
269
+ };
270
+ boost.clipRect = chart.renderer.clipRect();
271
+ (boost.targetFo || boost.target).clip(boost.clipRect);
272
+ if (target instanceof ChartClass) {
273
+ target.boost.markerGroup = target.renderer
274
+ .g()
275
+ .add(targetGroup)
276
+ .translate(series.xAxis.pos, series.yAxis.pos);
277
+ }
278
+ }
279
+ boost.canvas.width = width;
280
+ boost.canvas.height = height;
281
+ if (boost.clipRect) {
282
+ boost.clipRect.attr(getBoostClipRect(chart, target));
283
+ }
284
+ boost.resize();
285
+ boost.clear();
286
+ if (!boost.wgl) {
287
+ boost.wgl = new WGLRenderer(function (wgl) {
288
+ if (wgl.settings.debug.timeBufferCopy) {
289
+ console.time('buffer copy'); // eslint-disable-line no-console
290
+ }
291
+ boost.copy();
292
+ if (wgl.settings.debug.timeBufferCopy) {
293
+ console.timeEnd('buffer copy'); // eslint-disable-line no-console
294
+ }
295
+ });
296
+ if (!boost.wgl.init(boost.canvas)) {
297
+ // The OGL renderer couldn't be inited.
298
+ // This likely means a shader error as we wouldn't get to this point
299
+ // if there was no WebGL support.
300
+ error('[highcharts boost] - unable to init WebGL renderer');
301
+ }
302
+ // target.ogl.clear();
303
+ boost.wgl.setOptions(chart.options.boost || {});
304
+ if (target instanceof ChartClass) {
305
+ boost.wgl.allocateBuffer(chart);
306
+ }
307
+ }
308
+ boost.wgl.setSize(width, height);
309
+ return boost.wgl;
310
+ }
311
+ /**
312
+ * If implemented in the core, parts of this can probably be
313
+ * shared with other similar methods in Highcharts.
314
+ * @private
315
+ * @function Highcharts.Series#destroyGraphics
316
+ */
317
+ function destroyGraphics(series) {
318
+ var points = series.points;
319
+ if (points) {
320
+ var point = void 0, i = void 0;
321
+ for (i = 0; i < points.length; i = i + 1) {
322
+ point = points[i];
323
+ if (point && point.destroyElements) {
324
+ point.destroyElements(); // #7557
325
+ }
326
+ }
327
+ }
328
+ ['graph', 'area', 'tracker'].forEach(function (prop) {
329
+ var seriesProp = series[prop];
330
+ if (seriesProp) {
331
+ series[prop] = seriesProp.destroy();
332
+ }
333
+ });
334
+ var zonesSeries = series;
335
+ if (zonesSeries.getZonesGraphs) {
336
+ var props = zonesSeries.getZonesGraphs([['graph', 'highcharts-graph']]);
337
+ props.forEach(function (prop) {
338
+ var zoneGraph = zonesSeries[prop[0]];
339
+ if (zoneGraph) {
340
+ zonesSeries[prop[0]] = zoneGraph.destroy();
341
+ }
342
+ });
343
+ }
344
+ }
345
+ /**
346
+ * An "async" foreach loop. Uses a setTimeout to keep the loop from blocking the
347
+ * UI thread.
348
+ *
349
+ * @private
350
+ * @param {Array<unknown>} arr
351
+ * The array to loop through.
352
+ * @param {Function} fn
353
+ * The callback to call for each item.
354
+ * @param {Function} finalFunc
355
+ * The callback to call when done.
356
+ * @param {number} [chunkSize]
357
+ * The number of iterations per timeout.
358
+ * @param {number} [i]
359
+ * The current index.
360
+ * @param {boolean} [noTimeout]
361
+ * Set to true to skip timeouts.
362
+ */
363
+ function eachAsync(arr, fn, finalFunc, chunkSize, i, noTimeout) {
364
+ i = i || 0;
365
+ chunkSize = chunkSize || CHUNK_SIZE;
366
+ var threshold = i + chunkSize;
367
+ var proceed = true;
368
+ while (proceed && i < threshold && i < arr.length) {
369
+ proceed = fn(arr[i], i);
370
+ ++i;
371
+ }
372
+ if (proceed) {
373
+ if (i < arr.length) {
374
+ if (noTimeout) {
375
+ eachAsync(arr, fn, finalFunc, chunkSize, i, noTimeout);
376
+ }
377
+ else if (win.requestAnimationFrame) {
378
+ // If available, do requestAnimationFrame - shaves off a few ms
379
+ win.requestAnimationFrame(function () {
380
+ eachAsync(arr, fn, finalFunc, chunkSize, i);
381
+ });
382
+ }
383
+ else {
384
+ setTimeout(eachAsync, 0, arr, fn, finalFunc, chunkSize, i);
385
+ }
386
+ }
387
+ else if (finalFunc) {
388
+ finalFunc();
389
+ }
390
+ }
391
+ }
392
+ /**
393
+ * Enter boost mode and apply boost-specific properties.
394
+ * @private
395
+ * @function Highcharts.Series#enterBoost
396
+ */
397
+ function enterBoost(series) {
398
+ series.boost = series.boost || {
399
+ // faster than a series bind:
400
+ getPoint: (function (bp) { return getPoint(series, bp); })
401
+ };
402
+ var alteredByBoost = series.boost.altered = [];
403
+ // Save the original values, including whether it was an own
404
+ // property or inherited from the prototype.
405
+ ['allowDG', 'directTouch', 'stickyTracking'].forEach(function (prop) {
406
+ alteredByBoost.push({
407
+ prop: prop,
408
+ val: series[prop],
409
+ own: Object.hasOwnProperty.call(series, prop)
410
+ });
411
+ });
412
+ series.allowDG = false;
413
+ series.directTouch = false;
414
+ series.stickyTracking = true;
415
+ // Prevent animation when zooming in on boosted series(#13421).
416
+ series.finishedAnimating = true;
417
+ // Hide series label if any
418
+ if (series.labelBySeries) {
419
+ series.labelBySeries = series.labelBySeries.destroy();
420
+ }
421
+ }
422
+ /**
423
+ * Exit from boost mode and restore non-boost properties.
424
+ * @private
425
+ * @function Highcharts.Series#exitBoost
426
+ */
427
+ function exitBoost(series) {
428
+ var boost = series.boost;
429
+ // Reset instance properties and/or delete instance properties and go back
430
+ // to prototype
431
+ if (boost) {
432
+ (boost.altered || []).forEach(function (setting) {
433
+ if (setting.own) {
434
+ series[setting.prop] = setting.val;
435
+ }
436
+ else {
437
+ // Revert to prototype
438
+ delete series[setting.prop];
439
+ }
440
+ });
441
+ // Clear previous run
442
+ if (boost.clear) {
443
+ boost.clear();
444
+ }
445
+ }
446
+ }
447
+ /**
448
+ * @private
449
+ * @function Highcharts.Series#hasExtremes
450
+ */
451
+ function hasExtremes(series, checkX) {
452
+ var options = series.options, data = options.data, xAxis = series.xAxis && series.xAxis.options, yAxis = series.yAxis && series.yAxis.options, colorAxis = series.colorAxis && series.colorAxis.options;
453
+ return data.length > (options.boostThreshold || Number.MAX_VALUE) &&
454
+ // Defined yAxis extremes
455
+ isNumber(yAxis.min) &&
456
+ isNumber(yAxis.max) &&
457
+ // Defined (and required) xAxis extremes
458
+ (!checkX ||
459
+ (isNumber(xAxis.min) && isNumber(xAxis.max))) &&
460
+ // Defined (e.g. heatmap) colorAxis extremes
461
+ (!colorAxis ||
462
+ (isNumber(colorAxis.min) && isNumber(colorAxis.max)));
463
+ }
464
+ /**
465
+ * Extend series.destroy to also remove the fake k-d-tree points (#5137).
466
+ * Normally this is handled by Series.destroy that calls Point.destroy,
467
+ * but the fake search points are not registered like that.
468
+ * @private
469
+ */
470
+ function onSeriesDestroy() {
471
+ var series = this, chart = series.chart;
472
+ if (chart.boost &&
473
+ chart.boost.markerGroup === series.markerGroup) {
474
+ series.markerGroup = null;
475
+ }
476
+ if (chart.hoverPoints) {
477
+ chart.hoverPoints = chart.hoverPoints.filter(function (point) {
478
+ return point.series === series;
479
+ });
480
+ }
481
+ if (chart.hoverPoint && chart.hoverPoint.series === series) {
482
+ chart.hoverPoint = null;
483
+ }
484
+ }
485
+ /**
486
+ * @private
487
+ */
488
+ function onSeriesHide() {
489
+ var boost = this.boost;
490
+ if (boost && boost.canvas && boost.target) {
491
+ if (boost.wgl) {
492
+ boost.wgl.clear();
493
+ }
494
+ if (boost.clear) {
495
+ boost.clear();
496
+ }
497
+ }
498
+ }
499
+ /**
500
+ * Performs the actual render if the renderer is
501
+ * attached to the series.
502
+ * @private
503
+ */
504
+ function renderIfNotSeriesBoosting(series) {
505
+ var boost = series.boost;
506
+ if (boost &&
507
+ boost.canvas &&
508
+ boost.target &&
509
+ boost.wgl &&
510
+ !isChartSeriesBoosting(series.chart)) {
511
+ boost.wgl.render(series.chart);
512
+ }
513
+ }
514
+ /**
515
+ * Return a full Point object based on the index.
516
+ * The boost module uses stripped point objects for performance reasons.
517
+
518
+ * @private
519
+ * @param {object|Highcharts.Point} boostPoint
520
+ * A stripped-down point object
521
+ * @return {Highcharts.Point}
522
+ * A Point object as per https://api.highcharts.com/highcharts#Point
523
+ */
524
+ function getPoint(series, boostPoint) {
525
+ var seriesOptions = series.options, xAxis = series.xAxis, PointClass = series.pointClass;
526
+ if (boostPoint instanceof PointClass) {
527
+ return boostPoint;
528
+ }
529
+ var xData = (series.xData ||
530
+ seriesOptions.xData ||
531
+ series.processedXData ||
532
+ false), point = (new PointClass()).init(series, series.options.data[boostPoint.i], xData ? xData[boostPoint.i] : void 0);
533
+ point.category = pick(xAxis.categories ?
534
+ xAxis.categories[point.x] :
535
+ point.x, // @todo simplify
536
+ point.x);
537
+ point.dist = boostPoint.dist;
538
+ point.distX = boostPoint.distX;
539
+ point.plotX = boostPoint.plotX;
540
+ point.plotY = boostPoint.plotY;
541
+ point.index = boostPoint.i;
542
+ point.isInside = series.isPointInside(point);
543
+ return point;
544
+ }
545
+ /**
546
+ * @private
547
+ * @function Highcharts.Series#renderCanvas
548
+ */
549
+ function seriesRenderCanvas() {
550
+ var _this = this;
551
+ var options = this.options || {}, chart = this.chart, xAxis = this.xAxis, yAxis = this.yAxis, xData = options.xData || this.processedXData, yData = options.yData || this.processedYData, rawData = options.data, xExtremes = xAxis.getExtremes(), xMin = xExtremes.min, xMax = xExtremes.max, yExtremes = yAxis.getExtremes(), yMin = yExtremes.min, yMax = yExtremes.max, pointTaken = {}, sampling = !!this.sampling, enableMouseTracking = options.enableMouseTracking !== false, threshold = options.threshold, isRange = this.pointArrayMap &&
552
+ this.pointArrayMap.join(',') === 'low,high', isStacked = !!options.stacking, cropStart = this.cropStart || 0, requireSorting = this.requireSorting, useRaw = !xData, compareX = options.findNearestPointBy === 'x', xDataFull = (this.xData ||
553
+ this.options.xData ||
554
+ this.processedXData ||
555
+ false);
556
+ var renderer = false, lastClientX, yBottom = yAxis.getThreshold(threshold), minVal, maxVal, minI, maxI;
557
+ // Get or create the renderer
558
+ renderer = createAndAttachRenderer(chart, this);
559
+ chart.boosted = true;
560
+ if (!this.visible) {
561
+ return;
562
+ }
563
+ // If we are zooming out from SVG mode, destroy the graphics
564
+ if (this.points || this.graph) {
565
+ destroyGraphics(this);
566
+ }
567
+ // If we're rendering per. series we should create the marker groups
568
+ // as usual.
569
+ if (!isChartSeriesBoosting(chart)) {
570
+ // If all series were boosting, but are not anymore
571
+ // restore private markerGroup
572
+ if (chart.boost &&
573
+ this.markerGroup === chart.boost.markerGroup) {
574
+ this.markerGroup = void 0;
575
+ }
576
+ this.markerGroup = this.plotGroup('markerGroup', 'markers', true, 1, chart.seriesGroup);
577
+ }
578
+ else {
579
+ // If series has a private markeGroup, remove that
580
+ // and use common markerGroup
581
+ if (this.markerGroup &&
582
+ this.markerGroup !== chart.boost.markerGroup) {
583
+ this.markerGroup.destroy();
584
+ }
585
+ // Use a single group for the markers
586
+ this.markerGroup = chart.boost.markerGroup;
587
+ // When switching from chart boosting mode, destroy redundant
588
+ // series boosting targets
589
+ if (this.boost && this.boost.target) {
590
+ this.renderTarget = this.boost.target = this.boost.target.destroy();
591
+ }
592
+ }
593
+ var points = this.points = [], addKDPoint = function (clientX, plotY, i) {
594
+ // We need to do ceil on the clientX to make things
595
+ // snap to pixel values. The renderer will frequently
596
+ // draw stuff on "sub-pixels".
597
+ clientX = Math.ceil(clientX);
598
+ // Shaves off about 60ms compared to repeated concatenation
599
+ index = compareX ? clientX : clientX + ',' + plotY;
600
+ // The k-d tree requires series points.
601
+ // Reduce the amount of points, since the time to build the
602
+ // tree increases exponentially.
603
+ if (enableMouseTracking && !pointTaken[index]) {
604
+ pointTaken[index] = true;
605
+ if (chart.inverted) {
606
+ clientX = xAxis.len - clientX;
607
+ plotY = yAxis.len - plotY;
608
+ }
609
+ points.push({
610
+ x: xDataFull ? xDataFull[cropStart + i] : false,
611
+ clientX: clientX,
612
+ plotX: clientX,
613
+ plotY: plotY,
614
+ i: cropStart + i
615
+ });
616
+ }
617
+ };
618
+ // Do not start building while drawing
619
+ this.buildKDTree = noop;
620
+ if (renderer) {
621
+ allocateIfNotSeriesBoosting(renderer, this);
622
+ renderer.pushSeries(this);
623
+ // Perform the actual renderer if we're on series level
624
+ renderIfNotSeriesBoosting(this);
625
+ }
626
+ /**
627
+ * This builds the KD-tree
628
+ * @private
629
+ */
630
+ function processPoint(d, i) {
631
+ var chartDestroyed = typeof chart.index === 'undefined';
632
+ var x, y, clientX, plotY, low = false, isYInside = true;
633
+ if (typeof d === 'undefined') {
634
+ return true;
635
+ }
636
+ if (!chartDestroyed) {
637
+ if (useRaw) {
638
+ x = d[0];
639
+ y = d[1];
640
+ }
641
+ else {
642
+ x = d;
643
+ y = yData[i];
644
+ }
645
+ // Resolve low and high for range series
646
+ if (isRange) {
647
+ if (useRaw) {
648
+ y = d.slice(1, 3);
649
+ }
650
+ low = y[0];
651
+ y = y[1];
652
+ }
653
+ else if (isStacked) {
654
+ x = d.x;
655
+ y = d.stackY;
656
+ low = y - d.y;
657
+ }
658
+ // Optimize for scatter zooming
659
+ if (!requireSorting) {
660
+ isYInside = (y || 0) >= yMin && y <= yMax;
661
+ }
662
+ if (y !== null && x >= xMin && x <= xMax && isYInside) {
663
+ clientX = xAxis.toPixels(x, true);
664
+ if (sampling) {
665
+ if (typeof minI === 'undefined' ||
666
+ clientX === lastClientX) {
667
+ if (!isRange) {
668
+ low = y;
669
+ }
670
+ if (typeof maxI === 'undefined' ||
671
+ y > maxVal) {
672
+ maxVal = y;
673
+ maxI = i;
674
+ }
675
+ if (typeof minI === 'undefined' ||
676
+ low < minVal) {
677
+ minVal = low;
678
+ minI = i;
679
+ }
680
+ }
681
+ // Add points and reset
682
+ if (!compareX || clientX !== lastClientX) {
683
+ // maxI is number too:
684
+ if (typeof minI !== 'undefined') {
685
+ plotY =
686
+ yAxis.toPixels(maxVal, true);
687
+ yBottom =
688
+ yAxis.toPixels(minVal, true);
689
+ addKDPoint(clientX, plotY, maxI);
690
+ if (yBottom !== plotY) {
691
+ addKDPoint(clientX, yBottom, minI);
692
+ }
693
+ }
694
+ minI = maxI = void 0;
695
+ lastClientX = clientX;
696
+ }
697
+ }
698
+ else {
699
+ plotY = Math.ceil(yAxis.toPixels(y, true));
700
+ addKDPoint(clientX, plotY, i);
701
+ }
702
+ }
703
+ }
704
+ return !chartDestroyed;
705
+ }
706
+ /**
707
+ * @private
708
+ */
709
+ var boostOptions = renderer.settings, doneProcessing = function () {
710
+ fireEvent(_this, 'renderedCanvas');
711
+ // Go back to prototype, ready to build
712
+ delete _this.buildKDTree;
713
+ _this.buildKDTree();
714
+ if (boostOptions.debug.timeKDTree) {
715
+ console.timeEnd('kd tree building'); // eslint-disable-line no-console
716
+ }
717
+ };
718
+ // Loop over the points to build the k-d tree - skip this if
719
+ // exporting
720
+ if (!chart.renderer.forExport) {
721
+ if (boostOptions.debug.timeKDTree) {
722
+ console.time('kd tree building'); // eslint-disable-line no-console
723
+ }
724
+ eachAsync(isStacked ? this.data : (xData || rawData), processPoint, doneProcessing);
725
+ }
726
+ }
727
+ /**
728
+ * For inverted series, we need to swap X-Y values before running base
729
+ * methods.
730
+ * @private
731
+ */
732
+ function wrapPointHaloPath(proceed) {
733
+ var point = this, series = point.series, chart = series.chart, plotX = point.plotX || 0, plotY = point.plotY || 0, inverted = chart.inverted;
734
+ if (series.boosted && inverted) {
735
+ point.plotX = series.yAxis.len - plotY;
736
+ point.plotY = series.xAxis.len - plotX;
737
+ }
738
+ var halo = proceed.apply(this, [].slice.call(arguments, 1));
739
+ if (series.boosted && inverted) {
740
+ point.plotX = plotX;
741
+ point.plotY = plotY;
742
+ }
743
+ return halo;
744
+ }
745
+ /**
746
+ * Used for treemap|heatmap.drawPoints
747
+ * @private
748
+ */
749
+ function wrapSeriesDrawPoints(proceed) {
750
+ var enabled = true;
751
+ if (this.chart.options && this.chart.options.boost) {
752
+ enabled = typeof this.chart.options.boost.enabled === 'undefined' ?
753
+ true :
754
+ this.chart.options.boost.enabled;
755
+ }
756
+ if (!enabled || !this.boosted) {
757
+ return proceed.call(this);
758
+ }
759
+ this.chart.boosted = true;
760
+ // Make sure we have a valid OGL context
761
+ var renderer = createAndAttachRenderer(this.chart, this);
762
+ if (renderer) {
763
+ allocateIfNotSeriesBoosting(renderer, this);
764
+ renderer.pushSeries(this);
765
+ }
766
+ renderIfNotSeriesBoosting(this);
767
+ }
768
+ /**
769
+ * Override a bunch of methods the same way. If the number of points is
770
+ * below the threshold, run the original method. If not, check for a
771
+ * canvas version or do nothing.
772
+ *
773
+ * Note that we're not overriding any of these for heatmaps.
774
+ */
775
+ function wrapSeriesFunctions(seriesProto, seriesTypes, method) {
776
+ /**
777
+ * @private
778
+ */
779
+ function branch(proceed) {
780
+ var letItPass = this.options.stacking &&
781
+ (method === 'translate' || method === 'generatePoints');
782
+ if (!this.boosted ||
783
+ letItPass ||
784
+ !boostEnabled(this.chart) ||
785
+ this.type === 'heatmap' ||
786
+ this.type === 'treemap' ||
787
+ !BoostableMap[this.type] ||
788
+ this.options.boostThreshold === 0) {
789
+ proceed.call(this);
790
+ // Run canvas version of method, like renderCanvas(), if it exists
791
+ }
792
+ else if (method === 'render' && this.renderCanvas) {
793
+ this.renderCanvas();
794
+ }
795
+ }
796
+ wrap(seriesProto, method, branch);
797
+ // Special case for some types, when translate method is already wrapped
798
+ if (method === 'translate') {
799
+ [
800
+ 'column',
801
+ 'arearange',
802
+ 'columnrange',
803
+ 'heatmap',
804
+ 'treemap'
805
+ ].forEach(function (type) {
806
+ if (seriesTypes[type]) {
807
+ wrap(seriesTypes[type].prototype, method, branch);
808
+ }
809
+ });
810
+ }
811
+ }
812
+ /**
813
+ * Do not compute extremes when min and max are set. If we use this in the
814
+ * core, we can add the hook to hasExtremes to the methods directly.
815
+ * @private
816
+ */
817
+ function wrapSeriesGetExtremes(proceed) {
818
+ if (this.boosted &&
819
+ hasExtremes(this)) {
820
+ return {};
821
+ }
822
+ return proceed.apply(this, [].slice.call(arguments, 1));
823
+ }
824
+ /**
825
+ * @private
826
+ */
827
+ function wrapSeriesMarkerAttribs(proceed, point) {
828
+ var series = this, chart = series.chart, plotX = point.plotX || 0, plotY = point.plotY || 0, inverted = chart.inverted;
829
+ if (series.boosted && inverted) {
830
+ point.plotX = series.yAxis.len - plotY;
831
+ point.plotY = series.xAxis.len - plotX;
832
+ }
833
+ var attribs = proceed.apply(this, [].slice.call(arguments, 1));
834
+ if (series.boosted && inverted) {
835
+ point.plotX = plotX;
836
+ point.plotY = plotY;
837
+ }
838
+ return attribs;
839
+ }
840
+ /**
841
+ * If the series is a heatmap or treemap, or if the series is not boosting
842
+ * do the default behaviour. Otherwise, process if the series has no
843
+ * extremes.
844
+ * @private
845
+ */
846
+ function wrapSeriesProcessData(proceed) {
847
+ var _this = this;
848
+ var dataToMeasure = this.options.data;
849
+ /**
850
+ * Used twice in this function, first on this.options.data, the second
851
+ * time it runs the check again after processedXData is built.
852
+ * If the data is going to be grouped, the series shouldn't be boosted.
853
+ * @private
854
+ */
855
+ var getSeriesBoosting = function (data) {
856
+ var series = _this;
857
+ // Check if will be grouped.
858
+ if (series.forceCrop) {
859
+ return false;
860
+ }
861
+ return (isChartSeriesBoosting(series.chart) ||
862
+ ((data ? data.length : 0) >=
863
+ (series.options.boostThreshold || Number.MAX_VALUE)));
864
+ };
865
+ if (boostEnabled(this.chart) && BoostableMap[this.type]) {
866
+ var series = this;
867
+ // If there are no extremes given in the options, we also need to
868
+ // process the data to read the data extremes. If this is a heatmap,
869
+ // do default behaviour.
870
+ if (
871
+ // First pass with options.data:
872
+ !getSeriesBoosting(dataToMeasure) ||
873
+ series.type === 'heatmap' ||
874
+ series.type === 'treemap' ||
875
+ // processedYData for the stack (#7481):
876
+ series.options.stacking ||
877
+ !hasExtremes(series, true)) {
878
+ proceed.apply(series, [].slice.call(arguments, 1));
879
+ dataToMeasure = series.processedXData;
880
+ }
881
+ // Set the isBoosting flag, second pass with processedXData to
882
+ // see if we have zoomed.
883
+ series.boosted = getSeriesBoosting(dataToMeasure);
884
+ // Enter or exit boost mode
885
+ if (series.boosted) {
886
+ // Force turbo-mode:
887
+ var firstPoint = void 0;
888
+ if (series.options.data &&
889
+ series.options.data.length) {
890
+ firstPoint = series.getFirstValidPoint(series.options.data);
891
+ if (!isNumber(firstPoint) && !isArray(firstPoint)) {
892
+ error(12, false, series.chart);
893
+ }
894
+ }
895
+ enterBoost(series);
896
+ }
897
+ else {
898
+ exitBoost(series);
899
+ }
900
+ // The series type is not boostable
901
+ }
902
+ else {
903
+ proceed.apply(this, [].slice.call(arguments, 1));
904
+ }
905
+ }
906
+ /**
907
+ * Return a point instance from the k-d-tree
908
+ * @private
909
+ */
910
+ function wrapSeriesSearchPoint(proceed) {
911
+ var result = proceed.apply(this, [].slice.call(arguments, 1));
912
+ if (this.boost && result) {
913
+ return this.boost.getPoint(result);
914
+ }
915
+ return result;
916
+ }
917
+ /* *
918
+ *
919
+ * Default Export
920
+ *
921
+ * */
922
+ var BoostSeries = {
923
+ compose: compose,
924
+ destroyGraphics: destroyGraphics,
925
+ getPoint: getPoint
926
+ };
927
+ export default BoostSeries;