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
@@ -10,15 +10,16 @@
10
10
  'use strict';
11
11
  import A from '../Animation/AnimationUtilities.js';
12
12
  var animObject = A.animObject, setAnimation = A.setAnimation;
13
+ import D from '../DefaultOptions.js';
14
+ var defaultOptions = D.defaultOptions;
13
15
  import F from '../Foundation.js';
14
16
  var registerEventOptions = F.registerEventOptions;
15
17
  import H from '../Globals.js';
16
18
  var hasTouch = H.hasTouch, svg = H.svg, win = H.win;
17
- import LegendSymbolMixin from '../../Mixins/LegendSymbol.js';
18
- import D from '../DefaultOptions.js';
19
- var defaultOptions = D.defaultOptions;
20
- import palette from '../Color/Palette.js';
19
+ import LegendSymbol from '../Legend/LegendSymbol.js';
20
+ import Palette from '../Color/Palette.js';
21
21
  import Point from './Point.js';
22
+ import SeriesDefaults from './SeriesDefaults.js';
22
23
  import SeriesRegistry from './SeriesRegistry.js';
23
24
  var seriesTypes = SeriesRegistry.seriesTypes;
24
25
  import SVGElement from '../Renderer/SVG/SVGElement.js';
@@ -89,7 +90,7 @@ var Series = /** @class */ (function () {
89
90
  function Series() {
90
91
  /* *
91
92
  *
92
- * Static Functions
93
+ * Static Properties
93
94
  *
94
95
  * */
95
96
  this._i = void 0;
@@ -247,7 +248,8 @@ var Series = /** @class */ (function () {
247
248
  * The index of the series in the collection.
248
249
  */
249
250
  Series.prototype.insert = function (collection) {
250
- var indexOption = this.options.index, i;
251
+ var indexOption = this.options.index;
252
+ var i;
251
253
  // Insert by index option
252
254
  if (isNumber(indexOption)) {
253
255
  i = collection.length;
@@ -278,7 +280,8 @@ var Series = /** @class */ (function () {
278
280
  * @function Highcharts.Series#bindAxes
279
281
  */
280
282
  Series.prototype.bindAxes = function () {
281
- var series = this, seriesOptions = series.options, chart = series.chart, axisOptions;
283
+ var series = this, seriesOptions = series.options, chart = series.chart;
284
+ var axisOptions;
282
285
  fireEvent(this, 'bindAxes', null, function () {
283
286
  // repeat for xAxis and yAxis
284
287
  (series.axisTypes || []).forEach(function (AXIS) {
@@ -383,10 +386,14 @@ var Series = /** @class */ (function () {
383
386
  * @function Highcharts.Series#autoIncrement
384
387
  * @return {number}
385
388
  */
386
- Series.prototype.autoIncrement = function () {
387
- var options = this.options, xIncrement = this.xIncrement, date, pointInterval, pointIntervalUnit = options.pointIntervalUnit, time = this.chart.time;
389
+ Series.prototype.autoIncrement = function (x) {
390
+ var options = this.options, pointIntervalUnit = options.pointIntervalUnit, relativeXValue = options.relativeXValue, time = this.chart.time;
391
+ var xIncrement = this.xIncrement, date, pointInterval;
388
392
  xIncrement = pick(xIncrement, options.pointStart, 0);
389
393
  this.pointInterval = pointInterval = pick(this.pointInterval, options.pointInterval, 1);
394
+ if (relativeXValue && isNumber(x)) {
395
+ pointInterval *= x;
396
+ }
390
397
  // Added code for pointInterval strings
391
398
  if (pointIntervalUnit) {
392
399
  date = new time.Date(xIncrement);
@@ -401,6 +408,9 @@ var Series = /** @class */ (function () {
401
408
  }
402
409
  pointInterval = date.getTime() - xIncrement;
403
410
  }
411
+ if (relativeXValue && isNumber(x)) {
412
+ return xIncrement + pointInterval;
413
+ }
404
414
  this.xIncrement = xIncrement + pointInterval;
405
415
  return xIncrement;
406
416
  };
@@ -439,10 +449,11 @@ var Series = /** @class */ (function () {
439
449
  * @fires Highcharts.Series#event:afterSetOptions
440
450
  */
441
451
  Series.prototype.setOptions = function (itemOptions) {
442
- var chart = this.chart, chartOptions = chart.options, plotOptions = chartOptions.plotOptions, userOptions = chart.userOptions || {}, seriesUserOptions = merge(itemOptions), options, zones, zone, styledMode = chart.styledMode, e = {
452
+ var chart = this.chart, chartOptions = chart.options, plotOptions = chartOptions.plotOptions, userOptions = chart.userOptions || {}, seriesUserOptions = merge(itemOptions), styledMode = chart.styledMode, e = {
443
453
  plotOptions: plotOptions,
444
454
  userOptions: seriesUserOptions
445
455
  };
456
+ var zone;
446
457
  fireEvent(this, 'setOptions', e);
447
458
  // These may be modified by the event
448
459
  var typeOptions = e.plotOptions[this.type], userPlotOptions = (userOptions.plotOptions || {});
@@ -453,7 +464,7 @@ var Series = /** @class */ (function () {
453
464
  * @type {Highcharts.SeriesOptionsType}
454
465
  */
455
466
  this.userOptions = e.userOptions;
456
- options = merge(typeOptions, plotOptions.series,
467
+ var options = merge(typeOptions, plotOptions.series,
457
468
  // #3881, chart instance plotOptions[type] should trump
458
469
  // plotOptions.series
459
470
  userOptions.plotOptions &&
@@ -486,7 +497,7 @@ var Series = /** @class */ (function () {
486
497
  }
487
498
  // Handle color zones
488
499
  this.zoneAxis = options.zoneAxis;
489
- zones = this.zones = (options.zones || []).slice();
500
+ var zones = this.zones = (options.zones || []).slice();
490
501
  if ((options.negativeColor || options.negativeFillColor) &&
491
502
  !options.zones) {
492
503
  zone = {
@@ -531,7 +542,8 @@ var Series = /** @class */ (function () {
531
542
  * @function Highcharts.Series#getCyclic
532
543
  */
533
544
  Series.prototype.getCyclic = function (prop, value, defaults) {
534
- var i, chart = this.chart, userOptions = this.userOptions, indexName = prop + 'Index', counterName = prop + 'Counter', len = defaults ? defaults.length : pick(chart.options.chart[prop + 'Count'], chart[prop + 'Count']), setting;
545
+ var chart = this.chart, userOptions = this.userOptions, indexName = prop + 'Index', counterName = prop + 'Counter', len = defaults ? defaults.length : pick(chart.options.chart[prop + 'Count'], chart[prop + 'Count']);
546
+ var i, setting;
535
547
  if (!value) {
536
548
  // Pick up either the colorIndex option, or the _colorIndex
537
549
  // after Series.update()
@@ -570,7 +582,7 @@ var Series = /** @class */ (function () {
570
582
  this.getCyclic('color');
571
583
  }
572
584
  else if (this.options.colorByPoint) {
573
- this.color = palette.neutralColor20;
585
+ this.color = Palette.neutralColor20;
574
586
  }
575
587
  else {
576
588
  this.getCyclic('color', this.options.color ||
@@ -615,17 +627,28 @@ var Series = /** @class */ (function () {
615
627
  * match is found.
616
628
  */
617
629
  Series.prototype.findPointIndex = function (optionsObject, fromIndex) {
618
- var id = optionsObject.id, x = optionsObject.x, oldData = this.points, matchingPoint, matchedById, pointIndex, matchKey, dataSorting = this.options.dataSorting;
630
+ var id = optionsObject.id, x = optionsObject.x, oldData = this.points, dataSorting = this.options.dataSorting;
631
+ var matchingPoint, matchedById, pointIndex;
619
632
  if (id) {
620
- matchingPoint = this.chart.get(id);
621
- }
622
- else if (this.linkedParent || this.enabledDataSorting) {
623
- matchKey = (dataSorting && dataSorting.matchByName) ?
624
- 'name' : 'index';
625
- matchingPoint = find(oldData, function (oldPoint) {
626
- return !oldPoint.touched && oldPoint[matchKey] ===
627
- optionsObject[matchKey];
628
- });
633
+ var item = this.chart.get(id);
634
+ if (item instanceof Point) {
635
+ matchingPoint = item;
636
+ }
637
+ }
638
+ else if (this.linkedParent ||
639
+ this.enabledDataSorting ||
640
+ this.options.relativeXValue) {
641
+ var matcher = function (oldPoint) { return !oldPoint.touched &&
642
+ oldPoint.index === optionsObject.index; };
643
+ if (dataSorting && dataSorting.matchByName) {
644
+ matcher = function (oldPoint) { return !oldPoint.touched &&
645
+ oldPoint.name === optionsObject.name; };
646
+ }
647
+ else if (this.options.relativeXValue) {
648
+ matcher = function (oldPoint) { return !oldPoint.touched &&
649
+ oldPoint.options.x === optionsObject.x; };
650
+ }
651
+ matchingPoint = find(oldData, matcher);
629
652
  // Add unmatched point as a new point
630
653
  if (!matchingPoint) {
631
654
  return void 0;
@@ -649,6 +672,7 @@ var Series = /** @class */ (function () {
649
672
  pointIndex - this.cropStart : pointIndex;
650
673
  }
651
674
  if (!matchedById &&
675
+ isNumber(pointIndex) &&
652
676
  oldData[pointIndex] && oldData[pointIndex].touched) {
653
677
  pointIndex = void 0;
654
678
  }
@@ -665,15 +689,16 @@ var Series = /** @class */ (function () {
665
689
  * @function Highcharts.Series#updateData
666
690
  */
667
691
  Series.prototype.updateData = function (data, animation) {
668
- var options = this.options, dataSorting = options.dataSorting, oldData = this.points, pointsToAdd = [], hasUpdatedByKey, i, point, lastIndex, requireSorting = this.requireSorting, equalLength = data.length === oldData.length, succeeded = true;
692
+ var options = this.options, dataSorting = options.dataSorting, oldData = this.points, pointsToAdd = [], requireSorting = this.requireSorting, equalLength = data.length === oldData.length;
693
+ var hasUpdatedByKey, i, point, lastIndex, succeeded = true;
669
694
  this.xIncrement = null;
670
695
  // Iterate the new data
671
696
  data.forEach(function (pointOptions, i) {
672
- var id, x, pointIndex, optionsObject = (defined(pointOptions) &&
697
+ var optionsObject = (defined(pointOptions) &&
673
698
  this.pointClass.prototype.optionsToObject.call({ series: this }, pointOptions)) || {};
699
+ var pointIndex;
674
700
  // Get the x of the new data point
675
- x = optionsObject.x;
676
- id = optionsObject.id;
701
+ var x = optionsObject.x, id = optionsObject.id;
677
702
  if (id || isNumber(x)) {
678
703
  pointIndex = this.findPointIndex(optionsObject, lastIndex);
679
704
  // Matching X not found
@@ -810,9 +835,10 @@ var Series = /** @class */ (function () {
810
835
  * `false` to prevent.
811
836
  */
812
837
  Series.prototype.setData = function (data, redraw, animation, updatePoints) {
813
- var series = this, oldData = series.points, oldDataLength = (oldData && oldData.length) || 0, dataLength, options = series.options, chart = series.chart, dataSorting = options.dataSorting, firstPoint = null, xAxis = series.xAxis, i, turboThreshold = options.turboThreshold, pt, xData = this.xData, yData = this.yData, pointArrayMap = series.pointArrayMap, valueCount = pointArrayMap && pointArrayMap.length, keys = options.keys, indexOfX = 0, indexOfY = 1, updatedData;
838
+ var series = this, oldData = series.points, oldDataLength = (oldData && oldData.length) || 0, options = series.options, chart = series.chart, dataSorting = options.dataSorting, xAxis = series.xAxis, turboThreshold = options.turboThreshold, xData = this.xData, yData = this.yData, pointArrayMap = series.pointArrayMap, valueCount = pointArrayMap && pointArrayMap.length, keys = options.keys;
839
+ var i, pt, updatedData, indexOfX = 0, indexOfY = 1, firstPoint = null;
814
840
  data = data || [];
815
- dataLength = data.length;
841
+ var dataLength = data.length;
816
842
  redraw = pick(redraw, true);
817
843
  if (dataSorting && dataSorting.enabled) {
818
844
  data = this.sortData(data);
@@ -936,7 +962,7 @@ var Series = /** @class */ (function () {
936
962
  * @return {Array<Highcharts.PointOptionsObject>}
937
963
  */
938
964
  Series.prototype.sortData = function (data) {
939
- var series = this, options = series.options, dataSorting = options.dataSorting, sortKey = dataSorting.sortKey || 'y', sortedData, getPointOptionsObject = function (series, pointOptions) {
965
+ var series = this, options = series.options, dataSorting = options.dataSorting, sortKey = dataSorting.sortKey || 'y', getPointOptionsObject = function (series, pointOptions) {
940
966
  return (defined(pointOptions) &&
941
967
  series.pointClass.prototype.optionsToObject.call({
942
968
  series: series
@@ -947,7 +973,7 @@ var Series = /** @class */ (function () {
947
973
  data[i].index = i;
948
974
  }, this);
949
975
  // Sorting
950
- sortedData = data.concat().sort(function (a, b) {
976
+ var sortedData = data.concat().sort(function (a, b) {
951
977
  var aValue = getNestedProperty(sortKey, a);
952
978
  var bValue = getNestedProperty(sortKey, b);
953
979
  return bValue < aValue ? -1 : bValue > aValue ? 1 : 0;
@@ -989,18 +1015,21 @@ var Series = /** @class */ (function () {
989
1015
  * @return {Highcharts.SeriesProcessedDataObject}
990
1016
  */
991
1017
  Series.prototype.getProcessedData = function (forceExtremesFromAll) {
992
- var series = this,
993
- // copied during slice operation:
994
- processedXData = series.xData, processedYData = series.yData, dataLength = processedXData.length, croppedData, cropStart = 0, cropped, distance, closestPointRange, xAxis = series.xAxis, i, // loop variable
995
- options = series.options, cropThreshold = options.cropThreshold, getExtremesFromAll = forceExtremesFromAll ||
1018
+ var series = this, xAxis = series.xAxis, options = series.options, cropThreshold = options.cropThreshold, getExtremesFromAll = forceExtremesFromAll ||
996
1019
  series.getExtremesFromAll ||
997
1020
  options.getExtremesFromAll, // #4599
998
- isCartesian = series.isCartesian, xExtremes, val2lin = xAxis && xAxis.val2lin, isLog = !!(xAxis && xAxis.logarithmic), throwOnUnsorted = series.requireSorting, min, max;
1021
+ isCartesian = series.isCartesian, val2lin = xAxis && xAxis.val2lin, isLog = !!(xAxis && xAxis.logarithmic);
1022
+ var croppedData, cropped, cropStart = 0, distance, closestPointRange, i, // loop variable
1023
+ xExtremes, min, max,
1024
+ // copied during slice operation:
1025
+ processedXData = series.xData, processedYData = series.yData, throwOnUnsorted = series.requireSorting, updatingNames = false;
1026
+ var dataLength = processedXData.length;
999
1027
  if (xAxis) {
1000
1028
  // corrected for log axis (#3053)
1001
1029
  xExtremes = xAxis.getExtremes();
1002
1030
  min = xExtremes.min;
1003
1031
  max = xExtremes.max;
1032
+ updatingNames = xAxis.categories && !xAxis.names.length;
1004
1033
  }
1005
1034
  // optionally filter out points outside the plot area
1006
1035
  if (isCartesian &&
@@ -1039,9 +1068,11 @@ var Series = /** @class */ (function () {
1039
1068
  closestPointRange = distance;
1040
1069
  // Unsorted data is not supported by the line tooltip, as well
1041
1070
  // as data grouping and navigation in Stock charts (#725) and
1042
- // width calculation of columns (#1900)
1071
+ // width calculation of columns (#1900).
1072
+ // Avoid warning during the premature processing pass in
1073
+ // updateNames (#16104).
1043
1074
  }
1044
- else if (distance < 0 && throwOnUnsorted) {
1075
+ else if (distance < 0 && throwOnUnsorted && !updatingNames) {
1045
1076
  error(15, false, series.chart);
1046
1077
  throwOnUnsorted = false; // Only once
1047
1078
  }
@@ -1065,7 +1096,7 @@ var Series = /** @class */ (function () {
1065
1096
  * @return {boolean|undefined}
1066
1097
  */
1067
1098
  Series.prototype.processData = function (force) {
1068
- var series = this, xAxis = series.xAxis, processedData;
1099
+ var series = this, xAxis = series.xAxis;
1069
1100
  // If the series data or axes haven't changed, don't go through
1070
1101
  // this. Return false to pass the message on to override methods
1071
1102
  // like in data grouping.
@@ -1076,7 +1107,7 @@ var Series = /** @class */ (function () {
1076
1107
  !force) {
1077
1108
  return false;
1078
1109
  }
1079
- processedData = series.getProcessedData();
1110
+ var processedData = series.getProcessedData();
1080
1111
  // Record the properties
1081
1112
  series.cropped = processedData.cropped; // undefined or true
1082
1113
  series.cropStart = processedData.cropStart;
@@ -1099,7 +1130,8 @@ var Series = /** @class */ (function () {
1099
1130
  * @return {Highcharts.SeriesCropDataObject}
1100
1131
  */
1101
1132
  Series.prototype.cropData = function (xData, yData, min, max, cropShoulder) {
1102
- var dataLength = xData.length, cropStart = 0, cropEnd = dataLength, i, j;
1133
+ var dataLength = xData.length;
1134
+ var i, j, cropStart = 0, cropEnd = dataLength;
1103
1135
  // line-type series need one point outside
1104
1136
  cropShoulder = pick(cropShoulder, this.cropShoulder);
1105
1137
  // iterate up to find slice start
@@ -1131,10 +1163,11 @@ var Series = /** @class */ (function () {
1131
1163
  * @function Highcharts.Series#generatePoints
1132
1164
  */
1133
1165
  Series.prototype.generatePoints = function () {
1134
- var series = this, options = series.options, dataOptions = options.data, data = series.data, dataLength, processedXData = series.processedXData, processedYData = series.processedYData, PointClass = series.pointClass, processedDataLength = processedXData.length, cropStart = series.cropStart || 0, cursor, hasGroupedData = series.hasGroupedData, keys = options.keys, point, points = [], i, groupCropStartIndex = (options.dataGrouping &&
1166
+ var series = this, options = series.options, dataOptions = options.data, processedXData = series.processedXData, processedYData = series.processedYData, PointClass = series.pointClass, processedDataLength = processedXData.length, cropStart = series.cropStart || 0, hasGroupedData = series.hasGroupedData, keys = options.keys, points = [], groupCropStartIndex = (options.dataGrouping &&
1135
1167
  options.dataGrouping.groupAll ?
1136
1168
  cropStart :
1137
1169
  0);
1170
+ var dataLength, cursor, point, i, data = series.data;
1138
1171
  if (!data && !hasGroupedData) {
1139
1172
  var arr = [];
1140
1173
  arr.length = dataOptions.length;
@@ -1173,6 +1206,9 @@ var Series = /** @class */ (function () {
1173
1206
  *
1174
1207
  * @name Highcharts.Point#dataGroup
1175
1208
  * @type {Highcharts.DataGroupingInfoObject|undefined}
1209
+ *
1210
+ * @sample stock/members/point-datagroup
1211
+ * Click to inspect raw data points
1176
1212
  */
1177
1213
  point.dataGroup = series.groupMap[groupCropStartIndex + i];
1178
1214
  if (point.dataGroup.options) {
@@ -1280,14 +1316,14 @@ var Series = /** @class */ (function () {
1280
1316
  * @return {Highcharts.DataExtremesObject}
1281
1317
  */
1282
1318
  Series.prototype.getExtremes = function (yData, forceExtremesFromAll) {
1283
- var xAxis = this.xAxis, yAxis = this.yAxis, xData = this.processedXData || this.xData, yDataLength, activeYData = [], activeCounter = 0,
1284
- // #2117, need to compensate for log X axis
1285
- xExtremes, xMin = 0, xMax = 0, validValue, withinRange,
1319
+ var xAxis = this.xAxis, yAxis = this.yAxis, xData = this.processedXData || this.xData, activeYData = [],
1286
1320
  // Handle X outside the viewed area. This does not work with
1287
1321
  // non-sorted data like scatter (#7639).
1288
- shoulder = this.requireSorting ? this.cropShoulder : 0, positiveValuesOnly = yAxis ? yAxis.positiveValuesOnly : false, x, y, i, j;
1322
+ shoulder = this.requireSorting ? this.cropShoulder : 0, positiveValuesOnly = yAxis ? yAxis.positiveValuesOnly : false;
1323
+ // #2117, need to compensate for log X axis
1324
+ var xExtremes, validValue, withinRange, x, y, i, j, xMin = 0, xMax = 0, activeCounter = 0;
1289
1325
  yData = yData || this.stackedYData || this.processedYData || [];
1290
- yDataLength = yData.length;
1326
+ var yDataLength = yData.length;
1291
1327
  if (xAxis) {
1292
1328
  xExtremes = xAxis.getExtremes();
1293
1329
  xMin = xExtremes.min;
@@ -1370,7 +1406,8 @@ var Series = /** @class */ (function () {
1370
1406
  * @return {Highcharts.PointOptionsType}
1371
1407
  */
1372
1408
  Series.prototype.getFirstValidPoint = function (data) {
1373
- var firstPoint = null, dataLength = data.length, i = 0;
1409
+ var dataLength = data.length;
1410
+ var i = 0, firstPoint = null;
1374
1411
  while (firstPoint === null && i < dataLength) {
1375
1412
  firstPoint = data[i];
1376
1413
  i++;
@@ -1392,8 +1429,9 @@ var Series = /** @class */ (function () {
1392
1429
  this.processData();
1393
1430
  }
1394
1431
  this.generatePoints();
1395
- var series = this, options = series.options, stacking = options.stacking, xAxis = series.xAxis, categories = xAxis.categories, enabledDataSorting = series.enabledDataSorting, yAxis = series.yAxis, points = series.points, dataLength = points.length, hasModifyValue = !!series.modifyValue, i, pointPlacement = series.pointPlacementToXValue(), // #7860
1396
- dynamicallyPlaced = Boolean(pointPlacement), threshold = options.threshold, stackThreshold = options.startFromThreshold ? threshold : 0, plotX, lastPlotX, stackIndicator, zoneAxis = this.zoneAxis || 'y', closestPointRangePx = Number.MAX_VALUE;
1432
+ var series = this, options = series.options, stacking = options.stacking, xAxis = series.xAxis, categories = xAxis.categories, enabledDataSorting = series.enabledDataSorting, yAxis = series.yAxis, points = series.points, dataLength = points.length, hasModifyValue = !!series.modifyValue, pointPlacement = series.pointPlacementToXValue(), // #7860
1433
+ dynamicallyPlaced = Boolean(pointPlacement), threshold = options.threshold, stackThreshold = options.startFromThreshold ? threshold : 0, zoneAxis = this.zoneAxis || 'y';
1434
+ var i, plotX, lastPlotX, stackIndicator, closestPointRangePx = Number.MAX_VALUE;
1397
1435
  /**
1398
1436
  * Plotted coordinates need to be within a limited range. Drawing
1399
1437
  * too far outside the viewport causes various rendering issues
@@ -1405,11 +1443,13 @@ var Series = /** @class */ (function () {
1405
1443
  }
1406
1444
  // Translate each point
1407
1445
  for (i = 0; i < dataLength; i++) {
1408
- var point = points[i], xValue = point.x, yValue = point.y, yBottom = point.low, stack = stacking && yAxis.stacking && yAxis.stacking.stacks[(series.negStacks &&
1446
+ var point = points[i], xValue = point.x;
1447
+ var pointStack = void 0, stackValues = void 0, yValue = point.y, yBottom = point.low;
1448
+ var stack = stacking && yAxis.stacking && yAxis.stacking.stacks[(series.negStacks &&
1409
1449
  yValue <
1410
1450
  (stackThreshold ? 0 : threshold) ?
1411
1451
  '-' :
1412
- '') + series.stackKey], pointStack = void 0, stackValues = void 0;
1452
+ '') + series.stackKey];
1413
1453
  if (yAxis.positiveValuesOnly && !yAxis.validatePositiveValue(yValue) ||
1414
1454
  xAxis.positiveValuesOnly && !xAxis.validatePositiveValue(xValue)) {
1415
1455
  point.isNull = true;
@@ -1552,7 +1592,8 @@ var Series = /** @class */ (function () {
1552
1592
  * @return {Highcharts.Dictionary<number>}
1553
1593
  */
1554
1594
  Series.prototype.getClipBox = function (animation, finalBox) {
1555
- var series = this, options = series.options, chart = series.chart, inverted = chart.inverted, xAxis = series.xAxis, yAxis = xAxis && series.yAxis, clipBox, scrollablePlotAreaOptions = chart.options.chart.scrollablePlotArea || {};
1595
+ var series = this, options = series.options, chart = series.chart, inverted = chart.inverted, xAxis = series.xAxis, yAxis = xAxis && series.yAxis, scrollablePlotAreaOptions = chart.options.chart.scrollablePlotArea || {};
1596
+ var clipBox;
1556
1597
  if (animation && options.clip === false && yAxis) {
1557
1598
  // support for not clipped series animation (#10450)
1558
1599
  clipBox = inverted ? {
@@ -1614,8 +1655,8 @@ var Series = /** @class */ (function () {
1614
1655
  * @function Highcharts.Series#setClip
1615
1656
  */
1616
1657
  Series.prototype.setClip = function (animation) {
1617
- var chart = this.chart, options = this.options, renderer = chart.renderer, inverted = chart.inverted, seriesClipBox = this.clipBox, clipBox = this.getClipBox(animation), sharedClipKey = this.getSharedClipKey(animation), // #4526
1618
- clipRect = chart.sharedClips[sharedClipKey], markerClipRect = chart.sharedClips[sharedClipKey + 'm'];
1658
+ var chart = this.chart, options = this.options, renderer = chart.renderer, inverted = chart.inverted, seriesClipBox = this.clipBox, clipBox = this.getClipBox(animation), sharedClipKey = this.getSharedClipKey(animation); // #4526
1659
+ var clipRect = chart.sharedClips[sharedClipKey], markerClipRect = chart.sharedClips[sharedClipKey + 'm'];
1619
1660
  if (animation) {
1620
1661
  clipBox.width = 0;
1621
1662
  if (inverted) {
@@ -1725,11 +1766,12 @@ var Series = /** @class */ (function () {
1725
1766
  * @function Highcharts.Series#drawPoints
1726
1767
  */
1727
1768
  Series.prototype.drawPoints = function () {
1728
- var series = this, points = series.points, chart = series.chart, i, point, graphic, verb, options = series.options, seriesMarkerOptions = options.marker, pointMarkerOptions, hasPointMarker, markerGroup = (series[series.specialGroup] ||
1729
- series.markerGroup), xAxis = series.xAxis, markerAttribs, globallyEnabled = pick(seriesMarkerOptions.enabled, !xAxis || xAxis.isRadial ? true : null,
1769
+ var series = this, points = series.points, chart = series.chart, options = series.options, seriesMarkerOptions = options.marker, markerGroup = (series[series.specialGroup] ||
1770
+ series.markerGroup), xAxis = series.xAxis, globallyEnabled = pick(seriesMarkerOptions.enabled, !xAxis || xAxis.isRadial ? true : null,
1730
1771
  // Use larger or equal as radius is null in bubbles (#6321)
1731
1772
  series.closestPointRangePx >= (seriesMarkerOptions.enabledThreshold *
1732
1773
  seriesMarkerOptions.radius));
1774
+ var i, point, graphic, verb, pointMarkerOptions, hasPointMarker, markerAttribs;
1733
1775
  if (seriesMarkerOptions.enabled !== false ||
1734
1776
  series._hasPointMarkers) {
1735
1777
  for (i = 0; i < points.length; i++) {
@@ -1826,8 +1868,9 @@ var Series = /** @class */ (function () {
1826
1868
  * A hash containing those attributes that are not settable from CSS.
1827
1869
  */
1828
1870
  Series.prototype.markerAttribs = function (point, state) {
1829
- var seriesOptions = this.options, seriesMarkerOptions = seriesOptions.marker, seriesStateOptions, pointMarkerOptions = point.marker || {}, symbol = (pointMarkerOptions.symbol ||
1830
- seriesMarkerOptions.symbol), pointStateOptions, radius = pick(pointMarkerOptions.radius, seriesMarkerOptions.radius), attribs;
1871
+ var seriesOptions = this.options, seriesMarkerOptions = seriesOptions.marker, pointMarkerOptions = point.marker || {}, symbol = (pointMarkerOptions.symbol ||
1872
+ seriesMarkerOptions.symbol);
1873
+ var seriesStateOptions, pointStateOptions, radius = pick(pointMarkerOptions.radius, seriesMarkerOptions.radius);
1831
1874
  // Handle hover and select states
1832
1875
  if (state) {
1833
1876
  seriesStateOptions = seriesMarkerOptions.states[state];
@@ -1840,7 +1883,7 @@ var Series = /** @class */ (function () {
1840
1883
  if (point.hasImage) {
1841
1884
  radius = 0; // and subsequently width and height is not set
1842
1885
  }
1843
- attribs = {
1886
+ var attribs = {
1844
1887
  // Math.floor for #1843:
1845
1888
  x: seriesOptions.crisp ?
1846
1889
  Math.floor(point.plotX - radius) :
@@ -1872,7 +1915,8 @@ var Series = /** @class */ (function () {
1872
1915
  * The presentational attributes to be set on the point.
1873
1916
  */
1874
1917
  Series.prototype.pointAttribs = function (point, state) {
1875
- var seriesMarkerOptions = this.options.marker, seriesStateOptions, pointOptions = point && point.options, pointMarkerOptions = ((pointOptions && pointOptions.marker) || {}), pointStateOptions, color = this.color, pointColorOption = pointOptions && pointOptions.color, pointColor = point && point.color, strokeWidth = pick(pointMarkerOptions.lineWidth, seriesMarkerOptions.lineWidth), zoneColor = point && point.zone && point.zone.color, fill, stroke, opacity = 1;
1918
+ var seriesMarkerOptions = this.options.marker, pointOptions = point && point.options, pointMarkerOptions = ((pointOptions && pointOptions.marker) || {}), pointColorOption = pointOptions && pointOptions.color, pointColor = point && point.color, zoneColor = point && point.zone && point.zone.color;
1919
+ var seriesStateOptions, pointStateOptions, color = this.color, fill, stroke, strokeWidth = pick(pointMarkerOptions.lineWidth, seriesMarkerOptions.lineWidth), opacity = 1;
1876
1920
  color = (pointColorOption ||
1877
1921
  zoneColor ||
1878
1922
  pointColor ||
@@ -1914,7 +1958,8 @@ var Series = /** @class */ (function () {
1914
1958
  * @fires Highcharts.Series#event:destroy
1915
1959
  */
1916
1960
  Series.prototype.destroy = function (keepEventsForUpdate) {
1917
- var series = this, chart = series.chart, issue134 = /AppleWebKit\/533/.test(win.navigator.userAgent), destroy, i, data = series.data || [], point, axis;
1961
+ var series = this, chart = series.chart, issue134 = /AppleWebKit\/533/.test(win.navigator.userAgent), data = series.data || [];
1962
+ var destroy, i, point, axis;
1918
1963
  // add event hook
1919
1964
  fireEvent(series, 'destroy');
1920
1965
  // remove events
@@ -1976,7 +2021,8 @@ var Series = /** @class */ (function () {
1976
2021
  * @function Highcharts.Series#applyZones
1977
2022
  */
1978
2023
  Series.prototype.applyZones = function () {
1979
- var series = this, chart = this.chart, renderer = chart.renderer, zones = this.zones, translatedFrom, translatedTo, clips = (this.clips || []), clipAttr, graph = this.graph, area = this.area, chartSizeMax = Math.max(chart.chartWidth, chart.chartHeight), axis = this[(this.zoneAxis || 'y') + 'Axis'], extremes, reversed, inverted = chart.inverted, horiz, pxRange, pxPosMin, pxPosMax, ignoreZones = false, zoneArea, zoneGraph;
2024
+ var series = this, chart = this.chart, renderer = chart.renderer, zones = this.zones, clips = (this.clips || []), graph = this.graph, area = this.area, chartSizeMax = Math.max(chart.chartWidth, chart.chartHeight), axis = this[(this.zoneAxis || 'y') + 'Axis'], inverted = chart.inverted;
2025
+ var translatedFrom, translatedTo, clipAttr, extremes, reversed, horiz, pxRange, pxPosMin, pxPosMax, zoneArea, zoneGraph, ignoreZones = false;
1980
2026
  if (zones.length &&
1981
2027
  (graph || area) &&
1982
2028
  axis &&
@@ -2179,7 +2225,8 @@ var Series = /** @class */ (function () {
2179
2225
  * @return {Highcharts.SeriesPlotBoxObject}
2180
2226
  */
2181
2227
  Series.prototype.getPlotBox = function () {
2182
- var chart = this.chart, xAxis = this.xAxis, yAxis = this.yAxis;
2228
+ var chart = this.chart;
2229
+ var xAxis = this.xAxis, yAxis = this.yAxis;
2183
2230
  // Swap axes for inverted (#2339)
2184
2231
  if (chart.inverted) {
2185
2232
  xAxis = yAxis;
@@ -2222,17 +2269,17 @@ var Series = /** @class */ (function () {
2222
2269
  * @fires Highcharts.Series#event:afterRender
2223
2270
  */
2224
2271
  Series.prototype.render = function () {
2225
- var series = this, chart = series.chart, group, options = series.options, animOptions = animObject(options.animation),
2272
+ var series = this, chart = series.chart, options = series.options, animOptions = animObject(options.animation), visibility = series.visible ?
2273
+ 'inherit' : 'hidden', // #2597
2274
+ zIndex = options.zIndex, hasRendered = series.hasRendered, chartSeriesGroup = chart.seriesGroup, inverted = chart.inverted;
2226
2275
  // Animation doesn't work in IE8 quirks when the group div is
2227
2276
  // hidden, and looks bad in other oldIE
2228
- animDuration = (!series.finishedAnimating &&
2277
+ var animDuration = (!series.finishedAnimating &&
2229
2278
  chart.renderer.isSVG &&
2230
- animOptions.duration), visibility = series.visible ?
2231
- 'inherit' : 'hidden', // #2597
2232
- zIndex = options.zIndex, hasRendered = series.hasRendered, chartSeriesGroup = chart.seriesGroup, inverted = chart.inverted;
2279
+ animOptions.duration);
2233
2280
  fireEvent(this, 'render');
2234
2281
  // the group
2235
- group = series.plotGroup('group', 'series', visibility, zIndex, chartSeriesGroup);
2282
+ var group = series.plotGroup('group', 'series', visibility, zIndex, chartSeriesGroup);
2236
2283
  series.markerGroup = series.plotGroup('markerGroup', 'markers', visibility, zIndex, chartSeriesGroup);
2237
2284
  // initiate the animation
2238
2285
  if (animDuration && series.animate) {
@@ -2333,8 +2380,23 @@ var Series = /** @class */ (function () {
2333
2380
  }
2334
2381
  };
2335
2382
  /**
2336
- * @private
2383
+ * Find the nearest point from a pointer event. This applies to series that
2384
+ * use k-d-trees to get the nearest point. Native pointer events must be
2385
+ * normalized using `Pointer.normalize`, that adds `chartX` and `chartY`
2386
+ * properties.
2387
+ *
2388
+ * @sample highcharts/demo/synchronized-charts
2389
+ * Synchronized charts with tooltips
2390
+ *
2337
2391
  * @function Highcharts.Series#searchPoint
2392
+ *
2393
+ * @param {Highcharts.PointerEvent} e
2394
+ * The normalized pointer event
2395
+ * @param {boolean} [compareX=false]
2396
+ * Search only by the X value, not Y
2397
+ *
2398
+ * @return {Point|undefined}
2399
+ * The closest point to the pointer event
2338
2400
  */
2339
2401
  Series.prototype.searchPoint = function (e, compareX) {
2340
2402
  var series = this, xAxis = series.xAxis, yAxis = series.yAxis, inverted = series.chart.inverted;
@@ -2367,7 +2429,8 @@ var Series = /** @class */ (function () {
2367
2429
  * @private
2368
2430
  */
2369
2431
  function _kdtree(points, depth, dimensions) {
2370
- var axis, median, length = points && points.length;
2432
+ var length = points && points.length;
2433
+ var axis, median;
2371
2434
  if (length) {
2372
2435
  // alternate between the axis
2373
2436
  axis = series.kdAxisArray[depth % dimensions];
@@ -2428,12 +2491,11 @@ var Series = /** @class */ (function () {
2428
2491
  * @private
2429
2492
  */
2430
2493
  function _search(search, tree, depth, dimensions) {
2431
- var point = tree.point, axis = series.kdAxisArray[depth % dimensions], tdist, sideA, sideB, ret = point, nPoint1, nPoint2;
2494
+ var point = tree.point, axis = series.kdAxisArray[depth % dimensions];
2495
+ var nPoint1, nPoint2, ret = point;
2432
2496
  setDistance(search, point);
2433
2497
  // Pick side based on distance to splitting point
2434
- tdist = search[axis] - point[axis];
2435
- sideA = tdist < 0 ? 'left' : 'right';
2436
- sideB = tdist < 0 ? 'right' : 'left';
2498
+ var tdist = search[axis] - point[axis], sideA = tdist < 0 ? 'left' : 'right', sideB = tdist < 0 ? 'right' : 'left';
2437
2499
  // End of tree
2438
2500
  if (tree[sideA]) {
2439
2501
  nPoint1 = _search(search, tree[sideA], depth + 1, dimensions);
@@ -2502,7 +2564,7 @@ var Series = /** @class */ (function () {
2502
2564
  series.areaPath :
2503
2565
  series.graphPath),
2504
2566
  // trackerPathLength = trackerPath.length,
2505
- chart = series.chart, pointer = chart.pointer, renderer = chart.renderer, snap = chart.options.tooltip.snap, tracker = series.tracker, i, onMouseOver = function (e) {
2567
+ chart = series.chart, pointer = chart.pointer, renderer = chart.renderer, snap = chart.options.tooltip.snap, tracker = series.tracker, onMouseOver = function (e) {
2506
2568
  if (chart.hoverSeries !== series) {
2507
2569
  series.onMouseOver();
2508
2570
  }
@@ -2521,6 +2583,7 @@ var Series = /** @class */ (function () {
2521
2583
  * Opera: 0.00000000001 (unlimited)
2522
2584
  */
2523
2585
  TRACKER_FILL = 'rgba(192,192,192,' + (svg ? 0.0001 : 0.002) + ')';
2586
+ var i;
2524
2587
  // Draw the tracker
2525
2588
  if (tracker) {
2526
2589
  tracker.attr({ d: trackerPath });
@@ -2620,15 +2683,16 @@ var Series = /** @class */ (function () {
2620
2683
  * @fires Highcharts.Series#event:addPoint
2621
2684
  */
2622
2685
  Series.prototype.addPoint = function (options, redraw, shift, animation, withEvent) {
2623
- var series = this, seriesOptions = series.options, data = series.data, chart = series.chart, xAxis = series.xAxis, names = xAxis && xAxis.hasNames && xAxis.names, dataOptions = seriesOptions.data, point, xData = series.xData, isInTheMiddle, i, x;
2686
+ var series = this, seriesOptions = series.options, data = series.data, chart = series.chart, xAxis = series.xAxis, names = xAxis && xAxis.hasNames && xAxis.names, dataOptions = seriesOptions.data, xData = series.xData;
2687
+ var isInTheMiddle, i;
2624
2688
  // Optional redraw, defaults to true
2625
2689
  redraw = pick(redraw, true);
2626
2690
  // Get options and push the point to xData, yData and series.options. In
2627
2691
  // series.generatePoints the Point instance will be created on demand
2628
2692
  // and pushed to the series.data array.
2629
- point = { series: series };
2693
+ var point = { series: series };
2630
2694
  series.pointClass.prototype.applyOptions.apply(point, [options]);
2631
- x = point.x;
2695
+ var x = point.x;
2632
2696
  // Get the insertion point
2633
2697
  i = xData.length;
2634
2698
  if (series.requireSorting && x < xData[i - 1]) {
@@ -2807,9 +2871,25 @@ var Series = /** @class */ (function () {
2807
2871
  var series = this, chart = series.chart,
2808
2872
  // must use user options when changing type because series.options
2809
2873
  // is merged in with type specific plotOptions
2810
- oldOptions = series.userOptions, seriesOptions, initialType = series.initialType || series.type, plotOptions = chart.options.plotOptions, newType = (options.type ||
2874
+ oldOptions = series.userOptions, initialType = series.initialType || series.type, plotOptions = chart.options.plotOptions, initialSeriesProto = seriesTypes[initialType].prototype, groups = [
2875
+ 'group',
2876
+ 'markerGroup',
2877
+ 'dataLabelsGroup',
2878
+ 'transformGroup'
2879
+ ],
2880
+ // Animation must be enabled when calling update before the initial
2881
+ // animation has first run. This happens when calling update
2882
+ // directly after chart initialization, or when applying responsive
2883
+ // rules (#6912).
2884
+ animation = series.finishedAnimating && { animation: false }, kinds = {};
2885
+ var seriesOptions, n, preserve = [
2886
+ 'eventOptions',
2887
+ 'navigatorSeries',
2888
+ 'baseSeries'
2889
+ ], newType = (options.type ||
2811
2890
  oldOptions.type ||
2812
- chart.options.chart.type), keepPoints = !(
2891
+ chart.options.chart.type);
2892
+ var keepPoints = !(
2813
2893
  // Indicators, histograms etc recalculate the data. It should be
2814
2894
  // possible to omit this.
2815
2895
  this.hasDerivedData ||
@@ -2818,26 +2898,13 @@ var Series = /** @class */ (function () {
2818
2898
  // New options affecting how the data points are built
2819
2899
  typeof options.pointStart !== 'undefined' ||
2820
2900
  typeof options.pointInterval !== 'undefined' ||
2901
+ typeof options.relativeXValue !== 'undefined' ||
2821
2902
  // Changes to data grouping requires new points in new group
2822
2903
  series.hasOptionChanged('dataGrouping') ||
2823
2904
  series.hasOptionChanged('pointStart') ||
2824
2905
  series.hasOptionChanged('pointInterval') ||
2825
2906
  series.hasOptionChanged('pointIntervalUnit') ||
2826
- series.hasOptionChanged('keys')), initialSeriesProto = seriesTypes[initialType].prototype, n, groups = [
2827
- 'group',
2828
- 'markerGroup',
2829
- 'dataLabelsGroup',
2830
- 'transformGroup'
2831
- ], preserve = [
2832
- 'eventOptions',
2833
- 'navigatorSeries',
2834
- 'baseSeries'
2835
- ],
2836
- // Animation must be enabled when calling update before the initial
2837
- // animation has first run. This happens when calling update
2838
- // directly after chart initialization, or when applying responsive
2839
- // rules (#6912).
2840
- animation = series.finishedAnimating && { animation: false }, kinds = {};
2907
+ series.hasOptionChanged('keys'));
2841
2908
  newType = newType || initialType;
2842
2909
  if (keepPoints) {
2843
2910
  preserve.push('data', 'isDirtyData', 'points', 'processedXData', 'processedYData', 'xIncrement', 'cropped', '_hasPointMarkers', '_hasPointLabels', 'clips', // #15420
@@ -2939,7 +3006,8 @@ var Series = /** @class */ (function () {
2939
3006
  else if (!series._hasPointLabels) {
2940
3007
  var marker = seriesOptions.marker, dataLabels = seriesOptions.dataLabels;
2941
3008
  if (marker && (marker.enabled === false ||
2942
- 'symbol' in marker // #10870
3009
+ (oldOptions.marker && oldOptions.marker.symbol) !==
3010
+ marker.symbol // #10870, #15946
2943
3011
  )) {
2944
3012
  kinds.graphic = 1;
2945
3013
  }
@@ -3069,11 +3137,12 @@ var Series = /** @class */ (function () {
3069
3137
  * Determines if state should be inherited by points too.
3070
3138
  */
3071
3139
  Series.prototype.setState = function (state, inherit) {
3072
- var series = this, options = series.options, graph = series.graph, inactiveOtherPoints = options.inactiveOtherPoints, stateOptions = options.states, lineWidth = options.lineWidth, opacity = options.opacity,
3140
+ var series = this, options = series.options, graph = series.graph, inactiveOtherPoints = options.inactiveOtherPoints, stateOptions = options.states,
3073
3141
  // By default a quick animation to hover/inactive,
3074
3142
  // slower to un-hover
3075
3143
  stateAnimation = pick((stateOptions[state || 'normal'] &&
3076
- stateOptions[state || 'normal'].animation), series.chart.options.chart.animation), attribs, i = 0;
3144
+ stateOptions[state || 'normal'].animation), series.chart.options.chart.animation);
3145
+ var attribs, lineWidth = options.lineWidth, i = 0, opacity = options.opacity;
3077
3146
  state = state || '';
3078
3147
  if (series.state !== state) {
3079
3148
  // Toggle class names
@@ -3174,14 +3243,14 @@ var Series = /** @class */ (function () {
3174
3243
  * @fires Highcharts.Series#event:show
3175
3244
  */
3176
3245
  Series.prototype.setVisible = function (vis, redraw) {
3177
- var series = this, chart = series.chart, legendItem = series.legendItem, showOrHide, ignoreHiddenSeries = chart.options.chart.ignoreHiddenSeries, oldVisibility = series.visible;
3246
+ var series = this, chart = series.chart, legendItem = series.legendItem, ignoreHiddenSeries = chart.options.chart.ignoreHiddenSeries, oldVisibility = series.visible;
3178
3247
  // if called without an argument, toggle visibility
3179
3248
  series.visible =
3180
3249
  vis =
3181
3250
  series.options.visible =
3182
3251
  series.userOptions.visible =
3183
3252
  typeof vis === 'undefined' ? !oldVisibility : vis; // #5618
3184
- showOrHide = vis ? 'show' : 'hide';
3253
+ var showOrHide = vis ? 'show' : 'hide';
3185
3254
  // show or hide elements
3186
3255
  [
3187
3256
  'group',
@@ -3296,2241 +3365,7 @@ var Series = /** @class */ (function () {
3296
3365
  options.visiblePlotOnly = true;
3297
3366
  return this.chart.isInsidePlot(plotX, plotY, options);
3298
3367
  };
3299
- /**
3300
- * General options for all series types.
3301
- *
3302
- * @optionparent plotOptions.series
3303
- */
3304
- Series.defaultOptions = {
3305
- // base series options
3306
- /**
3307
- * The SVG value used for the `stroke-linecap` and `stroke-linejoin`
3308
- * of a line graph. Round means that lines are rounded in the ends and
3309
- * bends.
3310
- *
3311
- * @type {Highcharts.SeriesLinecapValue}
3312
- * @default round
3313
- * @since 3.0.7
3314
- * @apioption plotOptions.line.linecap
3315
- */
3316
- /**
3317
- * Pixel width of the graph line.
3318
- *
3319
- * @see In styled mode, the line stroke-width can be set with the
3320
- * `.highcharts-graph` class name.
3321
- *
3322
- * @sample {highcharts} highcharts/plotoptions/series-linewidth-general/
3323
- * On all series
3324
- * @sample {highcharts} highcharts/plotoptions/series-linewidth-specific/
3325
- * On one single series
3326
- *
3327
- * @product highcharts highstock
3328
- *
3329
- * @private
3330
- */
3331
- lineWidth: 2,
3332
- /**
3333
- * For some series, there is a limit that shuts down initial animation
3334
- * by default when the total number of points in the chart is too high.
3335
- * For example, for a column chart and its derivatives, animation does
3336
- * not run if there is more than 250 points totally. To disable this
3337
- * cap, set `animationLimit` to `Infinity`.
3338
- *
3339
- * @type {number}
3340
- * @apioption plotOptions.series.animationLimit
3341
- */
3342
- /**
3343
- * Allow this series' points to be selected by clicking on the graphic
3344
- * (columns, point markers, pie slices, map areas etc).
3345
- *
3346
- * The selected points can be handled by point select and unselect
3347
- * events, or collectively by the [getSelectedPoints
3348
- * ](/class-reference/Highcharts.Chart#getSelectedPoints) function.
3349
- *
3350
- * And alternative way of selecting points is through dragging.
3351
- *
3352
- * @sample {highcharts} highcharts/plotoptions/series-allowpointselect-line/
3353
- * Line
3354
- * @sample {highcharts} highcharts/plotoptions/series-allowpointselect-column/
3355
- * Column
3356
- * @sample {highcharts} highcharts/plotoptions/series-allowpointselect-pie/
3357
- * Pie
3358
- * @sample {highcharts} highcharts/chart/events-selection-points/
3359
- * Select a range of points through a drag selection
3360
- * @sample {highmaps} maps/plotoptions/series-allowpointselect/
3361
- * Map area
3362
- * @sample {highmaps} maps/plotoptions/mapbubble-allowpointselect/
3363
- * Map bubble
3364
- *
3365
- * @since 1.2.0
3366
- *
3367
- * @private
3368
- */
3369
- allowPointSelect: false,
3370
- /**
3371
- * When true, each point or column edge is rounded to its nearest pixel
3372
- * in order to render sharp on screen. In some cases, when there are a
3373
- * lot of densely packed columns, this leads to visible difference
3374
- * in column widths or distance between columns. In these cases,
3375
- * setting `crisp` to `false` may look better, even though each column
3376
- * is rendered blurry.
3377
- *
3378
- * @sample {highcharts} highcharts/plotoptions/column-crisp-false/
3379
- * Crisp is false
3380
- *
3381
- * @since 5.0.10
3382
- * @product highcharts highstock gantt
3383
- *
3384
- * @private
3385
- */
3386
- crisp: true,
3387
- /**
3388
- * If true, a checkbox is displayed next to the legend item to allow
3389
- * selecting the series. The state of the checkbox is determined by
3390
- * the `selected` option.
3391
- *
3392
- * @productdesc {highmaps}
3393
- * Note that if a `colorAxis` is defined, the color axis is represented
3394
- * in the legend, not the series.
3395
- *
3396
- * @sample {highcharts} highcharts/plotoptions/series-showcheckbox-true/
3397
- * Show select box
3398
- *
3399
- * @since 1.2.0
3400
- *
3401
- * @private
3402
- */
3403
- showCheckbox: false,
3404
- /**
3405
- * Enable or disable the initial animation when a series is displayed.
3406
- * The animation can also be set as a configuration object. Please
3407
- * note that this option only applies to the initial animation of the
3408
- * series itself. For other animations, see [chart.animation](
3409
- * #chart.animation) and the animation parameter under the API methods.
3410
- * The following properties are supported:
3411
- *
3412
- * - `defer`: The animation delay time in milliseconds.
3413
- *
3414
- * - `duration`: The duration of the animation in milliseconds.
3415
- *
3416
- * - `easing`: Can be a string reference to an easing function set on
3417
- * the `Math` object or a function. See the _Custom easing function_
3418
- * demo below.
3419
- *
3420
- * Due to poor performance, animation is disabled in old IE browsers
3421
- * for several chart types.
3422
- *
3423
- * @sample {highcharts} highcharts/plotoptions/series-animation-disabled/
3424
- * Animation disabled
3425
- * @sample {highcharts} highcharts/plotoptions/series-animation-slower/
3426
- * Slower animation
3427
- * @sample {highcharts} highcharts/plotoptions/series-animation-easing/
3428
- * Custom easing function
3429
- * @sample {highstock} stock/plotoptions/animation-slower/
3430
- * Slower animation
3431
- * @sample {highstock} stock/plotoptions/animation-easing/
3432
- * Custom easing function
3433
- * @sample {highmaps} maps/plotoptions/series-animation-true/
3434
- * Animation enabled on map series
3435
- * @sample {highmaps} maps/plotoptions/mapbubble-animation-false/
3436
- * Disabled on mapbubble series
3437
- *
3438
- * @type {boolean|Partial<Highcharts.AnimationOptionsObject>}
3439
- * @default {highcharts} true
3440
- * @default {highstock} true
3441
- * @default {highmaps} false
3442
- *
3443
- * @private
3444
- */
3445
- animation: {
3446
- /** @internal */
3447
- duration: 1000
3448
- },
3449
- /**
3450
- * @default 0
3451
- * @type {number}
3452
- * @since 8.2.0
3453
- * @apioption plotOptions.series.animation.defer
3454
- */
3455
- /**
3456
- * An additional class name to apply to the series' graphical elements.
3457
- * This option does not replace default class names of the graphical
3458
- * element.
3459
- *
3460
- * @type {string}
3461
- * @since 5.0.0
3462
- * @apioption plotOptions.series.className
3463
- */
3464
- /**
3465
- * Disable this option to allow series rendering in the whole plotting
3466
- * area.
3467
- *
3468
- * **Note:** Clipping should be always enabled when
3469
- * [chart.zoomType](#chart.zoomType) is set
3470
- *
3471
- * @sample {highcharts} highcharts/plotoptions/series-clip/
3472
- * Disabled clipping
3473
- *
3474
- * @default true
3475
- * @type {boolean}
3476
- * @since 3.0.0
3477
- * @apioption plotOptions.series.clip
3478
- */
3479
- /**
3480
- * The main color of the series. In line type series it applies to the
3481
- * line and the point markers unless otherwise specified. In bar type
3482
- * series it applies to the bars unless a color is specified per point.
3483
- * The default value is pulled from the `options.colors` array.
3484
- *
3485
- * In styled mode, the color can be defined by the
3486
- * [colorIndex](#plotOptions.series.colorIndex) option. Also, the series
3487
- * color can be set with the `.highcharts-series`,
3488
- * `.highcharts-color-{n}`, `.highcharts-{type}-series` or
3489
- * `.highcharts-series-{n}` class, or individual classes given by the
3490
- * `className` option.
3491
- *
3492
- * @productdesc {highmaps}
3493
- * In maps, the series color is rarely used, as most choropleth maps use
3494
- * the color to denote the value of each point. The series color can
3495
- * however be used in a map with multiple series holding categorized
3496
- * data.
3497
- *
3498
- * @sample {highcharts} highcharts/plotoptions/series-color-general/
3499
- * General plot option
3500
- * @sample {highcharts} highcharts/plotoptions/series-color-specific/
3501
- * One specific series
3502
- * @sample {highcharts} highcharts/plotoptions/series-color-area/
3503
- * Area color
3504
- * @sample {highcharts} highcharts/series/infographic/
3505
- * Pattern fill
3506
- * @sample {highmaps} maps/demo/category-map/
3507
- * Category map by multiple series
3508
- *
3509
- * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
3510
- * @apioption plotOptions.series.color
3511
- */
3512
- /**
3513
- * Styled mode only. A specific color index to use for the series, so
3514
- * its graphic representations are given the class name
3515
- * `highcharts-color-{n}`.
3516
- *
3517
- * @type {number}
3518
- * @since 5.0.0
3519
- * @apioption plotOptions.series.colorIndex
3520
- */
3521
- /**
3522
- * Whether to connect a graph line across null points, or render a gap
3523
- * between the two points on either side of the null.
3524
- *
3525
- * @sample {highcharts} highcharts/plotoptions/series-connectnulls-false/
3526
- * False by default
3527
- * @sample {highcharts} highcharts/plotoptions/series-connectnulls-true/
3528
- * True
3529
- *
3530
- * @type {boolean}
3531
- * @default false
3532
- * @product highcharts highstock
3533
- * @apioption plotOptions.series.connectNulls
3534
- */
3535
- /**
3536
- * You can set the cursor to "pointer" if you have click events attached
3537
- * to the series, to signal to the user that the points and lines can
3538
- * be clicked.
3539
- *
3540
- * In styled mode, the series cursor can be set with the same classes
3541
- * as listed under [series.color](#plotOptions.series.color).
3542
- *
3543
- * @sample {highcharts} highcharts/plotoptions/series-cursor-line/
3544
- * On line graph
3545
- * @sample {highcharts} highcharts/plotoptions/series-cursor-column/
3546
- * On columns
3547
- * @sample {highcharts} highcharts/plotoptions/series-cursor-scatter/
3548
- * On scatter markers
3549
- * @sample {highstock} stock/plotoptions/cursor/
3550
- * Pointer on a line graph
3551
- * @sample {highmaps} maps/plotoptions/series-allowpointselect/
3552
- * Map area
3553
- * @sample {highmaps} maps/plotoptions/mapbubble-allowpointselect/
3554
- * Map bubble
3555
- *
3556
- * @type {string|Highcharts.CursorValue}
3557
- * @apioption plotOptions.series.cursor
3558
- */
3559
- /**
3560
- * A reserved subspace to store options and values for customized
3561
- * functionality. Here you can add additional data for your own event
3562
- * callbacks and formatter callbacks.
3563
- *
3564
- * @sample {highcharts} highcharts/point/custom/
3565
- * Point and series with custom data
3566
- *
3567
- * @type {Highcharts.Dictionary<*>}
3568
- * @apioption plotOptions.series.custom
3569
- */
3570
- /**
3571
- * Name of the dash style to use for the graph, or for some series types
3572
- * the outline of each shape.
3573
- *
3574
- * In styled mode, the
3575
- * [stroke dash-array](https://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/css/series-dashstyle/)
3576
- * can be set with the same classes as listed under
3577
- * [series.color](#plotOptions.series.color).
3578
- *
3579
- * @sample {highcharts} highcharts/plotoptions/series-dashstyle-all/
3580
- * Possible values demonstrated
3581
- * @sample {highcharts} highcharts/plotoptions/series-dashstyle/
3582
- * Chart suitable for printing in black and white
3583
- * @sample {highstock} highcharts/plotoptions/series-dashstyle-all/
3584
- * Possible values demonstrated
3585
- * @sample {highmaps} highcharts/plotoptions/series-dashstyle-all/
3586
- * Possible values demonstrated
3587
- * @sample {highmaps} maps/plotoptions/series-dashstyle/
3588
- * Dotted borders on a map
3589
- *
3590
- * @type {Highcharts.DashStyleValue}
3591
- * @default Solid
3592
- * @since 2.1
3593
- * @apioption plotOptions.series.dashStyle
3594
- */
3595
- /**
3596
- * A description of the series to add to the screen reader information
3597
- * about the series.
3598
- *
3599
- * @type {string}
3600
- * @since 5.0.0
3601
- * @requires modules/accessibility
3602
- * @apioption plotOptions.series.description
3603
- */
3604
- /**
3605
- * Options for the series data sorting.
3606
- *
3607
- * @type {Highcharts.DataSortingOptionsObject}
3608
- * @since 8.0.0
3609
- * @product highcharts highstock
3610
- * @apioption plotOptions.series.dataSorting
3611
- */
3612
- /**
3613
- * Enable or disable data sorting for the series. Use [xAxis.reversed](
3614
- * #xAxis.reversed) to change the sorting order.
3615
- *
3616
- * @sample {highcharts} highcharts/datasorting/animation/
3617
- * Data sorting in scatter-3d
3618
- * @sample {highcharts} highcharts/datasorting/labels-animation/
3619
- * Axis labels animation
3620
- * @sample {highcharts} highcharts/datasorting/dependent-sorting/
3621
- * Dependent series sorting
3622
- * @sample {highcharts} highcharts/datasorting/independent-sorting/
3623
- * Independent series sorting
3624
- *
3625
- * @type {boolean}
3626
- * @since 8.0.0
3627
- * @apioption plotOptions.series.dataSorting.enabled
3628
- */
3629
- /**
3630
- * Whether to allow matching points by name in an update. If this option
3631
- * is disabled, points will be matched by order.
3632
- *
3633
- * @sample {highcharts} highcharts/datasorting/match-by-name/
3634
- * Enabled match by name
3635
- *
3636
- * @type {boolean}
3637
- * @since 8.0.0
3638
- * @apioption plotOptions.series.dataSorting.matchByName
3639
- */
3640
- /**
3641
- * Determines what data value should be used to sort by.
3642
- *
3643
- * @sample {highcharts} highcharts/datasorting/sort-key/
3644
- * Sort key as `z` value
3645
- *
3646
- * @type {string}
3647
- * @since 8.0.0
3648
- * @default y
3649
- * @apioption plotOptions.series.dataSorting.sortKey
3650
- */
3651
- /**
3652
- * Enable or disable the mouse tracking for a specific series. This
3653
- * includes point tooltips and click events on graphs and points. For
3654
- * large datasets it improves performance.
3655
- *
3656
- * @sample {highcharts} highcharts/plotoptions/series-enablemousetracking-false/
3657
- * No mouse tracking
3658
- * @sample {highmaps} maps/plotoptions/series-enablemousetracking-false/
3659
- * No mouse tracking
3660
- *
3661
- * @type {boolean}
3662
- * @default true
3663
- * @apioption plotOptions.series.enableMouseTracking
3664
- */
3665
- /**
3666
- * Whether to use the Y extremes of the total chart width or only the
3667
- * zoomed area when zooming in on parts of the X axis. By default, the
3668
- * Y axis adjusts to the min and max of the visible data. Cartesian
3669
- * series only.
3670
- *
3671
- * @type {boolean}
3672
- * @default false
3673
- * @since 4.1.6
3674
- * @product highcharts highstock gantt
3675
- * @apioption plotOptions.series.getExtremesFromAll
3676
- */
3677
- /**
3678
- * An array specifying which option maps to which key in the data point
3679
- * array. This makes it convenient to work with unstructured data arrays
3680
- * from different sources.
3681
- *
3682
- * @see [series.data](#series.line.data)
3683
- *
3684
- * @sample {highcharts|highstock} highcharts/series/data-keys/
3685
- * An extended data array with keys
3686
- * @sample {highcharts|highstock} highcharts/series/data-nested-keys/
3687
- * Nested keys used to access object properties
3688
- *
3689
- * @type {Array<string>}
3690
- * @since 4.1.6
3691
- * @apioption plotOptions.series.keys
3692
- */
3693
- /**
3694
- * The line cap used for line ends and line joins on the graph.
3695
- *
3696
- * @type {Highcharts.SeriesLinecapValue}
3697
- * @default round
3698
- * @product highcharts highstock
3699
- * @apioption plotOptions.series.linecap
3700
- */
3701
- /**
3702
- * The [id](#series.id) of another series to link to. Additionally,
3703
- * the value can be ":previous" to link to the previous series. When
3704
- * two series are linked, only the first one appears in the legend.
3705
- * Toggling the visibility of this also toggles the linked series.
3706
- *
3707
- * If master series uses data sorting and linked series does not have
3708
- * its own sorting definition, the linked series will be sorted in the
3709
- * same order as the master one.
3710
- *
3711
- * @sample {highcharts|highstock} highcharts/demo/arearange-line/
3712
- * Linked series
3713
- *
3714
- * @type {string}
3715
- * @since 3.0
3716
- * @product highcharts highstock gantt
3717
- * @apioption plotOptions.series.linkedTo
3718
- */
3719
- /**
3720
- * Options for the corresponding navigator series if `showInNavigator`
3721
- * is `true` for this series. Available options are the same as any
3722
- * series, documented at [plotOptions](#plotOptions.series) and
3723
- * [series](#series).
3724
- *
3725
- * These options are merged with options in [navigator.series](
3726
- * #navigator.series), and will take precedence if the same option is
3727
- * defined both places.
3728
- *
3729
- * @see [navigator.series](#navigator.series)
3730
- *
3731
- * @type {Highcharts.PlotSeriesOptions}
3732
- * @since 5.0.0
3733
- * @product highstock
3734
- * @apioption plotOptions.series.navigatorOptions
3735
- */
3736
- /**
3737
- * The color for the parts of the graph or points that are below the
3738
- * [threshold](#plotOptions.series.threshold). Note that `zones` takes
3739
- * precedence over the negative color. Using `negativeColor` is
3740
- * equivalent to applying a zone with value of 0.
3741
- *
3742
- * @see In styled mode, a negative color is applied by setting this option
3743
- * to `true` combined with the `.highcharts-negative` class name.
3744
- *
3745
- * @sample {highcharts} highcharts/plotoptions/series-negative-color/
3746
- * Spline, area and column
3747
- * @sample {highcharts} highcharts/plotoptions/arearange-negativecolor/
3748
- * Arearange
3749
- * @sample {highcharts} highcharts/css/series-negative-color/
3750
- * Styled mode
3751
- * @sample {highstock} highcharts/plotoptions/series-negative-color/
3752
- * Spline, area and column
3753
- * @sample {highstock} highcharts/plotoptions/arearange-negativecolor/
3754
- * Arearange
3755
- * @sample {highmaps} highcharts/plotoptions/series-negative-color/
3756
- * Spline, area and column
3757
- * @sample {highmaps} highcharts/plotoptions/arearange-negativecolor/
3758
- * Arearange
3759
- *
3760
- * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
3761
- * @since 3.0
3762
- * @apioption plotOptions.series.negativeColor
3763
- */
3764
- /**
3765
- * Same as
3766
- * [accessibility.series.descriptionFormatter](#accessibility.series.descriptionFormatter),
3767
- * but for an individual series. Overrides the chart wide configuration.
3768
- *
3769
- * @type {Function}
3770
- * @since 5.0.12
3771
- * @apioption plotOptions.series.pointDescriptionFormatter
3772
- */
3773
- /**
3774
- * If no x values are given for the points in a series, `pointInterval`
3775
- * defines the interval of the x values. For example, if a series
3776
- * contains one value every decade starting from year 0, set
3777
- * `pointInterval` to `10`. In true `datetime` axes, the `pointInterval`
3778
- * is set in milliseconds.
3779
- *
3780
- * It can be also be combined with `pointIntervalUnit` to draw irregular
3781
- * time intervals.
3782
- *
3783
- * Please note that this options applies to the _series data_, not the
3784
- * interval of the axis ticks, which is independent.
3785
- *
3786
- * @sample {highcharts} highcharts/plotoptions/series-pointstart-datetime/
3787
- * Datetime X axis
3788
- * @sample {highstock} stock/plotoptions/pointinterval-pointstart/
3789
- * Using pointStart and pointInterval
3790
- *
3791
- * @type {number}
3792
- * @default 1
3793
- * @product highcharts highstock gantt
3794
- * @apioption plotOptions.series.pointInterval
3795
- */
3796
- /**
3797
- * On datetime series, this allows for setting the
3798
- * [pointInterval](#plotOptions.series.pointInterval) to irregular time
3799
- * units, `day`, `month` and `year`. A day is usually the same as 24
3800
- * hours, but `pointIntervalUnit` also takes the DST crossover into
3801
- * consideration when dealing with local time. Combine this option with
3802
- * `pointInterval` to draw weeks, quarters, 6 months, 10 years etc.
3803
- *
3804
- * Please note that this options applies to the _series data_, not the
3805
- * interval of the axis ticks, which is independent.
3806
- *
3807
- * @sample {highcharts} highcharts/plotoptions/series-pointintervalunit/
3808
- * One point a month
3809
- * @sample {highstock} highcharts/plotoptions/series-pointintervalunit/
3810
- * One point a month
3811
- *
3812
- * @type {string}
3813
- * @since 4.1.0
3814
- * @product highcharts highstock gantt
3815
- * @validvalue ["day", "month", "year"]
3816
- * @apioption plotOptions.series.pointIntervalUnit
3817
- */
3818
- /**
3819
- * Possible values: `"on"`, `"between"`, `number`.
3820
- *
3821
- * In a column chart, when pointPlacement is `"on"`, the point will not
3822
- * create any padding of the X axis. In a polar column chart this means
3823
- * that the first column points directly north. If the pointPlacement is
3824
- * `"between"`, the columns will be laid out between ticks. This is
3825
- * useful for example for visualising an amount between two points in
3826
- * time or in a certain sector of a polar chart.
3827
- *
3828
- * Since Highcharts 3.0.2, the point placement can also be numeric,
3829
- * where 0 is on the axis value, -0.5 is between this value and the
3830
- * previous, and 0.5 is between this value and the next. Unlike the
3831
- * textual options, numeric point placement options won't affect axis
3832
- * padding.
3833
- *
3834
- * Note that pointPlacement needs a [pointRange](
3835
- * #plotOptions.series.pointRange) to work. For column series this is
3836
- * computed, but for line-type series it needs to be set.
3837
- *
3838
- * For the `xrange` series type and gantt charts, if the Y axis is a
3839
- * category axis, the `pointPlacement` applies to the Y axis rather than
3840
- * the (typically datetime) X axis.
3841
- *
3842
- * Defaults to `undefined` in cartesian charts, `"between"` in polar
3843
- * charts.
3844
- *
3845
- * @see [xAxis.tickmarkPlacement](#xAxis.tickmarkPlacement)
3846
- *
3847
- * @sample {highcharts|highstock} highcharts/plotoptions/series-pointplacement-between/
3848
- * Between in a column chart
3849
- * @sample {highcharts|highstock} highcharts/plotoptions/series-pointplacement-numeric/
3850
- * Numeric placement for custom layout
3851
- * @sample {highcharts|highstock} maps/plotoptions/heatmap-pointplacement/
3852
- * Placement in heatmap
3853
- *
3854
- * @type {string|number}
3855
- * @since 2.3.0
3856
- * @product highcharts highstock gantt
3857
- * @apioption plotOptions.series.pointPlacement
3858
- */
3859
- /**
3860
- * If no x values are given for the points in a series, pointStart
3861
- * defines on what value to start. For example, if a series contains one
3862
- * yearly value starting from 1945, set pointStart to 1945.
3863
- *
3864
- * @sample {highcharts} highcharts/plotoptions/series-pointstart-linear/
3865
- * Linear
3866
- * @sample {highcharts} highcharts/plotoptions/series-pointstart-datetime/
3867
- * Datetime
3868
- * @sample {highstock} stock/plotoptions/pointinterval-pointstart/
3869
- * Using pointStart and pointInterval
3870
- *
3871
- * @type {number}
3872
- * @default 0
3873
- * @product highcharts highstock gantt
3874
- * @apioption plotOptions.series.pointStart
3875
- */
3876
- /**
3877
- * Whether to select the series initially. If `showCheckbox` is true,
3878
- * the checkbox next to the series name in the legend will be checked
3879
- * for a selected series.
3880
- *
3881
- * @sample {highcharts} highcharts/plotoptions/series-selected/
3882
- * One out of two series selected
3883
- *
3884
- * @type {boolean}
3885
- * @default false
3886
- * @since 1.2.0
3887
- * @apioption plotOptions.series.selected
3888
- */
3889
- /**
3890
- * Whether to apply a drop shadow to the graph line. Since 2.3 the
3891
- * shadow can be an object configuration containing `color`, `offsetX`,
3892
- * `offsetY`, `opacity` and `width`.
3893
- *
3894
- * @sample {highcharts} highcharts/plotoptions/series-shadow/
3895
- * Shadow enabled
3896
- *
3897
- * @type {boolean|Highcharts.ShadowOptionsObject}
3898
- * @default false
3899
- * @apioption plotOptions.series.shadow
3900
- */
3901
- /**
3902
- * Whether to display this particular series or series type in the
3903
- * legend. Standalone series are shown in legend by default, and linked
3904
- * series are not. Since v7.2.0 it is possible to show series that use
3905
- * colorAxis by setting this option to `true`.
3906
- *
3907
- * @sample {highcharts} highcharts/plotoptions/series-showinlegend/
3908
- * One series in the legend, one hidden
3909
- *
3910
- * @type {boolean}
3911
- * @apioption plotOptions.series.showInLegend
3912
- */
3913
- /**
3914
- * Whether or not to show the series in the navigator. Takes precedence
3915
- * over [navigator.baseSeries](#navigator.baseSeries) if defined.
3916
- *
3917
- * @type {boolean}
3918
- * @since 5.0.0
3919
- * @product highstock
3920
- * @apioption plotOptions.series.showInNavigator
3921
- */
3922
- /**
3923
- * If set to `true`, the accessibility module will skip past the points
3924
- * in this series for keyboard navigation.
3925
- *
3926
- * @type {boolean}
3927
- * @since 5.0.12
3928
- * @apioption plotOptions.series.skipKeyboardNavigation
3929
- */
3930
- /**
3931
- * Whether to stack the values of each series on top of each other.
3932
- * Possible values are `undefined` to disable, `"normal"` to stack by
3933
- * value or `"percent"`.
3934
- *
3935
- * When stacking is enabled, data must be sorted
3936
- * in ascending X order.
3937
- *
3938
- * Some stacking options are related to specific series types. In the
3939
- * streamgraph series type, the stacking option is set to `"stream"`.
3940
- * The second one is `"overlap"`, which only applies to waterfall
3941
- * series.
3942
- *
3943
- * @see [yAxis.reversedStacks](#yAxis.reversedStacks)
3944
- *
3945
- * @sample {highcharts} highcharts/plotoptions/series-stacking-line/
3946
- * Line
3947
- * @sample {highcharts} highcharts/plotoptions/series-stacking-column/
3948
- * Column
3949
- * @sample {highcharts} highcharts/plotoptions/series-stacking-bar/
3950
- * Bar
3951
- * @sample {highcharts} highcharts/plotoptions/series-stacking-area/
3952
- * Area
3953
- * @sample {highcharts} highcharts/plotoptions/series-stacking-percent-line/
3954
- * Line
3955
- * @sample {highcharts} highcharts/plotoptions/series-stacking-percent-column/
3956
- * Column
3957
- * @sample {highcharts} highcharts/plotoptions/series-stacking-percent-bar/
3958
- * Bar
3959
- * @sample {highcharts} highcharts/plotoptions/series-stacking-percent-area/
3960
- * Area
3961
- * @sample {highcharts} highcharts/plotoptions/series-waterfall-with-normal-stacking
3962
- * Waterfall with normal stacking
3963
- * @sample {highcharts} highcharts/plotoptions/series-waterfall-with-overlap-stacking
3964
- * Waterfall with overlap stacking
3965
- * @sample {highstock} stock/plotoptions/stacking/
3966
- * Area
3967
- *
3968
- * @type {string}
3969
- * @product highcharts highstock
3970
- * @validvalue ["normal", "overlap", "percent", "stream"]
3971
- * @apioption plotOptions.series.stacking
3972
- */
3973
- /**
3974
- * Whether to apply steps to the line. Possible values are `left`,
3975
- * `center` and `right`.
3976
- *
3977
- * @sample {highcharts} highcharts/plotoptions/line-step/
3978
- * Different step line options
3979
- * @sample {highcharts} highcharts/plotoptions/area-step/
3980
- * Stepped, stacked area
3981
- * @sample {highstock} stock/plotoptions/line-step/
3982
- * Step line
3983
- *
3984
- * @type {string}
3985
- * @since 1.2.5
3986
- * @product highcharts highstock
3987
- * @validvalue ["left", "center", "right"]
3988
- * @apioption plotOptions.series.step
3989
- */
3990
- /**
3991
- * The threshold, also called zero level or base level. For line type
3992
- * series this is only used in conjunction with
3993
- * [negativeColor](#plotOptions.series.negativeColor).
3994
- *
3995
- * @see [softThreshold](#plotOptions.series.softThreshold).
3996
- *
3997
- * @type {number|null}
3998
- * @default 0
3999
- * @since 3.0
4000
- * @product highcharts highstock
4001
- * @apioption plotOptions.series.threshold
4002
- */
4003
- /**
4004
- * Set the initial visibility of the series.
4005
- *
4006
- * @sample {highcharts} highcharts/plotoptions/series-visible/
4007
- * Two series, one hidden and one visible
4008
- * @sample {highstock} stock/plotoptions/series-visibility/
4009
- * Hidden series
4010
- *
4011
- * @type {boolean}
4012
- * @default true
4013
- * @apioption plotOptions.series.visible
4014
- */
4015
- /**
4016
- * Defines the Axis on which the zones are applied.
4017
- *
4018
- * @see [zones](#plotOptions.series.zones)
4019
- *
4020
- * @sample {highcharts} highcharts/series/color-zones-zoneaxis-x/
4021
- * Zones on the X-Axis
4022
- * @sample {highstock} highcharts/series/color-zones-zoneaxis-x/
4023
- * Zones on the X-Axis
4024
- *
4025
- * @type {string}
4026
- * @default y
4027
- * @since 4.1.0
4028
- * @product highcharts highstock
4029
- * @apioption plotOptions.series.zoneAxis
4030
- */
4031
- /**
4032
- * General event handlers for the series items. These event hooks can
4033
- * also be attached to the series at run time using the
4034
- * `Highcharts.addEvent` function.
4035
- *
4036
- * @declare Highcharts.SeriesEventsOptionsObject
4037
- *
4038
- * @private
4039
- */
4040
- events: {},
4041
- /**
4042
- * Fires after the series has finished its initial animation, or in case
4043
- * animation is disabled, immediately as the series is displayed.
4044
- *
4045
- * @sample {highcharts} highcharts/plotoptions/series-events-afteranimate/
4046
- * Show label after animate
4047
- * @sample {highstock} highcharts/plotoptions/series-events-afteranimate/
4048
- * Show label after animate
4049
- *
4050
- * @type {Highcharts.SeriesAfterAnimateCallbackFunction}
4051
- * @since 4.0
4052
- * @product highcharts highstock gantt
4053
- * @context Highcharts.Series
4054
- * @apioption plotOptions.series.events.afterAnimate
4055
- */
4056
- /**
4057
- * Fires when the checkbox next to the series' name in the legend is
4058
- * clicked. One parameter, `event`, is passed to the function. The state
4059
- * of the checkbox is found by `event.checked`. The checked item is
4060
- * found by `event.item`. Return `false` to prevent the default action
4061
- * which is to toggle the select state of the series.
4062
- *
4063
- * @sample {highcharts} highcharts/plotoptions/series-events-checkboxclick/
4064
- * Alert checkbox status
4065
- *
4066
- * @type {Highcharts.SeriesCheckboxClickCallbackFunction}
4067
- * @since 1.2.0
4068
- * @context Highcharts.Series
4069
- * @apioption plotOptions.series.events.checkboxClick
4070
- */
4071
- /**
4072
- * Fires when the series is clicked. One parameter, `event`, is passed
4073
- * to the function, containing common event information. Additionally,
4074
- * `event.point` holds a pointer to the nearest point on the graph.
4075
- *
4076
- * @sample {highcharts} highcharts/plotoptions/series-events-click/
4077
- * Alert click info
4078
- * @sample {highstock} stock/plotoptions/series-events-click/
4079
- * Alert click info
4080
- * @sample {highmaps} maps/plotoptions/series-events-click/
4081
- * Display click info in subtitle
4082
- *
4083
- * @type {Highcharts.SeriesClickCallbackFunction}
4084
- * @context Highcharts.Series
4085
- * @apioption plotOptions.series.events.click
4086
- */
4087
- /**
4088
- * Fires when the series is hidden after chart generation time, either
4089
- * by clicking the legend item or by calling `.hide()`.
4090
- *
4091
- * @sample {highcharts} highcharts/plotoptions/series-events-hide/
4092
- * Alert when the series is hidden by clicking the legend item
4093
- *
4094
- * @type {Highcharts.SeriesHideCallbackFunction}
4095
- * @since 1.2.0
4096
- * @context Highcharts.Series
4097
- * @apioption plotOptions.series.events.hide
4098
- */
4099
- /**
4100
- * Fires when the legend item belonging to the series is clicked. One
4101
- * parameter, `event`, is passed to the function. The default action
4102
- * is to toggle the visibility of the series. This can be prevented
4103
- * by returning `false` or calling `event.preventDefault()`.
4104
- *
4105
- * @sample {highcharts} highcharts/plotoptions/series-events-legenditemclick/
4106
- * Confirm hiding and showing
4107
- *
4108
- * @type {Highcharts.SeriesLegendItemClickCallbackFunction}
4109
- * @context Highcharts.Series
4110
- * @apioption plotOptions.series.events.legendItemClick
4111
- */
4112
- /**
4113
- * Fires when the mouse leaves the graph. One parameter, `event`, is
4114
- * passed to the function, containing common event information. If the
4115
- * [stickyTracking](#plotOptions.series) option is true, `mouseOut`
4116
- * doesn't happen before the mouse enters another graph or leaves the
4117
- * plot area.
4118
- *
4119
- * @sample {highcharts} highcharts/plotoptions/series-events-mouseover-sticky/
4120
- * With sticky tracking by default
4121
- * @sample {highcharts} highcharts/plotoptions/series-events-mouseover-no-sticky/
4122
- * Without sticky tracking
4123
- *
4124
- * @type {Highcharts.SeriesMouseOutCallbackFunction}
4125
- * @context Highcharts.Series
4126
- * @apioption plotOptions.series.events.mouseOut
4127
- */
4128
- /**
4129
- * Fires when the mouse enters the graph. One parameter, `event`, is
4130
- * passed to the function, containing common event information.
4131
- *
4132
- * @sample {highcharts} highcharts/plotoptions/series-events-mouseover-sticky/
4133
- * With sticky tracking by default
4134
- * @sample {highcharts} highcharts/plotoptions/series-events-mouseover-no-sticky/
4135
- * Without sticky tracking
4136
- *
4137
- * @type {Highcharts.SeriesMouseOverCallbackFunction}
4138
- * @context Highcharts.Series
4139
- * @apioption plotOptions.series.events.mouseOver
4140
- */
4141
- /**
4142
- * Fires when the series is shown after chart generation time, either
4143
- * by clicking the legend item or by calling `.show()`.
4144
- *
4145
- * @sample {highcharts} highcharts/plotoptions/series-events-show/
4146
- * Alert when the series is shown by clicking the legend item.
4147
- *
4148
- * @type {Highcharts.SeriesShowCallbackFunction}
4149
- * @since 1.2.0
4150
- * @context Highcharts.Series
4151
- * @apioption plotOptions.series.events.show
4152
- */
4153
- /**
4154
- * Options for the point markers of line-like series. Properties like
4155
- * `fillColor`, `lineColor` and `lineWidth` define the visual appearance
4156
- * of the markers. Other series types, like column series, don't have
4157
- * markers, but have visual options on the series level instead.
4158
- *
4159
- * In styled mode, the markers can be styled with the
4160
- * `.highcharts-point`, `.highcharts-point-hover` and
4161
- * `.highcharts-point-select` class names.
4162
- *
4163
- * @declare Highcharts.PointMarkerOptionsObject
4164
- *
4165
- * @private
4166
- */
4167
- marker: {
4168
- /**
4169
- * Enable or disable the point marker. If `undefined`, the markers
4170
- * are hidden when the data is dense, and shown for more widespread
4171
- * data points.
4172
- *
4173
- * @sample {highcharts} highcharts/plotoptions/series-marker-enabled/
4174
- * Disabled markers
4175
- * @sample {highcharts} highcharts/plotoptions/series-marker-enabled-false/
4176
- * Disabled in normal state but enabled on hover
4177
- * @sample {highstock} stock/plotoptions/series-marker/
4178
- * Enabled markers
4179
- *
4180
- * @type {boolean}
4181
- * @default {highcharts} undefined
4182
- * @default {highstock} false
4183
- * @apioption plotOptions.series.marker.enabled
4184
- */
4185
- /**
4186
- * The threshold for how dense the point markers should be before
4187
- * they are hidden, given that `enabled` is not defined. The number
4188
- * indicates the horizontal distance between the two closest points
4189
- * in the series, as multiples of the `marker.radius`. In other
4190
- * words, the default value of 2 means points are hidden if
4191
- * overlapping horizontally.
4192
- *
4193
- * @sample highcharts/plotoptions/series-marker-enabledthreshold
4194
- * A higher threshold
4195
- *
4196
- * @since 6.0.5
4197
- */
4198
- enabledThreshold: 2,
4199
- /**
4200
- * The fill color of the point marker. When `undefined`, the series'
4201
- * or point's color is used.
4202
- *
4203
- * @sample {highcharts} highcharts/plotoptions/series-marker-fillcolor/
4204
- * White fill
4205
- *
4206
- * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
4207
- * @apioption plotOptions.series.marker.fillColor
4208
- */
4209
- /**
4210
- * Image markers only. Set the image width explicitly. When using
4211
- * this option, a `width` must also be set.
4212
- *
4213
- * @sample {highcharts} highcharts/plotoptions/series-marker-width-height/
4214
- * Fixed width and height
4215
- * @sample {highstock} highcharts/plotoptions/series-marker-width-height/
4216
- * Fixed width and height
4217
- *
4218
- * @type {number}
4219
- * @since 4.0.4
4220
- * @apioption plotOptions.series.marker.height
4221
- */
4222
- /**
4223
- * The color of the point marker's outline. When `undefined`, the
4224
- * series' or point's color is used.
4225
- *
4226
- * @sample {highcharts} highcharts/plotoptions/series-marker-fillcolor/
4227
- * Inherit from series color (undefined)
4228
- *
4229
- * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
4230
- */
4231
- lineColor: palette.backgroundColor,
4232
- /**
4233
- * The width of the point marker's outline.
4234
- *
4235
- * @sample {highcharts} highcharts/plotoptions/series-marker-fillcolor/
4236
- * 2px blue marker
4237
- */
4238
- lineWidth: 0,
4239
- /**
4240
- * The radius of the point marker.
4241
- *
4242
- * @sample {highcharts} highcharts/plotoptions/series-marker-radius/
4243
- * Bigger markers
4244
- *
4245
- * @default {highstock} 2
4246
- * @default {highcharts} 4
4247
- *
4248
- */
4249
- radius: 4,
4250
- /**
4251
- * A predefined shape or symbol for the marker. When undefined, the
4252
- * symbol is pulled from options.symbols. Other possible values are
4253
- * `'circle'`, `'square'`,`'diamond'`, `'triangle'` and
4254
- * `'triangle-down'`.
4255
- *
4256
- * Additionally, the URL to a graphic can be given on this form:
4257
- * `'url(graphic.png)'`. Note that for the image to be applied to
4258
- * exported charts, its URL needs to be accessible by the export
4259
- * server.
4260
- *
4261
- * Custom callbacks for symbol path generation can also be added to
4262
- * `Highcharts.SVGRenderer.prototype.symbols`. The callback is then
4263
- * used by its method name, as shown in the demo.
4264
- *
4265
- * @sample {highcharts} highcharts/plotoptions/series-marker-symbol/
4266
- * Predefined, graphic and custom markers
4267
- * @sample {highstock} highcharts/plotoptions/series-marker-symbol/
4268
- * Predefined, graphic and custom markers
4269
- *
4270
- * @type {string}
4271
- * @apioption plotOptions.series.marker.symbol
4272
- */
4273
- /**
4274
- * Image markers only. Set the image width explicitly. When using
4275
- * this option, a `height` must also be set.
4276
- *
4277
- * @sample {highcharts} highcharts/plotoptions/series-marker-width-height/
4278
- * Fixed width and height
4279
- * @sample {highstock} highcharts/plotoptions/series-marker-width-height/
4280
- * Fixed width and height
4281
- *
4282
- * @type {number}
4283
- * @since 4.0.4
4284
- * @apioption plotOptions.series.marker.width
4285
- */
4286
- /**
4287
- * States for a single point marker.
4288
- *
4289
- * @declare Highcharts.PointStatesOptionsObject
4290
- */
4291
- states: {
4292
- /**
4293
- * The normal state of a single point marker. Currently only
4294
- * used for setting animation when returning to normal state
4295
- * from hover.
4296
- *
4297
- * @declare Highcharts.PointStatesNormalOptionsObject
4298
- */
4299
- normal: {
4300
- /**
4301
- * Animation when returning to normal state after hovering.
4302
- *
4303
- * @type {boolean|Partial<Highcharts.AnimationOptionsObject>}
4304
- */
4305
- animation: true
4306
- },
4307
- /**
4308
- * The hover state for a single point marker.
4309
- *
4310
- * @declare Highcharts.PointStatesHoverOptionsObject
4311
- */
4312
- hover: {
4313
- /**
4314
- * Animation when hovering over the marker.
4315
- *
4316
- * @type {boolean|Partial<Highcharts.AnimationOptionsObject>}
4317
- */
4318
- animation: {
4319
- /** @internal */
4320
- duration: 50
4321
- },
4322
- /**
4323
- * Enable or disable the point marker.
4324
- *
4325
- * @sample {highcharts} highcharts/plotoptions/series-marker-states-hover-enabled/
4326
- * Disabled hover state
4327
- */
4328
- enabled: true,
4329
- /**
4330
- * The fill color of the marker in hover state. When
4331
- * `undefined`, the series' or point's fillColor for normal
4332
- * state is used.
4333
- *
4334
- * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
4335
- * @apioption plotOptions.series.marker.states.hover.fillColor
4336
- */
4337
- /**
4338
- * The color of the point marker's outline. When
4339
- * `undefined`, the series' or point's lineColor for normal
4340
- * state is used.
4341
- *
4342
- * @sample {highcharts} highcharts/plotoptions/series-marker-states-hover-linecolor/
4343
- * White fill color, black line color
4344
- *
4345
- * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
4346
- * @apioption plotOptions.series.marker.states.hover.lineColor
4347
- */
4348
- /**
4349
- * The width of the point marker's outline. When
4350
- * `undefined`, the series' or point's lineWidth for normal
4351
- * state is used.
4352
- *
4353
- * @sample {highcharts} highcharts/plotoptions/series-marker-states-hover-linewidth/
4354
- * 3px line width
4355
- *
4356
- * @type {number}
4357
- * @apioption plotOptions.series.marker.states.hover.lineWidth
4358
- */
4359
- /**
4360
- * The radius of the point marker. In hover state, it
4361
- * defaults to the normal state's radius + 2 as per the
4362
- * [radiusPlus](#plotOptions.series.marker.states.hover.radiusPlus)
4363
- * option.
4364
- *
4365
- * @sample {highcharts} highcharts/plotoptions/series-marker-states-hover-radius/
4366
- * 10px radius
4367
- *
4368
- * @type {number}
4369
- * @apioption plotOptions.series.marker.states.hover.radius
4370
- */
4371
- /**
4372
- * The number of pixels to increase the radius of the
4373
- * hovered point.
4374
- *
4375
- * @sample {highcharts} highcharts/plotoptions/series-states-hover-linewidthplus/
4376
- * 5 pixels greater radius on hover
4377
- * @sample {highstock} highcharts/plotoptions/series-states-hover-linewidthplus/
4378
- * 5 pixels greater radius on hover
4379
- *
4380
- * @since 4.0.3
4381
- */
4382
- radiusPlus: 2,
4383
- /**
4384
- * The additional line width for a hovered point.
4385
- *
4386
- * @sample {highcharts} highcharts/plotoptions/series-states-hover-linewidthplus/
4387
- * 2 pixels wider on hover
4388
- * @sample {highstock} highcharts/plotoptions/series-states-hover-linewidthplus/
4389
- * 2 pixels wider on hover
4390
- *
4391
- * @since 4.0.3
4392
- */
4393
- lineWidthPlus: 1
4394
- },
4395
- /**
4396
- * The appearance of the point marker when selected. In order to
4397
- * allow a point to be selected, set the
4398
- * `series.allowPointSelect` option to true.
4399
- *
4400
- * @declare Highcharts.PointStatesSelectOptionsObject
4401
- */
4402
- select: {
4403
- /**
4404
- * Enable or disable visible feedback for selection.
4405
- *
4406
- * @sample {highcharts} highcharts/plotoptions/series-marker-states-select-enabled/
4407
- * Disabled select state
4408
- *
4409
- * @type {boolean}
4410
- * @default true
4411
- * @apioption plotOptions.series.marker.states.select.enabled
4412
- */
4413
- /**
4414
- * The radius of the point marker. In hover state, it
4415
- * defaults to the normal state's radius + 2.
4416
- *
4417
- * @sample {highcharts} highcharts/plotoptions/series-marker-states-select-radius/
4418
- * 10px radius for selected points
4419
- *
4420
- * @type {number}
4421
- * @apioption plotOptions.series.marker.states.select.radius
4422
- */
4423
- /**
4424
- * The fill color of the point marker.
4425
- *
4426
- * @sample {highcharts} highcharts/plotoptions/series-marker-states-select-fillcolor/
4427
- * Solid red discs for selected points
4428
- *
4429
- * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
4430
- */
4431
- fillColor: palette.neutralColor20,
4432
- /**
4433
- * The color of the point marker's outline. When
4434
- * `undefined`, the series' or point's color is used.
4435
- *
4436
- * @sample {highcharts} highcharts/plotoptions/series-marker-states-select-linecolor/
4437
- * Red line color for selected points
4438
- *
4439
- * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
4440
- */
4441
- lineColor: palette.neutralColor100,
4442
- /**
4443
- * The width of the point marker's outline.
4444
- *
4445
- * @sample {highcharts} highcharts/plotoptions/series-marker-states-select-linewidth/
4446
- * 3px line width for selected points
4447
- */
4448
- lineWidth: 2
4449
- }
4450
- }
4451
- },
4452
- /**
4453
- * Properties for each single point.
4454
- *
4455
- * @declare Highcharts.PlotSeriesPointOptions
4456
- *
4457
- * @private
4458
- */
4459
- point: {
4460
- /**
4461
- * Fires when a point is clicked. One parameter, `event`, is passed
4462
- * to the function, containing common event information.
4463
- *
4464
- * If the `series.allowPointSelect` option is true, the default
4465
- * action for the point's click event is to toggle the point's
4466
- * select state. Returning `false` cancels this action.
4467
- *
4468
- * @sample {highcharts} highcharts/plotoptions/series-point-events-click/
4469
- * Click marker to alert values
4470
- * @sample {highcharts} highcharts/plotoptions/series-point-events-click-column/
4471
- * Click column
4472
- * @sample {highcharts} highcharts/plotoptions/series-point-events-click-url/
4473
- * Go to URL
4474
- * @sample {highmaps} maps/plotoptions/series-point-events-click/
4475
- * Click marker to display values
4476
- * @sample {highmaps} maps/plotoptions/series-point-events-click-url/
4477
- * Go to URL
4478
- *
4479
- * @type {Highcharts.PointClickCallbackFunction}
4480
- * @context Highcharts.Point
4481
- * @apioption plotOptions.series.point.events.click
4482
- */
4483
- /**
4484
- * Fires when the mouse leaves the area close to the point. One
4485
- * parameter, `event`, is passed to the function, containing common
4486
- * event information.
4487
- *
4488
- * @sample {highcharts} highcharts/plotoptions/series-point-events-mouseover/
4489
- * Show values in the chart's corner on mouse over
4490
- *
4491
- * @type {Highcharts.PointMouseOutCallbackFunction}
4492
- * @context Highcharts.Point
4493
- * @apioption plotOptions.series.point.events.mouseOut
4494
- */
4495
- /**
4496
- * Fires when the mouse enters the area close to the point. One
4497
- * parameter, `event`, is passed to the function, containing common
4498
- * event information.
4499
- *
4500
- * @sample {highcharts} highcharts/plotoptions/series-point-events-mouseover/
4501
- * Show values in the chart's corner on mouse over
4502
- *
4503
- * @type {Highcharts.PointMouseOverCallbackFunction}
4504
- * @context Highcharts.Point
4505
- * @apioption plotOptions.series.point.events.mouseOver
4506
- */
4507
- /**
4508
- * Fires when the point is removed using the `.remove()` method. One
4509
- * parameter, `event`, is passed to the function. Returning `false`
4510
- * cancels the operation.
4511
- *
4512
- * @sample {highcharts} highcharts/plotoptions/series-point-events-remove/
4513
- * Remove point and confirm
4514
- *
4515
- * @type {Highcharts.PointRemoveCallbackFunction}
4516
- * @since 1.2.0
4517
- * @context Highcharts.Point
4518
- * @apioption plotOptions.series.point.events.remove
4519
- */
4520
- /**
4521
- * Fires when the point is selected either programmatically or
4522
- * following a click on the point. One parameter, `event`, is passed
4523
- * to the function. Returning `false` cancels the operation.
4524
- *
4525
- * @sample {highcharts} highcharts/plotoptions/series-point-events-select/
4526
- * Report the last selected point
4527
- * @sample {highmaps} maps/plotoptions/series-allowpointselect/
4528
- * Report select and unselect
4529
- *
4530
- * @type {Highcharts.PointSelectCallbackFunction}
4531
- * @since 1.2.0
4532
- * @context Highcharts.Point
4533
- * @apioption plotOptions.series.point.events.select
4534
- */
4535
- /**
4536
- * Fires when the point is unselected either programmatically or
4537
- * following a click on the point. One parameter, `event`, is passed
4538
- * to the function.
4539
- * Returning `false` cancels the operation.
4540
- *
4541
- * @sample {highcharts} highcharts/plotoptions/series-point-events-unselect/
4542
- * Report the last unselected point
4543
- * @sample {highmaps} maps/plotoptions/series-allowpointselect/
4544
- * Report select and unselect
4545
- *
4546
- * @type {Highcharts.PointUnselectCallbackFunction}
4547
- * @since 1.2.0
4548
- * @context Highcharts.Point
4549
- * @apioption plotOptions.series.point.events.unselect
4550
- */
4551
- /**
4552
- * Fires when the point is updated programmatically through the
4553
- * `.update()` method. One parameter, `event`, is passed to the
4554
- * function. The new point options can be accessed through
4555
- * `event.options`. Returning `false` cancels the operation.
4556
- *
4557
- * @sample {highcharts} highcharts/plotoptions/series-point-events-update/
4558
- * Confirm point updating
4559
- *
4560
- * @type {Highcharts.PointUpdateCallbackFunction}
4561
- * @since 1.2.0
4562
- * @context Highcharts.Point
4563
- * @apioption plotOptions.series.point.events.update
4564
- */
4565
- /**
4566
- * Events for each single point.
4567
- *
4568
- * @declare Highcharts.PointEventsOptionsObject
4569
- */
4570
- events: {}
4571
- },
4572
- /**
4573
- * Options for the series data labels, appearing next to each data
4574
- * point.
4575
- *
4576
- * Since v6.2.0, multiple data labels can be applied to each single
4577
- * point by defining them as an array of configs.
4578
- *
4579
- * In styled mode, the data labels can be styled with the
4580
- * `.highcharts-data-label-box` and `.highcharts-data-label` class names
4581
- * ([see example](https://www.highcharts.com/samples/highcharts/css/series-datalabels)).
4582
- *
4583
- * @sample {highcharts} highcharts/plotoptions/series-datalabels-enabled
4584
- * Data labels enabled
4585
- * @sample {highcharts} highcharts/plotoptions/series-datalabels-multiple
4586
- * Multiple data labels on a bar series
4587
- * @sample {highcharts} highcharts/css/series-datalabels
4588
- * Style mode example
4589
- *
4590
- * @type {*|Array<*>}
4591
- * @product highcharts highstock highmaps gantt
4592
- *
4593
- * @private
4594
- */
4595
- dataLabels: {
4596
- /**
4597
- * Enable or disable the initial animation when a series is
4598
- * displayed for the `dataLabels`. The animation can also be set as
4599
- * a configuration object. Please note that this option only
4600
- * applies to the initial animation.
4601
- * For other animations, see [chart.animation](#chart.animation)
4602
- * and the animation parameter under the API methods.
4603
- * The following properties are supported:
4604
- *
4605
- * - `defer`: The animation delay time in milliseconds.
4606
- *
4607
- * @sample {highcharts} highcharts/plotoptions/animation-defer/
4608
- * Animation defer settings
4609
- *
4610
- * @type {boolean|Partial<Highcharts.AnimationOptionsObject>}
4611
- * @since 8.2.0
4612
- * @apioption plotOptions.series.dataLabels.animation
4613
- */
4614
- animation: {},
4615
- /**
4616
- * The animation delay time in milliseconds.
4617
- * Set to `0` renders dataLabel immediately.
4618
- * As `undefined` inherits defer time from the [series.animation.defer](#plotOptions.series.animation.defer).
4619
- *
4620
- * @type {number}
4621
- * @since 8.2.0
4622
- * @apioption plotOptions.series.dataLabels.animation.defer
4623
- */
4624
- /**
4625
- * The alignment of the data label compared to the point. If
4626
- * `right`, the right side of the label should be touching the
4627
- * point. For points with an extent, like columns, the alignments
4628
- * also dictates how to align it inside the box, as given with the
4629
- * [inside](#plotOptions.column.dataLabels.inside)
4630
- * option. Can be one of `left`, `center` or `right`.
4631
- *
4632
- * @sample {highcharts} highcharts/plotoptions/series-datalabels-align-left/
4633
- * Left aligned
4634
- * @sample {highcharts} highcharts/plotoptions/bar-datalabels-align-inside-bar/
4635
- * Data labels inside the bar
4636
- *
4637
- * @type {Highcharts.AlignValue|null}
4638
- */
4639
- align: 'center',
4640
- /**
4641
- * Whether to allow data labels to overlap. To make the labels less
4642
- * sensitive for overlapping, the
4643
- * [dataLabels.padding](#plotOptions.series.dataLabels.padding)
4644
- * can be set to 0.
4645
- *
4646
- * @sample {highcharts} highcharts/plotoptions/series-datalabels-allowoverlap-false/
4647
- * Don't allow overlap
4648
- *
4649
- * @type {boolean}
4650
- * @default false
4651
- * @since 4.1.0
4652
- * @apioption plotOptions.series.dataLabels.allowOverlap
4653
- */
4654
- /**
4655
- * The background color or gradient for the data label.
4656
- *
4657
- * @sample {highcharts} highcharts/plotoptions/series-datalabels-box/
4658
- * Data labels box options
4659
- * @sample {highmaps} maps/plotoptions/series-datalabels-box/
4660
- * Data labels box options
4661
- *
4662
- * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
4663
- * @since 2.2.1
4664
- * @apioption plotOptions.series.dataLabels.backgroundColor
4665
- */
4666
- /**
4667
- * The border color for the data label. Defaults to `undefined`.
4668
- *
4669
- * @sample {highcharts} highcharts/plotoptions/series-datalabels-box/
4670
- * Data labels box options
4671
- *
4672
- * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
4673
- * @since 2.2.1
4674
- * @apioption plotOptions.series.dataLabels.borderColor
4675
- */
4676
- /**
4677
- * The border radius in pixels for the data label.
4678
- *
4679
- * @sample {highcharts} highcharts/plotoptions/series-datalabels-box/
4680
- * Data labels box options
4681
- * @sample {highmaps} maps/plotoptions/series-datalabels-box/
4682
- * Data labels box options
4683
- *
4684
- * @type {number}
4685
- * @default 0
4686
- * @since 2.2.1
4687
- * @apioption plotOptions.series.dataLabels.borderRadius
4688
- */
4689
- /**
4690
- * The border width in pixels for the data label.
4691
- *
4692
- * @sample {highcharts} highcharts/plotoptions/series-datalabels-box/
4693
- * Data labels box options
4694
- *
4695
- * @type {number}
4696
- * @default 0
4697
- * @since 2.2.1
4698
- * @apioption plotOptions.series.dataLabels.borderWidth
4699
- */
4700
- /**
4701
- * A class name for the data label. Particularly in styled mode,
4702
- * this can be used to give each series' or point's data label
4703
- * unique styling. In addition to this option, a default color class
4704
- * name is added so that we can give the labels a contrast text
4705
- * shadow.
4706
- *
4707
- * @sample {highcharts} highcharts/css/data-label-contrast/
4708
- * Contrast text shadow
4709
- * @sample {highcharts} highcharts/css/series-datalabels/
4710
- * Styling by CSS
4711
- *
4712
- * @type {string}
4713
- * @since 5.0.0
4714
- * @apioption plotOptions.series.dataLabels.className
4715
- */
4716
- /**
4717
- * The text color for the data labels. Defaults to `undefined`. For
4718
- * certain series types, like column or map, the data labels can be
4719
- * drawn inside the points. In this case the data label will be
4720
- * drawn with maximum contrast by default. Additionally, it will be
4721
- * given a `text-outline` style with the opposite color, to further
4722
- * increase the contrast. This can be overridden by setting the
4723
- * `text-outline` style to `none` in the `dataLabels.style` option.
4724
- *
4725
- * @sample {highcharts} highcharts/plotoptions/series-datalabels-color/
4726
- * Red data labels
4727
- * @sample {highmaps} maps/demo/color-axis/
4728
- * White data labels
4729
- *
4730
- * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
4731
- * @apioption plotOptions.series.dataLabels.color
4732
- */
4733
- /**
4734
- * Whether to hide data labels that are outside the plot area. By
4735
- * default, the data label is moved inside the plot area according
4736
- * to the
4737
- * [overflow](#plotOptions.series.dataLabels.overflow)
4738
- * option.
4739
- *
4740
- * @type {boolean}
4741
- * @default true
4742
- * @since 2.3.3
4743
- * @apioption plotOptions.series.dataLabels.crop
4744
- */
4745
- /**
4746
- * Whether to defer displaying the data labels until the initial
4747
- * series animation has finished. Setting to `false` renders the
4748
- * data label immediately. If set to `true` inherits the defer
4749
- * time set in [plotOptions.series.animation](#plotOptions.series.animation).
4750
- * If set to a number, a defer time is specified in milliseconds.
4751
- *
4752
- * @sample highcharts/plotoptions/animation-defer
4753
- * Set defer time
4754
- *
4755
- * @since 4.0.0
4756
- * @type {boolean|number}
4757
- * @product highcharts highstock gantt
4758
- */
4759
- defer: true,
4760
- /**
4761
- * Enable or disable the data labels.
4762
- *
4763
- * @sample {highcharts} highcharts/plotoptions/series-datalabels-enabled/
4764
- * Data labels enabled
4765
- * @sample {highmaps} maps/demo/color-axis/
4766
- * Data labels enabled
4767
- *
4768
- * @type {boolean}
4769
- * @default false
4770
- * @apioption plotOptions.series.dataLabels.enabled
4771
- */
4772
- /**
4773
- * A declarative filter to control of which data labels to display.
4774
- * The declarative filter is designed for use when callback
4775
- * functions are not available, like when the chart options require
4776
- * a pure JSON structure or for use with graphical editors. For
4777
- * programmatic control, use the `formatter` instead, and return
4778
- * `undefined` to disable a single data label.
4779
- *
4780
- * @example
4781
- * filter: {
4782
- * property: 'percentage',
4783
- * operator: '>',
4784
- * value: 4
4785
- * }
4786
- *
4787
- * @sample {highcharts} highcharts/demo/pie-monochrome
4788
- * Data labels filtered by percentage
4789
- *
4790
- * @declare Highcharts.DataLabelsFilterOptionsObject
4791
- * @since 6.0.3
4792
- * @apioption plotOptions.series.dataLabels.filter
4793
- */
4794
- /**
4795
- * The operator to compare by. Can be one of `>`, `<`, `>=`, `<=`,
4796
- * `==`, and `===`.
4797
- *
4798
- * @type {string}
4799
- * @validvalue [">", "<", ">=", "<=", "==", "==="]
4800
- * @apioption plotOptions.series.dataLabels.filter.operator
4801
- */
4802
- /**
4803
- * The point property to filter by. Point options are passed
4804
- * directly to properties, additionally there are `y` value,
4805
- * `percentage` and others listed under {@link Highcharts.Point}
4806
- * members.
4807
- *
4808
- * @type {string}
4809
- * @apioption plotOptions.series.dataLabels.filter.property
4810
- */
4811
- /**
4812
- * The value to compare against.
4813
- *
4814
- * @type {number}
4815
- * @apioption plotOptions.series.dataLabels.filter.value
4816
- */
4817
- /**
4818
- * A
4819
- * [format string](https://www.highcharts.com/docs/chart-concepts/labels-and-string-formatting)
4820
- * for the data label. Available variables are the same as for
4821
- * `formatter`.
4822
- *
4823
- * @sample {highcharts} highcharts/plotoptions/series-datalabels-format/
4824
- * Add a unit
4825
- * @sample {highmaps} maps/plotoptions/series-datalabels-format/
4826
- * Formatted value in the data label
4827
- *
4828
- * @type {string}
4829
- * @default y
4830
- * @default point.value
4831
- * @since 3.0
4832
- * @apioption plotOptions.series.dataLabels.format
4833
- */
4834
- // eslint-disable-next-line valid-jsdoc
4835
- /**
4836
- * Callback JavaScript function to format the data label. Note that
4837
- * if a `format` is defined, the format takes precedence and the
4838
- * formatter is ignored.
4839
- *
4840
- * @sample {highmaps} maps/plotoptions/series-datalabels-format/
4841
- * Formatted value
4842
- *
4843
- * @type {Highcharts.DataLabelsFormatterCallbackFunction}
4844
- */
4845
- formatter: function () {
4846
- var numberFormatter = this.series.chart.numberFormatter;
4847
- return typeof this.y !== 'number' ? '' : numberFormatter(this.y, -1);
4848
- },
4849
- /**
4850
- * For points with an extent, like columns or map areas, whether to
4851
- * align the data label inside the box or to the actual value point.
4852
- * Defaults to `false` in most cases, `true` in stacked columns.
4853
- *
4854
- * @type {boolean}
4855
- * @since 3.0
4856
- * @apioption plotOptions.series.dataLabels.inside
4857
- */
4858
- /**
4859
- * Format for points with the value of null. Works analogously to
4860
- * [format](#plotOptions.series.dataLabels.format). `nullFormat` can
4861
- * be applied only to series which support displaying null points.
4862
- *
4863
- * @sample {highcharts} highcharts/plotoptions/series-datalabels-format/
4864
- * Format data label and tooltip for null point.
4865
- *
4866
- * @type {boolean|string}
4867
- * @since 7.1.0
4868
- * @apioption plotOptions.series.dataLabels.nullFormat
4869
- */
4870
- /**
4871
- * Callback JavaScript function that defines formatting for points
4872
- * with the value of null. Works analogously to
4873
- * [formatter](#plotOptions.series.dataLabels.formatter).
4874
- * `nullPointFormatter` can be applied only to series which support
4875
- * displaying null points.
4876
- *
4877
- * @sample {highcharts} highcharts/plotoptions/series-datalabels-format/
4878
- * Format data label and tooltip for null point.
4879
- *
4880
- * @type {Highcharts.DataLabelsFormatterCallbackFunction}
4881
- * @since 7.1.0
4882
- * @apioption plotOptions.series.dataLabels.nullFormatter
4883
- */
4884
- /**
4885
- * How to handle data labels that flow outside the plot area. The
4886
- * default is `"justify"`, which aligns them inside the plot area.
4887
- * For columns and bars, this means it will be moved inside the bar.
4888
- * To display data labels outside the plot area, set `crop` to
4889
- * `false` and `overflow` to `"allow"`.
4890
- *
4891
- * @type {Highcharts.DataLabelsOverflowValue}
4892
- * @default justify
4893
- * @since 3.0.6
4894
- * @apioption plotOptions.series.dataLabels.overflow
4895
- */
4896
- /**
4897
- * When either the `borderWidth` or the `backgroundColor` is set,
4898
- * this is the padding within the box.
4899
- *
4900
- * @sample {highcharts} highcharts/plotoptions/series-datalabels-box/
4901
- * Data labels box options
4902
- * @sample {highmaps} maps/plotoptions/series-datalabels-box/
4903
- * Data labels box options
4904
- *
4905
- * @since 2.2.1
4906
- */
4907
- padding: 5,
4908
- /**
4909
- * Aligns data labels relative to points. If `center` alignment is
4910
- * not possible, it defaults to `right`.
4911
- *
4912
- * @type {Highcharts.AlignValue}
4913
- * @default center
4914
- * @apioption plotOptions.series.dataLabels.position
4915
- */
4916
- /**
4917
- * Text rotation in degrees. Note that due to a more complex
4918
- * structure, backgrounds, borders and padding will be lost on a
4919
- * rotated data label.
4920
- *
4921
- * @sample {highcharts} highcharts/plotoptions/series-datalabels-rotation/
4922
- * Vertical labels
4923
- *
4924
- * @type {number}
4925
- * @default 0
4926
- * @apioption plotOptions.series.dataLabels.rotation
4927
- */
4928
- /**
4929
- * The shadow of the box. Works best with `borderWidth` or
4930
- * `backgroundColor`. Since 2.3 the shadow can be an object
4931
- * configuration containing `color`, `offsetX`, `offsetY`, `opacity`
4932
- * and `width`.
4933
- *
4934
- * @sample {highcharts} highcharts/plotoptions/series-datalabels-box/
4935
- * Data labels box options
4936
- *
4937
- * @type {boolean|Highcharts.ShadowOptionsObject}
4938
- * @default false
4939
- * @since 2.2.1
4940
- * @apioption plotOptions.series.dataLabels.shadow
4941
- */
4942
- /**
4943
- * The name of a symbol to use for the border around the label.
4944
- * Symbols are predefined functions on the Renderer object.
4945
- *
4946
- * @sample {highcharts} highcharts/plotoptions/series-datalabels-shape/
4947
- * A callout for annotations
4948
- *
4949
- * @type {string}
4950
- * @default square
4951
- * @since 4.1.2
4952
- * @apioption plotOptions.series.dataLabels.shape
4953
- */
4954
- /**
4955
- * Styles for the label. The default `color` setting is
4956
- * `"contrast"`, which is a pseudo color that Highcharts picks up
4957
- * and applies the maximum contrast to the underlying point item,
4958
- * for example the bar in a bar chart.
4959
- *
4960
- * The `textOutline` is a pseudo property that applies an outline of
4961
- * the given width with the given color, which by default is the
4962
- * maximum contrast to the text. So a bright text color will result
4963
- * in a black text outline for maximum readability on a mixed
4964
- * background. In some cases, especially with grayscale text, the
4965
- * text outline doesn't work well, in which cases it can be disabled
4966
- * by setting it to `"none"`. When `useHTML` is true, the
4967
- * `textOutline` will not be picked up. In this, case, the same
4968
- * effect can be acheived through the `text-shadow` CSS property.
4969
- *
4970
- * For some series types, where each point has an extent, like for
4971
- * example tree maps, the data label may overflow the point. There
4972
- * are two strategies for handling overflow. By default, the text
4973
- * will wrap to multiple lines. The other strategy is to set
4974
- * `style.textOverflow` to `ellipsis`, which will keep the text on
4975
- * one line plus it will break inside long words.
4976
- *
4977
- * @sample {highcharts} highcharts/plotoptions/series-datalabels-style/
4978
- * Bold labels
4979
- * @sample {highcharts} highcharts/plotoptions/pie-datalabels-overflow/
4980
- * Long labels truncated with an ellipsis in a pie
4981
- * @sample {highcharts} highcharts/plotoptions/pie-datalabels-overflow-wrap/
4982
- * Long labels are wrapped in a pie
4983
- * @sample {highmaps} maps/demo/color-axis/
4984
- * Bold labels
4985
- *
4986
- * @type {Highcharts.CSSObject}
4987
- * @since 4.1.0
4988
- * @apioption plotOptions.series.dataLabels.style
4989
- */
4990
- style: {
4991
- /** @internal */
4992
- fontSize: '11px',
4993
- /** @internal */
4994
- fontWeight: 'bold',
4995
- /** @internal */
4996
- color: 'contrast',
4997
- /** @internal */
4998
- textOutline: '1px contrast'
4999
- },
5000
- /**
5001
- * Options for a label text which should follow marker's shape.
5002
- * Border and background are disabled for a label that follows a
5003
- * path.
5004
- *
5005
- * **Note:** Only SVG-based renderer supports this option. Setting
5006
- * `useHTML` to true will disable this option.
5007
- *
5008
- * @declare Highcharts.DataLabelsTextPathOptionsObject
5009
- * @since 7.1.0
5010
- * @apioption plotOptions.series.dataLabels.textPath
5011
- */
5012
- /**
5013
- * Presentation attributes for the text path.
5014
- *
5015
- * @type {Highcharts.SVGAttributes}
5016
- * @since 7.1.0
5017
- * @apioption plotOptions.series.dataLabels.textPath.attributes
5018
- */
5019
- /**
5020
- * Enable or disable `textPath` option for link's or marker's data
5021
- * labels.
5022
- *
5023
- * @type {boolean}
5024
- * @since 7.1.0
5025
- * @apioption plotOptions.series.dataLabels.textPath.enabled
5026
- */
5027
- /**
5028
- * Whether to
5029
- * [use HTML](https://www.highcharts.com/docs/chart-concepts/labels-and-string-formatting#html)
5030
- * to render the labels.
5031
- *
5032
- * @type {boolean}
5033
- * @default false
5034
- * @apioption plotOptions.series.dataLabels.useHTML
5035
- */
5036
- /**
5037
- * The vertical alignment of a data label. Can be one of `top`,
5038
- * `middle` or `bottom`. The default value depends on the data, for
5039
- * instance in a column chart, the label is above positive values
5040
- * and below negative values.
5041
- *
5042
- * @type {Highcharts.VerticalAlignValue|null}
5043
- * @since 2.3.3
5044
- */
5045
- verticalAlign: 'bottom',
5046
- /**
5047
- * The x position offset of the label relative to the point in
5048
- * pixels.
5049
- *
5050
- * @sample {highcharts} highcharts/plotoptions/series-datalabels-rotation/
5051
- * Vertical and positioned
5052
- * @sample {highcharts} highcharts/plotoptions/bar-datalabels-align-inside-bar/
5053
- * Data labels inside the bar
5054
- */
5055
- x: 0,
5056
- /**
5057
- * The Z index of the data labels. The default Z index puts it above
5058
- * the series. Use a Z index of 2 to display it behind the series.
5059
- *
5060
- * @type {number}
5061
- * @default 6
5062
- * @since 2.3.5
5063
- * @apioption plotOptions.series.dataLabels.z
5064
- */
5065
- /**
5066
- * The y position offset of the label relative to the point in
5067
- * pixels.
5068
- *
5069
- * @sample {highcharts} highcharts/plotoptions/series-datalabels-rotation/
5070
- * Vertical and positioned
5071
- */
5072
- y: 0
5073
- },
5074
- /**
5075
- * When the series contains less points than the crop threshold, all
5076
- * points are drawn, even if the points fall outside the visible plot
5077
- * area at the current zoom. The advantage of drawing all points
5078
- * (including markers and columns), is that animation is performed on
5079
- * updates. On the other hand, when the series contains more points than
5080
- * the crop threshold, the series data is cropped to only contain points
5081
- * that fall within the plot area. The advantage of cropping away
5082
- * invisible points is to increase performance on large series.
5083
- *
5084
- * @since 2.2
5085
- * @product highcharts highstock
5086
- *
5087
- * @private
5088
- */
5089
- cropThreshold: 300,
5090
- /**
5091
- * Opacity of a series parts: line, fill (e.g. area) and dataLabels.
5092
- *
5093
- * @see [states.inactive.opacity](#plotOptions.series.states.inactive.opacity)
5094
- *
5095
- * @since 7.1.0
5096
- *
5097
- * @private
5098
- */
5099
- opacity: 1,
5100
- /**
5101
- * The width of each point on the x axis. For example in a column chart
5102
- * with one value each day, the pointRange would be 1 day (= 24 * 3600
5103
- * * 1000 milliseconds). This is normally computed automatically, but
5104
- * this option can be used to override the automatic value.
5105
- *
5106
- * @product highstock
5107
- *
5108
- * @private
5109
- */
5110
- pointRange: 0,
5111
- /**
5112
- * When this is true, the series will not cause the Y axis to cross
5113
- * the zero plane (or [threshold](#plotOptions.series.threshold) option)
5114
- * unless the data actually crosses the plane.
5115
- *
5116
- * For example, if `softThreshold` is `false`, a series of 0, 1, 2,
5117
- * 3 will make the Y axis show negative values according to the
5118
- * `minPadding` option. If `softThreshold` is `true`, the Y axis starts
5119
- * at 0.
5120
- *
5121
- * @since 4.1.9
5122
- * @product highcharts highstock
5123
- *
5124
- * @private
5125
- */
5126
- softThreshold: true,
5127
- /**
5128
- * @declare Highcharts.SeriesStatesOptionsObject
5129
- *
5130
- * @private
5131
- */
5132
- states: {
5133
- /**
5134
- * The normal state of a series, or for point items in column, pie
5135
- * and similar series. Currently only used for setting animation
5136
- * when returning to normal state from hover.
5137
- *
5138
- * @declare Highcharts.SeriesStatesNormalOptionsObject
5139
- */
5140
- normal: {
5141
- /**
5142
- * Animation when returning to normal state after hovering.
5143
- *
5144
- * @type {boolean|Partial<Highcharts.AnimationOptionsObject>}
5145
- */
5146
- animation: true
5147
- },
5148
- /**
5149
- * Options for the hovered series. These settings override the
5150
- * normal state options when a series is moused over or touched.
5151
- *
5152
- * @declare Highcharts.SeriesStatesHoverOptionsObject
5153
- */
5154
- hover: {
5155
- /**
5156
- * Enable separate styles for the hovered series to visualize
5157
- * that the user hovers either the series itself or the legend.
5158
- *
5159
- * @sample {highcharts} highcharts/plotoptions/series-states-hover-enabled/
5160
- * Line
5161
- * @sample {highcharts} highcharts/plotoptions/series-states-hover-enabled-column/
5162
- * Column
5163
- * @sample {highcharts} highcharts/plotoptions/series-states-hover-enabled-pie/
5164
- * Pie
5165
- *
5166
- * @type {boolean}
5167
- * @default true
5168
- * @since 1.2
5169
- * @apioption plotOptions.series.states.hover.enabled
5170
- */
5171
- /**
5172
- * Animation setting for hovering the graph in line-type series.
5173
- *
5174
- * @type {boolean|Partial<Highcharts.AnimationOptionsObject>}
5175
- * @since 5.0.8
5176
- * @product highcharts highstock
5177
- */
5178
- animation: {
5179
- /**
5180
- * The duration of the hover animation in milliseconds. By
5181
- * default the hover state animates quickly in, and slowly
5182
- * back to normal.
5183
- *
5184
- * @internal
5185
- */
5186
- duration: 50
5187
- },
5188
- /**
5189
- * Pixel width of the graph line. By default this property is
5190
- * undefined, and the `lineWidthPlus` property dictates how much
5191
- * to increase the linewidth from normal state.
5192
- *
5193
- * @sample {highcharts} highcharts/plotoptions/series-states-hover-linewidth/
5194
- * 5px line on hover
5195
- *
5196
- * @type {number}
5197
- * @product highcharts highstock
5198
- * @apioption plotOptions.series.states.hover.lineWidth
5199
- */
5200
- /**
5201
- * The additional line width for the graph of a hovered series.
5202
- *
5203
- * @sample {highcharts} highcharts/plotoptions/series-states-hover-linewidthplus/
5204
- * 5 pixels wider
5205
- * @sample {highstock} highcharts/plotoptions/series-states-hover-linewidthplus/
5206
- * 5 pixels wider
5207
- *
5208
- * @since 4.0.3
5209
- * @product highcharts highstock
5210
- */
5211
- lineWidthPlus: 1,
5212
- /**
5213
- * In Highcharts 1.0, the appearance of all markers belonging
5214
- * to the hovered series. For settings on the hover state of the
5215
- * individual point, see
5216
- * [marker.states.hover](#plotOptions.series.marker.states.hover).
5217
- *
5218
- * @deprecated
5219
- *
5220
- * @extends plotOptions.series.marker
5221
- * @excluding states
5222
- * @product highcharts highstock
5223
- */
5224
- marker: {
5225
- // lineWidth: base + 1,
5226
- // radius: base + 1
5227
- },
5228
- /**
5229
- * Options for the halo appearing around the hovered point in
5230
- * line-type series as well as outside the hovered slice in pie
5231
- * charts. By default the halo is filled by the current point or
5232
- * series color with an opacity of 0.25\. The halo can be
5233
- * disabled by setting the `halo` option to `null`.
5234
- *
5235
- * In styled mode, the halo is styled with the
5236
- * `.highcharts-halo` class, with colors inherited from
5237
- * `.highcharts-color-{n}`.
5238
- *
5239
- * @sample {highcharts} highcharts/plotoptions/halo/
5240
- * Halo options
5241
- * @sample {highstock} highcharts/plotoptions/halo/
5242
- * Halo options
5243
- *
5244
- * @declare Highcharts.SeriesStatesHoverHaloOptionsObject
5245
- * @type {null|*}
5246
- * @since 4.0
5247
- * @product highcharts highstock
5248
- */
5249
- halo: {
5250
- /**
5251
- * A collection of SVG attributes to override the appearance
5252
- * of the halo, for example `fill`, `stroke` and
5253
- * `stroke-width`.
5254
- *
5255
- * @type {Highcharts.SVGAttributes}
5256
- * @since 4.0
5257
- * @product highcharts highstock
5258
- * @apioption plotOptions.series.states.hover.halo.attributes
5259
- */
5260
- /**
5261
- * The pixel size of the halo. For point markers this is the
5262
- * radius of the halo. For pie slices it is the width of the
5263
- * halo outside the slice. For bubbles it defaults to 5 and
5264
- * is the width of the halo outside the bubble.
5265
- *
5266
- * @since 4.0
5267
- * @product highcharts highstock
5268
- */
5269
- size: 10,
5270
- /**
5271
- * Opacity for the halo unless a specific fill is overridden
5272
- * using the `attributes` setting. Note that Highcharts is
5273
- * only able to apply opacity to colors of hex or rgb(a)
5274
- * formats.
5275
- *
5276
- * @since 4.0
5277
- * @product highcharts highstock
5278
- */
5279
- opacity: 0.25
5280
- }
5281
- },
5282
- /**
5283
- * Specific options for point in selected states, after being
5284
- * selected by
5285
- * [allowPointSelect](#plotOptions.series.allowPointSelect)
5286
- * or programmatically.
5287
- *
5288
- * @sample maps/plotoptions/series-allowpointselect/
5289
- * Allow point select demo
5290
- *
5291
- * @declare Highcharts.SeriesStatesSelectOptionsObject
5292
- * @extends plotOptions.series.states.hover
5293
- * @excluding brightness
5294
- */
5295
- select: {
5296
- animation: {
5297
- /** @internal */
5298
- duration: 0
5299
- }
5300
- },
5301
- /**
5302
- * The opposite state of a hover for series.
5303
- *
5304
- * @sample highcharts/plotoptions/series-states-inactive-disabled
5305
- * Disabled inactive state
5306
- *
5307
- * @declare Highcharts.SeriesStatesInactiveOptionsObject
5308
- */
5309
- inactive: {
5310
- /**
5311
- * Enable or disable the inactive state for a series
5312
- *
5313
- * @sample highcharts/plotoptions/series-states-inactive-disabled
5314
- * Disabled inactive state
5315
- *
5316
- * @type {boolean}
5317
- * @default true
5318
- * @apioption plotOptions.series.states.inactive.enabled
5319
- */
5320
- /**
5321
- * The animation for entering the inactive state.
5322
- *
5323
- * @type {boolean|Partial<Highcharts.AnimationOptionsObject>}
5324
- */
5325
- animation: {
5326
- /** @internal */
5327
- duration: 50
5328
- },
5329
- /**
5330
- * Opacity of series elements (dataLabels, line, area).
5331
- *
5332
- * @type {number}
5333
- */
5334
- opacity: 0.2
5335
- }
5336
- },
5337
- /**
5338
- * Sticky tracking of mouse events. When true, the `mouseOut` event on a
5339
- * series isn't triggered until the mouse moves over another series, or
5340
- * out of the plot area. When false, the `mouseOut` event on a series is
5341
- * triggered when the mouse leaves the area around the series' graph or
5342
- * markers. This also implies the tooltip when not shared. When
5343
- * `stickyTracking` is false and `tooltip.shared` is false, the tooltip
5344
- * will be hidden when moving the mouse between series. Defaults to true
5345
- * for line and area type series, but to false for columns, pies etc.
5346
- *
5347
- * **Note:** The boost module will force this option because of
5348
- * technical limitations.
5349
- *
5350
- * @sample {highcharts} highcharts/plotoptions/series-stickytracking-true/
5351
- * True by default
5352
- * @sample {highcharts} highcharts/plotoptions/series-stickytracking-false/
5353
- * False
5354
- *
5355
- * @default {highcharts} true
5356
- * @default {highstock} true
5357
- * @default {highmaps} false
5358
- * @since 2.0
5359
- *
5360
- * @private
5361
- */
5362
- stickyTracking: true,
5363
- /**
5364
- * A configuration object for the tooltip rendering of each single
5365
- * series. Properties are inherited from [tooltip](#tooltip), but only
5366
- * the following properties can be defined on a series level.
5367
- *
5368
- * @declare Highcharts.SeriesTooltipOptionsObject
5369
- * @since 2.3
5370
- * @extends tooltip
5371
- * @excluding animation, backgroundColor, borderColor, borderRadius,
5372
- * borderWidth, className, crosshairs, enabled, formatter,
5373
- * headerShape, hideDelay, outside, padding, positioner,
5374
- * shadow, shape, shared, snap, split, stickOnContact,
5375
- * style, useHTML
5376
- * @apioption plotOptions.series.tooltip
5377
- */
5378
- /**
5379
- * When a series contains a data array that is longer than this, only
5380
- * one dimensional arrays of numbers, or two dimensional arrays with
5381
- * x and y values are allowed. Also, only the first point is tested,
5382
- * and the rest are assumed to be the same format. This saves expensive
5383
- * data checking and indexing in long series. Set it to `0` disable.
5384
- *
5385
- * Note:
5386
- * In boost mode turbo threshold is forced. Only array of numbers or
5387
- * two dimensional arrays are allowed.
5388
- *
5389
- * @since 2.2
5390
- * @product highcharts highstock gantt
5391
- *
5392
- * @private
5393
- */
5394
- turboThreshold: 1000,
5395
- /**
5396
- * An array defining zones within a series. Zones can be applied to the
5397
- * X axis, Y axis or Z axis for bubbles, according to the `zoneAxis`
5398
- * option. The zone definitions have to be in ascending order regarding
5399
- * to the value.
5400
- *
5401
- * In styled mode, the color zones are styled with the
5402
- * `.highcharts-zone-{n}` class, or custom classed from the `className`
5403
- * option
5404
- * ([view live demo](https://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/css/color-zones/)).
5405
- *
5406
- * @see [zoneAxis](#plotOptions.series.zoneAxis)
5407
- *
5408
- * @sample {highcharts} highcharts/series/color-zones-simple/
5409
- * Color zones
5410
- * @sample {highstock} highcharts/series/color-zones-simple/
5411
- * Color zones
5412
- *
5413
- * @declare Highcharts.SeriesZonesOptionsObject
5414
- * @type {Array<*>}
5415
- * @since 4.1.0
5416
- * @product highcharts highstock
5417
- * @apioption plotOptions.series.zones
5418
- */
5419
- /**
5420
- * Styled mode only. A custom class name for the zone.
5421
- *
5422
- * @sample highcharts/css/color-zones/
5423
- * Zones styled by class name
5424
- *
5425
- * @type {string}
5426
- * @since 5.0.0
5427
- * @apioption plotOptions.series.zones.className
5428
- */
5429
- /**
5430
- * Defines the color of the series.
5431
- *
5432
- * @see [series color](#plotOptions.series.color)
5433
- *
5434
- * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
5435
- * @since 4.1.0
5436
- * @product highcharts highstock
5437
- * @apioption plotOptions.series.zones.color
5438
- */
5439
- /**
5440
- * A name for the dash style to use for the graph.
5441
- *
5442
- * @see [plotOptions.series.dashStyle](#plotOptions.series.dashStyle)
5443
- *
5444
- * @sample {highcharts|highstock} highcharts/series/color-zones-dashstyle-dot/
5445
- * Dashed line indicates prognosis
5446
- *
5447
- * @type {Highcharts.DashStyleValue}
5448
- * @since 4.1.0
5449
- * @product highcharts highstock
5450
- * @apioption plotOptions.series.zones.dashStyle
5451
- */
5452
- /**
5453
- * Defines the fill color for the series (in area type series)
5454
- *
5455
- * @see [fillColor](#plotOptions.area.fillColor)
5456
- *
5457
- * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
5458
- * @since 4.1.0
5459
- * @product highcharts highstock
5460
- * @apioption plotOptions.series.zones.fillColor
5461
- */
5462
- /**
5463
- * The value up to where the zone extends, if undefined the zones
5464
- * stretches to the last value in the series.
5465
- *
5466
- * @type {number}
5467
- * @since 4.1.0
5468
- * @product highcharts highstock
5469
- * @apioption plotOptions.series.zones.value
5470
- */
5471
- /**
5472
- * When using dual or multiple color axes, this number defines which
5473
- * colorAxis the particular series is connected to. It refers to
5474
- * either the
5475
- * {@link #colorAxis.id|axis id}
5476
- * or the index of the axis in the colorAxis array, with 0 being the
5477
- * first. Set this option to false to prevent a series from connecting
5478
- * to the default color axis.
5479
- *
5480
- * Since v7.2.0 the option can also be an axis id or an axis index
5481
- * instead of a boolean flag.
5482
- *
5483
- * @sample highcharts/coloraxis/coloraxis-with-pie/
5484
- * Color axis with pie series
5485
- * @sample highcharts/coloraxis/multiple-coloraxis/
5486
- * Multiple color axis
5487
- *
5488
- * @type {number|string|boolean}
5489
- * @default 0
5490
- * @product highcharts highstock highmaps
5491
- * @apioption plotOptions.series.colorAxis
5492
- */
5493
- /**
5494
- * Determines what data value should be used to calculate point color
5495
- * if `colorAxis` is used. Requires to set `min` and `max` if some
5496
- * custom point property is used or if approximation for data grouping
5497
- * is set to `'sum'`.
5498
- *
5499
- * @sample highcharts/coloraxis/custom-color-key/
5500
- * Custom color key
5501
- * @sample highcharts/coloraxis/changed-default-color-key/
5502
- * Changed default color key
5503
- *
5504
- * @type {string}
5505
- * @default y
5506
- * @since 7.2.0
5507
- * @product highcharts highstock highmaps
5508
- * @apioption plotOptions.series.colorKey
5509
- */
5510
- /**
5511
- * Determines whether the series should look for the nearest point
5512
- * in both dimensions or just the x-dimension when hovering the series.
5513
- * Defaults to `'xy'` for scatter series and `'x'` for most other
5514
- * series. If the data has duplicate x-values, it is recommended to
5515
- * set this to `'xy'` to allow hovering over all points.
5516
- *
5517
- * Applies only to series types using nearest neighbor search (not
5518
- * direct hover) for tooltip.
5519
- *
5520
- * @sample {highcharts} highcharts/series/findnearestpointby/
5521
- * Different hover behaviors
5522
- * @sample {highstock} highcharts/series/findnearestpointby/
5523
- * Different hover behaviors
5524
- * @sample {highmaps} highcharts/series/findnearestpointby/
5525
- * Different hover behaviors
5526
- *
5527
- * @since 5.0.10
5528
- * @validvalue ["x", "xy"]
5529
- *
5530
- * @private
5531
- */
5532
- findNearestPointBy: 'x'
5533
- };
3368
+ Series.defaultOptions = SeriesDefaults;
5534
3369
  return Series;
5535
3370
  }());
5536
3371
  extend(Series.prototype, {
@@ -5539,7 +3374,7 @@ extend(Series.prototype, {
5539
3374
  colorCounter: 0,
5540
3375
  cropShoulder: 1,
5541
3376
  directTouch: false,
5542
- drawLegendSymbol: LegendSymbolMixin.drawLineMarker,
3377
+ drawLegendSymbol: LegendSymbol.drawLineMarker,
5543
3378
  isCartesian: true,
5544
3379
  kdAxisArray: ['clientX', 'plotY'],
5545
3380
  // each point's x and y values are stored in this.xData and this.yData: