highcharts 9.3.1 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (862) hide show
  1. package/bower.json +1 -1
  2. package/css/annotations/popup.css +1 -1
  3. package/css/highcharts.css +21 -4
  4. package/css/highcharts.scss +18 -3
  5. package/css/stocktools/gui.css +1 -1
  6. package/css/themes/dark-unica.css +21 -4
  7. package/css/themes/grid-light.css +21 -4
  8. package/css/themes/sand-signika.css +21 -4
  9. package/es-modules/Accessibility/A11yI18n.js +1 -5
  10. package/es-modules/Accessibility/Accessibility.js +12 -6
  11. package/es-modules/Accessibility/AccessibilityComponent.js +1 -1
  12. package/es-modules/Accessibility/Components/AnnotationsA11y.js +9 -5
  13. package/es-modules/Accessibility/Components/ContainerComponent.js +1 -1
  14. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +8 -19
  15. package/es-modules/Accessibility/Components/LegendComponent.js +196 -98
  16. package/es-modules/Accessibility/Components/MenuComponent.js +16 -15
  17. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +11 -14
  18. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +22 -12
  19. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +9 -5
  20. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +3 -2
  21. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +19 -44
  22. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +77 -56
  23. package/es-modules/Accessibility/Components/ZoomComponent.js +148 -67
  24. package/es-modules/Accessibility/FocusBorder.js +0 -5
  25. package/es-modules/Accessibility/HighContrastMode.js +4 -3
  26. package/es-modules/Accessibility/KeyboardNavigation.js +117 -101
  27. package/es-modules/Accessibility/Options/DeprecatedOptions.js +12 -5
  28. package/es-modules/Accessibility/Options/LangOptions.js +3 -3
  29. package/es-modules/Accessibility/ProxyElement.js +26 -12
  30. package/es-modules/Accessibility/ProxyProvider.js +10 -5
  31. package/es-modules/Accessibility/Utils/Announcer.js +2 -2
  32. package/es-modules/Accessibility/Utils/ChartUtilities.js +17 -32
  33. package/es-modules/Accessibility/Utils/HTMLUtilities.js +0 -12
  34. package/es-modules/Core/Animation/Fx.js +5 -14
  35. package/es-modules/Core/Axis/Axis.js +189 -111
  36. package/es-modules/Core/Axis/Axis3D.js +10 -4
  37. package/es-modules/Core/Axis/BrokenAxis.js +17 -11
  38. package/es-modules/Core/Axis/Color/ColorAxis.js +28 -8
  39. package/es-modules/Core/Axis/Color/ColorAxisComposition.js +3 -3
  40. package/es-modules/Core/Axis/DateTimeAxis.js +3 -14
  41. package/es-modules/Core/Axis/GridAxis.js +34 -23
  42. package/es-modules/Core/Axis/NavigatorAxis.js +0 -5
  43. package/es-modules/Core/Axis/OrdinalAxis.js +83 -79
  44. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js +0 -5
  45. package/es-modules/Core/Axis/RadialAxis.js +7 -28
  46. package/es-modules/Core/Axis/ScrollbarAxis.js +18 -10
  47. package/es-modules/Core/Axis/StackingAxis.js +2 -1
  48. package/es-modules/Core/Axis/Tick.js +2 -4
  49. package/es-modules/Core/Axis/TreeGridAxis.js +26 -17
  50. package/es-modules/Core/Axis/TreeGridTick.js +15 -1
  51. package/es-modules/Core/Axis/WaterfallAxis.js +1 -1
  52. package/es-modules/Core/Axis/ZAxis.js +1 -1
  53. package/es-modules/Core/Chart/Chart.js +42 -44
  54. package/es-modules/Core/Chart/Chart3D.js +24 -21
  55. package/es-modules/Core/Chart/ChartDefaults.js +32 -11
  56. package/es-modules/Core/Chart/GanttChart.js +4 -4
  57. package/es-modules/Core/Chart/MapChart.js +4 -9
  58. package/es-modules/Core/Chart/StockChart.js +10 -23
  59. package/es-modules/Core/DefaultOptions.js +5 -2
  60. package/es-modules/Core/Geometry/CircleUtilities.js +2 -1
  61. package/es-modules/Core/Geometry/PolygonClip.js +84 -0
  62. package/es-modules/Core/Globals.js +4 -18
  63. package/es-modules/Core/HttpUtilities.js +18 -12
  64. package/es-modules/Core/Legend/Legend.js +22 -21
  65. package/es-modules/Core/Navigator.js +43 -28
  66. package/es-modules/Core/Pointer.js +28 -20
  67. package/es-modules/Core/Renderer/HTML/AST.js +88 -18
  68. package/es-modules/Core/Renderer/HTML/HTMLElement.js +4 -2
  69. package/es-modules/Core/Renderer/HTML/HTMLRenderer.js +8 -6
  70. package/es-modules/Core/Renderer/RendererUtilities.js +2 -2
  71. package/es-modules/Core/Renderer/SVG/SVGElement.js +33 -57
  72. package/es-modules/Core/Renderer/SVG/SVGElement3D.js +17 -5
  73. package/es-modules/Core/Renderer/SVG/SVGLabel.js +17 -8
  74. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +21 -28
  75. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +12 -5
  76. package/es-modules/Core/Renderer/SVG/TextBuilder.js +25 -17
  77. package/es-modules/Core/Responsive.js +2 -3
  78. package/es-modules/Core/Scrollbar.js +14 -12
  79. package/es-modules/Core/Series/DataLabel.js +26 -13
  80. package/es-modules/Core/Series/Point.js +19 -18
  81. package/es-modules/Core/Series/Series.js +77 -88
  82. package/es-modules/Core/Series/SeriesDefaults.js +9 -5
  83. package/es-modules/Core/Time.js +14 -11
  84. package/es-modules/Core/Tooltip.js +30 -64
  85. package/es-modules/Core/Utilities.js +33 -45
  86. package/es-modules/Data/DataConverter.js +0 -6
  87. package/es-modules/Data/DataSeriesConverter.js +9 -5
  88. package/es-modules/Data/DataTable.js +2 -1
  89. package/es-modules/Data/Modifiers/DataModifier.js +1 -1
  90. package/es-modules/Data/Parsers/CSVParser.js +3 -2
  91. package/es-modules/Data/Parsers/GoogleSheetsParser.js +5 -2
  92. package/es-modules/Data/Stores/CSVStore.js +2 -2
  93. package/es-modules/Data/Stores/DataStore.js +1 -1
  94. package/es-modules/Data/Stores/GoogleSheetsStore.js +3 -1
  95. package/es-modules/Data/Stores/HTMLTableStore.js +3 -1
  96. package/es-modules/Extensions/Annotations/Annotations.js +18 -10
  97. package/es-modules/Extensions/Annotations/ControlPoint.js +0 -2
  98. package/es-modules/Extensions/Annotations/Controllables/ControllableCircle.js +1 -1
  99. package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +1 -1
  100. package/es-modules/Extensions/Annotations/Controllables/ControllableImage.js +1 -1
  101. package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +3 -6
  102. package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +3 -2
  103. package/es-modules/Extensions/Annotations/Controllables/ControllableRect.js +1 -1
  104. package/es-modules/Extensions/Annotations/Mixins/ControllableMixin.js +6 -3
  105. package/es-modules/Extensions/Annotations/Mixins/EventEmitterMixin.js +0 -1
  106. package/es-modules/Extensions/Annotations/Mixins/MarkerMixin.js +5 -4
  107. package/es-modules/Extensions/Annotations/MockPoint.js +1 -1
  108. package/es-modules/Extensions/Annotations/NavigationBindings.js +34 -29
  109. package/es-modules/Extensions/Annotations/Popup.js +40 -32
  110. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +5 -3
  111. package/es-modules/Extensions/Annotations/Types/CrookedLine.js +4 -2
  112. package/es-modules/Extensions/Annotations/Types/ElliottWave.js +1 -1
  113. package/es-modules/Extensions/Annotations/Types/Measure.js +15 -11
  114. package/es-modules/Extensions/Annotations/Types/Pitchfork.js +2 -1
  115. package/es-modules/Extensions/Annotations/Types/TimeCycles.js +8 -4
  116. package/es-modules/Extensions/Annotations/Types/Tunnel.js +10 -5
  117. package/es-modules/Extensions/Boost/BoostInit.js +6 -1
  118. package/es-modules/Extensions/Boost/BoostOptions.js +26 -0
  119. package/es-modules/Extensions/Boost/BoostOverrides.js +3 -9
  120. package/es-modules/Extensions/Boost/BoostUtils.js +0 -6
  121. package/es-modules/Extensions/Boost/Boostables.js +1 -0
  122. package/es-modules/Extensions/Boost/WGLRenderer.js +64 -49
  123. package/es-modules/Extensions/Boost/WGLShader.js +13 -11
  124. package/es-modules/Extensions/Boost/WGLVBuffer.js +4 -7
  125. package/es-modules/Extensions/Breadcrumbs.js +874 -0
  126. package/es-modules/Extensions/Data.js +30 -62
  127. package/es-modules/Extensions/DataGrouping.js +27 -17
  128. package/es-modules/Extensions/DraggablePoints.js +16 -15
  129. package/es-modules/Extensions/Drilldown.js +148 -90
  130. package/es-modules/Extensions/ExportData.js +6 -5
  131. package/es-modules/Extensions/Exporting/Exporting.js +32 -44
  132. package/es-modules/Extensions/Exporting/ExportingDefaults.js +49 -1
  133. package/es-modules/Extensions/FullScreen.js +4 -3
  134. package/es-modules/Extensions/GeoJSON.js +152 -127
  135. package/es-modules/Extensions/MarkerClusters.js +37 -21
  136. package/es-modules/Extensions/Math3D.js +4 -4
  137. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +133 -46
  138. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  139. package/es-modules/Extensions/Oldie/Oldie.js +13 -77
  140. package/es-modules/Extensions/Oldie/VMLAxis3D.js +5 -1
  141. package/es-modules/Extensions/OverlappingDataLabels.js +10 -6
  142. package/es-modules/Extensions/Pane.js +6 -6
  143. package/es-modules/Extensions/ParallelCoordinates.js +5 -3
  144. package/es-modules/Extensions/PatternFill.js +17 -11
  145. package/es-modules/Extensions/Polar.js +6 -3
  146. package/es-modules/Extensions/PriceIndication.js +2 -1
  147. package/es-modules/Extensions/RangeSelector.js +19 -55
  148. package/es-modules/Extensions/ScrollablePlotArea.js +7 -3
  149. package/es-modules/Extensions/SeriesLabel.js +1 -1
  150. package/es-modules/Extensions/Sonification/ChartSonify.js +32 -26
  151. package/es-modules/Extensions/Sonification/Instrument.js +12 -15
  152. package/es-modules/Extensions/Sonification/PointSonify.js +12 -8
  153. package/es-modules/Extensions/Sonification/SeriesSonify.js +33 -18
  154. package/es-modules/Extensions/Sonification/SignalHandler.js +4 -6
  155. package/es-modules/Extensions/Sonification/Sonification.js +1 -1
  156. package/es-modules/Extensions/Sonification/SonificationUtilities.js +11 -7
  157. package/es-modules/Extensions/Sonification/Timeline.js +2 -7
  158. package/es-modules/Extensions/Sonification/TimelineEvent.js +0 -1
  159. package/es-modules/Extensions/Sonification/TimelinePath.js +8 -8
  160. package/es-modules/Extensions/Stacking.js +8 -25
  161. package/es-modules/Extensions/Themes/BrandDark.js +293 -0
  162. package/es-modules/Extensions/Themes/BrandLight.js +259 -0
  163. package/es-modules/Extensions/Themes/DarkUnica.js +4 -2
  164. package/es-modules/Extensions/Themes/Grid.js +4 -2
  165. package/es-modules/Extensions/Themes/GridLight.js +4 -2
  166. package/es-modules/Extensions/Themes/HighContrastDark.js +10 -10
  167. package/es-modules/Extensions/Themes/HighContrastLight.js +10 -10
  168. package/es-modules/Gantt/Connection.js +2 -2
  169. package/es-modules/Gantt/Pathfinder.js +6 -5
  170. package/es-modules/Gantt/PathfinderAlgorithms.js +12 -12
  171. package/es-modules/Maps/MapNavigation.js +54 -14
  172. package/es-modules/Maps/MapPointer.js +18 -1
  173. package/es-modules/Maps/MapSymbols.js +23 -3
  174. package/es-modules/Maps/MapUtilities.js +56 -0
  175. package/es-modules/Maps/MapView.js +606 -135
  176. package/es-modules/Maps/MapViewInsetsOptionsDefault.js +148 -0
  177. package/es-modules/Maps/MapViewOptionsDefault.js +58 -20
  178. package/es-modules/Maps/Projection.js +169 -77
  179. package/es-modules/Maps/Projections/EqualEarth.js +15 -6
  180. package/es-modules/Maps/Projections/LambertConformalConic.js +27 -19
  181. package/es-modules/Maps/Projections/Miller.js +23 -10
  182. package/es-modules/Maps/Projections/Orthographic.js +21 -10
  183. package/es-modules/Maps/Projections/WebMercator.js +25 -13
  184. package/es-modules/Series/ArcDiagram/ArcDiagramPoint.js +77 -0
  185. package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +581 -0
  186. package/es-modules/Series/Area/AreaSeries.js +13 -13
  187. package/es-modules/Series/Area3DSeries.js +4 -2
  188. package/es-modules/Series/AreaRange/AreaRangeSeries.js +24 -12
  189. package/es-modules/Series/Bellcurve/BellcurveSeries.js +2 -1
  190. package/es-modules/Series/Bubble/BubbleLegendItem.js +2 -12
  191. package/es-modules/Series/Candlestick/CandlestickSeries.js +0 -1
  192. package/es-modules/Series/ColorMapMixin.js +84 -0
  193. package/es-modules/Series/Column/ColumnSeries.js +20 -17
  194. package/es-modules/Series/Column3D/Column3DComposition.js +1 -2
  195. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +5 -2
  196. package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +2 -1
  197. package/es-modules/Series/Cylinder/CylinderComposition.js +36 -4
  198. package/es-modules/Series/DataModifyComposition.js +1 -0
  199. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +3 -3
  200. package/es-modules/Series/DrawPointComposition.js +7 -4
  201. package/es-modules/Series/Dumbbell/DumbbellPoint.js +0 -1
  202. package/es-modules/Series/Dumbbell/DumbbellSeries.js +0 -3
  203. package/es-modules/Series/Flags/FlagsSymbols.js +2 -2
  204. package/es-modules/Series/Funnel3D/Funnel3DComposition.js +14 -8
  205. package/es-modules/Series/Funnel3D/Funnel3DSeries.js +2 -1
  206. package/es-modules/Series/Gantt/GanttPoint.js +1 -1
  207. package/es-modules/Series/Gantt/GanttSeries.js +3 -1
  208. package/es-modules/Series/HLC/HLCSeries.js +1 -6
  209. package/es-modules/Series/Heatmap/HeatmapPoint.js +10 -10
  210. package/es-modules/Series/Heatmap/HeatmapSeries.js +9 -10
  211. package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +8 -6
  212. package/es-modules/Series/Histogram/HistogramSeries.js +4 -4
  213. package/es-modules/Series/HollowCandlestick/HollowCandlestickPoint.js +1 -4
  214. package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +19 -20
  215. package/es-modules/Series/Item/ItemSeries.js +4 -5
  216. package/es-modules/Series/Lollipop/LollipopSeries.js +1 -1
  217. package/es-modules/Series/Map/MapPoint.js +30 -1
  218. package/es-modules/Series/Map/MapSeries.js +216 -190
  219. package/es-modules/Series/MapBubble/MapBubblePoint.js +16 -24
  220. package/es-modules/Series/MapBubble/MapBubbleSeries.js +11 -0
  221. package/es-modules/Series/MapLine/MapLineSeries.js +0 -4
  222. package/es-modules/Series/MapPoint/MapPointPoint.js +2 -8
  223. package/es-modules/Series/MapPoint/MapPointSeries.js +36 -14
  224. package/es-modules/Series/Networkgraph/DraggableNodes.js +0 -4
  225. package/es-modules/Series/Networkgraph/Integrations.js +8 -22
  226. package/es-modules/Series/Networkgraph/Networkgraph.js +1 -5
  227. package/es-modules/Series/Networkgraph/QuadTree.js +1 -3
  228. package/es-modules/Series/NodesComposition.js +60 -12
  229. package/es-modules/Series/OHLC/OHLCPoint.js +0 -1
  230. package/es-modules/Series/OHLC/OHLCSeries.js +8 -1
  231. package/es-modules/Series/Organization/OrganizationPoint.js +68 -2
  232. package/es-modules/Series/Organization/OrganizationSeries.js +81 -25
  233. package/es-modules/Series/PackedBubble/PackedBubbleComposition.js +1 -0
  234. package/es-modules/Series/PackedBubble/PackedBubblePoint.js +1 -1
  235. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +2 -4
  236. package/es-modules/Series/Pie/PiePoint.js +14 -7
  237. package/es-modules/Series/Pie/PieSeries.js +1 -1
  238. package/es-modules/Series/Pie3D/Pie3DComposition.js +2 -1
  239. package/es-modules/Series/Pie3D/Pie3DPoint.js +2 -1
  240. package/es-modules/Series/Pie3D/Pie3DSeries.js +20 -1
  241. package/es-modules/Series/Pyramid3D/Pyramid3DSeries.js +2 -1
  242. package/es-modules/Series/Sankey/SankeyColumnComposition.js +193 -0
  243. package/es-modules/Series/Sankey/SankeyPoint.js +37 -1
  244. package/es-modules/Series/Sankey/SankeySeries.js +10 -126
  245. package/es-modules/Series/Scatter/ScatterSeries.js +1 -1
  246. package/es-modules/Series/SolidGauge/SolidGaugeComposition.js +3 -1
  247. package/es-modules/Series/Spline/SplineSeries.js +0 -8
  248. package/es-modules/Series/Sunburst/SunburstSeries.js +15 -4
  249. package/es-modules/Series/Sunburst/SunburstUtilities.js +3 -2
  250. package/es-modules/Series/Tilemap/TilemapPoint.js +0 -2
  251. package/es-modules/Series/Tilemap/TilemapShapes.js +0 -7
  252. package/es-modules/Series/TreeUtilities.js +2 -2
  253. package/es-modules/Series/Treemap/TreemapSeries.js +104 -99
  254. package/es-modules/Series/Variwide/VariwideSeries.js +5 -1
  255. package/es-modules/Series/Venn/VennSeries.js +6 -9
  256. package/es-modules/Series/Venn/VennUtils.js +8 -7
  257. package/es-modules/Series/Waterfall/WaterfallSeries.js +8 -3
  258. package/es-modules/Series/Wordcloud/WordcloudSeries.js +2 -2
  259. package/es-modules/Series/Wordcloud/WordcloudUtils.js +6 -10
  260. package/es-modules/Series/XRange/XRangePoint.js +6 -12
  261. package/es-modules/Series/XRange/XRangeSeries.js +4 -20
  262. package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +12 -0
  263. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +1 -0
  264. package/es-modules/Stock/Indicators/BB/BBIndicator.js +12 -0
  265. package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +35 -15
  266. package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +9 -5
  267. package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +2 -1
  268. package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +6 -6
  269. package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +12 -0
  270. package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +8 -3
  271. package/es-modules/Stock/Indicators/LinearRegression/LinearRegression.js +30 -12
  272. package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +1 -1
  273. package/es-modules/Stock/Indicators/MultipleLinesComposition.js +70 -6
  274. package/es-modules/Stock/Indicators/PC/PCIndicator.js +11 -0
  275. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +2 -1
  276. package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +2 -1
  277. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +11 -5
  278. package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +3 -1
  279. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +3 -3
  280. package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +19 -7
  281. package/es-modules/Stock/StockToolsBindings.js +13 -6
  282. package/es-modules/Stock/StockToolsGui.js +34 -23
  283. package/es-modules/masters/highcharts-3d.src.js +1 -1
  284. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  285. package/es-modules/masters/highcharts-more.src.js +1 -1
  286. package/es-modules/masters/highcharts.src.js +1 -1
  287. package/es-modules/masters/highmaps.src.js +1 -1
  288. package/es-modules/masters/highstock.src.js +1 -1
  289. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  290. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  291. package/es-modules/masters/indicators/ao.src.js +1 -1
  292. package/es-modules/masters/indicators/apo.src.js +1 -1
  293. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  294. package/es-modules/masters/indicators/aroon.src.js +1 -1
  295. package/es-modules/masters/indicators/atr.src.js +1 -1
  296. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  297. package/es-modules/masters/indicators/cci.src.js +1 -1
  298. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  299. package/es-modules/masters/indicators/cmf.src.js +1 -1
  300. package/es-modules/masters/indicators/cmo.src.js +1 -1
  301. package/es-modules/masters/indicators/dema.src.js +1 -1
  302. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  303. package/es-modules/masters/indicators/dmi.src.js +1 -1
  304. package/es-modules/masters/indicators/dpo.src.js +1 -1
  305. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  306. package/es-modules/masters/indicators/indicators-all.src.js +1 -1
  307. package/es-modules/masters/indicators/indicators.src.js +1 -1
  308. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  309. package/es-modules/masters/indicators/klinger.src.js +1 -1
  310. package/es-modules/masters/indicators/macd.src.js +1 -1
  311. package/es-modules/masters/indicators/mfi.src.js +1 -1
  312. package/es-modules/masters/indicators/momentum.src.js +1 -1
  313. package/es-modules/masters/indicators/natr.src.js +1 -1
  314. package/es-modules/masters/indicators/obv.src.js +1 -1
  315. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  316. package/es-modules/masters/indicators/ppo.src.js +1 -1
  317. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  318. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  319. package/es-modules/masters/indicators/psar.src.js +1 -1
  320. package/es-modules/masters/indicators/regressions.src.js +1 -1
  321. package/es-modules/masters/indicators/roc.src.js +1 -1
  322. package/es-modules/masters/indicators/rsi.src.js +1 -1
  323. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  324. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  325. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  326. package/es-modules/masters/indicators/tema.src.js +1 -1
  327. package/es-modules/masters/indicators/trendline.src.js +1 -1
  328. package/es-modules/masters/indicators/trix.src.js +1 -1
  329. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  330. package/es-modules/masters/indicators/vwap.src.js +1 -1
  331. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  332. package/es-modules/masters/indicators/wma.src.js +1 -1
  333. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  334. package/es-modules/masters/modules/accessibility.src.js +2 -2
  335. package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
  336. package/es-modules/masters/modules/annotations.src.js +1 -1
  337. package/es-modules/masters/modules/arc-diagram.src.js +14 -0
  338. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  339. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  340. package/es-modules/masters/modules/boost.src.js +1 -1
  341. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  342. package/es-modules/masters/modules/bullet.src.js +1 -1
  343. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  344. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  345. package/es-modules/masters/modules/cylinder.src.js +1 -1
  346. package/es-modules/masters/modules/data.src.js +1 -1
  347. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  348. package/es-modules/masters/modules/debugger.src.js +1 -1
  349. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  350. package/es-modules/masters/modules/dotplot.src.js +1 -1
  351. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  352. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  353. package/es-modules/masters/modules/drilldown.src.js +2 -1
  354. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  355. package/es-modules/masters/modules/export-data.src.js +1 -1
  356. package/es-modules/masters/modules/exporting.src.js +1 -1
  357. package/es-modules/masters/modules/full-screen.src.js +1 -1
  358. package/es-modules/masters/modules/funnel.src.js +1 -1
  359. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  360. package/es-modules/masters/modules/gantt.src.js +1 -1
  361. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  362. package/es-modules/masters/modules/heatmap.src.js +1 -1
  363. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  364. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  365. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  366. package/es-modules/masters/modules/item-series.src.js +1 -1
  367. package/es-modules/masters/modules/lollipop.src.js +1 -1
  368. package/es-modules/masters/modules/map.src.js +5 -1
  369. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  370. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  371. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  372. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  373. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  374. package/es-modules/masters/modules/oldie.src.js +1 -1
  375. package/es-modules/masters/modules/organization.src.js +1 -1
  376. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  377. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  378. package/es-modules/masters/modules/pareto.src.js +1 -1
  379. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  380. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  381. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  382. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  383. package/es-modules/masters/modules/sankey.src.js +1 -1
  384. package/es-modules/masters/modules/series-label.src.js +1 -1
  385. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  386. package/es-modules/masters/modules/sonification.src.js +1 -1
  387. package/es-modules/masters/modules/static-scale.src.js +1 -1
  388. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  389. package/es-modules/masters/modules/stock.src.js +1 -1
  390. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  391. package/es-modules/masters/modules/sunburst.src.js +1 -1
  392. package/es-modules/masters/modules/tilemap.src.js +1 -1
  393. package/es-modules/masters/modules/timeline.src.js +1 -1
  394. package/es-modules/masters/modules/treegrid.src.js +1 -1
  395. package/es-modules/masters/modules/treemap.src.js +5 -1
  396. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  397. package/es-modules/masters/modules/variwide.src.js +1 -1
  398. package/es-modules/masters/modules/vector.src.js +1 -1
  399. package/es-modules/masters/modules/venn.src.js +1 -1
  400. package/es-modules/masters/modules/windbarb.src.js +1 -1
  401. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  402. package/es-modules/masters/modules/xrange.src.js +1 -1
  403. package/es-modules/masters/themes/avocado.src.js +1 -1
  404. package/es-modules/masters/themes/brand-dark.src.js +14 -0
  405. package/es-modules/masters/themes/brand-light.src.js +14 -0
  406. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  407. package/es-modules/masters/themes/dark-green.src.js +1 -1
  408. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  409. package/es-modules/masters/themes/gray.src.js +1 -1
  410. package/es-modules/masters/themes/grid-light.src.js +1 -1
  411. package/es-modules/masters/themes/grid.src.js +1 -1
  412. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  413. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  414. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  415. package/es-modules/masters/themes/skies.src.js +1 -1
  416. package/es-modules/masters/themes/sunset.src.js +1 -1
  417. package/highcharts-3d.js +99 -98
  418. package/highcharts-3d.js.map +1 -1
  419. package/highcharts-3d.src.js +114 -54
  420. package/highcharts-gantt.js +805 -800
  421. package/highcharts-gantt.js.map +1 -1
  422. package/highcharts-gantt.src.js +1102 -973
  423. package/highcharts-more.js +195 -194
  424. package/highcharts-more.js.map +1 -1
  425. package/highcharts-more.src.js +85 -104
  426. package/highcharts.d.ts +8196 -2661
  427. package/highcharts.js +590 -585
  428. package/highcharts.js.map +1 -1
  429. package/highcharts.src.d.ts +8196 -2661
  430. package/highcharts.src.js +872 -745
  431. package/highmaps.js +757 -727
  432. package/highmaps.js.map +1 -1
  433. package/highmaps.src.js +3983 -2601
  434. package/highstock.js +792 -788
  435. package/highstock.js.map +1 -1
  436. package/highstock.src.js +1118 -1001
  437. package/indicators/acceleration-bands.d.ts +17 -1
  438. package/indicators/acceleration-bands.js +12 -10
  439. package/indicators/acceleration-bands.js.map +1 -1
  440. package/indicators/acceleration-bands.src.d.ts +17 -1
  441. package/indicators/acceleration-bands.src.js +98 -7
  442. package/indicators/accumulation-distribution.js +5 -5
  443. package/indicators/accumulation-distribution.js.map +1 -1
  444. package/indicators/accumulation-distribution.src.js +11 -2
  445. package/indicators/ao.js +6 -6
  446. package/indicators/ao.js.map +1 -1
  447. package/indicators/ao.src.js +11 -2
  448. package/indicators/apo.js +5 -5
  449. package/indicators/apo.js.map +1 -1
  450. package/indicators/apo.src.js +11 -2
  451. package/indicators/aroon-oscillator.d.ts +17 -1
  452. package/indicators/aroon-oscillator.js +10 -9
  453. package/indicators/aroon-oscillator.js.map +1 -1
  454. package/indicators/aroon-oscillator.src.d.ts +17 -1
  455. package/indicators/aroon-oscillator.src.js +86 -7
  456. package/indicators/aroon.d.ts +17 -1
  457. package/indicators/aroon.js +11 -9
  458. package/indicators/aroon.js.map +1 -1
  459. package/indicators/aroon.src.d.ts +17 -1
  460. package/indicators/aroon.src.js +87 -7
  461. package/indicators/atr.js +5 -5
  462. package/indicators/atr.js.map +1 -1
  463. package/indicators/atr.src.js +11 -2
  464. package/indicators/bollinger-bands.d.ts +17 -1
  465. package/indicators/bollinger-bands.js +12 -10
  466. package/indicators/bollinger-bands.js.map +1 -1
  467. package/indicators/bollinger-bands.src.d.ts +17 -1
  468. package/indicators/bollinger-bands.src.js +98 -7
  469. package/indicators/cci.js +5 -5
  470. package/indicators/cci.js.map +1 -1
  471. package/indicators/cci.src.js +11 -2
  472. package/indicators/chaikin.js +8 -8
  473. package/indicators/chaikin.js.map +1 -1
  474. package/indicators/chaikin.src.js +11 -2
  475. package/indicators/cmf.js +6 -6
  476. package/indicators/cmf.js.map +1 -1
  477. package/indicators/cmf.src.js +46 -17
  478. package/indicators/cmo.js +5 -5
  479. package/indicators/cmo.js.map +1 -1
  480. package/indicators/cmo.src.js +11 -2
  481. package/indicators/dema.js +5 -5
  482. package/indicators/dema.js.map +1 -1
  483. package/indicators/dema.src.js +11 -2
  484. package/indicators/disparity-index.js +6 -6
  485. package/indicators/disparity-index.js.map +1 -1
  486. package/indicators/disparity-index.src.js +13 -3
  487. package/indicators/dmi.js +12 -11
  488. package/indicators/dmi.js.map +1 -1
  489. package/indicators/dmi.src.js +95 -12
  490. package/indicators/dpo.js +5 -5
  491. package/indicators/dpo.js.map +1 -1
  492. package/indicators/dpo.src.js +11 -2
  493. package/indicators/ema.js +2 -1
  494. package/indicators/ema.js.map +1 -1
  495. package/indicators/ema.src.js +10 -1
  496. package/indicators/ichimoku-kinko-hyo.js +16 -16
  497. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  498. package/indicators/ichimoku-kinko-hyo.src.js +17 -8
  499. package/indicators/indicators-all.d.ts +17 -1
  500. package/indicators/indicators-all.js +199 -197
  501. package/indicators/indicators-all.js.map +1 -1
  502. package/indicators/indicators-all.src.d.ts +17 -1
  503. package/indicators/indicators-all.src.js +266 -69
  504. package/indicators/indicators.js +13 -12
  505. package/indicators/indicators.js.map +1 -1
  506. package/indicators/indicators.src.js +23 -8
  507. package/indicators/keltner-channels.d.ts +17 -1
  508. package/indicators/keltner-channels.js +12 -10
  509. package/indicators/keltner-channels.js.map +1 -1
  510. package/indicators/keltner-channels.src.d.ts +17 -1
  511. package/indicators/keltner-channels.src.js +98 -7
  512. package/indicators/klinger.js +14 -12
  513. package/indicators/klinger.js.map +1 -1
  514. package/indicators/klinger.src.js +94 -10
  515. package/indicators/macd.js +12 -11
  516. package/indicators/macd.js.map +1 -1
  517. package/indicators/macd.src.js +12 -3
  518. package/indicators/mfi.js +6 -6
  519. package/indicators/mfi.js.map +1 -1
  520. package/indicators/mfi.src.js +11 -2
  521. package/indicators/momentum.js +5 -5
  522. package/indicators/momentum.js.map +1 -1
  523. package/indicators/momentum.src.js +11 -2
  524. package/indicators/natr.js +5 -4
  525. package/indicators/natr.js.map +1 -1
  526. package/indicators/natr.src.js +11 -2
  527. package/indicators/obv.js +5 -5
  528. package/indicators/obv.js.map +1 -1
  529. package/indicators/obv.src.js +11 -2
  530. package/indicators/pivot-points.js +11 -11
  531. package/indicators/pivot-points.js.map +1 -1
  532. package/indicators/pivot-points.src.js +13 -3
  533. package/indicators/ppo.js +5 -5
  534. package/indicators/ppo.js.map +1 -1
  535. package/indicators/ppo.src.js +11 -2
  536. package/indicators/price-channel.d.ts +17 -1
  537. package/indicators/price-channel.js +11 -9
  538. package/indicators/price-channel.js.map +1 -1
  539. package/indicators/price-channel.src.d.ts +17 -1
  540. package/indicators/price-channel.src.js +97 -7
  541. package/indicators/price-envelopes.js +8 -8
  542. package/indicators/price-envelopes.js.map +1 -1
  543. package/indicators/price-envelopes.src.js +11 -2
  544. package/indicators/psar.js +7 -6
  545. package/indicators/psar.js.map +1 -1
  546. package/indicators/psar.src.js +11 -2
  547. package/indicators/regressions.js +12 -12
  548. package/indicators/regressions.js.map +1 -1
  549. package/indicators/regressions.src.js +41 -14
  550. package/indicators/roc.js +5 -5
  551. package/indicators/roc.js.map +1 -1
  552. package/indicators/roc.src.js +11 -2
  553. package/indicators/rsi.js +6 -5
  554. package/indicators/rsi.js.map +1 -1
  555. package/indicators/rsi.src.js +13 -3
  556. package/indicators/slow-stochastic.js +5 -5
  557. package/indicators/slow-stochastic.js.map +1 -1
  558. package/indicators/slow-stochastic.src.js +11 -2
  559. package/indicators/stochastic.d.ts +17 -1
  560. package/indicators/stochastic.js +12 -10
  561. package/indicators/stochastic.js.map +1 -1
  562. package/indicators/stochastic.src.d.ts +17 -1
  563. package/indicators/stochastic.src.js +89 -8
  564. package/indicators/supertrend.js +10 -10
  565. package/indicators/supertrend.js.map +1 -1
  566. package/indicators/supertrend.src.js +11 -2
  567. package/indicators/tema.js +6 -6
  568. package/indicators/tema.js.map +1 -1
  569. package/indicators/tema.src.js +11 -2
  570. package/indicators/trendline.js +5 -5
  571. package/indicators/trendline.js.map +1 -1
  572. package/indicators/trendline.src.js +11 -2
  573. package/indicators/trix.js +4 -4
  574. package/indicators/trix.js.map +1 -1
  575. package/indicators/trix.src.js +11 -2
  576. package/indicators/volume-by-price.js +17 -17
  577. package/indicators/volume-by-price.js.map +1 -1
  578. package/indicators/volume-by-price.src.js +14 -5
  579. package/indicators/vwap.js +5 -5
  580. package/indicators/vwap.js.map +1 -1
  581. package/indicators/vwap.src.js +30 -9
  582. package/indicators/williams-r.js +6 -5
  583. package/indicators/williams-r.js.map +1 -1
  584. package/indicators/williams-r.src.js +11 -2
  585. package/indicators/wma.js +5 -5
  586. package/indicators/wma.js.map +1 -1
  587. package/indicators/wma.src.js +11 -2
  588. package/indicators/zigzag.js +6 -6
  589. package/indicators/zigzag.js.map +1 -1
  590. package/indicators/zigzag.src.js +11 -2
  591. package/lib/jspdf.js +299 -184
  592. package/lib/jspdf.src.js +25266 -18067
  593. package/lib/svg2pdf.js +35 -31
  594. package/lib/svg2pdf.src.js +5721 -4179
  595. package/modules/accessibility.d.ts +0 -35
  596. package/modules/accessibility.js +232 -226
  597. package/modules/accessibility.js.map +1 -1
  598. package/modules/accessibility.src.d.ts +0 -35
  599. package/modules/accessibility.src.js +792 -613
  600. package/modules/annotations-advanced.js +175 -175
  601. package/modules/annotations-advanced.js.map +1 -1
  602. package/modules/annotations-advanced.src.js +175 -129
  603. package/modules/annotations.js +124 -124
  604. package/modules/annotations.js.map +1 -1
  605. package/modules/annotations.src.js +130 -102
  606. package/modules/arc-diagram.js +25 -0
  607. package/modules/arc-diagram.js.map +1 -0
  608. package/modules/arc-diagram.src.js +770 -0
  609. package/modules/arrow-symbols.js +4 -3
  610. package/modules/arrow-symbols.js.map +1 -1
  611. package/modules/arrow-symbols.src.js +11 -2
  612. package/modules/boost-canvas.js +15 -15
  613. package/modules/boost-canvas.js.map +1 -1
  614. package/modules/boost-canvas.src.js +11 -2
  615. package/modules/boost.js +80 -79
  616. package/modules/boost.js.map +1 -1
  617. package/modules/boost.src.js +103 -85
  618. package/modules/broken-axis.js +13 -13
  619. package/modules/broken-axis.js.map +1 -1
  620. package/modules/broken-axis.src.js +28 -13
  621. package/modules/bullet.js +9 -9
  622. package/modules/bullet.js.map +1 -1
  623. package/modules/bullet.src.js +11 -2
  624. package/modules/coloraxis.js +24 -24
  625. package/modules/coloraxis.js.map +1 -1
  626. package/modules/coloraxis.src.js +42 -13
  627. package/modules/current-date-indicator.js +5 -4
  628. package/modules/current-date-indicator.js.map +1 -1
  629. package/modules/current-date-indicator.src.js +11 -2
  630. package/modules/cylinder.js +11 -11
  631. package/modules/cylinder.js.map +1 -1
  632. package/modules/cylinder.src.js +47 -6
  633. package/modules/data.d.ts +6 -6
  634. package/modules/data.js +34 -33
  635. package/modules/data.js.map +1 -1
  636. package/modules/data.src.d.ts +6 -6
  637. package/modules/data.src.js +68 -84
  638. package/modules/datagrouping.js +21 -20
  639. package/modules/datagrouping.js.map +1 -1
  640. package/modules/datagrouping.src.js +38 -19
  641. package/modules/debugger.js +6 -6
  642. package/modules/debugger.js.map +1 -1
  643. package/modules/debugger.src.js +11 -2
  644. package/modules/dependency-wheel.js +12 -11
  645. package/modules/dependency-wheel.js.map +1 -1
  646. package/modules/dependency-wheel.src.js +15 -6
  647. package/modules/dotplot.js +6 -6
  648. package/modules/dotplot.js.map +1 -1
  649. package/modules/dotplot.src.js +11 -2
  650. package/modules/drag-panes.js +10 -10
  651. package/modules/drag-panes.js.map +1 -1
  652. package/modules/drag-panes.src.js +11 -2
  653. package/modules/draggable-points.js +35 -34
  654. package/modules/draggable-points.js.map +1 -1
  655. package/modules/draggable-points.src.js +27 -17
  656. package/modules/drilldown.d.ts +19 -0
  657. package/modules/drilldown.js +37 -25
  658. package/modules/drilldown.js.map +1 -1
  659. package/modules/drilldown.src.d.ts +19 -0
  660. package/modules/drilldown.src.js +1091 -101
  661. package/modules/dumbbell.js +17 -17
  662. package/modules/dumbbell.js.map +1 -1
  663. package/modules/dumbbell.src.js +11 -6
  664. package/modules/export-data.js +22 -21
  665. package/modules/export-data.js.map +1 -1
  666. package/modules/export-data.src.js +17 -7
  667. package/modules/exporting.js +39 -39
  668. package/modules/exporting.js.map +1 -1
  669. package/modules/exporting.src.js +114 -62
  670. package/modules/full-screen.js +8 -7
  671. package/modules/full-screen.js.map +1 -1
  672. package/modules/full-screen.src.js +15 -5
  673. package/modules/funnel.js +12 -12
  674. package/modules/funnel.js.map +1 -1
  675. package/modules/funnel.src.js +11 -2
  676. package/modules/funnel3d.js +21 -21
  677. package/modules/funnel3d.js.map +1 -1
  678. package/modules/funnel3d.src.js +27 -11
  679. package/modules/gantt.js +217 -217
  680. package/modules/gantt.js.map +1 -1
  681. package/modules/gantt.src.js +241 -230
  682. package/modules/grid-axis.js +23 -23
  683. package/modules/grid-axis.js.map +1 -1
  684. package/modules/grid-axis.src.js +46 -27
  685. package/modules/heatmap.js +40 -39
  686. package/modules/heatmap.js.map +1 -1
  687. package/modules/heatmap.src.js +119 -117
  688. package/modules/heikinashi.js +8 -8
  689. package/modules/heikinashi.js.map +1 -1
  690. package/modules/heikinashi.src.js +19 -8
  691. package/modules/histogram-bellcurve.js +13 -13
  692. package/modules/histogram-bellcurve.js.map +1 -1
  693. package/modules/histogram-bellcurve.src.js +17 -7
  694. package/modules/hollowcandlestick.js +9 -9
  695. package/modules/hollowcandlestick.js.map +1 -1
  696. package/modules/hollowcandlestick.src.js +31 -26
  697. package/modules/item-series.js +12 -12
  698. package/modules/item-series.js.map +1 -1
  699. package/modules/item-series.src.js +16 -7
  700. package/modules/lollipop.js +7 -7
  701. package/modules/lollipop.js.map +1 -1
  702. package/modules/lollipop.src.js +12 -3
  703. package/modules/map.d.ts +82 -43
  704. package/modules/map.js +169 -144
  705. package/modules/map.js.map +1 -1
  706. package/modules/map.src.d.ts +82 -43
  707. package/modules/map.src.js +8003 -6739
  708. package/modules/marker-clusters.js +36 -36
  709. package/modules/marker-clusters.js.map +1 -1
  710. package/modules/marker-clusters.src.js +50 -24
  711. package/modules/networkgraph.d.ts +5 -0
  712. package/modules/networkgraph.js +49 -48
  713. package/modules/networkgraph.js.map +1 -1
  714. package/modules/networkgraph.src.d.ts +5 -0
  715. package/modules/networkgraph.src.js +87 -48
  716. package/modules/no-data-to-display.js +5 -5
  717. package/modules/no-data-to-display.js.map +1 -1
  718. package/modules/no-data-to-display.src.js +11 -2
  719. package/modules/offline-exporting.js +20 -18
  720. package/modules/offline-exporting.js.map +1 -1
  721. package/modules/offline-exporting.src.js +149 -53
  722. package/modules/oldie-polyfills.js +7 -7
  723. package/modules/oldie-polyfills.js.map +1 -1
  724. package/modules/oldie-polyfills.src.js +11 -2
  725. package/modules/oldie.js +30 -30
  726. package/modules/oldie.js.map +1 -1
  727. package/modules/oldie.src.js +29 -80
  728. package/modules/organization.js +16 -14
  729. package/modules/organization.js.map +1 -1
  730. package/modules/organization.src.js +168 -32
  731. package/modules/overlapping-datalabels.js +3 -2
  732. package/modules/overlapping-datalabels.js.map +1 -1
  733. package/modules/overlapping-datalabels.src.js +11 -2
  734. package/modules/parallel-coordinates.js +11 -11
  735. package/modules/parallel-coordinates.js.map +1 -1
  736. package/modules/parallel-coordinates.src.js +16 -5
  737. package/modules/pareto.js +7 -7
  738. package/modules/pareto.js.map +1 -1
  739. package/modules/pareto.src.js +11 -2
  740. package/modules/pathfinder.js +31 -31
  741. package/modules/pathfinder.js.map +1 -1
  742. package/modules/pathfinder.src.js +31 -21
  743. package/modules/pattern-fill.js +14 -14
  744. package/modules/pattern-fill.js.map +1 -1
  745. package/modules/pattern-fill.src.js +28 -13
  746. package/modules/price-indicator.js +5 -5
  747. package/modules/price-indicator.js.map +1 -1
  748. package/modules/price-indicator.src.js +13 -3
  749. package/modules/pyramid3d.js +4 -4
  750. package/modules/pyramid3d.js.map +1 -1
  751. package/modules/pyramid3d.src.js +13 -3
  752. package/modules/sankey.d.ts +5 -0
  753. package/modules/sankey.js +32 -29
  754. package/modules/sankey.js.map +1 -1
  755. package/modules/sankey.src.d.ts +5 -0
  756. package/modules/sankey.src.js +340 -156
  757. package/modules/series-label.js +18 -17
  758. package/modules/series-label.js.map +1 -1
  759. package/modules/series-label.src.js +12 -3
  760. package/modules/solid-gauge.js +10 -10
  761. package/modules/solid-gauge.js.map +1 -1
  762. package/modules/solid-gauge.src.js +27 -3
  763. package/modules/sonification.js +59 -59
  764. package/modules/sonification.js.map +1 -1
  765. package/modules/sonification.src.js +131 -104
  766. package/modules/static-scale.js +5 -4
  767. package/modules/static-scale.js.map +1 -1
  768. package/modules/static-scale.src.js +11 -2
  769. package/modules/stock-tools.js +107 -107
  770. package/modules/stock-tools.js.map +1 -1
  771. package/modules/stock-tools.src.js +137 -98
  772. package/modules/stock.js +162 -162
  773. package/modules/stock.js.map +1 -1
  774. package/modules/stock.src.js +257 -258
  775. package/modules/streamgraph.js +5 -4
  776. package/modules/streamgraph.js.map +1 -1
  777. package/modules/streamgraph.src.js +11 -2
  778. package/modules/sunburst.d.ts +3 -0
  779. package/modules/sunburst.js +73 -61
  780. package/modules/sunburst.js.map +1 -1
  781. package/modules/sunburst.src.d.ts +3 -0
  782. package/modules/sunburst.src.js +1128 -205
  783. package/modules/tilemap.js +17 -17
  784. package/modules/tilemap.js.map +1 -1
  785. package/modules/tilemap.src.js +11 -11
  786. package/modules/timeline.js +18 -18
  787. package/modules/timeline.js.map +1 -1
  788. package/modules/timeline.src.js +11 -2
  789. package/modules/treegrid.js +57 -56
  790. package/modules/treegrid.js.map +1 -1
  791. package/modules/treegrid.src.js +106 -58
  792. package/modules/treemap.d.ts +3 -0
  793. package/modules/treemap.js +53 -41
  794. package/modules/treemap.js.map +1 -1
  795. package/modules/treemap.src.d.ts +3 -0
  796. package/modules/treemap.src.js +1113 -200
  797. package/modules/variable-pie.js +9 -9
  798. package/modules/variable-pie.js.map +1 -1
  799. package/modules/variable-pie.src.js +11 -2
  800. package/modules/variwide.js +12 -12
  801. package/modules/variwide.js.map +1 -1
  802. package/modules/variwide.src.js +17 -4
  803. package/modules/vector.js +8 -7
  804. package/modules/vector.js.map +1 -1
  805. package/modules/vector.src.js +11 -2
  806. package/modules/venn.js +31 -31
  807. package/modules/venn.js.map +1 -1
  808. package/modules/venn.src.js +34 -23
  809. package/modules/windbarb.js +15 -15
  810. package/modules/windbarb.js.map +1 -1
  811. package/modules/windbarb.src.js +11 -2
  812. package/modules/wordcloud.js +23 -23
  813. package/modules/wordcloud.js.map +1 -1
  814. package/modules/wordcloud.src.js +26 -18
  815. package/modules/xrange.js +16 -16
  816. package/modules/xrange.js.map +1 -1
  817. package/modules/xrange.src.js +21 -34
  818. package/package.json +1 -1
  819. package/themes/avocado.js +4 -3
  820. package/themes/avocado.js.map +1 -1
  821. package/themes/avocado.src.js +11 -2
  822. package/themes/brand-dark.js +16 -0
  823. package/themes/brand-dark.js.map +1 -0
  824. package/themes/brand-dark.src.js +337 -0
  825. package/themes/brand-light.js +15 -0
  826. package/themes/brand-light.js.map +1 -0
  827. package/themes/brand-light.src.js +303 -0
  828. package/themes/dark-blue.js +9 -8
  829. package/themes/dark-blue.js.map +1 -1
  830. package/themes/dark-blue.src.js +11 -2
  831. package/themes/dark-green.js +9 -8
  832. package/themes/dark-green.js.map +1 -1
  833. package/themes/dark-green.src.js +11 -2
  834. package/themes/dark-unica.js +8 -7
  835. package/themes/dark-unica.js.map +1 -1
  836. package/themes/dark-unica.src.js +15 -4
  837. package/themes/gray.js +9 -8
  838. package/themes/gray.js.map +1 -1
  839. package/themes/gray.src.js +11 -2
  840. package/themes/grid-light.js +5 -4
  841. package/themes/grid-light.js.map +1 -1
  842. package/themes/grid-light.src.js +15 -4
  843. package/themes/grid.js +5 -5
  844. package/themes/grid.js.map +1 -1
  845. package/themes/grid.src.js +15 -4
  846. package/themes/high-contrast-dark.js +7 -7
  847. package/themes/high-contrast-dark.js.map +1 -1
  848. package/themes/high-contrast-dark.src.js +21 -12
  849. package/themes/high-contrast-light.js +3 -3
  850. package/themes/high-contrast-light.js.map +1 -1
  851. package/themes/high-contrast-light.src.js +21 -12
  852. package/themes/sand-signika.js +5 -5
  853. package/themes/sand-signika.js.map +1 -1
  854. package/themes/sand-signika.src.js +11 -2
  855. package/themes/skies.js +5 -5
  856. package/themes/skies.js.map +1 -1
  857. package/themes/skies.src.js +11 -2
  858. package/themes/sunset.js +3 -3
  859. package/themes/sunset.js.map +1 -1
  860. package/themes/sunset.src.js +11 -2
  861. package/es-modules/Maps/ProjectionDefinition.js +0 -9
  862. package/es-modules/Series/ColorMapComposition.js +0 -109
