highcharts 10.2.1 → 10.3.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 (732) hide show
  1. package/bower.json +1 -1
  2. package/es-modules/Accessibility/Accessibility.js +1 -1
  3. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +9 -6
  4. package/es-modules/Accessibility/Components/LegendComponent.js +36 -32
  5. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +1 -1
  6. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +16 -16
  7. package/es-modules/Accessibility/Options/LangDefaults.js +4 -0
  8. package/es-modules/Core/Axis/Axis.js +42 -32
  9. package/es-modules/Core/Axis/Axis3DComposition.js +501 -0
  10. package/es-modules/Core/Axis/Axis3DDefaults.js +130 -0
  11. package/es-modules/Core/Axis/AxisDefaults.js +20 -7
  12. package/es-modules/Core/Axis/Color/ColorAxis.js +46 -52
  13. package/es-modules/Core/Axis/Color/ColorAxisComposition.js +4 -2
  14. package/es-modules/Core/Axis/NavigatorAxisComposition.js +161 -0
  15. package/es-modules/Core/Axis/OrdinalAxis.js +2 -1
  16. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +1 -1
  17. package/es-modules/Core/Axis/RadialAxis.js +19 -5
  18. package/es-modules/Core/Axis/Tick.js +1 -1
  19. package/es-modules/Core/Axis/Tick3DComposition.js +71 -0
  20. package/es-modules/Core/Chart/Chart.js +16 -20
  21. package/es-modules/Core/Chart/Chart3D.js +4 -4
  22. package/es-modules/Core/Chart/ChartDefaults.js +33 -43
  23. package/es-modules/Core/Chart/GanttChart.js +1 -1
  24. package/es-modules/Core/Chart/MapChart.js +1 -1
  25. package/es-modules/Core/Chart/StockChart.js +11 -28
  26. package/es-modules/Core/{DefaultOptions.js → Defaults.js} +21 -37
  27. package/es-modules/Core/FormatUtilities.js +1 -1
  28. package/es-modules/Core/Globals.js +1 -1
  29. package/es-modules/Core/Legend/Legend.js +114 -110
  30. package/es-modules/Core/Legend/LegendSymbol.js +9 -6
  31. package/es-modules/Core/MSPointer.js +4 -2
  32. package/es-modules/Core/Pointer.js +125 -75
  33. package/es-modules/Core/Renderer/SVG/SVGElement.js +0 -3
  34. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +28 -14
  35. package/es-modules/Core/Series/DataLabel.js +8 -5
  36. package/es-modules/Core/Series/Point.js +38 -22
  37. package/es-modules/Core/Series/Series.js +12 -9
  38. package/es-modules/Core/Series/SeriesDefaults.js +36 -24
  39. package/es-modules/Core/Series/SeriesRegistry.js +2 -2
  40. package/es-modules/Core/Time.js +6 -5
  41. package/es-modules/Core/Tooltip.js +6 -28
  42. package/es-modules/Core/Utilities.js +6 -8
  43. package/es-modules/Extensions/Annotations/Annotation.js +1 -1
  44. package/es-modules/Extensions/Annotations/AnnotationDefaults.js +13 -8
  45. package/es-modules/Extensions/Annotations/MockPoint.js +2 -1
  46. package/es-modules/Extensions/Annotations/NavigationBindings.js +4 -5
  47. package/es-modules/Extensions/Annotations/NavigationBindingsDefaults.js +1 -1
  48. package/es-modules/Extensions/Annotations/Popup/Popup.js +2 -2
  49. package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +4 -4
  50. package/es-modules/Extensions/Annotations/Popup/PopupComposition.js +1 -1
  51. package/es-modules/Extensions/Boost/BoostSeries.js +11 -8
  52. package/es-modules/Extensions/Breadcrumbs.js +2 -2
  53. package/es-modules/Extensions/Data.js +2 -2
  54. package/es-modules/Extensions/DataGrouping/ApproximationDefaults.js +157 -0
  55. package/es-modules/Extensions/DataGrouping/ApproximationRegistry.js +35 -0
  56. package/es-modules/Extensions/DataGrouping/DataGrouping.js +469 -0
  57. package/es-modules/Extensions/DataGrouping/DataGroupingAxisComposition.js +174 -0
  58. package/es-modules/Extensions/DataGrouping/DataGroupingDefaults.js +143 -0
  59. package/es-modules/Extensions/DataGrouping/DataGroupingSeriesComposition.js +479 -0
  60. package/es-modules/Extensions/Debugger/Debugger.js +1 -1
  61. package/es-modules/Extensions/DraggablePoints.js +6 -2
  62. package/es-modules/Extensions/Drilldown.js +3 -5
  63. package/es-modules/Extensions/ExportData/ExportData.js +31 -5
  64. package/es-modules/Extensions/Exporting/Exporting.js +47 -60
  65. package/es-modules/Extensions/Exporting/ExportingDefaults.js +22 -24
  66. package/es-modules/Extensions/GeoJSON.js +3 -1
  67. package/es-modules/Extensions/MarkerClusters.js +1 -1
  68. package/es-modules/Extensions/NoDataToDisplay.js +1 -1
  69. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +5 -5
  70. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  71. package/es-modules/Extensions/Oldie/Oldie.js +3 -3
  72. package/es-modules/Extensions/Oldie/VMLRenderer3D.js +1 -1
  73. package/es-modules/Extensions/OldiePolyfills.js +3 -1
  74. package/es-modules/Extensions/Pane.js +42 -5
  75. package/es-modules/Extensions/ParallelCoordinates.js +5 -1
  76. package/es-modules/Extensions/PatternFill.js +10 -10
  77. package/es-modules/Extensions/SeriesLabel/SeriesLabel.js +2 -2
  78. package/es-modules/Extensions/SeriesLabel/SeriesLabelDefaults.js +4 -0
  79. package/es-modules/Extensions/Sonification/Sonification.js +1 -1
  80. package/es-modules/Extensions/Themes/Avocado.js +1 -1
  81. package/es-modules/Extensions/Themes/BrandDark.js +1 -1
  82. package/es-modules/Extensions/Themes/BrandLight.js +1 -1
  83. package/es-modules/Extensions/Themes/DarkBlue.js +1 -1
  84. package/es-modules/Extensions/Themes/DarkGreen.js +1 -1
  85. package/es-modules/Extensions/Themes/DarkUnica.js +1 -1
  86. package/es-modules/Extensions/Themes/Gray.js +1 -1
  87. package/es-modules/Extensions/Themes/Grid.js +1 -1
  88. package/es-modules/Extensions/Themes/GridLight.js +1 -1
  89. package/es-modules/Extensions/Themes/HighContrastDark.js +1 -1
  90. package/es-modules/Extensions/Themes/HighContrastLight.js +1 -1
  91. package/es-modules/Extensions/Themes/SandSignika.js +1 -1
  92. package/es-modules/Extensions/Themes/Skies.js +1 -1
  93. package/es-modules/Extensions/Themes/Sunset.js +1 -1
  94. package/es-modules/Gantt/Connection.js +5 -5
  95. package/es-modules/Gantt/Pathfinder.js +6 -6
  96. package/es-modules/Maps/MapNavigation.js +1 -1
  97. package/es-modules/Maps/{MapNavigationOptionsDefault.js → MapNavigationDefaults.js} +4 -4
  98. package/es-modules/Maps/MapViewOptionsDefault.js +4 -4
  99. package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +3 -5
  100. package/es-modules/Series/AreaRange/AreaRangePoint.js +6 -10
  101. package/es-modules/Series/AreaRange/AreaRangeSeries.js +59 -48
  102. package/es-modules/Series/BoxPlot/BoxPlotSeries.js +4 -1
  103. package/es-modules/Series/Bubble/BubbleLegendComposition.js +22 -16
  104. package/es-modules/Series/Bubble/BubbleLegendItem.js +17 -21
  105. package/es-modules/Series/Candlestick/CandlestickSeries.js +15 -175
  106. package/es-modules/Series/Candlestick/CandlestickSeriesDefaults.js +179 -0
  107. package/es-modules/Series/Column/ColumnSeries.js +25 -506
  108. package/es-modules/Series/Column/ColumnSeriesDefaults.js +487 -0
  109. package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +40 -36
  110. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +2 -106
  111. package/es-modules/Series/DependencyWheel/DependencyWheelSeriesDefaults.js +183 -0
  112. package/es-modules/Series/DotPlot/DotPlotSeries.js +11 -12
  113. package/es-modules/Series/DrawPointUtilities.js +2 -14
  114. package/es-modules/Series/Dumbbell/DumbbellPoint.js +5 -4
  115. package/es-modules/Series/Dumbbell/DumbbellSeries.js +11 -7
  116. package/es-modules/Series/ErrorBar/ErrorBarSeries.js +19 -136
  117. package/es-modules/Series/ErrorBar/ErrorBarSeriesDefaults.js +147 -0
  118. package/es-modules/Series/Flags/FlagsPoint.js +2 -3
  119. package/es-modules/Series/Flags/FlagsSeries.js +31 -298
  120. package/es-modules/Series/Flags/FlagsSeriesDefaults.js +295 -0
  121. package/es-modules/Series/Flags/FlagsSymbols.js +96 -71
  122. package/es-modules/Series/HLC/HLCPoint.js +2 -2
  123. package/es-modules/Series/HLC/HLCSeries.js +7 -172
  124. package/es-modules/Series/HLC/HLCSeriesDefaults.js +184 -0
  125. package/es-modules/Series/Heatmap/HeatmapSeries.js +3 -0
  126. package/es-modules/Series/HeikinAshi/HeikinAshiPoint.js +3 -20
  127. package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +78 -139
  128. package/es-modules/Series/HeikinAshi/HeikinAshiSeriesDefaults.js +102 -0
  129. package/es-modules/Series/Item/ItemPoint.js +0 -1
  130. package/es-modules/Series/Item/ItemSeries.js +13 -8
  131. package/es-modules/Series/Line/LineSeries.js +8 -4
  132. package/es-modules/Series/Map/MapPoint.js +19 -1
  133. package/es-modules/Series/Map/MapSeries.js +7 -3
  134. package/es-modules/Series/MapBubble/MapBubbleSeries.js +4 -0
  135. package/es-modules/Series/MapPoint/MapPointPoint.js +0 -5
  136. package/es-modules/Series/MapPoint/MapPointSeries.js +24 -9
  137. package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +2 -5
  138. package/es-modules/Series/Networkgraph/NetworkgraphSeriesDefaults.js +2 -0
  139. package/es-modules/Series/OHLC/OHLCPoint.js +0 -2
  140. package/es-modules/Series/OHLC/OHLCSeries.js +64 -160
  141. package/es-modules/Series/OHLC/OHLCSeriesDefaults.js +151 -0
  142. package/es-modules/Series/Organization/OrganizationPoint.js +0 -2
  143. package/es-modules/Series/Organization/OrganizationSeries.js +96 -469
  144. package/es-modules/Series/Organization/OrganizationSeriesDefaults.js +415 -0
  145. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +3 -10
  146. package/es-modules/Series/PackedBubble/PackedBubbleSeriesDefaults.js +2 -0
  147. package/es-modules/Series/PathUtilities.js +74 -0
  148. package/es-modules/Series/Pie/PieSeries.js +2 -644
  149. package/es-modules/Series/Pie/PieSeriesDefaults.js +660 -0
  150. package/es-modules/Series/PolarComposition.js +233 -15
  151. package/es-modules/Series/Sankey/SankeySeries.js +27 -530
  152. package/es-modules/Series/Sankey/SankeySeriesDefaults.js +522 -0
  153. package/es-modules/Series/Scatter/ScatterSeries.js +2 -172
  154. package/es-modules/Series/Scatter/ScatterSeriesDefaults.js +188 -0
  155. package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +12 -182
  156. package/es-modules/Series/SolidGauge/SolidGaugeSeriesDefaults.js +199 -0
  157. package/es-modules/Series/Sunburst/SunburstNode.js +34 -0
  158. package/es-modules/Series/Sunburst/SunburstPoint.js +2 -1
  159. package/es-modules/Series/Sunburst/SunburstSeries.js +3 -1
  160. package/es-modules/Series/Timeline/TimelineSeries.js +2 -231
  161. package/es-modules/Series/Timeline/TimelineSeriesDefaults.js +248 -0
  162. package/es-modules/Series/TreeUtilities.js +1 -2
  163. package/es-modules/Series/Treegraph/TreegraphLayout.js +338 -0
  164. package/es-modules/Series/Treegraph/TreegraphLink.js +92 -0
  165. package/es-modules/Series/Treegraph/TreegraphNode.js +206 -0
  166. package/es-modules/Series/Treegraph/TreegraphPoint.js +175 -0
  167. package/es-modules/Series/Treegraph/TreegraphSeries.js +510 -0
  168. package/es-modules/Series/Treegraph/TreegraphSeriesDefaults.js +231 -0
  169. package/es-modules/Series/Treemap/TreemapNode.js +48 -0
  170. package/es-modules/Series/Treemap/TreemapPoint.js +2 -1
  171. package/es-modules/Series/Treemap/TreemapSeries.js +29 -27
  172. package/es-modules/Series/Variwide/VariwideComposition.js +70 -26
  173. package/es-modules/Series/Variwide/VariwidePoint.js +8 -7
  174. package/es-modules/Series/Variwide/VariwideSeries.js +19 -14
  175. package/es-modules/Series/Vector/VectorSeries.js +2 -2
  176. package/es-modules/Series/Venn/VennSeries.js +14 -0
  177. package/es-modules/Series/Waterfall/WaterfallSeries.js +0 -1
  178. package/es-modules/Series/Windbarb/WindbarbSeries.js +3 -2
  179. package/es-modules/Series/Wordcloud/WordcloudSeries.js +3 -0
  180. package/es-modules/Stock/Indicators/AO/AOIndicator.js +1 -2
  181. package/es-modules/Stock/Indicators/BB/BBIndicator.js +15 -4
  182. package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +21 -18
  183. package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +1 -2
  184. package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +1 -2
  185. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +1 -1
  186. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +0 -1
  187. package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +3 -4
  188. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +1 -2
  189. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +6 -7
  190. package/es-modules/{Core → Stock/Navigator}/Navigator.js +112 -686
  191. package/es-modules/Stock/Navigator/NavigatorComposition.js +218 -0
  192. package/es-modules/Stock/Navigator/NavigatorDefaults.js +490 -0
  193. package/es-modules/Stock/Navigator/NavigatorSymbols.js +44 -0
  194. package/es-modules/{Extensions → Stock/RangeSelector}/RangeSelector.js +154 -818
  195. package/es-modules/Stock/RangeSelector/RangeSelectorComposition.js +286 -0
  196. package/es-modules/Stock/RangeSelector/RangeSelectorDefaults.js +521 -0
  197. package/es-modules/{Core → Stock/Scrollbar}/Scrollbar.js +4 -4
  198. package/es-modules/{Core → Stock/Scrollbar}/ScrollbarDefaults.js +1 -1
  199. package/es-modules/Stock/{StockToolbar.js → StockTools/StockToolbar.js} +2 -2
  200. package/es-modules/Stock/{StockTools.js → StockTools/StockTools.js} +3 -3
  201. package/es-modules/Stock/{StockToolsBindings.js → StockTools/StockToolsBindings.js} +3 -3
  202. package/es-modules/Stock/{StockToolsDefaults.js → StockTools/StockToolsDefaults.js} +4 -4
  203. package/es-modules/Stock/{StockToolsGui.js → StockTools/StockToolsGui.js} +4 -4
  204. package/es-modules/Stock/{StockToolsUtilities.js → StockTools/StockToolsUtilities.js} +4 -4
  205. package/es-modules/masters/highcharts-3d.src.js +3 -5
  206. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  207. package/es-modules/masters/highcharts-more.src.js +1 -1
  208. package/es-modules/masters/highcharts.src.js +6 -6
  209. package/es-modules/masters/highmaps.src.js +1 -1
  210. package/es-modules/masters/highstock.src.js +1 -1
  211. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  212. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  213. package/es-modules/masters/indicators/ao.src.js +1 -1
  214. package/es-modules/masters/indicators/apo.src.js +1 -1
  215. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  216. package/es-modules/masters/indicators/aroon.src.js +1 -1
  217. package/es-modules/masters/indicators/atr.src.js +1 -1
  218. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  219. package/es-modules/masters/indicators/cci.src.js +1 -1
  220. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  221. package/es-modules/masters/indicators/cmf.src.js +1 -1
  222. package/es-modules/masters/indicators/cmo.src.js +1 -1
  223. package/es-modules/masters/indicators/dema.src.js +1 -1
  224. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  225. package/es-modules/masters/indicators/dmi.src.js +1 -1
  226. package/es-modules/masters/indicators/dpo.src.js +1 -1
  227. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  228. package/es-modules/masters/indicators/indicators-all.src.js +1 -1
  229. package/es-modules/masters/indicators/indicators.src.js +1 -1
  230. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  231. package/es-modules/masters/indicators/klinger.src.js +1 -1
  232. package/es-modules/masters/indicators/macd.src.js +1 -1
  233. package/es-modules/masters/indicators/mfi.src.js +1 -1
  234. package/es-modules/masters/indicators/momentum.src.js +1 -1
  235. package/es-modules/masters/indicators/natr.src.js +1 -1
  236. package/es-modules/masters/indicators/obv.src.js +1 -1
  237. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  238. package/es-modules/masters/indicators/ppo.src.js +1 -1
  239. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  240. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  241. package/es-modules/masters/indicators/psar.src.js +1 -1
  242. package/es-modules/masters/indicators/regressions.src.js +1 -1
  243. package/es-modules/masters/indicators/roc.src.js +1 -1
  244. package/es-modules/masters/indicators/rsi.src.js +1 -1
  245. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  246. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  247. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  248. package/es-modules/masters/indicators/tema.src.js +1 -1
  249. package/es-modules/masters/indicators/trendline.src.js +1 -1
  250. package/es-modules/masters/indicators/trix.src.js +1 -1
  251. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  252. package/es-modules/masters/indicators/vwap.src.js +1 -1
  253. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  254. package/es-modules/masters/indicators/wma.src.js +1 -1
  255. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  256. package/es-modules/masters/modules/accessibility.src.js +1 -1
  257. package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
  258. package/es-modules/masters/modules/annotations.src.js +1 -1
  259. package/es-modules/masters/modules/arc-diagram.src.js +1 -1
  260. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  261. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  262. package/es-modules/masters/modules/boost.src.js +1 -1
  263. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  264. package/es-modules/masters/modules/bullet.src.js +1 -1
  265. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  266. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  267. package/es-modules/masters/modules/cylinder.src.js +1 -1
  268. package/es-modules/masters/modules/data.src.js +1 -1
  269. package/es-modules/masters/modules/datagrouping.src.js +11 -3
  270. package/es-modules/masters/modules/debugger.src.js +1 -1
  271. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  272. package/es-modules/masters/modules/dotplot.src.js +1 -1
  273. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  274. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  275. package/es-modules/masters/modules/drilldown.src.js +1 -1
  276. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  277. package/es-modules/masters/modules/export-data.src.js +1 -1
  278. package/es-modules/masters/modules/exporting.src.js +1 -1
  279. package/es-modules/masters/modules/full-screen.src.js +1 -1
  280. package/es-modules/masters/modules/funnel.src.js +1 -1
  281. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  282. package/es-modules/masters/modules/gantt.src.js +9 -5
  283. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  284. package/es-modules/masters/modules/heatmap.src.js +1 -1
  285. package/es-modules/masters/modules/heikinashi.src.js +5 -2
  286. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  287. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  288. package/es-modules/masters/modules/item-series.src.js +1 -1
  289. package/es-modules/masters/modules/lollipop.src.js +1 -1
  290. package/es-modules/masters/modules/map.src.js +1 -1
  291. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  292. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  293. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  294. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  295. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  296. package/es-modules/masters/modules/oldie.src.js +1 -1
  297. package/es-modules/masters/modules/organization.src.js +1 -1
  298. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  299. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  300. package/es-modules/masters/modules/pareto.src.js +1 -1
  301. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  302. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  303. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  304. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  305. package/es-modules/masters/modules/sankey.src.js +1 -1
  306. package/es-modules/masters/modules/series-label.src.js +1 -1
  307. package/es-modules/masters/modules/series-on-point.src.js +1 -1
  308. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  309. package/es-modules/masters/modules/sonification.src.js +1 -1
  310. package/es-modules/masters/modules/static-scale.src.js +1 -1
  311. package/es-modules/masters/modules/stock-tools.src.js +4 -4
  312. package/es-modules/masters/modules/stock.src.js +17 -11
  313. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  314. package/es-modules/masters/modules/sunburst.src.js +1 -1
  315. package/es-modules/masters/modules/tilemap.src.js +1 -1
  316. package/es-modules/masters/modules/timeline.src.js +1 -1
  317. package/es-modules/masters/modules/treegraph.src.js +13 -0
  318. package/es-modules/masters/modules/treegrid.src.js +1 -1
  319. package/es-modules/masters/modules/treemap.src.js +1 -1
  320. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  321. package/es-modules/masters/modules/variwide.src.js +5 -2
  322. package/es-modules/masters/modules/vector.src.js +1 -1
  323. package/es-modules/masters/modules/venn.src.js +1 -1
  324. package/es-modules/masters/modules/windbarb.src.js +1 -1
  325. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  326. package/es-modules/masters/modules/xrange.src.js +1 -1
  327. package/es-modules/masters/themes/avocado.src.js +1 -1
  328. package/es-modules/masters/themes/brand-dark.src.js +1 -1
  329. package/es-modules/masters/themes/brand-light.src.js +1 -1
  330. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  331. package/es-modules/masters/themes/dark-green.src.js +1 -1
  332. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  333. package/es-modules/masters/themes/gray.src.js +1 -1
  334. package/es-modules/masters/themes/grid-light.src.js +1 -1
  335. package/es-modules/masters/themes/grid.src.js +1 -1
  336. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  337. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  338. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  339. package/es-modules/masters/themes/skies.src.js +1 -1
  340. package/es-modules/masters/themes/sunset.src.js +1 -1
  341. package/highcharts-3d.js +97 -98
  342. package/highcharts-3d.js.map +1 -1
  343. package/highcharts-3d.src.js +476 -449
  344. package/highcharts-gantt.js +811 -808
  345. package/highcharts-gantt.js.map +1 -1
  346. package/highcharts-gantt.src.js +14619 -14112
  347. package/highcharts-more.d.ts +0 -8
  348. package/highcharts-more.js +208 -201
  349. package/highcharts-more.js.map +1 -1
  350. package/highcharts-more.src.d.ts +0 -8
  351. package/highcharts-more.src.js +679 -289
  352. package/highcharts.d.ts +30739 -6156
  353. package/highcharts.js +590 -589
  354. package/highcharts.js.map +1 -1
  355. package/highcharts.src.d.ts +30739 -6156
  356. package/highcharts.src.js +1988 -1799
  357. package/highmaps.js +759 -757
  358. package/highmaps.js.map +1 -1
  359. package/highmaps.src.js +2339 -2077
  360. package/highstock.js +802 -794
  361. package/highstock.js.map +1 -1
  362. package/highstock.src.js +12349 -11416
  363. package/indicators/acceleration-bands.js +1 -1
  364. package/indicators/acceleration-bands.src.js +1 -1
  365. package/indicators/accumulation-distribution.js +1 -1
  366. package/indicators/accumulation-distribution.src.js +1 -1
  367. package/indicators/ao.js +6 -6
  368. package/indicators/ao.js.map +1 -1
  369. package/indicators/ao.src.js +4 -3
  370. package/indicators/apo.js +1 -1
  371. package/indicators/apo.src.js +1 -1
  372. package/indicators/aroon-oscillator.js +1 -1
  373. package/indicators/aroon-oscillator.src.js +1 -1
  374. package/indicators/aroon.js +1 -1
  375. package/indicators/aroon.src.js +1 -1
  376. package/indicators/atr.js +1 -1
  377. package/indicators/atr.src.js +1 -1
  378. package/indicators/bollinger-bands.js +1 -1
  379. package/indicators/bollinger-bands.js.map +1 -1
  380. package/indicators/bollinger-bands.src.js +16 -5
  381. package/indicators/cci.js +1 -1
  382. package/indicators/cci.src.js +1 -1
  383. package/indicators/chaikin.js +1 -1
  384. package/indicators/chaikin.src.js +1 -1
  385. package/indicators/cmf.js +1 -1
  386. package/indicators/cmf.src.js +1 -1
  387. package/indicators/cmo.d.ts +17 -0
  388. package/indicators/cmo.js +1 -1
  389. package/indicators/cmo.src.d.ts +17 -0
  390. package/indicators/cmo.src.js +1 -1
  391. package/indicators/dema.js +1 -1
  392. package/indicators/dema.src.js +1 -1
  393. package/indicators/disparity-index.d.ts +17 -0
  394. package/indicators/disparity-index.js +1 -1
  395. package/indicators/disparity-index.src.d.ts +17 -0
  396. package/indicators/disparity-index.src.js +1 -1
  397. package/indicators/dmi.d.ts +17 -0
  398. package/indicators/dmi.js +1 -1
  399. package/indicators/dmi.src.d.ts +17 -0
  400. package/indicators/dmi.src.js +1 -1
  401. package/indicators/dpo.js +1 -1
  402. package/indicators/dpo.src.js +1 -1
  403. package/indicators/ichimoku-kinko-hyo.js +14 -14
  404. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  405. package/indicators/ichimoku-kinko-hyo.src.js +22 -19
  406. package/indicators/indicators-all.js +198 -199
  407. package/indicators/indicators-all.js.map +1 -1
  408. package/indicators/indicators-all.src.js +63 -57
  409. package/indicators/indicators.js +13 -13
  410. package/indicators/indicators.js.map +1 -1
  411. package/indicators/indicators.src.js +1 -15
  412. package/indicators/keltner-channels.js +1 -1
  413. package/indicators/keltner-channels.src.js +1 -1
  414. package/indicators/klinger.d.ts +17 -0
  415. package/indicators/klinger.js +12 -12
  416. package/indicators/klinger.js.map +1 -1
  417. package/indicators/klinger.src.d.ts +17 -0
  418. package/indicators/klinger.src.js +4 -3
  419. package/indicators/macd.js +1 -1
  420. package/indicators/macd.js.map +1 -1
  421. package/indicators/macd.src.js +4 -3
  422. package/indicators/mfi.js +1 -1
  423. package/indicators/mfi.src.js +1 -1
  424. package/indicators/momentum.js +1 -1
  425. package/indicators/momentum.src.js +1 -1
  426. package/indicators/natr.js +1 -1
  427. package/indicators/natr.src.js +1 -1
  428. package/indicators/obv.d.ts +17 -0
  429. package/indicators/obv.js +1 -1
  430. package/indicators/obv.src.d.ts +17 -0
  431. package/indicators/obv.src.js +1 -1
  432. package/indicators/pivot-points.js +2 -2
  433. package/indicators/pivot-points.js.map +1 -1
  434. package/indicators/pivot-points.src.js +2 -2
  435. package/indicators/ppo.js +1 -1
  436. package/indicators/ppo.src.js +1 -1
  437. package/indicators/price-channel.js +1 -1
  438. package/indicators/price-channel.src.js +1 -1
  439. package/indicators/price-envelopes.js +1 -1
  440. package/indicators/price-envelopes.src.js +1 -1
  441. package/indicators/psar.js +1 -1
  442. package/indicators/psar.src.js +1 -1
  443. package/indicators/regressions.js +1 -1
  444. package/indicators/regressions.src.js +1 -1
  445. package/indicators/roc.js +1 -1
  446. package/indicators/roc.src.js +1 -1
  447. package/indicators/rsi.js +1 -1
  448. package/indicators/rsi.src.js +1 -1
  449. package/indicators/slow-stochastic.js +5 -5
  450. package/indicators/slow-stochastic.js.map +1 -1
  451. package/indicators/slow-stochastic.src.js +6 -5
  452. package/indicators/stochastic.js +1 -1
  453. package/indicators/stochastic.src.js +1 -1
  454. package/indicators/supertrend.js +7 -7
  455. package/indicators/supertrend.js.map +1 -1
  456. package/indicators/supertrend.src.js +4 -3
  457. package/indicators/tema.js +1 -1
  458. package/indicators/tema.src.js +1 -1
  459. package/indicators/trendline.js +1 -1
  460. package/indicators/trendline.src.js +1 -1
  461. package/indicators/trix.js +1 -1
  462. package/indicators/trix.src.js +1 -1
  463. package/indicators/volume-by-price.js +17 -17
  464. package/indicators/volume-by-price.js.map +1 -1
  465. package/indicators/volume-by-price.src.js +9 -8
  466. package/indicators/vwap.js +1 -1
  467. package/indicators/vwap.src.js +1 -1
  468. package/indicators/williams-r.js +1 -1
  469. package/indicators/williams-r.src.js +1 -1
  470. package/indicators/wma.js +1 -1
  471. package/indicators/wma.src.js +1 -1
  472. package/indicators/zigzag.js +1 -1
  473. package/indicators/zigzag.src.js +1 -1
  474. package/modules/accessibility.js +214 -213
  475. package/modules/accessibility.js.map +1 -1
  476. package/modules/accessibility.src.js +991 -835
  477. package/modules/annotations-advanced.js +16 -16
  478. package/modules/annotations-advanced.js.map +1 -1
  479. package/modules/annotations-advanced.src.js +29 -24
  480. package/modules/annotations.js +91 -91
  481. package/modules/annotations.js.map +1 -1
  482. package/modules/annotations.src.js +29 -24
  483. package/modules/arc-diagram.d.ts +17 -0
  484. package/modules/arc-diagram.js +15 -15
  485. package/modules/arc-diagram.js.map +1 -1
  486. package/modules/arc-diagram.src.d.ts +17 -0
  487. package/modules/arc-diagram.src.js +6 -6
  488. package/modules/arrow-symbols.js +1 -1
  489. package/modules/arrow-symbols.src.js +1 -1
  490. package/modules/boost-canvas.js +19 -19
  491. package/modules/boost-canvas.js.map +1 -1
  492. package/modules/boost-canvas.src.js +13 -8
  493. package/modules/boost.js +37 -37
  494. package/modules/boost.js.map +1 -1
  495. package/modules/boost.src.js +13 -8
  496. package/modules/broken-axis.js +1 -1
  497. package/modules/broken-axis.src.js +1 -1
  498. package/modules/bullet.js +1 -1
  499. package/modules/bullet.src.js +1 -1
  500. package/modules/coloraxis.js +25 -24
  501. package/modules/coloraxis.js.map +1 -1
  502. package/modules/coloraxis.src.js +77 -58
  503. package/modules/current-date-indicator.js +1 -1
  504. package/modules/current-date-indicator.src.js +1 -1
  505. package/modules/cylinder.js +1 -1
  506. package/modules/cylinder.src.js +1 -1
  507. package/modules/data.js +27 -27
  508. package/modules/data.js.map +1 -1
  509. package/modules/data.src.js +3 -3
  510. package/modules/datagrouping.d.ts +31 -0
  511. package/modules/datagrouping.js +23 -21
  512. package/modules/datagrouping.js.map +1 -1
  513. package/modules/datagrouping.src.d.ts +31 -0
  514. package/modules/datagrouping.src.js +921 -640
  515. package/modules/debugger.js +3 -3
  516. package/modules/debugger.js.map +1 -1
  517. package/modules/debugger.src.js +2 -2
  518. package/modules/dependency-wheel.js +12 -12
  519. package/modules/dependency-wheel.js.map +1 -1
  520. package/modules/dependency-wheel.src.js +191 -108
  521. package/modules/dotplot.js +6 -6
  522. package/modules/dotplot.js.map +1 -1
  523. package/modules/dotplot.src.js +10 -13
  524. package/modules/drag-panes.js +1 -1
  525. package/modules/drag-panes.src.js +1 -1
  526. package/modules/draggable-points.js +5 -5
  527. package/modules/draggable-points.js.map +1 -1
  528. package/modules/draggable-points.src.js +7 -3
  529. package/modules/drilldown.js +37 -37
  530. package/modules/drilldown.js.map +1 -1
  531. package/modules/drilldown.src.js +5 -6
  532. package/modules/dumbbell.js +17 -17
  533. package/modules/dumbbell.js.map +1 -1
  534. package/modules/dumbbell.src.js +27 -22
  535. package/modules/export-data.js +26 -25
  536. package/modules/export-data.js.map +1 -1
  537. package/modules/export-data.src.js +33 -6
  538. package/modules/exporting.js +36 -35
  539. package/modules/exporting.js.map +1 -1
  540. package/modules/exporting.src.js +81 -88
  541. package/modules/full-screen.js +1 -1
  542. package/modules/full-screen.src.js +1 -1
  543. package/modules/funnel.js +1 -1
  544. package/modules/funnel.src.js +1 -1
  545. package/modules/funnel3d.js +1 -1
  546. package/modules/funnel3d.src.js +1 -1
  547. package/modules/gantt.js +221 -219
  548. package/modules/gantt.js.map +1 -1
  549. package/modules/gantt.src.js +12842 -12524
  550. package/modules/grid-axis.js +1 -1
  551. package/modules/grid-axis.src.js +1 -1
  552. package/modules/heatmap.js +40 -40
  553. package/modules/heatmap.js.map +1 -1
  554. package/modules/heatmap.src.js +80 -58
  555. package/modules/heikinashi.d.ts +17 -0
  556. package/modules/heikinashi.js +9 -8
  557. package/modules/heikinashi.js.map +1 -1
  558. package/modules/heikinashi.src.d.ts +17 -0
  559. package/modules/heikinashi.src.js +192 -165
  560. package/modules/histogram-bellcurve.js +1 -1
  561. package/modules/histogram-bellcurve.src.js +1 -1
  562. package/modules/hollowcandlestick.d.ts +17 -0
  563. package/modules/hollowcandlestick.js +1 -1
  564. package/modules/hollowcandlestick.src.d.ts +17 -0
  565. package/modules/hollowcandlestick.src.js +1 -1
  566. package/modules/item-series.js +12 -12
  567. package/modules/item-series.js.map +1 -1
  568. package/modules/item-series.src.js +14 -10
  569. package/modules/lollipop.js +1 -1
  570. package/modules/lollipop.src.js +1 -1
  571. package/modules/map.js +172 -171
  572. package/modules/map.js.map +1 -1
  573. package/modules/map.src.js +194 -121
  574. package/modules/marker-clusters.js +2 -2
  575. package/modules/marker-clusters.js.map +1 -1
  576. package/modules/marker-clusters.src.js +2 -2
  577. package/modules/networkgraph.js +8 -8
  578. package/modules/networkgraph.js.map +1 -1
  579. package/modules/networkgraph.src.js +5 -6
  580. package/modules/no-data-to-display.js +4 -4
  581. package/modules/no-data-to-display.js.map +1 -1
  582. package/modules/no-data-to-display.src.js +2 -2
  583. package/modules/offline-exporting.js +4 -4
  584. package/modules/offline-exporting.js.map +1 -1
  585. package/modules/offline-exporting.src.js +7 -7
  586. package/modules/oldie-polyfills.js +7 -7
  587. package/modules/oldie-polyfills.js.map +1 -1
  588. package/modules/oldie-polyfills.src.js +9 -7
  589. package/modules/oldie.js +30 -30
  590. package/modules/oldie.js.map +1 -1
  591. package/modules/oldie.src.js +5 -5
  592. package/modules/organization.js +18 -16
  593. package/modules/organization.js.map +1 -1
  594. package/modules/organization.src.js +659 -495
  595. package/modules/overlapping-datalabels.js +1 -1
  596. package/modules/overlapping-datalabels.src.js +1 -1
  597. package/modules/parallel-coordinates.js +10 -10
  598. package/modules/parallel-coordinates.js.map +1 -1
  599. package/modules/parallel-coordinates.src.js +6 -2
  600. package/modules/pareto.js +1 -1
  601. package/modules/pareto.src.js +1 -1
  602. package/modules/pathfinder.js +31 -31
  603. package/modules/pathfinder.js.map +1 -1
  604. package/modules/pathfinder.src.js +19 -23
  605. package/modules/pattern-fill.js +2 -2
  606. package/modules/pattern-fill.js.map +1 -1
  607. package/modules/pattern-fill.src.js +11 -11
  608. package/modules/price-indicator.js +1 -1
  609. package/modules/price-indicator.src.js +1 -1
  610. package/modules/pyramid3d.js +1 -1
  611. package/modules/pyramid3d.src.js +1 -1
  612. package/modules/sankey.js +33 -32
  613. package/modules/sankey.js.map +1 -1
  614. package/modules/sankey.src.js +571 -550
  615. package/modules/series-label.js +17 -17
  616. package/modules/series-label.js.map +1 -1
  617. package/modules/series-label.src.js +7 -3
  618. package/modules/series-on-point.d.ts +17 -0
  619. package/modules/series-on-point.js +1 -1
  620. package/modules/series-on-point.src.d.ts +17 -0
  621. package/modules/series-on-point.src.js +1 -1
  622. package/modules/solid-gauge.js +11 -10
  623. package/modules/solid-gauge.js.map +1 -1
  624. package/modules/solid-gauge.src.js +220 -192
  625. package/modules/sonification.js +2 -2
  626. package/modules/sonification.js.map +1 -1
  627. package/modules/sonification.src.js +2 -2
  628. package/modules/static-scale.js +1 -1
  629. package/modules/static-scale.src.js +1 -1
  630. package/modules/stock-tools.js +59 -59
  631. package/modules/stock-tools.js.map +1 -1
  632. package/modules/stock-tools.src.js +19 -21
  633. package/modules/stock.d.ts +26 -6
  634. package/modules/stock.js +212 -205
  635. package/modules/stock.js.map +1 -1
  636. package/modules/stock.src.d.ts +26 -6
  637. package/modules/stock.src.js +11361 -10617
  638. package/modules/streamgraph.js +1 -1
  639. package/modules/streamgraph.src.js +1 -1
  640. package/modules/sunburst.js +75 -73
  641. package/modules/sunburst.js.map +1 -1
  642. package/modules/sunburst.src.js +133 -57
  643. package/modules/tilemap.js +1 -1
  644. package/modules/tilemap.src.js +1 -1
  645. package/modules/timeline.js +18 -18
  646. package/modules/timeline.js.map +1 -1
  647. package/modules/timeline.src.js +257 -233
  648. package/modules/treegraph.d.ts +17 -0
  649. package/modules/treegraph.js +44 -0
  650. package/modules/treegraph.js.map +1 -0
  651. package/modules/treegraph.src.d.ts +17 -0
  652. package/modules/treegraph.src.js +1829 -0
  653. package/modules/treegrid.js +2 -2
  654. package/modules/treegrid.js.map +1 -1
  655. package/modules/treegrid.src.js +2 -3
  656. package/modules/treemap.js +54 -53
  657. package/modules/treemap.js.map +1 -1
  658. package/modules/treemap.src.js +90 -52
  659. package/modules/variable-pie.js +1 -1
  660. package/modules/variable-pie.src.js +1 -1
  661. package/modules/variwide.js +12 -12
  662. package/modules/variwide.js.map +1 -1
  663. package/modules/variwide.src.js +158 -106
  664. package/modules/vector.js +1 -1
  665. package/modules/vector.src.js +3 -3
  666. package/modules/venn.js +31 -31
  667. package/modules/venn.js.map +1 -1
  668. package/modules/venn.src.js +17 -16
  669. package/modules/windbarb.js +15 -15
  670. package/modules/windbarb.js.map +1 -1
  671. package/modules/windbarb.src.js +41 -4
  672. package/modules/wordcloud.js +23 -23
  673. package/modules/wordcloud.js.map +1 -1
  674. package/modules/wordcloud.src.js +6 -15
  675. package/modules/xrange.js +1 -1
  676. package/modules/xrange.src.js +1 -1
  677. package/package.json +1 -1
  678. package/themes/avocado.js +2 -3
  679. package/themes/avocado.js.map +1 -1
  680. package/themes/avocado.src.js +2 -2
  681. package/themes/brand-dark.d.ts +22 -0
  682. package/themes/brand-dark.js +3 -3
  683. package/themes/brand-dark.js.map +1 -1
  684. package/themes/brand-dark.src.d.ts +22 -0
  685. package/themes/brand-dark.src.js +2 -2
  686. package/themes/brand-light.d.ts +22 -0
  687. package/themes/brand-light.js +2 -2
  688. package/themes/brand-light.js.map +1 -1
  689. package/themes/brand-light.src.d.ts +22 -0
  690. package/themes/brand-light.src.js +2 -2
  691. package/themes/dark-blue.js +2 -2
  692. package/themes/dark-blue.js.map +1 -1
  693. package/themes/dark-blue.src.js +2 -2
  694. package/themes/dark-green.js +2 -2
  695. package/themes/dark-green.js.map +1 -1
  696. package/themes/dark-green.src.js +2 -2
  697. package/themes/dark-unica.js +2 -2
  698. package/themes/dark-unica.js.map +1 -1
  699. package/themes/dark-unica.src.js +2 -2
  700. package/themes/gray.js +2 -2
  701. package/themes/gray.js.map +1 -1
  702. package/themes/gray.src.js +2 -2
  703. package/themes/grid-light.js +2 -2
  704. package/themes/grid-light.js.map +1 -1
  705. package/themes/grid-light.src.js +2 -2
  706. package/themes/grid.js +2 -2
  707. package/themes/grid.js.map +1 -1
  708. package/themes/grid.src.js +2 -2
  709. package/themes/high-contrast-dark.d.ts +22 -0
  710. package/themes/high-contrast-dark.js +2 -2
  711. package/themes/high-contrast-dark.js.map +1 -1
  712. package/themes/high-contrast-dark.src.d.ts +22 -0
  713. package/themes/high-contrast-dark.src.js +2 -2
  714. package/themes/high-contrast-light.d.ts +22 -0
  715. package/themes/high-contrast-light.js +2 -2
  716. package/themes/high-contrast-light.js.map +1 -1
  717. package/themes/high-contrast-light.src.d.ts +22 -0
  718. package/themes/high-contrast-light.src.js +2 -2
  719. package/themes/sand-signika.js +2 -2
  720. package/themes/sand-signika.js.map +1 -1
  721. package/themes/sand-signika.src.js +2 -2
  722. package/themes/skies.js +2 -2
  723. package/themes/skies.js.map +1 -1
  724. package/themes/skies.src.js +2 -2
  725. package/themes/sunset.js +2 -2
  726. package/themes/sunset.js.map +1 -1
  727. package/themes/sunset.src.js +2 -2
  728. package/es-modules/Core/Axis/Axis3D.js +0 -612
  729. package/es-modules/Core/Axis/NavigatorAxis.js +0 -159
  730. package/es-modules/Core/Axis/Tick3D.js +0 -68
  731. package/es-modules/Extensions/DataGrouping.js +0 -1177
  732. package/es-modules/Stock/Indicators/SMA/SMAComposition.js +0 -12
