highcharts 9.3.1 → 9.3.2

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 (752) hide show
  1. package/bower.json +1 -1
  2. package/css/annotations/popup.css +1 -1
  3. package/css/highcharts.css +2 -2
  4. package/css/highcharts.scss +1 -1
  5. package/css/stocktools/gui.css +1 -1
  6. package/css/themes/dark-unica.css +2 -2
  7. package/css/themes/grid-light.css +2 -2
  8. package/css/themes/sand-signika.css +2 -2
  9. package/es-modules/Accessibility/A11yI18n.js +1 -5
  10. package/es-modules/Accessibility/Accessibility.js +11 -5
  11. package/es-modules/Accessibility/AccessibilityComponent.js +1 -1
  12. package/es-modules/Accessibility/Components/AnnotationsA11y.js +9 -5
  13. package/es-modules/Accessibility/Components/ContainerComponent.js +1 -1
  14. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +8 -19
  15. package/es-modules/Accessibility/Components/LegendComponent.js +176 -86
  16. package/es-modules/Accessibility/Components/MenuComponent.js +1 -10
  17. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +10 -13
  18. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +15 -6
  19. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +8 -4
  20. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +3 -1
  21. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +16 -41
  22. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +20 -31
  23. package/es-modules/Accessibility/Components/ZoomComponent.js +135 -57
  24. package/es-modules/Accessibility/FocusBorder.js +0 -5
  25. package/es-modules/Accessibility/HighContrastMode.js +2 -1
  26. package/es-modules/Accessibility/KeyboardNavigation.js +5 -4
  27. package/es-modules/Accessibility/Options/DeprecatedOptions.js +12 -5
  28. package/es-modules/Accessibility/Options/LangOptions.js +3 -3
  29. package/es-modules/Accessibility/ProxyElement.js +12 -6
  30. package/es-modules/Accessibility/ProxyProvider.js +0 -3
  31. package/es-modules/Accessibility/Utils/Announcer.js +2 -2
  32. package/es-modules/Accessibility/Utils/ChartUtilities.js +17 -32
  33. package/es-modules/Accessibility/Utils/HTMLUtilities.js +0 -12
  34. package/es-modules/Core/Animation/Fx.js +5 -14
  35. package/es-modules/Core/Axis/Axis.js +42 -68
  36. package/es-modules/Core/Axis/Axis3D.js +10 -4
  37. package/es-modules/Core/Axis/BrokenAxis.js +17 -11
  38. package/es-modules/Core/Axis/Color/ColorAxis.js +7 -4
  39. package/es-modules/Core/Axis/Color/ColorAxisComposition.js +3 -3
  40. package/es-modules/Core/Axis/DateTimeAxis.js +3 -14
  41. package/es-modules/Core/Axis/GridAxis.js +26 -16
  42. package/es-modules/Core/Axis/NavigatorAxis.js +0 -5
  43. package/es-modules/Core/Axis/OrdinalAxis.js +83 -79
  44. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js +0 -5
  45. package/es-modules/Core/Axis/RadialAxis.js +7 -28
  46. package/es-modules/Core/Axis/ScrollbarAxis.js +18 -10
  47. package/es-modules/Core/Axis/StackingAxis.js +2 -1
  48. package/es-modules/Core/Axis/Tick.js +2 -4
  49. package/es-modules/Core/Axis/TreeGridAxis.js +26 -17
  50. package/es-modules/Core/Axis/TreeGridTick.js +4 -1
  51. package/es-modules/Core/Axis/WaterfallAxis.js +1 -1
  52. package/es-modules/Core/Axis/ZAxis.js +1 -1
  53. package/es-modules/Core/Chart/Chart.js +42 -44
  54. package/es-modules/Core/Chart/Chart3D.js +23 -10
  55. package/es-modules/Core/Chart/GanttChart.js +4 -4
  56. package/es-modules/Core/Chart/MapChart.js +3 -3
  57. package/es-modules/Core/Chart/StockChart.js +10 -23
  58. package/es-modules/Core/DefaultOptions.js +3 -2
  59. package/es-modules/Core/Geometry/CircleUtilities.js +2 -1
  60. package/es-modules/Core/Globals.js +1 -1
  61. package/es-modules/Core/HttpUtilities.js +5 -4
  62. package/es-modules/Core/Legend/Legend.js +12 -13
  63. package/es-modules/Core/Navigator.js +34 -22
  64. package/es-modules/Core/Pointer.js +13 -9
  65. package/es-modules/Core/Renderer/HTML/AST.js +27 -14
  66. package/es-modules/Core/Renderer/HTML/HTMLElement.js +4 -2
  67. package/es-modules/Core/Renderer/HTML/HTMLRenderer.js +8 -6
  68. package/es-modules/Core/Renderer/RendererUtilities.js +2 -2
  69. package/es-modules/Core/Renderer/SVG/SVGElement.js +8 -16
  70. package/es-modules/Core/Renderer/SVG/SVGLabel.js +17 -8
  71. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +5 -12
  72. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +12 -5
  73. package/es-modules/Core/Renderer/SVG/TextBuilder.js +16 -10
  74. package/es-modules/Core/Responsive.js +2 -3
  75. package/es-modules/Core/Scrollbar.js +14 -12
  76. package/es-modules/Core/Series/DataLabel.js +17 -12
  77. package/es-modules/Core/Series/Point.js +17 -16
  78. package/es-modules/Core/Series/Series.js +44 -73
  79. package/es-modules/Core/Series/SeriesDefaults.js +5 -4
  80. package/es-modules/Core/Time.js +14 -11
  81. package/es-modules/Core/Tooltip.js +19 -36
  82. package/es-modules/Core/Utilities.js +5 -17
  83. package/es-modules/Data/DataConverter.js +0 -6
  84. package/es-modules/Data/DataSeriesConverter.js +9 -5
  85. package/es-modules/Data/DataTable.js +2 -1
  86. package/es-modules/Data/Modifiers/DataModifier.js +1 -1
  87. package/es-modules/Data/Parsers/CSVParser.js +3 -2
  88. package/es-modules/Data/Parsers/GoogleSheetsParser.js +5 -2
  89. package/es-modules/Data/Stores/CSVStore.js +2 -2
  90. package/es-modules/Data/Stores/DataStore.js +1 -1
  91. package/es-modules/Data/Stores/GoogleSheetsStore.js +3 -1
  92. package/es-modules/Data/Stores/HTMLTableStore.js +3 -1
  93. package/es-modules/Extensions/Annotations/Annotations.js +11 -10
  94. package/es-modules/Extensions/Annotations/ControlPoint.js +0 -2
  95. package/es-modules/Extensions/Annotations/Controllables/ControllableCircle.js +1 -1
  96. package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +1 -1
  97. package/es-modules/Extensions/Annotations/Controllables/ControllableImage.js +1 -1
  98. package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +3 -6
  99. package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +3 -2
  100. package/es-modules/Extensions/Annotations/Controllables/ControllableRect.js +1 -1
  101. package/es-modules/Extensions/Annotations/Mixins/ControllableMixin.js +6 -3
  102. package/es-modules/Extensions/Annotations/Mixins/EventEmitterMixin.js +0 -1
  103. package/es-modules/Extensions/Annotations/Mixins/MarkerMixin.js +5 -4
  104. package/es-modules/Extensions/Annotations/NavigationBindings.js +34 -29
  105. package/es-modules/Extensions/Annotations/Popup.js +40 -32
  106. package/es-modules/Extensions/Annotations/Types/CrookedLine.js +4 -2
  107. package/es-modules/Extensions/Annotations/Types/ElliottWave.js +1 -1
  108. package/es-modules/Extensions/Annotations/Types/Measure.js +15 -11
  109. package/es-modules/Extensions/Annotations/Types/Pitchfork.js +2 -1
  110. package/es-modules/Extensions/Annotations/Types/TimeCycles.js +8 -4
  111. package/es-modules/Extensions/Annotations/Types/Tunnel.js +10 -5
  112. package/es-modules/Extensions/Boost/BoostOverrides.js +3 -9
  113. package/es-modules/Extensions/Boost/BoostUtils.js +0 -6
  114. package/es-modules/Extensions/Boost/WGLRenderer.js +16 -12
  115. package/es-modules/Extensions/Boost/WGLShader.js +9 -8
  116. package/es-modules/Extensions/Boost/WGLVBuffer.js +4 -7
  117. package/es-modules/Extensions/Data.js +4 -48
  118. package/es-modules/Extensions/DataGrouping.js +22 -15
  119. package/es-modules/Extensions/DraggablePoints.js +7 -8
  120. package/es-modules/Extensions/Drilldown.js +9 -4
  121. package/es-modules/Extensions/ExportData.js +6 -5
  122. package/es-modules/Extensions/Exporting/Exporting.js +23 -37
  123. package/es-modules/Extensions/FullScreen.js +4 -3
  124. package/es-modules/Extensions/GeoJSON.js +3 -3
  125. package/es-modules/Extensions/MarkerClusters.js +3 -1
  126. package/es-modules/Extensions/Math3D.js +4 -4
  127. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +23 -24
  128. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  129. package/es-modules/Extensions/Oldie/Oldie.js +13 -77
  130. package/es-modules/Extensions/Oldie/VMLAxis3D.js +5 -1
  131. package/es-modules/Extensions/OverlappingDataLabels.js +10 -6
  132. package/es-modules/Extensions/Pane.js +6 -6
  133. package/es-modules/Extensions/ParallelCoordinates.js +5 -3
  134. package/es-modules/Extensions/PatternFill.js +17 -11
  135. package/es-modules/Extensions/Polar.js +6 -3
  136. package/es-modules/Extensions/PriceIndication.js +2 -1
  137. package/es-modules/Extensions/RangeSelector.js +19 -55
  138. package/es-modules/Extensions/ScrollablePlotArea.js +2 -2
  139. package/es-modules/Extensions/SeriesLabel.js +1 -1
  140. package/es-modules/Extensions/Sonification/ChartSonify.js +32 -26
  141. package/es-modules/Extensions/Sonification/Instrument.js +12 -15
  142. package/es-modules/Extensions/Sonification/PointSonify.js +12 -8
  143. package/es-modules/Extensions/Sonification/SeriesSonify.js +33 -18
  144. package/es-modules/Extensions/Sonification/SignalHandler.js +4 -6
  145. package/es-modules/Extensions/Sonification/Sonification.js +1 -1
  146. package/es-modules/Extensions/Sonification/SonificationUtilities.js +11 -7
  147. package/es-modules/Extensions/Sonification/Timeline.js +2 -7
  148. package/es-modules/Extensions/Sonification/TimelineEvent.js +0 -1
  149. package/es-modules/Extensions/Sonification/TimelinePath.js +8 -8
  150. package/es-modules/Extensions/Stacking.js +5 -23
  151. package/es-modules/Extensions/Themes/BrandDark.js +293 -0
  152. package/es-modules/Extensions/Themes/BrandLight.js +259 -0
  153. package/es-modules/Extensions/Themes/DarkUnica.js +4 -2
  154. package/es-modules/Extensions/Themes/Grid.js +4 -2
  155. package/es-modules/Extensions/Themes/GridLight.js +4 -2
  156. package/es-modules/Gantt/Connection.js +2 -2
  157. package/es-modules/Gantt/Pathfinder.js +6 -5
  158. package/es-modules/Gantt/PathfinderAlgorithms.js +12 -12
  159. package/es-modules/Maps/MapNavigation.js +6 -7
  160. package/es-modules/Maps/MapPointer.js +2 -1
  161. package/es-modules/Maps/MapSymbols.js +23 -3
  162. package/es-modules/Maps/MapViewOptionsDefault.js +1 -1
  163. package/es-modules/Series/Area/AreaSeries.js +13 -13
  164. package/es-modules/Series/Area3DSeries.js +4 -2
  165. package/es-modules/Series/AreaRange/AreaRangeSeries.js +24 -12
  166. package/es-modules/Series/Bellcurve/BellcurveSeries.js +2 -1
  167. package/es-modules/Series/Bubble/BubbleLegendItem.js +2 -12
  168. package/es-modules/Series/Candlestick/CandlestickSeries.js +0 -1
  169. package/es-modules/Series/ColorMapMixin.js +84 -0
  170. package/es-modules/Series/Column/ColumnSeries.js +16 -14
  171. package/es-modules/Series/Column3D/Column3DComposition.js +1 -2
  172. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +5 -2
  173. package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +2 -1
  174. package/es-modules/Series/Cylinder/CylinderComposition.js +36 -4
  175. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +1 -1
  176. package/es-modules/Series/Dumbbell/DumbbellPoint.js +0 -1
  177. package/es-modules/Series/Dumbbell/DumbbellSeries.js +0 -3
  178. package/es-modules/Series/Flags/FlagsSymbols.js +2 -2
  179. package/es-modules/Series/Funnel3D/Funnel3DComposition.js +14 -8
  180. package/es-modules/Series/Funnel3D/Funnel3DSeries.js +2 -1
  181. package/es-modules/Series/Gantt/GanttPoint.js +1 -1
  182. package/es-modules/Series/Gantt/GanttSeries.js +3 -1
  183. package/es-modules/Series/HLC/HLCSeries.js +1 -6
  184. package/es-modules/Series/Heatmap/HeatmapPoint.js +10 -10
  185. package/es-modules/Series/Heatmap/HeatmapSeries.js +9 -10
  186. package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +8 -6
  187. package/es-modules/Series/Histogram/HistogramSeries.js +4 -4
  188. package/es-modules/Series/HollowCandlestick/HollowCandlestickPoint.js +1 -4
  189. package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +19 -20
  190. package/es-modules/Series/Item/ItemSeries.js +4 -5
  191. package/es-modules/Series/Map/MapPoint.js +6 -0
  192. package/es-modules/Series/Map/MapSeries.js +24 -25
  193. package/es-modules/Series/MapLine/MapLineSeries.js +0 -4
  194. package/es-modules/Series/Networkgraph/DraggableNodes.js +0 -4
  195. package/es-modules/Series/Networkgraph/Integrations.js +8 -22
  196. package/es-modules/Series/Networkgraph/Networkgraph.js +1 -5
  197. package/es-modules/Series/Networkgraph/QuadTree.js +1 -3
  198. package/es-modules/Series/NodesComposition.js +2 -1
  199. package/es-modules/Series/OHLC/OHLCPoint.js +0 -1
  200. package/es-modules/Series/OHLC/OHLCSeries.js +1 -1
  201. package/es-modules/Series/Organization/OrganizationSeries.js +4 -2
  202. package/es-modules/Series/PackedBubble/PackedBubbleComposition.js +1 -0
  203. package/es-modules/Series/PackedBubble/PackedBubblePoint.js +1 -1
  204. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +2 -4
  205. package/es-modules/Series/Pie/PiePoint.js +2 -2
  206. package/es-modules/Series/Pie/PieSeries.js +1 -1
  207. package/es-modules/Series/Pie3D/Pie3DComposition.js +2 -1
  208. package/es-modules/Series/Pie3D/Pie3DPoint.js +2 -1
  209. package/es-modules/Series/Pie3D/Pie3DSeries.js +1 -1
  210. package/es-modules/Series/Pyramid3D/Pyramid3DSeries.js +2 -1
  211. package/es-modules/Series/Sankey/SankeySeries.js +3 -2
  212. package/es-modules/Series/SolidGauge/SolidGaugeComposition.js +3 -1
  213. package/es-modules/Series/Spline/SplineSeries.js +0 -8
  214. package/es-modules/Series/Sunburst/SunburstSeries.js +2 -2
  215. package/es-modules/Series/Sunburst/SunburstUtilities.js +3 -2
  216. package/es-modules/Series/Tilemap/TilemapPoint.js +0 -2
  217. package/es-modules/Series/Tilemap/TilemapShapes.js +0 -7
  218. package/es-modules/Series/TreeUtilities.js +2 -2
  219. package/es-modules/Series/Treemap/TreemapSeries.js +18 -21
  220. package/es-modules/Series/Variwide/VariwideSeries.js +5 -1
  221. package/es-modules/Series/Venn/VennSeries.js +6 -9
  222. package/es-modules/Series/Venn/VennUtils.js +8 -7
  223. package/es-modules/Series/Waterfall/WaterfallSeries.js +6 -3
  224. package/es-modules/Series/Wordcloud/WordcloudSeries.js +2 -2
  225. package/es-modules/Series/Wordcloud/WordcloudUtils.js +6 -10
  226. package/es-modules/Series/XRange/XRangePoint.js +6 -12
  227. package/es-modules/Series/XRange/XRangeSeries.js +4 -20
  228. package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +12 -0
  229. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +1 -0
  230. package/es-modules/Stock/Indicators/BB/BBIndicator.js +12 -0
  231. package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +35 -15
  232. package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +9 -5
  233. package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +2 -1
  234. package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +6 -6
  235. package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +12 -0
  236. package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +8 -3
  237. package/es-modules/Stock/Indicators/LinearRegression/LinearRegression.js +30 -12
  238. package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +1 -1
  239. package/es-modules/Stock/Indicators/MultipleLinesComposition.js +70 -6
  240. package/es-modules/Stock/Indicators/PC/PCIndicator.js +11 -0
  241. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +2 -1
  242. package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +2 -1
  243. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +2 -3
  244. package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +3 -1
  245. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +3 -3
  246. package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +19 -7
  247. package/es-modules/Stock/StockToolsBindings.js +13 -6
  248. package/es-modules/Stock/StockToolsGui.js +34 -23
  249. package/es-modules/masters/highcharts-3d.src.js +1 -1
  250. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  251. package/es-modules/masters/highcharts-more.src.js +1 -1
  252. package/es-modules/masters/highcharts.src.js +1 -1
  253. package/es-modules/masters/highmaps.src.js +1 -1
  254. package/es-modules/masters/highstock.src.js +1 -1
  255. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  256. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  257. package/es-modules/masters/indicators/ao.src.js +1 -1
  258. package/es-modules/masters/indicators/apo.src.js +1 -1
  259. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  260. package/es-modules/masters/indicators/aroon.src.js +1 -1
  261. package/es-modules/masters/indicators/atr.src.js +1 -1
  262. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  263. package/es-modules/masters/indicators/cci.src.js +1 -1
  264. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  265. package/es-modules/masters/indicators/cmf.src.js +1 -1
  266. package/es-modules/masters/indicators/cmo.src.js +1 -1
  267. package/es-modules/masters/indicators/dema.src.js +1 -1
  268. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  269. package/es-modules/masters/indicators/dmi.src.js +1 -1
  270. package/es-modules/masters/indicators/dpo.src.js +1 -1
  271. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  272. package/es-modules/masters/indicators/indicators-all.src.js +1 -1
  273. package/es-modules/masters/indicators/indicators.src.js +1 -1
  274. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  275. package/es-modules/masters/indicators/klinger.src.js +1 -1
  276. package/es-modules/masters/indicators/macd.src.js +1 -1
  277. package/es-modules/masters/indicators/mfi.src.js +1 -1
  278. package/es-modules/masters/indicators/momentum.src.js +1 -1
  279. package/es-modules/masters/indicators/natr.src.js +1 -1
  280. package/es-modules/masters/indicators/obv.src.js +1 -1
  281. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  282. package/es-modules/masters/indicators/ppo.src.js +1 -1
  283. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  284. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  285. package/es-modules/masters/indicators/psar.src.js +1 -1
  286. package/es-modules/masters/indicators/regressions.src.js +1 -1
  287. package/es-modules/masters/indicators/roc.src.js +1 -1
  288. package/es-modules/masters/indicators/rsi.src.js +1 -1
  289. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  290. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  291. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  292. package/es-modules/masters/indicators/tema.src.js +1 -1
  293. package/es-modules/masters/indicators/trendline.src.js +1 -1
  294. package/es-modules/masters/indicators/trix.src.js +1 -1
  295. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  296. package/es-modules/masters/indicators/vwap.src.js +1 -1
  297. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  298. package/es-modules/masters/indicators/wma.src.js +1 -1
  299. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  300. package/es-modules/masters/modules/accessibility.src.js +2 -2
  301. package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
  302. package/es-modules/masters/modules/annotations.src.js +1 -1
  303. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  304. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  305. package/es-modules/masters/modules/boost.src.js +1 -1
  306. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  307. package/es-modules/masters/modules/bullet.src.js +1 -1
  308. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  309. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  310. package/es-modules/masters/modules/cylinder.src.js +1 -1
  311. package/es-modules/masters/modules/data.src.js +1 -1
  312. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  313. package/es-modules/masters/modules/debugger.src.js +1 -1
  314. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  315. package/es-modules/masters/modules/dotplot.src.js +1 -1
  316. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  317. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  318. package/es-modules/masters/modules/drilldown.src.js +1 -1
  319. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  320. package/es-modules/masters/modules/export-data.src.js +1 -1
  321. package/es-modules/masters/modules/exporting.src.js +1 -1
  322. package/es-modules/masters/modules/full-screen.src.js +1 -1
  323. package/es-modules/masters/modules/funnel.src.js +1 -1
  324. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  325. package/es-modules/masters/modules/gantt.src.js +1 -1
  326. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  327. package/es-modules/masters/modules/heatmap.src.js +1 -1
  328. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  329. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  330. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  331. package/es-modules/masters/modules/item-series.src.js +1 -1
  332. package/es-modules/masters/modules/lollipop.src.js +1 -1
  333. package/es-modules/masters/modules/map.src.js +1 -1
  334. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  335. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  336. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  337. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  338. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  339. package/es-modules/masters/modules/oldie.src.js +1 -1
  340. package/es-modules/masters/modules/organization.src.js +1 -1
  341. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  342. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  343. package/es-modules/masters/modules/pareto.src.js +1 -1
  344. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  345. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  346. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  347. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  348. package/es-modules/masters/modules/sankey.src.js +1 -1
  349. package/es-modules/masters/modules/series-label.src.js +1 -1
  350. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  351. package/es-modules/masters/modules/sonification.src.js +1 -1
  352. package/es-modules/masters/modules/static-scale.src.js +1 -1
  353. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  354. package/es-modules/masters/modules/stock.src.js +1 -1
  355. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  356. package/es-modules/masters/modules/sunburst.src.js +1 -1
  357. package/es-modules/masters/modules/tilemap.src.js +1 -1
  358. package/es-modules/masters/modules/timeline.src.js +1 -1
  359. package/es-modules/masters/modules/treegrid.src.js +1 -1
  360. package/es-modules/masters/modules/treemap.src.js +1 -1
  361. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  362. package/es-modules/masters/modules/variwide.src.js +1 -1
  363. package/es-modules/masters/modules/vector.src.js +1 -1
  364. package/es-modules/masters/modules/venn.src.js +1 -1
  365. package/es-modules/masters/modules/windbarb.src.js +1 -1
  366. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  367. package/es-modules/masters/modules/xrange.src.js +1 -1
  368. package/es-modules/masters/themes/avocado.src.js +1 -1
  369. package/es-modules/masters/themes/brand-dark.src.js +14 -0
  370. package/es-modules/masters/themes/brand-light.src.js +14 -0
  371. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  372. package/es-modules/masters/themes/dark-green.src.js +1 -1
  373. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  374. package/es-modules/masters/themes/gray.src.js +1 -1
  375. package/es-modules/masters/themes/grid-light.src.js +1 -1
  376. package/es-modules/masters/themes/grid.src.js +1 -1
  377. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  378. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  379. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  380. package/es-modules/masters/themes/skies.src.js +1 -1
  381. package/es-modules/masters/themes/sunset.src.js +1 -1
  382. package/highcharts-3d.js +1 -1
  383. package/highcharts-3d.js.map +1 -1
  384. package/highcharts-3d.src.js +65 -35
  385. package/highcharts-gantt.js +799 -799
  386. package/highcharts-gantt.js.map +1 -1
  387. package/highcharts-gantt.src.js +589 -698
  388. package/highcharts-more.js +1 -1
  389. package/highcharts-more.js.map +1 -1
  390. package/highcharts-more.src.js +73 -103
  391. package/highcharts.d.ts +5586 -1709
  392. package/highcharts.js +577 -577
  393. package/highcharts.js.map +1 -1
  394. package/highcharts.src.d.ts +5586 -1709
  395. package/highcharts.src.js +391 -486
  396. package/highmaps.js +723 -723
  397. package/highmaps.js.map +1 -1
  398. package/highmaps.src.js +552 -656
  399. package/highstock.js +782 -782
  400. package/highstock.js.map +1 -1
  401. package/highstock.src.js +612 -731
  402. package/indicators/acceleration-bands.d.ts +17 -1
  403. package/indicators/acceleration-bands.js +11 -10
  404. package/indicators/acceleration-bands.js.map +1 -1
  405. package/indicators/acceleration-bands.src.d.ts +17 -1
  406. package/indicators/acceleration-bands.src.js +88 -6
  407. package/indicators/accumulation-distribution.js +1 -1
  408. package/indicators/accumulation-distribution.src.js +1 -1
  409. package/indicators/ao.js +1 -1
  410. package/indicators/ao.src.js +1 -1
  411. package/indicators/apo.js +1 -1
  412. package/indicators/apo.src.js +1 -1
  413. package/indicators/aroon-oscillator.d.ts +17 -1
  414. package/indicators/aroon-oscillator.js +10 -9
  415. package/indicators/aroon-oscillator.js.map +1 -1
  416. package/indicators/aroon-oscillator.src.d.ts +17 -1
  417. package/indicators/aroon-oscillator.src.js +76 -6
  418. package/indicators/aroon.d.ts +17 -1
  419. package/indicators/aroon.js +11 -9
  420. package/indicators/aroon.js.map +1 -1
  421. package/indicators/aroon.src.d.ts +17 -1
  422. package/indicators/aroon.src.js +77 -6
  423. package/indicators/atr.js +1 -1
  424. package/indicators/atr.src.js +1 -1
  425. package/indicators/bollinger-bands.d.ts +17 -1
  426. package/indicators/bollinger-bands.js +12 -10
  427. package/indicators/bollinger-bands.js.map +1 -1
  428. package/indicators/bollinger-bands.src.d.ts +17 -1
  429. package/indicators/bollinger-bands.src.js +88 -6
  430. package/indicators/cci.js +1 -1
  431. package/indicators/cci.src.js +1 -1
  432. package/indicators/chaikin.js +1 -1
  433. package/indicators/chaikin.src.js +1 -1
  434. package/indicators/cmf.js +1 -1
  435. package/indicators/cmf.js.map +1 -1
  436. package/indicators/cmf.src.js +36 -16
  437. package/indicators/cmo.js +1 -1
  438. package/indicators/cmo.src.js +1 -1
  439. package/indicators/dema.js +1 -1
  440. package/indicators/dema.src.js +1 -1
  441. package/indicators/disparity-index.js +1 -1
  442. package/indicators/disparity-index.js.map +1 -1
  443. package/indicators/disparity-index.src.js +3 -2
  444. package/indicators/dmi.js +12 -11
  445. package/indicators/dmi.js.map +1 -1
  446. package/indicators/dmi.src.js +85 -11
  447. package/indicators/dpo.js +1 -1
  448. package/indicators/dpo.src.js +1 -1
  449. package/indicators/ichimoku-kinko-hyo.js +1 -1
  450. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  451. package/indicators/ichimoku-kinko-hyo.src.js +7 -7
  452. package/indicators/indicators-all.d.ts +17 -1
  453. package/indicators/indicators-all.js +198 -197
  454. package/indicators/indicators-all.js.map +1 -1
  455. package/indicators/indicators-all.src.d.ts +17 -1
  456. package/indicators/indicators-all.src.js +246 -65
  457. package/indicators/indicators.js +1 -1
  458. package/indicators/indicators.js.map +1 -1
  459. package/indicators/indicators.src.js +3 -4
  460. package/indicators/keltner-channels.d.ts +17 -1
  461. package/indicators/keltner-channels.js +11 -10
  462. package/indicators/keltner-channels.js.map +1 -1
  463. package/indicators/keltner-channels.src.d.ts +17 -1
  464. package/indicators/keltner-channels.src.js +88 -6
  465. package/indicators/klinger.js +14 -12
  466. package/indicators/klinger.js.map +1 -1
  467. package/indicators/klinger.src.js +84 -9
  468. package/indicators/macd.js +1 -1
  469. package/indicators/macd.js.map +1 -1
  470. package/indicators/macd.src.js +2 -2
  471. package/indicators/mfi.js +1 -1
  472. package/indicators/mfi.src.js +1 -1
  473. package/indicators/momentum.js +1 -1
  474. package/indicators/momentum.src.js +1 -1
  475. package/indicators/natr.js +1 -1
  476. package/indicators/natr.src.js +1 -1
  477. package/indicators/obv.js +1 -1
  478. package/indicators/obv.src.js +1 -1
  479. package/indicators/pivot-points.js +1 -1
  480. package/indicators/pivot-points.js.map +1 -1
  481. package/indicators/pivot-points.src.js +3 -2
  482. package/indicators/ppo.js +1 -1
  483. package/indicators/ppo.src.js +1 -1
  484. package/indicators/price-channel.d.ts +17 -1
  485. package/indicators/price-channel.js +11 -9
  486. package/indicators/price-channel.js.map +1 -1
  487. package/indicators/price-channel.src.d.ts +17 -1
  488. package/indicators/price-channel.src.js +87 -6
  489. package/indicators/price-envelopes.js +1 -1
  490. package/indicators/price-envelopes.src.js +1 -1
  491. package/indicators/psar.js +1 -1
  492. package/indicators/psar.src.js +1 -1
  493. package/indicators/regressions.js +1 -1
  494. package/indicators/regressions.js.map +1 -1
  495. package/indicators/regressions.src.js +31 -13
  496. package/indicators/roc.js +1 -1
  497. package/indicators/roc.src.js +1 -1
  498. package/indicators/rsi.js +1 -1
  499. package/indicators/rsi.js.map +1 -1
  500. package/indicators/rsi.src.js +3 -2
  501. package/indicators/slow-stochastic.js +1 -1
  502. package/indicators/slow-stochastic.src.js +1 -1
  503. package/indicators/stochastic.d.ts +17 -1
  504. package/indicators/stochastic.js +12 -10
  505. package/indicators/stochastic.js.map +1 -1
  506. package/indicators/stochastic.src.d.ts +17 -1
  507. package/indicators/stochastic.src.js +79 -7
  508. package/indicators/supertrend.js +1 -1
  509. package/indicators/supertrend.src.js +1 -1
  510. package/indicators/tema.js +1 -1
  511. package/indicators/tema.src.js +1 -1
  512. package/indicators/trendline.js +1 -1
  513. package/indicators/trendline.src.js +1 -1
  514. package/indicators/trix.js +1 -1
  515. package/indicators/trix.src.js +1 -1
  516. package/indicators/volume-by-price.js +1 -1
  517. package/indicators/volume-by-price.src.js +4 -4
  518. package/indicators/vwap.js +1 -1
  519. package/indicators/vwap.js.map +1 -1
  520. package/indicators/vwap.src.js +20 -8
  521. package/indicators/williams-r.js +1 -1
  522. package/indicators/williams-r.src.js +1 -1
  523. package/indicators/wma.js +1 -1
  524. package/indicators/wma.src.js +1 -1
  525. package/indicators/zigzag.js +1 -1
  526. package/indicators/zigzag.src.js +1 -1
  527. package/modules/accessibility.d.ts +0 -35
  528. package/modules/accessibility.js +225 -222
  529. package/modules/accessibility.js.map +1 -1
  530. package/modules/accessibility.src.d.ts +0 -35
  531. package/modules/accessibility.src.js +503 -418
  532. package/modules/annotations-advanced.js +128 -128
  533. package/modules/annotations-advanced.js.map +1 -1
  534. package/modules/annotations-advanced.src.js +152 -124
  535. package/modules/annotations.js +122 -122
  536. package/modules/annotations.js.map +1 -1
  537. package/modules/annotations.src.js +112 -100
  538. package/modules/arrow-symbols.js +1 -1
  539. package/modules/arrow-symbols.src.js +1 -1
  540. package/modules/boost-canvas.js +1 -1
  541. package/modules/boost-canvas.src.js +1 -1
  542. package/modules/boost.js +1 -1
  543. package/modules/boost.js.map +1 -1
  544. package/modules/boost.src.js +33 -43
  545. package/modules/broken-axis.js +1 -1
  546. package/modules/broken-axis.js.map +1 -1
  547. package/modules/broken-axis.src.js +18 -12
  548. package/modules/bullet.js +1 -1
  549. package/modules/bullet.src.js +1 -1
  550. package/modules/coloraxis.js +1 -1
  551. package/modules/coloraxis.js.map +1 -1
  552. package/modules/coloraxis.src.js +11 -8
  553. package/modules/current-date-indicator.js +1 -1
  554. package/modules/current-date-indicator.src.js +1 -1
  555. package/modules/cylinder.js +1 -1
  556. package/modules/cylinder.js.map +1 -1
  557. package/modules/cylinder.src.js +37 -5
  558. package/modules/data.d.ts +6 -6
  559. package/modules/data.js +31 -31
  560. package/modules/data.js.map +1 -1
  561. package/modules/data.src.d.ts +6 -6
  562. package/modules/data.src.js +10 -53
  563. package/modules/datagrouping.js +2 -2
  564. package/modules/datagrouping.js.map +1 -1
  565. package/modules/datagrouping.src.js +23 -16
  566. package/modules/debugger.js +1 -1
  567. package/modules/debugger.src.js +1 -1
  568. package/modules/dependency-wheel.js +3 -3
  569. package/modules/dependency-wheel.js.map +1 -1
  570. package/modules/dependency-wheel.src.js +2 -2
  571. package/modules/dotplot.js +1 -1
  572. package/modules/dotplot.src.js +1 -1
  573. package/modules/drag-panes.js +1 -1
  574. package/modules/drag-panes.src.js +1 -1
  575. package/modules/draggable-points.js +1 -1
  576. package/modules/draggable-points.js.map +1 -1
  577. package/modules/draggable-points.src.js +8 -9
  578. package/modules/drilldown.js +1 -1
  579. package/modules/drilldown.js.map +1 -1
  580. package/modules/drilldown.src.js +10 -5
  581. package/modules/dumbbell.js +1 -1
  582. package/modules/dumbbell.js.map +1 -1
  583. package/modules/dumbbell.src.js +1 -5
  584. package/modules/export-data.js +19 -19
  585. package/modules/export-data.js.map +1 -1
  586. package/modules/export-data.src.js +7 -6
  587. package/modules/exporting.js +1 -1
  588. package/modules/exporting.js.map +1 -1
  589. package/modules/exporting.src.js +33 -45
  590. package/modules/full-screen.js +1 -1
  591. package/modules/full-screen.js.map +1 -1
  592. package/modules/full-screen.src.js +5 -4
  593. package/modules/funnel.js +1 -1
  594. package/modules/funnel.src.js +1 -1
  595. package/modules/funnel3d.js +1 -1
  596. package/modules/funnel3d.js.map +1 -1
  597. package/modules/funnel3d.src.js +17 -10
  598. package/modules/gantt.js +1 -1
  599. package/modules/gantt.js.map +1 -1
  600. package/modules/gantt.src.js +199 -213
  601. package/modules/grid-axis.js +1 -1
  602. package/modules/grid-axis.js.map +1 -1
  603. package/modules/grid-axis.src.js +27 -19
  604. package/modules/heatmap.js +39 -39
  605. package/modules/heatmap.js.map +1 -1
  606. package/modules/heatmap.src.js +88 -112
  607. package/modules/heikinashi.js +1 -1
  608. package/modules/heikinashi.js.map +1 -1
  609. package/modules/heikinashi.src.js +9 -7
  610. package/modules/histogram-bellcurve.js +1 -1
  611. package/modules/histogram-bellcurve.js.map +1 -1
  612. package/modules/histogram-bellcurve.src.js +7 -6
  613. package/modules/hollowcandlestick.js +1 -1
  614. package/modules/hollowcandlestick.js.map +1 -1
  615. package/modules/hollowcandlestick.src.js +21 -25
  616. package/modules/item-series.js +6 -6
  617. package/modules/item-series.js.map +1 -1
  618. package/modules/item-series.src.js +6 -6
  619. package/modules/lollipop.js +1 -1
  620. package/modules/lollipop.src.js +1 -1
  621. package/modules/map.d.ts +2 -0
  622. package/modules/map.js +144 -144
  623. package/modules/map.js.map +1 -1
  624. package/modules/map.src.d.ts +2 -0
  625. package/modules/map.src.js +162 -171
  626. package/modules/marker-clusters.js +1 -1
  627. package/modules/marker-clusters.js.map +1 -1
  628. package/modules/marker-clusters.src.js +4 -2
  629. package/modules/networkgraph.js +1 -1
  630. package/modules/networkgraph.js.map +1 -1
  631. package/modules/networkgraph.src.js +13 -36
  632. package/modules/no-data-to-display.js +1 -1
  633. package/modules/no-data-to-display.src.js +1 -1
  634. package/modules/offline-exporting.js +18 -18
  635. package/modules/offline-exporting.js.map +1 -1
  636. package/modules/offline-exporting.src.js +27 -32
  637. package/modules/oldie-polyfills.js +1 -1
  638. package/modules/oldie-polyfills.src.js +1 -1
  639. package/modules/oldie.js +2 -2
  640. package/modules/oldie.js.map +1 -1
  641. package/modules/oldie.src.js +19 -79
  642. package/modules/organization.js +1 -1
  643. package/modules/organization.js.map +1 -1
  644. package/modules/organization.src.js +5 -3
  645. package/modules/overlapping-datalabels.js +1 -1
  646. package/modules/overlapping-datalabels.src.js +1 -1
  647. package/modules/parallel-coordinates.js +1 -1
  648. package/modules/parallel-coordinates.js.map +1 -1
  649. package/modules/parallel-coordinates.src.js +6 -4
  650. package/modules/pareto.js +1 -1
  651. package/modules/pareto.src.js +1 -1
  652. package/modules/pathfinder.js +1 -1
  653. package/modules/pathfinder.js.map +1 -1
  654. package/modules/pathfinder.src.js +21 -20
  655. package/modules/pattern-fill.js +1 -1
  656. package/modules/pattern-fill.js.map +1 -1
  657. package/modules/pattern-fill.src.js +18 -12
  658. package/modules/price-indicator.js +1 -1
  659. package/modules/price-indicator.js.map +1 -1
  660. package/modules/price-indicator.src.js +3 -2
  661. package/modules/pyramid3d.js +1 -1
  662. package/modules/pyramid3d.js.map +1 -1
  663. package/modules/pyramid3d.src.js +3 -2
  664. package/modules/sankey.js +1 -1
  665. package/modules/sankey.js.map +1 -1
  666. package/modules/sankey.src.js +8 -6
  667. package/modules/series-label.js +1 -1
  668. package/modules/series-label.js.map +1 -1
  669. package/modules/series-label.src.js +2 -2
  670. package/modules/solid-gauge.js +1 -1
  671. package/modules/solid-gauge.js.map +1 -1
  672. package/modules/solid-gauge.src.js +17 -2
  673. package/modules/sonification.js +53 -53
  674. package/modules/sonification.js.map +1 -1
  675. package/modules/sonification.src.js +121 -103
  676. package/modules/static-scale.js +1 -1
  677. package/modules/static-scale.src.js +1 -1
  678. package/modules/stock-tools.js +66 -66
  679. package/modules/stock-tools.js.map +1 -1
  680. package/modules/stock-tools.src.js +119 -96
  681. package/modules/stock.js +3 -3
  682. package/modules/stock.js.map +1 -1
  683. package/modules/stock.src.js +222 -246
  684. package/modules/streamgraph.js +1 -1
  685. package/modules/streamgraph.src.js +1 -1
  686. package/modules/sunburst.js +60 -61
  687. package/modules/sunburst.js.map +1 -1
  688. package/modules/sunburst.src.js +83 -113
  689. package/modules/tilemap.js +1 -1
  690. package/modules/tilemap.js.map +1 -1
  691. package/modules/tilemap.src.js +1 -10
  692. package/modules/timeline.js +1 -1
  693. package/modules/timeline.src.js +1 -1
  694. package/modules/treegrid.js +1 -1
  695. package/modules/treegrid.js.map +1 -1
  696. package/modules/treegrid.src.js +76 -50
  697. package/modules/treemap.js +41 -41
  698. package/modules/treemap.js.map +1 -1
  699. package/modules/treemap.src.js +78 -109
  700. package/modules/variable-pie.js +1 -1
  701. package/modules/variable-pie.src.js +1 -1
  702. package/modules/variwide.js +1 -1
  703. package/modules/variwide.js.map +1 -1
  704. package/modules/variwide.src.js +7 -3
  705. package/modules/vector.js +1 -1
  706. package/modules/vector.src.js +1 -1
  707. package/modules/venn.js +1 -1
  708. package/modules/venn.js.map +1 -1
  709. package/modules/venn.src.js +17 -18
  710. package/modules/windbarb.js +1 -1
  711. package/modules/windbarb.src.js +1 -1
  712. package/modules/wordcloud.js +1 -1
  713. package/modules/wordcloud.js.map +1 -1
  714. package/modules/wordcloud.src.js +9 -13
  715. package/modules/xrange.js +1 -1
  716. package/modules/xrange.js.map +1 -1
  717. package/modules/xrange.src.js +11 -33
  718. package/package.json +1 -1
  719. package/themes/avocado.js +1 -1
  720. package/themes/avocado.src.js +1 -1
  721. package/themes/brand-dark.js +15 -0
  722. package/themes/brand-dark.js.map +1 -0
  723. package/themes/brand-dark.src.js +328 -0
  724. package/themes/brand-light.js +15 -0
  725. package/themes/brand-light.js.map +1 -0
  726. package/themes/brand-light.src.js +294 -0
  727. package/themes/dark-blue.js +1 -1
  728. package/themes/dark-blue.src.js +1 -1
  729. package/themes/dark-green.js +1 -1
  730. package/themes/dark-green.src.js +1 -1
  731. package/themes/dark-unica.js +1 -1
  732. package/themes/dark-unica.js.map +1 -1
  733. package/themes/dark-unica.src.js +5 -3
  734. package/themes/gray.js +1 -1
  735. package/themes/gray.src.js +1 -1
  736. package/themes/grid-light.js +1 -1
  737. package/themes/grid-light.js.map +1 -1
  738. package/themes/grid-light.src.js +5 -3
  739. package/themes/grid.js +1 -1
  740. package/themes/grid.js.map +1 -1
  741. package/themes/grid.src.js +5 -3
  742. package/themes/high-contrast-dark.js +1 -1
  743. package/themes/high-contrast-dark.src.js +1 -1
  744. package/themes/high-contrast-light.js +1 -1
  745. package/themes/high-contrast-light.src.js +1 -1
  746. package/themes/sand-signika.js +1 -1
  747. package/themes/sand-signika.src.js +1 -1
  748. package/themes/skies.js +1 -1
  749. package/themes/skies.src.js +1 -1
  750. package/themes/sunset.js +1 -1
  751. package/themes/sunset.src.js +1 -1
  752. package/es-modules/Series/ColorMapComposition.js +0 -109
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v9.3.1 (2021-11-05)
2
+ * @license Highcharts JS v9.3.2 (2021-11-29)
3
3
  *
