highcharts 10.0.0 → 10.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (500) hide show
  1. package/bower.json +1 -1
  2. package/es-modules/Accessibility/A11yI18n.js +4 -4
  3. package/es-modules/Accessibility/Components/ContainerComponent.js +8 -9
  4. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +14 -9
  5. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +31 -15
  6. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +23 -4
  7. package/es-modules/Accessibility/FocusBorder.js +6 -5
  8. package/es-modules/Accessibility/Options/LangOptions.js +36 -31
  9. package/es-modules/Accessibility/Options/Options.js +66 -3
  10. package/es-modules/Accessibility/Utils/ChartUtilities.js +9 -4
  11. package/es-modules/Core/Axis/Axis.js +30 -27
  12. package/es-modules/Core/Axis/GridAxis.js +5 -2
  13. package/es-modules/Core/Axis/LogarithmicAxis.js +1 -1
  14. package/es-modules/Core/Axis/OrdinalAxis.js +3 -2
  15. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +1 -1
  16. package/es-modules/Core/Axis/StackingAxis.js +0 -1
  17. package/es-modules/Core/Axis/Tick.js +2 -2
  18. package/es-modules/Core/Chart/Chart.js +21 -3
  19. package/es-modules/Core/Chart/ChartDefaults.js +11 -0
  20. package/es-modules/Core/Chart/StockChart.js +1 -1
  21. package/es-modules/Core/DefaultOptions.js +6 -4
  22. package/es-modules/Core/Globals.js +1 -1
  23. package/es-modules/Core/Legend/Legend.js +1 -1
  24. package/es-modules/Core/Navigator.js +1 -1
  25. package/es-modules/Core/Renderer/HTML/AST.js +9 -6
  26. package/es-modules/Core/Renderer/SVG/SVGElement.js +22 -22
  27. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +16 -13
  28. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +1 -1
  29. package/es-modules/Core/Scrollbar.js +9 -5
  30. package/es-modules/Core/Series/DataLabel.js +54 -33
  31. package/es-modules/Core/Series/Series.js +19 -7
  32. package/es-modules/Core/Utilities.js +1 -1
  33. package/es-modules/Extensions/Annotations/Annotations.js +2 -2
  34. package/es-modules/Extensions/Annotations/ControlPoint.js +1 -1
  35. package/es-modules/Extensions/Annotations/NavigationBindings.js +9 -1
  36. package/es-modules/Extensions/Annotations/Popup.js +1 -1
  37. package/es-modules/Extensions/Breadcrumbs.js +2 -3
  38. package/es-modules/Extensions/DataGrouping.js +3 -1
  39. package/es-modules/Extensions/Debugger/ErrorMessages.js +4 -0
  40. package/es-modules/Extensions/Drilldown.js +6 -4
  41. package/es-modules/Extensions/ExportData.js +1 -2
  42. package/es-modules/Extensions/Exporting/Exporting.js +22 -13
  43. package/es-modules/Extensions/FullScreen.js +121 -54
  44. package/es-modules/Extensions/GeoJSON.js +3 -2
  45. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  46. package/es-modules/Extensions/Oldie/Oldie.js +1 -1
  47. package/es-modules/Extensions/OverlappingDataLabels.js +5 -4
  48. package/es-modules/Extensions/Polar.js +4 -1
  49. package/es-modules/Extensions/Stacking.js +1 -1
  50. package/es-modules/Extensions/Themes/HighContrastDark.js +10 -10
  51. package/es-modules/Extensions/Themes/HighContrastLight.js +9 -9
  52. package/es-modules/Maps/MapNavigation.js +1 -5
  53. package/es-modules/Maps/MapView.js +6 -2
  54. package/es-modules/Maps/MapViewOptionsDefault.js +3 -1
  55. package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +9 -1
  56. package/es-modules/Series/CenteredUtilities.js +6 -1
  57. package/es-modules/Series/Flags/FlagsSeries.js +7 -12
  58. package/es-modules/Series/Gauge/GaugeSeries.js +1 -1
  59. package/es-modules/Series/Heatmap/HeatmapSeries.js +13 -20
  60. package/es-modules/Series/Map/MapSeries.js +11 -1
  61. package/es-modules/Series/MapBubble/MapBubbleSeries.js +49 -3
  62. package/es-modules/Series/MapPoint/MapPointSeries.js +4 -0
  63. package/es-modules/Series/Pie/PieDataLabel.js +3 -1
  64. package/es-modules/Series/Pie/PieSeries.js +12 -1
  65. package/es-modules/Series/Sankey/SankeySeries.js +3 -1
  66. package/es-modules/Series/Sunburst/SunburstSeries.js +1 -1
  67. package/es-modules/Series/Wordcloud/WordcloudSeries.js +4 -4
  68. package/es-modules/Stock/StockToolsBindings.js +31 -24
  69. package/es-modules/Stock/StockToolsGui.js +1 -1
  70. package/es-modules/masters/highcharts-3d.src.js +1 -1
  71. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  72. package/es-modules/masters/highcharts-more.src.js +1 -1
  73. package/es-modules/masters/highcharts.src.js +1 -1
  74. package/es-modules/masters/highmaps.src.js +1 -1
  75. package/es-modules/masters/highstock.src.js +1 -1
  76. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  77. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  78. package/es-modules/masters/indicators/ao.src.js +1 -1
  79. package/es-modules/masters/indicators/apo.src.js +1 -1
  80. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  81. package/es-modules/masters/indicators/aroon.src.js +1 -1
  82. package/es-modules/masters/indicators/atr.src.js +1 -1
  83. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  84. package/es-modules/masters/indicators/cci.src.js +1 -1
  85. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  86. package/es-modules/masters/indicators/cmf.src.js +1 -1
  87. package/es-modules/masters/indicators/cmo.src.js +1 -1
  88. package/es-modules/masters/indicators/dema.src.js +1 -1
  89. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  90. package/es-modules/masters/indicators/dmi.src.js +1 -1
  91. package/es-modules/masters/indicators/dpo.src.js +1 -1
  92. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  93. package/es-modules/masters/indicators/indicators-all.src.js +1 -1
  94. package/es-modules/masters/indicators/indicators.src.js +1 -1
  95. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  96. package/es-modules/masters/indicators/klinger.src.js +1 -1
  97. package/es-modules/masters/indicators/macd.src.js +1 -1
  98. package/es-modules/masters/indicators/mfi.src.js +1 -1
  99. package/es-modules/masters/indicators/momentum.src.js +1 -1
  100. package/es-modules/masters/indicators/natr.src.js +1 -1
  101. package/es-modules/masters/indicators/obv.src.js +1 -1
  102. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  103. package/es-modules/masters/indicators/ppo.src.js +1 -1
  104. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  105. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  106. package/es-modules/masters/indicators/psar.src.js +1 -1
  107. package/es-modules/masters/indicators/regressions.src.js +1 -1
  108. package/es-modules/masters/indicators/roc.src.js +1 -1
  109. package/es-modules/masters/indicators/rsi.src.js +1 -1
  110. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  111. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  112. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  113. package/es-modules/masters/indicators/tema.src.js +1 -1
  114. package/es-modules/masters/indicators/trendline.src.js +1 -1
  115. package/es-modules/masters/indicators/trix.src.js +1 -1
  116. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  117. package/es-modules/masters/indicators/vwap.src.js +1 -1
  118. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  119. package/es-modules/masters/indicators/wma.src.js +1 -1
  120. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  121. package/es-modules/masters/modules/accessibility.src.js +1 -1
  122. package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
  123. package/es-modules/masters/modules/annotations.src.js +1 -1
  124. package/es-modules/masters/modules/arc-diagram.src.js +1 -1
  125. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  126. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  127. package/es-modules/masters/modules/boost.src.js +1 -1
  128. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  129. package/es-modules/masters/modules/bullet.src.js +1 -1
  130. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  131. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  132. package/es-modules/masters/modules/cylinder.src.js +1 -1
  133. package/es-modules/masters/modules/data.src.js +1 -1
  134. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  135. package/es-modules/masters/modules/debugger.src.js +1 -1
  136. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  137. package/es-modules/masters/modules/dotplot.src.js +1 -1
  138. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  139. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  140. package/es-modules/masters/modules/drilldown.src.js +1 -1
  141. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  142. package/es-modules/masters/modules/export-data.src.js +1 -1
  143. package/es-modules/masters/modules/exporting.src.js +1 -1
  144. package/es-modules/masters/modules/full-screen.src.js +1 -1
  145. package/es-modules/masters/modules/funnel.src.js +1 -1
  146. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  147. package/es-modules/masters/modules/gantt.src.js +1 -1
  148. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  149. package/es-modules/masters/modules/heatmap.src.js +1 -1
  150. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  151. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  152. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  153. package/es-modules/masters/modules/item-series.src.js +1 -1
  154. package/es-modules/masters/modules/lollipop.src.js +1 -1
  155. package/es-modules/masters/modules/map.src.js +1 -1
  156. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  157. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  158. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  159. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  160. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  161. package/es-modules/masters/modules/oldie.src.js +1 -1
  162. package/es-modules/masters/modules/organization.src.js +1 -1
  163. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  164. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  165. package/es-modules/masters/modules/pareto.src.js +1 -1
  166. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  167. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  168. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  169. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  170. package/es-modules/masters/modules/sankey.src.js +1 -1
  171. package/es-modules/masters/modules/series-label.src.js +1 -1
  172. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  173. package/es-modules/masters/modules/sonification.src.js +1 -1
  174. package/es-modules/masters/modules/static-scale.src.js +1 -1
  175. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  176. package/es-modules/masters/modules/stock.src.js +1 -1
  177. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  178. package/es-modules/masters/modules/sunburst.src.js +1 -1
  179. package/es-modules/masters/modules/tilemap.src.js +1 -1
  180. package/es-modules/masters/modules/timeline.src.js +1 -1
  181. package/es-modules/masters/modules/treegrid.src.js +1 -1
  182. package/es-modules/masters/modules/treemap.src.js +1 -1
  183. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  184. package/es-modules/masters/modules/variwide.src.js +1 -1
  185. package/es-modules/masters/modules/vector.src.js +1 -1
  186. package/es-modules/masters/modules/venn.src.js +1 -1
  187. package/es-modules/masters/modules/windbarb.src.js +1 -1
  188. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  189. package/es-modules/masters/modules/xrange.src.js +1 -1
  190. package/es-modules/masters/themes/avocado.src.js +1 -1
  191. package/es-modules/masters/themes/brand-dark.src.js +1 -1
  192. package/es-modules/masters/themes/brand-light.src.js +1 -1
  193. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  194. package/es-modules/masters/themes/dark-green.src.js +1 -1
  195. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  196. package/es-modules/masters/themes/gray.src.js +1 -1
  197. package/es-modules/masters/themes/grid-light.src.js +1 -1
  198. package/es-modules/masters/themes/grid.src.js +1 -1
  199. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  200. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  201. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  202. package/es-modules/masters/themes/skies.src.js +1 -1
  203. package/es-modules/masters/themes/sunset.src.js +1 -1
  204. package/highcharts-3d.js +2 -2
  205. package/highcharts-3d.src.js +2 -2
  206. package/highcharts-gantt.js +805 -802
  207. package/highcharts-gantt.js.map +1 -1
  208. package/highcharts-gantt.src.js +261 -144
  209. package/highcharts-more.js +5 -5
  210. package/highcharts-more.js.map +1 -1
  211. package/highcharts-more.src.js +6 -3
  212. package/highcharts.d.ts +1077 -53
  213. package/highcharts.js +591 -588
  214. package/highcharts.js.map +1 -1
  215. package/highcharts.src.d.ts +1077 -53
  216. package/highcharts.src.js +246 -136
  217. package/highmaps.js +758 -756
  218. package/highmaps.js.map +1 -1
  219. package/highmaps.src.js +336 -171
  220. package/highstock.js +792 -789
  221. package/highstock.js.map +1 -1
  222. package/highstock.src.js +272 -157
  223. package/indicators/acceleration-bands.js +1 -1
  224. package/indicators/acceleration-bands.src.js +1 -1
  225. package/indicators/accumulation-distribution.js +1 -1
  226. package/indicators/accumulation-distribution.src.js +1 -1
  227. package/indicators/ao.js +1 -1
  228. package/indicators/ao.src.js +1 -1
  229. package/indicators/apo.js +1 -1
  230. package/indicators/apo.src.js +1 -1
  231. package/indicators/aroon-oscillator.js +1 -1
  232. package/indicators/aroon-oscillator.src.js +1 -1
  233. package/indicators/aroon.js +1 -1
  234. package/indicators/aroon.src.js +1 -1
  235. package/indicators/atr.js +1 -1
  236. package/indicators/atr.src.js +1 -1
  237. package/indicators/bollinger-bands.js +1 -1
  238. package/indicators/bollinger-bands.src.js +1 -1
  239. package/indicators/cci.js +1 -1
  240. package/indicators/cci.src.js +1 -1
  241. package/indicators/chaikin.js +1 -1
  242. package/indicators/chaikin.src.js +1 -1
  243. package/indicators/cmf.js +1 -1
  244. package/indicators/cmf.src.js +1 -1
  245. package/indicators/cmo.js +1 -1
  246. package/indicators/cmo.src.js +1 -1
  247. package/indicators/dema.js +1 -1
  248. package/indicators/dema.src.js +1 -1
  249. package/indicators/disparity-index.js +1 -1
  250. package/indicators/disparity-index.src.js +1 -1
  251. package/indicators/dmi.js +1 -1
  252. package/indicators/dmi.src.js +1 -1
  253. package/indicators/dpo.js +1 -1
  254. package/indicators/dpo.src.js +1 -1
  255. package/indicators/ichimoku-kinko-hyo.js +1 -1
  256. package/indicators/ichimoku-kinko-hyo.src.js +1 -1
  257. package/indicators/indicators-all.js +1 -1
  258. package/indicators/indicators-all.src.js +1 -1
  259. package/indicators/indicators.js +1 -1
  260. package/indicators/indicators.src.js +1 -1
  261. package/indicators/keltner-channels.js +1 -1
  262. package/indicators/keltner-channels.src.js +1 -1
  263. package/indicators/klinger.js +1 -1
  264. package/indicators/klinger.src.js +1 -1
  265. package/indicators/macd.js +1 -1
  266. package/indicators/macd.src.js +1 -1
  267. package/indicators/mfi.js +1 -1
  268. package/indicators/mfi.src.js +1 -1
  269. package/indicators/momentum.js +1 -1
  270. package/indicators/momentum.src.js +1 -1
  271. package/indicators/natr.js +1 -1
  272. package/indicators/natr.src.js +1 -1
  273. package/indicators/obv.js +1 -1
  274. package/indicators/obv.src.js +1 -1
  275. package/indicators/pivot-points.js +1 -1
  276. package/indicators/pivot-points.src.js +1 -1
  277. package/indicators/ppo.js +1 -1
  278. package/indicators/ppo.src.js +1 -1
  279. package/indicators/price-channel.js +1 -1
  280. package/indicators/price-channel.src.js +1 -1
  281. package/indicators/price-envelopes.js +1 -1
  282. package/indicators/price-envelopes.src.js +1 -1
  283. package/indicators/psar.js +1 -1
  284. package/indicators/psar.src.js +1 -1
  285. package/indicators/regressions.js +1 -1
  286. package/indicators/regressions.src.js +1 -1
  287. package/indicators/roc.js +1 -1
  288. package/indicators/roc.src.js +1 -1
  289. package/indicators/rsi.js +1 -1
  290. package/indicators/rsi.src.js +1 -1
  291. package/indicators/slow-stochastic.js +1 -1
  292. package/indicators/slow-stochastic.src.js +1 -1
  293. package/indicators/stochastic.js +1 -1
  294. package/indicators/stochastic.src.js +1 -1
  295. package/indicators/supertrend.js +1 -1
  296. package/indicators/supertrend.src.js +1 -1
  297. package/indicators/tema.js +1 -1
  298. package/indicators/tema.src.js +1 -1
  299. package/indicators/trendline.js +1 -1
  300. package/indicators/trendline.src.js +1 -1
  301. package/indicators/trix.js +1 -1
  302. package/indicators/trix.src.js +1 -1
  303. package/indicators/volume-by-price.js +1 -1
  304. package/indicators/volume-by-price.src.js +1 -1
  305. package/indicators/vwap.js +1 -1
  306. package/indicators/vwap.src.js +1 -1
  307. package/indicators/williams-r.js +1 -1
  308. package/indicators/williams-r.src.js +1 -1
  309. package/indicators/wma.js +1 -1
  310. package/indicators/wma.src.js +1 -1
  311. package/indicators/zigzag.js +1 -1
  312. package/indicators/zigzag.src.js +1 -1
  313. package/modules/accessibility.js +240 -238
  314. package/modules/accessibility.js.map +1 -1
  315. package/modules/accessibility.src.js +220 -87
  316. package/modules/annotations-advanced.js +6 -6
  317. package/modules/annotations-advanced.js.map +1 -1
  318. package/modules/annotations-advanced.src.js +14 -6
  319. package/modules/annotations.js +6 -6
  320. package/modules/annotations.js.map +1 -1
  321. package/modules/annotations.src.js +14 -6
  322. package/modules/arc-diagram.js +7 -7
  323. package/modules/arc-diagram.js.map +1 -1
  324. package/modules/arc-diagram.src.js +10 -2
  325. package/modules/arrow-symbols.js +1 -1
  326. package/modules/arrow-symbols.src.js +1 -1
  327. package/modules/boost-canvas.js +1 -1
  328. package/modules/boost-canvas.src.js +1 -1
  329. package/modules/boost.js +1 -1
  330. package/modules/boost.src.js +1 -1
  331. package/modules/broken-axis.js +1 -1
  332. package/modules/broken-axis.src.js +1 -1
  333. package/modules/bullet.js +1 -1
  334. package/modules/bullet.src.js +1 -1
  335. package/modules/coloraxis.js +1 -1
  336. package/modules/coloraxis.src.js +1 -1
  337. package/modules/current-date-indicator.js +1 -1
  338. package/modules/current-date-indicator.src.js +1 -1
  339. package/modules/cylinder.js +1 -1
  340. package/modules/cylinder.src.js +1 -1
  341. package/modules/data.js +1 -1
  342. package/modules/data.src.js +1 -1
  343. package/modules/datagrouping.js +7 -7
  344. package/modules/datagrouping.js.map +1 -1
  345. package/modules/datagrouping.src.js +4 -2
  346. package/modules/debugger.js +6 -5
  347. package/modules/debugger.js.map +1 -1
  348. package/modules/debugger.src.js +5 -1
  349. package/modules/dependency-wheel.js +1 -1
  350. package/modules/dependency-wheel.src.js +1 -1
  351. package/modules/dotplot.js +1 -1
  352. package/modules/dotplot.src.js +1 -1
  353. package/modules/drag-panes.js +1 -1
  354. package/modules/drag-panes.src.js +1 -1
  355. package/modules/draggable-points.js +1 -1
  356. package/modules/draggable-points.src.js +1 -1
  357. package/modules/drilldown.js +36 -37
  358. package/modules/drilldown.js.map +1 -1
  359. package/modules/drilldown.src.js +9 -9
  360. package/modules/dumbbell.js +1 -1
  361. package/modules/dumbbell.src.js +1 -1
  362. package/modules/export-data.js +13 -13
  363. package/modules/export-data.js.map +1 -1
  364. package/modules/export-data.src.js +2 -3
  365. package/modules/exporting.js +39 -39
  366. package/modules/exporting.js.map +1 -1
  367. package/modules/exporting.src.js +146 -75
  368. package/modules/full-screen.js +8 -8
  369. package/modules/full-screen.js.map +1 -1
  370. package/modules/full-screen.src.js +125 -57
  371. package/modules/funnel.js +1 -1
  372. package/modules/funnel.src.js +1 -1
  373. package/modules/funnel3d.js +1 -1
  374. package/modules/funnel3d.src.js +1 -1
  375. package/modules/gantt.js +218 -217
  376. package/modules/gantt.js.map +1 -1
  377. package/modules/gantt.src.js +16 -9
  378. package/modules/grid-axis.js +21 -21
  379. package/modules/grid-axis.js.map +1 -1
  380. package/modules/grid-axis.src.js +6 -3
  381. package/modules/heatmap.js +40 -40
  382. package/modules/heatmap.js.map +1 -1
  383. package/modules/heatmap.src.js +14 -21
  384. package/modules/heikinashi.js +1 -1
  385. package/modules/heikinashi.src.js +1 -1
  386. package/modules/histogram-bellcurve.js +1 -1
  387. package/modules/histogram-bellcurve.src.js +1 -1
  388. package/modules/hollowcandlestick.js +1 -1
  389. package/modules/hollowcandlestick.src.js +1 -1
  390. package/modules/item-series.js +1 -1
  391. package/modules/item-series.src.js +1 -1
  392. package/modules/lollipop.js +1 -1
  393. package/modules/lollipop.src.js +1 -1
  394. package/modules/map.js +169 -169
  395. package/modules/map.js.map +1 -1
  396. package/modules/map.src.js +91 -36
  397. package/modules/marker-clusters.js +1 -1
  398. package/modules/marker-clusters.src.js +1 -1
  399. package/modules/networkgraph.js +1 -1
  400. package/modules/networkgraph.src.js +1 -1
  401. package/modules/no-data-to-display.js +1 -1
  402. package/modules/no-data-to-display.src.js +1 -1
  403. package/modules/offline-exporting.js +2 -2
  404. package/modules/offline-exporting.src.js +2 -2
  405. package/modules/oldie-polyfills.js +1 -1
  406. package/modules/oldie-polyfills.src.js +1 -1
  407. package/modules/oldie.js +2 -2
  408. package/modules/oldie.src.js +2 -2
  409. package/modules/organization.js +1 -1
  410. package/modules/organization.src.js +1 -1
  411. package/modules/overlapping-datalabels.js +1 -1
  412. package/modules/overlapping-datalabels.src.js +1 -1
  413. package/modules/parallel-coordinates.js +1 -1
  414. package/modules/parallel-coordinates.src.js +1 -1
  415. package/modules/pareto.js +1 -1
  416. package/modules/pareto.src.js +1 -1
  417. package/modules/pathfinder.js +1 -1
  418. package/modules/pathfinder.src.js +1 -1
  419. package/modules/pattern-fill.js +1 -1
  420. package/modules/pattern-fill.src.js +1 -1
  421. package/modules/price-indicator.js +1 -1
  422. package/modules/price-indicator.src.js +1 -1
  423. package/modules/pyramid3d.js +1 -1
  424. package/modules/pyramid3d.src.js +1 -1
  425. package/modules/sankey.js +5 -5
  426. package/modules/sankey.js.map +1 -1
  427. package/modules/sankey.src.js +4 -2
  428. package/modules/series-label.js +1 -1
  429. package/modules/series-label.src.js +1 -1
  430. package/modules/solid-gauge.js +1 -1
  431. package/modules/solid-gauge.src.js +1 -1
  432. package/modules/sonification.js +1 -1
  433. package/modules/sonification.src.js +1 -1
  434. package/modules/static-scale.js +1 -1
  435. package/modules/static-scale.src.js +1 -1
  436. package/modules/stock-tools.js +137 -137
  437. package/modules/stock-tools.js.map +1 -1
  438. package/modules/stock-tools.src.js +46 -30
  439. package/modules/stock.js +204 -204
  440. package/modules/stock.js.map +1 -1
  441. package/modules/stock.src.js +27 -22
  442. package/modules/streamgraph.js +1 -1
  443. package/modules/streamgraph.src.js +1 -1
  444. package/modules/sunburst.js +69 -69
  445. package/modules/sunburst.js.map +1 -1
  446. package/modules/sunburst.src.js +4 -6
  447. package/modules/tilemap.js +1 -1
  448. package/modules/tilemap.src.js +1 -1
  449. package/modules/timeline.js +1 -1
  450. package/modules/timeline.src.js +1 -1
  451. package/modules/treegrid.js +56 -56
  452. package/modules/treegrid.js.map +1 -1
  453. package/modules/treegrid.src.js +6 -3
  454. package/modules/treemap.js +50 -50
  455. package/modules/treemap.js.map +1 -1
  456. package/modules/treemap.src.js +3 -5
  457. package/modules/variable-pie.js +1 -1
  458. package/modules/variable-pie.src.js +1 -1
  459. package/modules/variwide.js +1 -1
  460. package/modules/variwide.src.js +1 -1
  461. package/modules/vector.js +1 -1
  462. package/modules/vector.src.js +1 -1
  463. package/modules/venn.js +1 -1
  464. package/modules/venn.src.js +1 -1
  465. package/modules/windbarb.js +1 -1
  466. package/modules/windbarb.src.js +1 -1
  467. package/modules/wordcloud.js +4 -3
  468. package/modules/wordcloud.js.map +1 -1
  469. package/modules/wordcloud.src.js +5 -5
  470. package/modules/xrange.js +1 -1
  471. package/modules/xrange.src.js +1 -1
  472. package/package.json +1 -1
  473. package/themes/avocado.js +1 -1
  474. package/themes/avocado.src.js +1 -1
  475. package/themes/brand-dark.js +1 -1
  476. package/themes/brand-dark.src.js +1 -1
  477. package/themes/brand-light.js +1 -1
  478. package/themes/brand-light.src.js +1 -1
  479. package/themes/dark-blue.js +1 -1
  480. package/themes/dark-blue.src.js +1 -1
  481. package/themes/dark-green.js +1 -1
  482. package/themes/dark-green.src.js +1 -1
  483. package/themes/dark-unica.js +1 -1
  484. package/themes/dark-unica.src.js +1 -1
  485. package/themes/gray.js +1 -1
  486. package/themes/gray.src.js +1 -1
  487. package/themes/grid-light.js +1 -1
  488. package/themes/grid-light.src.js +1 -1
  489. package/themes/grid.js +1 -1
  490. package/themes/grid.src.js +1 -1
  491. package/themes/high-contrast-dark.js +2 -2
  492. package/themes/high-contrast-dark.src.js +11 -11
  493. package/themes/high-contrast-light.js +2 -2
  494. package/themes/high-contrast-light.src.js +10 -10
  495. package/themes/sand-signika.js +1 -1
  496. package/themes/sand-signika.src.js +1 -1
  497. package/themes/skies.js +1 -1
  498. package/themes/skies.src.js +1 -1
  499. package/themes/sunset.js +1 -1
  500. package/themes/sunset.src.js +1 -1
