highcharts 9.3.2 → 10.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (700) hide show
  1. package/bower.json +1 -1
  2. package/css/highcharts.css +19 -2
  3. package/css/highcharts.scss +17 -2
  4. package/css/themes/dark-unica.css +19 -2
  5. package/css/themes/grid-light.css +19 -2
  6. package/css/themes/sand-signika.css +19 -2
  7. package/es-modules/Accessibility/A11yI18n.js +4 -4
  8. package/es-modules/Accessibility/Accessibility.js +1 -1
  9. package/es-modules/Accessibility/Components/ContainerComponent.js +8 -9
  10. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +14 -9
  11. package/es-modules/Accessibility/Components/LegendComponent.js +31 -23
  12. package/es-modules/Accessibility/Components/MenuComponent.js +15 -5
  13. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +2 -2
  14. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +7 -6
  15. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +1 -1
  16. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +0 -1
  17. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +34 -18
  18. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +84 -33
  19. package/es-modules/Accessibility/Components/ZoomComponent.js +13 -10
  20. package/es-modules/Accessibility/FocusBorder.js +6 -5
  21. package/es-modules/Accessibility/HighContrastMode.js +2 -2
  22. package/es-modules/Accessibility/KeyboardNavigation.js +113 -98
  23. package/es-modules/Accessibility/Options/LangOptions.js +36 -31
  24. package/es-modules/Accessibility/Options/Options.js +66 -3
  25. package/es-modules/Accessibility/ProxyElement.js +14 -6
  26. package/es-modules/Accessibility/ProxyProvider.js +10 -2
  27. package/es-modules/Accessibility/Utils/ChartUtilities.js +9 -4
  28. package/es-modules/Core/Axis/Axis.js +180 -73
  29. package/es-modules/Core/Axis/Color/ColorAxis.js +22 -5
  30. package/es-modules/Core/Axis/GridAxis.js +15 -11
  31. package/es-modules/Core/Axis/LogarithmicAxis.js +1 -1
  32. package/es-modules/Core/Axis/OrdinalAxis.js +3 -2
  33. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +1 -1
  34. package/es-modules/Core/Axis/StackingAxis.js +0 -1
  35. package/es-modules/Core/Axis/Tick.js +2 -2
  36. package/es-modules/Core/Axis/TreeGridTick.js +11 -0
  37. package/es-modules/Core/Chart/Chart.js +21 -3
  38. package/es-modules/Core/Chart/Chart3D.js +1 -11
  39. package/es-modules/Core/Chart/ChartDefaults.js +43 -11
  40. package/es-modules/Core/Chart/MapChart.js +1 -6
  41. package/es-modules/Core/Chart/StockChart.js +1 -1
  42. package/es-modules/Core/DefaultOptions.js +8 -4
  43. package/es-modules/Core/Geometry/PolygonClip.js +84 -0
  44. package/es-modules/Core/Globals.js +4 -18
  45. package/es-modules/Core/HttpUtilities.js +13 -8
  46. package/es-modules/Core/Legend/Legend.js +11 -9
  47. package/es-modules/Core/Navigator.js +10 -7
  48. package/es-modules/Core/Pointer.js +15 -11
  49. package/es-modules/Core/Renderer/HTML/AST.js +68 -8
  50. package/es-modules/Core/Renderer/SVG/SVGElement.js +47 -63
  51. package/es-modules/Core/Renderer/SVG/SVGElement3D.js +17 -5
  52. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +31 -28
  53. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +1 -1
  54. package/es-modules/Core/Renderer/SVG/TextBuilder.js +12 -10
  55. package/es-modules/Core/Scrollbar.js +9 -5
  56. package/es-modules/Core/Series/DataLabel.js +65 -36
  57. package/es-modules/Core/Series/Point.js +2 -2
  58. package/es-modules/Core/Series/Series.js +52 -22
  59. package/es-modules/Core/Series/SeriesDefaults.js +4 -1
  60. package/es-modules/Core/Tooltip.js +14 -31
  61. package/es-modules/Core/Utilities.js +29 -29
  62. package/es-modules/Extensions/Annotations/Annotations.js +9 -2
  63. package/es-modules/Extensions/Annotations/ControlPoint.js +1 -1
  64. package/es-modules/Extensions/Annotations/MockPoint.js +1 -1
  65. package/es-modules/Extensions/Annotations/NavigationBindings.js +9 -1
  66. package/es-modules/Extensions/Annotations/Popup.js +1 -1
  67. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +5 -3
  68. package/es-modules/Extensions/Boost/BoostInit.js +6 -1
  69. package/es-modules/Extensions/Boost/BoostOptions.js +26 -0
  70. package/es-modules/Extensions/Boost/Boostables.js +1 -0
  71. package/es-modules/Extensions/Boost/WGLRenderer.js +48 -37
  72. package/es-modules/Extensions/Boost/WGLShader.js +4 -3
  73. package/es-modules/Extensions/Breadcrumbs.js +873 -0
  74. package/es-modules/Extensions/Data.js +26 -14
  75. package/es-modules/Extensions/DataGrouping.js +8 -3
  76. package/es-modules/Extensions/Debugger/ErrorMessages.js +4 -0
  77. package/es-modules/Extensions/DraggablePoints.js +9 -7
  78. package/es-modules/Extensions/Drilldown.js +150 -95
  79. package/es-modules/Extensions/ExportData.js +1 -2
  80. package/es-modules/Extensions/Exporting/Exporting.js +31 -20
  81. package/es-modules/Extensions/Exporting/ExportingDefaults.js +49 -1
  82. package/es-modules/Extensions/FullScreen.js +121 -54
  83. package/es-modules/Extensions/GeoJSON.js +151 -125
  84. package/es-modules/Extensions/MarkerClusters.js +34 -20
  85. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +110 -22
  86. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  87. package/es-modules/Extensions/Oldie/Oldie.js +1 -1
  88. package/es-modules/Extensions/OverlappingDataLabels.js +5 -4
  89. package/es-modules/Extensions/Polar.js +4 -1
  90. package/es-modules/Extensions/ScrollablePlotArea.js +5 -1
  91. package/es-modules/Extensions/Stacking.js +4 -3
  92. package/es-modules/Extensions/Themes/HighContrastDark.js +10 -10
  93. package/es-modules/Extensions/Themes/HighContrastLight.js +10 -10
  94. package/es-modules/Maps/MapNavigation.js +50 -13
  95. package/es-modules/Maps/MapPointer.js +16 -0
  96. package/es-modules/Maps/MapUtilities.js +56 -0
  97. package/es-modules/Maps/MapView.js +611 -136
  98. package/es-modules/Maps/MapViewInsetsOptionsDefault.js +148 -0
  99. package/es-modules/Maps/MapViewOptionsDefault.js +60 -20
  100. package/es-modules/Maps/Projection.js +169 -77
  101. package/es-modules/Maps/Projections/EqualEarth.js +15 -6
  102. package/es-modules/Maps/Projections/LambertConformalConic.js +27 -19
  103. package/es-modules/Maps/Projections/Miller.js +23 -10
  104. package/es-modules/Maps/Projections/Orthographic.js +21 -10
  105. package/es-modules/Maps/Projections/WebMercator.js +25 -13
  106. package/es-modules/Series/ArcDiagram/ArcDiagramPoint.js +77 -0
  107. package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +589 -0
  108. package/es-modules/Series/CenteredUtilities.js +6 -1
  109. package/es-modules/Series/Column/ColumnSeries.js +4 -3
  110. package/es-modules/Series/DataModifyComposition.js +1 -0
  111. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +2 -2
  112. package/es-modules/Series/DrawPointComposition.js +7 -4
  113. package/es-modules/Series/Flags/FlagsSeries.js +7 -12
  114. package/es-modules/Series/Gauge/GaugeSeries.js +1 -1
  115. package/es-modules/Series/Heatmap/HeatmapSeries.js +13 -20
  116. package/es-modules/Series/Lollipop/LollipopSeries.js +1 -1
  117. package/es-modules/Series/Map/MapPoint.js +24 -1
  118. package/es-modules/Series/Map/MapSeries.js +206 -169
  119. package/es-modules/Series/MapBubble/MapBubblePoint.js +16 -24
  120. package/es-modules/Series/MapBubble/MapBubbleSeries.js +58 -1
  121. package/es-modules/Series/MapPoint/MapPointPoint.js +2 -8
  122. package/es-modules/Series/MapPoint/MapPointSeries.js +40 -14
  123. package/es-modules/Series/NodesComposition.js +60 -13
  124. package/es-modules/Series/OHLC/OHLCSeries.js +7 -0
  125. package/es-modules/Series/Organization/OrganizationPoint.js +68 -2
  126. package/es-modules/Series/Organization/OrganizationSeries.js +79 -25
  127. package/es-modules/Series/Pie/PieDataLabel.js +3 -1
  128. package/es-modules/Series/Pie/PiePoint.js +12 -5
  129. package/es-modules/Series/Pie/PieSeries.js +12 -1
  130. package/es-modules/Series/Pie3D/Pie3DSeries.js +19 -0
  131. package/es-modules/Series/Sankey/SankeyColumnComposition.js +193 -0
  132. package/es-modules/Series/Sankey/SankeyPoint.js +37 -1
  133. package/es-modules/Series/Sankey/SankeySeries.js +13 -128
  134. package/es-modules/Series/Scatter/ScatterSeries.js +1 -1
  135. package/es-modules/Series/Sunburst/SunburstSeries.js +14 -3
  136. package/es-modules/Series/Treemap/TreemapSeries.js +88 -80
  137. package/es-modules/Series/Waterfall/WaterfallSeries.js +2 -0
  138. package/es-modules/Series/Wordcloud/WordcloudSeries.js +4 -4
  139. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +9 -2
  140. package/es-modules/Stock/StockToolsBindings.js +31 -24
  141. package/es-modules/Stock/StockToolsGui.js +1 -1
  142. package/es-modules/masters/highcharts-3d.src.js +1 -1
  143. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  144. package/es-modules/masters/highcharts-more.src.js +1 -1
  145. package/es-modules/masters/highcharts.src.js +1 -1
  146. package/es-modules/masters/highmaps.src.js +1 -1
  147. package/es-modules/masters/highstock.src.js +1 -1
  148. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  149. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  150. package/es-modules/masters/indicators/ao.src.js +1 -1
  151. package/es-modules/masters/indicators/apo.src.js +1 -1
  152. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  153. package/es-modules/masters/indicators/aroon.src.js +1 -1
  154. package/es-modules/masters/indicators/atr.src.js +1 -1
  155. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  156. package/es-modules/masters/indicators/cci.src.js +1 -1
  157. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  158. package/es-modules/masters/indicators/cmf.src.js +1 -1
  159. package/es-modules/masters/indicators/cmo.src.js +1 -1
  160. package/es-modules/masters/indicators/dema.src.js +1 -1
  161. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  162. package/es-modules/masters/indicators/dmi.src.js +1 -1
  163. package/es-modules/masters/indicators/dpo.src.js +1 -1
  164. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  165. package/es-modules/masters/indicators/indicators-all.src.js +1 -1
  166. package/es-modules/masters/indicators/indicators.src.js +1 -1
  167. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  168. package/es-modules/masters/indicators/klinger.src.js +1 -1
  169. package/es-modules/masters/indicators/macd.src.js +1 -1
  170. package/es-modules/masters/indicators/mfi.src.js +1 -1
  171. package/es-modules/masters/indicators/momentum.src.js +1 -1
  172. package/es-modules/masters/indicators/natr.src.js +1 -1
  173. package/es-modules/masters/indicators/obv.src.js +1 -1
  174. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  175. package/es-modules/masters/indicators/ppo.src.js +1 -1
  176. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  177. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  178. package/es-modules/masters/indicators/psar.src.js +1 -1
  179. package/es-modules/masters/indicators/regressions.src.js +1 -1
  180. package/es-modules/masters/indicators/roc.src.js +1 -1
  181. package/es-modules/masters/indicators/rsi.src.js +1 -1
  182. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  183. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  184. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  185. package/es-modules/masters/indicators/tema.src.js +1 -1
  186. package/es-modules/masters/indicators/trendline.src.js +1 -1
  187. package/es-modules/masters/indicators/trix.src.js +1 -1
  188. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  189. package/es-modules/masters/indicators/vwap.src.js +1 -1
  190. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  191. package/es-modules/masters/indicators/wma.src.js +1 -1
  192. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  193. package/es-modules/masters/modules/accessibility.src.js +1 -1
  194. package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
  195. package/es-modules/masters/modules/annotations.src.js +1 -1
  196. package/es-modules/masters/modules/arc-diagram.src.js +14 -0
  197. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  198. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  199. package/es-modules/masters/modules/boost.src.js +1 -1
  200. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  201. package/es-modules/masters/modules/bullet.src.js +1 -1
  202. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  203. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  204. package/es-modules/masters/modules/cylinder.src.js +1 -1
  205. package/es-modules/masters/modules/data.src.js +1 -1
  206. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  207. package/es-modules/masters/modules/debugger.src.js +1 -1
  208. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  209. package/es-modules/masters/modules/dotplot.src.js +1 -1
  210. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  211. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  212. package/es-modules/masters/modules/drilldown.src.js +2 -1
  213. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  214. package/es-modules/masters/modules/export-data.src.js +1 -1
  215. package/es-modules/masters/modules/exporting.src.js +1 -1
  216. package/es-modules/masters/modules/full-screen.src.js +1 -1
  217. package/es-modules/masters/modules/funnel.src.js +1 -1
  218. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  219. package/es-modules/masters/modules/gantt.src.js +1 -1
  220. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  221. package/es-modules/masters/modules/heatmap.src.js +1 -1
  222. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  223. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  224. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  225. package/es-modules/masters/modules/item-series.src.js +1 -1
  226. package/es-modules/masters/modules/lollipop.src.js +1 -1
  227. package/es-modules/masters/modules/map.src.js +5 -1
  228. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  229. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  230. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  231. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  232. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  233. package/es-modules/masters/modules/oldie.src.js +1 -1
  234. package/es-modules/masters/modules/organization.src.js +1 -1
  235. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  236. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  237. package/es-modules/masters/modules/pareto.src.js +1 -1
  238. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  239. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  240. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  241. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  242. package/es-modules/masters/modules/sankey.src.js +1 -1
  243. package/es-modules/masters/modules/series-label.src.js +1 -1
  244. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  245. package/es-modules/masters/modules/sonification.src.js +1 -1
  246. package/es-modules/masters/modules/static-scale.src.js +1 -1
  247. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  248. package/es-modules/masters/modules/stock.src.js +1 -1
  249. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  250. package/es-modules/masters/modules/sunburst.src.js +1 -1
  251. package/es-modules/masters/modules/tilemap.src.js +1 -1
  252. package/es-modules/masters/modules/timeline.src.js +1 -1
  253. package/es-modules/masters/modules/treegrid.src.js +1 -1
  254. package/es-modules/masters/modules/treemap.src.js +5 -1
  255. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  256. package/es-modules/masters/modules/variwide.src.js +1 -1
  257. package/es-modules/masters/modules/vector.src.js +1 -1
  258. package/es-modules/masters/modules/venn.src.js +1 -1
  259. package/es-modules/masters/modules/windbarb.src.js +1 -1
  260. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  261. package/es-modules/masters/modules/xrange.src.js +1 -1
  262. package/es-modules/masters/themes/avocado.src.js +1 -1
  263. package/es-modules/masters/themes/brand-dark.src.js +1 -1
  264. package/es-modules/masters/themes/brand-light.src.js +1 -1
  265. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  266. package/es-modules/masters/themes/dark-green.src.js +1 -1
  267. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  268. package/es-modules/masters/themes/gray.src.js +1 -1
  269. package/es-modules/masters/themes/grid-light.src.js +1 -1
  270. package/es-modules/masters/themes/grid.src.js +1 -1
  271. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  272. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  273. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  274. package/es-modules/masters/themes/skies.src.js +1 -1
  275. package/es-modules/masters/themes/sunset.src.js +1 -1
  276. package/highcharts-3d.js +99 -98
  277. package/highcharts-3d.js.map +1 -1
  278. package/highcharts-3d.src.js +51 -21
  279. package/highcharts-gantt.js +808 -800
  280. package/highcharts-gantt.js.map +1 -1
  281. package/highcharts-gantt.src.js +781 -426
  282. package/highcharts-more.js +195 -194
  283. package/highcharts-more.js.map +1 -1
  284. package/highcharts-more.src.js +18 -4
  285. package/highcharts.d.ts +3224 -542
  286. package/highcharts.js +592 -584
  287. package/highcharts.js.map +1 -1
  288. package/highcharts.src.d.ts +3224 -542
  289. package/highcharts.src.js +732 -400
  290. package/highmaps.js +760 -728
  291. package/highmaps.js.map +1 -1
  292. package/highmaps.src.js +3840 -2189
  293. package/highstock.js +793 -786
  294. package/highstock.js.map +1 -1
  295. package/highstock.src.js +783 -432
  296. package/indicators/acceleration-bands.js +12 -11
  297. package/indicators/acceleration-bands.js.map +1 -1
  298. package/indicators/acceleration-bands.src.js +11 -2
  299. package/indicators/accumulation-distribution.js +5 -5
  300. package/indicators/accumulation-distribution.js.map +1 -1
  301. package/indicators/accumulation-distribution.src.js +11 -2
  302. package/indicators/ao.js +6 -6
  303. package/indicators/ao.js.map +1 -1
  304. package/indicators/ao.src.js +11 -2
  305. package/indicators/apo.js +5 -5
  306. package/indicators/apo.js.map +1 -1
  307. package/indicators/apo.src.js +11 -2
  308. package/indicators/aroon-oscillator.js +10 -10
  309. package/indicators/aroon-oscillator.js.map +1 -1
  310. package/indicators/aroon-oscillator.src.js +11 -2
  311. package/indicators/aroon.js +11 -11
  312. package/indicators/aroon.js.map +1 -1
  313. package/indicators/aroon.src.js +11 -2
  314. package/indicators/atr.js +5 -5
  315. package/indicators/atr.js.map +1 -1
  316. package/indicators/atr.src.js +11 -2
  317. package/indicators/bollinger-bands.js +12 -12
  318. package/indicators/bollinger-bands.js.map +1 -1
  319. package/indicators/bollinger-bands.src.js +11 -2
  320. package/indicators/cci.js +5 -5
  321. package/indicators/cci.js.map +1 -1
  322. package/indicators/cci.src.js +11 -2
  323. package/indicators/chaikin.js +8 -8
  324. package/indicators/chaikin.js.map +1 -1
  325. package/indicators/chaikin.src.js +11 -2
  326. package/indicators/cmf.js +6 -6
  327. package/indicators/cmf.js.map +1 -1
  328. package/indicators/cmf.src.js +11 -2
  329. package/indicators/cmo.js +5 -5
  330. package/indicators/cmo.js.map +1 -1
  331. package/indicators/cmo.src.js +11 -2
  332. package/indicators/dema.js +5 -5
  333. package/indicators/dema.js.map +1 -1
  334. package/indicators/dema.src.js +11 -2
  335. package/indicators/disparity-index.js +6 -6
  336. package/indicators/disparity-index.js.map +1 -1
  337. package/indicators/disparity-index.src.js +11 -2
  338. package/indicators/dmi.js +12 -12
  339. package/indicators/dmi.js.map +1 -1
  340. package/indicators/dmi.src.js +11 -2
  341. package/indicators/dpo.js +5 -5
  342. package/indicators/dpo.js.map +1 -1
  343. package/indicators/dpo.src.js +11 -2
  344. package/indicators/ema.js +2 -1
  345. package/indicators/ema.js.map +1 -1
  346. package/indicators/ema.src.js +10 -1
  347. package/indicators/ichimoku-kinko-hyo.js +16 -16
  348. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  349. package/indicators/ichimoku-kinko-hyo.src.js +11 -2
  350. package/indicators/indicators-all.js +195 -194
  351. package/indicators/indicators-all.js.map +1 -1
  352. package/indicators/indicators-all.src.js +21 -5
  353. package/indicators/indicators.js +13 -12
  354. package/indicators/indicators.js.map +1 -1
  355. package/indicators/indicators.src.js +21 -5
  356. package/indicators/keltner-channels.js +12 -11
  357. package/indicators/keltner-channels.js.map +1 -1
  358. package/indicators/keltner-channels.src.js +11 -2
  359. package/indicators/klinger.js +13 -13
  360. package/indicators/klinger.js.map +1 -1
  361. package/indicators/klinger.src.js +11 -2
  362. package/indicators/macd.js +12 -11
  363. package/indicators/macd.js.map +1 -1
  364. package/indicators/macd.src.js +11 -2
  365. package/indicators/mfi.js +6 -6
  366. package/indicators/mfi.js.map +1 -1
  367. package/indicators/mfi.src.js +11 -2
  368. package/indicators/momentum.js +5 -5
  369. package/indicators/momentum.js.map +1 -1
  370. package/indicators/momentum.src.js +11 -2
  371. package/indicators/natr.js +5 -4
  372. package/indicators/natr.js.map +1 -1
  373. package/indicators/natr.src.js +11 -2
  374. package/indicators/obv.js +5 -5
  375. package/indicators/obv.js.map +1 -1
  376. package/indicators/obv.src.js +11 -2
  377. package/indicators/pivot-points.js +11 -11
  378. package/indicators/pivot-points.js.map +1 -1
  379. package/indicators/pivot-points.src.js +11 -2
  380. package/indicators/ppo.js +5 -5
  381. package/indicators/ppo.js.map +1 -1
  382. package/indicators/ppo.src.js +11 -2
  383. package/indicators/price-channel.js +11 -11
  384. package/indicators/price-channel.js.map +1 -1
  385. package/indicators/price-channel.src.js +11 -2
  386. package/indicators/price-envelopes.js +8 -8
  387. package/indicators/price-envelopes.js.map +1 -1
  388. package/indicators/price-envelopes.src.js +11 -2
  389. package/indicators/psar.js +7 -6
  390. package/indicators/psar.js.map +1 -1
  391. package/indicators/psar.src.js +11 -2
  392. package/indicators/regressions.js +12 -12
  393. package/indicators/regressions.js.map +1 -1
  394. package/indicators/regressions.src.js +11 -2
  395. package/indicators/roc.js +5 -5
  396. package/indicators/roc.js.map +1 -1
  397. package/indicators/roc.src.js +11 -2
  398. package/indicators/rsi.js +6 -5
  399. package/indicators/rsi.js.map +1 -1
  400. package/indicators/rsi.src.js +11 -2
  401. package/indicators/slow-stochastic.js +5 -5
  402. package/indicators/slow-stochastic.js.map +1 -1
  403. package/indicators/slow-stochastic.src.js +11 -2
  404. package/indicators/stochastic.js +12 -12
  405. package/indicators/stochastic.js.map +1 -1
  406. package/indicators/stochastic.src.js +11 -2
  407. package/indicators/supertrend.js +10 -10
  408. package/indicators/supertrend.js.map +1 -1
  409. package/indicators/supertrend.src.js +11 -2
  410. package/indicators/tema.js +6 -6
  411. package/indicators/tema.js.map +1 -1
  412. package/indicators/tema.src.js +11 -2
  413. package/indicators/trendline.js +5 -5
  414. package/indicators/trendline.js.map +1 -1
  415. package/indicators/trendline.src.js +11 -2
  416. package/indicators/trix.js +4 -4
  417. package/indicators/trix.js.map +1 -1
  418. package/indicators/trix.src.js +11 -2
  419. package/indicators/volume-by-price.js +17 -17
  420. package/indicators/volume-by-price.js.map +1 -1
  421. package/indicators/volume-by-price.src.js +11 -2
  422. package/indicators/vwap.js +5 -5
  423. package/indicators/vwap.js.map +1 -1
  424. package/indicators/vwap.src.js +11 -2
  425. package/indicators/williams-r.js +6 -5
  426. package/indicators/williams-r.js.map +1 -1
  427. package/indicators/williams-r.src.js +11 -2
  428. package/indicators/wma.js +5 -5
  429. package/indicators/wma.js.map +1 -1
  430. package/indicators/wma.src.js +11 -2
  431. package/indicators/zigzag.js +6 -6
  432. package/indicators/zigzag.js.map +1 -1
  433. package/indicators/zigzag.src.js +11 -2
  434. package/lib/jspdf.js +299 -184
  435. package/lib/jspdf.src.js +25266 -18067
  436. package/lib/svg2pdf.js +35 -31
  437. package/lib/svg2pdf.src.js +5721 -4179
  438. package/modules/accessibility.js +245 -240
  439. package/modules/accessibility.js.map +1 -1
  440. package/modules/accessibility.src.js +510 -283
  441. package/modules/annotations-advanced.js +144 -144
  442. package/modules/annotations-advanced.js.map +1 -1
  443. package/modules/annotations-advanced.src.js +37 -11
  444. package/modules/annotations.js +79 -79
  445. package/modules/annotations.js.map +1 -1
  446. package/modules/annotations.src.js +32 -8
  447. package/modules/arc-diagram.js +25 -0
  448. package/modules/arc-diagram.js.map +1 -0
  449. package/modules/arc-diagram.src.js +778 -0
  450. package/modules/arrow-symbols.js +4 -3
  451. package/modules/arrow-symbols.js.map +1 -1
  452. package/modules/arrow-symbols.src.js +11 -2
  453. package/modules/boost-canvas.js +15 -15
  454. package/modules/boost-canvas.js.map +1 -1
  455. package/modules/boost-canvas.src.js +11 -2
  456. package/modules/boost.js +80 -79
  457. package/modules/boost.js.map +1 -1
  458. package/modules/boost.src.js +71 -43
  459. package/modules/broken-axis.js +13 -13
  460. package/modules/broken-axis.js.map +1 -1
  461. package/modules/broken-axis.src.js +11 -2
  462. package/modules/bullet.js +9 -9
  463. package/modules/bullet.js.map +1 -1
  464. package/modules/bullet.src.js +11 -2
  465. package/modules/coloraxis.js +24 -24
  466. package/modules/coloraxis.js.map +1 -1
  467. package/modules/coloraxis.src.js +33 -7
  468. package/modules/current-date-indicator.js +5 -4
  469. package/modules/current-date-indicator.js.map +1 -1
  470. package/modules/current-date-indicator.src.js +11 -2
  471. package/modules/cylinder.js +11 -11
  472. package/modules/cylinder.js.map +1 -1
  473. package/modules/cylinder.src.js +11 -2
  474. package/modules/data.js +34 -33
  475. package/modules/data.js.map +1 -1
  476. package/modules/data.src.js +59 -32
  477. package/modules/datagrouping.js +21 -20
  478. package/modules/datagrouping.js.map +1 -1
  479. package/modules/datagrouping.src.js +19 -5
  480. package/modules/debugger.js +8 -7
  481. package/modules/debugger.js.map +1 -1
  482. package/modules/debugger.src.js +15 -2
  483. package/modules/dependency-wheel.js +12 -11
  484. package/modules/dependency-wheel.js.map +1 -1
  485. package/modules/dependency-wheel.src.js +14 -5
  486. package/modules/dotplot.js +6 -6
  487. package/modules/dotplot.js.map +1 -1
  488. package/modules/dotplot.src.js +11 -2
  489. package/modules/drag-panes.js +10 -10
  490. package/modules/drag-panes.js.map +1 -1
  491. package/modules/drag-panes.src.js +11 -2
  492. package/modules/draggable-points.js +35 -34
  493. package/modules/draggable-points.js.map +1 -1
  494. package/modules/draggable-points.src.js +20 -9
  495. package/modules/drilldown.d.ts +19 -0
  496. package/modules/drilldown.js +36 -25
  497. package/modules/drilldown.js.map +1 -1
  498. package/modules/drilldown.src.d.ts +19 -0
  499. package/modules/drilldown.src.js +1091 -106
  500. package/modules/dumbbell.js +17 -17
  501. package/modules/dumbbell.js.map +1 -1
  502. package/modules/dumbbell.src.js +11 -2
  503. package/modules/export-data.js +21 -20
  504. package/modules/export-data.js.map +1 -1
  505. package/modules/export-data.src.js +12 -4
  506. package/modules/exporting.js +39 -39
  507. package/modules/exporting.js.map +1 -1
  508. package/modules/exporting.src.js +227 -92
  509. package/modules/full-screen.js +8 -7
  510. package/modules/full-screen.js.map +1 -1
  511. package/modules/full-screen.src.js +135 -58
  512. package/modules/funnel.js +12 -12
  513. package/modules/funnel.js.map +1 -1
  514. package/modules/funnel.src.js +11 -2
  515. package/modules/funnel3d.js +21 -21
  516. package/modules/funnel3d.js.map +1 -1
  517. package/modules/funnel3d.src.js +11 -2
  518. package/modules/gantt.js +216 -215
  519. package/modules/gantt.js.map +1 -1
  520. package/modules/gantt.src.js +60 -28
  521. package/modules/grid-axis.js +23 -23
  522. package/modules/grid-axis.js.map +1 -1
  523. package/modules/grid-axis.src.js +27 -13
  524. package/modules/heatmap.js +40 -39
  525. package/modules/heatmap.js.map +1 -1
  526. package/modules/heatmap.src.js +46 -27
  527. package/modules/heikinashi.js +8 -8
  528. package/modules/heikinashi.js.map +1 -1
  529. package/modules/heikinashi.src.js +11 -2
  530. package/modules/histogram-bellcurve.js +13 -13
  531. package/modules/histogram-bellcurve.js.map +1 -1
  532. package/modules/histogram-bellcurve.src.js +11 -2
  533. package/modules/hollowcandlestick.js +9 -9
  534. package/modules/hollowcandlestick.js.map +1 -1
  535. package/modules/hollowcandlestick.src.js +11 -2
  536. package/modules/item-series.js +12 -12
  537. package/modules/item-series.js.map +1 -1
  538. package/modules/item-series.src.js +11 -2
  539. package/modules/lollipop.js +7 -7
  540. package/modules/lollipop.js.map +1 -1
  541. package/modules/lollipop.src.js +12 -3
  542. package/modules/map.d.ts +80 -43
  543. package/modules/map.js +169 -144
  544. package/modules/map.js.map +1 -1
  545. package/modules/map.src.d.ts +80 -43
  546. package/modules/map.src.js +8024 -6696
  547. package/modules/marker-clusters.js +36 -36
  548. package/modules/marker-clusters.js.map +1 -1
  549. package/modules/marker-clusters.src.js +47 -23
  550. package/modules/networkgraph.d.ts +5 -0
  551. package/modules/networkgraph.js +49 -48
  552. package/modules/networkgraph.js.map +1 -1
  553. package/modules/networkgraph.src.d.ts +5 -0
  554. package/modules/networkgraph.src.js +77 -15
  555. package/modules/no-data-to-display.js +5 -5
  556. package/modules/no-data-to-display.js.map +1 -1
  557. package/modules/no-data-to-display.src.js +11 -2
  558. package/modules/offline-exporting.js +20 -18
  559. package/modules/offline-exporting.js.map +1 -1
  560. package/modules/offline-exporting.src.js +126 -25
  561. package/modules/oldie-polyfills.js +7 -7
  562. package/modules/oldie-polyfills.js.map +1 -1
  563. package/modules/oldie-polyfills.src.js +11 -2
  564. package/modules/oldie.js +30 -30
  565. package/modules/oldie.js.map +1 -1
  566. package/modules/oldie.src.js +12 -3
  567. package/modules/organization.js +16 -14
  568. package/modules/organization.js.map +1 -1
  569. package/modules/organization.src.js +166 -32
  570. package/modules/overlapping-datalabels.js +3 -2
  571. package/modules/overlapping-datalabels.js.map +1 -1
  572. package/modules/overlapping-datalabels.src.js +11 -2
  573. package/modules/parallel-coordinates.js +11 -11
  574. package/modules/parallel-coordinates.js.map +1 -1
  575. package/modules/parallel-coordinates.src.js +11 -2
  576. package/modules/pareto.js +7 -7
  577. package/modules/pareto.js.map +1 -1
  578. package/modules/pareto.src.js +11 -2
  579. package/modules/pathfinder.js +31 -31
  580. package/modules/pathfinder.js.map +1 -1
  581. package/modules/pathfinder.src.js +11 -2
  582. package/modules/pattern-fill.js +14 -14
  583. package/modules/pattern-fill.js.map +1 -1
  584. package/modules/pattern-fill.src.js +11 -2
  585. package/modules/price-indicator.js +5 -5
  586. package/modules/price-indicator.js.map +1 -1
  587. package/modules/price-indicator.src.js +11 -2
  588. package/modules/pyramid3d.js +4 -4
  589. package/modules/pyramid3d.js.map +1 -1
  590. package/modules/pyramid3d.src.js +11 -2
  591. package/modules/sankey.d.ts +5 -0
  592. package/modules/sankey.js +32 -29
  593. package/modules/sankey.js.map +1 -1
  594. package/modules/sankey.src.d.ts +5 -0
  595. package/modules/sankey.src.js +341 -157
  596. package/modules/series-label.js +18 -17
  597. package/modules/series-label.js.map +1 -1
  598. package/modules/series-label.src.js +11 -2
  599. package/modules/solid-gauge.js +10 -10
  600. package/modules/solid-gauge.js.map +1 -1
  601. package/modules/solid-gauge.src.js +11 -2
  602. package/modules/sonification.js +59 -59
  603. package/modules/sonification.js.map +1 -1
  604. package/modules/sonification.src.js +11 -2
  605. package/modules/static-scale.js +5 -4
  606. package/modules/static-scale.js.map +1 -1
  607. package/modules/static-scale.src.js +11 -2
  608. package/modules/stock-tools.js +145 -145
  609. package/modules/stock-tools.js.map +1 -1
  610. package/modules/stock-tools.src.js +64 -32
  611. package/modules/stock.js +204 -204
  612. package/modules/stock.js.map +1 -1
  613. package/modules/stock.src.js +62 -34
  614. package/modules/streamgraph.js +5 -4
  615. package/modules/streamgraph.js.map +1 -1
  616. package/modules/streamgraph.src.js +11 -2
  617. package/modules/sunburst.d.ts +3 -0
  618. package/modules/sunburst.js +73 -60
  619. package/modules/sunburst.js.map +1 -1
  620. package/modules/sunburst.src.d.ts +3 -0
  621. package/modules/sunburst.src.js +1048 -97
  622. package/modules/tilemap.js +17 -17
  623. package/modules/tilemap.js.map +1 -1
  624. package/modules/tilemap.src.js +11 -2
  625. package/modules/timeline.js +18 -18
  626. package/modules/timeline.js.map +1 -1
  627. package/modules/timeline.src.js +11 -2
  628. package/modules/treegrid.js +57 -56
  629. package/modules/treegrid.js.map +1 -1
  630. package/modules/treegrid.src.js +38 -13
  631. package/modules/treemap.d.ts +3 -0
  632. package/modules/treemap.js +53 -41
  633. package/modules/treemap.js.map +1 -1
  634. package/modules/treemap.src.d.ts +3 -0
  635. package/modules/treemap.src.js +1037 -95
  636. package/modules/variable-pie.js +9 -9
  637. package/modules/variable-pie.js.map +1 -1
  638. package/modules/variable-pie.src.js +11 -2
  639. package/modules/variwide.js +12 -12
  640. package/modules/variwide.js.map +1 -1
  641. package/modules/variwide.src.js +11 -2
  642. package/modules/vector.js +8 -7
  643. package/modules/vector.js.map +1 -1
  644. package/modules/vector.src.js +11 -2
  645. package/modules/venn.js +31 -31
  646. package/modules/venn.js.map +1 -1
  647. package/modules/venn.src.js +18 -6
  648. package/modules/windbarb.js +15 -15
  649. package/modules/windbarb.js.map +1 -1
  650. package/modules/windbarb.src.js +11 -2
  651. package/modules/wordcloud.js +24 -23
  652. package/modules/wordcloud.js.map +1 -1
  653. package/modules/wordcloud.src.js +22 -10
  654. package/modules/xrange.js +16 -16
  655. package/modules/xrange.js.map +1 -1
  656. package/modules/xrange.src.js +11 -2
  657. package/package.json +1 -1
  658. package/themes/avocado.js +4 -3
  659. package/themes/avocado.js.map +1 -1
  660. package/themes/avocado.src.js +11 -2
  661. package/themes/brand-dark.js +9 -8
  662. package/themes/brand-dark.js.map +1 -1
  663. package/themes/brand-dark.src.js +11 -2
  664. package/themes/brand-light.js +8 -8
  665. package/themes/brand-light.js.map +1 -1
  666. package/themes/brand-light.src.js +11 -2
  667. package/themes/dark-blue.js +9 -8
  668. package/themes/dark-blue.js.map +1 -1
  669. package/themes/dark-blue.src.js +11 -2
  670. package/themes/dark-green.js +9 -8
  671. package/themes/dark-green.js.map +1 -1
  672. package/themes/dark-green.src.js +11 -2
  673. package/themes/dark-unica.js +8 -7
  674. package/themes/dark-unica.js.map +1 -1
  675. package/themes/dark-unica.src.js +11 -2
  676. package/themes/gray.js +9 -8
  677. package/themes/gray.js.map +1 -1
  678. package/themes/gray.src.js +11 -2
  679. package/themes/grid-light.js +5 -4
  680. package/themes/grid-light.js.map +1 -1
  681. package/themes/grid-light.src.js +11 -2
  682. package/themes/grid.js +5 -5
  683. package/themes/grid.js.map +1 -1
  684. package/themes/grid.src.js +11 -2
  685. package/themes/high-contrast-dark.js +7 -7
  686. package/themes/high-contrast-dark.js.map +1 -1
  687. package/themes/high-contrast-dark.src.js +21 -12
  688. package/themes/high-contrast-light.js +3 -3
  689. package/themes/high-contrast-light.js.map +1 -1
  690. package/themes/high-contrast-light.src.js +21 -12
  691. package/themes/sand-signika.js +5 -5
  692. package/themes/sand-signika.js.map +1 -1
  693. package/themes/sand-signika.src.js +11 -2
  694. package/themes/skies.js +5 -5
  695. package/themes/skies.js.map +1 -1
  696. package/themes/skies.src.js +11 -2
  697. package/themes/sunset.js +3 -3
  698. package/themes/sunset.js.map +1 -1
  699. package/themes/sunset.src.js +11 -2
  700. package/es-modules/Maps/ProjectionDefinition.js +0 -9