@@ -1,12 +1,11 @@
1
1
  /**
2
- * @license Highcharts JS v9.3.1 (2021-11-05)
2
+ * @license Highcharts JS v10.0.0 (2022-03-07)
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/ColorMapComposition.js', [_modules['Core/Utilities.js']], function (U) {
39
+ _registerModule(_modules, 'Series/ColorMapMixin.js', [_modules['Core/Globals.js'], _modules['Core/Series/Point.js'], _modules['Core/Utilities.js']], function (H, Point, U) {
31
40
  /* *
32
41
  *
33
42
  * (c) 2010-2021 Torstein Honsi
@@ -37,79 +46,66 @@
37
46
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
38
47
  *
39
48
  * */
49
+ // @todo cleanup & reduction - consider composition
50
+ var noop = H.noop,
51
+ seriesTypes = H.seriesTypes;
40
52
  var defined = U.defined,
41
- wrap = U.wrap;
53
+ addEvent = U.addEvent;
54
+ // Move points to the top of the z-index order when hovered
55
+ addEvent(Point, 'afterSetState', function (e) {
56
+ var point = this;
57
+ if (point.moveToTopOnHover && point.graphic) {
58
+ point.graphic.attr({
59
+ zIndex: e && e.state === 'hover' ? 1 : 0
60
+ });
61
+ }
62
+ });
63
+ /**
64
+ * Mixin for maps and heatmaps
65
+ *
66
+ * @private
67
+ * @mixin Highcharts.colorMapPointMixin
68
+ */
69
+ var PointMixin = {
70
+ dataLabelOnNull: true,
71
+ moveToTopOnHover: true,
72
+ /* eslint-disable valid-jsdoc */
73
+ /**
74
+ * Color points have a value option that determines whether or not it is
75
+ * a null point
76
+ * @private
77
+ */
78
+ isValid: function () {
79
+ // undefined is allowed
80
+ return (this.value !== null &&
81
+ this.value !== Infinity &&
82
+ this.value !== -Infinity);
83
+ }
84
+ /* eslint-enable valid-jsdoc */
85
+ };
42
86
  /**
43
87
  * @private
44
88
  * @mixin Highcharts.colorMapSeriesMixin
45
89
  */
