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
@@ -35,6 +35,12 @@ var ScrollbarAxis = /** @class */ (function () {
35
35
  * Scrollbar class to use.
36
36
  */
37
37
  ScrollbarAxis.compose = function (AxisClass, ScrollbarClass) {
38
+ if (ScrollbarAxis.composed.indexOf(AxisClass) === -1) {
39
+ ScrollbarAxis.composed.push(AxisClass);
40
+ }
41
+ else {
42
+ return AxisClass;
43
+ }
38
44
  var getExtremes = function (axis) {
39
45
  var axisMin = pick(axis.options && axis.options.min, axis.min);
40
46
  var axisMax = pick(axis.options && axis.options.max, axis.max);
@@ -155,6 +161,7 @@ var ScrollbarAxis = /** @class */ (function () {
155
161
  });
156
162
  return AxisClass;
157
163
  };
164
+ ScrollbarAxis.composed = [];
158
165
  return ScrollbarAxis;
159
166
  }());
160
167
  export default ScrollbarAxis;
@@ -10,163 +10,53 @@
10
10
  'use strict';
11
11
  import A from '../Animation/AnimationUtilities.js';
12
12
  var getDeferredAnimation = A.getDeferredAnimation;
13
+ import Axis from './Axis.js';
13
14
  import U from '../Utilities.js';
14
- var addEvent = U.addEvent, destroyObjectProperties = U.destroyObjectProperties, fireEvent = U.fireEvent, isNumber = U.isNumber, objectEach = U.objectEach, pick = U.pick;
15
- /* eslint-disable valid-jsdoc */
15
+ var addEvent = U.addEvent, destroyObjectProperties = U.destroyObjectProperties, fireEvent = U.fireEvent, isNumber = U.isNumber, objectEach = U.objectEach;
16
+ /* *
17
+ *
18
+ * Composition
19
+ *
20
+ * */
16
21
  /**
17
- * Adds stacking support to axes.
18
22
  * @private
19
- * @class
20
23
  */
21
- var StackingAxisAdditions = /** @class */ (function () {
24
+ var StackingAxis;
25
+ (function (StackingAxis) {
22
26
  /* *
23
27
  *
24
- * Constructors
28
+ * Declarations
25
29
  *
26
30
  * */
27
- function StackingAxisAdditions(axis) {
28
- this.oldStacks = {};
29
- this.stacks = {};
30
- this.stacksTouched = 0;
31
- this.axis = axis;
32
- }
33
31
  /* *
34
32
  *
35
- * Functions
33
+ * Constants
36
34
  *
37
35
  * */
38
- /**
39
- * Build the stacks from top down
40
- * @private
41
- */
42
- StackingAxisAdditions.prototype.buildStacks = function () {
43
- var stacking = this;
44
- var axis = stacking.axis;
45
- var axisSeries = axis.series;
46
- var reversedStacks = axis.options.reversedStacks;
47
- var len = axisSeries.length;
48
- var actualSeries, i;
49
- if (!axis.isXAxis) {
50
- stacking.usePercentage = false;
51
- i = len;
52
- while (i--) {
53
- actualSeries = axisSeries[reversedStacks ? i : len - i - 1];
54
- actualSeries.setStackedPoints();
55
- actualSeries.setGroupedPoints();
56
- }
57
- // Loop up again to compute percent and stream stack
58
- for (i = 0; i < len; i++) {
59
- axisSeries[i].modifyStacks();
60
- }
61
- fireEvent(axis, 'afterBuildStacks');
62
- }
63
- };
64
- /**
65
- * @private
66
- */
67
- StackingAxisAdditions.prototype.cleanStacks = function () {
68
- var stacking = this;
69
- var axis = stacking.axis;
70
- var stacks;
71
- if (!axis.isXAxis) {
72
- if (stacking.oldStacks) {
73
- stacks = stacking.stacks = stacking.oldStacks;
74
- }
75
- // reset stacks
76
- objectEach(stacks, function (type) {
77
- objectEach(type, function (stack) {
78
- stack.cumulative = stack.total;
79
- });
80
- });
81
- }
82
- };
83
- /**
84
- * Set all the stacks to initial states and destroy unused ones.
85
- * @private
86
- */
87
- StackingAxisAdditions.prototype.resetStacks = function () {
88
- var _this = this;
89
- var _a = this, axis = _a.axis, stacks = _a.stacks;
90
- if (!axis.isXAxis) {
91
- objectEach(stacks, function (type) {
92
- objectEach(type, function (stack, x) {
93
- // Clean up memory after point deletion (#1044, #4320)
94
- if (isNumber(stack.touched) &&
95
- stack.touched < _this.stacksTouched) {
96
- stack.destroy();
97
- delete type[x];
98
- // Reset stacks
99
- }
100
- else {
101
- stack.total = null;
102
- stack.cumulative = null;
103
- }
104
- });
105
- });
106
- }
107
- };
108
- /**
109
- * @private
110
- */
111
- StackingAxisAdditions.prototype.renderStackTotals = function () {
112
- var stacking = this;
113
- var axis = stacking.axis;
114
- var chart = axis.chart;
115
- var renderer = chart.renderer;
116
- var stacks = stacking.stacks;
117
- var stackLabelsAnim = axis.options.stackLabels && axis.options.stackLabels.animation;
118
- var animationConfig = getDeferredAnimation(chart, stackLabelsAnim || false);
119
- var stackTotalGroup = stacking.stackTotalGroup = (stacking.stackTotalGroup ||
120
- renderer
121
- .g('stack-labels')
122
- .attr({
123
- visibility: 'visible',
124
- zIndex: 6,
125
- opacity: 0
126
- })
127
- .add());
128
- // plotLeft/Top will change when y axis gets wider so we need to
129
- // translate the stackTotalGroup at every render call. See bug #506
130
- // and #516
131
- stackTotalGroup.translate(chart.plotLeft, chart.plotTop);
132
- // Render each stack total
133
- objectEach(stacks, function (type) {
134
- objectEach(type, function (stack) {
135
- stack.render(stackTotalGroup);
136
- });
137
- });
138
- stackTotalGroup.animate({
139
- opacity: 1
140
- }, animationConfig);
141
- };
142
- return StackingAxisAdditions;
143
- }());
144
- /**
145
- * Axis with stacking support.
146
- * @private
147
- * @class
148
- */
149
- var StackingAxis = /** @class */ (function () {
150
- function StackingAxis() {
151
- }
36
+ var composedClasses = [];
152
37
  /* *
153
38
  *
154
- * Static Functions
39
+ * Functions
155
40
  *
156
41
  * */
42
+ /* eslint-disable valid-jsdoc */
157
43
  /**
158
44
  * Extends axis with stacking support.
159
45
  * @private
160
46
  */
161
- StackingAxis.compose = function (AxisClass) {
162
- var axisProto = AxisClass.prototype;
163
- addEvent(AxisClass, 'init', StackingAxis.onInit);
164
- addEvent(AxisClass, 'destroy', StackingAxis.onDestroy);
165
- };
47
+ function compose(AxisClass) {
48
+ if (composedClasses.indexOf(AxisClass) === -1) {
49
+ composedClasses.push(AxisClass);
50
+ addEvent(AxisClass, 'init', onInit);
51
+ addEvent(AxisClass, 'destroy', onDestroy);
52
+ }
53
+ return AxisClass;
54
+ }
55
+ StackingAxis.compose = compose;
166
56
  /**
167
57
  * @private
168
58
  */
169
- StackingAxis.onDestroy = function () {
59
+ function onDestroy() {
170
60
  var stacking = this.stacking;
171
61
  if (!stacking) {
172
62
  return;
@@ -181,16 +71,145 @@ var StackingAxis = /** @class */ (function () {
181
71
  stacking.stackTotalGroup) {
182
72
  stacking.stackTotalGroup.destroy();
183
73
  }
184
- };
74
+ }
185
75
  /**
186
76
  * @private
187
77
  */
188
- StackingAxis.onInit = function () {
78
+ function onInit() {
189
79
  var axis = this;
190
80
  if (!axis.stacking) {
191
- axis.stacking = new StackingAxisAdditions(axis);
81
+ axis.stacking = new Additions(axis);
82
+ }
83
+ }
84
+ /* *
85
+ *
86
+ * Class
87
+ *
88
+ * */
89
+ /**
90
+ * Adds stacking support to axes.
91
+ * @private
92
+ * @class
93
+ */
94
+ var Additions = /** @class */ (function () {
95
+ /* *
96
+ *
97
+ * Constructors
98
+ *
99
+ * */
100
+ function Additions(axis) {
101
+ this.oldStacks = {};
102
+ this.stacks = {};
103
+ this.stacksTouched = 0;
104
+ this.axis = axis;
192
105
  }
193
- };
194
- return StackingAxis;
195
- }());
106
+ /* *
107
+ *
108
+ * Functions
109
+ *
110
+ * */
111
+ /**
112
+ * Build the stacks from top down
113
+ * @private
114
+ */
115
+ Additions.prototype.buildStacks = function () {
116
+ var stacking = this;
117
+ var axis = stacking.axis;
118
+ var axisSeries = axis.series;
119
+ var reversedStacks = axis.options.reversedStacks;
120
+ var len = axisSeries.length;
121
+ var actualSeries, i;
122
+ if (!axis.isXAxis) {
123
+ stacking.usePercentage = false;
124
+ i = len;
125
+ while (i--) {
126
+ actualSeries = axisSeries[reversedStacks ? i : len - i - 1];
127
+ actualSeries.setStackedPoints();
128
+ actualSeries.setGroupedPoints();
129
+ }
130
+ // Loop up again to compute percent and stream stack
131
+ for (i = 0; i < len; i++) {
132
+ axisSeries[i].modifyStacks();
133
+ }
134
+ fireEvent(axis, 'afterBuildStacks');
135
+ }
136
+ };
137
+ /**
138
+ * @private
139
+ */
140
+ Additions.prototype.cleanStacks = function () {
141
+ var stacking = this, axis = stacking.axis;
142
+ var stacks;
143
+ if (!axis.isXAxis) {
144
+ if (stacking.oldStacks) {
145
+ stacks = stacking.stacks = stacking.oldStacks;
146
+ }
147
+ // reset stacks
148
+ objectEach(stacks, function (type) {
149
+ objectEach(type, function (stack) {
150
+ stack.cumulative = stack.total;
151
+ });
152
+ });
153
+ }
154
+ };
155
+ /**
156
+ * Set all the stacks to initial states and destroy unused ones.
157
+ * @private
158
+ */
159
+ Additions.prototype.resetStacks = function () {
160
+ var stacking = this, axis = stacking.axis, stacks = stacking.stacks;
161
+ if (!axis.isXAxis) {
162
+ objectEach(stacks, function (type) {
163
+ objectEach(type, function (stack, x) {
164
+ // Clean up memory after point deletion (#1044, #4320)
165
+ if (isNumber(stack.touched) &&
166
+ stack.touched < stacking.stacksTouched) {
167
+ stack.destroy();
168
+ delete type[x];
169
+ // Reset stacks
170
+ }
171
+ else {
172
+ stack.total = null;
173
+ stack.cumulative = null;
174
+ }
175
+ });
176
+ });
177
+ }
178
+ };
179
+ /**
180
+ * @private
181
+ */
182
+ Additions.prototype.renderStackTotals = function () {
183
+ var stacking = this, axis = stacking.axis, chart = axis.chart, renderer = chart.renderer, stacks = stacking.stacks, stackLabelsAnim = axis.options.stackLabels && axis.options.stackLabels.animation, animationConfig = getDeferredAnimation(chart, stackLabelsAnim || false), stackTotalGroup = stacking.stackTotalGroup = (stacking.stackTotalGroup ||
184
+ renderer
185
+ .g('stack-labels')
186
+ .attr({
187
+ visibility: 'visible',
188
+ zIndex: 6,
189
+ opacity: 0
190
+ })
191
+ .add());
192
+ // plotLeft/Top will change when y axis gets wider so we need to
193
+ // translate the stackTotalGroup at every render call. See bug #506
194
+ // and #516
195
+ stackTotalGroup.translate(chart.plotLeft, chart.plotTop);
196
+ // Render each stack total
197
+ objectEach(stacks, function (type) {
198
+ objectEach(type, function (stack) {
199
+ stack.render(stackTotalGroup);
200
+ });
201
+ });
202
+ stackTotalGroup.animate({
203
+ opacity: 1
204
+ }, animationConfig);
205
+ };
206
+ return Additions;
207
+ }());
208
+ StackingAxis.Additions = Additions;
209
+ })(StackingAxis || (StackingAxis = {}));
210
+ /* *
211
+ *
212
+ * Default Export
213
+ *
214
+ * */
196
215
  export default StackingAxis;
@@ -91,7 +91,6 @@ var Tick = /** @class */ (function () {
91
91
  *
92
92
  * @private
93
93
  * @function Highcharts.Tick#addLabel
94
- * @return {void}
95
94
  */
96
95
  Tick.prototype.addLabel = function () {
97
96
  var tick = this, axis = tick.axis, options = axis.options, chart = axis.chart, categories = axis.categories, log = axis.logarithmic, names = axis.names, pos = tick.pos, labelOptions = pick(tick.options && tick.options.labels, options.labels), tickPositions = axis.tickPositions, isFirst = pos === tickPositions[0], isLast = pos === tickPositions[tickPositions.length - 1], animateLabels = (!labelOptions.step || labelOptions.step === 1) &&
@@ -106,11 +105,16 @@ var Tick = /** @class */ (function () {
106
105
  }
107
106
  // Set the datetime label format. If a higher rank is set for this
108
107
  // position, use that. If not, use the general format.
109
- if (axis.dateTime && tickPositionInfo) {
110
- dateTimeLabelFormats = chart.time.resolveDTLFormat(options.dateTimeLabelFormats[(!options.grid &&
111
- tickPositionInfo.higherRanks[pos]) ||
112
- tickPositionInfo.unitName]);
113
- dateTimeLabelFormat = dateTimeLabelFormats.main;
108
+ if (axis.dateTime) {
109
+ if (tickPositionInfo) {
110
+ dateTimeLabelFormats = chart.time.resolveDTLFormat(options.dateTimeLabelFormats[(!options.grid &&
111
+ tickPositionInfo.higherRanks[pos]) ||
112
+ tickPositionInfo.unitName]);
113
+ dateTimeLabelFormat = dateTimeLabelFormats.main;
114
+ }
115
+ else if (isNumber(value)) { // #1441
116
+ dateTimeLabelFormat = axis.dateTime.getXDateFormat(value, (options.dateTimeLabelFormats || {}));
117
+ }
114
118
  }
115
119
  // set properties for access in render method
116
120
  /**
@@ -214,10 +218,6 @@ var Tick = /** @class */ (function () {
214
218
  *
215
219
  * @private
216
220
  * @function Highcharts.Tick#createLabel
217
- * @param {Highcharts.PositionObject} xy
218
- * @param {string} str
219
- * @param {Highcharts.XAxisLabelsOptions} labelOptions
220
- * @return {Highcharts.SVGElement|undefined}
221
221
  */
222
222
  Tick.prototype.createLabel = function (xy, str, labelOptions) {
223
223
  var axis = this.axis, chart = axis.chart, label = defined(str) && labelOptions.enabled ?
@@ -240,7 +240,6 @@ var Tick = /** @class */ (function () {
240
240
  *
241
241
  * @private
242
242
  * @function Highcharts.Tick#destroy
243
- * @return {void}
244
243
  */
245
244
  Tick.prototype.destroy = function () {
246
245
  destroyObjectProperties(this, this.axis);
@@ -351,7 +350,6 @@ var Tick = /** @class */ (function () {
351
350
  *
352
351
  * @private
353
352
  * @function Highcharts.Tick#getLabelSize
354
- * @return {number}
355
353
  */
356
354
  Tick.prototype.getLabelSize = function () {
357
355
  return this.label ?
@@ -360,9 +358,7 @@ var Tick = /** @class */ (function () {
360
358
  };
361
359
  /**
362
360
  * Extendible method to return the path of the marker
363
- *
364
361
  * @private
365
- *
366
362
  */
367
363
  Tick.prototype.getMarkPath = function (x, y, tickLength, tickWidth, horiz, renderer) {
368
364
  return renderer.crispLine([[
@@ -381,8 +377,6 @@ var Tick = /** @class */ (function () {
381
377
  *
382
378
  * @private
383
379
  * @function Highcharts.Tick#handleOverflow
384
- * @param {Highcharts.PositionObject} xy
385
- * @return {void}
386
380
  */
387
381
  Tick.prototype.handleOverflow = function (xy) {
388
382
  var tick = this, axis = this.axis, labelOptions = axis.options.labels, pxPos = xy.x, chartWidth = axis.chart.chartWidth, spacing = axis.chart.spacing, leftBound = pick(axis.labelLeft, Math.min(axis.pos, spacing[3])), rightBound = pick(axis.labelRight, Math.max(!axis.isRadial ? axis.pos + axis.len : 0, chartWidth - spacing[1])), label = this.label, rotation = this.rotation, factor = {
@@ -450,10 +444,6 @@ var Tick = /** @class */ (function () {
450
444
  *
451
445
  * @private
452
446
  * @function Highcharts.Tick#moveLabel
453
- * @param {string} str
454
- * @param {Highcharts.XAxisLabelsOptions} labelOptions
455
- *
456
- * @return {void}
457
447
  */
458
448
  Tick.prototype.moveLabel = function (str, labelOptions) {
459
449
  var tick = this, label = tick.label, axis = tick.axis, reversed = axis.reversed;
@@ -495,10 +485,11 @@ var Tick = /** @class */ (function () {
495
485
  *
496
486
  * @private
497
487
  * @param {number} index
488
+ *
498
489
  * @param {boolean} [old]
499
- * Use old coordinates to prepare an animation into new position
490
+ * Use old coordinates to prepare an animation into new position
491
+ *
500
492
  * @param {number} [opacity]
501
- * @return {voids}
502
493
  */
503
494
  Tick.prototype.render = function (index, old, opacity) {
504
495
  var tick = this, axis = tick.axis, horiz = axis.horiz, pos = tick.pos, tickmarkOffset = pick(tick.tickmarkOffset, axis.tickmarkOffset), xy = tick.getPosition(horiz, pos, tickmarkOffset, old), x = xy.x, y = xy.y, reverseCrisp = ((horiz && x === axis.pos + axis.len) ||
@@ -520,10 +511,10 @@ var Tick = /** @class */ (function () {
520
511
  * Renders the gridLine.
521
512
  *
522
513
  * @private
514
+ * @function Highcharts.Tick#renderGridLine
523
515
  * @param {boolean} old Whether or not the tick is old
524
516
  * @param {number} opacity The opacity of the grid line
525
517
  * @param {number} reverseCrisp Modifier for avoiding overlapping 1 or -1
526
- * @return {void}
527
518
  */
528
519
  Tick.prototype.renderGridLine = function (old, opacity, reverseCrisp) {
529
520
  var tick = this, axis = tick.axis, options = axis.options, attribs = {}, pos = tick.pos, type = tick.type, tickmarkOffset = pick(tick.tickmarkOffset, axis.tickmarkOffset), renderer = axis.chart.renderer;
@@ -576,10 +567,10 @@ var Tick = /** @class */ (function () {
576
567
  * Renders the tick mark.
577
568
  *
578
569
  * @private
570
+ * @function Highcharts.Tick#renderMark
579
571
  * @param {Highcharts.PositionObject} xy The position vector of the mark
580
572
  * @param {number} opacity The opacity of the mark
581
573
  * @param {number} reverseCrisp Modifier for avoiding overlapping 1 or -1
582
- * @return {void}
583
574
  */
584
575
  Tick.prototype.renderMark = function (xy, opacity, reverseCrisp) {
585
576
  var tick = this, axis = tick.axis, options = axis.options, renderer = axis.chart.renderer, type = tick.type, tickSize = axis.tickSize(type ? type + 'Tick' : 'tick'), x = xy.x, y = xy.y, tickWidth = pick(options[type !== 'minor' ? 'tickWidth' : 'minorTickWidth'], !type && axis.isXAxis ? 1 : 0), // X axis defaults to 1
@@ -620,11 +611,11 @@ var Tick = /** @class */ (function () {
620
611
  * have to be moved into place.
621
612
  *
622
613
  * @private
614
+ * @function Highcharts.Tick#renderLabel
623
615
  * @param {Highcharts.PositionObject} xy The position vector of the label
624
616
  * @param {boolean} old Whether or not the tick is old
625
617
  * @param {number} opacity The opacity of the label
626
618
  * @param {number} index The index of the tick
627
- * @return {void}
628
619
  */
629
620
  Tick.prototype.renderLabel = function (xy, old, opacity, index) {
630
621
  var tick = this, axis = tick.axis, horiz = axis.horiz, options = axis.options, label = tick.label, labelOptions = options.labels, step = labelOptions.step, tickmarkOffset = pick(tick.tickmarkOffset, axis.tickmarkOffset), x = xy.x, y = xy.y;
@@ -673,7 +664,6 @@ var Tick = /** @class */ (function () {
673
664
  *
674
665
  * @private
675
666
  * @function Highcharts.Tick#replaceMovedLabel
676
- * @return {void}
677
667
  */
678
668
  Tick.prototype.replaceMovedLabel = function () {
679
669
  var tick = this, label = tick.label, axis = tick.axis, reversed = axis.reversed;
@@ -732,4 +722,4 @@ export default Tick;
732
722
  * @name Highcharts.TimeTicksInfoObject#totalRange
733
723
  * @type {number}
734
724
  */
735
- ''; // detach doclets above
725
+ (''); // keeps doclets above in JS file
@@ -16,8 +16,8 @@ var numberFormat = FormatUtilities.numberFormat;
16
16
  import Foundation from '../Foundation.js';
17
17
  var registerEventOptions = Foundation.registerEventOptions;
18
18
  import H from '../Globals.js';
19
- var charts = H.charts, doc = H.doc, marginNames = H.marginNames, win = H.win;
20
- import Legend from '../Legend.js';
19
+ var charts = H.charts, doc = H.doc, marginNames = H.marginNames, svg = H.svg, win = H.win;
20
+ import Legend from '../Legend/Legend.js';
21
21
  import MSPointer from '../MSPointer.js';
22
22
  import D from '../DefaultOptions.js';
23
23
  var defaultOptions = D.defaultOptions, defaultTime = D.defaultTime;
@@ -26,6 +26,7 @@ import Pointer from '../Pointer.js';
26
26
  import RendererRegistry from '../Renderer/RendererRegistry.js';
27
27
  import SeriesRegistry from '../Series/SeriesRegistry.js';
28
28
  var seriesTypes = SeriesRegistry.seriesTypes;
29
+ import SVGRenderer from '../Renderer/SVG/SVGRenderer.js';
29
30
  import Time from '../Time.js';
30
31
  import U from '../Utilities.js';
31
32
  import AST from '../Renderer/HTML/AST.js';
@@ -673,16 +674,18 @@ var Chart = /** @class */ (function () {
673
674
  * The currently selected points.
674
675
  */
675
676
  Chart.prototype.getSelectedPoints = function () {
676
- var points = [];
677
- this.series.forEach(function (serie) {
677
+ return this.series.reduce(function (acc, series) {
678
678
  // For one-to-one points inspect series.data in order to retrieve
679
679
  // points outside the visible range (#6445). For grouped data,
680
680
  // inspect the generated series.points.
681
- points = points.concat(serie.getPointsCollection().filter(function (point) {
682
- return pick(point.selectedStaging, point.selected);
683
- }));
684
- });
685
- return points;
681
+ series.getPointsCollection()
682
+ .forEach(function (point) {
683
+ if (pick(point.selectedStaging, point.selected)) {
684
+ acc.push(point);
685
+ }
686
+ });
687
+ return acc;
688
+ }, []);
686
689
  };
687
690
  /**
688
691
  * Returns an array of all currently selected series in the chart. Series
@@ -1076,7 +1079,9 @@ var Chart = /** @class */ (function () {
1076
1079
  // cache the cursor (#1650)
1077
1080
  chart._cursor = container.style.cursor;
1078
1081
  // Initialize the renderer
1079
- var Renderer = RendererRegistry.getRendererType(optionsChart.renderer);
1082
+ var Renderer = optionsChart.renderer || !svg ?
1083
+ RendererRegistry.getRendererType(optionsChart.renderer) :
1084
+ SVGRenderer;
1080
1085
  /**
1081
1086
  * The renderer instance of the chart. Each chart instance has only one
1082
1087
  * associated renderer.
@@ -2069,30 +2074,12 @@ var Chart = /** @class */ (function () {
2069
2074
  * The newly generated Axis object.
2070
2075
  */
2071
2076
  Chart.prototype.createAxis = function (type, options) {
2072
- var isColorAxis = type === 'colorAxis', axisOptions = options.axis, redraw = options.redraw, animation = options.animation, userOptions = merge(axisOptions, {
2077
+ var axis = new Axis(this, merge(options.axis, {
2073
2078
  index: this[type].length,
2074
2079
  isX: type === 'xAxis'
2075
- });
2076
- var axis;
2077
- if (isColorAxis) {
2078
- axis = new H.ColorAxis(this, userOptions);
2079
- }
2080
- else {
2081
- axis = new Axis(this, userOptions);
2082
- }
2083
- if (isColorAxis) {
2084
- this.isDirtyLegend = true;
2085
- // Clear before 'bindAxes' (#11924)
2086
- this.axes.forEach(function (axis) {
2087
- axis.series = [];
2088
- });
2089
- this.series.forEach(function (series) {
2090
- series.bindAxes();
2091
- series.isDirtyData = true;
2092
- });
2093
- }
2094
- if (pick(redraw, true)) {
2095
- this.redraw(animation);
2080
+ }));
2081
+ if (pick(options.redraw, true)) {
2082
+ this.redraw(options.animation);
2096
2083
  }
2097
2084
  return axis;
2098
2085
  };
@@ -2310,8 +2297,8 @@ var Chart = /** @class */ (function () {
2310
2297
  }
2311
2298
  }
2312
2299
  });
2313
- if (!chart.styledMode && 'style' in optionsChart) {
2314
- chart.renderer.setStyle(optionsChart.style);
2300
+ if (!chart.styledMode && optionsChart.style) {
2301
+ chart.renderer.setStyle(chart.options.chart.style || {});
2315
2302
  }
2316
2303
  }
2317
2304
  // Moved up, because tooltip needs updated plotOptions (#6218)
@@ -2430,7 +2417,7 @@ var Chart = /** @class */ (function () {
2430
2417
  }
2431
2418
  });
2432
2419
  itemsForRemoval.forEach(function (item) {
2433
- if (item.chart) { // #9097, avoid removing twice
2420
+ if (item.chart && item.remove) { // #9097, avoid removing twice
2434
2421
  item.remove(false);
2435
2422
  }
2436
2423
  });
@@ -2751,7 +2738,6 @@ extend(Chart.prototype, {
2751
2738
  collectionsWithUpdate: [
2752
2739
  'xAxis',
2753
2740
  'yAxis',
2754
- 'zAxis',
2755
2741
  'series'
2756
2742
  ],
2757
2743
  /**
@@ -2804,7 +2790,7 @@ extend(Chart.prototype, {
2804
2790
  });
2805
2791
  /* *
2806
2792
  *
2807
- * Export
2793
+ * Default Export
2808
2794
  *
2809
2795
  * */
2810
2796
  export default Chart;
@@ -2923,4 +2909,4 @@ export default Chart;
2923
2909
  * @name Highcharts.ChartIsInsideOptionsObject#visiblePlotOnly
2924
2910
  * @type {boolean|undefined}
2925
2911
  */
2926
- ''; // include doclets above in transpilat
2912
+ ''; // keeps doclets above in JS file
@@ -11,7 +11,7 @@
11
11
  import Palette from '../Color/Palette.js';
12
12
  /* *
13
13
  *
14
- * Constants
14
+ * API Options
15
15
  *
16
16
  * */
17
17
  /**
@@ -700,6 +700,18 @@ Series.prototype.initCompare = function (compare) {
700
700
  this.isDirty = true;
701
701
  }
702
702
  };
703
+ /**
704
+ * Based on the data grouping options decides whether
705
+ * the data should be cropped while processing.
706
+ *
707
+ * @ignore
708
+ * @function Highcharts.Series#forceCropping
709
+ */
710
+ Series.prototype.forceCropping = function () {
711
+ var chart = this.chart, options = this.options, dataGroupingOptions = options.dataGrouping, groupingEnabled = this.allowDG !== false && dataGroupingOptions &&
712
+ pick(dataGroupingOptions.enabled, chart.options.isStock);
713
+ return groupingEnabled;
714
+ };
703
715
  /**
704
716
  * Extend series.processData by finding the first y value in the plot area,
705
717
  * used for comparing the following values