@@ -0,0 +1,479 @@
1
+ /* *
2
+ *
3
+ * (c) 2010-2021 Torstein Honsi
4
+ *
5
+ * License: www.highcharts.com/license
6
+ *
7
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
8
+ *
9
+ * */
10
+ 'use strict';
11
+ import ApproximationRegistry from './ApproximationRegistry.js';
12
+ import DataGroupingDefaults from './DataGroupingDefaults.js';
13
+ import DateTimeAxis from '../../Core/Axis/DateTimeAxis.js';
14
+ import D from '../../Core/Defaults.js';
15
+ import SeriesRegistry from '../../Core/Series/SeriesRegistry.js';
16
+ var seriesProto = SeriesRegistry.series.prototype;
17
+ import U from '../../Core/Utilities.js';
18
+ var addEvent = U.addEvent, defined = U.defined, error = U.error, extend = U.extend, isNumber = U.isNumber, merge = U.merge, pick = U.pick;
19
+ /* *
20
+ *
21
+ * Constants
22
+ *
23
+ * */
24
+ var baseGeneratePoints = seriesProto.generatePoints;
25
+ var composedMembers = [];
26
+ /* *
27
+ *
28
+ * Functions
29
+ *
30
+ * */
31
+ /**
32
+ * @private
33
+ */
34
+ function adjustExtremes(xAxis, groupedXData) {
35
+ // Make sure the X axis extends to show the first group (#2533)
36
+ // But only for visible series (#5493, #6393)
37
+ if (defined(groupedXData[0]) &&
38
+ isNumber(xAxis.min) &&
39
+ isNumber(xAxis.dataMin) &&
40
+ groupedXData[0] < xAxis.min) {
41
+ if ((!defined(xAxis.options.min) &&
42
+ xAxis.min <= xAxis.dataMin) ||
43
+ xAxis.min === xAxis.dataMin) {
44
+ xAxis.min = Math.min(groupedXData[0], xAxis.min);
45
+ }
46
+ xAxis.dataMin = Math.min(groupedXData[0], xAxis.dataMin);
47
+ }
48
+ // When the last anchor set, change the extremes that
49
+ // the last point is visible (#12455).
50
+ if (defined(groupedXData[groupedXData.length - 1]) &&
51
+ isNumber(xAxis.max) &&
52
+ isNumber(xAxis.dataMax) &&
53
+ groupedXData[groupedXData.length - 1] > xAxis.max) {
54
+ if ((!defined(xAxis.options.max) &&
55
+ isNumber(xAxis.dataMax) &&
56
+ xAxis.max >= xAxis.dataMax) || xAxis.max === xAxis.dataMax) {
57
+ xAxis.max = Math.max(groupedXData[groupedXData.length - 1], xAxis.max);
58
+ }
59
+ xAxis.dataMax = Math.max(groupedXData[groupedXData.length - 1], xAxis.dataMax);
60
+ }
61
+ }
62
+ /**
63
+ * @private
64
+ */
65
+ function anchorPoints(series, groupedXData, xMax) {
66
+ var options = series.options, dataGroupingOptions = options.dataGrouping, totalRange = (series.currentDataGrouping && series.currentDataGrouping.gapSize);
67
+ var i;
68
+ // DataGrouping x-coordinates.
69
+ if (dataGroupingOptions && series.xData && totalRange && series.groupMap) {
70
+ var groupedDataLength = groupedXData.length - 1, anchor = dataGroupingOptions.anchor, firstAnchor = pick(dataGroupingOptions.firstAnchor, anchor), lastAnchor = pick(dataGroupingOptions.lastAnchor, anchor);
71
+ // Anchor points that are not extremes.
72
+ if (anchor && anchor !== 'start') {
73
+ var shiftInterval = (totalRange *
74
+ { middle: 0.5, end: 1 }[anchor]);
75
+ i = groupedXData.length - 1;
76
+ while (i-- && i > 0) {
77
+ groupedXData[i] += shiftInterval;
78
+ }
79
+ }
80
+ // Change the first point position, but only when it is
81
+ // the first point in the data set not in the current zoom.
82
+ if (firstAnchor &&
83
+ firstAnchor !== 'start' &&
84
+ series.xData[0] >= groupedXData[0]) {
85
+ var groupStart = series.groupMap[0].start, groupLength = series.groupMap[0].length;
86
+ var firstGroupstEnd = void 0;
87
+ if (isNumber(groupStart) && isNumber(groupLength)) {
88
+ firstGroupstEnd = groupStart + (groupLength - 1);
89
+ }
90
+ groupedXData[0] = {
91
+ middle: groupedXData[0] + 0.5 * totalRange,
92
+ end: groupedXData[0] + totalRange,
93
+ firstPoint: series.xData[0],
94
+ lastPoint: firstGroupstEnd && series.xData[firstGroupstEnd]
95
+ }[firstAnchor];
96
+ }
97
+ // Change the last point position but only when it is
98
+ // the last point in the data set not in the current zoom.
99
+ if (lastAnchor &&
100
+ lastAnchor !== 'start' &&
101
+ totalRange &&
102
+ groupedXData[groupedDataLength] >= xMax - totalRange) {
103
+ var lastGroupStart = series.groupMap[series.groupMap.length - 1].start;
104
+ groupedXData[groupedDataLength] = {
105
+ middle: groupedXData[groupedDataLength] + 0.5 * totalRange,
106
+ end: groupedXData[groupedDataLength] + totalRange,
107
+ firstPoint: lastGroupStart && series.xData[lastGroupStart],
108
+ lastPoint: series.xData[series.xData.length - 1]
109
+ }[lastAnchor];
110
+ }
111
+ }
112
+ }
113
+ /**
114
+ * For the processed data, calculate the grouped data if needed.
115
+ *
116
+ * @private
117
+ * @function Highcharts.Series#applyGrouping
118
+ */
119
+ function applyGrouping(hasExtremesChanged) {
120
+ var series = this, chart = series.chart, options = series.options, dataGroupingOptions = options.dataGrouping, groupingEnabled = series.allowDG !== false && dataGroupingOptions &&
121
+ pick(dataGroupingOptions.enabled, chart.options.isStock), visible = (series.visible || !chart.options.chart.ignoreHiddenSeries), lastDataGrouping = this.currentDataGrouping;
122
+ var currentDataGrouping, croppedData, revertRequireSorting = false;
123
+ // Data needs to be sorted for dataGrouping
124
+ if (groupingEnabled && !series.requireSorting) {
125
+ series.requireSorting = revertRequireSorting = true;
126
+ }
127
+ // Skip if skipDataGrouping method returns false or if grouping is disabled
128
+ // (in that order).
129
+ var skip = skipDataGrouping(series, hasExtremesChanged) === false || !groupingEnabled;
130
+ // Revert original requireSorting value if changed
131
+ if (revertRequireSorting) {
132
+ series.requireSorting = false;
133
+ }
134
+ if (!skip) {
135
+ series.destroyGroupedData();
136
+ var processedXData = dataGroupingOptions.groupAll ?
137
+ series.xData :
138
+ series.processedXData, processedYData = dataGroupingOptions.groupAll ?
139
+ series.yData :
140
+ series.processedYData, plotSizeX = chart.plotSizeX, xAxis = series.xAxis, ordinal = xAxis.options.ordinal, groupPixelWidth = series.groupPixelWidth;
141
+ var i = void 0, hasGroupedData = void 0;
142
+ // Execute grouping if the amount of points is greater than the limit
143
+ // defined in groupPixelWidth
144
+ if (groupPixelWidth &&
145
+ processedXData &&
146
+ processedXData.length) {
147
+ hasGroupedData = true;
148
+ // Force recreation of point instances in series.translate, #5699
149
+ series.isDirty = true;
150
+ series.points = null; // #6709
151
+ var extremes = xAxis.getExtremes(), xMin = extremes.min, xMax = extremes.max, groupIntervalFactor = (ordinal &&
152
+ xAxis.ordinal &&
153
+ xAxis.ordinal.getGroupIntervalFactor(xMin, xMax, series)) || 1, interval = (groupPixelWidth * (xMax - xMin) / plotSizeX) *
154
+ groupIntervalFactor, groupPositions = xAxis.getTimeTicks(DateTimeAxis.Additions.prototype.normalizeTimeTickInterval(interval, dataGroupingOptions.units ||
155
+ DataGroupingDefaults.units),
156
+ // Processed data may extend beyond axis (#4907)
157
+ Math.min(xMin, processedXData[0]), Math.max(xMax, processedXData[processedXData.length - 1]), xAxis.options.startOfWeek, processedXData, series.closestPointRange), groupedData = seriesProto.groupData.apply(series, [
158
+ processedXData,
159
+ processedYData,
160
+ groupPositions,
161
+ dataGroupingOptions.approximation
162
+ ]);
163
+ var groupedXData = groupedData.groupedXData, groupedYData = groupedData.groupedYData, gapSize = 0;
164
+ // The smoothed option is deprecated, instead, there is a fallback
165
+ // to the new anchoring mechanism. #12455.
166
+ if (dataGroupingOptions &&
167
+ dataGroupingOptions.smoothed &&
168
+ groupedXData.length) {
169
+ dataGroupingOptions.firstAnchor = 'firstPoint';
170
+ dataGroupingOptions.anchor = 'middle';
171
+ dataGroupingOptions.lastAnchor = 'lastPoint';
172
+ error(32, false, chart, {
173
+ 'dataGrouping.smoothed': 'use dataGrouping.anchor'
174
+ });
175
+ }
176
+ anchorPoints(series, groupedXData, xMax);
177
+ // Record what data grouping values were used
178
+ for (i = 1; i < groupPositions.length; i++) {
179
+ // The grouped gapSize needs to be the largest distance between
180
+ // the group to capture varying group sizes like months or DST
181
+ // crossing (#10000). Also check that the gap is not at the
182
+ // start of a segment.
183
+ if (!groupPositions.info.segmentStarts ||
184
+ groupPositions.info.segmentStarts.indexOf(i) === -1) {
185
+ gapSize = Math.max(groupPositions[i] - groupPositions[i - 1], gapSize);
186
+ }
187
+ }
188
+ currentDataGrouping = groupPositions.info;
189
+ currentDataGrouping.gapSize = gapSize;
190
+ series.closestPointRange = groupPositions.info.totalRange;
191
+ series.groupMap = groupedData.groupMap;
192
+ if (visible) {
193
+ adjustExtremes(xAxis, groupedXData);
194
+ }
195
+ // We calculated all group positions but we should render
196
+ // only the ones within the visible range
197
+ if (dataGroupingOptions.groupAll) {
198
+ // Keep the reference to all grouped points
199
+ // for further calculation (eg. heikinashi).
200
+ series.allGroupedData = groupedYData;
201
+ croppedData = series.cropData(groupedXData, groupedYData, xAxis.min, xAxis.max, 1 // Ordinal xAxis will remove left-most points otherwise
202
+ );
203
+ groupedXData = croppedData.xData;
204
+ groupedYData = croppedData.yData;
205
+ series.cropStart = croppedData.start; // #15005
206
+ }
207
+ // Set series props
208
+ series.processedXData = groupedXData;
209
+ series.processedYData = groupedYData;
210
+ }
211
+ else {
212
+ series.groupMap = null;
213
+ }
214
+ series.hasGroupedData = hasGroupedData;
215
+ series.currentDataGrouping = currentDataGrouping;
216
+ series.preventGraphAnimation =
217
+ (lastDataGrouping && lastDataGrouping.totalRange) !==
218
+ (currentDataGrouping && currentDataGrouping.totalRange);
219
+ }
220
+ }
221
+ /**
222
+ * @private
223
+ */
224
+ function compose(SeriesClass) {
225
+ var PointClass = SeriesClass.prototype.pointClass;
226
+ if (composedMembers.indexOf(PointClass) === -1) {
227
+ composedMembers.push(PointClass);
228
+ // Override point prototype to throw a warning when trying to update
229
+ // grouped points.
230
+ addEvent(PointClass, 'update', function () {
231
+ if (this.dataGroup) {
232
+ error(24, false, this.series.chart);
233
+ return false;
234
+ }
235
+ });
236
+ }
237
+ if (composedMembers.indexOf(SeriesClass) === -1) {
238
+ composedMembers.push(SeriesClass);
239
+ addEvent(SeriesClass, 'afterSetOptions', onAfterSetOptions);
240
+ addEvent(SeriesClass, 'destroy', destroyGroupedData);
241
+ extend(SeriesClass.prototype, {
242
+ applyGrouping: applyGrouping,
243
+ destroyGroupedData: destroyGroupedData,
244
+ generatePoints: generatePoints,
245
+ getDGApproximation: getDGApproximation,
246
+ groupData: groupData
247
+ });
248
+ }
249
+ }
250
+ /**
251
+ * Destroy the grouped data points. #622, #740
252
+ * @private
253
+ */
254
+ function destroyGroupedData() {
255
+ // Clear previous groups
256
+ if (this.groupedData) {
257
+ this.groupedData.forEach(function (point, i) {
258
+ if (point) {
259
+ this.groupedData[i] = point.destroy ?
260
+ point.destroy() : null;
261
+ }
262
+ }, this);
263
+ // Clears all:
264
+ // - `this.groupedData`
265
+ // - `this.points`
266
+ // - `preserve` object in series.update()
267
+ this.groupedData.length = 0;
268
+ }
269
+ }
270
+ /**
271
+ * Override the generatePoints method by adding a reference to grouped data
272
+ * @private
273
+ */
274
+ function generatePoints() {
275
+ baseGeneratePoints.apply(this);
276
+ // Record grouped data in order to let it be destroyed the next time
277
+ // processData runs
278
+ this.destroyGroupedData(); // #622
279
+ this.groupedData = this.hasGroupedData ? this.points : null;
280
+ }
281
+ /**
282
+ * Set default approximations to the prototypes if present. Properties are
283
+ * inherited down. Can be overridden for individual series types.
284
+ * @private
285
+ */
286
+ function getDGApproximation() {
287
+ if (this.is('arearange')) {
288
+ return 'range';
289
+ }
290
+ if (this.is('ohlc')) {
291
+ return 'ohlc';
292
+ }
293
+ if (this.is('hlc')) {
294
+ return 'hlc';
295
+ }
296
+ if (this.is('column')) {
297
+ return 'sum';
298
+ }
299
+ return 'average';
300
+ }
301
+ /**
302
+ * Highcharts Stock only. Takes parallel arrays of x and y data and groups the
303
+ * data into intervals defined by groupPositions, a collection of starting x
304
+ * values for each group.
305
+ *
306
+ * @product highstock
307
+ *
308
+ * @function Highcharts.Series#groupData
309
+ * @param {Array<number>} xData
310
+ * Parallel array of x data.
311
+ * @param {Array<(number|null|undefined)>|Array<Array<(number|null|undefined)>>} yData
312
+ * Parallel array of y data.
313
+ * @param {Array<number>} groupPositions
314
+ * Group positions.
315
+ * @param {string|Function} [approximation]
316
+ * Approximation to use.
317
+ * @return {Highcharts.DataGroupingResultObject}
318
+ * Mapped groups.
319
+ */
320
+ function groupData(xData, yData, groupPositions, approximation) {
321
+ var series = this, data = series.data, dataOptions = series.options && series.options.data, groupedXData = [], groupedYData = [], groupMap = [], dataLength = xData.length,
322
+ // when grouping the fake extended axis for panning,
323
+ // we don't need to consider y
324
+ handleYData = !!yData, values = [], pointArrayMap = series.pointArrayMap, pointArrayMapLength = pointArrayMap && pointArrayMap.length, extendedPointArrayMap = ['x'].concat(pointArrayMap || ['y']), groupAll = (this.options.dataGrouping &&
325
+ this.options.dataGrouping.groupAll);
326
+ var pointX, pointY, groupedY, pos = 0, start = 0;
327
+ var approximationFn = (typeof approximation === 'function' ?
328
+ approximation :
329
+ approximation && ApproximationRegistry[approximation] ?
330
+ ApproximationRegistry[approximation] :
331
+ ApproximationRegistry[(series.getDGApproximation && series.getDGApproximation() ||
332
+ 'average')]);
333
+ // Calculate values array size from pointArrayMap length
334
+ if (pointArrayMapLength) {
335
+ var len = pointArrayMap.length;
336
+ while (len--) {
337
+ values.push([]);
338
+ }
339
+ }
340
+ else {
341
+ values.push([]);
342
+ }
343
+ var valuesLen = pointArrayMapLength || 1;
344
+ for (var i = 0; i <= dataLength; i++) {
345
+ // Start with the first point within the X axis range (#2696)
346
+ if (xData[i] < groupPositions[0]) {
347
+ continue; // with next point
348
+ }
349
+ // when a new group is entered, summarize and initialize
350
+ // the previous group
351
+ while ((typeof groupPositions[pos + 1] !== 'undefined' &&
352
+ xData[i] >= groupPositions[pos + 1]) ||
353
+ i === dataLength) { // get the last group
354
+ // get group x and y
355
+ pointX = groupPositions[pos];
356
+ series.dataGroupInfo = {
357
+ start: groupAll ? start : (series.cropStart + start),
358
+ length: values[0].length
359
+ };
360
+ groupedY = approximationFn.apply(series, values);
361
+ // By default, let options of the first grouped point be passed over
362
+ // to the grouped point. This allows preserving properties like
363
+ // `name` and `color` or custom properties. Implementers can
364
+ // override this from the approximation function, where they can
365
+ // write custom options to `this.dataGroupInfo.options`.
366
+ if (series.pointClass && !defined(series.dataGroupInfo.options)) {
367
+ // Convert numbers and arrays into objects
368
+ series.dataGroupInfo.options = merge(series.pointClass.prototype
369
+ .optionsToObject.call({ series: series }, series.options.data[series.cropStart + start]));
370
+ // Make sure the raw data (x, y, open, high etc) is not copied
371
+ // over and overwriting approximated data.
372
+ extendedPointArrayMap.forEach(function (key) {
373
+ delete series.dataGroupInfo.options[key];
374
+ });
375
+ }
376
+ // push the grouped data
377
+ if (typeof groupedY !== 'undefined') {
378
+ groupedXData.push(pointX);
379
+ groupedYData.push(groupedY);
380
+ groupMap.push(series.dataGroupInfo);
381
+ }
382
+ // reset the aggregate arrays
383
+ start = i;
384
+ for (var j = 0; j < valuesLen; j++) {
385
+ values[j].length = 0; // faster than values[j] = []
386
+ values[j].hasNulls = false;
387
+ }
388
+ // Advance on the group positions
389
+ pos += 1;
390
+ // don't loop beyond the last group
391
+ if (i === dataLength) {
392
+ break;
393
+ }
394
+ }
395
+ // break out
396
+ if (i === dataLength) {
397
+ break;
398
+ }
399
+ // for each raw data point, push it to an array that contains all values
400
+ // for this specific group
401
+ if (pointArrayMap) {
402
+ var index = (series.options.dataGrouping &&
403
+ series.options.dataGrouping.groupAll ?
404
+ i : series.cropStart + i), point = (data && data[index]) ||
405
+ series.pointClass.prototype.applyOptions.apply({
406
+ series: series
407
+ }, [dataOptions[index]]);
408
+ var val = void 0;
409
+ for (var j = 0; j < pointArrayMapLength; j++) {
410
+ val = point[pointArrayMap[j]];
411
+ if (isNumber(val)) {
412
+ values[j].push(val);
413
+ }
414
+ else if (val === null) {
415
+ values[j].hasNulls = true;
416
+ }
417
+ }
418
+ }
419
+ else {
420
+ pointY = handleYData ? yData[i] : null;
421
+ if (isNumber(pointY)) {
422
+ values[0].push(pointY);
423
+ }
424
+ else if (pointY === null) {
425
+ values[0].hasNulls = true;
426
+ }
427
+ }
428
+ }
429
+ return {
430
+ groupedXData: groupedXData,
431
+ groupedYData: groupedYData,
432
+ groupMap: groupMap
433
+ };
434
+ }
435
+ /**
436
+ * Handle default options for data grouping. This must be set at runtime because
437
+ * some series types are defined after this.
438
+ * @private
439
+ */
440
+ function onAfterSetOptions(e) {
441
+ var options = e.options, type = this.type, plotOptions = this.chart.options.plotOptions,
442
+ // External series, for example technical indicators should also inherit
443
+ // commonOptions which are not available outside this module
444
+ baseOptions = (this.useCommonDataGrouping &&
445
+ DataGroupingDefaults.common), seriesSpecific = DataGroupingDefaults.seriesSpecific;
446
+ var defaultOptions = D.defaultOptions.plotOptions[type].dataGrouping;
447
+ if (plotOptions && (seriesSpecific[type] || baseOptions)) { // #1284
448
+ var rangeSelector = this.chart.rangeSelector;
449
+ if (!defaultOptions) {
450
+ defaultOptions = merge(DataGroupingDefaults.common, seriesSpecific[type]);
451
+ }
452
+ options.dataGrouping = merge(baseOptions, defaultOptions, plotOptions.series && plotOptions.series.dataGrouping, // #1228
453
+ // Set by the StockChart constructor:
454
+ plotOptions[type].dataGrouping, this.userOptions.dataGrouping, !options.isInternal &&
455
+ rangeSelector &&
456
+ isNumber(rangeSelector.selected) &&
457
+ rangeSelector.buttonOptions[rangeSelector.selected].dataGrouping);
458
+ }
459
+ }
460
+ /**
461
+ * @private
462
+ */
463
+ function skipDataGrouping(series, force) {
464
+ return !(series.isCartesian &&
465
+ !series.isDirty &&
466
+ !series.xAxis.isDirty &&
467
+ !series.yAxis.isDirty &&
468
+ !force);
469
+ }
470
+ /* *
471
+ *
472
+ * Default Export
473
+ *
474
+ * */
475
+ var DataGroupingSeriesComposition = {
476
+ compose: compose,
477
+ groupData: groupData
478
+ };
479
+ export default DataGroupingSeriesComposition;
@@ -10,7 +10,7 @@
10
10
  'use strict';