46
- var colorMapSeriesMixinOld = {
90
+ var SeriesMixin = {
47
91
  pointArrayMap: ['value'],
48
92
  axisTypes: ['xAxis', 'yAxis', 'colorAxis'],
49
93
  trackerGroups: ['group', 'markerGroup', 'dataLabelsGroup'],
50
- // getSymbol: noop,
94
+ getSymbol: noop,
51
95
  parallelArrays: ['x', 'y', 'value'],
52
- colorKey: 'value'
53
- // pointAttribs: seriesTypes.column.prototype.pointAttribs,
96
+ colorKey: 'value',
97
+ pointAttribs: seriesTypes.column.prototype.pointAttribs,
54
98
  /* eslint-disable valid-jsdoc */
55
- };
56
- /* *
57
- *
58
- * Composition
59
- *
60
- * */
61
- var ColorMapComposition;
62
- (function (ColorMapComposition) {
63
- ColorMapComposition.colorMapSeriesMixin = colorMapSeriesMixinOld;
64
- /* *
65
- *
66
- * Constants
67
- *
68
- * */
69
- var composedClasses = [];
70
- /* *
71
- *
72
- * Functions
73
- *
74
- * */
75
- /* eslint-disable valid-jsdoc */
76
- /**
77
- * @private
78
- */
79
- function compose(SeriesClass, PointClass) {
80
- if (PointClass && composedClasses.indexOf(PointClass) === -1) {
81
- composedClasses.push(PointClass);
82
- var pointProto = PointClass.prototype;
83
- pointProto.dataLabelOnNull = true;
84
- pointProto.moveToTopOnHover = true;
85
- pointProto.isValid = pointIsValid;
86
- }
87
- if (composedClasses.indexOf(SeriesClass) === -1) {
88
- composedClasses.push(SeriesClass);
89
- var seriesProto = SeriesClass.prototype;
90
- seriesProto.colorAttribs = seriesColorAttribs;
91
- wrap(seriesProto, 'pointAttribs', seriesWrapPointAttribs);
92
- }
93
- return SeriesClass;
94
- }
95
- ColorMapComposition.compose = compose;
96
- /**
97
- * Color points have a value option that determines whether or not it is
98
- * a null point
99
- * @private
100
- */
101
- function pointIsValid() {
102
- // undefined is allowed
103
- return (this.value !== null &&
104
- this.value !== Infinity &&
105
- this.value !== -Infinity);
106
- }
107
- /**
108
- * Get the color attibutes to apply on the graphic
109
- * @private
110
- */
111
- function seriesColorAttribs(point) {
112
- var ret = {};
99
+ /**
100
+ * Get the color attibutes to apply on the graphic
101
+ * @private
102
+ * @function Highcharts.colorMapSeriesMixin.colorAttribs
103
+ * @param {Highcharts.Point} point
104
+ * @return {Highcharts.SVGAttributes}
105
+ * The SVG attributes
106
+ */
107
+ colorAttribs: function (point) {
108
+ var ret = {};
113
109
  if (defined(point.color) &&
114
110
  (!point.state || point.state === 'normal') // #15746
115
111
  ) {
@@ -117,28 +113,13 @@
117
113
  }
118
114
  return ret;
119
115
  }
120
- ColorMapComposition.seriesColorAttribs = seriesColorAttribs;
121
- /**
122
- * Move points to the top of the z-index order when hovered
123
- * @private
124
- */
125
- function seriesWrapPointAttribs(original, point, state) {
126
- var attribs = original.call(this,
127
- point,
128
- state);
129
- if (point.moveToTopOnHover) {
130
- attribs.zIndex = state === 'hover' ? 1 : 0;
131
- }
132
- return attribs;
133
- }
134
- })(ColorMapComposition || (ColorMapComposition = {}));
135
- /* *
136
- *
137
- * Default Export
138
- *
139
- * */
116
+ };
117
+ var ColorMapMixin = {
118
+ PointMixin: PointMixin,
119
+ SeriesMixin: SeriesMixin
120
+ };
140
121
 
141
- return ColorMapComposition;
122
+ return ColorMapMixin;
142
123
  });
