highcharts 9.3.3 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (670) hide show
  1. package/bower.json +1 -1
  2. package/css/highcharts.css +19 -2
  3. package/css/highcharts.scss +17 -2
  4. package/css/themes/dark-unica.css +19 -2
  5. package/css/themes/grid-light.css +19 -2
  6. package/css/themes/sand-signika.css +19 -2
  7. package/es-modules/Accessibility/Accessibility.js +1 -1
  8. package/es-modules/Accessibility/Components/LegendComponent.js +31 -23
  9. package/es-modules/Accessibility/Components/MenuComponent.js +4 -5
  10. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +2 -2
  11. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +7 -6
  12. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +1 -1
  13. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +0 -1
  14. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +3 -3
  15. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +61 -29
  16. package/es-modules/Accessibility/Components/ZoomComponent.js +13 -10
  17. package/es-modules/Accessibility/HighContrastMode.js +2 -2
  18. package/es-modules/Accessibility/KeyboardNavigation.js +113 -98
  19. package/es-modules/Accessibility/ProxyElement.js +14 -6
  20. package/es-modules/Accessibility/ProxyProvider.js +10 -2
  21. package/es-modules/Core/Axis/Axis.js +150 -46
  22. package/es-modules/Core/Axis/Color/ColorAxis.js +22 -5
  23. package/es-modules/Core/Axis/GridAxis.js +10 -9
  24. package/es-modules/Core/Axis/TreeGridTick.js +11 -0
  25. package/es-modules/Core/Chart/Chart3D.js +1 -11
  26. package/es-modules/Core/Chart/ChartDefaults.js +32 -11
  27. package/es-modules/Core/Chart/MapChart.js +1 -6
  28. package/es-modules/Core/DefaultOptions.js +2 -0
  29. package/es-modules/Core/Geometry/PolygonClip.js +84 -0
  30. package/es-modules/Core/Globals.js +4 -18
  31. package/es-modules/Core/HttpUtilities.js +13 -8
  32. package/es-modules/Core/Legend/Legend.js +10 -8
  33. package/es-modules/Core/Navigator.js +9 -6
  34. package/es-modules/Core/Pointer.js +15 -11
  35. package/es-modules/Core/Renderer/HTML/AST.js +62 -5
  36. package/es-modules/Core/Renderer/SVG/SVGElement.js +25 -41
  37. package/es-modules/Core/Renderer/SVG/SVGElement3D.js +17 -5
  38. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +17 -17
  39. package/es-modules/Core/Renderer/SVG/TextBuilder.js +12 -10
  40. package/es-modules/Core/Series/DataLabel.js +11 -3
  41. package/es-modules/Core/Series/Point.js +2 -2
  42. package/es-modules/Core/Series/Series.js +33 -15
  43. package/es-modules/Core/Series/SeriesDefaults.js +4 -1
  44. package/es-modules/Core/Tooltip.js +14 -31
  45. package/es-modules/Core/Utilities.js +28 -28
  46. package/es-modules/Extensions/Annotations/Annotations.js +7 -0
  47. package/es-modules/Extensions/Annotations/MockPoint.js +1 -1
  48. package/es-modules/Extensions/Annotations/NavigationBindings.js +1 -1
  49. package/es-modules/Extensions/Annotations/Popup.js +1 -1
  50. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +5 -3
  51. package/es-modules/Extensions/Boost/BoostInit.js +6 -1
  52. package/es-modules/Extensions/Boost/BoostOptions.js +26 -0
  53. package/es-modules/Extensions/Boost/Boostables.js +1 -0
  54. package/es-modules/Extensions/Boost/WGLRenderer.js +48 -37
  55. package/es-modules/Extensions/Boost/WGLShader.js +4 -3
  56. package/es-modules/Extensions/Breadcrumbs.js +874 -0
  57. package/es-modules/Extensions/Data.js +26 -14
  58. package/es-modules/Extensions/DataGrouping.js +5 -2
  59. package/es-modules/Extensions/DraggablePoints.js +9 -7
  60. package/es-modules/Extensions/Drilldown.js +147 -94
  61. package/es-modules/Extensions/Exporting/Exporting.js +9 -7
  62. package/es-modules/Extensions/Exporting/ExportingDefaults.js +49 -1
  63. package/es-modules/Extensions/GeoJSON.js +149 -124
  64. package/es-modules/Extensions/MarkerClusters.js +34 -20
  65. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +110 -22
  66. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  67. package/es-modules/Extensions/Oldie/Oldie.js +1 -1
  68. package/es-modules/Extensions/ScrollablePlotArea.js +5 -1
  69. package/es-modules/Extensions/Stacking.js +3 -2
  70. package/es-modules/Extensions/Themes/HighContrastDark.js +10 -10
  71. package/es-modules/Extensions/Themes/HighContrastLight.js +10 -10
  72. package/es-modules/Maps/MapNavigation.js +49 -8
  73. package/es-modules/Maps/MapPointer.js +16 -0
  74. package/es-modules/Maps/MapUtilities.js +56 -0
  75. package/es-modules/Maps/MapView.js +606 -135
  76. package/es-modules/Maps/MapViewInsetsOptionsDefault.js +148 -0
  77. package/es-modules/Maps/MapViewOptionsDefault.js +58 -20
  78. package/es-modules/Maps/Projection.js +169 -77
  79. package/es-modules/Maps/Projections/EqualEarth.js +15 -6
  80. package/es-modules/Maps/Projections/LambertConformalConic.js +27 -19
  81. package/es-modules/Maps/Projections/Miller.js +23 -10
  82. package/es-modules/Maps/Projections/Orthographic.js +21 -10
  83. package/es-modules/Maps/Projections/WebMercator.js +25 -13
  84. package/es-modules/Series/ArcDiagram/ArcDiagramPoint.js +77 -0
  85. package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +581 -0
  86. package/es-modules/Series/Column/ColumnSeries.js +4 -3
  87. package/es-modules/Series/DataModifyComposition.js +1 -0
  88. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +2 -2
  89. package/es-modules/Series/DrawPointComposition.js +7 -4
  90. package/es-modules/Series/Lollipop/LollipopSeries.js +1 -1
  91. package/es-modules/Series/Map/MapPoint.js +24 -1
  92. package/es-modules/Series/Map/MapSeries.js +196 -169
  93. package/es-modules/Series/MapBubble/MapBubblePoint.js +16 -24
  94. package/es-modules/Series/MapBubble/MapBubbleSeries.js +11 -0
  95. package/es-modules/Series/MapPoint/MapPointPoint.js +2 -8
  96. package/es-modules/Series/MapPoint/MapPointSeries.js +36 -14
  97. package/es-modules/Series/NodesComposition.js +60 -13
  98. package/es-modules/Series/OHLC/OHLCSeries.js +7 -0
  99. package/es-modules/Series/Organization/OrganizationPoint.js +68 -2
  100. package/es-modules/Series/Organization/OrganizationSeries.js +79 -25
  101. package/es-modules/Series/Pie/PiePoint.js +12 -5
  102. package/es-modules/Series/Pie3D/Pie3DSeries.js +19 -0
  103. package/es-modules/Series/Sankey/SankeyColumnComposition.js +193 -0
  104. package/es-modules/Series/Sankey/SankeyPoint.js +37 -1
  105. package/es-modules/Series/Sankey/SankeySeries.js +10 -127
  106. package/es-modules/Series/Scatter/ScatterSeries.js +1 -1
  107. package/es-modules/Series/Sunburst/SunburstSeries.js +13 -2
  108. package/es-modules/Series/Treemap/TreemapSeries.js +88 -80
  109. package/es-modules/Series/Waterfall/WaterfallSeries.js +2 -0
  110. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +9 -2
  111. package/es-modules/Stock/StockToolsGui.js +1 -1
  112. package/es-modules/masters/highcharts-3d.src.js +1 -1
  113. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  114. package/es-modules/masters/highcharts-more.src.js +1 -1
  115. package/es-modules/masters/highcharts.src.js +1 -1
  116. package/es-modules/masters/highmaps.src.js +1 -1
  117. package/es-modules/masters/highstock.src.js +1 -1
  118. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  119. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  120. package/es-modules/masters/indicators/ao.src.js +1 -1
  121. package/es-modules/masters/indicators/apo.src.js +1 -1
  122. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  123. package/es-modules/masters/indicators/aroon.src.js +1 -1
  124. package/es-modules/masters/indicators/atr.src.js +1 -1
  125. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  126. package/es-modules/masters/indicators/cci.src.js +1 -1
  127. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  128. package/es-modules/masters/indicators/cmf.src.js +1 -1
  129. package/es-modules/masters/indicators/cmo.src.js +1 -1
  130. package/es-modules/masters/indicators/dema.src.js +1 -1
  131. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  132. package/es-modules/masters/indicators/dmi.src.js +1 -1
  133. package/es-modules/masters/indicators/dpo.src.js +1 -1
  134. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  135. package/es-modules/masters/indicators/indicators-all.src.js +1 -1
  136. package/es-modules/masters/indicators/indicators.src.js +1 -1
  137. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  138. package/es-modules/masters/indicators/klinger.src.js +1 -1
  139. package/es-modules/masters/indicators/macd.src.js +1 -1
  140. package/es-modules/masters/indicators/mfi.src.js +1 -1
  141. package/es-modules/masters/indicators/momentum.src.js +1 -1
  142. package/es-modules/masters/indicators/natr.src.js +1 -1
  143. package/es-modules/masters/indicators/obv.src.js +1 -1
  144. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  145. package/es-modules/masters/indicators/ppo.src.js +1 -1
  146. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  147. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  148. package/es-modules/masters/indicators/psar.src.js +1 -1
  149. package/es-modules/masters/indicators/regressions.src.js +1 -1
  150. package/es-modules/masters/indicators/roc.src.js +1 -1
  151. package/es-modules/masters/indicators/rsi.src.js +1 -1
  152. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  153. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  154. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  155. package/es-modules/masters/indicators/tema.src.js +1 -1
  156. package/es-modules/masters/indicators/trendline.src.js +1 -1
  157. package/es-modules/masters/indicators/trix.src.js +1 -1
  158. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  159. package/es-modules/masters/indicators/vwap.src.js +1 -1
  160. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  161. package/es-modules/masters/indicators/wma.src.js +1 -1
  162. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  163. package/es-modules/masters/modules/accessibility.src.js +1 -1
  164. package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
  165. package/es-modules/masters/modules/annotations.src.js +1 -1
  166. package/es-modules/masters/modules/arc-diagram.src.js +14 -0
  167. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  168. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  169. package/es-modules/masters/modules/boost.src.js +1 -1
  170. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  171. package/es-modules/masters/modules/bullet.src.js +1 -1
  172. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  173. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  174. package/es-modules/masters/modules/cylinder.src.js +1 -1
  175. package/es-modules/masters/modules/data.src.js +1 -1
  176. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  177. package/es-modules/masters/modules/debugger.src.js +1 -1
  178. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  179. package/es-modules/masters/modules/dotplot.src.js +1 -1
  180. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  181. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  182. package/es-modules/masters/modules/drilldown.src.js +2 -1
  183. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  184. package/es-modules/masters/modules/export-data.src.js +1 -1
  185. package/es-modules/masters/modules/exporting.src.js +1 -1
  186. package/es-modules/masters/modules/full-screen.src.js +1 -1
  187. package/es-modules/masters/modules/funnel.src.js +1 -1
  188. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  189. package/es-modules/masters/modules/gantt.src.js +1 -1
  190. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  191. package/es-modules/masters/modules/heatmap.src.js +1 -1
  192. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  193. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  194. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  195. package/es-modules/masters/modules/item-series.src.js +1 -1
  196. package/es-modules/masters/modules/lollipop.src.js +1 -1
  197. package/es-modules/masters/modules/map.src.js +5 -1
  198. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  199. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  200. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  201. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  202. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  203. package/es-modules/masters/modules/oldie.src.js +1 -1
  204. package/es-modules/masters/modules/organization.src.js +1 -1
  205. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  206. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  207. package/es-modules/masters/modules/pareto.src.js +1 -1
  208. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  209. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  210. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  211. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  212. package/es-modules/masters/modules/sankey.src.js +1 -1
  213. package/es-modules/masters/modules/series-label.src.js +1 -1
  214. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  215. package/es-modules/masters/modules/sonification.src.js +1 -1
  216. package/es-modules/masters/modules/static-scale.src.js +1 -1
  217. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  218. package/es-modules/masters/modules/stock.src.js +1 -1
  219. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  220. package/es-modules/masters/modules/sunburst.src.js +1 -1
  221. package/es-modules/masters/modules/tilemap.src.js +1 -1
  222. package/es-modules/masters/modules/timeline.src.js +1 -1
  223. package/es-modules/masters/modules/treegrid.src.js +1 -1
  224. package/es-modules/masters/modules/treemap.src.js +5 -1
  225. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  226. package/es-modules/masters/modules/variwide.src.js +1 -1
  227. package/es-modules/masters/modules/vector.src.js +1 -1
  228. package/es-modules/masters/modules/venn.src.js +1 -1
  229. package/es-modules/masters/modules/windbarb.src.js +1 -1
  230. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  231. package/es-modules/masters/modules/xrange.src.js +1 -1
  232. package/es-modules/masters/themes/avocado.src.js +1 -1
  233. package/es-modules/masters/themes/brand-dark.src.js +1 -1
  234. package/es-modules/masters/themes/brand-light.src.js +1 -1
  235. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  236. package/es-modules/masters/themes/dark-green.src.js +1 -1
  237. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  238. package/es-modules/masters/themes/gray.src.js +1 -1
  239. package/es-modules/masters/themes/grid-light.src.js +1 -1
  240. package/es-modules/masters/themes/grid.src.js +1 -1
  241. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  242. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  243. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  244. package/es-modules/masters/themes/skies.src.js +1 -1
  245. package/es-modules/masters/themes/sunset.src.js +1 -1
  246. package/highcharts-3d.js +99 -98
  247. package/highcharts-3d.js.map +1 -1
  248. package/highcharts-3d.src.js +50 -20
  249. package/highcharts-gantt.js +800 -795
  250. package/highcharts-gantt.js.map +1 -1
  251. package/highcharts-gantt.src.js +528 -290
  252. package/highcharts-more.js +195 -194
  253. package/highcharts-more.js.map +1 -1
  254. package/highcharts-more.src.js +13 -2
  255. package/highcharts.d.ts +2162 -504
  256. package/highcharts.js +586 -581
  257. package/highcharts.js.map +1 -1
  258. package/highcharts.src.d.ts +2162 -504
  259. package/highcharts.src.js +494 -272
  260. package/highmaps.js +753 -723
  261. package/highmaps.js.map +1 -1
  262. package/highmaps.src.js +3603 -2117
  263. package/highstock.js +790 -786
  264. package/highstock.js.map +1 -1
  265. package/highstock.src.js +519 -283
  266. package/indicators/acceleration-bands.js +12 -11
  267. package/indicators/acceleration-bands.js.map +1 -1
  268. package/indicators/acceleration-bands.src.js +11 -2
  269. package/indicators/accumulation-distribution.js +5 -5
  270. package/indicators/accumulation-distribution.js.map +1 -1
  271. package/indicators/accumulation-distribution.src.js +11 -2
  272. package/indicators/ao.js +6 -6
  273. package/indicators/ao.js.map +1 -1
  274. package/indicators/ao.src.js +11 -2
  275. package/indicators/apo.js +5 -5
  276. package/indicators/apo.js.map +1 -1
  277. package/indicators/apo.src.js +11 -2
  278. package/indicators/aroon-oscillator.js +10 -10
  279. package/indicators/aroon-oscillator.js.map +1 -1
  280. package/indicators/aroon-oscillator.src.js +11 -2
  281. package/indicators/aroon.js +11 -11
  282. package/indicators/aroon.js.map +1 -1
  283. package/indicators/aroon.src.js +11 -2
  284. package/indicators/atr.js +5 -5
  285. package/indicators/atr.js.map +1 -1
  286. package/indicators/atr.src.js +11 -2
  287. package/indicators/bollinger-bands.js +12 -12
  288. package/indicators/bollinger-bands.js.map +1 -1
  289. package/indicators/bollinger-bands.src.js +11 -2
  290. package/indicators/cci.js +5 -5
  291. package/indicators/cci.js.map +1 -1
  292. package/indicators/cci.src.js +11 -2
  293. package/indicators/chaikin.js +8 -8
  294. package/indicators/chaikin.js.map +1 -1
  295. package/indicators/chaikin.src.js +11 -2
  296. package/indicators/cmf.js +6 -6
  297. package/indicators/cmf.js.map +1 -1
  298. package/indicators/cmf.src.js +11 -2
  299. package/indicators/cmo.js +5 -5
  300. package/indicators/cmo.js.map +1 -1
  301. package/indicators/cmo.src.js +11 -2
  302. package/indicators/dema.js +5 -5
  303. package/indicators/dema.js.map +1 -1
  304. package/indicators/dema.src.js +11 -2
  305. package/indicators/disparity-index.js +6 -6
  306. package/indicators/disparity-index.js.map +1 -1
  307. package/indicators/disparity-index.src.js +11 -2
  308. package/indicators/dmi.js +12 -12
  309. package/indicators/dmi.js.map +1 -1
  310. package/indicators/dmi.src.js +11 -2
  311. package/indicators/dpo.js +5 -5
  312. package/indicators/dpo.js.map +1 -1
  313. package/indicators/dpo.src.js +11 -2
  314. package/indicators/ema.js +2 -1
  315. package/indicators/ema.js.map +1 -1
  316. package/indicators/ema.src.js +10 -1
  317. package/indicators/ichimoku-kinko-hyo.js +16 -16
  318. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  319. package/indicators/ichimoku-kinko-hyo.src.js +11 -2
  320. package/indicators/indicators-all.js +195 -194
  321. package/indicators/indicators-all.js.map +1 -1
  322. package/indicators/indicators-all.src.js +21 -5
  323. package/indicators/indicators.js +13 -12
  324. package/indicators/indicators.js.map +1 -1
  325. package/indicators/indicators.src.js +21 -5
  326. package/indicators/keltner-channels.js +12 -11
  327. package/indicators/keltner-channels.js.map +1 -1
  328. package/indicators/keltner-channels.src.js +11 -2
  329. package/indicators/klinger.js +13 -13
  330. package/indicators/klinger.js.map +1 -1
  331. package/indicators/klinger.src.js +11 -2
  332. package/indicators/macd.js +12 -11
  333. package/indicators/macd.js.map +1 -1
  334. package/indicators/macd.src.js +11 -2
  335. package/indicators/mfi.js +6 -6
  336. package/indicators/mfi.js.map +1 -1
  337. package/indicators/mfi.src.js +11 -2
  338. package/indicators/momentum.js +5 -5
  339. package/indicators/momentum.js.map +1 -1
  340. package/indicators/momentum.src.js +11 -2
  341. package/indicators/natr.js +5 -4
  342. package/indicators/natr.js.map +1 -1
  343. package/indicators/natr.src.js +11 -2
  344. package/indicators/obv.js +5 -5
  345. package/indicators/obv.js.map +1 -1
  346. package/indicators/obv.src.js +11 -2
  347. package/indicators/pivot-points.js +11 -11
  348. package/indicators/pivot-points.js.map +1 -1
  349. package/indicators/pivot-points.src.js +11 -2
  350. package/indicators/ppo.js +5 -5
  351. package/indicators/ppo.js.map +1 -1
  352. package/indicators/ppo.src.js +11 -2
  353. package/indicators/price-channel.js +11 -11
  354. package/indicators/price-channel.js.map +1 -1
  355. package/indicators/price-channel.src.js +11 -2
  356. package/indicators/price-envelopes.js +8 -8
  357. package/indicators/price-envelopes.js.map +1 -1
  358. package/indicators/price-envelopes.src.js +11 -2
  359. package/indicators/psar.js +7 -6
  360. package/indicators/psar.js.map +1 -1
  361. package/indicators/psar.src.js +11 -2
  362. package/indicators/regressions.js +12 -12
  363. package/indicators/regressions.js.map +1 -1
  364. package/indicators/regressions.src.js +11 -2
  365. package/indicators/roc.js +5 -5
  366. package/indicators/roc.js.map +1 -1
  367. package/indicators/roc.src.js +11 -2
  368. package/indicators/rsi.js +6 -5
  369. package/indicators/rsi.js.map +1 -1
  370. package/indicators/rsi.src.js +11 -2
  371. package/indicators/slow-stochastic.js +5 -5
  372. package/indicators/slow-stochastic.js.map +1 -1
  373. package/indicators/slow-stochastic.src.js +11 -2
  374. package/indicators/stochastic.js +12 -12
  375. package/indicators/stochastic.js.map +1 -1
  376. package/indicators/stochastic.src.js +11 -2
  377. package/indicators/supertrend.js +10 -10
  378. package/indicators/supertrend.js.map +1 -1
  379. package/indicators/supertrend.src.js +11 -2
  380. package/indicators/tema.js +6 -6
  381. package/indicators/tema.js.map +1 -1
  382. package/indicators/tema.src.js +11 -2
  383. package/indicators/trendline.js +5 -5
  384. package/indicators/trendline.js.map +1 -1
  385. package/indicators/trendline.src.js +11 -2
  386. package/indicators/trix.js +4 -4
  387. package/indicators/trix.js.map +1 -1
  388. package/indicators/trix.src.js +11 -2
  389. package/indicators/volume-by-price.js +17 -17
  390. package/indicators/volume-by-price.js.map +1 -1
  391. package/indicators/volume-by-price.src.js +11 -2
  392. package/indicators/vwap.js +5 -5
  393. package/indicators/vwap.js.map +1 -1
  394. package/indicators/vwap.src.js +11 -2
  395. package/indicators/williams-r.js +6 -5
  396. package/indicators/williams-r.js.map +1 -1
  397. package/indicators/williams-r.src.js +11 -2
  398. package/indicators/wma.js +5 -5
  399. package/indicators/wma.js.map +1 -1
  400. package/indicators/wma.src.js +11 -2
  401. package/indicators/zigzag.js +6 -6
  402. package/indicators/zigzag.js.map +1 -1
  403. package/indicators/zigzag.src.js +11 -2
  404. package/lib/jspdf.js +299 -184
  405. package/lib/jspdf.src.js +25266 -18067
  406. package/lib/svg2pdf.js +35 -31
  407. package/lib/svg2pdf.src.js +5721 -4179
  408. package/modules/accessibility.js +231 -229
  409. package/modules/accessibility.js.map +1 -1
  410. package/modules/accessibility.src.js +278 -197
  411. package/modules/annotations-advanced.js +144 -144
  412. package/modules/annotations-advanced.js.map +1 -1
  413. package/modules/annotations-advanced.src.js +26 -8
  414. package/modules/annotations.js +79 -79
  415. package/modules/annotations.js.map +1 -1
  416. package/modules/annotations.src.js +21 -5
  417. package/modules/arc-diagram.js +25 -0
  418. package/modules/arc-diagram.js.map +1 -0
  419. package/modules/arc-diagram.src.js +770 -0
  420. package/modules/arrow-symbols.js +4 -3
  421. package/modules/arrow-symbols.js.map +1 -1
  422. package/modules/arrow-symbols.src.js +11 -2
  423. package/modules/boost-canvas.js +15 -15
  424. package/modules/boost-canvas.js.map +1 -1
  425. package/modules/boost-canvas.src.js +11 -2
  426. package/modules/boost.js +80 -79
  427. package/modules/boost.js.map +1 -1
  428. package/modules/boost.src.js +71 -43
  429. package/modules/broken-axis.js +13 -13
  430. package/modules/broken-axis.js.map +1 -1
  431. package/modules/broken-axis.src.js +11 -2
  432. package/modules/bullet.js +9 -9
  433. package/modules/bullet.js.map +1 -1
  434. package/modules/bullet.src.js +11 -2
  435. package/modules/coloraxis.js +24 -24
  436. package/modules/coloraxis.js.map +1 -1
  437. package/modules/coloraxis.src.js +33 -7
  438. package/modules/current-date-indicator.js +5 -4
  439. package/modules/current-date-indicator.js.map +1 -1
  440. package/modules/current-date-indicator.src.js +11 -2
  441. package/modules/cylinder.js +11 -11
  442. package/modules/cylinder.js.map +1 -1
  443. package/modules/cylinder.src.js +11 -2
  444. package/modules/data.js +34 -33
  445. package/modules/data.js.map +1 -1
  446. package/modules/data.src.js +59 -32
  447. package/modules/datagrouping.js +21 -20
  448. package/modules/datagrouping.js.map +1 -1
  449. package/modules/datagrouping.src.js +16 -4
  450. package/modules/debugger.js +6 -6
  451. package/modules/debugger.js.map +1 -1
  452. package/modules/debugger.src.js +11 -2
  453. package/modules/dependency-wheel.js +12 -11
  454. package/modules/dependency-wheel.js.map +1 -1
  455. package/modules/dependency-wheel.src.js +14 -5
  456. package/modules/dotplot.js +6 -6
  457. package/modules/dotplot.js.map +1 -1
  458. package/modules/dotplot.src.js +11 -2
  459. package/modules/drag-panes.js +10 -10
  460. package/modules/drag-panes.js.map +1 -1
  461. package/modules/drag-panes.src.js +11 -2
  462. package/modules/draggable-points.js +35 -34
  463. package/modules/draggable-points.js.map +1 -1
  464. package/modules/draggable-points.src.js +20 -9
  465. package/modules/drilldown.d.ts +19 -0
  466. package/modules/drilldown.js +37 -25
  467. package/modules/drilldown.js.map +1 -1
  468. package/modules/drilldown.src.d.ts +19 -0
  469. package/modules/drilldown.src.js +1090 -105
  470. package/modules/dumbbell.js +17 -17
  471. package/modules/dumbbell.js.map +1 -1
  472. package/modules/dumbbell.src.js +11 -2
  473. package/modules/export-data.js +21 -20
  474. package/modules/export-data.js.map +1 -1
  475. package/modules/export-data.src.js +11 -2
  476. package/modules/exporting.js +39 -39
  477. package/modules/exporting.js.map +1 -1
  478. package/modules/exporting.src.js +82 -18
  479. package/modules/full-screen.js +8 -7
  480. package/modules/full-screen.js.map +1 -1
  481. package/modules/full-screen.src.js +11 -2
  482. package/modules/funnel.js +12 -12
  483. package/modules/funnel.js.map +1 -1
  484. package/modules/funnel.src.js +11 -2
  485. package/modules/funnel3d.js +21 -21
  486. package/modules/funnel3d.js.map +1 -1
  487. package/modules/funnel3d.src.js +11 -2
  488. package/modules/gantt.js +217 -217
  489. package/modules/gantt.js.map +1 -1
  490. package/modules/gantt.src.js +45 -20
  491. package/modules/grid-axis.js +23 -23
  492. package/modules/grid-axis.js.map +1 -1
  493. package/modules/grid-axis.src.js +22 -11
  494. package/modules/heatmap.js +40 -39
  495. package/modules/heatmap.js.map +1 -1
  496. package/modules/heatmap.src.js +33 -7
  497. package/modules/heikinashi.js +8 -8
  498. package/modules/heikinashi.js.map +1 -1
  499. package/modules/heikinashi.src.js +11 -2
  500. package/modules/histogram-bellcurve.js +13 -13
  501. package/modules/histogram-bellcurve.js.map +1 -1
  502. package/modules/histogram-bellcurve.src.js +11 -2
  503. package/modules/hollowcandlestick.js +9 -9
  504. package/modules/hollowcandlestick.js.map +1 -1
  505. package/modules/hollowcandlestick.src.js +11 -2
  506. package/modules/item-series.js +12 -12
  507. package/modules/item-series.js.map +1 -1
  508. package/modules/item-series.src.js +11 -2
  509. package/modules/lollipop.js +7 -7
  510. package/modules/lollipop.js.map +1 -1
  511. package/modules/lollipop.src.js +12 -3
  512. package/modules/map.d.ts +80 -43
  513. package/modules/map.js +169 -144
  514. package/modules/map.js.map +1 -1
  515. package/modules/map.src.d.ts +80 -43
  516. package/modules/map.src.js +7960 -6687
  517. package/modules/marker-clusters.js +36 -36
  518. package/modules/marker-clusters.js.map +1 -1
  519. package/modules/marker-clusters.src.js +47 -23
  520. package/modules/networkgraph.d.ts +5 -0
  521. package/modules/networkgraph.js +49 -48
  522. package/modules/networkgraph.js.map +1 -1
  523. package/modules/networkgraph.src.d.ts +5 -0
  524. package/modules/networkgraph.src.js +77 -15
  525. package/modules/no-data-to-display.js +5 -5
  526. package/modules/no-data-to-display.js.map +1 -1
  527. package/modules/no-data-to-display.src.js +11 -2
  528. package/modules/offline-exporting.js +20 -18
  529. package/modules/offline-exporting.js.map +1 -1
  530. package/modules/offline-exporting.src.js +126 -25
  531. package/modules/oldie-polyfills.js +7 -7
  532. package/modules/oldie-polyfills.js.map +1 -1
  533. package/modules/oldie-polyfills.src.js +11 -2
  534. package/modules/oldie.js +30 -30
  535. package/modules/oldie.js.map +1 -1
  536. package/modules/oldie.src.js +12 -3
  537. package/modules/organization.js +16 -14
  538. package/modules/organization.js.map +1 -1
  539. package/modules/organization.src.js +166 -32
  540. package/modules/overlapping-datalabels.js +3 -2
  541. package/modules/overlapping-datalabels.js.map +1 -1
  542. package/modules/overlapping-datalabels.src.js +11 -2
  543. package/modules/parallel-coordinates.js +11 -11
  544. package/modules/parallel-coordinates.js.map +1 -1
  545. package/modules/parallel-coordinates.src.js +11 -2
  546. package/modules/pareto.js +7 -7
  547. package/modules/pareto.js.map +1 -1
  548. package/modules/pareto.src.js +11 -2
  549. package/modules/pathfinder.js +31 -31
  550. package/modules/pathfinder.js.map +1 -1
  551. package/modules/pathfinder.src.js +11 -2
  552. package/modules/pattern-fill.js +14 -14
  553. package/modules/pattern-fill.js.map +1 -1
  554. package/modules/pattern-fill.src.js +11 -2
  555. package/modules/price-indicator.js +5 -5
  556. package/modules/price-indicator.js.map +1 -1
  557. package/modules/price-indicator.src.js +11 -2
  558. package/modules/pyramid3d.js +4 -4
  559. package/modules/pyramid3d.js.map +1 -1
  560. package/modules/pyramid3d.src.js +11 -2
  561. package/modules/sankey.d.ts +5 -0
  562. package/modules/sankey.js +32 -29
  563. package/modules/sankey.js.map +1 -1
  564. package/modules/sankey.src.d.ts +5 -0
  565. package/modules/sankey.src.js +338 -156
  566. package/modules/series-label.js +18 -17
  567. package/modules/series-label.js.map +1 -1
  568. package/modules/series-label.src.js +11 -2
  569. package/modules/solid-gauge.js +10 -10
  570. package/modules/solid-gauge.js.map +1 -1
  571. package/modules/solid-gauge.src.js +11 -2
  572. package/modules/sonification.js +59 -59
  573. package/modules/sonification.js.map +1 -1
  574. package/modules/sonification.src.js +11 -2
  575. package/modules/static-scale.js +5 -4
  576. package/modules/static-scale.js.map +1 -1
  577. package/modules/static-scale.src.js +11 -2
  578. package/modules/stock-tools.js +78 -78
  579. package/modules/stock-tools.js.map +1 -1
  580. package/modules/stock-tools.src.js +21 -5
  581. package/modules/stock.js +162 -162
  582. package/modules/stock.js.map +1 -1
  583. package/modules/stock.src.js +36 -13
  584. package/modules/streamgraph.js +5 -4
  585. package/modules/streamgraph.js.map +1 -1
  586. package/modules/streamgraph.src.js +11 -2
  587. package/modules/sunburst.d.ts +3 -0
  588. package/modules/sunburst.js +73 -60
  589. package/modules/sunburst.js.map +1 -1
  590. package/modules/sunburst.src.d.ts +3 -0
  591. package/modules/sunburst.src.js +1049 -96
  592. package/modules/tilemap.js +17 -17
  593. package/modules/tilemap.js.map +1 -1
  594. package/modules/tilemap.src.js +11 -2
  595. package/modules/timeline.js +18 -18
  596. package/modules/timeline.js.map +1 -1
  597. package/modules/timeline.src.js +11 -2
  598. package/modules/treegrid.js +57 -56
  599. package/modules/treegrid.js.map +1 -1
  600. package/modules/treegrid.src.js +33 -11
  601. package/modules/treemap.d.ts +3 -0
  602. package/modules/treemap.js +53 -41
  603. package/modules/treemap.js.map +1 -1
  604. package/modules/treemap.src.d.ts +3 -0
  605. package/modules/treemap.src.js +1039 -95
  606. package/modules/variable-pie.js +9 -9
  607. package/modules/variable-pie.js.map +1 -1
  608. package/modules/variable-pie.src.js +11 -2
  609. package/modules/variwide.js +12 -12
  610. package/modules/variwide.js.map +1 -1
  611. package/modules/variwide.src.js +11 -2
  612. package/modules/vector.js +8 -7
  613. package/modules/vector.js.map +1 -1
  614. package/modules/vector.src.js +11 -2
  615. package/modules/venn.js +31 -31
  616. package/modules/venn.js.map +1 -1
  617. package/modules/venn.src.js +18 -6
  618. package/modules/windbarb.js +15 -15
  619. package/modules/windbarb.js.map +1 -1
  620. package/modules/windbarb.src.js +11 -2
  621. package/modules/wordcloud.js +23 -23
  622. package/modules/wordcloud.js.map +1 -1
  623. package/modules/wordcloud.src.js +18 -6
  624. package/modules/xrange.js +16 -16
  625. package/modules/xrange.js.map +1 -1
  626. package/modules/xrange.src.js +11 -2
  627. package/package.json +1 -1
  628. package/themes/avocado.js +4 -3
  629. package/themes/avocado.js.map +1 -1
  630. package/themes/avocado.src.js +11 -2
  631. package/themes/brand-dark.js +9 -8
  632. package/themes/brand-dark.js.map +1 -1
  633. package/themes/brand-dark.src.js +11 -2
  634. package/themes/brand-light.js +8 -8
  635. package/themes/brand-light.js.map +1 -1
  636. package/themes/brand-light.src.js +11 -2
  637. package/themes/dark-blue.js +9 -8
  638. package/themes/dark-blue.js.map +1 -1
  639. package/themes/dark-blue.src.js +11 -2
  640. package/themes/dark-green.js +9 -8
  641. package/themes/dark-green.js.map +1 -1
  642. package/themes/dark-green.src.js +11 -2
  643. package/themes/dark-unica.js +8 -7
  644. package/themes/dark-unica.js.map +1 -1
  645. package/themes/dark-unica.src.js +11 -2
  646. package/themes/gray.js +9 -8
  647. package/themes/gray.js.map +1 -1
  648. package/themes/gray.src.js +11 -2
  649. package/themes/grid-light.js +5 -4
  650. package/themes/grid-light.js.map +1 -1
  651. package/themes/grid-light.src.js +11 -2
  652. package/themes/grid.js +5 -5
  653. package/themes/grid.js.map +1 -1
  654. package/themes/grid.src.js +11 -2
  655. package/themes/high-contrast-dark.js +7 -7
  656. package/themes/high-contrast-dark.js.map +1 -1
  657. package/themes/high-contrast-dark.src.js +21 -12
  658. package/themes/high-contrast-light.js +3 -3
  659. package/themes/high-contrast-light.js.map +1 -1
  660. package/themes/high-contrast-light.src.js +21 -12
  661. package/themes/sand-signika.js +5 -5
  662. package/themes/sand-signika.js.map +1 -1
  663. package/themes/sand-signika.src.js +11 -2
  664. package/themes/skies.js +5 -5
  665. package/themes/skies.js.map +1 -1
  666. package/themes/skies.src.js +11 -2
  667. package/themes/sunset.js +3 -3
  668. package/themes/sunset.js.map +1 -1
  669. package/themes/sunset.src.js +11 -2
  670. package/es-modules/Maps/ProjectionDefinition.js +0 -9