11
11
  import ErrorMessages from './ErrorMessages.js';
12
12
  import H from '../../Core/Globals.js';
13
- import D from '../../Core/DefaultOptions.js';
13
+ import D from '../../Core/Defaults.js';
14
14
  var setOptions = D.setOptions;
15
15
  import U from '../../Core/Utilities.js';
16
16
  var addEvent = U.addEvent, find = U.find, isNumber = U.isNumber;
@@ -534,7 +534,9 @@ if (seriesTypes.arearange) {
534
534
  resize: true,
535
535
  resizeSide: 'bottom',
536
536
  handlePositioner: function (point) {
537
- var bBox = point.lowerGraphic && point.lowerGraphic.getBBox();
537
+ var bBox = (point.graphics &&
538
+ point.graphics[0] &&
539
+ point.graphics[0].getBBox());
538
540
  return bBox ? {
539
541
  x: bBox.x + bBox.width / 2,
540
542
  y: bBox.y + bBox.height / 2
@@ -558,7 +560,9 @@ if (seriesTypes.arearange) {
558
560
  resize: true,
559
561
  resizeSide: 'top',
560
562
  handlePositioner: function (point) {
561
- var bBox = point.upperGraphic && point.upperGraphic.getBBox();
563
+ var bBox = (point.graphics &&
564
+ point.graphics[1] &&
565
+ point.graphics[1].getBBox());
562
566
  return bBox ? {
563
567
  x: bBox.x + bBox.width / 2,
564
568
  y: bBox.y + bBox.height / 2
@@ -16,11 +16,9 @@ import Axis from '../Core/Axis/Axis.js';
16
16
  import Chart from '../Core/Chart/Chart.js';
17
17
  import Color from '../Core/Color/Color.js';
18
18
  import ColumnSeries from '../Series/Column/ColumnSeries.js';
19
- import F from '../Core/FormatUtilities.js';
20
- var format = F.format;
21
19
  import H from '../Core/Globals.js';
22
20
  var noop = H.noop;
23
- import D from '../Core/DefaultOptions.js';
21
+ import D from '../Core/Defaults.js';
24
22
  var defaultOptions = D.defaultOptions;
25
23
  import Point from '../Core/Series/Point.js';
26
24
  import Series from '../Core/Series/Series.js';
@@ -281,12 +279,12 @@ defaultOptions.drilldown = {
281
279
  * object. See
282
280
  * [the easing demo](https://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/plotoptions/series-animation-easing/).
283
281
  *
284
- * @type {boolean|Partial<Highcharts.AnimationOptionsObject>}
282
+ * @type {boolean|Highcharts.AnimationOptionsObject}
285
283
  * @since 3.0.8
286
284
  * @product highcharts highmaps
287
285
  */
288
286
  animation: {
289
- /** @internal */
287
+ /** @ignore-option */
290
288
  duration: 500
291
289
  },
292
290
  /**
@@ -26,7 +26,7 @@ import AST from '../../Core/Renderer/HTML/AST.js';
26
26
  import ExportDataDefaults from './ExportDataDefaults.js';
27
27
  import H from '../../Core/Globals.js';
28
28
  var doc = H.doc, win = H.win;
29
- import D from '../../Core/DefaultOptions.js';
29
+ import D from '../../Core/Defaults.js';
30
30
  var getOptions = D.getOptions, setOptions = D.setOptions;
31
31
  import DownloadURL from '../DownloadURL.js';
32
32
  var downloadURL = DownloadURL.downloadURL;
@@ -262,7 +262,8 @@ function chartGetDataRows(multiLevelHeaders) {
262
262
  chart: series.chart,
263
263
  autoIncrement: series.autoIncrement,
264
264
  options: series.options,
265
- pointArrayMap: series.pointArrayMap
265
+ pointArrayMap: series.pointArrayMap,
266
+ index: series.index
266
267
  };
267
268
  // Export directly from options.data because we need the uncropped
268
269
  // data (#7913), and we need to support Boost (#7026).
@@ -276,6 +277,20 @@ function chartGetDataRows(multiLevelHeaders) {
276
277
  }
277
278
  series.pointClass.prototype.applyOptions.apply(mockPoint, [options]);
278
279
  key = mockPoint.x;
280
+ if (defined(rows[key]) &&
281
+ rows[key].seriesIndices.includes(mockSeries.index)) {
282
+ // find keys, which belong to actual series
283
+ var keysFromActualSeries = Object.keys(rows).filter(function (i) {
284
+ return rows[i].seriesIndices.includes(mockSeries.index) &&
285
+ key;
286
+ }),
287
+ // find all properties, which start with actual key
288
+ existingKeys = keysFromActualSeries
289
+ .filter(function (propertyName) {
290
+ return propertyName.indexOf(String(key)) === 0;
291
+ });
292
+ key = key.toString() + ',' + existingKeys.length;
293
+ }
279
294
  var name = series.data[pIdx] && series.data[pIdx].name;
280
295
  j = 0;
281
296
  // Pies, funnels, geo maps etc. use point name in X row
@@ -299,6 +314,12 @@ function chartGetDataRows(multiLevelHeaders) {
299
314
  rows[key].x = mockPoint.x;
300
315
  rows[key].name = name;
301
316
  rows[key].xValues[xAxisIndex] = mockPoint.x;
317
+ if (!defined(rows[key].seriesIndices)) {
318
+ rows[key].seriesIndices = [];
319
+ }
320
+ rows[key].seriesIndices = __spreadArray(__spreadArray([], rows[key].seriesIndices, true), [
321
+ mockSeries.index
322
+ ], false);
302
323
  while (j < valueCount) {
303
324
  prop = pointArrayMap[j]; // y, z etc
304
325
  val = mockPoint[prop];
@@ -609,7 +630,8 @@ function chartHideData() {
609
630
  function chartToggleDataTable(show) {
610
631
  show = pick(show, !this.isDataTableVisible);
611
632
  // Create the div
612
- if (show && !this.dataTableDiv) {
633
+ var createContainer = show && !this.dataTableDiv;
634
+ if (createContainer) {
613
635
  this.dataTableDiv = doc.createElement('div');
614
636
  this.dataTableDiv.className = 'highcharts-data-table';
615
637
  // Insert after the chart container
@@ -617,13 +639,17 @@ function chartToggleDataTable(show) {
617
639
  }
618
640
  // Toggle the visibility
619
641
  if (this.dataTableDiv) {
620
- this.dataTableDiv.style.display = show ? 'block' : 'none';
642
+ var style = this.dataTableDiv.style, oldDisplay = style.display;
643
+ style.display = show ? 'block' : 'none';
621
644
  // Generate the data table
622
645
  if (show) {
623
646
  this.dataTableDiv.innerHTML = AST.emptyHTML;
624
647
  var ast = new AST([this.getTableAST()]);
625
648
  ast.addToDOM(this.dataTableDiv);
626
- fireEvent(this, 'afterViewData', this.dataTableDiv);
649
+ fireEvent(this, 'afterViewData', {
650
+ element: this.dataTableDiv,
651
+ wasHidden: createContainer || oldDisplay !== style.display
652
+ });
627
653
  }
628
654
  }
629
655
  // Set the flag