@@ -43,13 +43,17 @@ function findFirstPointWithGraphic(point) {
43
43
  }) || null;
44
44
  }
45
45
  /**
46
+ * Whether or not we should add a dummy point element in
47
+ * order to describe a point that has no graphic.
46
48
  * @private
47
49
  */
48
50
  function shouldAddDummyPoint(point) {
49
51
  // Note: Sunburst series use isNull for hidden points on drilldown.
50
52
  // Ignore these.
51
- var isSunburst = point.series && point.series.is('sunburst'), isNull = point.isNull;
52
- return isNull && !isSunburst;
53
+ var series = point.series, chart = series && series.chart, isSunburst = series && series.is('sunburst'), isNull = point.isNull, shouldDescribeNull = chart &&
54
+ chart
55
+ .options.accessibility.point.describeNull;
56
+ return isNull && !isSunburst && shouldDescribeNull;
53
57
  }
54
58
  /**
55
59
  * @private
@@ -258,9 +262,9 @@ function getPointValueDescription(point) {
258
262
  * @private
259
263
  */
260
264
  function defaultPointDescriptionFormatter(point) {
261
- var series = point.series, chart = series.chart, valText = getPointValueDescription(point), description = point.options && point.options.accessibility &&
262
- point.options.accessibility.description, userDescText = description ? ' ' + description : '', seriesNameText = chart.series.length > 1 && series.name ?
263
- ' ' + series.name + '.' : '', annotationsDesc = getPointAnnotationDescription(point), pointAnnotationsText = annotationsDesc ? ' ' + annotationsDesc : '';
265
+ var series = point.series, shouldExposeSeriesName = series.chart.series.length > 1 ||
266
+ series.options.name, valText = getPointValueDescription(point), description = point.options && point.options.accessibility &&
267
+ point.options.accessibility.description, userDescText = description ? ' ' + description : '', seriesNameText = shouldExposeSeriesName ? ' ' + series.name + '.' : '', annotationsDesc = getPointAnnotationDescription(point), pointAnnotationsText = annotationsDesc ? ' ' + annotationsDesc : '';
264
268
  point.accessibility = point.accessibility || {};
265
269
  point.accessibility.valueDescription = valText;
266
270
  return valText + userDescText + seriesNameText + pointAnnotationsText;
@@ -287,15 +291,19 @@ function setPointScreenReaderAttribs(point, pointElement) {
287
291
  * @param {Highcharts.Series} series
288
292
  */
289
293
  function describePointsInSeries(series) {
290
- var setScreenReaderProps = shouldSetScreenReaderPropsOnPoints(series), setKeyboardProps = shouldSetKeyboardNavPropsOnPoints(series);
294
+ var setScreenReaderProps = shouldSetScreenReaderPropsOnPoints(series), setKeyboardProps = shouldSetKeyboardNavPropsOnPoints(series), shouldDescribeNullPoints = series.chart.options.accessibility
295
+ .point.describeNull;
291
296
  if (setScreenReaderProps || setKeyboardProps) {
292
297
  series.points.forEach(function (point) {
293
298
  var pointEl = point.graphic && point.graphic.element ||
294
- shouldAddDummyPoint(point) && addDummyPointElement(point);
295
- var pointA11yDisabled = (point.options &&
299
+ shouldAddDummyPoint(point) && addDummyPointElement(point), pointA11yDisabled = (point.options &&
296
300
  point.options.accessibility &&
297
301
  point.options.accessibility.enabled === false);
298
302
  if (pointEl) {
303
+ if (point.isNull && !shouldDescribeNullPoints) {
304
+ pointEl.setAttribute('aria-hidden', true);
305
+ return;
306
+ }
299
307
  // We always set tabindex, as long as we are setting props.
300
308
  // When setting tabindex, also remove default outline to
301
309
  // avoid ugly border on click.
@@ -320,14 +328,19 @@ function describePointsInSeries(series) {
320
328
  function defaultSeriesDescriptionFormatter(series) {
321
329
  var chart = series.chart, chartTypes = chart.types || [], description = getSeriesDescriptionText(series), shouldDescribeAxis = function (coll) {
322
330
  return chart[coll] && chart[coll].length > 1 && series[coll];
323
- }, xAxisInfo = getSeriesAxisDescriptionText(series, 'xAxis'), yAxisInfo = getSeriesAxisDescriptionText(series, 'yAxis'), summaryContext = {
324
- name: series.name || '',
325
- ix: series.index + 1,
326
- numSeries: chart.series && chart.series.length,
327
- numPoints: series.points && series.points.length,
328
- series: series
329
- }, combinationSuffix = chartTypes.length > 1 ? 'Combination' : '', summary = chart.langFormat('accessibility.series.summary.' + series.type + combinationSuffix, summaryContext) || chart.langFormat('accessibility.series.summary.default' + combinationSuffix, summaryContext);
330
- return summary + (description ? ' ' + description : '') + (shouldDescribeAxis('yAxis') ? ' ' + yAxisInfo : '') + (shouldDescribeAxis('xAxis') ? ' ' + xAxisInfo : '');
331
+ }, seriesNumber = series.index + 1, xAxisInfo = getSeriesAxisDescriptionText(series, 'xAxis'), yAxisInfo = getSeriesAxisDescriptionText(series, 'yAxis'), summaryContext = {
332
+ seriesNumber: seriesNumber,
333
+ series: series,
334
+ chart: chart
335
+ }, combinationSuffix = chartTypes.length > 1 ? 'Combination' : '', summary = chart.langFormat('accessibility.series.summary.' + series.type + combinationSuffix, summaryContext) || chart.langFormat('accessibility.series.summary.default' + combinationSuffix, summaryContext), axisDescription = (shouldDescribeAxis('yAxis') ? ' ' + yAxisInfo + '.' : '') + (shouldDescribeAxis('xAxis') ? ' ' + xAxisInfo + '.' : ''), formatStr = chart.options.accessibility.series.descriptionFormat || '';
336
+ return format(formatStr, {
337
+ seriesDescription: summary,
338
+ authorDescription: (description ? ' ' + description : ''),
339
+ axisDescription: axisDescription,
340
+ series: series,
341
+ chart: chart,
342
+ seriesNumber: seriesNumber
343
+ }, void 0);
331
344
  }
332
345
  /**
333
346
  * Set a11y props on a series element
@@ -343,7 +356,10 @@ function describeSeriesElement(series, seriesElement) {
343
356
  }
344
357
  else if (landmarkVerbosity === 'all') {
345
358
  seriesElement.setAttribute('role', 'region');
346
- } /* else do not add role */
359
+ }
360
+ else {
361
+ seriesElement.setAttribute('role', 'group');
362
+ }
347
363
  seriesElement.setAttribute('tabindex', '-1');
348
364
  if (!series.chart.styledMode) {
349
365
  // Don't show browser outline on click, despite tabindex
@@ -373,7 +389,7 @@ function describeSeries(series) {
373
389
  describeSeriesElement(series, seriesEl);
374
390
  }
375
391
  else {
376
- seriesEl.setAttribute('aria-label', '');
392
+ seriesEl.removeAttribute('aria-label');
377
393
  }
378
394
  }
379
395
  }
@@ -84,6 +84,35 @@ function isSkipPoint(point) {
84
84
  pointA11yDisabled ||
85
85
  isSkipSeries(point.series);
86
86
  }
87
+ /**
88
+ * Get the first point that is not a skip point in this series.
89
+ * @private
90
+ */
91
+ function getFirstValidPointInSeries(series) {
92
+ var points = series.points || [], len = points.length;
93
+ for (var i = 0; i < len; ++i) {
94
+ if (!isSkipPoint(points[i])) {
95
+ return points[i];
96
+ }
97
+ }
98
+ return null;
99
+ }
100
+ /**
101
+ * Get the first point that is not a skip point in this chart.
102
+ * @private
103
+ */
104
+ function getFirstValidPointInChart(chart) {
105
+ var series = chart.series || [], len = series.length;
106
+ for (var i = 0; i < len; ++i) {
107
+ if (!isSkipSeries(series[i])) {
108
+ var point = getFirstValidPointInSeries(series[i]);
109
+ if (point) {
110
+ return point;
111
+ }
112
+ }
113
+ }
114
+ return null;
115
+ }
87
116
  /**
88
117
  * @private
89
118
  */
@@ -95,7 +124,7 @@ function highlightLastValidPointInChart(chart) {
95
124
  // Highlight first valid point in the series will also
96
125
  // look backwards. It always starts from currently
97
126
  // highlighted point.
98
- res = chart.series[i].highlightFirstValidPoint();
127
+ res = chart.series[i].highlightNextValidPoint();
99
128
  if (res) {
100
129
  break;
101
130
  }
@@ -103,24 +132,24 @@ function highlightLastValidPointInChart(chart) {
103
132
  return res;
104
133
  }
105
134
  /**
135
+ * After drilling down/up, we need to set focus to the first point for
136
+ * screen readers and keyboard nav.
106
137
  * @private
107
138
  */
108
139
  function updateChartFocusAfterDrilling(chart) {
109
- highlightFirstValidPointInChart(chart);
110
- if (chart.focusElement) {
111
- chart.focusElement.removeFocusBorder();
140
+ var point = getFirstValidPointInChart(chart);
141
+ if (point) {
142
+ point.highlight(false); // Do not visually highlight
112
143
  }
113
144
  }
114
145
  /**
146
+ * Highlight the first point in chart that is not a skip point
115
147
  * @private
116
148
  */
117
149
  function highlightFirstValidPointInChart(chart) {
118
- var res = false;
119
150
  delete chart.highlightedPoint;
120
- res = chart.series.reduce(function (acc, cur) {
121
- return acc || cur.highlightFirstValidPoint();
122
- }, false);
123
- return res;
151
+ var point = getFirstValidPointInChart(chart);
152
+ return point ? point.highlight() : false;
124
153
  }
125
154
  /* *
126
155
  *
@@ -156,7 +185,7 @@ var SeriesKeyboardNavigation = /** @class */ (function () {
156
185
  e.addEvent(Series, 'destroy', function () {
157
186
  return keyboardNavigation.onSeriesDestroy(this);
158
187
  });
159
- e.addEvent(chart, 'afterDrilldown', function () {
188
+ e.addEvent(chart, 'afterApplyDrilldown', function () {
160
189
  updateChartFocusAfterDrilling(this);
161
190
  });
162
191
  e.addEvent(chart, 'drilldown', function (e) {
@@ -195,25 +224,23 @@ var SeriesKeyboardNavigation = /** @class */ (function () {
195
224
  });
196
225
  };
197
226
  /**
227
+ * After drillup we want to find the point that was drilled down to and
228
+ * highlight it.
198
229
  * @private
199
230
  */
200
231
  SeriesKeyboardNavigation.prototype.onDrillupAll = function () {
201
- // After drillup we want to find the point that was drilled down to and
202
- // highlight it.
203
232
  var last = this.lastDrilledDownPoint, chart = this.chart, series = last && getSeriesFromName(chart, last.seriesName);
204
233
  var point;
205
234
  if (last && series && defined(last.x) && defined(last.y)) {
206
235
  point = getPointFromXY(series, last.x, last.y);
207
236
  }
237
+ point = point || getFirstValidPointInChart(chart);
208
238
  // Container focus can be lost on drillup due to deleted elements.
209
239
  if (chart.container) {
210
240
  chart.container.focus();
211
241
  }
212
242
  if (point && point.highlight) {
213
- point.highlight();
214
- }
215
- if (chart.focusElement) {
216
- chart.focusElement.removeFocusBorder();
243
+ point.highlight(false); // Do not visually highlight
217
244
  }
218
245
  };
219
246
  /**
@@ -252,8 +279,10 @@ var SeriesKeyboardNavigation = /** @class */ (function () {
252
279
  }]
253
280
  ],
254
281
  init: function () {
255
- highlightFirstValidPointInChart(chart);
256
- return this.response.success;
282
+ return keyboardNavigation.onHandlerInit(this);
283
+ },
284
+ validate: function () {
285
+ return !!getFirstValidPointInChart(chart);
257
286
  },
258
287
  terminate: function () {
259
288
  return keyboardNavigation.onHandlerTerminate();
@@ -271,6 +300,24 @@ var SeriesKeyboardNavigation = /** @class */ (function () {
271
300
  var keys = this.keyCodes, isNext = keyCode === keys.right || keyCode === keys.down;
272
301
  return this.attemptHighlightAdjacentPoint(handler, isNext);
273
302
  };
303
+ /**
304
+ * When keyboard navigation inits.
305
+ * @private
306
+ * @param {Highcharts.KeyboardNavigationHandler} handler The handler object
307
+ * @return {number}
308
+ * response
309
+ */
310
+ SeriesKeyboardNavigation.prototype.onHandlerInit = function (handler) {
311
+ var chart = this.chart, kbdNavOptions = chart.options.accessibility.keyboardNavigation;
312
+ if (kbdNavOptions.seriesNavigation.rememberPointFocus &&
313
+ chart.highlightedPoint) {
314
+ chart.highlightedPoint.highlight();
315
+ }
316
+ else {
317
+ highlightFirstValidPointInChart(chart);
318
+ }
319
+ return handler.response.success;
320
+ };
274
321
  /**
275
322
  * @private
276
323
  * @param {Highcharts.KeyboardNavigationHandler} handler
@@ -297,7 +344,7 @@ var SeriesKeyboardNavigation = /** @class */ (function () {
297
344
  * @private
298
345
  */
299
346
  SeriesKeyboardNavigation.prototype.onHandlerTerminate = function () {
300
- var chart = this.chart;
347
+ var chart = this.chart, kbdNavOptions = chart.options.accessibility.keyboardNavigation;
301
348
  if (chart.tooltip) {
302
349
  chart.tooltip.hide(0);
303
350
  }
@@ -308,22 +355,22 @@ var SeriesKeyboardNavigation = /** @class */ (function () {
308
355
  if (chart.highlightedPoint && chart.highlightedPoint.onMouseOut) {
309
356
  chart.highlightedPoint.onMouseOut();
310
357
  }
311
- delete chart.highlightedPoint;
358
+ if (!kbdNavOptions.seriesNavigation.rememberPointFocus) {
359
+ delete chart.highlightedPoint;
360
+ }
312
361
  };
313
362
  /**
314
363
  * Function that attempts to highlight next/prev point. Handles wrap around.
315
364
  * @private
316
- * @param {Highcharts.KeyboardNavigationHandler} handler
317
- * @param {boolean} directionIsNext
318
- * @return {number}
319
- * response
320
365
  */
321
366
  SeriesKeyboardNavigation.prototype.attemptHighlightAdjacentPoint = function (handler, directionIsNext) {
322
367
  var chart = this.chart, wrapAround = chart.options.accessibility.keyboardNavigation
323
368
  .wrapAround, highlightSuccessful = chart.highlightAdjacentPoint(directionIsNext);
324
369
  if (!highlightSuccessful) {
325
- if (wrapAround) {
326
- return handler.init(directionIsNext ? 1 : -1);
370
+ if (wrapAround && (directionIsNext ?
371
+ highlightFirstValidPointInChart(chart) :
372
+ highlightLastValidPointInChart(chart))) {
373
+ return handler.response.success;
327
374
  }
328
375
  return handler.response[directionIsNext ? 'next' : 'prev'];
329
376
  }
@@ -515,7 +562,7 @@ var SeriesKeyboardNavigation = /** @class */ (function () {
515
562
  // Highlight the new point or any first valid point back or forwards
516
563
  // from it
517
564
  newPoint.highlight();
518
- return newPoint.series.highlightFirstValidPoint();
565
+ return newPoint.series.highlightNextValidPoint();
519
566
  }
520
567
  /**
521
568
  * @private
@@ -552,7 +599,7 @@ var SeriesKeyboardNavigation = /** @class */ (function () {
552
599
  seriesTypes[type].prototype.keyboardMoveVertical = false;
553
600
  }
554
601
  });
555
- seriesProto.highlightFirstValidPoint = (seriesHighlightFirstValidPoint);
602
+ seriesProto.highlightNextValidPoint = (seriesHighlightNextValidPoint);
556
603
  }
557
604
  }
558
605
  SeriesKeyboardNavigation.compose = compose;
@@ -586,7 +633,7 @@ var SeriesKeyboardNavigation = /** @class */ (function () {
586
633
  return defined(minIx) ? series.points[minIx] : void 0;
587
634
  }
588
635
  /**
589
- * Highlights a point (show tooltip and display hover state).
636
+ * Highlights a point (show tooltip, display hover state, focus element).
590
637
  *
591
638
  * @private
592
639
  * @function Highcharts.Point#highlight
@@ -594,9 +641,10 @@ var SeriesKeyboardNavigation = /** @class */ (function () {
594
641
  * @return {Highcharts.Point}
595
642
  * This highlighted point.
596
643
  */
597
- function pointHighlight() {
644
+ function pointHighlight(highlightVisually) {
645
+ if (highlightVisually === void 0) { highlightVisually = true; }
598
646
  var chart = this.series.chart;
599
- if (!this.isNull) {
647
+ if (!this.isNull && highlightVisually) {
600
648
  this.onMouseOver(); // Show the hover marker and tooltip
601
649
  }
602
650
  else {
@@ -611,6 +659,9 @@ var SeriesKeyboardNavigation = /** @class */ (function () {
611
659
  // change z-index and mess up the element.
612
660
  if (this.graphic) {
613
661
  chart.setFocusToElement(this.graphic);
662
+ if (!highlightVisually && chart.focusElement) {
663
+ chart.focusElement.removeFocusBorder();
664
+ }
614
665
  }
615
666
  chart.highlightedPoint = this;
616
667
  return this;
@@ -621,9 +672,9 @@ var SeriesKeyboardNavigation = /** @class */ (function () {
621
672
  * point in the series, use that as starting point.
622
673
  *
623
674
  * @private
624
- * @function Highcharts.Series#highlightFirstValidPoint
675
+ * @function Highcharts.Series#highlightNextValidPoint
625
676
  */
626
- function seriesHighlightFirstValidPoint() {
677
+ function seriesHighlightNextValidPoint() {
627
678
  var curPoint = this.chart.highlightedPoint, start = (curPoint && curPoint.series) === this ?
628
679
  getPointIndex(curPoint) :
629
680
  0, points = this.points, len = points.length;
@@ -42,8 +42,8 @@ var attr = U.attr, extend = U.extend, pick = U.pick;
42
42
  */
43
43
  function chartHasMapZoom(chart) {
44
44
  return !!(chart.mapZoom &&
45
- chart.mapNavButtons &&
46
- chart.mapNavButtons.length);
45
+ chart.mapNavigation &&
46
+ chart.mapNavigation.navButtons.length);
47
47
  }
48
48
  /* *
49
49
  *
@@ -81,7 +81,7 @@ var ZoomComponent = /** @class */ (function (_super) {
81
81
  var component = this, chart = this.chart;
82
82
  this.proxyProvider.addGroup('zoom', 'div');
83
83
  [
84
- 'afterShowResetZoom', 'afterDrilldown', 'drillupall'
84
+ 'afterShowResetZoom', 'afterApplyDrilldown', 'drillupall'
85
85
  ].forEach(function (eventType) {
86
86
  component.addEvent(chart, eventType, function () {
87
87
  component.updateProxyOverlays();
@@ -94,8 +94,8 @@ var ZoomComponent = /** @class */ (function (_super) {
94
94
  ZoomComponent.prototype.onChartUpdate = function () {
95
95
  var chart = this.chart, component = this;
96
96
  // Make map zoom buttons accessible
97
- if (chart.mapNavButtons) {
98
- chart.mapNavButtons.forEach(function (button, i) {
97
+ if (chart.mapNavigation) {
98
+ chart.mapNavigation.navButtons.forEach(function (button, i) {
99
99
  unhideChartElementFromAT(chart, button.element);
100
100
  component.setMapNavButtonAttrs(button.element, 'accessibility.zoom.mapZoom' + (i ? 'Out' : 'In'));
101
101
  });
@@ -131,10 +131,13 @@ var ZoomComponent = /** @class */ (function (_super) {
131
131
  if (chart.resetZoomButton) {
132
132
  this.createZoomProxyButton(chart.resetZoomButton, 'resetZoomProxyButton', chart.langFormat('accessibility.zoom.resetZoomButton', { chart: chart }));
133
133
  }
134
- if (chart.drillUpButton) {
134
+ if (chart.drillUpButton &&
135
+ chart.breadcrumbs &&
136
+ chart.breadcrumbs.list) {
137
+ var lastBreadcrumb = chart.breadcrumbs.list[chart.breadcrumbs.list.length - 1];
135
138
  this.createZoomProxyButton(chart.drillUpButton, 'drillUpProxyButton', chart.langFormat('accessibility.drillUpButton', {
136
139
  chart: chart,
137
- buttonText: chart.getDrilldownBackText()
140
+ buttonText: chart.breadcrumbs.getButtonText(lastBreadcrumb)
138
141
  }));
139
142
  }
140
143
  };
@@ -214,14 +217,14 @@ var ZoomComponent = /** @class */ (function (_super) {
214
217
  var isMoveOutOfRange = isBackwards && !this.focusedMapNavButtonIx ||
215
218
  !isBackwards && this.focusedMapNavButtonIx;
216
219
  // Deselect old
217
- chart.mapNavButtons[this.focusedMapNavButtonIx].setState(0);
220
+ chart.mapNavigation.navButtons[this.focusedMapNavButtonIx].setState(0);
218
221
  if (isMoveOutOfRange) {
219
222
  chart.mapZoom(); // Reset zoom
220
223
  return response[isBackwards ? 'prev' : 'next'];
221
224
  }
222
225
  // Select other button
223
226
  this.focusedMapNavButtonIx += isBackwards ? -1 : 1;
224
- var button = chart.mapNavButtons[this.focusedMapNavButtonIx];
227
+ var button = chart.mapNavigation.navButtons[this.focusedMapNavButtonIx];
225
228
  chart.setFocusToElement(button.box, button.element);
226
229
  button.setState(2);
227
230
  return response.success;
@@ -241,7 +244,7 @@ var ZoomComponent = /** @class */ (function (_super) {
241
244
  * @param {number} direction
242
245
  */
243
246
  ZoomComponent.prototype.onMapNavInit = function (direction) {
244
- var chart = this.chart, zoomIn = chart.mapNavButtons[0], zoomOut = chart.mapNavButtons[1], initialButton = direction > 0 ? zoomIn : zoomOut;
247
+ var chart = this.chart, zoomIn = chart.mapNavigation.navButtons[0], zoomOut = chart.mapNavigation.navButtons[1], initialButton = direction > 0 ? zoomIn : zoomOut;
245
248
  chart.setFocusToElement(initialButton.box, initialButton.element);
246
249
  initialButton.setState(2);
247
250
  this.focusedMapNavButtonIx = direction > 0 ? 0 : 1;
@@ -151,12 +151,13 @@ var FocusBorderComposition;
151
151
  this.removeFocusBorder();
152
152
  }
153
153
  // Add the border rect
154
- var bb = this.getBBox(), pad = pick(margin, 3);
154
+ var bb = this.getBBox(), pad = pick(margin, 3), parent = this.parentGroup, scaleX = this.scaleX || parent && parent.scaleX, scaleY = this.scaleY || parent && parent.scaleY, oneDefined = scaleX ? !scaleY : scaleY, scaleBoth = oneDefined ? Math.abs(scaleX || scaleY || 1) :
155
+ (Math.abs(scaleX || 1) + Math.abs(scaleY || 1)) / 2;
155
156
  bb.x += this.translateX ? this.translateX : 0;
156
157
  bb.y += this.translateY ? this.translateY : 0;
157
158
  var borderPosX = bb.x - pad, borderPosY = bb.y - pad, borderWidth = bb.width + 2 * pad, borderHeight = bb.height + 2 * pad;
158
- // For text elements, apply x and y offset, #11397.
159
159
  /**
160
+ * For text elements, apply x and y offset, #11397.
160
161
  * @private
161
162
  */
162
163
  function getTextAnchorCorrection(text) {
@@ -203,16 +204,16 @@ var FocusBorderComposition;
203
204
  }
204
205
  }
205
206
  }
206
- this.focusBorder = this.renderer.rect(borderPosX, borderPosY, borderWidth, borderHeight, parseInt((attribs && attribs.r || 0).toString(), 10))
207
+ this.focusBorder = this.renderer.rect(borderPosX, borderPosY, borderWidth, borderHeight, parseInt((attribs && attribs.r || 0).toString(), 10) / scaleBoth)
207
208
  .addClass('highcharts-focus-border')
208
209
  .attr({
209
210
  zIndex: 99
210
211
  })
211
- .add(this.parentGroup);
212
+ .add(parent);
212
213
  if (!this.renderer.styledMode) {
213
214
  this.focusBorder.attr({
214
215
  stroke: attribs && attribs.stroke,
215
- 'stroke-width': attribs && attribs.strokeWidth
216
+ 'stroke-width': (attribs && attribs.strokeWidth || 0) / scaleBoth
216
217
  });
217
218
  }
218
219
  avgElementAddUpdateFocusBorderHooks(this, margin, attribs);
@@ -42,8 +42,8 @@ function isHighContrastModeActive() {
42
42
  doc.body.removeChild(testDiv);
43
43
  return bi === 'none';
44
44
  }
45
- // Not used for other browsers
46
- return false;
45
+ // Other browsers use the forced-colors standard
46
+ return win.matchMedia && win.matchMedia('(forced-colors: active)').matches;
47
47
  }
48
48
  /**
49
49
  * Force high contrast theme for the chart. The default theme is defined in