highcharts 9.1.1 → 9.2.2

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 (718) hide show
  1. package/bower.json +1 -1
  2. package/css/annotations/popup.css +29 -28
  3. package/css/annotations/popup.scss +29 -27
  4. package/css/highcharts.css +15 -0
  5. package/css/highcharts.scss +12 -0
  6. package/css/stocktools/gui.css +1 -0
  7. package/css/stocktools/gui.scss +1 -0
  8. package/css/themes/dark-unica.css +15 -0
  9. package/css/themes/grid-light.css +15 -0
  10. package/css/themes/sand-signika.css +15 -0
  11. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +8 -2
  12. package/es-modules/Accessibility/Components/LegendComponent.js +19 -8
  13. package/es-modules/Accessibility/Components/MenuComponent.js +19 -13
  14. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +4 -8
  15. package/es-modules/Accessibility/FocusBorder.js +1 -3
  16. package/es-modules/Accessibility/Options/LangOptions.js +3 -3
  17. package/es-modules/Accessibility/Utils/Announcer.js +22 -5
  18. package/es-modules/Accessibility/Utils/ChartUtilities.js +6 -1
  19. package/es-modules/Core/Animation/AnimationUtilities.js +12 -4
  20. package/es-modules/Core/Animation/Fx.js +15 -12
  21. package/es-modules/Core/Axis/Axis.js +25 -13
  22. package/es-modules/Core/Axis/AxisDefaults.js +0 -1
  23. package/es-modules/Core/Axis/BrokenAxis.js +32 -15
  24. package/es-modules/Core/Axis/Color/ColorAxis.js +665 -0
  25. package/es-modules/Core/Axis/Color/ColorAxisComposition.js +237 -0
  26. package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +434 -0
  27. package/es-modules/Core/Axis/DateTimeAxis.js +163 -133
  28. package/es-modules/Core/Axis/GridAxis.js +8 -3
  29. package/es-modules/Core/Axis/LogarithmicAxis.js +159 -117
  30. package/es-modules/Core/Axis/OrdinalAxis.js +666 -460
  31. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +874 -0
  32. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js +292 -0
  33. package/es-modules/Core/Axis/RadialAxis.js +858 -745
  34. package/es-modules/Core/Axis/ScrollbarAxis.js +7 -0
  35. package/es-modules/Core/Axis/StackingAxis.js +159 -140
  36. package/es-modules/Core/Axis/Tick.js +17 -27
  37. package/es-modules/Core/Chart/Chart.js +24 -38
  38. package/es-modules/Core/Chart/ChartDefaults.js +1 -1
  39. package/es-modules/Core/Chart/StockChart.js +12 -0
  40. package/es-modules/Core/Color/Color.js +96 -104
  41. package/es-modules/Core/DefaultOptions.js +269 -248
  42. package/es-modules/Core/Foundation.js +9 -8
  43. package/es-modules/Core/Geometry/CircleUtilities.js +385 -0
  44. package/es-modules/Core/Geometry/GeometryUtilities.js +83 -0
  45. package/es-modules/Core/Globals.js +23 -1
  46. package/es-modules/{Extensions/Ajax.js → Core/HttpUtilities.js} +86 -42
  47. package/es-modules/Core/{Legend.js → Legend/Legend.js} +142 -116
  48. package/es-modules/{Mixins → Core/Legend}/LegendSymbol.js +54 -38
  49. package/es-modules/Core/Navigator.js +3 -0
  50. package/es-modules/Core/Pointer.js +9 -0
  51. package/es-modules/Core/Renderer/HTML/AST.js +100 -82
  52. package/es-modules/Core/Renderer/HTML/HTMLElement.js +17 -7
  53. package/es-modules/Core/Renderer/HTML/HTMLRenderer.js +26 -9
  54. package/es-modules/Core/Renderer/RendererRegistry.js +9 -4
  55. package/es-modules/Core/Renderer/RendererUtilities.js +159 -0
  56. package/es-modules/Core/Renderer/SVG/SVGElement.js +13 -7
  57. package/es-modules/Core/Renderer/SVG/SVGLabel.js +9 -29
  58. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +2 -2
  59. package/es-modules/Core/Renderer/SVG/TextBuilder.js +18 -16
  60. package/es-modules/Core/Responsive.js +166 -148
  61. package/es-modules/Core/Series/DataLabel.js +564 -0
  62. package/es-modules/Core/Series/Point.js +233 -209
  63. package/es-modules/Core/Series/Series.js +174 -2339
  64. package/es-modules/Core/Series/SeriesDefaults.js +2293 -0
  65. package/es-modules/Core/Series/SeriesRegistry.js +3 -9
  66. package/es-modules/Core/Time.js +78 -2
  67. package/es-modules/Core/Tooltip.js +178 -236
  68. package/es-modules/Core/Utilities.js +409 -394
  69. package/es-modules/Extensions/Annotations/Annotations.js +102 -49
  70. package/es-modules/Extensions/Annotations/Mixins/EventEmitterMixin.js +9 -1
  71. package/es-modules/Extensions/Annotations/NavigationBindings.js +30 -25
  72. package/es-modules/Extensions/Annotations/Popup.js +16 -7
  73. package/es-modules/Extensions/Boost/BoostOverrides.js +5 -1
  74. package/es-modules/Extensions/Boost/WGLRenderer.js +5 -4
  75. package/es-modules/Extensions/Boost/WGLVBuffer.js +3 -0
  76. package/es-modules/Extensions/BoostCanvas.js +1 -1
  77. package/es-modules/Extensions/CurrentDateIndication.js +1 -1
  78. package/es-modules/Extensions/Data.js +82 -76
  79. package/es-modules/Extensions/DataGrouping.js +225 -184
  80. package/es-modules/Extensions/Debugger/ErrorMessages.js +2 -2
  81. package/es-modules/Extensions/DraggablePoints.js +13 -5
  82. package/es-modules/Extensions/Drilldown.js +41 -14
  83. package/es-modules/Extensions/ExportData.js +7 -4
  84. package/es-modules/Extensions/Exporting/Exporting.js +1273 -0
  85. package/es-modules/Extensions/Exporting/ExportingDefaults.js +803 -0
  86. package/es-modules/Extensions/Exporting/ExportingSymbols.js +73 -0
  87. package/es-modules/Extensions/FullScreen.js +7 -5
  88. package/es-modules/Extensions/NoDataToDisplay.js +1 -1
  89. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +617 -0
  90. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +58 -0
  91. package/es-modules/Extensions/Oldie/Oldie.js +1 -1
  92. package/es-modules/Extensions/Pane.js +0 -1
  93. package/es-modules/Extensions/PatternFill.js +23 -10
  94. package/es-modules/Extensions/Polar.js +2 -1
  95. package/es-modules/Extensions/RangeSelector.js +1 -1
  96. package/es-modules/Extensions/Themes/Avocado.js +49 -20
  97. package/es-modules/Extensions/Themes/DarkBlue.js +226 -203
  98. package/es-modules/Extensions/Themes/DarkGreen.js +231 -203
  99. package/es-modules/Extensions/Themes/DarkUnica.js +201 -172
  100. package/es-modules/Extensions/Themes/Gray.js +228 -205
  101. package/es-modules/Extensions/Themes/Grid.js +109 -81
  102. package/es-modules/Extensions/Themes/GridLight.js +83 -55
  103. package/es-modules/Extensions/Themes/HighContrastDark.js +192 -164
  104. package/es-modules/Extensions/Themes/HighContrastLight.js +49 -21
  105. package/es-modules/Extensions/Themes/SandSignika.js +115 -86
  106. package/es-modules/Extensions/Themes/Skies.js +102 -74
  107. package/es-modules/Extensions/Themes/Sunset.js +47 -19
  108. package/es-modules/Mixins/ColorSeries.js +0 -1
  109. package/es-modules/Mixins/MultipleLines.js +6 -0
  110. package/es-modules/Mixins/TreeSeries.js +1 -1
  111. package/es-modules/Series/Area/AreaSeries.js +2 -2
  112. package/es-modules/Series/AreaSpline/AreaSplineSeries.js +2 -2
  113. package/es-modules/Series/Bubble/BubbleLegendComposition.js +279 -0
  114. package/es-modules/Series/Bubble/BubbleLegendDefaults.js +267 -0
  115. package/es-modules/Series/Bubble/BubbleLegendItem.js +472 -0
  116. package/es-modules/Series/Bubble/BubbleSeries.js +6 -2
  117. package/es-modules/Series/Column/ColumnDataLabel.js +109 -0
  118. package/es-modules/Series/Column/ColumnSeries.js +39 -26
  119. package/es-modules/Series/Column3D/Column3DComposition.js +5 -2
  120. package/es-modules/Series/Flags/FlagsSeries.js +8 -1
  121. package/es-modules/Series/Gantt/GanttSeries.js +3 -3
  122. package/es-modules/Series/Heatmap/HeatmapSeries.js +9 -5
  123. package/es-modules/Series/HeikinAshi/HeikinAshiPoint.js +60 -0
  124. package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +277 -0
  125. package/es-modules/Series/HollowCandlestick/HollowCandlestickPoint.js +83 -0
  126. package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +370 -0
  127. package/es-modules/Series/Line/LineSeries.js +12 -8
  128. package/es-modules/Series/Map/MapSeries.js +5 -3
  129. package/es-modules/Series/MapBubble/MapBubbleSeries.js +6 -5
  130. package/es-modules/Series/OHLC/OHLCPoint.js +11 -0
  131. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +3 -1
  132. package/es-modules/Series/Pie/PieDataLabel.js +448 -0
  133. package/es-modules/Series/Pie/PiePoint.js +35 -34
  134. package/es-modules/Series/Pie/PieSeries.js +19 -16
  135. package/es-modules/Series/Polygon/PolygonSeries.js +3 -3
  136. package/es-modules/Series/Sankey/SankeySeries.js +9 -7
  137. package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +2 -2
  138. package/es-modules/Series/Sunburst/SunburstSeries.js +1 -14
  139. package/es-modules/Series/Timeline/TimelinePoint.js +6 -0
  140. package/es-modules/Series/Timeline/TimelineSeries.js +14 -17
  141. package/es-modules/Series/Treemap/TreemapSeries.js +3 -3
  142. package/es-modules/Series/Venn/VennSeries.js +4 -4
  143. package/es-modules/Series/Venn/VennUtils.js +10 -16
  144. package/es-modules/Series/Waterfall/WaterfallSeries.js +40 -35
  145. package/es-modules/Series/Wordcloud/WordcloudSeries.js +1 -0
  146. package/es-modules/Series/XRange/XRangeSeries.js +4 -2
  147. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +92 -75
  148. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +20 -8
  149. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +17 -4
  150. package/es-modules/Stock/StockToolsBindings.js +77 -38
  151. package/es-modules/Stock/StockToolsGui.js +28 -3
  152. package/es-modules/masters/highcharts-3d.src.js +1 -1
  153. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  154. package/es-modules/masters/highcharts-more.src.js +11 -7
  155. package/es-modules/masters/highcharts.src.js +25 -9
  156. package/es-modules/masters/highmaps.src.js +1 -1
  157. package/es-modules/masters/highstock.src.js +1 -1
  158. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  159. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  160. package/es-modules/masters/indicators/ao.src.js +1 -1
  161. package/es-modules/masters/indicators/apo.src.js +1 -1
  162. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  163. package/es-modules/masters/indicators/aroon.src.js +1 -1
  164. package/es-modules/masters/indicators/atr.src.js +1 -1
  165. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  166. package/es-modules/masters/indicators/cci.src.js +1 -1
  167. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  168. package/es-modules/masters/indicators/cmf.src.js +1 -1
  169. package/es-modules/masters/indicators/cmo.src.js +1 -1
  170. package/es-modules/masters/indicators/dema.src.js +1 -1
  171. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  172. package/es-modules/masters/indicators/dmi.src.js +1 -1
  173. package/es-modules/masters/indicators/dpo.src.js +1 -1
  174. package/es-modules/masters/indicators/ema.src.js +1 -1
  175. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  176. package/es-modules/masters/indicators/indicators-all.src.js +1 -1
  177. package/es-modules/masters/indicators/indicators.src.js +1 -1
  178. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  179. package/es-modules/masters/indicators/klinger.src.js +1 -1
  180. package/es-modules/masters/indicators/macd.src.js +1 -1
  181. package/es-modules/masters/indicators/mfi.src.js +1 -1
  182. package/es-modules/masters/indicators/momentum.src.js +1 -1
  183. package/es-modules/masters/indicators/natr.src.js +1 -1
  184. package/es-modules/masters/indicators/obv.src.js +1 -1
  185. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  186. package/es-modules/masters/indicators/ppo.src.js +1 -1
  187. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  188. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  189. package/es-modules/masters/indicators/psar.src.js +1 -1
  190. package/es-modules/masters/indicators/regressions.src.js +1 -1
  191. package/es-modules/masters/indicators/roc.src.js +1 -1
  192. package/es-modules/masters/indicators/rsi.src.js +1 -1
  193. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  194. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  195. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  196. package/es-modules/masters/indicators/tema.src.js +1 -1
  197. package/es-modules/masters/indicators/trendline.src.js +1 -1
  198. package/es-modules/masters/indicators/trix.src.js +1 -1
  199. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  200. package/es-modules/masters/indicators/vwap.src.js +1 -1
  201. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  202. package/es-modules/masters/indicators/wma.src.js +1 -1
  203. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  204. package/es-modules/masters/modules/accessibility.src.js +1 -1
  205. package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
  206. package/es-modules/masters/modules/annotations.src.js +1 -1
  207. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  208. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  209. package/es-modules/masters/modules/boost.src.js +1 -1
  210. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  211. package/es-modules/masters/modules/bullet.src.js +1 -1
  212. package/es-modules/masters/modules/coloraxis.src.js +6 -2
  213. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  214. package/es-modules/masters/modules/cylinder.src.js +1 -1
  215. package/es-modules/masters/modules/data.src.js +8 -1
  216. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  217. package/es-modules/masters/modules/debugger.src.js +1 -1
  218. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  219. package/es-modules/masters/modules/dotplot.src.js +1 -1
  220. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  221. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  222. package/es-modules/masters/modules/drilldown.src.js +1 -1
  223. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  224. package/es-modules/masters/modules/export-data.src.js +1 -1
  225. package/es-modules/masters/modules/exporting.src.js +10 -2
  226. package/es-modules/masters/modules/full-screen.src.js +1 -1
  227. package/es-modules/masters/modules/funnel.src.js +1 -1
  228. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  229. package/es-modules/masters/modules/gantt.src.js +9 -4
  230. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  231. package/es-modules/masters/modules/heatmap.src.js +6 -2
  232. package/es-modules/masters/modules/heikinashi.src.js +14 -0
  233. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  234. package/es-modules/masters/modules/hollowcandlestick.src.js +14 -0
  235. package/es-modules/masters/modules/item-series.src.js +1 -1
  236. package/es-modules/masters/modules/lollipop.src.js +1 -1
  237. package/es-modules/masters/modules/map.src.js +10 -6
  238. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  239. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  240. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  241. package/es-modules/masters/modules/offline-exporting.src.js +8 -2
  242. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  243. package/es-modules/masters/modules/oldie.src.js +1 -1
  244. package/es-modules/masters/modules/organization.src.js +1 -1
  245. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  246. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  247. package/es-modules/masters/modules/pareto.src.js +1 -1
  248. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  249. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  250. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  251. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  252. package/es-modules/masters/modules/sankey.src.js +1 -1
  253. package/es-modules/masters/modules/series-label.src.js +1 -1
  254. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  255. package/es-modules/masters/modules/sonification.src.js +1 -1
  256. package/es-modules/masters/modules/static-scale.src.js +1 -1
  257. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  258. package/es-modules/masters/modules/stock.src.js +3 -2
  259. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  260. package/es-modules/masters/modules/sunburst.src.js +1 -1
  261. package/es-modules/masters/modules/tilemap.src.js +1 -1
  262. package/es-modules/masters/modules/timeline.src.js +1 -1
  263. package/es-modules/masters/modules/treegrid.src.js +1 -1
  264. package/es-modules/masters/modules/treemap.src.js +1 -1
  265. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  266. package/es-modules/masters/modules/variwide.src.js +1 -1
  267. package/es-modules/masters/modules/vector.src.js +1 -1
  268. package/es-modules/masters/modules/venn.src.js +1 -1
  269. package/es-modules/masters/modules/windbarb.src.js +1 -1
  270. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  271. package/es-modules/masters/modules/xrange.src.js +1 -1
  272. package/es-modules/masters/themes/avocado.src.js +5 -2
  273. package/es-modules/masters/themes/dark-blue.src.js +5 -2
  274. package/es-modules/masters/themes/dark-green.src.js +5 -2
  275. package/es-modules/masters/themes/dark-unica.src.js +5 -2
  276. package/es-modules/masters/themes/gray.src.js +5 -2
  277. package/es-modules/masters/themes/grid-light.src.js +5 -2
  278. package/es-modules/masters/themes/grid.src.js +5 -2
  279. package/es-modules/masters/themes/high-contrast-dark.src.js +5 -2
  280. package/es-modules/masters/themes/high-contrast-light.src.js +5 -2
  281. package/es-modules/masters/themes/sand-signika.src.js +5 -2
  282. package/es-modules/masters/themes/skies.src.js +5 -2
  283. package/es-modules/masters/themes/sunset.src.js +5 -2
  284. package/gfx/stock-icons/annotations-hidden.svg +1 -1
  285. package/gfx/stock-icons/annotations-visible.svg +2 -2
  286. package/gfx/stock-icons/arrow-bottom.svg +1 -1
  287. package/gfx/stock-icons/arrow-left.svg +1 -1
  288. package/gfx/stock-icons/arrow-line.svg +1 -1
  289. package/gfx/stock-icons/arrow-ray.svg +1 -1
  290. package/gfx/stock-icons/arrow-right.svg +1 -1
  291. package/gfx/stock-icons/arrow-segment.svg +1 -2
  292. package/gfx/stock-icons/circle.svg +1 -1
  293. package/gfx/stock-icons/close.svg +2 -2
  294. package/gfx/stock-icons/crooked-3.svg +1 -1
  295. package/gfx/stock-icons/crooked-5.svg +1 -1
  296. package/gfx/stock-icons/current-price-hide.svg +3 -3
  297. package/gfx/stock-icons/current-price-show.svg +2 -2
  298. package/gfx/stock-icons/destroy.svg +1 -1
  299. package/gfx/stock-icons/drawing.svg +18 -0
  300. package/gfx/stock-icons/edit.svg +1 -1
  301. package/gfx/stock-icons/elliott-3.svg +1 -1
  302. package/gfx/stock-icons/elliott-5.svg +1 -1
  303. package/gfx/stock-icons/ellipse.svg +11 -0
  304. package/gfx/stock-icons/fibonacci-timezone.svg +16 -0
  305. package/gfx/stock-icons/fibonacci.svg +1 -1
  306. package/gfx/stock-icons/flag-basic.svg +1 -1
  307. package/gfx/stock-icons/flag-diamond.svg +2 -2
  308. package/gfx/stock-icons/flag-elipse.svg +1 -1
  309. package/gfx/stock-icons/flag-trapeze.svg +2 -2
  310. package/gfx/stock-icons/fullscreen.svg +4 -4
  311. package/gfx/stock-icons/horizontal-line.svg +1 -1
  312. package/gfx/stock-icons/indicators.svg +3 -3
  313. package/gfx/stock-icons/label.svg +4 -4
  314. package/gfx/stock-icons/line.svg +1 -1
  315. package/gfx/stock-icons/linear.svg +11 -0
  316. package/gfx/stock-icons/logarithmic.svg +1 -0
  317. package/gfx/stock-icons/measure-x.svg +2 -2
  318. package/gfx/stock-icons/measure-xy.svg +1 -1
  319. package/gfx/stock-icons/measure-y.svg +1 -1
  320. package/gfx/stock-icons/panning.svg +17 -0
  321. package/gfx/stock-icons/parallel-channel.svg +1 -1
  322. package/gfx/stock-icons/pitchfork.svg +1 -1
  323. package/gfx/stock-icons/ray.svg +1 -1
  324. package/gfx/stock-icons/rectangle.svg +1 -1
  325. package/gfx/stock-icons/remove-annotations.svg +2 -2
  326. package/gfx/stock-icons/save-chart.svg +3 -3
  327. package/gfx/stock-icons/segment.svg +1 -1
  328. package/gfx/stock-icons/separator.svg +1 -1
  329. package/gfx/stock-icons/series-candlestick.svg +1 -1
  330. package/gfx/stock-icons/series-heikin-ashi.svg +1 -0
  331. package/gfx/stock-icons/series-hlc.svg +1 -0
  332. package/gfx/stock-icons/series-hollow-candlestick.svg +1 -0
  333. package/gfx/stock-icons/series-line.svg +1 -1
  334. package/gfx/stock-icons/series-ohlc.svg +4 -4
  335. package/gfx/stock-icons/time-cycles.svg +35 -0
  336. package/gfx/stock-icons/vertical-arrow.svg +1 -1
  337. package/gfx/stock-icons/vertical-counter.svg +1 -1
  338. package/gfx/stock-icons/vertical-double-arrow.svg +1 -1
  339. package/gfx/stock-icons/vertical-label.svg +3 -3
  340. package/gfx/stock-icons/vertical-line.svg +1 -1
  341. package/gfx/stock-icons/zoom-x.svg +2 -2
  342. package/gfx/stock-icons/zoom-xy.svg +2 -2
  343. package/gfx/stock-icons/zoom-y.svg +2 -2
  344. package/highcharts-3d.js +24 -24
  345. package/highcharts-3d.js.map +1 -1
  346. package/highcharts-3d.src.js +6 -3
  347. package/highcharts-gantt.js +800 -792
  348. package/highcharts-gantt.js.map +1 -1
  349. package/highcharts-gantt.src.js +16535 -15918
  350. package/highcharts-more.d.ts +73 -1
  351. package/highcharts-more.js +193 -192
  352. package/highcharts-more.js.map +1 -1
  353. package/highcharts-more.src.d.ts +73 -1
  354. package/highcharts-more.src.js +8044 -7839
  355. package/highcharts.d.ts +3850 -177
  356. package/highcharts.js +589 -581
  357. package/highcharts.js.map +1 -1
  358. package/highcharts.src.d.ts +3850 -177
  359. package/highcharts.src.js +16635 -16060
  360. package/highmaps.js +708 -698
  361. package/highmaps.js.map +1 -1
  362. package/highmaps.src.js +17419 -16521
  363. package/highstock.js +782 -769
  364. package/highstock.js.map +1 -1
  365. package/highstock.src.js +28867 -27975
  366. package/indicators/acceleration-bands.js +9 -9
  367. package/indicators/acceleration-bands.js.map +1 -1
  368. package/indicators/acceleration-bands.src.js +7 -1
  369. package/indicators/accumulation-distribution.js +1 -1
  370. package/indicators/accumulation-distribution.src.js +1 -1
  371. package/indicators/ao.js +1 -1
  372. package/indicators/ao.src.js +1 -1
  373. package/indicators/apo.js +1 -1
  374. package/indicators/apo.src.js +1 -1
  375. package/indicators/aroon-oscillator.js +9 -9
  376. package/indicators/aroon-oscillator.js.map +1 -1
  377. package/indicators/aroon-oscillator.src.js +7 -1
  378. package/indicators/aroon.js +9 -9
  379. package/indicators/aroon.js.map +1 -1
  380. package/indicators/aroon.src.js +7 -1
  381. package/indicators/atr.js +1 -1
  382. package/indicators/atr.src.js +1 -1
  383. package/indicators/bollinger-bands.js +9 -9
  384. package/indicators/bollinger-bands.js.map +1 -1
  385. package/indicators/bollinger-bands.src.js +7 -1
  386. package/indicators/cci.js +1 -1
  387. package/indicators/cci.src.js +1 -1
  388. package/indicators/chaikin.js +1 -1
  389. package/indicators/chaikin.src.js +1 -1
  390. package/indicators/cmf.js +1 -1
  391. package/indicators/cmf.src.js +1 -1
  392. package/indicators/cmo.js +1 -1
  393. package/indicators/cmo.src.js +1 -1
  394. package/indicators/dema.js +1 -1
  395. package/indicators/dema.src.js +1 -1
  396. package/indicators/disparity-index.js +1 -1
  397. package/indicators/disparity-index.src.js +1 -1
  398. package/indicators/dmi.js +11 -11
  399. package/indicators/dmi.js.map +1 -1
  400. package/indicators/dmi.src.js +7 -1
  401. package/indicators/dpo.js +1 -1
  402. package/indicators/dpo.src.js +1 -1
  403. package/indicators/ema.js +1 -1
  404. package/indicators/ema.src.js +1 -1
  405. package/indicators/ichimoku-kinko-hyo.js +1 -1
  406. package/indicators/ichimoku-kinko-hyo.src.js +1 -1
  407. package/indicators/indicators-all.js +203 -200
  408. package/indicators/indicators-all.js.map +1 -1
  409. package/indicators/indicators-all.src.js +206 -104
  410. package/indicators/indicators.js +12 -11
  411. package/indicators/indicators.js.map +1 -1
  412. package/indicators/indicators.src.js +108 -90
  413. package/indicators/keltner-channels.js +9 -9
  414. package/indicators/keltner-channels.js.map +1 -1
  415. package/indicators/keltner-channels.src.js +7 -1
  416. package/indicators/klinger.js +13 -13
  417. package/indicators/klinger.js.map +1 -1
  418. package/indicators/klinger.src.js +7 -1
  419. package/indicators/macd.js +1 -1
  420. package/indicators/macd.src.js +1 -1
  421. package/indicators/mfi.js +1 -1
  422. package/indicators/mfi.src.js +1 -1
  423. package/indicators/momentum.js +1 -1
  424. package/indicators/momentum.src.js +1 -1
  425. package/indicators/natr.js +1 -1
  426. package/indicators/natr.src.js +1 -1
  427. package/indicators/obv.js +1 -1
  428. package/indicators/obv.src.js +1 -1
  429. package/indicators/pivot-points.js +1 -1
  430. package/indicators/pivot-points.src.js +1 -1
  431. package/indicators/ppo.js +1 -1
  432. package/indicators/ppo.src.js +1 -1
  433. package/indicators/price-channel.js +9 -9
  434. package/indicators/price-channel.js.map +1 -1
  435. package/indicators/price-channel.src.js +7 -1
  436. package/indicators/price-envelopes.js +1 -1
  437. package/indicators/price-envelopes.src.js +1 -1
  438. package/indicators/psar.js +1 -1
  439. package/indicators/psar.src.js +1 -1
  440. package/indicators/regressions.js +1 -1
  441. package/indicators/regressions.src.js +1 -1
  442. package/indicators/roc.js +1 -1
  443. package/indicators/roc.src.js +1 -1
  444. package/indicators/rsi.js +1 -1
  445. package/indicators/rsi.src.js +1 -1
  446. package/indicators/slow-stochastic.js +1 -1
  447. package/indicators/slow-stochastic.src.js +1 -1
  448. package/indicators/stochastic.js +10 -10
  449. package/indicators/stochastic.js.map +1 -1
  450. package/indicators/stochastic.src.js +7 -1
  451. package/indicators/supertrend.js +10 -10
  452. package/indicators/supertrend.js.map +1 -1
  453. package/indicators/supertrend.src.js +23 -10
  454. package/indicators/tema.js +1 -1
  455. package/indicators/tema.src.js +1 -1
  456. package/indicators/trendline.js +1 -1
  457. package/indicators/trendline.src.js +1 -1
  458. package/indicators/trix.js +1 -1
  459. package/indicators/trix.src.js +1 -1
  460. package/indicators/volume-by-price.js +17 -15
  461. package/indicators/volume-by-price.js.map +1 -1
  462. package/indicators/volume-by-price.src.js +71 -6
  463. package/indicators/vwap.js +1 -1
  464. package/indicators/vwap.src.js +1 -1
  465. package/indicators/williams-r.js +1 -1
  466. package/indicators/williams-r.src.js +1 -1
  467. package/indicators/wma.js +1 -1
  468. package/indicators/wma.src.js +1 -1
  469. package/indicators/zigzag.js +1 -1
  470. package/indicators/zigzag.src.js +1 -1
  471. package/modules/accessibility.js +203 -202
  472. package/modules/accessibility.js.map +1 -1
  473. package/modules/accessibility.src.js +89 -49
  474. package/modules/annotations-advanced.js +164 -163
  475. package/modules/annotations-advanced.js.map +1 -1
  476. package/modules/annotations-advanced.src.js +162 -87
  477. package/modules/annotations.js +111 -111
  478. package/modules/annotations.js.map +1 -1
  479. package/modules/annotations.src.js +162 -87
  480. package/modules/arrow-symbols.js +1 -1
  481. package/modules/arrow-symbols.src.js +1 -1
  482. package/modules/boost-canvas.js +2 -2
  483. package/modules/boost-canvas.js.map +1 -1
  484. package/modules/boost-canvas.src.js +2 -2
  485. package/modules/boost.js +52 -52
  486. package/modules/boost.js.map +1 -1
  487. package/modules/boost.src.js +15 -7
  488. package/modules/broken-axis.js +13 -13
  489. package/modules/broken-axis.js.map +1 -1
  490. package/modules/broken-axis.src.js +34 -15
  491. package/modules/bullet.js +1 -1
  492. package/modules/bullet.src.js +1 -1
  493. package/modules/coloraxis.js +24 -22
  494. package/modules/coloraxis.js.map +1 -1
  495. package/modules/coloraxis.src.js +954 -774
  496. package/modules/current-date-indicator.js +2 -2
  497. package/modules/current-date-indicator.js.map +1 -1
  498. package/modules/current-date-indicator.src.js +2 -2
  499. package/modules/cylinder.js +1 -1
  500. package/modules/cylinder.src.js +1 -1
  501. package/modules/data.js +33 -32
  502. package/modules/data.js.map +1 -1
  503. package/modules/data.src.js +182 -134
  504. package/modules/datagrouping.d.ts +5 -0
  505. package/modules/datagrouping.js +20 -20
  506. package/modules/datagrouping.js.map +1 -1
  507. package/modules/datagrouping.src.d.ts +5 -0
  508. package/modules/datagrouping.src.js +270 -228
  509. package/modules/debugger.js +3 -3
  510. package/modules/debugger.js.map +1 -1
  511. package/modules/debugger.src.js +3 -3
  512. package/modules/dependency-wheel.js +1 -1
  513. package/modules/dependency-wheel.src.js +1 -1
  514. package/modules/dotplot.js +1 -1
  515. package/modules/dotplot.src.js +1 -1
  516. package/modules/drag-panes.js +1 -1
  517. package/modules/drag-panes.src.js +1 -1
  518. package/modules/draggable-points.js +34 -34
  519. package/modules/draggable-points.js.map +1 -1
  520. package/modules/draggable-points.src.js +14 -5
  521. package/modules/drilldown.d.ts +27 -0
  522. package/modules/drilldown.js +18 -18
  523. package/modules/drilldown.js.map +1 -1
  524. package/modules/drilldown.src.d.ts +27 -0
  525. package/modules/drilldown.src.js +42 -16
  526. package/modules/dumbbell.js +1 -1
  527. package/modules/dumbbell.src.js +1 -1
  528. package/modules/export-data.js +20 -20
  529. package/modules/export-data.js.map +1 -1
  530. package/modules/export-data.src.js +8 -5
  531. package/modules/exporting.d.ts +29 -0
  532. package/modules/exporting.js +38 -35
  533. package/modules/exporting.js.map +1 -1
  534. package/modules/exporting.src.d.ts +29 -0
  535. package/modules/exporting.src.js +1937 -1614
  536. package/modules/full-screen.js +2 -2
  537. package/modules/full-screen.js.map +1 -1
  538. package/modules/full-screen.src.js +8 -6
  539. package/modules/funnel.js +1 -1
  540. package/modules/funnel.src.js +1 -1
  541. package/modules/funnel3d.js +1 -1
  542. package/modules/funnel3d.src.js +1 -1
  543. package/modules/gantt.js +218 -217
  544. package/modules/gantt.js.map +1 -1
  545. package/modules/gantt.src.js +74 -32
  546. package/modules/grid-axis.js +23 -22
  547. package/modules/grid-axis.js.map +1 -1
  548. package/modules/grid-axis.src.js +9 -4
  549. package/modules/heatmap.js +39 -37
  550. package/modules/heatmap.js.map +1 -1
  551. package/modules/heatmap.src.js +963 -779
  552. package/modules/heikinashi.js +17 -0
  553. package/modules/heikinashi.js.map +1 -0
  554. package/modules/heikinashi.src.js +394 -0
  555. package/modules/histogram-bellcurve.js +1 -1
  556. package/modules/histogram-bellcurve.src.js +1 -1
  557. package/modules/hollowcandlestick.js +18 -0
  558. package/modules/hollowcandlestick.js.map +1 -0
  559. package/modules/hollowcandlestick.src.js +504 -0
  560. package/modules/item-series.js +1 -1
  561. package/modules/item-series.src.js +1 -1
  562. package/modules/lollipop.js +1 -1
  563. package/modules/lollipop.src.js +1 -1
  564. package/modules/map.d.ts +9 -0
  565. package/modules/map.js +122 -119
  566. package/modules/map.js.map +1 -1
  567. package/modules/map.src.d.ts +9 -0
  568. package/modules/map.src.js +1655 -1332
  569. package/modules/marker-clusters.js +1 -1
  570. package/modules/marker-clusters.src.js +1 -1
  571. package/modules/networkgraph.js +1 -1
  572. package/modules/networkgraph.src.js +1 -1
  573. package/modules/no-data-to-display.js +3 -3
  574. package/modules/no-data-to-display.js.map +1 -1
  575. package/modules/no-data-to-display.src.js +2 -2
  576. package/modules/offline-exporting.js +18 -16
  577. package/modules/offline-exporting.js.map +1 -1
  578. package/modules/offline-exporting.src.js +623 -562
  579. package/modules/oldie-polyfills.js +1 -1
  580. package/modules/oldie-polyfills.src.js +1 -1
  581. package/modules/oldie.js +2 -2
  582. package/modules/oldie.src.js +2 -2
  583. package/modules/organization.js +1 -1
  584. package/modules/organization.src.js +1 -1
  585. package/modules/overlapping-datalabels.js +1 -1
  586. package/modules/overlapping-datalabels.src.js +1 -1
  587. package/modules/parallel-coordinates.js +1 -1
  588. package/modules/parallel-coordinates.src.js +1 -1
  589. package/modules/pareto.js +1 -1
  590. package/modules/pareto.src.js +1 -1
  591. package/modules/pathfinder.js +1 -1
  592. package/modules/pathfinder.src.js +1 -1
  593. package/modules/pattern-fill.js +14 -14
  594. package/modules/pattern-fill.js.map +1 -1
  595. package/modules/pattern-fill.src.js +24 -12
  596. package/modules/price-indicator.js +1 -1
  597. package/modules/price-indicator.src.js +1 -1
  598. package/modules/pyramid3d.js +1 -1
  599. package/modules/pyramid3d.src.js +1 -1
  600. package/modules/sankey.js +28 -28
  601. package/modules/sankey.js.map +1 -1
  602. package/modules/sankey.src.js +11 -11
  603. package/modules/series-label.js +1 -1
  604. package/modules/series-label.src.js +1 -1
  605. package/modules/solid-gauge.js +2 -2
  606. package/modules/solid-gauge.js.map +1 -1
  607. package/modules/solid-gauge.src.js +3 -3
  608. package/modules/sonification.js +1 -1
  609. package/modules/sonification.src.js +1 -1
  610. package/modules/static-scale.js +1 -1
  611. package/modules/static-scale.src.js +1 -1
  612. package/modules/stock-tools.js +159 -157
  613. package/modules/stock-tools.js.map +1 -1
  614. package/modules/stock-tools.src.js +253 -123
  615. package/modules/stock.d.ts +5 -0
  616. package/modules/stock.js +196 -191
  617. package/modules/stock.js.map +1 -1
  618. package/modules/stock.src.d.ts +5 -0
  619. package/modules/stock.src.js +7749 -7432
  620. package/modules/streamgraph.js +1 -1
  621. package/modules/streamgraph.src.js +1 -1
  622. package/modules/sunburst.js +5 -5
  623. package/modules/sunburst.js.map +1 -1
  624. package/modules/sunburst.src.js +6 -19
  625. package/modules/tilemap.js +1 -1
  626. package/modules/tilemap.src.js +1 -1
  627. package/modules/timeline.js +18 -17
  628. package/modules/timeline.js.map +1 -1
  629. package/modules/timeline.src.js +21 -24
  630. package/modules/treegrid.js +57 -57
  631. package/modules/treegrid.js.map +1 -1
  632. package/modules/treegrid.src.js +43 -19
  633. package/modules/treemap.js +5 -5
  634. package/modules/treemap.js.map +1 -1
  635. package/modules/treemap.src.js +5 -5
  636. package/modules/variable-pie.js +1 -1
  637. package/modules/variable-pie.src.js +1 -1
  638. package/modules/variwide.js +1 -1
  639. package/modules/variwide.src.js +1 -1
  640. package/modules/vector.js +1 -1
  641. package/modules/vector.src.js +1 -1
  642. package/modules/venn.js +31 -30
  643. package/modules/venn.js.map +1 -1
  644. package/modules/venn.src.js +508 -424
  645. package/modules/windbarb.js +1 -1
  646. package/modules/windbarb.src.js +1 -1
  647. package/modules/wordcloud.js +4 -4
  648. package/modules/wordcloud.js.map +1 -1
  649. package/modules/wordcloud.src.js +2 -1
  650. package/modules/xrange.js +17 -17
  651. package/modules/xrange.js.map +1 -1
  652. package/modules/xrange.src.js +7 -4
  653. package/package.json +1 -1
  654. package/themes/avocado.d.ts +6 -1
  655. package/themes/avocado.js +3 -3
  656. package/themes/avocado.js.map +1 -1
  657. package/themes/avocado.src.d.ts +6 -1
  658. package/themes/avocado.src.js +53 -22
  659. package/themes/dark-blue.d.ts +6 -1
  660. package/themes/dark-blue.js +3 -3
  661. package/themes/dark-blue.js.map +1 -1
  662. package/themes/dark-blue.src.d.ts +6 -1
  663. package/themes/dark-blue.src.js +231 -205
  664. package/themes/dark-green.d.ts +6 -1
  665. package/themes/dark-green.js +4 -4
  666. package/themes/dark-green.js.map +1 -1
  667. package/themes/dark-green.src.d.ts +6 -1
  668. package/themes/dark-green.src.js +236 -205
  669. package/themes/dark-unica.d.ts +6 -1
  670. package/themes/dark-unica.js +7 -7
  671. package/themes/dark-unica.js.map +1 -1
  672. package/themes/dark-unica.src.d.ts +6 -1
  673. package/themes/dark-unica.src.js +206 -174
  674. package/themes/gray.d.ts +6 -1
  675. package/themes/gray.js +3 -3
  676. package/themes/gray.js.map +1 -1
  677. package/themes/gray.src.d.ts +6 -1
  678. package/themes/gray.src.js +233 -207
  679. package/themes/grid-light.d.ts +6 -1
  680. package/themes/grid-light.js +4 -4
  681. package/themes/grid-light.js.map +1 -1
  682. package/themes/grid-light.src.d.ts +6 -1
  683. package/themes/grid-light.src.js +88 -57
  684. package/themes/grid.d.ts +6 -1
  685. package/themes/grid.js +3 -3
  686. package/themes/grid.js.map +1 -1
  687. package/themes/grid.src.d.ts +6 -1
  688. package/themes/grid.src.js +114 -83
  689. package/themes/high-contrast-dark.js +5 -4
  690. package/themes/high-contrast-dark.js.map +1 -1
  691. package/themes/high-contrast-dark.src.js +197 -166
  692. package/themes/high-contrast-light.js +3 -3
  693. package/themes/high-contrast-light.js.map +1 -1
  694. package/themes/high-contrast-light.src.js +54 -23
  695. package/themes/sand-signika.d.ts +6 -1
  696. package/themes/sand-signika.js +5 -5
  697. package/themes/sand-signika.js.map +1 -1
  698. package/themes/sand-signika.src.d.ts +6 -1
  699. package/themes/sand-signika.src.js +119 -88
  700. package/themes/skies.d.ts +6 -1
  701. package/themes/skies.js +5 -5
  702. package/themes/skies.js.map +1 -1
  703. package/themes/skies.src.d.ts +6 -1
  704. package/themes/skies.src.js +107 -76
  705. package/themes/sunset.d.ts +6 -1
  706. package/themes/sunset.js +3 -3
  707. package/themes/sunset.js.map +1 -1
  708. package/themes/sunset.src.d.ts +6 -1
  709. package/themes/sunset.src.js +52 -21
  710. package/es-modules/Core/Axis/ColorAxis.js +0 -1164
  711. package/es-modules/Core/Axis/HiddenAxis.js +0 -46
  712. package/es-modules/Core/Axis/PlotLineOrBand.js +0 -1051
  713. package/es-modules/Core/Series/DataLabels.js +0 -1173
  714. package/es-modules/Extensions/Exporting.js +0 -2024
  715. package/es-modules/Extensions/OfflineExporting.js +0 -621
  716. package/es-modules/Mixins/Geometry.js +0 -56
  717. package/es-modules/Mixins/GeometryCircles.js +0 -320
  718. package/es-modules/Series/Bubble/BubbleLegend.js +0 -893
