highcharts 9.3.3 → 10.0.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 (670) 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/Accessibility.js +1 -1
  8. package/es-modules/Accessibility/Components/LegendComponent.js +31 -23
  9. package/es-modules/Accessibility/Components/MenuComponent.js +4 -5
  10. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +2 -2
  11. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +7 -6
  12. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +1 -1
  13. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +0 -1
  14. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +3 -3
  15. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +61 -29
  16. package/es-modules/Accessibility/Components/ZoomComponent.js +13 -10
  17. package/es-modules/Accessibility/HighContrastMode.js +2 -2
  18. package/es-modules/Accessibility/KeyboardNavigation.js +113 -98
  19. package/es-modules/Accessibility/ProxyElement.js +14 -6
  20. package/es-modules/Accessibility/ProxyProvider.js +10 -2
  21. package/es-modules/Core/Axis/Axis.js +150 -46
  22. package/es-modules/Core/Axis/Color/ColorAxis.js +22 -5
  23. package/es-modules/Core/Axis/GridAxis.js +10 -9
  24. package/es-modules/Core/Axis/TreeGridTick.js +11 -0
  25. package/es-modules/Core/Chart/Chart3D.js +1 -11
  26. package/es-modules/Core/Chart/ChartDefaults.js +32 -11
  27. package/es-modules/Core/Chart/MapChart.js +1 -6
  28. package/es-modules/Core/DefaultOptions.js +2 -0
  29. package/es-modules/Core/Geometry/PolygonClip.js +84 -0
  30. package/es-modules/Core/Globals.js +4 -18
  31. package/es-modules/Core/HttpUtilities.js +13 -8
  32. package/es-modules/Core/Legend/Legend.js +10 -8
  33. package/es-modules/Core/Navigator.js +9 -6
  34. package/es-modules/Core/Pointer.js +15 -11
  35. package/es-modules/Core/Renderer/HTML/AST.js +62 -5
  36. package/es-modules/Core/Renderer/SVG/SVGElement.js +25 -41
  37. package/es-modules/Core/Renderer/SVG/SVGElement3D.js +17 -5
  38. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +17 -17
  39. package/es-modules/Core/Renderer/SVG/TextBuilder.js +12 -10
  40. package/es-modules/Core/Series/DataLabel.js +11 -3
  41. package/es-modules/Core/Series/Point.js +2 -2
  42. package/es-modules/Core/Series/Series.js +33 -15
  43. package/es-modules/Core/Series/SeriesDefaults.js +4 -1
  44. package/es-modules/Core/Tooltip.js +14 -31
  45. package/es-modules/Core/Utilities.js +28 -28
  46. package/es-modules/Extensions/Annotations/Annotations.js +7 -0
  47. package/es-modules/Extensions/Annotations/MockPoint.js +1 -1
  48. package/es-modules/Extensions/Annotations/NavigationBindings.js +1 -1
  49. package/es-modules/Extensions/Annotations/Popup.js +1 -1
  50. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +5 -3
  51. package/es-modules/Extensions/Boost/BoostInit.js +6 -1
  52. package/es-modules/Extensions/Boost/BoostOptions.js +26 -0
  53. package/es-modules/Extensions/Boost/Boostables.js +1 -0
  54. package/es-modules/Extensions/Boost/WGLRenderer.js +48 -37
  55. package/es-modules/Extensions/Boost/WGLShader.js +4 -3
  56. package/es-modules/Extensions/Breadcrumbs.js +874 -0
  57. package/es-modules/Extensions/Data.js +26 -14
  58. package/es-modules/Extensions/DataGrouping.js +5 -2
  59. package/es-modules/Extensions/DraggablePoints.js +9 -7
  60. package/es-modules/Extensions/Drilldown.js +147 -94
  61. package/es-modules/Extensions/Exporting/Exporting.js +9 -7
  62. package/es-modules/Extensions/Exporting/ExportingDefaults.js +49 -1
  63. package/es-modules/Extensions/GeoJSON.js +149 -124
  64. package/es-modules/Extensions/MarkerClusters.js +34 -20
  65. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +110 -22
  66. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  67. package/es-modules/Extensions/Oldie/Oldie.js +1 -1
  68. package/es-modules/Extensions/ScrollablePlotArea.js +5 -1
  69. package/es-modules/Extensions/Stacking.js +3 -2
  70. package/es-modules/Extensions/Themes/HighContrastDark.js +10 -10
  71. package/es-modules/Extensions/Themes/HighContrastLight.js +10 -10
  72. package/es-modules/Maps/MapNavigation.js +49 -8
  73. package/es-modules/Maps/MapPointer.js +16 -0
  74. package/es-modules/Maps/MapUtilities.js +56 -0
  75. package/es-modules/Maps/MapView.js +606 -135
  76. package/es-modules/Maps/MapViewInsetsOptionsDefault.js +148 -0
  77. package/es-modules/Maps/MapViewOptionsDefault.js +58 -20
  78. package/es-modules/Maps/Projection.js +169 -77
  79. package/es-modules/Maps/Projections/EqualEarth.js +15 -6
  80. package/es-modules/Maps/Projections/LambertConformalConic.js +27 -19
  81. package/es-modules/Maps/Projections/Miller.js +23 -10
  82. package/es-modules/Maps/Projections/Orthographic.js +21 -10
  83. package/es-modules/Maps/Projections/WebMercator.js +25 -13
  84. package/es-modules/Series/ArcDiagram/ArcDiagramPoint.js +77 -0
  85. package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +581 -0
  86. package/es-modules/Series/Column/ColumnSeries.js +4 -3
  87. package/es-modules/Series/DataModifyComposition.js +1 -0
  88. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +2 -2
  89. package/es-modules/Series/DrawPointComposition.js +7 -4
  90. package/es-modules/Series/Lollipop/LollipopSeries.js +1 -1
  91. package/es-modules/Series/Map/MapPoint.js +24 -1
  92. package/es-modules/Series/Map/MapSeries.js +196 -169
  93. package/es-modules/Series/MapBubble/MapBubblePoint.js +16 -24
  94. package/es-modules/Series/MapBubble/MapBubbleSeries.js +11 -0
  95. package/es-modules/Series/MapPoint/MapPointPoint.js +2 -8
  96. package/es-modules/Series/MapPoint/MapPointSeries.js +36 -14
  97. package/es-modules/Series/NodesComposition.js +60 -13
  98. package/es-modules/Series/OHLC/OHLCSeries.js +7 -0
  99. package/es-modules/Series/Organization/OrganizationPoint.js +68 -2
  100. package/es-modules/Series/Organization/OrganizationSeries.js +79 -25
  101. package/es-modules/Series/Pie/PiePoint.js +12 -5
  102. package/es-modules/Series/Pie3D/Pie3DSeries.js +19 -0
  103. package/es-modules/Series/Sankey/SankeyColumnComposition.js +193 -0
  104. package/es-modules/Series/Sankey/SankeyPoint.js +37 -1
  105. package/es-modules/Series/Sankey/SankeySeries.js +10 -127
  106. package/es-modules/Series/Scatter/ScatterSeries.js +1 -1
  107. package/es-modules/Series/Sunburst/SunburstSeries.js +13 -2
  108. package/es-modules/Series/Treemap/TreemapSeries.js +88 -80
  109. package/es-modules/Series/Waterfall/WaterfallSeries.js +2 -0
  110. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +9 -2
  111. package/es-modules/Stock/StockToolsGui.js +1 -1
  112. package/es-modules/masters/highcharts-3d.src.js +1 -1
  113. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  114. package/es-modules/masters/highcharts-more.src.js +1 -1
  115. package/es-modules/masters/highcharts.src.js +1 -1
  116. package/es-modules/masters/highmaps.src.js +1 -1
  117. package/es-modules/masters/highstock.src.js +1 -1
  118. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  119. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  120. package/es-modules/masters/indicators/ao.src.js +1 -1
  121. package/es-modules/masters/indicators/apo.src.js +1 -1
  122. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  123. package/es-modules/masters/indicators/aroon.src.js +1 -1
  124. package/es-modules/masters/indicators/atr.src.js +1 -1
  125. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  126. package/es-modules/masters/indicators/cci.src.js +1 -1
  127. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  128. package/es-modules/masters/indicators/cmf.src.js +1 -1
  129. package/es-modules/masters/indicators/cmo.src.js +1 -1
  130. package/es-modules/masters/indicators/dema.src.js +1 -1
  131. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  132. package/es-modules/masters/indicators/dmi.src.js +1 -1
  133. package/es-modules/masters/indicators/dpo.src.js +1 -1
  134. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  135. package/es-modules/masters/indicators/indicators-all.src.js +1 -1
  136. package/es-modules/masters/indicators/indicators.src.js +1 -1
  137. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  138. package/es-modules/masters/indicators/klinger.src.js +1 -1
  139. package/es-modules/masters/indicators/macd.src.js +1 -1
  140. package/es-modules/masters/indicators/mfi.src.js +1 -1
  141. package/es-modules/masters/indicators/momentum.src.js +1 -1
  142. package/es-modules/masters/indicators/natr.src.js +1 -1
  143. package/es-modules/masters/indicators/obv.src.js +1 -1
  144. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  145. package/es-modules/masters/indicators/ppo.src.js +1 -1
  146. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  147. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  148. package/es-modules/masters/indicators/psar.src.js +1 -1
  149. package/es-modules/masters/indicators/regressions.src.js +1 -1
  150. package/es-modules/masters/indicators/roc.src.js +1 -1
  151. package/es-modules/masters/indicators/rsi.src.js +1 -1
  152. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  153. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  154. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  155. package/es-modules/masters/indicators/tema.src.js +1 -1
  156. package/es-modules/masters/indicators/trendline.src.js +1 -1
  157. package/es-modules/masters/indicators/trix.src.js +1 -1
  158. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  159. package/es-modules/masters/indicators/vwap.src.js +1 -1
  160. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  161. package/es-modules/masters/indicators/wma.src.js +1 -1
  162. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  163. package/es-modules/masters/modules/accessibility.src.js +1 -1
  164. package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
  165. package/es-modules/masters/modules/annotations.src.js +1 -1
  166. package/es-modules/masters/modules/arc-diagram.src.js +14 -0
  167. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  168. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  169. package/es-modules/masters/modules/boost.src.js +1 -1
  170. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  171. package/es-modules/masters/modules/bullet.src.js +1 -1
  172. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  173. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  174. package/es-modules/masters/modules/cylinder.src.js +1 -1
  175. package/es-modules/masters/modules/data.src.js +1 -1
  176. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  177. package/es-modules/masters/modules/debugger.src.js +1 -1
  178. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  179. package/es-modules/masters/modules/dotplot.src.js +1 -1
  180. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  181. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  182. package/es-modules/masters/modules/drilldown.src.js +2 -1
  183. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  184. package/es-modules/masters/modules/export-data.src.js +1 -1
  185. package/es-modules/masters/modules/exporting.src.js +1 -1
  186. package/es-modules/masters/modules/full-screen.src.js +1 -1
  187. package/es-modules/masters/modules/funnel.src.js +1 -1
  188. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  189. package/es-modules/masters/modules/gantt.src.js +1 -1
  190. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  191. package/es-modules/masters/modules/heatmap.src.js +1 -1
  192. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  193. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  194. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  195. package/es-modules/masters/modules/item-series.src.js +1 -1
  196. package/es-modules/masters/modules/lollipop.src.js +1 -1
  197. package/es-modules/masters/modules/map.src.js +5 -1
  198. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  199. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  200. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  201. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  202. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  203. package/es-modules/masters/modules/oldie.src.js +1 -1
  204. package/es-modules/masters/modules/organization.src.js +1 -1
  205. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  206. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  207. package/es-modules/masters/modules/pareto.src.js +1 -1
  208. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  209. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  210. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  211. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  212. package/es-modules/masters/modules/sankey.src.js +1 -1
  213. package/es-modules/masters/modules/series-label.src.js +1 -1
  214. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  215. package/es-modules/masters/modules/sonification.src.js +1 -1
  216. package/es-modules/masters/modules/static-scale.src.js +1 -1
  217. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  218. package/es-modules/masters/modules/stock.src.js +1 -1
  219. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  220. package/es-modules/masters/modules/sunburst.src.js +1 -1
  221. package/es-modules/masters/modules/tilemap.src.js +1 -1
  222. package/es-modules/masters/modules/timeline.src.js +1 -1
  223. package/es-modules/masters/modules/treegrid.src.js +1 -1
  224. package/es-modules/masters/modules/treemap.src.js +5 -1
  225. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  226. package/es-modules/masters/modules/variwide.src.js +1 -1
  227. package/es-modules/masters/modules/vector.src.js +1 -1
  228. package/es-modules/masters/modules/venn.src.js +1 -1
  229. package/es-modules/masters/modules/windbarb.src.js +1 -1
  230. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  231. package/es-modules/masters/modules/xrange.src.js +1 -1
  232. package/es-modules/masters/themes/avocado.src.js +1 -1
  233. package/es-modules/masters/themes/brand-dark.src.js +1 -1
  234. package/es-modules/masters/themes/brand-light.src.js +1 -1
  235. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  236. package/es-modules/masters/themes/dark-green.src.js +1 -1
  237. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  238. package/es-modules/masters/themes/gray.src.js +1 -1
  239. package/es-modules/masters/themes/grid-light.src.js +1 -1
  240. package/es-modules/masters/themes/grid.src.js +1 -1
  241. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  242. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  243. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  244. package/es-modules/masters/themes/skies.src.js +1 -1
  245. package/es-modules/masters/themes/sunset.src.js +1 -1
  246. package/highcharts-3d.js +99 -98
  247. package/highcharts-3d.js.map +1 -1
  248. package/highcharts-3d.src.js +50 -20
  249. package/highcharts-gantt.js +800 -795
  250. package/highcharts-gantt.js.map +1 -1
  251. package/highcharts-gantt.src.js +528 -290
  252. package/highcharts-more.js +195 -194
  253. package/highcharts-more.js.map +1 -1
  254. package/highcharts-more.src.js +13 -2
  255. package/highcharts.d.ts +2162 -504
  256. package/highcharts.js +586 -581
  257. package/highcharts.js.map +1 -1
  258. package/highcharts.src.d.ts +2162 -504
  259. package/highcharts.src.js +494 -272
  260. package/highmaps.js +753 -723
  261. package/highmaps.js.map +1 -1
  262. package/highmaps.src.js +3603 -2117
  263. package/highstock.js +790 -786
  264. package/highstock.js.map +1 -1
  265. package/highstock.src.js +519 -283
  266. package/indicators/acceleration-bands.js +12 -11
  267. package/indicators/acceleration-bands.js.map +1 -1
  268. package/indicators/acceleration-bands.src.js +11 -2
  269. package/indicators/accumulation-distribution.js +5 -5
  270. package/indicators/accumulation-distribution.js.map +1 -1
  271. package/indicators/accumulation-distribution.src.js +11 -2
  272. package/indicators/ao.js +6 -6
  273. package/indicators/ao.js.map +1 -1
  274. package/indicators/ao.src.js +11 -2
  275. package/indicators/apo.js +5 -5
  276. package/indicators/apo.js.map +1 -1
  277. package/indicators/apo.src.js +11 -2
  278. package/indicators/aroon-oscillator.js +10 -10
  279. package/indicators/aroon-oscillator.js.map +1 -1
  280. package/indicators/aroon-oscillator.src.js +11 -2
  281. package/indicators/aroon.js +11 -11
  282. package/indicators/aroon.js.map +1 -1
  283. package/indicators/aroon.src.js +11 -2
  284. package/indicators/atr.js +5 -5
  285. package/indicators/atr.js.map +1 -1
  286. package/indicators/atr.src.js +11 -2
  287. package/indicators/bollinger-bands.js +12 -12
  288. package/indicators/bollinger-bands.js.map +1 -1
  289. package/indicators/bollinger-bands.src.js +11 -2
  290. package/indicators/cci.js +5 -5
  291. package/indicators/cci.js.map +1 -1
  292. package/indicators/cci.src.js +11 -2
  293. package/indicators/chaikin.js +8 -8
  294. package/indicators/chaikin.js.map +1 -1
  295. package/indicators/chaikin.src.js +11 -2
  296. package/indicators/cmf.js +6 -6
  297. package/indicators/cmf.js.map +1 -1
  298. package/indicators/cmf.src.js +11 -2
  299. package/indicators/cmo.js +5 -5
  300. package/indicators/cmo.js.map +1 -1
  301. package/indicators/cmo.src.js +11 -2
  302. package/indicators/dema.js +5 -5
  303. package/indicators/dema.js.map +1 -1
  304. package/indicators/dema.src.js +11 -2
  305. package/indicators/disparity-index.js +6 -6
  306. package/indicators/disparity-index.js.map +1 -1
  307. package/indicators/disparity-index.src.js +11 -2
  308. package/indicators/dmi.js +12 -12
  309. package/indicators/dmi.js.map +1 -1
  310. package/indicators/dmi.src.js +11 -2
  311. package/indicators/dpo.js +5 -5
  312. package/indicators/dpo.js.map +1 -1
  313. package/indicators/dpo.src.js +11 -2
  314. package/indicators/ema.js +2 -1
  315. package/indicators/ema.js.map +1 -1
  316. package/indicators/ema.src.js +10 -1
  317. package/indicators/ichimoku-kinko-hyo.js +16 -16
  318. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  319. package/indicators/ichimoku-kinko-hyo.src.js +11 -2
  320. package/indicators/indicators-all.js +195 -194
  321. package/indicators/indicators-all.js.map +1 -1
  322. package/indicators/indicators-all.src.js +21 -5
  323. package/indicators/indicators.js +13 -12
  324. package/indicators/indicators.js.map +1 -1
  325. package/indicators/indicators.src.js +21 -5
  326. package/indicators/keltner-channels.js +12 -11
  327. package/indicators/keltner-channels.js.map +1 -1
  328. package/indicators/keltner-channels.src.js +11 -2
  329. package/indicators/klinger.js +13 -13
  330. package/indicators/klinger.js.map +1 -1
  331. package/indicators/klinger.src.js +11 -2
  332. package/indicators/macd.js +12 -11
  333. package/indicators/macd.js.map +1 -1
  334. package/indicators/macd.src.js +11 -2
  335. package/indicators/mfi.js +6 -6
  336. package/indicators/mfi.js.map +1 -1
  337. package/indicators/mfi.src.js +11 -2
  338. package/indicators/momentum.js +5 -5
  339. package/indicators/momentum.js.map +1 -1
  340. package/indicators/momentum.src.js +11 -2
  341. package/indicators/natr.js +5 -4
  342. package/indicators/natr.js.map +1 -1
  343. package/indicators/natr.src.js +11 -2
  344. package/indicators/obv.js +5 -5
  345. package/indicators/obv.js.map +1 -1
  346. package/indicators/obv.src.js +11 -2
  347. package/indicators/pivot-points.js +11 -11
  348. package/indicators/pivot-points.js.map +1 -1
  349. package/indicators/pivot-points.src.js +11 -2
  350. package/indicators/ppo.js +5 -5
  351. package/indicators/ppo.js.map +1 -1
  352. package/indicators/ppo.src.js +11 -2
  353. package/indicators/price-channel.js +11 -11
  354. package/indicators/price-channel.js.map +1 -1
  355. package/indicators/price-channel.src.js +11 -2
  356. package/indicators/price-envelopes.js +8 -8
  357. package/indicators/price-envelopes.js.map +1 -1
  358. package/indicators/price-envelopes.src.js +11 -2
  359. package/indicators/psar.js +7 -6
  360. package/indicators/psar.js.map +1 -1
  361. package/indicators/psar.src.js +11 -2
  362. package/indicators/regressions.js +12 -12
  363. package/indicators/regressions.js.map +1 -1
  364. package/indicators/regressions.src.js +11 -2
  365. package/indicators/roc.js +5 -5
  366. package/indicators/roc.js.map +1 -1
  367. package/indicators/roc.src.js +11 -2
  368. package/indicators/rsi.js +6 -5
  369. package/indicators/rsi.js.map +1 -1
  370. package/indicators/rsi.src.js +11 -2
  371. package/indicators/slow-stochastic.js +5 -5
  372. package/indicators/slow-stochastic.js.map +1 -1
  373. package/indicators/slow-stochastic.src.js +11 -2
  374. package/indicators/stochastic.js +12 -12
  375. package/indicators/stochastic.js.map +1 -1
  376. package/indicators/stochastic.src.js +11 -2
  377. package/indicators/supertrend.js +10 -10
  378. package/indicators/supertrend.js.map +1 -1
  379. package/indicators/supertrend.src.js +11 -2
  380. package/indicators/tema.js +6 -6
  381. package/indicators/tema.js.map +1 -1
  382. package/indicators/tema.src.js +11 -2
  383. package/indicators/trendline.js +5 -5
  384. package/indicators/trendline.js.map +1 -1
  385. package/indicators/trendline.src.js +11 -2
  386. package/indicators/trix.js +4 -4
  387. package/indicators/trix.js.map +1 -1
  388. package/indicators/trix.src.js +11 -2
  389. package/indicators/volume-by-price.js +17 -17
  390. package/indicators/volume-by-price.js.map +1 -1
  391. package/indicators/volume-by-price.src.js +11 -2
  392. package/indicators/vwap.js +5 -5
  393. package/indicators/vwap.js.map +1 -1
  394. package/indicators/vwap.src.js +11 -2
  395. package/indicators/williams-r.js +6 -5
  396. package/indicators/williams-r.js.map +1 -1
  397. package/indicators/williams-r.src.js +11 -2
  398. package/indicators/wma.js +5 -5
  399. package/indicators/wma.js.map +1 -1
  400. package/indicators/wma.src.js +11 -2
  401. package/indicators/zigzag.js +6 -6
  402. package/indicators/zigzag.js.map +1 -1
  403. package/indicators/zigzag.src.js +11 -2
  404. package/lib/jspdf.js +299 -184
  405. package/lib/jspdf.src.js +25266 -18067
  406. package/lib/svg2pdf.js +35 -31
  407. package/lib/svg2pdf.src.js +5721 -4179
  408. package/modules/accessibility.js +231 -229
  409. package/modules/accessibility.js.map +1 -1
  410. package/modules/accessibility.src.js +278 -197
  411. package/modules/annotations-advanced.js +144 -144
  412. package/modules/annotations-advanced.js.map +1 -1
  413. package/modules/annotations-advanced.src.js +26 -8
  414. package/modules/annotations.js +79 -79
  415. package/modules/annotations.js.map +1 -1
  416. package/modules/annotations.src.js +21 -5
  417. package/modules/arc-diagram.js +25 -0
  418. package/modules/arc-diagram.js.map +1 -0
  419. package/modules/arc-diagram.src.js +770 -0
  420. package/modules/arrow-symbols.js +4 -3
  421. package/modules/arrow-symbols.js.map +1 -1
  422. package/modules/arrow-symbols.src.js +11 -2
  423. package/modules/boost-canvas.js +15 -15
  424. package/modules/boost-canvas.js.map +1 -1
  425. package/modules/boost-canvas.src.js +11 -2
  426. package/modules/boost.js +80 -79
  427. package/modules/boost.js.map +1 -1
  428. package/modules/boost.src.js +71 -43
  429. package/modules/broken-axis.js +13 -13
  430. package/modules/broken-axis.js.map +1 -1
  431. package/modules/broken-axis.src.js +11 -2
  432. package/modules/bullet.js +9 -9
  433. package/modules/bullet.js.map +1 -1
  434. package/modules/bullet.src.js +11 -2
  435. package/modules/coloraxis.js +24 -24
  436. package/modules/coloraxis.js.map +1 -1
  437. package/modules/coloraxis.src.js +33 -7
  438. package/modules/current-date-indicator.js +5 -4
  439. package/modules/current-date-indicator.js.map +1 -1
  440. package/modules/current-date-indicator.src.js +11 -2
  441. package/modules/cylinder.js +11 -11
  442. package/modules/cylinder.js.map +1 -1
  443. package/modules/cylinder.src.js +11 -2
  444. package/modules/data.js +34 -33
  445. package/modules/data.js.map +1 -1
  446. package/modules/data.src.js +59 -32
  447. package/modules/datagrouping.js +21 -20
  448. package/modules/datagrouping.js.map +1 -1
  449. package/modules/datagrouping.src.js +16 -4
  450. package/modules/debugger.js +6 -6
  451. package/modules/debugger.js.map +1 -1
  452. package/modules/debugger.src.js +11 -2
  453. package/modules/dependency-wheel.js +12 -11
  454. package/modules/dependency-wheel.js.map +1 -1
  455. package/modules/dependency-wheel.src.js +14 -5
  456. package/modules/dotplot.js +6 -6
  457. package/modules/dotplot.js.map +1 -1
  458. package/modules/dotplot.src.js +11 -2
  459. package/modules/drag-panes.js +10 -10
  460. package/modules/drag-panes.js.map +1 -1
  461. package/modules/drag-panes.src.js +11 -2
  462. package/modules/draggable-points.js +35 -34
  463. package/modules/draggable-points.js.map +1 -1
  464. package/modules/draggable-points.src.js +20 -9
  465. package/modules/drilldown.d.ts +19 -0
  466. package/modules/drilldown.js +37 -25
  467. package/modules/drilldown.js.map +1 -1
  468. package/modules/drilldown.src.d.ts +19 -0
  469. package/modules/drilldown.src.js +1090 -105
  470. package/modules/dumbbell.js +17 -17
  471. package/modules/dumbbell.js.map +1 -1
  472. package/modules/dumbbell.src.js +11 -2
  473. package/modules/export-data.js +21 -20
  474. package/modules/export-data.js.map +1 -1
  475. package/modules/export-data.src.js +11 -2
  476. package/modules/exporting.js +39 -39
  477. package/modules/exporting.js.map +1 -1
  478. package/modules/exporting.src.js +82 -18
  479. package/modules/full-screen.js +8 -7
  480. package/modules/full-screen.js.map +1 -1
  481. package/modules/full-screen.src.js +11 -2
  482. package/modules/funnel.js +12 -12
  483. package/modules/funnel.js.map +1 -1
  484. package/modules/funnel.src.js +11 -2
  485. package/modules/funnel3d.js +21 -21
  486. package/modules/funnel3d.js.map +1 -1
  487. package/modules/funnel3d.src.js +11 -2
  488. package/modules/gantt.js +217 -217
  489. package/modules/gantt.js.map +1 -1
  490. package/modules/gantt.src.js +45 -20
  491. package/modules/grid-axis.js +23 -23
  492. package/modules/grid-axis.js.map +1 -1
  493. package/modules/grid-axis.src.js +22 -11
  494. package/modules/heatmap.js +40 -39
  495. package/modules/heatmap.js.map +1 -1
  496. package/modules/heatmap.src.js +33 -7
  497. package/modules/heikinashi.js +8 -8
  498. package/modules/heikinashi.js.map +1 -1
  499. package/modules/heikinashi.src.js +11 -2
  500. package/modules/histogram-bellcurve.js +13 -13
  501. package/modules/histogram-bellcurve.js.map +1 -1
  502. package/modules/histogram-bellcurve.src.js +11 -2
  503. package/modules/hollowcandlestick.js +9 -9
  504. package/modules/hollowcandlestick.js.map +1 -1
  505. package/modules/hollowcandlestick.src.js +11 -2
  506. package/modules/item-series.js +12 -12
  507. package/modules/item-series.js.map +1 -1
  508. package/modules/item-series.src.js +11 -2
  509. package/modules/lollipop.js +7 -7
  510. package/modules/lollipop.js.map +1 -1
  511. package/modules/lollipop.src.js +12 -3
  512. package/modules/map.d.ts +80 -43
  513. package/modules/map.js +169 -144
  514. package/modules/map.js.map +1 -1
  515. package/modules/map.src.d.ts +80 -43
  516. package/modules/map.src.js +7960 -6687
  517. package/modules/marker-clusters.js +36 -36
  518. package/modules/marker-clusters.js.map +1 -1
  519. package/modules/marker-clusters.src.js +47 -23
  520. package/modules/networkgraph.d.ts +5 -0
  521. package/modules/networkgraph.js +49 -48
  522. package/modules/networkgraph.js.map +1 -1
  523. package/modules/networkgraph.src.d.ts +5 -0
  524. package/modules/networkgraph.src.js +77 -15
  525. package/modules/no-data-to-display.js +5 -5
  526. package/modules/no-data-to-display.js.map +1 -1
  527. package/modules/no-data-to-display.src.js +11 -2
  528. package/modules/offline-exporting.js +20 -18
  529. package/modules/offline-exporting.js.map +1 -1
  530. package/modules/offline-exporting.src.js +126 -25
  531. package/modules/oldie-polyfills.js +7 -7
  532. package/modules/oldie-polyfills.js.map +1 -1
  533. package/modules/oldie-polyfills.src.js +11 -2
  534. package/modules/oldie.js +30 -30
  535. package/modules/oldie.js.map +1 -1
  536. package/modules/oldie.src.js +12 -3
  537. package/modules/organization.js +16 -14
  538. package/modules/organization.js.map +1 -1
  539. package/modules/organization.src.js +166 -32
  540. package/modules/overlapping-datalabels.js +3 -2
  541. package/modules/overlapping-datalabels.js.map +1 -1
  542. package/modules/overlapping-datalabels.src.js +11 -2
  543. package/modules/parallel-coordinates.js +11 -11
  544. package/modules/parallel-coordinates.js.map +1 -1
  545. package/modules/parallel-coordinates.src.js +11 -2
  546. package/modules/pareto.js +7 -7
  547. package/modules/pareto.js.map +1 -1
  548. package/modules/pareto.src.js +11 -2
  549. package/modules/pathfinder.js +31 -31
  550. package/modules/pathfinder.js.map +1 -1
  551. package/modules/pathfinder.src.js +11 -2
  552. package/modules/pattern-fill.js +14 -14
  553. package/modules/pattern-fill.js.map +1 -1
  554. package/modules/pattern-fill.src.js +11 -2
  555. package/modules/price-indicator.js +5 -5
  556. package/modules/price-indicator.js.map +1 -1
  557. package/modules/price-indicator.src.js +11 -2
  558. package/modules/pyramid3d.js +4 -4
  559. package/modules/pyramid3d.js.map +1 -1
  560. package/modules/pyramid3d.src.js +11 -2
  561. package/modules/sankey.d.ts +5 -0
  562. package/modules/sankey.js +32 -29
  563. package/modules/sankey.js.map +1 -1
  564. package/modules/sankey.src.d.ts +5 -0
  565. package/modules/sankey.src.js +338 -156
  566. package/modules/series-label.js +18 -17
  567. package/modules/series-label.js.map +1 -1
  568. package/modules/series-label.src.js +11 -2
  569. package/modules/solid-gauge.js +10 -10
  570. package/modules/solid-gauge.js.map +1 -1
  571. package/modules/solid-gauge.src.js +11 -2
  572. package/modules/sonification.js +59 -59
  573. package/modules/sonification.js.map +1 -1
  574. package/modules/sonification.src.js +11 -2
  575. package/modules/static-scale.js +5 -4
  576. package/modules/static-scale.js.map +1 -1
  577. package/modules/static-scale.src.js +11 -2
  578. package/modules/stock-tools.js +78 -78
  579. package/modules/stock-tools.js.map +1 -1
  580. package/modules/stock-tools.src.js +21 -5
  581. package/modules/stock.js +162 -162
  582. package/modules/stock.js.map +1 -1
  583. package/modules/stock.src.js +36 -13
  584. package/modules/streamgraph.js +5 -4
  585. package/modules/streamgraph.js.map +1 -1
  586. package/modules/streamgraph.src.js +11 -2
  587. package/modules/sunburst.d.ts +3 -0
  588. package/modules/sunburst.js +73 -60
  589. package/modules/sunburst.js.map +1 -1
  590. package/modules/sunburst.src.d.ts +3 -0
  591. package/modules/sunburst.src.js +1049 -96
  592. package/modules/tilemap.js +17 -17
  593. package/modules/tilemap.js.map +1 -1
  594. package/modules/tilemap.src.js +11 -2
  595. package/modules/timeline.js +18 -18
  596. package/modules/timeline.js.map +1 -1
  597. package/modules/timeline.src.js +11 -2
  598. package/modules/treegrid.js +57 -56
  599. package/modules/treegrid.js.map +1 -1
  600. package/modules/treegrid.src.js +33 -11
  601. package/modules/treemap.d.ts +3 -0
  602. package/modules/treemap.js +53 -41
  603. package/modules/treemap.js.map +1 -1
  604. package/modules/treemap.src.d.ts +3 -0
  605. package/modules/treemap.src.js +1039 -95
  606. package/modules/variable-pie.js +9 -9
  607. package/modules/variable-pie.js.map +1 -1
  608. package/modules/variable-pie.src.js +11 -2
  609. package/modules/variwide.js +12 -12
  610. package/modules/variwide.js.map +1 -1
  611. package/modules/variwide.src.js +11 -2
  612. package/modules/vector.js +8 -7
  613. package/modules/vector.js.map +1 -1
  614. package/modules/vector.src.js +11 -2
  615. package/modules/venn.js +31 -31
  616. package/modules/venn.js.map +1 -1
  617. package/modules/venn.src.js +18 -6
  618. package/modules/windbarb.js +15 -15
  619. package/modules/windbarb.js.map +1 -1
  620. package/modules/windbarb.src.js +11 -2
  621. package/modules/wordcloud.js +23 -23
  622. package/modules/wordcloud.js.map +1 -1
  623. package/modules/wordcloud.src.js +18 -6
  624. package/modules/xrange.js +16 -16
  625. package/modules/xrange.js.map +1 -1
  626. package/modules/xrange.src.js +11 -2
  627. package/package.json +1 -1
  628. package/themes/avocado.js +4 -3
  629. package/themes/avocado.js.map +1 -1
  630. package/themes/avocado.src.js +11 -2
  631. package/themes/brand-dark.js +9 -8
  632. package/themes/brand-dark.js.map +1 -1
  633. package/themes/brand-dark.src.js +11 -2
  634. package/themes/brand-light.js +8 -8
  635. package/themes/brand-light.js.map +1 -1
  636. package/themes/brand-light.src.js +11 -2
  637. package/themes/dark-blue.js +9 -8
  638. package/themes/dark-blue.js.map +1 -1
  639. package/themes/dark-blue.src.js +11 -2
  640. package/themes/dark-green.js +9 -8
  641. package/themes/dark-green.js.map +1 -1
  642. package/themes/dark-green.src.js +11 -2
  643. package/themes/dark-unica.js +8 -7
  644. package/themes/dark-unica.js.map +1 -1
  645. package/themes/dark-unica.src.js +11 -2
  646. package/themes/gray.js +9 -8
  647. package/themes/gray.js.map +1 -1
  648. package/themes/gray.src.js +11 -2
  649. package/themes/grid-light.js +5 -4
  650. package/themes/grid-light.js.map +1 -1
  651. package/themes/grid-light.src.js +11 -2
  652. package/themes/grid.js +5 -5
  653. package/themes/grid.js.map +1 -1
  654. package/themes/grid.src.js +11 -2
  655. package/themes/high-contrast-dark.js +7 -7
  656. package/themes/high-contrast-dark.js.map +1 -1
  657. package/themes/high-contrast-dark.src.js +21 -12
  658. package/themes/high-contrast-light.js +3 -3
  659. package/themes/high-contrast-light.js.map +1 -1
  660. package/themes/high-contrast-light.src.js +21 -12
  661. package/themes/sand-signika.js +5 -5
  662. package/themes/sand-signika.js.map +1 -1
  663. package/themes/sand-signika.src.js +11 -2
  664. package/themes/skies.js +5 -5
  665. package/themes/skies.js.map +1 -1
  666. package/themes/skies.src.js +11 -2
  667. package/themes/sunset.js +3 -3
  668. package/themes/sunset.js.map +1 -1
  669. package/themes/sunset.src.js +11 -2
  670. package/es-modules/Maps/ProjectionDefinition.js +0 -9
