highcharts 9.1.1 → 9.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (718) hide show
  1. package/bower.json +1 -1
  2. package/css/annotations/popup.css +29 -28
  3. package/css/annotations/popup.scss +29 -27
  4. package/css/highcharts.css +15 -0
  5. package/css/highcharts.scss +12 -0
  6. package/css/stocktools/gui.css +1 -0
  7. package/css/stocktools/gui.scss +1 -0
  8. package/css/themes/dark-unica.css +15 -0
  9. package/css/themes/grid-light.css +15 -0
  10. package/css/themes/sand-signika.css +15 -0
  11. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +8 -2
  12. package/es-modules/Accessibility/Components/LegendComponent.js +19 -8
  13. package/es-modules/Accessibility/Components/MenuComponent.js +19 -13
  14. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +4 -8
  15. package/es-modules/Accessibility/FocusBorder.js +1 -3
  16. package/es-modules/Accessibility/Options/LangOptions.js +3 -3
  17. package/es-modules/Accessibility/Utils/Announcer.js +22 -5
  18. package/es-modules/Accessibility/Utils/ChartUtilities.js +6 -1
  19. package/es-modules/Core/Animation/AnimationUtilities.js +12 -4
  20. package/es-modules/Core/Animation/Fx.js +15 -12
  21. package/es-modules/Core/Axis/Axis.js +25 -13
  22. package/es-modules/Core/Axis/AxisDefaults.js +0 -1
  23. package/es-modules/Core/Axis/BrokenAxis.js +32 -15
  24. package/es-modules/Core/Axis/Color/ColorAxis.js +665 -0
  25. package/es-modules/Core/Axis/Color/ColorAxisComposition.js +237 -0
  26. package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +434 -0
  27. package/es-modules/Core/Axis/DateTimeAxis.js +163 -133
  28. package/es-modules/Core/Axis/GridAxis.js +8 -3
  29. package/es-modules/Core/Axis/LogarithmicAxis.js +159 -117
  30. package/es-modules/Core/Axis/OrdinalAxis.js +666 -460
  31. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +874 -0
  32. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js +292 -0
  33. package/es-modules/Core/Axis/RadialAxis.js +858 -745
  34. package/es-modules/Core/Axis/ScrollbarAxis.js +7 -0
  35. package/es-modules/Core/Axis/StackingAxis.js +159 -140
  36. package/es-modules/Core/Axis/Tick.js +17 -27
  37. package/es-modules/Core/Chart/Chart.js +24 -38
  38. package/es-modules/Core/Chart/ChartDefaults.js +1 -1
  39. package/es-modules/Core/Chart/StockChart.js +12 -0
  40. package/es-modules/Core/Color/Color.js +96 -104
  41. package/es-modules/Core/DefaultOptions.js +269 -248
  42. package/es-modules/Core/Foundation.js +9 -8
  43. package/es-modules/Core/Geometry/CircleUtilities.js +385 -0
  44. package/es-modules/Core/Geometry/GeometryUtilities.js +83 -0
  45. package/es-modules/Core/Globals.js +23 -1
  46. package/es-modules/{Extensions/Ajax.js → Core/HttpUtilities.js} +86 -42
  47. package/es-modules/Core/{Legend.js → Legend/Legend.js} +142 -116
  48. package/es-modules/{Mixins → Core/Legend}/LegendSymbol.js +54 -38
  49. package/es-modules/Core/Navigator.js +3 -0
  50. package/es-modules/Core/Pointer.js +9 -0
  51. package/es-modules/Core/Renderer/HTML/AST.js +100 -82
  52. package/es-modules/Core/Renderer/HTML/HTMLElement.js +17 -7
  53. package/es-modules/Core/Renderer/HTML/HTMLRenderer.js +26 -9
  54. package/es-modules/Core/Renderer/RendererRegistry.js +9 -4
  55. package/es-modules/Core/Renderer/RendererUtilities.js +159 -0
  56. package/es-modules/Core/Renderer/SVG/SVGElement.js +13 -7
  57. package/es-modules/Core/Renderer/SVG/SVGLabel.js +9 -29
  58. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +2 -2
  59. package/es-modules/Core/Renderer/SVG/TextBuilder.js +18 -16
  60. package/es-modules/Core/Responsive.js +166 -148
  61. package/es-modules/Core/Series/DataLabel.js +564 -0
  62. package/es-modules/Core/Series/Point.js +233 -209
  63. package/es-modules/Core/Series/Series.js +174 -2339
  64. package/es-modules/Core/Series/SeriesDefaults.js +2293 -0
  65. package/es-modules/Core/Series/SeriesRegistry.js +3 -9
  66. package/es-modules/Core/Time.js +78 -2
  67. package/es-modules/Core/Tooltip.js +178 -236
  68. package/es-modules/Core/Utilities.js +409 -394
  69. package/es-modules/Extensions/Annotations/Annotations.js +102 -49
  70. package/es-modules/Extensions/Annotations/Mixins/EventEmitterMixin.js +9 -1
  71. package/es-modules/Extensions/Annotations/NavigationBindings.js +30 -25
  72. package/es-modules/Extensions/Annotations/Popup.js +16 -7
  73. package/es-modules/Extensions/Boost/BoostOverrides.js +5 -1
  74. package/es-modules/Extensions/Boost/WGLRenderer.js +5 -4
  75. package/es-modules/Extensions/Boost/WGLVBuffer.js +3 -0
  76. package/es-modules/Extensions/BoostCanvas.js +1 -1
  77. package/es-modules/Extensions/CurrentDateIndication.js +1 -1
  78. package/es-modules/Extensions/Data.js +82 -76
  79. package/es-modules/Extensions/DataGrouping.js +225 -184
  80. package/es-modules/Extensions/Debugger/ErrorMessages.js +2 -2
  81. package/es-modules/Extensions/DraggablePoints.js +13 -5
  82. package/es-modules/Extensions/Drilldown.js +41 -14
  83. package/es-modules/Extensions/ExportData.js +7 -4
  84. package/es-modules/Extensions/Exporting/Exporting.js +1273 -0
  85. package/es-modules/Extensions/Exporting/ExportingDefaults.js +803 -0
  86. package/es-modules/Extensions/Exporting/ExportingSymbols.js +73 -0
  87. package/es-modules/Extensions/FullScreen.js +7 -5
  88. package/es-modules/Extensions/NoDataToDisplay.js +1 -1
  89. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +617 -0
  90. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +58 -0
  91. package/es-modules/Extensions/Oldie/Oldie.js +1 -1
  92. package/es-modules/Extensions/Pane.js +0 -1
  93. package/es-modules/Extensions/PatternFill.js +23 -10
  94. package/es-modules/Extensions/Polar.js +2 -1
  95. package/es-modules/Extensions/RangeSelector.js +1 -1
  96. package/es-modules/Extensions/Themes/Avocado.js +49 -20
  97. package/es-modules/Extensions/Themes/DarkBlue.js +226 -203
  98. package/es-modules/Extensions/Themes/DarkGreen.js +231 -203
  99. package/es-modules/Extensions/Themes/DarkUnica.js +201 -172
  100. package/es-modules/Extensions/Themes/Gray.js +228 -205
  101. package/es-modules/Extensions/Themes/Grid.js +109 -81
  102. package/es-modules/Extensions/Themes/GridLight.js +83 -55
  103. package/es-modules/Extensions/Themes/HighContrastDark.js +192 -164
  104. package/es-modules/Extensions/Themes/HighContrastLight.js +49 -21
  105. package/es-modules/Extensions/Themes/SandSignika.js +115 -86
  106. package/es-modules/Extensions/Themes/Skies.js +102 -74
  107. package/es-modules/Extensions/Themes/Sunset.js +47 -19
  108. package/es-modules/Mixins/ColorSeries.js +0 -1
  109. package/es-modules/Mixins/MultipleLines.js +6 -0
  110. package/es-modules/Mixins/TreeSeries.js +1 -1
  111. package/es-modules/Series/Area/AreaSeries.js +2 -2
  112. package/es-modules/Series/AreaSpline/AreaSplineSeries.js +2 -2
  113. package/es-modules/Series/Bubble/BubbleLegendComposition.js +279 -0
  114. package/es-modules/Series/Bubble/BubbleLegendDefaults.js +267 -0
  115. package/es-modules/Series/Bubble/BubbleLegendItem.js +472 -0
  116. package/es-modules/Series/Bubble/BubbleSeries.js +6 -2
  117. package/es-modules/Series/Column/ColumnDataLabel.js +109 -0
  118. package/es-modules/Series/Column/ColumnSeries.js +39 -26
  119. package/es-modules/Series/Column3D/Column3DComposition.js +5 -2
  120. package/es-modules/Series/Flags/FlagsSeries.js +8 -1
  121. package/es-modules/Series/Gantt/GanttSeries.js +3 -3
  122. package/es-modules/Series/Heatmap/HeatmapSeries.js +9 -5
  123. package/es-modules/Series/HeikinAshi/HeikinAshiPoint.js +60 -0
  124. package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +277 -0
  125. package/es-modules/Series/HollowCandlestick/HollowCandlestickPoint.js +83 -0
  126. package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +370 -0
  127. package/es-modules/Series/Line/LineSeries.js +12 -8
  128. package/es-modules/Series/Map/MapSeries.js +5 -3
  129. package/es-modules/Series/MapBubble/MapBubbleSeries.js +6 -5
  130. package/es-modules/Series/OHLC/OHLCPoint.js +11 -0
  131. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +3 -1
  132. package/es-modules/Series/Pie/PieDataLabel.js +448 -0
  133. package/es-modules/Series/Pie/PiePoint.js +35 -34
  134. package/es-modules/Series/Pie/PieSeries.js +19 -16
  135. package/es-modules/Series/Polygon/PolygonSeries.js +3 -3
  136. package/es-modules/Series/Sankey/SankeySeries.js +9 -7
  137. package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +2 -2
  138. package/es-modules/Series/Sunburst/SunburstSeries.js +1 -14
  139. package/es-modules/Series/Timeline/TimelinePoint.js +6 -0
  140. package/es-modules/Series/Timeline/TimelineSeries.js +14 -17
  141. package/es-modules/Series/Treemap/TreemapSeries.js +3 -3
  142. package/es-modules/Series/Venn/VennSeries.js +4 -4
  143. package/es-modules/Series/Venn/VennUtils.js +10 -16
  144. package/es-modules/Series/Waterfall/WaterfallSeries.js +40 -35
  145. package/es-modules/Series/Wordcloud/WordcloudSeries.js +1 -0
  146. package/es-modules/Series/XRange/XRangeSeries.js +4 -2
  147. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +92 -75
  148. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +20 -8
  149. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +17 -4
  150. package/es-modules/Stock/StockToolsBindings.js +77 -38
  151. package/es-modules/Stock/StockToolsGui.js +28 -3
  152. package/es-modules/masters/highcharts-3d.src.js +1 -1
  153. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  154. package/es-modules/masters/highcharts-more.src.js +11 -7
  155. package/es-modules/masters/highcharts.src.js +25 -9
  156. package/es-modules/masters/highmaps.src.js +1 -1
  157. package/es-modules/masters/highstock.src.js +1 -1
  158. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  159. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  160. package/es-modules/masters/indicators/ao.src.js +1 -1
  161. package/es-modules/masters/indicators/apo.src.js +1 -1
  162. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  163. package/es-modules/masters/indicators/aroon.src.js +1 -1
  164. package/es-modules/masters/indicators/atr.src.js +1 -1
  165. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  166. package/es-modules/masters/indicators/cci.src.js +1 -1
  167. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  168. package/es-modules/masters/indicators/cmf.src.js +1 -1
  169. package/es-modules/masters/indicators/cmo.src.js +1 -1
  170. package/es-modules/masters/indicators/dema.src.js +1 -1
  171. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  172. package/es-modules/masters/indicators/dmi.src.js +1 -1
  173. package/es-modules/masters/indicators/dpo.src.js +1 -1
  174. package/es-modules/masters/indicators/ema.src.js +1 -1
  175. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  176. package/es-modules/masters/indicators/indicators-all.src.js +1 -1
  177. package/es-modules/masters/indicators/indicators.src.js +1 -1
  178. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  179. package/es-modules/masters/indicators/klinger.src.js +1 -1
  180. package/es-modules/masters/indicators/macd.src.js +1 -1
  181. package/es-modules/masters/indicators/mfi.src.js +1 -1
  182. package/es-modules/masters/indicators/momentum.src.js +1 -1
  183. package/es-modules/masters/indicators/natr.src.js +1 -1
  184. package/es-modules/masters/indicators/obv.src.js +1 -1
  185. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  186. package/es-modules/masters/indicators/ppo.src.js +1 -1
  187. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  188. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  189. package/es-modules/masters/indicators/psar.src.js +1 -1
  190. package/es-modules/masters/indicators/regressions.src.js +1 -1
  191. package/es-modules/masters/indicators/roc.src.js +1 -1
  192. package/es-modules/masters/indicators/rsi.src.js +1 -1
  193. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  194. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  195. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  196. package/es-modules/masters/indicators/tema.src.js +1 -1
  197. package/es-modules/masters/indicators/trendline.src.js +1 -1
  198. package/es-modules/masters/indicators/trix.src.js +1 -1
  199. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  200. package/es-modules/masters/indicators/vwap.src.js +1 -1
  201. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  202. package/es-modules/masters/indicators/wma.src.js +1 -1
  203. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  204. package/es-modules/masters/modules/accessibility.src.js +1 -1
  205. package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
  206. package/es-modules/masters/modules/annotations.src.js +1 -1
  207. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  208. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  209. package/es-modules/masters/modules/boost.src.js +1 -1
  210. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  211. package/es-modules/masters/modules/bullet.src.js +1 -1
  212. package/es-modules/masters/modules/coloraxis.src.js +6 -2
  213. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  214. package/es-modules/masters/modules/cylinder.src.js +1 -1
  215. package/es-modules/masters/modules/data.src.js +8 -1
  216. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  217. package/es-modules/masters/modules/debugger.src.js +1 -1
  218. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  219. package/es-modules/masters/modules/dotplot.src.js +1 -1
  220. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  221. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  222. package/es-modules/masters/modules/drilldown.src.js +1 -1
  223. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  224. package/es-modules/masters/modules/export-data.src.js +1 -1
  225. package/es-modules/masters/modules/exporting.src.js +10 -2
  226. package/es-modules/masters/modules/full-screen.src.js +1 -1
  227. package/es-modules/masters/modules/funnel.src.js +1 -1
  228. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  229. package/es-modules/masters/modules/gantt.src.js +9 -4
  230. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  231. package/es-modules/masters/modules/heatmap.src.js +6 -2
  232. package/es-modules/masters/modules/heikinashi.src.js +14 -0
  233. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  234. package/es-modules/masters/modules/hollowcandlestick.src.js +14 -0
  235. package/es-modules/masters/modules/item-series.src.js +1 -1
  236. package/es-modules/masters/modules/lollipop.src.js +1 -1
  237. package/es-modules/masters/modules/map.src.js +10 -6
  238. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  239. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  240. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  241. package/es-modules/masters/modules/offline-exporting.src.js +8 -2
  242. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  243. package/es-modules/masters/modules/oldie.src.js +1 -1
  244. package/es-modules/masters/modules/organization.src.js +1 -1
  245. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  246. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  247. package/es-modules/masters/modules/pareto.src.js +1 -1
  248. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  249. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  250. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  251. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  252. package/es-modules/masters/modules/sankey.src.js +1 -1
  253. package/es-modules/masters/modules/series-label.src.js +1 -1
  254. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  255. package/es-modules/masters/modules/sonification.src.js +1 -1
  256. package/es-modules/masters/modules/static-scale.src.js +1 -1
  257. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  258. package/es-modules/masters/modules/stock.src.js +3 -2
  259. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  260. package/es-modules/masters/modules/sunburst.src.js +1 -1
  261. package/es-modules/masters/modules/tilemap.src.js +1 -1
  262. package/es-modules/masters/modules/timeline.src.js +1 -1
  263. package/es-modules/masters/modules/treegrid.src.js +1 -1
  264. package/es-modules/masters/modules/treemap.src.js +1 -1
  265. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  266. package/es-modules/masters/modules/variwide.src.js +1 -1
  267. package/es-modules/masters/modules/vector.src.js +1 -1
  268. package/es-modules/masters/modules/venn.src.js +1 -1
  269. package/es-modules/masters/modules/windbarb.src.js +1 -1
  270. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  271. package/es-modules/masters/modules/xrange.src.js +1 -1
  272. package/es-modules/masters/themes/avocado.src.js +5 -2
  273. package/es-modules/masters/themes/dark-blue.src.js +5 -2
  274. package/es-modules/masters/themes/dark-green.src.js +5 -2
  275. package/es-modules/masters/themes/dark-unica.src.js +5 -2
  276. package/es-modules/masters/themes/gray.src.js +5 -2
  277. package/es-modules/masters/themes/grid-light.src.js +5 -2
  278. package/es-modules/masters/themes/grid.src.js +5 -2
  279. package/es-modules/masters/themes/high-contrast-dark.src.js +5 -2
  280. package/es-modules/masters/themes/high-contrast-light.src.js +5 -2
  281. package/es-modules/masters/themes/sand-signika.src.js +5 -2
  282. package/es-modules/masters/themes/skies.src.js +5 -2
  283. package/es-modules/masters/themes/sunset.src.js +5 -2
  284. package/gfx/stock-icons/annotations-hidden.svg +1 -1
  285. package/gfx/stock-icons/annotations-visible.svg +2 -2
  286. package/gfx/stock-icons/arrow-bottom.svg +1 -1
  287. package/gfx/stock-icons/arrow-left.svg +1 -1
  288. package/gfx/stock-icons/arrow-line.svg +1 -1
  289. package/gfx/stock-icons/arrow-ray.svg +1 -1
  290. package/gfx/stock-icons/arrow-right.svg +1 -1
  291. package/gfx/stock-icons/arrow-segment.svg +1 -2
  292. package/gfx/stock-icons/circle.svg +1 -1
  293. package/gfx/stock-icons/close.svg +2 -2
  294. package/gfx/stock-icons/crooked-3.svg +1 -1
  295. package/gfx/stock-icons/crooked-5.svg +1 -1
  296. package/gfx/stock-icons/current-price-hide.svg +3 -3
  297. package/gfx/stock-icons/current-price-show.svg +2 -2
  298. package/gfx/stock-icons/destroy.svg +1 -1
  299. package/gfx/stock-icons/drawing.svg +18 -0
  300. package/gfx/stock-icons/edit.svg +1 -1
  301. package/gfx/stock-icons/elliott-3.svg +1 -1
  302. package/gfx/stock-icons/elliott-5.svg +1 -1
  303. package/gfx/stock-icons/ellipse.svg +11 -0
  304. package/gfx/stock-icons/fibonacci-timezone.svg +16 -0
  305. package/gfx/stock-icons/fibonacci.svg +1 -1
  306. package/gfx/stock-icons/flag-basic.svg +1 -1
  307. package/gfx/stock-icons/flag-diamond.svg +2 -2
  308. package/gfx/stock-icons/flag-elipse.svg +1 -1
  309. package/gfx/stock-icons/flag-trapeze.svg +2 -2
  310. package/gfx/stock-icons/fullscreen.svg +4 -4
  311. package/gfx/stock-icons/horizontal-line.svg +1 -1
  312. package/gfx/stock-icons/indicators.svg +3 -3
  313. package/gfx/stock-icons/label.svg +4 -4
  314. package/gfx/stock-icons/line.svg +1 -1
  315. package/gfx/stock-icons/linear.svg +11 -0
  316. package/gfx/stock-icons/logarithmic.svg +1 -0
  317. package/gfx/stock-icons/measure-x.svg +2 -2
  318. package/gfx/stock-icons/measure-xy.svg +1 -1
  319. package/gfx/stock-icons/measure-y.svg +1 -1
  320. package/gfx/stock-icons/panning.svg +17 -0
  321. package/gfx/stock-icons/parallel-channel.svg +1 -1
  322. package/gfx/stock-icons/pitchfork.svg +1 -1
  323. package/gfx/stock-icons/ray.svg +1 -1
  324. package/gfx/stock-icons/rectangle.svg +1 -1
  325. package/gfx/stock-icons/remove-annotations.svg +2 -2
  326. package/gfx/stock-icons/save-chart.svg +3 -3
  327. package/gfx/stock-icons/segment.svg +1 -1
  328. package/gfx/stock-icons/separator.svg +1 -1
  329. package/gfx/stock-icons/series-candlestick.svg +1 -1
  330. package/gfx/stock-icons/series-heikin-ashi.svg +1 -0
  331. package/gfx/stock-icons/series-hlc.svg +1 -0
  332. package/gfx/stock-icons/series-hollow-candlestick.svg +1 -0
  333. package/gfx/stock-icons/series-line.svg +1 -1
  334. package/gfx/stock-icons/series-ohlc.svg +4 -4
  335. package/gfx/stock-icons/time-cycles.svg +35 -0
  336. package/gfx/stock-icons/vertical-arrow.svg +1 -1
  337. package/gfx/stock-icons/vertical-counter.svg +1 -1
  338. package/gfx/stock-icons/vertical-double-arrow.svg +1 -1
  339. package/gfx/stock-icons/vertical-label.svg +3 -3
  340. package/gfx/stock-icons/vertical-line.svg +1 -1
  341. package/gfx/stock-icons/zoom-x.svg +2 -2
  342. package/gfx/stock-icons/zoom-xy.svg +2 -2
  343. package/gfx/stock-icons/zoom-y.svg +2 -2
  344. package/highcharts-3d.js +24 -24
  345. package/highcharts-3d.js.map +1 -1
  346. package/highcharts-3d.src.js +6 -3
  347. package/highcharts-gantt.js +800 -792
  348. package/highcharts-gantt.js.map +1 -1
  349. package/highcharts-gantt.src.js +16535 -15918
  350. package/highcharts-more.d.ts +73 -1
  351. package/highcharts-more.js +193 -192
  352. package/highcharts-more.js.map +1 -1
  353. package/highcharts-more.src.d.ts +73 -1
  354. package/highcharts-more.src.js +8044 -7839
  355. package/highcharts.d.ts +3850 -177
  356. package/highcharts.js +589 -581
  357. package/highcharts.js.map +1 -1
  358. package/highcharts.src.d.ts +3850 -177
  359. package/highcharts.src.js +16635 -16060
  360. package/highmaps.js +708 -698
  361. package/highmaps.js.map +1 -1
  362. package/highmaps.src.js +17419 -16521
  363. package/highstock.js +782 -769
  364. package/highstock.js.map +1 -1
  365. package/highstock.src.js +28867 -27975
  366. package/indicators/acceleration-bands.js +9 -9
  367. package/indicators/acceleration-bands.js.map +1 -1
  368. package/indicators/acceleration-bands.src.js +7 -1
  369. package/indicators/accumulation-distribution.js +1 -1
  370. package/indicators/accumulation-distribution.src.js +1 -1
  371. package/indicators/ao.js +1 -1
  372. package/indicators/ao.src.js +1 -1
  373. package/indicators/apo.js +1 -1
  374. package/indicators/apo.src.js +1 -1
  375. package/indicators/aroon-oscillator.js +9 -9
  376. package/indicators/aroon-oscillator.js.map +1 -1
  377. package/indicators/aroon-oscillator.src.js +7 -1
  378. package/indicators/aroon.js +9 -9
  379. package/indicators/aroon.js.map +1 -1
  380. package/indicators/aroon.src.js +7 -1
  381. package/indicators/atr.js +1 -1
  382. package/indicators/atr.src.js +1 -1
  383. package/indicators/bollinger-bands.js +9 -9
  384. package/indicators/bollinger-bands.js.map +1 -1
  385. package/indicators/bollinger-bands.src.js +7 -1
  386. package/indicators/cci.js +1 -1
  387. package/indicators/cci.src.js +1 -1
  388. package/indicators/chaikin.js +1 -1
  389. package/indicators/chaikin.src.js +1 -1
  390. package/indicators/cmf.js +1 -1
  391. package/indicators/cmf.src.js +1 -1
  392. package/indicators/cmo.js +1 -1
  393. package/indicators/cmo.src.js +1 -1
  394. package/indicators/dema.js +1 -1
  395. package/indicators/dema.src.js +1 -1
  396. package/indicators/disparity-index.js +1 -1
  397. package/indicators/disparity-index.src.js +1 -1
  398. package/indicators/dmi.js +11 -11
  399. package/indicators/dmi.js.map +1 -1
  400. package/indicators/dmi.src.js +7 -1
  401. package/indicators/dpo.js +1 -1
  402. package/indicators/dpo.src.js +1 -1
  403. package/indicators/ema.js +1 -1
  404. package/indicators/ema.src.js +1 -1
  405. package/indicators/ichimoku-kinko-hyo.js +1 -1
  406. package/indicators/ichimoku-kinko-hyo.src.js +1 -1
  407. package/indicators/indicators-all.js +203 -200
  408. package/indicators/indicators-all.js.map +1 -1
  409. package/indicators/indicators-all.src.js +206 -104
  410. package/indicators/indicators.js +12 -11
  411. package/indicators/indicators.js.map +1 -1
  412. package/indicators/indicators.src.js +108 -90
  413. package/indicators/keltner-channels.js +9 -9
  414. package/indicators/keltner-channels.js.map +1 -1
  415. package/indicators/keltner-channels.src.js +7 -1
  416. package/indicators/klinger.js +13 -13
  417. package/indicators/klinger.js.map +1 -1
  418. package/indicators/klinger.src.js +7 -1
  419. package/indicators/macd.js +1 -1
  420. package/indicators/macd.src.js +1 -1
  421. package/indicators/mfi.js +1 -1
  422. package/indicators/mfi.src.js +1 -1
  423. package/indicators/momentum.js +1 -1
  424. package/indicators/momentum.src.js +1 -1
  425. package/indicators/natr.js +1 -1
  426. package/indicators/natr.src.js +1 -1
  427. package/indicators/obv.js +1 -1
  428. package/indicators/obv.src.js +1 -1
  429. package/indicators/pivot-points.js +1 -1
  430. package/indicators/pivot-points.src.js +1 -1
  431. package/indicators/ppo.js +1 -1
  432. package/indicators/ppo.src.js +1 -1
  433. package/indicators/price-channel.js +9 -9
  434. package/indicators/price-channel.js.map +1 -1
  435. package/indicators/price-channel.src.js +7 -1
  436. package/indicators/price-envelopes.js +1 -1
  437. package/indicators/price-envelopes.src.js +1 -1
  438. package/indicators/psar.js +1 -1
  439. package/indicators/psar.src.js +1 -1
  440. package/indicators/regressions.js +1 -1
  441. package/indicators/regressions.src.js +1 -1
  442. package/indicators/roc.js +1 -1
  443. package/indicators/roc.src.js +1 -1
  444. package/indicators/rsi.js +1 -1
  445. package/indicators/rsi.src.js +1 -1
  446. package/indicators/slow-stochastic.js +1 -1
  447. package/indicators/slow-stochastic.src.js +1 -1
  448. package/indicators/stochastic.js +10 -10
  449. package/indicators/stochastic.js.map +1 -1
  450. package/indicators/stochastic.src.js +7 -1
  451. package/indicators/supertrend.js +10 -10
  452. package/indicators/supertrend.js.map +1 -1
  453. package/indicators/supertrend.src.js +23 -10
  454. package/indicators/tema.js +1 -1
  455. package/indicators/tema.src.js +1 -1
  456. package/indicators/trendline.js +1 -1
  457. package/indicators/trendline.src.js +1 -1
  458. package/indicators/trix.js +1 -1
  459. package/indicators/trix.src.js +1 -1
  460. package/indicators/volume-by-price.js +17 -15
  461. package/indicators/volume-by-price.js.map +1 -1
  462. package/indicators/volume-by-price.src.js +71 -6
  463. package/indicators/vwap.js +1 -1
  464. package/indicators/vwap.src.js +1 -1
  465. package/indicators/williams-r.js +1 -1
  466. package/indicators/williams-r.src.js +1 -1
  467. package/indicators/wma.js +1 -1
  468. package/indicators/wma.src.js +1 -1
  469. package/indicators/zigzag.js +1 -1
  470. package/indicators/zigzag.src.js +1 -1
  471. package/modules/accessibility.js +203 -202
  472. package/modules/accessibility.js.map +1 -1
  473. package/modules/accessibility.src.js +89 -49
  474. package/modules/annotations-advanced.js +164 -163
  475. package/modules/annotations-advanced.js.map +1 -1
  476. package/modules/annotations-advanced.src.js +162 -87
  477. package/modules/annotations.js +111 -111
  478. package/modules/annotations.js.map +1 -1
  479. package/modules/annotations.src.js +162 -87
  480. package/modules/arrow-symbols.js +1 -1
  481. package/modules/arrow-symbols.src.js +1 -1
  482. package/modules/boost-canvas.js +2 -2
  483. package/modules/boost-canvas.js.map +1 -1
  484. package/modules/boost-canvas.src.js +2 -2
  485. package/modules/boost.js +52 -52
  486. package/modules/boost.js.map +1 -1
  487. package/modules/boost.src.js +15 -7
  488. package/modules/broken-axis.js +13 -13
  489. package/modules/broken-axis.js.map +1 -1
  490. package/modules/broken-axis.src.js +34 -15
  491. package/modules/bullet.js +1 -1
  492. package/modules/bullet.src.js +1 -1
  493. package/modules/coloraxis.js +24 -22
  494. package/modules/coloraxis.js.map +1 -1
  495. package/modules/coloraxis.src.js +954 -774
  496. package/modules/current-date-indicator.js +2 -2
  497. package/modules/current-date-indicator.js.map +1 -1
  498. package/modules/current-date-indicator.src.js +2 -2
  499. package/modules/cylinder.js +1 -1
  500. package/modules/cylinder.src.js +1 -1
  501. package/modules/data.js +33 -32
  502. package/modules/data.js.map +1 -1
  503. package/modules/data.src.js +182 -134
  504. package/modules/datagrouping.d.ts +5 -0
  505. package/modules/datagrouping.js +20 -20
  506. package/modules/datagrouping.js.map +1 -1
  507. package/modules/datagrouping.src.d.ts +5 -0
  508. package/modules/datagrouping.src.js +270 -228
  509. package/modules/debugger.js +3 -3
  510. package/modules/debugger.js.map +1 -1
  511. package/modules/debugger.src.js +3 -3
  512. package/modules/dependency-wheel.js +1 -1
  513. package/modules/dependency-wheel.src.js +1 -1
  514. package/modules/dotplot.js +1 -1
  515. package/modules/dotplot.src.js +1 -1
  516. package/modules/drag-panes.js +1 -1
  517. package/modules/drag-panes.src.js +1 -1
  518. package/modules/draggable-points.js +34 -34
  519. package/modules/draggable-points.js.map +1 -1
  520. package/modules/draggable-points.src.js +14 -5
  521. package/modules/drilldown.d.ts +27 -0
  522. package/modules/drilldown.js +18 -18
  523. package/modules/drilldown.js.map +1 -1
  524. package/modules/drilldown.src.d.ts +27 -0
  525. package/modules/drilldown.src.js +42 -16
  526. package/modules/dumbbell.js +1 -1
  527. package/modules/dumbbell.src.js +1 -1
  528. package/modules/export-data.js +20 -20
  529. package/modules/export-data.js.map +1 -1
  530. package/modules/export-data.src.js +8 -5
  531. package/modules/exporting.d.ts +29 -0
  532. package/modules/exporting.js +38 -35
  533. package/modules/exporting.js.map +1 -1
  534. package/modules/exporting.src.d.ts +29 -0
  535. package/modules/exporting.src.js +1937 -1614
  536. package/modules/full-screen.js +2 -2
  537. package/modules/full-screen.js.map +1 -1
  538. package/modules/full-screen.src.js +8 -6
  539. package/modules/funnel.js +1 -1
  540. package/modules/funnel.src.js +1 -1
  541. package/modules/funnel3d.js +1 -1
  542. package/modules/funnel3d.src.js +1 -1
  543. package/modules/gantt.js +218 -217
  544. package/modules/gantt.js.map +1 -1
  545. package/modules/gantt.src.js +74 -32
  546. package/modules/grid-axis.js +23 -22
  547. package/modules/grid-axis.js.map +1 -1
  548. package/modules/grid-axis.src.js +9 -4
  549. package/modules/heatmap.js +39 -37
  550. package/modules/heatmap.js.map +1 -1
  551. package/modules/heatmap.src.js +963 -779
  552. package/modules/heikinashi.js +17 -0
  553. package/modules/heikinashi.js.map +1 -0
  554. package/modules/heikinashi.src.js +394 -0
  555. package/modules/histogram-bellcurve.js +1 -1
  556. package/modules/histogram-bellcurve.src.js +1 -1
  557. package/modules/hollowcandlestick.js +18 -0
  558. package/modules/hollowcandlestick.js.map +1 -0
  559. package/modules/hollowcandlestick.src.js +504 -0
  560. package/modules/item-series.js +1 -1
  561. package/modules/item-series.src.js +1 -1
  562. package/modules/lollipop.js +1 -1
  563. package/modules/lollipop.src.js +1 -1
  564. package/modules/map.d.ts +9 -0
  565. package/modules/map.js +122 -119
  566. package/modules/map.js.map +1 -1
  567. package/modules/map.src.d.ts +9 -0
  568. package/modules/map.src.js +1655 -1332
  569. package/modules/marker-clusters.js +1 -1
  570. package/modules/marker-clusters.src.js +1 -1
  571. package/modules/networkgraph.js +1 -1
  572. package/modules/networkgraph.src.js +1 -1
  573. package/modules/no-data-to-display.js +3 -3
  574. package/modules/no-data-to-display.js.map +1 -1
  575. package/modules/no-data-to-display.src.js +2 -2
  576. package/modules/offline-exporting.js +18 -16
  577. package/modules/offline-exporting.js.map +1 -1
  578. package/modules/offline-exporting.src.js +623 -562
  579. package/modules/oldie-polyfills.js +1 -1
  580. package/modules/oldie-polyfills.src.js +1 -1
  581. package/modules/oldie.js +2 -2
  582. package/modules/oldie.src.js +2 -2
  583. package/modules/organization.js +1 -1
  584. package/modules/organization.src.js +1 -1
  585. package/modules/overlapping-datalabels.js +1 -1
  586. package/modules/overlapping-datalabels.src.js +1 -1
  587. package/modules/parallel-coordinates.js +1 -1
  588. package/modules/parallel-coordinates.src.js +1 -1
  589. package/modules/pareto.js +1 -1
  590. package/modules/pareto.src.js +1 -1
  591. package/modules/pathfinder.js +1 -1
  592. package/modules/pathfinder.src.js +1 -1
  593. package/modules/pattern-fill.js +14 -14
  594. package/modules/pattern-fill.js.map +1 -1
  595. package/modules/pattern-fill.src.js +24 -12
  596. package/modules/price-indicator.js +1 -1
  597. package/modules/price-indicator.src.js +1 -1
  598. package/modules/pyramid3d.js +1 -1
  599. package/modules/pyramid3d.src.js +1 -1
  600. package/modules/sankey.js +28 -28
  601. package/modules/sankey.js.map +1 -1
  602. package/modules/sankey.src.js +11 -11
  603. package/modules/series-label.js +1 -1
  604. package/modules/series-label.src.js +1 -1
  605. package/modules/solid-gauge.js +2 -2
  606. package/modules/solid-gauge.js.map +1 -1
  607. package/modules/solid-gauge.src.js +3 -3
  608. package/modules/sonification.js +1 -1
  609. package/modules/sonification.src.js +1 -1
  610. package/modules/static-scale.js +1 -1
  611. package/modules/static-scale.src.js +1 -1
  612. package/modules/stock-tools.js +159 -157
  613. package/modules/stock-tools.js.map +1 -1
  614. package/modules/stock-tools.src.js +253 -123
  615. package/modules/stock.d.ts +5 -0
  616. package/modules/stock.js +196 -191
  617. package/modules/stock.js.map +1 -1
  618. package/modules/stock.src.d.ts +5 -0
  619. package/modules/stock.src.js +7749 -7432
  620. package/modules/streamgraph.js +1 -1
  621. package/modules/streamgraph.src.js +1 -1
  622. package/modules/sunburst.js +5 -5
  623. package/modules/sunburst.js.map +1 -1
  624. package/modules/sunburst.src.js +6 -19
  625. package/modules/tilemap.js +1 -1
  626. package/modules/tilemap.src.js +1 -1
  627. package/modules/timeline.js +18 -17
  628. package/modules/timeline.js.map +1 -1
  629. package/modules/timeline.src.js +21 -24
  630. package/modules/treegrid.js +57 -57
  631. package/modules/treegrid.js.map +1 -1
  632. package/modules/treegrid.src.js +43 -19
  633. package/modules/treemap.js +5 -5
  634. package/modules/treemap.js.map +1 -1
  635. package/modules/treemap.src.js +5 -5
  636. package/modules/variable-pie.js +1 -1
  637. package/modules/variable-pie.src.js +1 -1
  638. package/modules/variwide.js +1 -1
  639. package/modules/variwide.src.js +1 -1
  640. package/modules/vector.js +1 -1
  641. package/modules/vector.src.js +1 -1
  642. package/modules/venn.js +31 -30
  643. package/modules/venn.js.map +1 -1
  644. package/modules/venn.src.js +508 -424
  645. package/modules/windbarb.js +1 -1
  646. package/modules/windbarb.src.js +1 -1
  647. package/modules/wordcloud.js +4 -4
  648. package/modules/wordcloud.js.map +1 -1
  649. package/modules/wordcloud.src.js +2 -1
  650. package/modules/xrange.js +17 -17
  651. package/modules/xrange.js.map +1 -1
  652. package/modules/xrange.src.js +7 -4
  653. package/package.json +1 -1
  654. package/themes/avocado.d.ts +6 -1
  655. package/themes/avocado.js +3 -3
  656. package/themes/avocado.js.map +1 -1
  657. package/themes/avocado.src.d.ts +6 -1
  658. package/themes/avocado.src.js +53 -22
  659. package/themes/dark-blue.d.ts +6 -1
  660. package/themes/dark-blue.js +3 -3
  661. package/themes/dark-blue.js.map +1 -1
  662. package/themes/dark-blue.src.d.ts +6 -1
  663. package/themes/dark-blue.src.js +231 -205
  664. package/themes/dark-green.d.ts +6 -1
  665. package/themes/dark-green.js +4 -4
  666. package/themes/dark-green.js.map +1 -1
  667. package/themes/dark-green.src.d.ts +6 -1
  668. package/themes/dark-green.src.js +236 -205
  669. package/themes/dark-unica.d.ts +6 -1
  670. package/themes/dark-unica.js +7 -7
  671. package/themes/dark-unica.js.map +1 -1
  672. package/themes/dark-unica.src.d.ts +6 -1
  673. package/themes/dark-unica.src.js +206 -174
  674. package/themes/gray.d.ts +6 -1
  675. package/themes/gray.js +3 -3
  676. package/themes/gray.js.map +1 -1
  677. package/themes/gray.src.d.ts +6 -1
  678. package/themes/gray.src.js +233 -207
  679. package/themes/grid-light.d.ts +6 -1
  680. package/themes/grid-light.js +4 -4
  681. package/themes/grid-light.js.map +1 -1
  682. package/themes/grid-light.src.d.ts +6 -1
  683. package/themes/grid-light.src.js +88 -57
  684. package/themes/grid.d.ts +6 -1
  685. package/themes/grid.js +3 -3
  686. package/themes/grid.js.map +1 -1
  687. package/themes/grid.src.d.ts +6 -1
  688. package/themes/grid.src.js +114 -83
  689. package/themes/high-contrast-dark.js +5 -4
  690. package/themes/high-contrast-dark.js.map +1 -1
  691. package/themes/high-contrast-dark.src.js +197 -166
  692. package/themes/high-contrast-light.js +3 -3
  693. package/themes/high-contrast-light.js.map +1 -1
  694. package/themes/high-contrast-light.src.js +54 -23
  695. package/themes/sand-signika.d.ts +6 -1
  696. package/themes/sand-signika.js +5 -5
  697. package/themes/sand-signika.js.map +1 -1
  698. package/themes/sand-signika.src.d.ts +6 -1
  699. package/themes/sand-signika.src.js +119 -88
  700. package/themes/skies.d.ts +6 -1
  701. package/themes/skies.js +5 -5
  702. package/themes/skies.js.map +1 -1
  703. package/themes/skies.src.d.ts +6 -1
  704. package/themes/skies.src.js +107 -76
  705. package/themes/sunset.d.ts +6 -1
  706. package/themes/sunset.js +3 -3
  707. package/themes/sunset.js.map +1 -1
  708. package/themes/sunset.src.d.ts +6 -1
  709. package/themes/sunset.src.js +52 -21
  710. package/es-modules/Core/Axis/ColorAxis.js +0 -1164
  711. package/es-modules/Core/Axis/HiddenAxis.js +0 -46
  712. package/es-modules/Core/Axis/PlotLineOrBand.js +0 -1051
  713. package/es-modules/Core/Series/DataLabels.js +0 -1173
  714. package/es-modules/Extensions/Exporting.js +0 -2024
  715. package/es-modules/Extensions/OfflineExporting.js +0 -621
  716. package/es-modules/Mixins/Geometry.js +0 -56
  717. package/es-modules/Mixins/GeometryCircles.js +0 -320
  718. package/es-modules/Series/Bubble/BubbleLegend.js +0 -893