@@ -44,16 +44,18 @@ var DataLabel;
44
44
  * @private
45
45
  */
46
46
  function alignDataLabel(point, dataLabel, options, alignTo, isNew) {
47
- var series = this, chart = this.chart, inverted = this.isCartesian && chart.inverted, enabledDataSorting = this.enabledDataSorting, plotX = pick(point.dlBox && point.dlBox.centerX, point.plotX, -9999), plotY = pick(point.plotY, -9999), bBox = dataLabel.getBBox(), rotation = options.rotation, align = options.align, isInsidePlot = chart.isInsidePlot(plotX, Math.round(plotY), {
48
- inverted: inverted,
49
- paneCoordinates: true,
50
- series: series
51
- }), setStartPos = function (alignOptions) {
47
+ var series = this, chart = this.chart, inverted = this.isCartesian && chart.inverted, enabledDataSorting = this.enabledDataSorting, plotX = pick(point.dlBox && point.dlBox.centerX, point.plotX), plotY = point.plotY, rotation = options.rotation, align = options.align, isInsidePlot = defined(plotX) &&
48
+ defined(plotY) &&
49
+ chart.isInsidePlot(plotX, Math.round(plotY), {
50
+ inverted: inverted,
51
+ paneCoordinates: true,
52
+ series: series
53
+ }), setStartPos = function (alignOptions) {
52
54
  if (enabledDataSorting && series.xAxis && !justify) {
53
55
  series.setDataLabelStartPos(point, dataLabel, isNew, isInsidePlot, alignOptions);
54
56
  }
55
57
  };
56
- var baseline, normRotation, negRotation, rotCorr, // rotation correction
58
+ var baseline, rotCorr, // rotation correction
57
59
  // Math.round for rounding errors (#2683), alignTo to allow column
58
60
  // labels (#2700)
59
61
  alignAttr, // the final position;
@@ -76,7 +78,11 @@ var DataLabel;
76
78
  paneCoordinates: true,
77
79
  series: series
78
80
  })));