143
124
  _registerModule(_modules, 'Series/Treemap/TreemapAlgorithmGroup.js', [], function () {
144
125
  /* *
@@ -309,12 +290,15 @@
309
290
  params.attribs['class'] = this.getClassName();
310
291
  if (this.shouldDraw()) {
311
292
  if (!graphic) {
312
- this.graphic = graphic =
313
- renderer[params.shapeType](params.shapeArgs)
314
- .add(params.group);
293
+ this.graphic = graphic = params.shapeType === 'text' ?
294
+ renderer.text() :
295
+ renderer[params.shapeType](params.shapeArgs || {});
296
+ graphic.add(params.group);
297
+ }
298
+ if (css) {
299
+ graphic.css(css);
315
300
  }
316
301
  graphic
317
- .css(css)
318
302
  .attr(params.attribs)
319
303
  .animate(animatableAttribs, params.isNew ? false : animation, onComplete);
320
304
  }
@@ -617,7 +601,7 @@
617
601
  *
618
602
  * @private
619
603
  *
620
- * @param {object} params
604
+ * @param {Object} params
621
605
  * Object containing parameters.
622
606
  * - `defaults` Object containing default options. The default options are
623
607
  * merged with the userOptions to get the final options for a specific
@@ -727,7 +711,7 @@
727
711
  *
728
712
  * @private
729
713
  *
730
- * @param {object} series
714
+ * @param {Object} series
731
715
  * The series to operate on.
732
716
  *
733
717
  * @return {string}
@@ -764,6 +748,933 @@
764
748
 
765
749
  return TreeUtilities;
766
750
  });
751
+ _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) {
752
+ /* *
753
+ *
754
+ * Highcharts Breadcrumbs module
755
+ *
756
+ * Authors: Grzegorz Blachlinski, Karol Kolodziej
757
+ *
758
+ * License: www.highcharts.com/license
759
+ *
760
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
761
+ *
762
+ * */
763
+ var defaultOptions = D.defaultOptions;
764
+ var format = F.format;
765
+ var addEvent = U.addEvent,
766
+ objectEach = U.objectEach,
767
+ extend = U.extend,
768
+ fireEvent = U.fireEvent,
769
+ merge = U.merge,
770
+ pick = U.pick,
771
+ defined = U.defined,
772
+ isString = U.isString;
773
+ // Add language support.
774
+ extend(defaultOptions.lang,
775
+ /**
776
+ * @optionparent lang
777
+ */
778
+ {
779
+ /**
780
+ * @since 10.0.0
781
+ * @product highcharts
782
+ */
783
+ mainBreadcrumb: 'Main'
784
+ });
785
+ /**
786
+ * The Breadcrumbs class
787
+ *
788
+ * @private
789
+ * @class
790
+ * @name Highcharts.Breadcrumbs
791
+ *
792
+ * @param {Highcharts.Chart} chart
793
+ * Chart object
794
+ * @param {Highcharts.Options} userOptions
795
+ * User options
796
+ */
797
+ var Breadcrumbs = /** @class */ (function () {
798
+ function Breadcrumbs(chart, userOptions) {
799
+ /* *
800
+ *
801
+ * Properties
802
+ *
803
+ * */
804
+ this.group = void 0;
805
+ this.list = [];
806
+ this.elementList = {};
807
+ this.isDirty = true;
808
+ this.level = 0;
809
+ this.options = void 0;
810
+ var chartOptions = merge(chart.options.drilldown &&
811
+ chart.options.drilldown.drillUpButton,
812
+ Breadcrumbs.defaultBreadcrumbsOptions,
813
+ chart.options.navigation && chart.options.navigation.breadcrumbs,
814
+ userOptions);
815
+ this.chart = chart;
816
+ this.options = chartOptions || {};
817
+ }
818
+ /**
819
+ * Update Breadcrumbs properties, like level and list.
820
+ *
821
+ * @requires modules/breadcrumbs
822
+ *
823
+ * @function Highcharts.Breadcrumbs#updateProperties
824
+ * @param {Highcharts.Breadcrumbs} this
825
+ * Breadcrumbs class.
826
+ */
827
+ Breadcrumbs.prototype.updateProperties = function (list) {
828
+ this.setList(list);
829
+ this.setLevel();
830
+ this.isDirty = true;
831
+ };
832
+ /**
833
+ * Set breadcrumbs list.
834
+ * @function Highcharts.Breadcrumbs#setList
835
+ *
836
+ * @requires modules/breadcrumbs
837
+ *
838
+ * @param {Highcharts.Breadcrumbs} this
839
+ * Breadcrumbs class.
840
+ * @param {Highcharts.BreadcrumbsOptions} list
841
+ * Breadcrumbs list.
842
+ */
843
+ Breadcrumbs.prototype.setList = function (list) {
844
+ this.list = list;
845
+ };
846
+ /**
847
+ * Calcule level on which chart currently is.
848
+ *
849
+ * @requires modules/breadcrumbs
850
+ *
851
+ * @function Highcharts.Breadcrumbs#setLevel
852
+ * @param {Highcharts.Breadcrumbs} this
853
+ * Breadcrumbs class.
854
+ */
855
+ Breadcrumbs.prototype.setLevel = function () {
856
+ this.level = this.list.length && this.list.length - 1;
857
+ };
858
+ /**
859
+ * Get Breadcrumbs level
860
+ *
861
+ * @requires modules/breadcrumbs
862
+ *
863
+ * @function Highcharts.Breadcrumbs#getLevel
864
+ * @param {Highcharts.Breadcrumbs} this
865
+ * Breadcrumbs class.
866
+ */
867
+ Breadcrumbs.prototype.getLevel = function () {
868
+ return this.level;
869
+ };
870
+ /**
871
+ * Default button text formatter.
872
+ *
873
+ * @requires modules/breadcrumbs
874
+ *
875
+ * @function Highcharts.Breadcrumbs#getButtonText
876
+ * @param {Highcharts.Breadcrumbs} this
877
+ * Breadcrumbs class.
878
+ * @param {Highcharts.Breadcrumbs} breadcrumb
879
+ * Breadcrumb.
880
+ * @return {string}
881
+ * Formatted text.
882
+ */
883
+ Breadcrumbs.prototype.getButtonText = function (breadcrumb) {
884
+ var breadcrumbs = this,
885
+ chart = breadcrumbs.chart,
886
+ breadcrumbsOptions = breadcrumbs.options,
887
+ lang = chart.options.lang,
888
+ textFormat = pick(breadcrumbsOptions.format,
889
+ breadcrumbsOptions.showFullPath ?
890
+ '{level.name}' : '← {level.name}'),
891
+ defaultText = lang && pick(lang.drillUpText,
892
+ lang.mainBreadcrumb);
893
+ var returnText = breadcrumbsOptions.formatter &&
894
+ breadcrumbsOptions.formatter(breadcrumb) ||
895
+ format(textFormat, { level: breadcrumb.levelOptions },
896
+ chart) || '';
897
+ if (((isString(returnText) &&
898
+ !returnText.length) ||
899
+ returnText === '← ') &&
900
+ defined(defaultText)) {
901
+ returnText = !breadcrumbsOptions.showFullPath ?
902
+ '← ' + defaultText :
903
+ defaultText;
904
+ }
905
+ return returnText;
906
+ };
907
+ /**
908
+ * Redraw.
909
+ *
910
+ * @requires modules/breadcrums
911
+ *
912
+ * @function Highcharts.Breadcrumbs#redraw
913
+ * @param {Highcharts.Breadcrumbs} this
914
+ * Breadcrumbs class.
915
+ */
916
+ Breadcrumbs.prototype.redraw = function () {
917
+ if (this.isDirty) {
918
+ this.render();
919
+ }
920
+ if (this.group) {
921
+ this.group.align();
922
+ }
923
+ this.isDirty = false;
924
+ };
925
+ /**
926
+ * Create a group, then draw breadcrumbs together with the separators.
927
+ *
928
+ * @requires modules/breadcrumbs
929
+ *
930
+ * @function Highcharts.Breadcrumbs#render
931
+ * @param {Highcharts.Breadcrumbs} this
932
+ * Breadcrumbs class.
933
+ */
934
+ Breadcrumbs.prototype.render = function () {
935
+ var breadcrumbs = this,
936
+ chart = breadcrumbs.chart,
937
+ breadcrumbsOptions = breadcrumbs.options;
938
+ // A main group for the breadcrumbs.
939
+ if (!breadcrumbs.group && breadcrumbsOptions) {
940
+ breadcrumbs.group = chart.renderer
941
+ .g('breadcrumbs-group')
942
+ .addClass('highcharts-no-tooltip highcharts-breadcrumbs')
943
+ .attr({
944
+ zIndex: breadcrumbsOptions.zIndex
945
+ })
946
+ .add();
947
+ }
948
+ // Draw breadcrumbs.
949
+ if (breadcrumbsOptions.showFullPath) {
950
+ this.renderFullPathButtons();
951
+ }
952
+ else {
953
+ this.renderSingleButton();
954
+ }
955
+ this.alignBreadcrumbsGroup();
956
+ };
957
+ /**
958
+ * Draw breadcrumbs together with the separators.
959
+ *
960
+ * @requires modules/breadcrumbs
961
+ *
962
+ * @function Highcharts.Breadcrumbs#renderFullPathButtons
963
+ * @param {Highcharts.Breadcrumbs} this
964
+ * Breadcrumbs class.
965
+ */
966
+ Breadcrumbs.prototype.renderFullPathButtons = function () {
967
+ // Make sure that only one type of button is visible.
968
+ this.destroySingleButton();
969
+ this.resetElementListState();
970
+ this.updateListElements();
971
+ this.destroyListElements();
972
+ };
973
+ /**
974
+ * Render Single button - when showFullPath is not used. The button is
975
+ * similar to the old drillUpButton
976
+ *
977
+ * @requires modules/breadcrumbs
978
+ *
979
+ * @function Highcharts.Breadcrumbs#renderSingleButton
980
+ * @param {Highcharts.Breadcrumbs} this Breadcrumbs class.
981
+ */
982
+ Breadcrumbs.prototype.renderSingleButton = function () {
983
+ var breadcrumbs = this,
984
+ chart = breadcrumbs.chart,
985
+ list = breadcrumbs.list,
986
+ breadcrumbsOptions = breadcrumbs.options,
987
+ buttonSpacing = breadcrumbsOptions.buttonSpacing;
988
+ // Make sure that only one type of button is visible.
989
+ this.destroyListElements();
990
+ // Draw breadcrumbs. Inital position for calculating the breadcrumbs
991
+ // group.
992
+ var posX = breadcrumbs.group ?
993
+ breadcrumbs.group.getBBox().width :
994
+ buttonSpacing,
995
+ posY = buttonSpacing;
996
+ var previousBreadcrumb = list[list.length - 2];
997
+ if (!chart.drillUpButton && (this.level > 0)) {
998
+ chart.drillUpButton = breadcrumbs.renderButton(previousBreadcrumb, posX, posY);
999
+ }
1000
+ else if (chart.drillUpButton) {
1001
+ if (this.level > 0) {
1002
+ // Update button.
1003
+ this.updateSingleButton();
1004
+ }
1005
+ else {
1006
+ this.destroySingleButton();
1007
+ }
1008
+ }
1009
+ };
1010
+ /**
1011
+ * Update group position based on align and it's width.
1012
+ *
1013
+ * @requires modules/breadcrumbs
1014
+ *
1015
+ * @function Highcharts.Breadcrumbs#renderSingleButton
1016
+ * @param {Highcharts.Breadcrumbs} this
1017
+ * Breadcrumbs class.
1018
+ */
1019
+ Breadcrumbs.prototype.alignBreadcrumbsGroup = function (xOffset) {
1020
+ var breadcrumbs = this;
1021
+ if (breadcrumbs.group) {
1022
+ var breadcrumbsOptions = breadcrumbs.options,
1023
+ buttonTheme = breadcrumbsOptions.buttonTheme,
1024
+ positionOptions = breadcrumbsOptions.position,
1025
+ alignTo = (breadcrumbsOptions.relativeTo === 'chart' ||
1026
+ breadcrumbsOptions.relativeTo === 'spacingBox' ?
1027
+ void 0 :
1028
+ 'scrollablePlotBox'),
1029
+ bBox = breadcrumbs.group.getBBox(),
1030
+ additionalSpace = 2 * (buttonTheme.padding || 0) +
1031
+ breadcrumbsOptions.buttonSpacing;
1032
+ // Store positionOptions
1033
+ positionOptions.width = bBox.width + additionalSpace;
1034
+ positionOptions.height = bBox.height + additionalSpace;
1035
+ var newPositions = merge(positionOptions);
1036
+ // Add x offset if specified.
1037
+ if (xOffset) {
1038
+ newPositions.x += xOffset;
1039
+ }
1040
+ newPositions.y = pick(newPositions.y, this.yOffset, 0);
1041
+ breadcrumbs.group.align(newPositions, true, alignTo);
1042
+ }
1043
+ };
1044
+ /**
1045
+ * Render a button.
1046
+ *
1047
+ * @requires modules/breadcrums
1048
+ *
1049
+ * @function Highcharts.Breadcrumbs#renderButton
1050
+ * @param {Highcharts.Breadcrumbs} this
1051
+ * Breadcrumbs class.
1052
+ * @param {Highcharts.Breadcrumbs} breadcrumb
1053
+ * Current breadcrumb
1054
+ * @param {Highcharts.Breadcrumbs} posX
1055
+ * Initial horizontal position
1056
+ * @param {Highcharts.Breadcrumbs} posY
1057
+ * Initial vertical position
1058
+ * @return {SVGElement|void}
1059
+ * Returns the SVG button
1060
+ */
1061
+ Breadcrumbs.prototype.renderButton = function (breadcrumb, posX, posY) {
1062
+ var breadcrumbs = this,
1063
+ chart = this.chart,
1064
+ breadcrumbsOptions = breadcrumbs.options,
1065
+ buttonTheme = merge(breadcrumbsOptions.buttonTheme),
1066
+ states = buttonTheme.states;
1067
+ delete buttonTheme.states;
1068
+ var button = chart.renderer
1069
+ .button(breadcrumbs.getButtonText(breadcrumb),
1070
+ posX,
1071
+ posY,
1072
+ function (e) {
1073
+ // Extract events from button object and call
1074
+ var buttonEvents = breadcrumbsOptions.events &&
1075
+ breadcrumbsOptions.events.click;
1076
+ var callDefaultEvent;
1077
+ if (buttonEvents) {
1078
+ callDefaultEvent = buttonEvents.call(breadcrumbs, e, breadcrumb);
1079
+ }
1080
+ // (difference in behaviour of showFullPath and drillUp)
1081
+ if (callDefaultEvent !== false) {
1082
+ // For single button we are not going to the button
1083
+ // level, but the one level up
1084
+ if (!breadcrumbsOptions.showFullPath) {
1085
+ e.newLevel = breadcrumbs.level - 1;
1086
+ }
1087
+ else {
1088
+ e.newLevel = breadcrumb.level;
1089
+ }
1090
+ fireEvent(breadcrumbs, 'up', e);
1091
+ }
1092
+ }, buttonTheme, states && states.hover, states && states.select, states && states.disabled)
1093
+ .addClass('highcharts-breadcrumbs-button')
1094
+ .add(breadcrumbs.group);
1095
+ if (!chart.styledMode) {
1096
+ button.attr(breadcrumbsOptions.style);
1097
+ }
1098
+ return button;
1099
+ };
1100
+ /**
1101
+ * Render a separator.
1102
+ *
1103
+ * @requires modules/breadcrums
1104
+ *
1105
+ * @function Highcharts.Breadcrumbs#renderSeparator
1106
+ * @param {Highcharts.Breadcrumbs} this
1107
+ * Breadcrumbs class.
1108
+ * @param {Highcharts.Breadcrumbs} posX
1109
+ * Initial horizontal position
1110
+ * @param {Highcharts.Breadcrumbs} posY
1111
+ * Initial vertical position
1112
+ * @return {Highcharts.SVGElement}
1113
+ * Returns the SVG button
1114
+ */
1115
+ Breadcrumbs.prototype.renderSeparator = function (posX, posY) {
1116
+ var breadcrumbs = this,
1117
+ chart = this.chart,
1118
+ breadcrumbsOptions = breadcrumbs.options,
1119
+ separatorOptions = breadcrumbsOptions.separator;
1120
+ var separator = chart.renderer
1121
+ .label(separatorOptions.text,
1122
+ posX,
1123
+ posY,
1124
+ void 0,
1125
+ void 0,
1126
+ void 0,
1127
+ false)
1128
+ .addClass('highcharts-breadcrumbs-separator')
1129
+ .add(breadcrumbs.group);
1130
+ if (!chart.styledMode) {
1131
+ separator.css(separatorOptions.style);
1132
+ }
1133
+ return separator;
1134
+ };
1135
+ /**
1136
+ * Update.
1137
+ * @function Highcharts.Breadcrumbs#update
1138
+ *
1139
+ * @requires modules/breadcrumbs
1140
+ *
1141
+ * @param {Highcharts.Breadcrumbs} this
1142
+ * Breadcrumbs class.
1143
+ * @param {Highcharts.BreadcrumbsOptions} options
1144
+ * Breadcrumbs class.
1145
+ * @param {boolean} redraw
1146
+ * Redraw flag
1147
+ */
1148
+ Breadcrumbs.prototype.update = function (options) {
1149
+ merge(true, this.options, options);
1150
+ this.destroy();
1151
+ this.isDirty = true;
1152
+ };
1153
+ /**
1154
+ * Update button text when the showFullPath set to false.
1155
+ * @function Highcharts.Breadcrumbs#updateSingleButton
1156
+ *
1157
+ * @requires modules/breadcrumbs
1158
+ *
1159
+ * @param {Highcharts.Breadcrumbs} this
1160
+ * Breadcrumbs class.
1161
+ */
1162
+ Breadcrumbs.prototype.updateSingleButton = function () {
1163
+ var chart = this.chart,
1164
+ currentBreadcrumb = this.list[this.level - 1];
1165
+ if (chart.drillUpButton) {
1166
+ chart.drillUpButton.attr({
1167
+ text: this.getButtonText(currentBreadcrumb)
1168
+ });
1169
+ }
1170
+ };
1171
+ /**
1172
+ * Destroy the chosen breadcrumbs group
1173
+ *
1174
+ * @requires modules/breadcrumbs
1175
+ *
1176
+ * @function Highcharts.Breadcrumbs#destroy
1177
+ * @param {Highcharts.Breadcrumbs} this
1178
+ * Breadcrumbs class.
1179
+ */
1180
+ Breadcrumbs.prototype.destroy = function () {
1181
+ this.destroySingleButton();
1182
+ // Destroy elements one by one. It's necessary beacause
1183
+ // g().destroy() does not remove added HTML
1184
+ this.destroyListElements(true);
1185
+ // Then, destroy the group itself.
1186
+ if (this.group) {
1187
+ this.group.destroy();
1188
+ }
1189
+ this.group = void 0;
1190
+ };
1191
+ /**
1192
+ * Destroy the elements' buttons and separators.
1193
+ *
1194
+ * @requires modules/breadcrumbs
1195
+ *
1196
+ * @function Highcharts.Breadcrumbs#destroyListElements
1197
+ * @param {Highcharts.Breadcrumbs} this
1198
+ * Breadcrumbs class.
1199
+ */
1200
+ Breadcrumbs.prototype.destroyListElements = function (force) {
1201
+ var elementList = this.elementList;
1202
+ objectEach(elementList, function (element, level) {
1203
+ if (force ||
1204
+ !elementList[level].updated) {
1205
+ element = elementList[level];
1206
+ element.button && element.button.destroy();
1207
+ element.separator && element.separator.destroy();
1208
+ delete element.button;
1209
+ delete element.separator;
1210
+ delete elementList[level];
1211
+ }
1212
+ });
1213
+ if (force) {
1214
+ this.elementList = {};
1215
+ }
1216
+ };
1217
+ /**
1218
+ * Destroy the single button if exists.
1219
+ *
1220
+ * @requires modules/breadcrumbs
1221
+ *
1222
+ * @function Highcharts.Breadcrumbs#destroySingleButton
1223
+ * @param {Highcharts.Breadcrumbs} this
1224
+ * Breadcrumbs class.
1225
+ */
1226
+ Breadcrumbs.prototype.destroySingleButton = function () {
1227
+ if (this.chart.drillUpButton) {
1228
+ this.chart.drillUpButton.destroy();
1229
+ this.chart.drillUpButton = void 0;
1230
+ }
1231
+ };
1232
+ /**
1233
+ * Reset state for all buttons in elementList.
1234
+ *
1235
+ * @requires modules/breadcrumbs
1236
+ *
1237
+ * @function Highcharts.Breadcrumbs#resetElementListState
1238
+ * @param {Highcharts.Breadcrumbs} this
1239
+ * Breadcrumbs class.
1240
+ */
1241
+ Breadcrumbs.prototype.resetElementListState = function () {
1242
+ objectEach(this.elementList, function (element) {
1243
+ element.updated = false;
1244
+ });
1245
+ };
1246
+ /**
1247
+ * Update rendered elements inside the elementList.
1248
+ *
1249
+ * @requires modules/breadcrumbs
1250
+ *
1251
+ * @function Highcharts.Breadcrumbs#updateListElements
1252
+ * @param {Highcharts.Breadcrumbs} this
1253
+ * Breadcrumbs class.
1254
+ */
1255
+ Breadcrumbs.prototype.updateListElements = function () {
1256
+ var updateXPosition = function (element,
1257
+ spacing) {
1258
+ return element.getBBox().width + spacing;
1259
+ }, breadcrumbs = this, elementList = breadcrumbs.elementList, buttonSpacing = breadcrumbs.options.buttonSpacing, list = breadcrumbs.list;
1260
+ // Inital position for calculating the breadcrumbs group.
1261
+ var posX = breadcrumbs.group ?
1262
+ updateXPosition(breadcrumbs.group,
1263
+ buttonSpacing) :
1264
+ buttonSpacing,
1265
+ posY = buttonSpacing,
1266
+ currentBreadcrumb;
1267
+ list.forEach(function (breadcrumb, index) {
1268
+ var isLast = index === list.length - 1;
1269
+ var button,
1270
+ separator;
1271
+ if (elementList[breadcrumb.level]) {
1272
+ currentBreadcrumb = elementList[breadcrumb.level];
1273
+ button = currentBreadcrumb.button;
1274
+ // Render a separator if it was not created before.
1275
+ if (!currentBreadcrumb.separator &&
1276
+ !isLast) {
1277
+ // Add spacing for the next separator
1278
+ posX += buttonSpacing;
1279
+ currentBreadcrumb.separator =
1280
+ breadcrumbs.renderSeparator(posX, posY);
1281
+ posX += updateXPosition(currentBreadcrumb.separator, buttonSpacing);
1282
+ }
1283
+ else if (currentBreadcrumb.separator &&
1284
+ isLast) {
1285
+ currentBreadcrumb.separator.destroy();
1286
+ delete currentBreadcrumb.separator;
1287
+ }
1288
+ elementList[breadcrumb.level].updated = true;
1289
+ }
1290
+ else {
1291
+ // Render a button.
1292
+ button = breadcrumbs.renderButton(breadcrumb, posX, posY);
1293
+ posX += updateXPosition(button, buttonSpacing);
1294
+ // Render a separator.
1295
+ if (!isLast) {
1296
+ separator = breadcrumbs.renderSeparator(posX, posY);
1297
+ posX += updateXPosition(separator, buttonSpacing);
1298
+ }
1299
+ elementList[breadcrumb.level] = {
1300
+ button: button,
1301
+ separator: separator,
1302
+ updated: true
1303
+ };
1304
+ }
1305
+ if (button) {
1306
+ button.setState(isLast ? 2 : 0);
1307
+ }
1308
+ });
1309
+ };
1310
+ /**
1311
+ * Options for breadcrumbs. Breadcrumbs general options are defined in
1312
+ * `navigation.breadcrumbs`. Specific options for drilldown are set in
1313
+ * `drilldown.breadcrumbs` and for tree-like series traversing, in
1314
+ * `plotOptions[series].breadcrumbs`.
1315
+ *
1316
+ * @since 10.0.0
1317
+ * @product highcharts
1318
+ * @optionparent navigation.breadcrumbs
1319
+ */
1320
+ Breadcrumbs.defaultBreadcrumbsOptions = {
1321
+ /**
1322
+ * A collection of attributes for the buttons. The object takes SVG
1323
+ * attributes like `fill`, `stroke`, `stroke-width`, as well as `style`,
1324
+ * a collection of CSS properties for the text.
1325
+ *
1326
+ * The object can also be extended with states, so you can set
1327
+ * presentational options for `hover`, `select` or `disabled` button
1328
+ * states.
1329
+ *
1330
+ * @sample {highcharts} highcharts/breadcrumbs/single-button
1331
+ * Themed, single button
1332
+ *
1333
+ * @type {Highcharts.SVGAttributes}
1334
+ * @since 10.0.0
1335
+ * @product highcharts
1336
+ */
1337
+ buttonTheme: {
1338
+ /** @ignore */
1339
+ fill: 'none',
1340
+ /** @ignore */
1341
+ height: 18,
1342
+ /** @ignore */
1343
+ padding: 2,
1344
+ /** @ignore */
1345
+ 'stroke-width': 0,
1346
+ /** @ignore */
1347
+ zIndex: 7,
1348
+ /** @ignore */
1349
+ states: {
1350
+ select: {
1351
+ fill: 'none'
1352
+ }
1353
+ },
1354
+ style: {
1355
+ color: "#335cad" /* highlightColor80 */
1356
+ }
1357
+ },
1358
+ /**
1359
+ * The default padding for each button and separator in each direction.
1360
+ *
1361
+ * @type {number}
1362
+ * @since 10.0.0
1363
+ */
1364
+ buttonSpacing: 5,
1365
+ /**
1366
+ * Fires when clicking on the breadcrumbs button. Two arguments are
1367
+ * passed to the function. First breadcrumb button as an SVG element.
1368
+ * Second is the breadcrumbs class, containing reference to the chart,
1369
+ * series etc.
1370
+ *
1371
+ * ```js
1372
+ * click: function(button, breadcrumbs) {
1373
+ * console.log(button);
1374
+ * }
1375
+ * ```
1376
+ *
1377
+ * Return false to stop default buttons click action.
1378
+ *
1379
+ * @type {Highcharts.BreadcrumbsClickCallbackFunction}
1380
+ * @since 10.0.0
1381
+ * @apioption navigation.breadcrumbs.events.click
1382
+ */
1383
+ /**
1384
+ * When the breadcrumbs are floating, the plot area will not move to
1385
+ * make space for it. By default, the chart will not make space for the
1386
+ * buttons. This property won't work when positioned in the middle.
1387
+ *
1388
+ * @sample highcharts/breadcrumbs/single-button
1389
+ * Floating button
1390
+ * @type {boolean}
1391
+ * @since 10.0.0
1392
+ */
1393
+ floating: false,
1394
+ /**
1395
+ * A format string for the breadcrumbs button. Variables are enclosed by
1396
+ * curly brackets. Available values are passed in the declared point
1397
+ * options.
1398
+ *
1399
+ * @type {string|undefined}
1400
+ * @since 10.0.0
1401
+ * @default undefined
1402
+ * @sample {highcharts} highcharts/breadcrumbs/format Display custom
1403
+ * values in breadcrumb button.
1404
+ */
1405
+ format: void 0,
1406
+ /**
1407
+ * Callback function to format the breadcrumb text from scratch.
1408
+ *
1409
+ * @type {Highcharts.BreadcrumbsFormatterCallbackFunction}
1410
+ * @since 10.0.0
1411
+ * @default undefined
1412
+ * @apioption navigation.breadcrumbs.formatter
1413
+ */
1414
+ /**
1415
+ * What box to align the button to. Can be either `plotBox` or
1416
+ * `spacingBox`.
1417
+ *
1418
+ * @type {Highcharts.ButtonRelativeToValue}
1419
+ * @default plotBox
1420
+ * @since 10.0.0
1421
+ * @product highcharts highmaps
1422
+ */
1423
+ relativeTo: 'plotBox',
1424
+ /**
1425
+ * Positioning for the button row. The breadcrumbs buttons will be
1426
+ * aligned properly for the default chart layout (title, subtitle,
1427
+ * legend, range selector) for the custom chart layout set the position
1428
+ * properties.
1429
+ * @type {Highcharts.BreadcrumbsAlignOptions}
1430
+ * @since 10.0.0
1431
+ * @product highcharts highmaps
1432
+ * @sample {highcharts} highcharts/breadcrumbs/single-button
1433
+ * Single, right aligned button
1434
+ */
1435
+ position: {
1436
+ /**
1437
+ * Horizontal alignment of the breadcrumbs buttons.
1438
+ *
1439
+ * @type {Highcharts.AlignValue}
1440
+ */
1441
+ align: 'left',
1442
+ /**
1443
+ * Vertical alignment of the breadcrumbs buttons.
1444
+ *
1445
+ * @type {Highcharts.VerticalAlignValue}
1446
+ */
1447
+ verticalAlign: 'top',
1448
+ /**
1449
+ * The X offset of the breadcrumbs button group.
1450
+ *
1451
+ * @type {number}
1452
+ */
1453
+ x: 0,
1454
+ /**
1455
+ * The Y offset of the breadcrumbs button group. When `undefined`,
1456
+ * and `floating` is `false`, the `y` position is adapted so that
1457
+ * the breadcrumbs are rendered outside the target area.
1458
+ *
1459
+ * @type {number|undefined}
1460
+ */
1461
+ y: void 0
1462
+ },
1463
+ /**
1464
+ * Options object for Breadcrumbs separator.
1465
+ *
1466
+ * @since 10.0.0
1467
+ */
1468
+ separator: {
1469
+ /**
1470
+ * @type {string}
1471
+ * @since 10.0.0
1472
+ * @product highcharts
1473
+ */
1474
+ text: '/',
1475
+ /**
1476
+ * CSS styles for the breadcrumbs separator.
1477
+ *
1478
+ * In styled mode, the breadcrumbs separators are styled by the
1479
+ * `.highcharts-separator` rule with its different states.
1480
+ * @type {Highcharts.CSSObject}
1481
+ * @since 10.0.0
1482
+ */
1483
+ style: {
1484
+ color: "#666666" /* neutralColor60 */
1485
+ }
1486
+ },
1487
+ /**
1488
+ * Show full path or only a single button.
1489
+ *
1490
+ * @type {boolean}
1491
+ * @since 10.0.0
1492
+ * @sample {highcharts} highcharts/breadcrumbs/single-button
1493
+ * Single, styled button
1494
+ */
1495
+ showFullPath: true,
1496
+ /**
1497
+ * CSS styles for all breadcrumbs.
1498
+ *
1499
+ * In styled mode, the breadcrumbs buttons are styled by the
1500
+ * `.highcharts-breadcrumbs-buttons .highcharts-button` rule with its
1501
+ * different states.
1502
+ * @type {Highcharts.SVGAttributes}
1503
+ * @since 10.0.0
1504
+ */
1505
+ style: {},
1506
+ /**
1507
+ * Whether to use HTML to render the breadcrumbs items texts.
1508
+ *
1509
+ * @type {boolean}
1510
+ * @since 10.0.0
1511
+ */
1512
+ useHTML: false,
1513
+ /**
1514
+ * The z index of the breadcrumbs group.
1515
+ *
1516
+ * @type {number}
1517
+ * @since 10.0.0
1518
+ */
1519
+ zIndex: 7
1520
+ };
1521
+ return Breadcrumbs;
1522
+ }());
1523
+ /* eslint-disable no-invalid-this */
1524
+ if (!H.Breadcrumbs) {
1525
+ H.Breadcrumbs = Breadcrumbs;
1526
+ // Logic for making space for the buttons above the plot area
1527
+ addEvent(Chart, 'getMargins', function () {
1528
+ var breadcrumbs = this.breadcrumbs;
1529
+ if (breadcrumbs &&
1530
+ !breadcrumbs.options.floating &&
1531
+ breadcrumbs.level) {
1532
+ var breadcrumbsOptions = breadcrumbs.options,
1533
+ buttonTheme = breadcrumbsOptions.buttonTheme,
1534
+ breadcrumbsHeight = ((buttonTheme.height || 0) +
1535
+ 2 * (buttonTheme.padding || 0) +
1536
+ breadcrumbsOptions.buttonSpacing),
1537
+ verticalAlign = breadcrumbsOptions.position.verticalAlign;
1538
+ if (verticalAlign === 'bottom') {
1539
+ this.marginBottom = (this.marginBottom || 0) + breadcrumbsHeight;
1540
+ breadcrumbs.yOffset = breadcrumbsHeight;
1541
+ }
1542
+ else if (verticalAlign !== 'middle') {
1543
+ this.plotTop += breadcrumbsHeight;
1544
+ breadcrumbs.yOffset = -breadcrumbsHeight;
1545
+ }
1546
+ else {
1547
+ breadcrumbs.yOffset = void 0;
1548
+ }
1549
+ }
1550
+ });
1551
+ addEvent(Chart, 'redraw', function () {
1552
+ this.breadcrumbs && this.breadcrumbs.redraw();
1553
+ });
1554
+ // Remove resize/afterSetExtremes at chart destroy
1555
+ addEvent(Chart, 'destroy', function destroyEvents() {
1556
+ if (this.breadcrumbs) {
1557
+ this.breadcrumbs.destroy();
1558
+ this.breadcrumbs = void 0;
1559
+ }
1560
+ });
1561
+ // Shift the drillUpButton to make the space for resetZoomButton, #8095.
1562
+ addEvent(Chart, 'afterShowResetZoom', function () {
1563
+ var chart = this;
1564
+ if (chart.breadcrumbs) {
1565
+ var bbox = chart.resetZoomButton &&
1566
+ chart.resetZoomButton.getBBox(),
1567
+ breadcrumbsOptions = chart.breadcrumbs.options;
1568
+ if (bbox &&
1569
+ breadcrumbsOptions.position.align === 'right' &&
1570
+ breadcrumbsOptions.relativeTo === 'plotBox') {
1571
+ chart.breadcrumbs.alignBreadcrumbsGroup(-bbox.width - breadcrumbsOptions.buttonSpacing);
1572
+ }
1573
+ }
1574
+ });
1575
+ // After zooming out, shift the drillUpButton
1576
+ // to the previous position, #8095.
1577
+ addEvent(Chart, 'selection', function (event) {
1578
+ if (event.resetSelection === true &&
1579
+ this.breadcrumbs) {
1580
+ this.breadcrumbs.alignBreadcrumbsGroup();
1581
+ }
1582
+ });
1583
+ }
1584
+ /* *
1585
+ *
1586
+ * Default Export
1587
+ *
1588
+ * */
1589
+ /* *
1590
+ *
1591
+ * API Declarations
1592
+ *
1593
+ * */
1594
+ /**
1595
+ * Callback function to react on button clicks.
1596
+ *
1597
+ * @callback Highcharts.BreadcrumbsClickCallbackFunction
1598
+ *
1599
+ * @param {Highcharts.Event} event
1600
+ * Event.
1601
+ *
1602
+ * @param {Highcharts.BreadcrumbOptions} options
1603
+ * Breadcrumb options.
1604
+ *
1605
+ * @param {global.Event} e
1606
+ * Event arguments.
1607
+ */
1608
+ /**
1609
+ * Callback function to format the breadcrumb text from scratch.
1610
+ *
1611
+ * @callback Highcharts.BreadcrumbsFormatterCallbackFunction
1612
+ *
1613
+ * @param {Highcharts.Event} event
1614
+ * Event.
1615
+ *
1616
+ * @param {Highcharts.BreadcrumbOptions} options
1617
+ * Breadcrumb options.
1618
+ *
1619
+ * @return {string}
1620
+ * Formatted text or false
1621
+ */
1622
+ /**
1623
+ * Options for the one breadcrumb.
1624
+ *
1625
+ * @interface Highcharts.BreadcrumbOptions
1626
+ */
1627
+ /**
1628
+ * Level connected to a specific breadcrumb.
1629
+ * @name Highcharts.BreadcrumbOptions#level
1630
+ * @type {number}
1631
+ */
1632
+ /**
1633
+ * Options for series or point connected to a specific breadcrumb.
1634
+ * @name Highcharts.BreadcrumbOptions#levelOptions
1635
+ * @type {SeriesOptions|PointOptionsObject}
1636
+ */
1637
+ /**
1638
+ * Options for aligning breadcrumbs group.
1639
+ *
1640
+ * @interface Highcharts.BreadcrumbsAlignOptions
1641
+ */
1642
+ /**
1643
+ * Align of a Breadcrumb group.
1644
+ * @default right
1645
+ * @name Highcharts.BreadcrumbsAlignOptions#align
1646
+ * @type {AlignValue}
1647
+ */
1648
+ /**
1649
+ * Vertical align of a Breadcrumb group.
1650
+ * @default top
1651
+ * @name Highcharts.BreadcrumbsAlignOptions#verticalAlign
1652
+ * @type {VerticalAlignValue}
1653
+ */
1654
+ /**
1655
+ * X offset of a Breadcrumbs group.
1656
+ * @name Highcharts.BreadcrumbsAlignOptions#x
1657
+ * @type {number}
1658
+ */
1659
+ /**
1660
+ * Y offset of a Breadcrumbs group.
1661
+ * @name Highcharts.BreadcrumbsAlignOptions#y
1662
+ * @type {number}
1663
+ */
1664
+ /**
1665
+ * Options for all breadcrumbs.
1666
+ *
1667
+ * @interface Highcharts.BreadcrumbsOptions
1668
+ */
1669
+ /**
1670
+ * Button theme.
1671
+ * @name Highcharts.BreadcrumbsOptions#buttonTheme
1672
+ * @type { SVGAttributes | undefined }
1673
+ */
1674
+ (''); // Keeps doclets above in JS file
1675
+
1676
+ return Breadcrumbs;
1677
+ });
767
1678
  _registerModule(_modules, 'Series/Treemap/TreemapComposition.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Series/Treemap/TreemapUtilities.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, TreemapUtilities, U) {
768
1679
  /* *
769
1680
  *
@@ -825,7 +1736,7 @@
825
1736
  });
826
1737
 
827
1738
  });
828
- _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['Core/Utilities.js']], function (Color, ColorMapComposition, H, LegendSymbol, SeriesRegistry, TreemapAlgorithmGroup, TreemapPoint, TreemapUtilities, TU, U) {
1739
+ _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['Extensions/Breadcrumbs.js'], _modules['Core/Utilities.js']], function (Color, ColorMapMixin, H, LegendSymbol, SeriesRegistry, TreemapAlgorithmGroup, TreemapPoint, TreemapUtilities, TU, Breadcrumbs, U) {
829
1740
  /* *
830
1741
  *
831
1742
  * (c) 2014-2021 Highsoft AS
@@ -854,7 +1765,6 @@
854
1765
  };
855
1766
  })();
856
1767
  var color = Color.parse;
857
- var colorMapSeriesMixin = ColorMapComposition.colorMapSeriesMixin;
858
1768
  var noop = H.noop;
859
1769
  var Series = SeriesRegistry.series,
860
1770
  _a = SeriesRegistry.seriesTypes,
@@ -871,6 +1781,7 @@
871
1781
  extend = U.extend,
872
1782
  fireEvent = U.fireEvent,
873
1783
  isArray = U.isArray,
1784
+ isNumber = U.isNumber,
874
1785
  isObject = U.isObject,
875
1786
  isString = U.isString,
876
1787
  merge = U.merge,
@@ -911,6 +1822,7 @@
911
1822
  _this.points = void 0;
912
1823
  _this.rootNode = void 0;
913
1824
  _this.tree = void 0;
1825
+ _this.level = void 0;
914
1826
  return _this;
915
1827
  /* eslint-enable valid-jsdoc */
916
1828
  }
