highcharts 10.0.0 → 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 (500) hide show
  1. package/bower.json +1 -1
  2. package/es-modules/Accessibility/A11yI18n.js +4 -4
  3. package/es-modules/Accessibility/Components/ContainerComponent.js +8 -9
  4. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +14 -9
  5. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +31 -15
  6. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +23 -4
  7. package/es-modules/Accessibility/FocusBorder.js +6 -5
  8. package/es-modules/Accessibility/Options/LangOptions.js +36 -31
  9. package/es-modules/Accessibility/Options/Options.js +66 -3
  10. package/es-modules/Accessibility/Utils/ChartUtilities.js +9 -4
  11. package/es-modules/Core/Axis/Axis.js +30 -27
  12. package/es-modules/Core/Axis/GridAxis.js +5 -2
  13. package/es-modules/Core/Axis/LogarithmicAxis.js +1 -1
  14. package/es-modules/Core/Axis/OrdinalAxis.js +3 -2
  15. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +1 -1
  16. package/es-modules/Core/Axis/StackingAxis.js +0 -1
  17. package/es-modules/Core/Axis/Tick.js +2 -2
  18. package/es-modules/Core/Chart/Chart.js +21 -3
  19. package/es-modules/Core/Chart/ChartDefaults.js +11 -0
  20. package/es-modules/Core/Chart/StockChart.js +1 -1
  21. package/es-modules/Core/DefaultOptions.js +6 -4
  22. package/es-modules/Core/Globals.js +1 -1
  23. package/es-modules/Core/Legend/Legend.js +1 -1
  24. package/es-modules/Core/Navigator.js +1 -1
  25. package/es-modules/Core/Renderer/HTML/AST.js +9 -6
  26. package/es-modules/Core/Renderer/SVG/SVGElement.js +22 -22
  27. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +16 -13
  28. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +1 -1
  29. package/es-modules/Core/Scrollbar.js +9 -5
  30. package/es-modules/Core/Series/DataLabel.js +54 -33
  31. package/es-modules/Core/Series/Series.js +19 -7
  32. package/es-modules/Core/Utilities.js +1 -1
  33. package/es-modules/Extensions/Annotations/Annotations.js +2 -2
  34. package/es-modules/Extensions/Annotations/ControlPoint.js +1 -1
  35. package/es-modules/Extensions/Annotations/NavigationBindings.js +9 -1
  36. package/es-modules/Extensions/Annotations/Popup.js +1 -1
  37. package/es-modules/Extensions/Breadcrumbs.js +2 -3
  38. package/es-modules/Extensions/DataGrouping.js +3 -1
  39. package/es-modules/Extensions/Debugger/ErrorMessages.js +4 -0
  40. package/es-modules/Extensions/Drilldown.js +6 -4
  41. package/es-modules/Extensions/ExportData.js +1 -2
  42. package/es-modules/Extensions/Exporting/Exporting.js +22 -13
  43. package/es-modules/Extensions/FullScreen.js +121 -54
  44. package/es-modules/Extensions/GeoJSON.js +3 -2
  45. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  46. package/es-modules/Extensions/Oldie/Oldie.js +1 -1
  47. package/es-modules/Extensions/OverlappingDataLabels.js +5 -4
  48. package/es-modules/Extensions/Polar.js +4 -1
  49. package/es-modules/Extensions/Stacking.js +1 -1
  50. package/es-modules/Extensions/Themes/HighContrastDark.js +10 -10
  51. package/es-modules/Extensions/Themes/HighContrastLight.js +9 -9
  52. package/es-modules/Maps/MapNavigation.js +1 -5
  53. package/es-modules/Maps/MapView.js +6 -2
  54. package/es-modules/Maps/MapViewOptionsDefault.js +3 -1
  55. package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +9 -1
  56. package/es-modules/Series/CenteredUtilities.js +6 -1
  57. package/es-modules/Series/Flags/FlagsSeries.js +7 -12
  58. package/es-modules/Series/Gauge/GaugeSeries.js +1 -1
  59. package/es-modules/Series/Heatmap/HeatmapSeries.js +13 -20
  60. package/es-modules/Series/Map/MapSeries.js +11 -1
  61. package/es-modules/Series/MapBubble/MapBubbleSeries.js +49 -3
  62. package/es-modules/Series/MapPoint/MapPointSeries.js +4 -0
  63. package/es-modules/Series/Pie/PieDataLabel.js +3 -1
  64. package/es-modules/Series/Pie/PieSeries.js +12 -1
  65. package/es-modules/Series/Sankey/SankeySeries.js +3 -1
  66. package/es-modules/Series/Sunburst/SunburstSeries.js +1 -1
  67. package/es-modules/Series/Wordcloud/WordcloudSeries.js +4 -4
  68. package/es-modules/Stock/StockToolsBindings.js +31 -24
  69. package/es-modules/Stock/StockToolsGui.js +1 -1
  70. package/es-modules/masters/highcharts-3d.src.js +1 -1
  71. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  72. package/es-modules/masters/highcharts-more.src.js +1 -1
  73. package/es-modules/masters/highcharts.src.js +1 -1
  74. package/es-modules/masters/highmaps.src.js +1 -1
  75. package/es-modules/masters/highstock.src.js +1 -1
  76. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  77. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  78. package/es-modules/masters/indicators/ao.src.js +1 -1
  79. package/es-modules/masters/indicators/apo.src.js +1 -1
  80. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  81. package/es-modules/masters/indicators/aroon.src.js +1 -1
  82. package/es-modules/masters/indicators/atr.src.js +1 -1
  83. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  84. package/es-modules/masters/indicators/cci.src.js +1 -1
  85. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  86. package/es-modules/masters/indicators/cmf.src.js +1 -1
  87. package/es-modules/masters/indicators/cmo.src.js +1 -1
  88. package/es-modules/masters/indicators/dema.src.js +1 -1
  89. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  90. package/es-modules/masters/indicators/dmi.src.js +1 -1
  91. package/es-modules/masters/indicators/dpo.src.js +1 -1
  92. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  93. package/es-modules/masters/indicators/indicators-all.src.js +1 -1
  94. package/es-modules/masters/indicators/indicators.src.js +1 -1
  95. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  96. package/es-modules/masters/indicators/klinger.src.js +1 -1
  97. package/es-modules/masters/indicators/macd.src.js +1 -1
  98. package/es-modules/masters/indicators/mfi.src.js +1 -1
  99. package/es-modules/masters/indicators/momentum.src.js +1 -1
  100. package/es-modules/masters/indicators/natr.src.js +1 -1
  101. package/es-modules/masters/indicators/obv.src.js +1 -1
  102. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  103. package/es-modules/masters/indicators/ppo.src.js +1 -1
  104. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  105. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  106. package/es-modules/masters/indicators/psar.src.js +1 -1
  107. package/es-modules/masters/indicators/regressions.src.js +1 -1
  108. package/es-modules/masters/indicators/roc.src.js +1 -1
  109. package/es-modules/masters/indicators/rsi.src.js +1 -1
  110. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  111. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  112. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  113. package/es-modules/masters/indicators/tema.src.js +1 -1
  114. package/es-modules/masters/indicators/trendline.src.js +1 -1
  115. package/es-modules/masters/indicators/trix.src.js +1 -1
  116. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  117. package/es-modules/masters/indicators/vwap.src.js +1 -1
  118. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  119. package/es-modules/masters/indicators/wma.src.js +1 -1
  120. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  121. package/es-modules/masters/modules/accessibility.src.js +1 -1
  122. package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
  123. package/es-modules/masters/modules/annotations.src.js +1 -1
  124. package/es-modules/masters/modules/arc-diagram.src.js +1 -1
  125. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  126. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  127. package/es-modules/masters/modules/boost.src.js +1 -1
  128. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  129. package/es-modules/masters/modules/bullet.src.js +1 -1
  130. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  131. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  132. package/es-modules/masters/modules/cylinder.src.js +1 -1
  133. package/es-modules/masters/modules/data.src.js +1 -1
  134. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  135. package/es-modules/masters/modules/debugger.src.js +1 -1
  136. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  137. package/es-modules/masters/modules/dotplot.src.js +1 -1
  138. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  139. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  140. package/es-modules/masters/modules/drilldown.src.js +1 -1
  141. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  142. package/es-modules/masters/modules/export-data.src.js +1 -1
  143. package/es-modules/masters/modules/exporting.src.js +1 -1
  144. package/es-modules/masters/modules/full-screen.src.js +1 -1
  145. package/es-modules/masters/modules/funnel.src.js +1 -1
  146. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  147. package/es-modules/masters/modules/gantt.src.js +1 -1
  148. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  149. package/es-modules/masters/modules/heatmap.src.js +1 -1
  150. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  151. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  152. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  153. package/es-modules/masters/modules/item-series.src.js +1 -1
  154. package/es-modules/masters/modules/lollipop.src.js +1 -1
  155. package/es-modules/masters/modules/map.src.js +1 -1
  156. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  157. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  158. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  159. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  160. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  161. package/es-modules/masters/modules/oldie.src.js +1 -1
  162. package/es-modules/masters/modules/organization.src.js +1 -1
  163. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  164. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  165. package/es-modules/masters/modules/pareto.src.js +1 -1
  166. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  167. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  168. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  169. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  170. package/es-modules/masters/modules/sankey.src.js +1 -1
  171. package/es-modules/masters/modules/series-label.src.js +1 -1
  172. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  173. package/es-modules/masters/modules/sonification.src.js +1 -1
  174. package/es-modules/masters/modules/static-scale.src.js +1 -1
  175. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  176. package/es-modules/masters/modules/stock.src.js +1 -1
  177. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  178. package/es-modules/masters/modules/sunburst.src.js +1 -1
  179. package/es-modules/masters/modules/tilemap.src.js +1 -1
  180. package/es-modules/masters/modules/timeline.src.js +1 -1
  181. package/es-modules/masters/modules/treegrid.src.js +1 -1
  182. package/es-modules/masters/modules/treemap.src.js +1 -1
  183. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  184. package/es-modules/masters/modules/variwide.src.js +1 -1
  185. package/es-modules/masters/modules/vector.src.js +1 -1
  186. package/es-modules/masters/modules/venn.src.js +1 -1
  187. package/es-modules/masters/modules/windbarb.src.js +1 -1
  188. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  189. package/es-modules/masters/modules/xrange.src.js +1 -1
  190. package/es-modules/masters/themes/avocado.src.js +1 -1
  191. package/es-modules/masters/themes/brand-dark.src.js +1 -1
  192. package/es-modules/masters/themes/brand-light.src.js +1 -1
  193. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  194. package/es-modules/masters/themes/dark-green.src.js +1 -1
  195. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  196. package/es-modules/masters/themes/gray.src.js +1 -1
  197. package/es-modules/masters/themes/grid-light.src.js +1 -1
  198. package/es-modules/masters/themes/grid.src.js +1 -1
  199. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  200. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  201. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  202. package/es-modules/masters/themes/skies.src.js +1 -1
  203. package/es-modules/masters/themes/sunset.src.js +1 -1
  204. package/highcharts-3d.js +2 -2
  205. package/highcharts-3d.src.js +2 -2
  206. package/highcharts-gantt.js +805 -802
  207. package/highcharts-gantt.js.map +1 -1
  208. package/highcharts-gantt.src.js +261 -144
  209. package/highcharts-more.js +5 -5
  210. package/highcharts-more.js.map +1 -1
  211. package/highcharts-more.src.js +6 -3
  212. package/highcharts.d.ts +1077 -53
  213. package/highcharts.js +591 -588
  214. package/highcharts.js.map +1 -1
  215. package/highcharts.src.d.ts +1077 -53
  216. package/highcharts.src.js +246 -136
  217. package/highmaps.js +758 -756
  218. package/highmaps.js.map +1 -1
  219. package/highmaps.src.js +336 -171
  220. package/highstock.js +792 -789
  221. package/highstock.js.map +1 -1
  222. package/highstock.src.js +272 -157
  223. package/indicators/acceleration-bands.js +1 -1
  224. package/indicators/acceleration-bands.src.js +1 -1
  225. package/indicators/accumulation-distribution.js +1 -1
  226. package/indicators/accumulation-distribution.src.js +1 -1
  227. package/indicators/ao.js +1 -1
  228. package/indicators/ao.src.js +1 -1
  229. package/indicators/apo.js +1 -1
  230. package/indicators/apo.src.js +1 -1
  231. package/indicators/aroon-oscillator.js +1 -1
  232. package/indicators/aroon-oscillator.src.js +1 -1
  233. package/indicators/aroon.js +1 -1
  234. package/indicators/aroon.src.js +1 -1
  235. package/indicators/atr.js +1 -1
  236. package/indicators/atr.src.js +1 -1
  237. package/indicators/bollinger-bands.js +1 -1
  238. package/indicators/bollinger-bands.src.js +1 -1
  239. package/indicators/cci.js +1 -1
  240. package/indicators/cci.src.js +1 -1
  241. package/indicators/chaikin.js +1 -1
  242. package/indicators/chaikin.src.js +1 -1
  243. package/indicators/cmf.js +1 -1
  244. package/indicators/cmf.src.js +1 -1
  245. package/indicators/cmo.js +1 -1
  246. package/indicators/cmo.src.js +1 -1
  247. package/indicators/dema.js +1 -1
  248. package/indicators/dema.src.js +1 -1
  249. package/indicators/disparity-index.js +1 -1
  250. package/indicators/disparity-index.src.js +1 -1
  251. package/indicators/dmi.js +1 -1
  252. package/indicators/dmi.src.js +1 -1
  253. package/indicators/dpo.js +1 -1
  254. package/indicators/dpo.src.js +1 -1
  255. package/indicators/ichimoku-kinko-hyo.js +1 -1
  256. package/indicators/ichimoku-kinko-hyo.src.js +1 -1
  257. package/indicators/indicators-all.js +1 -1
  258. package/indicators/indicators-all.src.js +1 -1
  259. package/indicators/indicators.js +1 -1
  260. package/indicators/indicators.src.js +1 -1
  261. package/indicators/keltner-channels.js +1 -1
  262. package/indicators/keltner-channels.src.js +1 -1
  263. package/indicators/klinger.js +1 -1
  264. package/indicators/klinger.src.js +1 -1
  265. package/indicators/macd.js +1 -1
  266. package/indicators/macd.src.js +1 -1
  267. package/indicators/mfi.js +1 -1
  268. package/indicators/mfi.src.js +1 -1
  269. package/indicators/momentum.js +1 -1
  270. package/indicators/momentum.src.js +1 -1
  271. package/indicators/natr.js +1 -1
  272. package/indicators/natr.src.js +1 -1
  273. package/indicators/obv.js +1 -1
  274. package/indicators/obv.src.js +1 -1
  275. package/indicators/pivot-points.js +1 -1
  276. package/indicators/pivot-points.src.js +1 -1
  277. package/indicators/ppo.js +1 -1
  278. package/indicators/ppo.src.js +1 -1
  279. package/indicators/price-channel.js +1 -1
  280. package/indicators/price-channel.src.js +1 -1
  281. package/indicators/price-envelopes.js +1 -1
  282. package/indicators/price-envelopes.src.js +1 -1
  283. package/indicators/psar.js +1 -1
  284. package/indicators/psar.src.js +1 -1
  285. package/indicators/regressions.js +1 -1
  286. package/indicators/regressions.src.js +1 -1
  287. package/indicators/roc.js +1 -1
  288. package/indicators/roc.src.js +1 -1
  289. package/indicators/rsi.js +1 -1
  290. package/indicators/rsi.src.js +1 -1
  291. package/indicators/slow-stochastic.js +1 -1
  292. package/indicators/slow-stochastic.src.js +1 -1
  293. package/indicators/stochastic.js +1 -1
  294. package/indicators/stochastic.src.js +1 -1
  295. package/indicators/supertrend.js +1 -1
  296. package/indicators/supertrend.src.js +1 -1
  297. package/indicators/tema.js +1 -1
  298. package/indicators/tema.src.js +1 -1
  299. package/indicators/trendline.js +1 -1
  300. package/indicators/trendline.src.js +1 -1
  301. package/indicators/trix.js +1 -1
  302. package/indicators/trix.src.js +1 -1
  303. package/indicators/volume-by-price.js +1 -1
  304. package/indicators/volume-by-price.src.js +1 -1
  305. package/indicators/vwap.js +1 -1
  306. package/indicators/vwap.src.js +1 -1
  307. package/indicators/williams-r.js +1 -1
  308. package/indicators/williams-r.src.js +1 -1
  309. package/indicators/wma.js +1 -1
  310. package/indicators/wma.src.js +1 -1
  311. package/indicators/zigzag.js +1 -1
  312. package/indicators/zigzag.src.js +1 -1
  313. package/modules/accessibility.js +240 -238
  314. package/modules/accessibility.js.map +1 -1
  315. package/modules/accessibility.src.js +220 -87
  316. package/modules/annotations-advanced.js +6 -6
  317. package/modules/annotations-advanced.js.map +1 -1
  318. package/modules/annotations-advanced.src.js +14 -6
  319. package/modules/annotations.js +6 -6
  320. package/modules/annotations.js.map +1 -1
  321. package/modules/annotations.src.js +14 -6
  322. package/modules/arc-diagram.js +7 -7
  323. package/modules/arc-diagram.js.map +1 -1
  324. package/modules/arc-diagram.src.js +10 -2
  325. package/modules/arrow-symbols.js +1 -1
  326. package/modules/arrow-symbols.src.js +1 -1
  327. package/modules/boost-canvas.js +1 -1
  328. package/modules/boost-canvas.src.js +1 -1
  329. package/modules/boost.js +1 -1
  330. package/modules/boost.src.js +1 -1
  331. package/modules/broken-axis.js +1 -1
  332. package/modules/broken-axis.src.js +1 -1
  333. package/modules/bullet.js +1 -1
  334. package/modules/bullet.src.js +1 -1
  335. package/modules/coloraxis.js +1 -1
  336. package/modules/coloraxis.src.js +1 -1
  337. package/modules/current-date-indicator.js +1 -1
  338. package/modules/current-date-indicator.src.js +1 -1
  339. package/modules/cylinder.js +1 -1
  340. package/modules/cylinder.src.js +1 -1
  341. package/modules/data.js +1 -1
  342. package/modules/data.src.js +1 -1
  343. package/modules/datagrouping.js +7 -7
  344. package/modules/datagrouping.js.map +1 -1
  345. package/modules/datagrouping.src.js +4 -2
  346. package/modules/debugger.js +6 -5
  347. package/modules/debugger.js.map +1 -1
  348. package/modules/debugger.src.js +5 -1
  349. package/modules/dependency-wheel.js +1 -1
  350. package/modules/dependency-wheel.src.js +1 -1
  351. package/modules/dotplot.js +1 -1
  352. package/modules/dotplot.src.js +1 -1
  353. package/modules/drag-panes.js +1 -1
  354. package/modules/drag-panes.src.js +1 -1
  355. package/modules/draggable-points.js +1 -1
  356. package/modules/draggable-points.src.js +1 -1
  357. package/modules/drilldown.js +36 -37
  358. package/modules/drilldown.js.map +1 -1
  359. package/modules/drilldown.src.js +9 -9
  360. package/modules/dumbbell.js +1 -1
  361. package/modules/dumbbell.src.js +1 -1
  362. package/modules/export-data.js +13 -13
  363. package/modules/export-data.js.map +1 -1
  364. package/modules/export-data.src.js +2 -3
  365. package/modules/exporting.js +39 -39
  366. package/modules/exporting.js.map +1 -1
  367. package/modules/exporting.src.js +146 -75
  368. package/modules/full-screen.js +8 -8
  369. package/modules/full-screen.js.map +1 -1
  370. package/modules/full-screen.src.js +125 -57
  371. package/modules/funnel.js +1 -1
  372. package/modules/funnel.src.js +1 -1
  373. package/modules/funnel3d.js +1 -1
  374. package/modules/funnel3d.src.js +1 -1
  375. package/modules/gantt.js +218 -217
  376. package/modules/gantt.js.map +1 -1
  377. package/modules/gantt.src.js +16 -9
  378. package/modules/grid-axis.js +21 -21
  379. package/modules/grid-axis.js.map +1 -1
  380. package/modules/grid-axis.src.js +6 -3
  381. package/modules/heatmap.js +40 -40
  382. package/modules/heatmap.js.map +1 -1
  383. package/modules/heatmap.src.js +14 -21
  384. package/modules/heikinashi.js +1 -1
  385. package/modules/heikinashi.src.js +1 -1
  386. package/modules/histogram-bellcurve.js +1 -1
  387. package/modules/histogram-bellcurve.src.js +1 -1
  388. package/modules/hollowcandlestick.js +1 -1
  389. package/modules/hollowcandlestick.src.js +1 -1
  390. package/modules/item-series.js +1 -1
  391. package/modules/item-series.src.js +1 -1
  392. package/modules/lollipop.js +1 -1
  393. package/modules/lollipop.src.js +1 -1
  394. package/modules/map.js +169 -169
  395. package/modules/map.js.map +1 -1
  396. package/modules/map.src.js +91 -36
  397. package/modules/marker-clusters.js +1 -1
  398. package/modules/marker-clusters.src.js +1 -1
  399. package/modules/networkgraph.js +1 -1
  400. package/modules/networkgraph.src.js +1 -1
  401. package/modules/no-data-to-display.js +1 -1
  402. package/modules/no-data-to-display.src.js +1 -1
  403. package/modules/offline-exporting.js +2 -2
  404. package/modules/offline-exporting.src.js +2 -2
  405. package/modules/oldie-polyfills.js +1 -1
  406. package/modules/oldie-polyfills.src.js +1 -1
  407. package/modules/oldie.js +2 -2
  408. package/modules/oldie.src.js +2 -2
  409. package/modules/organization.js +1 -1
  410. package/modules/organization.src.js +1 -1
  411. package/modules/overlapping-datalabels.js +1 -1
  412. package/modules/overlapping-datalabels.src.js +1 -1
  413. package/modules/parallel-coordinates.js +1 -1
  414. package/modules/parallel-coordinates.src.js +1 -1
  415. package/modules/pareto.js +1 -1
  416. package/modules/pareto.src.js +1 -1
  417. package/modules/pathfinder.js +1 -1
  418. package/modules/pathfinder.src.js +1 -1
  419. package/modules/pattern-fill.js +1 -1
  420. package/modules/pattern-fill.src.js +1 -1
  421. package/modules/price-indicator.js +1 -1
  422. package/modules/price-indicator.src.js +1 -1
  423. package/modules/pyramid3d.js +1 -1
  424. package/modules/pyramid3d.src.js +1 -1
  425. package/modules/sankey.js +5 -5
  426. package/modules/sankey.js.map +1 -1
  427. package/modules/sankey.src.js +4 -2
  428. package/modules/series-label.js +1 -1
  429. package/modules/series-label.src.js +1 -1
  430. package/modules/solid-gauge.js +1 -1
  431. package/modules/solid-gauge.src.js +1 -1
  432. package/modules/sonification.js +1 -1
  433. package/modules/sonification.src.js +1 -1
  434. package/modules/static-scale.js +1 -1
  435. package/modules/static-scale.src.js +1 -1
  436. package/modules/stock-tools.js +137 -137
  437. package/modules/stock-tools.js.map +1 -1
  438. package/modules/stock-tools.src.js +46 -30
  439. package/modules/stock.js +204 -204
  440. package/modules/stock.js.map +1 -1
  441. package/modules/stock.src.js +27 -22
  442. package/modules/streamgraph.js +1 -1
  443. package/modules/streamgraph.src.js +1 -1
  444. package/modules/sunburst.js +69 -69
  445. package/modules/sunburst.js.map +1 -1
  446. package/modules/sunburst.src.js +4 -6
  447. package/modules/tilemap.js +1 -1
  448. package/modules/tilemap.src.js +1 -1
  449. package/modules/timeline.js +1 -1
  450. package/modules/timeline.src.js +1 -1
  451. package/modules/treegrid.js +56 -56
  452. package/modules/treegrid.js.map +1 -1
  453. package/modules/treegrid.src.js +6 -3
  454. package/modules/treemap.js +50 -50
  455. package/modules/treemap.js.map +1 -1
  456. package/modules/treemap.src.js +3 -5
  457. package/modules/variable-pie.js +1 -1
  458. package/modules/variable-pie.src.js +1 -1
  459. package/modules/variwide.js +1 -1
  460. package/modules/variwide.src.js +1 -1
  461. package/modules/vector.js +1 -1
  462. package/modules/vector.src.js +1 -1
  463. package/modules/venn.js +1 -1
  464. package/modules/venn.src.js +1 -1
  465. package/modules/windbarb.js +1 -1
  466. package/modules/windbarb.src.js +1 -1
  467. package/modules/wordcloud.js +4 -3
  468. package/modules/wordcloud.js.map +1 -1
  469. package/modules/wordcloud.src.js +5 -5
  470. package/modules/xrange.js +1 -1
  471. package/modules/xrange.src.js +1 -1
  472. package/package.json +1 -1
  473. package/themes/avocado.js +1 -1
  474. package/themes/avocado.src.js +1 -1
  475. package/themes/brand-dark.js +1 -1
  476. package/themes/brand-dark.src.js +1 -1
  477. package/themes/brand-light.js +1 -1
  478. package/themes/brand-light.src.js +1 -1
  479. package/themes/dark-blue.js +1 -1
  480. package/themes/dark-blue.src.js +1 -1
  481. package/themes/dark-green.js +1 -1
  482. package/themes/dark-green.src.js +1 -1
  483. package/themes/dark-unica.js +1 -1
  484. package/themes/dark-unica.src.js +1 -1
  485. package/themes/gray.js +1 -1
  486. package/themes/gray.src.js +1 -1
  487. package/themes/grid-light.js +1 -1
  488. package/themes/grid-light.src.js +1 -1
  489. package/themes/grid.js +1 -1
  490. package/themes/grid.src.js +1 -1
  491. package/themes/high-contrast-dark.js +2 -2
  492. package/themes/high-contrast-dark.src.js +11 -11
  493. package/themes/high-contrast-light.js +2 -2
  494. package/themes/high-contrast-light.src.js +10 -10
  495. package/themes/sand-signika.js +1 -1
  496. package/themes/sand-signika.src.js +1 -1
  497. package/themes/skies.js +1 -1
  498. package/themes/skies.src.js +1 -1
  499. package/themes/sunset.js +1 -1
  500. package/themes/sunset.src.js +1 -1
