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
@@ -7,36 +7,6 @@
7
7
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
8
8
  *
9
9
  * */
10
- 'use strict';
11
- import A from '../Core/Animation/AnimationUtilities.js';
12
- var animObject = A.animObject;
13
- import Chart from '../Core/Chart/Chart.js';
14
- import F from '../Core/FormatUtilities.js';
15
- var format = F.format;
16
- import D from '../Core/DefaultOptions.js';
17
- var setOptions = D.setOptions;
18
- import Series from '../Core/Series/Series.js';
19
- import SVGRenderer from '../Core/Renderer/SVG/SVGRenderer.js';
20
- var symbols = SVGRenderer.prototype.symbols;
21
- import U from '../Core/Utilities.js';
22
- var addEvent = U.addEvent, extend = U.extend, fireEvent = U.fireEvent, isNumber = U.isNumber, pick = U.pick, syncTimeout = U.syncTimeout;
23
- /**
24
- * Containing the position of a box that should be avoided by labels.
25
- *
26
- * @interface Highcharts.LabelIntersectBoxObject
27
- */ /**
28
- * @name Highcharts.LabelIntersectBoxObject#bottom
29
- * @type {number}
30
- */ /**
31
- * @name Highcharts.LabelIntersectBoxObject#left
32
- * @type {number}
33
- */ /**
34
- * @name Highcharts.LabelIntersectBoxObject#right
35
- * @type {number}
36
- */ /**
37
- * @name Highcharts.LabelIntersectBoxObject#top
38
- * @type {number}
39
- */
40
10
  /*
41
11
  * Highcharts module to place labels next to a series in a natural position.
42
12
  *
@@ -50,338 +20,39 @@ var addEvent = U.addEvent, extend = U.extend, fireEvent = U.fireEvent, isNumber
50
20
  * https://jsfiddle.net/highcharts/264Nm/
51
21
  * https://jsfiddle.net/highcharts/y5A37/
52
22
  */