@@ -1121,11 +2033,11 @@
1121
2033
  * @private
1122
2034
  * @function Highcharts.Series#calculateChildrenAreas
1123
2035
  *
1124
- * @param {object} node
1125
- * The node which is parent to the children.
2036
+ * @param {Object} node
2037
+ * The node which is parent to the children.
1126
2038
  *
1127
- * @param {object} area
1128
- * The rectangular area of the parent.
2039
+ * @param {Object} area
2040
+ * The rectangular area of the parent.
1129
2041
  */
1130
2042
  TreemapSeries.prototype.calculateChildrenAreas = function (parent, area) {
1131
2043
  var series = this,
@@ -1167,6 +2079,46 @@
1167
2079
  }
1168
2080
  });
1169
2081
  };
2082
+ /**
2083
+ * Create level list.
2084
+ *
2085
+ * @requires modules/breadcrumbs
2086
+ *
2087
+ * @function TreemapSeries#createList
2088
+ * @param {TreemapSeries} this
2089
+ * Treemap Series class.
2090
+ */
2091
+ TreemapSeries.prototype.createList = function (e) {
2092
+ var chart = this.chart,
2093
+ breadcrumbs = chart.breadcrumbs,
2094
+ list = [];
2095
+ if (breadcrumbs) {
2096
+ var currentLevelNumber_1 = 0;
2097
+ list.push({
2098
+ level: currentLevelNumber_1,
2099
+ levelOptions: chart.series[0]
2100
+ });
2101
+ var node = e.target.nodeMap[e.newRootId];
2102
+ var extraNodes = [];
2103
+ // When the root node is set and has parent,
2104
+ // recreate the path from the node tree.
2105
+ while (node.parent || node.parent === '') {
2106
+ extraNodes.push(node);
2107
+ node = e.target.nodeMap[node.parent];
2108
+ }
2109
+ extraNodes.reverse().forEach(function (node) {
2110
+ list.push({
2111
+ level: ++currentLevelNumber_1,
2112
+ levelOptions: node
2113
+ });
2114
+ });
2115
+ // If the list has only first element, we should clear it
2116
+ if (list.length <= 1) {
2117
+ list.length = 0;
2118
+ }
2119
+ }
2120
+ return list;
2121
+ };
1170
2122
  /**
1171
2123
  * Extend drawDataLabels with logic to handle custom options related to
1172
2124
  * the treemap series:
@@ -1366,7 +2318,7 @@
1366
2318
  * @param {Array<string>} [existingIds]
1367
2319
  * List of all point ids.
1368
2320
  *
1369
- * @return {object}
2321
+ * @return {Object}
1370
2322
  * Map from parent id to children index in data.
1371
2323
  */