@@ -1,1164 +0,0 @@
1
- /* *
2
- *
3
- * (c) 2010-2021 Torstein Honsi
4
- *
5
- * License: www.highcharts.com/license
6
- *
7
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
8
- *
9
- * */
10
- 'use strict';
11
- var __extends = (this && this.__extends) || (function () {
12
- var extendStatics = function (d, b) {
13
- extendStatics = Object.setPrototypeOf ||
14
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
15
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
16
- return extendStatics(d, b);
17
- };
18
- return function (d, b) {
19
- extendStatics(d, b);
20
- function __() { this.constructor = d; }
21
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
22
- };
23
- })();
24
- import Axis from './Axis.js';
25
- import Chart from '../Chart/Chart.js';
26
- import Color from '../Color/Color.js';
27
- var color = Color.parse;
28
- import ColorSeriesModule from '../../Mixins/ColorSeries.js';
29
- var colorPointMixin = ColorSeriesModule.colorPointMixin, colorSeriesMixin = ColorSeriesModule.colorSeriesMixin;
30
- import Fx from '../Animation/Fx.js';
31
- import H from '../Globals.js';
32
- var noop = H.noop;
33
- import Legend from '../Legend.js';
34
- import LegendSymbolMixin from '../../Mixins/LegendSymbol.js';
35
- import palette from '../Color/Palette.js';
36
- import Point from '../Series/Point.js';
37
- import Series from '../Series/Series.js';
38
- import U from '../Utilities.js';
39
- var addEvent = U.addEvent, erase = U.erase, extend = U.extend, isNumber = U.isNumber, merge = U.merge, pick = U.pick, splat = U.splat;
40
- /**
41
- * Color axis types
42
- *
43
- * @typedef {"linear"|"logarithmic"} Highcharts.ColorAxisTypeValue
44
- */
45
- ''; // detach doclet above
46
- extend(Series.prototype, colorSeriesMixin);
47
- extend(Point.prototype, colorPointMixin);
48
- Chart.prototype.collectionsWithUpdate.push('colorAxis');
49
- Chart.prototype.collectionsWithInit.colorAxis = [Chart.prototype.addColorAxis];
50
- /* eslint-disable no-invalid-this, valid-jsdoc */
51
- /**
52
- * The ColorAxis object for inclusion in gradient legends.
53
- *
54
- * @class
55
- * @name Highcharts.ColorAxis
56
- * @augments Highcharts.Axis
57
- *
58
- * @param {Highcharts.Chart} chart
59
- * The related chart of the color axis.
60
- *
61
- * @param {Highcharts.ColorAxisOptions} userOptions
62
- * The color axis options for initialization.
63
- */
64
- var ColorAxis = /** @class */ (function (_super) {
65
- __extends(ColorAxis, _super);
66
- /* *
67
- *
68
- * Constructors
69
- *
70
- * */
71
- /**
72
- * @private
73
- */
74
- function ColorAxis(chart, userOptions) {
75
- var _this = _super.call(this, chart, userOptions) || this;
76
- _this.beforePadding = false; // Prevents unnecessary padding with `hc-more`
77
- _this.chart = void 0;
78
- _this.coll = 'colorAxis';
79
- _this.dataClasses = void 0;
80
- _this.legendItem = void 0;
81
- _this.legendItems = void 0;
82
- _this.name = ''; // Prevents 'undefined' in legend in IE8
83
- _this.options = void 0;
84
- _this.stops = void 0;
85
- _this.visible = true;
86
- _this.init(chart, userOptions);
87
- return _this;
88
- }
89
- /* *
90
- *
91
- * Functions
92
- *
93
- * */
94
- /**
95
- * Initializes the color axis.
96
- *
97
- * @function Highcharts.ColorAxis#init
98
- *
99
- * @param {Highcharts.Chart} chart
100
- * The related chart of the color axis.
101
- *
102
- * @param {Highcharts.ColorAxisOptions} userOptions
103
- * The color axis options for initialization.
104
- */
105
- ColorAxis.prototype.init = function (chart, userOptions) {
106
- var axis = this;
107
- var legend = chart.options.legend || {}, horiz = userOptions.layout ?
108
- userOptions.layout !== 'vertical' :
109
- legend.layout !== 'vertical';
110
- var options = merge(ColorAxis.defaultColorAxisOptions, userOptions, {
111
- showEmpty: false,
112
- title: null,
113
- visible: legend.enabled &&
114
- (userOptions ? userOptions.visible !== false : true)
115
- });
116
- axis.coll = 'colorAxis';
117
- axis.side = userOptions.side || horiz ? 2 : 1;
118
- axis.reversed = userOptions.reversed || !horiz;
119
- axis.opposite = !horiz;
120
- _super.prototype.init.call(this, chart, options);
121
- // Base init() pushes it to the xAxis array, now pop it again
122
- // chart[this.isXAxis ? 'xAxis' : 'yAxis'].pop();
123
- // Prepare data classes
124
- if (userOptions.dataClasses) {
125
- axis.initDataClasses(userOptions);
126
- }
127
- axis.initStops();
128
- // Override original axis properties
129
- axis.horiz = horiz;
130
- axis.zoomEnabled = false;
131
- };
132
- /**
133
- * @private
134
- */
135
- ColorAxis.prototype.initDataClasses = function (userOptions) {
136
- var axis = this;
137
- var chart = axis.chart, dataClasses, colorCounter = 0, colorCount = chart.options.chart.colorCount, options = axis.options, len = userOptions.dataClasses.length;
138
- axis.dataClasses = dataClasses = [];
139
- axis.legendItems = [];
140
- userOptions.dataClasses.forEach(function (dataClass, i) {
141
- var colors;
142
- dataClass = merge(dataClass);
143
- dataClasses.push(dataClass);
144
- if (!chart.styledMode && dataClass.color) {
145
- return;
146
- }
147
- if (options.dataClassColor === 'category') {
148
- if (!chart.styledMode) {
149
- colors = chart.options.colors;
150
- colorCount = colors.length;
151
- dataClass.color = colors[colorCounter];
152
- }
153
- dataClass.colorIndex = colorCounter;
154
- // increase and loop back to zero
155
- colorCounter++;
156
- if (colorCounter === colorCount) {
157
- colorCounter = 0;
158
- }
159
- }
160
- else {
161
- dataClass.color = color(options.minColor).tweenTo(color(options.maxColor), len < 2 ? 0.5 : i / (len - 1) // #3219
162
- );
163
- }
164
- });
165
- };
166
- /**
167
- * Returns true if the series has points at all.
168
- *
169
- * @function Highcharts.ColorAxis#hasData
170
- *
171
- * @return {boolean}
172
- * True, if the series has points, otherwise false.
173
- */
174
- ColorAxis.prototype.hasData = function () {
175
- return !!(this.tickPositions || []).length;
176
- };
177
- /**
178
- * Override so that ticks are not added in data class axes (#6914)
179
- * @private
180
- */
181
- ColorAxis.prototype.setTickPositions = function () {
182
- if (!this.dataClasses) {
183
- return _super.prototype.setTickPositions.call(this);
184
- }
185
- };
186
- /**
187
- * @private
188
- */
189
- ColorAxis.prototype.initStops = function () {
190
- var axis = this;
191
- axis.stops = axis.options.stops || [
192
- [0, axis.options.minColor],
193
- [1, axis.options.maxColor]
194
- ];
195
- axis.stops.forEach(function (stop) {
196
- stop.color = color(stop[1]);
197
- });
198
- };
199
- /**
200
- * Extend the setOptions method to process extreme colors and color stops.
201
- * @private
202
- */
203
- ColorAxis.prototype.setOptions = function (userOptions) {
204
- var axis = this;
205
- _super.prototype.setOptions.call(this, userOptions);
206
- axis.options.crosshair = axis.options.marker;
207
- };
208
- /**
209
- * @private
210
- */
211
- ColorAxis.prototype.setAxisSize = function () {
212
- var axis = this;
213
- var symbol = axis.legendSymbol;
214
- var chart = axis.chart;
215
- var legendOptions = chart.options.legend || {};
216
- var x, y, width, height;
217
- if (symbol) {
218
- this.left = x = symbol.attr('x');
219
- this.top = y = symbol.attr('y');
220
- this.width = width = symbol.attr('width');
221
- this.height = height = symbol.attr('height');
222
- this.right = chart.chartWidth - x - width;
223
- this.bottom = chart.chartHeight - y - height;
224
- this.len = this.horiz ? width : height;
225
- this.pos = this.horiz ? x : y;
226
- }
227
- else {
228
- // Fake length for disabled legend to avoid tick issues
229
- // and such (#5205)
230
- this.len = (this.horiz ?
231
- legendOptions.symbolWidth :
232
- legendOptions.symbolHeight) || ColorAxis.defaultLegendLength;
233
- }
234
- };
235
- /**
236
- * @private
237
- */
238
- ColorAxis.prototype.normalizedValue = function (value) {
239
- var axis = this;
240
- if (axis.logarithmic) {
241
- value = axis.logarithmic.log2lin(value);
242
- }
243
- return 1 - ((axis.max - value) /
244
- ((axis.max - axis.min) || 1));
245
- };
246
- /**
247
- * Translate from a value to a color.
248
- * @private
249
- */
250
- ColorAxis.prototype.toColor = function (value, point) {
251
- var axis = this;
252
- var dataClasses = axis.dataClasses;
253
- var stops = axis.stops;
254
- var pos, from, to, color, dataClass, i;
255
- if (dataClasses) {
256
- i = dataClasses.length;
257
- while (i--) {
258
- dataClass = dataClasses[i];
259
- from = dataClass.from;
260
- to = dataClass.to;
261
- if ((typeof from === 'undefined' || value >= from) &&
262
- (typeof to === 'undefined' || value <= to)) {
263
- color = dataClass.color;
264
- if (point) {
265
- point.dataClass = i;
266
- point.colorIndex = dataClass.colorIndex;
267
- }
268
- break;
269
- }
270
- }
271
- }
272
- else {
273
- pos = axis.normalizedValue(value);
274
- i = stops.length;
275
- while (i--) {
276
- if (pos > stops[i][0]) {
277
- break;
278
- }
279
- }
280
- from = stops[i] || stops[i + 1];
281
- to = stops[i + 1] || from;
282
- // The position within the gradient
283
- pos = 1 - (to[0] - pos) / ((to[0] - from[0]) || 1);
284
- color = from.color.tweenTo(to.color, pos);
285
- }
286
- return color;
287
- };
288
- /**
289
- * Override the getOffset method to add the whole axis groups inside the
290
- * legend.
291
- * @private
292
- */
293
- ColorAxis.prototype.getOffset = function () {
294
- var axis = this;
295
- var group = axis.legendGroup;
296
- var sideOffset = axis.chart.axisOffset[axis.side];
297
- if (group) {
298
- // Hook for the getOffset method to add groups to this parent
299
- // group
300
- axis.axisParent = group;
301
- // Call the base
302
- _super.prototype.getOffset.call(this);
303
- // First time only
304
- if (!axis.added) {
305
- axis.added = true;
306
- axis.labelLeft = 0;
307
- axis.labelRight = axis.width;
308
- }
309
- // Reset it to avoid color axis reserving space
310
- axis.chart.axisOffset[axis.side] = sideOffset;
311
- }
312
- };
313
- /**
314
- * Create the color gradient.
315
- * @private
316
- */
317
- ColorAxis.prototype.setLegendColor = function () {
318
- var axis = this;
319
- var horiz = axis.horiz;
320
- var reversed = axis.reversed;
321
- var one = reversed ? 1 : 0;
322
- var zero = reversed ? 0 : 1;
323
- var grad = horiz ? [one, 0, zero, 0] : [0, zero, 0, one]; // #3190
324
- axis.legendColor = {
325
- linearGradient: {
326
- x1: grad[0],
327
- y1: grad[1],
328
- x2: grad[2],
329
- y2: grad[3]
330
- },
331
- stops: axis.stops
332
- };
333
- };
334
- /**
335
- * The color axis appears inside the legend and has its own legend symbol.
336
- * @private
337
- */
338
- ColorAxis.prototype.drawLegendSymbol = function (legend, item) {
339
- var axis = this;
340
- var padding = legend.padding;
341
- var legendOptions = legend.options;
342
- var horiz = axis.horiz;
343
- var width = pick(legendOptions.symbolWidth, horiz ? ColorAxis.defaultLegendLength : 12);
344
- var height = pick(legendOptions.symbolHeight, horiz ? 12 : ColorAxis.defaultLegendLength);
345
- var labelPadding = pick(legendOptions.labelPadding, horiz ? 16 : 30);
346
- var itemDistance = pick(legendOptions.itemDistance, 10);
347
- this.setLegendColor();
348
- // Create the gradient
349
- item.legendSymbol = this.chart.renderer.rect(0, legend.baseline - 11, width, height).attr({
350
- zIndex: 1
351
- }).add(item.legendGroup);
352
- // Set how much space this legend item takes up
353
- axis.legendItemWidth = width + padding + (horiz ? itemDistance : labelPadding);
354
- axis.legendItemHeight = height + padding + (horiz ? labelPadding : 0);
355
- };
356
- /**
357
- * Fool the legend.
358
- * @private
359
- */
360
- ColorAxis.prototype.setState = function (state) {
361
- this.series.forEach(function (series) {
362
- series.setState(state);
363
- });
364
- };
365
- /**
366
- * @private
367
- */
368
- ColorAxis.prototype.setVisible = function () {
369
- };
370
- /**
371
- * @private
372
- */
373
- ColorAxis.prototype.getSeriesExtremes = function () {
374
- var axis = this;
375
- var series = axis.series;
376
- var colorValArray, colorKey, colorValIndex, pointArrayMap, calculatedExtremes, cSeries, i = series.length, yData, j;
377
- this.dataMin = Infinity;
378
- this.dataMax = -Infinity;
379
- while (i--) { // x, y, value, other
380
- cSeries = series[i];
381
- colorKey = cSeries.colorKey = pick(cSeries.options.colorKey, cSeries.colorKey, cSeries.pointValKey, cSeries.zoneAxis, 'y');
382
- pointArrayMap = cSeries.pointArrayMap;
383
- calculatedExtremes = cSeries[colorKey + 'Min'] &&
384
- cSeries[colorKey + 'Max'];
385
- if (cSeries[colorKey + 'Data']) {
386
- colorValArray = cSeries[colorKey + 'Data'];
387
- }
388
- else {
389
- if (!pointArrayMap) {
390
- colorValArray = cSeries.yData;
391
- }
392
- else {
393
- colorValArray = [];
394
- colorValIndex = pointArrayMap.indexOf(colorKey);
395
- yData = cSeries.yData;
396
- if (colorValIndex >= 0 && yData) {
397
- for (j = 0; j < yData.length; j++) {
398
- colorValArray.push(pick(yData[j][colorValIndex], yData[j]));
399
- }
400
- }
401
- }
402
- }
403
- // If color key extremes are already calculated, use them.
404
- if (calculatedExtremes) {
405
- cSeries.minColorValue = cSeries[colorKey + 'Min'];
406
- cSeries.maxColorValue = cSeries[colorKey + 'Max'];
407
- }
408
- else {
409
- var cExtremes = Series.prototype.getExtremes.call(cSeries, colorValArray);
410
- cSeries.minColorValue = cExtremes.dataMin;
411
- cSeries.maxColorValue = cExtremes.dataMax;
412
- }
413
- if (typeof cSeries.minColorValue !== 'undefined') {
414
- this.dataMin =
415
- Math.min(this.dataMin, cSeries.minColorValue);
416
- this.dataMax =
417
- Math.max(this.dataMax, cSeries.maxColorValue);
418
- }
419
- if (!calculatedExtremes) {
420
- Series.prototype.applyExtremes.call(cSeries);
421
- }
422
- }
423
- };
424
- /**
425
- * Internal function to draw a crosshair.
426
- *
427
- * @function Highcharts.ColorAxis#drawCrosshair
428
- *
429
- * @param {Highcharts.PointerEventObject} [e]
430
- * The event arguments from the modified pointer event, extended with
431
- * `chartX` and `chartY`
432
- *
433
- * @param {Highcharts.Point} [point]
434
- * The Point object if the crosshair snaps to points.
435
- *
436
- * @fires Highcharts.ColorAxis#event:afterDrawCrosshair
437
- * @fires Highcharts.ColorAxis#event:drawCrosshair
438
- */
439
- ColorAxis.prototype.drawCrosshair = function (e, point) {
440
- var axis = this;
441
- var plotX = point && point.plotX;
442
- var plotY = point && point.plotY;
443
- var axisPos = axis.pos;
444
- var axisLen = axis.len;
445
- var crossPos;
446
- if (point) {
447
- crossPos = axis.toPixels(point.getNestedProperty(point.series.colorKey));
448
- if (crossPos < axisPos) {
449
- crossPos = axisPos - 2;
450
- }
451
- else if (crossPos > axisPos + axisLen) {
452
- crossPos = axisPos + axisLen + 2;
453
- }
454
- point.plotX = crossPos;
455
- point.plotY = axis.len - crossPos;
456
- _super.prototype.drawCrosshair.call(this, e, point);
457
- point.plotX = plotX;
458
- point.plotY = plotY;
459
- if (axis.cross &&
460
- !axis.cross.addedToColorAxis &&
461
- axis.legendGroup) {
462
- axis.cross
463
- .addClass('highcharts-coloraxis-marker')
464
- .add(axis.legendGroup);
465
- axis.cross.addedToColorAxis = true;
466
- if (!axis.chart.styledMode &&
467
- typeof axis.crosshair === 'object') {
468
- axis.cross.attr({
469
- fill: axis.crosshair.color
470
- });
471
- }
472
- }
473
- }
474
- };
475
- /**
476
- * @private
477
- */
478
- ColorAxis.prototype.getPlotLinePath = function (options) {
479
- var axis = this, left = axis.left, pos = options.translatedValue, top = axis.top;
480
- // crosshairs only
481
- return isNumber(pos) ? // pos can be 0 (#3969)
482
- (axis.horiz ? [
483
- ['M', pos - 4, top - 6],
484
- ['L', pos + 4, top - 6],
485
- ['L', pos, top],
486
- ['Z']
487
- ] : [
488
- ['M', left, pos],
489
- ['L', left - 6, pos + 6],
490
- ['L', left - 6, pos - 6],
491
- ['Z']
492
- ]) :
493
- _super.prototype.getPlotLinePath.call(this, options);
494
- };
495
- /**
496
- * Updates a color axis instance with a new set of options. The options are
497
- * merged with the existing options, so only new or altered options need to
498
- * be specified.
499
- *
500
- * @function Highcharts.ColorAxis#update
501
- *
502
- * @param {Highcharts.ColorAxisOptions} newOptions
503
- * The new options that will be merged in with existing options on the color
504
- * axis.
505
- *
506
- * @param {boolean} [redraw]
507
- * Whether to redraw the chart after the color axis is altered. If doing
508
- * more operations on the chart, it is a good idea to set redraw to `false`
509
- * and call {@link Highcharts.Chart#redraw} after.
510
- */
511
- ColorAxis.prototype.update = function (newOptions, redraw) {
512
- var axis = this, chart = axis.chart, legend = chart.legend;
513
- this.series.forEach(function (series) {
514
- // Needed for Axis.update when choropleth colors change
515
- series.isDirtyData = true;
516
- });
517
- // When updating data classes, destroy old items and make sure new
518
- // ones are created (#3207)
519
- if (newOptions.dataClasses && legend.allItems || axis.dataClasses) {
520
- axis.destroyItems();
521
- }
522
- _super.prototype.update.call(this, newOptions, redraw);
523
- if (axis.legendItem) {
524
- axis.setLegendColor();
525
- legend.colorizeItem(this, true);
526
- }
527
- };
528
- /**
529
- * Destroy color axis legend items.
530
- * @private
531
- */
532
- ColorAxis.prototype.destroyItems = function () {
533
- var axis = this;
534
- var chart = axis.chart;
535
- if (axis.legendItem) {
536
- chart.legend.destroyItem(axis);
537
- }
538
- else if (axis.legendItems) {
539
- axis.legendItems.forEach(function (item) {
540
- chart.legend.destroyItem(item);
541
- });
542
- }
543
- chart.isDirtyLegend = true;
544
- };
545
- // Removing the whole axis (#14283)
546
- ColorAxis.prototype.destroy = function () {
547
- this.chart.isDirtyLegend = true;
548
- this.destroyItems();
549
- _super.prototype.destroy.apply(this, [].slice.call(arguments));
550
- };
551
- /**
552
- * Removes the color axis and the related legend item.
553
- *
554
- * @function Highcharts.ColorAxis#remove
555
- *
556
- * @param {boolean} [redraw=true]
557
- * Whether to redraw the chart following the remove.
558
- */
559
- ColorAxis.prototype.remove = function (redraw) {
560
- this.destroyItems();
561
- _super.prototype.remove.call(this, redraw);
562
- };
563
- /**
564
- * Get the legend item symbols for data classes.
565
- * @private
566
- */
567
- ColorAxis.prototype.getDataClassLegendSymbols = function () {
568
- var axis = this;
569
- var chart = axis.chart;
570
- var legendItems = axis.legendItems;
571
- var legendOptions = chart.options.legend;
572
- var valueDecimals = legendOptions.valueDecimals;
573
- var valueSuffix = legendOptions.valueSuffix || '';
574
- var name;
575
- if (!legendItems.length) {
576
- axis.dataClasses.forEach(function (dataClass, i) {
577
- var vis = true, from = dataClass.from, to = dataClass.to;
578
- var numberFormatter = chart.numberFormatter;
579
- // Assemble the default name. This can be overridden
580
- // by legend.options.labelFormatter
581
- name = '';
582
- if (typeof from === 'undefined') {
583
- name = '< ';
584
- }
585
- else if (typeof to === 'undefined') {
586
- name = '> ';
587
- }
588
- if (typeof from !== 'undefined') {
589
- name += numberFormatter(from, valueDecimals) + valueSuffix;
590
- }
591
- if (typeof from !== 'undefined' && typeof to !== 'undefined') {
592
- name += ' - ';
593
- }
594
- if (typeof to !== 'undefined') {
595
- name += numberFormatter(to, valueDecimals) + valueSuffix;
596
- }
597
- // Add a mock object to the legend items
598
- legendItems.push(extend({
599
- chart: chart,
600
- name: name,
601
- options: {},
602
- drawLegendSymbol: LegendSymbolMixin.drawRectangle,
603
- visible: true,
604
- setState: noop,
605
- isDataClass: true,
606
- setVisible: function () {
607
- vis = axis.visible = !vis;
608
- axis.series.forEach(function (series) {
609
- series.points.forEach(function (point) {
610
- if (point.dataClass === i) {
611
- point.setVisible(vis);
612
- }
613
- });
614
- });
615
- chart.legend.colorizeItem(this, vis);
616
- }
617
- }, dataClass));
618
- });
619
- }
620
- return legendItems;
621
- };
622
- /* *
623
- *
624
- * Static Functions
625
- *
626
- * */
627
- ColorAxis.defaultLegendLength = 200;
628
- /**
629
- * A color axis for series. Visually, the color
630
- * axis will appear as a gradient or as separate items inside the
631
- * legend, depending on whether the axis is scalar or based on data
632
- * classes.
633
- *
634
- * For supported color formats, see the
635
- * [docs article about colors](https://www.highcharts.com/docs/chart-design-and-style/colors).
636
- *
637
- * A scalar color axis is represented by a gradient. The colors either
638
- * range between the [minColor](#colorAxis.minColor) and the
639
- * [maxColor](#colorAxis.maxColor), or for more fine grained control the
640
- * colors can be defined in [stops](#colorAxis.stops). Often times, the
641
- * color axis needs to be adjusted to get the right color spread for the
642
- * data. In addition to stops, consider using a logarithmic
643
- * [axis type](#colorAxis.type), or setting [min](#colorAxis.min) and
644
- * [max](#colorAxis.max) to avoid the colors being determined by
645
- * outliers.
646
- *
647
- * When [dataClasses](#colorAxis.dataClasses) are used, the ranges are
648
- * subdivided into separate classes like categories based on their
649
- * values. This can be used for ranges between two values, but also for
650
- * a true category. However, when your data is categorized, it may be as
651
- * convenient to add each category to a separate series.
652
- *
653
- * Color axis does not work with: `sankey`, `sunburst`, `dependencywheel`,
654
- * `networkgraph`, `wordcloud`, `venn`, `gauge` and `solidgauge` series
655
- * types.
656
- *
657
- * Since v7.2.0 `colorAxis` can also be an array of options objects.
658
- *
659
- * See [the Axis object](/class-reference/Highcharts.Axis) for
660
- * programmatic access to the axis.
661
- *
662
- * @sample {highcharts} highcharts/coloraxis/custom-color-key
663
- * Column chart with color axis
664
- * @sample {highcharts} highcharts/coloraxis/horizontal-layout
665
- * Horizontal layout
666
- * @sample {highmaps} maps/coloraxis/dataclasscolor
667
- * With data classes
668
- * @sample {highmaps} maps/coloraxis/mincolor-maxcolor
669
- * Min color and max color
670
- *
671
- * @extends xAxis
672
- * @excluding alignTicks, allowDecimals, alternateGridColor, breaks,
673
- * categories, crosshair, dateTimeLabelFormats, height, left,
674
- * lineWidth, linkedTo, maxZoom, minRange, minTickInterval,
675
- * offset, opposite, pane, plotBands, plotLines,
676
- * reversedStacks, showEmpty, title, top, width, zoomEnabled
677
- * @product highcharts highstock highmaps
678
- * @type {*|Array<*>}
679
- * @optionparent colorAxis
680
- * @ignore
681
- */
682
- ColorAxis.defaultColorAxisOptions = {
683
- /**
684
- * Whether to allow decimals on the color axis.
685
- * @type {boolean}
686
- * @default true
687
- * @product highcharts highstock highmaps
688
- * @apioption colorAxis.allowDecimals
689
- */
690
- /**
691
- * Determines how to set each data class' color if no individual
692
- * color is set. The default value, `tween`, computes intermediate
693
- * colors between `minColor` and `maxColor`. The other possible
694
- * value, `category`, pulls colors from the global or chart specific
695
- * [colors](#colors) array.
696
- *
697
- * @sample {highmaps} maps/coloraxis/dataclasscolor/
698
- * Category colors
699
- *
700
- * @type {string}
701
- * @default tween
702
- * @product highcharts highstock highmaps
703
- * @validvalue ["tween", "category"]
704
- * @apioption colorAxis.dataClassColor
705
- */
706
- /**
707
- * An array of data classes or ranges for the choropleth map. If
708
- * none given, the color axis is scalar and values are distributed
709
- * as a gradient between the minimum and maximum colors.
710
- *
711
- * @sample {highmaps} maps/demo/data-class-ranges/
712
- * Multiple ranges
713
- *
714
- * @sample {highmaps} maps/demo/data-class-two-ranges/
715
- * Two ranges
716
- *
717
- * @type {Array<*>}
718
- * @product highcharts highstock highmaps
719
- * @apioption colorAxis.dataClasses
720
- */
721
- /**
722
- * The layout of the color axis. Can be `'horizontal'` or `'vertical'`.
723
- * If none given, the color axis has the same layout as the legend.
724
- *
725
- * @sample highcharts/coloraxis/horizontal-layout/
726
- * Horizontal color axis layout with vertical legend
727
- *
728
- * @type {string|undefined}
729
- * @since 7.2.0
730
- * @product highcharts highstock highmaps
731
- * @apioption colorAxis.layout
732
- */
733
- /**
734
- * The color of each data class. If not set, the color is pulled
735
- * from the global or chart-specific [colors](#colors) array. In
736
- * styled mode, this option is ignored. Instead, use colors defined
737
- * in CSS.
738
- *
739
- * @sample {highmaps} maps/demo/data-class-two-ranges/
740
- * Explicit colors
741
- *
742
- * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
743
- * @product highcharts highstock highmaps
744
- * @apioption colorAxis.dataClasses.color
745
- */
746
- /**
747
- * The start of the value range that the data class represents,
748
- * relating to the point value.
749
- *
750
- * The range of each `dataClass` is closed in both ends, but can be
751
- * overridden by the next `dataClass`.
752
- *
753
- * @type {number}
754
- * @product highcharts highstock highmaps
755
- * @apioption colorAxis.dataClasses.from
756
- */
757
- /**
758
- * The name of the data class as it appears in the legend.
759
- * If no name is given, it is automatically created based on the
760
- * `from` and `to` values. For full programmatic control,
761
- * [legend.labelFormatter](#legend.labelFormatter) can be used.
762
- * In the formatter, `this.from` and `this.to` can be accessed.
763
- *
764
- * @sample {highmaps} maps/coloraxis/dataclasses-name/
765
- * Named data classes
766
- *
767
- * @sample {highmaps} maps/coloraxis/dataclasses-labelformatter/
768
- * Formatted data classes
769
- *
770
- * @type {string}
771
- * @product highcharts highstock highmaps
772
- * @apioption colorAxis.dataClasses.name
773
- */
774
- /**
775
- * The end of the value range that the data class represents,
776
- * relating to the point value.
777
- *
778
- * The range of each `dataClass` is closed in both ends, but can be
779
- * overridden by the next `dataClass`.
780
- *
781
- * @type {number}
782
- * @product highcharts highstock highmaps
783
- * @apioption colorAxis.dataClasses.to
784
- */
785
- /** @ignore-option */
786
- lineWidth: 0,
787
- /**
788
- * Padding of the min value relative to the length of the axis. A
789
- * padding of 0.05 will make a 100px axis 5px longer.
790
- *
791
- * @product highcharts highstock highmaps
792
- */
793
- minPadding: 0,
794
- /**
795
- * The maximum value of the axis in terms of map point values. If
796
- * `null`, the max value is automatically calculated. If the
797
- * `endOnTick` option is true, the max value might be rounded up.
798
- *
799
- * @sample {highmaps} maps/coloraxis/gridlines/
800
- * Explicit min and max to reduce the effect of outliers
801
- *
802
- * @type {number}
803
- * @product highcharts highstock highmaps
804
- * @apioption colorAxis.max
805
- */
806
- /**
807
- * The minimum value of the axis in terms of map point values. If
808
- * `null`, the min value is automatically calculated. If the
809
- * `startOnTick` option is true, the min value might be rounded
810
- * down.
811
- *
812
- * @sample {highmaps} maps/coloraxis/gridlines/
813
- * Explicit min and max to reduce the effect of outliers
814
- *
815
- * @type {number}
816
- * @product highcharts highstock highmaps
817
- * @apioption colorAxis.min
818
- */
819
- /**
820
- * Padding of the max value relative to the length of the axis. A
821
- * padding of 0.05 will make a 100px axis 5px longer.
822
- *
823
- * @product highcharts highstock highmaps
824
- */
825
- maxPadding: 0,
826
- /**
827
- * Color of the grid lines extending from the axis across the
828
- * gradient.
829
- *
830
- * @sample {highmaps} maps/coloraxis/gridlines/
831
- * Grid lines demonstrated
832
- *
833
- * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
834
- * @default #e6e6e6
835
- * @product highcharts highstock highmaps
836
- * @apioption colorAxis.gridLineColor
837
- */
838
- /**
839
- * The width of the grid lines extending from the axis across the
840
- * gradient of a scalar color axis.
841
- *
842
- * @sample {highmaps} maps/coloraxis/gridlines/
843
- * Grid lines demonstrated
844
- *
845
- * @product highcharts highstock highmaps
846
- */
847
- gridLineWidth: 1,
848
- /**
849
- * The interval of the tick marks in axis units. When `null`, the
850
- * tick interval is computed to approximately follow the
851
- * `tickPixelInterval`.
852
- *
853
- * @type {number}
854
- * @product highcharts highstock highmaps
855
- * @apioption colorAxis.tickInterval
856
- */
857
- /**
858
- * If [tickInterval](#colorAxis.tickInterval) is `null` this option
859
- * sets the approximate pixel interval of the tick marks.
860
- *
861
- * @product highcharts highstock highmaps
862
- */
863
- tickPixelInterval: 72,
864
- /**
865
- * Whether to force the axis to start on a tick. Use this option
866
- * with the `maxPadding` option to control the axis start.
867
- *
868
- * @product highcharts highstock highmaps
869
- */
870
- startOnTick: true,
871
- /**
872
- * Whether to force the axis to end on a tick. Use this option with
873
- * the [maxPadding](#colorAxis.maxPadding) option to control the
874
- * axis end.
875
- *
876
- * @product highcharts highstock highmaps
877
- */
878
- endOnTick: true,
879
- /** @ignore */
880
- offset: 0,
881
- /**
882
- * The triangular marker on a scalar color axis that points to the
883
- * value of the hovered area. To disable the marker, set
884
- * `marker: null`.
885
- *
886
- * @sample {highmaps} maps/coloraxis/marker/
887
- * Black marker
888
- *
889
- * @declare Highcharts.PointMarkerOptionsObject
890
- * @product highcharts highstock highmaps
891
- */
892
- marker: {
893
- /**
894
- * Animation for the marker as it moves between values. Set to
895
- * `false` to disable animation. Defaults to `{ duration: 50 }`.
896
- *
897
- * @type {boolean|Partial<Highcharts.AnimationOptionsObject>}
898
- * @product highcharts highstock highmaps
899
- */
900
- animation: {
901
- /** @internal */
902
- duration: 50
903
- },
904
- /** @internal */
905
- width: 0.01,
906
- /**
907
- * The color of the marker.
908
- *
909
- * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
910
- * @product highcharts highstock highmaps
911
- */
912
- color: palette.neutralColor40
913
- },
914
- /**
915
- * The axis labels show the number for each tick.
916
- *
917
- * For more live examples on label options, see [xAxis.labels in the
918
- * Highcharts API.](/highcharts#xAxis.labels)
919
- *
920
- * @extends xAxis.labels
921
- * @product highcharts highstock highmaps
922
- */
923
- labels: {
924
- /**
925
- * How to handle overflowing labels on horizontal color axis. If set
926
- * to `"allow"`, it will not be aligned at all. By default it
927
- * `"justify"` labels inside the chart area. If there is room to
928
- * move it, it will be aligned to the edge, else it will be removed.
929
- *
930
- * @validvalue ["allow", "justify"]
931
- * @product highcharts highstock highmaps
932
- */
933
- overflow: 'justify',
934
- rotation: 0
935
- },
936
- /**
937
- * The color to represent the minimum of the color axis. Unless
938
- * [dataClasses](#colorAxis.dataClasses) or
939
- * [stops](#colorAxis.stops) are set, the gradient starts at this
940
- * value.
941
- *
942
- * If dataClasses are set, the color is based on minColor and
943
- * maxColor unless a color is set for each data class, or the
944
- * [dataClassColor](#colorAxis.dataClassColor) is set.
945
- *
946
- * @sample {highmaps} maps/coloraxis/mincolor-maxcolor/
947
- * Min and max colors on scalar (gradient) axis
948
- * @sample {highmaps} maps/coloraxis/mincolor-maxcolor-dataclasses/
949
- * On data classes
950
- *
951
- * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
952
- * @product highcharts highstock highmaps
953
- */
954
- minColor: palette.highlightColor10,
955
- /**
956
- * The color to represent the maximum of the color axis. Unless
957
- * [dataClasses](#colorAxis.dataClasses) or
958
- * [stops](#colorAxis.stops) are set, the gradient ends at this
959
- * value.
960
- *
961
- * If dataClasses are set, the color is based on minColor and
962
- * maxColor unless a color is set for each data class, or the
963
- * [dataClassColor](#colorAxis.dataClassColor) is set.
964
- *
965
- * @sample {highmaps} maps/coloraxis/mincolor-maxcolor/
966
- * Min and max colors on scalar (gradient) axis
967
- * @sample {highmaps} maps/coloraxis/mincolor-maxcolor-dataclasses/
968
- * On data classes
969
- *
970
- * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
971
- * @product highcharts highstock highmaps
972
- */
973
- maxColor: palette.highlightColor100,
974
- /**
975
- * Color stops for the gradient of a scalar color axis. Use this in
976
- * cases where a linear gradient between a `minColor` and `maxColor`
977
- * is not sufficient. The stops is an array of tuples, where the
978
- * first item is a float between 0 and 1 assigning the relative
979
- * position in the gradient, and the second item is the color.
980
- *
981
- * @sample {highmaps} maps/demo/heatmap/
982
- * Heatmap with three color stops
983
- *
984
- * @type {Array<Array<number,Highcharts.ColorString>>}
985
- * @product highcharts highstock highmaps
986
- * @apioption colorAxis.stops
987
- */
988
- /**
989
- * The pixel length of the main tick marks on the color axis.
990
- */
991
- tickLength: 5,
992
- /**
993
- * The type of interpolation to use for the color axis. Can be
994
- * `linear` or `logarithmic`.
995
- *
996
- * @sample highcharts/coloraxis/logarithmic-with-emulate-negative-values/
997
- * Logarithmic color axis with extension to emulate negative
998
- * values
999
- *
1000
- * @type {Highcharts.ColorAxisTypeValue}
1001
- * @default linear
1002
- * @product highcharts highstock highmaps
1003
- * @apioption colorAxis.type
1004
- */
1005
- /**
1006
- * Whether to reverse the axis so that the highest number is closest
1007
- * to the origin. Defaults to `false` in a horizontal legend and
1008
- * `true` in a vertical legend, where the smallest value starts on
1009
- * top.
1010
- *
1011
- * @type {boolean}
1012
- * @product highcharts highstock highmaps
1013
- * @apioption colorAxis.reversed
1014
- */
1015
- /**
1016
- * @product highcharts highstock highmaps
1017
- * @excluding afterBreaks, pointBreak, pointInBreak
1018
- * @apioption colorAxis.events
1019
- */
1020
- /**
1021
- * Fires when the legend item belonging to the colorAxis is clicked.
1022
- * One parameter, `event`, is passed to the function.
1023
- *
1024
- * @type {Function}
1025
- * @product highcharts highstock highmaps
1026
- * @apioption colorAxis.events.legendItemClick
1027
- */
1028
- /**
1029
- * Whether to display the colorAxis in the legend.
1030
- *
1031
- * @sample highcharts/coloraxis/hidden-coloraxis-with-3d-chart/
1032
- * Hidden color axis with 3d chart
1033
- *
1034
- * @see [heatmap.showInLegend](#series.heatmap.showInLegend)
1035
- *
1036
- * @since 4.2.7
1037
- * @product highcharts highstock highmaps
1038
- */
1039
- showInLegend: true
1040
- };
1041
- /**
1042
- * @private
1043
- */
1044
- ColorAxis.keepProps = [
1045
- 'legendGroup',
1046
- 'legendItemHeight',
1047
- 'legendItemWidth',
1048
- 'legendItem',
1049
- 'legendSymbol'
1050
- ];
1051
- return ColorAxis;
1052
- }(Axis));
1053
- // Properties to preserve after destroy, for Axis.update (#5881, #6025).
1054
- Array.prototype.push.apply(Axis.keepProps, ColorAxis.keepProps);
1055
- H.ColorAxis = ColorAxis;
1056
- /**
1057
- * Handle animation of the color attributes directly
1058
- *
1059
- * @private
1060
- * @function Highcharts.Fx#fillSetter
1061
- */ /**
1062
- * Handle animation of the color attributes directly
1063
- *
1064
- * @private
1065
- * @function Highcharts.Fx#strokeSetter
1066
- */
1067
- ['fill', 'stroke'].forEach(function (prop) {
1068
- Fx.prototype[prop + 'Setter'] = function () {
1069
- this.elem.attr(prop, color(this.start).tweenTo(color(this.end), this.pos), null, true);
1070
- };
1071
- });
1072
- // Extend the chart getAxes method to also get the color axis
1073
- addEvent(Chart, 'afterGetAxes', function () {
1074
- var chart = this, options = chart.options;
1075
- this.colorAxis = [];
1076
- if (options.colorAxis) {
1077
- options.colorAxis = splat(options.colorAxis);
1078
- options.colorAxis.forEach(function (axisOptions, i) {
1079
- axisOptions.index = i;
1080
- new ColorAxis(chart, axisOptions); // eslint-disable-line no-new
1081
- });
1082
- }
1083
- });
1084
- // Add colorAxis to series axisTypes
1085
- addEvent(Series, 'bindAxes', function () {
1086
- var axisTypes = this.axisTypes;
1087
- if (!axisTypes) {
1088
- this.axisTypes = ['colorAxis'];
1089
- }
1090
- else if (axisTypes.indexOf('colorAxis') === -1) {
1091
- axisTypes.push('colorAxis');
1092
- }
1093
- });
1094
- // Add the color axis. This also removes the axis' own series to prevent
1095
- // them from showing up individually.
1096
- addEvent(Legend, 'afterGetAllItems', function (e) {
1097
- var _this = this;
1098
- var colorAxisItems = [], colorAxes = this.chart.colorAxis || [], options, i;
1099
- var destroyItem = function (item) {
1100
- var i = e.allItems.indexOf(item);
1101
- if (i !== -1) {
1102
- // #15436
1103
- _this.destroyItem(e.allItems[i]);
1104
- e.allItems.splice(i, 1);
1105
- }
1106
- };
1107
- colorAxes.forEach(function (colorAxis) {
1108
- options = colorAxis.options;
1109
- if (options && options.showInLegend) {
1110
- // Data classes
1111
- if (options.dataClasses && options.visible) {
1112
- colorAxisItems = colorAxisItems.concat(colorAxis.getDataClassLegendSymbols());
1113
- // Gradient legend
1114
- }
1115
- else if (options.visible) {
1116
- // Add this axis on top
1117
- colorAxisItems.push(colorAxis);
1118
- }
1119
- // If dataClasses are defined or showInLegend option is not set to
1120
- // true, do not add color axis' series to legend.
1121
- colorAxis.series.forEach(function (series) {
1122
- if (!series.options.showInLegend || options.dataClasses) {
1123
- if (series.options.legendType === 'point') {
1124
- series.points.forEach(function (point) {
1125
- destroyItem(point);
1126
- });
1127
- }
1128
- else {
1129
- destroyItem(series);
1130
- }
1131
- }
1132
- });
1133
- }
1134
- });
1135
- i = colorAxisItems.length;
1136
- while (i--) {
1137
- e.allItems.unshift(colorAxisItems[i]);
1138
- }
1139
- });
1140
- addEvent(Legend, 'afterColorizeItem', function (e) {
1141
- if (e.visible && e.item.legendColor) {
1142
- e.item.legendSymbol.attr({
1143
- fill: e.item.legendColor
1144
- });
1145
- }
1146
- });
1147
- // Updates in the legend need to be reflected in the color axis (6888)
1148
- addEvent(Legend, 'afterUpdate', function () {
1149
- var colorAxes = this.chart.colorAxis;
1150
- if (colorAxes) {
1151
- colorAxes.forEach(function (colorAxis) {
1152
- colorAxis.update({}, arguments[2]);
1153
- });
1154
- }
1155
- });
1156
- // Calculate and set colors for points
1157
- addEvent(Series, 'afterTranslate', function () {
1158
- if (this.chart.colorAxis &&
1159
- this.chart.colorAxis.length ||
1160
- this.colorAttribs) {
1161
- this.translateColors();
1162
- }
1163
- });
1164
- export default ColorAxis;