highcharts 10.2.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 (763) 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/Accessibility.js +6 -0
  7. package/es-modules/Accessibility/Components/LegendComponent.js +8 -8
  8. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +3 -2
  9. package/es-modules/Accessibility/Options/A11yDefaults.js +1 -1
  10. package/es-modules/Core/Axis/Axis.js +3 -0
  11. package/es-modules/Core/Axis/Axis3D.js +1 -1
  12. package/es-modules/Core/Axis/AxisDefaults.js +1 -1
  13. package/es-modules/Core/Axis/BrokenAxis.js +1 -1
  14. package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +4 -0
  15. package/es-modules/Core/Axis/NavigatorAxis.js +2 -2
  16. package/es-modules/Core/Axis/OrdinalAxis.js +2 -2
  17. package/es-modules/Core/Axis/RadialAxis.js +1 -1
  18. package/es-modules/Core/Axis/Stacking/StackItem.js +262 -0
  19. package/es-modules/Core/Axis/Stacking/StackingAxis.js +468 -0
  20. package/es-modules/Core/Axis/TreeGrid/TreeGridAxis.js +732 -0
  21. package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +313 -0
  22. package/es-modules/Core/Axis/WaterfallAxis.js +1 -1
  23. package/es-modules/Core/Axis/ZAxis.js +73 -70
  24. package/es-modules/Core/Chart/Chart.js +16 -2
  25. package/es-modules/Core/Chart/Chart3D.js +2 -2
  26. package/es-modules/Core/Chart/ChartDefaults.js +151 -2
  27. package/es-modules/Core/Chart/StockChart.js +5 -3
  28. package/es-modules/Core/DefaultOptions.js +2 -1
  29. package/es-modules/Core/Geometry/CircleUtilities.js +4 -4
  30. package/es-modules/Core/Globals.js +2 -1
  31. package/es-modules/{Extensions → Core}/Math3D.js +48 -43
  32. package/es-modules/Core/Navigator.js +24 -7
  33. package/es-modules/Core/Pointer.js +7 -9
  34. package/es-modules/Core/Renderer/HTML/AST.js +4 -1
  35. package/es-modules/Core/Renderer/SVG/SVGElement.js +103 -163
  36. package/es-modules/Core/Renderer/SVG/SVGLabel.js +29 -27
  37. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +3 -3
  38. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +1 -1
  39. package/es-modules/Core/Renderer/SVG/TextBuilder.js +5 -3
  40. package/es-modules/Core/Scrollbar.js +3 -1
  41. package/es-modules/Core/Series/DataLabel.js +8 -6
  42. package/es-modules/Core/Series/Point.js +2 -2
  43. package/es-modules/Core/Series/Series.js +36 -31
  44. package/es-modules/Core/Series/Series3D.js +1 -1
  45. package/es-modules/Core/Series/SeriesDefaults.js +8 -3
  46. package/es-modules/Core/Series/SeriesRegistry.js +6 -29
  47. package/es-modules/Core/Tooltip.js +14 -3
  48. package/es-modules/Core/Utilities.js +1 -3
  49. package/es-modules/Data/DataConverter.js +5 -0
  50. package/es-modules/Data/DataPromise.js +1 -1
  51. package/es-modules/Data/DataSeriesComposition.js +288 -0
  52. package/es-modules/Data/DataSeriesConverter.js +1 -1
  53. package/es-modules/Data/DataTable.js +2 -2
  54. package/es-modules/Data/Modifiers/ChainModifier.js +1 -1
  55. package/es-modules/Data/Modifiers/DataModifier.js +1 -1
  56. package/es-modules/Data/Modifiers/GroupModifier.js +1 -1
  57. package/es-modules/Data/Modifiers/InvertModifier.js +1 -1
  58. package/es-modules/Data/Modifiers/RangeModifier.js +1 -1
  59. package/es-modules/Data/Modifiers/SeriesPointsModifier.js +1 -1
  60. package/es-modules/Data/Modifiers/SortModifier.js +1 -1
  61. package/es-modules/Data/Parsers/DataParser.js +1 -1
  62. package/es-modules/Data/Stores/DataStore.js +1 -1
  63. package/es-modules/Extensions/Annotations/Annotation.js +347 -1156
  64. package/es-modules/Extensions/Annotations/AnnotationChart.js +291 -0
  65. package/es-modules/Extensions/Annotations/AnnotationDefaults.js +624 -0
  66. package/es-modules/Extensions/Annotations/ControlPoint.js +89 -64
  67. package/es-modules/Extensions/Annotations/{Mixins/ControllableMixin.js → Controllables/Controllable.js} +300 -241
  68. package/es-modules/Extensions/Annotations/Controllables/ControllableCircle.js +63 -50
  69. package/es-modules/Extensions/Annotations/Controllables/ControllableDefaults.js +95 -0
  70. package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +90 -61
  71. package/es-modules/Extensions/Annotations/Controllables/ControllableImage.js +50 -44
  72. package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +95 -78
  73. package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +167 -51
  74. package/es-modules/Extensions/Annotations/Controllables/ControllableRect.js +53 -52
  75. package/es-modules/Extensions/Annotations/{Mixins/EventEmitterMixin.js → EventEmitter.js} +136 -116
  76. package/es-modules/Extensions/Annotations/MockPoint.js +210 -145
  77. package/es-modules/Extensions/Annotations/NavigationBindings.js +272 -674
  78. package/es-modules/Extensions/Annotations/NavigationBindingsDefaults.js +396 -0
  79. package/es-modules/Extensions/Annotations/NavigationBindingsUtilities.js +98 -0
  80. package/es-modules/Extensions/Annotations/Popup/Popup.js +295 -0
  81. package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +177 -0
  82. package/es-modules/Extensions/Annotations/Popup/PopupComposition.js +81 -0
  83. package/es-modules/Extensions/Annotations/Popup/PopupIndicators.js +609 -0
  84. package/es-modules/Extensions/Annotations/Popup/PopupTabs.js +134 -0
  85. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +10 -14
  86. package/es-modules/Extensions/Annotations/Types/CrookedLine.js +11 -19
  87. package/es-modules/Extensions/Annotations/Types/ElliottWave.js +10 -10
  88. package/es-modules/Extensions/Annotations/Types/Fibonacci.js +28 -20
  89. package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +63 -63
  90. package/es-modules/Extensions/Annotations/Types/InfinityLine.js +10 -19
  91. package/es-modules/Extensions/Annotations/Types/Measure.js +255 -249
  92. package/es-modules/Extensions/Annotations/Types/Pitchfork.js +11 -17
  93. package/es-modules/Extensions/Annotations/Types/TimeCycles.js +20 -17
  94. package/es-modules/Extensions/Annotations/Types/Tunnel.js +12 -13
  95. package/es-modules/Extensions/Annotations/Types/VerticalLine.js +11 -15
  96. package/es-modules/Extensions/Boost/Boost.js +320 -15
  97. package/es-modules/Extensions/Boost/BoostChart.js +245 -0
  98. package/es-modules/Extensions/Boost/BoostSeries.js +927 -0
  99. package/es-modules/Extensions/Boost/BoostableMap.js +21 -5
  100. package/es-modules/Extensions/Boost/Boostables.js +13 -2
  101. package/es-modules/Extensions/Boost/NamedColors.js +15 -6
  102. package/es-modules/Extensions/Boost/WGLDrawMode.js +36 -0
  103. package/es-modules/Extensions/Boost/WGLRenderer.js +288 -295
  104. package/es-modules/Extensions/Boost/WGLShader.js +370 -376
  105. package/es-modules/Extensions/Boost/WGLVertexBuffer.js +192 -0
  106. package/es-modules/Extensions/BoostCanvas.js +62 -46
  107. package/es-modules/Extensions/Breadcrumbs.js +4 -0
  108. package/es-modules/Extensions/DataGrouping.js +65 -27
  109. package/es-modules/Extensions/Debugger/Debugger.js +60 -22
  110. package/es-modules/Extensions/DraggablePoints.js +4 -3
  111. package/es-modules/Extensions/Drilldown.js +7 -8
  112. package/es-modules/Extensions/{ExportData.js → ExportData/ExportData.js} +341 -530
  113. package/es-modules/Extensions/ExportData/ExportDataDefaults.js +272 -0
  114. package/es-modules/Extensions/Exporting/Exporting.js +5 -1
  115. package/es-modules/Extensions/Exporting/ExportingDefaults.js +3 -1
  116. package/es-modules/Extensions/{FullScreen.js → Exporting/Fullscreen.js} +72 -27
  117. package/es-modules/Extensions/MarkerClusters.js +2 -0
  118. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  119. package/es-modules/Extensions/Oldie/Oldie.js +1 -1
  120. package/es-modules/Extensions/ParallelCoordinates.js +11 -7
  121. package/es-modules/Extensions/ScrollablePlotArea.js +1 -1
  122. package/es-modules/Extensions/SeriesLabel/SeriesLabel.js +2 -2
  123. package/es-modules/Extensions/Sonification/ChartSonify.js +1 -1
  124. package/es-modules/Maps/MapPointer.js +1 -1
  125. package/es-modules/Maps/MapView.js +2 -1
  126. package/es-modules/Series/{Area3DSeries.js → Area3D/Area3DSeries.js} +42 -20
  127. package/es-modules/Series/AreaRange/AreaRangeSeries.js +8 -2
  128. package/es-modules/Series/Bubble/BubbleLegendComposition.js +223 -231
  129. package/es-modules/Series/Bubble/BubbleLegendItem.js +46 -45
  130. package/es-modules/Series/Bubble/BubbleSeries.js +85 -66
  131. package/es-modules/Series/Column/ColumnSeries.js +2 -0
  132. package/es-modules/Series/Column3D/Column3DComposition.js +2 -2
  133. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +1 -1
  134. package/es-modules/Series/Cylinder/CylinderComposition.js +1 -1
  135. package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +24 -11
  136. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +16 -2
  137. package/es-modules/Series/DragNodesComposition.js +166 -0
  138. package/es-modules/Series/Funnel3D/Funnel3DSeries.js +1 -1
  139. package/es-modules/Series/Gantt/GanttSeries.js +1 -1
  140. package/es-modules/Series/GraphLayoutComposition.js +130 -0
  141. package/es-modules/Series/Heatmap/HeatmapSeries.js +5 -1
  142. package/es-modules/Series/Lollipop/LollipopPoint.js +21 -11
  143. package/es-modules/Series/Lollipop/LollipopSeries.js +15 -10
  144. package/es-modules/Series/Map/MapSeries.js +6 -1
  145. package/es-modules/Series/MapBubble/MapBubblePoint.js +15 -17
  146. package/es-modules/Series/MapBubble/MapBubbleSeries.js +19 -19
  147. package/es-modules/Series/Networkgraph/EulerIntegration.js +199 -0
  148. package/es-modules/Series/Networkgraph/NetworkgraphPoint.js +290 -0
  149. package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +401 -0
  150. package/es-modules/Series/Networkgraph/NetworkgraphSeriesDefaults.js +545 -0
  151. package/es-modules/Series/Networkgraph/QuadTree.js +66 -272
  152. package/es-modules/Series/Networkgraph/QuadTreeNode.js +271 -0
  153. package/es-modules/Series/Networkgraph/{Layouts.js → ReingoldFruchtermanLayout.js} +240 -259
  154. package/es-modules/Series/Networkgraph/VerletIntegration.js +193 -0
  155. package/es-modules/Series/Organization/OrganizationSeries.js +9 -1
  156. package/es-modules/Series/PackedBubble/PackedBubbleIntegration.js +81 -0
  157. package/es-modules/Series/PackedBubble/{PackedBubbleComposition.js → PackedBubbleLayout.js} +114 -77
  158. package/es-modules/Series/PackedBubble/PackedBubblePoint.js +2 -2
  159. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +197 -570
  160. package/es-modules/Series/PackedBubble/PackedBubbleSeriesDefaults.js +394 -0
  161. package/es-modules/Series/Pie/PieSeries.js +3 -1
  162. package/es-modules/Series/PolarComposition.js +12 -12
  163. package/es-modules/Series/Sankey/SankeySeries.js +13 -1
  164. package/es-modules/Series/Scatter/ScatterSeries.js +4 -1
  165. package/es-modules/Series/Scatter3D/Scatter3DSeries.js +1 -1
  166. package/es-modules/Series/SeriesOnPointComposition.js +5 -1
  167. package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +1 -1
  168. package/es-modules/Series/Sunburst/SunburstPoint.js +5 -6
  169. package/es-modules/Series/Sunburst/SunburstSeries.js +24 -2
  170. package/es-modules/Series/Timeline/TimelineSeries.js +2 -0
  171. package/es-modules/Series/Treemap/TreemapSeries.js +3 -3
  172. package/es-modules/Series/Vector/VectorSeries.js +2 -4
  173. package/es-modules/Series/Wordcloud/WordcloudSeries.js +1 -1
  174. package/es-modules/Series/Wordcloud/WordcloudUtils.js +1 -1
  175. package/es-modules/Series/XRange/XRangePoint.js +54 -45
  176. package/es-modules/Series/XRange/XRangeSeries.js +121 -273
  177. package/es-modules/Series/XRange/XRangeSeriesDefaults.js +211 -0
  178. package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +10 -2
  179. package/es-modules/Stock/Indicators/AD/ADIndicator.js +5 -0
  180. package/es-modules/Stock/Indicators/AO/AOIndicator.js +22 -11
  181. package/es-modules/Stock/Indicators/APO/APOIndicator.js +6 -1
  182. package/es-modules/Stock/Indicators/ATR/ATRIndicator.js +16 -3
  183. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +15 -2
  184. package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +6 -2
  185. package/es-modules/Stock/Indicators/BB/BBIndicator.js +5 -1
  186. package/es-modules/Stock/Indicators/CCI/CCIIndicator.js +16 -3
  187. package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +20 -0
  188. package/es-modules/Stock/Indicators/CMO/CMOIndicator.js +15 -1
  189. package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +7 -2
  190. package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +25 -0
  191. package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +5 -0
  192. package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +19 -8
  193. package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +10 -0
  194. package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +34 -15
  195. package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +25 -0
  196. package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +12 -1
  197. package/es-modules/Stock/Indicators/LinearRegression/{LinearRegression.js → LinearRegressionIndicator.js} +11 -1
  198. package/es-modules/Stock/Indicators/LinearRegressionAngle/{LinearRegressionAngle.js → LinearRegressionAngleIndicator.js} +12 -7
  199. package/es-modules/Stock/Indicators/LinearRegressionIntercept/{LinearRegressionIntercept.js → LinearRegressionInterceptIndicator.js} +11 -1
  200. package/es-modules/Stock/Indicators/LinearRegressionSlopes/{LinearRegressionSlopes.js → LinearRegressionSlopesIndicator.js} +11 -1
  201. package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +21 -10
  202. package/es-modules/Stock/Indicators/MFI/MFIIndicator.js +23 -10
  203. package/es-modules/Stock/Indicators/Momentum/MomentumIndicator.js +30 -2
  204. package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +16 -1
  205. package/es-modules/Stock/Indicators/OBV/OBVIndicator.js +10 -0
  206. package/es-modules/Stock/Indicators/PC/PCIndicator.js +13 -8
  207. package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +14 -4
  208. package/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +16 -3
  209. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +16 -6
  210. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsPoint.js +16 -12
  211. package/es-modules/Stock/Indicators/PriceEnvelopes/PriceEnvelopesIndicator.js +25 -0
  212. package/es-modules/Stock/Indicators/ROC/ROCIndicator.js +15 -2
  213. package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +20 -2
  214. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +1 -1
  215. package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +25 -0
  216. package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +15 -0
  217. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +17 -3
  218. package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +25 -0
  219. package/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +14 -4
  220. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +32 -3
  221. package/es-modules/Stock/Indicators/VBP/VBPPoint.js +6 -6
  222. package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +11 -1
  223. package/es-modules/Stock/Indicators/WMA/WMAIndicator.js +30 -2
  224. package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +10 -0
  225. package/es-modules/Stock/Indicators/Zigzag/ZigzagIndicator.js +11 -1
  226. package/es-modules/Stock/StockToolbar.js +568 -0
  227. package/es-modules/Stock/StockTools.js +256 -0
  228. package/es-modules/Stock/StockToolsBindings.js +114 -629
  229. package/es-modules/Stock/StockToolsDefaults.js +1190 -0
  230. package/es-modules/Stock/StockToolsGui.js +150 -1771
  231. package/es-modules/Stock/StockToolsUtilities.js +423 -0
  232. package/es-modules/masters/highcharts-3d.src.js +5 -4
  233. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  234. package/es-modules/masters/highcharts-more.src.js +4 -3
  235. package/es-modules/masters/highcharts.src.js +5 -2
  236. package/es-modules/masters/highmaps.src.js +1 -1
  237. package/es-modules/masters/highstock.src.js +1 -1
  238. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  239. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  240. package/es-modules/masters/indicators/ao.src.js +1 -1
  241. package/es-modules/masters/indicators/apo.src.js +1 -1
  242. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  243. package/es-modules/masters/indicators/aroon.src.js +1 -1
  244. package/es-modules/masters/indicators/atr.src.js +1 -1
  245. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  246. package/es-modules/masters/indicators/cci.src.js +1 -1
  247. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  248. package/es-modules/masters/indicators/cmf.src.js +1 -1
  249. package/es-modules/masters/indicators/cmo.src.js +1 -1
  250. package/es-modules/masters/indicators/dema.src.js +1 -1
  251. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  252. package/es-modules/masters/indicators/dmi.src.js +1 -1
  253. package/es-modules/masters/indicators/dpo.src.js +1 -1
  254. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  255. package/es-modules/masters/indicators/indicators-all.src.js +5 -7
  256. package/es-modules/masters/indicators/indicators.src.js +1 -1
  257. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  258. package/es-modules/masters/indicators/klinger.src.js +1 -1
  259. package/es-modules/masters/indicators/macd.src.js +1 -1
  260. package/es-modules/masters/indicators/mfi.src.js +1 -1
  261. package/es-modules/masters/indicators/momentum.src.js +1 -1
  262. package/es-modules/masters/indicators/natr.src.js +1 -1
  263. package/es-modules/masters/indicators/obv.src.js +1 -1
  264. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  265. package/es-modules/masters/indicators/ppo.src.js +1 -1
  266. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  267. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  268. package/es-modules/masters/indicators/psar.src.js +1 -1
  269. package/es-modules/masters/indicators/regressions.src.js +5 -5
  270. package/es-modules/masters/indicators/roc.src.js +1 -1
  271. package/es-modules/masters/indicators/rsi.src.js +1 -1
  272. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  273. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  274. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  275. package/es-modules/masters/indicators/tema.src.js +1 -1
  276. package/es-modules/masters/indicators/trendline.src.js +1 -1
  277. package/es-modules/masters/indicators/trix.src.js +1 -1
  278. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  279. package/es-modules/masters/indicators/vwap.src.js +1 -1
  280. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  281. package/es-modules/masters/indicators/wma.src.js +1 -1
  282. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  283. package/es-modules/masters/modules/accessibility.src.js +1 -1
  284. package/es-modules/masters/modules/annotations-advanced.src.js +6 -4
  285. package/es-modules/masters/modules/annotations.src.js +6 -4
  286. package/es-modules/masters/modules/arc-diagram.src.js +1 -1
  287. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  288. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  289. package/es-modules/masters/modules/boost.src.js +6 -2
  290. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  291. package/es-modules/masters/modules/bullet.src.js +1 -1
  292. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  293. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  294. package/es-modules/masters/modules/cylinder.src.js +1 -1
  295. package/es-modules/masters/modules/data.src.js +1 -1
  296. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  297. package/es-modules/masters/modules/debugger.src.js +5 -3
  298. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  299. package/es-modules/masters/modules/dotplot.src.js +1 -1
  300. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  301. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  302. package/es-modules/masters/modules/drilldown.src.js +1 -1
  303. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  304. package/es-modules/masters/modules/export-data.src.js +5 -2
  305. package/es-modules/masters/modules/exporting.src.js +1 -2
  306. package/es-modules/masters/modules/full-screen.src.js +6 -2
  307. package/es-modules/masters/modules/funnel.src.js +1 -1
  308. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  309. package/es-modules/masters/modules/gantt.src.js +3 -2
  310. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  311. package/es-modules/masters/modules/heatmap.src.js +1 -1
  312. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  313. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  314. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  315. package/es-modules/masters/modules/item-series.src.js +1 -1
  316. package/es-modules/masters/modules/lollipop.src.js +1 -1
  317. package/es-modules/masters/modules/map.src.js +2 -2
  318. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  319. package/es-modules/masters/modules/networkgraph.src.js +5 -2
  320. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  321. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  322. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  323. package/es-modules/masters/modules/oldie.src.js +1 -1
  324. package/es-modules/masters/modules/organization.src.js +1 -1
  325. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  326. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  327. package/es-modules/masters/modules/pareto.src.js +1 -1
  328. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  329. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  330. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  331. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  332. package/es-modules/masters/modules/sankey.src.js +1 -1
  333. package/es-modules/masters/modules/series-label.src.js +1 -1
  334. package/es-modules/masters/modules/series-on-point.src.js +1 -1
  335. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  336. package/es-modules/masters/modules/sonification.src.js +1 -1
  337. package/es-modules/masters/modules/static-scale.src.js +1 -1
  338. package/es-modules/masters/modules/stock-tools.src.js +10 -3
  339. package/es-modules/masters/modules/stock.src.js +1 -1
  340. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  341. package/es-modules/masters/modules/sunburst.src.js +1 -1
  342. package/es-modules/masters/modules/tilemap.src.js +1 -1
  343. package/es-modules/masters/modules/timeline.src.js +1 -1
  344. package/es-modules/masters/modules/treegrid.src.js +2 -2
  345. package/es-modules/masters/modules/treemap.src.js +1 -1
  346. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  347. package/es-modules/masters/modules/variwide.src.js +1 -1
  348. package/es-modules/masters/modules/vector.src.js +1 -1
  349. package/es-modules/masters/modules/venn.src.js +1 -1
  350. package/es-modules/masters/modules/windbarb.src.js +1 -1
  351. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  352. package/es-modules/masters/modules/xrange.src.js +5 -2
  353. package/es-modules/masters/themes/avocado.src.js +1 -1
  354. package/es-modules/masters/themes/brand-dark.src.js +1 -1
  355. package/es-modules/masters/themes/brand-light.src.js +1 -1
  356. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  357. package/es-modules/masters/themes/dark-green.src.js +1 -1
  358. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  359. package/es-modules/masters/themes/gray.src.js +1 -1
  360. package/es-modules/masters/themes/grid-light.src.js +1 -1
  361. package/es-modules/masters/themes/grid.src.js +1 -1
  362. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  363. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  364. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  365. package/es-modules/masters/themes/skies.src.js +1 -1
  366. package/es-modules/masters/themes/sunset.src.js +1 -1
  367. package/highcharts-3d.js +98 -99
  368. package/highcharts-3d.js.map +1 -1
  369. package/highcharts-3d.src.js +232 -211
  370. package/highcharts-gantt.js +808 -809
  371. package/highcharts-gantt.js.map +1 -1
  372. package/highcharts-gantt.src.js +2308 -2136
  373. package/highcharts-more.d.ts +5 -8
  374. package/highcharts-more.js +201 -194
  375. package/highcharts-more.js.map +1 -1
  376. package/highcharts-more.src.d.ts +5 -8
  377. package/highcharts-more.src.js +3671 -3275
  378. package/highcharts.d.ts +1400 -885
  379. package/highcharts.js +593 -595
  380. package/highcharts.js.map +1 -1
  381. package/highcharts.src.d.ts +1400 -885
  382. package/highcharts.src.js +847 -716
  383. package/highmaps.js +762 -763
  384. package/highmaps.js.map +1 -1
  385. package/highmaps.src.js +1288 -1129
  386. package/highstock.js +796 -798
  387. package/highstock.js.map +1 -1
  388. package/highstock.src.js +953 -762
  389. package/indicators/acceleration-bands.js +1 -1
  390. package/indicators/acceleration-bands.js.map +1 -1
  391. package/indicators/acceleration-bands.src.js +11 -3
  392. package/indicators/accumulation-distribution.js +1 -1
  393. package/indicators/accumulation-distribution.js.map +1 -1
  394. package/indicators/accumulation-distribution.src.js +6 -1
  395. package/indicators/ao.js +6 -6
  396. package/indicators/ao.js.map +1 -1
  397. package/indicators/ao.src.js +23 -14
  398. package/indicators/apo.js +1 -1
  399. package/indicators/apo.js.map +1 -1
  400. package/indicators/apo.src.js +6 -1
  401. package/indicators/aroon-oscillator.js +10 -10
  402. package/indicators/aroon-oscillator.js.map +1 -1
  403. package/indicators/aroon-oscillator.src.js +7 -3
  404. package/indicators/aroon.js +1 -1
  405. package/indicators/aroon.js.map +1 -1
  406. package/indicators/aroon.src.js +16 -3
  407. package/indicators/atr.js +1 -1
  408. package/indicators/atr.js.map +1 -1
  409. package/indicators/atr.src.js +17 -4
  410. package/indicators/bollinger-bands.js +1 -1
  411. package/indicators/bollinger-bands.js.map +1 -1
  412. package/indicators/bollinger-bands.src.js +6 -2
  413. package/indicators/cci.js +1 -1
  414. package/indicators/cci.js.map +1 -1
  415. package/indicators/cci.src.js +17 -4
  416. package/indicators/chaikin.js +8 -8
  417. package/indicators/chaikin.js.map +1 -1
  418. package/indicators/chaikin.src.js +13 -5
  419. package/indicators/cmf.js +1 -1
  420. package/indicators/cmf.js.map +1 -1
  421. package/indicators/cmf.src.js +21 -1
  422. package/indicators/cmo.js +1 -1
  423. package/indicators/cmo.js.map +1 -1
  424. package/indicators/cmo.src.js +16 -2
  425. package/indicators/dema.js +1 -1
  426. package/indicators/dema.js.map +1 -1
  427. package/indicators/dema.src.js +26 -1
  428. package/indicators/disparity-index.js +1 -1
  429. package/indicators/disparity-index.src.js +1 -1
  430. package/indicators/dmi.js +1 -1
  431. package/indicators/dmi.js.map +1 -1
  432. package/indicators/dmi.src.js +6 -1
  433. package/indicators/dpo.js +1 -1
  434. package/indicators/dpo.js.map +1 -1
  435. package/indicators/dpo.src.js +20 -9
  436. package/indicators/ichimoku-kinko-hyo.js +1 -1
  437. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  438. package/indicators/ichimoku-kinko-hyo.src.js +35 -16
  439. package/indicators/indicators-all.js +199 -199
  440. package/indicators/indicators-all.js.map +1 -1
  441. package/indicators/indicators-all.src.js +754 -162
  442. package/indicators/indicators.js +1 -1
  443. package/indicators/indicators.js.map +1 -1
  444. package/indicators/indicators.src.js +12 -2
  445. package/indicators/keltner-channels.js +1 -1
  446. package/indicators/keltner-channels.js.map +1 -1
  447. package/indicators/keltner-channels.src.js +26 -1
  448. package/indicators/klinger.js +12 -12
  449. package/indicators/klinger.js.map +1 -1
  450. package/indicators/klinger.src.js +13 -4
  451. package/indicators/macd.js +1 -1
  452. package/indicators/macd.js.map +1 -1
  453. package/indicators/macd.src.js +22 -13
  454. package/indicators/mfi.js +1 -1
  455. package/indicators/mfi.js.map +1 -1
  456. package/indicators/mfi.src.js +24 -11
  457. package/indicators/momentum.js +1 -1
  458. package/indicators/momentum.js.map +1 -1
  459. package/indicators/momentum.src.js +31 -3
  460. package/indicators/natr.js +1 -1
  461. package/indicators/natr.js.map +1 -1
  462. package/indicators/natr.src.js +17 -3
  463. package/indicators/obv.js +1 -1
  464. package/indicators/obv.js.map +1 -1
  465. package/indicators/obv.src.js +11 -1
  466. package/indicators/pivot-points.js +1 -1
  467. package/indicators/pivot-points.js.map +1 -1
  468. package/indicators/pivot-points.src.js +32 -19
  469. package/indicators/ppo.js +1 -1
  470. package/indicators/ppo.js.map +1 -1
  471. package/indicators/ppo.src.js +15 -5
  472. package/indicators/price-channel.js +1 -1
  473. package/indicators/price-channel.js.map +1 -1
  474. package/indicators/price-channel.src.js +14 -9
  475. package/indicators/price-envelopes.js +1 -1
  476. package/indicators/price-envelopes.js.map +1 -1
  477. package/indicators/price-envelopes.src.js +26 -1
  478. package/indicators/psar.js +1 -1
  479. package/indicators/psar.js.map +1 -1
  480. package/indicators/psar.src.js +17 -4
  481. package/indicators/regressions.js +12 -11
  482. package/indicators/regressions.js.map +1 -1
  483. package/indicators/regressions.src.js +50 -15
  484. package/indicators/roc.js +1 -1
  485. package/indicators/roc.js.map +1 -1
  486. package/indicators/roc.src.js +16 -3
  487. package/indicators/rsi.js +1 -1
  488. package/indicators/rsi.js.map +1 -1
  489. package/indicators/rsi.src.js +21 -3
  490. package/indicators/slow-stochastic.js +1 -1
  491. package/indicators/slow-stochastic.js.map +1 -1
  492. package/indicators/slow-stochastic.src.js +26 -1
  493. package/indicators/stochastic.js +1 -1
  494. package/indicators/stochastic.js.map +1 -1
  495. package/indicators/stochastic.src.js +16 -1
  496. package/indicators/supertrend.js +7 -7
  497. package/indicators/supertrend.js.map +1 -1
  498. package/indicators/supertrend.src.js +18 -6
  499. package/indicators/tema.js +1 -1
  500. package/indicators/tema.src.js +1 -1
  501. package/indicators/trendline.js +1 -1
  502. package/indicators/trendline.js.map +1 -1
  503. package/indicators/trendline.src.js +15 -5
  504. package/indicators/trix.js +1 -1
  505. package/indicators/trix.js.map +1 -1
  506. package/indicators/trix.src.js +26 -1
  507. package/indicators/volume-by-price.js +17 -17
  508. package/indicators/volume-by-price.js.map +1 -1
  509. package/indicators/volume-by-price.src.js +38 -10
  510. package/indicators/vwap.js +1 -1
  511. package/indicators/vwap.js.map +1 -1
  512. package/indicators/vwap.src.js +12 -2
  513. package/indicators/williams-r.js +1 -1
  514. package/indicators/williams-r.js.map +1 -1
  515. package/indicators/williams-r.src.js +11 -1
  516. package/indicators/wma.js +1 -1
  517. package/indicators/wma.js.map +1 -1
  518. package/indicators/wma.src.js +31 -3
  519. package/indicators/zigzag.js +1 -1
  520. package/indicators/zigzag.js.map +1 -1
  521. package/indicators/zigzag.src.js +12 -2
  522. package/modules/accessibility.js +183 -182
  523. package/modules/accessibility.js.map +1 -1
  524. package/modules/accessibility.src.js +559 -554
  525. package/modules/annotations-advanced.d.ts +1 -1
  526. package/modules/annotations-advanced.js +193 -192
  527. package/modules/annotations-advanced.js.map +1 -1
  528. package/modules/annotations-advanced.src.d.ts +1 -1
  529. package/modules/annotations-advanced.src.js +9263 -8654
  530. package/modules/annotations.d.ts +1 -1
  531. package/modules/annotations.js +128 -126
  532. package/modules/annotations.js.map +1 -1
  533. package/modules/annotations.src.d.ts +1 -1
  534. package/modules/annotations.src.js +6699 -6063
  535. package/modules/arc-diagram.js +1 -1
  536. package/modules/arc-diagram.src.js +1 -1
  537. package/modules/arrow-symbols.js +1 -1
  538. package/modules/arrow-symbols.src.js +1 -1
  539. package/modules/boost-canvas.d.ts +19 -0
  540. package/modules/boost-canvas.js +81 -16
  541. package/modules/boost-canvas.js.map +1 -1
  542. package/modules/boost-canvas.src.d.ts +19 -0
  543. package/modules/boost-canvas.src.js +3334 -50
  544. package/modules/boost.d.ts +8 -26
  545. package/modules/boost.js +84 -77
  546. package/modules/boost.js.map +1 -1
  547. package/modules/boost.src.d.ts +8 -26
  548. package/modules/boost.src.js +2423 -1888
  549. package/modules/broken-axis.js +2 -2
  550. package/modules/broken-axis.js.map +1 -1
  551. package/modules/broken-axis.src.js +2 -2
  552. package/modules/bullet.js +1 -1
  553. package/modules/bullet.src.js +1 -1
  554. package/modules/coloraxis.js +1 -1
  555. package/modules/coloraxis.js.map +1 -1
  556. package/modules/coloraxis.src.js +5 -1
  557. package/modules/current-date-indicator.js +1 -1
  558. package/modules/current-date-indicator.src.js +1 -1
  559. package/modules/cylinder.js +9 -9
  560. package/modules/cylinder.js.map +1 -1
  561. package/modules/cylinder.src.js +2 -2
  562. package/modules/data.js +1 -1
  563. package/modules/data.src.js +1 -1
  564. package/modules/datagrouping.d.ts +22 -0
  565. package/modules/datagrouping.js +4 -4
  566. package/modules/datagrouping.js.map +1 -1
  567. package/modules/datagrouping.src.d.ts +22 -0
  568. package/modules/datagrouping.src.js +66 -28
  569. package/modules/debugger.js +6 -5
  570. package/modules/debugger.js.map +1 -1
  571. package/modules/debugger.src.js +81 -40
  572. package/modules/dependency-wheel.js +12 -12
  573. package/modules/dependency-wheel.js.map +1 -1
  574. package/modules/dependency-wheel.src.js +41 -14
  575. package/modules/dotplot.js +1 -1
  576. package/modules/dotplot.src.js +1 -1
  577. package/modules/drag-panes.js +1 -1
  578. package/modules/drag-panes.src.js +1 -1
  579. package/modules/draggable-points.js +5 -5
  580. package/modules/draggable-points.js.map +1 -1
  581. package/modules/draggable-points.src.js +5 -4
  582. package/modules/drilldown.d.ts +0 -10
  583. package/modules/drilldown.js +29 -29
  584. package/modules/drilldown.js.map +1 -1
  585. package/modules/drilldown.src.d.ts +0 -10
  586. package/modules/drilldown.src.js +12 -9
  587. package/modules/dumbbell.js +1 -1
  588. package/modules/dumbbell.src.js +1 -1
  589. package/modules/export-data.js +25 -24
  590. package/modules/export-data.js.map +1 -1
  591. package/modules/export-data.src.js +607 -499
  592. package/modules/exporting.js +38 -38
  593. package/modules/exporting.js.map +1 -1
  594. package/modules/exporting.src.js +559 -507
  595. package/modules/full-screen.js +8 -8
  596. package/modules/full-screen.js.map +1 -1
  597. package/modules/full-screen.src.js +76 -26
  598. package/modules/funnel.js +1 -1
  599. package/modules/funnel.src.js +1 -1
  600. package/modules/funnel3d.js +2 -2
  601. package/modules/funnel3d.js.map +1 -1
  602. package/modules/funnel3d.src.js +2 -2
  603. package/modules/gantt.js +217 -216
  604. package/modules/gantt.js.map +1 -1
  605. package/modules/gantt.src.js +1481 -1440
  606. package/modules/grid-axis.js +1 -1
  607. package/modules/grid-axis.src.js +1 -1
  608. package/modules/heatmap.js +1 -1
  609. package/modules/heatmap.js.map +1 -1
  610. package/modules/heatmap.src.js +10 -2
  611. package/modules/heikinashi.js +1 -1
  612. package/modules/heikinashi.src.js +1 -1
  613. package/modules/histogram-bellcurve.js +1 -1
  614. package/modules/histogram-bellcurve.src.js +1 -1
  615. package/modules/hollowcandlestick.js +1 -1
  616. package/modules/hollowcandlestick.src.js +1 -1
  617. package/modules/item-series.js +1 -1
  618. package/modules/item-series.src.js +1 -1
  619. package/modules/lollipop.js +6 -6
  620. package/modules/lollipop.js.map +1 -1
  621. package/modules/lollipop.src.js +37 -22
  622. package/modules/map.d.ts +3 -3
  623. package/modules/map.js +171 -171
  624. package/modules/map.js.map +1 -1
  625. package/modules/map.src.d.ts +3 -3
  626. package/modules/map.src.js +442 -414
  627. package/modules/marker-clusters.js +1 -1
  628. package/modules/marker-clusters.js.map +1 -1
  629. package/modules/marker-clusters.src.js +3 -1
  630. package/modules/networkgraph.js +55 -50
  631. package/modules/networkgraph.js.map +1 -1
  632. package/modules/networkgraph.src.js +2259 -1938
  633. package/modules/no-data-to-display.js +1 -1
  634. package/modules/no-data-to-display.src.js +1 -1
  635. package/modules/offline-exporting.js +2 -2
  636. package/modules/offline-exporting.src.js +2 -2
  637. package/modules/oldie-polyfills.js +1 -1
  638. package/modules/oldie-polyfills.src.js +1 -1
  639. package/modules/oldie.js +2 -2
  640. package/modules/oldie.src.js +2 -2
  641. package/modules/organization.js +15 -15
  642. package/modules/organization.js.map +1 -1
  643. package/modules/organization.src.js +10 -2
  644. package/modules/overlapping-datalabels.js +1 -1
  645. package/modules/overlapping-datalabels.src.js +1 -1
  646. package/modules/parallel-coordinates.js +11 -11
  647. package/modules/parallel-coordinates.js.map +1 -1
  648. package/modules/parallel-coordinates.src.js +13 -8
  649. package/modules/pareto.js +1 -1
  650. package/modules/pareto.src.js +1 -1
  651. package/modules/pathfinder.js +1 -1
  652. package/modules/pathfinder.src.js +1 -1
  653. package/modules/pattern-fill.js +1 -1
  654. package/modules/pattern-fill.src.js +1 -1
  655. package/modules/price-indicator.js +1 -1
  656. package/modules/price-indicator.src.js +1 -1
  657. package/modules/pyramid3d.js +1 -1
  658. package/modules/pyramid3d.src.js +1 -1
  659. package/modules/sankey.js +1 -1
  660. package/modules/sankey.js.map +1 -1
  661. package/modules/sankey.src.js +14 -2
  662. package/modules/series-label.js +5 -5
  663. package/modules/series-label.js.map +1 -1
  664. package/modules/series-label.src.js +3 -3
  665. package/modules/series-on-point.js +1 -1
  666. package/modules/series-on-point.js.map +1 -1
  667. package/modules/series-on-point.src.js +6 -2
  668. package/modules/solid-gauge.js +1 -1
  669. package/modules/solid-gauge.src.js +2 -2
  670. package/modules/sonification.d.ts +2 -2
  671. package/modules/sonification.js +1 -1
  672. package/modules/sonification.src.d.ts +2 -2
  673. package/modules/sonification.src.js +2 -2
  674. package/modules/static-scale.js +1 -1
  675. package/modules/static-scale.src.js +1 -1
  676. package/modules/stock-tools.d.ts +1 -23
  677. package/modules/stock-tools.js +109 -179
  678. package/modules/stock-tools.js.map +1 -1
  679. package/modules/stock-tools.src.d.ts +1 -23
  680. package/modules/stock-tools.src.js +2605 -6335
  681. package/modules/stock.d.ts +8 -0
  682. package/modules/stock.js +105 -105
  683. package/modules/stock.js.map +1 -1
  684. package/modules/stock.src.d.ts +8 -0
  685. package/modules/stock.src.js +105 -45
  686. package/modules/streamgraph.js +1 -1
  687. package/modules/streamgraph.src.js +1 -1
  688. package/modules/sunburst.js +72 -72
  689. package/modules/sunburst.js.map +1 -1
  690. package/modules/sunburst.src.js +38 -12
  691. package/modules/tilemap.js +1 -1
  692. package/modules/tilemap.src.js +1 -1
  693. package/modules/timeline.js +1 -1
  694. package/modules/timeline.js.map +1 -1
  695. package/modules/timeline.src.js +3 -1
  696. package/modules/treegrid.js +57 -57
  697. package/modules/treegrid.js.map +1 -1
  698. package/modules/treegrid.src.js +1022 -1014
  699. package/modules/treemap.js +1 -1
  700. package/modules/treemap.js.map +1 -1
  701. package/modules/treemap.src.js +8 -4
  702. package/modules/variable-pie.js +1 -1
  703. package/modules/variable-pie.src.js +1 -1
  704. package/modules/variwide.js +1 -1
  705. package/modules/variwide.src.js +1 -1
  706. package/modules/vector.js +2 -2
  707. package/modules/vector.js.map +1 -1
  708. package/modules/vector.src.js +3 -5
  709. package/modules/venn.js +1 -1
  710. package/modules/venn.src.js +5 -5
  711. package/modules/windbarb.js +1 -1
  712. package/modules/windbarb.src.js +1 -1
  713. package/modules/wordcloud.js +1 -1
  714. package/modules/wordcloud.src.js +3 -3
  715. package/modules/xrange.js +17 -17
  716. package/modules/xrange.js.map +1 -1
  717. package/modules/xrange.src.js +411 -397
  718. package/package.json +1 -1
  719. package/themes/avocado.js +1 -1
  720. package/themes/avocado.src.js +1 -1
  721. package/themes/brand-dark.js +1 -1
  722. package/themes/brand-dark.src.js +1 -1
  723. package/themes/brand-light.js +1 -1
  724. package/themes/brand-light.src.js +1 -1
  725. package/themes/dark-blue.js +1 -1
  726. package/themes/dark-blue.src.js +1 -1
  727. package/themes/dark-green.js +1 -1
  728. package/themes/dark-green.src.js +1 -1
  729. package/themes/dark-unica.js +1 -1
  730. package/themes/dark-unica.src.js +1 -1
  731. package/themes/gray.js +1 -1
  732. package/themes/gray.src.js +1 -1
  733. package/themes/grid-light.js +1 -1
  734. package/themes/grid-light.src.js +1 -1
  735. package/themes/grid.js +1 -1
  736. package/themes/grid.src.js +1 -1
  737. package/themes/high-contrast-dark.js +1 -1
  738. package/themes/high-contrast-dark.src.js +1 -1
  739. package/themes/high-contrast-light.js +1 -1
  740. package/themes/high-contrast-light.src.js +1 -1
  741. package/themes/sand-signika.js +1 -1
  742. package/themes/sand-signika.src.js +1 -1
  743. package/themes/skies.js +1 -1
  744. package/themes/skies.src.js +1 -1
  745. package/themes/sunset.js +1 -1
  746. package/themes/sunset.src.js +1 -1
  747. package/es-modules/Core/Axis/StackingAxis.js +0 -215
  748. package/es-modules/Core/Axis/TreeGridAxis.js +0 -720
  749. package/es-modules/Core/Axis/TreeGridTick.js +0 -317
  750. package/es-modules/Extensions/Annotations/AnnotationsDefaults.js +0 -0
  751. package/es-modules/Extensions/Annotations/Mixins/MarkerMixin.js +0 -179
  752. package/es-modules/Extensions/Annotations/Popup.js +0 -1123
  753. package/es-modules/Extensions/Boost/BoostAttach.js +0 -154
  754. package/es-modules/Extensions/Boost/BoostInit.js +0 -324
  755. package/es-modules/Extensions/Boost/BoostOptions.js +0 -245
  756. package/es-modules/Extensions/Boost/BoostOverrides.js +0 -386
  757. package/es-modules/Extensions/Boost/BoostUtils.js +0 -255
  758. package/es-modules/Extensions/Boost/WGLVBuffer.js +0 -153
  759. package/es-modules/Extensions/Stacking.js +0 -517
  760. package/es-modules/Series/Networkgraph/DraggableNodes.js +0 -132
  761. package/es-modules/Series/Networkgraph/Integrations.js +0 -348
  762. package/es-modules/Series/Networkgraph/Networkgraph.js +0 -1180
  763. 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;