highcharts 9.2.2 → 9.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (747) hide show
  1. package/README.md +13 -6
  2. package/bower.json +1 -1
  3. package/css/annotations/popup.css +48 -8
  4. package/css/annotations/popup.scss +70 -22
  5. package/css/highcharts.css +45 -0
  6. package/css/highcharts.scss +40 -0
  7. package/css/themes/dark-unica.css +45 -0
  8. package/css/themes/grid-light.css +45 -0
  9. package/css/themes/sand-signika.css +45 -0
  10. package/es-modules/Accessibility/A11yI18n.js +273 -224
  11. package/es-modules/Accessibility/Accessibility.js +233 -128
  12. package/es-modules/Accessibility/AccessibilityComponent.js +79 -314
  13. package/es-modules/Accessibility/Components/AnnotationsA11y.js +10 -0
  14. package/es-modules/Accessibility/Components/ContainerComponent.js +52 -27
  15. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +46 -23
  16. package/es-modules/Accessibility/Components/LegendComponent.js +97 -65
  17. package/es-modules/Accessibility/Components/MenuComponent.js +59 -40
  18. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +5 -8
  19. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +152 -115
  20. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +133 -68
  21. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +64 -27
  22. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +38 -21
  23. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +380 -325
  24. package/es-modules/Accessibility/Components/ZoomComponent.js +28 -20
  25. package/es-modules/Accessibility/FocusBorder.js +192 -147
  26. package/es-modules/Accessibility/HighContrastMode.js +78 -66
  27. package/es-modules/Accessibility/HighContrastTheme.js +10 -0
  28. package/es-modules/Accessibility/KeyboardNavigation.js +144 -70
  29. package/es-modules/Accessibility/KeyboardNavigationHandler.js +71 -44
  30. package/es-modules/Accessibility/Options/DeprecatedOptions.js +11 -1
  31. package/es-modules/Accessibility/Options/LangOptions.js +1 -2
  32. package/es-modules/Accessibility/Options/Options.js +32 -17
  33. package/es-modules/Accessibility/ProxyElement.js +212 -0
  34. package/es-modules/Accessibility/ProxyProvider.js +305 -0
  35. package/es-modules/Accessibility/Utils/Announcer.js +15 -8
  36. package/es-modules/Accessibility/Utils/ChartUtilities.js +41 -16
  37. package/es-modules/Accessibility/Utils/DOMElementProvider.js +27 -15
  38. package/es-modules/Accessibility/Utils/EventProvider.js +27 -17
  39. package/es-modules/Accessibility/Utils/HTMLUtilities.js +125 -30
  40. package/es-modules/Core/Axis/Axis.js +37 -30
  41. package/es-modules/Core/Axis/AxisDefaults.js +35 -24
  42. package/es-modules/Core/Axis/Color/ColorAxisComposition.js +54 -4
  43. package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +5 -5
  44. package/es-modules/Core/Axis/OrdinalAxis.js +8 -12
  45. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +4 -5
  46. package/es-modules/Core/Axis/ScrollbarAxis.js +10 -3
  47. package/es-modules/Core/Axis/TreeGridAxis.js +2 -2
  48. package/es-modules/Core/Axis/TreeGridTick.js +1 -2
  49. package/es-modules/Core/Chart/Chart.js +2 -3
  50. package/es-modules/Core/Chart/ChartDefaults.js +3 -4
  51. package/es-modules/Core/Chart/ChartNavigationComposition.js +92 -0
  52. package/es-modules/Core/Chart/MapChart.js +10 -22
  53. package/es-modules/Core/Chart/StockChart.js +3 -293
  54. package/es-modules/Core/Color/Palettes.js +22 -0
  55. package/es-modules/Core/DefaultOptions.js +19 -17
  56. package/es-modules/Core/Foundation.js +39 -31
  57. package/es-modules/Core/Globals.js +1 -1
  58. package/es-modules/Core/HttpUtilities.js +3 -3
  59. package/es-modules/Core/Legend/Legend.js +7 -3
  60. package/es-modules/Core/Navigator.js +7 -8
  61. package/es-modules/Core/Pointer.js +39 -36
  62. package/es-modules/Core/Renderer/HTML/AST.js +2 -0
  63. package/es-modules/Core/Renderer/HTML/HTMLElement.js +23 -18
  64. package/es-modules/Core/Renderer/SVG/SVGElement.js +3 -4
  65. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +21 -18
  66. package/es-modules/Core/Renderer/SVG/TextBuilder.js +3 -3
  67. package/es-modules/Core/ScrollbarDefaults.js +10 -9
  68. package/es-modules/Core/Series/DataLabel.js +2 -3
  69. package/es-modules/Core/Series/Point.js +5 -3
  70. package/es-modules/Core/Series/Series.js +153 -162
  71. package/es-modules/Core/Series/SeriesDefaults.js +3 -4
  72. package/es-modules/Core/Series/SeriesRegistry.js +1 -2
  73. package/es-modules/Core/Tooltip.js +44 -17
  74. package/es-modules/Core/Utilities.js +15 -7
  75. package/es-modules/Data/DataConverter.js +489 -0
  76. package/es-modules/Data/DataPromise.js +252 -0
  77. package/es-modules/Data/DataSeriesConverter.js +203 -0
  78. package/es-modules/Data/DataTable.js +1204 -0
  79. package/es-modules/Data/Modifiers/ChainModifier.js +299 -0
  80. package/es-modules/Data/Modifiers/DataModifier.js +303 -0
  81. package/es-modules/Data/Modifiers/GroupModifier.js +144 -0
  82. package/es-modules/Data/Modifiers/InvertModifier.js +254 -0
  83. package/es-modules/Data/Modifiers/RangeModifier.js +143 -0
  84. package/es-modules/Data/Modifiers/SeriesPointsModifier.js +110 -0
  85. package/es-modules/Data/Modifiers/SortModifier.js +249 -0
  86. package/es-modules/Data/Parsers/CSVParser.js +399 -0
  87. package/es-modules/Data/Parsers/DataParser.js +101 -0
  88. package/es-modules/Data/Parsers/GoogleSheetsParser.js +220 -0
  89. package/es-modules/Data/Parsers/HTMLTableParser.js +213 -0
  90. package/es-modules/Data/Stores/CSVStore.js +317 -0
  91. package/es-modules/Data/Stores/DataStore.js +276 -0
  92. package/es-modules/Data/Stores/GoogleSheetsStore.js +167 -0
  93. package/es-modules/Data/Stores/HTMLTableStore.js +351 -0
  94. package/es-modules/Extensions/Annotations/Annotations.js +61 -11
  95. package/es-modules/Extensions/Annotations/ControlPoint.js +1 -1
  96. package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +199 -0
  97. package/es-modules/Extensions/Annotations/Mixins/ControllableMixin.js +7 -1
  98. package/es-modules/Extensions/Annotations/NavigationBindings.js +68 -19
  99. package/es-modules/Extensions/Annotations/Popup.js +479 -141
  100. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +51 -2
  101. package/es-modules/Extensions/Annotations/Types/CrookedLine.js +1 -1
  102. package/es-modules/Extensions/Annotations/Types/Fibonacci.js +2 -3
  103. package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +219 -0
  104. package/es-modules/Extensions/Annotations/Types/InfinityLine.js +1 -1
  105. package/es-modules/Extensions/Annotations/Types/Measure.js +14 -8
  106. package/es-modules/Extensions/Annotations/Types/Pitchfork.js +5 -5
  107. package/es-modules/Extensions/Annotations/Types/TimeCycles.js +207 -0
  108. package/es-modules/Extensions/Annotations/Types/Tunnel.js +3 -5
  109. package/es-modules/Extensions/Annotations/Types/VerticalLine.js +1 -1
  110. package/es-modules/Extensions/Boost/BoostOverrides.js +3 -1
  111. package/es-modules/Extensions/Boost/WGLShader.js +4 -3
  112. package/es-modules/Extensions/BoostCanvas.js +1 -2
  113. package/es-modules/Extensions/CurrentDateIndication.js +2 -3
  114. package/es-modules/Extensions/DataGrouping.js +31 -18
  115. package/es-modules/Extensions/DownloadURL.js +2 -2
  116. package/es-modules/Extensions/DragPanes.js +1 -2
  117. package/es-modules/Extensions/Drilldown.js +2 -3
  118. package/es-modules/Extensions/Exporting/Exporting.js +8 -7
  119. package/es-modules/Extensions/Exporting/ExportingDefaults.js +8 -15
  120. package/es-modules/Extensions/GeoJSON.js +39 -63
  121. package/es-modules/Extensions/MarkerClusters.js +115 -97
  122. package/es-modules/Extensions/NoDataToDisplay.js +1 -2
  123. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +9 -8
  124. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  125. package/es-modules/Extensions/Oldie/Oldie.js +2 -3
  126. package/es-modules/Extensions/Pane.js +5 -6
  127. package/es-modules/Extensions/RangeSelector.js +3 -4
  128. package/es-modules/Extensions/Sonification/ChartSonify.js +247 -637
  129. package/es-modules/Extensions/Sonification/Earcon.js +136 -102
  130. package/es-modules/Extensions/Sonification/Instrument.js +496 -426
  131. package/es-modules/Extensions/Sonification/MusicalFrequencies.js +10 -0
  132. package/es-modules/Extensions/Sonification/Options.js +10 -0
  133. package/es-modules/Extensions/Sonification/PointSonify.js +203 -152
  134. package/es-modules/Extensions/Sonification/SeriesSonify.js +459 -0
  135. package/es-modules/Extensions/Sonification/SignalHandler.js +124 -0
  136. package/es-modules/Extensions/Sonification/Sonification.js +26 -52
  137. package/es-modules/Extensions/Sonification/{Utilities.js → SonificationUtilities.js} +62 -84
  138. package/es-modules/Extensions/Sonification/Timeline.js +255 -567
  139. package/es-modules/Extensions/Sonification/TimelineEvent.js +158 -0
  140. package/es-modules/Extensions/Sonification/TimelinePath.js +311 -0
  141. package/es-modules/Maps/MapNavigation.js +27 -64
  142. package/es-modules/Maps/MapNavigationOptionsDefault.js +3 -0
  143. package/es-modules/Maps/MapPointer.js +7 -5
  144. package/es-modules/Maps/MapView.js +450 -0
  145. package/es-modules/Maps/MapViewOptionsDefault.js +95 -0
  146. package/es-modules/Maps/Projection.js +433 -0
  147. package/es-modules/Maps/ProjectionDefinition.js +9 -0
  148. package/es-modules/Maps/Projections/EqualEarth.js +42 -0
  149. package/es-modules/Maps/Projections/Miller.js +17 -0
  150. package/es-modules/Maps/Projections/Orthographic.js +26 -0
  151. package/es-modules/Maps/Projections/ProjectionRegistry.js +17 -0
  152. package/es-modules/Maps/Projections/WebMercator.js +25 -0
  153. package/es-modules/Series/AreaRange/AreaRangeSeries.js +4 -5
  154. package/es-modules/Series/Bellcurve/BellcurveSeries.js +2 -8
  155. package/es-modules/Series/BoxPlot/BoxPlotSeries.js +1 -2
  156. package/es-modules/Series/Bubble/BubbleLegendDefaults.js +1 -2
  157. package/es-modules/Series/Bubble/BubbleLegendItem.js +3 -3
  158. package/es-modules/Series/Bubble/BubblePoint.js +5 -0
  159. package/es-modules/Series/Bubble/BubbleSeries.js +90 -50
  160. package/es-modules/Series/Candlestick/CandlestickSeries.js +10 -18
  161. package/es-modules/{Mixins/CenteredSeries.js → Series/CenteredUtilities.js} +45 -23
  162. package/es-modules/Series/ColorMapComposition.js +109 -0
  163. package/es-modules/Series/Column/ColumnDataLabel.js +5 -5
  164. package/es-modules/Series/Column/ColumnSeries.js +3 -4
  165. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +6 -6
  166. package/es-modules/Series/DataModifyComposition.js +539 -0
  167. package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +2 -6
  168. package/es-modules/Series/DerivedComposition.js +137 -0
  169. package/es-modules/Series/DrawPointComposition.js +111 -0
  170. package/es-modules/Series/Dumbbell/DumbbellSeries.js +2 -3
  171. package/es-modules/Series/ErrorBar/ErrorBarSeries.js +1 -2
  172. package/es-modules/Series/Flags/FlagsSeries.js +18 -25
  173. package/es-modules/Series/Funnel/FunnelSeries.js +6 -5
  174. package/es-modules/Series/Gantt/GanttSeries.js +0 -2
  175. package/es-modules/Series/Gauge/GaugePoint.js +1 -1
  176. package/es-modules/Series/Gauge/GaugeSeries.js +7 -7
  177. package/es-modules/Series/HLC/HLCPoint.js +55 -0
  178. package/es-modules/Series/HLC/HLCSeries.js +383 -0
  179. package/es-modules/Series/Heatmap/HeatmapPoint.js +3 -4
  180. package/es-modules/Series/Heatmap/HeatmapSeries.js +19 -6
  181. package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +2 -3
  182. package/es-modules/Series/Histogram/HistogramSeries.js +3 -7
  183. package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +9 -10
  184. package/es-modules/Series/Line/LineSeries.js +1 -2
  185. package/es-modules/Series/Map/MapPoint.js +23 -16
  186. package/es-modules/Series/Map/MapSeries.js +268 -309
  187. package/es-modules/Series/MapBubble/MapBubblePoint.js +0 -3
  188. package/es-modules/Series/MapBubble/MapBubbleSeries.js +10 -1
  189. package/es-modules/Series/MapPoint/MapPointPoint.js +5 -1
  190. package/es-modules/Series/MapPoint/MapPointSeries.js +87 -4
  191. package/es-modules/Series/Networkgraph/Networkgraph.js +5 -5
  192. package/es-modules/{Mixins/Nodes.js → Series/NodesComposition.js} +76 -29
  193. package/es-modules/Series/OHLC/OHLCPoint.js +2 -6
  194. package/es-modules/Series/OHLC/OHLCSeries.js +55 -183
  195. package/es-modules/{Mixins/OnSeries.js → Series/OnSeriesComposition.js} +53 -21
  196. package/es-modules/Series/Organization/OrganizationSeries.js +2 -3
  197. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +46 -6
  198. package/es-modules/Series/ParetoSeries/ParetoSeries.js +3 -7
  199. package/es-modules/Series/Pie/PieDataLabel.js +1 -2
  200. package/es-modules/Series/Pie/PieSeries.js +6 -7
  201. package/es-modules/Series/Sankey/SankeyPoint.js +0 -4
  202. package/es-modules/Series/Sankey/SankeySeries.js +89 -20
  203. package/es-modules/Series/Sunburst/SunburstPoint.js +2 -3
  204. package/es-modules/Series/Sunburst/SunburstSeries.js +4 -4
  205. package/es-modules/Series/Tilemap/TilemapPoint.js +2 -3
  206. package/es-modules/Series/Timeline/TimelineSeries.js +3 -4
  207. package/es-modules/{Mixins/TreeSeries.js → Series/TreeUtilities.js} +86 -76
  208. package/es-modules/Series/Treemap/TreemapPoint.js +2 -2
  209. package/es-modules/Series/Treemap/TreemapSeries.js +8 -8
  210. package/es-modules/Series/Venn/VennPoint.js +16 -7
  211. package/es-modules/Series/Venn/VennSeries.js +5 -8
  212. package/es-modules/Series/Venn/VennUtils.js +550 -439
  213. package/es-modules/Series/Waterfall/WaterfallSeries.js +2 -3
  214. package/es-modules/Series/Windbarb/WindbarbSeries.js +23 -24
  215. package/es-modules/Series/Wordcloud/WordcloudPoint.js +8 -6
  216. package/es-modules/Series/Wordcloud/WordcloudSeries.js +24 -20
  217. package/es-modules/Series/Wordcloud/WordcloudUtils.js +673 -484
  218. package/es-modules/Series/XRange/XRangePoint.js +1 -0
  219. package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +3 -6
  220. package/es-modules/Stock/Indicators/AO/AOIndicator.js +2 -3
  221. package/es-modules/Stock/Indicators/APO/APOIndicator.js +14 -20
  222. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +3 -6
  223. package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +11 -13
  224. package/es-modules/Stock/Indicators/ArrayUtilities.js +47 -0
  225. package/es-modules/Stock/Indicators/BB/BBIndicator.js +27 -11
  226. package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +6 -12
  227. package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +1 -11
  228. package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +19 -11
  229. package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +17 -11
  230. package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +1 -3
  231. package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +11 -9
  232. package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +8 -16
  233. package/es-modules/Stock/Indicators/LinearRegression/LinearRegression.js +2 -2
  234. package/es-modules/Stock/Indicators/LinearRegressionAngle/LinearRegressionAngle.js +2 -2
  235. package/es-modules/Stock/Indicators/LinearRegressionIntercept/LinearRegressionIntercept.js +2 -2
  236. package/es-modules/Stock/Indicators/LinearRegressionSlopes/LinearRegressionSlopes.js +2 -2
  237. package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +1 -2
  238. package/es-modules/{Mixins/MultipleLines.js → Stock/Indicators/MultipleLinesComposition.js} +136 -87
  239. package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +1 -3
  240. package/es-modules/Stock/Indicators/PC/PCIndicator.js +14 -13
  241. package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +1 -11
  242. package/es-modules/Stock/Indicators/SMA/SMAComposition.js +0 -26
  243. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +9 -32
  244. package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +0 -8
  245. package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +15 -8
  246. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +4 -6
  247. package/es-modules/Stock/Indicators/TEMA/TEMAIndicator.js +26 -11
  248. package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +6 -12
  249. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +20 -3
  250. package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +2 -3
  251. package/es-modules/Stock/StockToolsBindings.js +144 -42
  252. package/es-modules/Stock/StockToolsGui.js +405 -11
  253. package/es-modules/masters/highcharts-3d.src.js +1 -1
  254. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  255. package/es-modules/masters/highcharts-more.src.js +1 -1
  256. package/es-modules/masters/highcharts.src.js +1 -1
  257. package/es-modules/masters/highmaps.src.js +1 -1
  258. package/es-modules/masters/highstock.src.js +1 -1
  259. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  260. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  261. package/es-modules/masters/indicators/ao.src.js +1 -1
  262. package/es-modules/masters/indicators/apo.src.js +1 -1
  263. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  264. package/es-modules/masters/indicators/aroon.src.js +1 -1
  265. package/es-modules/masters/indicators/atr.src.js +1 -1
  266. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  267. package/es-modules/masters/indicators/cci.src.js +1 -1
  268. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  269. package/es-modules/masters/indicators/cmf.src.js +1 -1
  270. package/es-modules/masters/indicators/cmo.src.js +1 -1
  271. package/es-modules/masters/indicators/dema.src.js +1 -1
  272. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  273. package/es-modules/masters/indicators/dmi.src.js +1 -1
  274. package/es-modules/masters/indicators/dpo.src.js +1 -1
  275. package/es-modules/masters/indicators/ema.src.js +4 -10
  276. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  277. package/es-modules/masters/indicators/indicators-all.src.js +2 -2
  278. package/es-modules/masters/indicators/indicators.src.js +2 -1
  279. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  280. package/es-modules/masters/indicators/klinger.src.js +1 -1
  281. package/es-modules/masters/indicators/macd.src.js +1 -1
  282. package/es-modules/masters/indicators/mfi.src.js +1 -1
  283. package/es-modules/masters/indicators/momentum.src.js +1 -1
  284. package/es-modules/masters/indicators/natr.src.js +1 -1
  285. package/es-modules/masters/indicators/obv.src.js +1 -1
  286. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  287. package/es-modules/masters/indicators/ppo.src.js +1 -1
  288. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  289. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  290. package/es-modules/masters/indicators/psar.src.js +1 -1
  291. package/es-modules/masters/indicators/regressions.src.js +1 -1
  292. package/es-modules/masters/indicators/roc.src.js +1 -1
  293. package/es-modules/masters/indicators/rsi.src.js +1 -1
  294. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  295. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  296. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  297. package/es-modules/masters/indicators/tema.src.js +1 -1
  298. package/es-modules/masters/indicators/trendline.src.js +1 -1
  299. package/es-modules/masters/indicators/trix.src.js +1 -1
  300. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  301. package/es-modules/masters/indicators/vwap.src.js +1 -1
  302. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  303. package/es-modules/masters/indicators/wma.src.js +1 -1
  304. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  305. package/es-modules/masters/modules/accessibility.src.js +16 -2
  306. package/es-modules/masters/modules/annotations-advanced.src.js +3 -1
  307. package/es-modules/masters/modules/annotations.src.js +1 -1
  308. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  309. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  310. package/es-modules/masters/modules/boost.src.js +1 -1
  311. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  312. package/es-modules/masters/modules/bullet.src.js +1 -1
  313. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  314. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  315. package/es-modules/masters/modules/cylinder.src.js +1 -1
  316. package/es-modules/masters/modules/data.src.js +6 -3
  317. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  318. package/es-modules/masters/modules/debugger.src.js +1 -1
  319. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  320. package/es-modules/masters/modules/dotplot.src.js +1 -1
  321. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  322. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  323. package/es-modules/masters/modules/drilldown.src.js +1 -1
  324. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  325. package/es-modules/masters/modules/export-data.src.js +1 -1
  326. package/es-modules/masters/modules/exporting.src.js +1 -1
  327. package/es-modules/masters/modules/full-screen.src.js +1 -1
  328. package/es-modules/masters/modules/funnel.src.js +1 -1
  329. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  330. package/es-modules/masters/modules/gantt.src.js +1 -1
  331. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  332. package/es-modules/masters/modules/heatmap.src.js +1 -2
  333. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  334. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  335. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  336. package/es-modules/masters/modules/item-series.src.js +1 -1
  337. package/es-modules/masters/modules/lollipop.src.js +1 -1
  338. package/es-modules/masters/modules/map.src.js +1 -3
  339. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  340. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  341. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  342. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  343. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  344. package/es-modules/masters/modules/oldie.src.js +1 -1
  345. package/es-modules/masters/modules/organization.src.js +1 -1
  346. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  347. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  348. package/es-modules/masters/modules/pareto.src.js +1 -1
  349. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  350. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  351. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  352. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  353. package/es-modules/masters/modules/sankey.src.js +1 -1
  354. package/es-modules/masters/modules/series-label.src.js +1 -1
  355. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  356. package/es-modules/masters/modules/sonification.src.js +33 -2
  357. package/es-modules/masters/modules/static-scale.src.js +1 -1
  358. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  359. package/es-modules/masters/modules/stock.src.js +4 -1
  360. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  361. package/es-modules/masters/modules/sunburst.src.js +1 -1
  362. package/es-modules/masters/modules/tilemap.src.js +1 -1
  363. package/es-modules/masters/modules/timeline.src.js +1 -1
  364. package/es-modules/masters/modules/treegrid.src.js +1 -1
  365. package/es-modules/masters/modules/treemap.src.js +1 -1
  366. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  367. package/es-modules/masters/modules/variwide.src.js +1 -1
  368. package/es-modules/masters/modules/vector.src.js +1 -1
  369. package/es-modules/masters/modules/venn.src.js +1 -1
  370. package/es-modules/masters/modules/windbarb.src.js +1 -1
  371. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  372. package/es-modules/masters/modules/xrange.src.js +1 -1
  373. package/es-modules/masters/themes/avocado.src.js +1 -1
  374. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  375. package/es-modules/masters/themes/dark-green.src.js +1 -1
  376. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  377. package/es-modules/masters/themes/gray.src.js +1 -1
  378. package/es-modules/masters/themes/grid-light.src.js +1 -1
  379. package/es-modules/masters/themes/grid.src.js +1 -1
  380. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  381. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  382. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  383. package/es-modules/masters/themes/skies.src.js +1 -1
  384. package/es-modules/masters/themes/sunset.src.js +1 -1
  385. package/highcharts-3d.js +1 -1
  386. package/highcharts-3d.src.js +1 -1
  387. package/highcharts-gantt.js +801 -804
  388. package/highcharts-gantt.js.map +1 -1
  389. package/highcharts-gantt.src.js +775 -739
  390. package/highcharts-more.js +194 -193
  391. package/highcharts-more.js.map +1 -1
  392. package/highcharts-more.src.js +207 -119
  393. package/highcharts.d.ts +9670 -4217
  394. package/highcharts.js +585 -588
  395. package/highcharts.js.map +1 -1
  396. package/highcharts.src.d.ts +9670 -4217
  397. package/highcharts.src.js +608 -587
  398. package/highmaps.js +726 -708
  399. package/highmaps.js.map +1 -1
  400. package/highmaps.src.js +2708 -1587
  401. package/highstock.js +788 -783
  402. package/highstock.js.map +1 -1
  403. package/highstock.src.js +1896 -1267
  404. package/indicators/acceleration-bands.js +10 -9
  405. package/indicators/acceleration-bands.js.map +1 -1
  406. package/indicators/acceleration-bands.src.js +156 -112
  407. package/indicators/accumulation-distribution.js +1 -1
  408. package/indicators/accumulation-distribution.src.js +1 -1
  409. package/indicators/ao.js +6 -6
  410. package/indicators/ao.js.map +1 -1
  411. package/indicators/ao.src.js +4 -4
  412. package/indicators/apo.js +5 -6
  413. package/indicators/apo.js.map +1 -1
  414. package/indicators/apo.src.js +16 -84
  415. package/indicators/aroon-oscillator.js +9 -9
  416. package/indicators/aroon-oscillator.js.map +1 -1
  417. package/indicators/aroon-oscillator.src.js +160 -177
  418. package/indicators/aroon.js +9 -9
  419. package/indicators/aroon.js.map +1 -1
  420. package/indicators/aroon.src.js +156 -112
  421. package/indicators/atr.js +1 -1
  422. package/indicators/atr.src.js +1 -1
  423. package/indicators/bollinger-bands.js +10 -9
  424. package/indicators/bollinger-bands.js.map +1 -1
  425. package/indicators/bollinger-bands.src.js +180 -117
  426. package/indicators/cci.js +1 -1
  427. package/indicators/cci.src.js +1 -1
  428. package/indicators/chaikin.js +8 -9
  429. package/indicators/chaikin.js.map +1 -1
  430. package/indicators/chaikin.src.js +8 -76
  431. package/indicators/cmf.js +1 -1
  432. package/indicators/cmf.src.js +1 -1
  433. package/indicators/cmo.js +1 -1
  434. package/indicators/cmo.src.js +1 -1
  435. package/indicators/dema.js +5 -6
  436. package/indicators/dema.js.map +1 -1
  437. package/indicators/dema.src.js +3 -75
  438. package/indicators/disparity-index.js +6 -7
  439. package/indicators/disparity-index.js.map +1 -1
  440. package/indicators/disparity-index.src.js +19 -74
  441. package/indicators/dmi.js +11 -11
  442. package/indicators/dmi.js.map +1 -1
  443. package/indicators/dmi.src.js +173 -116
  444. package/indicators/dpo.js +1 -1
  445. package/indicators/dpo.src.js +1 -1
  446. package/indicators/ema.js +1 -13
  447. package/indicators/ema.js.map +1 -1
  448. package/indicators/ema.src.js +7 -188
  449. package/indicators/ichimoku-kinko-hyo.js +1 -1
  450. package/indicators/ichimoku-kinko-hyo.src.js +1 -1
  451. package/indicators/indicators-all.js +197 -203
  452. package/indicators/indicators-all.js.map +1 -1
  453. package/indicators/indicators-all.src.js +649 -720
  454. package/indicators/indicators.js +12 -12
  455. package/indicators/indicators.js.map +1 -1
  456. package/indicators/indicators.src.js +188 -124
  457. package/indicators/keltner-channels.js +10 -10
  458. package/indicators/keltner-channels.js.map +1 -1
  459. package/indicators/keltner-channels.src.js +164 -118
  460. package/indicators/klinger.js +12 -13
  461. package/indicators/klinger.js.map +1 -1
  462. package/indicators/klinger.src.js +161 -184
  463. package/indicators/macd.js +2 -2
  464. package/indicators/macd.js.map +1 -1
  465. package/indicators/macd.src.js +2 -3
  466. package/indicators/mfi.js +1 -1
  467. package/indicators/mfi.src.js +1 -1
  468. package/indicators/momentum.js +1 -1
  469. package/indicators/momentum.src.js +1 -1
  470. package/indicators/natr.js +3 -3
  471. package/indicators/natr.js.map +1 -1
  472. package/indicators/natr.src.js +2 -4
  473. package/indicators/obv.js +1 -1
  474. package/indicators/obv.src.js +1 -1
  475. package/indicators/pivot-points.js +1 -1
  476. package/indicators/pivot-points.src.js +1 -1
  477. package/indicators/ppo.js +5 -6
  478. package/indicators/ppo.js.map +1 -1
  479. package/indicators/ppo.src.js +3 -75
  480. package/indicators/price-channel.js +9 -9
  481. package/indicators/price-channel.js.map +1 -1
  482. package/indicators/price-channel.src.js +207 -168
  483. package/indicators/price-envelopes.js +1 -1
  484. package/indicators/price-envelopes.src.js +1 -1
  485. package/indicators/psar.js +1 -1
  486. package/indicators/psar.src.js +1 -1
  487. package/indicators/regressions.js +1 -1
  488. package/indicators/regressions.src.js +9 -9
  489. package/indicators/roc.js +1 -1
  490. package/indicators/roc.src.js +1 -1
  491. package/indicators/rsi.js +1 -1
  492. package/indicators/rsi.src.js +1 -1
  493. package/indicators/slow-stochastic.js +5 -6
  494. package/indicators/slow-stochastic.js.map +1 -1
  495. package/indicators/slow-stochastic.src.js +2 -72
  496. package/indicators/stochastic.js +10 -10
  497. package/indicators/stochastic.js.map +1 -1
  498. package/indicators/stochastic.src.js +209 -164
  499. package/indicators/supertrend.js +10 -10
  500. package/indicators/supertrend.js.map +1 -1
  501. package/indicators/supertrend.src.js +6 -7
  502. package/indicators/tema.js +6 -7
  503. package/indicators/tema.js.map +1 -1
  504. package/indicators/tema.src.js +28 -75
  505. package/indicators/trendline.js +1 -1
  506. package/indicators/trendline.src.js +1 -1
  507. package/indicators/trix.js +4 -5
  508. package/indicators/trix.js.map +1 -1
  509. package/indicators/trix.src.js +8 -76
  510. package/indicators/volume-by-price.js +16 -16
  511. package/indicators/volume-by-price.js.map +1 -1
  512. package/indicators/volume-by-price.src.js +21 -3
  513. package/indicators/vwap.js +1 -1
  514. package/indicators/vwap.src.js +1 -1
  515. package/indicators/williams-r.js +5 -6
  516. package/indicators/williams-r.js.map +1 -1
  517. package/indicators/williams-r.src.js +41 -51
  518. package/indicators/wma.js +1 -1
  519. package/indicators/wma.src.js +1 -1
  520. package/indicators/zigzag.js +1 -1
  521. package/indicators/zigzag.src.js +1 -1
  522. package/modules/accessibility.d.ts +5 -0
  523. package/modules/accessibility.js +234 -216
  524. package/modules/accessibility.js.map +1 -1
  525. package/modules/accessibility.src.d.ts +5 -0
  526. package/modules/accessibility.src.js +9709 -8608
  527. package/modules/annotations-advanced.d.ts +30 -0
  528. package/modules/annotations-advanced.js +191 -165
  529. package/modules/annotations-advanced.js.map +1 -1
  530. package/modules/annotations-advanced.src.d.ts +30 -0
  531. package/modules/annotations-advanced.src.js +1578 -320
  532. package/modules/annotations.js +121 -107
  533. package/modules/annotations.js.map +1 -1
  534. package/modules/annotations.src.js +958 -229
  535. package/modules/arrow-symbols.js +1 -1
  536. package/modules/arrow-symbols.src.js +1 -1
  537. package/modules/boost-canvas.js +15 -15
  538. package/modules/boost-canvas.js.map +1 -1
  539. package/modules/boost-canvas.src.js +3 -3
  540. package/modules/boost.js +79 -79
  541. package/modules/boost.js.map +1 -1
  542. package/modules/boost.src.js +10 -9
  543. package/modules/broken-axis.js +1 -1
  544. package/modules/broken-axis.src.js +1 -1
  545. package/modules/bullet.js +1 -1
  546. package/modules/bullet.src.js +1 -1
  547. package/modules/coloraxis.js +24 -24
  548. package/modules/coloraxis.js.map +1 -1
  549. package/modules/coloraxis.src.js +69 -98
  550. package/modules/current-date-indicator.js +4 -4
  551. package/modules/current-date-indicator.js.map +1 -1
  552. package/modules/current-date-indicator.src.js +4 -4
  553. package/modules/cylinder.js +1 -1
  554. package/modules/cylinder.src.js +1 -1
  555. package/modules/data.js +19 -19
  556. package/modules/data.js.map +1 -1
  557. package/modules/data.src.js +9 -6
  558. package/modules/datagrouping.js +20 -20
  559. package/modules/datagrouping.js.map +1 -1
  560. package/modules/datagrouping.src.js +33 -19
  561. package/modules/debugger.js +1 -1
  562. package/modules/debugger.src.js +1 -1
  563. package/modules/dependency-wheel.js +11 -11
  564. package/modules/dependency-wheel.js.map +1 -1
  565. package/modules/dependency-wheel.src.js +4 -7
  566. package/modules/dotplot.js +1 -1
  567. package/modules/dotplot.src.js +1 -1
  568. package/modules/drag-panes.js +8 -8
  569. package/modules/drag-panes.js.map +1 -1
  570. package/modules/drag-panes.src.js +3 -3
  571. package/modules/draggable-points.js +1 -1
  572. package/modules/draggable-points.src.js +1 -1
  573. package/modules/drilldown.js +24 -24
  574. package/modules/drilldown.js.map +1 -1
  575. package/modules/drilldown.src.js +4 -4
  576. package/modules/dumbbell.js +17 -17
  577. package/modules/dumbbell.js.map +1 -1
  578. package/modules/dumbbell.src.js +4 -4
  579. package/modules/export-data.js +1 -1
  580. package/modules/export-data.js.map +1 -1
  581. package/modules/export-data.src.js +3 -3
  582. package/modules/exporting.js +39 -38
  583. package/modules/exporting.js.map +1 -1
  584. package/modules/exporting.src.js +98 -67
  585. package/modules/full-screen.js +1 -1
  586. package/modules/full-screen.src.js +1 -1
  587. package/modules/funnel.js +12 -12
  588. package/modules/funnel.js.map +1 -1
  589. package/modules/funnel.src.js +9 -6
  590. package/modules/funnel3d.js +1 -1
  591. package/modules/funnel3d.src.js +1 -1
  592. package/modules/gantt.js +217 -218
  593. package/modules/gantt.js.map +1 -1
  594. package/modules/gantt.src.js +167 -152
  595. package/modules/grid-axis.js +1 -1
  596. package/modules/grid-axis.src.js +1 -1
  597. package/modules/heatmap.js +39 -39
  598. package/modules/heatmap.js.map +1 -1
  599. package/modules/heatmap.src.js +177 -162
  600. package/modules/heikinashi.js +1 -1
  601. package/modules/heikinashi.src.js +4 -4
  602. package/modules/histogram-bellcurve.js +13 -13
  603. package/modules/histogram-bellcurve.js.map +1 -1
  604. package/modules/histogram-bellcurve.src.js +91 -86
  605. package/modules/hollowcandlestick.js +9 -9
  606. package/modules/hollowcandlestick.js.map +1 -1
  607. package/modules/hollowcandlestick.src.js +11 -11
  608. package/modules/item-series.js +1 -1
  609. package/modules/item-series.src.js +1 -1
  610. package/modules/lollipop.js +1 -1
  611. package/modules/lollipop.src.js +1 -1
  612. package/modules/map.d.ts +136 -14
  613. package/modules/map.js +142 -122
  614. package/modules/map.js.map +1 -1
  615. package/modules/map.src.d.ts +136 -14
  616. package/modules/map.src.js +2129 -1029
  617. package/modules/marker-clusters.js +36 -36
  618. package/modules/marker-clusters.js.map +1 -1
  619. package/modules/marker-clusters.src.js +173 -142
  620. package/modules/networkgraph.d.ts +12 -1
  621. package/modules/networkgraph.js +49 -49
  622. package/modules/networkgraph.js.map +1 -1
  623. package/modules/networkgraph.src.d.ts +12 -1
  624. package/modules/networkgraph.src.js +91 -43
  625. package/modules/no-data-to-display.js +5 -5
  626. package/modules/no-data-to-display.js.map +1 -1
  627. package/modules/no-data-to-display.src.js +3 -3
  628. package/modules/offline-exporting.js +17 -17
  629. package/modules/offline-exporting.js.map +1 -1
  630. package/modules/offline-exporting.src.js +13 -13
  631. package/modules/oldie-polyfills.js +1 -1
  632. package/modules/oldie-polyfills.src.js +1 -1
  633. package/modules/oldie.js +26 -26
  634. package/modules/oldie.js.map +1 -1
  635. package/modules/oldie.src.js +4 -4
  636. package/modules/organization.js +13 -13
  637. package/modules/organization.js.map +1 -1
  638. package/modules/organization.src.js +4 -4
  639. package/modules/overlapping-datalabels.js +1 -1
  640. package/modules/overlapping-datalabels.src.js +1 -1
  641. package/modules/parallel-coordinates.js +1 -1
  642. package/modules/parallel-coordinates.src.js +1 -1
  643. package/modules/pareto.js +7 -7
  644. package/modules/pareto.js.map +1 -1
  645. package/modules/pareto.src.js +89 -78
  646. package/modules/pathfinder.js +1 -1
  647. package/modules/pathfinder.src.js +1 -1
  648. package/modules/pattern-fill.js +1 -1
  649. package/modules/pattern-fill.src.js +1 -1
  650. package/modules/price-indicator.js +1 -1
  651. package/modules/price-indicator.src.js +1 -1
  652. package/modules/pyramid3d.js +1 -1
  653. package/modules/pyramid3d.src.js +1 -1
  654. package/modules/sankey.d.ts +12 -1
  655. package/modules/sankey.js +29 -29
  656. package/modules/sankey.js.map +1 -1
  657. package/modules/sankey.src.d.ts +12 -1
  658. package/modules/sankey.src.js +300 -176
  659. package/modules/series-label.js +1 -1
  660. package/modules/series-label.src.js +1 -1
  661. package/modules/solid-gauge.js +1 -1
  662. package/modules/solid-gauge.src.js +1 -1
  663. package/modules/sonification.js +59 -55
  664. package/modules/sonification.js.map +1 -1
  665. package/modules/sonification.src.js +3034 -2553
  666. package/modules/static-scale.js +1 -1
  667. package/modules/static-scale.src.js +1 -1
  668. package/modules/stock-tools.js +177 -164
  669. package/modules/stock-tools.js.map +1 -1
  670. package/modules/stock-tools.src.js +1001 -131
  671. package/modules/stock.d.ts +39 -6
  672. package/modules/stock.js +204 -196
  673. package/modules/stock.js.map +1 -1
  674. package/modules/stock.src.d.ts +39 -6
  675. package/modules/stock.src.js +1689 -1081
  676. package/modules/streamgraph.js +1 -1
  677. package/modules/streamgraph.src.js +1 -1
  678. package/modules/sunburst.js +61 -60
  679. package/modules/sunburst.js.map +1 -1
  680. package/modules/sunburst.src.js +329 -266
  681. package/modules/tilemap.js +17 -17
  682. package/modules/tilemap.js.map +1 -1
  683. package/modules/tilemap.src.js +3 -4
  684. package/modules/timeline.js +18 -18
  685. package/modules/timeline.js.map +1 -1
  686. package/modules/timeline.src.js +5 -5
  687. package/modules/treegrid.js +56 -57
  688. package/modules/treegrid.js.map +1 -1
  689. package/modules/treegrid.src.js +126 -120
  690. package/modules/treemap.js +41 -41
  691. package/modules/treemap.js.map +1 -1
  692. package/modules/treemap.src.js +319 -254
  693. package/modules/variable-pie.js +1 -1
  694. package/modules/variable-pie.src.js +1 -1
  695. package/modules/variwide.js +1 -1
  696. package/modules/variwide.src.js +1 -1
  697. package/modules/vector.js +1 -1
  698. package/modules/vector.src.js +1 -1
  699. package/modules/venn.js +31 -31
  700. package/modules/venn.js.map +1 -1
  701. package/modules/venn.src.js +731 -721
  702. package/modules/windbarb.js +15 -15
  703. package/modules/windbarb.js.map +1 -1
  704. package/modules/windbarb.src.js +90 -62
  705. package/modules/wordcloud.js +23 -24
  706. package/modules/wordcloud.js.map +1 -1
  707. package/modules/wordcloud.src.js +897 -949
  708. package/modules/xrange.js +2 -2
  709. package/modules/xrange.js.map +1 -1
  710. package/modules/xrange.src.js +2 -1
  711. package/package.json +1 -1
  712. package/themes/avocado.js +1 -1
  713. package/themes/avocado.src.js +1 -1
  714. package/themes/dark-blue.js +1 -1
  715. package/themes/dark-blue.src.js +1 -1
  716. package/themes/dark-green.js +1 -1
  717. package/themes/dark-green.src.js +1 -1
  718. package/themes/dark-unica.js +1 -1
  719. package/themes/dark-unica.src.js +1 -1
  720. package/themes/gray.js +1 -1
  721. package/themes/gray.src.js +1 -1
  722. package/themes/grid-light.js +1 -1
  723. package/themes/grid-light.src.js +1 -1
  724. package/themes/grid.js +1 -1
  725. package/themes/grid.src.js +1 -1
  726. package/themes/high-contrast-dark.js +1 -1
  727. package/themes/high-contrast-dark.src.js +1 -1
  728. package/themes/high-contrast-light.js +1 -1
  729. package/themes/high-contrast-light.src.js +1 -1
  730. package/themes/sand-signika.js +1 -1
  731. package/themes/sand-signika.src.js +1 -1
  732. package/themes/skies.js +1 -1
  733. package/themes/skies.src.js +1 -1
  734. package/themes/sunset.js +1 -1
  735. package/themes/sunset.src.js +1 -1
  736. package/es-modules/Core/Axis/MapAxis.js +0 -157
  737. package/es-modules/Core/Color/Palette.js +0 -82
  738. package/es-modules/Extensions/Sonification/InstrumentDefinitions.js +0 -32
  739. package/es-modules/Mixins/ColorMapSeries.js +0 -82
  740. package/es-modules/Mixins/ColorSeries.js +0 -77
  741. package/es-modules/Mixins/DerivedSeries.js +0 -118
  742. package/es-modules/Mixins/DrawPoint.js +0 -81
  743. package/es-modules/Mixins/IndicatorRequired.js +0 -56
  744. package/es-modules/Mixins/Navigation.js +0 -54
  745. package/es-modules/Mixins/NelderMead.js +0 -132
  746. package/es-modules/Mixins/Polygon.js +0 -259
  747. package/es-modules/Mixins/ReduceArray.js +0 -54
