highcharts 9.3.3 → 10.2.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 (917) 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 +3 -4
  9. package/es-modules/Accessibility/Components/AnnotationsA11y.js +3 -3
  10. package/es-modules/Accessibility/Components/ContainerComponent.js +11 -10
  11. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +18 -11
  12. package/es-modules/Accessibility/Components/LegendComponent.js +34 -26
  13. package/es-modules/Accessibility/Components/MenuComponent.js +7 -6
  14. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +5 -3
  15. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +7 -6
  16. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +1 -1
  17. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +3 -2
  18. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +34 -18
  19. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +96 -39
  20. package/es-modules/Accessibility/Components/ZoomComponent.js +43 -80
  21. package/es-modules/Accessibility/FocusBorder.js +6 -5
  22. package/es-modules/Accessibility/HighContrastMode.js +3 -3
  23. package/es-modules/Accessibility/KeyboardNavigation.js +113 -98
  24. package/es-modules/Accessibility/Options/{Options.js → A11yDefaults.js} +72 -4
  25. package/es-modules/Accessibility/Options/DeprecatedOptions.js +12 -2
  26. package/es-modules/Accessibility/Options/{LangOptions.js → LangDefaults.js} +46 -31
  27. package/es-modules/Accessibility/ProxyElement.js +14 -6
  28. package/es-modules/Accessibility/ProxyProvider.js +10 -2
  29. package/es-modules/Accessibility/Utils/ChartUtilities.js +10 -5
  30. package/es-modules/Core/Animation/Fx.js +1 -1
  31. package/es-modules/Core/Axis/Axis.js +197 -91
  32. package/es-modules/Core/Axis/AxisDefaults.js +8 -8
  33. package/es-modules/Core/Axis/Color/ColorAxis.js +26 -7
  34. package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +3 -3
  35. package/es-modules/Core/Axis/DateTimeAxis.js +5 -3
  36. package/es-modules/Core/Axis/GridAxis.js +821 -821
  37. package/es-modules/Core/Axis/LogarithmicAxis.js +1 -1
  38. package/es-modules/Core/Axis/OrdinalAxis.js +26 -3
  39. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +3 -3
  40. package/es-modules/Core/Axis/StackingAxis.js +0 -1
  41. package/es-modules/Core/Axis/Tick.js +22 -18
  42. package/es-modules/Core/Axis/TreeGridTick.js +13 -2
  43. package/es-modules/Core/Axis/ZAxis.js +3 -1
  44. package/es-modules/Core/Chart/Chart.js +27 -8
  45. package/es-modules/Core/Chart/Chart3D.js +1 -11
  46. package/es-modules/Core/Chart/ChartDefaults.js +46 -14
  47. package/es-modules/Core/Chart/GanttChart.js +3 -1
  48. package/es-modules/Core/Chart/MapChart.js +4 -7
  49. package/es-modules/Core/Chart/StockChart.js +7 -5
  50. package/es-modules/Core/Color/Color.js +1 -1
  51. package/es-modules/Core/DefaultOptions.js +19 -15
  52. package/es-modules/Core/Geometry/PolygonClip.js +84 -0
  53. package/es-modules/Core/Globals.js +4 -18
  54. package/es-modules/Core/HttpUtilities.js +46 -39
  55. package/es-modules/Core/Legend/Legend.js +14 -12
  56. package/es-modules/Core/MSPointer.js +3 -1
  57. package/es-modules/Core/Navigator.js +16 -13
  58. package/es-modules/Core/Pointer.js +16 -12
  59. package/es-modules/Core/Renderer/HTML/AST.js +68 -8
  60. package/es-modules/Core/Renderer/HTML/HTMLElement.js +3 -1
  61. package/es-modules/Core/Renderer/HTML/HTMLRenderer.js +3 -1
  62. package/es-modules/Core/Renderer/SVG/SVGElement.js +54 -70
  63. package/es-modules/Core/Renderer/SVG/SVGElement3D.js +17 -5
  64. package/es-modules/Core/Renderer/SVG/SVGLabel.js +3 -1
  65. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +60 -55
  66. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +4 -2
  67. package/es-modules/Core/Renderer/SVG/TextBuilder.js +12 -10
  68. package/es-modules/Core/Scrollbar.js +9 -5
  69. package/es-modules/Core/ScrollbarDefaults.js +8 -8
  70. package/es-modules/Core/Series/DataLabel.js +67 -38
  71. package/es-modules/Core/Series/Point.js +11 -2
  72. package/es-modules/Core/Series/Series.js +57 -27
  73. package/es-modules/Core/Series/Series3D.js +3 -1
  74. package/es-modules/Core/Series/SeriesDefaults.js +7 -4
  75. package/es-modules/Core/Time.js +6 -7
  76. package/es-modules/Core/Tooltip.js +17 -34
  77. package/es-modules/Core/Utilities.js +33 -33
  78. package/es-modules/Data/DataConverter.js +1 -1
  79. package/es-modules/Data/DataTable.js +12 -10
  80. package/es-modules/Data/Modifiers/ChainModifier.js +3 -1
  81. package/es-modules/Data/Modifiers/GroupModifier.js +3 -1
  82. package/es-modules/Data/Modifiers/InvertModifier.js +9 -7
  83. package/es-modules/Data/Modifiers/RangeModifier.js +3 -1
  84. package/es-modules/Data/Modifiers/SeriesPointsModifier.js +3 -1
  85. package/es-modules/Data/Modifiers/SortModifier.js +3 -1
  86. package/es-modules/Data/Parsers/CSVParser.js +3 -1
  87. package/es-modules/Data/Parsers/DataParser.js +1 -1
  88. package/es-modules/Data/Parsers/GoogleSheetsParser.js +3 -2
  89. package/es-modules/Data/Parsers/HTMLTableParser.js +3 -1
  90. package/es-modules/Data/Stores/CSVStore.js +8 -5
  91. package/es-modules/Data/Stores/GoogleSheetsStore.js +3 -1
  92. package/es-modules/Data/Stores/HTMLTableStore.js +3 -1
  93. package/es-modules/Extensions/Annotations/{Annotations.js → Annotation.js} +30 -11
  94. package/es-modules/Extensions/Annotations/AnnotationsDefaults.js +0 -0
  95. package/es-modules/Extensions/Annotations/ControlPoint.js +1 -1
  96. package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +5 -2
  97. package/es-modules/Extensions/Annotations/MockPoint.js +1 -1
  98. package/es-modules/Extensions/Annotations/NavigationBindings.js +16 -5
  99. package/es-modules/Extensions/Annotations/Popup.js +2 -2
  100. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +18 -12
  101. package/es-modules/Extensions/Annotations/Types/CrookedLine.js +4 -2
  102. package/es-modules/Extensions/Annotations/Types/ElliottWave.js +4 -2
  103. package/es-modules/Extensions/Annotations/Types/Fibonacci.js +5 -3
  104. package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +4 -2
  105. package/es-modules/Extensions/Annotations/Types/InfinityLine.js +4 -2
  106. package/es-modules/Extensions/Annotations/Types/Measure.js +4 -2
  107. package/es-modules/Extensions/Annotations/Types/Pitchfork.js +4 -2
  108. package/es-modules/Extensions/Annotations/Types/TimeCycles.js +4 -2
  109. package/es-modules/Extensions/Annotations/Types/Tunnel.js +5 -2
  110. package/es-modules/Extensions/Annotations/Types/VerticalLine.js +4 -2
  111. package/es-modules/Extensions/Boost/BoostAttach.js +5 -1
  112. package/es-modules/Extensions/Boost/BoostInit.js +9 -3
  113. package/es-modules/Extensions/Boost/BoostOptions.js +26 -0
  114. package/es-modules/Extensions/Boost/Boostables.js +1 -0
  115. package/es-modules/Extensions/Boost/WGLRenderer.js +48 -37
  116. package/es-modules/Extensions/Boost/WGLShader.js +4 -3
  117. package/es-modules/Extensions/BoostCanvas.js +11 -5
  118. package/es-modules/Extensions/Breadcrumbs.js +898 -0
  119. package/es-modules/Extensions/CurrentDateIndication.js +1 -1
  120. package/es-modules/Extensions/Data.js +661 -613
  121. package/es-modules/Extensions/DataGrouping.js +8 -3
  122. package/es-modules/Extensions/Debugger/ErrorMessages.js +4 -0
  123. package/es-modules/Extensions/DownloadURL.js +3 -3
  124. package/es-modules/Extensions/DragPanes.js +1 -1
  125. package/es-modules/Extensions/DraggablePoints.js +9 -7
  126. package/es-modules/Extensions/Drilldown.js +152 -97
  127. package/es-modules/Extensions/ExportData.js +58 -9
  128. package/es-modules/Extensions/Exporting/Exporting.js +34 -23
  129. package/es-modules/Extensions/Exporting/ExportingDefaults.js +56 -8
  130. package/es-modules/Extensions/FullScreen.js +121 -54
  131. package/es-modules/Extensions/GeoJSON.js +149 -125
  132. package/es-modules/Extensions/MarkerClusters.js +36 -22
  133. package/es-modules/Extensions/NoDataToDisplay.js +1 -1
  134. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +110 -22
  135. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  136. package/es-modules/Extensions/Oldie/Oldie.js +2 -2
  137. package/es-modules/Extensions/OverlappingDataLabels.js +5 -4
  138. package/es-modules/Extensions/Pane.js +3 -3
  139. package/es-modules/Extensions/ParallelCoordinates.js +1 -1
  140. package/es-modules/Extensions/PatternFill.js +14 -2
  141. package/es-modules/Extensions/RangeSelector.js +29 -18
  142. package/es-modules/Extensions/ScrollablePlotArea.js +8 -4
  143. package/es-modules/Extensions/{SeriesLabel.js → SeriesLabel/SeriesLabel.js} +262 -384
  144. package/es-modules/Extensions/SeriesLabel/SeriesLabelDefaults.js +124 -0
  145. package/es-modules/Extensions/SeriesLabel/SeriesLabelUtilities.js +67 -0
  146. package/es-modules/Extensions/Sonification/Earcon.js +1 -1
  147. package/es-modules/Extensions/Stacking.js +5 -4
  148. package/es-modules/Extensions/Themes/HighContrastDark.js +10 -10
  149. package/es-modules/Extensions/Themes/HighContrastLight.js +10 -10
  150. package/es-modules/Maps/MapNavigation.js +49 -12
  151. package/es-modules/Maps/MapPointer.js +16 -0
  152. package/es-modules/Maps/MapUtilities.js +56 -0
  153. package/es-modules/Maps/MapView.js +619 -137
  154. package/es-modules/Maps/MapViewInsetsOptionsDefault.js +148 -0
  155. package/es-modules/Maps/MapViewOptionsDefault.js +60 -20
  156. package/es-modules/Maps/Projection.js +182 -88
  157. package/es-modules/Maps/Projections/EqualEarth.js +15 -6
  158. package/es-modules/Maps/Projections/LambertConformalConic.js +27 -19
  159. package/es-modules/Maps/Projections/Miller.js +23 -10
  160. package/es-modules/Maps/Projections/Orthographic.js +21 -10
  161. package/es-modules/Maps/Projections/WebMercator.js +25 -13
  162. package/es-modules/Series/ArcDiagram/ArcDiagramPoint.js +79 -0
  163. package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +591 -0
  164. package/es-modules/Series/Area/AreaSeries.js +21 -14
  165. package/es-modules/Series/AreaRange/AreaRangePoint.js +24 -11
  166. package/es-modules/Series/AreaRange/AreaRangeSeries.js +154 -147
  167. package/es-modules/Series/AreaSpline/AreaSplineSeries.js +45 -41
  168. package/es-modules/Series/AreaSplineRange/AreaSplineRangeSeries.js +43 -43
  169. package/es-modules/Series/Bar/BarSeries.js +3 -1
  170. package/es-modules/Series/Bellcurve/BellcurveSeries.js +3 -1
  171. package/es-modules/Series/BoxPlot/BoxPlotSeries.js +4 -2
  172. package/es-modules/Series/Bubble/BubbleLegendDefaults.js +1 -1
  173. package/es-modules/Series/Bubble/BubblePoint.js +3 -1
  174. package/es-modules/Series/Bubble/BubbleSeries.js +15 -6
  175. package/es-modules/Series/Bullet/BulletPoint.js +3 -1
  176. package/es-modules/Series/Bullet/BulletSeries.js +4 -3
  177. package/es-modules/Series/Candlestick/CandlestickSeries.js +5 -3
  178. package/es-modules/Series/CenteredUtilities.js +8 -2
  179. package/es-modules/Series/ColorMapComposition.js +111 -0
  180. package/es-modules/Series/Column/ColumnSeries.js +10 -7
  181. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +3 -1
  182. package/es-modules/Series/ColumnRange/ColumnRangePoint.js +17 -13
  183. package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +60 -57
  184. package/es-modules/Series/Cylinder/CylinderPoint.js +3 -1
  185. package/es-modules/Series/Cylinder/CylinderSeries.js +3 -1
  186. package/es-modules/Series/DataModifyComposition.js +1 -0
  187. package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +3 -1
  188. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +5 -3
  189. package/es-modules/Series/DotPlot/DotPlotSeries.js +3 -1
  190. package/es-modules/Series/DrawPointUtilities.js +87 -0
  191. package/es-modules/Series/Dumbbell/DumbbellPoint.js +3 -1
  192. package/es-modules/Series/Dumbbell/DumbbellSeries.js +4 -2
  193. package/es-modules/Series/ErrorBar/ErrorBarSeries.js +4 -2
  194. package/es-modules/Series/Flags/FlagsPoint.js +4 -1
  195. package/es-modules/Series/Flags/FlagsSeries.js +13 -16
  196. package/es-modules/Series/Funnel/FunnelSeries.js +5 -3
  197. package/es-modules/Series/Funnel3D/Funnel3DPoint.js +3 -1
  198. package/es-modules/Series/Funnel3D/Funnel3DSeries.js +3 -1
  199. package/es-modules/Series/Gantt/GanttPoint.js +3 -1
  200. package/es-modules/Series/Gantt/GanttSeries.js +3 -1
  201. package/es-modules/Series/Gauge/GaugePoint.js +3 -1
  202. package/es-modules/Series/Gauge/GaugeSeries.js +196 -174
  203. package/es-modules/Series/HLC/HLCPoint.js +3 -1
  204. package/es-modules/Series/HLC/HLCSeries.js +4 -2
  205. package/es-modules/Series/Heatmap/HeatmapPoint.js +7 -5
  206. package/es-modules/Series/Heatmap/HeatmapSeries.js +29 -33
  207. package/es-modules/Series/HeikinAshi/HeikinAshiPoint.js +3 -1
  208. package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +3 -1
  209. package/es-modules/Series/Histogram/HistogramSeries.js +3 -1
  210. package/es-modules/Series/HollowCandlestick/HollowCandlestickPoint.js +3 -1
  211. package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +11 -9
  212. package/es-modules/Series/Item/ItemPoint.js +3 -1
  213. package/es-modules/Series/Item/ItemSeries.js +3 -1
  214. package/es-modules/Series/Line/LineSeries.js +4 -2
  215. package/es-modules/Series/Lollipop/LollipopPoint.js +3 -1
  216. package/es-modules/Series/Lollipop/LollipopSeries.js +4 -2
  217. package/es-modules/Series/Map/MapPoint.js +32 -7
  218. package/es-modules/Series/Map/MapSeries.js +298 -189
  219. package/es-modules/Series/MapBubble/MapBubblePoint.js +19 -25
  220. package/es-modules/Series/MapBubble/MapBubbleSeries.js +61 -2
  221. package/es-modules/Series/MapLine/MapLineSeries.js +18 -1
  222. package/es-modules/Series/MapPoint/MapPointPoint.js +6 -10
  223. package/es-modules/Series/MapPoint/MapPointSeries.js +50 -16
  224. package/es-modules/Series/Networkgraph/Networkgraph.js +3 -1
  225. package/es-modules/Series/NodesComposition.js +101 -49
  226. package/es-modules/Series/OHLC/OHLCPoint.js +3 -1
  227. package/es-modules/Series/OHLC/OHLCSeries.js +10 -1
  228. package/es-modules/Series/Organization/OrganizationPoint.js +71 -3
  229. package/es-modules/Series/Organization/OrganizationSeries.js +84 -28
  230. package/es-modules/Series/PackedBubble/PackedBubbleComposition.js +0 -2
  231. package/es-modules/Series/PackedBubble/PackedBubblePoint.js +3 -1
  232. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +3 -1
  233. package/es-modules/Series/ParetoSeries/ParetoSeries.js +3 -1
  234. package/es-modules/Series/Pie/PieDataLabel.js +4 -2
  235. package/es-modules/Series/Pie/PiePoint.js +15 -6
  236. package/es-modules/Series/Pie/PieSeries.js +51 -37
  237. package/es-modules/Series/Pie3D/Pie3DPoint.js +3 -1
  238. package/es-modules/Series/Pie3D/Pie3DSeries.js +22 -1
  239. package/es-modules/Series/PolarComposition.js +819 -0
  240. package/es-modules/Series/Polygon/PolygonSeries.js +3 -1
  241. package/es-modules/Series/Pyramid/PyramidSeries.js +3 -1
  242. package/es-modules/Series/Pyramid3D/Pyramid3DSeries.js +3 -1
  243. package/es-modules/Series/Sankey/SankeyColumnComposition.js +193 -0
  244. package/es-modules/Series/Sankey/SankeyPoint.js +40 -2
  245. package/es-modules/Series/Sankey/SankeySeries.js +35 -136
  246. package/es-modules/Series/Scatter/ScatterSeries.js +11 -6
  247. package/es-modules/Series/Scatter3D/Scatter3DPoint.js +3 -1
  248. package/es-modules/Series/Scatter3D/Scatter3DSeries.js +3 -1
  249. package/es-modules/Series/SeriesOnPointComposition.js +391 -0
  250. package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +5 -3
  251. package/es-modules/Series/Spline/SplineSeries.js +13 -4
  252. package/es-modules/Series/Streamgraph/StreamgraphSeries.js +3 -1
  253. package/es-modules/Series/Sunburst/SunburstPoint.js +3 -3
  254. package/es-modules/Series/Sunburst/SunburstSeries.js +21 -5
  255. package/es-modules/Series/Tilemap/TilemapPoint.js +3 -1
  256. package/es-modules/Series/Tilemap/TilemapSeries.js +3 -1
  257. package/es-modules/Series/Timeline/TimelinePoint.js +3 -1
  258. package/es-modules/Series/Timeline/TimelineSeries.js +6 -4
  259. package/es-modules/Series/Treemap/TreemapPoint.js +8 -4
  260. package/es-modules/Series/Treemap/TreemapSeries.js +97 -87
  261. package/es-modules/Series/VariablePie/VariablePieSeries.js +3 -1
  262. package/es-modules/Series/Variwide/VariwidePoint.js +3 -1
  263. package/es-modules/Series/Variwide/VariwideSeries.js +3 -1
  264. package/es-modules/Series/Vector/VectorSeries.js +3 -1
  265. package/es-modules/Series/Venn/VennPoint.js +5 -5
  266. package/es-modules/Series/Venn/VennSeries.js +9 -6
  267. package/es-modules/Series/Waterfall/WaterfallPoint.js +3 -1
  268. package/es-modules/Series/Waterfall/WaterfallSeries.js +16 -12
  269. package/es-modules/Series/Windbarb/WindbarbPoint.js +3 -1
  270. package/es-modules/Series/Windbarb/WindbarbSeries.js +3 -1
  271. package/es-modules/Series/Wordcloud/WordcloudPoint.js +6 -6
  272. package/es-modules/Series/Wordcloud/WordcloudSeries.js +11 -8
  273. package/es-modules/Series/XRange/XRangePoint.js +3 -1
  274. package/es-modules/Series/XRange/XRangeSeries.js +3 -1
  275. package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +3 -1
  276. package/es-modules/Stock/Indicators/AD/ADIndicator.js +3 -1
  277. package/es-modules/Stock/Indicators/AO/AOIndicator.js +5 -3
  278. package/es-modules/Stock/Indicators/APO/APOIndicator.js +3 -1
  279. package/es-modules/Stock/Indicators/ATR/ATRIndicator.js +3 -1
  280. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +3 -1
  281. package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +3 -1
  282. package/es-modules/Stock/Indicators/BB/BBIndicator.js +6 -4
  283. package/es-modules/Stock/Indicators/CCI/CCIIndicator.js +3 -1
  284. package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +3 -1
  285. package/es-modules/Stock/Indicators/CMO/CMOIndicator.js +3 -1
  286. package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +3 -1
  287. package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +3 -1
  288. package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +13 -7
  289. package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +3 -1
  290. package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +3 -1
  291. package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +3 -1
  292. package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +3 -1
  293. package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +3 -1
  294. package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +3 -1
  295. package/es-modules/Stock/Indicators/LinearRegression/LinearRegression.js +3 -1
  296. package/es-modules/Stock/Indicators/LinearRegressionAngle/LinearRegressionAngle.js +3 -1
  297. package/es-modules/Stock/Indicators/LinearRegressionIntercept/LinearRegressionIntercept.js +3 -1
  298. package/es-modules/Stock/Indicators/LinearRegressionSlopes/LinearRegressionSlopes.js +3 -1
  299. package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +26 -13
  300. package/es-modules/Stock/Indicators/MFI/MFIIndicator.js +3 -1
  301. package/es-modules/Stock/Indicators/Momentum/MomentumIndicator.js +3 -1
  302. package/es-modules/Stock/Indicators/MultipleLinesComposition.js +85 -95
  303. package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +3 -1
  304. package/es-modules/Stock/Indicators/OBV/OBVIndicator.js +3 -1
  305. package/es-modules/Stock/Indicators/PC/PCIndicator.js +3 -1
  306. package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +3 -1
  307. package/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +3 -1
  308. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +3 -1
  309. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsPoint.js +3 -1
  310. package/es-modules/Stock/Indicators/PriceEnvelopes/PriceEnvelopesIndicator.js +3 -1
  311. package/es-modules/Stock/Indicators/ROC/ROCIndicator.js +3 -1
  312. package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +3 -1
  313. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +12 -3
  314. package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +3 -1
  315. package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +3 -1
  316. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +6 -4
  317. package/es-modules/Stock/Indicators/TEMA/TEMAIndicator.js +3 -1
  318. package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +3 -1
  319. package/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +3 -1
  320. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +3 -1
  321. package/es-modules/Stock/Indicators/VBP/VBPPoint.js +3 -1
  322. package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +3 -1
  323. package/es-modules/Stock/Indicators/WMA/WMAIndicator.js +3 -1
  324. package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +3 -1
  325. package/es-modules/Stock/Indicators/Zigzag/ZigzagIndicator.js +3 -1
  326. package/es-modules/Stock/StockToolsBindings.js +51 -43
  327. package/es-modules/Stock/StockToolsGui.js +1 -1
  328. package/es-modules/masters/highcharts-3d.src.js +1 -1
  329. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  330. package/es-modules/masters/highcharts-more.src.js +4 -4
  331. package/es-modules/masters/highcharts.src.js +1 -1
  332. package/es-modules/masters/highmaps.src.js +1 -1
  333. package/es-modules/masters/highstock.src.js +1 -1
  334. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  335. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  336. package/es-modules/masters/indicators/ao.src.js +1 -1
  337. package/es-modules/masters/indicators/apo.src.js +1 -1
  338. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  339. package/es-modules/masters/indicators/aroon.src.js +1 -1
  340. package/es-modules/masters/indicators/atr.src.js +1 -1
  341. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  342. package/es-modules/masters/indicators/cci.src.js +1 -1
  343. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  344. package/es-modules/masters/indicators/cmf.src.js +1 -1
  345. package/es-modules/masters/indicators/cmo.src.js +1 -1
  346. package/es-modules/masters/indicators/dema.src.js +1 -1
  347. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  348. package/es-modules/masters/indicators/dmi.src.js +1 -1
  349. package/es-modules/masters/indicators/dpo.src.js +1 -1
  350. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  351. package/es-modules/masters/indicators/indicators-all.src.js +1 -1
  352. package/es-modules/masters/indicators/indicators.src.js +1 -1
  353. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  354. package/es-modules/masters/indicators/klinger.src.js +1 -1
  355. package/es-modules/masters/indicators/macd.src.js +1 -1
  356. package/es-modules/masters/indicators/mfi.src.js +1 -1
  357. package/es-modules/masters/indicators/momentum.src.js +1 -1
  358. package/es-modules/masters/indicators/natr.src.js +1 -1
  359. package/es-modules/masters/indicators/obv.src.js +1 -1
  360. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  361. package/es-modules/masters/indicators/ppo.src.js +1 -1
  362. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  363. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  364. package/es-modules/masters/indicators/psar.src.js +1 -1
  365. package/es-modules/masters/indicators/regressions.src.js +1 -1
  366. package/es-modules/masters/indicators/roc.src.js +1 -1
  367. package/es-modules/masters/indicators/rsi.src.js +1 -1
  368. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  369. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  370. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  371. package/es-modules/masters/indicators/tema.src.js +1 -1
  372. package/es-modules/masters/indicators/trendline.src.js +1 -1
  373. package/es-modules/masters/indicators/trix.src.js +1 -1
  374. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  375. package/es-modules/masters/indicators/vwap.src.js +1 -1
  376. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  377. package/es-modules/masters/indicators/wma.src.js +1 -1
  378. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  379. package/es-modules/masters/modules/accessibility.src.js +1 -1
  380. package/es-modules/masters/modules/annotations-advanced.src.js +2 -2
  381. package/es-modules/masters/modules/annotations.src.js +2 -2
  382. package/es-modules/masters/modules/arc-diagram.src.js +14 -0
  383. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  384. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  385. package/es-modules/masters/modules/boost.src.js +1 -1
  386. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  387. package/es-modules/masters/modules/bullet.src.js +1 -1
  388. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  389. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  390. package/es-modules/masters/modules/cylinder.src.js +1 -1
  391. package/es-modules/masters/modules/data.src.js +2 -1
  392. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  393. package/es-modules/masters/modules/debugger.src.js +1 -1
  394. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  395. package/es-modules/masters/modules/dotplot.src.js +1 -1
  396. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  397. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  398. package/es-modules/masters/modules/drilldown.src.js +2 -1
  399. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  400. package/es-modules/masters/modules/export-data.src.js +1 -1
  401. package/es-modules/masters/modules/exporting.src.js +1 -1
  402. package/es-modules/masters/modules/full-screen.src.js +1 -1
  403. package/es-modules/masters/modules/funnel.src.js +1 -1
  404. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  405. package/es-modules/masters/modules/gantt.src.js +1 -1
  406. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  407. package/es-modules/masters/modules/heatmap.src.js +1 -1
  408. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  409. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  410. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  411. package/es-modules/masters/modules/item-series.src.js +1 -1
  412. package/es-modules/masters/modules/lollipop.src.js +1 -1
  413. package/es-modules/masters/modules/map.src.js +5 -1
  414. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  415. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  416. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  417. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  418. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  419. package/es-modules/masters/modules/oldie.src.js +1 -1
  420. package/es-modules/masters/modules/organization.src.js +1 -1
  421. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  422. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  423. package/es-modules/masters/modules/pareto.src.js +1 -1
  424. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  425. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  426. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  427. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  428. package/es-modules/masters/modules/sankey.src.js +1 -1
  429. package/es-modules/masters/modules/series-label.src.js +5 -2
  430. package/es-modules/masters/modules/series-on-point.src.js +16 -0
  431. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  432. package/es-modules/masters/modules/sonification.src.js +2 -6
  433. package/es-modules/masters/modules/static-scale.src.js +1 -1
  434. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  435. package/es-modules/masters/modules/stock.src.js +1 -1
  436. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  437. package/es-modules/masters/modules/sunburst.src.js +1 -1
  438. package/es-modules/masters/modules/tilemap.src.js +1 -1
  439. package/es-modules/masters/modules/timeline.src.js +1 -1
  440. package/es-modules/masters/modules/treegrid.src.js +1 -1
  441. package/es-modules/masters/modules/treemap.src.js +5 -1
  442. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  443. package/es-modules/masters/modules/variwide.src.js +1 -1
  444. package/es-modules/masters/modules/vector.src.js +1 -1
  445. package/es-modules/masters/modules/venn.src.js +1 -1
  446. package/es-modules/masters/modules/windbarb.src.js +1 -1
  447. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  448. package/es-modules/masters/modules/xrange.src.js +1 -1
  449. package/es-modules/masters/themes/avocado.src.js +1 -1
  450. package/es-modules/masters/themes/brand-dark.src.js +1 -1
  451. package/es-modules/masters/themes/brand-light.src.js +1 -1
  452. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  453. package/es-modules/masters/themes/dark-green.src.js +1 -1
  454. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  455. package/es-modules/masters/themes/gray.src.js +1 -1
  456. package/es-modules/masters/themes/grid-light.src.js +1 -1
  457. package/es-modules/masters/themes/grid.src.js +1 -1
  458. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  459. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  460. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  461. package/es-modules/masters/themes/skies.src.js +1 -1
  462. package/es-modules/masters/themes/sunset.src.js +1 -1
  463. package/highcharts-3d.js +99 -98
  464. package/highcharts-3d.js.map +1 -1
  465. package/highcharts-3d.src.js +51 -21
  466. package/highcharts-gantt.js +811 -801
  467. package/highcharts-gantt.js.map +1 -1
  468. package/highcharts-gantt.src.js +2020 -1607
  469. package/highcharts-more.d.ts +10 -0
  470. package/highcharts-more.js +194 -194
  471. package/highcharts-more.js.map +1 -1
  472. package/highcharts-more.src.d.ts +10 -0
  473. package/highcharts-more.src.js +3512 -3364
  474. package/highcharts.d.ts +12336 -965
  475. package/highcharts.js +595 -586
  476. package/highcharts.js.map +1 -1
  477. package/highcharts.src.d.ts +12336 -965
  478. package/highcharts.src.js +1047 -665
  479. package/highmaps.js +763 -728
  480. package/highmaps.js.map +1 -1
  481. package/highmaps.src.js +4482 -2639
  482. package/highstock.js +798 -788
  483. package/highstock.js.map +1 -1
  484. package/highstock.src.js +1177 -739
  485. package/indicators/acceleration-bands.d.ts +1 -17
  486. package/indicators/acceleration-bands.js +11 -11
  487. package/indicators/acceleration-bands.js.map +1 -1
  488. package/indicators/acceleration-bands.src.d.ts +1 -17
  489. package/indicators/acceleration-bands.src.js +99 -100
  490. package/indicators/accumulation-distribution.js +5 -5
  491. package/indicators/accumulation-distribution.js.map +1 -1
  492. package/indicators/accumulation-distribution.src.js +11 -2
  493. package/indicators/ao.js +6 -6
  494. package/indicators/ao.js.map +1 -1
  495. package/indicators/ao.src.js +13 -4
  496. package/indicators/apo.js +5 -5
  497. package/indicators/apo.js.map +1 -1
  498. package/indicators/apo.src.js +11 -2
  499. package/indicators/aroon-oscillator.d.ts +1 -17
  500. package/indicators/aroon-oscillator.js +10 -10
  501. package/indicators/aroon-oscillator.js.map +1 -1
  502. package/indicators/aroon-oscillator.src.d.ts +1 -17
  503. package/indicators/aroon-oscillator.src.js +99 -100
  504. package/indicators/aroon.d.ts +1 -17
  505. package/indicators/aroon.js +11 -11
  506. package/indicators/aroon.js.map +1 -1
  507. package/indicators/aroon.src.d.ts +1 -17
  508. package/indicators/aroon.src.js +99 -100
  509. package/indicators/atr.js +5 -5
  510. package/indicators/atr.js.map +1 -1
  511. package/indicators/atr.src.js +11 -2
  512. package/indicators/bollinger-bands.d.ts +1 -17
  513. package/indicators/bollinger-bands.js +11 -12
  514. package/indicators/bollinger-bands.js.map +1 -1
  515. package/indicators/bollinger-bands.src.d.ts +1 -17
  516. package/indicators/bollinger-bands.src.js +102 -103
  517. package/indicators/cci.js +5 -5
  518. package/indicators/cci.js.map +1 -1
  519. package/indicators/cci.src.js +11 -2
  520. package/indicators/chaikin.js +8 -8
  521. package/indicators/chaikin.js.map +1 -1
  522. package/indicators/chaikin.src.js +11 -2
  523. package/indicators/cmf.js +6 -6
  524. package/indicators/cmf.js.map +1 -1
  525. package/indicators/cmf.src.js +11 -2
  526. package/indicators/cmo.js +5 -5
  527. package/indicators/cmo.js.map +1 -1
  528. package/indicators/cmo.src.js +11 -2
  529. package/indicators/dema.js +5 -5
  530. package/indicators/dema.js.map +1 -1
  531. package/indicators/dema.src.js +11 -2
  532. package/indicators/disparity-index.js +6 -6
  533. package/indicators/disparity-index.js.map +1 -1
  534. package/indicators/disparity-index.src.js +11 -2
  535. package/indicators/dmi.js +12 -12
  536. package/indicators/dmi.js.map +1 -1
  537. package/indicators/dmi.src.js +109 -106
  538. package/indicators/dpo.js +5 -5
  539. package/indicators/dpo.js.map +1 -1
  540. package/indicators/dpo.src.js +11 -2
  541. package/indicators/ema.js +2 -1
  542. package/indicators/ema.js.map +1 -1
  543. package/indicators/ema.src.js +10 -1
  544. package/indicators/ichimoku-kinko-hyo.js +16 -16
  545. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  546. package/indicators/ichimoku-kinko-hyo.src.js +11 -2
  547. package/indicators/indicators-all.d.ts +1 -17
  548. package/indicators/indicators-all.js +198 -196
  549. package/indicators/indicators-all.js.map +1 -1
  550. package/indicators/indicators-all.src.d.ts +1 -17
  551. package/indicators/indicators-all.src.js +151 -129
  552. package/indicators/indicators.js +13 -12
  553. package/indicators/indicators.js.map +1 -1
  554. package/indicators/indicators.src.js +21 -5
  555. package/indicators/keltner-channels.d.ts +1 -17
  556. package/indicators/keltner-channels.js +11 -11
  557. package/indicators/keltner-channels.js.map +1 -1
  558. package/indicators/keltner-channels.src.d.ts +1 -17
  559. package/indicators/keltner-channels.src.js +99 -100
  560. package/indicators/klinger.js +14 -14
  561. package/indicators/klinger.js.map +1 -1
  562. package/indicators/klinger.src.js +99 -100
  563. package/indicators/macd.js +13 -11
  564. package/indicators/macd.js.map +1 -1
  565. package/indicators/macd.src.js +35 -14
  566. package/indicators/mfi.js +6 -6
  567. package/indicators/mfi.js.map +1 -1
  568. package/indicators/mfi.src.js +11 -2
  569. package/indicators/momentum.js +5 -5
  570. package/indicators/momentum.js.map +1 -1
  571. package/indicators/momentum.src.js +11 -2
  572. package/indicators/natr.js +5 -4
  573. package/indicators/natr.js.map +1 -1
  574. package/indicators/natr.src.js +11 -2
  575. package/indicators/obv.js +5 -5
  576. package/indicators/obv.js.map +1 -1
  577. package/indicators/obv.src.js +11 -2
  578. package/indicators/pivot-points.js +11 -11
  579. package/indicators/pivot-points.js.map +1 -1
  580. package/indicators/pivot-points.src.js +11 -2
  581. package/indicators/ppo.js +5 -5
  582. package/indicators/ppo.js.map +1 -1
  583. package/indicators/ppo.src.js +11 -2
  584. package/indicators/price-channel.d.ts +1 -17
  585. package/indicators/price-channel.js +11 -11
  586. package/indicators/price-channel.js.map +1 -1
  587. package/indicators/price-channel.src.d.ts +1 -17
  588. package/indicators/price-channel.src.js +99 -100
  589. package/indicators/price-envelopes.js +8 -8
  590. package/indicators/price-envelopes.js.map +1 -1
  591. package/indicators/price-envelopes.src.js +11 -2
  592. package/indicators/psar.js +7 -6
  593. package/indicators/psar.js.map +1 -1
  594. package/indicators/psar.src.js +11 -2
  595. package/indicators/regressions.js +12 -12
  596. package/indicators/regressions.js.map +1 -1
  597. package/indicators/regressions.src.js +11 -2
  598. package/indicators/roc.js +5 -5
  599. package/indicators/roc.js.map +1 -1
  600. package/indicators/roc.src.js +11 -2
  601. package/indicators/rsi.js +6 -5
  602. package/indicators/rsi.js.map +1 -1
  603. package/indicators/rsi.src.js +11 -2
  604. package/indicators/slow-stochastic.js +5 -5
  605. package/indicators/slow-stochastic.js.map +1 -1
  606. package/indicators/slow-stochastic.src.js +11 -2
  607. package/indicators/stochastic.d.ts +1 -17
  608. package/indicators/stochastic.js +12 -12
  609. package/indicators/stochastic.js.map +1 -1
  610. package/indicators/stochastic.src.d.ts +1 -17
  611. package/indicators/stochastic.src.js +99 -100
  612. package/indicators/supertrend.js +10 -10
  613. package/indicators/supertrend.js.map +1 -1
  614. package/indicators/supertrend.src.js +14 -5
  615. package/indicators/tema.js +6 -6
  616. package/indicators/tema.js.map +1 -1
  617. package/indicators/tema.src.js +11 -2
  618. package/indicators/trendline.js +5 -5
  619. package/indicators/trendline.js.map +1 -1
  620. package/indicators/trendline.src.js +11 -2
  621. package/indicators/trix.js +4 -4
  622. package/indicators/trix.js.map +1 -1
  623. package/indicators/trix.src.js +11 -2
  624. package/indicators/volume-by-price.js +17 -17
  625. package/indicators/volume-by-price.js.map +1 -1
  626. package/indicators/volume-by-price.src.js +11 -2
  627. package/indicators/vwap.js +5 -5
  628. package/indicators/vwap.js.map +1 -1
  629. package/indicators/vwap.src.js +11 -2
  630. package/indicators/williams-r.js +6 -5
  631. package/indicators/williams-r.js.map +1 -1
  632. package/indicators/williams-r.src.js +11 -2
  633. package/indicators/wma.js +5 -5
  634. package/indicators/wma.js.map +1 -1
  635. package/indicators/wma.src.js +11 -2
  636. package/indicators/zigzag.js +6 -6
  637. package/indicators/zigzag.js.map +1 -1
  638. package/indicators/zigzag.src.js +11 -2
  639. package/lib/jspdf.js +299 -184
  640. package/lib/jspdf.src.js +25266 -18067
  641. package/lib/svg2pdf.js +35 -31
  642. package/lib/svg2pdf.src.js +5721 -4179
  643. package/modules/accessibility.js +242 -237
  644. package/modules/accessibility.js.map +1 -1
  645. package/modules/accessibility.src.js +599 -390
  646. package/modules/annotations-advanced.js +192 -192
  647. package/modules/annotations-advanced.js.map +1 -1
  648. package/modules/annotations-advanced.src.js +96 -47
  649. package/modules/annotations.js +126 -126
  650. package/modules/annotations.js.map +1 -1
  651. package/modules/annotations.src.js +67 -25
  652. package/modules/arc-diagram.js +25 -0
  653. package/modules/arc-diagram.js.map +1 -0
  654. package/modules/arc-diagram.src.js +778 -0
  655. package/modules/arrow-symbols.js +4 -3
  656. package/modules/arrow-symbols.js.map +1 -1
  657. package/modules/arrow-symbols.src.js +11 -2
  658. package/modules/boost-canvas.js +16 -15
  659. package/modules/boost-canvas.js.map +1 -1
  660. package/modules/boost-canvas.src.js +22 -7
  661. package/modules/boost.js +81 -79
  662. package/modules/boost.js.map +1 -1
  663. package/modules/boost.src.js +90 -51
  664. package/modules/broken-axis.js +13 -13
  665. package/modules/broken-axis.js.map +1 -1
  666. package/modules/broken-axis.src.js +11 -2
  667. package/modules/bullet.js +9 -9
  668. package/modules/bullet.js.map +1 -1
  669. package/modules/bullet.src.js +12 -6
  670. package/modules/coloraxis.js +24 -24
  671. package/modules/coloraxis.js.map +1 -1
  672. package/modules/coloraxis.src.js +37 -11
  673. package/modules/current-date-indicator.js +5 -4
  674. package/modules/current-date-indicator.js.map +1 -1
  675. package/modules/current-date-indicator.src.js +12 -3
  676. package/modules/cylinder.js +11 -11
  677. package/modules/cylinder.js.map +1 -1
  678. package/modules/cylinder.src.js +11 -2
  679. package/modules/data.d.ts +12 -12
  680. package/modules/data.js +33 -33
  681. package/modules/data.js.map +1 -1
  682. package/modules/data.src.d.ts +12 -12
  683. package/modules/data.src.js +906 -846
  684. package/modules/datagrouping.js +21 -20
  685. package/modules/datagrouping.js.map +1 -1
  686. package/modules/datagrouping.src.js +19 -5
  687. package/modules/debugger.js +8 -7
  688. package/modules/debugger.js.map +1 -1
  689. package/modules/debugger.src.js +15 -2
  690. package/modules/dependency-wheel.js +12 -11
  691. package/modules/dependency-wheel.js.map +1 -1
  692. package/modules/dependency-wheel.src.js +14 -5
  693. package/modules/dotplot.js +6 -6
  694. package/modules/dotplot.js.map +1 -1
  695. package/modules/dotplot.src.js +11 -2
  696. package/modules/drag-panes.js +10 -10
  697. package/modules/drag-panes.js.map +1 -1
  698. package/modules/drag-panes.src.js +12 -3
  699. package/modules/draggable-points.js +35 -34
  700. package/modules/draggable-points.js.map +1 -1
  701. package/modules/draggable-points.src.js +20 -9
  702. package/modules/drilldown.d.ts +19 -0
  703. package/modules/drilldown.js +37 -25
  704. package/modules/drilldown.js.map +1 -1
  705. package/modules/drilldown.src.d.ts +19 -0
  706. package/modules/drilldown.src.js +1124 -108
  707. package/modules/dumbbell.d.ts +4 -0
  708. package/modules/dumbbell.js +17 -17
  709. package/modules/dumbbell.js.map +1 -1
  710. package/modules/dumbbell.src.d.ts +4 -0
  711. package/modules/dumbbell.src.js +34 -13
  712. package/modules/export-data.js +24 -21
  713. package/modules/export-data.js.map +1 -1
  714. package/modules/export-data.src.js +87 -14
  715. package/modules/exporting.d.ts +8 -8
  716. package/modules/exporting.js +39 -39
  717. package/modules/exporting.js.map +1 -1
  718. package/modules/exporting.src.d.ts +8 -8
  719. package/modules/exporting.src.js +270 -135
  720. package/modules/full-screen.js +8 -7
  721. package/modules/full-screen.js.map +1 -1
  722. package/modules/full-screen.src.js +135 -58
  723. package/modules/funnel.js +12 -12
  724. package/modules/funnel.js.map +1 -1
  725. package/modules/funnel.src.js +13 -4
  726. package/modules/funnel3d.js +21 -21
  727. package/modules/funnel3d.js.map +1 -1
  728. package/modules/funnel3d.src.js +11 -2
  729. package/modules/gantt.js +218 -217
  730. package/modules/gantt.js.map +1 -1
  731. package/modules/gantt.src.js +983 -943
  732. package/modules/grid-axis.js +23 -23
  733. package/modules/grid-axis.js.map +1 -1
  734. package/modules/grid-axis.src.js +900 -890
  735. package/modules/heatmap.js +40 -39
  736. package/modules/heatmap.js.map +1 -1
  737. package/modules/heatmap.src.js +160 -113
  738. package/modules/heikinashi.js +8 -8
  739. package/modules/heikinashi.js.map +1 -1
  740. package/modules/heikinashi.src.js +11 -2
  741. package/modules/histogram-bellcurve.js +13 -13
  742. package/modules/histogram-bellcurve.js.map +1 -1
  743. package/modules/histogram-bellcurve.src.js +11 -2
  744. package/modules/hollowcandlestick.js +9 -9
  745. package/modules/hollowcandlestick.js.map +1 -1
  746. package/modules/hollowcandlestick.src.js +19 -10
  747. package/modules/item-series.js +12 -12
  748. package/modules/item-series.js.map +1 -1
  749. package/modules/item-series.src.js +11 -2
  750. package/modules/lollipop.js +7 -7
  751. package/modules/lollipop.js.map +1 -1
  752. package/modules/lollipop.src.js +12 -3
  753. package/modules/map.d.ts +80 -43
  754. package/modules/map.js +171 -144
  755. package/modules/map.js.map +1 -1
  756. package/modules/map.src.d.ts +80 -43
  757. package/modules/map.src.js +8292 -6822
  758. package/modules/marker-clusters.js +36 -36
  759. package/modules/marker-clusters.js.map +1 -1
  760. package/modules/marker-clusters.src.js +48 -28
  761. package/modules/networkgraph.d.ts +1 -12
  762. package/modules/networkgraph.js +46 -45
  763. package/modules/networkgraph.js.map +1 -1
  764. package/modules/networkgraph.src.d.ts +1 -12
  765. package/modules/networkgraph.src.js +127 -55
  766. package/modules/no-data-to-display.js +5 -5
  767. package/modules/no-data-to-display.js.map +1 -1
  768. package/modules/no-data-to-display.src.js +12 -3
  769. package/modules/offline-exporting.js +20 -18
  770. package/modules/offline-exporting.js.map +1 -1
  771. package/modules/offline-exporting.src.js +129 -28
  772. package/modules/oldie-polyfills.js +7 -7
  773. package/modules/oldie-polyfills.js.map +1 -1
  774. package/modules/oldie-polyfills.src.js +11 -2
  775. package/modules/oldie.js +30 -30
  776. package/modules/oldie.js.map +1 -1
  777. package/modules/oldie.src.js +13 -4
  778. package/modules/organization.js +16 -14
  779. package/modules/organization.js.map +1 -1
  780. package/modules/organization.src.js +168 -34
  781. package/modules/overlapping-datalabels.js +3 -2
  782. package/modules/overlapping-datalabels.js.map +1 -1
  783. package/modules/overlapping-datalabels.src.js +11 -2
  784. package/modules/parallel-coordinates.js +11 -11
  785. package/modules/parallel-coordinates.js.map +1 -1
  786. package/modules/parallel-coordinates.src.js +12 -3
  787. package/modules/pareto.js +7 -7
  788. package/modules/pareto.js.map +1 -1
  789. package/modules/pareto.src.js +11 -2
  790. package/modules/pathfinder.js +31 -31
  791. package/modules/pathfinder.js.map +1 -1
  792. package/modules/pathfinder.src.js +11 -2
  793. package/modules/pattern-fill.js +15 -14
  794. package/modules/pattern-fill.js.map +1 -1
  795. package/modules/pattern-fill.src.js +25 -3
  796. package/modules/price-indicator.js +5 -5
  797. package/modules/price-indicator.js.map +1 -1
  798. package/modules/price-indicator.src.js +11 -2
  799. package/modules/pyramid3d.js +4 -4
  800. package/modules/pyramid3d.js.map +1 -1
  801. package/modules/pyramid3d.src.js +11 -2
  802. package/modules/sankey.d.ts +1 -12
  803. package/modules/sankey.js +32 -29
  804. package/modules/sankey.js.map +1 -1
  805. package/modules/sankey.src.d.ts +1 -12
  806. package/modules/sankey.src.js +422 -207
  807. package/modules/series-label.js +18 -17
  808. package/modules/series-label.js.map +1 -1
  809. package/modules/series-label.src.js +482 -386
  810. package/modules/series-on-point.js +18 -0
  811. package/modules/series-on-point.js.map +1 -0
  812. package/modules/series-on-point.src.js +464 -0
  813. package/modules/solid-gauge.js +10 -10
  814. package/modules/solid-gauge.js.map +1 -1
  815. package/modules/solid-gauge.src.js +15 -6
  816. package/modules/sonification.js +59 -59
  817. package/modules/sonification.js.map +1 -1
  818. package/modules/sonification.src.js +13 -8
  819. package/modules/static-scale.js +5 -4
  820. package/modules/static-scale.js.map +1 -1
  821. package/modules/static-scale.src.js +11 -2
  822. package/modules/stock-tools.js +167 -167
  823. package/modules/stock-tools.js.map +1 -1
  824. package/modules/stock-tools.src.js +118 -67
  825. package/modules/stock.js +205 -204
  826. package/modules/stock.js.map +1 -1
  827. package/modules/stock.src.js +141 -76
  828. package/modules/streamgraph.js +5 -4
  829. package/modules/streamgraph.js.map +1 -1
  830. package/modules/streamgraph.src.js +11 -2
  831. package/modules/sunburst.d.ts +3 -0
  832. package/modules/sunburst.js +73 -60
  833. package/modules/sunburst.js.map +1 -1
  834. package/modules/sunburst.src.d.ts +3 -0
  835. package/modules/sunburst.src.js +1391 -406
  836. package/modules/tilemap.js +17 -17
  837. package/modules/tilemap.js.map +1 -1
  838. package/modules/tilemap.src.js +11 -2
  839. package/modules/timeline.js +18 -18
  840. package/modules/timeline.js.map +1 -1
  841. package/modules/timeline.src.js +14 -5
  842. package/modules/treegrid.js +57 -56
  843. package/modules/treegrid.js.map +1 -1
  844. package/modules/treegrid.src.js +913 -892
  845. package/modules/treemap.d.ts +3 -0
  846. package/modules/treemap.js +54 -41
  847. package/modules/treemap.js.map +1 -1
  848. package/modules/treemap.src.d.ts +3 -0
  849. package/modules/treemap.src.js +1229 -255
  850. package/modules/variable-pie.js +9 -9
  851. package/modules/variable-pie.js.map +1 -1
  852. package/modules/variable-pie.src.js +11 -2
  853. package/modules/variwide.js +12 -12
  854. package/modules/variwide.js.map +1 -1
  855. package/modules/variwide.src.js +11 -2
  856. package/modules/vector.js +8 -7
  857. package/modules/vector.js.map +1 -1
  858. package/modules/vector.src.js +11 -2
  859. package/modules/venn.js +31 -31
  860. package/modules/venn.js.map +1 -1
  861. package/modules/venn.src.js +88 -105
  862. package/modules/windbarb.js +15 -15
  863. package/modules/windbarb.js.map +1 -1
  864. package/modules/windbarb.src.js +11 -2
  865. package/modules/wordcloud.js +23 -23
  866. package/modules/wordcloud.js.map +1 -1
  867. package/modules/wordcloud.src.js +92 -109
  868. package/modules/xrange.js +16 -16
  869. package/modules/xrange.js.map +1 -1
  870. package/modules/xrange.src.js +11 -2
  871. package/package.json +1 -1
  872. package/themes/avocado.js +4 -3
  873. package/themes/avocado.js.map +1 -1
  874. package/themes/avocado.src.js +11 -2
  875. package/themes/brand-dark.js +9 -8
  876. package/themes/brand-dark.js.map +1 -1
  877. package/themes/brand-dark.src.js +11 -2
  878. package/themes/brand-light.js +8 -8
  879. package/themes/brand-light.js.map +1 -1
  880. package/themes/brand-light.src.js +11 -2
  881. package/themes/dark-blue.js +9 -8
  882. package/themes/dark-blue.js.map +1 -1
  883. package/themes/dark-blue.src.js +11 -2
  884. package/themes/dark-green.js +9 -8
  885. package/themes/dark-green.js.map +1 -1
  886. package/themes/dark-green.src.js +11 -2
  887. package/themes/dark-unica.js +8 -7
  888. package/themes/dark-unica.js.map +1 -1
  889. package/themes/dark-unica.src.js +11 -2
  890. package/themes/gray.js +9 -8
  891. package/themes/gray.js.map +1 -1
  892. package/themes/gray.src.js +11 -2
  893. package/themes/grid-light.js +5 -4
  894. package/themes/grid-light.js.map +1 -1
  895. package/themes/grid-light.src.js +11 -2
  896. package/themes/grid.js +5 -5
  897. package/themes/grid.js.map +1 -1
  898. package/themes/grid.src.js +11 -2
  899. package/themes/high-contrast-dark.js +7 -7
  900. package/themes/high-contrast-dark.js.map +1 -1
  901. package/themes/high-contrast-dark.src.js +21 -12
  902. package/themes/high-contrast-light.js +3 -3
  903. package/themes/high-contrast-light.js.map +1 -1
  904. package/themes/high-contrast-light.src.js +21 -12
  905. package/themes/sand-signika.js +5 -5
  906. package/themes/sand-signika.js.map +1 -1
  907. package/themes/sand-signika.src.js +11 -2
  908. package/themes/skies.js +5 -5
  909. package/themes/skies.js.map +1 -1
  910. package/themes/skies.src.js +11 -2
  911. package/themes/sunset.js +3 -3
  912. package/themes/sunset.js.map +1 -1
  913. package/themes/sunset.src.js +11 -2
  914. package/es-modules/Extensions/Polar.js +0 -740
  915. package/es-modules/Maps/ProjectionDefinition.js +0 -9
  916. package/es-modules/Series/ColorMapMixin.js +0 -84
  917. package/es-modules/Series/DrawPointComposition.js +0 -111