@@ -67,7 +67,6 @@ var Axis = /** @class */ (function () {
67
67
  function Axis(chart, userOptions) {
68
68
  this.alternateBands = void 0;
69
69
  this.bottom = void 0;
70
- this.categories = void 0;
71
70
  this.chart = void 0;
72
71
  this.closestPointRange = void 0;
73
72
  this.coll = void 0;
@@ -228,7 +227,7 @@ var Axis = /** @class */ (function () {
228
227
  * @type {Array<string>}
229
228
  * @readonly
230
229
  */
231
- axis.categories = options.categories || axis.hasNames;
230
+ axis.categories = options.categories || (axis.hasNames ? [] : void 0);
232
231
  if (!axis.names) { // Preserve on update (#3830)
233
232
  axis.names = [];
234
233
  axis.names.keys = {};
@@ -546,8 +545,9 @@ var Axis = /** @class */ (function () {
546
545
  if (doPostTranslate) { // log, ordinal and broken axis
547
546
  val = axis.val2lin(val);
548
547
  }
548
+ var value = sign * (val - localMin) * localA;
549
549
  returnValue = isNumber(localMin) ?
550
- (sign * (val - localMin) * localA +
550
+ ((!axis.isRadial ? correctFloat(value) : value) +
551
551
  cvsOffset +
552
552
  (sign * minPixelPadding) +
553
553
  (isNumber(pointPlacement) ?
@@ -902,18 +902,18 @@ var Axis = /** @class */ (function () {
902
902
  * The X value that the point is given.
903
903
  */
904
904
  Axis.prototype.nameToX = function (point) {
905
- var explicitCategories = isArray(this.categories), names = explicitCategories ? this.categories : this.names;
905
+ var explicitCategories = isArray(this.options.categories), names = explicitCategories ? this.categories : this.names;
906
906
  var nameX = point.options.x, x;
907
907
  point.series.requireSorting = false;
908
908
  if (!defined(nameX)) {
909
- nameX = this.options.uniqueNames ?
909
+ nameX = this.options.uniqueNames && names ?
910
910
  (explicitCategories ?
911
911
  names.indexOf(point.name) :
912
912
  pick(names.keys[point.name], -1)) :
913
913
  point.series.autoIncrement();
914
914
  }
915
915
  if (nameX === -1) { // Not found in currenct categories
916
- if (!explicitCategories) {
916
+ if (!explicitCategories && names) {
917
917
  x = names.length;
918
918
  }
919
919
  }
@@ -1461,38 +1461,87 @@ var Axis = /** @class */ (function () {
1461
1461
  * True if there are other axes.
1462
1462
  */
1463
1463
  Axis.prototype.alignToOthers = function () {
1464
- var axis = this, others = // Whether there is another axis to pair with this one
1465
- {}, options = axis.options;
1464
+ var axis = this, alignedAxes = [this], options = axis.options, alignThresholds = (this.coll === 'yAxis' &&
1465
+ this.chart.options.chart.alignThresholds), thresholdAlignments = [];
1466
1466
  var hasOther;
1467
- if (
1468
- // Only if alignTicks is true
1469
- this.chart.options.chart.alignTicks !== false &&
1470
- options.alignTicks &&
1467
+ axis.thresholdAlignment = void 0;
1468
+ if ((
1469
+ // Only if alignTicks or alignThresholds is true
1470
+ (this.chart.options.chart.alignTicks !== false &&
1471
+ options.alignTicks) || (alignThresholds)) &&
1471
1472
  // Disabled when startOnTick or endOnTick are false (#7604)
1472
1473
  options.startOnTick !== false &&
1473
1474
  options.endOnTick !== false &&
1474
1475
  // Don't try to align ticks on a log axis, they are not evenly
1475
1476
  // spaced (#6021)
1476
1477
  !axis.logarithmic) {
1477
- this.chart[this.coll].forEach(function (axis) {
1478
- var otherOptions = axis.options, horiz = axis.horiz, key = [
1479
- horiz ? otherOptions.left : otherOptions.top,
1480
- otherOptions.width,
1481
- otherOptions.height,
1482
- otherOptions.pane
1478
+ // Get a key identifying which pane the axis belongs to
1479
+ var getKey_1 = function (axis) {
1480
+ var horiz = axis.horiz, options = axis.options;
1481
+ return [
1482
+ horiz ? options.left : options.top,
1483
+ options.width,
1484
+ options.height,
1485
+ options.pane
1483
1486
  ].join(',');
1484
- if (axis.series.length) { // #4442
1485
- if (others[key]) {
1486
- hasOther = true; // #4201
1487
- }
1488
- else {
1489
- others[key] = 1;
1490
- }
1487
+ };
1488
+ var thisKey_1 = getKey_1(this);
1489
+ this.chart[this.coll].forEach(function (otherAxis) {
1490
+ var series = otherAxis.series;
1491
+ if (
1492
+ // #4442
1493
+ series.length &&
1494
+ series.some(function (s) { return s.visible; }) &&
1495
+ otherAxis !== axis &&
1496
+ getKey_1(otherAxis) === thisKey_1) {
1497
+ hasOther = true; // #4201
1498
+ alignedAxes.push(otherAxis);
1499
+ }
1500
+ });
1501
+ }
1502
+ if (hasOther && alignThresholds) {
1503
+ // Handle alignThresholds. The `thresholdAlignments` array keeps
1504
+ // records of where each axis in the group wants its threshold, from
1505
+ // 0 which is on `axis.min`, to 1 which is on `axis.max`.
1506
+ alignedAxes.forEach(function (otherAxis) {
1507
+ var threshAlign = otherAxis.getThresholdAlignment(axis);
1508
+ if (isNumber(threshAlign)) {
1509
+ thresholdAlignments.push(threshAlign);
1491
1510
  }
1492
1511
  });
1512
+ // For each of the axes in the group, record the average
1513
+ // `thresholdAlignment`.
1514
+ var thresholdAlignment_1 = thresholdAlignments.length > 1 ?
1515
+ thresholdAlignments.reduce(function (sum, n) { return (sum += n); }, 0) / thresholdAlignments.length :
1516
+ void 0;
1517
+ alignedAxes.forEach(function (axis) {
1518
+ axis.thresholdAlignment = thresholdAlignment_1;
1519
+ });
1493
1520
  }
1494
1521
  return hasOther;
1495
1522
  };
1523
+ /**
1524
+ * Where the axis wants its threshold, from 0 which is on `axis.min`, to 1 which
1525
+ * is on `axis.max`.
1526
+ *
1527
+ * @private
1528
+ * @function Highcharts.Axis#getThresholdAlignment
1529
+ */
1530
+ Axis.prototype.getThresholdAlignment = function (callerAxis) {
1531
+ if (!isNumber(this.dataMin) ||
1532
+ (this !== callerAxis &&
1533
+ this.series.some(function (s) { return (s.isDirty || s.isDirtyData); }))) {
1534
+ this.getSeriesExtremes();
1535
+ }
1536
+ if (isNumber(this.threshold)) {
1537
+ var thresholdAlignment = clamp(((this.threshold - (this.dataMin || 0)) /
1538
+ ((this.dataMax || 0) - (this.dataMin || 0))), 0, 1);
1539
+ if (this.options.reversed) {
1540
+ thresholdAlignment = 1 - thresholdAlignment;
1541
+ }
1542
+ return thresholdAlignment;
1543
+ }
1544
+ };
1496
1545
  /**
1497
1546
  * Find the max ticks of either the x and y axis collection, and record it
1498
1547
  * in `this.tickAmount`.
@@ -1534,34 +1583,89 @@ var Axis = /** @class */ (function () {
1534
1583
  * @function Highcharts.Axis#adjustTickAmount
1535
1584
  */
1536
1585
  Axis.prototype.adjustTickAmount = function () {
1537
- var axis = this, axisOptions = axis.options, tickInterval = axis.tickInterval, tickPositions = axis.tickPositions, tickAmount = axis.tickAmount, finalTickAmt = axis.finalTickAmt, currentTickAmount = tickPositions && tickPositions.length, threshold = pick(axis.threshold, axis.softThreshold ? 0 : null);
1538
- var len, i;
1539
- if (axis.hasData() &&
1540
- isNumber(axis.min) &&
1541
- isNumber(axis.max)) { // #14769
1542
- if (currentTickAmount < tickAmount) {
1586
+ var axis = this, finalTickAmt = axis.finalTickAmt, max = axis.max, min = axis.min, options = axis.options, tickPositions = axis.tickPositions, tickAmount = axis.tickAmount, thresholdAlignment = axis.thresholdAlignment, currentTickAmount = tickPositions && tickPositions.length, threshold = pick(axis.threshold, axis.softThreshold ? 0 : null);
1587
+ var len, i, tickInterval = axis.tickInterval, thresholdTickIndex;
1588
+ var
1589
+ // Extend the tickPositions by appending a position
1590
+ append = function () { return tickPositions.push(correctFloat(tickPositions[tickPositions.length - 1] +
1591
+ tickInterval)); },
1592
+ // Extend the tickPositions by prepending a position
1593
+ prepend = function () { return tickPositions.unshift(correctFloat(tickPositions[0] - tickInterval)); };
1594
+ // If `thresholdAlignment` is a number, it means the `alignThresholds`
1595
+ // option is true. The `thresholdAlignment` is a scalar value between 0
1596
+ // and 1 for where the threshold should be relative to `axis.min` and
1597
+ // `axis.max`. Now that we know the tick amount, convert this to the
1598
+ // tick index. Unless `thresholdAlignment` is exactly 0 or 1, avoid the
1599
+ // first or last tick because that would lead to series being clipped.
1600
+ if (isNumber(thresholdAlignment)) {
1601
+ thresholdTickIndex = thresholdAlignment < 0.5 ?
1602
+ Math.ceil(thresholdAlignment * (tickAmount - 1)) :
1603
+ Math.floor(thresholdAlignment * (tickAmount - 1));
1604
+ if (options.reversed) {
1605
+ thresholdTickIndex = tickAmount - 1 - thresholdTickIndex;
1606
+ }
1607
+ }
1608
+ if (axis.hasData() && isNumber(min) && isNumber(max)) { // #14769
1609
+ // Adjust extremes and translation to the modified tick positions
1610
+ var adjustExtremes = function () {
1611
+ axis.transA *= (currentTickAmount - 1) / (tickAmount - 1);
1612
+ // Do not crop when ticks are not extremes (#9841)
1613
+ axis.min = options.startOnTick ?
1614
+ tickPositions[0] :
1615
+ Math.min(min, tickPositions[0]);
1616
+ axis.max = options.endOnTick ?
1617
+ tickPositions[tickPositions.length - 1] :
1618
+ Math.max(max, tickPositions[tickPositions.length - 1]);
1619
+ };
1620
+ // When the axis is subject to the alignThresholds option. Use
1621
+ // axis.threshold because the local threshold includes the
1622
+ // `softThreshold`.
1623
+ if (isNumber(thresholdTickIndex) && isNumber(axis.threshold)) {
1624
+ // Throw away the previously computed tickPositions and start
1625
+ // from scratch with only the threshold itself, then add ticks
1626
+ // below the threshold first, then fill up above the threshold.
1627
+ // If we are not able to fill up to axis.max, double the
1628
+ // tickInterval and run again.
1629
+ while (tickPositions[thresholdTickIndex] !== threshold ||
1630
+ tickPositions.length !== tickAmount ||
1631
+ tickPositions[0] > min ||
1632
+ tickPositions[tickPositions.length - 1] < max) {
1633
+ tickPositions.length = 0;
1634
+ tickPositions.push(axis.threshold);
1635
+ while (tickPositions.length < tickAmount) {
1636
+ if (
1637
+ // Start by prepending positions until the threshold
1638
+ // is at the required index...
1639
+ tickPositions[thresholdTickIndex] === void 0 ||
1640
+ tickPositions[thresholdTickIndex] > axis.threshold) {
1641
+ prepend();
1642
+ }
1643
+ else {
1644
+ // ... then append positions until we have the
1645
+ // required length
1646
+ append();
1647
+ }
1648
+ }
1649
+ // Safety vent
1650
+ if (tickInterval > axis.tickInterval * 8) {
1651
+ break;
1652
+ }
1653
+ tickInterval *= 2;
1654
+ }
1655
+ adjustExtremes();
1656
+ }
1657
+ else if (currentTickAmount < tickAmount) {
1543
1658
  while (tickPositions.length < tickAmount) {
1544
1659
  // Extend evenly for both sides unless we're on the
1545
1660
  // threshold (#3965)
1546
- if (tickPositions.length % 2 ||
1547
- axis.min === threshold) {
1548
- // to the end
1549
- tickPositions.push(correctFloat(tickPositions[tickPositions.length - 1] +
1550
- tickInterval));
1661
+ if (tickPositions.length % 2 || min === threshold) {
1662
+ append();
1551
1663
  }
1552
1664
  else {
1553
- // to the start
1554
- tickPositions.unshift(correctFloat(tickPositions[0] - tickInterval));
1665
+ prepend();
1555
1666
  }
1556
1667
  }
1557
- axis.transA *= (currentTickAmount - 1) / (tickAmount - 1);
1558
- // Do not crop when ticks are not extremes (#9841)
1559
- axis.min = axisOptions.startOnTick ?
1560
- tickPositions[0] :
1561
- Math.min(axis.min, tickPositions[0]);
1562
- axis.max = axisOptions.endOnTick ?
1563
- tickPositions[tickPositions.length - 1] :
1564
- Math.max(axis.max, tickPositions[tickPositions.length - 1]);
1668
+ adjustExtremes();
1565
1669
  // We have too many ticks, run second pass to try to reduce ticks
1566
1670
  }
1567
1671
  else if (currentTickAmount > tickAmount) {
@@ -302,6 +302,16 @@ var ColorAxis = /** @class */ (function (_super) {
302
302
  axis.axisParent = group;
303
303
  // Call the base
304
304
  _super.prototype.getOffset.call(this);
305
+ var legend_1 = this.chart.legend;
306
+ // Adds `maxLabelLength` needed for label padding corrections done
307
+ // by `render()` and `getMargins()` (#15551).
308
+ legend_1.allItems.forEach(function (item) {
309
+ if (item instanceof ColorAxis) {
310
+ item.drawLegendSymbol(legend_1, item);
311
+ }
312
+ });
313
+ legend_1.render();
314
+ this.chart.getMargins(true);
305
315
  // First time only
306
316
  if (!axis.added) {
307
317
  axis.added = true;
@@ -344,17 +354,24 @@ var ColorAxis = /** @class */ (function (_super) {
344
354
  var horiz = axis.horiz;
345
355
  var width = pick(legendOptions.symbolWidth, horiz ? ColorAxis.defaultLegendLength : 12);
346
356
  var height = pick(legendOptions.symbolHeight, horiz ? 12 : ColorAxis.defaultLegendLength);
347
- var labelPadding = pick(legendOptions.labelPadding, horiz ? 16 : 30);
357
+ var labelPadding = pick(
358
+ // @todo: This option is not documented, nor implemented when
359
+ // vertical
360
+ legendOptions.labelPadding, horiz ? 16 : 30);
348
361
  var itemDistance = pick(legendOptions.itemDistance, 10);
349
362
  this.setLegendColor();
350
363
  // Create the gradient
351
- item.legendSymbol = this.chart.renderer.rect(0, legend.baseline - 11, width, height).attr({
352
- zIndex: 1
353
- }).add(item.legendGroup);
364
+ if (!item.legendSymbol) {
365
+ item.legendSymbol = this.chart.renderer.rect(0, legend.baseline - 11, width, height).attr({
366
+ zIndex: 1
367
+ }).add(item.legendGroup);
368
+ }
354
369
  // Set how much space this legend item takes up
355
370
  axis.legendItemWidth = (width +
356
371
  padding +
357
- (horiz ? itemDistance : labelPadding));
372
+ (horiz ?
373
+ itemDistance :
374
+ this.options.labels.x + this.maxLabelLength));
358
375
  axis.legendItemHeight = height + padding + (horiz ? labelPadding : 0);
359
376
  };
360
377
  /**
@@ -370,10 +370,14 @@ var GridAxis;
370
370
  (axis.scrollbar ||
371
371
  (axis.linkedParent && axis.linkedParent.scrollbar))) {
372
372
  var tickmarkOffset = axis.tickmarkOffset, lastTick = axis.tickPositions[axis.tickPositions.length - 1], firstTick = axis.tickPositions[0];
373
- var label = void 0;
373
+ var label = void 0, tickMark = void 0;
374
374
  while ((label = axis.hiddenLabels.pop()) && label.element) {
375
375
  label.show(); // #15453
376
376
  }
377
+ while ((tickMark = axis.hiddenMarks.pop()) &&
378
+ tickMark.element) {
379
+ tickMark.show(); // #16439
380
+ }
377
381
  // Hide/show firts tick label.
378
382
  label = axis.ticks[firstTick].label;
379
383
  if (label) {
@@ -395,14 +399,10 @@ var GridAxis;
395
399
  }
396
400
  }
397
401
  var mark = axis.ticks[lastTick].mark;
398
- if (mark) {
399
- if (lastTick - max < tickmarkOffset &&
400
- lastTick - max > 0 && axis.ticks[lastTick].isLast) {
401
- mark.hide();
402
- }
403
- else if (axis.ticks[lastTick - 1]) {
404
- mark.show();
405
- }
402
+ if (mark &&
403
+ lastTick - max < tickmarkOffset &&
404
+ lastTick - max > 0 && axis.ticks[lastTick].isLast) {
405
+ axis.hiddenMarks.push(mark.hide());
406
406
  }
407
407
  }
408
408
  }
@@ -684,6 +684,7 @@ var GridAxis;
684
684
  axis.grid = new Additions(axis);
685
685
  }
686
686
  axis.hiddenLabels = [];
687
+ axis.hiddenMarks = [];
687
688
  }
688
689
  /**
689
690
  * Center tick labels in cells.
@@ -258,6 +258,17 @@ var TreeGridTick;
258
258
  brokenAxis.setBreaks(breaks, pick(redraw, true));
259
259
  }
260
260
  };
261
+ /**
262
+ * Destroy remaining labelIcon if exist.
263
+ *
264
+ * @private
265
+ * @function Highcharts.Tick#destroy
266
+ */
267
+ Additions.prototype.destroy = function () {
268
+ if (this.labelIcon) {
269
+ this.labelIcon.destroy();
270
+ }
271
+ };
261
272
  /**
262
273
  * Expand the grid cell. Used when axis is of type treegrid.
263
274
  *
@@ -1494,17 +1494,7 @@ var Chart3D;
1494
1494
  */
1495
1495
  function onAfterGetContainer() {
1496
1496
  if (this.styledMode) {
1497
- this.renderer.definition({
1498
- tagName: 'style',
1499
- textContent: '.highcharts-3d-top{' +
1500
- 'filter: url(#highcharts-brighter)' +
1501
- '}\n' +
1502
- '.highcharts-3d-side{' +
1503
- 'filter: url(#highcharts-darker)' +
1504
- '}\n'
1505
- });
1506
- // Add add definitions used by brighter and darker faces of the
1507
- // cuboids.
1497
+ // Add definitions used by brighter and darker faces of the cuboids.
1508
1498
  [{
1509
1499
  name: 'darker',
1510
1500
  slope: 0.6
@@ -20,18 +20,19 @@
20
20
  */
21
21
  var ChartDefaults = {
22
22
  /**
23
- * Default `mapData` for all series. If set to a string, it functions
24
- * as an index into the `Highcharts.maps` array. Otherwise it is
25
- * interpreted as map data.
23
+ * Default `mapData` for all series, in terms of a GeoJSON or TopoJSON
24
+ * object. If set to a string, it functions as an index into the
25
+ * `Highcharts.maps` array.
26
26
  *
27
- * @see [mapData](#series.map.mapData)
27
+ * For picking out individual shapes and geometries to use for each series
28
+ * of the map, see [series.mapData](#series.map.mapData).
28
29
  *
29
30
  * @sample maps/demo/geojson
30
- * Loading geoJSON data
31
+ * Loading GeoJSON data
31
32
  * @sample maps/chart/topojson
32
- * Loading topoJSON converted to geoJSON
33
+ * Loading TopoJSON data
33
34
  *
34
- * @type {string|Array<*>|Highcharts.GeoJSON}
35
+ * @type {string|Array<*>|Highcharts.GeoJSON|Highcharts.TopoJSON}
35
36
  * @since 5.0.0
36
37
  * @product highmaps
37
38
  * @apioption chart.map
@@ -46,7 +47,7 @@ var ChartDefaults = {
46
47
  * @apioption chart.mapTransforms
47
48
  */
48
49
  /**
49
- * When using multiple axis, the ticks of two or more opposite axes
50
+ * When using multiple axes, the ticks of two or more opposite axes
50
51
  * will automatically be aligned by adding ticks to the axis or axes
51
52
  * with the least ticks, as if `tickAmount` were specified.
52
53
  *
@@ -54,8 +55,8 @@ var ChartDefaults = {
54
55
  * lines look messy, it's a good idea to hide them for the secondary
55
56
  * axis by setting `gridLineWidth` to 0.
56
57
  *
57
- * If `startOnTick` or `endOnTick` in an Axis options are set to false,
58
- * then the `alignTicks ` will be disabled for the Axis.
58
+ * If `startOnTick` or `endOnTick` in the axis options are set to false,
59
+ * then the `alignTicks ` will be disabled for the axis.
59
60
  *
60
61
  * Disabled for logarithmic axes.
61
62
  *
@@ -73,6 +74,25 @@ var ChartDefaults = {
73
74
  * @product highcharts highstock gantt
74
75
  * @apioption chart.alignTicks
75
76
  */
77
+ /**
78
+ * When using multiple axes, align the thresholds. When this is true, other
79
+ * ticks will also be aligned.
80
+ *
81
+ * Note that for line series and some other series types, the `threshold`
82
+ * option is set to `null` by default. This will in turn cause their y-axis
83
+ * to not have a threshold. In order to avoid that, set the series
84
+ * `threshold` to 0 or another number.
85
+ *
86
+ * If `startOnTick` or `endOnTick` in the axis options are set to false, or
87
+ * if the axis is logarithmic, the threshold will not be aligned.
88
+ *
89
+ * @sample {highcharts} highcharts/chart/alignthresholds/ Set to true
90
+ *
91
+ * @since 10.0.0
92
+ * @product highcharts highstock gantt
93
+ * @apioption chart.alignThresholds
94
+ */
95
+ alignThresholds: false,
76
96
  /**
77
97
  * Set the overall animation for all chart updating. Animation can be
78
98
  * disabled throughout the chart by setting it to false here. It can
@@ -876,9 +896,10 @@ var ChartDefaults = {
876
896
  * Y
877
897
  * @sample {highstock} stock/chart/zoomtype-xy/
878
898
  * Xy
899
+ * @sample {highmaps} maps/chart/zoomtype-xy/
900
+ * Map with selection zoom
879
901
  *
880
902
  * @type {string}
881
- * @product highcharts highstock gantt
882
903
  * @validvalue ["x", "y", "xy"]
883
904
  * @apioption chart.zoomType
884
905
  */
@@ -24,10 +24,9 @@ var __extends = (this && this.__extends) || (function () {
24
24
  import Chart from './Chart.js';
25
25
  import D from '../DefaultOptions.js';
26
26
  var getOptions = D.getOptions;
27
- import MapView from '../../Maps/MapView.js';
28
27
  import SVGRenderer from '../Renderer/SVG/SVGRenderer.js';
29
28
  import U from '../Utilities.js';
30
- var addEvent = U.addEvent, clamp = U.clamp, isNumber = U.isNumber, merge = U.merge, pick = U.pick;
29
+ var merge = U.merge, pick = U.pick;
31
30
  import '../../Maps/MapSymbols.js';
32
31
  /**
33
32
  * Map-optimized chart. Use {@link Highcharts.Chart|Chart} for common charts.
@@ -61,10 +60,6 @@ var MapChart = /** @class */ (function (_super) {
61
60
  * @emits Highcharts.MapChart#event:afterInit
62
61
  */
63
62
  MapChart.prototype.init = function (userOptions, callback) {
64
- // Initialize the MapView after initialization, but before firstRender
65
- addEvent(this, 'afterInit', function () {
66
- this.mapView = new MapView(this, this.options.mapView);
67
- });
68
63
  var defaultCreditsOptions = getOptions().credits;
69
64
  var options = merge({
70
65
  chart: {
@@ -2271,6 +2271,8 @@ var defaultOptions = {
2271
2271
  *
2272
2272
  * @sample {highcharts} highcharts/tooltip/pointformat/
2273
2273
  * A different point format with value suffix
2274
+ * @sample {highcharts|highstock} highcharts/tooltip/pointformat-extra-information/
2275
+ * Show extra information about points in the tooltip
2274
2276
  * @sample {highmaps} maps/tooltip/format/
2275
2277
  * Format demo
2276
2278
  *
@@ -0,0 +1,84 @@
1
+ /* *
2
+ *
3
+ * (c) 2010-2021 Highsoft AS
4
+ *
5
+ * License: www.highcharts.com/license
6
+ *
7
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
8
+ *
9
+ * */
10
+ 'use strict';
11
+ var isInside = function (clipEdge1, clipEdge2, p) {
12
+ return (clipEdge2[0] - clipEdge1[0]) * (p[1] - clipEdge1[1]) >
13
+ (clipEdge2[1] - clipEdge1[1]) * (p[0] - clipEdge1[0]);
14
+ };
15
+ var intersection = function (clipEdge1, clipEdge2, prevPoint, currentPoint) {
16
+ var dc = [
17
+ clipEdge1[0] - clipEdge2[0],
18
+ clipEdge1[1] - clipEdge2[1]
19
+ ], dp = [
20
+ prevPoint[0] - currentPoint[0],
21
+ prevPoint[1] - currentPoint[1]
22
+ ], n1 = clipEdge1[0] * clipEdge2[1] - clipEdge1[1] * clipEdge2[0], n2 = prevPoint[0] * currentPoint[1] - prevPoint[1] * currentPoint[0], n3 = 1 / (dc[0] * dp[1] - dc[1] * dp[0]), intersection = [
23
+ (n1 * dp[0] - n2 * dc[0]) * n3,
24
+ (n1 * dp[1] - n2 * dc[1]) * n3
25
+ ];
26
+ intersection.isIntersection = true;
27
+ return intersection;
28
+ };
29
+ var PolygonClip;
30
+ (function (PolygonClip) {
31
+ // Simple line string clipping. Clip to bounds and insert intersection
32
+ // points.
33
+ PolygonClip.clipLineString = function (line, boundsPolygon) {
34
+ var ret = [], l = PolygonClip.clipPolygon(line, boundsPolygon, false);
35
+ for (var i = 1; i < l.length; i++) {
36
+ // Insert gap where two intersections follow each other
37
+ if (l[i].isIntersection && l[i - 1].isIntersection) {
38
+ ret.push(l.splice(0, i));
39
+ i = 0;
40
+ }
41
+ // Push the rest
42
+ if (i === l.length - 1) {
43
+ ret.push(l);
44
+ }
45
+ }
46
+ return ret;
47
+ };
48
+ // Clip a polygon to another polygon using the Sutherland/Hodgman algorithm.
49
+ PolygonClip.clipPolygon = function (subjectPolygon, boundsPolygon, closed) {
50
+ if (closed === void 0) { closed = true; }
51
+ var clipEdge1 = boundsPolygon[boundsPolygon.length - 1], clipEdge2, prevPoint, currentPoint, outputList = subjectPolygon;
52
+ for (var j = 0; j < boundsPolygon.length; j++) {
53
+ var inputList = outputList;
54
+ clipEdge2 = boundsPolygon[j];
55
+ outputList = [];
56
+ prevPoint = closed ?
57
+ // Polygon, wrap around
58
+ inputList[inputList.length - 1] :
59
+ // Open line string, don't wrap
60
+ inputList[0];
61
+ for (var i = 0; i < inputList.length; i++) {
62
+ currentPoint = inputList[i];
63
+ if (isInside(clipEdge1, clipEdge2, currentPoint)) {
64
+ if (!isInside(clipEdge1, clipEdge2, prevPoint)) {
65
+ outputList.push(intersection(clipEdge1, clipEdge2, prevPoint, currentPoint));
66
+ }
67
+ outputList.push(currentPoint);
68
+ }
69
+ else if (isInside(clipEdge1, clipEdge2, prevPoint)) {
70
+ outputList.push(intersection(clipEdge1, clipEdge2, prevPoint, currentPoint));
71
+ }
72
+ prevPoint = currentPoint;
73
+ }
74
+ clipEdge1 = clipEdge2;
75
+ }
76
+ return outputList;
77
+ };
78
+ })(PolygonClip || (PolygonClip = {}));
79
+ /* *
80
+ *
81
+ * Default Export
82
+ *
83
+ * */
84
+ export default PolygonClip;
@@ -8,23 +8,6 @@
8
8
  *
9
9
  * */
10
10
  'use strict';
11
- /* *
12
- *
13
- * Constants
14
- *
15
- * */
16
- /**
17
- * @private
18
- * @deprecated
19
- * @todo Rename UMD argument `win` to `window`; move code to `Globals.win`
20
- */
21
- var w = (typeof win !== 'undefined' ?
22
- win :
23
- typeof window !== 'undefined' ?
24
- window :
25
- {}
26
- // eslint-disable-next-line node/no-unsupported-features/es-builtins
27
- );
28
11
  /* *
29
12
  *
30
13
  * Namespace
@@ -40,7 +23,10 @@ var Globals;
40
23
  * Constants
41
24
  *
42
25
  * */
43
- Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '9.3.3', Globals.win = w, Globals.doc = Globals.win.document, Globals.svg = (Globals.doc &&
26
+ Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '10.0.0', Globals.win = (typeof window !== 'undefined' ?
27
+ window :
28
+ {}), // eslint-disable-line node/no-unsupported-features/es-builtins
29
+ Globals.doc = Globals.win.document, Globals.svg = (Globals.doc &&
44
30
  Globals.doc.createElementNS &&
45
31
  !!Globals.doc.createElementNS(Globals.SVG_NS, 'svg').createSVGRect), Globals.userAgent = (Globals.win.navigator && Globals.win.navigator.userAgent) || '', Globals.isChrome = Globals.userAgent.indexOf('Chrome') !== -1, Globals.isFirefox = Globals.userAgent.indexOf('Firefox') !== -1, Globals.isMS = /(edge|msie|trident)/i.test(Globals.userAgent) && !Globals.win.opera, Globals.isSafari = !Globals.isChrome && Globals.userAgent.indexOf('Safari') !== -1, Globals.isTouchDevice = /(Mobile|Android|Windows Phone)/.test(Globals.userAgent), Globals.isWebKit = Globals.userAgent.indexOf('AppleWebKit') !== -1, Globals.deg2rad = Math.PI * 2 / 360, Globals.hasBidiBug = (Globals.isFirefox &&
46
32
  parseInt(Globals.userAgent.split('Firefox/')[1], 10) < 4 // issue #38