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
@@ -17,7 +17,8 @@ var format = F.format;
17
17
  import H from '../../Core/Globals.js';
18
18
  var doc = H.doc;
19
19
  import U from '../../Core/Utilities.js';
20
- var extend = U.extend, pick = U.pick;
20
+ var attr = U.attr, extend = U.extend, pick = U.pick;
21
+ import A11yI18n from '../A11yI18n.js';
21
22
  import AccessibilityComponent from '../AccessibilityComponent.js';
22
23
  import Announcer from '../Utils/Announcer.js';
23
24
  import AnnotationsA11y from './AnnotationsA11y.js';
@@ -25,7 +26,7 @@ var getAnnotationsInfoHTML = AnnotationsA11y.getAnnotationsInfoHTML;
25
26
  import ChartUtilities from '../Utils/ChartUtilities.js';
26
27
  var getAxisDescription = ChartUtilities.getAxisDescription, getAxisRangeDescription = ChartUtilities.getAxisRangeDescription, getChartTitle = ChartUtilities.getChartTitle, unhideChartElementFromAT = ChartUtilities.unhideChartElementFromAT;
27
28
  import HTMLUtilities from '../Utils/HTMLUtilities.js';
28
- var addClass = HTMLUtilities.addClass, getElement = HTMLUtilities.getElement, getHeadingTagNameForElement = HTMLUtilities.getHeadingTagNameForElement, setElAttrs = HTMLUtilities.setElAttrs, stripHTMLTagsFromString = HTMLUtilities.stripHTMLTagsFromString, visuallyHideElement = HTMLUtilities.visuallyHideElement;
29
+ var addClass = HTMLUtilities.addClass, getElement = HTMLUtilities.getElement, getHeadingTagNameForElement = HTMLUtilities.getHeadingTagNameForElement, stripHTMLTagsFromString = HTMLUtilities.stripHTMLTagsFromString, visuallyHideElement = HTMLUtilities.visuallyHideElement;
29
30
  /* eslint-disable no-invalid-this, valid-jsdoc */
30
31
  /**
31
32
  * @private
@@ -213,15 +214,32 @@ extend(InfoRegionsComponent.prototype, /** @lends Highcharts.InfoRegionsComponen
213
214
  * @param {string} regionKey The name/key of the region to update
214
215
  */