@@ -10,7 +10,6 @@
10
10
  *
11
11
  * */
12
12
  'use strict';
13
- import Chart from '../../../Core/Chart/Chart.js';
14
13
  import Point from '../../../Core/Series/Point.js';
15
14
  import Series from '../../../Core/Series/Series.js';
16
15
  import SeriesRegistry from '../../../Core/Series/SeriesRegistry.js';
@@ -18,24 +17,17 @@ var seriesTypes = SeriesRegistry.seriesTypes;
18
17
  import H from '../../../Core/Globals.js';
19
18
  var doc = H.doc;
20
19
  import U from '../../../Core/Utilities.js';
21
- var defined = U.defined, extend = U.extend, fireEvent = U.fireEvent;
20
+ var defined = U.defined, fireEvent = U.fireEvent;
22
21
  import KeyboardNavigationHandler from '../../KeyboardNavigationHandler.js';
23
22
  import EventProvider from '../../Utils/EventProvider.js';
24
23
  import ChartUtilities from '../../Utils/ChartUtilities.js';
25
24
  var getPointFromXY = ChartUtilities.getPointFromXY, getSeriesFromName = ChartUtilities.getSeriesFromName, scrollToPoint = ChartUtilities.scrollToPoint;
26
- import '../../../Series/Column/ColumnSeries.js';
27
- import '../../../Series/Pie/PieSeries.js';
28
- /* eslint-disable no-invalid-this, valid-jsdoc */
29
- /*
30
- * Set for which series types it makes sense to move to the closest point with
31
- * up/down arrows, and which series types should just move to next series.
32
- */
33
- Series.prototype.keyboardMoveVertical = true;
34
- ['column', 'pie'].forEach(function (type) {
35
- if (seriesTypes[type]) {
36
- seriesTypes[type].prototype.keyboardMoveVertical = false;
37
- }
38
- });
25
+ /* *
26
+ *
27
+ * Functions
28
+ *
29
+ * */
30
+ /* eslint-disable valid-jsdoc */
39
31
  /**
40
32
  * Get the index of a point in a series. This is needed when using e.g. data
41
33
  * grouping.
@@ -107,273 +99,7 @@ function isSkipPoint(point) {
107
99
  isSkipSeries(point.series);
108
100
  }
109
101
  /**
110
- * Get the point in a series that is closest (in pixel distance) to a reference
111
- * point. Optionally supply weight factors for x and y directions.
112
- *
113
- * @private
114
- * @function getClosestPoint
115
- *
116
- * @param {Highcharts.Point} point
117
- * @param {Highcharts.Series} series
118
- * @param {number} [xWeight]
119
- * @param {number} [yWeight]
120
- *
121
- * @return {Highcharts.Point|undefined}
122
- */
123
- function getClosestPoint(point, series, xWeight, yWeight) {
124
- var minDistance = Infinity, dPoint, minIx, distance, i = series.points.length;
125
- var hasUndefinedPosition = function (point) {
126
- return !(defined(point.plotX) && defined(point.plotY));
127
- };
128
- if (hasUndefinedPosition(point)) {
129
- return;
130
- }
131
- while (i--) {
132
- dPoint = series.points[i];
133
- if (hasUndefinedPosition(dPoint)) {
134
- continue;
135
- }
136
- distance = (point.plotX - dPoint.plotX) *
137
- (point.plotX - dPoint.plotX) *
138
- (xWeight || 1) +
139
- (point.plotY - dPoint.plotY) *
140
- (point.plotY - dPoint.plotY) *
141
- (yWeight || 1);
142
- if (distance < minDistance) {
143
- minDistance = distance;
144
- minIx = i;
145
- }
146
- }
147
- return defined(minIx) ? series.points[minIx] : void 0;
148
- }
149
- /**
150
- * Highlights a point (show tooltip and display hover state).
151
- *
152
- * @private
153
- * @function Highcharts.Point#highlight
154
- *
155
- * @return {Highcharts.Point}
156
- * This highlighted point.
157
- */
158
- Point.prototype.highlight = function () {
159
- var chart = this.series.chart;
160
- if (!this.isNull) {
161
- this.onMouseOver(); // Show the hover marker and tooltip
162
- }
163
- else {
164
- if (chart.tooltip) {
165
- chart.tooltip.hide(0);
166
- }
167
- // Don't call blur on the element, as it messes up the chart div's focus
168
- }
169
- scrollToPoint(this);
170
- // We focus only after calling onMouseOver because the state change can
171
- // change z-index and mess up the element.
172
- if (this.graphic) {
173
- chart.setFocusToElement(this.graphic);
174
- }
175
- chart.highlightedPoint = this;
176
- return this;
177
- };
178
- /**
179
- * Function to highlight next/previous point in chart.
180
- *
181
102
  * @private
182
- * @function Highcharts.Chart#highlightAdjacentPoint
183
- *
184
- * @param {boolean} next
185
- * Flag for the direction.
186
- *
187
- * @return {Highcharts.Point|boolean}
188
- * Returns highlighted point on success, false on failure (no adjacent
189
- * point to highlight in chosen direction).
190
- */
191
- Chart.prototype.highlightAdjacentPoint = function (next) {
192
- var chart = this, series = chart.series, curPoint = chart.highlightedPoint, curPointIndex = curPoint && getPointIndex(curPoint) || 0, curPoints = (curPoint && curPoint.series.points), lastSeries = chart.series && chart.series[chart.series.length - 1], lastPoint = lastSeries && lastSeries.points &&
193
- lastSeries.points[lastSeries.points.length - 1];
194
- var newSeries, newPoint;
195
- // If no points, return false
196
- if (!series[0] || !series[0].points) {
197
- return false;
198
- }
199
- if (!curPoint) {
200
- // No point is highlighted yet. Try first/last point depending on move
201
- // direction
202
- newPoint = next ? series[0].points[0] : lastPoint;
203
- }
204
- else {
205
- // We have a highlighted point.
206
- // Grab next/prev point & series
207
- newSeries = series[curPoint.series.index + (next ? 1 : -1)];
208
- newPoint = curPoints[curPointIndex + (next ? 1 : -1)];
209
- if (!newPoint && newSeries) {
210
- // Done with this series, try next one
211
- newPoint = newSeries.points[next ? 0 : newSeries.points.length - 1];
212
- }
213
- // If there is no adjacent point, we return false
214
- if (!newPoint) {
215
- return false;
216
- }
217
- }
218
- // Recursively skip points
219
- if (isSkipPoint(newPoint)) {
220
- // If we skip this whole series, move to the end of the series before we
221
- // recurse, just to optimize
222
- newSeries = newPoint.series;
223
- if (isSkipSeries(newSeries)) {
224
- chart.highlightedPoint = next ?
225
- newSeries.points[newSeries.points.length - 1] :
226
- newSeries.points[0];
227
- }
228
- else {
229
- // Otherwise, just move one point
230
- chart.highlightedPoint = newPoint;
231
- }
232
- // Retry
233
- return chart.highlightAdjacentPoint(next);
234
- }
235
- // There is an adjacent point, highlight it
236
- return newPoint.highlight();
237
- };
238
- /**
239
- * Highlight first valid point in a series. Returns the point if successfully
240
- * highlighted, otherwise false. If there is a highlighted point in the series,
241
- * use that as starting point.
242
- *
243
- * @private
244
- * @function Highcharts.Series#highlightFirstValidPoint
245
- *
246
- * @return {boolean|Highcharts.Point}
247
- */
248
- Series.prototype.highlightFirstValidPoint = function () {
249
- var curPoint = this.chart.highlightedPoint, start = (curPoint && curPoint.series) === this ?
250
- getPointIndex(curPoint) :
251
- 0, points = this.points, len = points.length;
252
- if (points && len) {
253
- for (var i = start; i < len; ++i) {
254
- if (!isSkipPoint(points[i])) {
255
- return points[i].highlight();
256
- }
257
- }
258
- for (var j = start; j >= 0; --j) {
259
- if (!isSkipPoint(points[j])) {
260
- return points[j].highlight();
261
- }
262
- }
263
- }
264
- return false;
265
- };
266
- /**
267
- * Highlight next/previous series in chart. Returns false if no adjacent series
268
- * in the direction, otherwise returns new highlighted point.
269
- *
270
- * @private
271
- * @function Highcharts.Chart#highlightAdjacentSeries
272
- *
273
- * @param {boolean} down
274
- *
275
- * @return {Highcharts.Point|boolean}
276
- */
277
- Chart.prototype.highlightAdjacentSeries = function (down) {
278
- var chart = this, curPoint = chart.highlightedPoint, lastSeries = chart.series && chart.series[chart.series.length - 1], lastPoint = lastSeries && lastSeries.points &&
279
- lastSeries.points[lastSeries.points.length - 1];
280
- var newSeries, newPoint, adjacentNewPoint;
281
- // If no point is highlighted, highlight the first/last point
282
- if (!chart.highlightedPoint) {
283
- newSeries = down ? (chart.series && chart.series[0]) : lastSeries;
284
- newPoint = down ?
285
- (newSeries && newSeries.points && newSeries.points[0]) : lastPoint;
286
- return newPoint ? newPoint.highlight() : false;
287
- }
288
- newSeries = chart.series[curPoint.series.index + (down ? -1 : 1)];
289
- if (!newSeries) {
290
- return false;
291
- }
292
- // We have a new series in this direction, find the right point
293
- // Weigh xDistance as counting much higher than Y distance
294
- newPoint = getClosestPoint(curPoint, newSeries, 4);
295
- if (!newPoint) {
296
- return false;
297
- }
298
- // New series and point exists, but we might want to skip it
299
- if (isSkipSeries(newSeries)) {
300
- // Skip the series
301
- newPoint.highlight();
302
- adjacentNewPoint = chart.highlightAdjacentSeries(down); // Try recurse
303
- if (!adjacentNewPoint) {
304
- // Recurse failed
305
- curPoint.highlight();
306
- return false;
307
- }
308
- // Recurse succeeded
309
- return adjacentNewPoint;
310
- }
311
- // Highlight the new point or any first valid point back or forwards from it
312
- newPoint.highlight();
313
- return newPoint.series.highlightFirstValidPoint();
314
- };
315
- /**
316
- * Highlight the closest point vertically.
317
- *
318
- * @private
319
- * @function Highcharts.Chart#highlightAdjacentPointVertical
320
- *
321
- * @param {boolean} down
322
- *
323
- * @return {Highcharts.Point|boolean}
324
- */
325
- Chart.prototype.highlightAdjacentPointVertical = function (down) {
326
- var curPoint = this.highlightedPoint;
327
- var minDistance = Infinity, bestPoint;
328
- if (!defined(curPoint.plotX) || !defined(curPoint.plotY)) {
329
- return false;
330
- }
331
- this.series.forEach(function (series) {
332
- if (isSkipSeries(series)) {
333
- return;
334
- }
335
- series.points.forEach(function (point) {
336
- if (!defined(point.plotY) || !defined(point.plotX) ||
337
- point === curPoint) {
338
- return;
339
- }
340
- var yDistance = point.plotY - curPoint.plotY;
341
- var width = Math.abs(point.plotX - curPoint.plotX), distance = Math.abs(yDistance) * Math.abs(yDistance) +
342
- width * width * 4; // Weigh horizontal distance highly
343
- // Reverse distance number if axis is reversed
344
- if (series.yAxis && series.yAxis.reversed) {
345
- yDistance *= -1;
346
- }
347
- if (yDistance <= 0 && down || yDistance >= 0 && !down || // Chk dir
348
- distance < 5 || // Points in same spot => infinite loop
349
- isSkipPoint(point)) {
350
- return;
351
- }
352
- if (distance < minDistance) {
353
- minDistance = distance;
354
- bestPoint = point;
355
- }
356
- });
357
- });
358
- return bestPoint ? bestPoint.highlight() : false;
359
- };
360
- /**
361
- * @private
362
- * @param {Highcharts.Chart} chart
363
- * @return {Highcharts.Point|boolean}
364
- */
365
- function highlightFirstValidPointInChart(chart) {
366
- var res = false;
367
- delete chart.highlightedPoint;
368
- res = chart.series.reduce(function (acc, cur) {
369
- return acc || cur.highlightFirstValidPoint();
370
- }, false);
371
- return res;
372
- }
373
- /**
374
- * @private
375
- * @param {Highcharts.Chart} chart
376
- * @return {Highcharts.Point|boolean}
377
103
  */
