highcharts 9.3.3 → 10.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (917) hide show
  1. package/bower.json +1 -1
  2. package/css/highcharts.css +19 -2
  3. package/css/highcharts.scss +17 -2
  4. package/css/themes/dark-unica.css +19 -2
  5. package/css/themes/grid-light.css +19 -2
  6. package/css/themes/sand-signika.css +19 -2
  7. package/es-modules/Accessibility/A11yI18n.js +4 -4
  8. package/es-modules/Accessibility/Accessibility.js +3 -4
  9. package/es-modules/Accessibility/Components/AnnotationsA11y.js +3 -3
  10. package/es-modules/Accessibility/Components/ContainerComponent.js +11 -10
  11. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +18 -11
  12. package/es-modules/Accessibility/Components/LegendComponent.js +34 -26
  13. package/es-modules/Accessibility/Components/MenuComponent.js +7 -6
  14. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +5 -3
  15. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +7 -6
  16. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +1 -1
  17. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +3 -2
  18. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +34 -18
  19. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +96 -39
  20. package/es-modules/Accessibility/Components/ZoomComponent.js +43 -80
  21. package/es-modules/Accessibility/FocusBorder.js +6 -5
  22. package/es-modules/Accessibility/HighContrastMode.js +3 -3
  23. package/es-modules/Accessibility/KeyboardNavigation.js +113 -98
  24. package/es-modules/Accessibility/Options/{Options.js → A11yDefaults.js} +72 -4
  25. package/es-modules/Accessibility/Options/DeprecatedOptions.js +12 -2
  26. package/es-modules/Accessibility/Options/{LangOptions.js → LangDefaults.js} +46 -31
  27. package/es-modules/Accessibility/ProxyElement.js +14 -6
  28. package/es-modules/Accessibility/ProxyProvider.js +10 -2
  29. package/es-modules/Accessibility/Utils/ChartUtilities.js +10 -5
  30. package/es-modules/Core/Animation/Fx.js +1 -1
  31. package/es-modules/Core/Axis/Axis.js +197 -91
  32. package/es-modules/Core/Axis/AxisDefaults.js +8 -8
  33. package/es-modules/Core/Axis/Color/ColorAxis.js +26 -7
  34. package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +3 -3
  35. package/es-modules/Core/Axis/DateTimeAxis.js +5 -3
  36. package/es-modules/Core/Axis/GridAxis.js +821 -821
  37. package/es-modules/Core/Axis/LogarithmicAxis.js +1 -1
  38. package/es-modules/Core/Axis/OrdinalAxis.js +26 -3
  39. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +3 -3
  40. package/es-modules/Core/Axis/StackingAxis.js +0 -1
  41. package/es-modules/Core/Axis/Tick.js +22 -18
  42. package/es-modules/Core/Axis/TreeGridTick.js +13 -2
  43. package/es-modules/Core/Axis/ZAxis.js +3 -1
  44. package/es-modules/Core/Chart/Chart.js +27 -8
  45. package/es-modules/Core/Chart/Chart3D.js +1 -11
  46. package/es-modules/Core/Chart/ChartDefaults.js +46 -14
  47. package/es-modules/Core/Chart/GanttChart.js +3 -1
  48. package/es-modules/Core/Chart/MapChart.js +4 -7
  49. package/es-modules/Core/Chart/StockChart.js +7 -5
  50. package/es-modules/Core/Color/Color.js +1 -1
  51. package/es-modules/Core/DefaultOptions.js +19 -15
  52. package/es-modules/Core/Geometry/PolygonClip.js +84 -0
  53. package/es-modules/Core/Globals.js +4 -18
  54. package/es-modules/Core/HttpUtilities.js +46 -39
  55. package/es-modules/Core/Legend/Legend.js +14 -12
  56. package/es-modules/Core/MSPointer.js +3 -1
  57. package/es-modules/Core/Navigator.js +16 -13
  58. package/es-modules/Core/Pointer.js +16 -12
  59. package/es-modules/Core/Renderer/HTML/AST.js +68 -8
  60. package/es-modules/Core/Renderer/HTML/HTMLElement.js +3 -1
  61. package/es-modules/Core/Renderer/HTML/HTMLRenderer.js +3 -1
  62. package/es-modules/Core/Renderer/SVG/SVGElement.js +54 -70
  63. package/es-modules/Core/Renderer/SVG/SVGElement3D.js +17 -5
  64. package/es-modules/Core/Renderer/SVG/SVGLabel.js +3 -1
  65. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +60 -55
  66. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +4 -2
  67. package/es-modules/Core/Renderer/SVG/TextBuilder.js +12 -10
  68. package/es-modules/Core/Scrollbar.js +9 -5
  69. package/es-modules/Core/ScrollbarDefaults.js +8 -8
  70. package/es-modules/Core/Series/DataLabel.js +67 -38
  71. package/es-modules/Core/Series/Point.js +11 -2
  72. package/es-modules/Core/Series/Series.js +57 -27
  73. package/es-modules/Core/Series/Series3D.js +3 -1
  74. package/es-modules/Core/Series/SeriesDefaults.js +7 -4
  75. package/es-modules/Core/Time.js +6 -7
  76. package/es-modules/Core/Tooltip.js +17 -34
  77. package/es-modules/Core/Utilities.js +33 -33
  78. package/es-modules/Data/DataConverter.js +1 -1
  79. package/es-modules/Data/DataTable.js +12 -10
  80. package/es-modules/Data/Modifiers/ChainModifier.js +3 -1
  81. package/es-modules/Data/Modifiers/GroupModifier.js +3 -1
  82. package/es-modules/Data/Modifiers/InvertModifier.js +9 -7
  83. package/es-modules/Data/Modifiers/RangeModifier.js +3 -1
  84. package/es-modules/Data/Modifiers/SeriesPointsModifier.js +3 -1
  85. package/es-modules/Data/Modifiers/SortModifier.js +3 -1
  86. package/es-modules/Data/Parsers/CSVParser.js +3 -1
  87. package/es-modules/Data/Parsers/DataParser.js +1 -1
  88. package/es-modules/Data/Parsers/GoogleSheetsParser.js +3 -2
  89. package/es-modules/Data/Parsers/HTMLTableParser.js +3 -1
  90. package/es-modules/Data/Stores/CSVStore.js +8 -5
  91. package/es-modules/Data/Stores/GoogleSheetsStore.js +3 -1
  92. package/es-modules/Data/Stores/HTMLTableStore.js +3 -1
  93. package/es-modules/Extensions/Annotations/{Annotations.js → Annotation.js} +30 -11
  94. package/es-modules/Extensions/Annotations/AnnotationsDefaults.js +0 -0
  95. package/es-modules/Extensions/Annotations/ControlPoint.js +1 -1
  96. package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +5 -2
  97. package/es-modules/Extensions/Annotations/MockPoint.js +1 -1
  98. package/es-modules/Extensions/Annotations/NavigationBindings.js +16 -5
  99. package/es-modules/Extensions/Annotations/Popup.js +2 -2
  100. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +18 -12
  101. package/es-modules/Extensions/Annotations/Types/CrookedLine.js +4 -2
  102. package/es-modules/Extensions/Annotations/Types/ElliottWave.js +4 -2
  103. package/es-modules/Extensions/Annotations/Types/Fibonacci.js +5 -3
  104. package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +4 -2
  105. package/es-modules/Extensions/Annotations/Types/InfinityLine.js +4 -2
  106. package/es-modules/Extensions/Annotations/Types/Measure.js +4 -2
  107. package/es-modules/Extensions/Annotations/Types/Pitchfork.js +4 -2
  108. package/es-modules/Extensions/Annotations/Types/TimeCycles.js +4 -2
  109. package/es-modules/Extensions/Annotations/Types/Tunnel.js +5 -2
  110. package/es-modules/Extensions/Annotations/Types/VerticalLine.js +4 -2
  111. package/es-modules/Extensions/Boost/BoostAttach.js +5 -1
  112. package/es-modules/Extensions/Boost/BoostInit.js +9 -3
  113. package/es-modules/Extensions/Boost/BoostOptions.js +26 -0
  114. package/es-modules/Extensions/Boost/Boostables.js +1 -0
  115. package/es-modules/Extensions/Boost/WGLRenderer.js +48 -37
  116. package/es-modules/Extensions/Boost/WGLShader.js +4 -3
  117. package/es-modules/Extensions/BoostCanvas.js +11 -5
  118. package/es-modules/Extensions/Breadcrumbs.js +898 -0
  119. package/es-modules/Extensions/CurrentDateIndication.js +1 -1
  120. package/es-modules/Extensions/Data.js +661 -613
  121. package/es-modules/Extensions/DataGrouping.js +8 -3
  122. package/es-modules/Extensions/Debugger/ErrorMessages.js +4 -0
  123. package/es-modules/Extensions/DownloadURL.js +3 -3
  124. package/es-modules/Extensions/DragPanes.js +1 -1
  125. package/es-modules/Extensions/DraggablePoints.js +9 -7
  126. package/es-modules/Extensions/Drilldown.js +152 -97
  127. package/es-modules/Extensions/ExportData.js +58 -9
  128. package/es-modules/Extensions/Exporting/Exporting.js +34 -23
  129. package/es-modules/Extensions/Exporting/ExportingDefaults.js +56 -8
  130. package/es-modules/Extensions/FullScreen.js +121 -54
  131. package/es-modules/Extensions/GeoJSON.js +149 -125
  132. package/es-modules/Extensions/MarkerClusters.js +36 -22
  133. package/es-modules/Extensions/NoDataToDisplay.js +1 -1
  134. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +110 -22
  135. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  136. package/es-modules/Extensions/Oldie/Oldie.js +2 -2
  137. package/es-modules/Extensions/OverlappingDataLabels.js +5 -4
  138. package/es-modules/Extensions/Pane.js +3 -3
  139. package/es-modules/Extensions/ParallelCoordinates.js +1 -1
  140. package/es-modules/Extensions/PatternFill.js +14 -2
  141. package/es-modules/Extensions/RangeSelector.js +29 -18
  142. package/es-modules/Extensions/ScrollablePlotArea.js +8 -4
  143. package/es-modules/Extensions/{SeriesLabel.js → SeriesLabel/SeriesLabel.js} +262 -384
  144. package/es-modules/Extensions/SeriesLabel/SeriesLabelDefaults.js +124 -0
  145. package/es-modules/Extensions/SeriesLabel/SeriesLabelUtilities.js +67 -0
  146. package/es-modules/Extensions/Sonification/Earcon.js +1 -1
  147. package/es-modules/Extensions/Stacking.js +5 -4
  148. package/es-modules/Extensions/Themes/HighContrastDark.js +10 -10
  149. package/es-modules/Extensions/Themes/HighContrastLight.js +10 -10
  150. package/es-modules/Maps/MapNavigation.js +49 -12
  151. package/es-modules/Maps/MapPointer.js +16 -0
  152. package/es-modules/Maps/MapUtilities.js +56 -0
  153. package/es-modules/Maps/MapView.js +619 -137
  154. package/es-modules/Maps/MapViewInsetsOptionsDefault.js +148 -0
  155. package/es-modules/Maps/MapViewOptionsDefault.js +60 -20
  156. package/es-modules/Maps/Projection.js +182 -88
  157. package/es-modules/Maps/Projections/EqualEarth.js +15 -6
  158. package/es-modules/Maps/Projections/LambertConformalConic.js +27 -19
  159. package/es-modules/Maps/Projections/Miller.js +23 -10
  160. package/es-modules/Maps/Projections/Orthographic.js +21 -10
  161. package/es-modules/Maps/Projections/WebMercator.js +25 -13
  162. package/es-modules/Series/ArcDiagram/ArcDiagramPoint.js +79 -0
  163. package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +591 -0
  164. package/es-modules/Series/Area/AreaSeries.js +21 -14
  165. package/es-modules/Series/AreaRange/AreaRangePoint.js +24 -11
  166. package/es-modules/Series/AreaRange/AreaRangeSeries.js +154 -147
  167. package/es-modules/Series/AreaSpline/AreaSplineSeries.js +45 -41
  168. package/es-modules/Series/AreaSplineRange/AreaSplineRangeSeries.js +43 -43
  169. package/es-modules/Series/Bar/BarSeries.js +3 -1
  170. package/es-modules/Series/Bellcurve/BellcurveSeries.js +3 -1
  171. package/es-modules/Series/BoxPlot/BoxPlotSeries.js +4 -2
  172. package/es-modules/Series/Bubble/BubbleLegendDefaults.js +1 -1
  173. package/es-modules/Series/Bubble/BubblePoint.js +3 -1
  174. package/es-modules/Series/Bubble/BubbleSeries.js +15 -6
  175. package/es-modules/Series/Bullet/BulletPoint.js +3 -1
  176. package/es-modules/Series/Bullet/BulletSeries.js +4 -3
  177. package/es-modules/Series/Candlestick/CandlestickSeries.js +5 -3
  178. package/es-modules/Series/CenteredUtilities.js +8 -2
  179. package/es-modules/Series/ColorMapComposition.js +111 -0
  180. package/es-modules/Series/Column/ColumnSeries.js +10 -7
  181. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +3 -1
  182. package/es-modules/Series/ColumnRange/ColumnRangePoint.js +17 -13
  183. package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +60 -57
  184. package/es-modules/Series/Cylinder/CylinderPoint.js +3 -1
  185. package/es-modules/Series/Cylinder/CylinderSeries.js +3 -1
  186. package/es-modules/Series/DataModifyComposition.js +1 -0
  187. package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +3 -1
  188. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +5 -3
  189. package/es-modules/Series/DotPlot/DotPlotSeries.js +3 -1
  190. package/es-modules/Series/DrawPointUtilities.js +87 -0
  191. package/es-modules/Series/Dumbbell/DumbbellPoint.js +3 -1
  192. package/es-modules/Series/Dumbbell/DumbbellSeries.js +4 -2
  193. package/es-modules/Series/ErrorBar/ErrorBarSeries.js +4 -2
  194. package/es-modules/Series/Flags/FlagsPoint.js +4 -1
  195. package/es-modules/Series/Flags/FlagsSeries.js +13 -16
  196. package/es-modules/Series/Funnel/FunnelSeries.js +5 -3
  197. package/es-modules/Series/Funnel3D/Funnel3DPoint.js +3 -1
  198. package/es-modules/Series/Funnel3D/Funnel3DSeries.js +3 -1
  199. package/es-modules/Series/Gantt/GanttPoint.js +3 -1
  200. package/es-modules/Series/Gantt/GanttSeries.js +3 -1
  201. package/es-modules/Series/Gauge/GaugePoint.js +3 -1
  202. package/es-modules/Series/Gauge/GaugeSeries.js +196 -174
  203. package/es-modules/Series/HLC/HLCPoint.js +3 -1
  204. package/es-modules/Series/HLC/HLCSeries.js +4 -2
  205. package/es-modules/Series/Heatmap/HeatmapPoint.js +7 -5
  206. package/es-modules/Series/Heatmap/HeatmapSeries.js +29 -33
  207. package/es-modules/Series/HeikinAshi/HeikinAshiPoint.js +3 -1
  208. package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +3 -1
  209. package/es-modules/Series/Histogram/HistogramSeries.js +3 -1
  210. package/es-modules/Series/HollowCandlestick/HollowCandlestickPoint.js +3 -1
  211. package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +11 -9
  212. package/es-modules/Series/Item/ItemPoint.js +3 -1
  213. package/es-modules/Series/Item/ItemSeries.js +3 -1
  214. package/es-modules/Series/Line/LineSeries.js +4 -2
  215. package/es-modules/Series/Lollipop/LollipopPoint.js +3 -1
  216. package/es-modules/Series/Lollipop/LollipopSeries.js +4 -2
  217. package/es-modules/Series/Map/MapPoint.js +32 -7
  218. package/es-modules/Series/Map/MapSeries.js +298 -189
  219. package/es-modules/Series/MapBubble/MapBubblePoint.js +19 -25
  220. package/es-modules/Series/MapBubble/MapBubbleSeries.js +61 -2
  221. package/es-modules/Series/MapLine/MapLineSeries.js +18 -1
  222. package/es-modules/Series/MapPoint/MapPointPoint.js +6 -10
  223. package/es-modules/Series/MapPoint/MapPointSeries.js +50 -16
  224. package/es-modules/Series/Networkgraph/Networkgraph.js +3 -1
  225. package/es-modules/Series/NodesComposition.js +101 -49
  226. package/es-modules/Series/OHLC/OHLCPoint.js +3 -1
  227. package/es-modules/Series/OHLC/OHLCSeries.js +10 -1
  228. package/es-modules/Series/Organization/OrganizationPoint.js +71 -3
  229. package/es-modules/Series/Organization/OrganizationSeries.js +84 -28
  230. package/es-modules/Series/PackedBubble/PackedBubbleComposition.js +0 -2
  231. package/es-modules/Series/PackedBubble/PackedBubblePoint.js +3 -1
  232. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +3 -1
  233. package/es-modules/Series/ParetoSeries/ParetoSeries.js +3 -1
  234. package/es-modules/Series/Pie/PieDataLabel.js +4 -2
  235. package/es-modules/Series/Pie/PiePoint.js +15 -6
  236. package/es-modules/Series/Pie/PieSeries.js +51 -37
  237. package/es-modules/Series/Pie3D/Pie3DPoint.js +3 -1
  238. package/es-modules/Series/Pie3D/Pie3DSeries.js +22 -1
  239. package/es-modules/Series/PolarComposition.js +819 -0
  240. package/es-modules/Series/Polygon/PolygonSeries.js +3 -1
  241. package/es-modules/Series/Pyramid/PyramidSeries.js +3 -1
  242. package/es-modules/Series/Pyramid3D/Pyramid3DSeries.js +3 -1
  243. package/es-modules/Series/Sankey/SankeyColumnComposition.js +193 -0
  244. package/es-modules/Series/Sankey/SankeyPoint.js +40 -2
  245. package/es-modules/Series/Sankey/SankeySeries.js +35 -136
  246. package/es-modules/Series/Scatter/ScatterSeries.js +11 -6
  247. package/es-modules/Series/Scatter3D/Scatter3DPoint.js +3 -1
  248. package/es-modules/Series/Scatter3D/Scatter3DSeries.js +3 -1
  249. package/es-modules/Series/SeriesOnPointComposition.js +391 -0
  250. package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +5 -3
  251. package/es-modules/Series/Spline/SplineSeries.js +13 -4
  252. package/es-modules/Series/Streamgraph/StreamgraphSeries.js +3 -1
  253. package/es-modules/Series/Sunburst/SunburstPoint.js +3 -3
  254. package/es-modules/Series/Sunburst/SunburstSeries.js +21 -5
  255. package/es-modules/Series/Tilemap/TilemapPoint.js +3 -1
  256. package/es-modules/Series/Tilemap/TilemapSeries.js +3 -1
  257. package/es-modules/Series/Timeline/TimelinePoint.js +3 -1
  258. package/es-modules/Series/Timeline/TimelineSeries.js +6 -4
  259. package/es-modules/Series/Treemap/TreemapPoint.js +8 -4
  260. package/es-modules/Series/Treemap/TreemapSeries.js +97 -87
  261. package/es-modules/Series/VariablePie/VariablePieSeries.js +3 -1
  262. package/es-modules/Series/Variwide/VariwidePoint.js +3 -1
  263. package/es-modules/Series/Variwide/VariwideSeries.js +3 -1
  264. package/es-modules/Series/Vector/VectorSeries.js +3 -1
  265. package/es-modules/Series/Venn/VennPoint.js +5 -5
  266. package/es-modules/Series/Venn/VennSeries.js +9 -6
  267. package/es-modules/Series/Waterfall/WaterfallPoint.js +3 -1
  268. package/es-modules/Series/Waterfall/WaterfallSeries.js +16 -12
  269. package/es-modules/Series/Windbarb/WindbarbPoint.js +3 -1
  270. package/es-modules/Series/Windbarb/WindbarbSeries.js +3 -1
  271. package/es-modules/Series/Wordcloud/WordcloudPoint.js +6 -6
  272. package/es-modules/Series/Wordcloud/WordcloudSeries.js +11 -8
  273. package/es-modules/Series/XRange/XRangePoint.js +3 -1
  274. package/es-modules/Series/XRange/XRangeSeries.js +3 -1
  275. package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +3 -1
  276. package/es-modules/Stock/Indicators/AD/ADIndicator.js +3 -1
  277. package/es-modules/Stock/Indicators/AO/AOIndicator.js +5 -3
  278. package/es-modules/Stock/Indicators/APO/APOIndicator.js +3 -1
  279. package/es-modules/Stock/Indicators/ATR/ATRIndicator.js +3 -1
  280. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +3 -1
  281. package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +3 -1
  282. package/es-modules/Stock/Indicators/BB/BBIndicator.js +6 -4
  283. package/es-modules/Stock/Indicators/CCI/CCIIndicator.js +3 -1
  284. package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +3 -1
  285. package/es-modules/Stock/Indicators/CMO/CMOIndicator.js +3 -1
  286. package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +3 -1
  287. package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +3 -1
  288. package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +13 -7
  289. package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +3 -1
  290. package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +3 -1
  291. package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +3 -1
  292. package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +3 -1
  293. package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +3 -1
  294. package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +3 -1
  295. package/es-modules/Stock/Indicators/LinearRegression/LinearRegression.js +3 -1
  296. package/es-modules/Stock/Indicators/LinearRegressionAngle/LinearRegressionAngle.js +3 -1
  297. package/es-modules/Stock/Indicators/LinearRegressionIntercept/LinearRegressionIntercept.js +3 -1
  298. package/es-modules/Stock/Indicators/LinearRegressionSlopes/LinearRegressionSlopes.js +3 -1
  299. package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +26 -13
  300. package/es-modules/Stock/Indicators/MFI/MFIIndicator.js +3 -1
  301. package/es-modules/Stock/Indicators/Momentum/MomentumIndicator.js +3 -1
  302. package/es-modules/Stock/Indicators/MultipleLinesComposition.js +85 -95
  303. package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +3 -1
  304. package/es-modules/Stock/Indicators/OBV/OBVIndicator.js +3 -1
  305. package/es-modules/Stock/Indicators/PC/PCIndicator.js +3 -1
  306. package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +3 -1
  307. package/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +3 -1
  308. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +3 -1
  309. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsPoint.js +3 -1
  310. package/es-modules/Stock/Indicators/PriceEnvelopes/PriceEnvelopesIndicator.js +3 -1
  311. package/es-modules/Stock/Indicators/ROC/ROCIndicator.js +3 -1
  312. package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +3 -1
  313. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +12 -3
  314. package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +3 -1
  315. package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +3 -1
  316. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +6 -4
  317. package/es-modules/Stock/Indicators/TEMA/TEMAIndicator.js +3 -1
  318. package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +3 -1
  319. package/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +3 -1
  320. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +3 -1
  321. package/es-modules/Stock/Indicators/VBP/VBPPoint.js +3 -1
  322. package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +3 -1
  323. package/es-modules/Stock/Indicators/WMA/WMAIndicator.js +3 -1
  324. package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +3 -1
  325. package/es-modules/Stock/Indicators/Zigzag/ZigzagIndicator.js +3 -1
  326. package/es-modules/Stock/StockToolsBindings.js +51 -43
  327. package/es-modules/Stock/StockToolsGui.js +1 -1
  328. package/es-modules/masters/highcharts-3d.src.js +1 -1
  329. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  330. package/es-modules/masters/highcharts-more.src.js +4 -4
  331. package/es-modules/masters/highcharts.src.js +1 -1
  332. package/es-modules/masters/highmaps.src.js +1 -1
  333. package/es-modules/masters/highstock.src.js +1 -1
  334. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  335. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  336. package/es-modules/masters/indicators/ao.src.js +1 -1
  337. package/es-modules/masters/indicators/apo.src.js +1 -1
  338. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  339. package/es-modules/masters/indicators/aroon.src.js +1 -1
  340. package/es-modules/masters/indicators/atr.src.js +1 -1
  341. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  342. package/es-modules/masters/indicators/cci.src.js +1 -1
  343. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  344. package/es-modules/masters/indicators/cmf.src.js +1 -1
  345. package/es-modules/masters/indicators/cmo.src.js +1 -1
  346. package/es-modules/masters/indicators/dema.src.js +1 -1
  347. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  348. package/es-modules/masters/indicators/dmi.src.js +1 -1
  349. package/es-modules/masters/indicators/dpo.src.js +1 -1
  350. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  351. package/es-modules/masters/indicators/indicators-all.src.js +1 -1
  352. package/es-modules/masters/indicators/indicators.src.js +1 -1
  353. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  354. package/es-modules/masters/indicators/klinger.src.js +1 -1
  355. package/es-modules/masters/indicators/macd.src.js +1 -1
  356. package/es-modules/masters/indicators/mfi.src.js +1 -1
  357. package/es-modules/masters/indicators/momentum.src.js +1 -1
  358. package/es-modules/masters/indicators/natr.src.js +1 -1
  359. package/es-modules/masters/indicators/obv.src.js +1 -1
  360. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  361. package/es-modules/masters/indicators/ppo.src.js +1 -1
  362. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  363. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  364. package/es-modules/masters/indicators/psar.src.js +1 -1
  365. package/es-modules/masters/indicators/regressions.src.js +1 -1
  366. package/es-modules/masters/indicators/roc.src.js +1 -1
  367. package/es-modules/masters/indicators/rsi.src.js +1 -1
  368. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  369. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  370. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  371. package/es-modules/masters/indicators/tema.src.js +1 -1
  372. package/es-modules/masters/indicators/trendline.src.js +1 -1
  373. package/es-modules/masters/indicators/trix.src.js +1 -1
  374. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  375. package/es-modules/masters/indicators/vwap.src.js +1 -1
  376. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  377. package/es-modules/masters/indicators/wma.src.js +1 -1
  378. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  379. package/es-modules/masters/modules/accessibility.src.js +1 -1
  380. package/es-modules/masters/modules/annotations-advanced.src.js +2 -2
  381. package/es-modules/masters/modules/annotations.src.js +2 -2
  382. package/es-modules/masters/modules/arc-diagram.src.js +14 -0
  383. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  384. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  385. package/es-modules/masters/modules/boost.src.js +1 -1
  386. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  387. package/es-modules/masters/modules/bullet.src.js +1 -1
  388. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  389. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  390. package/es-modules/masters/modules/cylinder.src.js +1 -1
  391. package/es-modules/masters/modules/data.src.js +2 -1
  392. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  393. package/es-modules/masters/modules/debugger.src.js +1 -1
  394. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  395. package/es-modules/masters/modules/dotplot.src.js +1 -1
  396. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  397. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  398. package/es-modules/masters/modules/drilldown.src.js +2 -1
  399. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  400. package/es-modules/masters/modules/export-data.src.js +1 -1
  401. package/es-modules/masters/modules/exporting.src.js +1 -1
  402. package/es-modules/masters/modules/full-screen.src.js +1 -1
  403. package/es-modules/masters/modules/funnel.src.js +1 -1
  404. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  405. package/es-modules/masters/modules/gantt.src.js +1 -1
  406. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  407. package/es-modules/masters/modules/heatmap.src.js +1 -1
  408. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  409. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  410. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  411. package/es-modules/masters/modules/item-series.src.js +1 -1
  412. package/es-modules/masters/modules/lollipop.src.js +1 -1
  413. package/es-modules/masters/modules/map.src.js +5 -1
  414. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  415. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  416. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  417. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  418. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  419. package/es-modules/masters/modules/oldie.src.js +1 -1
  420. package/es-modules/masters/modules/organization.src.js +1 -1
  421. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  422. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  423. package/es-modules/masters/modules/pareto.src.js +1 -1
  424. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  425. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  426. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  427. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  428. package/es-modules/masters/modules/sankey.src.js +1 -1
  429. package/es-modules/masters/modules/series-label.src.js +5 -2
  430. package/es-modules/masters/modules/series-on-point.src.js +16 -0
  431. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  432. package/es-modules/masters/modules/sonification.src.js +2 -6
  433. package/es-modules/masters/modules/static-scale.src.js +1 -1
  434. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  435. package/es-modules/masters/modules/stock.src.js +1 -1
  436. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  437. package/es-modules/masters/modules/sunburst.src.js +1 -1
  438. package/es-modules/masters/modules/tilemap.src.js +1 -1
  439. package/es-modules/masters/modules/timeline.src.js +1 -1
  440. package/es-modules/masters/modules/treegrid.src.js +1 -1
  441. package/es-modules/masters/modules/treemap.src.js +5 -1
  442. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  443. package/es-modules/masters/modules/variwide.src.js +1 -1
  444. package/es-modules/masters/modules/vector.src.js +1 -1
  445. package/es-modules/masters/modules/venn.src.js +1 -1
  446. package/es-modules/masters/modules/windbarb.src.js +1 -1
  447. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  448. package/es-modules/masters/modules/xrange.src.js +1 -1
  449. package/es-modules/masters/themes/avocado.src.js +1 -1
  450. package/es-modules/masters/themes/brand-dark.src.js +1 -1
  451. package/es-modules/masters/themes/brand-light.src.js +1 -1
  452. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  453. package/es-modules/masters/themes/dark-green.src.js +1 -1
  454. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  455. package/es-modules/masters/themes/gray.src.js +1 -1
  456. package/es-modules/masters/themes/grid-light.src.js +1 -1
  457. package/es-modules/masters/themes/grid.src.js +1 -1
  458. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  459. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  460. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  461. package/es-modules/masters/themes/skies.src.js +1 -1
  462. package/es-modules/masters/themes/sunset.src.js +1 -1
  463. package/highcharts-3d.js +99 -98
  464. package/highcharts-3d.js.map +1 -1
  465. package/highcharts-3d.src.js +51 -21
  466. package/highcharts-gantt.js +811 -801
  467. package/highcharts-gantt.js.map +1 -1
  468. package/highcharts-gantt.src.js +2020 -1607
  469. package/highcharts-more.d.ts +10 -0
  470. package/highcharts-more.js +194 -194
  471. package/highcharts-more.js.map +1 -1
  472. package/highcharts-more.src.d.ts +10 -0
  473. package/highcharts-more.src.js +3512 -3364
  474. package/highcharts.d.ts +12336 -965
  475. package/highcharts.js +595 -586
  476. package/highcharts.js.map +1 -1
  477. package/highcharts.src.d.ts +12336 -965
  478. package/highcharts.src.js +1047 -665
  479. package/highmaps.js +763 -728
  480. package/highmaps.js.map +1 -1
  481. package/highmaps.src.js +4482 -2639
  482. package/highstock.js +798 -788
  483. package/highstock.js.map +1 -1
  484. package/highstock.src.js +1177 -739
  485. package/indicators/acceleration-bands.d.ts +1 -17
  486. package/indicators/acceleration-bands.js +11 -11
  487. package/indicators/acceleration-bands.js.map +1 -1
  488. package/indicators/acceleration-bands.src.d.ts +1 -17
  489. package/indicators/acceleration-bands.src.js +99 -100
  490. package/indicators/accumulation-distribution.js +5 -5
  491. package/indicators/accumulation-distribution.js.map +1 -1
  492. package/indicators/accumulation-distribution.src.js +11 -2
  493. package/indicators/ao.js +6 -6
  494. package/indicators/ao.js.map +1 -1
  495. package/indicators/ao.src.js +13 -4
  496. package/indicators/apo.js +5 -5
  497. package/indicators/apo.js.map +1 -1
  498. package/indicators/apo.src.js +11 -2
  499. package/indicators/aroon-oscillator.d.ts +1 -17
  500. package/indicators/aroon-oscillator.js +10 -10
  501. package/indicators/aroon-oscillator.js.map +1 -1
  502. package/indicators/aroon-oscillator.src.d.ts +1 -17
  503. package/indicators/aroon-oscillator.src.js +99 -100
  504. package/indicators/aroon.d.ts +1 -17
  505. package/indicators/aroon.js +11 -11
  506. package/indicators/aroon.js.map +1 -1
  507. package/indicators/aroon.src.d.ts +1 -17
  508. package/indicators/aroon.src.js +99 -100
  509. package/indicators/atr.js +5 -5
  510. package/indicators/atr.js.map +1 -1
  511. package/indicators/atr.src.js +11 -2
  512. package/indicators/bollinger-bands.d.ts +1 -17
  513. package/indicators/bollinger-bands.js +11 -12
  514. package/indicators/bollinger-bands.js.map +1 -1
  515. package/indicators/bollinger-bands.src.d.ts +1 -17
  516. package/indicators/bollinger-bands.src.js +102 -103
  517. package/indicators/cci.js +5 -5
  518. package/indicators/cci.js.map +1 -1
  519. package/indicators/cci.src.js +11 -2
  520. package/indicators/chaikin.js +8 -8
  521. package/indicators/chaikin.js.map +1 -1
  522. package/indicators/chaikin.src.js +11 -2
  523. package/indicators/cmf.js +6 -6
  524. package/indicators/cmf.js.map +1 -1
  525. package/indicators/cmf.src.js +11 -2
  526. package/indicators/cmo.js +5 -5
  527. package/indicators/cmo.js.map +1 -1
  528. package/indicators/cmo.src.js +11 -2
  529. package/indicators/dema.js +5 -5
  530. package/indicators/dema.js.map +1 -1
  531. package/indicators/dema.src.js +11 -2
  532. package/indicators/disparity-index.js +6 -6
  533. package/indicators/disparity-index.js.map +1 -1
  534. package/indicators/disparity-index.src.js +11 -2
  535. package/indicators/dmi.js +12 -12
  536. package/indicators/dmi.js.map +1 -1
  537. package/indicators/dmi.src.js +109 -106
  538. package/indicators/dpo.js +5 -5
  539. package/indicators/dpo.js.map +1 -1
  540. package/indicators/dpo.src.js +11 -2
  541. package/indicators/ema.js +2 -1
  542. package/indicators/ema.js.map +1 -1
  543. package/indicators/ema.src.js +10 -1
  544. package/indicators/ichimoku-kinko-hyo.js +16 -16
  545. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  546. package/indicators/ichimoku-kinko-hyo.src.js +11 -2
  547. package/indicators/indicators-all.d.ts +1 -17
  548. package/indicators/indicators-all.js +198 -196
  549. package/indicators/indicators-all.js.map +1 -1
  550. package/indicators/indicators-all.src.d.ts +1 -17
  551. package/indicators/indicators-all.src.js +151 -129
  552. package/indicators/indicators.js +13 -12
  553. package/indicators/indicators.js.map +1 -1
  554. package/indicators/indicators.src.js +21 -5
  555. package/indicators/keltner-channels.d.ts +1 -17
  556. package/indicators/keltner-channels.js +11 -11
  557. package/indicators/keltner-channels.js.map +1 -1
  558. package/indicators/keltner-channels.src.d.ts +1 -17
  559. package/indicators/keltner-channels.src.js +99 -100
  560. package/indicators/klinger.js +14 -14
  561. package/indicators/klinger.js.map +1 -1
  562. package/indicators/klinger.src.js +99 -100
  563. package/indicators/macd.js +13 -11
  564. package/indicators/macd.js.map +1 -1
  565. package/indicators/macd.src.js +35 -14
  566. package/indicators/mfi.js +6 -6
  567. package/indicators/mfi.js.map +1 -1
  568. package/indicators/mfi.src.js +11 -2
  569. package/indicators/momentum.js +5 -5
  570. package/indicators/momentum.js.map +1 -1
  571. package/indicators/momentum.src.js +11 -2
  572. package/indicators/natr.js +5 -4
  573. package/indicators/natr.js.map +1 -1
  574. package/indicators/natr.src.js +11 -2
  575. package/indicators/obv.js +5 -5
  576. package/indicators/obv.js.map +1 -1
  577. package/indicators/obv.src.js +11 -2
  578. package/indicators/pivot-points.js +11 -11
  579. package/indicators/pivot-points.js.map +1 -1
  580. package/indicators/pivot-points.src.js +11 -2
  581. package/indicators/ppo.js +5 -5
  582. package/indicators/ppo.js.map +1 -1
  583. package/indicators/ppo.src.js +11 -2
  584. package/indicators/price-channel.d.ts +1 -17
  585. package/indicators/price-channel.js +11 -11
  586. package/indicators/price-channel.js.map +1 -1
  587. package/indicators/price-channel.src.d.ts +1 -17
  588. package/indicators/price-channel.src.js +99 -100
  589. package/indicators/price-envelopes.js +8 -8
  590. package/indicators/price-envelopes.js.map +1 -1
  591. package/indicators/price-envelopes.src.js +11 -2
  592. package/indicators/psar.js +7 -6
  593. package/indicators/psar.js.map +1 -1
  594. package/indicators/psar.src.js +11 -2
  595. package/indicators/regressions.js +12 -12
  596. package/indicators/regressions.js.map +1 -1
  597. package/indicators/regressions.src.js +11 -2
  598. package/indicators/roc.js +5 -5
  599. package/indicators/roc.js.map +1 -1
  600. package/indicators/roc.src.js +11 -2
  601. package/indicators/rsi.js +6 -5
  602. package/indicators/rsi.js.map +1 -1
  603. package/indicators/rsi.src.js +11 -2
  604. package/indicators/slow-stochastic.js +5 -5
  605. package/indicators/slow-stochastic.js.map +1 -1
  606. package/indicators/slow-stochastic.src.js +11 -2
  607. package/indicators/stochastic.d.ts +1 -17
  608. package/indicators/stochastic.js +12 -12
  609. package/indicators/stochastic.js.map +1 -1
  610. package/indicators/stochastic.src.d.ts +1 -17
  611. package/indicators/stochastic.src.js +99 -100
  612. package/indicators/supertrend.js +10 -10
  613. package/indicators/supertrend.js.map +1 -1
  614. package/indicators/supertrend.src.js +14 -5
  615. package/indicators/tema.js +6 -6
  616. package/indicators/tema.js.map +1 -1
  617. package/indicators/tema.src.js +11 -2
  618. package/indicators/trendline.js +5 -5
  619. package/indicators/trendline.js.map +1 -1
  620. package/indicators/trendline.src.js +11 -2
  621. package/indicators/trix.js +4 -4
  622. package/indicators/trix.js.map +1 -1
  623. package/indicators/trix.src.js +11 -2
  624. package/indicators/volume-by-price.js +17 -17
  625. package/indicators/volume-by-price.js.map +1 -1
  626. package/indicators/volume-by-price.src.js +11 -2
  627. package/indicators/vwap.js +5 -5
  628. package/indicators/vwap.js.map +1 -1
  629. package/indicators/vwap.src.js +11 -2
  630. package/indicators/williams-r.js +6 -5
  631. package/indicators/williams-r.js.map +1 -1
  632. package/indicators/williams-r.src.js +11 -2
  633. package/indicators/wma.js +5 -5
  634. package/indicators/wma.js.map +1 -1
  635. package/indicators/wma.src.js +11 -2
  636. package/indicators/zigzag.js +6 -6
  637. package/indicators/zigzag.js.map +1 -1
  638. package/indicators/zigzag.src.js +11 -2
  639. package/lib/jspdf.js +299 -184
  640. package/lib/jspdf.src.js +25266 -18067
  641. package/lib/svg2pdf.js +35 -31
  642. package/lib/svg2pdf.src.js +5721 -4179
  643. package/modules/accessibility.js +242 -237
  644. package/modules/accessibility.js.map +1 -1
  645. package/modules/accessibility.src.js +599 -390
  646. package/modules/annotations-advanced.js +192 -192
  647. package/modules/annotations-advanced.js.map +1 -1
  648. package/modules/annotations-advanced.src.js +96 -47
  649. package/modules/annotations.js +126 -126
  650. package/modules/annotations.js.map +1 -1
  651. package/modules/annotations.src.js +67 -25
  652. package/modules/arc-diagram.js +25 -0
  653. package/modules/arc-diagram.js.map +1 -0
  654. package/modules/arc-diagram.src.js +778 -0
  655. package/modules/arrow-symbols.js +4 -3
  656. package/modules/arrow-symbols.js.map +1 -1
  657. package/modules/arrow-symbols.src.js +11 -2
  658. package/modules/boost-canvas.js +16 -15
  659. package/modules/boost-canvas.js.map +1 -1
  660. package/modules/boost-canvas.src.js +22 -7
  661. package/modules/boost.js +81 -79
  662. package/modules/boost.js.map +1 -1
  663. package/modules/boost.src.js +90 -51
  664. package/modules/broken-axis.js +13 -13
  665. package/modules/broken-axis.js.map +1 -1
  666. package/modules/broken-axis.src.js +11 -2
  667. package/modules/bullet.js +9 -9
  668. package/modules/bullet.js.map +1 -1
  669. package/modules/bullet.src.js +12 -6
  670. package/modules/coloraxis.js +24 -24
  671. package/modules/coloraxis.js.map +1 -1
  672. package/modules/coloraxis.src.js +37 -11
  673. package/modules/current-date-indicator.js +5 -4
  674. package/modules/current-date-indicator.js.map +1 -1
  675. package/modules/current-date-indicator.src.js +12 -3
  676. package/modules/cylinder.js +11 -11
  677. package/modules/cylinder.js.map +1 -1
  678. package/modules/cylinder.src.js +11 -2
  679. package/modules/data.d.ts +12 -12
  680. package/modules/data.js +33 -33
  681. package/modules/data.js.map +1 -1
  682. package/modules/data.src.d.ts +12 -12
  683. package/modules/data.src.js +906 -846
  684. package/modules/datagrouping.js +21 -20
  685. package/modules/datagrouping.js.map +1 -1
  686. package/modules/datagrouping.src.js +19 -5
  687. package/modules/debugger.js +8 -7
  688. package/modules/debugger.js.map +1 -1
  689. package/modules/debugger.src.js +15 -2
  690. package/modules/dependency-wheel.js +12 -11
  691. package/modules/dependency-wheel.js.map +1 -1
  692. package/modules/dependency-wheel.src.js +14 -5
  693. package/modules/dotplot.js +6 -6
  694. package/modules/dotplot.js.map +1 -1
  695. package/modules/dotplot.src.js +11 -2
  696. package/modules/drag-panes.js +10 -10
  697. package/modules/drag-panes.js.map +1 -1
  698. package/modules/drag-panes.src.js +12 -3
  699. package/modules/draggable-points.js +35 -34
  700. package/modules/draggable-points.js.map +1 -1
  701. package/modules/draggable-points.src.js +20 -9
  702. package/modules/drilldown.d.ts +19 -0
  703. package/modules/drilldown.js +37 -25
  704. package/modules/drilldown.js.map +1 -1
  705. package/modules/drilldown.src.d.ts +19 -0
  706. package/modules/drilldown.src.js +1124 -108
  707. package/modules/dumbbell.d.ts +4 -0
  708. package/modules/dumbbell.js +17 -17
  709. package/modules/dumbbell.js.map +1 -1
  710. package/modules/dumbbell.src.d.ts +4 -0
  711. package/modules/dumbbell.src.js +34 -13
  712. package/modules/export-data.js +24 -21
  713. package/modules/export-data.js.map +1 -1
  714. package/modules/export-data.src.js +87 -14
  715. package/modules/exporting.d.ts +8 -8
  716. package/modules/exporting.js +39 -39
  717. package/modules/exporting.js.map +1 -1
  718. package/modules/exporting.src.d.ts +8 -8
  719. package/modules/exporting.src.js +270 -135
  720. package/modules/full-screen.js +8 -7
  721. package/modules/full-screen.js.map +1 -1
  722. package/modules/full-screen.src.js +135 -58
  723. package/modules/funnel.js +12 -12
  724. package/modules/funnel.js.map +1 -1
  725. package/modules/funnel.src.js +13 -4
  726. package/modules/funnel3d.js +21 -21
  727. package/modules/funnel3d.js.map +1 -1
  728. package/modules/funnel3d.src.js +11 -2
  729. package/modules/gantt.js +218 -217
  730. package/modules/gantt.js.map +1 -1
  731. package/modules/gantt.src.js +983 -943
  732. package/modules/grid-axis.js +23 -23
  733. package/modules/grid-axis.js.map +1 -1
  734. package/modules/grid-axis.src.js +900 -890
  735. package/modules/heatmap.js +40 -39
  736. package/modules/heatmap.js.map +1 -1
  737. package/modules/heatmap.src.js +160 -113
  738. package/modules/heikinashi.js +8 -8
  739. package/modules/heikinashi.js.map +1 -1
  740. package/modules/heikinashi.src.js +11 -2
  741. package/modules/histogram-bellcurve.js +13 -13
  742. package/modules/histogram-bellcurve.js.map +1 -1
  743. package/modules/histogram-bellcurve.src.js +11 -2
  744. package/modules/hollowcandlestick.js +9 -9
  745. package/modules/hollowcandlestick.js.map +1 -1
  746. package/modules/hollowcandlestick.src.js +19 -10
  747. package/modules/item-series.js +12 -12
  748. package/modules/item-series.js.map +1 -1
  749. package/modules/item-series.src.js +11 -2
  750. package/modules/lollipop.js +7 -7
  751. package/modules/lollipop.js.map +1 -1
  752. package/modules/lollipop.src.js +12 -3
  753. package/modules/map.d.ts +80 -43
  754. package/modules/map.js +171 -144
  755. package/modules/map.js.map +1 -1
  756. package/modules/map.src.d.ts +80 -43
  757. package/modules/map.src.js +8292 -6822
  758. package/modules/marker-clusters.js +36 -36
  759. package/modules/marker-clusters.js.map +1 -1
  760. package/modules/marker-clusters.src.js +48 -28
  761. package/modules/networkgraph.d.ts +1 -12
  762. package/modules/networkgraph.js +46 -45
  763. package/modules/networkgraph.js.map +1 -1
  764. package/modules/networkgraph.src.d.ts +1 -12
  765. package/modules/networkgraph.src.js +127 -55
  766. package/modules/no-data-to-display.js +5 -5
  767. package/modules/no-data-to-display.js.map +1 -1
  768. package/modules/no-data-to-display.src.js +12 -3
  769. package/modules/offline-exporting.js +20 -18
  770. package/modules/offline-exporting.js.map +1 -1
  771. package/modules/offline-exporting.src.js +129 -28
  772. package/modules/oldie-polyfills.js +7 -7
  773. package/modules/oldie-polyfills.js.map +1 -1
  774. package/modules/oldie-polyfills.src.js +11 -2
  775. package/modules/oldie.js +30 -30
  776. package/modules/oldie.js.map +1 -1
  777. package/modules/oldie.src.js +13 -4
  778. package/modules/organization.js +16 -14
  779. package/modules/organization.js.map +1 -1
  780. package/modules/organization.src.js +168 -34
  781. package/modules/overlapping-datalabels.js +3 -2
  782. package/modules/overlapping-datalabels.js.map +1 -1
  783. package/modules/overlapping-datalabels.src.js +11 -2
  784. package/modules/parallel-coordinates.js +11 -11
  785. package/modules/parallel-coordinates.js.map +1 -1
  786. package/modules/parallel-coordinates.src.js +12 -3
  787. package/modules/pareto.js +7 -7
  788. package/modules/pareto.js.map +1 -1
  789. package/modules/pareto.src.js +11 -2
  790. package/modules/pathfinder.js +31 -31
  791. package/modules/pathfinder.js.map +1 -1
  792. package/modules/pathfinder.src.js +11 -2
  793. package/modules/pattern-fill.js +15 -14
  794. package/modules/pattern-fill.js.map +1 -1
  795. package/modules/pattern-fill.src.js +25 -3
  796. package/modules/price-indicator.js +5 -5
  797. package/modules/price-indicator.js.map +1 -1
  798. package/modules/price-indicator.src.js +11 -2
  799. package/modules/pyramid3d.js +4 -4
  800. package/modules/pyramid3d.js.map +1 -1
  801. package/modules/pyramid3d.src.js +11 -2
  802. package/modules/sankey.d.ts +1 -12
  803. package/modules/sankey.js +32 -29
  804. package/modules/sankey.js.map +1 -1
  805. package/modules/sankey.src.d.ts +1 -12
  806. package/modules/sankey.src.js +422 -207
  807. package/modules/series-label.js +18 -17
  808. package/modules/series-label.js.map +1 -1
  809. package/modules/series-label.src.js +482 -386
  810. package/modules/series-on-point.js +18 -0
  811. package/modules/series-on-point.js.map +1 -0
  812. package/modules/series-on-point.src.js +464 -0
  813. package/modules/solid-gauge.js +10 -10
  814. package/modules/solid-gauge.js.map +1 -1
  815. package/modules/solid-gauge.src.js +15 -6
  816. package/modules/sonification.js +59 -59
  817. package/modules/sonification.js.map +1 -1
  818. package/modules/sonification.src.js +13 -8
  819. package/modules/static-scale.js +5 -4
  820. package/modules/static-scale.js.map +1 -1
  821. package/modules/static-scale.src.js +11 -2
  822. package/modules/stock-tools.js +167 -167
  823. package/modules/stock-tools.js.map +1 -1
  824. package/modules/stock-tools.src.js +118 -67
  825. package/modules/stock.js +205 -204
  826. package/modules/stock.js.map +1 -1
  827. package/modules/stock.src.js +141 -76
  828. package/modules/streamgraph.js +5 -4
  829. package/modules/streamgraph.js.map +1 -1
  830. package/modules/streamgraph.src.js +11 -2
  831. package/modules/sunburst.d.ts +3 -0
  832. package/modules/sunburst.js +73 -60
  833. package/modules/sunburst.js.map +1 -1
  834. package/modules/sunburst.src.d.ts +3 -0
  835. package/modules/sunburst.src.js +1391 -406
  836. package/modules/tilemap.js +17 -17
  837. package/modules/tilemap.js.map +1 -1
  838. package/modules/tilemap.src.js +11 -2
  839. package/modules/timeline.js +18 -18
  840. package/modules/timeline.js.map +1 -1
  841. package/modules/timeline.src.js +14 -5
  842. package/modules/treegrid.js +57 -56
  843. package/modules/treegrid.js.map +1 -1
  844. package/modules/treegrid.src.js +913 -892
  845. package/modules/treemap.d.ts +3 -0
  846. package/modules/treemap.js +54 -41
  847. package/modules/treemap.js.map +1 -1
  848. package/modules/treemap.src.d.ts +3 -0
  849. package/modules/treemap.src.js +1229 -255
  850. package/modules/variable-pie.js +9 -9
  851. package/modules/variable-pie.js.map +1 -1
  852. package/modules/variable-pie.src.js +11 -2
  853. package/modules/variwide.js +12 -12
  854. package/modules/variwide.js.map +1 -1
  855. package/modules/variwide.src.js +11 -2
  856. package/modules/vector.js +8 -7
  857. package/modules/vector.js.map +1 -1
  858. package/modules/vector.src.js +11 -2
  859. package/modules/venn.js +31 -31
  860. package/modules/venn.js.map +1 -1
  861. package/modules/venn.src.js +88 -105
  862. package/modules/windbarb.js +15 -15
  863. package/modules/windbarb.js.map +1 -1
  864. package/modules/windbarb.src.js +11 -2
  865. package/modules/wordcloud.js +23 -23
  866. package/modules/wordcloud.js.map +1 -1
  867. package/modules/wordcloud.src.js +92 -109
  868. package/modules/xrange.js +16 -16
  869. package/modules/xrange.js.map +1 -1
  870. package/modules/xrange.src.js +11 -2
  871. package/package.json +1 -1
  872. package/themes/avocado.js +4 -3
  873. package/themes/avocado.js.map +1 -1
  874. package/themes/avocado.src.js +11 -2
  875. package/themes/brand-dark.js +9 -8
  876. package/themes/brand-dark.js.map +1 -1
  877. package/themes/brand-dark.src.js +11 -2
  878. package/themes/brand-light.js +8 -8
  879. package/themes/brand-light.js.map +1 -1
  880. package/themes/brand-light.src.js +11 -2
  881. package/themes/dark-blue.js +9 -8
  882. package/themes/dark-blue.js.map +1 -1
  883. package/themes/dark-blue.src.js +11 -2
  884. package/themes/dark-green.js +9 -8
  885. package/themes/dark-green.js.map +1 -1
  886. package/themes/dark-green.src.js +11 -2
  887. package/themes/dark-unica.js +8 -7
  888. package/themes/dark-unica.js.map +1 -1
  889. package/themes/dark-unica.src.js +11 -2
  890. package/themes/gray.js +9 -8
  891. package/themes/gray.js.map +1 -1
  892. package/themes/gray.src.js +11 -2
  893. package/themes/grid-light.js +5 -4
  894. package/themes/grid-light.js.map +1 -1
  895. package/themes/grid-light.src.js +11 -2
  896. package/themes/grid.js +5 -5
  897. package/themes/grid.js.map +1 -1
  898. package/themes/grid.src.js +11 -2
  899. package/themes/high-contrast-dark.js +7 -7
  900. package/themes/high-contrast-dark.js.map +1 -1
  901. package/themes/high-contrast-dark.src.js +21 -12
  902. package/themes/high-contrast-light.js +3 -3
  903. package/themes/high-contrast-light.js.map +1 -1
  904. package/themes/high-contrast-light.src.js +21 -12
  905. package/themes/sand-signika.js +5 -5
  906. package/themes/sand-signika.js.map +1 -1
  907. package/themes/sand-signika.src.js +11 -2
  908. package/themes/skies.js +5 -5
  909. package/themes/skies.js.map +1 -1
  910. package/themes/skies.src.js +11 -2
  911. package/themes/sunset.js +3 -3
  912. package/themes/sunset.js.map +1 -1
  913. package/themes/sunset.src.js +11 -2
  914. package/es-modules/Extensions/Polar.js +0 -740
  915. package/es-modules/Maps/ProjectionDefinition.js +0 -9
  916. package/es-modules/Series/ColorMapMixin.js +0 -84
  917. package/es-modules/Series/DrawPointComposition.js +0 -111
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v9.3.3 (2022-02-01)
2
+ * @license Highcharts JS v10.2.0 (2022-07-05)
3
3
  *