215
216
  updateScreenReaderSection: function (regionKey) {
216
- var chart = this.chart, region = this.screenReaderSections[regionKey], content = region.buildContent(chart), sectionDiv = region.element = (region.element || this.createElement('div')), hiddenDiv = (sectionDiv.firstChild || this.createElement('div'));
217
- this.setScreenReaderSectionAttribs(sectionDiv, regionKey);
218
- AST.setElementHTML(hiddenDiv, content);
219
- sectionDiv.appendChild(hiddenDiv);
220
- region.insertIntoDOM(sectionDiv, chart);
221
- visuallyHideElement(hiddenDiv);
222
- unhideChartElementFromAT(chart, hiddenDiv);
223
- if (region.afterInserted) {
224
- region.afterInserted();
217
+ var chart = this.chart;
218
+ var region = this.screenReaderSections[regionKey];
219
+ var content = region.buildContent(chart);
220
+ var sectionDiv = region.element = (region.element || this.createElement('div'));
221
+ var hiddenDiv = (sectionDiv.firstChild || this.createElement('div'));
222
+ if (content) {
223
+ this.setScreenReaderSectionAttribs(sectionDiv, regionKey);
224
+ AST.setElementHTML(hiddenDiv, content);
225
+ sectionDiv.appendChild(hiddenDiv);
226
+ region.insertIntoDOM(sectionDiv, chart);
227
+ if (chart.styledMode) {
228
+ addClass(hiddenDiv, 'highcharts-visually-hidden');
229
+ }
230
+ else {
231
+ visuallyHideElement(hiddenDiv);
232
+ }
233
+ unhideChartElementFromAT(chart, hiddenDiv);
234
+ if (region.afterInserted) {
235
+ region.afterInserted();
236
+ }
237
+ }
238
+ else {
239
+ if (sectionDiv.parentNode) {
240
+ sectionDiv.parentNode.removeChild(sectionDiv);
241
+ }
242
+ delete region.element;
225
243
  }
226
244
  },
227
245
  /**
@@ -232,7 +250,7 @@ extend(InfoRegionsComponent.prototype, /** @lends Highcharts.InfoRegionsComponen
232
250
  setScreenReaderSectionAttribs: function (sectionDiv, regionKey) {
233
251
  var labelLangKey = ('accessibility.screenReaderSection.' + regionKey + 'RegionLabel'), chart = this.chart, labelText = chart.langFormat(labelLangKey, { chart: chart, chartTitle: getChartTitle(chart) }), sectionId = 'highcharts-screen-reader-region-' + regionKey + '-' +
234
252
  chart.index;
235
- setElAttrs(sectionDiv, {
253
+ attr(sectionDiv, {
236
254
  id: sectionId,
237
255
  'aria-label': labelText
238
256
  });
@@ -249,8 +267,12 @@ extend(InfoRegionsComponent.prototype, /** @lends Highcharts.InfoRegionsComponen
249
267
  * @return {string}
250
268
  */
251
269
  defaultBeforeChartFormatter: function () {
252
- var chart = this.chart, format = chart.options.accessibility
253
- .screenReaderSection.beforeChartFormat, axesDesc = this.getAxesDescription(), shouldHaveSonifyBtn = (chart.sonify &&
270
+ var chart = this.chart;
271
+ var format = chart.options.accessibility.screenReaderSection.beforeChartFormat;
272
+ if (!format) {
273
+ return '';
274
+ }
275
+ var axesDesc = this.getAxesDescription(), shouldHaveSonifyBtn = (chart.sonify &&
254
276
  chart.options.sonification &&
255
277
  chart.options.sonification.enabled), sonifyButtonId = 'highcharts-a11y-sonify-data-btn-' +
256
278
  chart.index, dataTableButtonId = 'hc-linkto-highcharts-data-table-' +
@@ -268,7 +290,7 @@ extend(InfoRegionsComponent.prototype, /** @lends Highcharts.InfoRegionsComponen
268
290
  this.getDataTableButtonText(dataTableButtonId) : '',
269
291
  annotationsTitle: annotationsList ? annotationsTitleStr : '',
270
292
  annotationsList: annotationsList
271
- }, formattedString = H.i18nFormat(format, context, chart);
293
+ }, formattedString = A11yI18n.i18nFormat(format, context, chart);
272
294
  this.dataTableButtonId = dataTableButtonId;
273
295
  this.sonifyButtonId = sonifyButtonId;
274
296
  return stripEmptyHTMLTags(formattedString);
@@ -278,10 +300,13 @@ extend(InfoRegionsComponent.prototype, /** @lends Highcharts.InfoRegionsComponen
278
300
  * @return {string}
279
301
  */
280
302
  defaultAfterChartFormatter: function () {
281
- var chart = this.chart, format = chart.options.accessibility
282
- .screenReaderSection.afterChartFormat, context = {
283
- endOfChartMarker: this.getEndOfChartMarkerText()
284
- }, formattedString = H.i18nFormat(format, context, chart);
303
+ var chart = this.chart;
304
+ var format = chart.options.accessibility.screenReaderSection.afterChartFormat;
305
+ if (!format) {
306
+ return '';
307
+ }
308
+ var context = { endOfChartMarker: this.getEndOfChartMarkerText() };
309
+ var formattedString = A11yI18n.i18nFormat(format, context, chart);
285
310
  return stripEmptyHTMLTags(formattedString);
286
311
  },
287
312
  /**
@@ -405,9 +430,7 @@ extend(InfoRegionsComponent.prototype, /** @lends Highcharts.InfoRegionsComponen
405
430
  }, 1000); // Delay to let screen reader speak the button press
406
431
  };
407
432
  if (el && chart) {
408
- setElAttrs(el, {
409
- tabindex: -1
410
- });
433
+ el.setAttribute('tabindex', -1);
411
434
  el.onclick = function (e) {
412
435
  var onPlayAsSoundClick = (chart.options.accessibility &&
413
436
  chart.options.accessibility.screenReaderSection.onPlayAsSoundClick);
@@ -423,7 +446,7 @@ extend(InfoRegionsComponent.prototype, /** @lends Highcharts.InfoRegionsComponen
423
446
  initDataTableButton: function (tableButtonId) {
424
447
  var el = this.viewDataTableButton = getElement(tableButtonId), chart = this.chart, tableId = tableButtonId.replace('hc-linkto-', '');
425
448
  if (el) {
426
- setElAttrs(el, {
449
+ attr(el, {
427
450
  tabindex: -1,
428
451
  'aria-expanded': !!getElement(tableId)
429
452
  });
@@ -16,11 +16,11 @@ import Chart from '../../Core/Chart/Chart.js';
16
16
  import H from '../../Core/Globals.js';
17
17
  import Legend from '../../Core/Legend/Legend.js';
18
18
  import U from '../../Core/Utilities.js';
19
- var addEvent = U.addEvent, extend = U.extend, find = U.find, fireEvent = U.fireEvent, isNumber = U.isNumber, pick = U.pick, syncTimeout = U.syncTimeout;
19
+ var addEvent = U.addEvent, extend = U.extend, fireEvent = U.fireEvent, isNumber = U.isNumber, pick = U.pick, syncTimeout = U.syncTimeout;
20
20
  import AccessibilityComponent from '../AccessibilityComponent.js';
21
21
  import KeyboardNavigationHandler from '../KeyboardNavigationHandler.js';
22
22
  import HTMLUtilities from '../Utils/HTMLUtilities.js';
23
- var removeElement = HTMLUtilities.removeElement, stripHTMLTags = HTMLUtilities.stripHTMLTagsFromString;
23
+ var stripHTMLTags = HTMLUtilities.stripHTMLTagsFromString, addClass = HTMLUtilities.addClass, removeClass = HTMLUtilities.removeClass;
24
24
  import ChartUtils from '../Utils/ChartUtilities.js';
25
25
  var getChartTitle = ChartUtils.getChartTitle;
26
26
  /* eslint-disable no-invalid-this, valid-jsdoc */
@@ -53,15 +53,23 @@ function shouldDoLegendA11y(chart) {
53
53
  * @return {boolean}
54
54
  */
55
55
  Chart.prototype.highlightLegendItem = function (ix) {
56
- var items = this.legend.allItems, oldIx = this.accessibility &&
56
+ var items = this.legend.allItems;
57
+ var oldIx = this.accessibility &&
57
58
  this.accessibility.components.legend.highlightedLegendItemIx;
58
- if (items[ix]) {
59
+ var itemToHighlight = items[ix];
60
+ if (itemToHighlight) {
59
61
  if (isNumber(oldIx) && items[oldIx]) {
60
62
  fireEvent(items[oldIx].legendGroup.element, 'mouseout');
61
63
  }
62
64
  scrollLegendToItem(this.legend, ix);
63
- this.setFocusToElement(items[ix].legendItem, items[ix].a11yProxyElement);
64
- fireEvent(items[ix].legendGroup.element, 'mouseover');
65
+ var legendItemProp = itemToHighlight.legendItem;
66
+ var proxyBtn = itemToHighlight.a11yProxyElement && itemToHighlight.a11yProxyElement.buttonElement;
67
+ if (legendItemProp && legendItemProp.element && proxyBtn) {
68
+ this.setFocusToElement(legendItemProp, proxyBtn);
69
+ }
70
+ if (itemToHighlight.legendGroup) {
71
+ fireEvent(itemToHighlight.legendGroup.element, 'mouseover');
72
+ }
65
73
  return true;
66
74
  }
67
75
  return false;
@@ -70,7 +78,7 @@ Chart.prototype.highlightLegendItem = function (ix) {
70
78
  addEvent(Legend, 'afterColorizeItem', function (e) {
71
79
  var chart = this.chart, a11yOptions = chart.options.accessibility, legendItem = e.item;
72
80
  if (a11yOptions.enabled && legendItem && legendItem.a11yProxyElement) {
73
- legendItem.a11yProxyElement.setAttribute('aria-pressed', e.visible ? 'true' : 'false');
81
+ legendItem.a11yProxyElement.buttonElement.setAttribute('aria-pressed', e.visible ? 'true' : 'false');
74
82
  }
75
83
  });
76
84
  /**
@@ -89,15 +97,16 @@ extend(LegendComponent.prototype, /** @lends Highcharts.LegendComponent */ {
89
97
  */
90
98
  init: function () {
91
99
  var component = this;
92
- this.proxyElementsList = [];
93
100
  this.recreateProxies();
94
101
  // Note: Chart could create legend dynamically, so events can not be
95
102
  // tied to the component's chart's current legend.
96
103
  this.addEvent(Legend, 'afterScroll', function () {
97
104
  if (this.chart === component.chart) {
98
- component.updateProxiesPositions();
105
+ component.proxyProvider.updateGroupProxyElementPositions('legend');
99
106
  component.updateLegendItemProxyVisibility();
100
- this.chart.highlightLegendItem(component.highlightedLegendItemIx);
107
+ if (component.highlightedLegendItemIx > -1) {
108
+ this.chart.highlightLegendItem(component.highlightedLegendItemIx);
109
+ }
101
110
  }
102
111
  });
103
112
  this.addEvent(Legend, 'afterPositionItem', function (e) {
@@ -109,26 +118,48 @@ extend(LegendComponent.prototype, /** @lends Highcharts.LegendComponent */ {
109
118
  if (this.chart === component.chart &&
110
119
  this.chart.renderer &&
111
120
  component.recreateProxies()) {
112
- syncTimeout(function () { return component.updateProxiesPositions(); }, animObject(pick(this.chart.renderer.globalAnimation, true)).duration);
121
+ syncTimeout(function () { return component.proxyProvider.updateGroupProxyElementPositions('legend'); }, animObject(pick(this.chart.renderer.globalAnimation, true)).duration);
113
122
  }
114
123
  });
115
124
  },
116
125
  /**
126
+ * Update visibility of legend items when using paged legend
117
127
  * @private
118
128
  */
119
129
  updateLegendItemProxyVisibility: function () {
120
- var legend = this.chart.legend, items = legend.allItems || [], curPage = legend.currentPage || 1, clipHeight = legend.clipHeight || 0;
130
+ var chart = this.chart;
131
+ var legend = chart.legend;
132
+ var items = legend.allItems || [];
133
+ var curPage = legend.currentPage || 1;
134
+ var clipHeight = legend.clipHeight || 0;
121
135
  items.forEach(function (item) {
122
- var itemPage = item.pageIx || 0, y = item._legendItemPos ? item._legendItemPos[1] : 0, h = item.legendItem ? Math.round(item.legendItem.getBBox().height) : 0, hide = y + h - legend.pages[itemPage] > clipHeight || itemPage !== curPage - 1;
123
136
  if (item.a11yProxyElement) {
124
- item.a11yProxyElement.style.visibility = hide ?
125
- 'hidden' : 'visible';
137
+ var hasPages = legend.pages && legend.pages.length;
138
+ var proxyEl = item.a11yProxyElement.element;
139
+ var hide = false;
140
+ if (hasPages) {
141
+ var itemPage = item.pageIx || 0;
142
+ var y = item._legendItemPos ? item._legendItemPos[1] : 0;
143
+ var h = item.legendItem ? Math.round(item.legendItem.getBBox().height) : 0;
144
+ hide = y + h - legend.pages[itemPage] > clipHeight || itemPage !== curPage - 1;
145
+ }
146
+ if (hide) {
147
+ if (chart.styledMode) {
148
+ addClass(proxyEl, 'highcharts-a11y-invisible');
149
+ }
150
+ else {
151
+ proxyEl.style.visibility = 'hidden';
152
+ }
153
+ }
154
+ else {
155
+ removeClass(proxyEl, 'highcharts-a11y-invisible');
156
+ proxyEl.style.visibility = '';
157
+ }
126
158
  }
127
159
  });
128
160
  },
129
161
  /**
130
- * The legend needs updates on every render, in order to update positioning
131
- * of the proxy overlays.
162
+ * @private
132
163
  */
133
164
  onChartRender: function () {
134
165
  if (!shouldDoLegendA11y(this.chart)) {
@@ -138,37 +169,45 @@ extend(LegendComponent.prototype, /** @lends Highcharts.LegendComponent */ {
138
169
  /**
139
170
  * @private
140
171
  */
141
- onChartUpdate: function () {
142
- this.updateLegendTitle();
143
- },
144
- /**
145
- * @private
146
- */
147
- updateProxiesPositions: function () {
148
- for (var _i = 0, _a = this.proxyElementsList; _i < _a.length; _i++) {
149
- var _b = _a[_i], element = _b.element, posElement = _b.posElement;
150
- this.updateProxyButtonPosition(element, posElement);
172
+ highlightAdjacentLegendPage: function (direction) {
173
+ var chart = this.chart;
174
+ var legend = chart.legend;
175
+ var curPageIx = legend.currentPage || 1;
176
+ var newPageIx = curPageIx + direction;
177
+ var pages = legend.pages || [];
178
+ if (newPageIx > 0 && newPageIx <= pages.length) {
179
+ var len = legend.allItems.length;
180
+ for (var i = 0; i < len; ++i) {
181
+ if (legend.allItems[i].pageIx + 1 === newPageIx) {
182
+ var res = chart.highlightLegendItem(i);
183
+ if (res) {
184
+ this.highlightedLegendItemIx = i;
185
+ }
186
+ return;
187
+ }
188
+ }
151
189
  }
152
190
  },
153
191
  /**
154
192
  * @private
155
193
  */
156
194
  updateProxyPositionForItem: function (item) {
157
- var proxyRef = find(this.proxyElementsList, function (ref) { return ref.item === item; });
158
- if (proxyRef) {
159
- this.updateProxyButtonPosition(proxyRef.element, proxyRef.posElement);
195
+ if (item.a11yProxyElement) {
196
+ item.a11yProxyElement.refreshPosition();
160
197
  }
161
198
  },
162
199
  /**
200
+ * Returns false if legend a11y is disabled and proxies were not created,
201
+ * true otherwise.
163
202
  * @private
164
203
  */
165
204
  recreateProxies: function () {
166
205
  this.removeProxies();
167
206
  if (shouldDoLegendA11y(this.chart)) {
168
207
  this.addLegendProxyGroup();
169
- this.addLegendListContainer();
170
208
  this.proxyLegendItems();
171
209
  this.updateLegendItemProxyVisibility();
210
+ this.updateLegendTitle();
172
211
  return true;
173
212
  }
174
213
  return false;
@@ -177,8 +216,7 @@ extend(LegendComponent.prototype, /** @lends Highcharts.LegendComponent */ {
177
216
  * @private
178
217
  */
179
218
  removeProxies: function () {
180
- removeElement(this.legendProxyGroup);
181
- this.proxyElementsList = [];
219
+ this.proxyProvider.removeGroup('legend');
182
220
  },
183
221
  /**
184
222
  * @private
@@ -194,31 +232,21 @@ extend(LegendComponent.prototype, /** @lends Highcharts.LegendComponent */ {
194
232
  legendTitle: legendTitle,
195
233
  chartTitle: getChartTitle(chart)
196
234
  });
197
- if (this.legendProxyGroup) {
198
- this.legendProxyGroup.setAttribute('aria-label', legendLabel);
199
- }
235
+ this.proxyProvider.updateGroupAttrs('legend', {
236
+ 'aria-label': legendLabel
237
+ });
200
238
  },
201
239
  /**
202
240
  * @private
203
241
  */
204
242
  addLegendProxyGroup: function () {
205
- var a11yOptions = this.chart.options.accessibility, groupRole = a11yOptions.landmarkVerbosity === 'all' ?
206
- 'region' : null;
207
- this.legendProxyGroup = this.addProxyGroup({
243
+ var a11yOptions = this.chart.options.accessibility;
244
+ var groupRole = a11yOptions.landmarkVerbosity === 'all' ? 'region' : null;
245
+ this.proxyProvider.addGroup('legend', 'ul', {
208
246
  'aria-label': '_placeholder_',
209
247
  role: groupRole
210
248
  });
211
249
  },
212
- /**
213
- * @private
214
- */
215
- addLegendListContainer: function () {
216
- if (this.legendProxyGroup) {
217
- var container = this.legendListContainer = this.createElement('ul');
218
- container.style.listStyle = 'none';
219
- this.legendProxyGroup.appendChild(container);
220
- }
221
- },
222
250
  /**
223
251
  * @private
224
252
  */
@@ -236,29 +264,25 @@ extend(LegendComponent.prototype, /** @lends Highcharts.LegendComponent */ {
236
264
  * @param {Highcharts.BubbleLegendItem|Point|Highcharts.Series} item
237
265
  */
238
266
  proxyLegendItem: function (item) {
239
- if (!item.legendItem || !item.legendGroup || !this.legendListContainer) {
267
+ if (!item.legendItem || !item.legendGroup) {
240
268
  return;
241
269
  }
242
270
  var itemLabel = this.chart.langFormat('accessibility.legend.legendItem', {
243
271
  chart: this.chart,
244
272
  itemName: stripHTMLTags(item.name),
245
273
  item: item
246
- }), attribs = {
274
+ });
275
+ var attribs = {
247
276
  tabindex: -1,
248
277
  'aria-pressed': item.visible,
249
278
  'aria-label': itemLabel
250
- },
279
+ };
251
280
  // Considers useHTML
252
- proxyPositioningElement = item.legendGroup.div ?
253
- item.legendItem : item.legendGroup;
254
- var listItem = this.createElement('li');
255
- this.legendListContainer.appendChild(listItem);
256
- item.a11yProxyElement = this.createProxyButton(item.legendItem, listItem, attribs, proxyPositioningElement);
257
- this.proxyElementsList.push({
258
- item: item,
259
- element: item.a11yProxyElement,
260
- posElement: proxyPositioningElement
261
- });
281
+ var proxyPositioningElement = item.legendGroup.div ? item.legendItem : item.legendGroup;
282
+ item.a11yProxyElement = this.proxyProvider.addProxyElement('legend', {
283
+ click: item.legendItem,
284
+ visual: proxyPositioningElement.element
285
+ }, attribs);
262
286
  },
263
287
  /**
264
288
  * Get keyboard navigation handler for this component.
@@ -282,6 +306,14 @@ extend(LegendComponent.prototype, /** @lends Highcharts.LegendComponent */ {
282
306
  }
283
307
  return component.onKbdClick(this);
284
308
  }
309
+ ],
310
+ [
311
+ [keys.pageDown, keys.pageUp],
312
+ function (keyCode) {
313
+ var direction = keyCode === keys.pageDown ? 1 : -1;
314
+ component.highlightAdjacentLegendPage(direction);
315
+ return this.response.success;
316
+ }
285
317
  ]
286
318
  ],
287
319
  validate: function () {
@@ -291,6 +323,7 @@ extend(LegendComponent.prototype, /** @lends Highcharts.LegendComponent */ {
291
323
  return component.onKbdNavigationInit(direction);
292
324
  },
293
325
  terminate: function () {
326
+ component.highlightedLegendItemIx = -1;
294
327
  chart.legend.allItems.forEach(function (item) { return item.setState('', true); });
295
328
  }
296
329
  });
@@ -320,13 +353,12 @@ extend(LegendComponent.prototype, /** @lends Highcharts.LegendComponent */ {
320
353
  /**
321
354
  * @private
322
355
  * @param {Highcharts.KeyboardNavigationHandler} keyboardNavigationHandler
323
- * @return {number}
324
- * Response code
356
+ * @return {number} Response code
325
357
  */
326
358
  onKbdClick: function (keyboardNavigationHandler) {
327
359
  var legendItem = this.chart.legend.allItems[this.highlightedLegendItemIx];
328
360
  if (legendItem && legendItem.a11yProxyElement) {
329
- fireEvent(legendItem.a11yProxyElement, 'click');
361
+ legendItem.a11yProxyElement.click();
330
362
  }
331
363
  return keyboardNavigationHandler.response.success;
332
364
  },
@@ -12,13 +12,13 @@
12
12
  'use strict';
13
13
  import Chart from '../../Core/Chart/Chart.js';
14
14
  import U from '../../Core/Utilities.js';
15
- var extend = U.extend;
15
+ var attr = U.attr, extend = U.extend;
16
16
  import AccessibilityComponent from '../AccessibilityComponent.js';
17
17
  import KeyboardNavigationHandler from '../KeyboardNavigationHandler.js';
18
18
  import ChartUtilities from '../Utils/ChartUtilities.js';
19
19
  var getChartTitle = ChartUtilities.getChartTitle, unhideChartElementFromAT = ChartUtilities.unhideChartElementFromAT;
20
20
  import HTMLUtilities from '../Utils/HTMLUtilities.js';
21
- var removeElement = HTMLUtilities.removeElement, getFakeMouseEvent = HTMLUtilities.getFakeMouseEvent;
21
+ var getFakeMouseEvent = HTMLUtilities.getFakeMouseEvent;
22
22
  /* eslint-disable no-invalid-this, valid-jsdoc */
23
23
  /**
24
24
  * Get the wrapped export button element of a chart.
@@ -78,13 +78,14 @@ Chart.prototype.hideExportMenu = function () {
78
78
  * @return {boolean}
79
79
  */
80
80
  Chart.prototype.highlightExportItem = function (ix) {
81
- var listItem = this.exportDivElements && this.exportDivElements[ix], curHighlighted = this.exportDivElements &&
82
- this.exportDivElements[this.highlightedExportItemIx], hasSVGFocusSupport;
81
+ var listItem = this.exportDivElements && this.exportDivElements[ix];
82
+ var curHighlighted = this.exportDivElements &&
83
+ this.exportDivElements[this.highlightedExportItemIx];
83
84
  if (listItem &&
84
85
  listItem.tagName === 'LI' &&
85
86
  !(listItem.children && listItem.children.length)) {
86
87
  // Test if we have focus support for SVG elements
87
- hasSVGFocusSupport = !!(this.renderTo.getElementsByTagName('g')[0] || {}).focus;
88
+ var hasSVGFocusSupport = !!(this.renderTo.getElementsByTagName('g')[0] || {}).focus;
88
89
  // Only focus if we can set focus back to the elements after
89
90
  // destroying the menu (#7422)
90
91
  if (listItem.focus && hasSVGFocusSupport) {
@@ -109,9 +110,9 @@ Chart.prototype.highlightExportItem = function (ix) {
109
110
  * @return {boolean}
110
111
  */
111
112
  Chart.prototype.highlightLastExportItem = function () {
112
- var chart = this, i;
113
+ var chart = this;
113
114
  if (chart.exportDivElements) {
114
- i = chart.exportDivElements.length;
115
+ var i = chart.exportDivElements.length;
115
116
  while (i--) {
116
117
  if (chart.highlightExportItem(i)) {
117
118
  return true;
@@ -154,6 +155,7 @@ extend(MenuComponent.prototype, /** @lends Highcharts.MenuComponent */ {
154
155
  this.addEvent(chart, 'exportMenuHidden', function () {
155
156
  component.onMenuHidden();
156
157
  });
158
+ this.createProxyGroup();
157
159
  },
158
160
  /**
159
161
  * @private
@@ -183,9 +185,8 @@ extend(MenuComponent.prototype, /** @lends Highcharts.MenuComponent */ {
183
185
  * @param {string} stateStr
184
186
  */
185
187
  setExportButtonExpandedState: function (stateStr) {
186
- var button = this.exportButtonProxy;
187
- if (button) {
188
- button.setAttribute('aria-expanded', stateStr);
188
+ if (this.exportButtonProxy) {
189
+ this.exportButtonProxy.buttonElement.setAttribute('aria-expanded', stateStr);
189
190
  }
190
191
  },
191
192
  /**
@@ -193,25 +194,35 @@ extend(MenuComponent.prototype, /** @lends Highcharts.MenuComponent */ {
193
194
  * proxy overlay.
194
195
  */
195
196
  onChartRender: function () {
196
- var chart = this.chart, a11yOptions = chart.options.accessibility;
197
- // Always start with a clean slate
198
- removeElement(this.exportProxyGroup);
199
- // Set screen reader properties on export menu
200
- if (exportingShouldHaveA11y(chart)) {
201
- // Proxy button and group
202
- this.exportProxyGroup = this.addProxyGroup(
203
- // Wrap in a region div if verbosity is high
204
- a11yOptions.landmarkVerbosity === 'all' ? {
205
- 'aria-label': chart.langFormat('accessibility.exporting.exportRegionLabel', { chart: chart, chartTitle: getChartTitle(chart) }),
206
- 'role': 'region'
207
- } : {});
208
- var button = getExportMenuButtonElement(this.chart);
209
- this.exportButtonProxy = this.createProxyButton(button, this.exportProxyGroup, {
210
- 'aria-label': chart.langFormat('accessibility.exporting.menuButtonLabel', { chart: chart }),
197
+ this.proxyProvider.clearGroup('chartMenu');
198
+ this.proxyMenuButton();
199
+ },
200
+ /**
201
+ * @private
202
+ */
203
+ proxyMenuButton: function () {
204
+ var chart = this.chart;
205
+ var proxyProvider = this.proxyProvider;
206
+ var buttonEl = getExportMenuButtonElement(chart);
207
+ if (exportingShouldHaveA11y(chart) && buttonEl) {
208
+ this.exportButtonProxy = proxyProvider.addProxyElement('chartMenu', { click: buttonEl }, {
209
+ 'aria-label': chart.langFormat('accessibility.exporting.menuButtonLabel', {
210
+ chart: chart,
211
+ chartTitle: getChartTitle(chart)
212
+ }),
211
213
  'aria-expanded': false
212
214
  });
213
215
  }
214
216
  },
217
+ /**
218
+ * @private
219
+ */
220
+ createProxyGroup: function () {
221
+ var chart = this.chart;
222
+ if (chart && this.proxyProvider) {
223
+ this.proxyProvider.addGroup('chartMenu', 'div');
224
+ }
225
+ },
215
226
  /**
216
227
  * @private
217
228
  */
@@ -234,8 +245,11 @@ extend(MenuComponent.prototype, /** @lends Highcharts.MenuComponent */ {
234
245
  // Set accessibility properties on parent div
235
246
  var parentDiv = (exportList[0] && exportList[0].parentNode);
236
247
  if (parentDiv) {
237
- parentDiv.removeAttribute('aria-hidden');
238
- parentDiv.setAttribute('aria-label', chart.langFormat('accessibility.exporting.chartMenuLabel', { chart: chart }));
248
+ attr(parentDiv, {
249
+ 'aria-hidden': void 0,
250
+ 'aria-label': chart.langFormat('accessibility.exporting.chartMenuLabel', { chart: chart }),
251
+ role: 'list' // Needed for webkit/VO
252
+ });
239
253
  }
240
254
  }
241
255
  },
@@ -279,9 +293,10 @@ extend(MenuComponent.prototype, /** @lends Highcharts.MenuComponent */ {
279
293
  },
280
294
  // Focus export menu button
281
295
  init: function () {
282
- var exportBtn = component.exportButtonProxy, exportGroup = chart.exportingGroup;
283
- if (exportGroup && exportBtn) {
284
- chart.setFocusToElement(exportGroup, exportBtn);
296
+ var proxy = component.exportButtonProxy;
297
+ var svgEl = component.chart.exportingGroup;
298
+ if (proxy && svgEl) {
299
+ chart.setFocusToElement(svgEl, proxy.buttonElement);
285
300
  }
286
301
  },
287
302
  // Hide the menu
@@ -293,13 +308,15 @@ extend(MenuComponent.prototype, /** @lends Highcharts.MenuComponent */ {
293
308
  /**
294
309
  * @private
295
310
  * @param {Highcharts.KeyboardNavigationHandler} keyboardNavigationHandler
296
- * @return {number}
297
- * Response code
311
+ * @return {number} Response code
298
312
  */
299
313
  onKbdPrevious: function (keyboardNavigationHandler) {
300
- var chart = this.chart, a11yOptions = chart.options.accessibility, response = keyboardNavigationHandler.response, i = chart.highlightedExportItemIx || 0;
314
+ var chart = this.chart;
315
+ var a11yOptions = chart.options.accessibility;
316
+ var response = keyboardNavigationHandler.response;
301
317
  // Try to highlight prev item in list. Highlighting e.g.
302
318
  // separators will fail.
319
+ var i = chart.highlightedExportItemIx || 0;
303
320
  while (i--) {
304
321
  if (chart.highlightExportItem(i)) {
305
322
  return response.success;
@@ -315,14 +332,15 @@ extend(MenuComponent.prototype, /** @lends Highcharts.MenuComponent */ {
315
332
  /**
316
333
  * @private
317
334
  * @param {Highcharts.KeyboardNavigationHandler} keyboardNavigationHandler
318
- * @return {number}
319
- * Response code
335
+ * @return {number} Response code
320
336
  */
321
337
  onKbdNext: function (keyboardNavigationHandler) {
322
- var chart = this.chart, a11yOptions = chart.options.accessibility, response = keyboardNavigationHandler.response, i = (chart.highlightedExportItemIx || 0) + 1;
338
+ var chart = this.chart;
339
+ var a11yOptions = chart.options.accessibility;
340
+ var response = keyboardNavigationHandler.response;
323
341
  // Try to highlight next item in list. Highlighting e.g.
324
342
  // separators will fail.
325
- for (; i < chart.exportDivElements.length; ++i) {
343
+ for (var i = (chart.highlightedExportItemIx || 0) + 1; i < chart.exportDivElements.length; ++i) {
326
344
  if (chart.highlightExportItem(i)) {
327
345
  return response.success;
328
346
  }
@@ -337,11 +355,12 @@ extend(MenuComponent.prototype, /** @lends Highcharts.MenuComponent */ {
337
355
  /**
338
356
  * @private
339
357
  * @param {Highcharts.KeyboardNavigationHandler} keyboardNavigationHandler
340
- * @return {number}
341
- * Response code
358
+ * @return {number} Response code
342
359
  */
343
360
  onKbdClick: function (keyboardNavigationHandler) {
344
- var chart = this.chart, curHighlightedItem = chart.exportDivElements[chart.highlightedExportItemIx], exportButtonElement = getExportMenuButtonElement(chart).element;
361
+ var chart = this.chart;
362
+ var curHighlightedItem = chart.exportDivElements[chart.highlightedExportItemIx];
363
+ var exportButtonElement = getExportMenuButtonElement(chart).element;
345
364
  if (this.isExportMenuShown) {
346
365
  this.fakeClickEvent(curHighlightedItem);
347
366
  }