@@ -1,12 +1,11 @@
1
1
  /**
2
- * @license Highcharts JS v9.3.3 (2022-02-01)
2
+ * @license Highcharts JS v10.2.0 (2022-07-05)
3
3
  *
4
4
  * (c) 2014-2021 Highsoft AS
5
5
  * Authors: Jon Arild Nygard / Oystein Moseng
6
6
  *
7
7
  * License: www.highcharts.com/license
8
8
  */
9
- 'use strict';
10
9
  (function (factory) {
11
10
  if (typeof module === 'object' && module.exports) {
12
11
  factory['default'] = factory;
@@ -21,13 +20,23 @@
21
20
  factory(typeof Highcharts !== 'undefined' ? Highcharts : undefined);
22
21
  }
23
22
  }(function (Highcharts) {
23
+ 'use strict';
24
24
  var _modules = Highcharts ? Highcharts._modules : {};
25
25
  function _registerModule(obj, path, args, fn) {
26
26
  if (!obj.hasOwnProperty(path)) {
27
27
  obj[path] = fn.apply(null, args);
28
+
29
+ if (typeof CustomEvent === 'function') {
30
+ window.dispatchEvent(
31
+ new CustomEvent(
32
+ 'HighchartsModuleLoaded',
33
+ { detail: { path: path, module: obj[path] }
34
+ })
35
+ );
36
+ }
28
37
  }
29
38
  }
30
- _registerModule(_modules, 'Series/ColorMapMixin.js', [_modules['Core/Globals.js'], _modules['Core/Series/Point.js'], _modules['Core/Utilities.js']], function (H, Point, U) {
39
+ _registerModule(_modules, 'Series/ColorMapComposition.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
31
40
  /* *
32
41
  *
33
42
  * (c) 2010-2021 Torstein Honsi
@@ -37,66 +46,92 @@
37
46
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
38
47
  *
39
48
  * */
40
- // @todo cleanup & reduction - consider composition
41
- var noop = H.noop,
42
- seriesTypes = H.seriesTypes;
43
- var defined = U.defined,
44
- addEvent = U.addEvent;
45
- // Move points to the top of the z-index order when hovered
46
- addEvent(Point, 'afterSetState', function (e) {
47
- var point = this;
48
- if (point.moveToTopOnHover && point.graphic) {
49
- point.graphic.attr({
50
- zIndex: e && e.state === 'hover' ? 1 : 0
51
- });
52
- }
53
- });
54
- /**
55
- * Mixin for maps and heatmaps
49
+ var columnProto = SeriesRegistry.seriesTypes.column.prototype;
50
+ var addEvent = U.addEvent,
51
+ defined = U.defined;
52
+ /* *
56
53
  *
57
- * @private
58
- * @mixin Highcharts.colorMapPointMixin
59
- */
60
- var PointMixin = {
54
+ * Composition
55
+ *
56
+ * */
57
+ var ColorMapComposition;
58
+ (function (ColorMapComposition) {
59
+ /* *
60
+ *
61
+ * Declarations
62
+ *
63
+ * */
64
+ /* *
65
+ *
66
+ * Constants
67
+ *
68
+ * */
69
+ var composedClasses = [];
70
+ ColorMapComposition.pointMembers = {
61
71
  dataLabelOnNull: true,
62
72
  moveToTopOnHover: true,
63
- /* eslint-disable valid-jsdoc */
64
- /**
65
- * Color points have a value option that determines whether or not it is
66
- * a null point
67
- * @private
68
- */
69
- isValid: function () {
70
- // undefined is allowed
71
- return (this.value !== null &&
72
- this.value !== Infinity &&
73
- this.value !== -Infinity);
74
- }
75
- /* eslint-enable valid-jsdoc */
76
- };
77
- /**
78
- * @private
79
- * @mixin Highcharts.colorMapSeriesMixin
80
- */
81
- var SeriesMixin = {
82
- pointArrayMap: ['value'],
73
+ isValid: pointIsValid
74
+ };
75
+ ColorMapComposition.seriesMembers = {
76
+ colorKey: 'value',
83
77
  axisTypes: ['xAxis', 'yAxis', 'colorAxis'],
84
- trackerGroups: ['group', 'markerGroup', 'dataLabelsGroup'],
85
- getSymbol: noop,
86
78
  parallelArrays: ['x', 'y', 'value'],
87
- colorKey: 'value',
88
- pointAttribs: seriesTypes.column.prototype.pointAttribs,
89
- /* eslint-disable valid-jsdoc */
90
- /**
91
- * Get the color attibutes to apply on the graphic
92
- * @private
93
- * @function Highcharts.colorMapSeriesMixin.colorAttribs
94
- * @param {Highcharts.Point} point
95
- * @return {Highcharts.SVGAttributes}
96
- * The SVG attributes
97
- */
98
- colorAttribs: function (point) {
99
- var ret = {};
79
+ pointArrayMap: ['value'],
80
+ trackerGroups: ['group', 'markerGroup', 'dataLabelsGroup'],
81
+ colorAttribs: seriesColorAttribs,
82
+ pointAttribs: columnProto.pointAttribs
83
+ };
84
+ /* *
85
+ *
86
+ * Functions
87
+ *
88
+ * */
89
+ /**
90
+ * @private
91
+ */
92
+ function compose(SeriesClass) {
93
+ var PointClass = SeriesClass.prototype.pointClass;
94
+ if (composedClasses.indexOf(PointClass) === -1) {
95
+ composedClasses.push(PointClass);
96
+ addEvent(PointClass, 'afterSetState', onPointAfterSetState);
97
+ }
98
+ return SeriesClass;
99
+ }
100
+ ColorMapComposition.compose = compose;
101
+ /**
102
+ * Move points to the top of the z-index order when hovered.
103
+ * @private
104
+ */
105
+ function onPointAfterSetState(e) {
106
+ var point = this;
107
+ if (point.moveToTopOnHover && point.graphic) {
108
+ point.graphic.attr({
109
+ zIndex: e && e.state === 'hover' ? 1 : 0
110
+ });
111
+ }
112
+ }
113
+ /**
114
+ * Color points have a value option that determines whether or not it is
115
+ * a null point
116
+ * @private
117
+ */
118
+ function pointIsValid() {
119
+ return (this.value !== null &&
120
+ this.value !== Infinity &&
121
+ this.value !== -Infinity &&
122
+ // undefined is allowed, but NaN is not (#17279)
123
+ (this.value === void 0 || !isNaN(this.value)));
124
+ }
125
+ /**
126
+ * Get the color attibutes to apply on the graphic
127
+ * @private
128
+ * @function Highcharts.colorMapSeriesMixin.colorAttribs
129
+ * @param {Highcharts.Point} point
130
+ * @return {Highcharts.SVGAttributes}
131
+ * The SVG attributes
132
+ */
133
+ function seriesColorAttribs(point) {
134
+ var ret = {};
100
135
  if (defined(point.color) &&
101
136
  (!point.state || point.state === 'normal') // #15746
102
137
  ) {
@@ -104,13 +139,14 @@
104
139
  }
105
140
  return ret;
106
141
  }
107
- };
108
- var ColorMapMixin = {
109
- PointMixin: PointMixin,
110
- SeriesMixin: SeriesMixin
111
- };
142
+ })(ColorMapComposition || (ColorMapComposition = {}));
143
+ /* *
144
+ *
145
+ * Default Export
146
+ *
147
+ * */
112
148
 
113
- return ColorMapMixin;
149
+ return ColorMapComposition;
114
150
  });
115
151
  _registerModule(_modules, 'Series/Treemap/TreemapAlgorithmGroup.js', [], function () {
116
152
  /* *
@@ -207,123 +243,98 @@
207
243
 
208
244
  return TreemapAlgorithmGroup;
209
245
  });
210
- _registerModule(_modules, 'Series/DrawPointComposition.js', [], function () {
246
+ _registerModule(_modules, 'Series/DrawPointUtilities.js', [_modules['Core/Utilities.js']], function (U) {
211
247
  /* *
212
248
  *
213
249
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
214
250
  *
215
251
  * */
252
+ var isNumber = U.isNumber;
216
253
  /* *
217
254
  *
218
- * Composition
255
+ * Functions
219
256
  *
220
257
  * */
221
- var DrawPointComposition;
222
- (function (DrawPointComposition) {
223
- /* *
224
- *
225
- * Declarations
226
- *
227
- * */
228
- /* *
229
- *
230
- * Constants
231
- *
232
- * */
233
- var composedClasses = [];
234
- /* *
235
- *
236
- * Functions
237
- *
238
- * */
239
- /* eslint-disable valid-jsdoc */
240
- /**
241
- * @private
242
- */
243
- function compose(PointClass) {
244
- if (composedClasses.indexOf(PointClass) === -1) {
245
- composedClasses.push(PointClass);
246
- var pointProto = PointClass.prototype;
247
- pointProto.draw = draw;
248
- if (!pointProto.shouldDraw) {
249
- pointProto.shouldDraw = shouldDraw;
250
- }
258
+ /**
259
+ * Handles the drawing of a component.
260
+ * Can be used for any type of component that reserves the graphic property,
261
+ * and provides a shouldDraw on its context.
262
+ *
263
+ * @private
264
+ *
265
+ * @todo add type checking.
266
+ * @todo export this function to enable usage
267
+ */
268
+ function draw(point, params) {
269
+ var animatableAttribs = params.animatableAttribs,
270
+ onComplete = params.onComplete,
271
+ css = params.css,
272
+ renderer = params.renderer;
273
+ var animation = (point.series && point.series.chart.hasRendered) ?
274
+ // Chart-level animation on updates
275
+ void 0 :
276
+ // Series-level animation on new points
277
+ (point.series &&
278
+ point.series.options.animation);
279
+ var graphic = point.graphic;
280
+ params.attribs = params.attribs || {};
281
+ // Assigning class in dot notation does go well in IE8
282
+ // eslint-disable-next-line dot-notation
283
+ params.attribs['class'] = point.getClassName();
284
+ if (shouldDraw(point)) {
285
+ if (!graphic) {
286
+ point.graphic = graphic = params.shapeType === 'text' ?
287
+ renderer.text() :
288
+ renderer[params.shapeType](params.shapeArgs || {});
289
+ graphic.add(params.group);
251
290
  }
252
- return PointClass;
291
+ if (css) {
292
+ graphic.css(css);
293
+ }
294
+ graphic
295
+ .attr(params.attribs)
296
+ .animate(animatableAttribs, params.isNew ? false : animation, onComplete);
253
297
  }
254
- DrawPointComposition.compose = compose;
255
- /**
256
- * Handles the drawing of a component.
257
- * Can be used for any type of component that reserves the graphic property,
258
- * and provides a shouldDraw on its context.
259
- *
260
- * @private
261
- *
262
- * @todo add type checking.
263
- * @todo export this function to enable usage
264
- */
265
- function draw(params) {
266
- var _this = this;
267
- var animatableAttribs = params.animatableAttribs,
268
- onComplete = params.onComplete,
269
- css = params.css,
270
- renderer = params.renderer;
271
- var animation = (this.series && this.series.chart.hasRendered) ?
272
- // Chart-level animation on updates
273
- void 0 :
274
- // Series-level animation on new points
275
- (this.series &&
276
- this.series.options.animation);
277
- var graphic = this.graphic;
278
- params.attribs = params.attribs || {};
279
- // Assigning class in dot notation does go well in IE8
280
- // eslint-disable-next-line dot-notation
281
- params.attribs['class'] = this.getClassName();
282
- if (this.shouldDraw()) {
283
- if (!graphic) {
284
- this.graphic = graphic =
285
- renderer[params.shapeType](params.shapeArgs)
286
- .add(params.group);
287
- }
288
- graphic
289
- .css(css)
290
- .attr(params.attribs)
291
- .animate(animatableAttribs, params.isNew ? false : animation, onComplete);
292
- }
293
- else if (graphic) {
294
- var destroy_1 = function () {
295
- _this.graphic = graphic = (graphic && graphic.destroy());
296
- if (typeof onComplete === 'function') {
297
- onComplete();
298
- }
299
- };
300
- // animate only runs complete callback if something was animated.
301
- if (Object.keys(animatableAttribs).length) {
302
- graphic.animate(animatableAttribs, void 0, function () {
303
- destroy_1();
304
- });
305
- }
306
- else {
307
- destroy_1();
298
+ else if (graphic) {
299
+ var destroy_1 = function () {
300
+ point.graphic = graphic = (graphic && graphic.destroy());
301
+ if (typeof onComplete === 'function') {
302
+ onComplete();
308
303
  }
304
+ };
305
+ // animate only runs complete callback if something was animated.
306
+ if (Object.keys(animatableAttribs).length) {
307
+ graphic.animate(animatableAttribs, void 0, function () { return destroy_1(); });
308
+ }
309
+ else {
310
+ destroy_1();
309
311
  }
310
312
  }
311
- /**
312
- * @private
313
- */
314
- function shouldDraw() {
315
- return !this.isNull;
313
+ }
314
+ /**
315
+ * @private
316
+ */
317
+ function shouldDraw(point) {
318
+ switch (point.series && point.series.type) {
319
+ case 'treemap':
320
+ return isNumber(point.plotY) && point.y !== null;
321
+ default:
322
+ return !point.isNull;
316
323
  }
317
- })(DrawPointComposition || (DrawPointComposition = {}));
324
+ }
318
325
  /* *
319
326
  *
320
327
  * Default Export
321
328
  *
322
329
  * */
330
+ var DrawPointUtilities = {
331
+ draw: draw,
332
+ shouldDraw: shouldDraw
333
+ };
323
334
 
324
- return DrawPointComposition;
335
+ return DrawPointUtilities;
325
336
  });
326
- _registerModule(_modules, 'Series/Treemap/TreemapPoint.js', [_modules['Series/DrawPointComposition.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (DrawPointComposition, SeriesRegistry, U) {
337
+ _registerModule(_modules, 'Series/Treemap/TreemapPoint.js', [_modules['Series/DrawPointUtilities.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (DPU, SeriesRegistry, U) {
327
338
  /* *
328
339
  *
329
340
  * (c) 2014-2021 Highsoft AS
@@ -387,6 +398,9 @@
387
398
  *
388
399
  * */
389
400
  /* eslint-disable valid-jsdoc */
401
+ TreemapPoint.prototype.draw = function (params) {
402
+ DPU.draw(this, params);
403
+ };
390
404
  TreemapPoint.prototype.getClassName = function () {
391
405
  var className = Point.prototype.getClassName.call(this),
392
406
  series = this.series,
@@ -424,14 +438,13 @@
424
438
  }
425
439
  };
426
440
  TreemapPoint.prototype.shouldDraw = function () {
427
- return isNumber(this.plotY) && this.y !== null;
441
+ return DPU.shouldDraw(this);
428
442
  };
429
443
  return TreemapPoint;
430
444
  }(ScatterPoint));
431
445
  extend(TreemapPoint.prototype, {
432
446
  setVisible: PiePoint.prototype.setVisible
433
447
  });
434
- DrawPointComposition.compose(TreemapPoint);
435
448
  /* *
436
449
  *
437
450
  * Default Export
@@ -736,6 +749,962 @@
736
749
 
737
750
  return TreeUtilities;
738
751
  });
752
+ _registerModule(_modules, 'Extensions/Breadcrumbs.js', [_modules['Core/Chart/Chart.js'], _modules['Core/Globals.js'], _modules['Core/DefaultOptions.js'], _modules['Core/Utilities.js'], _modules['Core/FormatUtilities.js']], function (Chart, H, D, U, F) {
753
+ /* *
754
+ *
755
+ * Highcharts Breadcrumbs module
756
+ *
757
+ * Authors: Grzegorz Blachlinski, Karol Kolodziej
758
+ *
759
+ * License: www.highcharts.com/license
760
+ *
761
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
762
+ *
763
+ * */
764
+ var defaultOptions = D.defaultOptions;
765
+ var format = F.format;
766
+ var addEvent = U.addEvent,
767
+ objectEach = U.objectEach,
768
+ extend = U.extend,
769
+ fireEvent = U.fireEvent,
770
+ merge = U.merge,
771
+ pick = U.pick,
772
+ defined = U.defined,
773
+ isString = U.isString;
774
+ // Add language support.
775
+ extend(defaultOptions.lang,
776
+ /**
777
+ * @optionparent lang
778
+ */
779
+ {
780
+ /**
781
+ * @since 10.0.0
782
+ * @product highcharts
783
+ */
784
+ mainBreadcrumb: 'Main'
785
+ });
786
+ /**
787
+ * The Breadcrumbs class
788
+ *
789
+ * @private
790
+ * @class
791
+ * @name Highcharts.Breadcrumbs
792
+ *
793
+ * @param {Highcharts.Chart} chart
794
+ * Chart object
795
+ * @param {Highcharts.Options} userOptions
796
+ * User options
797
+ */
798
+ var Breadcrumbs = /** @class */ (function () {
799
+ function Breadcrumbs(chart, userOptions) {
800
+ /* *
801
+ *
802
+ * Properties
803
+ *
804
+ * */
805
+ this.group = void 0;
806
+ this.list = [];
807
+ this.elementList = {};
808
+ this.isDirty = true;
809
+ this.level = 0;
810
+ this.options = void 0;
811
+ var chartOptions = merge(chart.options.drilldown &&
812
+ chart.options.drilldown.drillUpButton,
813
+ Breadcrumbs.defaultBreadcrumbsOptions,
814
+ chart.options.navigation && chart.options.navigation.breadcrumbs,
815
+ userOptions);
816
+ this.chart = chart;
817
+ this.options = chartOptions || {};
818
+ }
819
+ /**
820
+ * Update Breadcrumbs properties, like level and list.
821
+ *
822
+ * @requires modules/breadcrumbs
823
+ *
824
+ * @function Highcharts.Breadcrumbs#updateProperties
825
+ * @param {Highcharts.Breadcrumbs} this
826
+ * Breadcrumbs class.
827
+ */
828
+ Breadcrumbs.prototype.updateProperties = function (list) {
829
+ this.setList(list);
830
+ this.setLevel();
831
+ this.isDirty = true;
832
+ };
833
+ /**
834
+ * Set breadcrumbs list.
835
+ * @function Highcharts.Breadcrumbs#setList
836
+ *
837
+ * @requires modules/breadcrumbs
838
+ *
839
+ * @param {Highcharts.Breadcrumbs} this
840
+ * Breadcrumbs class.
841
+ * @param {Highcharts.BreadcrumbsOptions} list
842
+ * Breadcrumbs list.
843
+ */
844
+ Breadcrumbs.prototype.setList = function (list) {
845
+ this.list = list;
846
+ };
847
+ /**
848
+ * Calcule level on which chart currently is.
849
+ *
850
+ * @requires modules/breadcrumbs
851
+ *
852
+ * @function Highcharts.Breadcrumbs#setLevel
853
+ * @param {Highcharts.Breadcrumbs} this
854
+ * Breadcrumbs class.
855
+ */
856
+ Breadcrumbs.prototype.setLevel = function () {
857
+ this.level = this.list.length && this.list.length - 1;
858
+ };
859
+ /**
860
+ * Get Breadcrumbs level
861
+ *
862
+ * @requires modules/breadcrumbs
863
+ *
864
+ * @function Highcharts.Breadcrumbs#getLevel
865
+ * @param {Highcharts.Breadcrumbs} this
866
+ * Breadcrumbs class.
867
+ */
868
+ Breadcrumbs.prototype.getLevel = function () {
869
+ return this.level;
870
+ };
871
+ /**
872
+ * Default button text formatter.
873
+ *
874
+ * @requires modules/breadcrumbs
875
+ *
876
+ * @function Highcharts.Breadcrumbs#getButtonText
877
+ * @param {Highcharts.Breadcrumbs} this
878
+ * Breadcrumbs class.
879
+ * @param {Highcharts.Breadcrumbs} breadcrumb
880
+ * Breadcrumb.
881
+ * @return {string}
882
+ * Formatted text.
883
+ */
884
+ Breadcrumbs.prototype.getButtonText = function (breadcrumb) {
885
+ var breadcrumbs = this,
886
+ chart = breadcrumbs.chart,
887
+ breadcrumbsOptions = breadcrumbs.options,
888
+ lang = chart.options.lang,
889
+ textFormat = pick(breadcrumbsOptions.format,
890
+ breadcrumbsOptions.showFullPath ?
891
+ '{level.name}' : '← {level.name}'),
892
+ defaultText = lang && pick(lang.drillUpText,
893
+ lang.mainBreadcrumb);
894
+ var returnText = breadcrumbsOptions.formatter &&
895
+ breadcrumbsOptions.formatter(breadcrumb) ||
896
+ format(textFormat, { level: breadcrumb.levelOptions },
897
+ chart) || '';
898
+ if (((isString(returnText) &&
899
+ !returnText.length) ||
900
+ returnText === '← ') &&
901
+ defined(defaultText)) {
902
+ returnText = !breadcrumbsOptions.showFullPath ?
903
+ '← ' + defaultText :
904
+ defaultText;
905
+ }
906
+ return returnText;
907
+ };
908
+ /**
909
+ * Redraw.
910
+ *
911
+ * @requires modules/breadcrums
912
+ *
913
+ * @function Highcharts.Breadcrumbs#redraw
914
+ * @param {Highcharts.Breadcrumbs} this
915
+ * Breadcrumbs class.
916
+ */
917
+ Breadcrumbs.prototype.redraw = function () {
918
+ if (this.isDirty) {
919
+ this.render();
920
+ }
921
+ if (this.group) {
922
+ this.group.align();
923
+ }
924
+ this.isDirty = false;
925
+ };
926
+ /**
927
+ * Create a group, then draw breadcrumbs together with the separators.
928
+ *
929
+ * @requires modules/breadcrumbs
930
+ *
931
+ * @function Highcharts.Breadcrumbs#render
932
+ * @param {Highcharts.Breadcrumbs} this
933
+ * Breadcrumbs class.
934
+ */
935
+ Breadcrumbs.prototype.render = function () {
936
+ var breadcrumbs = this,
937
+ chart = breadcrumbs.chart,
938
+ breadcrumbsOptions = breadcrumbs.options;
939
+ // A main group for the breadcrumbs.
940
+ if (!breadcrumbs.group && breadcrumbsOptions) {
941
+ breadcrumbs.group = chart.renderer
942
+ .g('breadcrumbs-group')
943
+ .addClass('highcharts-no-tooltip highcharts-breadcrumbs')
944
+ .attr({
945
+ zIndex: breadcrumbsOptions.zIndex
946
+ })
947
+ .add();
948
+ }
949
+ // Draw breadcrumbs.
950
+ if (breadcrumbsOptions.showFullPath) {
951
+ this.renderFullPathButtons();
952
+ }
953
+ else {
954
+ this.renderSingleButton();
955
+ }
956
+ this.alignBreadcrumbsGroup();
957
+ };
958
+ /**
959
+ * Draw breadcrumbs together with the separators.
960
+ *
961
+ * @requires modules/breadcrumbs
962
+ *
963
+ * @function Highcharts.Breadcrumbs#renderFullPathButtons
964
+ * @param {Highcharts.Breadcrumbs} this
965
+ * Breadcrumbs class.
966
+ */
967
+ Breadcrumbs.prototype.renderFullPathButtons = function () {
968
+ // Make sure that only one type of button is visible.
969
+ this.destroySingleButton();
970
+ this.resetElementListState();
971
+ this.updateListElements();
972
+ this.destroyListElements();
973
+ };
974
+ /**
975
+ * Render Single button - when showFullPath is not used. The button is
976
+ * similar to the old drillUpButton
977
+ *
978
+ * @requires modules/breadcrumbs
979
+ *
980
+ * @function Highcharts.Breadcrumbs#renderSingleButton
981
+ * @param {Highcharts.Breadcrumbs} this Breadcrumbs class.
982
+ */
983
+ Breadcrumbs.prototype.renderSingleButton = function () {
984
+ var breadcrumbs = this,
985
+ chart = breadcrumbs.chart,
986
+ list = breadcrumbs.list,
987
+ breadcrumbsOptions = breadcrumbs.options,
988
+ buttonSpacing = breadcrumbsOptions.buttonSpacing;
989
+ // Make sure that only one type of button is visible.
990
+ this.destroyListElements();
991
+ // Draw breadcrumbs. Inital position for calculating the breadcrumbs
992
+ // group.
993
+ var posX = breadcrumbs.group ?
994
+ breadcrumbs.group.getBBox().width :
995
+ buttonSpacing,
996
+ posY = buttonSpacing;
997
+ var previousBreadcrumb = list[list.length - 2];
998
+ if (!chart.drillUpButton && (this.level > 0)) {
999
+ chart.drillUpButton = breadcrumbs.renderButton(previousBreadcrumb, posX, posY);
1000
+ }
1001
+ else if (chart.drillUpButton) {
1002
+ if (this.level > 0) {
1003
+ // Update button.
1004
+ this.updateSingleButton();
1005
+ }
1006
+ else {
1007
+ this.destroySingleButton();
1008
+ }
1009
+ }
1010
+ };
1011
+ /**
1012
+ * Update group position based on align and it's width.
1013
+ *
1014
+ * @requires modules/breadcrumbs
1015
+ *
1016
+ * @function Highcharts.Breadcrumbs#renderSingleButton
1017
+ * @param {Highcharts.Breadcrumbs} this
1018
+ * Breadcrumbs class.
1019
+ */
1020
+ Breadcrumbs.prototype.alignBreadcrumbsGroup = function (xOffset) {
1021
+ var breadcrumbs = this;
1022
+ if (breadcrumbs.group) {
1023
+ var breadcrumbsOptions = breadcrumbs.options,
1024
+ buttonTheme = breadcrumbsOptions.buttonTheme,
1025
+ positionOptions = breadcrumbsOptions.position,
1026
+ alignTo = (breadcrumbsOptions.relativeTo === 'chart' ||
1027
+ breadcrumbsOptions.relativeTo === 'spacingBox' ?
1028
+ void 0 :
1029
+ 'scrollablePlotBox'),
1030
+ bBox = breadcrumbs.group.getBBox(),
1031
+ additionalSpace = 2 * (buttonTheme.padding || 0) +
1032
+ breadcrumbsOptions.buttonSpacing;
1033
+ // Store positionOptions
1034
+ positionOptions.width = bBox.width + additionalSpace;
1035
+ positionOptions.height = bBox.height + additionalSpace;
1036
+ var newPositions = merge(positionOptions);
1037
+ // Add x offset if specified.
1038
+ if (xOffset) {
1039
+ newPositions.x += xOffset;
1040
+ }
1041
+ if (breadcrumbs.options.rtl) {
1042
+ newPositions.x += positionOptions.width;
1043
+ }
1044
+ newPositions.y = pick(newPositions.y, this.yOffset, 0);
1045
+ breadcrumbs.group.align(newPositions, true, alignTo);
1046
+ }
1047
+ };
1048
+ /**
1049
+ * Render a button.
1050
+ *
1051
+ * @requires modules/breadcrums
1052
+ *
1053
+ * @function Highcharts.Breadcrumbs#renderButton
1054
+ * @param {Highcharts.Breadcrumbs} this
1055
+ * Breadcrumbs class.
1056
+ * @param {Highcharts.Breadcrumbs} breadcrumb
1057
+ * Current breadcrumb
1058
+ * @param {Highcharts.Breadcrumbs} posX
1059
+ * Initial horizontal position
1060
+ * @param {Highcharts.Breadcrumbs} posY
1061
+ * Initial vertical position
1062
+ * @return {SVGElement|void}
1063
+ * Returns the SVG button
1064
+ */
1065
+ Breadcrumbs.prototype.renderButton = function (breadcrumb, posX, posY) {
1066
+ var breadcrumbs = this,
1067
+ chart = this.chart,
1068
+ breadcrumbsOptions = breadcrumbs.options,
1069
+ buttonTheme = merge(breadcrumbsOptions.buttonTheme);
1070
+ var button = chart.renderer
1071
+ .button(breadcrumbs.getButtonText(breadcrumb),
1072
+ posX,
1073
+ posY,
1074
+ function (e) {
1075
+ // Extract events from button object and call
1076
+ var buttonEvents = breadcrumbsOptions.events &&
1077
+ breadcrumbsOptions.events.click;
1078
+ var callDefaultEvent;
1079
+ if (buttonEvents) {
1080
+ callDefaultEvent = buttonEvents.call(breadcrumbs, e, breadcrumb);
1081
+ }
1082
+ // (difference in behaviour of showFullPath and drillUp)
1083
+ if (callDefaultEvent !== false) {
1084
+ // For single button we are not going to the button
1085
+ // level, but the one level up
1086
+ if (!breadcrumbsOptions.showFullPath) {
1087
+ e.newLevel = breadcrumbs.level - 1;
1088
+ }
1089
+ else {
1090
+ e.newLevel = breadcrumb.level;
1091
+ }
1092
+ fireEvent(breadcrumbs, 'up', e);
1093
+ }
1094
+ }, buttonTheme)
1095
+ .addClass('highcharts-breadcrumbs-button')
1096
+ .add(breadcrumbs.group);
1097
+ if (!chart.styledMode) {
1098
+ button.attr(breadcrumbsOptions.style);
1099
+ }
1100
+ return button;
1101
+ };
1102
+ /**
1103
+ * Render a separator.
1104
+ *
1105
+ * @requires modules/breadcrums
1106
+ *
1107
+ * @function Highcharts.Breadcrumbs#renderSeparator
1108
+ * @param {Highcharts.Breadcrumbs} this
1109
+ * Breadcrumbs class.
1110
+ * @param {Highcharts.Breadcrumbs} posX
1111
+ * Initial horizontal position
1112
+ * @param {Highcharts.Breadcrumbs} posY
1113
+ * Initial vertical position
1114
+ * @return {Highcharts.SVGElement}
1115
+ * Returns the SVG button
1116
+ */
1117
+ Breadcrumbs.prototype.renderSeparator = function (posX, posY) {
1118
+ var breadcrumbs = this,
1119
+ chart = this.chart,
1120
+ breadcrumbsOptions = breadcrumbs.options,
1121
+ separatorOptions = breadcrumbsOptions.separator;
1122
+ var separator = chart.renderer
1123
+ .label(separatorOptions.text,
1124
+ posX,
1125
+ posY,
1126
+ void 0,
1127
+ void 0,
1128
+ void 0,
1129
+ false)
1130
+ .addClass('highcharts-breadcrumbs-separator')
1131
+ .add(breadcrumbs.group);
1132
+ if (!chart.styledMode) {
1133
+ separator.css(separatorOptions.style);
1134
+ }
1135
+ return separator;
1136
+ };
1137
+ /**
1138
+ * Update.
1139
+ * @function Highcharts.Breadcrumbs#update
1140
+ *
1141
+ * @requires modules/breadcrumbs
1142
+ *
1143
+ * @param {Highcharts.Breadcrumbs} this
1144
+ * Breadcrumbs class.
1145
+ * @param {Highcharts.BreadcrumbsOptions} options
1146
+ * Breadcrumbs class.
1147
+ * @param {boolean} redraw
1148
+ * Redraw flag
1149
+ */
1150
+ Breadcrumbs.prototype.update = function (options) {
1151
+ merge(true, this.options, options);
1152
+ this.destroy();
1153
+ this.isDirty = true;
1154
+ };
1155
+ /**
1156
+ * Update button text when the showFullPath set to false.
1157
+ * @function Highcharts.Breadcrumbs#updateSingleButton
1158
+ *
1159
+ * @requires modules/breadcrumbs
1160
+ *
1161
+ * @param {Highcharts.Breadcrumbs} this
1162
+ * Breadcrumbs class.
1163
+ */
1164
+ Breadcrumbs.prototype.updateSingleButton = function () {
1165
+ var chart = this.chart,
1166
+ currentBreadcrumb = this.list[this.level - 1];
1167
+ if (chart.drillUpButton) {
1168
+ chart.drillUpButton.attr({
1169
+ text: this.getButtonText(currentBreadcrumb)
1170
+ });
1171
+ }
1172
+ };
1173
+ /**
1174
+ * Destroy the chosen breadcrumbs group
1175
+ *
1176
+ * @requires modules/breadcrumbs
1177
+ *
1178
+ * @function Highcharts.Breadcrumbs#destroy
1179
+ * @param {Highcharts.Breadcrumbs} this
1180
+ * Breadcrumbs class.
1181
+ */
1182
+ Breadcrumbs.prototype.destroy = function () {
1183
+ this.destroySingleButton();
1184
+ // Destroy elements one by one. It's necessary beacause
1185
+ // g().destroy() does not remove added HTML
1186
+ this.destroyListElements(true);
1187
+ // Then, destroy the group itself.
1188
+ if (this.group) {
1189
+ this.group.destroy();
1190
+ }
1191
+ this.group = void 0;
1192
+ };
1193
+ /**
1194
+ * Destroy the elements' buttons and separators.
1195
+ *
1196
+ * @requires modules/breadcrumbs
1197
+ *
1198
+ * @function Highcharts.Breadcrumbs#destroyListElements
1199
+ * @param {Highcharts.Breadcrumbs} this
1200
+ * Breadcrumbs class.
1201
+ */
1202
+ Breadcrumbs.prototype.destroyListElements = function (force) {
1203
+ var elementList = this.elementList;
1204
+ objectEach(elementList, function (element, level) {
1205
+ if (force ||
1206
+ !elementList[level].updated) {
1207
+ element = elementList[level];
1208
+ element.button && element.button.destroy();
1209
+ element.separator && element.separator.destroy();
1210
+ delete element.button;
1211
+ delete element.separator;
1212
+ delete elementList[level];
1213
+ }
1214
+ });
1215
+ if (force) {
1216
+ this.elementList = {};
1217
+ }
1218
+ };
1219
+ /**
1220
+ * Destroy the single button if exists.
1221
+ *
1222
+ * @requires modules/breadcrumbs
1223
+ *
1224
+ * @function Highcharts.Breadcrumbs#destroySingleButton
1225
+ * @param {Highcharts.Breadcrumbs} this
1226
+ * Breadcrumbs class.
1227
+ */
1228
+ Breadcrumbs.prototype.destroySingleButton = function () {
1229
+ if (this.chart.drillUpButton) {
1230
+ this.chart.drillUpButton.destroy();
1231
+ this.chart.drillUpButton = void 0;
1232
+ }
1233
+ };
1234
+ /**
1235
+ * Reset state for all buttons in elementList.
1236
+ *
1237
+ * @requires modules/breadcrumbs
1238
+ *
1239
+ * @function Highcharts.Breadcrumbs#resetElementListState
1240
+ * @param {Highcharts.Breadcrumbs} this
1241
+ * Breadcrumbs class.
1242
+ */
1243
+ Breadcrumbs.prototype.resetElementListState = function () {
1244
+ objectEach(this.elementList, function (element) {
1245
+ element.updated = false;
1246
+ });
1247
+ };
1248
+ /**
1249
+ * Update rendered elements inside the elementList.
1250
+ *
1251
+ * @requires modules/breadcrumbs
1252
+ *
1253
+ * @function Highcharts.Breadcrumbs#updateListElements
1254
+ * @param {Highcharts.Breadcrumbs} this
1255
+ * Breadcrumbs class.
1256
+ */
1257
+ Breadcrumbs.prototype.updateListElements = function () {
1258
+ var breadcrumbs = this,
1259
+ elementList = breadcrumbs.elementList,
1260
+ buttonSpacing = breadcrumbs.options.buttonSpacing,
1261
+ list = breadcrumbs.list,
1262
+ rtl = breadcrumbs.options.rtl,
1263
+ rtlFactor = rtl ? -1 : 1,
1264
+ updateXPosition = function (element,
1265
+ spacing) {
1266
+ return rtlFactor * element.getBBox().width +
1267
+ rtlFactor * spacing;
1268
+ }, adjustToRTL = function (element, posX, posY) {
1269
+ element.translate(posX - element.getBBox().width, posY);
1270
+ };
1271
+ // Inital position for calculating the breadcrumbs group.
1272
+ var posX = breadcrumbs.group ?
1273
+ updateXPosition(breadcrumbs.group,
1274
+ buttonSpacing) :
1275
+ buttonSpacing,
1276
+ posY = buttonSpacing,
1277
+ currentBreadcrumb;
1278
+ list.forEach(function (breadcrumb, index) {
1279
+ var isLast = index === list.length - 1;
1280
+ var button,
1281
+ separator;
1282
+ if (elementList[breadcrumb.level]) {
1283
+ currentBreadcrumb = elementList[breadcrumb.level];
1284
+ button = currentBreadcrumb.button;
1285
+ // Render a separator if it was not created before.
1286
+ if (!currentBreadcrumb.separator &&
1287
+ !isLast) {
1288
+ // Add spacing for the next separator
1289
+ posX += rtlFactor * buttonSpacing;
1290
+ currentBreadcrumb.separator =
1291
+ breadcrumbs.renderSeparator(posX, posY);
1292
+ if (rtl) {
1293
+ adjustToRTL(currentBreadcrumb.separator, posX, posY);
1294
+ }
1295
+ posX += updateXPosition(currentBreadcrumb.separator, buttonSpacing);
1296
+ }
1297
+ else if (currentBreadcrumb.separator &&
1298
+ isLast) {
1299
+ currentBreadcrumb.separator.destroy();
1300
+ delete currentBreadcrumb.separator;
1301
+ }
1302
+ elementList[breadcrumb.level].updated = true;
1303
+ }
1304
+ else {
1305
+ // Render a button.
1306
+ button = breadcrumbs.renderButton(breadcrumb, posX, posY);
1307
+ if (rtl) {
1308
+ adjustToRTL(button, posX, posY);
1309
+ }
1310
+ posX += updateXPosition(button, buttonSpacing);
1311
+ // Render a separator.
1312
+ if (!isLast) {
1313
+ separator = breadcrumbs.renderSeparator(posX, posY);
1314
+ if (rtl) {
1315
+ adjustToRTL(separator, posX, posY);
1316
+ }
1317
+ posX += updateXPosition(separator, buttonSpacing);
1318
+ }
1319
+ elementList[breadcrumb.level] = {
1320
+ button: button,
1321
+ separator: separator,
1322
+ updated: true
1323
+ };
1324
+ }
1325
+ if (button) {
1326
+ button.setState(isLast ? 2 : 0);
1327
+ }
1328
+ });
1329
+ };
1330
+ /**
1331
+ * Options for breadcrumbs. Breadcrumbs general options are defined in
1332
+ * `navigation.breadcrumbs`. Specific options for drilldown are set in
1333
+ * `drilldown.breadcrumbs` and for tree-like series traversing, in
1334
+ * `plotOptions[series].breadcrumbs`.
1335
+ *
1336
+ * @since 10.0.0
1337
+ * @product highcharts
1338
+ * @optionparent navigation.breadcrumbs
1339
+ */
1340
+ Breadcrumbs.defaultBreadcrumbsOptions = {
1341
+ /**
1342
+ * A collection of attributes for the buttons. The object takes SVG
1343
+ * attributes like `fill`, `stroke`, `stroke-width`, as well as `style`,
1344
+ * a collection of CSS properties for the text.
1345
+ *
1346
+ * The object can also be extended with states, so you can set
1347
+ * presentational options for `hover`, `select` or `disabled` button
1348
+ * states.
1349
+ *
1350
+ * @sample {highcharts} highcharts/breadcrumbs/single-button
1351
+ * Themed, single button
1352
+ *
1353
+ * @type {Highcharts.SVGAttributes}
1354
+ * @since 10.0.0
1355
+ * @product highcharts
1356
+ */
1357
+ buttonTheme: {
1358
+ /** @ignore */
1359
+ fill: 'none',
1360
+ /** @ignore */
1361
+ height: 18,
1362
+ /** @ignore */
1363
+ padding: 2,
1364
+ /** @ignore */
1365
+ 'stroke-width': 0,
1366
+ /** @ignore */
1367
+ zIndex: 7,
1368
+ /** @ignore */
1369
+ states: {
1370
+ select: {
1371
+ fill: 'none'
1372
+ }
1373
+ },
1374
+ style: {
1375
+ color: "#335cad" /* Palette.highlightColor80 */
1376
+ }
1377
+ },
1378
+ /**
1379
+ * The default padding for each button and separator in each direction.
1380
+ *
1381
+ * @type {number}
1382
+ * @since 10.0.0
1383
+ */
1384
+ buttonSpacing: 5,
1385
+ /**
1386
+ * Fires when clicking on the breadcrumbs button. Two arguments are
1387
+ * passed to the function. First breadcrumb button as an SVG element.
1388
+ * Second is the breadcrumbs class, containing reference to the chart,
1389
+ * series etc.
1390
+ *
1391
+ * ```js
1392
+ * click: function(button, breadcrumbs) {
1393
+ * console.log(button);
1394
+ * }
1395
+ * ```
1396
+ *
1397
+ * Return false to stop default buttons click action.
1398
+ *
1399
+ * @type {Highcharts.BreadcrumbsClickCallbackFunction}
1400
+ * @since 10.0.0
1401
+ * @apioption navigation.breadcrumbs.events.click
1402
+ */
1403
+ /**
1404
+ * When the breadcrumbs are floating, the plot area will not move to
1405
+ * make space for it. By default, the chart will not make space for the
1406
+ * buttons. This property won't work when positioned in the middle.
1407
+ *
1408
+ * @sample highcharts/breadcrumbs/single-button
1409
+ * Floating button
1410
+ * @type {boolean}
1411
+ * @since 10.0.0
1412
+ */
1413
+ floating: false,
1414
+ /**
1415
+ * A format string for the breadcrumbs button. Variables are enclosed by
1416
+ * curly brackets. Available values are passed in the declared point
1417
+ * options.
1418
+ *
1419
+ * @type {string|undefined}
1420
+ * @since 10.0.0
1421
+ * @default undefined
1422
+ * @sample {highcharts} highcharts/breadcrumbs/format Display custom
1423
+ * values in breadcrumb button.
1424
+ */
1425
+ format: void 0,
1426
+ /**
1427
+ * Callback function to format the breadcrumb text from scratch.
1428
+ *
1429
+ * @type {Highcharts.BreadcrumbsFormatterCallbackFunction}
1430
+ * @since 10.0.0
1431
+ * @default undefined
1432
+ * @apioption navigation.breadcrumbs.formatter
1433
+ */
1434
+ /**
1435
+ * What box to align the button to. Can be either `plotBox` or
1436
+ * `spacingBox`.
1437
+ *
1438
+ * @type {Highcharts.ButtonRelativeToValue}
1439
+ * @default plotBox
1440
+ * @since 10.0.0
1441
+ * @product highcharts highmaps
1442
+ */
1443
+ relativeTo: 'plotBox',
1444
+ /**
1445
+ * Whether to reverse the order of buttons. This is common in Arabic
1446
+ * and Hebrew.
1447
+ *
1448
+ * @type {boolean}
1449
+ * @since 10.2.0
1450
+ * @sample {highcharts} highcharts/breadcrumbs/rtl
1451
+ * Breadcrumbs in RTL
1452
+ */
1453
+ rtl: false,
1454
+ /**
1455
+ * Positioning for the button row. The breadcrumbs buttons will be
1456
+ * aligned properly for the default chart layout (title, subtitle,
1457
+ * legend, range selector) for the custom chart layout set the position
1458
+ * properties.
1459
+ * @type {Highcharts.BreadcrumbsAlignOptions}
1460
+ * @since 10.0.0
1461
+ * @product highcharts highmaps
1462
+ * @sample {highcharts} highcharts/breadcrumbs/single-button
1463
+ * Single, right aligned button
1464
+ */
1465
+ position: {
1466
+ /**
1467
+ * Horizontal alignment of the breadcrumbs buttons.
1468
+ *
1469
+ * @type {Highcharts.AlignValue}
1470
+ */
1471
+ align: 'left',
1472
+ /**
1473
+ * Vertical alignment of the breadcrumbs buttons.
1474
+ *
1475
+ * @type {Highcharts.VerticalAlignValue}
1476
+ */
1477
+ verticalAlign: 'top',
1478
+ /**
1479
+ * The X offset of the breadcrumbs button group.
1480
+ *
1481
+ * @type {number}
1482
+ */
1483
+ x: 0,
1484
+ /**
1485
+ * The Y offset of the breadcrumbs button group. When `undefined`,
1486
+ * and `floating` is `false`, the `y` position is adapted so that
1487
+ * the breadcrumbs are rendered outside the target area.
1488
+ *
1489
+ * @type {number|undefined}
1490
+ */
1491
+ y: void 0
1492
+ },
1493
+ /**
1494
+ * Options object for Breadcrumbs separator.
1495
+ *
1496
+ * @since 10.0.0
1497
+ */
1498
+ separator: {
1499
+ /**
1500
+ * @type {string}
1501
+ * @since 10.0.0
1502
+ * @product highcharts
1503
+ */
1504
+ text: '/',
1505
+ /**
1506
+ * CSS styles for the breadcrumbs separator.
1507
+ *
1508
+ * In styled mode, the breadcrumbs separators are styled by the
1509
+ * `.highcharts-separator` rule with its different states.
1510
+ * @type {Highcharts.CSSObject}
1511
+ * @since 10.0.0
1512
+ */
1513
+ style: {
1514
+ color: "#666666" /* Palette.neutralColor60 */
1515
+ }
1516
+ },
1517
+ /**
1518
+ * Show full path or only a single button.
1519
+ *
1520
+ * @type {boolean}
1521
+ * @since 10.0.0
1522
+ * @sample {highcharts} highcharts/breadcrumbs/single-button
1523
+ * Single, styled button
1524
+ */
1525
+ showFullPath: true,
1526
+ /**
1527
+ * CSS styles for all breadcrumbs.
1528
+ *
1529
+ * In styled mode, the breadcrumbs buttons are styled by the
1530
+ * `.highcharts-breadcrumbs-buttons .highcharts-button` rule with its
1531
+ * different states.
1532
+ * @type {Highcharts.SVGAttributes}
1533
+ * @since 10.0.0
1534
+ */
1535
+ style: {},
1536
+ /**
1537
+ * Whether to use HTML to render the breadcrumbs items texts.
1538
+ *
1539
+ * @type {boolean}
1540
+ * @since 10.0.0
1541
+ */
1542
+ useHTML: false,
1543
+ /**
1544
+ * The z index of the breadcrumbs group.
1545
+ *
1546
+ * @type {number}
1547
+ * @since 10.0.0
1548
+ */
1549
+ zIndex: 7
1550
+ };
1551
+ return Breadcrumbs;
1552
+ }());
1553
+ /* eslint-disable no-invalid-this */
1554
+ if (!H.Breadcrumbs) {
1555
+ H.Breadcrumbs = Breadcrumbs;
1556
+ // Logic for making space for the buttons above the plot area
1557
+ addEvent(Chart, 'getMargins', function () {
1558
+ var breadcrumbs = this.breadcrumbs;
1559
+ if (breadcrumbs &&
1560
+ !breadcrumbs.options.floating &&
1561
+ breadcrumbs.level) {
1562
+ var breadcrumbsOptions = breadcrumbs.options,
1563
+ buttonTheme = breadcrumbsOptions.buttonTheme,
1564
+ breadcrumbsHeight = ((buttonTheme.height || 0) +
1565
+ 2 * (buttonTheme.padding || 0) +
1566
+ breadcrumbsOptions.buttonSpacing),
1567
+ verticalAlign = breadcrumbsOptions.position.verticalAlign;
1568
+ if (verticalAlign === 'bottom') {
1569
+ this.marginBottom = (this.marginBottom || 0) + breadcrumbsHeight;
1570
+ breadcrumbs.yOffset = breadcrumbsHeight;
1571
+ }
1572
+ else if (verticalAlign !== 'middle') {
1573
+ this.plotTop += breadcrumbsHeight;
1574
+ breadcrumbs.yOffset = -breadcrumbsHeight;
1575
+ }
1576
+ else {
1577
+ breadcrumbs.yOffset = void 0;
1578
+ }
1579
+ }
1580
+ });
1581
+ addEvent(Chart, 'redraw', function () {
1582
+ this.breadcrumbs && this.breadcrumbs.redraw();
1583
+ });
1584
+ // Remove resize/afterSetExtremes at chart destroy
1585
+ addEvent(Chart, 'destroy', function destroyEvents() {
1586
+ if (this.breadcrumbs) {
1587
+ this.breadcrumbs.destroy();
1588
+ this.breadcrumbs = void 0;
1589
+ }
1590
+ });
1591
+ // Shift the drillUpButton to make the space for resetZoomButton, #8095.
1592
+ addEvent(Chart, 'afterShowResetZoom', function () {
1593
+ var chart = this;
1594
+ if (chart.breadcrumbs) {
1595
+ var bbox = chart.resetZoomButton &&
1596
+ chart.resetZoomButton.getBBox(),
1597
+ breadcrumbsOptions = chart.breadcrumbs.options;
1598
+ if (bbox &&
1599
+ breadcrumbsOptions.position.align === 'right' &&
1600
+ breadcrumbsOptions.relativeTo === 'plotBox') {
1601
+ chart.breadcrumbs.alignBreadcrumbsGroup(-bbox.width - breadcrumbsOptions.buttonSpacing);
1602
+ }
1603
+ }
1604
+ });
1605
+ // After zooming out, shift the drillUpButton
1606
+ // to the previous position, #8095.
1607
+ addEvent(Chart, 'selection', function (event) {
1608
+ if (event.resetSelection === true &&
1609
+ this.breadcrumbs) {
1610
+ this.breadcrumbs.alignBreadcrumbsGroup();
1611
+ }
1612
+ });
1613
+ }
1614
+ /* *
1615
+ *
1616
+ * Default Export
1617
+ *
1618
+ * */
1619
+ /* *
1620
+ *
1621
+ * API Declarations
1622
+ *
1623
+ * */
1624
+ /**
1625
+ * Callback function to react on button clicks.
1626
+ *
1627
+ * @callback Highcharts.BreadcrumbsClickCallbackFunction
1628
+ *
1629
+ * @param {Highcharts.Event} event
1630
+ * Event.
1631
+ *
1632
+ * @param {Highcharts.BreadcrumbOptions} options
1633
+ * Breadcrumb options.
1634
+ *
1635
+ * @param {global.Event} e
1636
+ * Event arguments.
1637
+ */
1638
+ /**
1639
+ * Callback function to format the breadcrumb text from scratch.
1640
+ *
1641
+ * @callback Highcharts.BreadcrumbsFormatterCallbackFunction
1642
+ *
1643
+ * @param {Highcharts.Event} event
1644
+ * Event.
1645
+ *
1646
+ * @param {Highcharts.BreadcrumbOptions} options
1647
+ * Breadcrumb options.
1648
+ *
1649
+ * @return {string}
1650
+ * Formatted text or false
1651
+ */
1652
+ /**
1653
+ * Options for the one breadcrumb.
1654
+ *
1655
+ * @interface Highcharts.BreadcrumbOptions
1656
+ */
1657
+ /**
1658
+ * Level connected to a specific breadcrumb.
1659
+ * @name Highcharts.BreadcrumbOptions#level
1660
+ * @type {number}
1661
+ */
1662
+ /**
1663
+ * Options for series or point connected to a specific breadcrumb.
1664
+ * @name Highcharts.BreadcrumbOptions#levelOptions
1665
+ * @type {SeriesOptions|PointOptionsObject}
1666
+ */
1667
+ /**
1668
+ * Options for aligning breadcrumbs group.
1669
+ *
1670
+ * @interface Highcharts.BreadcrumbsAlignOptions
1671
+ */
1672
+ /**
1673
+ * Align of a Breadcrumb group.
1674
+ * @default right
1675
+ * @name Highcharts.BreadcrumbsAlignOptions#align
1676
+ * @type {AlignValue}
1677
+ */
1678
+ /**
1679
+ * Vertical align of a Breadcrumb group.
1680
+ * @default top
1681
+ * @name Highcharts.BreadcrumbsAlignOptions#verticalAlign
1682
+ * @type {VerticalAlignValue}
1683
+ */
1684
+ /**
1685
+ * X offset of a Breadcrumbs group.
1686
+ * @name Highcharts.BreadcrumbsAlignOptions#x
1687
+ * @type {number}
1688
+ */
1689
+ /**
1690
+ * Y offset of a Breadcrumbs group.
1691
+ * @name Highcharts.BreadcrumbsAlignOptions#y
1692
+ * @type {number}
1693
+ */
1694
+ /**
1695
+ * Options for all breadcrumbs.
1696
+ *
1697
+ * @interface Highcharts.BreadcrumbsOptions
1698
+ */
1699
+ /**
1700
+ * Button theme.
1701
+ * @name Highcharts.BreadcrumbsOptions#buttonTheme
1702
+ * @type { SVGAttributes | undefined }
1703
+ */
1704
+ (''); // Keeps doclets above in JS file
1705
+
1706
+ return Breadcrumbs;
1707
+ });
739
1708
  _registerModule(_modules, 'Series/Treemap/TreemapComposition.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Series/Treemap/TreemapUtilities.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, TreemapUtilities, U) {
740
1709
  /* *
741
1710
  *
@@ -797,7 +1766,7 @@
797
1766
  });
798
1767
 
799
1768
  });
800
- _registerModule(_modules, 'Series/Treemap/TreemapSeries.js', [_modules['Core/Color/Color.js'], _modules['Series/ColorMapMixin.js'], _modules['Core/Globals.js'], _modules['Core/Legend/LegendSymbol.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Series/Treemap/TreemapAlgorithmGroup.js'], _modules['Series/Treemap/TreemapPoint.js'], _modules['Series/Treemap/TreemapUtilities.js'], _modules['Series/TreeUtilities.js'], _modules['Core/Utilities.js']], function (Color, ColorMapMixin, H, LegendSymbol, SeriesRegistry, TreemapAlgorithmGroup, TreemapPoint, TreemapUtilities, TU, U) {
1769
+ _registerModule(_modules, 'Series/Treemap/TreemapSeries.js', [_modules['Core/Color/Color.js'], _modules['Series/ColorMapComposition.js'], _modules['Core/Globals.js'], _modules['Core/Legend/LegendSymbol.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Series/Treemap/TreemapAlgorithmGroup.js'], _modules['Series/Treemap/TreemapPoint.js'], _modules['Series/Treemap/TreemapUtilities.js'], _modules['Series/TreeUtilities.js'], _modules['Extensions/Breadcrumbs.js'], _modules['Core/Utilities.js']], function (Color, ColorMapComposition, H, LegendSymbol, SeriesRegistry, TreemapAlgorithmGroup, TreemapPoint, TreemapUtilities, TU, Breadcrumbs, U) {
801
1770
  /* *
802
1771
  *
803
1772
  * (c) 2014-2021 Highsoft AS
@@ -842,6 +1811,7 @@
842
1811
  extend = U.extend,
843
1812
  fireEvent = U.fireEvent,
844
1813
  isArray = U.isArray,
1814
+ isNumber = U.isNumber,
845
1815
  isObject = U.isObject,
846
1816
  isString = U.isString,
847
1817
  merge = U.merge,
@@ -882,6 +1852,7 @@
882
1852
  _this.points = void 0;
883
1853
  _this.rootNode = void 0;
884
1854
  _this.tree = void 0;
1855
+ _this.level = void 0;
885
1856
  return _this;
886
1857
  /* eslint-enable valid-jsdoc */
887
1858
  }
@@ -1138,6 +2109,46 @@
1138
2109
  }
1139
2110
  });
1140
2111
  };
2112
+ /**
2113
+ * Create level list.
2114
+ *
2115
+ * @requires modules/breadcrumbs
2116
+ *
2117
+ * @function TreemapSeries#createList
2118
+ * @param {TreemapSeries} this
2119
+ * Treemap Series class.
2120
+ */
2121
+ TreemapSeries.prototype.createList = function (e) {
2122
+ var chart = this.chart,
2123
+ breadcrumbs = chart.breadcrumbs,
2124
+ list = [];
2125
+ if (breadcrumbs) {
2126
+ var currentLevelNumber_1 = 0;
2127
+ list.push({
2128
+ level: currentLevelNumber_1,
2129
+ levelOptions: chart.series[0]
2130
+ });
2131
+ var node = e.target.nodeMap[e.newRootId];
2132
+ var extraNodes = [];
2133
+ // When the root node is set and has parent,
2134
+ // recreate the path from the node tree.
2135
+ while (node.parent || node.parent === '') {
2136
+ extraNodes.push(node);
2137
+ node = e.target.nodeMap[node.parent];
2138
+ }
2139
+ extraNodes.reverse().forEach(function (node) {
2140
+ list.push({
2141
+ level: ++currentLevelNumber_1,
2142
+ levelOptions: node
2143
+ });
2144
+ });
2145
+ // If the list has only first element, we should clear it
2146
+ if (list.length <= 1) {
2147
+ list.length = 0;
2148
+ }
2149
+ }
2150
+ return list;
2151
+ };
1141
2152
  /**
1142
2153
  * Extend drawDataLabels with logic to handle custom options related to
1143
2154
  * the treemap series:
@@ -1388,9 +2399,9 @@
1388
2399
  };
1389
2400
  TreemapSeries.prototype.init = function (chart, options) {
1390
2401
  var series = this,
1391
- setOptionsEvent;
1392
- // If color series logic is loaded, add some properties
1393
- this.colorAttribs = ColorMapMixin.SeriesMixin.colorAttribs;
2402
+ breadcrumbsOptions = merge(options.drillUpButton,
2403
+ options.breadcrumbs);
2404
+ var setOptionsEvent;
1394
2405
  setOptionsEvent = addEvent(series, 'setOptions', function (event) {
1395
2406
  var options = event.userOptions;
1396
2407
  if (defined(options.allowDrillToNode) &&
@@ -1411,7 +2422,38 @@
1411
2422
  series.eventsToUnbind.push(setOptionsEvent);
1412
2423
  if (series.options.allowTraversingTree) {
1413
2424
  series.eventsToUnbind.push(addEvent(series, 'click', series.onClickDrillToNode));
2425
+ series.eventsToUnbind.push(addEvent(series, 'setRootNode', function (e) {
2426
+ var chart = series.chart;
2427
+ if (chart.breadcrumbs) {
2428
+ // Create a list using the event after drilldown.
2429
+ chart.breadcrumbs.updateProperties(series.createList(e));
2430
+ }
2431
+ }));
2432
+ series.eventsToUnbind.push(addEvent(series, 'update', function (e, redraw) {
2433
+ var breadcrumbs = this.chart.breadcrumbs;
2434
+ if (breadcrumbs && e.options.breadcrumbs) {
2435
+ breadcrumbs.update(e.options.breadcrumbs);
2436
+ }
2437
+ }));
2438
+ series.eventsToUnbind.push(addEvent(series, 'destroy', function destroyEvents(e) {
2439
+ var chart = this.chart;
2440
+ if (chart.breadcrumbs) {
2441
+ chart.breadcrumbs.destroy();
2442
+ if (!e.keepEventsForUpdate) {
2443
+ chart.breadcrumbs = void 0;
2444
+ }
2445
+ }
2446
+ }));
1414
2447
  }
2448
+ if (!chart.breadcrumbs) {
2449
+ chart.breadcrumbs = new Breadcrumbs(chart, breadcrumbsOptions);
2450
+ }
2451
+ series.eventsToUnbind.push(addEvent(chart.breadcrumbs, 'up', function (e) {
2452
+ var drillUpsNumber = this.level - e.newLevel;
2453
+ for (var i = 0; i < drillUpsNumber; i++) {
2454
+ series.drillUp();
2455
+ }
2456
+ }));
1415
2457
  };
1416
2458
  /**
1417
2459
  * Add drilling on the suitable points.
@@ -1439,7 +2481,7 @@
1439
2481
  level = point && mapOptionsToLevel[point.node.level] || {},
1440
2482
  options = this.options,
1441
2483
  attr,
1442
- stateOptions = (state && options.states[state]) || {},
2484
+ stateOptions = state && options.states && options.states[state] || {},
1443
2485
  className = (point && point.getClassName()) || '',
1444
2486
  opacity;
1445
2487
  // Set attributes by precedence. Point trumps level trumps series.
@@ -1479,47 +2521,6 @@
1479
2521
  }
1480
2522
  return attr;
1481
2523
  };
1482
- TreemapSeries.prototype.renderTraverseUpButton = function (rootId) {
1483
- var series = this,
1484
- nodeMap = series.nodeMap,
1485
- node = nodeMap[rootId],
1486
- name = node.name,
1487
- buttonOptions = series.options
1488
- .traverseUpButton,
1489
- backText = pick(buttonOptions.text,
1490
- name, '◁ Back'),
1491
- attr,
1492
- states;
1493
- if (rootId === '' || (series.is('sunburst') &&
1494
- series.tree.children.length === 1 &&
1495
- rootId === series.tree.children[0].id)) {
1496
- if (series.drillUpButton) {
1497
- series.drillUpButton = series.drillUpButton.destroy();
1498
- }
1499
- }
1500
- else if (!this.drillUpButton) {
1501
- attr = buttonOptions.theme;
1502
- states = attr && attr.states;
1503
- this.drillUpButton = this.chart.renderer
1504
- .button(backText, 0, 0, function () {
1505
- series.drillUp();
1506
- }, attr, states && states.hover, states && states.select)
1507
- .addClass('highcharts-drillup-button')
1508
- .attr({
1509
- align: buttonOptions.position.align,
1510
- zIndex: 7
1511
- })
1512
- .add()
1513
- .align(buttonOptions.position, false, buttonOptions.relativeTo || 'plotBox');
1514
- }
1515
- else {
1516
- this.drillUpButton.placed = false;
1517
- this.drillUpButton.attr({
1518
- text: backText
1519
- })
1520
- .align();
1521
- }
1522
- };
1523
2524
  /**
1524
2525
  * Set the node's color recursively, from the parent down.
1525
2526
  * @private
@@ -1762,7 +2763,6 @@
1762
2763
  rootId = series.rootNode;
1763
2764
  rootNode = series.nodeMap[rootId];
1764
2765
  }
1765
- series.renderTraverseUpButton(rootId);
1766
2766
  series.mapOptionsToLevel = getLevelOptions({
1767
2767
  from: rootNode.level + 1,
1768
2768
  levels: options.levels,
@@ -1832,7 +2832,7 @@
1832
2832
  * Treemap
1833
2833
  *
1834
2834
  * @extends plotOptions.scatter
1835
- * @excluding dragDrop, marker, jitter, dataSorting
2835
+ * @excluding cluster, connectEnds, connectNulls, dataSorting, dragDrop, jitter, marker
1836
2836
  * @product highcharts
1837
2837
  * @requires modules/treemap
1838
2838
  * @optionparent plotOptions.treemap
@@ -1869,6 +2869,16 @@
1869
2869
  * The border radius for each treemap item.
1870
2870
  */
1871
2871
  borderRadius: 0,
2872
+ /**
2873
+ * Options for the breadcrumbs, the navigation at the top leading the
2874
+ * way up through the traversed levels.
2875
+ *
2876
+ *
2877
+ * @since 10.0.0
2878
+ * @product highcharts
2879
+ * @extends navigation.breadcrumbs
2880
+ * @optionparent plotOptions.treemap.breadcrumbs
2881
+ */
1872
2882
  /**
1873
2883
  * When the series contains less points than the crop threshold, all
1874
2884
  * points are drawn, event if the points fall outside the visible plot
@@ -2032,52 +3042,12 @@
2032
3042
  */
2033
3043
  levelIsConstant: true,
2034
3044
  /**
2035
- * Options for the button appearing when drilling down in a treemap.
2036
- * Deprecated and replaced by
2037
- * [traverseUpButton](#plotOptions.treemap.traverseUpButton).
3045
+ * Options for the button appearing when traversing down in a treemap.
3046
+ *
3047
+ * Since v9.3.3 the `traverseUpButton` is replaced by `breadcrumbs`.
2038
3048
  *
2039
3049
  * @deprecated
2040
3050
  */
2041
- drillUpButton: {
2042
- /**
2043
- * The position of the button.
2044
- *
2045
- * @deprecated
2046
- */
2047
- position: {
2048
- /**
2049
- * Vertical alignment of the button.
2050
- *
2051
- * @deprecated
2052
- * @type {Highcharts.VerticalAlignValue}
2053
- * @default top
2054
- * @product highcharts
2055
- * @apioption plotOptions.treemap.drillUpButton.position.verticalAlign
2056
- */
2057
- /**
2058
- * Horizontal alignment of the button.
2059
- *
2060
- * @deprecated
2061
- * @type {Highcharts.AlignValue}
2062
- */
2063
- align: 'right',
2064
- /**
2065
- * Horizontal offset of the button.
2066
- *
2067
- * @deprecated
2068
- */
2069
- x: -10,
2070
- /**
2071
- * Vertical offset of the button.
2072
- *
2073
- * @deprecated
2074
- */
2075
- y: 10
2076
- }
2077
- },
2078
- /**
2079
- * Options for the button appearing when traversing down in a treemap.
2080
- */
2081
3051
  traverseUpButton: {
2082
3052
  /**
2083
3053
  * The position of the button.
@@ -2238,7 +3208,7 @@
2238
3208
  *
2239
3209
  * @type {Highcharts.ColorString}
2240
3210
  */
2241
- borderColor: "#e6e6e6" /* neutralColor10 */,
3211
+ borderColor: "#e6e6e6" /* Palette.neutralColor10 */,
2242
3212
  /**
2243
3213
  * The width of the border surrounding each tree map item.
2244
3214
  */
@@ -2267,7 +3237,7 @@
2267
3237
  /**
2268
3238
  * The border color for the hovered state.
2269
3239
  */
2270
- borderColor: "#999999" /* neutralColor40 */,
3240
+ borderColor: "#999999" /* Palette.neutralColor40 */,
2271
3241
  /**
2272
3242
  * Brightness for the hovered point. Defaults to 0 if the
2273
3243
  * heatmap series is loaded first, otherwise 0.1.
@@ -2298,6 +3268,7 @@
2298
3268
  }(ScatterSeries));
2299
3269
  extend(TreemapSeries.prototype, {
2300
3270
  buildKDTree: noop,
3271
+ colorAttribs: ColorMapComposition.seriesMembers.colorAttribs,
2301
3272
  colorKey: 'colorValue',
2302
3273
  directTouch: true,
2303
3274
  drawLegendSymbol: LegendSymbol.drawRectangle,
@@ -2312,6 +3283,7 @@
2312
3283
  recursive: TreemapUtilities.recursive
2313
3284
  }
2314
3285
  });
3286
+ ColorMapComposition.compose(TreemapSeries);
2315
3287
  SeriesRegistry.registerSeriesType('treemap', TreemapSeries);
2316
3288
  /* *
2317
3289
  *
@@ -2409,8 +3381,10 @@
2409
3381
 
2410
3382
  return TreemapSeries;
2411
3383
  });
2412
- _registerModule(_modules, 'masters/modules/treemap.src.js', [], function () {
3384
+ _registerModule(_modules, 'masters/modules/treemap.src.js', [_modules['Core/Globals.js'], _modules['Extensions/Breadcrumbs.js']], function (Highcharts, Breadcrumbs) {
2413
3385
 
3386
+ var G = Highcharts;
3387
+ G.Breadcrumbs = Breadcrumbs;
2414
3388
 
2415
3389
  });
2416
3390
  }));