4
4
  * Highcharts Drilldown module
5
5
  *
@@ -7,7 +7,6 @@
7
7
  * License: www.highcharts.com/license
8
8
  *
9
9
  */
10
- 'use strict';
11
10
  (function (factory) {
12
11
  if (typeof module === 'object' && module.exports) {
13
12
  factory['default'] = factory;
@@ -22,13 +21,979 @@
22
21
  factory(typeof Highcharts !== 'undefined' ? Highcharts : undefined);
23
22
  }
24
23
  }(function (Highcharts) {
24
+ 'use strict';
25
25
  var _modules = Highcharts ? Highcharts._modules : {};
26
26
  function _registerModule(obj, path, args, fn) {
27
27
  if (!obj.hasOwnProperty(path)) {
28
28
  obj[path] = fn.apply(null, args);
29
+
30
+ if (typeof CustomEvent === 'function') {
31
+ window.dispatchEvent(
32
+ new CustomEvent(
33
+ 'HighchartsModuleLoaded',
34
+ { detail: { path: path, module: obj[path] }
35
+ })
36
+ );
37
+ }
29
38
  }
30
39
  }
31
- _registerModule(_modules, 'Extensions/Drilldown.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Axis/Axis.js'], _modules['Core/Chart/Chart.js'], _modules['Core/Color/Color.js'], _modules['Series/Column/ColumnSeries.js'], _modules['Core/FormatUtilities.js'], _modules['Core/Globals.js'], _modules['Core/DefaultOptions.js'], _modules['Core/Series/Point.js'], _modules['Core/Series/Series.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Renderer/SVG/SVGRenderer.js'], _modules['Core/Axis/Tick.js'], _modules['Core/Utilities.js']], function (A, Axis, Chart, Color, ColumnSeries, F, H, D, Point, Series, SeriesRegistry, SVGRenderer, Tick, U) {
40
+ _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) {
41
+ /* *
42
+ *
43
+ * Highcharts Breadcrumbs module
44
+ *
45
+ * Authors: Grzegorz Blachlinski, Karol Kolodziej
46
+ *
47
+ * License: www.highcharts.com/license
48
+ *
49
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
50
+ *
51
+ * */
52
+ var defaultOptions = D.defaultOptions;
53
+ var format = F.format;
54
+ var addEvent = U.addEvent,
55
+ objectEach = U.objectEach,
56
+ extend = U.extend,
57
+ fireEvent = U.fireEvent,
58
+ merge = U.merge,
59
+ pick = U.pick,
60
+ defined = U.defined,
61
+ isString = U.isString;
62
+ // Add language support.
63
+ extend(defaultOptions.lang,
64
+ /**
65
+ * @optionparent lang
66
+ */
67
+ {
68
+ /**
69
+ * @since 10.0.0
70
+ * @product highcharts
71
+ */
72
+ mainBreadcrumb: 'Main'
73
+ });
74
+ /**
75
+ * The Breadcrumbs class
76
+ *
77
+ * @private
78
+ * @class
79
+ * @name Highcharts.Breadcrumbs
80
+ *
81
+ * @param {Highcharts.Chart} chart
82
+ * Chart object
83
+ * @param {Highcharts.Options} userOptions
84
+ * User options
85
+ */
86
+ var Breadcrumbs = /** @class */ (function () {
87
+ function Breadcrumbs(chart, userOptions) {
88
+ /* *
89
+ *
90
+ * Properties
91
+ *
92
+ * */
93
+ this.group = void 0;
94
+ this.list = [];
95
+ this.elementList = {};
96
+ this.isDirty = true;
97
+ this.level = 0;
98
+ this.options = void 0;
99
+ var chartOptions = merge(chart.options.drilldown &&
100
+ chart.options.drilldown.drillUpButton,
101
+ Breadcrumbs.defaultBreadcrumbsOptions,
102
+ chart.options.navigation && chart.options.navigation.breadcrumbs,
103
+ userOptions);
104
+ this.chart = chart;
105
+ this.options = chartOptions || {};
106
+ }
107
+ /**
108
+ * Update Breadcrumbs properties, like level and list.
109
+ *
110
+ * @requires modules/breadcrumbs
111
+ *
112
+ * @function Highcharts.Breadcrumbs#updateProperties
113
+ * @param {Highcharts.Breadcrumbs} this
114
+ * Breadcrumbs class.
115
+ */
116
+ Breadcrumbs.prototype.updateProperties = function (list) {
117
+ this.setList(list);
118
+ this.setLevel();
119
+ this.isDirty = true;
120
+ };
121
+ /**
122
+ * Set breadcrumbs list.
123
+ * @function Highcharts.Breadcrumbs#setList
124
+ *
125
+ * @requires modules/breadcrumbs
126
+ *
127
+ * @param {Highcharts.Breadcrumbs} this
128
+ * Breadcrumbs class.
129
+ * @param {Highcharts.BreadcrumbsOptions} list
130
+ * Breadcrumbs list.
131
+ */
132
+ Breadcrumbs.prototype.setList = function (list) {
133
+ this.list = list;
134
+ };
135
+ /**
136
+ * Calcule level on which chart currently is.
137
+ *
138
+ * @requires modules/breadcrumbs
139
+ *
140
+ * @function Highcharts.Breadcrumbs#setLevel
141
+ * @param {Highcharts.Breadcrumbs} this
142
+ * Breadcrumbs class.
143
+ */
144
+ Breadcrumbs.prototype.setLevel = function () {
145
+ this.level = this.list.length && this.list.length - 1;
146
+ };
147
+ /**
148
+ * Get Breadcrumbs level
149
+ *
150
+ * @requires modules/breadcrumbs
151
+ *
152
+ * @function Highcharts.Breadcrumbs#getLevel
153
+ * @param {Highcharts.Breadcrumbs} this
154
+ * Breadcrumbs class.
155
+ */
156
+ Breadcrumbs.prototype.getLevel = function () {
157
+ return this.level;
158
+ };
159
+ /**
160
+ * Default button text formatter.
161
+ *
162
+ * @requires modules/breadcrumbs
163
+ *
164
+ * @function Highcharts.Breadcrumbs#getButtonText
165
+ * @param {Highcharts.Breadcrumbs} this
166
+ * Breadcrumbs class.
167
+ * @param {Highcharts.Breadcrumbs} breadcrumb
168
+ * Breadcrumb.
169
+ * @return {string}
170
+ * Formatted text.
171
+ */
172
+ Breadcrumbs.prototype.getButtonText = function (breadcrumb) {
173
+ var breadcrumbs = this,
174
+ chart = breadcrumbs.chart,
175
+ breadcrumbsOptions = breadcrumbs.options,
176
+ lang = chart.options.lang,
177
+ textFormat = pick(breadcrumbsOptions.format,
178
+ breadcrumbsOptions.showFullPath ?
179
+ '{level.name}' : '← {level.name}'),
180
+ defaultText = lang && pick(lang.drillUpText,
181
+ lang.mainBreadcrumb);
182
+ var returnText = breadcrumbsOptions.formatter &&
183
+ breadcrumbsOptions.formatter(breadcrumb) ||
184
+ format(textFormat, { level: breadcrumb.levelOptions },
185
+ chart) || '';
186
+ if (((isString(returnText) &&
187
+ !returnText.length) ||
188
+ returnText === '← ') &&
189
+ defined(defaultText)) {
190
+ returnText = !breadcrumbsOptions.showFullPath ?
191
+ '← ' + defaultText :
192
+ defaultText;
193
+ }
194
+ return returnText;
195
+ };
196
+ /**
197
+ * Redraw.
198
+ *
199
+ * @requires modules/breadcrums
200
+ *
201
+ * @function Highcharts.Breadcrumbs#redraw
202
+ * @param {Highcharts.Breadcrumbs} this
203
+ * Breadcrumbs class.
204
+ */
205
+ Breadcrumbs.prototype.redraw = function () {
206
+ if (this.isDirty) {
207
+ this.render();
208
+ }
209
+ if (this.group) {
210
+ this.group.align();
211
+ }
212
+ this.isDirty = false;
213
+ };
214
+ /**
215
+ * Create a group, then draw breadcrumbs together with the separators.
216
+ *
217
+ * @requires modules/breadcrumbs
218
+ *
219
+ * @function Highcharts.Breadcrumbs#render
220
+ * @param {Highcharts.Breadcrumbs} this
221
+ * Breadcrumbs class.
222
+ */
223
+ Breadcrumbs.prototype.render = function () {
224
+ var breadcrumbs = this,
225
+ chart = breadcrumbs.chart,
226
+ breadcrumbsOptions = breadcrumbs.options;
227
+ // A main group for the breadcrumbs.
228
+ if (!breadcrumbs.group && breadcrumbsOptions) {
229
+ breadcrumbs.group = chart.renderer
230
+ .g('breadcrumbs-group')
231
+ .addClass('highcharts-no-tooltip highcharts-breadcrumbs')
232
+ .attr({
233
+ zIndex: breadcrumbsOptions.zIndex
234
+ })
235
+ .add();
236
+ }
237
+ // Draw breadcrumbs.
238
+ if (breadcrumbsOptions.showFullPath) {
239
+ this.renderFullPathButtons();
240
+ }
241
+ else {
242
+ this.renderSingleButton();
243
+ }
244
+ this.alignBreadcrumbsGroup();
245
+ };
246
+ /**
247
+ * Draw breadcrumbs together with the separators.
248
+ *
249
+ * @requires modules/breadcrumbs
250
+ *
251
+ * @function Highcharts.Breadcrumbs#renderFullPathButtons
252
+ * @param {Highcharts.Breadcrumbs} this
253
+ * Breadcrumbs class.
254
+ */
255
+ Breadcrumbs.prototype.renderFullPathButtons = function () {
256
+ // Make sure that only one type of button is visible.
257
+ this.destroySingleButton();
258
+ this.resetElementListState();
259
+ this.updateListElements();
260
+ this.destroyListElements();
261
+ };
262
+ /**
263
+ * Render Single button - when showFullPath is not used. The button is
264
+ * similar to the old drillUpButton
265
+ *
266
+ * @requires modules/breadcrumbs
267
+ *
268
+ * @function Highcharts.Breadcrumbs#renderSingleButton
269
+ * @param {Highcharts.Breadcrumbs} this Breadcrumbs class.
270
+ */
271
+ Breadcrumbs.prototype.renderSingleButton = function () {
272
+ var breadcrumbs = this,
273
+ chart = breadcrumbs.chart,
274
+ list = breadcrumbs.list,
275
+ breadcrumbsOptions = breadcrumbs.options,
276
+ buttonSpacing = breadcrumbsOptions.buttonSpacing;
277
+ // Make sure that only one type of button is visible.
278
+ this.destroyListElements();
279
+ // Draw breadcrumbs. Inital position for calculating the breadcrumbs
280
+ // group.
281
+ var posX = breadcrumbs.group ?
282
+ breadcrumbs.group.getBBox().width :
283
+ buttonSpacing,
284
+ posY = buttonSpacing;
285
+ var previousBreadcrumb = list[list.length - 2];
286
+ if (!chart.drillUpButton && (this.level > 0)) {
287
+ chart.drillUpButton = breadcrumbs.renderButton(previousBreadcrumb, posX, posY);
288
+ }
289
+ else if (chart.drillUpButton) {
290
+ if (this.level > 0) {
291
+ // Update button.
292
+ this.updateSingleButton();
293
+ }
294
+ else {
295
+ this.destroySingleButton();
296
+ }
297
+ }
298
+ };
299
+ /**
300
+ * Update group position based on align and it's width.
301
+ *
302
+ * @requires modules/breadcrumbs
303
+ *
304
+ * @function Highcharts.Breadcrumbs#renderSingleButton
305
+ * @param {Highcharts.Breadcrumbs} this
306
+ * Breadcrumbs class.
307
+ */
308
+ Breadcrumbs.prototype.alignBreadcrumbsGroup = function (xOffset) {
309
+ var breadcrumbs = this;
310
+ if (breadcrumbs.group) {
311
+ var breadcrumbsOptions = breadcrumbs.options,
312
+ buttonTheme = breadcrumbsOptions.buttonTheme,
313
+ positionOptions = breadcrumbsOptions.position,
314
+ alignTo = (breadcrumbsOptions.relativeTo === 'chart' ||
315
+ breadcrumbsOptions.relativeTo === 'spacingBox' ?
316
+ void 0 :
317
+ 'scrollablePlotBox'),
318
+ bBox = breadcrumbs.group.getBBox(),
319
+ additionalSpace = 2 * (buttonTheme.padding || 0) +
320
+ breadcrumbsOptions.buttonSpacing;
321
+ // Store positionOptions
322
+ positionOptions.width = bBox.width + additionalSpace;
323
+ positionOptions.height = bBox.height + additionalSpace;
324
+ var newPositions = merge(positionOptions);
325
+ // Add x offset if specified.
326
+ if (xOffset) {
327
+ newPositions.x += xOffset;
328
+ }
329
+ if (breadcrumbs.options.rtl) {
330
+ newPositions.x += positionOptions.width;
331
+ }
332
+ newPositions.y = pick(newPositions.y, this.yOffset, 0);
333
+ breadcrumbs.group.align(newPositions, true, alignTo);
334
+ }
335
+ };
336
+ /**
337
+ * Render a button.
338
+ *
339
+ * @requires modules/breadcrums
340
+ *
341
+ * @function Highcharts.Breadcrumbs#renderButton
342
+ * @param {Highcharts.Breadcrumbs} this
343
+ * Breadcrumbs class.
344
+ * @param {Highcharts.Breadcrumbs} breadcrumb
345
+ * Current breadcrumb
346
+ * @param {Highcharts.Breadcrumbs} posX
347
+ * Initial horizontal position
348
+ * @param {Highcharts.Breadcrumbs} posY
349
+ * Initial vertical position
350
+ * @return {SVGElement|void}
351
+ * Returns the SVG button
352
+ */
353
+ Breadcrumbs.prototype.renderButton = function (breadcrumb, posX, posY) {
354
+ var breadcrumbs = this,
355
+ chart = this.chart,
356
+ breadcrumbsOptions = breadcrumbs.options,
357
+ buttonTheme = merge(breadcrumbsOptions.buttonTheme);
358
+ var button = chart.renderer
359
+ .button(breadcrumbs.getButtonText(breadcrumb),
360
+ posX,
361
+ posY,
362
+ function (e) {
363
+ // Extract events from button object and call
364
+ var buttonEvents = breadcrumbsOptions.events &&
365
+ breadcrumbsOptions.events.click;
366
+ var callDefaultEvent;
367
+ if (buttonEvents) {
368
+ callDefaultEvent = buttonEvents.call(breadcrumbs, e, breadcrumb);
369
+ }
370
+ // (difference in behaviour of showFullPath and drillUp)
371
+ if (callDefaultEvent !== false) {
372
+ // For single button we are not going to the button
373
+ // level, but the one level up
374
+ if (!breadcrumbsOptions.showFullPath) {
375
+ e.newLevel = breadcrumbs.level - 1;
376
+ }
377
+ else {
378
+ e.newLevel = breadcrumb.level;
379
+ }
380
+ fireEvent(breadcrumbs, 'up', e);
381
+ }
382
+ }, buttonTheme)
383
+ .addClass('highcharts-breadcrumbs-button')
384
+ .add(breadcrumbs.group);
385
+ if (!chart.styledMode) {
386
+ button.attr(breadcrumbsOptions.style);
387
+ }
388
+ return button;
389
+ };
390
+ /**
391
+ * Render a separator.
392
+ *
393
+ * @requires modules/breadcrums
394
+ *
395
+ * @function Highcharts.Breadcrumbs#renderSeparator
396
+ * @param {Highcharts.Breadcrumbs} this
397
+ * Breadcrumbs class.
398
+ * @param {Highcharts.Breadcrumbs} posX
399
+ * Initial horizontal position
400
+ * @param {Highcharts.Breadcrumbs} posY
401
+ * Initial vertical position
402
+ * @return {Highcharts.SVGElement}
403
+ * Returns the SVG button
404
+ */
405
+ Breadcrumbs.prototype.renderSeparator = function (posX, posY) {
406
+ var breadcrumbs = this,
407
+ chart = this.chart,
408
+ breadcrumbsOptions = breadcrumbs.options,
409
+ separatorOptions = breadcrumbsOptions.separator;
410
+ var separator = chart.renderer
411
+ .label(separatorOptions.text,
412
+ posX,
413
+ posY,
414
+ void 0,
415
+ void 0,
416
+ void 0,
417
+ false)
418
+ .addClass('highcharts-breadcrumbs-separator')
419
+ .add(breadcrumbs.group);
420
+ if (!chart.styledMode) {
421
+ separator.css(separatorOptions.style);
422
+ }
423
+ return separator;
424
+ };
425
+ /**
426
+ * Update.
427
+ * @function Highcharts.Breadcrumbs#update
428
+ *
429
+ * @requires modules/breadcrumbs
430
+ *
431
+ * @param {Highcharts.Breadcrumbs} this
432
+ * Breadcrumbs class.
433
+ * @param {Highcharts.BreadcrumbsOptions} options
434
+ * Breadcrumbs class.
435
+ * @param {boolean} redraw
436
+ * Redraw flag
437
+ */
438
+ Breadcrumbs.prototype.update = function (options) {
439
+ merge(true, this.options, options);
440
+ this.destroy();
441
+ this.isDirty = true;
442
+ };
443
+ /**
444
+ * Update button text when the showFullPath set to false.
445
+ * @function Highcharts.Breadcrumbs#updateSingleButton
446
+ *
447
+ * @requires modules/breadcrumbs
448
+ *
449
+ * @param {Highcharts.Breadcrumbs} this
450
+ * Breadcrumbs class.
451
+ */
452
+ Breadcrumbs.prototype.updateSingleButton = function () {
453
+ var chart = this.chart,
454
+ currentBreadcrumb = this.list[this.level - 1];
455
+ if (chart.drillUpButton) {
456
+ chart.drillUpButton.attr({
457
+ text: this.getButtonText(currentBreadcrumb)
458
+ });
459
+ }
460
+ };
461
+ /**
462
+ * Destroy the chosen breadcrumbs group
463
+ *
464
+ * @requires modules/breadcrumbs
465
+ *
466
+ * @function Highcharts.Breadcrumbs#destroy
467
+ * @param {Highcharts.Breadcrumbs} this
468
+ * Breadcrumbs class.
469
+ */
470
+ Breadcrumbs.prototype.destroy = function () {
471
+ this.destroySingleButton();
472
+ // Destroy elements one by one. It's necessary beacause
473
+ // g().destroy() does not remove added HTML
474
+ this.destroyListElements(true);
475
+ // Then, destroy the group itself.
476
+ if (this.group) {
477
+ this.group.destroy();
478
+ }
479
+ this.group = void 0;
480
+ };
481
+ /**
482
+ * Destroy the elements' buttons and separators.
483
+ *
484
+ * @requires modules/breadcrumbs
485
+ *
486
+ * @function Highcharts.Breadcrumbs#destroyListElements
487
+ * @param {Highcharts.Breadcrumbs} this
488
+ * Breadcrumbs class.
489
+ */
490
+ Breadcrumbs.prototype.destroyListElements = function (force) {
491
+ var elementList = this.elementList;
492
+ objectEach(elementList, function (element, level) {
493
+ if (force ||
494
+ !elementList[level].updated) {
495
+ element = elementList[level];
496
+ element.button && element.button.destroy();
497
+ element.separator && element.separator.destroy();
498
+ delete element.button;
499
+ delete element.separator;
500
+ delete elementList[level];
501
+ }
502
+ });
503
+ if (force) {
504
+ this.elementList = {};
505
+ }
506
+ };
507
+ /**
508
+ * Destroy the single button if exists.
509
+ *
510
+ * @requires modules/breadcrumbs
511
+ *
512
+ * @function Highcharts.Breadcrumbs#destroySingleButton
513
+ * @param {Highcharts.Breadcrumbs} this
514
+ * Breadcrumbs class.
515
+ */
516
+ Breadcrumbs.prototype.destroySingleButton = function () {
517
+ if (this.chart.drillUpButton) {
518
+ this.chart.drillUpButton.destroy();
519
+ this.chart.drillUpButton = void 0;
520
+ }
521
+ };
522
+ /**
523
+ * Reset state for all buttons in elementList.
524
+ *
525
+ * @requires modules/breadcrumbs
526
+ *
527
+ * @function Highcharts.Breadcrumbs#resetElementListState
528
+ * @param {Highcharts.Breadcrumbs} this
529
+ * Breadcrumbs class.
530
+ */
531
+ Breadcrumbs.prototype.resetElementListState = function () {
532
+ objectEach(this.elementList, function (element) {
533
+ element.updated = false;
534
+ });
535
+ };
536
+ /**
537
+ * Update rendered elements inside the elementList.
538
+ *
539
+ * @requires modules/breadcrumbs
540
+ *
541
+ * @function Highcharts.Breadcrumbs#updateListElements
542
+ * @param {Highcharts.Breadcrumbs} this
543
+ * Breadcrumbs class.
544
+ */
545
+ Breadcrumbs.prototype.updateListElements = function () {
546
+ var breadcrumbs = this,
547
+ elementList = breadcrumbs.elementList,
548
+ buttonSpacing = breadcrumbs.options.buttonSpacing,
549
+ list = breadcrumbs.list,
550
+ rtl = breadcrumbs.options.rtl,
551
+ rtlFactor = rtl ? -1 : 1,
552
+ updateXPosition = function (element,
553
+ spacing) {
554
+ return rtlFactor * element.getBBox().width +
555
+ rtlFactor * spacing;
556
+ }, adjustToRTL = function (element, posX, posY) {
557
+ element.translate(posX - element.getBBox().width, posY);
558
+ };
559
+ // Inital position for calculating the breadcrumbs group.
560
+ var posX = breadcrumbs.group ?
561
+ updateXPosition(breadcrumbs.group,
562
+ buttonSpacing) :
563
+ buttonSpacing,
564
+ posY = buttonSpacing,
565
+ currentBreadcrumb;
566
+ list.forEach(function (breadcrumb, index) {
567
+ var isLast = index === list.length - 1;
568
+ var button,
569
+ separator;
570
+ if (elementList[breadcrumb.level]) {
571
+ currentBreadcrumb = elementList[breadcrumb.level];
572
+ button = currentBreadcrumb.button;
573
+ // Render a separator if it was not created before.
574
+ if (!currentBreadcrumb.separator &&
575
+ !isLast) {
576
+ // Add spacing for the next separator
577
+ posX += rtlFactor * buttonSpacing;
578
+ currentBreadcrumb.separator =
579
+ breadcrumbs.renderSeparator(posX, posY);
580
+ if (rtl) {
581
+ adjustToRTL(currentBreadcrumb.separator, posX, posY);
582
+ }
583
+ posX += updateXPosition(currentBreadcrumb.separator, buttonSpacing);
584
+ }
585
+ else if (currentBreadcrumb.separator &&
586
+ isLast) {
587
+ currentBreadcrumb.separator.destroy();
588
+ delete currentBreadcrumb.separator;
589
+ }
590
+ elementList[breadcrumb.level].updated = true;
591
+ }
592
+ else {
593
+ // Render a button.
594
+ button = breadcrumbs.renderButton(breadcrumb, posX, posY);
595
+ if (rtl) {
596
+ adjustToRTL(button, posX, posY);
597
+ }
598
+ posX += updateXPosition(button, buttonSpacing);
599
+ // Render a separator.
600
+ if (!isLast) {
601
+ separator = breadcrumbs.renderSeparator(posX, posY);
602
+ if (rtl) {
603
+ adjustToRTL(separator, posX, posY);
604
+ }
605
+ posX += updateXPosition(separator, buttonSpacing);
606
+ }
607
+ elementList[breadcrumb.level] = {
608
+ button: button,
609
+ separator: separator,
610
+ updated: true
611
+ };
612
+ }
613
+ if (button) {
614
+ button.setState(isLast ? 2 : 0);
615
+ }
616
+ });
617
+ };
618
+ /**
619
+ * Options for breadcrumbs. Breadcrumbs general options are defined in
620
+ * `navigation.breadcrumbs`. Specific options for drilldown are set in
621
+ * `drilldown.breadcrumbs` and for tree-like series traversing, in
622
+ * `plotOptions[series].breadcrumbs`.
623
+ *
624
+ * @since 10.0.0
625
+ * @product highcharts
626
+ * @optionparent navigation.breadcrumbs
627
+ */
628
+ Breadcrumbs.defaultBreadcrumbsOptions = {
629
+ /**
630
+ * A collection of attributes for the buttons. The object takes SVG
631
+ * attributes like `fill`, `stroke`, `stroke-width`, as well as `style`,
632
+ * a collection of CSS properties for the text.
633
+ *
634
+ * The object can also be extended with states, so you can set
635
+ * presentational options for `hover`, `select` or `disabled` button
636
+ * states.
637
+ *
638
+ * @sample {highcharts} highcharts/breadcrumbs/single-button
639
+ * Themed, single button
640
+ *
641
+ * @type {Highcharts.SVGAttributes}
642
+ * @since 10.0.0
643
+ * @product highcharts
644
+ */
645
+ buttonTheme: {
646
+ /** @ignore */
647
+ fill: 'none',
648
+ /** @ignore */
649
+ height: 18,
650
+ /** @ignore */
651
+ padding: 2,
652
+ /** @ignore */
653
+ 'stroke-width': 0,
654
+ /** @ignore */
655
+ zIndex: 7,
656
+ /** @ignore */
657
+ states: {
658
+ select: {
659
+ fill: 'none'
660
+ }
661
+ },
662
+ style: {
663
+ color: "#335cad" /* Palette.highlightColor80 */
664
+ }
665
+ },
666
+ /**
667
+ * The default padding for each button and separator in each direction.
668
+ *
669
+ * @type {number}
670
+ * @since 10.0.0
671
+ */
672
+ buttonSpacing: 5,
673
+ /**
674
+ * Fires when clicking on the breadcrumbs button. Two arguments are
675
+ * passed to the function. First breadcrumb button as an SVG element.
676
+ * Second is the breadcrumbs class, containing reference to the chart,
677
+ * series etc.
678
+ *
679
+ * ```js
680
+ * click: function(button, breadcrumbs) {
681
+ * console.log(button);
682
+ * }
683
+ * ```
684
+ *
685
+ * Return false to stop default buttons click action.
686
+ *
687
+ * @type {Highcharts.BreadcrumbsClickCallbackFunction}
688
+ * @since 10.0.0
689
+ * @apioption navigation.breadcrumbs.events.click
690
+ */
691
+ /**
692
+ * When the breadcrumbs are floating, the plot area will not move to
693
+ * make space for it. By default, the chart will not make space for the
694
+ * buttons. This property won't work when positioned in the middle.
695
+ *
696
+ * @sample highcharts/breadcrumbs/single-button
697
+ * Floating button
698
+ * @type {boolean}
699
+ * @since 10.0.0
700
+ */
701
+ floating: false,
702
+ /**
703
+ * A format string for the breadcrumbs button. Variables are enclosed by
704
+ * curly brackets. Available values are passed in the declared point
705
+ * options.
706
+ *
707
+ * @type {string|undefined}
708
+ * @since 10.0.0
709
+ * @default undefined
710
+ * @sample {highcharts} highcharts/breadcrumbs/format Display custom
711
+ * values in breadcrumb button.
712
+ */
713
+ format: void 0,
714
+ /**
715
+ * Callback function to format the breadcrumb text from scratch.
716
+ *
717
+ * @type {Highcharts.BreadcrumbsFormatterCallbackFunction}
718
+ * @since 10.0.0
719
+ * @default undefined
720
+ * @apioption navigation.breadcrumbs.formatter
721
+ */
722
+ /**
723
+ * What box to align the button to. Can be either `plotBox` or
724
+ * `spacingBox`.
725
+ *
726
+ * @type {Highcharts.ButtonRelativeToValue}
727
+ * @default plotBox
728
+ * @since 10.0.0
729
+ * @product highcharts highmaps
730
+ */
731
+ relativeTo: 'plotBox',
732
+ /**
733
+ * Whether to reverse the order of buttons. This is common in Arabic
734
+ * and Hebrew.
735
+ *
736
+ * @type {boolean}
737
+ * @since 10.2.0
738
+ * @sample {highcharts} highcharts/breadcrumbs/rtl
739
+ * Breadcrumbs in RTL
740
+ */
741
+ rtl: false,
742
+ /**
743
+ * Positioning for the button row. The breadcrumbs buttons will be
744
+ * aligned properly for the default chart layout (title, subtitle,
745
+ * legend, range selector) for the custom chart layout set the position
746
+ * properties.
747
+ * @type {Highcharts.BreadcrumbsAlignOptions}
748
+ * @since 10.0.0
749
+ * @product highcharts highmaps
750
+ * @sample {highcharts} highcharts/breadcrumbs/single-button
751
+ * Single, right aligned button
752
+ */
753
+ position: {
754
+ /**
755
+ * Horizontal alignment of the breadcrumbs buttons.
756
+ *
757
+ * @type {Highcharts.AlignValue}
758
+ */
759
+ align: 'left',
760
+ /**
761
+ * Vertical alignment of the breadcrumbs buttons.
762
+ *
763
+ * @type {Highcharts.VerticalAlignValue}
764
+ */
765
+ verticalAlign: 'top',
766
+ /**
767
+ * The X offset of the breadcrumbs button group.
768
+ *
769
+ * @type {number}
770
+ */
771
+ x: 0,
772
+ /**
773
+ * The Y offset of the breadcrumbs button group. When `undefined`,
774
+ * and `floating` is `false`, the `y` position is adapted so that
775
+ * the breadcrumbs are rendered outside the target area.
776
+ *
777
+ * @type {number|undefined}
778
+ */
779
+ y: void 0
780
+ },
781
+ /**
782
+ * Options object for Breadcrumbs separator.
783
+ *
784
+ * @since 10.0.0
785
+ */
786
+ separator: {
787
+ /**
788
+ * @type {string}
789
+ * @since 10.0.0
790
+ * @product highcharts
791
+ */
792
+ text: '/',
793
+ /**
794
+ * CSS styles for the breadcrumbs separator.
795
+ *
796
+ * In styled mode, the breadcrumbs separators are styled by the
797
+ * `.highcharts-separator` rule with its different states.
798
+ * @type {Highcharts.CSSObject}
799
+ * @since 10.0.0
800
+ */
801
+ style: {
802
+ color: "#666666" /* Palette.neutralColor60 */
803
+ }
804
+ },
805
+ /**
806
+ * Show full path or only a single button.
807
+ *
808
+ * @type {boolean}
809
+ * @since 10.0.0
810
+ * @sample {highcharts} highcharts/breadcrumbs/single-button
811
+ * Single, styled button
812
+ */
813
+ showFullPath: true,
814
+ /**
815
+ * CSS styles for all breadcrumbs.
816
+ *
817
+ * In styled mode, the breadcrumbs buttons are styled by the
818
+ * `.highcharts-breadcrumbs-buttons .highcharts-button` rule with its
819
+ * different states.
820
+ * @type {Highcharts.SVGAttributes}
821
+ * @since 10.0.0
822
+ */
823
+ style: {},
824
+ /**
825
+ * Whether to use HTML to render the breadcrumbs items texts.
826
+ *
827
+ * @type {boolean}
828
+ * @since 10.0.0
829
+ */
830
+ useHTML: false,
831
+ /**
832
+ * The z index of the breadcrumbs group.
833
+ *
834
+ * @type {number}
835
+ * @since 10.0.0
836
+ */
837
+ zIndex: 7
838
+ };
839
+ return Breadcrumbs;
840
+ }());
841
+ /* eslint-disable no-invalid-this */
842
+ if (!H.Breadcrumbs) {
843
+ H.Breadcrumbs = Breadcrumbs;
844
+ // Logic for making space for the buttons above the plot area
845
+ addEvent(Chart, 'getMargins', function () {
846
+ var breadcrumbs = this.breadcrumbs;
847
+ if (breadcrumbs &&
848
+ !breadcrumbs.options.floating &&
849
+ breadcrumbs.level) {
850
+ var breadcrumbsOptions = breadcrumbs.options,
851
+ buttonTheme = breadcrumbsOptions.buttonTheme,
852
+ breadcrumbsHeight = ((buttonTheme.height || 0) +
853
+ 2 * (buttonTheme.padding || 0) +
854
+ breadcrumbsOptions.buttonSpacing),
855
+ verticalAlign = breadcrumbsOptions.position.verticalAlign;
856
+ if (verticalAlign === 'bottom') {
857
+ this.marginBottom = (this.marginBottom || 0) + breadcrumbsHeight;
858
+ breadcrumbs.yOffset = breadcrumbsHeight;
859
+ }
860
+ else if (verticalAlign !== 'middle') {
861
+ this.plotTop += breadcrumbsHeight;
862
+ breadcrumbs.yOffset = -breadcrumbsHeight;
863
+ }
864
+ else {
865
+ breadcrumbs.yOffset = void 0;
866
+ }
867
+ }
868
+ });
869
+ addEvent(Chart, 'redraw', function () {
870
+ this.breadcrumbs && this.breadcrumbs.redraw();
871
+ });
872
+ // Remove resize/afterSetExtremes at chart destroy
873
+ addEvent(Chart, 'destroy', function destroyEvents() {
874
+ if (this.breadcrumbs) {
875
+ this.breadcrumbs.destroy();
876
+ this.breadcrumbs = void 0;
877
+ }
878
+ });
879
+ // Shift the drillUpButton to make the space for resetZoomButton, #8095.
880
+ addEvent(Chart, 'afterShowResetZoom', function () {
881
+ var chart = this;
882
+ if (chart.breadcrumbs) {
883
+ var bbox = chart.resetZoomButton &&
884
+ chart.resetZoomButton.getBBox(),
885
+ breadcrumbsOptions = chart.breadcrumbs.options;
886
+ if (bbox &&
887
+ breadcrumbsOptions.position.align === 'right' &&
888
+ breadcrumbsOptions.relativeTo === 'plotBox') {
889
+ chart.breadcrumbs.alignBreadcrumbsGroup(-bbox.width - breadcrumbsOptions.buttonSpacing);
890
+ }
891
+ }
892
+ });
893
+ // After zooming out, shift the drillUpButton
894
+ // to the previous position, #8095.
895
+ addEvent(Chart, 'selection', function (event) {
896
+ if (event.resetSelection === true &&
897
+ this.breadcrumbs) {
898
+ this.breadcrumbs.alignBreadcrumbsGroup();
899
+ }
900
+ });
901
+ }
902
+ /* *
903
+ *
904
+ * Default Export
905
+ *
906
+ * */
907
+ /* *
908
+ *
909
+ * API Declarations
910
+ *
911
+ * */
912
+ /**
913
+ * Callback function to react on button clicks.
914
+ *
915
+ * @callback Highcharts.BreadcrumbsClickCallbackFunction
916
+ *
917
+ * @param {Highcharts.Event} event
918
+ * Event.
919
+ *
920
+ * @param {Highcharts.BreadcrumbOptions} options
921
+ * Breadcrumb options.
922
+ *
923
+ * @param {global.Event} e
924
+ * Event arguments.
925
+ */
926
+ /**
927
+ * Callback function to format the breadcrumb text from scratch.
928
+ *
929
+ * @callback Highcharts.BreadcrumbsFormatterCallbackFunction
930
+ *
931
+ * @param {Highcharts.Event} event
932
+ * Event.
933
+ *
934
+ * @param {Highcharts.BreadcrumbOptions} options
935
+ * Breadcrumb options.
936
+ *
937
+ * @return {string}
938
+ * Formatted text or false
939
+ */
940
+ /**
941
+ * Options for the one breadcrumb.
942
+ *
943
+ * @interface Highcharts.BreadcrumbOptions
944
+ */
945
+ /**
946
+ * Level connected to a specific breadcrumb.
947
+ * @name Highcharts.BreadcrumbOptions#level
948
+ * @type {number}
949
+ */
950
+ /**
951
+ * Options for series or point connected to a specific breadcrumb.
952
+ * @name Highcharts.BreadcrumbOptions#levelOptions
953
+ * @type {SeriesOptions|PointOptionsObject}
954
+ */
955
+ /**
956
+ * Options for aligning breadcrumbs group.
957
+ *
958
+ * @interface Highcharts.BreadcrumbsAlignOptions
959
+ */
960
+ /**
961
+ * Align of a Breadcrumb group.
962
+ * @default right
963
+ * @name Highcharts.BreadcrumbsAlignOptions#align
964
+ * @type {AlignValue}
965
+ */
966
+ /**
967
+ * Vertical align of a Breadcrumb group.
968
+ * @default top
969
+ * @name Highcharts.BreadcrumbsAlignOptions#verticalAlign
970
+ * @type {VerticalAlignValue}
971
+ */
972
+ /**
973
+ * X offset of a Breadcrumbs group.
974
+ * @name Highcharts.BreadcrumbsAlignOptions#x
975
+ * @type {number}
976
+ */
977
+ /**
978
+ * Y offset of a Breadcrumbs group.
979
+ * @name Highcharts.BreadcrumbsAlignOptions#y
980
+ * @type {number}
981
+ */
982
+ /**
983
+ * Options for all breadcrumbs.
984
+ *
985
+ * @interface Highcharts.BreadcrumbsOptions
986
+ */
987
+ /**
988
+ * Button theme.
989
+ * @name Highcharts.BreadcrumbsOptions#buttonTheme
990
+ * @type { SVGAttributes | undefined }
991
+ */
992
+ (''); // Keeps doclets above in JS file
993
+
994
+ return Breadcrumbs;
995
+ });
996
+ _registerModule(_modules, 'Extensions/Drilldown.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Axis/Axis.js'], _modules['Core/Chart/Chart.js'], _modules['Core/Color/Color.js'], _modules['Series/Column/ColumnSeries.js'], _modules['Core/FormatUtilities.js'], _modules['Core/Globals.js'], _modules['Core/DefaultOptions.js'], _modules['Core/Series/Point.js'], _modules['Core/Series/Series.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Renderer/SVG/SVGRenderer.js'], _modules['Core/Axis/Tick.js'], _modules['Core/Utilities.js'], _modules['Extensions/Breadcrumbs.js']], function (A, Axis, Chart, Color, ColumnSeries, F, H, D, Point, Series, SeriesRegistry, SVGRenderer, Tick, U, Breadcrumbs) {
32
997
  /* *
33
998
  *
34
999
  * Highcharts Drilldown module
@@ -174,18 +1139,20 @@
174
1139
  * @optionparent lang
175
1140
  */
176
1141
  {
177
- /**
178
- * The text for the button that appears when drilling down, linking back
179
- * to the parent series. The parent series' name is inserted for
180
- * `{series.name}`.
181
- *
182
- * @since 3.0.8
183
- * @product highcharts highmaps
184
- * @requires modules/drilldown
185
- *
186
- * @private
187
- */
188
- drillUpText: '◁ Back to {series.name}'
1142
+ /**
1143
+ * The text for the button that appears when drilling down, linking back
1144
+ * to the parent series. The parent series' name is inserted for
1145
+ * `{series.name}`.
1146
+ *
1147
+ * @since 3.0.8
1148
+ * @product highcharts highmaps
1149
+ * @requires modules/drilldown
1150
+ * @apioption lang.drillUpText
1151
+ *
1152
+ * @deprecated
1153
+ *
1154
+ * @private
1155
+ */
189
1156
  });