@@ -0,0 +1,448 @@
1
+ /* *
2
+ *
3
+ * (c) 2010-2021 Torstein Honsi
4
+ *
5
+ * License: www.highcharts.com/license
6
+ *
7
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
8
+ *
9
+ * */
10
+ 'use strict';
11
+ import DataLabel from '../../Core/Series/DataLabel.js';
12
+ import H from '../../Core/Globals.js';
13
+ var noop = H.noop;
14
+ import Palette from '../../Core/Color/Palette.js';
15
+ import R from '../../Core/Renderer/RendererUtilities.js';
16
+ var distribute = R.distribute;
17
+ import SeriesRegistry from '../../Core/Series/SeriesRegistry.js';
18
+ var Series = SeriesRegistry.series;
19
+ import U from '../../Core/Utilities.js';
20
+ var arrayMax = U.arrayMax, clamp = U.clamp, defined = U.defined, merge = U.merge, pick = U.pick, relativeLength = U.relativeLength;
21
+ /* *
22
+ *
23
+ * Composition
24
+ *
25
+ * */
26
+ var ColumnDataLabel;
27
+ (function (ColumnDataLabel) {
28
+ /* *
29
+ *
30
+ * Constants
31
+ *
32
+ * */
33
+ var composedClasses = [];
34
+ var dataLabelPositioners = {
35
+ // Based on the value computed in Highcharts' distribute algorithm.
36
+ radialDistributionY: function (point) {
37
+ return point.top + point.distributeBox.pos;
38
+ },
39
+ // get the x - use the natural x position for labels near the
40
+ // top and bottom, to prevent the top and botton slice
41
+ // connectors from touching each other on either side
42
+ // Based on the value computed in Highcharts' distribute algorithm.
43
+ radialDistributionX: function (series, point, y, naturalY) {
44
+ return series.getX(y < point.top + 2 || y > point.bottom - 2 ?
45
+ naturalY :
46
+ y, point.half, point);
47
+ },
48
+ // dataLabels.distance determines the x position of the label
49
+ justify: function (point, radius, seriesCenter) {
50
+ return seriesCenter[0] + (point.half ? -1 : 1) *
51
+ (radius + point.labelDistance);
52
+ },
53
+ // Left edges of the left-half labels touch the left edge of the plot
54
+ // area. Right edges of the right-half labels touch the right edge of
55
+ // the plot area.
56
+ alignToPlotEdges: function (dataLabel, half, plotWidth, plotLeft) {
57
+ var dataLabelWidth = dataLabel.getBBox().width;
58
+ return half ? dataLabelWidth + plotLeft :
59
+ plotWidth - dataLabelWidth - plotLeft;
60
+ },
61
+ // Connectors of each side end in the same x position. Labels are
62
+ // aligned to them. Left edge of the widest left-half label touches the
63
+ // left edge of the plot area. Right edge of the widest right-half label
64
+ // touches the right edge of the plot area.
65
+ alignToConnectors: function (points, half, plotWidth, plotLeft) {
66
+ var maxDataLabelWidth = 0, dataLabelWidth;
67
+ // find widest data label
68
+ points.forEach(function (point) {
69
+ dataLabelWidth = point.dataLabel.getBBox().width;
70
+ if (dataLabelWidth > maxDataLabelWidth) {
71
+ maxDataLabelWidth = dataLabelWidth;
72
+ }
73
+ });
74
+ return half ? maxDataLabelWidth + plotLeft :
75
+ plotWidth - maxDataLabelWidth - plotLeft;
76
+ }
77
+ };
78
+ /* *
79
+ *
80
+ * Functions
81
+ *
82
+ * */
83
+ /* eslint-disable valid-jsdoc */
84
+ /** @private */
85
+ function compose(PieSeriesClass) {
86
+ DataLabel.compose(Series);
87
+ if (composedClasses.indexOf(PieSeriesClass) === -1) {
88
+ composedClasses.push(PieSeriesClass);
89
+ var pieProto = PieSeriesClass.prototype;
90
+ pieProto.dataLabelPositioners = dataLabelPositioners;
91
+ pieProto.alignDataLabel = noop;
92
+ pieProto.drawDataLabels = drawDataLabels;
93
+ pieProto.placeDataLabels = placeDataLabels;
94
+ pieProto.verifyDataLabelOverflow = verifyDataLabelOverflow;
95
+ }
96
+ }
97
+ ColumnDataLabel.compose = compose;
98
+ /**
99
+ * Override the base drawDataLabels method by pie specific functionality
100
+ * @private
101
+ */
102
+ function drawDataLabels() {
103
+ var series = this, data = series.data, chart = series.chart, options = series.options.dataLabels || {}, connectorPadding = options.connectorPadding, plotWidth = chart.plotWidth, plotHeight = chart.plotHeight, plotLeft = chart.plotLeft, maxWidth = Math.round(chart.chartWidth / 3), seriesCenter = series.center, radius = seriesCenter[2] / 2, centerY = seriesCenter[1], halves = [
104
+ [],
105
+ [] // left
106
+ ], overflow = [0, 0, 0, 0], // top, right, bottom, left
107
+ dataLabelPositioners = series.dataLabelPositioners;
108
+ var point, connectorWidth, connector, dataLabel, dataLabelWidth,
109
+ // labelPos,
110
+ labelPosition, labelHeight,
111
+ // divide the points into right and left halves for anti collision
112
+ x, y, visibility, j, pointDataLabelsOptions;
113
+ // get out if not enabled
114
+ if (!series.visible ||
115
+ (!options.enabled &&
116
+ !series._hasPointLabels)) {
117
+ return;
118
+ }
119
+ // Reset all labels that have been shortened
120
+ data.forEach(function (point) {
121
+ if (point.dataLabel && point.visible && point.dataLabel.shortened) {
122
+ point.dataLabel
123
+ .attr({
124
+ width: 'auto'
125
+ }).css({
126
+ width: 'auto',
127
+ textOverflow: 'clip'
128
+ });
129
+ point.dataLabel.shortened = false;
130
+ }
131
+ });
132
+ // run parent method
133
+ Series.prototype.drawDataLabels.apply(series);
134
+ data.forEach(function (point) {
135
+ if (point.dataLabel) {
136
+ if (point.visible) { // #407, #2510
137
+ // Arrange points for detection collision
138
+ halves[point.half].push(point);
139
+ // Reset positions (#4905)
140
+ point.dataLabel._pos = null;
141
+ // Avoid long labels squeezing the pie size too far down
142
+ if (!defined(options.style.width) &&
143
+ !defined(point.options.dataLabels &&
144
+ point.options.dataLabels.style &&
145
+ point.options.dataLabels.style.width)) {
146
+ if (point.dataLabel.getBBox().width > maxWidth) {
147
+ point.dataLabel.css({
148
+ // Use a fraction of the maxWidth to avoid
149
+ // wrapping close to the end of the string.
150
+ width: Math.round(maxWidth * 0.7) + 'px'
151
+ });
152
+ point.dataLabel.shortened = true;
153
+ }
154
+ }
155
+ }
156
+ else {
157
+ point.dataLabel = point.dataLabel.destroy();
158
+ // Workaround to make pies destroy multiple datalabels
159
+ // correctly. This logic needs rewriting to support multiple
160
+ // datalabels fully.
161
+ if (point.dataLabels && point.dataLabels.length === 1) {
162
+ delete point.dataLabels;
163
+ }
164
+ }
165
+ }
166
+ });
167
+ /* Loop over the points in each half, starting from the top and bottom
168
+ * of the pie to detect overlapping labels.
169
+ */
170
+ halves.forEach(function (points, i) {
171
+ var length = points.length, positions = [];
172
+ var top, bottom, naturalY, sideOverflow, size, distributionLength;
173
+ if (!length) {
174
+ return;
175
+ }
176
+ // Sort by angle
177
+ series.sortByAngle(points, i - 0.5);
178
+ // Only do anti-collision when we have dataLabels outside the pie
179
+ // and have connectors. (#856)
180
+ if (series.maxLabelDistance > 0) {
181
+ top = Math.max(0, centerY - radius - series.maxLabelDistance);
182
+ bottom = Math.min(centerY + radius + series.maxLabelDistance, chart.plotHeight);
183
+ points.forEach(function (point) {
184
+ // check if specific points' label is outside the pie
185
+ if (point.labelDistance > 0 && point.dataLabel) {
186
+ // point.top depends on point.labelDistance value
187
+ // Used for calculation of y value in getX method
188
+ point.top = Math.max(0, centerY - radius - point.labelDistance);
189
+ point.bottom = Math.min(centerY + radius + point.labelDistance, chart.plotHeight);
190
+ size = point.dataLabel.getBBox().height || 21;
191
+ // point.positionsIndex is needed for getting index of
192
+ // parameter related to specific point inside positions
193
+ // array - not every point is in positions array.
194
+ point.distributeBox = {
195
+ target: point.labelPosition.natural.y -
196
+ point.top + size / 2,
197
+ size: size,
198
+ rank: point.y
199
+ };
200
+ positions.push(point.distributeBox);
201
+ }
202
+ });
203
+ distributionLength = bottom + size - top;
204
+ distribute(positions, distributionLength, distributionLength / 5);
205
+ }
206
+ // Now the used slots are sorted, fill them up sequentially
207
+ for (j = 0; j < length; j++) {
208
+ point = points[j];
209
+ // labelPos = point.labelPos;
210
+ labelPosition = point.labelPosition;
211
+ dataLabel = point.dataLabel;
212
+ visibility = point.visible === false ? 'hidden' : 'inherit';
213
+ naturalY = labelPosition.natural.y;
214
+ y = naturalY;
215
+ if (positions && defined(point.distributeBox)) {
216
+ if (typeof point.distributeBox.pos === 'undefined') {
217
+ visibility = 'hidden';
218
+ }
219
+ else {
220
+ labelHeight = point.distributeBox.size;
221
+ // Find label's y position
222
+ y = dataLabelPositioners
223
+ .radialDistributionY(point);
224
+ }
225
+ }
226
+ // It is needed to delete point.positionIndex for
227
+ // dynamically added points etc.
228
+ delete point.positionIndex; // @todo unused
229
+ // Find label's x position
230
+ // justify is undocumented in the API - preserve support for it
231
+ if (options.justify) {
232
+ x = dataLabelPositioners.justify(point, radius, seriesCenter);
233
+ }
234
+ else {
235
+ switch (options.alignTo) {
236
+ case 'connectors':
237
+ x = dataLabelPositioners.alignToConnectors(points, i, plotWidth, plotLeft);
238
+ break;
239
+ case 'plotEdges':
240
+ x = dataLabelPositioners.alignToPlotEdges(dataLabel, i, plotWidth, plotLeft);
241
+ break;
242
+ default:
243
+ x = dataLabelPositioners.radialDistributionX(series, point, y, naturalY);
244
+ }
245
+ }
246
+ // Record the placement and visibility
247
+ dataLabel._attr = {
248
+ visibility: visibility,
249
+ align: labelPosition.alignment
250
+ };
251
+ pointDataLabelsOptions = point.options.dataLabels || {};
252
+ dataLabel._pos = {
253
+ x: (x +
254
+ pick(pointDataLabelsOptions.x, options.x) + // (#12985)
255
+ ({
256
+ left: connectorPadding,
257
+ right: -connectorPadding
258
+ }[labelPosition.alignment] || 0)),
259
+ // 10 is for the baseline (label vs text)
260
+ y: (y +
261
+ pick(pointDataLabelsOptions.y, options.y) - // (#12985)
262
+ 10)
263
+ };
264
+ // labelPos.x = x;
265
+ // labelPos.y = y;
266
+ labelPosition.final.x = x;
267
+ labelPosition.final.y = y;
268
+ // Detect overflowing data labels
269
+ if (pick(options.crop, true)) {
270
+ dataLabelWidth = dataLabel.getBBox().width;
271
+ sideOverflow = null;
272
+ // Overflow left
273
+ if (x - dataLabelWidth < connectorPadding &&
274
+ i === 1 // left half
275
+ ) {
276
+ sideOverflow = Math.round(dataLabelWidth - x + connectorPadding);
277
+ overflow[3] = Math.max(sideOverflow, overflow[3]);
278
+ // Overflow right
279
+ }
280
+ else if (x + dataLabelWidth > plotWidth - connectorPadding &&
281
+ i === 0 // right half
282
+ ) {
283
+ sideOverflow = Math.round(x + dataLabelWidth - plotWidth + connectorPadding);
284
+ overflow[1] = Math.max(sideOverflow, overflow[1]);
285
+ }
286
+ // Overflow top
287
+ if (y - labelHeight / 2 < 0) {
288
+ overflow[0] = Math.max(Math.round(-y + labelHeight / 2), overflow[0]);
289
+ // Overflow left
290
+ }
291
+ else if (y + labelHeight / 2 > plotHeight) {
292
+ overflow[2] = Math.max(Math.round(y + labelHeight / 2 - plotHeight), overflow[2]);
293
+ }
294
+ dataLabel.sideOverflow = sideOverflow;
295
+ }
296
+ } // for each point
297
+ }); // for each half
298
+ // Do not apply the final placement and draw the connectors until we
299
+ // have verified that labels are not spilling over.
300
+ if (arrayMax(overflow) === 0 ||
301
+ this.verifyDataLabelOverflow(overflow)) {
302
+ // Place the labels in the final position
303
+ this.placeDataLabels();
304
+ this.points.forEach(function (point) {
305
+ // #8864: every connector can have individual options
306
+ pointDataLabelsOptions =
307
+ merge(options, point.options.dataLabels);
308
+ connectorWidth =
309
+ pick(pointDataLabelsOptions.connectorWidth, 1);
310
+ // Draw the connector
311
+ if (connectorWidth) {
312
+ var isNew = void 0;
313
+ connector = point.connector;
314
+ dataLabel = point.dataLabel;
315
+ if (dataLabel &&
316
+ dataLabel._pos &&
317
+ point.visible &&
318
+ point.labelDistance > 0) {
319
+ visibility = dataLabel._attr.visibility;
320
+ isNew = !connector;
321
+ if (isNew) {
322
+ point.connector = connector = chart.renderer
323
+ .path()
324
+ .addClass('highcharts-data-label-connector ' +
325
+ ' highcharts-color-' + point.colorIndex +
326
+ (point.className ?
327
+ ' ' + point.className :
328
+ ''))
329
+ .add(series.dataLabelsGroup);
330
+ if (!chart.styledMode) {
331
+ connector.attr({
332
+ 'stroke-width': connectorWidth,
333
+ 'stroke': (pointDataLabelsOptions.connectorColor ||
334
+ point.color ||
335
+ Palette.neutralColor60)
336
+ });
337
+ }
338
+ }
339
+ connector[isNew ? 'attr' : 'animate']({
340
+ d: point.getConnectorPath()
341
+ });
342
+ connector.attr('visibility', visibility);
343
+ }
344
+ else if (connector) {
345
+ point.connector = connector.destroy();
346
+ }
347
+ }
348
+ });
349
+ }
350
+ }
351
+ /**
352
+ * Perform the final placement of the data labels after we have verified
353
+ * that they fall within the plot area.
354
+ * @private
355
+ */
356
+ function placeDataLabels() {
357
+ this.points.forEach(function (point) {
358
+ var dataLabel = point.dataLabel, _pos;
359
+ if (dataLabel && point.visible) {
360
+ _pos = dataLabel._pos;
361
+ if (_pos) {
362
+ // Shorten data labels with ellipsis if they still overflow
363
+ // after the pie has reached minSize (#223).
364
+ if (dataLabel.sideOverflow) {
365
+ dataLabel._attr.width =
366
+ Math.max(dataLabel.getBBox().width -
367
+ dataLabel.sideOverflow, 0);
368
+ dataLabel.css({
369
+ width: dataLabel._attr.width + 'px',
370
+ textOverflow: ((this.options.dataLabels.style || {})
371
+ .textOverflow ||
372
+ 'ellipsis')
373
+ });
374
+ dataLabel.shortened = true;
375
+ }
376
+ dataLabel.attr(dataLabel._attr);
377
+ dataLabel[dataLabel.moved ? 'animate' : 'attr'](_pos);
378
+ dataLabel.moved = true;
379
+ }
380
+ else if (dataLabel) {
381
+ dataLabel.attr({ y: -9999 });
382
+ }
383
+ }
384
+ // Clear for update
385
+ delete point.distributeBox;
386
+ }, this);
387
+ }
388
+ /**
389
+ * Verify whether the data labels are allowed to draw, or we should run more
390
+ * translation and data label positioning to keep them inside the plot area.
391
+ * Returns true when data labels are ready to draw.
392
+ * @private
393
+ */
394
+ function verifyDataLabelOverflow(overflow) {
395
+ var center = this.center, options = this.options, centerOption = options.center, minSize = options.minSize || 80, newSize = minSize,
396
+ // If a size is set, return true and don't try to shrink the pie
397
+ // to fit the labels.
398
+ ret = options.size !== null;
399
+ if (!ret) {
400
+ // Handle horizontal size and center
401
+ if (centerOption[0] !== null) { // Fixed center
402
+ newSize = Math.max(center[2] -
403
+ Math.max(overflow[1], overflow[3]), minSize);
404
+ }
405
+ else { // Auto center
406
+ newSize = Math.max(
407
+ // horizontal overflow
408
+ center[2] - overflow[1] - overflow[3], minSize);
409
+ // horizontal center
410
+ center[0] += (overflow[3] - overflow[1]) / 2;
411
+ }
412
+ // Handle vertical size and center
413
+ if (centerOption[1] !== null) { // Fixed center
414
+ newSize = clamp(newSize, minSize, center[2] - Math.max(overflow[0], overflow[2]));
415
+ }
416
+ else { // Auto center
417
+ newSize = clamp(newSize, minSize,
418
+ // vertical overflow
419
+ center[2] - overflow[0] - overflow[2]);
420
+ // vertical center
421
+ center[1] += (overflow[0] - overflow[2]) / 2;
422
+ }
423
+ // If the size must be decreased, we need to run translate and
424
+ // drawDataLabels again
425
+ if (newSize < center[2]) {
426
+ center[2] = newSize;
427
+ center[3] = Math.min(// #3632
428
+ relativeLength(options.innerSize || 0, newSize), newSize);
429
+ this.translate(center);
430
+ if (this.drawDataLabels) {
431
+ this.drawDataLabels();
432
+ }
433
+ // Else, return true to indicate that the pie and its labels is
434
+ // within the plot area
435
+ }
436
+ else {
437
+ ret = true;
438
+ }
439
+ }
440
+ return ret;
441
+ }
442
+ })(ColumnDataLabel || (ColumnDataLabel = {}));
443
+ /* *
444
+ *
445
+ * Default Export
446
+ *
447
+ * */
448
+ export default ColumnDataLabel;
@@ -57,7 +57,8 @@ var PiePoint = /** @class */ (function (_super) {
57
57
  * @private
58
58
  */
59
59
  PiePoint.prototype.getConnectorPath = function () {
60
- var labelPosition = this.labelPosition, options = this.series.options.dataLabels, connectorShape = options.connectorShape, predefinedShapes = this.connectorShapes;
60
+ var labelPosition = this.labelPosition, options = this.series.options.dataLabels, predefinedShapes = this.connectorShapes;
61
+ var connectorShape = options.connectorShape;
61
62
  // find out whether to use the predefined shape
62
63
  if (predefinedShapes[connectorShape]) {
63
64
  connectorShape = predefinedShapes[connectorShape];
@@ -98,16 +99,16 @@ var PiePoint = /** @class */ (function (_super) {
98
99
  * @private
99
100
  */
100
101
  PiePoint.prototype.init = function () {
101
- Point.prototype.init.apply(this, arguments);
102
- var point = this, toggleSlice;
103
- point.name = pick(point.name, 'Slice');
102
+ var _this = this;
103
+ _super.prototype.init.apply(this, arguments);
104
+ this.name = pick(this.name, 'Slice');
104
105
  // add event listener for select
105
- toggleSlice = function (e) {
106
- point.slice(e.type === 'select');
106
+ var toggleSlice = function (e) {
107
+ _this.slice(e.type === 'select');
107
108
  };
108
- addEvent(point, 'select', toggleSlice);
109
- addEvent(point, 'unselect', toggleSlice);
110
- return point;
109
+ addEvent(this, 'select', toggleSlice);
110
+ addEvent(this, 'unselect', toggleSlice);
111
+ return this;
111
112
  };
112
113
  /**
113
114
  * Negative points are not valid (#1530, #3623, #5322)
@@ -125,29 +126,30 @@ var PiePoint = /** @class */ (function (_super) {
125
126
  * toggled.
126
127
  */
127
128
  PiePoint.prototype.setVisible = function (vis, redraw) {
128
- var point = this, series = point.series, chart = series.chart, ignoreHiddenPoint = series.options.ignoreHiddenPoint;
129
+ var _this = this;
130
+ var series = this.series, chart = series.chart, ignoreHiddenPoint = series.options.ignoreHiddenPoint;
129
131
  redraw = pick(redraw, ignoreHiddenPoint);
130
- if (vis !== point.visible) {
132
+ if (vis !== this.visible) {
131
133
  // If called without an argument, toggle visibility
132
- point.visible = point.options.visible = vis =
133
- typeof vis === 'undefined' ? !point.visible : vis;
134
+ this.visible = this.options.visible = vis =
135
+ typeof vis === 'undefined' ? !this.visible : vis;
134
136
  // update userOptions.data
135
- series.options.data[series.data.indexOf(point)] =
136
- point.options;
137
+ series.options.data[series.data.indexOf(this)] =
138
+ this.options;
137
139
  // Show and hide associated elements. This is performed
138
140
  // regardless of redraw or not, because chart.redraw only
139
141
  // handles full series.
140
142
  ['graphic', 'dataLabel', 'connector', 'shadowGroup'].forEach(function (key) {
141
- if (point[key]) {
142
- point[key][vis ? 'show' : 'hide'](vis);
143
+ if (_this[key]) {
144
+ _this[key][vis ? 'show' : 'hide'](vis);
143
145
  }
144
146
  });
145
- if (point.legendItem) {
146
- chart.legend.colorizeItem(point, vis);
147
+ if (this.legendItem) {
148
+ chart.legend.colorizeItem(this, vis);
147
149
  }
148
150
  // #4170, hide halo after hiding point
149
- if (!vis && point.state === 'hover') {
150
- point.setState('');
151
+ if (!vis && this.state === 'hover') {
152
+ this.setState('');
151
153
  }
152
154
  // Handle ignore hidden slices
153
155
  if (ignoreHiddenPoint) {
@@ -172,7 +174,7 @@ var PiePoint = /** @class */ (function (_super) {
172
174
  * Animation options.
173
175
  */
174
176
  PiePoint.prototype.slice = function (sliced, redraw, animation) {
175
- var point = this, series = point.series, chart = series.chart;
177
+ var series = this.series, chart = series.chart;
176
178
  setAnimation(animation, chart);
177
179
  // redraw is true by default
178
180
  redraw = pick(redraw, true);
@@ -183,16 +185,16 @@ var PiePoint = /** @class */ (function (_super) {
183
185
  * @type {boolean|undefined}
184
186
  */
185
187
  // if called without an argument, toggle
186
- point.sliced = point.options.sliced = sliced =
187
- defined(sliced) ? sliced : !point.sliced;
188
+ this.sliced = this.options.sliced = sliced =
189
+ defined(sliced) ? sliced : !this.sliced;
188
190
  // update userOptions.data
189
- series.options.data[series.data.indexOf(point)] =
190
- point.options;
191
- if (point.graphic) {
192
- point.graphic.animate(this.getTranslate());
191
+ series.options.data[series.data.indexOf(this)] =
192
+ this.options;
193
+ if (this.graphic) {
194
+ this.graphic.animate(this.getTranslate());
193
195
  }
194
- if (point.shadowGroup) {
195
- point.shadowGroup.animate(this.getTranslate());
196
+ if (this.shadowGroup) {
197
+ this.shadowGroup.animate(this.getTranslate());
196
198
  }
197
199
  };
198
200
  return PiePoint;
@@ -241,7 +243,8 @@ extend(PiePoint.prototype, {
241
243
  'L',
242
244
  crookX,
243
245
  labelPosition.y
244
- ], useCrook = true;
246
+ ];
247
+ var useCrook = true;
245
248
  // crookedLine formula doesn't make sense if the path overlaps
246
249
  // the label - use straight line instead in that case
247
250
  if (alignment === 'left' ?
@@ -250,9 +253,7 @@ extend(PiePoint.prototype, {
250
253
  useCrook = false;
251
254
  }
252
255
  // assemble the path
253
- var path = [
254
- ['M', labelPosition.x, labelPosition.y]
255
- ];
256
+ var path = [['M', labelPosition.x, labelPosition.y]];
256
257
  if (useCrook) {
257
258
  path.push(segmentWithCrook);
258
259
  }