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
@@ -1,1051 +0,0 @@
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 Axis from './Axis.js';
12
- import palette from '../../Core/Color/Palette.js';
13
- /**
14
- * Options for plot bands on axes.
15
- *
16
- * @typedef {Highcharts.XAxisPlotBandsOptions|Highcharts.YAxisPlotBandsOptions|Highcharts.ZAxisPlotBandsOptions} Highcharts.AxisPlotBandsOptions
17
- */
18
- /**
19
- * Options for plot band labels on axes.
20
- *
21
- * @typedef {Highcharts.XAxisPlotBandsLabelOptions|Highcharts.YAxisPlotBandsLabelOptions|Highcharts.ZAxisPlotBandsLabelOptions} Highcharts.AxisPlotBandsLabelOptions
22
- */
23
- /**
24
- * Options for plot lines on axes.
25
- *
26
- * @typedef {Highcharts.XAxisPlotLinesOptions|Highcharts.YAxisPlotLinesOptions|Highcharts.ZAxisPlotLinesOptions} Highcharts.AxisPlotLinesOptions
27
- */
28
- /**
29
- * Options for plot line labels on axes.
30
- *
31
- * @typedef {Highcharts.XAxisPlotLinesLabelOptions|Highcharts.YAxisPlotLinesLabelOptions|Highcharts.ZAxisPlotLinesLabelOptions} Highcharts.AxisPlotLinesLabelOptions
32
- */
33
- import U from '../Utilities.js';
34
- var arrayMax = U.arrayMax, arrayMin = U.arrayMin, defined = U.defined, destroyObjectProperties = U.destroyObjectProperties, erase = U.erase, extend = U.extend, fireEvent = U.fireEvent, isNumber = U.isNumber, merge = U.merge, objectEach = U.objectEach, pick = U.pick;
35
- /* eslint-disable no-invalid-this, valid-jsdoc */
36
- /**
37
- * The object wrapper for plot lines and plot bands
38
- *
39
- * @class
40
- * @name Highcharts.PlotLineOrBand
41
- *
42
- * @param {Highcharts.Axis} axis
43
- *
44
- * @param {Highcharts.AxisPlotLinesOptions|Highcharts.AxisPlotBandsOptions} [options]
45
- */
46
- var PlotLineOrBand = /** @class */ (function () {
47
- function PlotLineOrBand(axis, options) {
48
- this.axis = axis;
49
- if (options) {
50
- this.options = options;
51
- this.id = options.id;
52
- }
53
- }
54
- /**
55
- * Render the plot line or plot band. If it is already existing,
56
- * move it.
57
- *
58
- * @private
59
- * @function Highcharts.PlotLineOrBand#render
60
- * @return {Highcharts.PlotLineOrBand|undefined}
61
- */
62
- PlotLineOrBand.prototype.render = function () {
63
- fireEvent(this, 'render');
64
- var plotLine = this, axis = plotLine.axis, horiz = axis.horiz, log = axis.logarithmic, options = plotLine.options, optionsLabel = options.label, label = plotLine.label, to = options.to, from = options.from, value = options.value, isBand = defined(from) && defined(to), isLine = defined(value), svgElem = plotLine.svgElem, isNew = !svgElem, path = [], color = options.color, zIndex = pick(options.zIndex, 0), events = options.events, attribs = {
65
- 'class': 'highcharts-plot-' + (isBand ? 'band ' : 'line ') +
66
- (options.className || '')
67
- }, groupAttribs = {}, renderer = axis.chart.renderer, groupName = isBand ? 'bands' : 'lines', group;
68
- // logarithmic conversion
69
- if (log) {
70
- from = log.log2lin(from);
71
- to = log.log2lin(to);
72
- value = log.log2lin(value);
73
- }
74
- // Set the presentational attributes
75
- if (!axis.chart.styledMode) {
76
- if (isLine) {
77
- attribs.stroke = color || palette.neutralColor40;
78
- attribs['stroke-width'] = pick(options.width, 1);
79
- if (options.dashStyle) {
80
- attribs.dashstyle =
81
- options.dashStyle;
82
- }
83
- }
84
- else if (isBand) { // plot band
85
- attribs.fill = color || palette.highlightColor10;
86
- if (options.borderWidth) {
87
- attribs.stroke = options.borderColor;
88
- attribs['stroke-width'] = options.borderWidth;
89
- }
90
- }
91
- }
92
- // Grouping and zIndex
93
- groupAttribs.zIndex = zIndex;
94
- groupName += '-' + zIndex;
95
- group = axis.plotLinesAndBandsGroups[groupName];
96
- if (!group) {
97
- axis.plotLinesAndBandsGroups[groupName] = group =
98
- renderer.g('plot-' + groupName)
99
- .attr(groupAttribs).add();
100
- }
101
- // Create the path
102
- if (isNew) {
103
- /**
104
- * SVG element of the plot line or band.
105
- *
106
- * @name Highcharts.PlotLineOrBand#svgElement
107
- * @type {Highcharts.SVGElement}
108
- */
109
- plotLine.svgElem = svgElem = renderer
110
- .path()
111
- .attr(attribs)
112
- .add(group);
113
- }
114
- // Set the path or return
115
- if (isLine) {
116
- path = axis.getPlotLinePath({
117
- value: value,
118
- lineWidth: svgElem.strokeWidth(),
119
- acrossPanes: options.acrossPanes
120
- });
121
- }
122
- else if (isBand) { // plot band
123
- path = axis.getPlotBandPath(from, to, options);
124
- }
125
- else {
126
- return;
127
- }
128
- // common for lines and bands
129
- // Add events only if they were not added before.
130
- if (!plotLine.eventsAdded && events) {
131
- objectEach(events, function (event, eventType) {
132
- svgElem.on(eventType, function (e) {
133
- events[eventType].apply(plotLine, [e]);
134
- });
135
- });
136
- plotLine.eventsAdded = true;
137
- }
138
- if ((isNew || !svgElem.d) && path && path.length) {
139
- svgElem.attr({ d: path });
140
- }
141
- else if (svgElem) {
142
- if (path) {
143
- svgElem.show(true);
144
- svgElem.animate({ d: path });
145
- }
146
- else if (svgElem.d) {
147
- svgElem.hide();
148
- if (label) {
149
- plotLine.label = label = label.destroy();
150
- }
151
- }
152
- }
153
- // the plot band/line label
154
- if (optionsLabel &&
155
- (defined(optionsLabel.text) || defined(optionsLabel.formatter)) &&
156
- path &&
157
- path.length &&
158
- axis.width > 0 &&
159
- axis.height > 0 &&
160
- !path.isFlat) {
161
- // apply defaults
162
- optionsLabel = merge({
163
- align: horiz && isBand && 'center',
164
- x: horiz ? !isBand && 4 : 10,
165
- verticalAlign: !horiz && isBand && 'middle',
166
- y: horiz ? isBand ? 16 : 10 : isBand ? 6 : -4,
167
- rotation: horiz && !isBand && 90
168
- }, optionsLabel);
169
- this.renderLabel(optionsLabel, path, isBand, zIndex);
170
- }
171
- else if (label) { // move out of sight
172
- label.hide();
173
- }
174
- // chainable
175
- return plotLine;
176
- };
177
- /**
178
- * Render and align label for plot line or band.
179
- *
180
- * @private
181
- * @function Highcharts.PlotLineOrBand#renderLabel
182
- * @param {Highcharts.AxisPlotLinesLabelOptions|Highcharts.AxisPlotBandsLabelOptions} optionsLabel
183
- * @param {Highcharts.SVGPathArray} path
184
- * @param {boolean} [isBand]
185
- * @param {number} [zIndex]
186
- * @return {void}
187
- */
188
- PlotLineOrBand.prototype.renderLabel = function (optionsLabel, path, isBand, zIndex) {
189
- var plotLine = this, label = plotLine.label, renderer = plotLine.axis.chart.renderer, attribs, xBounds, yBounds, x, y, labelText;
190
- // add the SVG element
191
- if (!label) {
192
- attribs = {
193
- align: optionsLabel.textAlign || optionsLabel.align,
194
- rotation: optionsLabel.rotation,
195
- 'class': 'highcharts-plot-' + (isBand ? 'band' : 'line') +
196
- '-label ' + (optionsLabel.className || '')
197
- };
198
- attribs.zIndex = zIndex;
199
- labelText = this.getLabelText(optionsLabel);
200
- /**
201
- * SVG element of the label.
202
- *
203
- * @name Highcharts.PlotLineOrBand#label
204
- * @type {Highcharts.SVGElement}
205
- */
206
- plotLine.label = label = renderer
207
- .text(labelText, 0, 0, optionsLabel.useHTML)
208
- .attr(attribs)
209
- .add();
210
- if (!this.axis.chart.styledMode) {
211
- label.css(optionsLabel.style);
212
- }
213
- }
214
- // get the bounding box and align the label
215
- // #3000 changed to better handle choice between plotband or plotline
216
- xBounds = path.xBounds ||
217
- [path[0][1], path[1][1], (isBand ? path[2][1] : path[0][1])];
218
- yBounds = path.yBounds ||
219
- [path[0][2], path[1][2], (isBand ? path[2][2] : path[0][2])];
220
- x = arrayMin(xBounds);
221
- y = arrayMin(yBounds);
222
- label.align(optionsLabel, false, {
223
- x: x,
224
- y: y,
225
- width: arrayMax(xBounds) - x,
226
- height: arrayMax(yBounds) - y
227
- });
228
- label.show(true);
229
- };
230
- /**
231
- * Get label's text content.
232
- *
233
- * @private
234
- * @function Highcharts.PlotLineOrBand#getLabelText
235
- * @param {Highcharts.AxisPlotLinesLabelOptions|Highcharts.AxisPlotBandsLabelOptions} optionsLabel
236
- * @return {string}
237
- */
238
- PlotLineOrBand.prototype.getLabelText = function (optionsLabel) {
239
- return defined(optionsLabel.formatter) ?
240
- optionsLabel.formatter
241
- .call(this) :
242
- optionsLabel.text;
243
- };
244
- /**
245
- * Remove the plot line or band.
246
- *
247
- * @function Highcharts.PlotLineOrBand#destroy
248
- * @return {void}
249
- */
250
- PlotLineOrBand.prototype.destroy = function () {
251
- // remove it from the lookup
252
- erase(this.axis.plotLinesAndBands, this);
253
- delete this.axis;
254
- destroyObjectProperties(this);
255
- };
256
- return PlotLineOrBand;
257
- }());
258
- /* eslint-enable no-invalid-this, valid-jsdoc */
259
- // Object with members for extending the Axis prototype
260
- extend(Axis.prototype, /** @lends Highcharts.Axis.prototype */ {
261
- /**
262
- * An array of colored bands stretching across the plot area marking an
263
- * interval on the axis.
264
- *
265
- * In styled mode, the plot bands are styled by the `.highcharts-plot-band`
266
- * class in addition to the `className` option.
267
- *
268
- * @productdesc {highcharts}
269
- * In a gauge, a plot band on the Y axis (value axis) will stretch along the
270
- * perimeter of the gauge.
271
- *
272
- * @type {Array<*>}
273
- * @product highcharts highstock gantt
274
- * @apioption xAxis.plotBands
275
- */
276
- /**
277
- * Flag to decide if plotBand should be rendered across all panes.
278
- *
279
- * @since 7.1.2
280
- * @product highstock
281
- * @type {boolean}
282
- * @default true
283
- * @apioption xAxis.plotBands.acrossPanes
284
- */
285
- /**
286
- * Border color for the plot band. Also requires `borderWidth` to be set.
287
- *
288
- * @type {Highcharts.ColorString}
289
- * @apioption xAxis.plotBands.borderColor
290
- */
291
- /**
292
- * Border width for the plot band. Also requires `borderColor` to be set.
293
- *
294
- * @type {number}
295
- * @default 0
296
- * @apioption xAxis.plotBands.borderWidth
297
- */
298
- /**
299
- * A custom class name, in addition to the default `highcharts-plot-band`,
300
- * to apply to each individual band.
301
- *
302
- * @type {string}
303
- * @since 5.0.0
304
- * @apioption xAxis.plotBands.className
305
- */
306
- /**
307
- * The color of the plot band.
308
- *
309
- * @sample {highcharts} highcharts/xaxis/plotbands-color/
310
- * Color band
311
- * @sample {highstock} stock/xaxis/plotbands/
312
- * Plot band on Y axis
313
- *
314
- * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
315
- * @default ${palette.highlightColor10}
316
- * @apioption xAxis.plotBands.color
317
- */
318
- /**
319
- * An object defining mouse events for the plot band. Supported properties
320
- * are `click`, `mouseover`, `mouseout`, `mousemove`.
321
- *
322
- * @sample {highcharts} highcharts/xaxis/plotbands-events/
323
- * Mouse events demonstrated
324
- *
325
- * @since 1.2
326
- * @apioption xAxis.plotBands.events
327
- */
328
- /**
329
- * Click event on a plot band.
330
- *
331
- * @type {Highcharts.EventCallbackFunction<Highcharts.PlotLineOrBand>}
332
- * @apioption xAxis.plotBands.events.click
333
- */
334
- /**
335
- * Mouse move event on a plot band.
336
- *
337
- * @type {Highcharts.EventCallbackFunction<Highcharts.PlotLineOrBand>}
338
- * @apioption xAxis.plotBands.events.mousemove
339
- */
340
- /**
341
- * Mouse out event on the corner of a plot band.
342
- *
343
- * @type {Highcharts.EventCallbackFunction<Highcharts.PlotLineOrBand>}
344
- * @apioption xAxis.plotBands.events.mouseout
345
- */
346
- /**
347
- * Mouse over event on a plot band.
348
- *
349
- * @type {Highcharts.EventCallbackFunction<Highcharts.PlotLineOrBand>}
350
- * @apioption xAxis.plotBands.events.mouseover
351
- */
352
- /**
353
- * The start position of the plot band in axis units.
354
- *
355
- * @sample {highcharts} highcharts/xaxis/plotbands-color/
356
- * Datetime axis
357
- * @sample {highcharts} highcharts/xaxis/plotbands-from/
358
- * Categorized axis
359
- * @sample {highstock} stock/xaxis/plotbands/
360
- * Plot band on Y axis
361
- *
362
- * @type {number}
363
- * @apioption xAxis.plotBands.from
364
- */
365
- /**
366
- * An id used for identifying the plot band in Axis.removePlotBand.
367
- *
368
- * @sample {highcharts} highcharts/xaxis/plotbands-id/
369
- * Remove plot band by id
370
- * @sample {highstock} highcharts/xaxis/plotbands-id/
371
- * Remove plot band by id
372
- *
373
- * @type {string}
374
- * @apioption xAxis.plotBands.id
375
- */
376
- /**
377
- * The end position of the plot band in axis units.
378
- *
379
- * @sample {highcharts} highcharts/xaxis/plotbands-color/
380
- * Datetime axis
381
- * @sample {highcharts} highcharts/xaxis/plotbands-from/
382
- * Categorized axis
383
- * @sample {highstock} stock/xaxis/plotbands/
384
- * Plot band on Y axis
385
- *
386
- * @type {number}
387
- * @apioption xAxis.plotBands.to
388
- */
389
- /**
390
- * The z index of the plot band within the chart, relative to other
391
- * elements. Using the same z index as another element may give
392
- * unpredictable results, as the last rendered element will be on top.
393
- * Values from 0 to 20 make sense.
394
- *
395
- * @sample {highcharts} highcharts/xaxis/plotbands-color/
396
- * Behind plot lines by default
397
- * @sample {highcharts} highcharts/xaxis/plotbands-zindex/
398
- * Above plot lines
399
- * @sample {highcharts} highcharts/xaxis/plotbands-zindex-above-series/
400
- * Above plot lines and series
401
- *
402
- * @type {number}
403
- * @since 1.2
404
- * @apioption xAxis.plotBands.zIndex
405
- */
406
- /**
407
- * Text labels for the plot bands
408
- *
409
- * @product highcharts highstock gantt
410
- * @apioption xAxis.plotBands.label
411
- */
412
- /**
413
- * Horizontal alignment of the label. Can be one of "left", "center" or
414
- * "right".
415
- *
416
- * @sample {highcharts} highcharts/xaxis/plotbands-label-align/
417
- * Aligned to the right
418
- * @sample {highstock} stock/xaxis/plotbands-label/
419
- * Plot band with labels
420
- *
421
- * @type {Highcharts.AlignValue}
422
- * @default center
423
- * @since 2.1
424
- * @apioption xAxis.plotBands.label.align
425
- */
426
- /**
427
- * Rotation of the text label in degrees .
428
- *
429
- * @sample {highcharts} highcharts/xaxis/plotbands-label-rotation/
430
- * Vertical text
431
- *
432
- * @type {number}
433
- * @default 0
434
- * @since 2.1
435
- * @apioption xAxis.plotBands.label.rotation
436
- */
437
- /**
438
- * CSS styles for the text label.
439
- *
440
- * In styled mode, the labels are styled by the
441
- * `.highcharts-plot-band-label` class.
442
- *
443
- * @sample {highcharts} highcharts/xaxis/plotbands-label-style/
444
- * Blue and bold label
445
- *
446
- * @type {Highcharts.CSSObject}
447
- * @since 2.1
448
- * @apioption xAxis.plotBands.label.style
449
- */
450
- /**
451
- * The string text itself. A subset of HTML is supported.
452
- *
453
- * @type {string}
454
- * @since 2.1
455
- * @apioption xAxis.plotBands.label.text
456
- */
457
- /**
458
- * The text alignment for the label. While `align` determines where the
459
- * texts anchor point is placed within the plot band, `textAlign` determines
460
- * how the text is aligned against its anchor point. Possible values are
461
- * "left", "center" and "right". Defaults to the same as the `align` option.
462
- *
463
- * @sample {highcharts} highcharts/xaxis/plotbands-label-rotation/
464
- * Vertical text in center position but text-aligned left
465
- *
466
- * @type {Highcharts.AlignValue}
467
- * @since 2.1
468
- * @apioption xAxis.plotBands.label.textAlign
469
- */
470
- /**
471
- * Whether to [use HTML](https://www.highcharts.com/docs/chart-concepts/labels-and-string-formatting#html)
472
- * to render the labels.
473
- *
474
- * @type {boolean}
475
- * @default false
476
- * @since 3.0.3
477
- * @apioption xAxis.plotBands.label.useHTML
478
- */
479
- /**
480
- * Vertical alignment of the label relative to the plot band. Can be one of
481
- * "top", "middle" or "bottom".
482
- *
483
- * @sample {highcharts} highcharts/xaxis/plotbands-label-verticalalign/
484
- * Vertically centered label
485
- * @sample {highstock} stock/xaxis/plotbands-label/
486
- * Plot band with labels
487
- *
488
- * @type {Highcharts.VerticalAlignValue}
489
- * @default top
490
- * @since 2.1
491
- * @apioption xAxis.plotBands.label.verticalAlign
492
- */
493
- /**
494
- * Horizontal position relative the alignment. Default varies by
495
- * orientation.
496
- *
497
- * @sample {highcharts} highcharts/xaxis/plotbands-label-align/
498
- * Aligned 10px from the right edge
499
- * @sample {highstock} stock/xaxis/plotbands-label/
500
- * Plot band with labels
501
- *
502
- * @type {number}
503
- * @since 2.1
504
- * @apioption xAxis.plotBands.label.x
505
- */
506
- /**
507
- * Vertical position of the text baseline relative to the alignment. Default
508
- * varies by orientation.
509
- *
510
- * @sample {highcharts} highcharts/xaxis/plotbands-label-y/
511
- * Label on x axis
512
- * @sample {highstock} stock/xaxis/plotbands-label/
513
- * Plot band with labels
514
- *
515
- * @type {number}
516
- * @since 2.1
517
- * @apioption xAxis.plotBands.label.y
518
- */
519
- /**
520
- * An array of lines stretching across the plot area, marking a specific
521
- * value on one of the axes.
522
- *
523
- * In styled mode, the plot lines are styled by the
524
- * `.highcharts-plot-line` class in addition to the `className` option.
525
- *
526
- * @type {Array<*>}
527
- * @product highcharts highstock gantt
528
- * @sample {highcharts} highcharts/xaxis/plotlines-color/
529
- * Basic plot line
530
- * @sample {highcharts} highcharts/series-solidgauge/labels-auto-aligned/
531
- * Solid gauge plot line
532
- * @apioption xAxis.plotLines
533
- */
534
- /**
535
- * Flag to decide if plotLine should be rendered across all panes.
536
- *
537
- * @sample {highstock} stock/xaxis/plotlines-acrosspanes/
538
- * Plot lines on different panes
539
- *
540
- * @since 7.1.2
541
- * @product highstock
542
- * @type {boolean}
543
- * @default true
544
- * @apioption xAxis.plotLines.acrossPanes
545
- */
546
- /**
547
- * A custom class name, in addition to the default `highcharts-plot-line`,
548
- * to apply to each individual line.
549
- *
550
- * @type {string}
551
- * @since 5.0.0
552
- * @apioption xAxis.plotLines.className
553
- */
554
- /**
555
- * The color of the line.
556
- *
557
- * @sample {highcharts} highcharts/xaxis/plotlines-color/
558
- * A red line from X axis
559
- * @sample {highstock} stock/xaxis/plotlines/
560
- * Plot line on Y axis
561
- *
562
- * @type {Highcharts.ColorString}
563
- * @default ${palette.neutralColor40}
564
- * @apioption xAxis.plotLines.color
565
- */
566
- /**
567
- * The dashing or dot style for the plot line. For possible values see
568
- * [this overview](https://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/plotoptions/series-dashstyle-all/).
569
- *
570
- * @sample {highcharts} highcharts/xaxis/plotlines-dashstyle/
571
- * Dash and dot pattern
572
- * @sample {highstock} stock/xaxis/plotlines/
573
- * Plot line on Y axis
574
- *
575
- * @type {Highcharts.DashStyleValue}
576
- * @default Solid
577
- * @since 1.2
578
- * @apioption xAxis.plotLines.dashStyle
579
- */
580
- /**
581
- * An object defining mouse events for the plot line. Supported
582
- * properties are `click`, `mouseover`, `mouseout`, `mousemove`.
583
- *
584
- * @sample {highcharts} highcharts/xaxis/plotlines-events/
585
- * Mouse events demonstrated
586
- *
587
- * @since 1.2
588
- * @apioption xAxis.plotLines.events
589
- */
590
- /**
591
- * Click event on a plot band.
592
- *
593
- * @type {Highcharts.EventCallbackFunction<Highcharts.PlotLineOrBand>}
594
- * @apioption xAxis.plotLines.events.click
595
- */
596
- /**
597
- * Mouse move event on a plot band.
598
- *
599
- * @type {Highcharts.EventCallbackFunction<Highcharts.PlotLineOrBand>}
600
- * @apioption xAxis.plotLines.events.mousemove
601
- */
602
- /**
603
- * Mouse out event on the corner of a plot band.
604
- *
605
- * @type {Highcharts.EventCallbackFunction<Highcharts.PlotLineOrBand>}
606
- * @apioption xAxis.plotLines.events.mouseout
607
- */
608
- /**
609
- * Mouse over event on a plot band.
610
- *
611
- * @type {Highcharts.EventCallbackFunction<Highcharts.PlotLineOrBand>}
612
- * @apioption xAxis.plotLines.events.mouseover
613
- */
614
- /**
615
- * An id used for identifying the plot line in Axis.removePlotLine.
616
- *
617
- * @sample {highcharts} highcharts/xaxis/plotlines-id/
618
- * Remove plot line by id
619
- *
620
- * @type {string}
621
- * @apioption xAxis.plotLines.id
622
- */
623
- /**
624
- * The position of the line in axis units.
625
- *
626
- * @sample {highcharts} highcharts/xaxis/plotlines-color/
627
- * Between two categories on X axis
628
- * @sample {highstock} stock/xaxis/plotlines/
629
- * Plot line on Y axis
630
- *
631
- * @type {number}
632
- * @apioption xAxis.plotLines.value
633
- */
634
- /**
635
- * The width or thickness of the plot line.
636
- *
637
- * @sample {highcharts} highcharts/xaxis/plotlines-color/
638
- * 2px wide line from X axis
639
- * @sample {highstock} stock/xaxis/plotlines/
640
- * Plot line on Y axis
641
- *
642
- * @type {number}
643
- * @default 2
644
- * @apioption xAxis.plotLines.width
645
- */
646
- /**
647
- * The z index of the plot line within the chart.
648
- *
649
- * @sample {highcharts} highcharts/xaxis/plotlines-zindex-behind/
650
- * Behind plot lines by default
651
- * @sample {highcharts} highcharts/xaxis/plotlines-zindex-above/
652
- * Above plot lines
653
- * @sample {highcharts} highcharts/xaxis/plotlines-zindex-above-all/
654
- * Above plot lines and series
655
- *
656
- * @type {number}
657
- * @since 1.2
658
- * @apioption xAxis.plotLines.zIndex
659
- */
660
- /**
661
- * Text labels for the plot bands
662
- *
663
- * @apioption xAxis.plotLines.label
664
- */
665
- /**
666
- * Horizontal alignment of the label. Can be one of "left", "center" or
667
- * "right".
668
- *
669
- * @sample {highcharts} highcharts/xaxis/plotlines-label-align-right/
670
- * Aligned to the right
671
- * @sample {highstock} stock/xaxis/plotlines/
672
- * Plot line on Y axis
673
- *
674
- * @type {Highcharts.AlignValue}
675
- * @default left
676
- * @since 2.1
677
- * @apioption xAxis.plotLines.label.align
678
- */
679
- /**
680
- * Callback JavaScript function to format the label. Useful properties like
681
- * the value of plot line or the range of plot band (`from` & `to`
682
- * properties) can be found in `this.options` object.
683
- *
684
- * @sample {highcharts} highcharts/xaxis/plotlines-plotbands-label-formatter
685
- * Label formatters for plot line and plot band.
686
- * @type {Highcharts.FormatterCallbackFunction<Highcharts.PlotLineOrBand>}
687
- * @apioption xAxis.plotLines.label.formatter
688
- */
689
- /**
690
- * Rotation of the text label in degrees. Defaults to 0 for horizontal plot
691
- * lines and 90 for vertical lines.
692
- *
693
- * @sample {highcharts} highcharts/xaxis/plotlines-label-verticalalign-middle/
694
- * Slanted text
695
- *
696
- * @type {number}
697
- * @since 2.1
698
- * @apioption xAxis.plotLines.label.rotation
699
- */
700
- /**
701
- * CSS styles for the text label.
702
- *
703
- * In styled mode, the labels are styled by the
704
- * `.highcharts-plot-line-label` class.
705
- *
706
- * @sample {highcharts} highcharts/xaxis/plotlines-label-style/
707
- * Blue and bold label
708
- *
709
- * @type {Highcharts.CSSObject}
710
- * @since 2.1
711
- * @apioption xAxis.plotLines.label.style
712
- */
713
- /**
714
- * The text itself. A subset of HTML is supported.
715
- *
716
- * @type {string}
717
- * @since 2.1
718
- * @apioption xAxis.plotLines.label.text
719
- */
720
- /**
721
- * The text alignment for the label. While `align` determines where the
722
- * texts anchor point is placed within the plot band, `textAlign` determines
723
- * how the text is aligned against its anchor point. Possible values are
724
- * "left", "center" and "right". Defaults to the same as the `align` option.
725
- *
726
- * @sample {highcharts} highcharts/xaxis/plotlines-label-textalign/
727
- * Text label in bottom position
728
- *
729
- * @type {Highcharts.AlignValue}
730
- * @since 2.1
731
- * @apioption xAxis.plotLines.label.textAlign
732
- */
733
- /**
734
- * Whether to [use HTML](https://www.highcharts.com/docs/chart-concepts/labels-and-string-formatting#html)
735
- * to render the labels.
736
- *
737
- * @type {boolean}
738
- * @default false
739
- * @since 3.0.3
740
- * @apioption xAxis.plotLines.label.useHTML
741
- */
742
- /**
743
- * Vertical alignment of the label relative to the plot line. Can be
744
- * one of "top", "middle" or "bottom".
745
- *
746
- * @sample {highcharts} highcharts/xaxis/plotlines-label-verticalalign-middle/
747
- * Vertically centered label
748
- *
749
- * @type {Highcharts.VerticalAlignValue}
750
- * @default {highcharts} top
751
- * @default {highstock} top
752
- * @since 2.1
753
- * @apioption xAxis.plotLines.label.verticalAlign
754
- */
755
- /**
756
- * Horizontal position relative the alignment. Default varies by
757
- * orientation.
758
- *
759
- * @sample {highcharts} highcharts/xaxis/plotlines-label-align-right/
760
- * Aligned 10px from the right edge
761
- * @sample {highstock} stock/xaxis/plotlines/
762
- * Plot line on Y axis
763
- *
764
- * @type {number}
765
- * @since 2.1
766
- * @apioption xAxis.plotLines.label.x
767
- */
768
- /**
769
- * Vertical position of the text baseline relative to the alignment. Default
770
- * varies by orientation.
771
- *
772
- * @sample {highcharts} highcharts/xaxis/plotlines-label-y/
773
- * Label below the plot line
774
- * @sample {highstock} stock/xaxis/plotlines/
775
- * Plot line on Y axis
776
- *
777
- * @type {number}
778
- * @since 2.1
779
- * @apioption xAxis.plotLines.label.y
780
- */
781
- /**
782
- *
783
- * @type {Array<*>}
784
- * @extends xAxis.plotBands
785
- * @apioption yAxis.plotBands
786
- */
787
- /**
788
- * In a gauge chart, this option determines the inner radius of the
789
- * plot band that stretches along the perimeter. It can be given as
790
- * a percentage string, like `"100%"`, or as a pixel number, like `100`.
791
- * By default, the inner radius is controlled by the [thickness](
792
- * #yAxis.plotBands.thickness) option.
793
- *
794
- * @sample {highcharts} highcharts/xaxis/plotbands-gauge
795
- * Gauge plot band
796
- *
797
- * @type {number|string}
798
- * @since 2.3
799
- * @product highcharts
800
- * @apioption yAxis.plotBands.innerRadius
801
- */
802
- /**
803
- * In a gauge chart, this option determines the outer radius of the
804
- * plot band that stretches along the perimeter. It can be given as
805
- * a percentage string, like `"100%"`, or as a pixel number, like `100`.
806
- *
807
- * @sample {highcharts} highcharts/xaxis/plotbands-gauge
808
- * Gauge plot band
809
- *
810
- * @type {number|string}
811
- * @default 100%
812
- * @since 2.3
813
- * @product highcharts
814
- * @apioption yAxis.plotBands.outerRadius
815
- */
816
- /**
817
- * In a gauge chart, this option sets the width of the plot band
818
- * stretching along the perimeter. It can be given as a percentage
819
- * string, like `"10%"`, or as a pixel number, like `10`. The default
820
- * value 10 is the same as the default [tickLength](#yAxis.tickLength),
821
- * thus making the plot band act as a background for the tick markers.
822
- *
823
- * @sample {highcharts} highcharts/xaxis/plotbands-gauge
824
- * Gauge plot band
825
- *
826
- * @type {number|string}
827
- * @default 10
828
- * @since 2.3
829
- * @product highcharts
830
- * @apioption yAxis.plotBands.thickness
831
- */
832
- /**
833
- * @type {Array<*>}
834
- * @extends xAxis.plotLines
835
- * @apioption yAxis.plotLines
836
- */
837
- /* eslint-disable no-invalid-this, valid-jsdoc */
838
- /**
839
- * Internal function to create the SVG path definition for a plot band.
840
- *
841
- * @function Highcharts.Axis#getPlotBandPath
842
- *
843
- * @param {number} from
844
- * The axis value to start from.
845
- *
846
- * @param {number} to
847
- * The axis value to end on.
848
- *
849
- * @param {Highcharts.AxisPlotBandsOptions|Highcharts.AxisPlotLinesOptions} options
850
- * The plotBand or plotLine configuration object.
851
- *
852
- * @return {Highcharts.SVGPathArray}
853
- * The SVG path definition in array form.
854
- */
855
- getPlotBandPath: function (from, to, options) {
856
- if (options === void 0) { options = this.options; }
857
- var toPath = this.getPlotLinePath({
858
- value: to,
859
- force: true,
860
- acrossPanes: options.acrossPanes
861
- }), path = this.getPlotLinePath({
862
- value: from,
863
- force: true,
864
- acrossPanes: options.acrossPanes
865
- }), result = [], i,
866
- // #4964 check if chart is inverted or plotband is on yAxis
867
- horiz = this.horiz, plus = 1, isFlat, outside = !isNumber(this.min) ||
868
- !isNumber(this.max) ||
869
- (from < this.min && to < this.min) ||
870
- (from > this.max && to > this.max);
871
- if (path && toPath) {
872
- // Flat paths don't need labels (#3836)
873
- if (outside) {
874
- isFlat = path.toString() === toPath.toString();
875
- plus = 0;
876
- }
877
- // Go over each subpath - for panes in Highcharts Stock
878
- for (i = 0; i < path.length; i += 2) {
879
- var pathStart = path[i], pathEnd = path[i + 1], toPathStart = toPath[i], toPathEnd = toPath[i + 1];
880
- // Type checking all affected path segments. Consider something
881
- // smarter.
882
- if ((pathStart[0] === 'M' || pathStart[0] === 'L') &&
883
- (pathEnd[0] === 'M' || pathEnd[0] === 'L') &&
884
- (toPathStart[0] === 'M' || toPathStart[0] === 'L') &&
885
- (toPathEnd[0] === 'M' || toPathEnd[0] === 'L')) {
886
- // Add 1 pixel when coordinates are the same
887
- if (horiz && toPathStart[1] === pathStart[1]) {
888
- toPathStart[1] += plus;
889
- toPathEnd[1] += plus;
890
- }
891
- else if (!horiz && toPathStart[2] === pathStart[2]) {
892
- toPathStart[2] += plus;
893
- toPathEnd[2] += plus;
894
- }
895
- result.push(['M', pathStart[1], pathStart[2]], ['L', pathEnd[1], pathEnd[2]], ['L', toPathEnd[1], toPathEnd[2]], ['L', toPathStart[1], toPathStart[2]], ['Z']);
896
- }
897
- result.isFlat = isFlat;
898
- }
899
- }
900
- else { // outside the axis area
901
- path = null;
902
- }
903
- return result;
904
- },
905
- /**
906
- * Add a plot band after render time.
907
- *
908
- * @sample highcharts/members/axis-addplotband/
909
- * Toggle the plot band from a button
910
- *
911
- * @function Highcharts.Axis#addPlotBand
912
- *
913
- * @param {Highcharts.AxisPlotBandsOptions} options
914
- * A configuration object for the plot band, as defined in
915
- * [xAxis.plotBands](https://api.highcharts.com/highcharts/xAxis.plotBands).
916
- *
917
- * @return {Highcharts.PlotLineOrBand|undefined}
918
- * The added plot band.
919
- */
920
- addPlotBand: function (options) {
921
- return this.addPlotBandOrLine(options, 'plotBands');
922
- },
923
- /**
924
- * Add a plot line after render time.
925
- *
926
- * @sample highcharts/members/axis-addplotline/
927
- * Toggle the plot line from a button
928
- *
929
- * @function Highcharts.Axis#addPlotLine
930
- *
931
- * @param {Highcharts.AxisPlotLinesOptions} options
932
- * A configuration object for the plot line, as defined in
933
- * [xAxis.plotLines](https://api.highcharts.com/highcharts/xAxis.plotLines).
934
- *
935
- * @return {Highcharts.PlotLineOrBand|undefined}
936
- * The added plot line.
937
- */
938
- addPlotLine: function (options) {
939
- return this.addPlotBandOrLine(options, 'plotLines');
940
- },
941
- /**
942
- * Add a plot band or plot line after render time. Called from addPlotBand
943
- * and addPlotLine internally.
944
- *
945
- * @private
946
- * @function Highcharts.Axis#addPlotBandOrLine
947
- *
948
- * @param {Highcharts.AxisPlotBandsOptions|Highcharts.AxisPlotLinesOptions} options
949
- * The plotBand or plotLine configuration object.
950
- *
951
- * @param {"plotBands"|"plotLines"} [coll]
952
- *
953
- * @return {Highcharts.PlotLineOrBand|undefined}
954
- */
955
- addPlotBandOrLine: function (options, coll) {
956
- var _this = this;
957
- var obj = new PlotLineOrBand(this, options), userOptions = this.userOptions;
958
- if (this.visible) {
959
- obj = obj.render();
960
- }
961
- if (obj) { // #2189
962
- if (!this._addedPlotLB) {
963
- this._addedPlotLB = true;
964
- (userOptions.plotLines || [])
965
- .concat(userOptions.plotBands || [])
966
- .forEach(function (plotLineOptions) {
967
- _this.addPlotBandOrLine(plotLineOptions);
968
- });
969
- }
970
- // Add it to the user options for exporting and Axis.update
971
- if (coll) {
972
- // Workaround Microsoft/TypeScript issue #32693
973
- var updatedOptions = (userOptions[coll] || []);
974
- updatedOptions.push(options);
975
- userOptions[coll] = updatedOptions;
976
- }
977
- this.plotLinesAndBands.push(obj);
978
- }
979
- return obj;
980
- },
981
- /**
982
- * Remove a plot band or plot line from the chart by id. Called internally
983
- * from `removePlotBand` and `removePlotLine`.
984
- *
985
- * @private
986
- * @function Highcharts.Axis#removePlotBandOrLine
987
- * @param {string} id
988
- * @return {void}
989
- */
990
- removePlotBandOrLine: function (id) {
991
- var plotLinesAndBands = this.plotLinesAndBands, options = this.options, userOptions = this.userOptions;
992
- if (plotLinesAndBands) { // #15639
993
- var i_1 = plotLinesAndBands.length;
994
- while (i_1--) {
995
- if (plotLinesAndBands[i_1].id === id) {
996
- plotLinesAndBands[i_1].destroy();
997
- }
998
- }
999
- ([
1000
- options.plotLines || [],
1001
- userOptions.plotLines || [],
1002
- options.plotBands || [],
1003
- userOptions.plotBands || []
1004
- ]).forEach(function (arr) {
1005
- i_1 = arr.length;
1006
- while (i_1--) {
1007
- if ((arr[i_1] || {}).id === id) {
1008
- erase(arr, arr[i_1]);
1009
- }
1010
- }
1011
- });
1012
- }
1013
- },
1014
- /**
1015
- * Remove a plot band by its id.
1016
- *
1017
- * @sample highcharts/members/axis-removeplotband/
1018
- * Remove plot band by id
1019
- * @sample highcharts/members/axis-addplotband/
1020
- * Toggle the plot band from a button
1021
- *
1022
- * @function Highcharts.Axis#removePlotBand
1023
- *
1024
- * @param {string} id
1025
- * The plot band's `id` as given in the original configuration
1026
- * object or in the `addPlotBand` option.
1027
- *
1028
- * @return {void}
1029
- */
1030
- removePlotBand: function (id) {
1031
- this.removePlotBandOrLine(id);
1032
- },
1033
- /**
1034
- * Remove a plot line by its id.
1035
- *
1036
- * @sample highcharts/xaxis/plotlines-id/
1037
- * Remove plot line by id
1038
- * @sample highcharts/members/axis-addplotline/
1039
- * Toggle the plot line from a button
1040
- *
1041
- * @function Highcharts.Axis#removePlotLine
1042
- *
1043
- * @param {string} id
1044
- * The plot line's `id` as given in the original configuration
1045
- * object or in the `addPlotLine` option.
1046
- */
1047
- removePlotLine: function (id) {
1048
- this.removePlotBandOrLine(id);
1049
- }
1050
- });
1051
- export default PlotLineOrBand;