package/bower.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "highcharts",
3
- "version": "10.0.0",
3
+ "version": "10.1.0",
4
4
  "main": "highcharts.js",
5
5
  "license": "https://www.highcharts.com/license",
6
6
  "types": "highcharts.d.ts"
@@ -14,7 +14,7 @@
14
14
  import F from '../Core/FormatUtilities.js';
15
15
  var format = F.format;
16
16
  import U from '../Core/Utilities.js';
17
- var pick = U.pick;
17
+ var getNestedProperty = U.getNestedProperty, pick = U.pick;
18
18
  /* *
19
19
  *
20
20
  * Composition
@@ -71,7 +71,7 @@ var A11yI18nComposition;
71
71
  var eachEnd = statement.slice(eachStart).indexOf(')') + eachStart, preEach = statement.substring(0, eachStart), postEach = statement.substring(eachEnd + 1), eachStatement = statement.substring(eachStart + 6, eachEnd), eachArguments = eachStatement.split(',');
72
72
  var lenArg = Number(eachArguments[1]), len = void 0;
73
73
  result = '';
74
- arr = ctx[eachArguments[0]];
74
+ arr = getNestedProperty(eachArguments[0], ctx);
75
75
  if (arr) {
76
76
  lenArg = isNaN(lenArg) ? arr.length : lenArg;
77
77
  len = lenArg < 0 ?
@@ -86,7 +86,7 @@ var A11yI18nComposition;
86
86
  }
87
87
  // Dealing with a plural-function?
88
88
  if (pluralStart > -1) {
89
- var pluralEnd = (statement.slice(pluralStart).indexOf(')') + pluralStart), pluralStatement = statement.substring(pluralStart + 8, pluralEnd), pluralArguments = pluralStatement.split(','), num = Number(ctx[pluralArguments[0]]);
89
+ var pluralEnd = (statement.slice(pluralStart).indexOf(')') + pluralStart), pluralStatement = statement.substring(pluralStart + 8, pluralEnd), pluralArguments = pluralStatement.split(','), num = Number(getNestedProperty(pluralArguments[0], ctx));
90
90
  switch (num) {
91
91
  case 0:
92
92
  result = pick(pluralArguments[4], pluralArguments[1]);
@@ -106,7 +106,7 @@ var A11yI18nComposition;
106
106
  if (indexStart > -1) {
107
107
  var arrayName = statement.substring(0, indexStart), ix = Number(statement.substring(indexStart + 1, indexEnd));
108
108
  var val = void 0;
109
- arr = ctx[arrayName];
109
+ arr = getNestedProperty(arrayName, ctx);
110
110
  if (!isNaN(ix) && arr) {
111
111
  if (ix < 0) {
112
112
  val = arr[arr.length + ix];
@@ -97,20 +97,19 @@ var ContainerComponent = /** @class */ (function (_super) {
97
97
  }
98
98
  };