@@ -63,21 +63,26 @@ function ajax(attr) {
63
63
  objectEach(options.headers, function (val, key) {
64
64
  r.setRequestHeader(key, val);
65
65
  });
66
+ if (options.responseType) {
67
+ r.responseType = options.responseType;
68
+ }
66
69
  // @todo lacking timeout handling
67
70
  r.onreadystatechange = function () {
68
71
  var res;
69
72
  if (r.readyState === 4) {
70
73
  if (r.status === 200) {
71
- res = r.responseText;
72
- if (options.dataType === 'json') {
73
- try {
74
- res = JSON.parse(res);
75
- }
76
- catch (e) {
77
- return handleError(r, e);
74
+ if (options.responseType !== 'blob') {
75
+ res = r.responseText;
76
+ if (options.dataType === 'json') {
77
+ try {
78
+ res = JSON.parse(res);
79
+ }
80
+ catch (e) {
81
+ return handleError(r, e);
82
+ }
78
83
  }
79
84
  }
80
- return options.success && options.success(res);
85
+ return options.success && options.success(res, r);
81
86
  }
82
87
  handleError(r, r.responseText);
83
88
  }
@@ -68,7 +68,7 @@ var Legend = /** @class */ (function () {
68
68
  this.maxItemWidth = 0;
69
69
  this.maxLegendWidth = 0;
70
70
  this.offsetWidth = 0;
71
- this.options = {};
71
+ this.options = void 0;
72
72
  this.padding = 0;
73
73
  this.pages = [];
74
74
  this.proximate = false;
@@ -378,7 +378,7 @@ var Legend = /** @class */ (function () {
378
378
  * @name Highcharts.Legend#title
379
379
  * @type {Highcharts.SVGElement}
380
380
  */
381
- this.title = this.chart.renderer.label(titleOptions.text, padding - 3, padding - 4, null, null, null, options.useHTML, null, 'legend-title')
381
+ this.title = this.chart.renderer.label(titleOptions.text, padding - 3, padding - 4, void 0, void 0, void 0, options.useHTML, void 0, 'legend-title')
382
382
  .attr({ zIndex: 1 });
383
383
  if (!this.chart.styledMode) {
384
384
  this.title.css(titleOptions.style);
@@ -704,8 +704,7 @@ var Legend = /** @class */ (function () {
704
704
  legend.lastItemY = 0;
705
705
  legend.widthOption = relativeLength(options.width, chart.spacingBox.width - padding);
706
706
  // Compute how wide the legend is allowed to be
707
- allowedWidth =
708
- chart.spacingBox.width - 2 * padding - options.x;
707
+ allowedWidth = chart.spacingBox.width - 2 * padding - options.x;
709
708
  if (['rm', 'lm'].indexOf(legend.getAlignment().substring(0, 2)) > -1) {
710
709
  allowedWidth /= 2;
711
710
  }
@@ -778,7 +777,6 @@ var Legend = /** @class */ (function () {
778
777
  r: options.borderRadius
779
778
  })
780
779
  .add(legendGroup);
781
- box.isNew = true;
782
780
  }
783
781
  // Presentational
784
782
  if (!chart.styledMode) {
@@ -791,13 +789,12 @@ var Legend = /** @class */ (function () {
791
789
  .shadow(options.shadow);
792
790
  }
793
791
  if (legendWidth > 0 && legendHeight > 0) {
794
- box[box.isNew ? 'attr' : 'animate'](box.crisp.call({}, {
792
+ box[box.placed ? 'animate' : 'attr'](box.crisp.call({}, {
795
793
  x: 0,
796
794
  y: 0,
797
795
  width: legendWidth,
798
796
  height: legendHeight
799
797
  }, box.strokeWidth()));
800
- box.isNew = false;
801
798
  }
802
799
  // hide the border if no items
803
800
  box[display ? 'show' : 'hide']();
@@ -839,6 +836,11 @@ var Legend = /** @class */ (function () {
839
836
  if (y !== alignTo.y) {
840
837
  alignTo = merge(alignTo, { y: y });
841
838
  }
839
+ if (!chart.hasRendered) {
840
+ // Avoid animation when adjusting alignment for responsiveness and
841
+ // colorAxis label layout
842
+ this.group.placed = false;
843
+ }
842
844
  this.group.align(merge(options, {
843
845
  width: this.legendWidth,
844
846
  height: this.legendHeight,
@@ -953,7 +955,7 @@ var Legend = /** @class */ (function () {
953
955
  });
954
956
  this.pager = renderer.text('', 15, 10)
955
957
  .addClass('highcharts-legend-navigation');
956
- if (!chart.styledMode) {
958
+ if (!chart.styledMode && navOptions.style) {
957
959
  this.pager.css(navOptions.style);
958
960
  }
959
961
  this.pager.add(nav);
@@ -747,19 +747,21 @@ var Navigator = /** @class */ (function () {
747
747
  maskInside,
748
748
  !maskInside
749
749
  ].forEach(function (hasMask, index) {
750
- navigator.shades[index] = renderer.rect()
750
+ var shade = renderer.rect()
751
751
  .addClass('highcharts-navigator-mask' +
752
752
  (index === 1 ? '-inside' : '-outside'))
753
753
  .add(navigatorGroup);
754
754
  if (!chart.styledMode) {
755
- navigator.shades[index]
756
- .attr({
755
+ shade.attr({
757
756
  fill: hasMask ?
758
757
  navigatorOptions.maskFill :
759
758
  'rgba(0,0,0,0)'
760
- })
761
- .css((index === 1) && mouseCursor);
759
+ });
760
+ if (index === 1) {
761
+ shade.css(mouseCursor);
762
+ }
762
763
  }
764
+ navigator.shades[index] = shade;
763
765
  });
764
766
  // Create the outline:
765
767
  navigator.outline = renderer.path()
@@ -1643,7 +1645,8 @@ var Navigator = /** @class */ (function () {
1643
1645
  Navigator.prototype.getBaseSeriesMin = function (currentSeriesMin) {
1644
1646
  return this.baseSeries.reduce(function (min, series) {
1645
1647
  // (#10193)
1646
- return Math.min(min, series.xData ? series.xData[0] : min);
1648
+ return Math.min(min, series.xData && series.xData.length ?
1649
+ series.xData[0] : min);
1647
1650
  }, currentSeriesMin);
1648
1651
  };
1649
1652
  /**
@@ -600,9 +600,9 @@ var Pointer = /** @class */ (function () {
600
600
  * name.
601
601
  */
602
602
  Pointer.prototype.inClass = function (element, className) {
603
- var elemClassName;
604
- while (element) {
605
- elemClassName = attr(element, 'class');
603
+ var elem = element, elemClassName;
604
+ while (elem) {
605
+ elemClassName = attr(elem, 'class');
606
606
  if (elemClassName) {
607
607
  if (elemClassName.indexOf(className) !== -1) {
608
608
  return true;
@@ -611,7 +611,7 @@ var Pointer = /** @class */ (function () {
611
611
  return false;
612
612
  }
613
613
  }
614
- element = element.parentNode;
614
+ elem = elem.parentElement;
615
615
  }
616
616
  };
617
617
  /**
@@ -652,6 +652,9 @@ var Pointer = /** @class */ (function () {
652
652
  * properties `chartX` and `chartY` in order to work on the internal
653
653
  * coordinate system.
654
654
  *
655
+ * On map charts, the properties `lon` and `lat` are added to the event
656
+ * object given that the chart has projection information.
657
+ *
655
658
  * @function Highcharts.Pointer#normalize
656
659
  *
657
660
  * @param {global.MouseEvent|global.PointerEvent|global.TouchEvent} e
@@ -1199,11 +1202,12 @@ var Pointer = /** @class */ (function () {
1199
1202
  * The mouseOver event should be triggered when hoverPoint
1200
1203
  * is correct.
1201
1204
  */
1202
- hoverPoint.firePointEvent('mouseOver');
1203
- // Draw tooltip if necessary
1204
- if (tooltip) {
1205
- tooltip.refresh(useSharedTooltip ? points : hoverPoint, e);
1206
- }
1205
+ hoverPoint.firePointEvent('mouseOver', void 0, function () {
1206
+ // Draw tooltip if necessary
1207
+ if (tooltip && hoverPoint) {
1208
+ tooltip.refresh(useSharedTooltip ? points : hoverPoint, e);
1209
+ }
1210
+ });
1207
1211
  // Update positions (regardless of kdpoint or hoverPoint)
1208
1212
  }
1209
1213
  else if (followPointer && tooltip && !tooltip.isHidden) {
@@ -1232,7 +1236,7 @@ var Pointer = /** @class */ (function () {
1232
1236
  point = chart.hoverPoint; // #13002
1233
1237
  if (!point || point.series[axis.coll] !== axis) {
1234
1238
  point = find(points, function (p) {
1235
- return p.series[axis.coll] === axis;
1239
+ return p.series && p.series[axis.coll] === axis;
1236
1240
  });
1237
1241
  }
1238
1242
  }
@@ -1320,7 +1324,7 @@ var Pointer = /** @class */ (function () {
1320
1324
  var hoverChart = H.charts[pick(Pointer.hoverChartIndex, -1)];
1321
1325
  if (hoverChart &&
1322
1326
  hoverChart !== chart) {
1323
- hoverChart.pointer.onContainerMouseLeave({ relatedTarget: true });
1327
+ hoverChart.pointer.onContainerMouseLeave({ relatedTarget: chart.container });
1324
1328
  }
1325
1329
  if (!hoverChart ||
1326
1330
  !hoverChart.mouseIsDown) {
@@ -11,7 +11,7 @@
11
11
  import H from '../../Globals.js';
12
12
  var SVG_NS = H.SVG_NS, win = H.win;
13
13
  import U from '../../Utilities.js';
14
- var attr = U.attr, createElement = U.createElement, error = U.error, isFunction = U.isFunction, isString = U.isString, objectEach = U.objectEach, splat = U.splat;
14
+ var attr = U.attr, createElement = U.createElement, css = U.css, error = U.error, isFunction = U.isFunction, isString = U.isString, objectEach = U.objectEach, splat = U.splat;
15
15
  var trustedTypes = win.trustedTypes;
16
16
  /* *
17
17
  *
@@ -97,6 +97,17 @@ var AST = /** @class */ (function () {
97
97
  });
98
98
  return attributes;
99
99
  };
100
+ AST.parseStyle = function (style) {
101
+ return style
102
+ .split(';')
103
+ .reduce(function (styles, line) {
104
+ var pair = line.split(':').map(function (s) { return s.trim(); }), key = pair[0].replace(/-([a-z])/g, function (g) { return g[1].toUpperCase(); });
105
+ if (pair[1]) {
106
+ styles[key] = pair[1];
107
+ }
108
+ return styles;
109
+ }, {});
110
+ };
100
111
  /**
101
112
  * Utility function to set html content for an element by passing in a
102
113
  * markup string. The markup is safely parsed by the AST class to avoid
@@ -152,12 +163,15 @@ var AST = /** @class */ (function () {
152
163
  var textNode = item.textContent ?
153
164
  H.doc.createTextNode(item.textContent) :
154
165
  void 0;
166
+ // Whether to ignore the AST filtering totally, #15345
167
+ var bypassHTMLFiltering = AST.bypassHTMLFiltering;
155
168
  var node;
156
169
  if (tagName) {
157
170
  if (tagName === '#text') {
158
171
  node = textNode;
159
172
  }
160
- else if (AST.allowedTags.indexOf(tagName) !== -1) {
173
+ else if (AST.allowedTags.indexOf(tagName) !== -1 ||
174
+ bypassHTMLFiltering) {
161
175
  var NS = tagName === 'svg' ?
162
176
  SVG_NS :
163
177
  (subParent.namespaceURI || SVG_NS);
@@ -169,11 +183,17 @@ var AST = /** @class */ (function () {
169
183
  if (key !== 'tagName' &&
170
184
  key !== 'attributes' &&
171
185
  key !== 'children' &&
186
+ key !== 'style' &&
172
187
  key !== 'textContent') {
173
188
  attributes_1[key] = val;
174
189
  }
175
190
  });
176
- attr(element, AST.filterUserAttributes(attributes_1));
191
+ attr(element, bypassHTMLFiltering ?
192
+ attributes_1 :
193
+ AST.filterUserAttributes(attributes_1));
194
+ if (item.style) {
195
+ css(element, item.style);
196
+ }
177
197
  // Add text content
178
198
  if (textNode) {
179
199
  element.appendChild(textNode);
@@ -212,7 +232,11 @@ var AST = /** @class */ (function () {
212
232
  */
213
233
  AST.prototype.parseMarkup = function (markup) {
214
234
  var nodes = [];
215
- markup = markup.trim();
235
+ markup = markup
236
+ .trim()
237
+ // The style attribute throws a warning when parsing when CSP is
238
+ // enabled (#6884), so use an alias and pick it up below
239
+ .replace(/ style="/g, ' data-style="');
216
240
  var doc;
217
241
  if (hasValidDOMParser) {
218
242
  doc = new DOMParser().parseFromString(trustedTypesPolicy ?
@@ -238,7 +262,12 @@ var AST = /** @class */ (function () {
238
262
  if (parsedAttributes) {
239
263
  var attributes_2 = {};
240
264
  [].forEach.call(parsedAttributes, function (attrib) {
241
- attributes_2[attrib.name] = attrib.value;
265
+ if (attrib.name === 'data-style') {
266
+ astNode.style = AST.parseStyle(attrib.value);
267
+ }
268
+ else {
269
+ attributes_2[attrib.name] = attrib.value;
270
+ }
242
271
  });
243
272
  astNode.attributes = attributes_2;
244
273
  }
@@ -442,6 +471,34 @@ var AST = /** @class */ (function () {
442
471
  '#text'
443
472
  ];
444
473
  AST.emptyHTML = emptyHTML;
474
+ /**
475
+ * Allow all custom SVG and HTML attributes, references and tags (together
476
+ * with potentially harmful ones) to be added to the DOM from the chart
477
+ * configuration. In other words, disable the the allow-listing which is the
478
+ * primary functionality of the AST.
479
+ *
480
+ * WARNING: Setting this property to `true` while allowing untrusted user
481
+ * data in the chart configuration will expose your application to XSS
482
+ * security risks!
483
+ *
484
+ * Note that in case you want to allow a known set of tags or attributes,
485
+ * you should allow-list them instead of disabling the filtering totally.
486
+ * See [allowedAttributes](Highcharts.AST#.allowedAttributes),
487
+ * [allowedReferences](Highcharts.AST#.allowedReferences) and
488
+ * [allowedTags](Highcharts.AST#.allowedTags). The `bypassHTMLFiltering`
489
+ * setting is intended only for those cases where allow-listing is not
490
+ * practical, and the chart configuration already comes from a secure
491
+ * source.
492
+ *
493
+ * @example
494
+ * // Allow all custom attributes, references and tags (disable DOM XSS
495
+ * // filtering)
496
+ * Highcharts.AST.bypassHTMLFiltering = true;
497
+ *
498
+ * @name Highcharts.AST.bypassHTMLFiltering
499
+ * @static
500
+ */
501
+ AST.bypassHTMLFiltering = false;
445
502
  return AST;
446
503
  }());
447
504
  /* *
@@ -351,7 +351,7 @@ var SVGElement = /** @class */ (function () {
351
351
  }, deferTime);
352
352
  }
353
353
  else {
354
- this.attr(params, void 0, complete);
354
+ this.attr(params, void 0, complete || animOptions.complete);
355
355
  // Call the end step synchronously
356
356
  objectEach(params, function (val, prop) {
357
357
  if (animOptions.step) {
@@ -731,22 +731,17 @@ var SVGElement = /** @class */ (function () {
731
731
  * Return the SVG element for chaining.
732
732
  */
733
733
  SVGElement.prototype.css = function (styles) {
734
- var oldStyles = this.styles, newStyles = {}, elem = this.element,
735
- // These CSS properties are interpreted internally by the SVG
736
- // renderer, but are not supported by SVG and should not be added to
737
- // the DOM. In styled mode, no CSS should find its way to the DOM
738
- // whatsoever (#6173, #6474).
739
- svgPseudoProps = ['textOutline', 'textOverflow', 'width'];
740
- var textWidth, serializedCss = '', hyphenate, hasNew = !oldStyles;
734
+ var oldStyles = this.styles, newStyles = {}, elem = this.element;
735
+ var textWidth, hasNew = !oldStyles;
741
736
  // convert legacy
742
- if (styles && styles.color) {
737
+ if (styles.color) {
743
738
  styles.fill = styles.color;
744
739
  }
745
740
  // Filter out existing styles to increase performance (#2640)
746
741
  if (oldStyles) {
747
- objectEach(styles, function (style, n) {
748
- if (oldStyles && oldStyles[n] !== style) {
749
- newStyles[n] = style;
742
+ objectEach(styles, function (value, n) {
743
+ if (oldStyles && oldStyles[n] !== value) {
744
+ newStyles[n] = value;
750
745
  hasNew = true;
751
746
  }
752
747
  });
@@ -757,41 +752,30 @@ var SVGElement = /** @class */ (function () {
757
752
  styles = extend(oldStyles, newStyles);
758
753
  }
759
754
  // Get the text width from style
760
- if (styles) {
761
- // Previously set, unset it (#8234)
762
- if (styles.width === null || styles.width === 'auto') {
763
- delete this.textWidth;
764
- // Apply new
765
- }
766
- else if (elem.nodeName.toLowerCase() === 'text' &&
767
- styles.width) {
768
- textWidth = this.textWidth = pInt(styles.width);
769
- }
755
+ // Previously set, unset it (#8234)
756
+ if (styles.width === null || styles.width === 'auto') {
757
+ delete this.textWidth;
758
+ // Apply new
759
+ }
760
+ else if (elem.nodeName.toLowerCase() === 'text' &&
761
+ styles.width) {
762
+ textWidth = this.textWidth = pInt(styles.width);
770
763
  }
771
764
  // store object
772
765
  this.styles = styles;
773
766
  if (textWidth && (!svg && this.renderer.forExport)) {
774
767
  delete styles.width;
775
768
  }
776
- // Serialize and set style attribute
777
- if (elem.namespaceURI === this.SVG_NS) { // #7633
778
- hyphenate = function (a, b) {
779
- return '-' + b.toLowerCase();
780
- };
781
- objectEach(styles, function (style, n) {
782
- if (svgPseudoProps.indexOf(n) === -1) {
783
- serializedCss +=
784
- n.replace(/([A-Z])/g, hyphenate) + ':' +
785
- style + ';';
786
- }
787
- });
788
- if (serializedCss) {
789
- attr(elem, 'style', serializedCss); // #1881
790
- }
791
- }
792
- else {
793
- css(elem, styles);
769
+ var stylesToApply_1 = merge(styles);
770
+ if (elem.namespaceURI === this.SVG_NS) {
771
+ // These CSS properties are interpreted internally by the SVG
772
+ // renderer, but are not supported by SVG and should not be
773
+ // added to the DOM. In styled mode, no CSS should find its way
774
+ // to the DOM whatsoever (#6173, #6474).
775
+ ['textOutline', 'textOverflow', 'width'].forEach(function (key) { return (stylesToApply_1 &&
776
+ delete stylesToApply_1[key]); });
794
777
  }
778
+ css(elem, stylesToApply_1);
795
779
  if (this.added) {
796
780
  // Rebuild text after added. Cache mechanisms in the buildText
797
781
  // will prevent building if there are no significant changes.
@@ -799,7 +783,7 @@ var SVGElement = /** @class */ (function () {
799
783
  this.renderer.buildText(this);
800
784
  }
801
785
  // Apply text outline after added
802
- if (styles && styles.textOutline) {
786
+ if (styles.textOutline) {
803
787
  this.applyTextOutline(styles.textOutline);
804
788
  }
805
789
  }
@@ -31,10 +31,21 @@ SVGElement3D.base = {
31
31
  var elem3d = this, renderer = elem3d.renderer, paths = renderer[elem3d.pathType + 'Path'](args), zIndexes = paths.zIndexes;
32
32
  // build parts
33
33
  elem3d.parts.forEach(function (part) {
34
- elem3d[part] = renderer.path(paths[part]).attr({
34
+ var attribs = {
35
35
  'class': 'highcharts-3d-' + part,
36
36
  zIndex: zIndexes[part] || 0
37
- }).add(elem3d);
37
+ };
38
+ if (renderer.styledMode) {
39
+ if (part === 'top') {
40
+ attribs.filter = 'url(#highcharts-brighter)';
41
+ }
42
+ else if (part === 'side') {
43
+ attribs.filter = 'url(#highcharts-darker)';
44
+ }
45
+ }
46
+ elem3d[part] = renderer.path(paths[part])
47
+ .attr(attribs)
48
+ .add(elem3d);
38
49
  });
39
50
  elem3d.attr({
40
51
  'stroke-linejoin': 'round',
@@ -126,11 +137,12 @@ SVGElement3D.cuboid = merge(SVGElement3D.base, {
126
137
  this.attr({
127
138
  zIndex: paths.zIndexes.group
128
139
  });
129
- // If sides that are forced to render changed, recalculate
130
- // colors.
140
+ // If sides that are forced to render changed, recalculate colors.
131
141
  if (forcedSides !== this.forcedSides) {
132
142
  this.forcedSides = forcedSides;
133
- SVGElement3D.cuboid.fillSetter.call(this, this.fill);
143
+ if (!this.renderer.styledMode) {
144
+ SVGElement3D.cuboid.fillSetter.call(this, this.fill);
145
+ }
134
146
  }
135
147
  }
136
148
  else {
@@ -193,7 +193,7 @@ var SVGRenderer = /** @class */ (function () {
193
193
  this.url = this.getReferenceURL();
194
194
  // Add description
195
195
  var desc = this.createElement('desc').add();
196
- desc.element.appendChild(doc.createTextNode('Created with Highcharts 9.3.3'));
196
+ desc.element.appendChild(doc.createTextNode('Created with Highcharts 10.0.0'));
197
197
  renderer.defs = this.createElement('defs').add();
198
198
  renderer.allowHTML = allowHTML;
199
199
  renderer.forExport = forExport;
@@ -523,29 +523,26 @@ var SVGRenderer = /** @class */ (function () {
523
523
  // Make a copy of normalState (#13798)
524
524
  // (reference to options.rangeSelector.buttonTheme)
525
525
  normalState = theme ? merge(theme) : {};
526
- var userNormalStyle = normalState && normalState.style || {};
526
+ var normalStyle = merge({
527
+ color: "#333333" /* neutralColor80 */,
528
+ cursor: 'pointer',
529
+ fontWeight: 'normal'
530
+ }, normalState.style);
531
+ delete normalState.style;
527
532
  // Remove stylable attributes
528
533
  normalState = AST.filterUserAttributes(normalState);
529
534
  // Default, non-stylable attributes
530
535
  label.attr(merge({ padding: 8, r: 2 }, normalState));
531
- // Presentational
532
- var normalStyle, hoverStyle, pressedStyle, disabledStyle;
536
+ // Presentational. The string type is a mistake, it is just for
537
+ // compliance with SVGAttribute and is not used in button theme.
538
+ var hoverStyle, pressedStyle, disabledStyle;
533
539
  if (!styledMode) {
534
540
  // Normal state - prepare the attributes
535
541
  normalState = merge({
536
542
  fill: "#f7f7f7" /* neutralColor3 */,
537
543
  stroke: "#cccccc" /* neutralColor20 */,
538
- 'stroke-width': 1,
539
- style: {
540
- color: "#333333" /* neutralColor80 */,
541
- cursor: 'pointer',
542
- fontWeight: 'normal'
543
- }
544
- }, {
545
- style: userNormalStyle
544
+ 'stroke-width': 1
546
545
  }, normalState);
547
- normalStyle = normalState.style;
548
- delete normalState.style;
549
546
  // Hover state
550
547
  hoverState = merge(normalState, {
551
548
  fill: "#e6e6e6" /* neutralColor10 */
@@ -600,13 +597,16 @@ var SVGRenderer = /** @class */ (function () {
600
597
  hoverState,
601
598
  pressedState,
602
599
  disabledState
603
- ][state || 0])
604
- .css([
600
+ ][state || 0]);
601
+ var css_1 = [
605
602
  normalStyle,
606
603
  hoverStyle,
607
604
  pressedStyle,
608
605
  disabledStyle
609
- ][state || 0]);
606
+ ][state || 0];
607
+ if (isObject(css_1)) {
608
+ label.css(css_1);
609
+ }
610
610
  }
611
611
  };
612
612
  // Presentational attributes
@@ -12,7 +12,7 @@ import AST from '../HTML/AST.js';
12
12
  import H from '../../Globals.js';
13
13
  var doc = H.doc, SVG_NS = H.SVG_NS, win = H.win;
14
14
  import U from '../../Utilities.js';
15
- var attr = U.attr, isString = U.isString, objectEach = U.objectEach, pick = U.pick;
15
+ var attr = U.attr, extend = U.extend, isString = U.isString, objectEach = U.objectEach, pick = U.pick;
16
16
  /* *
17
17
  *
18
18
  * Class
@@ -280,27 +280,29 @@ var TextBuilder = /** @class */ (function () {
280
280
  TextBuilder.prototype.modifyTree = function (nodes) {
281
281
  var _this = this;
282
282
  var modifyChild = function (node, i) {
283
- var _a = node.attributes, attributes = _a === void 0 ? {} : _a, children = node.children, tagName = node.tagName, styledMode = _this.renderer.styledMode;
283
+ var _a = node.attributes, attributes = _a === void 0 ? {} : _a, children = node.children, _b = node.style, style = _b === void 0 ? {} : _b, tagName = node.tagName, styledMode = _this.renderer.styledMode;
284
284
  // Apply styling to text tags
285
285
  if (tagName === 'b' || tagName === 'strong') {
286
286
  if (styledMode) {
287
- attributes['class'] = 'highcharts-strong'; // eslint-disable-line dot-notation
287
+ // eslint-disable-next-line dot-notation
288
+ attributes['class'] = 'highcharts-strong';
288
289
  }
289
290
  else {
290
- attributes.style = ('font-weight:bold;' + (attributes.style || ''));
291
+ style.fontWeight = 'bold';
291
292
  }
292
293
  }
293
294
  else if (tagName === 'i' || tagName === 'em') {
294
295
  if (styledMode) {
295
- attributes['class'] = 'highcharts-emphasized'; // eslint-disable-line dot-notation
296
+ // eslint-disable-next-line dot-notation
297
+ attributes['class'] = 'highcharts-emphasized';
296
298
  }
297
299
  else {
298
- attributes.style = ('font-style:italic;' + (attributes.style || ''));
300
+ style.fontStyle = 'italic';
299
301
  }
300
302
  }
301
- // Modify attributes
302
- if (isString(attributes.style)) {
303
- attributes.style = attributes.style.replace(/(;| |^)color([ :])/, '$1fill$2');
303
+ // Modify styling
304
+ if (style && style.color) {
305
+ style.fill = style.color;
304
306
  }
305
307
  // Handle breaks
306
308
  if (tagName === 'br') {
@@ -325,7 +327,7 @@ var TextBuilder = /** @class */ (function () {
325
327
  if (tagName !== '#text' && tagName !== 'a') {
326
328
  node.tagName = 'tspan';
327
329
  }
328
- node.attributes = attributes;
330
+ extend(node, { attributes: attributes, style: style });
329
331
  // Recurse
330
332
  if (children) {
331
333
  children
@@ -259,8 +259,8 @@ var DataLabel;
259
259
  point.connectors[i] :
260
260
  point.connector;
261
261
  var labelConfig, formatString, labelText, style, rotation, attr, dataLabel = point.dataLabels ?
262
- point.dataLabels[i] : point.dataLabel;
263
- var labelDistance = pick(labelOptions.distance, point.labelDistance), isNew = !dataLabel;
262
+ point.dataLabels[i] : point.dataLabel, isNew = !dataLabel;
263
+ var labelDistance = pick(labelOptions.distance, point.labelDistance);
264
264
  if (labelEnabled) {
265
265
  // Create individual options structure that can be
266
266
  // extended without affecting others
@@ -314,7 +314,15 @@ var DataLabel;
314
314
  // #820
315
315
  if (dataLabel && (!labelEnabled ||
316
316
  !defined(labelText) ||
317
- !!dataLabel.div !== !!labelOptions.useHTML)) {
317
+ !!dataLabel.div !== !!labelOptions.useHTML ||
318
+ (
319
+ // Change from no rotation to rotation and
320
+ // vice versa. Don't use defined() because
321
+ // rotation = 0 means also rotation = undefined
322
+ (!dataLabel.rotation ||
323
+ !labelOptions.rotation) &&
324
+ dataLabel.rotation !== labelOptions.rotation))) {
325
+ isNew = true;
318
326
  point.dataLabel = dataLabel =
319
327
  point.dataLabel && point.dataLabel.destroy();
320
328
  if (point.dataLabels) {
@@ -1133,7 +1133,7 @@ export default Point;
1133
1133
  * @type {Highcharts.Point}
1134
1134
  */
1135
1135
  /**
1136
- * Configuration hash for the data label and tooltip formatters.
1136
+ * Configuration for the data label and tooltip formatters.
1137
1137
  *
1138
1138
  * @interface Highcharts.PointLabelObject
1139
1139
  */ /**
@@ -1175,7 +1175,7 @@ export default Point;
1175
1175
  */ /**
1176
1176
  * The y value of the point.
1177
1177
  * @name Highcharts.PointLabelObject#y
1178
- * @type {number|undefined}
1178
+ * @type {number|null|undefined}
1179
1179
  */
1180
1180
  /**
1181
1181
  * Gets fired when the mouse leaves the area close to the point.