190
1157
  /**
191
1158
  * Options for drill down, the concept of inspecting increasingly high
@@ -217,6 +1184,15 @@
217
1184
  * @product highcharts
218
1185
  * @apioption drilldown.allowPointDrilldown
219
1186
  */
1187
+ /**
1188
+ * Options for the breadcrumbs, the navigation at the top leading the way
1189
+ * up through the drilldown levels.
1190
+ *
1191
+ * @since 10.0.0
1192
+ * @product highcharts
1193
+ * @extends navigation.breadcrumbs
1194
+ * @optionparent drilldown.breadcrumbs
1195
+ */
220
1196
  /**
221
1197
  * An array of series configurations for the drill down. Each series
222
1198
  * configuration uses the same syntax as the [series](#series) option set.
@@ -248,7 +1224,7 @@
248
1224
  /** @ignore-option */
249
1225
  cursor: 'pointer',
250
1226
  /** @ignore-option */
251
- color: "#003399" /* highlightColor100 */,
1227
+ color: "#003399" /* Palette.highlightColor100 */,
252
1228
  /** @ignore-option */
253
1229
  fontWeight: 'bold',
254
1230
  /** @ignore-option */
@@ -272,7 +1248,7 @@
272
1248
  */
273
1249
  activeDataLabelStyle: {
274
1250
  cursor: 'pointer',
275
- color: "#003399" /* highlightColor100 */,
1251
+ color: "#003399" /* Palette.highlightColor100 */,
276
1252
  fontWeight: 'bold',
277
1253
  textDecoration: 'underline'
278
1254
  },