79
- if (visible) {
81
+ if (visible && defined(plotX) && defined(plotY)) {
82
+ if (rotation) {
83
+ dataLabel.attr({ align: align });
84
+ }
85
+ var bBox = dataLabel.getBBox(true), bBoxCorrection = [0, 0];
80
86
  baseline = chart.renderer.fontMetrics(chart.styledMode ? void 0 : options.style.fontSize, dataLabel).b;
81
87
  // The alignment box is a singular point
82
88
  alignTo = extend({
@@ -105,27 +111,12 @@ var DataLabel;
105
111
  { top: 0, middle: 0.5, bottom: 1 }[options.verticalAlign] *
106
112
  alignTo.height)
107
113
  };
114
+ bBoxCorrection = [
115
+ bBox.x - Number(dataLabel.attr('x')),
116
+ bBox.y - Number(dataLabel.attr('y'))
117
+ ];
108
118
  setStartPos(alignAttr); // data sorting
109
- dataLabel[isNew ? 'attr' : 'animate'](alignAttr)
110
- .attr({
111
- align: align
112
- });
113
- // Compensate for the rotated label sticking out on the sides
114
- normRotation = (rotation + 720) % 360;
115
- negRotation = normRotation > 180 && normRotation < 360;
116
- if (align === 'left') {
117
- alignAttr.y -= negRotation ? bBox.height : 0;
118
- }
119
- else if (align === 'center') {
120
- alignAttr.x -= bBox.width / 2;
121
- alignAttr.y -= bBox.height / 2;
122
- }
123
- else if (align === 'right') {
124
- alignAttr.x -= bBox.width;
125
- alignAttr.y -= negRotation ? 0 : bBox.height;
126
- }
127
- dataLabel.placed = true;
128
- dataLabel.alignAttr = alignAttr;
119
+ dataLabel[isNew ? 'attr' : 'animate'](alignAttr);
129
120
  }
130
121
  else {
131
122
  setStartPos(alignTo); // data sorting
@@ -138,12 +129,36 @@ var DataLabel;
138
129
  // Now check that the data label is within the plot area
139
130
  }
140
131
  else if (pick(options.crop, true)) {
132
+ var x = alignAttr.x, y = alignAttr.y;
133
+ x += bBoxCorrection[0];
134
+ y += bBoxCorrection[1];
135
+ // Uncomment this block to visualize the bounding boxes used for
136
+ // determining visibility
137
+ /*
138
+ chart.renderer.rect(
139
+ chart.plotLeft + alignAttr.x + bBox.x,
140
+ chart.plotTop + alignAttr.y + bBox.y + 9999,
141
+ bBox.width,
142
+ bBox.height
143
+ ).attr({
144
+ stroke: 'rgba(0, 0, 0, 0.3)',
145
+ 'stroke-width': 0.5
146
+ }).add();
147
+ chart.renderer.circle(
148
+ chart.plotLeft + alignAttr.x,
149
+ chart.plotTop + alignAttr.y,
150
+ 2
151
+ ).attr({
152
+ fill: 'red',
153
+ zIndex: 20
154
+ }).add();
155
+ // */
141
156
  visible =
142
- chart.isInsidePlot(alignAttr.x, alignAttr.y, {
157
+ chart.isInsidePlot(x, y, {
143
158
  paneCoordinates: true,
144
159
  series: series
145
160
  }) &&
146
- chart.isInsidePlot(alignAttr.x + bBox.width, alignAttr.y + bBox.height, {
161
+ chart.isInsidePlot(x + bBox.width, y + bBox.height, {
147
162
  paneCoordinates: true,
148
163
  series: series
149
164
  });
@@ -167,9 +182,12 @@ var DataLabel;
167
182
  }
168
183
  // Show or hide based on the final aligned position
169
184
  if (!visible && (!enabledDataSorting || justify)) {
170
- dataLabel.hide(true);
185
+ dataLabel.hide();
171
186
  dataLabel.placed = false; // don't animate back in
172
187
  }
188
+ else {
189
+ dataLabel.show();
190
+ }
173
191
  }
174
192
  /**
175
193
  * Handle the dataLabels.filter option.
@@ -235,7 +253,7 @@ var DataLabel;
235
253
  var group = series.dataLabelsGroup;
236
254
  if (group) {
237
255
  if (series.visible) { // #2597, #3023, #3024
238
- dataLabelsGroup.show(true);
256
+ dataLabelsGroup.show();
239
257
  }
240
258
  group[seriesOptions.animation ? 'animate' : 'attr']({ opacity: 1 }, animationConfig);
241
259
  }
@@ -360,10 +378,10 @@ var DataLabel;
360
378
  point.dataLabels = point.dataLabels || [];
361
379
  dataLabel = point.dataLabels[i] = rotation ?
362
380
  // Labels don't rotate, use text element
363
- renderer.text(labelText, 0, -9999, labelOptions.useHTML)
381
+ renderer.text(labelText, 0, 0, labelOptions.useHTML)
364
382
  .addClass('highcharts-data-label') :
365
383
  // We can use label
366
- renderer.label(labelText, 0, -9999, labelOptions.shape, null, null, labelOptions.useHTML, null, 'data-label');
384
+ renderer.label(labelText, 0, 0, labelOptions.shape, null, null, labelOptions.useHTML, null, 'data-label');
367
385
  // Store for backwards compatibility
368
386
  if (!i) {
369
387
  point.dataLabel = dataLabel;
@@ -404,6 +422,9 @@ var DataLabel;
404
422
  // we need to align it
405
423
  series.alignDataLabel(point, dataLabel, labelOptions, null, isNew);
406
424
  }
425
+ else if (dataLabel) {
426
+ dataLabel.hide();
427
+ }
407
428
  });
408
429
  });
409
430
  }
@@ -826,8 +826,18 @@ var Series = /** @class */ (function () {
826
826
  */
827
827
  Series.prototype.setData = function (data, redraw, animation, updatePoints) {
828
828
  var series = this, oldData = series.points, oldDataLength = (oldData && oldData.length) || 0, options = series.options, chart = series.chart, dataSorting = options.dataSorting, xAxis = series.xAxis, turboThreshold = options.turboThreshold, xData = this.xData, yData = this.yData, pointArrayMap = series.pointArrayMap, valueCount = pointArrayMap && pointArrayMap.length, keys = options.keys;
829
- var i, pt, updatedData, indexOfX = 0, indexOfY = 1, firstPoint = null;
830
- data = data || [];
829
+ var i, pt, updatedData, indexOfX = 0, indexOfY = 1, firstPoint = null, copiedData;
830
+ if (!chart.options.chart.allowMutatingData) { // #4259
831
+ // Remove old reference
832
+ if (options.data) {
833
+ delete series.options.data;
834
+ }
835
+ if (series.userOptions.data) {
836
+ delete series.userOptions.data;
837
+ }
838
+ copiedData = merge(true, data);
839
+ }
840
+ data = copiedData || data || [];
831
841
  var dataLength = data.length;
832
842
  redraw = pick(redraw, true);
833
843
  if (dataSorting && dataSorting.enabled) {
@@ -835,7 +845,8 @@ var Series = /** @class */ (function () {
835
845
  }
836
846
  // First try to run Point.update which is cheaper, allows animation,
837
847
  // and keeps references to points.
838
- if (updatePoints !== false &&
848
+ if (chart.options.chart.allowMutatingData &&
849
+ updatePoints !== false &&
839
850
  dataLength &&
840
851
  oldDataLength &&
841
852
  !series.cropped &&
@@ -2112,10 +2123,10 @@ var Series = /** @class */ (function () {
2112
2123
  else if (series.visible) {
2113
2124
  // If zones were removed, restore graph and area
2114
2125
  if (graph) {
2115
- graph.show(true);
2126
+ graph.show();
2116
2127
  }
2117
2128
  if (area) {
2118
- area.show(true);
2129
+ area.show();
2119
2130
  }
2120
2131
  }
2121
2132
  };
@@ -2565,7 +2576,7 @@ var Series = /** @class */ (function () {
2565
2576
  else if (series.graph) { // create
2566
2577
  series.tracker = renderer.path(trackerPath)
2567
2578
  .attr({
2568
- visibility: series.visible ? 'visible' : 'hidden',
2579
+ visibility: series.visible ? 'inherit' : 'hidden',
2569
2580
  zIndex: 2
2570
2581
  })
2571
2582
  .addClass(trackByArea ?
@@ -2886,7 +2897,8 @@ var Series = /** @class */ (function () {
2886
2897
  series.hasOptionChanged('keys'));
2887
2898
  newType = newType || initialType;
2888
2899
  if (keepPoints) {
2889
- preserve.push('data', 'isDirtyData', 'points', 'processedXData', 'processedYData', 'xIncrement', 'cropped', '_hasPointMarkers', '_hasPointLabels', 'clips', // #15420
2900
+ preserve.push('data', 'isDirtyData', 'points', 'processedData', // #17057
2901
+ 'processedXData', 'processedYData', 'xIncrement', 'cropped', '_hasPointMarkers', '_hasPointLabels', 'clips', // #15420
2890
2902
  // Networkgraph (#14397)
2891
2903
  'nodes', 'layout',
2892
2904
  // Treemap
@@ -715,7 +715,7 @@ function getMagnitude(num) {
715
715
  function normalizeTickInterval(interval, multiples, magnitude, allowDecimals, hasTickAmount) {
716
716
  var i, retInterval = interval;
717
717
  // round to a tenfold of 1, 2, 2.5 or 5
718
- magnitude = pick(magnitude, 1);
718
+ magnitude = pick(magnitude, getMagnitude(interval));
719
719
  var normalized = interval / magnitude;
720
720
  // multiples for a linear scale
721
721
  if (!multiples) {
@@ -318,7 +318,7 @@ var Annotation = /** @class */ (function () {
318
318
  opacity: 0,
319
319
  zIndex: this.options.zIndex,
320
320
  visibility: this.options.visible ?
321
- 'visible' :
321
+ 'inherit' :
322
322
  'hidden'
323
323
  })
324
324
  .add();
@@ -355,7 +355,7 @@ var Annotation = /** @class */ (function () {
355
355
  */
356
356
  Annotation.prototype.setVisibility = function (visible) {
357
357
  var options = this.options, navigation = this.chart.navigationBindings, visibility = pick(visible, !options.visible);
358
- this.graphic.attr('visibility', visibility ? 'visible' : 'hidden');
358
+ this.graphic.attr('visibility', visibility ? 'inherit' : 'hidden');
359
359
  if (!visibility) {
360
360
  this.setControlPointsVisibility(false);
361
361
  if (navigation.activeAnnotation === this &&
@@ -82,7 +82,7 @@ var ControlPoint = /** @class */ (function () {
82
82
  *
83
83
  */
84
84
  ControlPoint.prototype.setVisibility = function (visible) {
85
- this.graphic.attr('visibility', visible ? 'visible' : 'hidden');
85
+ this.graphic[visible ? 'show' : 'hide']();
86
86
  this.options.visible = visible;
87
87
  };
88
88
  /**
@@ -948,6 +948,14 @@ setOptions({
948
948
  }
949
949
  ]
950
950
  },
951
+ /**
952
+ * A ellipse annotation bindings. Includes `start` and two events in
953
+ * `steps` array. First updates the second point, responsible for a
954
+ * rx width, and second updates the ry width.
955
+ *
956
+ * @type {Highcharts.NavigationBindingsOptionsObject}
957
+ * @default {"className": "highcharts-ellipse-annotation", "start": function() {}, "steps": [function() {}], "annotationsOptions": {}}
958
+ */
951
959
  ellipseAnnotation: {
952
960
  className: 'highcharts-ellipse-annotation',
953
961
  start: function (e) {
@@ -1094,7 +1102,7 @@ setOptions({
1094
1102
  * from a different server.
1095
1103
  *
1096
1104
  * @type {string}
1097
- * @default https://code.highcharts.com/10.0.0/gfx/stock-icons/
1105
+ * @default https://code.highcharts.com/10.1.0/gfx/stock-icons/
1098
1106
  * @since 7.1.3
1099
1107
  * @apioption navigation.iconsURL
1100
1108
  */
@@ -1111,7 +1111,7 @@ addEvent(NavigationBindings, 'showPopup', function (config) {
1111
1111
  this.popup = new H.Popup(this.chart.container, (this.chart.options.navigation.iconsURL ||
1112
1112
  (this.chart.options.stockTools &&
1113
1113
  this.chart.options.stockTools.gui.iconsURL) ||
1114
- 'https://code.highcharts.com/10.0.0/gfx/stock-icons/'), this.chart);
1114
+ 'https://code.highcharts.com/10.1.0/gfx/stock-icons/'), this.chart);
1115
1115
  }
1116
1116
  this.popup.showForm(config.formType, this.chart, config.options, config.onSubmit);
1117
1117
  });
@@ -284,8 +284,7 @@ var Breadcrumbs = /** @class */ (function () {
284
284
  * Returns the SVG button
285
285
  */
286
286
  Breadcrumbs.prototype.renderButton = function (breadcrumb, posX, posY) {
287
- var breadcrumbs = this, chart = this.chart, breadcrumbsOptions = breadcrumbs.options, buttonTheme = merge(breadcrumbsOptions.buttonTheme), states = buttonTheme.states;
288
- delete buttonTheme.states;
287
+ var breadcrumbs = this, chart = this.chart, breadcrumbsOptions = breadcrumbs.options, buttonTheme = merge(breadcrumbsOptions.buttonTheme);
289
288
  var button = chart.renderer
290
289
  .button(breadcrumbs.getButtonText(breadcrumb), posX, posY, function (e) {
291
290
  // Extract events from button object and call
@@ -307,7 +306,7 @@ var Breadcrumbs = /** @class */ (function () {
307
306
  }
308
307
  fireEvent(breadcrumbs, 'up', e);
309
308
  }
310
- }, buttonTheme, states && states.hover, states && states.select, states && states.disabled)
309
+ }, buttonTheme)
311
310
  .addClass('highcharts-breadcrumbs-button')
312
311
  .add(breadcrumbs.group);
313
312
  if (!chart.styledMode) {
@@ -652,9 +652,11 @@ seriesProto.generatePoints = function () {
652
652
  */
653
653
  Axis.prototype.applyGrouping = function (e) {
654
654
  var axis = this, series = axis.series;
655
+ // Reset the groupPixelWidth for all series, #17141.
655
656
  series.forEach(function (series) {
656
- // Reset the groupPixelWidth, then calculate if needed.
657
657
  series.groupPixelWidth = void 0; // #2110
658
+ });
659
+ series.forEach(function (series) {
658
660
  series.groupPixelWidth = (axis.getGroupPixelWidth &&
659
661
  axis.getGroupPixelWidth());
660
662
  if (series.groupPixelWidth) {
@@ -101,6 +101,10 @@ var errorMessages = {
101
101
  "32": {
102
102
  "title": "Deprecated function or property",
103
103
  "text": "<h1>Deprecated function or property</h1><p>This error occurs when using a deprecated function or property. Consult the <a href=\"https://api.highcharts.com/\">API documentation</a> for alternatives, if no replacement is mentioned by the error itself.</p>"
104
+ },
105
+ "33": {
106
+ "title": "Invalid attribute or tagName",
107
+ "text": "<h1>Invalid attribute or tagName</h1><p>This error occurs if HTML in the chart configuration contains unknown tag names or attributes. Unknown tag names or attributes are those not present in the _allow lists_.</p><p>To fix the error, consider</p><ul><li>Is your tag name or attribute spelled correctly? For example, <code>lineargradient</code></li></ul><p> would be blocked as it is a misspelling for <code>linearGradient</code>.</p><ul><li>Is it allowed in Highcharts? For example, <code>onclick</code> attributes are blocked as</li></ul><p> they pose a real security threat.</p><p>This error occurs because attributes and tag names are sanitized of potentially harmful content from the chart configuration before being added to the DOM. Consult the <a href=\"https://www.highcharts.com/docs/chart-concepts/security\">security documentation</a> for more information.</p>"
104
108
  }
105
109
  };
106
110
  export default errorMessages;
@@ -621,13 +621,13 @@ var createBreadcrumbsList = function (chart) {
621
621
  levelOptions: drilldownLevels[0].seriesOptions
622
622
  });
623
623
  }
624
- var lastBreadcrumb_1 = list[list.length - 1];
625
- drilldownLevels.forEach(function (level) {
624
+ drilldownLevels.forEach(function (level, i) {
625
+ var lastBreadcrumb = list[list.length - 1];
626
626
  // If level is already added to breadcrumbs list,
627
627
  // don't add it again- drilling categories
628
628
  // + 1 because of the wrong levels numeration
629
629
  // in drilldownLevels array.
630
- if (level.levelNumber + 1 > lastBreadcrumb_1.level) {
630
+ if (level.levelNumber + 1 > lastBreadcrumb.level) {
631
631
  list.push({
632
632
  level: level.levelNumber + 1,
633
633
  levelOptions: merge({
@@ -729,7 +729,9 @@ Chart.prototype.drillUp = function () {
729
729
  }
730
730
  fireEvent(chart, 'afterDrillUp');
731
731
  this.redraw();
732
- this.ddDupes.length = []; // #3315
732
+ if (this.ddDupes) {
733
+ this.ddDupes.length = 0; // #3315
734
+ } // #8324
733
735
  // Fire a once-off event after all series have been drilled up (#5158)
734
736
  fireEvent(chart, 'drillupall');
735
737
  };
@@ -295,8 +295,7 @@ addEvent(Chart, 'render', function () {
295
295
  if (this.options &&
296
296
  this.options.exporting &&
297
297
  this.options.exporting.showTable &&
298
- !this.options.chart.forExport &&
299
- !this.dataTableDiv) {
298
+ !this.options.chart.forExport) {
300
299
  this.viewData();
301
300
  }
302
301
  });
@@ -18,7 +18,7 @@ var defaultOptions = D.defaultOptions;
18
18
  import ExportingDefaults from './ExportingDefaults.js';
19
19
  import ExportingSymbols from './ExportingSymbols.js';
20
20
  import G from '../../Core/Globals.js';
21
- var doc = G.doc, win = G.win;
21
+ var doc = G.doc, SVG_NS = G.SVG_NS, win = G.win;
22
22
  import HU from '../../Core/HttpUtilities.js';
23
23
  import U from '../../Core/Utilities.js';
24
24
  var addEvent = U.addEvent, css = U.css, createElement = U.createElement, discardElement = U.discardElement, extend = U.extend, find = U.find, fireEvent = U.fireEvent, isObject = U.isObject, merge = U.merge, objectEach = U.objectEach, pick = U.pick, removeEvent = U.removeEvent, uniqueKey = U.uniqueKey;
@@ -103,13 +103,12 @@ var Exporting;
103
103
  if (btnOptions.enabled === false || !btnOptions.theme) {
104
104
  return;
105
105
  }
106
- var attr = btnOptions.theme, states = attr.states, hover = states && states.hover, select = states && states.select;
106
+ var attr = btnOptions.theme;
107
107
  var callback;
108
108
  if (!chart.styledMode) {
109
109
  attr.fill = pick(attr.fill, "#ffffff" /* backgroundColor */);
110
110
  attr.stroke = pick(attr.stroke, 'none');
111
111
  }
112
- delete attr.states;
113
112
  if (onclick) {
114
113
  callback = function (e) {
115
114
  if (e) {
@@ -144,7 +143,7 @@ var Exporting;
144
143
  attr.stroke = pick(attr.stroke, 'none');
145
144
  }
146
145
  var button = renderer
147
- .button(btnOptions.text, 0, 0, callback, attr, hover, select)
146
+ .button(btnOptions.text, 0, 0, callback, attr)
148
147
  .addClass(options.className)
149
148
  .attr({
150
149
  title: pick(chart.options.lang[btnOptions._titleKey || btnOptions.titleKey], '')
@@ -825,10 +824,10 @@ var Exporting;
825
824
  visibility: 'hidden'
826
825
  });
827
826
  doc.body.appendChild(iframe);
828
- var iframeDoc = iframe.contentWindow.document;
829
- iframeDoc.open();
830
- iframeDoc.write('<svg xmlns="http://www.w3.org/2000/svg"></svg>');
831
- iframeDoc.close();
827
+ var iframeDoc = (iframe.contentWindow && iframe.contentWindow.document);
828
+ if (iframeDoc) {
829
+ iframeDoc.body.appendChild(iframeDoc.createElementNS(SVG_NS, 'svg'));
830
+ }
832
831
  /**
833
832
  * Call this on all elements and recurse to children
834
833
  * @private
@@ -836,7 +835,10 @@ var Exporting;
836
835
  * Element child
837
836
  */
838
837
  function recurse(node) {
839
- var styles, parentStyles, cssText = '', dummy, styleAttr, blacklisted, whitelisted, i;
838
+ var filteredStyles = {};
839
+ var styles, parentStyles,
840
+ // cssText = '',
841
+ dummy, styleAttr, blacklisted, whitelisted, i;
840
842
  /**
841
843
  * Check computed styles and whether they are in the white/blacklist
842
844
  * for styles or atttributes.
@@ -883,12 +885,13 @@ var Exporting;
883
885
  // Styles
884
886
  }
885
887
  else {
886
- cssText += hyphenate(prop) + ':' + val + ';';
888
+ filteredStyles[prop] = val;
887
889
  }
888
890
  }
889
891
  }
890
892
  }
891
- if (node.nodeType === 1 &&
893
+ if (iframeDoc &&
894
+ node.nodeType === 1 &&
892
895
  unstyledElements.indexOf(node.nodeName) === -1) {
893
896
  styles = win.getComputedStyle(node, null);
894
897
  parentStyles = node.nodeName === 'svg' ?
@@ -929,10 +932,16 @@ var Exporting;
929
932
  }
930
933
  }
931
934
  // Apply styles
935
+ /*
932
936
  if (cssText) {
933
937
  styleAttr = node.getAttribute('style');
934
- node.setAttribute('style', (styleAttr ? styleAttr + ';' : '') + cssText);
938
+ node.setAttribute(
939
+ 'style',
940
+ (styleAttr ? styleAttr + ';' : '') + cssText
941
+ );
935
942
  }
943
+ */
944
+ css(node, filteredStyles);
936
945
  // Set default stroke width (needed at least for IE)
937
946
  if (node.nodeName === 'svg') {
938
947
  node.setAttribute('stroke-width', '1px');
@@ -947,7 +956,7 @@ var Exporting;
947
956
  /**
948
957
  * Remove the dummy objects used to get defaults
949
958
  * @private
950
- */
959
+ */
951
960
  function tearDown() {
952
961
  dummySVG.parentNode.removeChild(dummySVG);
953
962
  // Remove trash from DOM that stayed after each exporting