highcharts 9.3.2 → 10.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (700) hide show
  1. package/bower.json +1 -1
  2. package/css/highcharts.css +19 -2
  3. package/css/highcharts.scss +17 -2
  4. package/css/themes/dark-unica.css +19 -2
  5. package/css/themes/grid-light.css +19 -2
  6. package/css/themes/sand-signika.css +19 -2
  7. package/es-modules/Accessibility/A11yI18n.js +4 -4
  8. package/es-modules/Accessibility/Accessibility.js +1 -1
  9. package/es-modules/Accessibility/Components/ContainerComponent.js +8 -9
  10. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +14 -9
  11. package/es-modules/Accessibility/Components/LegendComponent.js +31 -23
  12. package/es-modules/Accessibility/Components/MenuComponent.js +15 -5
  13. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +2 -2
  14. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +7 -6
  15. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +1 -1
  16. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +0 -1
  17. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +34 -18
  18. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +84 -33
  19. package/es-modules/Accessibility/Components/ZoomComponent.js +13 -10
  20. package/es-modules/Accessibility/FocusBorder.js +6 -5
  21. package/es-modules/Accessibility/HighContrastMode.js +2 -2
  22. package/es-modules/Accessibility/KeyboardNavigation.js +113 -98
  23. package/es-modules/Accessibility/Options/LangOptions.js +36 -31
  24. package/es-modules/Accessibility/Options/Options.js +66 -3
  25. package/es-modules/Accessibility/ProxyElement.js +14 -6
  26. package/es-modules/Accessibility/ProxyProvider.js +10 -2
  27. package/es-modules/Accessibility/Utils/ChartUtilities.js +9 -4
  28. package/es-modules/Core/Axis/Axis.js +180 -73
  29. package/es-modules/Core/Axis/Color/ColorAxis.js +22 -5
  30. package/es-modules/Core/Axis/GridAxis.js +15 -11
  31. package/es-modules/Core/Axis/LogarithmicAxis.js +1 -1
  32. package/es-modules/Core/Axis/OrdinalAxis.js +3 -2
  33. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +1 -1
  34. package/es-modules/Core/Axis/StackingAxis.js +0 -1
  35. package/es-modules/Core/Axis/Tick.js +2 -2
  36. package/es-modules/Core/Axis/TreeGridTick.js +11 -0
  37. package/es-modules/Core/Chart/Chart.js +21 -3
  38. package/es-modules/Core/Chart/Chart3D.js +1 -11
  39. package/es-modules/Core/Chart/ChartDefaults.js +43 -11
  40. package/es-modules/Core/Chart/MapChart.js +1 -6
  41. package/es-modules/Core/Chart/StockChart.js +1 -1
  42. package/es-modules/Core/DefaultOptions.js +8 -4
  43. package/es-modules/Core/Geometry/PolygonClip.js +84 -0
  44. package/es-modules/Core/Globals.js +4 -18
  45. package/es-modules/Core/HttpUtilities.js +13 -8
  46. package/es-modules/Core/Legend/Legend.js +11 -9
  47. package/es-modules/Core/Navigator.js +10 -7
  48. package/es-modules/Core/Pointer.js +15 -11
  49. package/es-modules/Core/Renderer/HTML/AST.js +68 -8
  50. package/es-modules/Core/Renderer/SVG/SVGElement.js +47 -63
  51. package/es-modules/Core/Renderer/SVG/SVGElement3D.js +17 -5
  52. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +31 -28
  53. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +1 -1
  54. package/es-modules/Core/Renderer/SVG/TextBuilder.js +12 -10
  55. package/es-modules/Core/Scrollbar.js +9 -5
  56. package/es-modules/Core/Series/DataLabel.js +65 -36
  57. package/es-modules/Core/Series/Point.js +2 -2
  58. package/es-modules/Core/Series/Series.js +52 -22
  59. package/es-modules/Core/Series/SeriesDefaults.js +4 -1
  60. package/es-modules/Core/Tooltip.js +14 -31
  61. package/es-modules/Core/Utilities.js +29 -29
  62. package/es-modules/Extensions/Annotations/Annotations.js +9 -2
  63. package/es-modules/Extensions/Annotations/ControlPoint.js +1 -1
  64. package/es-modules/Extensions/Annotations/MockPoint.js +1 -1
  65. package/es-modules/Extensions/Annotations/NavigationBindings.js +9 -1
  66. package/es-modules/Extensions/Annotations/Popup.js +1 -1
  67. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +5 -3
  68. package/es-modules/Extensions/Boost/BoostInit.js +6 -1
  69. package/es-modules/Extensions/Boost/BoostOptions.js +26 -0
  70. package/es-modules/Extensions/Boost/Boostables.js +1 -0
  71. package/es-modules/Extensions/Boost/WGLRenderer.js +48 -37
  72. package/es-modules/Extensions/Boost/WGLShader.js +4 -3
  73. package/es-modules/Extensions/Breadcrumbs.js +873 -0
  74. package/es-modules/Extensions/Data.js +26 -14
  75. package/es-modules/Extensions/DataGrouping.js +8 -3
  76. package/es-modules/Extensions/Debugger/ErrorMessages.js +4 -0
  77. package/es-modules/Extensions/DraggablePoints.js +9 -7
  78. package/es-modules/Extensions/Drilldown.js +150 -95
  79. package/es-modules/Extensions/ExportData.js +1 -2
  80. package/es-modules/Extensions/Exporting/Exporting.js +31 -20
  81. package/es-modules/Extensions/Exporting/ExportingDefaults.js +49 -1
  82. package/es-modules/Extensions/FullScreen.js +121 -54
  83. package/es-modules/Extensions/GeoJSON.js +151 -125
  84. package/es-modules/Extensions/MarkerClusters.js +34 -20
  85. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +110 -22
  86. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  87. package/es-modules/Extensions/Oldie/Oldie.js +1 -1
  88. package/es-modules/Extensions/OverlappingDataLabels.js +5 -4
  89. package/es-modules/Extensions/Polar.js +4 -1
  90. package/es-modules/Extensions/ScrollablePlotArea.js +5 -1
  91. package/es-modules/Extensions/Stacking.js +4 -3
  92. package/es-modules/Extensions/Themes/HighContrastDark.js +10 -10
  93. package/es-modules/Extensions/Themes/HighContrastLight.js +10 -10
  94. package/es-modules/Maps/MapNavigation.js +50 -13
  95. package/es-modules/Maps/MapPointer.js +16 -0
  96. package/es-modules/Maps/MapUtilities.js +56 -0
  97. package/es-modules/Maps/MapView.js +611 -136
  98. package/es-modules/Maps/MapViewInsetsOptionsDefault.js +148 -0
  99. package/es-modules/Maps/MapViewOptionsDefault.js +60 -20
  100. package/es-modules/Maps/Projection.js +169 -77
  101. package/es-modules/Maps/Projections/EqualEarth.js +15 -6
  102. package/es-modules/Maps/Projections/LambertConformalConic.js +27 -19
  103. package/es-modules/Maps/Projections/Miller.js +23 -10
  104. package/es-modules/Maps/Projections/Orthographic.js +21 -10
  105. package/es-modules/Maps/Projections/WebMercator.js +25 -13
  106. package/es-modules/Series/ArcDiagram/ArcDiagramPoint.js +77 -0
  107. package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +589 -0
  108. package/es-modules/Series/CenteredUtilities.js +6 -1
  109. package/es-modules/Series/Column/ColumnSeries.js +4 -3
  110. package/es-modules/Series/DataModifyComposition.js +1 -0
  111. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +2 -2
  112. package/es-modules/Series/DrawPointComposition.js +7 -4
  113. package/es-modules/Series/Flags/FlagsSeries.js +7 -12
  114. package/es-modules/Series/Gauge/GaugeSeries.js +1 -1
  115. package/es-modules/Series/Heatmap/HeatmapSeries.js +13 -20
  116. package/es-modules/Series/Lollipop/LollipopSeries.js +1 -1
  117. package/es-modules/Series/Map/MapPoint.js +24 -1
  118. package/es-modules/Series/Map/MapSeries.js +206 -169
  119. package/es-modules/Series/MapBubble/MapBubblePoint.js +16 -24
  120. package/es-modules/Series/MapBubble/MapBubbleSeries.js +58 -1
  121. package/es-modules/Series/MapPoint/MapPointPoint.js +2 -8
  122. package/es-modules/Series/MapPoint/MapPointSeries.js +40 -14
  123. package/es-modules/Series/NodesComposition.js +60 -13
  124. package/es-modules/Series/OHLC/OHLCSeries.js +7 -0
  125. package/es-modules/Series/Organization/OrganizationPoint.js +68 -2
  126. package/es-modules/Series/Organization/OrganizationSeries.js +79 -25
  127. package/es-modules/Series/Pie/PieDataLabel.js +3 -1
  128. package/es-modules/Series/Pie/PiePoint.js +12 -5
  129. package/es-modules/Series/Pie/PieSeries.js +12 -1
  130. package/es-modules/Series/Pie3D/Pie3DSeries.js +19 -0
  131. package/es-modules/Series/Sankey/SankeyColumnComposition.js +193 -0
  132. package/es-modules/Series/Sankey/SankeyPoint.js +37 -1
  133. package/es-modules/Series/Sankey/SankeySeries.js +13 -128
  134. package/es-modules/Series/Scatter/ScatterSeries.js +1 -1
  135. package/es-modules/Series/Sunburst/SunburstSeries.js +14 -3
  136. package/es-modules/Series/Treemap/TreemapSeries.js +88 -80
  137. package/es-modules/Series/Waterfall/WaterfallSeries.js +2 -0
  138. package/es-modules/Series/Wordcloud/WordcloudSeries.js +4 -4
  139. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +9 -2
  140. package/es-modules/Stock/StockToolsBindings.js +31 -24
  141. package/es-modules/Stock/StockToolsGui.js +1 -1
  142. package/es-modules/masters/highcharts-3d.src.js +1 -1
  143. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  144. package/es-modules/masters/highcharts-more.src.js +1 -1
  145. package/es-modules/masters/highcharts.src.js +1 -1
  146. package/es-modules/masters/highmaps.src.js +1 -1
  147. package/es-modules/masters/highstock.src.js +1 -1
  148. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  149. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  150. package/es-modules/masters/indicators/ao.src.js +1 -1
  151. package/es-modules/masters/indicators/apo.src.js +1 -1
  152. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  153. package/es-modules/masters/indicators/aroon.src.js +1 -1
  154. package/es-modules/masters/indicators/atr.src.js +1 -1
  155. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  156. package/es-modules/masters/indicators/cci.src.js +1 -1
  157. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  158. package/es-modules/masters/indicators/cmf.src.js +1 -1
  159. package/es-modules/masters/indicators/cmo.src.js +1 -1
  160. package/es-modules/masters/indicators/dema.src.js +1 -1
  161. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  162. package/es-modules/masters/indicators/dmi.src.js +1 -1
  163. package/es-modules/masters/indicators/dpo.src.js +1 -1
  164. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  165. package/es-modules/masters/indicators/indicators-all.src.js +1 -1
  166. package/es-modules/masters/indicators/indicators.src.js +1 -1
  167. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  168. package/es-modules/masters/indicators/klinger.src.js +1 -1
  169. package/es-modules/masters/indicators/macd.src.js +1 -1
  170. package/es-modules/masters/indicators/mfi.src.js +1 -1
  171. package/es-modules/masters/indicators/momentum.src.js +1 -1
  172. package/es-modules/masters/indicators/natr.src.js +1 -1
  173. package/es-modules/masters/indicators/obv.src.js +1 -1
  174. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  175. package/es-modules/masters/indicators/ppo.src.js +1 -1
  176. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  177. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  178. package/es-modules/masters/indicators/psar.src.js +1 -1
  179. package/es-modules/masters/indicators/regressions.src.js +1 -1
  180. package/es-modules/masters/indicators/roc.src.js +1 -1
  181. package/es-modules/masters/indicators/rsi.src.js +1 -1
  182. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  183. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  184. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  185. package/es-modules/masters/indicators/tema.src.js +1 -1
  186. package/es-modules/masters/indicators/trendline.src.js +1 -1
  187. package/es-modules/masters/indicators/trix.src.js +1 -1
  188. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  189. package/es-modules/masters/indicators/vwap.src.js +1 -1
  190. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  191. package/es-modules/masters/indicators/wma.src.js +1 -1
  192. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  193. package/es-modules/masters/modules/accessibility.src.js +1 -1
  194. package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
  195. package/es-modules/masters/modules/annotations.src.js +1 -1
  196. package/es-modules/masters/modules/arc-diagram.src.js +14 -0
  197. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  198. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  199. package/es-modules/masters/modules/boost.src.js +1 -1
  200. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  201. package/es-modules/masters/modules/bullet.src.js +1 -1
  202. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  203. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  204. package/es-modules/masters/modules/cylinder.src.js +1 -1
  205. package/es-modules/masters/modules/data.src.js +1 -1
  206. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  207. package/es-modules/masters/modules/debugger.src.js +1 -1
  208. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  209. package/es-modules/masters/modules/dotplot.src.js +1 -1
  210. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  211. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  212. package/es-modules/masters/modules/drilldown.src.js +2 -1
  213. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  214. package/es-modules/masters/modules/export-data.src.js +1 -1
  215. package/es-modules/masters/modules/exporting.src.js +1 -1
  216. package/es-modules/masters/modules/full-screen.src.js +1 -1
  217. package/es-modules/masters/modules/funnel.src.js +1 -1
  218. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  219. package/es-modules/masters/modules/gantt.src.js +1 -1
  220. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  221. package/es-modules/masters/modules/heatmap.src.js +1 -1
  222. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  223. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  224. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  225. package/es-modules/masters/modules/item-series.src.js +1 -1
  226. package/es-modules/masters/modules/lollipop.src.js +1 -1
  227. package/es-modules/masters/modules/map.src.js +5 -1
  228. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  229. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  230. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  231. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  232. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  233. package/es-modules/masters/modules/oldie.src.js +1 -1
  234. package/es-modules/masters/modules/organization.src.js +1 -1
  235. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  236. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  237. package/es-modules/masters/modules/pareto.src.js +1 -1
  238. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  239. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  240. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  241. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  242. package/es-modules/masters/modules/sankey.src.js +1 -1
  243. package/es-modules/masters/modules/series-label.src.js +1 -1
  244. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  245. package/es-modules/masters/modules/sonification.src.js +1 -1
  246. package/es-modules/masters/modules/static-scale.src.js +1 -1
  247. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  248. package/es-modules/masters/modules/stock.src.js +1 -1
  249. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  250. package/es-modules/masters/modules/sunburst.src.js +1 -1
  251. package/es-modules/masters/modules/tilemap.src.js +1 -1
  252. package/es-modules/masters/modules/timeline.src.js +1 -1
  253. package/es-modules/masters/modules/treegrid.src.js +1 -1
  254. package/es-modules/masters/modules/treemap.src.js +5 -1
  255. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  256. package/es-modules/masters/modules/variwide.src.js +1 -1
  257. package/es-modules/masters/modules/vector.src.js +1 -1
  258. package/es-modules/masters/modules/venn.src.js +1 -1
  259. package/es-modules/masters/modules/windbarb.src.js +1 -1
  260. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  261. package/es-modules/masters/modules/xrange.src.js +1 -1
  262. package/es-modules/masters/themes/avocado.src.js +1 -1
  263. package/es-modules/masters/themes/brand-dark.src.js +1 -1
  264. package/es-modules/masters/themes/brand-light.src.js +1 -1
  265. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  266. package/es-modules/masters/themes/dark-green.src.js +1 -1
  267. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  268. package/es-modules/masters/themes/gray.src.js +1 -1
  269. package/es-modules/masters/themes/grid-light.src.js +1 -1
  270. package/es-modules/masters/themes/grid.src.js +1 -1
  271. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  272. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  273. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  274. package/es-modules/masters/themes/skies.src.js +1 -1
  275. package/es-modules/masters/themes/sunset.src.js +1 -1
  276. package/highcharts-3d.js +99 -98
  277. package/highcharts-3d.js.map +1 -1
  278. package/highcharts-3d.src.js +51 -21
  279. package/highcharts-gantt.js +808 -800
  280. package/highcharts-gantt.js.map +1 -1
  281. package/highcharts-gantt.src.js +781 -426
  282. package/highcharts-more.js +195 -194
  283. package/highcharts-more.js.map +1 -1
  284. package/highcharts-more.src.js +18 -4
  285. package/highcharts.d.ts +3224 -542
  286. package/highcharts.js +592 -584
  287. package/highcharts.js.map +1 -1
  288. package/highcharts.src.d.ts +3224 -542
  289. package/highcharts.src.js +732 -400
  290. package/highmaps.js +760 -728
  291. package/highmaps.js.map +1 -1
  292. package/highmaps.src.js +3840 -2189
  293. package/highstock.js +793 -786
  294. package/highstock.js.map +1 -1
  295. package/highstock.src.js +783 -432
  296. package/indicators/acceleration-bands.js +12 -11
  297. package/indicators/acceleration-bands.js.map +1 -1
  298. package/indicators/acceleration-bands.src.js +11 -2
  299. package/indicators/accumulation-distribution.js +5 -5
  300. package/indicators/accumulation-distribution.js.map +1 -1
  301. package/indicators/accumulation-distribution.src.js +11 -2
  302. package/indicators/ao.js +6 -6
  303. package/indicators/ao.js.map +1 -1
  304. package/indicators/ao.src.js +11 -2
  305. package/indicators/apo.js +5 -5
  306. package/indicators/apo.js.map +1 -1
  307. package/indicators/apo.src.js +11 -2
  308. package/indicators/aroon-oscillator.js +10 -10
  309. package/indicators/aroon-oscillator.js.map +1 -1
  310. package/indicators/aroon-oscillator.src.js +11 -2
  311. package/indicators/aroon.js +11 -11
  312. package/indicators/aroon.js.map +1 -1
  313. package/indicators/aroon.src.js +11 -2
  314. package/indicators/atr.js +5 -5
  315. package/indicators/atr.js.map +1 -1
  316. package/indicators/atr.src.js +11 -2
  317. package/indicators/bollinger-bands.js +12 -12
  318. package/indicators/bollinger-bands.js.map +1 -1
  319. package/indicators/bollinger-bands.src.js +11 -2
  320. package/indicators/cci.js +5 -5
  321. package/indicators/cci.js.map +1 -1
  322. package/indicators/cci.src.js +11 -2
  323. package/indicators/chaikin.js +8 -8
  324. package/indicators/chaikin.js.map +1 -1
  325. package/indicators/chaikin.src.js +11 -2
  326. package/indicators/cmf.js +6 -6
  327. package/indicators/cmf.js.map +1 -1
  328. package/indicators/cmf.src.js +11 -2
  329. package/indicators/cmo.js +5 -5
  330. package/indicators/cmo.js.map +1 -1
  331. package/indicators/cmo.src.js +11 -2
  332. package/indicators/dema.js +5 -5
  333. package/indicators/dema.js.map +1 -1
  334. package/indicators/dema.src.js +11 -2
  335. package/indicators/disparity-index.js +6 -6
  336. package/indicators/disparity-index.js.map +1 -1
  337. package/indicators/disparity-index.src.js +11 -2
  338. package/indicators/dmi.js +12 -12
  339. package/indicators/dmi.js.map +1 -1
  340. package/indicators/dmi.src.js +11 -2
  341. package/indicators/dpo.js +5 -5
  342. package/indicators/dpo.js.map +1 -1
  343. package/indicators/dpo.src.js +11 -2
  344. package/indicators/ema.js +2 -1
  345. package/indicators/ema.js.map +1 -1
  346. package/indicators/ema.src.js +10 -1
  347. package/indicators/ichimoku-kinko-hyo.js +16 -16
  348. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  349. package/indicators/ichimoku-kinko-hyo.src.js +11 -2
  350. package/indicators/indicators-all.js +195 -194
  351. package/indicators/indicators-all.js.map +1 -1
  352. package/indicators/indicators-all.src.js +21 -5
  353. package/indicators/indicators.js +13 -12
  354. package/indicators/indicators.js.map +1 -1
  355. package/indicators/indicators.src.js +21 -5
  356. package/indicators/keltner-channels.js +12 -11
  357. package/indicators/keltner-channels.js.map +1 -1
  358. package/indicators/keltner-channels.src.js +11 -2
  359. package/indicators/klinger.js +13 -13
  360. package/indicators/klinger.js.map +1 -1
  361. package/indicators/klinger.src.js +11 -2
  362. package/indicators/macd.js +12 -11
  363. package/indicators/macd.js.map +1 -1
  364. package/indicators/macd.src.js +11 -2
  365. package/indicators/mfi.js +6 -6
  366. package/indicators/mfi.js.map +1 -1
  367. package/indicators/mfi.src.js +11 -2
  368. package/indicators/momentum.js +5 -5
  369. package/indicators/momentum.js.map +1 -1
  370. package/indicators/momentum.src.js +11 -2
  371. package/indicators/natr.js +5 -4
  372. package/indicators/natr.js.map +1 -1
  373. package/indicators/natr.src.js +11 -2
  374. package/indicators/obv.js +5 -5
  375. package/indicators/obv.js.map +1 -1
  376. package/indicators/obv.src.js +11 -2
  377. package/indicators/pivot-points.js +11 -11
  378. package/indicators/pivot-points.js.map +1 -1
  379. package/indicators/pivot-points.src.js +11 -2
  380. package/indicators/ppo.js +5 -5
  381. package/indicators/ppo.js.map +1 -1
  382. package/indicators/ppo.src.js +11 -2
  383. package/indicators/price-channel.js +11 -11
  384. package/indicators/price-channel.js.map +1 -1
  385. package/indicators/price-channel.src.js +11 -2
  386. package/indicators/price-envelopes.js +8 -8
  387. package/indicators/price-envelopes.js.map +1 -1
  388. package/indicators/price-envelopes.src.js +11 -2
  389. package/indicators/psar.js +7 -6
  390. package/indicators/psar.js.map +1 -1
  391. package/indicators/psar.src.js +11 -2
  392. package/indicators/regressions.js +12 -12
  393. package/indicators/regressions.js.map +1 -1
  394. package/indicators/regressions.src.js +11 -2
  395. package/indicators/roc.js +5 -5
  396. package/indicators/roc.js.map +1 -1
  397. package/indicators/roc.src.js +11 -2
  398. package/indicators/rsi.js +6 -5
  399. package/indicators/rsi.js.map +1 -1
  400. package/indicators/rsi.src.js +11 -2
  401. package/indicators/slow-stochastic.js +5 -5
  402. package/indicators/slow-stochastic.js.map +1 -1
  403. package/indicators/slow-stochastic.src.js +11 -2
  404. package/indicators/stochastic.js +12 -12
  405. package/indicators/stochastic.js.map +1 -1
  406. package/indicators/stochastic.src.js +11 -2
  407. package/indicators/supertrend.js +10 -10
  408. package/indicators/supertrend.js.map +1 -1
  409. package/indicators/supertrend.src.js +11 -2
  410. package/indicators/tema.js +6 -6
  411. package/indicators/tema.js.map +1 -1
  412. package/indicators/tema.src.js +11 -2
  413. package/indicators/trendline.js +5 -5
  414. package/indicators/trendline.js.map +1 -1
  415. package/indicators/trendline.src.js +11 -2
  416. package/indicators/trix.js +4 -4
  417. package/indicators/trix.js.map +1 -1
  418. package/indicators/trix.src.js +11 -2
  419. package/indicators/volume-by-price.js +17 -17
  420. package/indicators/volume-by-price.js.map +1 -1
  421. package/indicators/volume-by-price.src.js +11 -2
  422. package/indicators/vwap.js +5 -5
  423. package/indicators/vwap.js.map +1 -1
  424. package/indicators/vwap.src.js +11 -2
  425. package/indicators/williams-r.js +6 -5
  426. package/indicators/williams-r.js.map +1 -1
  427. package/indicators/williams-r.src.js +11 -2
  428. package/indicators/wma.js +5 -5
  429. package/indicators/wma.js.map +1 -1
  430. package/indicators/wma.src.js +11 -2
  431. package/indicators/zigzag.js +6 -6
  432. package/indicators/zigzag.js.map +1 -1
  433. package/indicators/zigzag.src.js +11 -2
  434. package/lib/jspdf.js +299 -184
  435. package/lib/jspdf.src.js +25266 -18067
  436. package/lib/svg2pdf.js +35 -31
  437. package/lib/svg2pdf.src.js +5721 -4179
  438. package/modules/accessibility.js +245 -240
  439. package/modules/accessibility.js.map +1 -1
  440. package/modules/accessibility.src.js +510 -283
  441. package/modules/annotations-advanced.js +144 -144
  442. package/modules/annotations-advanced.js.map +1 -1
  443. package/modules/annotations-advanced.src.js +37 -11
  444. package/modules/annotations.js +79 -79
  445. package/modules/annotations.js.map +1 -1
  446. package/modules/annotations.src.js +32 -8
  447. package/modules/arc-diagram.js +25 -0
  448. package/modules/arc-diagram.js.map +1 -0
  449. package/modules/arc-diagram.src.js +778 -0
  450. package/modules/arrow-symbols.js +4 -3
  451. package/modules/arrow-symbols.js.map +1 -1
  452. package/modules/arrow-symbols.src.js +11 -2
  453. package/modules/boost-canvas.js +15 -15
  454. package/modules/boost-canvas.js.map +1 -1
  455. package/modules/boost-canvas.src.js +11 -2
  456. package/modules/boost.js +80 -79
  457. package/modules/boost.js.map +1 -1
  458. package/modules/boost.src.js +71 -43
  459. package/modules/broken-axis.js +13 -13
  460. package/modules/broken-axis.js.map +1 -1
  461. package/modules/broken-axis.src.js +11 -2
  462. package/modules/bullet.js +9 -9
  463. package/modules/bullet.js.map +1 -1
  464. package/modules/bullet.src.js +11 -2
  465. package/modules/coloraxis.js +24 -24
  466. package/modules/coloraxis.js.map +1 -1
  467. package/modules/coloraxis.src.js +33 -7
  468. package/modules/current-date-indicator.js +5 -4
  469. package/modules/current-date-indicator.js.map +1 -1
  470. package/modules/current-date-indicator.src.js +11 -2
  471. package/modules/cylinder.js +11 -11
  472. package/modules/cylinder.js.map +1 -1
  473. package/modules/cylinder.src.js +11 -2
  474. package/modules/data.js +34 -33
  475. package/modules/data.js.map +1 -1
  476. package/modules/data.src.js +59 -32
  477. package/modules/datagrouping.js +21 -20
  478. package/modules/datagrouping.js.map +1 -1
  479. package/modules/datagrouping.src.js +19 -5
  480. package/modules/debugger.js +8 -7
  481. package/modules/debugger.js.map +1 -1
  482. package/modules/debugger.src.js +15 -2
  483. package/modules/dependency-wheel.js +12 -11
  484. package/modules/dependency-wheel.js.map +1 -1
  485. package/modules/dependency-wheel.src.js +14 -5
  486. package/modules/dotplot.js +6 -6
  487. package/modules/dotplot.js.map +1 -1
  488. package/modules/dotplot.src.js +11 -2
  489. package/modules/drag-panes.js +10 -10
  490. package/modules/drag-panes.js.map +1 -1
  491. package/modules/drag-panes.src.js +11 -2
  492. package/modules/draggable-points.js +35 -34
  493. package/modules/draggable-points.js.map +1 -1
  494. package/modules/draggable-points.src.js +20 -9
  495. package/modules/drilldown.d.ts +19 -0
  496. package/modules/drilldown.js +36 -25
  497. package/modules/drilldown.js.map +1 -1
  498. package/modules/drilldown.src.d.ts +19 -0
  499. package/modules/drilldown.src.js +1091 -106
  500. package/modules/dumbbell.js +17 -17
  501. package/modules/dumbbell.js.map +1 -1
  502. package/modules/dumbbell.src.js +11 -2
  503. package/modules/export-data.js +21 -20
  504. package/modules/export-data.js.map +1 -1
  505. package/modules/export-data.src.js +12 -4
  506. package/modules/exporting.js +39 -39
  507. package/modules/exporting.js.map +1 -1
  508. package/modules/exporting.src.js +227 -92
  509. package/modules/full-screen.js +8 -7
  510. package/modules/full-screen.js.map +1 -1
  511. package/modules/full-screen.src.js +135 -58
  512. package/modules/funnel.js +12 -12
  513. package/modules/funnel.js.map +1 -1
  514. package/modules/funnel.src.js +11 -2
  515. package/modules/funnel3d.js +21 -21
  516. package/modules/funnel3d.js.map +1 -1
  517. package/modules/funnel3d.src.js +11 -2
  518. package/modules/gantt.js +216 -215
  519. package/modules/gantt.js.map +1 -1
  520. package/modules/gantt.src.js +60 -28
  521. package/modules/grid-axis.js +23 -23
  522. package/modules/grid-axis.js.map +1 -1
  523. package/modules/grid-axis.src.js +27 -13
  524. package/modules/heatmap.js +40 -39
  525. package/modules/heatmap.js.map +1 -1
  526. package/modules/heatmap.src.js +46 -27
  527. package/modules/heikinashi.js +8 -8
  528. package/modules/heikinashi.js.map +1 -1
  529. package/modules/heikinashi.src.js +11 -2
  530. package/modules/histogram-bellcurve.js +13 -13
  531. package/modules/histogram-bellcurve.js.map +1 -1
  532. package/modules/histogram-bellcurve.src.js +11 -2
  533. package/modules/hollowcandlestick.js +9 -9
  534. package/modules/hollowcandlestick.js.map +1 -1
  535. package/modules/hollowcandlestick.src.js +11 -2
  536. package/modules/item-series.js +12 -12
  537. package/modules/item-series.js.map +1 -1
  538. package/modules/item-series.src.js +11 -2
  539. package/modules/lollipop.js +7 -7
  540. package/modules/lollipop.js.map +1 -1
  541. package/modules/lollipop.src.js +12 -3
  542. package/modules/map.d.ts +80 -43
  543. package/modules/map.js +169 -144
  544. package/modules/map.js.map +1 -1
  545. package/modules/map.src.d.ts +80 -43
  546. package/modules/map.src.js +8024 -6696
  547. package/modules/marker-clusters.js +36 -36
  548. package/modules/marker-clusters.js.map +1 -1
  549. package/modules/marker-clusters.src.js +47 -23
  550. package/modules/networkgraph.d.ts +5 -0
  551. package/modules/networkgraph.js +49 -48
  552. package/modules/networkgraph.js.map +1 -1
  553. package/modules/networkgraph.src.d.ts +5 -0
  554. package/modules/networkgraph.src.js +77 -15
  555. package/modules/no-data-to-display.js +5 -5
  556. package/modules/no-data-to-display.js.map +1 -1
  557. package/modules/no-data-to-display.src.js +11 -2
  558. package/modules/offline-exporting.js +20 -18
  559. package/modules/offline-exporting.js.map +1 -1
  560. package/modules/offline-exporting.src.js +126 -25
  561. package/modules/oldie-polyfills.js +7 -7
  562. package/modules/oldie-polyfills.js.map +1 -1
  563. package/modules/oldie-polyfills.src.js +11 -2
  564. package/modules/oldie.js +30 -30
  565. package/modules/oldie.js.map +1 -1
  566. package/modules/oldie.src.js +12 -3
  567. package/modules/organization.js +16 -14
  568. package/modules/organization.js.map +1 -1
  569. package/modules/organization.src.js +166 -32
  570. package/modules/overlapping-datalabels.js +3 -2
  571. package/modules/overlapping-datalabels.js.map +1 -1
  572. package/modules/overlapping-datalabels.src.js +11 -2
  573. package/modules/parallel-coordinates.js +11 -11
  574. package/modules/parallel-coordinates.js.map +1 -1
  575. package/modules/parallel-coordinates.src.js +11 -2
  576. package/modules/pareto.js +7 -7
  577. package/modules/pareto.js.map +1 -1
  578. package/modules/pareto.src.js +11 -2
  579. package/modules/pathfinder.js +31 -31
  580. package/modules/pathfinder.js.map +1 -1
  581. package/modules/pathfinder.src.js +11 -2
  582. package/modules/pattern-fill.js +14 -14
  583. package/modules/pattern-fill.js.map +1 -1
  584. package/modules/pattern-fill.src.js +11 -2
  585. package/modules/price-indicator.js +5 -5
  586. package/modules/price-indicator.js.map +1 -1
  587. package/modules/price-indicator.src.js +11 -2
  588. package/modules/pyramid3d.js +4 -4
  589. package/modules/pyramid3d.js.map +1 -1
  590. package/modules/pyramid3d.src.js +11 -2
  591. package/modules/sankey.d.ts +5 -0
  592. package/modules/sankey.js +32 -29
  593. package/modules/sankey.js.map +1 -1
  594. package/modules/sankey.src.d.ts +5 -0
  595. package/modules/sankey.src.js +341 -157
  596. package/modules/series-label.js +18 -17
  597. package/modules/series-label.js.map +1 -1
  598. package/modules/series-label.src.js +11 -2
  599. package/modules/solid-gauge.js +10 -10
  600. package/modules/solid-gauge.js.map +1 -1
  601. package/modules/solid-gauge.src.js +11 -2
  602. package/modules/sonification.js +59 -59
  603. package/modules/sonification.js.map +1 -1
  604. package/modules/sonification.src.js +11 -2
  605. package/modules/static-scale.js +5 -4
  606. package/modules/static-scale.js.map +1 -1
  607. package/modules/static-scale.src.js +11 -2
  608. package/modules/stock-tools.js +145 -145
  609. package/modules/stock-tools.js.map +1 -1
  610. package/modules/stock-tools.src.js +64 -32
  611. package/modules/stock.js +204 -204
  612. package/modules/stock.js.map +1 -1
  613. package/modules/stock.src.js +62 -34
  614. package/modules/streamgraph.js +5 -4
  615. package/modules/streamgraph.js.map +1 -1
  616. package/modules/streamgraph.src.js +11 -2
  617. package/modules/sunburst.d.ts +3 -0
  618. package/modules/sunburst.js +73 -60
  619. package/modules/sunburst.js.map +1 -1
  620. package/modules/sunburst.src.d.ts +3 -0
  621. package/modules/sunburst.src.js +1048 -97
  622. package/modules/tilemap.js +17 -17
  623. package/modules/tilemap.js.map +1 -1
  624. package/modules/tilemap.src.js +11 -2
  625. package/modules/timeline.js +18 -18
  626. package/modules/timeline.js.map +1 -1
  627. package/modules/timeline.src.js +11 -2
  628. package/modules/treegrid.js +57 -56
  629. package/modules/treegrid.js.map +1 -1
  630. package/modules/treegrid.src.js +38 -13
  631. package/modules/treemap.d.ts +3 -0
  632. package/modules/treemap.js +53 -41
  633. package/modules/treemap.js.map +1 -1
  634. package/modules/treemap.src.d.ts +3 -0
  635. package/modules/treemap.src.js +1037 -95
  636. package/modules/variable-pie.js +9 -9
  637. package/modules/variable-pie.js.map +1 -1
  638. package/modules/variable-pie.src.js +11 -2
  639. package/modules/variwide.js +12 -12
  640. package/modules/variwide.js.map +1 -1
  641. package/modules/variwide.src.js +11 -2
  642. package/modules/vector.js +8 -7
  643. package/modules/vector.js.map +1 -1
  644. package/modules/vector.src.js +11 -2
  645. package/modules/venn.js +31 -31
  646. package/modules/venn.js.map +1 -1
  647. package/modules/venn.src.js +18 -6
  648. package/modules/windbarb.js +15 -15
  649. package/modules/windbarb.js.map +1 -1
  650. package/modules/windbarb.src.js +11 -2
  651. package/modules/wordcloud.js +24 -23
  652. package/modules/wordcloud.js.map +1 -1
  653. package/modules/wordcloud.src.js +22 -10
  654. package/modules/xrange.js +16 -16
  655. package/modules/xrange.js.map +1 -1
  656. package/modules/xrange.src.js +11 -2
  657. package/package.json +1 -1
  658. package/themes/avocado.js +4 -3
  659. package/themes/avocado.js.map +1 -1
  660. package/themes/avocado.src.js +11 -2
  661. package/themes/brand-dark.js +9 -8
  662. package/themes/brand-dark.js.map +1 -1
  663. package/themes/brand-dark.src.js +11 -2
  664. package/themes/brand-light.js +8 -8
  665. package/themes/brand-light.js.map +1 -1
  666. package/themes/brand-light.src.js +11 -2
  667. package/themes/dark-blue.js +9 -8
  668. package/themes/dark-blue.js.map +1 -1
  669. package/themes/dark-blue.src.js +11 -2
  670. package/themes/dark-green.js +9 -8
  671. package/themes/dark-green.js.map +1 -1
  672. package/themes/dark-green.src.js +11 -2
  673. package/themes/dark-unica.js +8 -7
  674. package/themes/dark-unica.js.map +1 -1
  675. package/themes/dark-unica.src.js +11 -2
  676. package/themes/gray.js +9 -8
  677. package/themes/gray.js.map +1 -1
  678. package/themes/gray.src.js +11 -2
  679. package/themes/grid-light.js +5 -4
  680. package/themes/grid-light.js.map +1 -1
  681. package/themes/grid-light.src.js +11 -2
  682. package/themes/grid.js +5 -5
  683. package/themes/grid.js.map +1 -1
  684. package/themes/grid.src.js +11 -2
  685. package/themes/high-contrast-dark.js +7 -7
  686. package/themes/high-contrast-dark.js.map +1 -1
  687. package/themes/high-contrast-dark.src.js +21 -12
  688. package/themes/high-contrast-light.js +3 -3
  689. package/themes/high-contrast-light.js.map +1 -1
  690. package/themes/high-contrast-light.src.js +21 -12
  691. package/themes/sand-signika.js +5 -5
  692. package/themes/sand-signika.js.map +1 -1
  693. package/themes/sand-signika.src.js +11 -2
  694. package/themes/skies.js +5 -5
  695. package/themes/skies.js.map +1 -1
  696. package/themes/skies.src.js +11 -2
  697. package/themes/sunset.js +3 -3
  698. package/themes/sunset.js.map +1 -1
  699. package/themes/sunset.src.js +11 -2
  700. package/es-modules/Maps/ProjectionDefinition.js +0 -9