99
99
  /**
100
+ * Set attributes on the chart container element.
100
101
  * @private
101
102
  */
102
103
  ContainerComponent.prototype.setRenderToAttrs = function () {
103
- var chart = this.chart;
104
- if (chart.options.accessibility.landmarkVerbosity !== 'disabled') {
105
- chart.renderTo.setAttribute('role', 'region');
106
- }
107
- else {
108
- chart.renderTo.removeAttribute('role');
109
- }
110
- chart.renderTo.setAttribute('aria-label', chart.langFormat('accessibility.chartContainerLabel', {
104
+ var chart = this.chart, shouldHaveLandmark = chart.options.accessibility
105
+ .landmarkVerbosity !== 'disabled', containerLabel = chart.langFormat('accessibility.chartContainerLabel', {
111
106
  title: getChartTitle(chart),
112
107
  chart: chart
113
- }));
108
+ });
109
+ if (containerLabel) {
110
+ chart.renderTo.setAttribute('role', shouldHaveLandmark ? 'region' : 'group');
111
+ chart.renderTo.setAttribute('aria-label', containerLabel);
112
+ }
114
113
  };
115
114
  /**
116
115
  * @private
@@ -90,11 +90,12 @@ function buildTypeDescriptionFromSeries(chart, types, context) {
90
90
  * @return {string} The text description of the chart type.
91
91
  */