1372
2324
  TreemapSeries.prototype.getListOfParents = function (data, existingIds) {
@@ -1417,11 +2369,11 @@
1417
2369
  };
1418
2370
  TreemapSeries.prototype.init = function (chart, options) {
1419
2371
  var series = this,
1420
- setOptionsEvent;
2372
+ breadcrumbsOptions = merge(options.drillUpButton,
2373
+ options.breadcrumbs);
2374
+ var setOptionsEvent;
1421
2375
  // If color series logic is loaded, add some properties
1422
- if (colorMapSeriesMixin) {
1423
- this.colorAttribs = ColorMapComposition.seriesColorAttribs;
1424
- }
2376
+ this.colorAttribs = ColorMapMixin.SeriesMixin.colorAttribs;
1425
2377
  setOptionsEvent = addEvent(series, 'setOptions', function (event) {
1426
2378
  var options = event.userOptions;
1427
2379
  if (defined(options.allowDrillToNode) &&
@@ -1442,7 +2394,38 @@
1442
2394
  series.eventsToUnbind.push(setOptionsEvent);
1443
2395
  if (series.options.allowTraversingTree) {
1444
2396
  series.eventsToUnbind.push(addEvent(series, 'click', series.onClickDrillToNode));
2397
+ series.eventsToUnbind.push(addEvent(series, 'setRootNode', function (e) {
2398
+ var chart = series.chart;
2399
+ if (chart.breadcrumbs) {
2400
+ // Create a list using the event after drilldown.
2401
+ chart.breadcrumbs.updateProperties(series.createList(e));
2402
+ }
2403
+ }));
2404
+ series.eventsToUnbind.push(addEvent(series, 'update', function (e, redraw) {
2405
+ var breadcrumbs = this.chart.breadcrumbs;
2406
+ if (breadcrumbs && e.options.breadcrumbs) {
2407
+ breadcrumbs.update(e.options.breadcrumbs);
2408
+ }
2409
+ }));
2410
+ series.eventsToUnbind.push(addEvent(series, 'destroy', function destroyEvents(e) {
2411
+ var chart = this.chart;
2412
+ if (chart.breadcrumbs) {
2413
+ chart.breadcrumbs.destroy();
2414
+ if (!e.keepEventsForUpdate) {
2415
+ chart.breadcrumbs = void 0;
2416
+ }
2417
+ }
2418
+ }));
1445
2419
  }
2420
+ if (!chart.breadcrumbs) {
2421
+ chart.breadcrumbs = new Breadcrumbs(chart, breadcrumbsOptions);
2422
+ }
2423
+ series.eventsToUnbind.push(addEvent(chart.breadcrumbs, 'up', function (e) {
2424
+ var drillUpsNumber = this.level - e.newLevel;
2425
+ for (var i = 0; i < drillUpsNumber; i++) {
2426
+ series.drillUp();
2427
+ }
2428
+ }));
1446
2429
  };
1447
2430
  /**
1448
2431
  * Add drilling on the suitable points.
@@ -1510,46 +2493,6 @@
1510
2493
  }
1511
2494
  return attr;
1512
2495
  };
1513
- TreemapSeries.prototype.renderTraverseUpButton = function (rootId) {
1514
- var series = this,
1515
- nodeMap = series.nodeMap,
1516
- node = nodeMap[rootId],
1517
- name = node.name,
1518
- buttonOptions = series.options.traverseUpButton,
1519
- backText = pick(buttonOptions.text,
1520
- name, '◁ Back'),
1521
- attr,
1522
- states;
1523
- if (rootId === '' || (series.is('sunburst') &&
1524
- series.tree.children.length === 1 &&
1525
- rootId === series.tree.children[0].id)) {
1526
- if (series.drillUpButton) {
1527
- series.drillUpButton = series.drillUpButton.destroy();
1528
- }
1529
- }
1530
- else if (!this.drillUpButton) {
1531
- attr = buttonOptions.theme;
1532
- states = attr && attr.states;
1533
- this.drillUpButton = this.chart.renderer
1534
- .button(backText, 0, 0, function () {
1535
- series.drillUp();
1536
- }, attr, states && states.hover, states && states.select)
1537
- .addClass('highcharts-drillup-button')
1538
- .attr({
1539
- align: buttonOptions.position.align,
1540
- zIndex: 7
1541
- })
1542
- .add()
1543
- .align(buttonOptions.position, false, buttonOptions.relativeTo || 'plotBox');
1544
- }
1545
- else {
1546
- this.drillUpButton.placed = false;
1547
- this.drillUpButton.attr({
1548
- text: backText
1549
- })
1550
- .align();
1551
- }
1552
- };
1553
2496
  /**
1554
2497
  * Set the node's color recursively, from the parent down.
1555
2498
  * @private
@@ -1647,7 +2590,7 @@
1647
2590
  * @param {boolean} [redraw=true]
1648
2591
  * Wether to redraw the chart or not.
1649
2592
  *
1650
- * @param {object} [eventArguments]
2593
+ * @param {Object} [eventArguments]
1651
2594
  * Arguments to be accessed in event handler.
1652
2595
  *
1653
2596
  * @param {string} [eventArguments.newRootId]
@@ -1659,14 +2602,14 @@
1659
2602
  * @param {boolean} [eventArguments.redraw]
1660
2603
  * Wether to redraw the chart after.
1661
2604
  *
1662
- * @param {object} [eventArguments.series]
2605
+ * @param {Object} [eventArguments.series]
1663
2606
  * The series to update the root of.
1664
2607
  *
1665
2608
  * @param {string} [eventArguments.trigger]
1666
2609
  * The action which triggered the event. Undefined if the setRootNode is
1667
2610
  * called directly.
1668
2611
  *
1669
- * @fires Highcharts.Series#event:setRootNode
2612
+ * @emits Highcharts.Series#event:setRootNode
1670
2613
  */
1671
2614
  TreemapSeries.prototype.setRootNode = function (id, redraw, eventArguments) {
1672
2615
  var series = this,
@@ -1682,16 +2625,15 @@
1682
2625
  * The default functionality of the setRootNode event.
1683
2626
  *
1684
2627
  * @private
1685
- * @param {object} args The event arguments.
2628
+ * @param {Object} args The event arguments.
1686
2629
  * @param {string} args.newRootId Id of the new root.
1687
2630
  * @param {string} args.previousRootId Id of the previous root.
1688
2631
  * @param {boolean} args.redraw Wether to redraw the chart after.
1689
- * @param {object} args.series The series to update the root of.
2632
+ * @param {Object} args.series The series to update the root of.
1690
2633
  * @param {string} [args.trigger=undefined] The action which
1691
2634
  * triggered the event. Undefined if the setRootNode is called
1692
2635
  * directly.
1693
- * @return {void}
1694
- */
2636
+ */
1695
2637
  var defaultFn = function (args) {
1696
2638
  var series = args.series;
1697
2639
  // Store previous and new root ids on the series.
@@ -1793,7 +2735,6 @@
1793
2735
  rootId = series.rootNode;
1794
2736
  rootNode = series.nodeMap[rootId];
1795
2737
  }
1796
- series.renderTraverseUpButton(rootId);
1797
2738
  series.mapOptionsToLevel = getLevelOptions({
1798
2739
  from: rootNode.level + 1,
1799
2740
  levels: options.levels,
@@ -1863,7 +2804,7 @@
1863
2804
  * Treemap
1864
2805
  *
1865
2806
  * @extends plotOptions.scatter
1866
- * @excluding dragDrop, marker, jitter, dataSorting
2807
+ * @excluding cluster, connectEnds, connectNulls, dataSorting, dragDrop, jitter, marker
1867
2808
  * @product highcharts
1868
2809
  * @requires modules/treemap
1869
2810
  * @optionparent plotOptions.treemap
@@ -1900,6 +2841,16 @@
1900
2841
  * The border radius for each treemap item.
1901
2842
  */
1902
2843
  borderRadius: 0,
2844
+ /**
2845
+ * Options for the breadcrumbs, the navigation at the top leading the
2846
+ * way up through the traversed levels.
2847
+ *
2848
+ *
2849
+ * @since 10.0.0
2850
+ * @product highcharts
2851
+ * @extends navigation.breadcrumbs
2852
+ * @optionparent plotOptions.treemap.breadcrumbs
2853
+ */
1903
2854
  /**
1904
2855
  * When the series contains less points than the crop threshold, all
1905
2856
  * points are drawn, event if the points fall outside the visible plot
@@ -1922,10 +2873,11 @@
1922
2873
  * additional properties `newRootId`, `previousRootId`, `redraw` and
1923
2874
  * `trigger`.
1924
2875
  *
1925
- * @type {function}
1926
- * @default undefined
1927
2876
  * @sample {highcharts} highcharts/plotoptions/treemap-events-setrootnode/
1928
2877
  * Alert update information on setRootNode event.
2878
+ *
2879
+ * @type {Function}
2880
+ * @default undefined
1929
2881
  * @since 7.0.3
1930
2882
  * @product highcharts
1931
2883
  * @apioption plotOptions.treemap.events.setRootNode
@@ -2062,52 +3014,12 @@
2062
3014
  */
2063
3015
  levelIsConstant: true,
2064
3016
  /**
2065
- * Options for the button appearing when drilling down in a treemap.
2066
- * Deprecated and replaced by
2067
- * [traverseUpButton](#plotOptions.treemap.traverseUpButton).
3017
+ * Options for the button appearing when traversing down in a treemap.
3018
+ *
3019
+ * Since v9.3.3 the `traverseUpButton` is replaced by `breadcrumbs`.
2068
3020
  *
2069
3021
  * @deprecated
2070
3022
  */
2071
- drillUpButton: {
2072
- /**
2073
- * The position of the button.
2074
- *
2075
- * @deprecated
2076
- */
2077
- position: {
2078
- /**
2079
- * Vertical alignment of the button.
2080
- *
2081
- * @deprecated
2082
- * @type {Highcharts.VerticalAlignValue}
2083
- * @default top
2084
- * @product highcharts
2085
- * @apioption plotOptions.treemap.drillUpButton.position.verticalAlign
2086
- */
2087
- /**
2088
- * Horizontal alignment of the button.
2089
- *
2090
- * @deprecated
2091
- * @type {Highcharts.AlignValue}
2092
- */
2093
- align: 'right',
2094
- /**
2095
- * Horizontal offset of the button.
2096
- *
2097
- * @deprecated
2098
- */
2099
- x: -10,
2100
- /**
2101
- * Vertical offset of the button.
2102
- *
2103
- * @deprecated
2104
- */
2105
- y: 10
2106
- }
2107
- },
2108
- /**
2109
- * Options for the button appearing when traversing down in a treemap.
2110
- */
2111
3023
  traverseUpButton: {
2112
3024
  /**
2113
3025
  * The position of the button.
@@ -2342,7 +3254,6 @@
2342
3254
  recursive: TreemapUtilities.recursive
2343
3255
  }
2344
3256
  });
2345
- ColorMapComposition.compose(TreemapSeries);
2346
3257
  SeriesRegistry.registerSeriesType('treemap', TreemapSeries);
2347
3258
  /* *
2348
3259
  *
@@ -2440,8 +3351,10 @@
2440
3351
 
2441
3352
  return TreemapSeries;
2442
3353
  });
2443
- _registerModule(_modules, 'masters/modules/treemap.src.js', [], function () {
3354
+ _registerModule(_modules, 'masters/modules/treemap.src.js', [_modules['Core/Globals.js'], _modules['Extensions/Breadcrumbs.js']], function (Highcharts, Breadcrumbs) {
2444
3355
 
3356
+ var G = Highcharts;
3357
+ G.Breadcrumbs = Breadcrumbs;
2445
3358
 
2446
3359
  });
2447
3360
  }));