@@ -303,17 +1279,23 @@
303
1279
  duration: 500
304
1280
  },
305
1281
  /**
1282
+ *
306
1283
  * Options for the drill up button that appears when drilling down on a
307
1284
  * series. The text for the button is defined in
308
1285
  * [lang.drillUpText](#lang.drillUpText).
309
1286
  *
310
- * @sample {highcharts} highcharts/drilldown/drillupbutton/
311
- * Drill up button
312
- * @sample {highmaps} highcharts/drilldown/drillupbutton/
313
- * Drill up button
1287
+ * This option is deprecated since 9.3.2, use `drilldown.breadcrumbs`
1288
+ * instead.
1289
+ *
1290
+ * @sample highcharts/breadcrumbs/single-button
1291
+ * Breadcrumbs set up like a legacy button
1292
+ * @sample {highcharts} highcharts/drilldown/drillupbutton/ Drill up button
1293
+ * @sample {highmaps} highcharts/drilldown/drillupbutton/ Drill up button
314
1294
  *
315
1295
  * @since 3.0.8
316
1296
  * @product highcharts highmaps
1297
+ *
1298
+ * @deprecated
317
1299
  */
318
1300
  drillUpButton: {
319
1301
  /**
@@ -610,50 +1592,51 @@
610
1592
  delete this.resetZoomButton;
611
1593
  }
612
1594
  this.pointer.reset();
613
- this.redraw();
614
- this.showDrillUpButton();
615
1595
  fireEvent(this, 'afterDrilldown');
1596
+ this.redraw();
1597
+ fireEvent(this, 'afterApplyDrilldown');
616
1598
  };
617
- Chart.prototype.getDrilldownBackText = function () {
618
- var drilldownLevels = this.drilldownLevels,
619
- lastLevel;
620
- if (drilldownLevels && drilldownLevels.length > 0) { // #3352, async loading
621
- lastLevel = drilldownLevels[drilldownLevels.length - 1];
622
- lastLevel.series = lastLevel.seriesOptions;
623
- return format(this.options.lang.drillUpText || '', lastLevel);
624
- }
625
- };
626
- Chart.prototype.showDrillUpButton = function () {
627
- var chart = this,
628
- backText = this.getDrilldownBackText(),
629
- buttonOptions = chart.options.drilldown.drillUpButton,
630
- attr,
631
- states,
632
- alignTo = (buttonOptions.relativeTo === 'chart' ||
633
- buttonOptions.relativeTo === 'spacingBox' ?
634
- null :
635
- 'scrollablePlotBox');
636
- if (!this.drillUpButton) {
637
- attr = buttonOptions.theme;
638
- states = attr && attr.states;
639
- this.drillUpButton = this.renderer
640
- .button(backText, null, null, function () {
641
- chart.drillUp();
642
- }, attr, states && states.hover, states && states.select)
643
- .addClass('highcharts-drillup-button')
644
- .attr({
645
- align: buttonOptions.position.align,
646
- zIndex: 7
647
- })
648
- .add()
649
- .align(buttonOptions.position, false, alignTo);
650
- }
651
- else {
652
- this.drillUpButton.attr({
653
- text: backText
654
- })
655
- .align();
1599
+ /**
1600
+ * This method creates an array of arrays containing a level number
1601
+ * with the corresponding series/point.
1602
+ *
1603
+ * @requires modules/breadcrumbs
1604
+ *
1605
+ * @private
1606
+ * @param {Highcharts.Chart} chart
1607
+ * Highcharts Chart object.
1608
+ * @return {Array<Breadcrumbs.BreadcrumbOptions>}
1609
+ * List for Highcharts Breadcrumbs.
1610
+ */
1611
+ var createBreadcrumbsList = function (chart) {
1612
+ var list = [],
1613
+ drilldownLevels = chart.drilldownLevels;
1614
+ // The list is based on drilldown levels from the chart object
1615
+ if (drilldownLevels && drilldownLevels.length) {
1616
+ // Add the initial series as the first element.
1617
+ if (!list[0]) {
1618
+ list.push({
1619
+ level: 0,
1620
+ levelOptions: drilldownLevels[0].seriesOptions
1621
+ });
1622
+ }
1623
+ drilldownLevels.forEach(function (level, i) {
1624
+ var lastBreadcrumb = list[list.length - 1];
1625
+ // If level is already added to breadcrumbs list,
1626
+ // don't add it again- drilling categories
1627
+ // + 1 because of the wrong levels numeration
1628
+ // in drilldownLevels array.
1629
+ if (level.levelNumber + 1 > lastBreadcrumb.level) {
1630
+ list.push({
1631
+ level: level.levelNumber + 1,
1632
+ levelOptions: merge({
1633
+ name: level.lowerSeries.name
1634
+ }, level.pointOptions)
1635
+ });
1636
+ }
1637
+ });
656
1638
  }
1639
+ return list;
657
1640
  };
658
1641
  /**
659
1642
  * When the chart is drilled down to a child series, calling `chart.drillUp()`
@@ -670,6 +1653,7 @@
670
1653
  if (!this.drilldownLevels || this.drilldownLevels.length === 0) {
671
1654
  return;
672
1655
  }
1656
+ fireEvent(this, 'beforeDrillUp');
673
1657
  var chart = this,
674
1658
  drilldownLevels = chart.drilldownLevels,
675
1659
  levelNumber = drilldownLevels[drilldownLevels.length - 1].levelNumber,
@@ -696,6 +1680,7 @@
696
1680
  newSeries = addedSeries;
697
1681
  }
698
1682
  };
1683
+ var drilldownLevelsNumber = chart.drilldownLevels.length;
699
1684
  while (i--) {
700
1685
  level = drilldownLevels[i];
701
1686
  if (level.levelNumber === levelNumber) {
@@ -715,12 +1700,19 @@
715
1700
  }
716
1701
  }
717
1702
  oldSeries.xData = []; // Overcome problems with minRange (#2898)
1703
+ // Reset the names to start new series from the beginning.
1704
+ // Do it once to preserve names when multiple
1705
+ // series are added for the same axis, #16135.
1706
+ if (oldSeries.xAxis &&
1707
+ oldSeries.xAxis.names &&
1708
+ (drilldownLevelsNumber === 0 || i === drilldownLevelsNumber)) {
1709
+ oldSeries.xAxis.names.length = 0;
1710
+ }
718
1711
  level.levelSeriesOptions.forEach(addSeries);
719
1712
  fireEvent(chart, 'drillup', {
720
1713
  seriesOptions: level.seriesPurgedOptions ||
721
1714
  level.seriesOptions
722
1715
  });
723
- this.resetZoomButton && this.resetZoomButton.destroy(); // #8095
724
1716
  if (newSeries.type === oldSeries.type) {
725
1717
  newSeries.drilldownLevel = level;
726
1718
  newSeries.options.animation =
@@ -741,30 +1733,48 @@
741
1733
  // it to the chart and show it.
742
1734
  if (level.resetZoomButton) {
743
1735
  chart.resetZoomButton = level.resetZoomButton;
744
- chart.resetZoomButton.show();
745
1736
  }
746
1737
  }
747
1738
  }
1739
+ fireEvent(chart, 'afterDrillUp');
748
1740
  this.redraw();
749
- if (this.drilldownLevels.length === 0) {
750
- this.drillUpButton = this.drillUpButton.destroy();
751
- }
752
- else {
753
- this.drillUpButton.attr({
754
- text: this.getDrilldownBackText()
755
- })
756
- .align();
757
- }
758
- this.ddDupes.length = []; // #3315
1741
+ if (this.ddDupes) {
1742
+ this.ddDupes.length = 0; // #3315
1743
+ } // #8324
759
1744
  // Fire a once-off event after all series have been drilled up (#5158)
760
1745
  fireEvent(chart, 'drillupall');
761
1746
  };
1747
+ /**
1748
+ * A function to fade in a group. First, the element is being hidden,
1749
+ * then, using `opactiy`, is faded in. Used for example by `dataLabelsGroup`
1750
+ * where simple SVGElement.fadeIn() is not enough, because of other features
1751
+ * (e.g. InactiveState) using `opacity` to fadeIn/fadeOut.
1752
+ *
1753
+ * @requires module:modules/drilldown
1754
+ *
1755
+ * @param {undefined|SVGElement} [group]
1756
+ * The SVG element to be faded in.
1757
+ */
1758
+ function fadeInGroup(group) {
1759
+ var animationOptions = animObject(this.chart.options.drilldown.animation);
1760
+ if (group) {
1761
+ group.hide();
1762
+ syncTimeout(function () {
1763
+ // Make sure neither the group, or the chart, were destroyed
1764
+ if (group && group.added) {
1765
+ group.fadeIn();
1766
+ }
1767
+ }, Math.max(animationOptions.duration - 50, 0));
1768
+ }
1769
+ }
762
1770
  /* eslint-disable no-invalid-this */
763
1771
  // Add update function to be called internally from Chart.update
764
1772
  // (#7600, #12855)
765
1773
  addEvent(Chart, 'afterInit', function () {
766
1774
  var chart = this;
767
1775
  chart.drilldown = {
1776
+ chart: chart,
1777
+ fadeInGroup: fadeInGroup,
768
1778
  update: function (options, redraw) {
769
1779
  merge(true, chart.options.drilldown, options);
770
1780
  if (pick(redraw, true)) {
@@ -773,24 +1783,6 @@
773
1783
  }
774
1784
  };
775
1785
  });
776
- // Shift the drillUpButton to make the space for resetZoomButton, #8095.
777
- addEvent(Chart, 'afterShowResetZoom', function () {
778
- var chart = this,
779
- bbox = chart.resetZoomButton && chart.resetZoomButton.getBBox(),
780
- buttonOptions = (chart.options.drilldown &&
781
- chart.options.drilldown.drillUpButton);
782
- if (this.drillUpButton &&
783
- bbox &&
784
- buttonOptions &&
785
- buttonOptions.position &&
786
- buttonOptions.position.x) {
787
- this.drillUpButton.align({
788
- x: buttonOptions.position.x - bbox.width - 10,
789
- y: buttonOptions.position.y,
790
- align: buttonOptions.position.align
791
- }, false, buttonOptions.relativeTo || 'plotBox');
792
- }
793
- });
794
1786
  addEvent(Chart, 'render', function () {
795
1787
  (this.xAxis || []).forEach(function (axis) {
796
1788
  axis.ddPoints = {};
@@ -824,6 +1816,35 @@
824
1816
  objectEach(axis.ticks, Tick.prototype.drillable);
825
1817
  });
826
1818
  });
1819
+ addEvent(H.Breadcrumbs, 'up', function (e) {
1820
+ var chart = this.chart,
1821
+ drillUpsNumber = this.getLevel() - e.newLevel;
1822
+ for (var i = 0; i < drillUpsNumber; i++) {
1823
+ chart.drillUp();
1824
+ }
1825
+ });
1826
+ addEvent(Chart, 'afterDrilldown', function () {
1827
+ var chart = this,
1828
+ drilldownOptions = chart.options.drilldown,
1829
+ breadcrumbsOptions = drilldownOptions && drilldownOptions.breadcrumbs;
1830
+ if (!chart.breadcrumbs) {
1831
+ chart.breadcrumbs = new Breadcrumbs(chart, breadcrumbsOptions);
1832
+ }
1833
+ chart.breadcrumbs.updateProperties(createBreadcrumbsList(chart));
1834
+ });
1835
+ addEvent(Chart, 'afterDrillUp', function () {
1836
+ var chart = this;
1837
+ chart.breadcrumbs &&
1838
+ chart.breadcrumbs.updateProperties(createBreadcrumbsList(chart));
1839
+ });
1840
+ addEvent(Chart, 'update', function (e) {
1841
+ var breadcrumbs = this.breadcrumbs,
1842
+ breadcrumbOptions = e.options.drilldown &&
1843
+ e.options.drilldown.breadcrumbs;
1844
+ if (breadcrumbs && breadcrumbOptions) {
1845
+ breadcrumbs.update(e.options.drilldown.breadcrumbs);
1846
+ }
1847
+ });
827
1848
  /**
828
1849
  * When drilling up, keep the upper series invisible until the lower series has
829
1850
  * moved into place.
@@ -916,10 +1937,10 @@
916
1937
  .attr(animateFrom)
917
1938
  .animate(extend(point.shapeArgs, { fill: point.color || series.color }), animationOptions);
918
1939
  }
919
- if (point.dataLabel) {
920
- point.dataLabel.fadeIn(animationOptions);
921
- }
922
1940
  });
1941
+ if (chart.drilldown) {
1942
+ chart.drilldown.fadeInGroup(this.dataLabelsGroup);
1943
+ }
923
1944
  // Reset to prototype
924
1945
  delete this.animate;
925
1946
  }
@@ -1006,6 +2027,9 @@
1006
2027
  }))[animationOptions ? 'animate' : 'attr'](animateTo, animationOptions);
1007
2028
  }
1008
2029
  });
2030
+ if (this.chart.drilldown) {
2031
+ this.chart.drilldown.fadeInGroup(this.dataLabelsGroup);
2032
+ }
1009
2033
  // Reset to prototype
1010
2034
  delete this.animate;
1011
2035
  }
@@ -1239,24 +2263,16 @@
1239
2263
  applyCursorCSS(this.series.halo, 'auto', false, styledMode);
1240
2264
  }
1241
2265
  });
1242
- // After zooming out, shift the drillUpButton to the previous position, #8095.
1243
- addEvent(Chart, 'selection', function (event) {
1244
- if (event.resetSelection === true && this.drillUpButton) {
1245
- var buttonOptions = (this.options.drilldown && this.options.drilldown.drillUpButton);
1246
- if (buttonOptions && buttonOptions.position) {
1247
- this.drillUpButton.align({
1248
- x: buttonOptions.position.x,
1249
- y: buttonOptions.position.y,
1250
- align: buttonOptions.position.align
1251
- }, false, buttonOptions.relativeTo || 'plotBox');
1252
- }
1253
- }
1254
- });
1255
2266
  addEvent(Chart, 'drillup', function () {
1256
2267
  if (this.resetZoomButton) {
1257
2268
  this.resetZoomButton = this.resetZoomButton.destroy();
1258
2269
  }
1259
2270
  });
2271
+ addEvent(Chart, 'drillupall', function () {
2272
+ if (this.resetZoomButton) {
2273
+ this.showResetZoom();
2274
+ }
2275
+ });
1260
2276
 
1261
2277
  });
1262
2278
  _registerModule(_modules, 'masters/modules/drilldown.src.js', [], function () {