92
92
  function getTypeDescription(chart, types) {
93
- var firstType = types[0], firstSeries = chart.series && chart.series[0] || {}, formatContext = {
93
+ var firstType = types[0], firstSeries = chart.series && chart.series[0] || {}, mapTitle = chart.mapView && chart.mapView.geoMap &&
94
+ chart.mapView.geoMap.title, formatContext = {
94
95
  numSeries: chart.series.length,
95
96
  numPoints: firstSeries.points && firstSeries.points.length,
96
97
  chart: chart,
97
- mapTitle: firstSeries.mapTitle
98
+ mapTitle: mapTitle
98
99
  };
99
100
  if (!firstType) {
100
101
  return getTypeDescForEmptyChart(chart, formatContext);
@@ -284,23 +285,24 @@ var InfoRegionsComponent = /** @class */ (function (_super) {
284
285
  }
285
286
  };
286
287
  /**
288
+ * Apply a11y attributes to a screen reader info section
287
289
  * @private
288
290
  * @param {Highcharts.HTMLDOMElement} sectionDiv The section element
289
291
  * @param {string} regionKey Name/key of the region we are setting attrs for
290
292
  */
291
293
  InfoRegionsComponent.prototype.setScreenReaderSectionAttribs = function (sectionDiv, regionKey) {
292
- var labelLangKey = ('accessibility.screenReaderSection.' + regionKey + 'RegionLabel'), chart = this.chart, labelText = chart.langFormat(labelLangKey, { chart: chart, chartTitle: getChartTitle(chart) }), sectionId = 'highcharts-screen-reader-region-' + regionKey + '-' +
293
- chart.index;
294
+ var chart = this.chart, labelText = chart.langFormat('accessibility.screenReaderSection.' + regionKey +
295
+ 'RegionLabel', { chart: chart, chartTitle: getChartTitle(chart) }), sectionId = "highcharts-screen-reader-region-" + regionKey + "-" + chart.index;
294
296
  attr(sectionDiv, {
295
297
  id: sectionId,
296
- 'aria-label': labelText
298
+ 'aria-label': labelText || void 0
297
299
  });
298
300
  // Sections are wrapped to be positioned relatively to chart in case
299
301
  // elements inside are tabbed to.
300
302
  sectionDiv.style.position = 'relative';
301
- if (chart.options.accessibility.landmarkVerbosity === 'all' &&
302
- labelText) {
303
- sectionDiv.setAttribute('role', 'region');
303
+ if (labelText) {
304
+ sectionDiv.setAttribute('role', chart.options.accessibility.landmarkVerbosity === 'all' ?
305
+ 'region' : 'group');
304
306
  }
305
307
  };
306
308
  /**
@@ -499,7 +501,10 @@ var InfoRegionsComponent = /** @class */ (function (_super) {
499
501
  return axes.length > 1 || axes[0] &&
500
502
  pick(axes[0].options.accessibility &&
501
503
  axes[0].options.accessibility.enabled, defaultCondition);
502
- }, hasNoMap = !!chart.types && chart.types.indexOf('map') < 0, hasCartesian = !!chart.hasCartesianSeries, showXAxes = shouldDescribeColl('xAxis', !chart.angular && hasCartesian && hasNoMap), showYAxes = shouldDescribeColl('yAxis', hasCartesian && hasNoMap), desc = {};
504
+ }, hasNoMap = !!chart.types &&
505
+ chart.types.indexOf('map') < 0 &&
506
+ chart.types.indexOf('treemap') < 0 &&
507
+ chart.types.indexOf('tilemap') < 0, hasCartesian = !!chart.hasCartesianSeries, showXAxes = shouldDescribeColl('xAxis', !chart.angular && hasCartesian && hasNoMap), showYAxes = shouldDescribeColl('yAxis', hasCartesian && hasNoMap), desc = {};
503
508
  if (showXAxes) {
504
509
  desc.xAxis = this.getAxisDescriptionText('xAxis');
505
510
  }
@@ -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
@@ -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
  }
@@ -279,8 +279,7 @@ var SeriesKeyboardNavigation = /** @class */ (function () {
279
279
  }]
280
280
  ],
281
281
  init: function () {
282
- highlightFirstValidPointInChart(chart);
283
- return this.response.success;
282
+ return keyboardNavigation.onHandlerInit(this);
284
283
  },
285
284
  validate: function () {
286
285
  return !!getFirstValidPointInChart(chart);
@@ -301,6 +300,24 @@ var SeriesKeyboardNavigation = /** @class */ (function () {
301
300
  var keys = this.keyCodes, isNext = keyCode === keys.right || keyCode === keys.down;
302
301
  return this.attemptHighlightAdjacentPoint(handler, isNext);
303
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
+ };
304
321
  /**
305
322
  * @private
306
323
  * @param {Highcharts.KeyboardNavigationHandler} handler
@@ -327,7 +344,7 @@ var SeriesKeyboardNavigation = /** @class */ (function () {
327
344
  * @private
328
345
  */
329
346
  SeriesKeyboardNavigation.prototype.onHandlerTerminate = function () {
330
- var chart = this.chart;
347
+ var chart = this.chart, kbdNavOptions = chart.options.accessibility.keyboardNavigation;
331
348
  if (chart.tooltip) {
332
349
  chart.tooltip.hide(0);
333
350
  }
@@ -338,7 +355,9 @@ var SeriesKeyboardNavigation = /** @class */ (function () {
338
355
  if (chart.highlightedPoint && chart.highlightedPoint.onMouseOut) {
339
356
  chart.highlightedPoint.onMouseOut();
340
357
  }
341
- delete chart.highlightedPoint;
358
+ if (!kbdNavOptions.seriesNavigation.rememberPointFocus) {
359
+ delete chart.highlightedPoint;
360
+ }
342
361
  };
343
362
  /**
344
363
  * Function that attempts to highlight next/prev point. Handles wrap around.
@@ -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);
@@ -68,7 +68,7 @@ var langOptions = {
68
68
  * @since 8.0.0
69
69
  */
70
70
  screenReaderSection: {
71
- beforeRegionLabel: 'Chart screen reader information, {chartTitle}.',
71
+ beforeRegionLabel: '',
72
72
  afterRegionLabel: '',
73
73
  /**
74
74
  * Language options for annotation descriptions.
@@ -234,12 +234,12 @@ var langOptions = {
234
234
  xAxisDescriptionPlural: 'The chart has {numAxes} X axes displaying {#each(names, -1) }and {names[-1]}.',
235
235
  yAxisDescriptionSingular: 'The chart has 1 Y axis displaying {names[0]}. {ranges[0]}',
236
236
  yAxisDescriptionPlural: 'The chart has {numAxes} Y axes displaying {#each(names, -1) }and {names[-1]}.',
237
- timeRangeDays: 'Range: {range} days.',
238
- timeRangeHours: 'Range: {range} hours.',
239
- timeRangeMinutes: 'Range: {range} minutes.',
240
- timeRangeSeconds: 'Range: {range} seconds.',
241
- rangeFromTo: 'Range: {rangeFrom} to {rangeTo}.',
242
- rangeCategories: 'Range: {numCategories} categories.'
237
+ timeRangeDays: 'Data range: {range} days.',
238
+ timeRangeHours: 'Data range: {range} hours.',
239
+ timeRangeMinutes: 'Data range: {range} minutes.',
240
+ timeRangeSeconds: 'Data range: {range} seconds.',
241
+ rangeFromTo: 'Data ranges from {rangeFrom} to {rangeTo}.',
242
+ rangeCategories: 'Data range: {numCategories} categories.'
243
243
  },
244
244
  /**
245
245
  * Exporting menu format strings for accessibility module.
@@ -270,34 +270,39 @@ var langOptions = {
270
270
  * If a definition does not exist for the specific series type
271
271
  * and mode, the 'default' lang definitions are used.
272
272
  *
273
+ * Chart and its subproperties can be accessed with the `{chart}` variable.
274
+ * The series and its subproperties can be accessed with the `{series}` variable.
275
+ *
276
+ * The series index (starting from 1) can be accessed with the `{seriesNumber}` variable.
277
+ *
273
278
  * @since 6.0.6
274
279
  */
275
280
  summary: {
276
281
  /* eslint-disable max-len */
277
- 'default': '{name}, series {ix} of {numSeries} with {numPoints} data {#plural(numPoints, points, point)}.',
278
- defaultCombination: '{name}, series {ix} of {numSeries} with {numPoints} data {#plural(numPoints, points, point)}.',
279
- line: '{name}, line {ix} of {numSeries} with {numPoints} data {#plural(numPoints, points, point)}.',
280
- lineCombination: '{name}, series {ix} of {numSeries}. Line with {numPoints} data {#plural(numPoints, points, point)}.',
281
- spline: '{name}, line {ix} of {numSeries} with {numPoints} data {#plural(numPoints, points, point)}.',
282
- splineCombination: '{name}, series {ix} of {numSeries}. Line with {numPoints} data {#plural(numPoints, points, point)}.',
283
- column: '{name}, bar series {ix} of {numSeries} with {numPoints} {#plural(numPoints, bars, bar)}.',
284
- columnCombination: '{name}, series {ix} of {numSeries}. Bar series with {numPoints} {#plural(numPoints, bars, bar)}.',
285
- bar: '{name}, bar series {ix} of {numSeries} with {numPoints} {#plural(numPoints, bars, bar)}.',
286
- barCombination: '{name}, series {ix} of {numSeries}. Bar series with {numPoints} {#plural(numPoints, bars, bar)}.',
287
- pie: '{name}, pie {ix} of {numSeries} with {numPoints} {#plural(numPoints, slices, slice)}.',
288
- pieCombination: '{name}, series {ix} of {numSeries}. Pie with {numPoints} {#plural(numPoints, slices, slice)}.',
289
- scatter: '{name}, scatter plot {ix} of {numSeries} with {numPoints} {#plural(numPoints, points, point)}.',
290
- scatterCombination: '{name}, series {ix} of {numSeries}, scatter plot with {numPoints} {#plural(numPoints, points, point)}.',
291
- boxplot: '{name}, boxplot {ix} of {numSeries} with {numPoints} {#plural(numPoints, boxes, box)}.',
292
- boxplotCombination: '{name}, series {ix} of {numSeries}. Boxplot with {numPoints} {#plural(numPoints, boxes, box)}.',
293
- bubble: '{name}, bubble series {ix} of {numSeries} with {numPoints} {#plural(numPoints, bubbles, bubble)}.',
294
- bubbleCombination: '{name}, series {ix} of {numSeries}. Bubble series with {numPoints} {#plural(numPoints, bubbles, bubble)}.',
295
- map: '{name}, map {ix} of {numSeries} with {numPoints} {#plural(numPoints, areas, area)}.',
296
- mapCombination: '{name}, series {ix} of {numSeries}. Map with {numPoints} {#plural(numPoints, areas, area)}.',
297
- mapline: '{name}, line {ix} of {numSeries} with {numPoints} data {#plural(numPoints, points, point)}.',
298
- maplineCombination: '{name}, series {ix} of {numSeries}. Line with {numPoints} data {#plural(numPoints, points, point)}.',
299
- mapbubble: '{name}, bubble series {ix} of {numSeries} with {numPoints} {#plural(numPoints, bubbles, bubble)}.',
300
- mapbubbleCombination: '{name}, series {ix} of {numSeries}. Bubble series with {numPoints} {#plural(numPoints, bubbles, bubble)}.'
282
+ 'default': '{series.name}, series {seriesNumber} of {chart.series.length} with {series.points.length} data {#plural(series.points.length, points, point)}.',
283
+ defaultCombination: '{series.name}, series {seriesNumber} of {chart.series.length} with {series.points.length} data {#plural(series.points.length, points, point)}.',
284
+ line: '{series.name}, line {seriesNumber} of {chart.series.length} with {series.points.length} data {#plural(series.points.length, points, point)}.',
285
+ lineCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Line with {series.points.length} data {#plural(series.points.length, points, point)}.',
286
+ spline: '{series.name}, line {seriesNumber} of {chart.series.length} with {series.points.length} data {#plural(series.points.length, points, point)}.',
287
+ splineCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Line with {series.points.length} data {#plural(series.points.length, points, point)}.',
288
+ column: '{series.name}, bar series {seriesNumber} of {chart.series.length} with {series.points.length} {#plural(series.points.length, bars, bar)}.',
289
+ columnCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Bar series with {series.points.length} {#plural(series.points.length, bars, bar)}.',
290
+ bar: '{series.name}, bar series {seriesNumber} of {chart.series.length} with {series.points.length} {#plural(series.points.length, bars, bar)}.',
291
+ barCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Bar series with {series.points.length} {#plural(series.points.length, bars, bar)}.',
292
+ pie: '{series.name}, pie {seriesNumber} of {chart.series.length} with {series.points.length} {#plural(series.points.length, slices, slice)}.',
293
+ pieCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Pie with {series.points.length} {#plural(series.points.length, slices, slice)}.',
294
+ scatter: '{series.name}, scatter plot {seriesNumber} of {chart.series.length} with {series.points.length} {#plural(series.points.length, points, point)}.',
295
+ scatterCombination: '{series.name}, series {seriesNumber} of {chart.series.length}, scatter plot with {series.points.length} {#plural(series.points.length, points, point)}.',
296
+ boxplot: '{series.name}, boxplot {seriesNumber} of {chart.series.length} with {series.points.length} {#plural(series.points.length, boxes, box)}.',
297
+ boxplotCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Boxplot with {series.points.length} {#plural(series.points.length, boxes, box)}.',
298
+ bubble: '{series.name}, bubble series {seriesNumber} of {chart.series.length} with {series.points.length} {#plural(series.points.length, bubbles, bubble)}.',
299
+ bubbleCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Bubble series with {series.points.length} {#plural(series.points.length, bubbles, bubble)}.',
300
+ map: '{series.name}, map {seriesNumber} of {chart.series.length} with {series.points.length} {#plural(series.points.length, areas, area)}.',
301
+ mapCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Map with {series.points.length} {#plural(series.points.length, areas, area)}.',
302
+ mapline: '{series.name}, line {seriesNumber} of {chart.series.length} with {series.points.length} data {#plural(series.points.length, points, point)}.',
303
+ maplineCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Line with {series.points.length} data {#plural(series.points.length, points, point)}.',
304
+ mapbubble: '{series.name}, bubble series {seriesNumber} of {chart.series.length} with {series.points.length} {#plural(series.points.length, bubbles, bubble)}.',
305
+ mapbubbleCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Bubble series with {series.points.length} {#plural(series.points.length, bubbles, bubble)}.'
301
306
  },
302
307
  /**
303
308
  * User supplied description text. This is added in the point
@@ -90,7 +90,17 @@ var Options = {
90
90
  */
91
91
  accessibility: {
92
92
  /**
93
- * Enable accessibility functionality for the chart.
93
+ * Enable accessibility functionality for the chart. For more
94
+ * information on how to include these features, and why this is
95
+ * recommended, see [Highcharts Accessibility](https://www.highcharts.com/docs/accessibility/accessibility-module).
96
+ *
97
+ * Highcharts will by default emit a warning to the console if
98
+ * the [accessibility module](https://code.highcharts.com/modules/accessibility.js)
99
+ * is not loaded. Setting this option to `false` will override
100
+ * and silence the warning.
101
+ *
102
+ * Once the module is loaded, setting this option to `false`
103
+ * will disable the module for this chart.
94
104
  *
95
105
  * @since 5.0.0
96
106
  */
@@ -204,12 +214,43 @@ var Options = {
204
214
  * of the series for a screen reader user. If `false` is returned,
205
215
  * the default formatter will be used for that series.
206
216
  *
217
+ * @see [series.descriptionFormat](#accessibility.series.descriptionFormat)
207
218
  * @see [series.description](#plotOptions.series.description)
208
219
  *
209
220
  * @type {Highcharts.ScreenReaderFormatterCallbackFunction<Highcharts.Series>}
210
221
  * @since 8.0.0
211
222
  * @apioption accessibility.series.descriptionFormatter
212
223
  */
224
+ /**
225
+ * Format to use for describing the data series group to assistive
226
+ * technology - including screen readers.
227
+ *
228
+ * The series context and its subproperties are available under the
229
+ * variable `{series}`, for example `{series.name}` for the series
230
+ * name, and `{series.points.length}` for the number of data points.
231
+ *
232
+ * The chart context and its subproperties are available under the
233
+ * variable `{chart}`, for example `{chart.series.length}` for the
234
+ * number of series in the chart.
235
+ *
236
+ * `{seriesDescription}` refers to the automatic description of the
237
+ * series type and number of points added by Highcharts by default.
238
+ * `{authorDescription}` refers to the description added in
239
+ * [series.description](#plotOptions.series.description) if one is
240
+ * present. `{axisDescription}` refers to the description added if
241
+ * the chart has multiple X or Y axes.
242
+ *
243
+ * Note that if [series.descriptionFormatter](#accessibility.series.descriptionFormatter)
244
+ * is declared it will take precedence, and this option will be
245
+ * overridden.
246
+ *
247
+ * @sample highcharts/accessibility/advanced-accessible
248
+ * Accessible low-medium-high chart
249
+ *
250
+ * @type {string}
251
+ * @since 10.1.0
252
+ */
253
+ descriptionFormat: '{seriesDescription}{authorDescription}{axisDescription}',
213
254
  /**
214
255
  * Whether or not to add series descriptions to charts with a single
215
256
  * series.
@@ -311,6 +352,8 @@ var Options = {
311
352
  * to assistive technology - including screen readers.
312
353
  * The point context is available as `{point}`.
313
354
  *
355
+ * Other available context variables include `{index}`, `{value}`, and `{xDescription}`.
356
+ *
314
357
  * Additionally, the series name, annotation info, and
315
358
  * description added in `point.accessibility.description`
316
359
  * is added by default if relevant. To override this, use the
@@ -323,7 +366,18 @@ var Options = {
323
366
  * @type {string}
324
367
  * @since 8.0.1
325
368
  */
326
- valueDescriptionFormat: '{index}. {xDescription}{separator}{value}.'
369
+ valueDescriptionFormat: '{xDescription}{separator}{value}.',
370
+ /**
371
+ * Whether or not to describe points with the value `null` to
372
+ * assistive technology, such as screen readers.
373
+ *
374
+ * @sample {highmaps} maps/demo/all-areas-as-null
375
+ * Accessible map with null points
376
+ *
377
+ * @type {boolean}
378
+ * @since 10.1.0
379
+ */
380
+ describeNull: true
327
381
  },
328
382
  /**
329
383
  * Amount of landmarks/regions to create for screen reader users. More
@@ -567,7 +621,16 @@ var Options = {
567
621
  * @type {boolean|number}
568
622
  * @since 8.0.0
569
623
  */
570
- pointNavigationEnabledThreshold: false
624
+ pointNavigationEnabledThreshold: false,
625
+ /**
626
+ * Remember which point was focused even after navigating away
627
+ * from the series, so that when navigating back to the series
628
+ * you start at the last focused point.
629
+ *
630
+ * @type {boolean}
631
+ * @since 10.1.0
632
+ */
633
+ rememberPointFocus: false
571
634
  }
572
635
  },
573
636
  /**
@@ -113,9 +113,9 @@ function getCategoryAxisRangeDesc(axis) {
113
113
  * @private
114
114
  */
115
115
  function getAxisTimeLengthDesc(axis) {
116
- var chart = axis.chart, range = {};
116
+ var chart = axis.chart, range = {}, min = axis.dataMin || axis.min || 0, max = axis.dataMax || axis.max || 0;
117
117
  var rangeUnit = 'Seconds';
118
- range.Seconds = ((axis.max || 0) - (axis.min || 0)) / 1000;
118
+ range.Seconds = (max - min) / 1000;
119
119
  range.Minutes = range.Seconds / 60;
120
120
  range.Hours = range.Minutes / 60;
121
121
  range.Days = range.Hours / 24;
@@ -142,8 +142,13 @@ function getAxisFromToDescription(axis) {
142
142
  var chart = axis.chart, options = chart.options, dateRangeFormat = (options &&
143
143
  options.accessibility &&
144
144
  options.accessibility.screenReaderSection.axisRangeDateFormat ||
145
- ''), format = function (axisKey) {
146
- return axis.dateTime ? chart.time.dateFormat(dateRangeFormat, axis[axisKey]) : axis[axisKey];
145
+ ''), extremes = {
146
+ min: axis.dataMin || axis.min || 0,
147
+ max: axis.dataMax || axis.max || 0
148
+ }, format = function (key) {
149
+ return axis.dateTime ?
150
+ chart.time.dateFormat(dateRangeFormat, extremes[key]) :
151
+ extremes[key].toString();
147
152
  };
148
153
  return chart.langFormat('accessibility.axis.rangeFromTo', {
149
154
  chart: chart,