53
- ''; // detach doclets above
54
- var labelDistance = 3;
55
- setOptions({
56
- /**
57
- * @optionparent plotOptions
58
- *
59
- * @private
60
- */
61
- plotOptions: {
62
- series: {
63
- /**
64
- * Series labels are placed as close to the series as possible in a
65
- * natural way, seeking to avoid other series. The goal of this
66
- * feature is to make the chart more easily readable, like if a
67
- * human designer placed the labels in the optimal position.
68
- *
69
- * The series labels currently work with series types having a
70
- * `graph` or an `area`.
71
- *
72
- * @sample highcharts/series-label/line-chart
73
- * Line chart
74
- * @sample highcharts/demo/streamgraph
75
- * Stream graph
76
- * @sample highcharts/series-label/stock-chart
77
- * Stock chart
78
- *
79
- * @declare Highcharts.SeriesLabelOptionsObject
80
- * @since 6.0.0
81
- * @product highcharts highstock gantt
82
- * @requires modules/series-label
83
- */
84
- label: {
85
- /**
86
- * Enable the series label per series.
87
- */
88
- enabled: true,
89
- /**
90
- * Allow labels to be placed distant to the graph if necessary,
91
- * and draw a connector line to the graph. Setting this option
92
- * to true may decrease the performance significantly, since the
93
- * algorithm with systematically search for open spaces in the
94
- * whole plot area. Visually, it may also result in a more
95
- * cluttered chart, though more of the series will be labeled.
96
- */
97
- connectorAllowed: false,
98
- /**
99
- * If the label is closer than this to a neighbour graph, draw a
100
- * connector.
101
- */
102
- connectorNeighbourDistance: 24,
103
- /**
104
- * A format string for the label, with support for a subset of
105
- * HTML. Variables are enclosed by curly brackets. Available
106
- * variables are `name`, `options.xxx`, `color` and other
107
- * members from the `series` object. Use this option also to set
108
- * a static text for the label.
109
- *
110
- * @type string
111
- * @since 8.1.0
112
- */
113
- format: void 0,
114
- /**
115
- * Callback function to format each of the series' labels. The
116
- * `this` keyword refers to the series object. By default the
117
- * `formatter` is undefined and the `series.name` is rendered.
118
- *
119
- * @type {Highcharts.FormatterCallbackFunction<Series>}
120
- * @since 8.1.0
121
- */
122
- formatter: void 0,
123
- /**
124
- * For area-like series, allow the font size to vary so that
125
- * small areas get a smaller font size. The default applies this
126
- * effect to area-like series but not line-like series.
127
- *
128
- * @type {number|null}
129
- */
130
- minFontSize: null,
131
- /**
132
- * For area-like series, allow the font size to vary so that
133
- * small areas get a smaller font size. The default applies this
134
- * effect to area-like series but not line-like series.
135
- *
136
- * @type {number|null}
137
- */
138
- maxFontSize: null,
139
- /**
140
- * Draw the label on the area of an area series. By default it
141
- * is drawn on the area. Set it to `false` to draw it next to
142
- * the graph instead.
143
- *
144
- * @type {boolean|null}
145
- */
146
- onArea: null,
147
- /**
148
- * Styles for the series label. The color defaults to the series
149
- * color, or a contrast color if `onArea`.
150
- *
151
- * @type {Highcharts.CSSObject}
152
- */
153
- style: {
154
- /** @internal */
155
- fontWeight: 'bold'
156
- },
157
- /**
158
- * An array of boxes to avoid when laying out the labels. Each
159
- * item has a `left`, `right`, `top` and `bottom` property.
160
- *
161
- * @type {Array<Highcharts.LabelIntersectBoxObject>}
162
- */
163
- boxesToAvoid: []
164
- }
165
- }
166
- }
167
- });
168
- /* eslint-disable valid-jsdoc */
169
- /**
170
- * Counter-clockwise, part of the fast line intersection logic.
171
- *
172
- * @private
173
- * @function ccw
174
- */
175
- function ccw(x1, y1, x2, y2, x3, y3) {
176
- var cw = ((y3 - y1) * (x2 - x1)) - ((y2 - y1) * (x3 - x1));
177
- return cw > 0 ? true : !(cw < 0);
178
- }
179
- /**
180
- * Detect if two lines intersect.
23
+ 'use strict';
24
+ import A from '../../Core/Animation/AnimationUtilities.js';
25
+ var animObject = A.animObject;
26
+ import Chart from '../../Core/Chart/Chart.js';
27
+ import FU from '../../Core/FormatUtilities.js';
28
+ var format = FU.format;
29
+ import D from '../../Core/DefaultOptions.js';
30
+ var setOptions = D.setOptions;
31
+ import SeriesLabelDefaults from './SeriesLabelDefaults.js';
32
+ import SLU from './SeriesLabelUtilities.js';
33
+ var boxIntersectLine = SLU.boxIntersectLine, intersectRect = SLU.intersectRect;
34
+ import U from '../../Core/Utilities.js';
35
+ var addEvent = U.addEvent, extend = U.extend, fireEvent = U.fireEvent, isNumber = U.isNumber, pick = U.pick, syncTimeout = U.syncTimeout;
36
+ /* *
181
37
  *
182
- * @private
183
- * @function intersectLine
184
- */
185
- function intersectLine(x1, y1, x2, y2, x3, y3, x4, y4) {
186
- return ccw(x1, y1, x3, y3, x4, y4) !== ccw(x2, y2, x3, y3, x4, y4) &&
187
- ccw(x1, y1, x2, y2, x3, y3) !== ccw(x1, y1, x2, y2, x4, y4);
188
- }
189
- /**
190
- * Detect if a box intersects with a line.
38
+ * Constants
191
39
  *
192
- * @private
193
- * @function boxIntersectLine
194
- */
195
- function boxIntersectLine(x, y, w, h, x1, y1, x2, y2) {
196
- return (intersectLine(x, y, x + w, y, x1, y1, x2, y2) || // top of label
197
- intersectLine(x + w, y, x + w, y + h, x1, y1, x2, y2) || // right
198
- intersectLine(x, y + h, x + w, y + h, x1, y1, x2, y2) || // bottom
199
- intersectLine(x, y, x, y + h, x1, y1, x2, y2) // left of label
200
- );
201
- }
202
- /**
203
- * General symbol definition for labels with connector.
204
- */
205
- symbols.connector = function (x, y, w, h, options) {
206
- var anchorX = options && options.anchorX, anchorY = options && options.anchorY;
207
- var path, yOffset, lateral = w / 2;
208
- if (isNumber(anchorX) && isNumber(anchorY)) {
209
- path = [['M', anchorX, anchorY]];
210
- // Prefer 45 deg connectors
211
- yOffset = y - anchorY;
212
- if (yOffset < 0) {
213
- yOffset = -h - yOffset;
214
- }
215
- if (yOffset < w) {
216
- lateral = anchorX < x + (w / 2) ? yOffset : w - yOffset;
217
- }
218
- // Anchor below label
219
- if (anchorY > y + h) {
220
- path.push(['L', x + lateral, y + h]);
221
- // Anchor above label
222
- }
223
- else if (anchorY < y) {
224
- path.push(['L', x + lateral, y]);
225
- // Anchor left of label
226
- }
227
- else if (anchorX < x) {
228
- path.push(['L', x, y + h / 2]);
229
- // Anchor right of label
230
- }
231
- else if (anchorX > x + w) {
232
- path.push(['L', x + w, y + h / 2]);
233
- }
234
- }
235
- return path || [];
236
- };
237
- /**
238
- * Points to avoid. In addition to actual data points, the label should avoid
239
- * interpolated positions.
40
+ * */
41
+ var composedClasses = [];
42
+ var labelDistance = 3;
43
+ /* *
240
44
  *
241
- * @private
242
- * @function Highcharts.Series#getPointsOnGraph
243
- */
244
- Series.prototype.getPointsOnGraph = function () {
245
- if (!this.xAxis && !this.yAxis) {
246
- return;
247
- }
248
- var distance = 16, points = this.points, interpolated = [], graph = this.graph || this.area, node = graph.element, inverted = this.chart.inverted, xAxis = this.xAxis, yAxis = this.yAxis, paneLeft = inverted ? yAxis.pos : xAxis.pos, paneTop = inverted ? xAxis.pos : yAxis.pos, onArea = pick(this.options.label.onArea, !!this.area), translatedThreshold = yAxis.getThreshold(this.options.threshold), grid = {};
249
- var point, last, i, deltaX, deltaY, delta, len, n, j, d;
250
- /**
251
- * Push the point to the interpolated points, but only if that position in
252
- * the grid has not been occupied. As a performance optimization, we divide
253
- * the plot area into a grid and only add one point per series (#9815).
254
- * @private
255
- */
256
- function pushDiscrete(point) {
257
- var cellSize = 8, key = Math.round(point.plotX / cellSize) + ',' +
258
- Math.round(point.plotY / cellSize);
259
- if (!grid[key]) {
260
- grid[key] = 1;
261
- interpolated.push(point);
262
- }
263
- }
264
- // For splines, get the point at length (possible caveat: peaks are not
265
- // correctly detected)
266
- if (this.getPointSpline &&
267
- node.getPointAtLength &&
268
- !onArea &&
269
- // Not performing well on complex series, node.getPointAtLength is too
270
- // heavy (#9815)
271
- points.length < this.chart.plotSizeX / distance) {
272
- // If it is animating towards a path definition, use that briefly, and
273
- // reset
274
- if (graph.toD) {
275
- d = graph.attr('d');
276
- graph.attr({ d: graph.toD });
277
- }
278
- len = node.getTotalLength();
279
- for (i = 0; i < len; i += distance) {
280
- point = node.getPointAtLength(i);
281
- pushDiscrete({
282
- chartX: paneLeft + point.x,
283
- chartY: paneTop + point.y,
284
- plotX: point.x,
285
- plotY: point.y
286
- });
287
- }
288
- if (d) {
289
- graph.attr({ d: d });
290
- }
291
- // Last point
292
- point = points[points.length - 1];
293
- point.chartX = paneLeft + point.plotX;
294
- point.chartY = paneTop + point.plotY;
295
- pushDiscrete(point);
296
- // Interpolate
297
- }
298
- else {
299
- len = points.length;
300
- for (i = 0; i < len; i += 1) {
301
- point = points[i];
302
- last = points[i - 1];
303
- // Absolute coordinates so we can compare different panes
304
- point.chartX = paneLeft + point.plotX;
305
- point.chartY = paneTop + point.plotY;
306
- if (onArea) {
307
- // Vertically centered inside area
308
- point.chartCenterY = paneTop + (point.plotY +
309
- pick(point.yBottom, translatedThreshold)) / 2;
310
- }
311
- // Add interpolated points
312
- if (i > 0) {
313
- deltaX = Math.abs(point.chartX - last.chartX);
314
- deltaY = Math.abs(point.chartY - last.chartY);
315
- delta = Math.max(deltaX, deltaY);
316
- if (delta > distance) {
317
- n = Math.ceil(delta / distance);
318
- for (j = 1; j < n; j += 1) {
319
- pushDiscrete({
320
- chartX: last.chartX +
321
- (point.chartX - last.chartX) *
322
- (j / n),
323
- chartY: last.chartY +
324
- (point.chartY - last.chartY) *
325
- (j / n),
326
- chartCenterY: last.chartCenterY +
327
- (point.chartCenterY -
328
- last.chartCenterY) * (j / n),
329
- plotX: last.plotX +
330
- (point.plotX - last.plotX) *
331
- (j / n),
332
- plotY: last.plotY +
333
- (point.plotY - last.plotY) *
334
- (j / n)
335
- });
336
- }
337
- }
338
- }
339
- // Add the real point in order to find positive and negative peaks
340
- if (isNumber(point.plotY)) {
341
- pushDiscrete(point);
342
- }
343
- }
344
- }
345
- // Get the bounding box so we can do a quick check first if the bounding
346
- // boxes overlap.
347
- /*
348
- interpolated.bBox = node.getBBox();
349
- interpolated.bBox.x += paneLeft;
350
- interpolated.bBox.y += paneTop;
351
- */
352
- return interpolated;
353
- };
354
- /**
355
- * Overridable function to return series-specific font sizes for the labels. By
356
- * default it returns bigger font sizes for series with the greater sum of y
357
- * values.
45
+ * Functions
358
46
  *
359
- * @private
360
- * @function Highcharts.Series#labelFontSize
361
- */
362
- Series.prototype.labelFontSize = function (minFontSize, maxFontSize) {
363
- return minFontSize + ((this.sum / this.chart.labelSeriesMaxSum) *
364
- (maxFontSize - minFontSize)) + 'px';
365
- };
47
+ * */
366
48
  /**
367
49
  * Check whether a proposed label position is clear of other elements.
368
- *
369
50
  * @private
370
- * @function Highcharts.Series#checkClearPoint
371
51
  */
