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
@@ -20,7 +20,13 @@ import H from '../Globals.js';
20
20
  var deg2rad = H.deg2rad;
21
21
  import Tick from './Tick.js';
22
22
  import U from '../Utilities.js';
23
- var arrayMax = U.arrayMax, arrayMin = U.arrayMin, clamp = U.clamp, correctFloat = U.correctFloat, defined = U.defined, destroyObjectProperties = U.destroyObjectProperties, erase = U.erase, error = U.error, extend = U.extend, fireEvent = U.fireEvent, getMagnitude = U.getMagnitude, isArray = U.isArray, isNumber = U.isNumber, isString = U.isString, merge = U.merge, normalizeTickInterval = U.normalizeTickInterval, objectEach = U.objectEach, pick = U.pick, relativeLength = U.relativeLength, removeEvent = U.removeEvent, splat = U.splat, syncTimeout = U.syncTimeout;
23
+ var arrayMax = U.arrayMax, arrayMin = U.arrayMin, clamp = U.clamp, correctFloat = U.correctFloat, defined = U.defined, destroyObjectProperties = U.destroyObjectProperties, erase = U.erase, error = U.error, extend = U.extend, fireEvent = U.fireEvent, isArray = U.isArray, isNumber = U.isNumber, isString = U.isString, merge = U.merge, normalizeTickInterval = U.normalizeTickInterval, objectEach = U.objectEach, pick = U.pick, relativeLength = U.relativeLength, removeEvent = U.removeEvent, splat = U.splat, syncTimeout = U.syncTimeout;
24
+ var getNormalizedTickInterval = function (axis, tickInterval) { return normalizeTickInterval(tickInterval, void 0, void 0, pick(axis.options.allowDecimals,
25
+ // If the tick interval is greather than 0.5, avoid decimals, as
26
+ // linear axes are often used to render discrete values (#3363). If
27
+ // a tick amount is set, allow decimals by default, as it increases
28
+ // the chances for a good fit.
29
+ tickInterval < 0.5 || axis.tickAmount !== void 0), !!axis.tickAmount); };
24
30
  /* *
25
31
  *
26
32
  * Class
@@ -67,7 +73,6 @@ var Axis = /** @class */ (function () {
67
73
  function Axis(chart, userOptions) {
68
74
  this.alternateBands = void 0;
69
75
  this.bottom = void 0;
70
- this.categories = void 0;
71
76
  this.chart = void 0;
72
77
  this.closestPointRange = void 0;
73
78
  this.coll = void 0;
@@ -228,7 +233,7 @@ var Axis = /** @class */ (function () {
228
233
  * @type {Array<string>}
229
234
  * @readonly
230
235
  */
231
- axis.categories = options.categories || axis.hasNames;
236
+ axis.categories = options.categories || (axis.hasNames ? [] : void 0);
232
237
  if (!axis.names) { // Preserve on update (#3830)
233
238
  axis.names = [];
234
239
  axis.names.keys = {};
@@ -546,8 +551,9 @@ var Axis = /** @class */ (function () {
546
551
  if (doPostTranslate) { // log, ordinal and broken axis
547
552
  val = axis.val2lin(val);
548
553
  }
554
+ var value = sign * (val - localMin) * localA;
549
555
  returnValue = isNumber(localMin) ?
550
- (sign * (val - localMin) * localA +
556
+ ((!axis.isRadial ? correctFloat(value) : value) +
551
557
  cvsOffset +
552
558
  (sign * minPixelPadding) +
553
559
  (isNumber(pointPlacement) ?
@@ -902,18 +908,18 @@ var Axis = /** @class */ (function () {
902
908
  * The X value that the point is given.
903
909
  */
904
910
  Axis.prototype.nameToX = function (point) {
905
- var explicitCategories = isArray(this.categories), names = explicitCategories ? this.categories : this.names;
911
+ var explicitCategories = isArray(this.options.categories), names = explicitCategories ? this.categories : this.names;
906
912
  var nameX = point.options.x, x;
907
913
  point.series.requireSorting = false;
908
914
  if (!defined(nameX)) {
909
- nameX = this.options.uniqueNames ?
915
+ nameX = this.options.uniqueNames && names ?
910
916
  (explicitCategories ?
911
917
  names.indexOf(point.name) :
912
918
  pick(names.keys[point.name], -1)) :
913
919
  point.series.autoIncrement();
914
920
  }
915
921
  if (nameX === -1) { // Not found in currenct categories
916
- if (!explicitCategories) {
922
+ if (!explicitCategories && names) {
917
923
  x = names.length;
918
924
  }
919
925
  }
@@ -1280,15 +1286,9 @@ var Axis = /** @class */ (function () {
1280
1286
  if (!tickIntervalOption && axis.tickInterval < minTickInterval) {
1281
1287
  axis.tickInterval = minTickInterval;
1282
1288
  }
1283
- // for linear axes, get magnitude and normalize the interval
1289
+ // For linear axes, normalize the interval
1284
1290
  if (!axis.dateTime && !axis.logarithmic && !tickIntervalOption) {
1285
- axis.tickInterval = normalizeTickInterval(axis.tickInterval, void 0, getMagnitude(axis.tickInterval), pick(options.allowDecimals,
1286
- // If the tick interval is greather than 0.5, avoid
1287
- // decimals, as linear axes are often used to render
1288
- // discrete values. #3363. If a tick amount is set, allow
1289
- // decimals by default, as it increases the chances for a
1290
- // good fit.
1291
- axis.tickInterval < 0.5 || this.tickAmount !== void 0), !!this.tickAmount);
1291
+ axis.tickInterval = getNormalizedTickInterval(axis, axis.tickInterval);
1292
1292
  }
1293
1293
  // Prevent ticks from getting so close that we can't draw the labels
1294
1294
  if (!this.tickAmount) {
@@ -1365,7 +1365,21 @@ var Axis = /** @class */ (function () {
1365
1365
  tickPositions = axis.logarithmic.getLogTickPositions(this.tickInterval, this.min, this.max);
1366
1366
  }
1367
1367
  else {
1368
- tickPositions = this.getLinearTickPositions(this.tickInterval, this.min, this.max);
1368
+ var startingTickInterval = this.tickInterval;
1369
+ var adjustedTickInterval = startingTickInterval;
1370
+ while (adjustedTickInterval <= startingTickInterval * 2) {
1371
+ tickPositions = this.getLinearTickPositions(this.tickInterval, this.min, this.max);
1372
+ // If there are more tick positions than the set tickAmount,
1373
+ // increase the tickInterval and continue until it fits.
1374
+ // (#17100)
1375
+ if (this.tickAmount &&
1376
+ tickPositions.length > this.tickAmount) {
1377
+ this.tickInterval = getNormalizedTickInterval(this, adjustedTickInterval *= 1.1);
1378
+ }
1379
+ else {
1380
+ break;
1381
+ }
1382
+ }
1369
1383
  }
1370
1384
  // Too dense ticks, keep only the first and last (#4477)
1371
1385
  if (tickPositions.length > this.len) {
@@ -1461,38 +1475,87 @@ var Axis = /** @class */ (function () {
1461
1475
  * True if there are other axes.
1462
1476
  */
1463
1477
  Axis.prototype.alignToOthers = function () {
1464
- var axis = this, others = // Whether there is another axis to pair with this one
1465
- {}, options = axis.options;
1478
+ var axis = this, alignedAxes = [this], options = axis.options, alignThresholds = (this.coll === 'yAxis' &&
1479
+ this.chart.options.chart.alignThresholds), thresholdAlignments = [];
1466
1480
  var hasOther;
1467
- if (
1468
- // Only if alignTicks is true
1469
- this.chart.options.chart.alignTicks !== false &&
1470
- options.alignTicks &&
1481
+ axis.thresholdAlignment = void 0;
1482
+ if ((
1483
+ // Only if alignTicks or alignThresholds is true
1484
+ (this.chart.options.chart.alignTicks !== false &&
1485
+ options.alignTicks) || (alignThresholds)) &&
1471
1486
  // Disabled when startOnTick or endOnTick are false (#7604)
1472
1487
  options.startOnTick !== false &&
1473
1488
  options.endOnTick !== false &&
1474
1489
  // Don't try to align ticks on a log axis, they are not evenly
1475
1490
  // spaced (#6021)
1476
1491
  !axis.logarithmic) {
1477
- this.chart[this.coll].forEach(function (axis) {
1478
- var otherOptions = axis.options, horiz = axis.horiz, key = [
1479
- horiz ? otherOptions.left : otherOptions.top,
1480
- otherOptions.width,
1481
- otherOptions.height,
1482
- otherOptions.pane
1492
+ // Get a key identifying which pane the axis belongs to
1493
+ var getKey_1 = function (axis) {
1494
+ var horiz = axis.horiz, options = axis.options;
1495
+ return [
1496
+ horiz ? options.left : options.top,
1497
+ options.width,
1498
+ options.height,
1499
+ options.pane
1483
1500
  ].join(',');
1484
- if (axis.series.length) { // #4442
1485
- if (others[key]) {
1486
- hasOther = true; // #4201
1487
- }
1488
- else {
1489
- others[key] = 1;
1490
- }
1501
+ };
1502
+ var thisKey_1 = getKey_1(this);
1503
+ this.chart[this.coll].forEach(function (otherAxis) {
1504
+ var series = otherAxis.series;
1505
+ if (
1506
+ // #4442
1507
+ series.length &&
1508
+ series.some(function (s) { return s.visible; }) &&
1509
+ otherAxis !== axis &&
1510
+ getKey_1(otherAxis) === thisKey_1) {
1511
+ hasOther = true; // #4201
1512
+ alignedAxes.push(otherAxis);
1491
1513
  }
1492
1514
  });
1493
1515
  }
1516
+ if (hasOther && alignThresholds) {
1517
+ // Handle alignThresholds. The `thresholdAlignments` array keeps
1518
+ // records of where each axis in the group wants its threshold, from
1519
+ // 0 which is on `axis.min`, to 1 which is on `axis.max`.
1520
+ alignedAxes.forEach(function (otherAxis) {
1521
+ var threshAlign = otherAxis.getThresholdAlignment(axis);
1522
+ if (isNumber(threshAlign)) {
1523
+ thresholdAlignments.push(threshAlign);
1524
+ }
1525
+ });
1526
+ // For each of the axes in the group, record the average
1527
+ // `thresholdAlignment`.
1528
+ var thresholdAlignment_1 = thresholdAlignments.length > 1 ?
1529
+ thresholdAlignments.reduce(function (sum, n) { return (sum += n); }, 0) / thresholdAlignments.length :
1530
+ void 0;
1531
+ alignedAxes.forEach(function (axis) {
1532
+ axis.thresholdAlignment = thresholdAlignment_1;
1533
+ });
1534
+ }
1494
1535
  return hasOther;
1495
1536
  };
1537
+ /**
1538
+ * Where the axis wants its threshold, from 0 which is on `axis.min`, to 1 which
1539
+ * is on `axis.max`.
1540
+ *
1541
+ * @private
1542
+ * @function Highcharts.Axis#getThresholdAlignment
1543
+ */
1544
+ Axis.prototype.getThresholdAlignment = function (callerAxis) {
1545
+ if (!isNumber(this.dataMin) ||
1546
+ (this !== callerAxis &&
1547
+ this.series.some(function (s) { return (s.isDirty || s.isDirtyData); }))) {
1548
+ this.getSeriesExtremes();
1549
+ }
1550
+ if (isNumber(this.threshold)) {
1551
+ var thresholdAlignment = clamp(((this.threshold - (this.dataMin || 0)) /
1552
+ ((this.dataMax || 0) - (this.dataMin || 0))), 0, 1);
1553
+ if (this.options.reversed) {
1554
+ thresholdAlignment = 1 - thresholdAlignment;
1555
+ }
1556
+ return thresholdAlignment;
1557
+ }
1558
+ };
1496
1559
  /**
1497
1560
  * Find the max ticks of either the x and y axis collection, and record it
1498
1561
  * in `this.tickAmount`.
@@ -1534,39 +1597,89 @@ var Axis = /** @class */ (function () {
1534
1597
  * @function Highcharts.Axis#adjustTickAmount
1535
1598
  */
1536
1599
  Axis.prototype.adjustTickAmount = function () {
1537
- var axis = this, axisOptions = axis.options, tickInterval = axis.tickInterval, tickPositions = axis.tickPositions, tickAmount = axis.tickAmount, finalTickAmt = axis.finalTickAmt, currentTickAmount = tickPositions && tickPositions.length, threshold = pick(axis.threshold, axis.softThreshold ? 0 : null);
1538
- var len, i;
1539
- if (axis.hasData() &&
1540
- isNumber(axis.min) &&
1541
- isNumber(axis.max)) { // #14769
1542
- if (currentTickAmount < tickAmount) {
1600
+ var axis = this, finalTickAmt = axis.finalTickAmt, max = axis.max, min = axis.min, options = axis.options, tickPositions = axis.tickPositions, tickAmount = axis.tickAmount, thresholdAlignment = axis.thresholdAlignment, currentTickAmount = tickPositions && tickPositions.length, threshold = pick(axis.threshold, axis.softThreshold ? 0 : null);
1601
+ var len, i, tickInterval = axis.tickInterval, thresholdTickIndex;
1602
+ var
1603
+ // Extend the tickPositions by appending a position
1604
+ append = function () { return tickPositions.push(correctFloat(tickPositions[tickPositions.length - 1] +
1605
+ tickInterval)); },
1606
+ // Extend the tickPositions by prepending a position
1607
+ prepend = function () { return tickPositions.unshift(correctFloat(tickPositions[0] - tickInterval)); };
1608
+ // If `thresholdAlignment` is a number, it means the `alignThresholds`
1609
+ // option is true. The `thresholdAlignment` is a scalar value between 0
1610
+ // and 1 for where the threshold should be relative to `axis.min` and
1611
+ // `axis.max`. Now that we know the tick amount, convert this to the
1612
+ // tick index. Unless `thresholdAlignment` is exactly 0 or 1, avoid the
1613
+ // first or last tick because that would lead to series being clipped.
1614
+ if (isNumber(thresholdAlignment)) {
1615
+ thresholdTickIndex = thresholdAlignment < 0.5 ?
1616
+ Math.ceil(thresholdAlignment * (tickAmount - 1)) :
1617
+ Math.floor(thresholdAlignment * (tickAmount - 1));
1618
+ if (options.reversed) {
1619
+ thresholdTickIndex = tickAmount - 1 - thresholdTickIndex;
1620
+ }
1621
+ }
1622
+ if (axis.hasData() && isNumber(min) && isNumber(max)) { // #14769
1623
+ // Adjust extremes and translation to the modified tick positions
1624
+ var adjustExtremes = function () {
1625
+ axis.transA *= (currentTickAmount - 1) / (tickAmount - 1);
1626
+ // Do not crop when ticks are not extremes (#9841)
1627
+ axis.min = options.startOnTick ?
1628
+ tickPositions[0] :
1629
+ Math.min(min, tickPositions[0]);
1630
+ axis.max = options.endOnTick ?
1631
+ tickPositions[tickPositions.length - 1] :
1632
+ Math.max(max, tickPositions[tickPositions.length - 1]);
1633
+ };
1634
+ // When the axis is subject to the alignThresholds option. Use
1635
+ // axis.threshold because the local threshold includes the
1636
+ // `softThreshold`.
1637
+ if (isNumber(thresholdTickIndex) && isNumber(axis.threshold)) {
1638
+ // Throw away the previously computed tickPositions and start
1639
+ // from scratch with only the threshold itself, then add ticks
1640
+ // below the threshold first, then fill up above the threshold.
1641
+ // If we are not able to fill up to axis.max, double the
1642
+ // tickInterval and run again.
1643
+ while (tickPositions[thresholdTickIndex] !== threshold ||
1644
+ tickPositions.length !== tickAmount ||
1645
+ tickPositions[0] > min ||
1646
+ tickPositions[tickPositions.length - 1] < max) {
1647
+ tickPositions.length = 0;
1648
+ tickPositions.push(axis.threshold);
1649
+ while (tickPositions.length < tickAmount) {
1650
+ if (
1651
+ // Start by prepending positions until the threshold
1652
+ // is at the required index...
1653
+ tickPositions[thresholdTickIndex] === void 0 ||
1654
+ tickPositions[thresholdTickIndex] > axis.threshold) {
1655
+ prepend();
1656
+ }
1657
+ else {
1658
+ // ... then append positions until we have the
1659
+ // required length
1660
+ append();
1661
+ }
1662
+ }
1663
+ // Safety vent
1664
+ if (tickInterval > axis.tickInterval * 8) {
1665
+ break;
1666
+ }
1667
+ tickInterval *= 2;
1668
+ }
1669
+ adjustExtremes();
1670
+ }
1671
+ else if (currentTickAmount < tickAmount) {
1543
1672
  while (tickPositions.length < tickAmount) {
1544
1673
  // Extend evenly for both sides unless we're on the
1545
1674
  // threshold (#3965)
1546
- if (tickPositions.length % 2 ||
1547
- axis.min === threshold) {
1548
- // to the end
1549
- tickPositions.push(correctFloat(tickPositions[tickPositions.length - 1] +
1550
- tickInterval));
1675
+ if (tickPositions.length % 2 || min === threshold) {
1676
+ append();
1551
1677
  }
1552
1678
  else {
1553
- // to the start
1554
- tickPositions.unshift(correctFloat(tickPositions[0] - tickInterval));
1679
+ prepend();
1555
1680
  }
1556
1681
  }
1557
- axis.transA *= (currentTickAmount - 1) / (tickAmount - 1);
1558
- // Do not crop when ticks are not extremes (#9841)
1559
- axis.min = axisOptions.startOnTick ?
1560
- tickPositions[0] :
1561
- Math.min(axis.min, tickPositions[0]);
1562
- axis.max = axisOptions.endOnTick ?
1563
- tickPositions[tickPositions.length - 1] :
1564
- Math.max(axis.max, tickPositions[tickPositions.length - 1]);
1565
- // We have too many ticks, run second pass to try to reduce ticks
1566
- }
1567
- else if (currentTickAmount > tickAmount) {
1568
- axis.tickInterval *= 2;
1569
- axis.setTickPositions();
1682
+ adjustExtremes();
1570
1683
  }
1571
1684
  // The finalTickAmt property is set in getTickAmount
1572
1685
  if (defined(finalTickAmt)) {
@@ -2405,18 +2518,18 @@ var Axis = /** @class */ (function () {
2405
2518
  // The part of a multiline text that is below the baseline of the
2406
2519
  // first line. Subtract 1 to preserve pixel-perfectness from the
2407
2520
  // old behaviour (v5.0.12), where only one line was allowed.
2408
- textHeightOvershoot = Math.max(axisTitle.getBBox(null, 0).height - fontMetrics.h - 1, 0),
2521
+ textHeightOvershoot = axisTitle ? Math.max(axisTitle.getBBox(false, 0).height - fontMetrics.h - 1, 0) : 0,
2409
2522
  // the position in the length direction of the axis
2410
- alongAxis = {
2523
+ alongAxis = ({
2411
2524
  low: margin + (horiz ? 0 : axisLength),
2412
2525
  middle: margin + axisLength / 2,
2413
2526
  high: margin + (horiz ? axisLength : 0)
2414
- }[axisTitleOptions.align],
2527
+ })[axisTitleOptions.align],
2415
2528
  // the position in the perpendicular direction of the axis
2416
2529
  offAxis = (horiz ? axisTop + this.height : axisLeft) +
2417
2530
  (horiz ? 1 : -1) * // horizontal axis reverses the margin
2418
2531
  (opposite ? -1 : 1) * // so does opposite axes
2419
- this.axisTitleMargin +
2532
+ (this.axisTitleMargin || 0) +
2420
2533
  [
2421
2534
  -textHeightOvershoot,
2422
2535
  textHeightOvershoot,
@@ -2618,14 +2731,8 @@ var Axis = /** @class */ (function () {
2618
2731
  }
2619
2732
  if (axisTitle && showAxis) {
2620
2733
  var titleXy = axis.getTitlePosition();
2621
- if (isNumber(titleXy.y)) {
2622
- axisTitle[axisTitle.isNew ? 'attr' : 'animate'](titleXy);
2623
- axisTitle.isNew = false;
2624
- }
2625
- else {
2626
- axisTitle.attr('y', -9999);
2627
- axisTitle.isNew = true;
2628
- }
2734
+ axisTitle[axisTitle.isNew ? 'attr' : 'animate'](titleXy);
2735
+ axisTitle.isNew = false;
2629
2736
  }
2630
2737
  // Stacked totals:
2631
2738
  if (stackLabelOptions && stackLabelOptions.enabled && axis.stacking) {
@@ -302,6 +302,16 @@ var ColorAxis = /** @class */ (function (_super) {
302
302
  axis.axisParent = group;
303
303
  // Call the base
304
304
  _super.prototype.getOffset.call(this);
305
+ var legend_1 = this.chart.legend;
306
+ // Adds `maxLabelLength` needed for label padding corrections done
307
+ // by `render()` and `getMargins()` (#15551).
308
+ legend_1.allItems.forEach(function (item) {
309
+ if (item instanceof ColorAxis) {
310
+ item.drawLegendSymbol(legend_1, item);
311
+ }
312
+ });
313
+ legend_1.render();
314
+ this.chart.getMargins(true);
305
315
  // First time only
306
316
  if (!axis.added) {
307
317
  axis.added = true;
@@ -344,17 +354,24 @@ var ColorAxis = /** @class */ (function (_super) {
344
354
  var horiz = axis.horiz;
345
355
  var width = pick(legendOptions.symbolWidth, horiz ? ColorAxis.defaultLegendLength : 12);
346
356
  var height = pick(legendOptions.symbolHeight, horiz ? 12 : ColorAxis.defaultLegendLength);
347
- var labelPadding = pick(legendOptions.labelPadding, horiz ? 16 : 30);
357
+ var labelPadding = pick(
358
+ // @todo: This option is not documented, nor implemented when
359
+ // vertical
360
+ legendOptions.labelPadding, horiz ? 16 : 30);
348
361
  var itemDistance = pick(legendOptions.itemDistance, 10);
349
362
  this.setLegendColor();
350
363
  // Create the gradient
351
- item.legendSymbol = this.chart.renderer.rect(0, legend.baseline - 11, width, height).attr({
352
- zIndex: 1
353
- }).add(item.legendGroup);
364
+ if (!item.legendSymbol) {
365
+ item.legendSymbol = this.chart.renderer.rect(0, legend.baseline - 11, width, height).attr({
366
+ zIndex: 1
367
+ }).add(item.legendGroup);
368
+ }
354
369
  // Set how much space this legend item takes up
355
370
  axis.legendItemWidth = (width +
356
371
  padding +
357
- (horiz ? itemDistance : labelPadding));
372
+ (horiz ?
373
+ itemDistance :
374
+ this.options.labels.x + this.maxLabelLength));
358
375
  axis.legendItemHeight = height + padding + (horiz ? labelPadding : 0);
359
376
  };
360
377
  /**
@@ -357,7 +357,7 @@ var GridAxis;
357
357
  });
358
358
  }
359
359
  // show or hide the line depending on options.showEmpty
360
- axis.axisLine[axis.showAxis ? 'show' : 'hide'](true);
360
+ axis.axisLine[axis.showAxis ? 'show' : 'hide']();
361
361
  }
362
362
  }
363
363
  (grid && grid.columns || []).forEach(function (column) {
@@ -370,10 +370,14 @@ var GridAxis;
370
370
  (axis.scrollbar ||
371
371
  (axis.linkedParent && axis.linkedParent.scrollbar))) {
372
372
  var tickmarkOffset = axis.tickmarkOffset, lastTick = axis.tickPositions[axis.tickPositions.length - 1], firstTick = axis.tickPositions[0];
373
- var label = void 0;
373
+ var label = void 0, tickMark = void 0;
374
374
  while ((label = axis.hiddenLabels.pop()) && label.element) {
375
375
  label.show(); // #15453
376
376
  }
377
+ while ((tickMark = axis.hiddenMarks.pop()) &&
378
+ tickMark.element) {
379
+ tickMark.show(); // #16439
380
+ }
377
381
  // Hide/show firts tick label.
378
382
  label = axis.ticks[firstTick].label;
379
383
  if (label) {
@@ -395,14 +399,10 @@ var GridAxis;
395
399
  }
396
400
  }
397
401
  var mark = axis.ticks[lastTick].mark;
398
- if (mark) {
399
- if (lastTick - max < tickmarkOffset &&
400
- lastTick - max > 0 && axis.ticks[lastTick].isLast) {
401
- mark.hide();
402
- }
403
- else if (axis.ticks[lastTick - 1]) {
404
- mark.show();
405
- }
402
+ if (mark &&
403
+ lastTick - max < tickmarkOffset &&
404
+ lastTick - max > 0 && axis.ticks[lastTick].isLast) {
405
+ axis.hiddenMarks.push(mark.hide());
406
406
  }
407
407
  }
408
408
  }
@@ -684,6 +684,7 @@ var GridAxis;
684
684
  axis.grid = new Additions(axis);
685
685
  }
686
686
  axis.hiddenLabels = [];
687
+ axis.hiddenMarks = [];
687
688
  }
688
689
  /**
689
690
  * Center tick labels in cells.
@@ -950,7 +951,10 @@ dateFormats.E = function (timestamp) {
950
951
  };
951
952
  // Adds week date format
952
953
  dateFormats.W = function (timestamp) {
953
- var d = new this.Date(timestamp);
954
+ var time = this, d = new this.Date(timestamp), unitsToOmit = ['Hours', 'Milliseconds', 'Minutes', 'Seconds'];
955
+ unitsToOmit.forEach(function (format) {
956
+ time.set(format, d, 0);
957
+ });
954
958
  var firstDay = (this.get('Day', d) + 6) % 7;
955
959
  var thursday = new this.Date(d.valueOf());
956
960
  this.set('Date', thursday, this.get('Date', d) - firstDay + 3);
@@ -172,7 +172,7 @@ var LogarithmicAxis;
172
172
  axisLength;
173
173
  interval = pick(filteredTickIntervalOption, log.minorAutoInterval, (realMax - realMin) *
174
174
  tickPixelIntervalOption / (totalPixelLength || 1));
175
- interval = normalizeTickInterval(interval, void 0, getMagnitude(interval));
175
+ interval = normalizeTickInterval(interval);
176
176
  positions = axis.getLinearTickPositions(interval, realMin, realMax).map(log.log2lin);
177
177
  if (!minor) {
178
178
  log.minorAutoInterval = interval / 5;
@@ -407,9 +407,10 @@ var OrdinalAxis;
407
407
  // how many ordinal units did we move?
408
408
  movedUnits = (mouseDownX - chartX) / pointPixelWidth,
409
409
  // get index of all the chart's points
410
- extendedAxis = {
410
+ extendedOrdinalPositions = xAxis.ordinal.getExtendedPositions(), extendedAxis = {
411
411
  ordinal: {
412
- positions: xAxis.ordinal.getExtendedPositions()
412
+ positions: extendedOrdinalPositions,
413
+ extendedOrdinalPositions: extendedOrdinalPositions
413
414
  }
414
415
  }, index2val_1 = xAxis.index2val, val2lin_1 = xAxis.val2lin;
415
416
  var trimmedRange = void 0, ordinalPositions = void 0, searchAxisLeft = void 0, searchAxisRight = void 0;
@@ -145,7 +145,7 @@ var PlotLineOrBand = /** @class */ (function () {
145
145
  }
146
146
  else if (svgElem) {
147
147
  if (path) {
148
- svgElem.show(true);
148
+ svgElem.show();
149
149
  svgElem.animate({ d: path });
150
150
  }
151
151
  else if (svgElem.d) {
@@ -185,7 +185,6 @@ var StackingAxis;
185
185
  renderer
186
186
  .g('stack-labels')
187
187
  .attr({
188
- visibility: 'visible',
189
188
  zIndex: 6,
190
189
  opacity: 0
191
190
  })
@@ -647,11 +647,11 @@ var Tick = /** @class */ (function () {
647
647
  // Set the new position, and show or hide
648
648
  if (show && isNumber(xy.y)) {
649
649
  xy.opacity = opacity;
650
- label[tick.isNewLabel ? 'attr' : 'animate'](xy);
650
+ label[tick.isNewLabel ? 'attr' : 'animate'](xy).show(true);
651
651
  tick.isNewLabel = false;
652
652
  }
653
653
  else {
654
- label.attr('y', -9999); // #1338
654
+ label.hide(); // #1338, #15863
655
655
  tick.isNewLabel = true;
656
656
  }
657
657
  }
@@ -258,6 +258,17 @@ var TreeGridTick;
258
258
  brokenAxis.setBreaks(breaks, pick(redraw, true));
259
259
  }
260
260
  };
261
+ /**
262
+ * Destroy remaining labelIcon if exist.
263
+ *
264
+ * @private
265
+ * @function Highcharts.Tick#destroy
266
+ */
267
+ Additions.prototype.destroy = function () {
268
+ if (this.labelIcon) {
269
+ this.labelIcon.destroy();
270
+ }
271
+ };
261
272
  /**
262
273
  * Expand the grid cell. Used when axis is of type treegrid.
263
274
  *
@@ -29,7 +29,7 @@ import SVGRenderer from '../Renderer/SVG/SVGRenderer.js';
29
29
  import Time from '../Time.js';
30
30
  import U from '../Utilities.js';
31
31
  import AST from '../Renderer/HTML/AST.js';
32
- var addEvent = U.addEvent, attr = U.attr, cleanRecursively = U.cleanRecursively, createElement = U.createElement, css = U.css, defined = U.defined, discardElement = U.discardElement, erase = U.erase, error = U.error, extend = U.extend, find = U.find, fireEvent = U.fireEvent, getStyle = U.getStyle, isArray = U.isArray, isFunction = U.isFunction, isNumber = U.isNumber, isObject = U.isObject, isString = U.isString, merge = U.merge, objectEach = U.objectEach, pick = U.pick, pInt = U.pInt, relativeLength = U.relativeLength, removeEvent = U.removeEvent, splat = U.splat, syncTimeout = U.syncTimeout, uniqueKey = U.uniqueKey;
32
+ var addEvent = U.addEvent, attr = U.attr, cleanRecursively = U.cleanRecursively, createElement = U.createElement, css = U.css, defined = U.defined, discardElement = U.discardElement, erase = U.erase, error = U.error, extend = U.extend, find = U.find, fireEvent = U.fireEvent, getStyle = U.getStyle, isArray = U.isArray, isNumber = U.isNumber, isObject = U.isObject, isString = U.isString, merge = U.merge, objectEach = U.objectEach, pick = U.pick, pInt = U.pInt, relativeLength = U.relativeLength, removeEvent = U.removeEvent, splat = U.splat, syncTimeout = U.syncTimeout, uniqueKey = U.uniqueKey;
33
33
  /* *
34
34
  *
35
35
  * Class
@@ -1943,9 +1943,27 @@ var Chart = /** @class */ (function () {
1943
1943
  if (defined(this.index)) {
1944
1944
  this.setReflow(this.options.chart.reflow);
1945
1945
  }
1946
+ this.warnIfA11yModuleNotLoaded();
1946
1947
  // Don't run again
1947
1948
  this.hasLoaded = true;
1948
1949
  };
1950
+ /**
1951
+ * Emit console warning if the a11y module is not loaded.
1952
+ */
1953
+ Chart.prototype.warnIfA11yModuleNotLoaded = function () {
1954
+ var _this = this;
1955
+ setTimeout(function () {
1956
+ var opts = _this && _this.options;
1957
+ if (opts && !_this.accessibility &&
1958
+ !(opts.accessibility && opts.accessibility.enabled === false)) {
1959
+ error('Highcharts warning: Consider including the ' +
1960
+ '"accessibility.js" module to make your chart more ' +
1961
+ 'usable for people with disabilities. Set the ' +
1962
+ '"accessibility.enabled" option to false to remove this ' +
1963
+ 'warning. See https://www.highcharts.com/docs/accessibility/accessibility-module.', false, _this);
1964
+ }
1965
+ }, 100);
1966
+ };
1949
1967
  /**
1950
1968
  * Add a series to the chart after render time. Note that this method should
1951
1969
  * never be used when adding data synchronously at chart render time, as it
@@ -2494,7 +2512,7 @@ var Chart = /** @class */ (function () {
2494
2512
  * @emits Highcharts.Chart#event:beforeShowResetZoom
2495
2513
  */
2496
2514
  Chart.prototype.showResetZoom = function () {
2497
- var chart = this, lang = defaultOptions.lang, btnOptions = chart.options.chart.resetZoomButton, theme = btnOptions.theme, states = theme.states, alignTo = (btnOptions.relativeTo === 'chart' ||
2515
+ var chart = this, lang = defaultOptions.lang, btnOptions = chart.options.chart.resetZoomButton, theme = btnOptions.theme, alignTo = (btnOptions.relativeTo === 'chart' ||
2498
2516
  btnOptions.relativeTo === 'spacingBox' ?
2499
2517
  null :
2500
2518
  'scrollablePlotBox');
@@ -2506,7 +2524,7 @@ var Chart = /** @class */ (function () {
2506
2524
  }
2507
2525
  fireEvent(this, 'beforeShowResetZoom', null, function () {
2508
2526
  chart.resetZoomButton = chart.renderer
2509
- .button(lang.resetZoom, null, null, zoomOut, theme, states && states.hover)
2527
+ .button(lang.resetZoom, null, null, zoomOut, theme)
2510
2528
  .attr({
2511
2529
  align: btnOptions.position.align,
2512
2530
  title: lang.resetZoomTitle
@@ -1494,17 +1494,7 @@ var Chart3D;
1494
1494
  */
1495
1495
  function onAfterGetContainer() {
1496
1496
  if (this.styledMode) {
1497
- this.renderer.definition({
1498
- tagName: 'style',
1499
- textContent: '.highcharts-3d-top{' +
1500
- 'filter: url(#highcharts-brighter)' +
1501
- '}\n' +
1502
- '.highcharts-3d-side{' +
1503
- 'filter: url(#highcharts-darker)' +
1504
- '}\n'
1505
- });
1506
- // Add add definitions used by brighter and darker faces of the
1507
- // cuboids.
1497
+ // Add definitions used by brighter and darker faces of the cuboids.
1508
1498
  [{
1509
1499
  name: 'darker',
1510
1500
  slope: 0.6