378
104
  function highlightLastValidPointInChart(chart) {
379
105
  var numSeries = chart.series.length;
@@ -392,7 +118,6 @@ function highlightLastValidPointInChart(chart) {
392
118
  }
393
119
  /**
394
120
  * @private
395
- * @param {Highcharts.Chart} chart
396
121
  */
397
122
  function updateChartFocusAfterDrilling(chart) {
398
123
  highlightFirstValidPointInChart(chart);
@@ -400,20 +125,45 @@ function updateChartFocusAfterDrilling(chart) {
400
125
  chart.focusElement.removeFocusBorder();
401
126
  }
402
127
  }
128
+ /**
129
+ * @private
130
+ */
131
+ function highlightFirstValidPointInChart(chart) {
132
+ var res = false;
133
+ delete chart.highlightedPoint;
134
+ res = chart.series.reduce(function (acc, cur) { return acc || cur.highlightFirstValidPoint(); }, false);
135
+ return res;
136
+ }
137
+ /* *
138
+ *
139
+ * Class
140
+ *
141
+ * */
403
142
  /**
404
143
  * @private
405
144
  * @class
406
145
  * @name Highcharts.SeriesKeyboardNavigation
407
146
  */
408
- function SeriesKeyboardNavigation(chart, keyCodes) {
409
- this.keyCodes = keyCodes;
410
- this.chart = chart;
411
- }
412
- extend(SeriesKeyboardNavigation.prototype, /** @lends Highcharts.SeriesKeyboardNavigation */ {
147
+ var SeriesKeyboardNavigation = /** @class */ (function () {
148
+ /* *
149
+ *
150
+ * Constructor
151
+ *
152
+ * */
153
+ function SeriesKeyboardNavigation(chart, keyCodes) {
154
+ this.keyCodes = keyCodes;
155
+ this.chart = chart;
156
+ }
157
+ /* *
158
+ *
159
+ * Functions
160
+ *
161
+ * */
162
+ /* eslint-disable valid-jsdoc */
413
163
  /**
414
164
  * Init the keyboard navigation
415
165
  */
416
- init: function () {
166
+ SeriesKeyboardNavigation.prototype.init = function () {
417
167
  var keyboardNavigation = this, chart = this.chart, e = this.eventProvider = new EventProvider();
418
168
  e.addEvent(Series, 'destroy', function () {
419
169
  return keyboardNavigation.onSeriesDestroy(this);
@@ -439,15 +189,27 @@ extend(SeriesKeyboardNavigation.prototype, /** @lends Highcharts.SeriesKeyboardN
439
189
  e.addEvent(Point, 'afterSetState', function () {
440
190
  var point = this;
441
191
  var pointEl = point.graphic && point.graphic.element;
192
+ var focusedElement = doc.activeElement;
193
+ // VO brings focus with it to container, causing series nav to run.
194
+ // If then navigating with virtual cursor, it is possible to leave
195
+ // keyboard nav module state on the data points and still activate
196
+ // proxy buttons.
197
+ var focusedElClassName = focusedElement && focusedElement.getAttribute('class');
198
+ var isProxyFocused = focusedElClassName &&
199
+ focusedElClassName.indexOf('highcharts-a11y-proxy-button') > -1;
442
200
  if (chart.highlightedPoint === point &&
443
- doc.activeElement !== pointEl &&
201
+ focusedElement !== pointEl &&
202
+ !isProxyFocused &&
444
203
  pointEl &&
445
204
  pointEl.focus) {
446
205
  pointEl.focus();
447
206
  }
448
207
  });
449
- },
450
- onDrillupAll: function () {
208
+ };
209
+ /**
210
+ * @private
211
+ */
212
+ SeriesKeyboardNavigation.prototype.onDrillupAll = function () {
451
213
  // After drillup we want to find the point that was drilled down to and
452
214
  // highlight it.
453
215
  var last = this.lastDrilledDownPoint, chart = this.chart, series = last && getSeriesFromName(chart, last.seriesName);
@@ -465,11 +227,11 @@ extend(SeriesKeyboardNavigation.prototype, /** @lends Highcharts.SeriesKeyboardN
465
227
  if (chart.focusElement) {
466
228
  chart.focusElement.removeFocusBorder();
467
229
  }
468
- },
230
+ };
469
231
  /**
470
232
  * @return {Highcharts.KeyboardNavigationHandler}
471
233
  */
472
- getKeyboardNavigationHandler: function () {
234
+ SeriesKeyboardNavigation.prototype.getKeyboardNavigationHandler = function () {
473
235
  var keyboardNavigation = this, keys = this.keyCodes, chart = this.chart, inverted = chart.inverted;
474
236
  return new KeyboardNavigationHandler(chart, {
475
237
  keyCodeMap: [
@@ -487,16 +249,29 @@ extend(SeriesKeyboardNavigation.prototype, /** @lends Highcharts.SeriesKeyboardN
487
249
  point.firePointEvent('click');
488
250
  }
489
251
  return this.response.success;
252
+ }],
253
+ [[keys.home], function () {
254
+ highlightFirstValidPointInChart(chart);
255
+ return this.response.success;
256
+ }],
257
+ [[keys.end], function () {
258
+ highlightLastValidPointInChart(chart);
259
+ return this.response.success;
260
+ }],
261
+ [[keys.pageDown, keys.pageUp], function (keyCode) {
262
+ chart.highlightAdjacentSeries(keyCode === keys.pageDown);
263
+ return this.response.success;
490
264
  }]
491
265
  ],
492
- init: function (dir) {
493
- return keyboardNavigation.onHandlerInit(this, dir);
266
+ init: function () {
267
+ highlightFirstValidPointInChart(chart);
268
+ return this.response.success;
494
269
  },
495
270
  terminate: function () {
496
271
  return keyboardNavigation.onHandlerTerminate();
497
272
  }
498
273
  });
499
- },
274
+ };
500
275
  /**
501
276
  * @private
502
277
  * @param {Highcharts.KeyboardNavigationHandler} handler
@@ -504,10 +279,10 @@ extend(SeriesKeyboardNavigation.prototype, /** @lends Highcharts.SeriesKeyboardN
504
279
  * @return {number}
505
280
  * response
506
281
  */
507
- onKbdSideways: function (handler, keyCode) {
282
+ SeriesKeyboardNavigation.prototype.onKbdSideways = function (handler, keyCode) {
508
283
  var keys = this.keyCodes, isNext = keyCode === keys.right || keyCode === keys.down;
509
284
  return this.attemptHighlightAdjacentPoint(handler, isNext);
510
- },
285
+ };
511
286
  /**
512
287
  * @private
513
288
  * @param {Highcharts.KeyboardNavigationHandler} handler
@@ -515,7 +290,7 @@ extend(SeriesKeyboardNavigation.prototype, /** @lends Highcharts.SeriesKeyboardN
515
290
  * @return {number}
516
291
  * response
517
292
  */
518
- onKbdVertical: function (handler, keyCode) {
293
+ SeriesKeyboardNavigation.prototype.onKbdVertical = function (handler, keyCode) {
519
294
  var chart = this.chart, keys = this.keyCodes, isNext = keyCode === keys.down || keyCode === keys.right, navOptions = chart.options.accessibility.keyboardNavigation
520
295
  .seriesNavigation;
521
296
  // Handle serialized mode, act like left/right
@@ -529,28 +304,11 @@ extend(SeriesKeyboardNavigation.prototype, /** @lends Highcharts.SeriesKeyboardN
529
304
  'highlightAdjacentSeries';
530
305
  chart[highlightMethod](isNext);
531
306
  return handler.response.success;
532
- },
533
- /**
534
- * @private
535
- * @param {Highcharts.KeyboardNavigationHandler} handler
536
- * @param {number} initDirection
537
- * @return {number}
538
- * response
539
- */
540
- onHandlerInit: function (handler, initDirection) {
541
- var chart = this.chart;
542
- if (initDirection > 0) {
543
- highlightFirstValidPointInChart(chart);
544
- }
545
- else {
546
- highlightLastValidPointInChart(chart);
547
- }
548
- return handler.response.success;
549
- },
307
+ };
550
308
  /**
551
309
  * @private
552
310
  */
553
- onHandlerTerminate: function () {
311
+ SeriesKeyboardNavigation.prototype.onHandlerTerminate = function () {
554
312
  var chart = this.chart;
555
313
  if (chart.tooltip) {
556
314
  chart.tooltip.hide(0);
@@ -563,7 +321,7 @@ extend(SeriesKeyboardNavigation.prototype, /** @lends Highcharts.SeriesKeyboardN
563
321
  chart.highlightedPoint.onMouseOut();
564
322
  }
565
323
  delete chart.highlightedPoint;
566
- },
324
+ };
567
325
  /**
568
326
  * Function that attempts to highlight next/prev point. Handles wrap around.
569
327
  * @private
@@ -572,7 +330,7 @@ extend(SeriesKeyboardNavigation.prototype, /** @lends Highcharts.SeriesKeyboardN
572
330
  * @return {number}
573
331
  * response
574
332
  */
575
- attemptHighlightAdjacentPoint: function (handler, directionIsNext) {
333
+ SeriesKeyboardNavigation.prototype.attemptHighlightAdjacentPoint = function (handler, directionIsNext) {
576
334
  var chart = this.chart, wrapAround = chart.options.accessibility.keyboardNavigation
577
335
  .wrapAround, highlightSuccessful = chart.highlightAdjacentPoint(directionIsNext);
578
336
  if (!highlightSuccessful) {
@@ -582,11 +340,11 @@ extend(SeriesKeyboardNavigation.prototype, /** @lends Highcharts.SeriesKeyboardN
582
340
  return handler.response[directionIsNext ? 'next' : 'prev'];
583
341
  }
584
342
  return handler.response.success;
585
- },
343
+ };
586
344
  /**
587
345
  * @private
588
346
  */
589
- onSeriesDestroy: function (series) {
347
+ SeriesKeyboardNavigation.prototype.onSeriesDestroy = function (series) {
590
348
  var chart = this.chart, currentHighlightedPointDestroyed = chart.highlightedPoint &&
591
349
  chart.highlightedPoint.series === series;
592
350
  if (currentHighlightedPointDestroyed) {
@@ -595,12 +353,309 @@ extend(SeriesKeyboardNavigation.prototype, /** @lends Highcharts.SeriesKeyboardN
595
353
  chart.focusElement.removeFocusBorder();
596
354
  }
597
355
  }
598
- },
356
+ };
599
357
  /**
600
358
  * @private
601
359
  */
602
- destroy: function () {
360
+ SeriesKeyboardNavigation.prototype.destroy = function () {
603
361
  this.eventProvider.removeAddedEvents();
362
+ };
363
+ return SeriesKeyboardNavigation;
364
+ }());
365
+ /* *
366
+ *
367
+ * Class Namespace
368
+ *
369
+ * */
370
+ (function (SeriesKeyboardNavigation) {
371
+ /* *
372
+ *
373
+ * Declarations
374
+ *
375
+ * */
376
+ /* *
377
+ *
378
+ * Constants
379
+ *
380
+ * */
381
+ var composedClasses = [];
382
+ /* *
383
+ *
384
+ * Functions
385
+ *
386
+ * */
387
+ /**
388
+ * Function to highlight next/previous point in chart.
389
+ *
390
+ * @private
391
+ * @function Highcharts.Chart#highlightAdjacentPoint
392
+ *
393
+ * @param {boolean} next
394
+ * Flag for the direction.
395
+ *
396
+ * @return {Highcharts.Point|boolean}
397
+ * Returns highlighted point on success, false on failure (no adjacent point
398
+ * to highlight in chosen direction).
399
+ */
400
+ function chartHighlightAdjacentPoint(next) {
401
+ var chart = this, series = chart.series, curPoint = chart.highlightedPoint, curPointIndex = curPoint && getPointIndex(curPoint) || 0, curPoints = curPoint && curPoint.series.points || [], lastSeries = chart.series && chart.series[chart.series.length - 1], lastPoint = lastSeries && lastSeries.points && lastSeries.points[lastSeries.points.length - 1];
402
+ var newSeries, newPoint;
403
+ // If no points, return false
404
+ if (!series[0] || !series[0].points) {
405
+ return false;
406
+ }
407
+ if (!curPoint) {
408
+ // No point is highlighted yet. Try first/last point depending on
409
+ // move direction
410
+ newPoint = next ? series[0].points[0] : lastPoint;
411
+ }
412
+ else {
413
+ // We have a highlighted point.
414
+ // Grab next/prev point & series
415
+ newSeries = series[curPoint.series.index + (next ? 1 : -1)];
416
+ newPoint = curPoints[curPointIndex + (next ? 1 : -1)];
417
+ if (!newPoint && newSeries) {
418
+ // Done with this series, try next one
419
+ newPoint = newSeries.points[next ? 0 : newSeries.points.length - 1];
420
+ }
421
+ // If there is no adjacent point, we return false
422
+ if (!newPoint) {
423
+ return false;
424
+ }
425
+ }
426
+ // Recursively skip points
427
+ if (isSkipPoint(newPoint)) {
428
+ // If we skip this whole series, move to the end of the series
429
+ // before we recurse, just to optimize
430
+ newSeries = newPoint.series;
431
+ if (isSkipSeries(newSeries)) {
432
+ chart.highlightedPoint = next ?
433
+ newSeries.points[newSeries.points.length - 1] :
434
+ newSeries.points[0];
435
+ }
436
+ else {
437
+ // Otherwise, just move one point
438
+ chart.highlightedPoint = newPoint;
439
+ }
440
+ // Retry
441
+ return chart.highlightAdjacentPoint(next);
442
+ }
443
+ // There is an adjacent point, highlight it
444
+ return newPoint.highlight();
604
445
  }
605
- });
446
+ /**
447
+ * Highlight the closest point vertically.
448
+ * @private
449
+ */
450
+ function chartHighlightAdjacentPointVertical(down) {
451
+ var curPoint = this.highlightedPoint;
452
+ var minDistance = Infinity, bestPoint;
453
+ if (!defined(curPoint.plotX) || !defined(curPoint.plotY)) {
454
+ return false;
455
+ }
456
+ this.series.forEach(function (series) {
457
+ if (isSkipSeries(series)) {
458
+ return;
459
+ }
460
+ series.points.forEach(function (point) {
461
+ if (!defined(point.plotY) || !defined(point.plotX) ||
462
+ point === curPoint) {
463
+ return;
464
+ }
465
+ var yDistance = point.plotY - curPoint.plotY;
466
+ var width = Math.abs(point.plotX - curPoint.plotX), distance = Math.abs(yDistance) * Math.abs(yDistance) +
467
+ width * width * 4; // Weigh horizontal distance highly
468
+ // Reverse distance number if axis is reversed
469
+ if (series.yAxis && series.yAxis.reversed) {
470
+ yDistance *= -1;
471
+ }
472
+ if (yDistance <= 0 && down || yDistance >= 0 && !down || // Chk dir
473
+ distance < 5 || // Points in same spot => infinite loop
474
+ isSkipPoint(point)) {
475
+ return;
476
+ }
477
+ if (distance < minDistance) {
478
+ minDistance = distance;
479
+ bestPoint = point;
480
+ }
481
+ });
482
+ });
483
+ return bestPoint ? bestPoint.highlight() : false;
484
+ }
485
+ /**
486
+ * Highlight next/previous series in chart. Returns false if no adjacent
487
+ * series in the direction, otherwise returns new highlighted point.
488
+ * @private
489
+ */
490
+ function chartHighlightAdjacentSeries(down) {
491
+ var chart = this, curPoint = chart.highlightedPoint, lastSeries = chart.series && chart.series[chart.series.length - 1], lastPoint = lastSeries && lastSeries.points &&
492
+ lastSeries.points[lastSeries.points.length - 1];
493
+ var newSeries, newPoint, adjacentNewPoint;
494
+ // If no point is highlighted, highlight the first/last point
495
+ if (!chart.highlightedPoint) {
496
+ newSeries = down ? (chart.series && chart.series[0]) : lastSeries;
497
+ newPoint = down ?
498
+ (newSeries && newSeries.points && newSeries.points[0]) : lastPoint;
499
+ return newPoint ? newPoint.highlight() : false;
500
+ }
501
+ newSeries = chart.series[curPoint.series.index + (down ? -1 : 1)];
502
+ if (!newSeries) {
503
+ return false;
504
+ }
505
+ // We have a new series in this direction, find the right point
506
+ // Weigh xDistance as counting much higher than Y distance
507
+ newPoint = getClosestPoint(curPoint, newSeries, 4);
508
+ if (!newPoint) {
509
+ return false;
510
+ }
511
+ // New series and point exists, but we might want to skip it
512
+ if (isSkipSeries(newSeries)) {
513
+ // Skip the series
514
+ newPoint.highlight();
515
+ adjacentNewPoint = chart.highlightAdjacentSeries(down); // Try recurse
516
+ if (!adjacentNewPoint) {
517
+ // Recurse failed
518
+ curPoint.highlight();
519
+ return false;
520
+ }
521
+ // Recurse succeeded
522
+ return adjacentNewPoint;
523
+ }
524
+ // Highlight the new point or any first valid point back or forwards
525
+ // from it
526
+ newPoint.highlight();
527
+ return newPoint.series.highlightFirstValidPoint();
528
+ }
529
+ /**
530
+ * @private
531
+ */
532
+ function compose(ChartClass, PointClass, SeriesClass) {
533
+ if (composedClasses.indexOf(ChartClass) === -1) {
534
+ composedClasses.push(ChartClass);
535
+ var chartProto = ChartClass.prototype;
536
+ chartProto.highlightAdjacentPoint = chartHighlightAdjacentPoint;
537
+ chartProto.highlightAdjacentPointVertical = chartHighlightAdjacentPointVertical;
538
+ chartProto.highlightAdjacentSeries = chartHighlightAdjacentSeries;
539
+ }
540
+ if (composedClasses.indexOf(PointClass) === -1) {
541
+ composedClasses.push(PointClass);
542
+ var pointProto = PointClass.prototype;
543
+ pointProto.highlight = pointHighlight;
544
+ }
545
+ if (composedClasses.indexOf(SeriesClass) === -1) {
546
+ composedClasses.push(SeriesClass);
547
+ var seriesProto = SeriesClass.prototype;
548
+ /**
549
+ * Set for which series types it makes sense to move to the closest
550
+ * point with up/down arrows, and which series types should just
551
+ * move to next series.
552
+ * @private
553
+ */
554
+ seriesProto.keyboardMoveVertical = true;
555
+ [
556
+ 'column',
557
+ 'gantt',
558
+ 'pie'
559
+ ].forEach(function (type) {
560
+ if (seriesTypes[type]) {
561
+ seriesTypes[type].prototype.keyboardMoveVertical = false;
562
+ }
563
+ });
564
+ seriesProto.highlightFirstValidPoint = seriesHighlightFirstValidPoint;
565
+ }
566
+ }
567
+ SeriesKeyboardNavigation.compose = compose;
568
+ /**
569
+ * Get the point in a series that is closest (in pixel distance) to a
570
+ * reference point. Optionally supply weight factors for x and y directions.
571
+ * @private
572
+ */
573
+ function getClosestPoint(point, series, xWeight, yWeight) {
574
+ var minDistance = Infinity, dPoint, minIx, distance, i = series.points.length;
575
+ var hasUndefinedPosition = function (point) { return (!(defined(point.plotX) && defined(point.plotY))); };
576
+ if (hasUndefinedPosition(point)) {
577
+ return;
578
+ }
579
+ while (i--) {
580
+ dPoint = series.points[i];
581
+ if (hasUndefinedPosition(dPoint)) {
582
+ continue;
583
+ }
584
+ distance = (point.plotX - dPoint.plotX) *
585
+ (point.plotX - dPoint.plotX) *
586
+ (xWeight || 1) +
587
+ (point.plotY - dPoint.plotY) *
588
+ (point.plotY - dPoint.plotY) *
589
+ (yWeight || 1);
590
+ if (distance < minDistance) {
591
+ minDistance = distance;
592
+ minIx = i;
593
+ }
594
+ }
595
+ return defined(minIx) ? series.points[minIx] : void 0;
596
+ }
597
+ /**
598
+ * Highlights a point (show tooltip and display hover state).
599
+ *
600
+ * @private
601
+ * @function Highcharts.Point#highlight
602
+ *
603
+ * @return {Highcharts.Point}
604
+ * This highlighted point.
605
+ */
606
+ function pointHighlight() {
607
+ var chart = this.series.chart;
608
+ if (!this.isNull) {
609
+ this.onMouseOver(); // Show the hover marker and tooltip
610
+ }
611
+ else {
612
+ if (chart.tooltip) {
613
+ chart.tooltip.hide(0);
614
+ }
615
+ // Do not call blur on the element, as it messes up the focus of the
616
+ // div element of the chart
617
+ }
618
+ scrollToPoint(this);
619
+ // We focus only after calling onMouseOver because the state change can
620
+ // change z-index and mess up the element.
621
+ if (this.graphic) {
622
+ chart.setFocusToElement(this.graphic);
623
+ }
624
+ chart.highlightedPoint = this;
625
+ return this;
626
+ }
627
+ /**
628
+ * Highlight first valid point in a series. Returns the point if
629
+ * successfully highlighted, otherwise false. If there is a highlighted
630
+ * point in the series, use that as starting point.
631
+ *
632
+ * @private
633
+ * @function Highcharts.Series#highlightFirstValidPoint
634
+ *
635
+ * @return {boolean|Highcharts.Point}
636
+ */
637
+ function seriesHighlightFirstValidPoint() {
638
+ var curPoint = this.chart.highlightedPoint, start = (curPoint && curPoint.series) === this ?
639
+ getPointIndex(curPoint) :
640
+ 0, points = this.points, len = points.length;
641
+ if (points && len) {
642
+ for (var i = start; i < len; ++i) {
643
+ if (!isSkipPoint(points[i])) {
644
+ return points[i].highlight();
645
+ }
646
+ }
647
+ for (var j = start; j >= 0; --j) {
648
+ if (!isSkipPoint(points[j])) {
649
+ return points[j].highlight();
650
+ }
651
+ }
652
+ }
653
+ return false;
654
+ }
655
+ })(SeriesKeyboardNavigation || (SeriesKeyboardNavigation = {}));
656
+ /* *
657
+ *
658
+ * Default Export
659
+ *
660
+ * */
606
661
  export default SeriesKeyboardNavigation;