372
- Series.prototype.checkClearPoint = function (x, y, bBox, checkDistance) {
373
- var chart = this.chart, onArea = pick(this.options.label.onArea, !!this.area), findDistanceToOthers = (onArea || this.options.label.connectorAllowed), leastDistance = 16;
52
+ function checkClearPoint(series, x, y, bBox, checkDistance) {
53
+ var chart = series.chart, onArea = pick(series.options.label.onArea, !!series.area), findDistanceToOthers = (onArea || series.options.label.connectorAllowed), leastDistance = 16;
374
54
  var distToOthersSquared = Number.MAX_VALUE, // distance to other graphs
375
- distToPointSquared = Number.MAX_VALUE, dist, connectorPoint, series, points, withinRange, xDist, yDist, i, j;
376
- /**
377
- * @private
378
- */
379
- function intersectRect(r1, r2) {
380
- return !(r2.left > r1.right ||
381
- r2.right < r1.left ||
382
- r2.top > r1.bottom ||
383
- r2.bottom < r1.top);
384
- }
55
+ distToPointSquared = Number.MAX_VALUE, dist, connectorPoint, serie, points, withinRange, xDist, yDist, i, j;
385
56
  /**
386
57
  * Get the weight in order to determine the ideal position. Larger distance
387
58
  * to other series gives more weight. Smaller distance to the actual point
@@ -405,9 +76,9 @@ Series.prototype.checkClearPoint = function (x, y, bBox, checkDistance) {
405
76
  // For each position, check if the lines around the label intersect with any
406
77
  // of the graphs.
407
78
  for (i = 0; i < chart.series.length; i += 1) {
408
- series = chart.series[i];
409
- points = series.interpolatedPoints;
410
- if (series.visible && points) {
79
+ serie = chart.series[i];
80
+ points = serie.interpolatedPoints;
81
+ if (serie.visible && points) {
411
82
  for (j = 1; j < points.length; j += 1) {
412
83
  if (
413
84
  // To avoid processing, only check intersection if the X
@@ -430,14 +101,14 @@ Series.prototype.checkClearPoint = function (x, y, bBox, checkDistance) {
430
101
  }
431
102
  // But if it is too far away (a padded box doesn't
432
103
  // intersect), also return.
433
- if (this === series && !withinRange && checkDistance) {
104
+ if (series === serie && !withinRange && checkDistance) {
434
105
  withinRange = boxIntersectLine(x - leastDistance, y - leastDistance, bBox.width + 2 * leastDistance, bBox.height + 2 * leastDistance, points[j - 1].chartX, points[j - 1].chartY, points[j].chartX, points[j].chartY);
435
106
  }
436
107
  }
437
108
  // Find the squared distance from the center of the label. On
438
109
  // area series, avoid its own graph.
439
110
  if ((findDistanceToOthers || withinRange) &&
440
- (this !== series || onArea)) {
111
+ (series !== serie || onArea)) {
441
112
  xDist = x + bBox.width / 2 - points[j].chartX;
442
113
  yDist = y + bBox.height / 2 - points[j].chartY;
443
114
  distToOthersSquared = Math.min(distToOthersSquared, xDist * xDist + yDist * yDist);
@@ -446,9 +117,10 @@ Series.prototype.checkClearPoint = function (x, y, bBox, checkDistance) {
446
117
  // Do we need a connector?
447
118
  if (!onArea &&
448
119
  findDistanceToOthers &&
449
- this === series &&
120
+ series === serie &&
450
121
  ((checkDistance && !withinRange) ||
451
- distToOthersSquared < Math.pow(this.options.label.connectorNeighbourDistance, 2))) {
122
+ distToOthersSquared < Math.pow(series.options.label
123
+ .connectorNeighbourDistance, 2))) {
452
124
  for (j = 1; j < points.length; j += 1) {
453
125
  dist = Math.min((Math.pow(x + bBox.width / 2 - points[j].chartX, 2) +
454
126
  Math.pow(y + bBox.height / 2 - points[j].chartY, 2)), (Math.pow(x - points[j].chartX, 2) +
@@ -471,7 +143,26 @@ Series.prototype.checkClearPoint = function (x, y, bBox, checkDistance) {
471
143
  weight: getWeight(distToOthersSquared, connectorPoint ? distToPointSquared : 0),
472
144
  connectorPoint: connectorPoint
473
145
  } : false;
474
- };
146
+ }
147
+ /**
148
+ * @private
149
+ */
150
+ function compose(ChartClass, SVGRendererClass) {
151
+ if (composedClasses.indexOf(ChartClass) === -1) {
152
+ composedClasses.push(ChartClass);
153
+ // Leave both events, we handle animation differently (#9815)
154
+ addEvent(Chart, 'load', onChartRedraw);
155
+ addEvent(Chart, 'redraw', onChartRedraw);
156
+ }
157
+ if (composedClasses.indexOf(SVGRendererClass) === -1) {
158
+ composedClasses.push(SVGRendererClass);
159
+ SVGRendererClass.prototype.symbols.connector = symbolConnector;
160
+ }
161
+ if (composedClasses.indexOf(setOptions) === -1) {
162
+ composedClasses.push(setOptions);
163
+ setOptions({ plotOptions: { series: { label: SeriesLabelDefaults } } });
164
+ }
165
+ }
475
166
  /**
476
167
  * The main initialize method that runs on chart level after initialization and
477
168
  * redraw. It runs in a timeout to prevent locking, and loops over all series,
@@ -480,13 +171,13 @@ Series.prototype.checkClearPoint = function (x, y, bBox, checkDistance) {
480
171
  * @private
481
172
  * @function Highcharts.Chart#drawSeriesLabels
482
173
  */
483
- Chart.prototype.drawSeriesLabels = function () {
174
+ function drawSeriesLabels(chart) {
484
175
  // console.time('drawSeriesLabels');
485
- var chart = this, labelSeries = this.labelSeries;
176
+ var labelSeries = chart.labelSeries;
486
177
  chart.boxesToAvoid = [];
487
178
  // Build the interpolated points
488
179
  labelSeries.forEach(function (series) {
489
- series.interpolatedPoints = series.getPointsOnGraph();
180
+ series.interpolatedPoints = getPointsOnGraph(series);
490
181
  (series.options.label.boxesToAvoid || []).forEach(function (box) {
491
182
  chart.boxesToAvoid.push(box);
492
183
  });
@@ -535,7 +226,7 @@ Chart.prototype.drawSeriesLabels = function () {
535
226
  labelText = labelOptions.formatter.call(series);
536
227
  }
537
228
  series.labelBySeries = label = chart.renderer
538
- .label(labelText, 0, -9999, 'connector')
229
+ .label(labelText, 0, 0, 'connector')
539
230
  .addClass('highcharts-series-label ' +
540
231
  'highcharts-series-label-' + series.index + ' ' +
541
232
  (series.options.className || '') + ' ' +
@@ -555,7 +246,7 @@ Chart.prototype.drawSeriesLabels = function () {
555
246
  // Adapt label sizes to the sum of the data
556
247
  if (minFontSize && maxFontSize) {
557
248
  label.css({
558
- fontSize: series.labelFontSize(minFontSize, maxFontSize)
249
+ fontSize: labelFontSize(series, minFontSize, maxFontSize)
559
250
  });
560
251
  }
561
252
  label
@@ -575,7 +266,7 @@ Chart.prototype.drawSeriesLabels = function () {
575
266
  x = points[i].chartX - bBox.width / 2;
576
267
  y = points[i].chartCenterY - bBox.height / 2;
577
268
  if (insidePane(x, y, bBox)) {
578
- best = series.checkClearPoint(x, y, bBox);
269
+ best = checkClearPoint(series, x, y, bBox);
579
270
  }
580
271
  if (best) {
581
272
  results.push(best);
@@ -586,7 +277,7 @@ Chart.prototype.drawSeriesLabels = function () {
586
277
  x = points[i].chartX + labelDistance;
587
278
  y = points[i].chartY - bBox.height - labelDistance;
588
279
  if (insidePane(x, y, bBox)) {
589
- best = series.checkClearPoint(x, y, bBox, true);
280
+ best = checkClearPoint(series, x, y, bBox, true);
590
281
  }
591
282
  if (best) {
592
283
  results.push(best);
@@ -595,7 +286,7 @@ Chart.prototype.drawSeriesLabels = function () {
595
286
  x = points[i].chartX + labelDistance;
596
287
  y = points[i].chartY + labelDistance;
597
288
  if (insidePane(x, y, bBox)) {
598
- best = series.checkClearPoint(x, y, bBox, true);
289
+ best = checkClearPoint(series, x, y, bBox, true);
599
290
  }
600
291
  if (best) {
601
292
  results.push(best);
@@ -604,7 +295,7 @@ Chart.prototype.drawSeriesLabels = function () {
604
295
  x = points[i].chartX - bBox.width - labelDistance;
605
296
  y = points[i].chartY + labelDistance;
606
297
  if (insidePane(x, y, bBox)) {
607
- best = series.checkClearPoint(x, y, bBox, true);
298
+ best = checkClearPoint(series, x, y, bBox, true);
608
299
  }
609
300
  if (best) {
610
301
  results.push(best);
@@ -613,7 +304,7 @@ Chart.prototype.drawSeriesLabels = function () {
613
304
  x = points[i].chartX - bBox.width - labelDistance;
614
305
  y = points[i].chartY - bBox.height - labelDistance;
615
306
  if (insidePane(x, y, bBox)) {
616
- best = series.checkClearPoint(x, y, bBox, true);
307
+ best = checkClearPoint(series, x, y, bBox, true);
617
308
  }
618
309
  if (best) {
619
310
  results.push(best);
@@ -624,7 +315,7 @@ Chart.prototype.drawSeriesLabels = function () {
624
315
  if (labelOptions.connectorAllowed && !results.length && !onArea) {
625
316
  for (x = paneLeft + paneWidth - bBox.width; x >= paneLeft; x -= 16) {
626
317
  for (y = paneTop; y < paneTop + paneHeight - bBox.height; y += 16) {
627
- clearPoint = series.checkClearPoint(x, y, bBox, true);
318
+ clearPoint = checkClearPoint(series, x, y, bBox, true);
628
319
  if (clearPoint) {
629
320
  results.push(clearPoint);
630
321
  }
@@ -632,9 +323,7 @@ Chart.prototype.drawSeriesLabels = function () {
632
323
  }
633
324
  }
634
325
  if (results.length) {
635
- results.sort(function (a, b) {
636
- return b.weight - a.weight;
637
- });
326
+ results.sort(function (a, b) { return b.weight - a.weight; });
638
327
  best = results[0];
639
328
  chart.boxesToAvoid.push({
640
329
  left: best.x,
@@ -705,15 +394,139 @@ Chart.prototype.drawSeriesLabels = function () {
705
394
  });
706
395
  fireEvent(chart, 'afterDrawSeriesLabels');
707
396
  // console.timeEnd('drawSeriesLabels');
708
- };
709
- /* eslint-disable no-invalid-this */
397
+ }
710
398
  /**
711
- * Prepare drawing series labels.
399
+ * Points to avoid. In addition to actual data points, the label should avoid
400
+ * interpolated positions.
712
401
  *
713
402
  * @private
714
- * @function drawLabels
403
+ * @function Highcharts.Series#getPointsOnGraph
404
+ */
405
+ function getPointsOnGraph(series) {
406
+ if (!series.xAxis && !series.yAxis) {
407
+ return;
408
+ }
409
+ var distance = 16, points = series.points, interpolated = [], graph = series.graph || series.area, node = graph.element, inverted = series.chart.inverted, xAxis = series.xAxis, yAxis = series.yAxis, paneLeft = inverted ? yAxis.pos : xAxis.pos, paneTop = inverted ? xAxis.pos : yAxis.pos, onArea = pick(series.options.label.onArea, !!series.area), translatedThreshold = yAxis.getThreshold(series.options.threshold), grid = {};
410
+ var point, last, i, deltaX, deltaY, delta, len, n, j, d;
411
+ /**
412
+ * Push the point to the interpolated points, but only if that position in
413
+ * the grid has not been occupied. As a performance optimization, we divide
414
+ * the plot area into a grid and only add one point per series (#9815).
415
+ * @private
416
+ */
417
+ function pushDiscrete(point) {
418
+ var cellSize = 8, key = Math.round(point.plotX / cellSize) + ',' +
419
+ Math.round(point.plotY / cellSize);
420
+ if (!grid[key]) {
421
+ grid[key] = 1;
422
+ interpolated.push(point);
423
+ }
424
+ }
425
+ // For splines, get the point at length (possible caveat: peaks are not
426
+ // correctly detected)
427
+ if (series.getPointSpline &&
428
+ (node.getPointAtLength) &&
429
+ !onArea &&
430
+ // Not performing well on complex series, node.getPointAtLength is too
431
+ // heavy (#9815)
432
+ points.length < series.chart.plotSizeX / distance) {
433
+ // If it is animating towards a path definition, use that briefly, and
434
+ // reset
435
+ if (graph.toD) {
436
+ d = graph.attr('d');
437
+ graph.attr({ d: graph.toD });
438
+ }
439
+ len = node.getTotalLength();
440
+ for (i = 0; i < len; i += distance) {
441
+ point = node.getPointAtLength(i);
442
+ pushDiscrete({
443
+ chartX: paneLeft + point.x,
444
+ chartY: paneTop + point.y,
445
+ plotX: point.x,
446
+ plotY: point.y
447
+ });
448
+ }
449
+ if (d) {
450
+ graph.attr({ d: d });
451
+ }
452
+ // Last point
453
+ point = points[points.length - 1];
454
+ point.chartX = paneLeft + point.plotX;
455
+ point.chartY = paneTop + point.plotY;
456
+ pushDiscrete(point);
457
+ // Interpolate
458
+ }
459
+ else {
460
+ len = points.length;
461
+ for (i = 0; i < len; i += 1) {
462
+ point = points[i];
463
+ last = points[i - 1];
464
+ // Absolute coordinates so we can compare different panes
465
+ point.chartX = paneLeft + point.plotX;
466
+ point.chartY = paneTop + point.plotY;
467
+ if (onArea) {
468
+ // Vertically centered inside area
469
+ point.chartCenterY = paneTop + (point.plotY +
470
+ pick(point.yBottom, translatedThreshold)) / 2;
471
+ }
472
+ // Add interpolated points
473
+ if (i > 0) {
474
+ deltaX = Math.abs(point.chartX - last.chartX);
475
+ deltaY = Math.abs(point.chartY - last.chartY);
476
+ delta = Math.max(deltaX, deltaY);
477
+ if (delta > distance) {
478
+ n = Math.ceil(delta / distance);
479
+ for (j = 1; j < n; j += 1) {
480
+ pushDiscrete({
481
+ chartX: last.chartX +
482
+ (point.chartX - last.chartX) *
483
+ (j / n),
484
+ chartY: last.chartY +
485
+ (point.chartY - last.chartY) *
486
+ (j / n),
487
+ chartCenterY: last.chartCenterY +
488
+ (point.chartCenterY -
489
+ last.chartCenterY) * (j / n),
490
+ plotX: last.plotX +
491
+ (point.plotX - last.plotX) *
492
+ (j / n),
493
+ plotY: last.plotY +
494
+ (point.plotY - last.plotY) *
495
+ (j / n)
496
+ });
497
+ }
498
+ }
499
+ }
500
+ // Add the real point in order to find positive and negative peaks
501
+ if (isNumber(point.plotY)) {
502
+ pushDiscrete(point);
503
+ }
504
+ }
505
+ }
506
+ // Get the bounding box so we can do a quick check first if the bounding
507
+ // boxes overlap.
508
+ /*
509
+ interpolated.bBox = node.getBBox();
510
+ interpolated.bBox.x += paneLeft;
511
+ interpolated.bBox.y += paneTop;
512
+ */
513
+ return interpolated;
514
+ }
515
+ /**
516
+ * Overridable function to return series-specific font sizes for the labels. By
517
+ * default it returns bigger font sizes for series with the greater sum of y
518
+ * values.
519
+ * @private
715
520
  */
716
- function drawLabels(e) {
521
+ function labelFontSize(series, minFontSize, maxFontSize) {
522
+ return minFontSize + ((series.sum / series.chart.labelSeriesMaxSum) *
523
+ (maxFontSize - minFontSize)) + 'px';
524
+ }
525
+ /**
526
+ * Prepare drawing series labels.
527
+ * @private
528
+ */
529
+ function onChartRedraw(e) {
717
530
  if (this.renderer) {
718
531
  var chart_1 = this;
719
532
  var delay_1 = animObject(chart_1.renderer.globalAnimation).duration;
@@ -755,11 +568,76 @@ function drawLabels(e) {
755
568
  });
756
569
  chart_1.seriesLabelTimer = syncTimeout(function () {
757
570
  if (chart_1.series && chart_1.labelSeries) { // #7931, chart destroyed
758
- chart_1.drawSeriesLabels();
571
+ drawSeriesLabels(chart_1);
759
572
  }
760
573
  }, chart_1.renderer.forExport || !delay_1 ? 0 : delay_1);
761
574
  }
762
575
  }
763
- // Leave both events, we handle animation differently (#9815)
764
- addEvent(Chart, 'load', drawLabels);
765
- addEvent(Chart, 'redraw', drawLabels);
576
+ /**
577
+ * General symbol definition for labels with connector.
578
+ * @private
579
+ */
580
+ function symbolConnector(x, y, w, h, options) {
581
+ var anchorX = options && options.anchorX, anchorY = options && options.anchorY;
582
+ var path, yOffset, lateral = w / 2;
583
+ if (isNumber(anchorX) && isNumber(anchorY)) {
584
+ path = [['M', anchorX, anchorY]];
585
+ // Prefer 45 deg connectors
586
+ yOffset = y - anchorY;
587
+ if (yOffset < 0) {
588
+ yOffset = -h - yOffset;
589
+ }
590
+ if (yOffset < w) {
591
+ lateral = anchorX < x + (w / 2) ? yOffset : w - yOffset;
592
+ }
593
+ // Anchor below label
594
+ if (anchorY > y + h) {
595
+ path.push(['L', x + lateral, y + h]);
596
+ // Anchor above label
597
+ }
598
+ else if (anchorY < y) {
599
+ path.push(['L', x + lateral, y]);
600
+ // Anchor left of label
601
+ }
602
+ else if (anchorX < x) {
603
+ path.push(['L', x, y + h / 2]);
604
+ // Anchor right of label
605
+ }
606
+ else if (anchorX > x + w) {
607
+ path.push(['L', x + w, y + h / 2]);
608
+ }
609
+ }
610
+ return path || [];
611
+ }
612
+ /* *
613
+ *
614
+ * Default Export
615
+ *
616
+ * */
617
+ var SeriesLabel = {
618
+ compose: compose
619
+ };
620
+ export default SeriesLabel;
621
+ /* *
622
+ *
623
+ * API Declarations
624
+ *
625
+ * */
626
+ /**
627
+ * Containing the position of a box that should be avoided by labels.
628
+ *
629
+ * @interface Highcharts.LabelIntersectBoxObject
630
+ */ /**
631
+ * @name Highcharts.LabelIntersectBoxObject#bottom
632
+ * @type {number}
633
+ */ /**
634
+ * @name Highcharts.LabelIntersectBoxObject#left
635
+ * @type {number}
636
+ */ /**
637
+ * @name Highcharts.LabelIntersectBoxObject#right
638
+ * @type {number}
639
+ */ /**
640
+ * @name Highcharts.LabelIntersectBoxObject#top
641
+ * @type {number}
642
+ */
643
+ (''); // keeps doclets above in JS file