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
@@ -19,6 +19,8 @@ import Point from '../Core/Series/Point.js';
19
19
  import SeriesRegistry from '../Core/Series/SeriesRegistry.js';
20
20
  var seriesTypes = SeriesRegistry.seriesTypes;
21
21
  import U from '../Core/Utilities.js';
22
+ import D from '../Core/DefaultOptions.js';
23
+ var getOptions = D.getOptions;
22
24
  var addEvent = U.addEvent, defined = U.defined, extend = U.extend, fireEvent = U.fireEvent, isNumber = U.isNumber, merge = U.merge, objectEach = U.objectEach, pick = U.pick, splat = U.splat;
23
25
  /**
24
26
  * Callback function to modify the CSV before parsing it by the data module.
@@ -609,6 +611,10 @@ var Data = /** @class */ (function () {
609
611
  this.firstRowAsNames = pick(options.firstRowAsNames, this.firstRowAsNames, true);
610
612
  this.decimalRegex = (decimalPoint &&
611
613
  new RegExp('^(-?[0-9]+)' + decimalPoint + '([0-9]+)$'));
614
+ // Always stop old polling when we have new options
615
+ if (this.liveDataTimeout !== void 0) {
616
+ clearTimeout(this.liveDataTimeout);
617
+ }
612
618
  // This is a two-dimensional array holding the raw, trimmed string
613
619
  // values with the same organisation as the columns array. It makes it
614
620
  // possible for example to revert from interpreted timestamps to
@@ -617,11 +623,7 @@ var Data = /** @class */ (function () {
617
623
  // No need to parse or interpret anything
618
624
  if (this.columns.length) {
619
625
  this.dataFound();
620
- hasData = true;
621
- }
622
- if (this.hasURLOption(options)) {
623
- clearTimeout(this.liveDataTimeout);
624
- hasData = false;
626
+ hasData = !this.hasURLOption(options);
625
627
  }
626
628
  if (!hasData) {
627
629
  // Fetch live data
@@ -1357,7 +1359,7 @@ var Data = /** @class */ (function () {
1357
1359
  success: function (json) {
1358
1360
  fn(json);
1359
1361
  if (options.enablePolling) {
1360
- setTimeout(function () {
1362
+ data.liveDataTimeout = setTimeout(function () {
1361
1363
  fetchSheet(fn);
1362
1364
  }, refreshRate);
1363
1365
  }
@@ -1451,9 +1453,10 @@ var Data = /** @class */ (function () {
1451
1453
  * Column index
1452
1454
  */
1453
1455
  Data.prototype.parseColumn = function (column, col) {
1454
- var rawColumns = this.rawColumns, columns = this.columns, row = column.length, val, floatVal, trimVal, trimInsideVal, firstRowAsNames = this.firstRowAsNames, isXColumn = this.valueCount.xColumns.indexOf(col) !== -1, dateVal, backup = [], diff, chartOptions = this.chartOptions, descending, columnTypes = this.options.columnTypes || [], columnType = columnTypes[col], forceCategory = isXColumn && ((chartOptions &&
1456
+ var rawColumns = this.rawColumns, columns = this.columns, firstRowAsNames = this.firstRowAsNames, isXColumn = this.valueCount.xColumns.indexOf(col) !== -1, backup = [], chartOptions = this.chartOptions, columnTypes = this.options.columnTypes || [], columnType = columnTypes[col], forceCategory = isXColumn && ((chartOptions &&
1455
1457
  chartOptions.xAxis &&
1456
- splat(chartOptions.xAxis)[0].type === 'category') || columnType === 'string');
1458
+ splat(chartOptions.xAxis)[0].type === 'category') || columnType === 'string'), columnHasName = defined(column.name);
1459
+ var row = column.length, val, floatVal, trimVal, trimInsideVal, dateVal, diff, descending;
1457
1460
  if (!rawColumns[col]) {
1458
1461
  rawColumns[col] = [];
1459
1462
  }
@@ -1468,7 +1471,8 @@ var Data = /** @class */ (function () {
1468
1471
  }
1469
1472
  // Disable number or date parsing by setting the X axis type to
1470
1473
  // category
1471
- if (forceCategory || (row === 0 && firstRowAsNames)) {
1474
+ if (forceCategory ||
1475
+ (row === 0 && firstRowAsNames && !columnHasName)) {
1472
1476
  column[row] = '' + trimVal;
1473
1477
  }
1474
1478
  else if (+trimInsideVal === floatVal) { // is numeric
@@ -1815,7 +1819,7 @@ var Data = /** @class */ (function () {
1815
1819
  * @param {boolean} [redraw=true]
1816
1820
  */
1817
1821
  Data.prototype.update = function (options, redraw) {
1818
- var chart = this.chart;
1822
+ var chart = this.chart, chartOptions = chart.options;
1819
1823
  if (options) {
1820
1824
  // Set the complete handler
1821
1825
  options.afterComplete = function (dataOptions) {
@@ -1834,8 +1838,13 @@ var Data = /** @class */ (function () {
1834
1838
  }
1835
1839
  };
1836
1840
  // Apply it
1837
- merge(true, chart.options.data, options);
1838
- this.init(chart.options.data);
1841
+ merge(true, chartOptions.data, options);
1842
+ // Reset columns if fetching spreadsheet, to force a re-fetch
1843
+ if (chartOptions.data && chartOptions.data.googleSpreadsheetKey &&
1844
+ !options.columns) {
1845
+ delete chartOptions.data.columns;
1846
+ }
1847
+ this.init(chartOptions.data);
1839
1848
  }
1840
1849
  };
1841
1850
  return Data;
@@ -1855,7 +1864,9 @@ G.data = function (dataOptions, chartOptions, chart) {
1855
1864
  addEvent(Chart, 'init', function (e) {
1856
1865
  var chart = this, // eslint-disable-line no-invalid-this
1857
1866
  userOptions = (e.args[0] || {}), callback = e.args[1];
1858
- if (userOptions && userOptions.data && !chart.hasDataDef) {
1867
+ var defaultDataOptions = getOptions().data;
1868
+ if ((defaultDataOptions || userOptions && userOptions.data) &&
1869
+ !chart.hasDataDef) {
1859
1870
  chart.hasDataDef = true;
1860
1871
  /**
1861
1872
  * The data parser for this chart.
@@ -1863,7 +1874,8 @@ addEvent(Chart, 'init', function (e) {
1863
1874
  * @name Highcharts.Chart#data
1864
1875
  * @type {Highcharts.Data|undefined}
1865
1876
  */
1866
- chart.data = new G.Data(extend(userOptions.data, {
1877
+ var dataOptions = merge(defaultDataOptions, userOptions.data);
1878
+ chart.data = new G.Data(extend(dataOptions, {
1867
1879
  afterComplete: function (dataOptions) {
1868
1880
  var i, series;
1869
1881
  // Merge series configs
@@ -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) {
@@ -735,8 +737,11 @@ Axis.prototype.setDataGrouping = function (dataGrouping, redraw) {
735
737
  }
736
738
  else {
737
739
  this.chart.options.series.forEach(function (seriesOptions) {
738
- seriesOptions.dataGrouping = dataGrouping;
739
- }, false);
740
+ // Merging dataGrouping options with already defined options #16759
741
+ seriesOptions.dataGrouping = typeof dataGrouping === 'boolean' ?
742
+ dataGrouping :
743
+ merge(dataGrouping, seriesOptions.dataGrouping);
744
+ });
740
745
  }
741
746
  // Clear ordinal slope, so we won't accidentaly use the old one (#7827)
742
747
  if (axis.ordinal) {
@@ -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;
@@ -811,11 +811,11 @@ var defaultGuideBoxOptions = {
811
811
  }
812
812
  };
813
813
  /**
814
- * Options for the drag handles.
814
+ * Options for the drag handles available in column series.
815
815
  *
816
816
  * @declare Highcharts.DragDropHandleOptionsObject
817
817
  * @since 6.2.0
818
- * @optionparent plotOptions.series.dragDrop.dragHandle
818
+ * @optionparent plotOptions.column.dragDrop.dragHandle
819
819
  *
820
820
  * @private
821
821
  */
@@ -827,7 +827,7 @@ var defaultDragHandleOptions = {
827
827
  *
828
828
  * @type {Function}
829
829
  * @since 6.2.0
830
- * @apioption plotOptions.series.dragDrop.dragHandle.pathFormatter
830
+ * @apioption plotOptions.column.dragDrop.dragHandle.pathFormatter
831
831
  */
832
832
  // pathFormatter: null,
833
833
  /**
@@ -837,7 +837,7 @@ var defaultDragHandleOptions = {
837
837
  *
838
838
  * @type {string}
839
839
  * @since 6.2.0
840
- * @apioption plotOptions.series.dragDrop.dragHandle.cursor
840
+ * @apioption plotOptions.column.dragDrop.dragHandle.cursor
841
841
  */
842
842
  // cursor: null,
843
843
  /**
@@ -1757,13 +1757,15 @@ Point.prototype.showDragHandles = function () {
1757
1757
  // Find position and path of handle
1758
1758
  pos = positioner(point);
1759
1759
  handleAttrs.d = path = pathFormatter(point);
1760
- if (!path || pos.x < 0 || pos.y < 0) {
1760
+ // Correct left edge value depending on the xAxis' type, #16596
1761
+ var minEdge = point.series.xAxis.categories ? -0.5 : 0;
1762
+ if (!path || pos.x < minEdge || pos.y < 0) {
1761
1763
  return;
1762
1764
  }
1763
1765
  // If cursor is not set explicitly, use axis direction
1764
1766
  handleAttrs.cursor = handleOptions.cursor ||
1765
- (val.axis === 'x') !== !!chart.inverted ?
1766
- 'ew-resize' : 'ns-resize';
1767
+ ((val.axis === 'x') !== !!chart.inverted ?
1768
+ 'ew-resize' : 'ns-resize');
1767
1769
  // Create and add the handle element if it doesn't exist
1768
1770
  handle = chart.dragHandles[val.optionName];
1769
1771
  if (!handle) {
@@ -29,6 +29,7 @@ var seriesTypes = SeriesRegistry.seriesTypes;
29
29
  import SVGRenderer from '../Core/Renderer/SVG/SVGRenderer.js';
30
30
  import Tick from '../Core/Axis/Tick.js';
31
31
  import U from '../Core/Utilities.js';
32
+ import Breadcrumbs from './Breadcrumbs.js';
32
33
  var addEvent = U.addEvent, removeEvent = U.removeEvent, extend = U.extend, fireEvent = U.fireEvent, merge = U.merge, objectEach = U.objectEach, pick = U.pick, syncTimeout = U.syncTimeout;
33
34
  /**
34
35
  * Gets fired when a drilldown point is clicked, before the new series is added.
@@ -151,18 +152,20 @@ extend(defaultOptions.lang,
151
152
  * @optionparent lang
152
153
  */
153
154
  {
154
- /**
155
- * The text for the button that appears when drilling down, linking back
156
- * to the parent series. The parent series' name is inserted for
157
- * `{series.name}`.
158
- *
159
- * @since 3.0.8
160
- * @product highcharts highmaps
161
- * @requires modules/drilldown
162
- *
163
- * @private
164
- */
165
- drillUpText: '◁ Back to {series.name}'
155
+ /**
156
+ * The text for the button that appears when drilling down, linking back
157
+ * to the parent series. The parent series' name is inserted for
158
+ * `{series.name}`.
159
+ *
160
+ * @since 3.0.8
161
+ * @product highcharts highmaps
162
+ * @requires modules/drilldown
163
+ * @apioption lang.drillUpText
164
+ *
165
+ * @deprecated
166
+ *
167
+ * @private
168
+ */
166
169
  });
167
170
  /**
168
171
  * Options for drill down, the concept of inspecting increasingly high
@@ -194,6 +197,15 @@ defaultOptions.drilldown = {
194
197
  * @product highcharts
195
198
  * @apioption drilldown.allowPointDrilldown
196
199
  */
200
+ /**
201
+ * Options for the breadcrumbs, the navigation at the top leading the way
202
+ * up through the drilldown levels.
203
+ *
204
+ * @since 10.0.0
205
+ * @product highcharts
206
+ * @extends navigation.breadcrumbs
207
+ * @optionparent drilldown.breadcrumbs
208
+ */
197
209
  /**
198
210
  * An array of series configurations for the drill down. Each series
199
211
  * configuration uses the same syntax as the [series](#series) option set.
@@ -280,17 +292,23 @@ defaultOptions.drilldown = {
280
292
  duration: 500
281
293
  },
282
294
  /**
295
+ *
283
296
  * Options for the drill up button that appears when drilling down on a
284
297
  * series. The text for the button is defined in
285
298
  * [lang.drillUpText](#lang.drillUpText).
286
299
  *
287
- * @sample {highcharts} highcharts/drilldown/drillupbutton/
288
- * Drill up button
289
- * @sample {highmaps} highcharts/drilldown/drillupbutton/
290
- * Drill up button
300
+ * This option is deprecated since 9.3.2, use `drilldown.breadcrumbs`
301
+ * instead.
302
+ *
303
+ * @sample highcharts/breadcrumbs/single-button
304
+ * Breadcrumbs set up like a legacy button
305
+ * @sample {highcharts} highcharts/drilldown/drillupbutton/ Drill up button
306
+ * @sample {highmaps} highcharts/drilldown/drillupbutton/ Drill up button
291
307
  *
292
308
  * @since 3.0.8
293
309
  * @product highcharts highmaps
310
+ *
311
+ * @deprecated
294
312
  */
295
313
  drillUpButton: {
296
314
  /**
@@ -576,44 +594,50 @@ Chart.prototype.applyDrilldown = function () {
576
594
  delete this.resetZoomButton;
577
595
  }
578
596
  this.pointer.reset();
579
- this.redraw();
580
- this.showDrillUpButton();
581
597
  fireEvent(this, 'afterDrilldown');
598
+ this.redraw();
599
+ fireEvent(this, 'afterApplyDrilldown');
582
600
  };
583
- Chart.prototype.getDrilldownBackText = function () {
584
- var drilldownLevels = this.drilldownLevels, lastLevel;
585
- if (drilldownLevels && drilldownLevels.length > 0) { // #3352, async loading
586
- lastLevel = drilldownLevels[drilldownLevels.length - 1];
587
- lastLevel.series = lastLevel.seriesOptions;
588
- return format(this.options.lang.drillUpText || '', lastLevel);
589
- }
590
- };
591
- Chart.prototype.showDrillUpButton = function () {
592
- var chart = this, backText = this.getDrilldownBackText(), buttonOptions = chart.options.drilldown.drillUpButton, attr, states, alignTo = (buttonOptions.relativeTo === 'chart' ||
593
- buttonOptions.relativeTo === 'spacingBox' ?
594
- null :
595
- 'scrollablePlotBox');
596
- if (!this.drillUpButton) {
597
- attr = buttonOptions.theme;
598
- states = attr && attr.states;
599
- this.drillUpButton = this.renderer
600
- .button(backText, null, null, function () {
601
- chart.drillUp();
602
- }, attr, states && states.hover, states && states.select)
603
- .addClass('highcharts-drillup-button')
604
- .attr({
605
- align: buttonOptions.position.align,
606
- zIndex: 7
607
- })
608
- .add()
609
- .align(buttonOptions.position, false, alignTo);
610
- }
611
- else {
612
- this.drillUpButton.attr({
613
- text: backText
614
- })
615
- .align();
601
+ /**
602
+ * This method creates an array of arrays containing a level number
603
+ * with the corresponding series/point.
604
+ *
605
+ * @requires modules/breadcrumbs
606
+ *
607
+ * @private
608
+ * @param {Highcharts.Chart} chart
609
+ * Highcharts Chart object.
610
+ * @return {Array<Breadcrumbs.BreadcrumbOptions>}
611
+ * List for Highcharts Breadcrumbs.
612
+ */
613
+ var createBreadcrumbsList = function (chart) {
614
+ var list = [], drilldownLevels = chart.drilldownLevels;
615
+ // The list is based on drilldown levels from the chart object
616
+ if (drilldownLevels && drilldownLevels.length) {
617
+ // Add the initial series as the first element.
618
+ if (!list[0]) {
619
+ list.push({
620
+ level: 0,
621
+ levelOptions: drilldownLevels[0].seriesOptions
622
+ });
623
+ }
624
+ drilldownLevels.forEach(function (level, i) {
625
+ var lastBreadcrumb = list[list.length - 1];
626
+ // If level is already added to breadcrumbs list,
627
+ // don't add it again- drilling categories
628
+ // + 1 because of the wrong levels numeration
629
+ // in drilldownLevels array.
630
+ if (level.levelNumber + 1 > lastBreadcrumb.level) {
631
+ list.push({
632
+ level: level.levelNumber + 1,
633
+ levelOptions: merge({
634
+ name: level.lowerSeries.name
635
+ }, level.pointOptions)
636
+ });
637
+ }
638
+ });
616
639
  }
640
+ return list;
617
641
  };
618
642
  /**
619
643
  * When the chart is drilled down to a child series, calling `chart.drillUp()`
@@ -630,6 +654,7 @@ Chart.prototype.drillUp = function () {
630
654
  if (!this.drilldownLevels || this.drilldownLevels.length === 0) {
631
655
  return;
632
656
  }
657
+ fireEvent(this, 'beforeDrillUp');
633
658
  var chart = this, drilldownLevels = chart.drilldownLevels, levelNumber = drilldownLevels[drilldownLevels.length - 1].levelNumber, i = drilldownLevels.length, chartSeries = chart.series, seriesI, level, oldSeries, newSeries, oldExtremes, addSeries = function (seriesOptions) {
634
659
  var addedSeries;
635
660
  chartSeries.forEach(function (series) {
@@ -646,6 +671,7 @@ Chart.prototype.drillUp = function () {
646
671
  newSeries = addedSeries;
647
672
  }
648
673
  };
674
+ var drilldownLevelsNumber = chart.drilldownLevels.length;
649
675
  while (i--) {
650
676
  level = drilldownLevels[i];
651
677
  if (level.levelNumber === levelNumber) {
@@ -665,12 +691,19 @@ Chart.prototype.drillUp = function () {
665
691
  }
666
692
  }
667
693
  oldSeries.xData = []; // Overcome problems with minRange (#2898)
694
+ // Reset the names to start new series from the beginning.
695
+ // Do it once to preserve names when multiple
696
+ // series are added for the same axis, #16135.
697
+ if (oldSeries.xAxis &&
698
+ oldSeries.xAxis.names &&
699
+ (drilldownLevelsNumber === 0 || i === drilldownLevelsNumber)) {
700
+ oldSeries.xAxis.names.length = 0;
701
+ }
668
702
  level.levelSeriesOptions.forEach(addSeries);
669
703
  fireEvent(chart, 'drillup', {
670
704
  seriesOptions: level.seriesPurgedOptions ||
671
705
  level.seriesOptions
672
706
  });
673
- this.resetZoomButton && this.resetZoomButton.destroy(); // #8095
674
707
  if (newSeries.type === oldSeries.type) {
675
708
  newSeries.drilldownLevel = level;
676
709
  newSeries.options.animation =
@@ -691,30 +724,48 @@ Chart.prototype.drillUp = function () {
691
724
  // it to the chart and show it.
692
725
  if (level.resetZoomButton) {
693
726
  chart.resetZoomButton = level.resetZoomButton;
694
- chart.resetZoomButton.show();
695
727
  }
696
728
  }
697
729
  }
730
+ fireEvent(chart, 'afterDrillUp');
698
731
  this.redraw();
699
- if (this.drilldownLevels.length === 0) {
700
- this.drillUpButton = this.drillUpButton.destroy();
701
- }
702
- else {
703
- this.drillUpButton.attr({
704
- text: this.getDrilldownBackText()
705
- })
706
- .align();
707
- }
708
- this.ddDupes.length = []; // #3315
732
+ if (this.ddDupes) {
733
+ this.ddDupes.length = 0; // #3315
734
+ } // #8324
709
735
  // Fire a once-off event after all series have been drilled up (#5158)
710
736
  fireEvent(chart, 'drillupall');
711
737
  };
738
+ /**
739
+ * A function to fade in a group. First, the element is being hidden,
740
+ * then, using `opactiy`, is faded in. Used for example by `dataLabelsGroup`
741
+ * where simple SVGElement.fadeIn() is not enough, because of other features
742
+ * (e.g. InactiveState) using `opacity` to fadeIn/fadeOut.
743
+ *
744
+ * @requires module:modules/drilldown
745
+ *
746
+ * @param {undefined|SVGElement} [group]
747
+ * The SVG element to be faded in.
748
+ */
749
+ function fadeInGroup(group) {
750
+ var animationOptions = animObject(this.chart.options.drilldown.animation);
751
+ if (group) {
752
+ group.hide();
753
+ syncTimeout(function () {
754
+ // Make sure neither the group, or the chart, were destroyed
755
+ if (group && group.added) {
756
+ group.fadeIn();
757
+ }
758
+ }, Math.max(animationOptions.duration - 50, 0));
759
+ }
760
+ }
712
761
  /* eslint-disable no-invalid-this */
713
762
  // Add update function to be called internally from Chart.update
714
763
  // (#7600, #12855)
715
764
  addEvent(Chart, 'afterInit', function () {
716
765
  var chart = this;
717
766
  chart.drilldown = {
767
+ chart: chart,
768
+ fadeInGroup: fadeInGroup,
718
769
  update: function (options, redraw) {
719
770
  merge(true, chart.options.drilldown, options);
720
771
  if (pick(redraw, true)) {
@@ -723,22 +774,6 @@ addEvent(Chart, 'afterInit', function () {
723
774
  }
724
775
  };
725
776
  });
726
- // Shift the drillUpButton to make the space for resetZoomButton, #8095.
727
- addEvent(Chart, 'afterShowResetZoom', function () {
728
- var chart = this, bbox = chart.resetZoomButton && chart.resetZoomButton.getBBox(), buttonOptions = (chart.options.drilldown &&
729
- chart.options.drilldown.drillUpButton);
730
- if (this.drillUpButton &&
731
- bbox &&
732
- buttonOptions &&
733
- buttonOptions.position &&
734
- buttonOptions.position.x) {
735
- this.drillUpButton.align({
736
- x: buttonOptions.position.x - bbox.width - 10,
737
- y: buttonOptions.position.y,
738
- align: buttonOptions.position.align
739
- }, false, buttonOptions.relativeTo || 'plotBox');
740
- }
741
- });
742
777
  addEvent(Chart, 'render', function () {
743
778
  (this.xAxis || []).forEach(function (axis) {
744
779
  axis.ddPoints = {};
@@ -769,6 +804,31 @@ addEvent(Chart, 'render', function () {
769
804
  objectEach(axis.ticks, Tick.prototype.drillable);
770
805
  });
771
806
  });
807
+ addEvent(H.Breadcrumbs, 'up', function (e) {
808
+ var chart = this.chart, drillUpsNumber = this.getLevel() - e.newLevel;
809
+ for (var i = 0; i < drillUpsNumber; i++) {
810
+ chart.drillUp();
811
+ }
812
+ });
813
+ addEvent(Chart, 'afterDrilldown', function () {
814
+ var chart = this, drilldownOptions = chart.options.drilldown, breadcrumbsOptions = drilldownOptions && drilldownOptions.breadcrumbs;
815
+ if (!chart.breadcrumbs) {
816
+ chart.breadcrumbs = new Breadcrumbs(chart, breadcrumbsOptions);
817
+ }
818
+ chart.breadcrumbs.updateProperties(createBreadcrumbsList(chart));
819
+ });
820
+ addEvent(Chart, 'afterDrillUp', function () {
821
+ var chart = this;
822
+ chart.breadcrumbs &&
823
+ chart.breadcrumbs.updateProperties(createBreadcrumbsList(chart));
824
+ });
825
+ addEvent(Chart, 'update', function (e) {
826
+ var breadcrumbs = this.breadcrumbs, breadcrumbOptions = e.options.drilldown &&
827
+ e.options.drilldown.breadcrumbs;
828
+ if (breadcrumbs && breadcrumbOptions) {
829
+ breadcrumbs.update(e.options.drilldown.breadcrumbs);
830
+ }
831
+ });
772
832
  /**
773
833
  * When drilling up, keep the upper series invisible until the lower series has
774
834
  * moved into place.
@@ -854,10 +914,10 @@ ColumnSeries.prototype.animateDrilldown = function (init) {
854
914
  .attr(animateFrom)
855
915
  .animate(extend(point.shapeArgs, { fill: point.color || series.color }), animationOptions);
856
916
  }
857
- if (point.dataLabel) {
858
- point.dataLabel.fadeIn(animationOptions);
859
- }
860
917
  });
918
+ if (chart.drilldown) {
919
+ chart.drilldown.fadeInGroup(this.dataLabelsGroup);
920
+ }
861
921
  // Reset to prototype
862
922
  delete this.animate;
863
923
  }
@@ -935,6 +995,9 @@ if (PieSeries) {
935
995
  }))[animationOptions ? 'animate' : 'attr'](animateTo, animationOptions);
936
996
  }
937
997
  });
998
+ if (this.chart.drilldown) {
999
+ this.chart.drilldown.fadeInGroup(this.dataLabelsGroup);
1000
+ }
938
1001
  // Reset to prototype
939
1002
  delete this.animate;
940
1003
  }
@@ -1150,21 +1213,13 @@ addEvent(Point, 'afterSetState', function () {
1150
1213
  applyCursorCSS(this.series.halo, 'auto', false, styledMode);
1151
1214
  }
1152
1215
  });
1153
- // After zooming out, shift the drillUpButton to the previous position, #8095.
1154
- addEvent(Chart, 'selection', function (event) {
1155
- if (event.resetSelection === true && this.drillUpButton) {
1156
- var buttonOptions = (this.options.drilldown && this.options.drilldown.drillUpButton);
1157
- if (buttonOptions && buttonOptions.position) {
1158
- this.drillUpButton.align({
1159
- x: buttonOptions.position.x,
1160
- y: buttonOptions.position.y,
1161
- align: buttonOptions.position.align
1162
- }, false, buttonOptions.relativeTo || 'plotBox');
1163
- }
1164
- }
1165
- });
1166
1216
  addEvent(Chart, 'drillup', function () {
1167
1217
  if (this.resetZoomButton) {
1168
1218
  this.resetZoomButton = this.resetZoomButton.destroy();
1169
1219
  }
1170
1220
  });
1221
+ addEvent(Chart, 'drillupall', function () {
1222
+ if (this.resetZoomButton) {
1223
+ this.showResetZoom();
1224
+ }
1225
+ });
@@ -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
  });