4
4
  * Accessibility module
5
5
  *
@@ -88,13 +88,9 @@
88
88
  *
89
89
  * @private
90
90
  * @function formatExtendedStatement
91
- *
92
91
  * @param {string} statement
93
- *
94
92
  * @param {Highcharts.Dictionary<*>} ctx
95
93
  * Context to apply to the format string.
96
- *
97
- * @return {string}
98
94
  */
99
95
  function formatExtendedStatement(statement, ctx) {
100
96
  var eachStart = statement.indexOf('#each('), pluralStart = statement.indexOf('#plural('), indexStart = statement.indexOf('['), indexEnd = statement.indexOf(']');
@@ -121,7 +117,7 @@
121
117
  }
122
118
  // Dealing with a plural-function?
123
119
  if (pluralStart > -1) {
124
- var pluralEnd = statement.slice(pluralStart).indexOf(')') + pluralStart, pluralStatement = statement.substring(pluralStart + 8, pluralEnd), pluralArguments = pluralStatement.split(','), num = Number(ctx[pluralArguments[0]]);
120
+ var pluralEnd = (statement.slice(pluralStart).indexOf(')') + pluralStart), pluralStatement = statement.substring(pluralStart + 8, pluralEnd), pluralArguments = pluralStatement.split(','), num = Number(ctx[pluralArguments[0]]);
125
121
  switch (num) {
126
122
  case 0:
127
123
  result = pick(pluralArguments[4], pluralArguments[1]);
@@ -456,8 +452,6 @@
456
452
  }
457
453
  /**
458
454
  * @private
459
- * @param {string} str
460
- * @return {string}
461
455
  */
462
456
  function escapeStringForHTML(str) {
463
457
  return str
@@ -470,18 +464,14 @@
470
464
  }
471
465
  /**
472
466
  * Get an element by ID
473
- * @param {string} id
474
467
  * @private
475
- * @return {Highcharts.HTMLDOMElement|Highcharts.SVGDOMElement|null}
476
468
  */
477
469
  function getElement(id) {
478
470
  return doc.getElementById(id);
479
471
  }
480
472
  /**
481
473
  * Get a fake mouse event of a given type
482
- * @param {string} type
483
474
  * @private
484
- * @return {global.MouseEvent}
485
475
  */
486
476
  function getFakeMouseEvent(type, position) {
487
477
  var pos = position || {
@@ -596,8 +586,6 @@
596
586
  /**
597
587
  * Utility function. Reverses child nodes of a DOM element.
598
588
  * @private
599
- * @param {Highcharts.HTMLDOMElement|Highcharts.SVGDOMElement} node
600
- * @return {void}
601
589
  */
602
590
  function reverseChildNodes(node) {
603
591
  var i = node.childNodes.length;
@@ -609,8 +597,6 @@
609
597
  * Used for aria-label attributes, painting on a canvas will fail if the
610
598
  * text contains tags.
611
599
  * @private
612
- * @param {string} str
613
- * @return {string}
614
600
  */
615
601
  function stripHTMLTagsFromString(str) {
616
602
  return typeof str === 'string' ?
@@ -620,8 +606,6 @@
620
606
  * Utility function for hiding an element visually, but still keeping it
621
607
  * available to screen reader users.
622
608
  * @private
623
- * @param {Highcharts.HTMLDOMElement} element
624
- * @return {void}
625
609
  */
626
610
  function visuallyHideElement(element) {
627
611
  css(element, {
@@ -685,12 +669,14 @@
685
669
  /* eslint-disable valid-jsdoc */
686
670
  /**
687
671
  * Fire an event on an element that is either wrapped by Highcharts,
688
- * or a DOM element
672
+ * or a DOM element.
673
+ * @private
689
674
  */
690
675
  function fireEventOnWrappedOrUnwrappedElement(el, eventObject) {
691
676
  var type = eventObject.type;
692
677
  var hcEvents = el.hcEvents;
693
- if (doc.createEvent && (el.dispatchEvent || el.fireEvent)) {
678
+ if (doc.createEvent &&
679
+ (el.dispatchEvent || el.fireEvent)) {
694
680
  if (el.dispatchEvent) {
695
681
  el.dispatchEvent(eventObject);
696
682
  }
@@ -706,7 +692,7 @@
706
692
  }
707
693
  }
708
694
  /**
709
- * @return {string}
695
+ * @private
710
696
  */
711
697
  function getChartTitle(chart) {
712
698
  return stripHTMLTags(chart.options.title.text ||
@@ -714,8 +700,7 @@
714
700
  }
715
701
  /**
716
702
  * Return string with the axis name/title.
717
- * @param {Highcharts.Axis} axis
718
- * @return {string}
703
+ * @private
719
704
  */
720
705
  function getAxisDescription(axis) {
721
706
  return axis && (axis.userOptions && axis.userOptions.accessibility &&
@@ -728,8 +713,11 @@
728
713
  }
729
714
  /**
730
715
  * Return string with text description of the axis range.
731
- * @param {Highcharts.Axis} axis The axis to get range desc of.
732
- * @return {string} A string with the range description for the axis.
716
+ * @private
717
+ * @param {Highcharts.Axis} axis
718
+ * The axis to get range desc of.
719
+ * @return {string}
720
+ * A string with the range description for the axis.
733
721
  */
734
722
  function getAxisRangeDescription(axis) {
735
723
  var axisOptions = axis.options || {};
@@ -752,8 +740,7 @@
752
740
  }
753
741
  /**
754
742
  * Describe the range of a category axis.
755
- * @param {Highcharts.Axis} axis
756
- * @return {string}
743
+ * @private
757
744
  */
758
745
  function getCategoryAxisRangeDesc(axis) {
759
746
  var chart = axis.chart;
@@ -768,8 +755,7 @@
768
755
  }
769
756
  /**
770
757
  * Describe the length of the time window shown on an axis.
771
- * @param {Highcharts.Axis} axis
772
- * @return {string}
758
+ * @private
773
759
  */
774
760
  function getAxisTimeLengthDesc(axis) {
775
761
  var chart = axis.chart,
@@ -796,14 +782,14 @@
796
782
  }
797
783
  /**
798
784
  * Describe an axis from-to range.
799
- * @param {Highcharts.Axis} axis
800
- * @return {string}
785
+ * @private
801
786
  */
802
787
  function getAxisFromToDescription(axis) {
803
788
  var chart = axis.chart,
804
- dateRangeFormat = (chart.options &&
805
- chart.options.accessibility &&
806
- chart.options.accessibility.screenReaderSection.axisRangeDateFormat ||
789
+ options = chart.options,
790
+ dateRangeFormat = (options &&
791
+ options.accessibility &&
792
+ options.accessibility.screenReaderSection.axisRangeDateFormat ||
807
793
  ''),
808
794
  format = function (axisKey) {
809
795
  return axis.dateTime ? chart.time.dateFormat(dateRangeFormat,
@@ -852,8 +838,6 @@
852
838
  * Remove aria-hidden from element. Also unhides parents of the element, and
853
839
  * hides siblings that are not explicitly unhidden.
854
840
  * @private
855
- * @param {Highcharts.Chart} chart
856
- * @param {Highcharts.HTMLDOMElement|Highcharts.SVGDOMElement} element
857
841
  */
858
842
  function unhideChartElementFromAT(chart, element) {
859
843
  element.setAttribute('aria-hidden', false);
@@ -875,9 +859,6 @@
875
859
  /**
876
860
  * Hide series from screen readers.
877
861
  * @private
878
- * @param {Highcharts.Series} series
879
- * The series to hide
880
- * @return {void}
881
862
  */
882
863
  function hideSeriesFromAT(series) {
883
864
  var seriesEl = getSeriesA11yElement(series);
@@ -888,9 +869,6 @@
888
869
  /**
889
870
  * Get series objects by series name.
890
871
  * @private
891
- * @param {Highcharts.Chart} chart
892
- * @param {string} name
893
- * @return {Array<Highcharts.Series>}
894
872
  */
895
873
  function getSeriesFromName(chart, name) {
896
874
  if (!name) {
@@ -903,10 +881,6 @@
903
881
  /**
904
882
  * Get point in a series from x/y values.
905
883
  * @private
906
- * @param {Array<Highcharts.Series>} series
907
- * @param {number} x
908
- * @param {number} y
909
- * @return {Highcharts.Point|undefined}
910
884
  */
911
885
  function getPointFromXY(series, x, y) {
912
886
  var i = series.length,
@@ -923,9 +897,6 @@
923
897
  /**
924
898
  * Get relative position of point on an x/y axis from 0 to 1.
925
899
  * @private
926
- * @param {Highcharts.Axis} axis
927
- * @param {Highcharts.Point} point
928
- * @return {number}
929
900
  */
930
901
  function getRelativePointAxisPosition(axis, point) {
931
902
  if (!defined(axis.dataMin) || !defined(axis.dataMax)) {
@@ -941,7 +912,6 @@
941
912
  /**
942
913
  * Get relative position of point on an x/y axis from 0 to 1.
943
914
  * @private
944
- * @param {Highcharts.Point} point
945
915
  */
946
916
  function scrollToPoint(point) {
947
917
  var xAxis = point.series.xAxis,
@@ -1229,7 +1199,7 @@
1229
1199
  init: function () { },
1230
1200
  /**
1231
1201
  * Get keyboard navigation handler for this component.
1232
- * @return {Highcharts.KeyboardNavigationHandler}
1202
+ * @private
1233
1203
  */
1234
1204
  getKeyboardNavigation: function () { },
1235
1205
  /**
@@ -1514,7 +1484,7 @@
1514
1484
  };
1515
1485
  /**
1516
1486
  * Empty handler to just set focus on chart
1517
- * @return {Highcharts.KeyboardNavigationHandler}
1487
+ * @private
1518
1488
  */
1519
1489
  ContainerComponent.prototype.getKeyboardNavigation = function () {
1520
1490
  var chart = this.chart;
@@ -1712,11 +1682,6 @@
1712
1682
  // For text elements, apply x and y offset, #11397.
1713
1683
  /**
1714
1684
  * @private
1715
- * @function
1716
- *
1717
- * @param {Highcharts.SVGElement} text
1718
- *
1719
- * @return {TextAnchorCorrectionObject}
1720
1685
  */
1721
1686
  function getTextAnchorCorrection(text) {
1722
1687
  var posXCorrection = 0,
@@ -1912,12 +1877,12 @@
1912
1877
  clearTimeout(this.clearAnnouncementRegionTimer);
1913
1878
  }
1914
1879
  this.clearAnnouncementRegionTimer = setTimeout(function () {
1915
- _this.announceRegion.innerHTML = '';
1880
+ _this.announceRegion.innerHTML = AST.emptyHTML;
1916
1881
  delete _this.clearAnnouncementRegionTimer;
1917
1882
  }, 1000);
1918
1883
  };
1919
1884
  Announcer.prototype.addAnnounceRegion = function (type) {
1920
- var chartContainer = this.chart.announcerContainer || this.createAnnouncerContainer(),
1885
+ var chartContainer = (this.chart.announcerContainer || this.createAnnouncerContainer()),
1921
1886
  div = this.domElementProvider.createElement('div');
1922
1887
  attr(div, {
1923
1888
  'aria-hidden': false,
@@ -1994,7 +1959,7 @@
1994
1959
  * Get the text of an annotation label.
1995
1960
  *
1996
1961
  * @private
1997
- * @param {object} label The annotation label object
1962
+ * @param {Object} label The annotation label object
1998
1963
  * @return {string} The text in the label.
1999
1964
  */
2000
1965
  function getLabelText(label) {
@@ -2010,7 +1975,7 @@
2010
1975
  * Describe an annotation label.
2011
1976
  *
2012
1977
  * @private
2013
- * @param {object} label The annotation label object to describe
1978
+ * @param {Object} label The annotation label object to describe
2014
1979
  * @return {string} The description for the label.
2015
1980
  */
2016
1981
  function getAnnotationLabelDescription(label) {
@@ -2039,10 +2004,14 @@
2039
2004
  var pointValueDescriptions = points
2040
2005
  .filter(function (p) { return !!p.graphic; }) // Filter out mock points
2041
2006
  .map(getValueDesc)
2042
- .filter(function (desc) { return !!desc; }); // Filter out points we can't describe
2043
- var numPoints = pointValueDescriptions.length;
2044
- var pointsSelector = numPoints > 1 ? 'MultiplePoints' : numPoints ? 'SinglePoint' : 'NoPoints';
2045
- var langFormatStr = 'accessibility.screenReaderSection.annotations.description' + pointsSelector;
2007
+ // Filter out points we can't describe
2008
+ .filter(function (desc) { return !!desc; });
2009
+ var numPoints = pointValueDescriptions.length;
2010
+ var pointsSelector = numPoints > 1 ?
2011
+ 'MultiplePoints' : numPoints ?
2012
+ 'SinglePoint' : 'NoPoints';
2013
+ var langFormatStr = ('accessibility.screenReaderSection.annotations.description' +
2014
+ pointsSelector);
2046
2015
  var context = {
2047
2016
  annotationText: labelText,
2048
2017
  annotation: label,
@@ -2311,7 +2280,8 @@
2311
2280
  after: {
2312
2281
  element: null,
2313
2282
  buildContent: function (chart) {
2314
- var formatter = chart.options.accessibility.screenReaderSection
2283
+ var formatter = chart.options.accessibility
2284
+ .screenReaderSection
2315
2285
  .afterChartFormatter;
2316
2286
  return formatter ? formatter(chart) :
2317
2287
  component.defaultAfterChartFormatter();
@@ -2425,11 +2395,11 @@
2425
2395
  };
2426
2396
  /**
2427
2397
  * @private
2428
- * @return {string}
2429
2398
  */
2430
2399
  InfoRegionsComponent.prototype.defaultBeforeChartFormatter = function () {
2431
- var chart = this.chart;
2432
- var format = chart.options.accessibility.screenReaderSection.beforeChartFormat;
2400
+ var chart = this.chart,
2401
+ format = chart.options.accessibility.screenReaderSection
2402
+ .beforeChartFormat;
2433
2403
  if (!format) {
2434
2404
  return '';
2435
2405
  }
@@ -2467,11 +2437,11 @@
2467
2437
  };
2468
2438
  /**
2469
2439
  * @private
2470
- * @return {string}
2471
2440
  */
2472
2441
  InfoRegionsComponent.prototype.defaultAfterChartFormatter = function () {
2473
2442
  var chart = this.chart;
2474
- var format = chart.options.accessibility.screenReaderSection.afterChartFormat;
2443
+ var format = chart.options.accessibility.screenReaderSection
2444
+ .afterChartFormat;
2475
2445
  if (!format) {
2476
2446
  return '';
2477
2447
  }
@@ -2483,7 +2453,6 @@
2483
2453
  };
2484
2454
  /**
2485
2455
  * @private
2486
- * @return {string}
2487
2456
  */
2488
2457
  InfoRegionsComponent.prototype.getLinkedDescription = function () {
2489
2458
  var el = this.linkedDescriptionElement,
@@ -2492,7 +2461,6 @@
2492
2461
  };
2493
2462
  /**
2494
2463
  * @private
2495
- * @return {string}
2496
2464
  */
2497
2465
  InfoRegionsComponent.prototype.getLongdescText = function () {
2498
2466
  var chartOptions = this.chart.options,
@@ -2506,7 +2474,6 @@
2506
2474
  };
2507
2475
  /**
2508
2476
  * @private
2509
- * @return {string}
2510
2477
  */
2511
2478
  InfoRegionsComponent.prototype.getTypeDescriptionText = function () {
2512
2479
  var chart = this.chart;
@@ -2516,8 +2483,6 @@
2516
2483
  };
2517
2484
  /**
2518
2485
  * @private
2519
- * @param {string} buttonId
2520
- * @return {string}
2521
2486
  */
2522
2487
  InfoRegionsComponent.prototype.getDataTableButtonText = function (buttonId) {
2523
2488
  var chart = this.chart,
@@ -2527,8 +2492,6 @@
2527
2492
  };
2528
2493
  /**
2529
2494
  * @private
2530
- * @param {string} buttonId
2531
- * @return {string}
2532
2495
  */
2533
2496
  InfoRegionsComponent.prototype.getSonifyButtonText = function (buttonId) {
2534
2497
  var chart = this.chart;
@@ -2542,7 +2505,6 @@
2542
2505
  };
2543
2506
  /**
2544
2507
  * @private
2545
- * @return {string}
2546
2508
  */
2547
2509
  InfoRegionsComponent.prototype.getSubtitleText = function () {
2548
2510
  var subtitle = (this.chart.options.subtitle);
@@ -2550,7 +2512,6 @@
2550
2512
  };
2551
2513
  /**
2552
2514
  * @private
2553
- * @return {string}
2554
2515
  */
2555
2516
  InfoRegionsComponent.prototype.getEndOfChartMarkerText = function () {
2556
2517
  var chart = this.chart, markerText = chart.langFormat('accessibility.screenReaderSection.endOfChartMarker', { chart: chart }), id = 'highcharts-end-of-chart-marker-' + chart.index;
@@ -2613,7 +2574,8 @@
2613
2574
  el.setAttribute('tabindex', -1);
2614
2575
  el.onclick = function (e) {
2615
2576
  var onPlayAsSoundClick = (chart.options.accessibility &&
2616
- chart.options.accessibility.screenReaderSection.onPlayAsSoundClick);
2577
+ chart.options.accessibility.screenReaderSection
2578
+ .onPlayAsSoundClick);
2617
2579
  (onPlayAsSoundClick || defaultHandler).call(this, e, chart);
2618
2580
  };
2619
2581
  }
@@ -2640,7 +2602,6 @@
2640
2602
  /**
2641
2603
  * Return object with text description of each of the chart's axes.
2642
2604
  * @private
2643
- * @return {Highcharts.Dictionary<string>}
2644
2605
  */
2645
2606
  InfoRegionsComponent.prototype.getAxesDescription = function () {
2646
2607
  var chart = this.chart,
@@ -2661,8 +2622,6 @@
2661
2622
  };
2662
2623
  /**
2663
2624
  * @private
2664
- * @param {string} collectionKey
2665
- * @return {string}
2666
2625
  */
2667
2626
  InfoRegionsComponent.prototype.getAxisDescriptionText = function (collectionKey) {
2668
2627
  var chart = this.chart;
@@ -2736,17 +2695,13 @@
2736
2695
  /* eslint-disable valid-jsdoc */
2737
2696
  /**
2738
2697
  * Get the wrapped export button element of a chart.
2739
- *
2740
2698
  * @private
2741
- * @param {Highcharts.Chart} chart
2742
- * @returns {Highcharts.SVGElement}
2743
2699
  */
2744
2700
  function getExportMenuButtonElement(chart) {
2745
2701
  return chart.exportSVGElements && chart.exportSVGElements[0];
2746
2702
  }
2747
2703
  /**
2748
2704
  * @private
2749
- * @param {Highcharts.Chart} chart
2750
2705
  */
2751
2706
  function exportingShouldHaveA11y(chart) {
2752
2707
  var exportingOpts = chart.options.exporting,
@@ -2895,7 +2850,7 @@
2895
2850
  };
2896
2851
  /**
2897
2852
  * Get keyboard navigation handler for this component.
2898
- * @return {Highcharts.KeyboardNavigationHandler}
2853
+ * @private
2899
2854
  */
2900
2855
  MenuComponent.prototype.getKeyboardNavigation = function () {
2901
2856
  var keys = this.keyCodes,
@@ -3094,10 +3049,6 @@
3094
3049
  *
3095
3050
  * @private
3096
3051
  * @function Highcharts.Chart#highlightExportItem
3097
- *
3098
- * @param {number} ix
3099
- *
3100
- * @return {boolean}
3101
3052
  */
3102
3053
  function chartHighlightExportItem(ix) {
3103
3054
  var listItem = this.exportDivElements && this.exportDivElements[ix];
@@ -3129,7 +3080,6 @@
3129
3080
  *
3130
3081
  * @private
3131
3082
  * @function Highcharts.Chart#highlightLastExportItem
3132
- * @return {boolean}
3133
3083
  */
3134
3084
  function chartHighlightLastExportItem() {
3135
3085
  var chart = this;
@@ -3184,7 +3134,7 @@
3184
3134
  * @class
3185
3135
  * @param {Highcharts.Chart} chart
3186
3136
  * Chart object
3187
- * @param {object} components
3137
+ * @param {Object} components
3188
3138
  * Map of component names to AccessibilityComponent objects.
3189
3139
  * @name Highcharts.KeyboardNavigation
3190
3140
  */
@@ -3220,7 +3170,7 @@
3220
3170
  * @private
3221
3171
  * @param {Highcharts.Chart} chart
3222
3172
  * Chart object
3223
- * @param {object} components
3173
+ * @param {Object} components
3224
3174
  * Map of component names to AccessibilityComponent objects.
3225
3175
  */
3226
3176
  KeyboardNavigation.prototype.init = function (chart, components) {
@@ -3264,7 +3214,8 @@
3264
3214
  order.length) {
3265
3215
  // We (still) have keyboard navigation. Update module list
3266
3216
  this.modules = order.reduce(function (modules, componentName) {
3267
- var navModules = components[componentName].getKeyboardNavigation();
3217
+ var navModules = components[componentName]
3218
+ .getKeyboardNavigation();
3268
3219
  return modules.concat(navModules);
3269
3220
  }, []);
3270
3221
  this.updateExitAnchor();
@@ -3411,7 +3362,7 @@
3411
3362
  * @private
3412
3363
  */
3413
3364
  KeyboardNavigation.prototype.updateExitAnchor = function () {
3414
- var endMarkerId = 'highcharts-end-of-chart-marker-' + this.chart.index,
3365
+ var endMarkerId = ('highcharts-end-of-chart-marker-' + this.chart.index),
3415
3366
  endMarker = getElement(endMarkerId);
3416
3367
  this.removeExitAnchor();
3417
3368
  if (endMarker) {
@@ -3612,7 +3563,7 @@
3612
3563
 
3613
3564
  return KeyboardNavigation;
3614
3565
  });
3615
- _registerModule(_modules, 'Accessibility/Components/LegendComponent.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Chart/Chart.js'], _modules['Core/Globals.js'], _modules['Core/Legend/Legend.js'], _modules['Core/Utilities.js'], _modules['Accessibility/AccessibilityComponent.js'], _modules['Accessibility/KeyboardNavigationHandler.js'], _modules['Accessibility/Utils/HTMLUtilities.js'], _modules['Accessibility/Utils/ChartUtilities.js']], function (A, Chart, H, Legend, U, AccessibilityComponent, KeyboardNavigationHandler, HTMLUtilities, ChartUtils) {
3566
+ _registerModule(_modules, 'Accessibility/Components/LegendComponent.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Globals.js'], _modules['Core/Legend/Legend.js'], _modules['Core/Utilities.js'], _modules['Accessibility/AccessibilityComponent.js'], _modules['Accessibility/KeyboardNavigationHandler.js'], _modules['Accessibility/Utils/ChartUtilities.js'], _modules['Accessibility/Utils/HTMLUtilities.js']], function (A, H, Legend, U, AccessibilityComponent, KeyboardNavigationHandler, CU, HU) {
3616
3567
  /* *
3617
3568
  *
3618
3569
  * (c) 2009-2021 Øystein Moseng
@@ -3624,18 +3575,38 @@
3624
3575
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
3625
3576
  *
3626
3577
  * */
3578
+ var __extends = (this && this.__extends) || (function () {
3579
+ var extendStatics = function (d,
3580
+ b) {
3581
+ extendStatics = Object.setPrototypeOf ||
3582
+ ({ __proto__: [] } instanceof Array && function (d,
3583
+ b) { d.__proto__ = b; }) ||
3584
+ function (d,
3585
+ b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
3586
+ return extendStatics(d, b);
3587
+ };
3588
+ return function (d, b) {
3589
+ extendStatics(d, b);
3590
+ function __() { this.constructor = d; }
3591
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
3592
+ };
3593
+ })();
3627
3594
  var animObject = A.animObject;
3628
3595
  var addEvent = U.addEvent,
3629
- extend = U.extend,
3630
3596
  fireEvent = U.fireEvent,
3631
3597
  isNumber = U.isNumber,
3632
3598
  pick = U.pick,
3633
3599
  syncTimeout = U.syncTimeout;
3634
- var stripHTMLTags = HTMLUtilities.stripHTMLTagsFromString,
3635
- addClass = HTMLUtilities.addClass,
3636
- removeClass = HTMLUtilities.removeClass;
3637
- var getChartTitle = ChartUtils.getChartTitle;
3638
- /* eslint-disable no-invalid-this, valid-jsdoc */
3600
+ var getChartTitle = CU.getChartTitle;
3601
+ var stripHTMLTags = HU.stripHTMLTagsFromString,
3602
+ addClass = HU.addClass,
3603
+ removeClass = HU.removeClass;
3604
+ /* *
3605
+ *
3606
+ * Functions
3607
+ *
3608
+ * */
3609
+ /* eslint-disable valid-jsdoc */
3639
3610
  /**
3640
3611
  * @private
3641
3612
  */
@@ -3656,47 +3627,11 @@
3656
3627
  !(chart.colorAxis && chart.colorAxis.length) &&
3657
3628
  legendA11yOptions.enabled !== false);
3658
3629
  }
3659
- /**
3660
- * Highlight legend item by index.
3661
- *
3662
- * @private
3663
- * @function Highcharts.Chart#highlightLegendItem
3630
+ /* *
3664
3631
  *
3665
- * @param {number} ix
3632
+ * Class
3666
3633
  *
3667
- * @return {boolean}
3668
- */
3669
- Chart.prototype.highlightLegendItem = function (ix) {
3670
- var items = this.legend.allItems;
3671
- var oldIx = this.accessibility &&
3672
- this.accessibility.components.legend.highlightedLegendItemIx;
3673
- var itemToHighlight = items[ix];
3674
- if (itemToHighlight) {
3675
- if (isNumber(oldIx) && items[oldIx]) {
3676
- fireEvent(items[oldIx].legendGroup.element, 'mouseout');
3677
- }
3678
- scrollLegendToItem(this.legend, ix);
3679
- var legendItemProp = itemToHighlight.legendItem;
3680
- var proxyBtn = itemToHighlight.a11yProxyElement && itemToHighlight.a11yProxyElement.buttonElement;
3681
- if (legendItemProp && legendItemProp.element && proxyBtn) {
3682
- this.setFocusToElement(legendItemProp, proxyBtn);
3683
- }
3684
- if (itemToHighlight.legendGroup) {
3685
- fireEvent(itemToHighlight.legendGroup.element, 'mouseover');
3686
- }
3687
- return true;
3688
- }
3689
- return false;
3690
- };
3691
- // Keep track of pressed state for legend items
3692
- addEvent(Legend, 'afterColorizeItem', function (e) {
3693
- var chart = this.chart,
3694
- a11yOptions = chart.options.accessibility,
3695
- legendItem = e.item;
3696
- if (a11yOptions.enabled && legendItem && legendItem.a11yProxyElement) {
3697
- legendItem.a11yProxyElement.buttonElement.setAttribute('aria-pressed', e.visible ? 'true' : 'false');
3698
- }
3699
- });
3634
+ * */
3700
3635
  /**
3701
3636
  * The LegendComponent class
3702
3637
  *
@@ -3704,18 +3639,36 @@
3704
3639
  * @class
3705
3640
  * @name Highcharts.LegendComponent
3706
3641
  */
3707
- var LegendComponent = function () { };
3708
- LegendComponent.prototype = new AccessibilityComponent();
3709
- extend(LegendComponent.prototype, /** @lends Highcharts.LegendComponent */ {
3642
+ var LegendComponent = /** @class */ (function (_super) {
3643
+ __extends(LegendComponent, _super);
3644
+ function LegendComponent() {
3645
+ /* *
3646
+ *
3647
+ * Properties
3648
+ *
3649
+ * */
3650
+ var _this = _super !== null && _super.apply(this,
3651
+ arguments) || this;
3652
+ _this.highlightedLegendItemIx = NaN;
3653
+ return _this;
3654
+ }
3655
+ /* *
3656
+ *
3657
+ * Functions
3658
+ *
3659
+ * */
3660
+ /* eslint-disable valid-jsdoc */
3710
3661
  /**
3711
3662
  * Init the component
3712
3663
  * @private
3713
3664
  */
3714
- init: function () {
3665
+ LegendComponent.prototype.init = function () {
3715
3666
  var component = this;
3716
3667
  this.recreateProxies();
3717
3668
  // Note: Chart could create legend dynamically, so events can not be
3718
3669
  // tied to the component's chart's current legend.
3670
+ // @todo 1. attach component to created legends
3671
+ // @todo 2. move listeners to composition and access `this.component`
3719
3672
  this.addEvent(Legend, 'afterScroll', function () {
3720
3673
  if (this.chart === component.chart) {
3721
3674
  component.proxyProvider.updateGroupProxyElementPositions('legend');
@@ -3734,15 +3687,16 @@
3734
3687
  if (this.chart === component.chart &&
3735
3688
  this.chart.renderer &&
3736
3689
  component.recreateProxies()) {
3737
- syncTimeout(function () { return component.proxyProvider.updateGroupProxyElementPositions('legend'); }, animObject(pick(this.chart.renderer.globalAnimation, true)).duration);
3690
+ syncTimeout(function () { return component.proxyProvider
3691
+ .updateGroupProxyElementPositions('legend'); }, animObject(pick(this.chart.renderer.globalAnimation, true)).duration);
3738
3692
  }
3739
3693
  });
3740
- },
3694
+ };
3741
3695
  /**
3742
3696
  * Update visibility of legend items when using paged legend
3743
3697
  * @private
3744
3698
  */
3745
- updateLegendItemProxyVisibility: function () {
3699
+ LegendComponent.prototype.updateLegendItemProxyVisibility = function () {
3746
3700
  var chart = this.chart;
3747
3701
  var legend = chart.legend;
3748
3702
  var items = legend.allItems || [];
@@ -3756,8 +3710,11 @@
3756
3710
  if (hasPages) {
3757
3711
  var itemPage = item.pageIx || 0;
3758
3712
  var y = item._legendItemPos ? item._legendItemPos[1] : 0;
3759
- var h = item.legendItem ? Math.round(item.legendItem.getBBox().height) : 0;
3760
- hide = y + h - legend.pages[itemPage] > clipHeight || itemPage !== curPage - 1;
3713
+ var h = item.legendItem ?
3714
+ Math.round(item.legendItem.getBBox().height) :
3715
+ 0;
3716
+ hide = y + h - legend.pages[itemPage] > clipHeight ||
3717
+ itemPage !== curPage - 1;
3761
3718
  }
3762
3719
  if (hide) {
3763
3720
  if (chart.styledMode) {
@@ -3773,19 +3730,19 @@
3773
3730
  }
3774
3731
  }
3775
3732
  });
3776
- },
3733
+ };
3777
3734
  /**
3778
3735
  * @private
3779
3736
  */
3780
- onChartRender: function () {
3737
+ LegendComponent.prototype.onChartRender = function () {
3781
3738
  if (!shouldDoLegendA11y(this.chart)) {
3782
3739
  this.removeProxies();
3783
3740
  }
3784
- },
3741
+ };
3785
3742
  /**
3786
3743
  * @private
3787
3744
  */
3788
- highlightAdjacentLegendPage: function (direction) {
3745
+ LegendComponent.prototype.highlightAdjacentLegendPage = function (direction) {
3789
3746
  var chart = this.chart;
3790
3747
  var legend = chart.legend;
3791
3748
  var curPageIx = legend.currentPage || 1;
@@ -3803,21 +3760,21 @@
3803
3760
  }
3804
3761
  }
3805
3762
  }
3806
- },
3763
+ };
3807
3764
  /**
3808
3765
  * @private
3809
3766
  */
3810
- updateProxyPositionForItem: function (item) {
3767
+ LegendComponent.prototype.updateProxyPositionForItem = function (item) {
3811
3768
  if (item.a11yProxyElement) {
3812
3769
  item.a11yProxyElement.refreshPosition();
3813
3770
  }
3814
- },
3771
+ };
3815
3772
  /**
3816
3773
  * Returns false if legend a11y is disabled and proxies were not created,
3817
3774
  * true otherwise.
3818
3775
  * @private
3819
3776
  */
3820
- recreateProxies: function () {
3777
+ LegendComponent.prototype.recreateProxies = function () {
3821
3778
  this.removeProxies();
3822
3779
  if (shouldDoLegendA11y(this.chart)) {
3823
3780
  this.addLegendProxyGroup();
@@ -3827,17 +3784,17 @@
3827
3784
  return true;
3828
3785
  }
3829
3786
  return false;
3830
- },
3787
+ };
3831
3788
  /**
3832
3789
  * @private
3833
3790
  */
3834
- removeProxies: function () {
3791
+ LegendComponent.prototype.removeProxies = function () {
3835
3792
  this.proxyProvider.removeGroup('legend');
3836
- },
3793
+ };
3837
3794
  /**
3838
3795
  * @private
3839
3796
  */
3840
- updateLegendTitle: function () {
3797
+ LegendComponent.prototype.updateLegendTitle = function () {
3841
3798
  var chart = this.chart;
3842
3799
  var legendTitle = stripHTMLTags((chart.legend &&
3843
3800
  chart.legend.options.title &&
@@ -3851,22 +3808,25 @@
3851
3808
  this.proxyProvider.updateGroupAttrs('legend', {
3852
3809
  'aria-label': legendLabel
3853
3810
  });
3854
- },
3811
+ };
3855
3812
  /**
3856
3813
  * @private
3857
3814
  */
3858
- addLegendProxyGroup: function () {
3815
+ LegendComponent.prototype.addLegendProxyGroup = function () {
3859
3816
  var a11yOptions = this.chart.options.accessibility;
3860
- var groupRole = a11yOptions.landmarkVerbosity === 'all' ? 'region' : null;
3817
+ var groupRole = a11yOptions.landmarkVerbosity === 'all' ?
3818
+ 'region' : null;
3861
3819
  this.proxyProvider.addGroup('legend', 'ul', {
3820
+ // Filled by updateLegendTitle, to keep up to date without
3821
+ // recreating group
3862
3822
  'aria-label': '_placeholder_',
3863
3823
  role: groupRole
3864
3824
  });
3865
- },
3825
+ };
3866
3826
  /**
3867
3827
  * @private
3868
3828
  */
3869
- proxyLegendItems: function () {
3829
+ LegendComponent.prototype.proxyLegendItems = function () {
3870
3830
  var component = this,
3871
3831
  items = (this.chart.legend &&
3872
3832
  this.chart.legend.allItems || []);
@@ -3875,12 +3835,12 @@
3875
3835
  component.proxyLegendItem(item);
3876
3836
  }
3877
3837
  });
3878
- },
3838
+ };
3879
3839
  /**
3880
3840
  * @private
3881
3841
  * @param {Highcharts.BubbleLegendItem|Point|Highcharts.Series} item
3882
3842
  */
3883
- proxyLegendItem: function (item) {
3843
+ LegendComponent.prototype.proxyLegendItem = function (item) {
3884
3844
  if (!item.legendItem || !item.legendGroup) {
3885
3845
  return;
3886
3846
  }
@@ -3895,17 +3855,19 @@
3895
3855
  'aria-label': itemLabel
3896
3856
  };
3897
3857
  // Considers useHTML
3898
- var proxyPositioningElement = item.legendGroup.div ? item.legendItem : item.legendGroup;
3858
+ var proxyPositioningElement = item.legendGroup.div ?
3859
+ item.legendItem :
3860
+ item.legendGroup;
3899
3861
  item.a11yProxyElement = this.proxyProvider.addProxyElement('legend', {
3900
3862
  click: item.legendItem,
3901
3863
  visual: proxyPositioningElement.element
3902
3864
  }, attribs);
3903
- },
3865
+ };
3904
3866
  /**
3905
3867
  * Get keyboard navigation handler for this component.
3906
- * @return {Highcharts.KeyboardNavigationHandler}
3868
+ * @private
3907
3869
  */
3908
- getKeyboardNavigation: function () {
3870
+ LegendComponent.prototype.getKeyboardNavigation = function () {
3909
3871
  var keys = this.keyCodes,
3910
3872
  component = this,
3911
3873
  chart = this.chart;
@@ -3946,7 +3908,7 @@
3946
3908
  chart.legend.allItems.forEach(function (item) { return item.setState('', true); });
3947
3909
  }
3948
3910
  });
3949
- },
3911
+ };
3950
3912
  /**
3951
3913
  * @private
3952
3914
  * @param {Highcharts.KeyboardNavigationHandler} keyboardNavigationHandler
@@ -3954,7 +3916,7 @@
3954
3916
  * @return {number}
3955
3917
  * Response code
3956
3918
  */
3957
- onKbdArrowKey: function (keyboardNavigationHandler, keyCode) {
3919
+ LegendComponent.prototype.onKbdArrowKey = function (keyboardNavigationHandler, keyCode) {
3958
3920
  var keys = this.keyCodes,
3959
3921
  response = keyboardNavigationHandler.response,
3960
3922
  chart = this.chart,
@@ -3973,24 +3935,23 @@
3973
3935
  }
3974
3936
  // No wrap, move
3975
3937
  return response[direction > 0 ? 'next' : 'prev'];
3976
- },
3938
+ };
3977
3939
  /**
3978
3940
  * @private
3979
3941
  * @param {Highcharts.KeyboardNavigationHandler} keyboardNavigationHandler
3980
3942
  * @return {number} Response code
3981
3943
  */
3982
- onKbdClick: function (keyboardNavigationHandler) {
3944
+ LegendComponent.prototype.onKbdClick = function (keyboardNavigationHandler) {
3983
3945
  var legendItem = this.chart.legend.allItems[this.highlightedLegendItemIx];
3984
3946
  if (legendItem && legendItem.a11yProxyElement) {
3985
3947
  legendItem.a11yProxyElement.click();
3986
3948
  }
3987
3949
  return keyboardNavigationHandler.response.success;
3988
- },
3950
+ };
3989
3951
  /**
3990
3952
  * @private
3991
- * @return {boolean|undefined}
3992
3953
  */
3993
- shouldHaveLegendNavigation: function () {
3954
+ LegendComponent.prototype.shouldHaveLegendNavigation = function () {
3994
3955
  var chart = this.chart,
3995
3956
  legendOptions = chart.options.legend || {},
3996
3957
  hasLegend = chart.legend && chart.legend.allItems,
@@ -4002,19 +3963,103 @@
4002
3963
  legendA11yOptions.enabled &&
4003
3964
  legendA11yOptions.keyboardNavigation &&
4004
3965
  legendA11yOptions.keyboardNavigation.enabled);
4005
- },
3966
+ };
4006
3967
  /**
4007
3968
  * @private
4008
3969
  * @param {number} direction
4009
3970
  */
4010
- onKbdNavigationInit: function (direction) {
3971
+ LegendComponent.prototype.onKbdNavigationInit = function (direction) {
4011
3972
  var chart = this.chart,
4012
3973
  lastIx = chart.legend.allItems.length - 1,
4013
3974
  ixToHighlight = direction > 0 ? 0 : lastIx;
4014
3975
  chart.highlightLegendItem(ixToHighlight);
4015
3976
  this.highlightedLegendItemIx = ixToHighlight;
3977
+ };
3978
+ return LegendComponent;
3979
+ }(AccessibilityComponent));
3980
+ /* *
3981
+ *
3982
+ * Class Namespace
3983
+ *
3984
+ * */
3985
+ (function (LegendComponent) {
3986
+ /* *
3987
+ *
3988
+ * Declarations
3989
+ *
3990
+ * */
3991
+ /* *
3992
+ *
3993
+ * Constants
3994
+ *
3995
+ * */
3996
+ var composedClasses = [];
3997
+ /* *
3998
+ *
3999
+ * Functions
4000
+ *
4001
+ * */
4002
+ /* eslint-disable valid-jsdoc */
4003
+ /**
4004
+ * Highlight legend item by index.
4005
+ * @private
4006
+ */
4007
+ function chartHighlightLegendItem(ix) {
4008
+ var items = this.legend.allItems;
4009
+ var oldIx = this.accessibility &&
4010
+ this.accessibility.components.legend.highlightedLegendItemIx;
4011
+ var itemToHighlight = items[ix];
4012
+ if (itemToHighlight) {
4013
+ if (isNumber(oldIx) && items[oldIx]) {
4014
+ fireEvent(items[oldIx].legendGroup.element, 'mouseout');
4015
+ }
4016
+ scrollLegendToItem(this.legend, ix);
4017
+ var legendItemProp = itemToHighlight.legendItem;
4018
+ var proxyBtn = itemToHighlight.a11yProxyElement &&
4019
+ itemToHighlight.a11yProxyElement.buttonElement;
4020
+ if (legendItemProp && legendItemProp.element && proxyBtn) {
4021
+ this.setFocusToElement(legendItemProp, proxyBtn);
4022
+ }
4023
+ if (itemToHighlight.legendGroup) {
4024
+ fireEvent(itemToHighlight.legendGroup.element, 'mouseover');
4025
+ }
4026
+ return true;
4027
+ }
4028
+ return false;
4016
4029
  }
4017
- });
4030
+ /**
4031
+ * @private
4032
+ */
4033
+ function compose(ChartClass, LegendClass) {
4034
+ if (composedClasses.indexOf(ChartClass) === -1) {
4035
+ composedClasses.push(ChartClass);
4036
+ var chartProto = ChartClass.prototype;
4037
+ chartProto.highlightLegendItem = chartHighlightLegendItem;
4038
+ }
4039
+ if (composedClasses.indexOf(LegendClass) === -1) {
4040
+ composedClasses.push(LegendClass);
4041
+ addEvent(LegendClass, 'afterColorizeItem', legendOnAfterColorizeItem);
4042
+ }
4043
+ }
4044
+ LegendComponent.compose = compose;
4045
+ /**
4046
+ * Keep track of pressed state for legend items.
4047
+ * @private
4048
+ */
4049
+ function legendOnAfterColorizeItem(e) {
4050
+ var chart = this.chart,
4051
+ a11yOptions = chart.options.accessibility,
4052
+ legendItem = e.item;
4053
+ if (a11yOptions.enabled && legendItem && legendItem.a11yProxyElement) {
4054
+ legendItem.a11yProxyElement.buttonElement.setAttribute('aria-pressed', e.visible ? 'true' : 'false');
4055
+ }
4056
+ }
4057
+ })(LegendComponent || (LegendComponent = {}));
4058
+ /* *
4059
+ *
4060
+ * Default Export
4061
+ *
4062
+ * */
4018
4063
 
4019
4064
  return LegendComponent;
4020
4065
  });
@@ -4093,8 +4138,6 @@
4093
4138
  }
4094
4139
  /**
4095
4140
  * @private
4096
- * @param {Highcharts.Point} point
4097
- * @return {Highcharts.HTMLDOMElement|Highcharts.SVGDOMElement|undefined}
4098
4141
  */
4099
4142
  function addDummyPointElement(point) {
4100
4143
  var series = point.series,
@@ -4125,8 +4168,6 @@
4125
4168
  }
4126
4169
  /**
4127
4170
  * @private
4128
- * @param {Highcharts.Series} series
4129
- * @return {boolean}
4130
4171
  */
4131
4172
  function hasMorePointsThanDescriptionThreshold(series) {
4132
4173
  var chartA11yOptions = series.chart.options.accessibility,
@@ -4137,8 +4178,6 @@
4137
4178
  }
4138
4179
  /**
4139
4180
  * @private
4140
- * @param {Highcharts.Series} series
4141
- * @return {boolean}
4142
4181
  */
4143
4182
  function shouldSetScreenReaderPropsOnPoints(series) {
4144
4183
  var seriesA11yOptions = series.options.accessibility || {};
@@ -4147,8 +4186,6 @@
4147
4186
  }
4148
4187
  /**
4149
4188
  * @private
4150
- * @param {Highcharts.Series} series
4151
- * @return {boolean}
4152
4189
  */
4153
4190
  function shouldSetKeyboardNavPropsOnPoints(series) {
4154
4191
  var chartA11yOptions = series.chart.options.accessibility,
@@ -4159,8 +4196,6 @@
4159
4196
  }
4160
4197
  /**
4161
4198
  * @private
4162
- * @param {Highcharts.Series} series
4163
- * @return {boolean}
4164
4199
  */
4165
4200
  function shouldDescribeSeriesElement(series) {
4166
4201
  var chart = series.chart,
@@ -4175,15 +4210,13 @@
4175
4210
  }
4176
4211
  /**
4177
4212
  * @private
4178
- * @param {Highcharts.Point} point
4179
- * @param {number} value
4180
- * @return {string}
4181
4213
  */
4182
4214
  function pointNumberToString(point, value) {
4183
4215
  var series = point.series,
4184
4216
  chart = series.chart,
4185
4217
  a11yPointOptions = chart.options.accessibility.point || {},
4186
- seriesA11yPointOptions = series.options.accessibility && series.options.accessibility.point || {},
4218
+ seriesA11yPointOptions = series.options.accessibility &&
4219
+ series.options.accessibility.point || {},
4187
4220
  tooltipOptions = series.tooltipOptions || {},
4188
4221
  lang = chart.options.lang;
4189
4222
  if (isNumber(value)) {
@@ -4196,8 +4229,6 @@
4196
4229
  }
4197
4230
  /**
4198
4231
  * @private
4199
- * @param {Highcharts.Series} series
4200
- * @return {string}
4201
4232
  */
4202
4233
  function getSeriesDescriptionText(series) {
4203
4234
  var seriesA11yOptions = series.options.accessibility || {},
@@ -4209,9 +4240,6 @@
4209
4240
  }
4210
4241
  /**
4211
4242
  * @private
4212
- * @param {Highcharts.series} series
4213
- * @param {string} axisCollection
4214
- * @return {string}
4215
4243
  */
4216
4244
  function getSeriesAxisDescriptionText(series, axisCollection) {
4217
4245
  var axis = series[axisCollection];
@@ -4224,21 +4252,19 @@
4224
4252
  * Get accessible time description for a point on a datetime axis.
4225
4253
  *
4226
4254
  * @private
4227
- * @function Highcharts.Point#getTimeDescription
4228
- * @param {Highcharts.Point} point
4229
- * @return {string|undefined}
4230
- * The description as string.
4231
4255
  */
4232
4256
  function getPointA11yTimeDescription(point) {
4233
4257
  var series = point.series,
4234
4258
  chart = series.chart,
4235
- seriesA11yOptions = series.options.accessibility && series.options.accessibility.point || {},
4259
+ seriesA11yOptions = series.options.accessibility &&
4260
+ series.options.accessibility.point || {},
4236
4261
  a11yOptions = chart.options.accessibility.point || {},
4237
4262
  dateXAxis = series.xAxis && series.xAxis.dateTime;
4238
4263
  if (dateXAxis) {
4239
4264
  var tooltipDateFormat = dateXAxis.getXDateFormat(point.x || 0,
4240
4265
  chart.options.tooltip.dateTimeLabelFormats),
4241
- dateFormat = seriesA11yOptions.dateFormatter && seriesA11yOptions.dateFormatter(point) ||
4266
+ dateFormat = seriesA11yOptions.dateFormatter &&
4267
+ seriesA11yOptions.dateFormatter(point) ||
4242
4268
  a11yOptions.dateFormatter && a11yOptions.dateFormatter(point) ||
4243
4269
  seriesA11yOptions.dateFormat ||
4244
4270
  a11yOptions.dateFormat ||
@@ -4248,8 +4274,6 @@
4248
4274
  }
4249
4275
  /**
4250
4276
  * @private
4251
- * @param {Highcharts.Point} point
4252
- * @return {string}
4253
4277
  */
4254
4278
  function getPointXDescription(point) {
4255
4279
  var timeDesc = getPointA11yTimeDescription(point), xAxis = point.series.xAxis || {}, pointCategory = xAxis.categories && defined(point.category) &&
@@ -4259,10 +4283,6 @@
4259
4283
  }
4260
4284
  /**
4261
4285
  * @private
4262
- * @param {Highcharts.Point} point
4263
- * @param {string} prefix
4264
- * @param {string} suffix
4265
- * @return {string}
4266
4286
  */
4267
4287
  function getPointArrayMapValueDescription(point, prefix, suffix) {
4268
4288
  var pre = prefix || '', suf = suffix || '', keyToValStr = function (key) {
@@ -4275,13 +4295,12 @@
4275
4295
  }
4276
4296
  /**
4277
4297
  * @private
4278
- * @param {Highcharts.Point} point
4279
- * @return {string}
4280
4298
  */
4281
4299
  function getPointValue(point) {
4282
4300
  var series = point.series,
4283
4301
  a11yPointOpts = series.chart.options.accessibility.point || {},
4284
- seriesA11yPointOpts = series.chart.options.accessibility && series.chart.options.accessibility.point || {},
4302
+ seriesA11yPointOpts = series.chart.options.accessibility &&
4303
+ series.chart.options.accessibility.point || {},
4285
4304
  tooltipOptions = series.tooltipOptions || {},
4286
4305
  valuePrefix = seriesA11yPointOpts.valuePrefix ||
4287
4306
  a11yPointOpts.valuePrefix ||
@@ -4311,8 +4330,10 @@
4311
4330
  * empty string if none.
4312
4331
  *
4313
4332
  * @private
4314
- * @param {Highcharts.Point} point The data point to get the annotation info from.
4315
- * @return {string} Annotation description
4333
+ * @param {Highcharts.Point} point
4334
+ * The data point to get the annotation info from.
4335
+ * @return {string}
4336
+ * Annotation description
4316
4337
  */
4317
4338
  function getPointAnnotationDescription(point) {
4318
4339
  var chart = point.series.chart;
@@ -4325,7 +4346,6 @@
4325
4346
  /**
4326
4347
  * Return string with information about point.
4327
4348
  * @private
4328
- * @return {string}
4329
4349
  */
4330
4350
  function getPointValueDescription(point) {
4331
4351
  var series = point.series, chart = series.chart, seriesA11yOptions = series.options.accessibility, seriesValueDescFormat = seriesA11yOptions && seriesA11yOptions.point &&
@@ -4344,7 +4364,6 @@
4344
4364
  /**
4345
4365
  * Return string with information about point.
4346
4366
  * @private
4347
- * @return {string}
4348
4367
  */
4349
4368
  function defaultPointDescriptionFormatter(point) {
4350
4369
  var series = point.series, chart = series.chart, valText = getPointValueDescription(point), description = point.options && point.options.accessibility &&
@@ -4363,7 +4382,8 @@
4363
4382
  function setPointScreenReaderAttribs(point, pointElement) {
4364
4383
  var series = point.series,
4365
4384
  a11yPointOptions = series.chart.options.accessibility.point || {},
4366
- seriesPointA11yOptions = series.options.accessibility && series.options.accessibility.point || {},
4385
+ seriesPointA11yOptions = series.options.accessibility &&
4386
+ series.options.accessibility.point || {},
4367
4387
  label = stripHTMLTags(seriesPointA11yOptions.descriptionFormatter &&
4368
4388
  seriesPointA11yOptions.descriptionFormatter(point) ||
4369
4389
  a11yPointOptions.descriptionFormatter &&
@@ -4408,7 +4428,6 @@
4408
4428
  /**
4409
4429
  * Return string with information about series.
4410
4430
  * @private
4411
- * @return {string}
4412
4431
  */
4413
4432
  function defaultSeriesDescriptionFormatter(series) {
4414
4433
  var chart = series.chart,
@@ -4444,7 +4463,8 @@
4444
4463
  } /* else do not add role */
4445
4464
  seriesElement.setAttribute('tabindex', '-1');
4446
4465
  if (!series.chart.styledMode) {
4447
- seriesElement.style.outline = 'none'; // Don't show browser outline on click, despite tabindex
4466
+ // Don't show browser outline on click, despite tabindex
4467
+ seriesElement.style.outline = 'none';
4448
4468
  }
4449
4469
  seriesElement.setAttribute('aria-label', stripHTMLTags(a11yOptions.series.descriptionFormatter &&
4450
4470
  a11yOptions.series.descriptionFormatter(series) ||
@@ -4581,8 +4601,9 @@
4581
4601
  */
4582
4602
  NewDataAnnouncer.prototype.init = function () {
4583
4603
  var chart = this.chart;
4584
- var announceOptions = chart.options.accessibility.announceNewData;
4585
- var announceType = announceOptions.interruptUser ? 'assertive' : 'polite';
4604
+ var announceOptions = (chart.options.accessibility.announceNewData);
4605
+ var announceType = announceOptions.interruptUser ?
4606
+ 'assertive' : 'polite';
4586
4607
  this.lastAnnouncementTime = 0;
4587
4608
  this.dirty = {
4588
4609
  allSeries: {}
@@ -4649,7 +4670,9 @@
4649
4670
  }
4650
4671
  this.queueAnnouncement(Object
4651
4672
  .keys(this.dirty.allSeries)
4652
- .map(function (ix) { return announcer.dirty.allSeries[ix]; }), this.dirty.newSeries, newPoint);
4673
+ .map(function (ix) {
4674
+ return announcer.dirty.allSeries[ix];
4675
+ }), this.dirty.newSeries, newPoint);
4653
4676
  // Reset
4654
4677
  this.dirty = {
4655
4678
  allSeries: {}
@@ -4731,7 +4754,8 @@
4731
4754
  }
4732
4755
  }
4733
4756
  // Default formatter - use lang options
4734
- var multiple = H.charts && H.charts.length > 1 ? 'Multiple' : 'Single', langKey = newSeries ? 'newSeriesAnnounce' + multiple :
4757
+ var multiple = H.charts && H.charts.length > 1 ?
4758
+ 'Multiple' : 'Single', langKey = newSeries ? 'newSeriesAnnounce' + multiple :
4735
4759
  newPoint ? 'newPointAnnounce' + multiple : 'newDataAnnounce', chartTitle = getChartTitle(chart);
4736
4760
  return chart.langFormat('accessibility.announceNewData.' + langKey, {
4737
4761
  chartTitle: chartTitle,
@@ -4868,13 +4892,17 @@
4868
4892
  this.chart = chart;
4869
4893
  this.target = target;
4870
4894
  this.groupType = groupType;
4895
+ var isListItem = groupType === 'ul';
4871
4896
  this.eventProvider = new EventProvider();
4872
- var wrapperEl = groupType === 'ul' ? doc.createElement('li') : null;
4897
+ var wrapperEl = isListItem ? doc.createElement('li') : null;
4873
4898
  var btnEl = this.buttonElement = doc.createElement('button');
4874
4899
  if (!chart.styledMode) {
4875
4900
  this.hideButtonVisually(btnEl);
4876
4901
  }
4877
4902
  if (wrapperEl) {
4903
+ if (isListItem && !chart.styledMode) {
4904
+ wrapperEl.style.listStyle = 'none';
4905
+ }
4878
4906
  wrapperEl.appendChild(btnEl);
4879
4907
  this.element = wrapperEl;
4880
4908
  }
@@ -4901,10 +4929,11 @@
4901
4929
  fireEventOnWrappedOrUnwrappedElement(this.target.click, fakeEventObject);
4902
4930
  };
4903
4931
  /**
4904
- * Update the target to be proxied.
4905
- * The position and events are updated to match the new target.
4932
+ * Update the target to be proxied. The position and events are updated to
4933
+ * match the new target.
4906
4934
  * @param target The new target definition
4907
- * @param attributes New HTML attributes to apply to the button. Set an attribute to null to remove.
4935
+ * @param attributes New HTML attributes to apply to the button. Set an
4936
+ * attribute to null to remove.
4908
4937
  */
4909
4938
  ProxyElement.prototype.updateTarget = function (target, attributes) {
4910
4939
  this.target = target;
@@ -4940,7 +4969,7 @@
4940
4969
  * Update the CSS class name to match target
4941
4970
  */
4942
4971
  ProxyElement.prototype.updateCSSClassName = function () {
4943
- var stringHasNoTooltip = function (s) { return s.indexOf('highcharts-no-tooltip') > -1; };
4972
+ var stringHasNoTooltip = function (s) { return (s.indexOf('highcharts-no-tooltip') > -1); };
4944
4973
  var legend = this.chart.legend;
4945
4974
  var groupDiv = legend.group && legend.group.div;
4946
4975
  var noTooltipOnGroup = stringHasNoTooltip(groupDiv && groupDiv.className || '');
@@ -4968,7 +4997,8 @@
4968
4997
  fireEventOnWrappedOrUnwrappedElement(target, clonedEvent);
4969
4998
  }
4970
4999
  e.stopPropagation();
4971
- // #9682, #15318: Touch scrolling didnt work when touching proxy
5000
+ // #9682, #15318: Touch scrolling didnt work when touching
5001
+ // proxy
4972
5002
  if (!isTouchEvent) {
4973
5003
  e.preventDefault();
4974
5004
  }
@@ -5136,9 +5166,6 @@
5136
5166
  };
5137
5167
  attr(groupElement, attributes || {});
5138
5168
  if (groupType === 'ul') {
5139
- if (!this.chart.styledMode) {
5140
- proxyContainer.style.listStyle = 'none';
5141
- }
5142
5169
  proxyContainer.setAttribute('role', 'list'); // Needed for webkit
5143
5170
  }
5144
5171
  // Add the group to the end by default, and perhaps then we
@@ -5934,7 +5961,6 @@
5934
5961
  * @param {number} i
5935
5962
  * The index of the button
5936
5963
  * @param {boolean} [redraw]
5937
- * @return {void}
5938
5964
  */
5939
5965
  RangeSelector.prototype.clickButton = function (i, redraw) {
5940
5966
  var rangeSelector = this,
@@ -6032,7 +6058,8 @@
6032
6058
  // If the navigator exist and the axis range is declared reset that
6033
6059
  // range and from now on only use the range set by a user, #14742.
6034
6060
  if (chart.navigator && chart.navigator.baseSeries[0]) {
6035
- chart.navigator.baseSeries[0].xAxis.options.range = void 0;
6061
+ chart.navigator.baseSeries[0].xAxis.options
6062
+ .range = void 0;
6036
6063
  }
6037
6064
  newMin = dataMin;
6038
6065
  newMax = dataMax;
@@ -6077,7 +6104,6 @@
6077
6104
  * @private
6078
6105
  * @function Highcharts.RangeSelector#setSelected
6079
6106
  * @param {number} [selected]
6080
- * @return {void}
6081
6107
  */
6082
6108
  RangeSelector.prototype.setSelected = function (selected) {
6083
6109
  this.selected = this.options.selected = selected;
@@ -6088,12 +6114,11 @@
6088
6114
  * @private
6089
6115
  * @function Highcharts.RangeSelector#init
6090
6116
  * @param {Highcharts.Chart} chart
6091
- * @return {void}
6092
6117
  */
6093
6118
  RangeSelector.prototype.init = function (chart) {
6094
6119
  var rangeSelector = this,
6095
6120
  options = chart.options.rangeSelector,
6096
- buttonOptions = options.buttons || rangeSelector.defaultButtons.slice(),
6121
+ buttonOptions = (options.buttons || rangeSelector.defaultButtons.slice()),
6097
6122
  selectedOption = options.selected,
6098
6123
  blurInputs = function () {
6099
6124
  var minInput = rangeSelector.minInput,
@@ -6143,7 +6168,6 @@
6143
6168
  *
6144
6169
  * @private
6145
6170
  * @function Highcharts.RangeSelector#updateButtonStates
6146
- * @return {void}
6147
6171
  */
6148
6172
  RangeSelector.prototype.updateButtonStates = function () {
6149
6173
  var rangeSelector = this,
@@ -6249,7 +6273,6 @@
6249
6273
  * @private
6250
6274
  * @function Highcharts.RangeSelector#computeButtonRange
6251
6275
  * @param {Highcharts.RangeSelectorButtonsOptions} rangeOptions
6252
- * @return {void}
6253
6276
  */
6254
6277
  RangeSelector.prototype.computeButtonRange = function (rangeOptions) {
6255
6278
  var type = rangeOptions.type,
@@ -6284,12 +6307,11 @@
6284
6307
  *
6285
6308
  * @private
6286
6309
  * @function Highcharts.RangeSelector#getInputValue
6287
- * @param {string} name
6288
- * @return {number}
6289
6310
  */
6290
6311
  RangeSelector.prototype.getInputValue = function (name) {
6291
6312
  var input = name === 'min' ? this.minInput : this.maxInput;
6292
- var options = this.chart.options.rangeSelector;
6313
+ var options = this.chart.options
6314
+ .rangeSelector;
6293
6315
  var time = this.chart.time;
6294
6316
  if (input) {
6295
6317
  return ((input.type === 'text' && options.inputDateParser) ||
@@ -6302,9 +6324,6 @@
6302
6324
  *
6303
6325
  * @private
6304
6326
  * @function Highcharts.RangeSelector#setInputValue
6305
- * @param {string} name
6306
- * @param {number} [inputTime]
6307
- * @return {void}
6308
6327
  */
6309
6328
  RangeSelector.prototype.setInputValue = function (name, inputTime) {
6310
6329
  var options = this.options, time = this.chart.time, input = name === 'min' ? this.minInput : this.maxInput, dateBox = name === 'min' ? this.minDateBox : this.maxDateBox;
@@ -6319,7 +6338,8 @@
6319
6338
  input.setAttribute('data-hc-time', inputTime);
6320
6339
  updatedTime = inputTime;
6321
6340
  }
6322
- input.value = time.dateFormat(this.inputTypeFormats[input.type] || options.inputEditDateFormat, updatedTime);
6341
+ input.value = time.dateFormat((this.inputTypeFormats[input.type] ||
6342
+ options.inputEditDateFormat), updatedTime);
6323
6343
  if (dateBox) {
6324
6344
  dateBox.attr({
6325
6345
  text: time.dateFormat(options.inputDateFormat, updatedTime)
@@ -6332,10 +6352,6 @@
6332
6352
  *
6333
6353
  * @private
6334
6354
  * @function Highcharts.RangeSelector#setInputExtremes
6335
- * @param {string} name
6336
- * @param {number} min
6337
- * @param {number} max
6338
- * @return {void}
6339
6355
  */
6340
6356
  RangeSelector.prototype.setInputExtremes = function (name, min, max) {
6341
6357
  var input = name === 'min' ? this.minInput : this.maxInput;
@@ -6360,7 +6376,6 @@
6360
6376
  * @private
6361
6377
  * @function Highcharts.RangeSelector#showInput
6362
6378
  * @param {string} name
6363
- * @return {void}
6364
6379
  */
6365
6380
  RangeSelector.prototype.showInput = function (name) {
6366
6381
  var dateBox = name === 'min' ? this.minDateBox : this.maxDateBox;
@@ -6372,7 +6387,9 @@
6372
6387
  translateY = _a.translateY;
6373
6388
  var inputBoxWidth = this.options.inputBoxWidth;
6374
6389
  css(input, {
6375
- width: isTextInput ? ((dateBox.width + (inputBoxWidth ? -2 : 20)) + 'px') : 'auto',
6390
+ width: isTextInput ?
6391
+ ((dateBox.width + (inputBoxWidth ? -2 : 20)) + 'px') :
6392
+ 'auto',
6376
6393
  height: isTextInput ? ((dateBox.height - 2) + 'px') : 'auto',
6377
6394
  border: '2px solid silver'
6378
6395
  });
@@ -6398,7 +6415,6 @@
6398
6415
  * @private
6399
6416
  * @function Highcharts.RangeSelector#hideInput
6400
6417
  * @param {string} name
6401
- * @return {void}
6402
6418
  */
6403
6419
  RangeSelector.prototype.hideInput = function (name) {
6404
6420
  var input = name === 'min' ? this.minInput : this.maxInput;
@@ -6450,8 +6466,6 @@
6450
6466
  *
6451
6467
  * @private
6452
6468
  * @function Highcharts.RangeSelector#drawInput
6453
- * @param {string} name
6454
- * @return {RangeSelectorInputElements}
6455
6469
  */
6456
6470
  RangeSelector.prototype.drawInput = function (name) {
6457
6471
  var _a = this,
@@ -6620,8 +6634,6 @@
6620
6634
  *
6621
6635
  * @private
6622
6636
  * @function Highcharts.RangeSelector#getPosition
6623
- *
6624
- * @return {Highcharts.Dictionary<number>}
6625
6637
  */
6626
6638
  RangeSelector.prototype.getPosition = function () {
6627
6639
  var chart = this.chart,
@@ -6641,13 +6653,8 @@
6641
6653
  *
6642
6654
  * @private
6643
6655
  * @function Highcharts.RangeSelector#getYTDExtremes
6644
- *
6645
- * @param {number} dataMax
6646
- *
6647
- * @param {number} dataMin
6648
- *
6649
6656
  * @return {*}
6650
- * Returns min and max for the YTD
6657
+ * Returns min and max for the YTD
6651
6658
  */
6652
6659
  RangeSelector.prototype.getYTDExtremes = function (dataMax, dataMin, useUTC) {
6653
6660
  var time = this.chart.time,
@@ -6676,7 +6683,6 @@
6676
6683
  * X axis minimum
6677
6684
  * @param {number} [max]
6678
6685
  * X axis maximum
6679
- * @return {void}
6680
6686
  */
6681
6687
  RangeSelector.prototype.render = function (min, max) {
6682
6688
  var chart = this.chart,
@@ -6730,7 +6736,8 @@
6730
6736
  this.setInputValue('min', min);
6731
6737
  this.setInputValue('max', max);
6732
6738
  var unionExtremes = (chart.scroller && chart.scroller.getUnionExtremes()) || chart.xAxis[0] || {};
6733
- if (defined(unionExtremes.dataMin) && defined(unionExtremes.dataMax)) {
6739
+ if (defined(unionExtremes.dataMin) &&
6740
+ defined(unionExtremes.dataMax)) {
6734
6741
  var minRange = chart.xAxis[0].minRange || 0;
6735
6742
  this.setInputExtremes('min', unionExtremes.dataMin, Math.min(unionExtremes.dataMax, this.getInputValue('max')) - minRange);
6736
6743
  this.setInputExtremes('max', Math.max(unionExtremes.dataMin, this.getInputValue('min')) + minRange, unionExtremes.dataMax);
@@ -6763,7 +6770,6 @@
6763
6770
  *
6764
6771
  * @private
6765
6772
  * @function Highcharts.RangeSelector#renderButtons
6766
- * @return {void}
6767
6773
  */
6768
6774
  RangeSelector.prototype.renderButtons = function () {
6769
6775
  var _this = this;
@@ -6864,7 +6870,6 @@
6864
6870
  *
6865
6871
  * @private
6866
6872
  * @function Highcharts.RangeSelector#alignElements
6867
- * @return {void}
6868
6873
  */
6869
6874
  RangeSelector.prototype.alignElements = function () {
6870
6875
  var _this = this;
@@ -7020,7 +7025,6 @@
7020
7025
  * @function Highcharts.RangeSelector#alignButtonGroup
7021
7026
  * @param {number} xOffsetForExportButton
7022
7027
  * @param {number} [width]
7023
- * @return {void}
7024
7028
  */
7025
7029
  RangeSelector.prototype.alignButtonGroup = function (xOffsetForExportButton, width) {
7026
7030
  var _a = this,
@@ -7050,7 +7054,6 @@
7050
7054
  /**
7051
7055
  * @private
7052
7056
  * @function Highcharts.RangeSelector#positionButtons
7053
- * @return {void}
7054
7057
  */
7055
7058
  RangeSelector.prototype.positionButtons = function () {
7056
7059
  var _a = this,
@@ -7091,7 +7094,6 @@
7091
7094
  * @param {number} xOffsetForExportButton
7092
7095
  * The X offset of the group required to make room for the
7093
7096
  * exporting button
7094
- * @return {void}
7095
7097
  */
7096
7098
  RangeSelector.prototype.handleCollision = function (xOffsetForExportButton) {
7097
7099
  var _this = this;
@@ -7192,7 +7194,6 @@
7192
7194
  * @private
7193
7195
  * @function Highcharts.RangeSelector#collapseButtons
7194
7196
  * @param {number} xOffsetForExportButton
7195
- * @return {void}
7196
7197
  */
7197
7198
  RangeSelector.prototype.collapseButtons = function (xOffsetForExportButton) {
7198
7199
  var _a = this,
@@ -7246,7 +7247,6 @@
7246
7247
  *
7247
7248
  * @private
7248
7249
  * @function Highcharts.RangeSelector#expandButtons
7249
- * @return {void}
7250
7250
  */
7251
7251
  RangeSelector.prototype.expandButtons = function () {
7252
7252
  var _a = this,
@@ -7278,7 +7278,6 @@
7278
7278
  *
7279
7279
  * @private
7280
7280
  * @function Highcharts.RangeSelector#currentButtonIndex
7281
- * @return {number}
7282
7281
  */
7283
7282
  RangeSelector.prototype.currentButtonIndex = function () {
7284
7283
  var dropdown = this.dropdown;
@@ -7292,7 +7291,6 @@
7292
7291
  *
7293
7292
  * @private
7294
7293
  * @function Highcharts.RangeSelector#showDropdown
7295
- * @return {void}
7296
7294
  */
7297
7295
  RangeSelector.prototype.showDropdown = function () {
7298
7296
  var _a = this,
@@ -7316,7 +7314,6 @@
7316
7314
  /**
7317
7315
  * @private
7318
7316
  * @function Highcharts.RangeSelector#hideDropdown
7319
- * @return {void}
7320
7317
  */
7321
7318
  RangeSelector.prototype.hideDropdown = function () {
7322
7319
  var dropdown = this.dropdown;
@@ -7335,7 +7332,7 @@
7335
7332
  * @private
7336
7333
  * @function Highcharts.RangeSelector#getHeight
7337
7334
  * @return {number}
7338
- * Returns rangeSelector height
7335
+ * Returns rangeSelector height
7339
7336
  */
7340
7337
  RangeSelector.prototype.getHeight = function () {
7341
7338
  var rangeSelector = this,
@@ -7371,11 +7368,8 @@
7371
7368
  *
7372
7369
  * @private
7373
7370
  * @function Highcharts.RangeSelector#titleCollision
7374
- *
7375
- * @param {Highcharts.Chart} chart
7376
- *
7377
7371
  * @return {boolean}
7378
- * Returns collision status
7372
+ * Returns collision status
7379
7373
  */
7380
7374
  RangeSelector.prototype.titleCollision = function (chart) {
7381
7375
  return !(chart.options.title.text ||
@@ -7387,7 +7381,6 @@
7387
7381
  * @private
7388
7382
  * @function Highcharts.RangeSelector#update
7389
7383
  * @param {Highcharts.RangeSelectorOptions} options
7390
- * @return {void}
7391
7384
  */
7392
7385
  RangeSelector.prototype.update = function (options) {
7393
7386
  var chart = this.chart;
@@ -7483,17 +7476,14 @@
7483
7476
  *
7484
7477
  * @private
7485
7478
  * @function preferredInputType
7486
- * @param {string} format
7487
- * @return {string}
7488
7479
  */
7489
7480
  function preferredInputType(format) {
7490
7481
  var ms = format.indexOf('%L') !== -1;
7491
7482
  if (ms) {
7492
7483
  return 'text';
7493
7484
  }
7494
- var date = ['a', 'A', 'd', 'e', 'w', 'b', 'B', 'm', 'o', 'y', 'Y'].some(function (char) {
7495
- return format.indexOf('%' + char) !== -1;
7496
- });
7485
+ var date = ['a', 'A', 'd', 'e', 'w', 'b', 'B', 'm', 'o', 'y', 'Y']
7486
+ .some(function (char) { return format.indexOf('%' + char) !== -1; });
7497
7487
  var time = ['H', 'k', 'I', 'l', 'M', 'S'].some(function (char) {
7498
7488
  return format.indexOf('%' + char) !== -1;
7499
7489
  });
@@ -7530,7 +7520,8 @@
7530
7520
  // Get the true range from a start date
7531
7521
  getTrueRange = function (base,
7532
7522
  count) {
7533
- var timeName = type === 'year' ? 'FullYear' : 'Month';
7523
+ var timeName = type === 'year' ?
7524
+ 'FullYear' : 'Month';
7534
7525
  var date = new time.Date(base);
7535
7526
  var basePeriod = time.get(timeName,
7536
7527
  date);
@@ -7975,7 +7966,8 @@
7975
7966
  var newIxOutOfRange = newIx > 1 || newIx < 0;
7976
7967
  if (newIxOutOfRange) {
7977
7968
  if (chart.accessibility) {
7978
- chart.accessibility.keyboardNavigation.tabindexContainer.focus();
7969
+ chart.accessibility.keyboardNavigation.tabindexContainer
7970
+ .focus();
7979
7971
  chart.accessibility.keyboardNavigation[direction < 0 ? 'prev' : 'next']();
7980
7972
  }
7981
7973
  }
@@ -8060,13 +8052,14 @@
8060
8052
  // Tab-press with dropdown focused does not propagate to chart
8061
8053
  // automatically, so we manually catch and handle it when relevant.
8062
8054
  this.removeDropdownKeydownHandler = addEvent(dropdown, 'keydown', function (e) {
8063
- var isTab = (e.which || e.keyCode) === _this.keyCodes.tab;
8055
+ var isTab = (e.which || e.keyCode) === _this.keyCodes.tab,
8056
+ a11y = chart.accessibility;
8064
8057
  if (isTab) {
8065
8058
  e.preventDefault();
8066
8059
  e.stopPropagation();
8067
- if (chart.accessibility) {
8068
- chart.accessibility.keyboardNavigation.tabindexContainer.focus();
8069
- chart.accessibility.keyboardNavigation[e.shiftKey ? 'prev' : 'next']();
8060
+ if (a11y) {
8061
+ a11y.keyboardNavigation.tabindexContainer.focus();
8062
+ a11y.keyboardNavigation[e.shiftKey ? 'prev' : 'next']();
8070
8063
  }
8071
8064
  }
8072
8065
  });
@@ -8196,10 +8189,6 @@
8196
8189
  *
8197
8190
  * @private
8198
8191
  * @function Highcharts.Chart#highlightRangeSelectorButton
8199
- *
8200
- * @param {number} ix
8201
- *
8202
- * @return {boolean}
8203
8192
  */
8204
8193
  function chartHighlightRangeSelectorButton(ix) {
8205
8194
  var buttons = (this.rangeSelector &&
@@ -8233,7 +8222,7 @@
8233
8222
  if (composedClasses.indexOf(ChartClass) === -1) {
8234
8223
  composedClasses.push(ChartClass);
8235
8224
  var chartProto = ChartClass.prototype;
8236
- chartProto.highlightRangeSelectorButton = chartHighlightRangeSelectorButton;
8225
+ chartProto.highlightRangeSelectorButton = (chartHighlightRangeSelectorButton);
8237
8226
  }
8238
8227
  if (composedClasses.indexOf(RangeSelectorClass) === -1) {
8239
8228
  composedClasses.push(RangeSelectorClass);
@@ -8247,9 +8236,9 @@
8247
8236
  * @private
8248
8237
  */
8249
8238
  function rangeSelectorAfterBtnClick() {
8250
- if (this.chart.accessibility &&
8251
- this.chart.accessibility.components.rangeSelector) {
8252
- return this.chart.accessibility.components.rangeSelector.onAfterBtnClick();
8239
+ var a11y = this.chart.accessibility;
8240
+ if (a11y && a11y.components.rangeSelector) {
8241
+ return a11y.components.rangeSelector.onAfterBtnClick();
8253
8242
  }
8254
8243
  }
8255
8244
  })(RangeSelectorComponent || (RangeSelectorComponent = {}));
@@ -8345,7 +8334,8 @@
8345
8334
  var hadForcedMarker = point.hasForcedA11yMarker;
8346
8335
  delete point.hasForcedA11yMarker;
8347
8336
  if (pointOptions.marker) {
8348
- var isStillForcedMarker = hadForcedMarker && getPointMarkerOpacity(pointOptions) === 0;
8337
+ var isStillForcedMarker = hadForcedMarker &&
8338
+ getPointMarkerOpacity(pointOptions) === 0;
8349
8339
  if (pointOptions.marker.enabled && !isStillForcedMarker) {
8350
8340
  unforcePointMarkerOptions(pointOptions);
8351
8341
  point.hasForcedA11yMarker = false;
@@ -8361,7 +8351,9 @@
8361
8351
  * @private
8362
8352
  */
8363
8353
  function hasIndividualPointMarkerOptions(series) {
8364
- return !!(series._hasPointMarkers && series.points && series.points.length);
8354
+ return !!(series._hasPointMarkers &&
8355
+ series.points &&
8356
+ series.points.length);
8365
8357
  }
8366
8358
  /**
8367
8359
  * @private
@@ -8370,7 +8362,8 @@
8370
8362
  var a11yOptions = series.chart.options.accessibility;
8371
8363
  return series.points.length <
8372
8364
  a11yOptions.series.pointDescriptionEnabledThreshold ||
8373
- a11yOptions.series.pointDescriptionEnabledThreshold === false;
8365
+ a11yOptions.series
8366
+ .pointDescriptionEnabledThreshold === false;
8374
8367
  }
8375
8368
  /**
8376
8369
  * Process marker graphics after render
@@ -8388,8 +8381,11 @@
8388
8381
  if (hasIndividualPointMarkerOptions(series)) {
8389
8382
  series.points.forEach(function (point) {
8390
8383
  if (point.graphic) {
8391
- point.graphic[point.hasForcedA11yMarker ? 'addClass' : 'removeClass']('highcharts-a11y-marker-hidden');
8392
- point.graphic[point.hasForcedA11yMarker === false ? 'addClass' : 'removeClass']('highcharts-a11y-marker-visible');
8384
+ point.graphic[point.hasForcedA11yMarker ?
8385
+ 'addClass' : 'removeClass']('highcharts-a11y-marker-hidden');
8386
+ point.graphic[point.hasForcedA11yMarker === false ?
8387
+ 'addClass' :
8388
+ 'removeClass']('highcharts-a11y-marker-visible');
8393
8389
  }
8394
8390
  });
8395
8391
  }
@@ -8431,7 +8427,9 @@
8431
8427
  chartA11yEnabled = chart.options.accessibility.enabled,
8432
8428
  seriesA11yEnabled = (series.options.accessibility &&
8433
8429
  series.options.accessibility.enabled) !== false;
8434
- return chartA11yEnabled && seriesA11yEnabled && isWithinDescriptionThreshold(series);
8430
+ return (chartA11yEnabled &&
8431
+ seriesA11yEnabled &&
8432
+ isWithinDescriptionThreshold(series));
8435
8433
  }
8436
8434
  /**
8437
8435
  * @private
@@ -8505,12 +8503,10 @@
8505
8503
  *
8506
8504
  * @private
8507
8505
  * @function getPointIndex
8508
- *
8509
8506
  * @param {Highcharts.AccessibilityPoint} point
8510
- * The point to find index of.
8511
- *
8507
+ * The point to find index of.
8512
8508
  * @return {number|undefined}
8513
- * The index in the series.points array of the point.
8509
+ * The index in the series.points array of the point.
8514
8510
  */
8515
8511
  function getPointIndex(point) {
8516
8512
  var index = point.index,
@@ -8529,13 +8525,7 @@
8529
8525
  }
8530
8526
  /**
8531
8527
  * Determine if series navigation should be skipped
8532
- *
8533
8528
  * @private
8534
- * @function isSkipSeries
8535
- *
8536
- * @param {Highcharts.Series} series
8537
- *
8538
- * @return {boolean|number|undefined}
8539
8529
  */
8540
8530
  function isSkipSeries(series) {
8541
8531
  var a11yOptions = series.chart.options.accessibility,
@@ -8554,13 +8544,7 @@
8554
8544
  }
8555
8545
  /**
8556
8546
  * Determine if navigation for a point should be skipped
8557
- *
8558
8547
  * @private
8559
- * @function isSkipPoint
8560
- *
8561
- * @param {Highcharts.Point} point
8562
- *
8563
- * @return {boolean|number|undefined}
8564
8548
  */
8565
8549
  function isSkipPoint(point) {
8566
8550
  var a11yOptions = point.series.chart.options.accessibility;
@@ -8607,7 +8591,9 @@
8607
8591
  function highlightFirstValidPointInChart(chart) {
8608
8592
  var res = false;
8609
8593
  delete chart.highlightedPoint;
8610
- res = chart.series.reduce(function (acc, cur) { return acc || cur.highlightFirstValidPoint(); }, false);
8594
+ res = chart.series.reduce(function (acc, cur) {
8595
+ return acc || cur.highlightFirstValidPoint();
8596
+ }, false);
8611
8597
  return res;
8612
8598
  }
8613
8599
  /* *
@@ -8673,7 +8659,7 @@
8673
8659
  // If then navigating with virtual cursor, it is possible to leave
8674
8660
  // keyboard nav module state on the data points and still activate
8675
8661
  // proxy buttons.
8676
- var focusedElClassName = focusedElement && focusedElement.getAttribute('class');
8662
+ var focusedElClassName = (focusedElement && focusedElement.getAttribute('class'));
8677
8663
  var isProxyFocused = focusedElClassName &&
8678
8664
  focusedElClassName.indexOf('highcharts-a11y-proxy-button') > -1;
8679
8665
  if (chart.highlightedPoint === point &&
@@ -8711,7 +8697,7 @@
8711
8697
  }
8712
8698
  };
8713
8699
  /**
8714
- * @return {Highcharts.KeyboardNavigationHandler}
8700
+ * @private
8715
8701
  */
8716
8702
  SeriesKeyboardNavigation.prototype.getKeyboardNavigationHandler = function () {
8717
8703
  var keyboardNavigation = this,
@@ -8802,7 +8788,7 @@
8802
8788
  if (chart.tooltip) {
8803
8789
  chart.tooltip.hide(0);
8804
8790
  }
8805
- var hoverSeries = chart.highlightedPoint && chart.highlightedPoint.series;
8791
+ var hoverSeries = (chart.highlightedPoint && chart.highlightedPoint.series);
8806
8792
  if (hoverSeries && hoverSeries.onMouseOut) {
8807
8793
  hoverSeries.onMouseOut();
8808
8794
  }
@@ -8896,7 +8882,9 @@
8896
8882
  curPointIndex = curPoint && getPointIndex(curPoint) || 0,
8897
8883
  curPoints = curPoint && curPoint.series.points || [],
8898
8884
  lastSeries = chart.series && chart.series[chart.series.length - 1],
8899
- lastPoint = lastSeries && lastSeries.points && lastSeries.points[lastSeries.points.length - 1];
8885
+ lastPoint = lastSeries &&
8886
+ lastSeries.points &&
8887
+ lastSeries.points[lastSeries.points.length - 1];
8900
8888
  var newSeries,
8901
8889
  newPoint;
8902
8890
  // If no points, return false
@@ -8909,8 +8897,7 @@
8909
8897
  newPoint = next ? series[0].points[0] : lastPoint;
8910
8898
  }
8911
8899
  else {
8912
- // We have a highlighted point.
8913
- // Grab next/prev point & series
8900
+ // We have a highlighted point. Grab next/prev point & series.
8914
8901
  newSeries = series[curPoint.series.index + (next ? 1 : -1)];
8915
8902
  newPoint = curPoints[curPointIndex + (next ? 1 : -1)];
8916
8903
  if (!newPoint && newSeries) {
@@ -8970,7 +8957,7 @@
8970
8957
  if (series.yAxis && series.yAxis.reversed) {
8971
8958
  yDistance *= -1;
8972
8959
  }
8973
- if (yDistance <= 0 && down || yDistance >= 0 && !down || // Chk dir
8960
+ if (yDistance <= 0 && down || yDistance >= 0 && !down ||
8974
8961
  distance < 5 || // Points in same spot => infinite loop
8975
8962
  isSkipPoint(point)) {
8976
8963
  return;
@@ -9001,10 +8988,11 @@
9001
8988
  if (!chart.highlightedPoint) {
9002
8989
  newSeries = down ? (chart.series && chart.series[0]) : lastSeries;
9003
8990
  newPoint = down ?
9004
- (newSeries && newSeries.points && newSeries.points[0]) : lastPoint;
8991
+ (newSeries && newSeries.points && newSeries.points[0]) :
8992
+ lastPoint;
9005
8993
  return newPoint ? newPoint.highlight() : false;
9006
8994
  }
9007
- newSeries = chart.series[curPoint.series.index + (down ? -1 : 1)];
8995
+ newSeries = (chart.series[curPoint.series.index + (down ? -1 : 1)]);
9008
8996
  if (!newSeries) {
9009
8997
  return false;
9010
8998
  }
@@ -9018,7 +9006,8 @@
9018
9006
  if (isSkipSeries(newSeries)) {
9019
9007
  // Skip the series
9020
9008
  newPoint.highlight();
9021
- adjacentNewPoint = chart.highlightAdjacentSeries(down); // Try recurse
9009
+ // Try recurse
9010
+ adjacentNewPoint = chart.highlightAdjacentSeries(down);
9022
9011
  if (!adjacentNewPoint) {
9023
9012
  // Recurse failed
9024
9013
  curPoint.highlight();
@@ -9040,7 +9029,7 @@
9040
9029
  composedClasses.push(ChartClass);
9041
9030
  var chartProto = ChartClass.prototype;
9042
9031
  chartProto.highlightAdjacentPoint = chartHighlightAdjacentPoint;
9043
- chartProto.highlightAdjacentPointVertical = chartHighlightAdjacentPointVertical;
9032
+ chartProto.highlightAdjacentPointVertical = (chartHighlightAdjacentPointVertical);
9044
9033
  chartProto.highlightAdjacentSeries = chartHighlightAdjacentSeries;
9045
9034
  }
9046
9035
  if (composedClasses.indexOf(PointClass) === -1) {
@@ -9067,7 +9056,7 @@
9067
9056
  seriesTypes[type].prototype.keyboardMoveVertical = false;
9068
9057
  }
9069
9058
  });
9070
- seriesProto.highlightFirstValidPoint = seriesHighlightFirstValidPoint;
9059
+ seriesProto.highlightFirstValidPoint = (seriesHighlightFirstValidPoint);
9071
9060
  }
9072
9061
  }
9073
9062
  SeriesKeyboardNavigation.compose = compose;
@@ -9141,8 +9130,6 @@
9141
9130
  *
9142
9131
  * @private
9143
9132
  * @function Highcharts.Series#highlightFirstValidPoint
9144
- *
9145
- * @return {boolean|Highcharts.Point}
9146
9133
  */
9147
9134
  function seriesHighlightFirstValidPoint() {
9148
9135
  var curPoint = this.chart.highlightedPoint,
@@ -9232,6 +9219,7 @@
9232
9219
  */
9233
9220
  SeriesComponent.compose = function (ChartClass, PointClass, SeriesClass) {
9234
9221
  // Handle forcing markers
9222
+ NewDataAnnouncer.compose(SeriesClass);
9235
9223
  ForcedMarkers.compose(SeriesClass);
9236
9224
  SeriesKeyboardNavigation.compose(ChartClass, PointClass, SeriesClass);
9237
9225
  };
@@ -9296,13 +9284,14 @@
9296
9284
  };
9297
9285
  /**
9298
9286
  * Get keyboard navigation handler for this component.
9299
- * @return {Highcharts.KeyboardNavigationHandler}
9287
+ * @private
9300
9288
  */
9301
9289
  SeriesComponent.prototype.getKeyboardNavigation = function () {
9302
9290
  return this.keyboardNavigation.getKeyboardNavigationHandler();
9303
9291
  };
9304
9292
  /**
9305
9293
  * Remove traces
9294
+ * @private
9306
9295
  */
9307
9296
  SeriesComponent.prototype.destroy = function () {
9308
9297
  this.newDataAnnouncer.destroy();
@@ -9330,12 +9319,33 @@
9330
9319
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
9331
9320
  *
9332
9321
  * */
9322
+ var __extends = (this && this.__extends) || (function () {
9323
+ var extendStatics = function (d,
9324
+ b) {
9325
+ extendStatics = Object.setPrototypeOf ||
9326
+ ({ __proto__: [] } instanceof Array && function (d,
9327
+ b) { d.__proto__ = b; }) ||
9328
+ function (d,
9329
+ b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
9330
+ return extendStatics(d, b);
9331
+ };
9332
+ return function (d, b) {
9333
+ extendStatics(d, b);
9334
+ function __() { this.constructor = d; }
9335
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
9336
+ };
9337
+ })();
9333
9338
  var unhideChartElementFromAT = ChartUtilities.unhideChartElementFromAT;
9334
9339
  var noop = H.noop;
9335
9340
  var attr = U.attr,
9336
9341
  extend = U.extend,
9337
9342
  pick = U.pick;
9338
- /* eslint-disable no-invalid-this, valid-jsdoc */
9343
+ /* *
9344
+ *
9345
+ * Functions
9346
+ *
9347
+ * */
9348
+ /* eslint-disable valid-jsdoc */
9339
9349
  /**
9340
9350
  * @private
9341
9351
  */
@@ -9344,33 +9354,11 @@
9344
9354
  chart.mapNavButtons &&
9345
9355
  chart.mapNavButtons.length);
9346
9356
  }
9347
- /**
9348
- * Pan along axis in a direction (1 or -1), optionally with a defined
9349
- * granularity (number of steps it takes to walk across current view)
9357
+ /* *
9350
9358
  *
9351
- * @private
9352
- * @function Highcharts.Axis#panStep
9359
+ * Class
9353
9360
  *
9354
- * @param {number} direction
9355
- * @param {number} [granularity]
9356
- */
9357
- H.Axis.prototype.panStep = function (direction, granularity) {
9358
- var gran = granularity || 3;
9359
- var extremes = this.getExtremes();
9360
- var step = (extremes.max - extremes.min) / gran * direction;
9361
- var newMax = extremes.max + step;
9362
- var newMin = extremes.min + step;
9363
- var size = newMax - newMin;
9364
- if (direction < 0 && newMin < extremes.dataMin) {
9365
- newMin = extremes.dataMin;
9366
- newMax = newMin + size;
9367
- }
9368
- else if (direction > 0 && newMax > extremes.dataMax) {
9369
- newMax = extremes.dataMax;
9370
- newMin = newMax - size;
9371
- }
9372
- this.setExtremes(newMin, newMax);
9373
- };
9361
+ * */
9374
9362
  /**
9375
9363
  * The ZoomComponent class
9376
9364
  *
@@ -9378,13 +9366,28 @@
9378
9366
  * @class
9379
9367
  * @name Highcharts.ZoomComponent
9380
9368
  */
9381
- var ZoomComponent = noop;
9382
- ZoomComponent.prototype = new AccessibilityComponent();
9383
- extend(ZoomComponent.prototype, /** @lends Highcharts.ZoomComponent */ {
9369
+ var ZoomComponent = /** @class */ (function (_super) {
9370
+ __extends(ZoomComponent, _super);
9371
+ function ZoomComponent() {
9372
+ /* *
9373
+ *
9374
+ * Properties
9375
+ *
9376
+ * */
9377
+ var _this = _super !== null && _super.apply(this,
9378
+ arguments) || this;
9379
+ _this.focusedMapNavButtonIx = -1;
9380
+ return _this;
9381
+ }
9382
+ /* *
9383
+ *
9384
+ * Functions
9385
+ *
9386
+ * */
9384
9387
  /**
9385
9388
  * Initialize the component
9386
9389
  */
9387
- init: function () {
9390
+ ZoomComponent.prototype.init = function () {
9388
9391
  var component = this,
9389
9392
  chart = this.chart;
9390
9393
  this.proxyProvider.addGroup('zoom', 'div');
@@ -9395,11 +9398,11 @@
9395
9398
  component.updateProxyOverlays();
9396
9399
  });
9397
9400
  });
9398
- },
9401
+ };
9399
9402
  /**
9400
9403
  * Called when chart is updated
9401
9404
  */
9402
- onChartUpdate: function () {
9405
+ ZoomComponent.prototype.onChartUpdate = function () {
9403
9406
  var chart = this.chart,
9404
9407
  component = this;
9405
9408
  // Make map zoom buttons accessible
@@ -9409,13 +9412,13 @@
9409
9412
  component.setMapNavButtonAttrs(button.element, 'accessibility.zoom.mapZoom' + (i ? 'Out' : 'In'));
9410
9413
  });
9411
9414
  }
9412
- },
9415
+ };
9413
9416
  /**
9414
9417
  * @private
9415
9418
  * @param {Highcharts.HTMLDOMElement|Highcharts.SVGDOMElement} button
9416
9419
  * @param {string} labelFormatKey
9417
9420
  */
9418
- setMapNavButtonAttrs: function (button, labelFormatKey) {
9421
+ ZoomComponent.prototype.setMapNavButtonAttrs = function (button, labelFormatKey) {
9419
9422
  var chart = this.chart,
9420
9423
  label = chart.langFormat(labelFormatKey, { chart: chart });
9421
9424
  attr(button, {
@@ -9423,18 +9426,18 @@
9423
9426
  role: 'button',
9424
9427
  'aria-label': label
9425
9428
  });
9426
- },
9429
+ };
9427
9430
  /**
9428
9431
  * Update the proxy overlays on every new render to ensure positions are
9429
9432
  * correct.
9430
9433
  */
9431
- onChartRender: function () {
9434
+ ZoomComponent.prototype.onChartRender = function () {
9432
9435
  this.updateProxyOverlays();
9433
- },
9436
+ };
9434
9437
  /**
9435
9438
  * Update proxy overlays, recreating the buttons.
9436
9439
  */
9437
- updateProxyOverlays: function () {
9440
+ ZoomComponent.prototype.updateProxyOverlays = function () {
9438
9441
  var chart = this.chart;
9439
9442
  // Always start with a clean slate
9440
9443
  this.proxyProvider.clearGroup('zoom');
@@ -9447,27 +9450,27 @@
9447
9450
  buttonText: chart.getDrilldownBackText()
9448
9451
  }));
9449
9452
  }
9450
- },
9453
+ };
9451
9454
  /**
9452
9455
  * @private
9453
9456
  * @param {Highcharts.SVGElement} buttonEl
9454
9457
  * @param {string} buttonProp
9455
9458
  * @param {string} label
9456
9459
  */
9457
- createZoomProxyButton: function (buttonEl, buttonProp, label) {
9460
+ ZoomComponent.prototype.createZoomProxyButton = function (buttonEl, buttonProp, label) {
9458
9461
  this[buttonProp] = this.proxyProvider.addProxyElement('zoom', {
9459
9462
  click: buttonEl
9460
9463
  }, {
9461
9464
  'aria-label': label,
9462
9465
  tabindex: -1
9463
9466
  });
9464
- },
9467
+ };
9465
9468
  /**
9466
9469
  * Get keyboard navigation handler for map zoom.
9467
9470
  * @private
9468
9471
  * @return {Highcharts.KeyboardNavigationHandler} The module object
9469
9472
  */
9470
- getMapZoomNavigation: function () {
9473
+ ZoomComponent.prototype.getMapZoomNavigation = function () {
9471
9474
  var keys = this.keyCodes,
9472
9475
  chart = this.chart,
9473
9476
  component = this;
@@ -9499,14 +9502,14 @@
9499
9502
  return component.onMapNavInit(direction);
9500
9503
  }
9501
9504
  });
9502
- },
9505
+ };
9503
9506
  /**
9504
9507
  * @private
9505
9508
  * @param {Highcharts.KeyboardNavigationHandler} keyboardNavigationHandler
9506
9509
  * @param {number} keyCode
9507
9510
  * @return {number} Response code
9508
9511
  */
9509
- onMapKbdArrow: function (keyboardNavigationHandler, keyCode) {
9512
+ ZoomComponent.prototype.onMapKbdArrow = function (keyboardNavigationHandler, keyCode) {
9510
9513
  var keys = this.keyCodes,
9511
9514
  panAxis = (keyCode === keys.up || keyCode === keys.down) ?
9512
9515
  'yAxis' : 'xAxis',
@@ -9514,14 +9517,14 @@
9514
9517
  -1 : 1;
9515
9518
  this.chart[panAxis][0].panStep(stepDirection);
9516
9519
  return keyboardNavigationHandler.response.success;
9517
- },
9520
+ };
9518
9521
  /**
9519
9522
  * @private
9520
9523
  * @param {Highcharts.KeyboardNavigationHandler} keyboardNavigationHandler
9521
9524
  * @param {global.KeyboardEvent} event
9522
9525
  * @return {number} Response code
9523
9526
  */
9524
- onMapKbdTab: function (keyboardNavigationHandler, event) {
9527
+ ZoomComponent.prototype.onMapKbdTab = function (keyboardNavigationHandler, event) {
9525
9528
  var chart = this.chart;
9526
9529
  var response = keyboardNavigationHandler.response;
9527
9530
  var isBackwards = event.shiftKey;
@@ -9539,22 +9542,22 @@
9539
9542
  chart.setFocusToElement(button.box, button.element);
9540
9543
  button.setState(2);
9541
9544
  return response.success;
9542
- },
9545
+ };
9543
9546
  /**
9544
9547
  * @private
9545
9548
  * @param {Highcharts.KeyboardNavigationHandler} keyboardNavigationHandler
9546
9549
  * @return {number} Response code
9547
9550
  */
9548
- onMapKbdClick: function (keyboardNavigationHandler) {
9551
+ ZoomComponent.prototype.onMapKbdClick = function (keyboardNavigationHandler) {
9549
9552
  var el = this.chart.mapNavButtons[this.focusedMapNavButtonIx].element;
9550
9553
  this.fakeClickEvent(el);
9551
9554
  return keyboardNavigationHandler.response.success;
9552
- },
9555
+ };
9553
9556
  /**
9554
9557
  * @private
9555
9558
  * @param {number} direction
9556
9559
  */
9557
- onMapNavInit: function (direction) {
9560
+ ZoomComponent.prototype.onMapNavInit = function (direction) {
9558
9561
  var chart = this.chart,
9559
9562
  zoomIn = chart.mapNavButtons[0],
9560
9563
  zoomOut = chart.mapNavButtons[1],
@@ -9562,7 +9565,7 @@
9562
9565
  chart.setFocusToElement(initialButton.box, initialButton.element);
9563
9566
  initialButton.setState(2);
9564
9567
  this.focusedMapNavButtonIx = direction > 0 ? 0 : 1;
9565
- },
9568
+ };
9566
9569
  /**
9567
9570
  * Get keyboard navigation handler for a simple chart button. Provide the
9568
9571
  * button reference for the chart, and a function to call on click.
@@ -9571,7 +9574,7 @@
9571
9574
  * @param {string} buttonProp The property on chart referencing the button.
9572
9575
  * @return {Highcharts.KeyboardNavigationHandler} The module object
9573
9576
  */
9574
- simpleButtonNavigation: function (buttonProp, proxyProp, onClick) {
9577
+ ZoomComponent.prototype.simpleButtonNavigation = function (buttonProp, proxyProp, onClick) {
9575
9578
  var keys = this.keyCodes,
9576
9579
  component = this,
9577
9580
  chart = this.chart;
@@ -9580,8 +9583,9 @@
9580
9583
  [
9581
9584
  [keys.tab, keys.up, keys.down, keys.left, keys.right],
9582
9585
  function (keyCode, e) {
9583
- var isBackwards = keyCode === keys.tab && e.shiftKey ||
9584
- keyCode === keys.left || keyCode === keys.up;
9586
+ var isBackwards = (keyCode === keys.tab && e.shiftKey ||
9587
+ keyCode === keys.left ||
9588
+ keyCode === keys.up);
9585
9589
  // Arrow/tab => just move
9586
9590
  return this.response[isBackwards ? 'prev' : 'next'];
9587
9591
  }
@@ -9605,13 +9609,13 @@
9605
9609
  chart.setFocusToElement(chart[buttonProp].box, component[proxyProp].buttonElement);
9606
9610
  }
9607
9611
  });
9608
- },
9612
+ };
9609
9613
  /**
9610
9614
  * Get keyboard navigation handlers for this component.
9611
9615
  * @return {Array<Highcharts.KeyboardNavigationHandler>}
9612
9616
  * List of module objects
9613
9617
  */
9614
- getKeyboardNavigation: function () {
9618
+ ZoomComponent.prototype.getKeyboardNavigation = function () {
9615
9619
  return [
9616
9620
  this.simpleButtonNavigation('resetZoomButton', 'resetZoomProxyButton', function (_handler, chart) {
9617
9621
  chart.zoomOut();
@@ -9622,8 +9626,75 @@
9622
9626
  }),
9623
9627
  this.getMapZoomNavigation()
9624
9628
  ];
9629
+ };
9630
+ return ZoomComponent;
9631
+ }(AccessibilityComponent));
9632
+ /* *
9633
+ *
9634
+ * Class Namespace
9635
+ *
9636
+ * */
9637
+ (function (ZoomComponent) {
9638
+ /* *
9639
+ *
9640
+ * Declarations
9641
+ *
9642
+ * */
9643
+ /* *
9644
+ *
9645
+ * Constants
9646
+ *
9647
+ * */
9648
+ ZoomComponent.composedClasses = [];
9649
+ /* *
9650
+ *
9651
+ * Functions
9652
+ *
9653
+ * */
9654
+ /**
9655
+ * @private
9656
+ */
9657
+ function compose(AxisClass) {
9658
+ if (ZoomComponent.composedClasses.indexOf(AxisClass) === -1) {
9659
+ ZoomComponent.composedClasses.push(AxisClass);
9660
+ var axisProto = AxisClass.prototype;
9661
+ axisProto.panStep = axisPanStep;
9662
+ }
9625
9663
  }
9626
- });
9664
+ ZoomComponent.compose = compose;
9665
+ /**
9666
+ * Pan along axis in a direction (1 or -1), optionally with a defined
9667
+ * granularity (number of steps it takes to walk across current view)
9668
+ *
9669
+ * @private
9670
+ * @function Highcharts.Axis#panStep
9671
+ *
9672
+ * @param {number} direction
9673
+ * @param {number} [granularity]
9674
+ */
9675
+ function axisPanStep(direction, granularity) {
9676
+ var gran = granularity || 3;
9677
+ var extremes = this.getExtremes();
9678
+ var step = (extremes.max - extremes.min) / gran * direction;
9679
+ var newMax = extremes.max + step;
9680
+ var newMin = extremes.min + step;
9681
+ var size = newMax - newMin;
9682
+ if (direction < 0 && newMin < extremes.dataMin) {
9683
+ newMin = extremes.dataMin;
9684
+ newMax = newMin + size;
9685
+ }
9686
+ else if (direction > 0 && newMax > extremes.dataMax) {
9687
+ newMax = extremes.dataMax;
9688
+ newMin = newMax - size;
9689
+ }
9690
+ this.setExtremes(newMin, newMax);
9691
+ }
9692
+ })(ZoomComponent || (ZoomComponent = {}));
9693
+ /* *
9694
+ *
9695
+ * Default Export
9696
+ *
9697
+ * */
9627
9698
 
9628
9699
  return ZoomComponent;
9629
9700
  });
@@ -9663,7 +9734,8 @@
9663
9734
  // Test BG image for IE
9664
9735
  if (isMS && win.getComputedStyle) {
9665
9736
  var testDiv = doc.createElement('div');
9666
- var imageSrc = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';
9737
+ var imageSrc = 'data:image/gif;base64,' +
9738
+ 'R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';
9667
9739
  testDiv.style.backgroundImage = "url(" + imageSrc + ")"; // #13071
9668
9740
  doc.body.appendChild(testDiv);
9669
9741
  var bi = (testDiv.currentStyle ||
@@ -10860,9 +10932,9 @@
10860
10932
  */
10861
10933
  annotations: {
10862
10934
  heading: 'Chart annotations summary',
10863
- descriptionSinglePoint: '{annotationText}. Related to {annotationPoint}',
10864
- descriptionMultiplePoints: '{annotationText}. Related to {annotationPoint}' +
10865
- '{ Also related to, #each(additionalAnnotationPoints)}',
10935
+ descriptionSinglePoint: ('{annotationText}. Related to {annotationPoint}'),
10936
+ descriptionMultiplePoints: ('{annotationText}. Related to {annotationPoint}' +
10937
+ '{ Also related to, #each(additionalAnnotationPoints)}'),
10866
10938
  descriptionNoPoints: '{annotationText}'
10867
10939
  },
10868
10940
  /**
@@ -11229,7 +11301,8 @@
11229
11301
  if (typeof val !== 'undefined') {
11230
11302
  traverseSetOption(rootNew, mapToNewOptions[oldOptionKey], val);
11231
11303
  error(32, false, chart, (_a = {},
11232
- _a[rootOldAsArray.join('.') + "." + oldOptionKey] = rootNewAsArray.join('.') + "." + mapToNewOptions[oldOptionKey].join('.'),
11304
+ _a[rootOldAsArray.join('.') + '.' + oldOptionKey] = (rootNewAsArray.join('.') + '.' +
11305
+ mapToNewOptions[oldOptionKey].join('.')),
11233
11306
  _a));
11234
11307
  }
11235
11308
  });
@@ -11257,7 +11330,9 @@
11257
11330
  if (opts && opts.description) {
11258
11331
  opts.accessibility = opts.accessibility || {};
11259
11332
  opts.accessibility.description = opts.description;
11260
- error(32, false, chart, { 'axis.description': 'use axis.accessibility.description' });
11333
+ error(32, false, chart, {
11334
+ 'axis.description': 'use axis.accessibility.description'
11335
+ });
11261
11336
  }
11262
11337
  });
11263
11338
  }
@@ -11287,8 +11362,9 @@
11287
11362
  var optionVal = series.options[oldOption];
11288
11363
  // Special case
11289
11364
  if (oldOption === 'accessibility.pointDescriptionFormatter') {
11290
- optionVal = series.options.accessibility &&
11291
- series.options.accessibility.pointDescriptionFormatter;
11365
+ optionVal = (series.options.accessibility &&
11366
+ series.options.accessibility
11367
+ .pointDescriptionFormatter);
11292
11368
  }
11293
11369
  if (typeof optionVal !== 'undefined') {
11294
11370
  // Set the new option
@@ -11297,7 +11373,10 @@
11297
11373
  // value, since we set enabled rather than disabled
11298
11374
  oldOption === 'skipKeyboardNavigation' ?
11299
11375
  !optionVal : optionVal);
11300
- error(32, false, chart, (_a = {}, _a["series." + oldOption] = "series." + oldToNewSeriesOptions[oldOption].join('.'), _a));
11376
+ error(32, false, chart, (_a = {},
11377
+ _a["series." + oldOption] = ('series.' +
11378
+ oldToNewSeriesOptions[oldOption].join('.')),
11379
+ _a));
11301
11380
  }
11302
11381
  });
11303
11382
  });
@@ -11453,7 +11532,6 @@
11453
11532
  this.proxyProvider = new ProxyProvider(this.chart);
11454
11533
  this.initComponents();
11455
11534
  this.keyboardNavigation = new KeyboardNavigation(chart, this.components);
11456
- this.update();
11457
11535
  };
11458
11536
  /**
11459
11537
  * @private
@@ -11658,6 +11736,9 @@
11658
11736
  }
11659
11737
  else {
11660
11738
  this.accessibility = a11y = new Accessibility(this);
11739
+ if (a11y && !a11y.zombie) {
11740
+ a11y.update();
11741
+ }
11661
11742
  }
11662
11743
  }
11663
11744
  else if (a11y) {
@@ -11675,13 +11756,17 @@
11675
11756
  /**
11676
11757
  * @private
11677
11758
  */
11678
- function compose(ChartClass, PointClass, SeriesClass, SVGElementClass, RangeSelectorClass) {
11679
- A11yI18n.compose(ChartClass);
11680
- FocusBorder.compose(ChartClass, SVGElementClass);
11759
+ function compose(AxisClass, ChartClass, LegendClass, PointClass, SeriesClass, SVGElementClass, RangeSelectorClass) {
11760
+ // ordered:
11681
11761
  KeyboardNavigation.compose(ChartClass);
11682
- MenuComponent.compose(ChartClass);
11683
11762
  NewDataAnnouncer.compose(SeriesClass);
11763
+ LegendComponent.compose(ChartClass, LegendClass);
11764
+ MenuComponent.compose(ChartClass);
11684
11765
  SeriesComponent.compose(ChartClass, PointClass, SeriesClass);
11766
+ ZoomComponent.compose(AxisClass);
11767
+ // RangeSelector
11768
+ A11yI18n.compose(ChartClass);
11769
+ FocusBorder.compose(ChartClass, SVGElementClass);
11685
11770
  if (RangeSelectorClass) {
11686
11771
  RangeSelectorComponent.compose(ChartClass, RangeSelectorClass);
11687
11772
  }
@@ -11764,7 +11849,7 @@
11764
11849
  G.AccessibilityComponent = AccessibilityComponent;
11765
11850
  G.KeyboardNavigationHandler = KeyboardNavigationHandler;
11766
11851
  G.SeriesAccessibilityDescriber = SeriesDescriber;
11767
- Accessibility.compose(G.Chart, G.Point, G.Series, G.SVGElement, G.RangeSelector);
11852
+ Accessibility.compose(G.Axis, G.Chart, G.Legend, G.Point, G.Series, G.SVGElement, G.RangeSelector);
11768
11853
 
11769
11854
  });
11770
11855
  }));