@@ -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
  }
@@ -1048,10 +1032,9 @@ var SVGElement = /** @class */ (function () {
1048
1032
  * The bounding box with `x`, `y`, `width` and `height` properties.
1049
1033
  */
1050
1034
  SVGElement.prototype.getBBox = function (reload, rot) {
1051
- var wrapper = this, renderer = wrapper.renderer, element = wrapper.element, styles = wrapper.styles, textStr = wrapper.textStr, cache = renderer.cache, cacheKeys = renderer.cacheKeys, isSVG = element.namespaceURI === wrapper.SVG_NS, rotation = pick(rot, wrapper.rotation, 0), fontSize = renderer.styledMode ? (element &&
1035
+ var wrapper = this, alignValue = wrapper.alignValue, element = wrapper.element, renderer = wrapper.renderer, styles = wrapper.styles, textStr = wrapper.textStr, cache = renderer.cache, cacheKeys = renderer.cacheKeys, isSVG = element.namespaceURI === wrapper.SVG_NS, rotation = pick(rot, wrapper.rotation, 0), fontSize = renderer.styledMode ? (element &&
1052
1036
  SVGElement.prototype.getStyle.call(element, 'font-size')) : (styles && styles.fontSize);
1053
- var bBox, // = wrapper.bBox,
1054
- width, height, toggleTextShadowShim, cacheKey;
1037
+ var bBox, width, height, toggleTextShadowShim, cacheKey;
1055
1038
  // Avoid undefined and null (#7316)
1056
1039
  if (defined(textStr)) {
1057
1040
  cacheKey = textStr.toString();
@@ -1068,6 +1051,7 @@ var SVGElement = /** @class */ (function () {
1068
1051
  rotation,
1069
1052
  fontSize,
1070
1053
  wrapper.textWidth,
1054
+ alignValue,
1071
1055
  styles && styles.textOverflow,
1072
1056
  styles && styles.fontWeight // #12163
1073
1057
  ].join(',');
@@ -1113,7 +1097,7 @@ var SVGElement = /** @class */ (function () {
1113
1097
  // other condition is for Opera that returns a width of
1114
1098
  // -Infinity on hidden elements.
1115
1099
  if (!bBox || bBox.width < 0) {
1116
- bBox = { width: 0, height: 0 };
1100
+ bBox = { x: 0, y: 0, width: 0, height: 0 };
1117
1101
  }
1118
1102
  // VML Renderer or useHTML within SVG
1119
1103
  }
@@ -1142,11 +1126,20 @@ var SVGElement = /** @class */ (function () {
1142
1126
  }
1143
1127
  // Adjust for rotated text
1144
1128
  if (rotation) {
1145
- var rad = rotation * deg2rad;
1146
- bBox.width = Math.abs(height * Math.sin(rad)) +
1147
- Math.abs(width * Math.cos(rad));
1148
- bBox.height = Math.abs(height * Math.cos(rad)) +
1149
- Math.abs(width * Math.sin(rad));
1129
+ var baseline = Number(element.getAttribute('y') || 0) - bBox.y, alignFactor = {
1130
+ 'right': 1,
1131
+ 'center': 0.5
1132
+ }[alignValue || 0] || 0, rad = rotation * deg2rad, rad90 = (rotation - 90) * deg2rad, wCosRad = width * Math.cos(rad), wSinRad = width * Math.sin(rad), cosRad90 = Math.cos(rad90), sinRad90 = Math.sin(rad90),
1133
+ // Find the starting point on the left side baseline of
1134
+ // the text
1135
+ pX = bBox.x + alignFactor * (width - wCosRad), pY = bBox.y + baseline - alignFactor * wSinRad,
1136
+ // Find all corners
1137
+ aX = pX + baseline * cosRad90, bX = aX + wCosRad, cX = bX - height * cosRad90, dX = cX - wCosRad, aY = pY + baseline * sinRad90, bY = aY + wSinRad, cY = bY - height * sinRad90, dY = cY - wSinRad;
1138
+ // Deduct the bounding box from the corners
1139
+ bBox.x = Math.min(aX, bX, cX, dX);
1140
+ bBox.y = Math.min(aY, bY, cY, dY);
1141
+ bBox.width = Math.max(aX, bX, cX, dX) - bBox.x;
1142
+ bBox.height = Math.max(aY, bY, cY, dY) - bBox.y;
1150
1143
  }
1151
1144
  }
1152
1145
  // Cache it. When loading a chart in a hidden iframe in Firefox and
@@ -1205,21 +1198,11 @@ var SVGElement = /** @class */ (function () {
1205
1198
  *
1206
1199
  * @function Highcharts.SVGElement#hide
1207
1200
  *
1208
- * @param {boolean} [hideByTranslation=false]
1209
- * The flag to determine if element should be hidden by moving out
1210
- * of the viewport. Used for example for dataLabels.
1211
- *
1212
1201
  * @return {Highcharts.SVGElement}
1213
1202
  * Returns the SVGElement for chaining.
1214
1203
  */
1215
- SVGElement.prototype.hide = function (hideByTranslation) {
1216
- if (hideByTranslation) {
1217
- this.attr({ y: -9999 });
1218
- }
1219
- else {
1220
- this.attr({ visibility: 'hidden' });
1221
- }
1222
- return this;
1204
+ SVGElement.prototype.hide = function () {
1205
+ return this.attr({ visibility: 'hidden' });
1223
1206
  };
1224
1207
  /**
1225
1208
  * @private
@@ -1620,7 +1603,7 @@ var SVGElement = /** @class */ (function () {
1620
1603
  *
1621
1604
  * @function Highcharts.SVGElement#show
1622
1605
  *
1623
- * @param {boolean} [inherit=false]
1606
+ * @param {boolean} [inherit=true]
1624
1607
  * Set the visibility attribute to `inherit` rather than `visible`.
1625
1608
  * The difference is that an element with `visibility="visible"`
1626
1609
  * will be visible even if the parent is hidden.
@@ -1629,6 +1612,7 @@ var SVGElement = /** @class */ (function () {
1629
1612
  * Returns the SVGElement for chaining.
1630
1613
  */
1631
1614
  SVGElement.prototype.show = function (inherit) {
1615
+ if (inherit === void 0) { inherit = true; }
1632
1616
  return this.attr({ visibility: inherit ? 'inherit' : 'visible' });
1633
1617
  };
1634
1618
  /**
@@ -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.2'));
196
+ desc.element.appendChild(doc.createTextNode('Created with Highcharts 10.1.0'));
197
197
  renderer.defs = this.createElement('defs').add();
198
198
  renderer.allowHTML = allowHTML;
199
199
  renderer.forExport = forExport;
@@ -502,7 +502,7 @@ var SVGRenderer = /** @class */ (function () {
502
502
  * @param {Highcharts.SVGAttributes} [hoverState]
503
503
  * SVG attributes for the hover state.
504
504
  *
505
- * @param {Highcharts.SVGAttributes} [pressedState]
505
+ * @param {Highcharts.SVGAttributes} [selectState]
506
506
  * SVG attributes for the pressed state.
507
507
  *
508
508
  * @param {Highcharts.SVGAttributes} [disabledState]
@@ -517,57 +517,57 @@ var SVGRenderer = /** @class */ (function () {
517
517
  * @return {Highcharts.SVGElement}
518
518
  * The button element.
519
519
  */
520
- SVGRenderer.prototype.button = function (text, x, y, callback, theme, hoverState, pressedState, disabledState, shape, useHTML) {
521
- var label = this.label(text, x, y, shape, void 0, void 0, useHTML, void 0, 'button'), styledMode = this.styledMode;
520
+ SVGRenderer.prototype.button = function (text, x, y, callback, theme, hoverState, selectState, disabledState, shape, useHTML) {
521
+ var label = this.label(text, x, y, shape, void 0, void 0, useHTML, void 0, 'button'), styledMode = this.styledMode, states = (theme && theme.states) || {};
522
+ if (theme) {
523
+ delete theme.states;
524
+ }
522
525
  var curState = 0,
523
526
  // Make a copy of normalState (#13798)
524
527
  // (reference to options.rangeSelector.buttonTheme)
525
528
  normalState = theme ? merge(theme) : {};
526
- var userNormalStyle = normalState && normalState.style || {};
529
+ var normalStyle = merge({
530
+ color: "#333333" /* neutralColor80 */,
531
+ cursor: 'pointer',
532
+ fontWeight: 'normal'
533
+ }, normalState.style);
534
+ delete normalState.style;
527
535
  // Remove stylable attributes
528
536
  normalState = AST.filterUserAttributes(normalState);
529
537
  // Default, non-stylable attributes
530
538
  label.attr(merge({ padding: 8, r: 2 }, normalState));
531
- // Presentational
532
- var normalStyle, hoverStyle, pressedStyle, disabledStyle;
539
+ // Presentational. The string type is a mistake, it is just for
540
+ // compliance with SVGAttribute and is not used in button theme.
541
+ var hoverStyle, selectStyle, disabledStyle;
533
542
  if (!styledMode) {
534
543
  // Normal state - prepare the attributes
535
544
  normalState = merge({
536
545
  fill: "#f7f7f7" /* neutralColor3 */,
537
546
  stroke: "#cccccc" /* neutralColor20 */,
538
- 'stroke-width': 1,
539
- style: {
540
- color: "#333333" /* neutralColor80 */,
541
- cursor: 'pointer',
542
- fontWeight: 'normal'
543
- }
544
- }, {
545
- style: userNormalStyle
547
+ 'stroke-width': 1
546
548
  }, normalState);
547
- normalStyle = normalState.style;
548
- delete normalState.style;
549
549
  // Hover state
550
550
  hoverState = merge(normalState, {
551
551
  fill: "#e6e6e6" /* neutralColor10 */
552
- }, AST.filterUserAttributes(hoverState || {}));
552
+ }, AST.filterUserAttributes(hoverState || states.hover || {}));
553
553
  hoverStyle = hoverState.style;
554
554
  delete hoverState.style;
555
555
  // Pressed state
556
- pressedState = merge(normalState, {
556
+ selectState = merge(normalState, {
557
557
  fill: "#e6ebf5" /* highlightColor10 */,
558
558
  style: {
559
559
  color: "#000000" /* neutralColor100 */,
560
560
  fontWeight: 'bold'
561
561
  }
562
- }, AST.filterUserAttributes(pressedState || {}));
563
- pressedStyle = pressedState.style;
564
- delete pressedState.style;
562
+ }, AST.filterUserAttributes(selectState || states.select || {}));
563
+ selectStyle = selectState.style;
564
+ delete selectState.style;
565
565
  // Disabled state
566
566
  disabledState = merge(normalState, {
567
567
  style: {
568
568
  color: "#cccccc" /* neutralColor20 */
569
569
  }
570
- }, AST.filterUserAttributes(disabledState || {}));
570
+ }, AST.filterUserAttributes(disabledState || states.disabled || {}));
571
571
  disabledStyle = disabledState.style;
572
572
  delete disabledState.style;
573
573
  }
@@ -598,15 +598,18 @@ var SVGRenderer = /** @class */ (function () {
598
598
  .attr([
599
599
  normalState,
600
600
  hoverState,
601
- pressedState,
601
+ selectState,
602
602
  disabledState
603
- ][state || 0])
604
- .css([
603
+ ][state || 0]);
604
+ var css_1 = [
605
605
  normalStyle,
606
606
  hoverStyle,
607
- pressedStyle,
607
+ selectStyle,
608
608
  disabledStyle
609
- ][state || 0]);
609
+ ][state || 0];
610
+ if (isObject(css_1)) {
611
+ label.css(css_1);
612
+ }
610
613
  }
611
614
  };
612
615
  // Presentational attributes
@@ -165,7 +165,7 @@ var SVGRenderer3D = /** @class */ (function (_super) {
165
165
  var chart = charts[renderer.chartIndex], vertexes2d = perspective(this.vertexes, chart, this.insidePlotArea), path = renderer.toLinePath(vertexes2d, true), area = shapeArea(vertexes2d);
166
166
  hash.d = path;
167
167
  hash.visibility = (this.enabled && area > 0) ?
168
- 'visible' : 'hidden';
168
+ 'inherit' : 'hidden';
169
169
  }
170
170
  return SVGElement.prototype.attr.apply(this, arguments);
171
171
  };
@@ -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
@@ -379,6 +379,8 @@ var Scrollbar = /** @class */ (function () {
379
379
  Scrollbar.prototype.position = function (x, y, width, height) {
380
380
  var scroller = this, options = scroller.options, vertical = options.vertical, method = scroller.rendered ? 'animate' : 'attr';
381
381
  var xOffset = height, yOffset = 0;
382
+ // Make the scrollbar visible when it is repositioned, #15763.
383
+ scroller.group.show();
382
384
  scroller.x = x;
383
385
  scroller.y = y + this.trackBorderWidth;
384
386
  scroller.width = width; // width with buttons
@@ -433,10 +435,12 @@ var Scrollbar = /** @class */ (function () {
433
435
  * @function Highcharts.Scrollbar#render
434
436
  */
435
437
  Scrollbar.prototype.render = function () {
436
- var scroller = this, renderer = scroller.renderer, options = scroller.options, size = scroller.size, styledMode = scroller.chart.styledMode, group = renderer.g('scrollbar').attr({
437
- zIndex: options.zIndex,
438
- translateY: -99999
439
- }).add();
438
+ var scroller = this, renderer = scroller.renderer, options = scroller.options, size = scroller.size, styledMode = scroller.chart.styledMode, group = renderer.g('scrollbar')
439
+ .attr({
440
+ zIndex: options.zIndex
441
+ })
442
+ .hide() // initially hide the scrollbar #15863
443
+ .add();
440
444
  // Draw the scrollbar group
441
445
  scroller.group = group;
442
446
  // Draw the scrollbar track:
@@ -558,7 +562,7 @@ var Scrollbar = /** @class */ (function () {
558
562
  scroller.scrollbarRifles.hide();
559
563
  }
560
564
  else {
561
- scroller.scrollbarRifles.show(true);
565
+ scroller.scrollbarRifles.show();
562
566
  }
563
567
  // Show or hide the scrollbar based on the showFull setting
564
568
  if (options.showFull === false) {
@@ -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
  }
@@ -259,8 +277,8 @@ var DataLabel;
259
277
  point.connectors[i] :
260
278
  point.connector;
261
279
  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;
280
+ point.dataLabels[i] : point.dataLabel, isNew = !dataLabel;
281
+ var labelDistance = pick(labelOptions.distance, point.labelDistance);
264
282
  if (labelEnabled) {
265
283
  // Create individual options structure that can be
266
284
  // extended without affecting others
@@ -314,7 +332,15 @@ var DataLabel;
314
332
  // #820
315
333
  if (dataLabel && (!labelEnabled ||
316
334
  !defined(labelText) ||
317
- !!dataLabel.div !== !!labelOptions.useHTML)) {
335
+ !!dataLabel.div !== !!labelOptions.useHTML ||
336
+ (
337
+ // Change from no rotation to rotation and
338
+ // vice versa. Don't use defined() because
339
+ // rotation = 0 means also rotation = undefined
340
+ (!dataLabel.rotation ||
341
+ !labelOptions.rotation) &&
342
+ dataLabel.rotation !== labelOptions.rotation))) {
343
+ isNew = true;
318
344
  point.dataLabel = dataLabel =
319
345
  point.dataLabel && point.dataLabel.destroy();
320
346
  if (point.dataLabels) {
@@ -352,10 +378,10 @@ var DataLabel;
352
378
  point.dataLabels = point.dataLabels || [];
353
379
  dataLabel = point.dataLabels[i] = rotation ?
354
380
  // Labels don't rotate, use text element
355
- renderer.text(labelText, 0, -9999, labelOptions.useHTML)
381
+ renderer.text(labelText, 0, 0, labelOptions.useHTML)
356
382
  .addClass('highcharts-data-label') :
357
383
  // We can use label
358
- 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');
359
385
  // Store for backwards compatibility
360
386
  if (!i) {
361
387
  point.dataLabel = dataLabel;
@@ -396,6 +422,9 @@ var DataLabel;
396
422
  // we need to align it
397
423
  series.alignDataLabel(point, dataLabel, labelOptions, null, isNew);
398
424
  }
425
+ else if (dataLabel) {
426
+ dataLabel.hide();
427
+ }
399
428
  });
400
429
  });
401
430
  }