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,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v9.1.1 (2021-06-04)
2
+ * @license Highcharts JS v9.2.2 (2021-08-24)
3
3
  *
4
4
  * ColorAxis module
5
5
  *
@@ -73,7 +73,6 @@
73
73
  */
74
74
  var colorSeriesMixin = {
75
75
  optionalAxis: 'colorAxis',
76
- colorAxis: 0,
77
76
  /* eslint-disable valid-jsdoc */
78
77
  /**
79
78
  * In choropleth maps,
@@ -116,7 +115,7 @@
116
115
 
117
116
  return exports;
118
117
  });
119
- _registerModule(_modules, 'Core/Axis/ColorAxis.js', [_modules['Core/Axis/Axis.js'], _modules['Core/Chart/Chart.js'], _modules['Core/Color/Color.js'], _modules['Mixins/ColorSeries.js'], _modules['Core/Animation/Fx.js'], _modules['Core/Globals.js'], _modules['Core/Legend.js'], _modules['Mixins/LegendSymbol.js'], _modules['Core/Color/Palette.js'], _modules['Core/Series/Point.js'], _modules['Core/Series/Series.js'], _modules['Core/Utilities.js']], function (Axis, Chart, Color, ColorSeriesModule, Fx, H, Legend, LegendSymbolMixin, palette, Point, Series, U) {
118
+ _registerModule(_modules, 'Core/Axis/Color/ColorAxisComposition.js', [_modules['Core/Color/Color.js'], _modules['Mixins/ColorSeries.js'], _modules['Core/Utilities.js']], function (Color, ColorSeriesMixins, U) {
120
119
  /* *
121
120
  *
122
121
  * (c) 2010-2021 Torstein Honsi
@@ -126,715 +125,310 @@
126
125
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
127
126
  *
128
127
  * */
129
- var __extends = (this && this.__extends) || (function () {
130
- var extendStatics = function (d,
131
- b) {
132
- extendStatics = Object.setPrototypeOf ||
133
- ({ __proto__: [] } instanceof Array && function (d,
134
- b) { d.__proto__ = b; }) ||
135
- function (d,
136
- b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
137
- return extendStatics(d, b);
138
- };
139
- return function (d, b) {
140
- extendStatics(d, b);
141
- function __() { this.constructor = d; }
142
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
143
- };
144
- })();
145
128
  var color = Color.parse;
146
- var colorPointMixin = ColorSeriesModule.colorPointMixin,
147
- colorSeriesMixin = ColorSeriesModule.colorSeriesMixin;
148
- var noop = H.noop;
129
+ var colorPointMixin = ColorSeriesMixins.colorPointMixin,
130
+ colorSeriesMixin = ColorSeriesMixins.colorSeriesMixin;
149
131
  var addEvent = U.addEvent,
150
- erase = U.erase,
151
132
  extend = U.extend,
152
- isNumber = U.isNumber,
153
133
  merge = U.merge,
154
134
  pick = U.pick,
155
135
  splat = U.splat;
156
- /**
157
- * Color axis types
158
- *
159
- * @typedef {"linear"|"logarithmic"} Highcharts.ColorAxisTypeValue
160
- */
161
- ''; // detach doclet above
162
- extend(Series.prototype, colorSeriesMixin);
163
- extend(Point.prototype, colorPointMixin);
164
- Chart.prototype.collectionsWithUpdate.push('colorAxis');
165
- Chart.prototype.collectionsWithInit.colorAxis = [Chart.prototype.addColorAxis];
166
- /* eslint-disable no-invalid-this, valid-jsdoc */
167
- /**
168
- * The ColorAxis object for inclusion in gradient legends.
169
- *
170
- * @class
171
- * @name Highcharts.ColorAxis
172
- * @augments Highcharts.Axis
136
+ /* *
173
137
  *
174
- * @param {Highcharts.Chart} chart
175
- * The related chart of the color axis.
138
+ * Composition
176
139
  *
177
- * @param {Highcharts.ColorAxisOptions} userOptions
178
- * The color axis options for initialization.
179
- */
180
- var ColorAxis = /** @class */ (function (_super) {
181
- __extends(ColorAxis, _super);
140
+ * */
141
+ var ColorAxisComposition;
142
+ (function (ColorAxisComposition) {
182
143
  /* *
183
144
  *
184
- * Constructors
145
+ * Constants
185
146
  *
186
147
  * */
187
- /**
188
- * @private
189
- */
190
- function ColorAxis(chart, userOptions) {
191
- var _this = _super.call(this,
192
- chart,
193
- userOptions) || this;
194
- _this.beforePadding = false; // Prevents unnecessary padding with `hc-more`
195
- _this.chart = void 0;
196
- _this.coll = 'colorAxis';
197
- _this.dataClasses = void 0;
198
- _this.legendItem = void 0;
199
- _this.legendItems = void 0;
200
- _this.name = ''; // Prevents 'undefined' in legend in IE8
201
- _this.options = void 0;
202
- _this.stops = void 0;
203
- _this.visible = true;
204
- _this.init(chart, userOptions);
205
- return _this;
206
- }
148
+ var composedClasses = [];
207
149
  /* *
208
150
  *
209
- * Functions
151
+ * Variables
210
152
  *
211
153
  * */
212
- /**
213
- * Initializes the color axis.
214
- *
215
- * @function Highcharts.ColorAxis#init
154
+ var ColorAxisClass;
155
+ /* *
216
156
  *
217
- * @param {Highcharts.Chart} chart
218
- * The related chart of the color axis.
157
+ * Functions
219
158
  *
220
- * @param {Highcharts.ColorAxisOptions} userOptions
221
- * The color axis options for initialization.
159
+ * */
160
+ /* eslint-disable valid-jsdoc */
161
+ /**
162
+ * @private
222
163
  */
223
- ColorAxis.prototype.init = function (chart, userOptions) {
224
- var axis = this;
225
- var legend = chart.options.legend || {},
226
- horiz = userOptions.layout ?
227
- userOptions.layout !== 'vertical' :
228
- legend.layout !== 'vertical';
229
- var options = merge(ColorAxis.defaultColorAxisOptions,
230
- userOptions, {
231
- showEmpty: false,
232
- title: null,
233
- visible: legend.enabled &&
234
- (userOptions ? userOptions.visible !== false : true)
164
+ function compose(ColorAxisType, ChartClass, FxClass, LegendClass, SeriesClass) {
165
+ if (!ColorAxisClass) {
166
+ ColorAxisClass = ColorAxisType;
167
+ }
168
+ if (composedClasses.indexOf(ChartClass) === -1) {
169
+ composedClasses.push(ChartClass);
170
+ var chartProto = ChartClass.prototype;
171
+ chartProto.collectionsWithUpdate.push('colorAxis');
172
+ chartProto.collectionsWithInit.colorAxis = [chartProto.addColorAxis];
173
+ addEvent(ChartClass, 'afterGetAxes', onChartAfterGetAxes);
174
+ wrapChartCreateAxis(ChartClass);
175
+ }
176
+ if (composedClasses.indexOf(FxClass) === -1) {
177
+ composedClasses.push(FxClass);
178
+ var fxProto = FxClass.prototype;
179
+ fxProto.fillSetter = wrapFxFillSetter;
180
+ fxProto.strokeSetter = wrapFxStrokeSetter;
181
+ }
182
+ if (composedClasses.indexOf(LegendClass) === -1) {
183
+ composedClasses.push(LegendClass);
184
+ addEvent(LegendClass, 'afterGetAllItems', onLegendAfterGetAllItems);
185
+ addEvent(LegendClass, 'afterColorizeItem', onLegendAfterColorizeItem);
186
+ addEvent(LegendClass, 'afterUpdate', onLegendAfterUpdate);
187
+ }
188
+ if (composedClasses.indexOf(SeriesClass) === -1) {
189
+ composedClasses.push(SeriesClass);
190
+ extend(SeriesClass.prototype, colorSeriesMixin);
191
+ extend(SeriesClass.prototype.pointClass.prototype, colorPointMixin);
192
+ addEvent(SeriesClass, 'afterTranslate', onSeriesAfterTranslate);
193
+ addEvent(SeriesClass, 'bindAxes', onSeriesBindAxes);
194
+ }
195
+ }
196
+ ColorAxisComposition.compose = compose;
197
+ /**
198
+ * Extend the chart getAxes method to also get the color axis.
199
+ * @private
200
+ */
201
+ function onChartAfterGetAxes() {
202
+ var _this = this;
203
+ var options = this.options;
204
+ this.colorAxis = [];
205
+ if (options.colorAxis) {
206
+ options.colorAxis = splat(options.colorAxis);
207
+ options.colorAxis.forEach(function (axisOptions, i) {
208
+ axisOptions.index = i;
209
+ new ColorAxisClass(_this, axisOptions); // eslint-disable-line no-new
235
210
  });
236
- axis.coll = 'colorAxis';
237
- axis.side = userOptions.side || horiz ? 2 : 1;
238
- axis.reversed = userOptions.reversed || !horiz;
239
- axis.opposite = !horiz;
240
- _super.prototype.init.call(this, chart, options);
241
- // Base init() pushes it to the xAxis array, now pop it again
242
- // chart[this.isXAxis ? 'xAxis' : 'yAxis'].pop();
243
- // Prepare data classes
244
- if (userOptions.dataClasses) {
245
- axis.initDataClasses(userOptions);
246
211
  }
247
- axis.initStops();
248
- // Override original axis properties
249
- axis.horiz = horiz;
250
- axis.zoomEnabled = false;
251
- };
212
+ }
252
213
  /**
214
+ * Add the color axis. This also removes the axis' own series to prevent
215
+ * them from showing up individually.
253
216
  * @private
254
217
  */
255
- ColorAxis.prototype.initDataClasses = function (userOptions) {
256
- var axis = this;
257
- var chart = axis.chart,
258
- dataClasses,
259
- colorCounter = 0,
260
- colorCount = chart.options.chart.colorCount,
261
- options = axis.options,
262
- len = userOptions.dataClasses.length;
263
- axis.dataClasses = dataClasses = [];
264
- axis.legendItems = [];
265
- userOptions.dataClasses.forEach(function (dataClass, i) {
266
- var colors;
267
- dataClass = merge(dataClass);
268
- dataClasses.push(dataClass);
269
- if (!chart.styledMode && dataClass.color) {
270
- return;
218
+ function onLegendAfterGetAllItems(e) {
219
+ var _this = this;
220
+ var colorAxes = this.chart.colorAxis || [],
221
+ destroyItem = function (item) {
222
+ var i = e.allItems.indexOf(item);
223
+ if (i !== -1) {
224
+ // #15436
225
+ _this.destroyItem(e.allItems[i]);
226
+ e.allItems.splice(i, 1);
271
227
  }
272
- if (options.dataClassColor === 'category') {
273
- if (!chart.styledMode) {
274
- colors = chart.options.colors;
275
- colorCount = colors.length;
276
- dataClass.color = colors[colorCounter];
228
+ };
229
+ var colorAxisItems = [],
230
+ options,
231
+ i;
232
+ colorAxes.forEach(function (colorAxis) {
233
+ options = colorAxis.options;
234
+ if (options && options.showInLegend) {
235
+ // Data classes
236
+ if (options.dataClasses && options.visible) {
237
+ colorAxisItems = colorAxisItems.concat(colorAxis.getDataClassLegendSymbols());
238
+ // Gradient legend
277
239
  }
278
- dataClass.colorIndex = colorCounter;
279
- // increase and loop back to zero
280
- colorCounter++;
281
- if (colorCounter === colorCount) {
282
- colorCounter = 0;
240
+ else if (options.visible) {
241
+ // Add this axis on top
242
+ colorAxisItems.push(colorAxis);
283
243
  }
284
- }
285
- else {
286
- dataClass.color = color(options.minColor).tweenTo(color(options.maxColor), len < 2 ? 0.5 : i / (len - 1) // #3219
287
- );
244
+ // If dataClasses are defined or showInLegend option is not set
245
+ // to true, do not add color axis' series to legend.
246
+ colorAxis.series.forEach(function (series) {
247
+ if (!series.options.showInLegend || options.dataClasses) {
248
+ if (series.options.legendType === 'point') {
249
+ series.points.forEach(function (point) {
250
+ destroyItem(point);
251
+ });
252
+ }
253
+ else {
254
+ destroyItem(series);
255
+ }
256
+ }
257
+ });
288
258
  }
289
259
  });
290
- };
291
- /**
292
- * Returns true if the series has points at all.
293
- *
294
- * @function Highcharts.ColorAxis#hasData
295
- *
296
- * @return {boolean}
297
- * True, if the series has points, otherwise false.
298
- */
299
- ColorAxis.prototype.hasData = function () {
300
- return !!(this.tickPositions || []).length;
301
- };
260
+ i = colorAxisItems.length;
261
+ while (i--) {
262
+ e.allItems.unshift(colorAxisItems[i]);
263
+ }
264
+ }
302
265
  /**
303
- * Override so that ticks are not added in data class axes (#6914)
304
266
  * @private
305
267
  */
306
- ColorAxis.prototype.setTickPositions = function () {
307
- if (!this.dataClasses) {
308
- return _super.prototype.setTickPositions.call(this);
268
+ function onLegendAfterColorizeItem(e) {
269
+ if (e.visible && e.item.legendColor) {
270
+ e.item.legendSymbol.attr({
271
+ fill: e.item.legendColor
272
+ });
309
273
  }
310
- };
274
+ }
311
275
  /**
276
+ * Updates in the legend need to be reflected in the color axis. (#6888)
312
277
  * @private
313
278
  */
314
- ColorAxis.prototype.initStops = function () {
315
- var axis = this;
316
- axis.stops = axis.options.stops || [
317
- [0, axis.options.minColor],
318
- [1, axis.options.maxColor]
319
- ];
320
- axis.stops.forEach(function (stop) {
321
- stop.color = color(stop[1]);
322
- });
323
- };
279
+ function onLegendAfterUpdate() {
280
+ var colorAxes = this.chart.colorAxis;
281
+ if (colorAxes) {
282
+ colorAxes.forEach(function (colorAxis) {
283
+ colorAxis.update({}, arguments[2]);
284
+ });
285
+ }
286
+ }
324
287
  /**
325
- * Extend the setOptions method to process extreme colors and color stops.
288
+ * Calculate and set colors for points.
326
289
  * @private
327
290
  */
328
- ColorAxis.prototype.setOptions = function (userOptions) {
329
- var axis = this;
330
- _super.prototype.setOptions.call(this, userOptions);
331
- axis.options.crosshair = axis.options.marker;
332
- };
291
+ function onSeriesAfterTranslate() {
292
+ if (this.chart.colorAxis &&
293
+ this.chart.colorAxis.length ||
294
+ this.colorAttribs) {
295
+ this.translateColors();
296
+ }
297
+ }
333
298
  /**
299
+ * Add colorAxis to series axisTypes.
334
300
  * @private
335
301
  */
336
- ColorAxis.prototype.setAxisSize = function () {
337
- var axis = this;
338
- var symbol = axis.legendSymbol;
339
- var chart = axis.chart;
340
- var legendOptions = chart.options.legend || {};
341
- var x,
342
- y,
343
- width,
344
- height;
345
- if (symbol) {
346
- this.left = x = symbol.attr('x');
347
- this.top = y = symbol.attr('y');
348
- this.width = width = symbol.attr('width');
349
- this.height = height = symbol.attr('height');
350
- this.right = chart.chartWidth - x - width;
351
- this.bottom = chart.chartHeight - y - height;
352
- this.len = this.horiz ? width : height;
353
- this.pos = this.horiz ? x : y;
302
+ function onSeriesBindAxes() {
303
+ var axisTypes = this.axisTypes;
304
+ if (!axisTypes) {
305
+ this.axisTypes = ['colorAxis'];
354
306
  }
355
- else {
356
- // Fake length for disabled legend to avoid tick issues
357
- // and such (#5205)
358
- this.len = (this.horiz ?
359
- legendOptions.symbolWidth :
360
- legendOptions.symbolHeight) || ColorAxis.defaultLegendLength;
307
+ else if (axisTypes.indexOf('colorAxis') === -1) {
308
+ axisTypes.push('colorAxis');
361
309
  }
362
- };
310
+ }
363
311
  /**
364
312
  * @private
365
313
  */
366
- ColorAxis.prototype.normalizedValue = function (value) {
367
- var axis = this;
368
- if (axis.logarithmic) {
369
- value = axis.logarithmic.log2lin(value);
370
- }
371
- return 1 - ((axis.max - value) /
372
- ((axis.max - axis.min) || 1));
373
- };
314
+ function wrapChartCreateAxis(ChartClass) {
315
+ var superCreateAxis = ChartClass.prototype.createAxis;
316
+ ChartClass.prototype.createAxis = function (type, options) {
317
+ if (type !== 'colorAxis') {
318
+ return superCreateAxis.apply(this, arguments);
319
+ }
320
+ var axis = new ColorAxisClass(this,
321
+ merge(options.axis, {
322
+ index: this[type].length,
323
+ isX: false
324
+ }));
325
+ this.isDirtyLegend = true;
326
+ // Clear before 'bindAxes' (#11924)
327
+ this.axes.forEach(function (axis) {
328
+ axis.series = [];
329
+ });
330
+ this.series.forEach(function (series) {
331
+ series.bindAxes();
332
+ series.isDirtyData = true;
333
+ });
334
+ if (pick(options.redraw, true)) {
335
+ this.redraw(options.animation);
336
+ }
337
+ return axis;
338
+ };
339
+ }
374
340
  /**
375
- * Translate from a value to a color.
341
+ * Handle animation of the color attributes directly.
376
342
  * @private
377
343
  */
378
- ColorAxis.prototype.toColor = function (value, point) {
379
- var axis = this;
380
- var dataClasses = axis.dataClasses;
381
- var stops = axis.stops;
382
- var pos,
383
- from,
384
- to,
385
- color,
386
- dataClass,
387
- i;
388
- if (dataClasses) {
389
- i = dataClasses.length;
390
- while (i--) {
391
- dataClass = dataClasses[i];
392
- from = dataClass.from;
393
- to = dataClass.to;
394
- if ((typeof from === 'undefined' || value >= from) &&
395
- (typeof to === 'undefined' || value <= to)) {
396
- color = dataClass.color;
397
- if (point) {
398
- point.dataClass = i;
399
- point.colorIndex = dataClass.colorIndex;
400
- }
401
- break;
402
- }
403
- }
404
- }
405
- else {
406
- pos = axis.normalizedValue(value);
407
- i = stops.length;
408
- while (i--) {
409
- if (pos > stops[i][0]) {
410
- break;
411
- }
412
- }
413
- from = stops[i] || stops[i + 1];
414
- to = stops[i + 1] || from;
415
- // The position within the gradient
416
- pos = 1 - (to[0] - pos) / ((to[0] - from[0]) || 1);
417
- color = from.color.tweenTo(to.color, pos);
418
- }
419
- return color;
420
- };
421
- /**
422
- * Override the getOffset method to add the whole axis groups inside the
423
- * legend.
424
- * @private
425
- */
426
- ColorAxis.prototype.getOffset = function () {
427
- var axis = this;
428
- var group = axis.legendGroup;
429
- var sideOffset = axis.chart.axisOffset[axis.side];
430
- if (group) {
431
- // Hook for the getOffset method to add groups to this parent
432
- // group
433
- axis.axisParent = group;
434
- // Call the base
435
- _super.prototype.getOffset.call(this);
436
- // First time only
437
- if (!axis.added) {
438
- axis.added = true;
439
- axis.labelLeft = 0;
440
- axis.labelRight = axis.width;
441
- }
442
- // Reset it to avoid color axis reserving space
443
- axis.chart.axisOffset[axis.side] = sideOffset;
444
- }
445
- };
446
- /**
447
- * Create the color gradient.
448
- * @private
449
- */
450
- ColorAxis.prototype.setLegendColor = function () {
451
- var axis = this;
452
- var horiz = axis.horiz;
453
- var reversed = axis.reversed;
454
- var one = reversed ? 1 : 0;
455
- var zero = reversed ? 0 : 1;
456
- var grad = horiz ? [one, 0,
457
- zero, 0] : [0,
458
- zero, 0,
459
- one]; // #3190
460
- axis.legendColor = {
461
- linearGradient: {
462
- x1: grad[0],
463
- y1: grad[1],
464
- x2: grad[2],
465
- y2: grad[3]
466
- },
467
- stops: axis.stops
468
- };
469
- };
470
- /**
471
- * The color axis appears inside the legend and has its own legend symbol.
472
- * @private
473
- */
474
- ColorAxis.prototype.drawLegendSymbol = function (legend, item) {
475
- var axis = this;
476
- var padding = legend.padding;
477
- var legendOptions = legend.options;
478
- var horiz = axis.horiz;
479
- var width = pick(legendOptions.symbolWidth,
480
- horiz ? ColorAxis.defaultLegendLength : 12);
481
- var height = pick(legendOptions.symbolHeight,
482
- horiz ? 12 : ColorAxis.defaultLegendLength);
483
- var labelPadding = pick(legendOptions.labelPadding,
484
- horiz ? 16 : 30);
485
- var itemDistance = pick(legendOptions.itemDistance, 10);
486
- this.setLegendColor();
487
- // Create the gradient
488
- item.legendSymbol = this.chart.renderer.rect(0, legend.baseline - 11, width, height).attr({
489
- zIndex: 1
490
- }).add(item.legendGroup);
491
- // Set how much space this legend item takes up
492
- axis.legendItemWidth = width + padding + (horiz ? itemDistance : labelPadding);
493
- axis.legendItemHeight = height + padding + (horiz ? labelPadding : 0);
494
- };
495
- /**
496
- * Fool the legend.
497
- * @private
498
- */
499
- ColorAxis.prototype.setState = function (state) {
500
- this.series.forEach(function (series) {
501
- series.setState(state);
502
- });
503
- };
504
- /**
505
- * @private
506
- */
507
- ColorAxis.prototype.setVisible = function () {
508
- };
509
- /**
510
- * @private
511
- */
512
- ColorAxis.prototype.getSeriesExtremes = function () {
513
- var axis = this;
514
- var series = axis.series;
515
- var colorValArray,
516
- colorKey,
517
- colorValIndex,
518
- pointArrayMap,
519
- calculatedExtremes,
520
- cSeries,
521
- i = series.length,
522
- yData,
523
- j;
524
- this.dataMin = Infinity;
525
- this.dataMax = -Infinity;
526
- while (i--) { // x, y, value, other
527
- cSeries = series[i];
528
- colorKey = cSeries.colorKey = pick(cSeries.options.colorKey, cSeries.colorKey, cSeries.pointValKey, cSeries.zoneAxis, 'y');
529
- pointArrayMap = cSeries.pointArrayMap;
530
- calculatedExtremes = cSeries[colorKey + 'Min'] &&
531
- cSeries[colorKey + 'Max'];
532
- if (cSeries[colorKey + 'Data']) {
533
- colorValArray = cSeries[colorKey + 'Data'];
534
- }
535
- else {
536
- if (!pointArrayMap) {
537
- colorValArray = cSeries.yData;
538
- }
539
- else {
540
- colorValArray = [];
541
- colorValIndex = pointArrayMap.indexOf(colorKey);
542
- yData = cSeries.yData;
543
- if (colorValIndex >= 0 && yData) {
544
- for (j = 0; j < yData.length; j++) {
545
- colorValArray.push(pick(yData[j][colorValIndex], yData[j]));
546
- }
547
- }
548
- }
549
- }
550
- // If color key extremes are already calculated, use them.
551
- if (calculatedExtremes) {
552
- cSeries.minColorValue = cSeries[colorKey + 'Min'];
553
- cSeries.maxColorValue = cSeries[colorKey + 'Max'];
554
- }
555
- else {
556
- var cExtremes = Series.prototype.getExtremes.call(cSeries,
557
- colorValArray);
558
- cSeries.minColorValue = cExtremes.dataMin;
559
- cSeries.maxColorValue = cExtremes.dataMax;
560
- }
561
- if (typeof cSeries.minColorValue !== 'undefined') {
562
- this.dataMin =
563
- Math.min(this.dataMin, cSeries.minColorValue);
564
- this.dataMax =
565
- Math.max(this.dataMax, cSeries.maxColorValue);
566
- }
567
- if (!calculatedExtremes) {
568
- Series.prototype.applyExtremes.call(cSeries);
569
- }
570
- }
571
- };
572
- /**
573
- * Internal function to draw a crosshair.
574
- *
575
- * @function Highcharts.ColorAxis#drawCrosshair
576
- *
577
- * @param {Highcharts.PointerEventObject} [e]
578
- * The event arguments from the modified pointer event, extended with
579
- * `chartX` and `chartY`
580
- *
581
- * @param {Highcharts.Point} [point]
582
- * The Point object if the crosshair snaps to points.
583
- *
584
- * @fires Highcharts.ColorAxis#event:afterDrawCrosshair
585
- * @fires Highcharts.ColorAxis#event:drawCrosshair
586
- */
587
- ColorAxis.prototype.drawCrosshair = function (e, point) {
588
- var axis = this;
589
- var plotX = point && point.plotX;
590
- var plotY = point && point.plotY;
591
- var axisPos = axis.pos;
592
- var axisLen = axis.len;
593
- var crossPos;
594
- if (point) {
595
- crossPos = axis.toPixels(point.getNestedProperty(point.series.colorKey));
596
- if (crossPos < axisPos) {
597
- crossPos = axisPos - 2;
598
- }
599
- else if (crossPos > axisPos + axisLen) {
600
- crossPos = axisPos + axisLen + 2;
601
- }
602
- point.plotX = crossPos;
603
- point.plotY = axis.len - crossPos;
604
- _super.prototype.drawCrosshair.call(this, e, point);
605
- point.plotX = plotX;
606
- point.plotY = plotY;
607
- if (axis.cross &&
608
- !axis.cross.addedToColorAxis &&
609
- axis.legendGroup) {
610
- axis.cross
611
- .addClass('highcharts-coloraxis-marker')
612
- .add(axis.legendGroup);
613
- axis.cross.addedToColorAxis = true;
614
- if (!axis.chart.styledMode &&
615
- typeof axis.crosshair === 'object') {
616
- axis.cross.attr({
617
- fill: axis.crosshair.color
618
- });
619
- }
620
- }
621
- }
622
- };
344
+ function wrapFxFillSetter() {
345
+ this.elem.attr('fill', color(this.start).tweenTo(color(this.end), this.pos), void 0, true);
346
+ }
623
347
  /**
348
+ * Handle animation of the color attributes directly.
624
349
  * @private
625
350
  */
626
- ColorAxis.prototype.getPlotLinePath = function (options) {
627
- var axis = this,
628
- left = axis.left,
629
- pos = options.translatedValue,
630
- top = axis.top;
631
- // crosshairs only
632
- return isNumber(pos) ? // pos can be 0 (#3969)
633
- (axis.horiz ? [
634
- ['M', pos - 4, top - 6],
635
- ['L', pos + 4, top - 6],
636
- ['L', pos, top],
637
- ['Z']
638
- ] : [
639
- ['M', left, pos],
640
- ['L', left - 6, pos + 6],
641
- ['L', left - 6, pos - 6],
642
- ['Z']
643
- ]) :
644
- _super.prototype.getPlotLinePath.call(this, options);
645
- };
646
- /**
647
- * Updates a color axis instance with a new set of options. The options are
648
- * merged with the existing options, so only new or altered options need to
649
- * be specified.
650
- *
651
- * @function Highcharts.ColorAxis#update
652
- *
653
- * @param {Highcharts.ColorAxisOptions} newOptions
654
- * The new options that will be merged in with existing options on the color
655
- * axis.
656
- *
657
- * @param {boolean} [redraw]
658
- * Whether to redraw the chart after the color axis is altered. If doing
659
- * more operations on the chart, it is a good idea to set redraw to `false`
660
- * and call {@link Highcharts.Chart#redraw} after.
661
- */
662
- ColorAxis.prototype.update = function (newOptions, redraw) {
663
- var axis = this,
664
- chart = axis.chart,
665
- legend = chart.legend;
666
- this.series.forEach(function (series) {
667
- // Needed for Axis.update when choropleth colors change
668
- series.isDirtyData = true;
669
- });
670
- // When updating data classes, destroy old items and make sure new
671
- // ones are created (#3207)
672
- if (newOptions.dataClasses && legend.allItems || axis.dataClasses) {
673
- axis.destroyItems();
674
- }
675
- _super.prototype.update.call(this, newOptions, redraw);
676
- if (axis.legendItem) {
677
- axis.setLegendColor();
678
- legend.colorizeItem(this, true);
679
- }
680
- };
681
- /**
682
- * Destroy color axis legend items.
683
- * @private
684
- */
685
- ColorAxis.prototype.destroyItems = function () {
686
- var axis = this;
687
- var chart = axis.chart;
688
- if (axis.legendItem) {
689
- chart.legend.destroyItem(axis);
690
- }
691
- else if (axis.legendItems) {
692
- axis.legendItems.forEach(function (item) {
693
- chart.legend.destroyItem(item);
694
- });
695
- }
696
- chart.isDirtyLegend = true;
697
- };
698
- // Removing the whole axis (#14283)
699
- ColorAxis.prototype.destroy = function () {
700
- this.chart.isDirtyLegend = true;
701
- this.destroyItems();
702
- _super.prototype.destroy.apply(this, [].slice.call(arguments));
703
- };
704
- /**
705
- * Removes the color axis and the related legend item.
706
- *
707
- * @function Highcharts.ColorAxis#remove
708
- *
709
- * @param {boolean} [redraw=true]
710
- * Whether to redraw the chart following the remove.
711
- */
712
- ColorAxis.prototype.remove = function (redraw) {
713
- this.destroyItems();
714
- _super.prototype.remove.call(this, redraw);
715
- };
716
- /**
717
- * Get the legend item symbols for data classes.
718
- * @private
719
- */
720
- ColorAxis.prototype.getDataClassLegendSymbols = function () {
721
- var axis = this;
722
- var chart = axis.chart;
723
- var legendItems = axis.legendItems;
724
- var legendOptions = chart.options.legend;
725
- var valueDecimals = legendOptions.valueDecimals;
726
- var valueSuffix = legendOptions.valueSuffix || '';
727
- var name;
728
- if (!legendItems.length) {
729
- axis.dataClasses.forEach(function (dataClass, i) {
730
- var vis = true,
731
- from = dataClass.from,
732
- to = dataClass.to;
733
- var numberFormatter = chart.numberFormatter;
734
- // Assemble the default name. This can be overridden
735
- // by legend.options.labelFormatter
736
- name = '';
737
- if (typeof from === 'undefined') {
738
- name = '< ';
739
- }
740
- else if (typeof to === 'undefined') {
741
- name = '> ';
742
- }
743
- if (typeof from !== 'undefined') {
744
- name += numberFormatter(from, valueDecimals) + valueSuffix;
745
- }
746
- if (typeof from !== 'undefined' && typeof to !== 'undefined') {
747
- name += ' - ';
748
- }
749
- if (typeof to !== 'undefined') {
750
- name += numberFormatter(to, valueDecimals) + valueSuffix;
751
- }
752
- // Add a mock object to the legend items
753
- legendItems.push(extend({
754
- chart: chart,
755
- name: name,
756
- options: {},
757
- drawLegendSymbol: LegendSymbolMixin.drawRectangle,
758
- visible: true,
759
- setState: noop,
760
- isDataClass: true,
761
- setVisible: function () {
762
- vis = axis.visible = !vis;
763
- axis.series.forEach(function (series) {
764
- series.points.forEach(function (point) {
765
- if (point.dataClass === i) {
766
- point.setVisible(vis);
767
- }
768
- });
769
- });
770
- chart.legend.colorizeItem(this, vis);
771
- }
772
- }, dataClass));
773
- });
774
- }
775
- return legendItems;
776
- };
777
- /* *
778
- *
779
- * Static Functions
780
- *
781
- * */
782
- ColorAxis.defaultLegendLength = 200;
783
- /**
784
- * A color axis for series. Visually, the color
785
- * axis will appear as a gradient or as separate items inside the
786
- * legend, depending on whether the axis is scalar or based on data
787
- * classes.
788
- *
789
- * For supported color formats, see the
790
- * [docs article about colors](https://www.highcharts.com/docs/chart-design-and-style/colors).
791
- *
792
- * A scalar color axis is represented by a gradient. The colors either
793
- * range between the [minColor](#colorAxis.minColor) and the
794
- * [maxColor](#colorAxis.maxColor), or for more fine grained control the
795
- * colors can be defined in [stops](#colorAxis.stops). Often times, the
796
- * color axis needs to be adjusted to get the right color spread for the
797
- * data. In addition to stops, consider using a logarithmic
798
- * [axis type](#colorAxis.type), or setting [min](#colorAxis.min) and
799
- * [max](#colorAxis.max) to avoid the colors being determined by
800
- * outliers.
801
- *
802
- * When [dataClasses](#colorAxis.dataClasses) are used, the ranges are
803
- * subdivided into separate classes like categories based on their
804
- * values. This can be used for ranges between two values, but also for
805
- * a true category. However, when your data is categorized, it may be as
806
- * convenient to add each category to a separate series.
807
- *
808
- * Color axis does not work with: `sankey`, `sunburst`, `dependencywheel`,
809
- * `networkgraph`, `wordcloud`, `venn`, `gauge` and `solidgauge` series
810
- * types.
811
- *
812
- * Since v7.2.0 `colorAxis` can also be an array of options objects.
813
- *
814
- * See [the Axis object](/class-reference/Highcharts.Axis) for
815
- * programmatic access to the axis.
816
- *
817
- * @sample {highcharts} highcharts/coloraxis/custom-color-key
818
- * Column chart with color axis
819
- * @sample {highcharts} highcharts/coloraxis/horizontal-layout
820
- * Horizontal layout
821
- * @sample {highmaps} maps/coloraxis/dataclasscolor
822
- * With data classes
823
- * @sample {highmaps} maps/coloraxis/mincolor-maxcolor
824
- * Min color and max color
825
- *
826
- * @extends xAxis
827
- * @excluding alignTicks, allowDecimals, alternateGridColor, breaks,
828
- * categories, crosshair, dateTimeLabelFormats, height, left,
829
- * lineWidth, linkedTo, maxZoom, minRange, minTickInterval,
830
- * offset, opposite, pane, plotBands, plotLines,
831
- * reversedStacks, showEmpty, title, top, width, zoomEnabled
832
- * @product highcharts highstock highmaps
833
- * @type {*|Array<*>}
834
- * @optionparent colorAxis
835
- * @ignore
836
- */
837
- ColorAxis.defaultColorAxisOptions = {
351
+ function wrapFxStrokeSetter() {
352
+ this.elem.attr('stroke', color(this.start).tweenTo(color(this.end), this.pos), void 0, true);
353
+ }
354
+ })(ColorAxisComposition || (ColorAxisComposition = {}));
355
+ /* *
356
+ *
357
+ * Default Export
358
+ *
359
+ * */
360
+
361
+ return ColorAxisComposition;
362
+ });
363
+ _registerModule(_modules, 'Core/Axis/Color/ColorAxisDefaults.js', [_modules['Core/Color/Palette.js']], function (Palette) {
364
+ /* *
365
+ *
366
+ * (c) 2010-2021 Torstein Honsi
367
+ *
368
+ * License: www.highcharts.com/license
369
+ *
370
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
371
+ *
372
+ * */
373
+ /* *
374
+ *
375
+ * API Options
376
+ *
377
+ * */
378
+ /**
379
+ * A color axis for series. Visually, the color
380
+ * axis will appear as a gradient or as separate items inside the
381
+ * legend, depending on whether the axis is scalar or based on data
382
+ * classes.
383
+ *
384
+ * For supported color formats, see the
385
+ * [docs article about colors](https://www.highcharts.com/docs/chart-design-and-style/colors).
386
+ *
387
+ * A scalar color axis is represented by a gradient. The colors either
388
+ * range between the [minColor](#colorAxis.minColor) and the
389
+ * [maxColor](#colorAxis.maxColor), or for more fine grained control the
390
+ * colors can be defined in [stops](#colorAxis.stops). Often times, the
391
+ * color axis needs to be adjusted to get the right color spread for the
392
+ * data. In addition to stops, consider using a logarithmic
393
+ * [axis type](#colorAxis.type), or setting [min](#colorAxis.min) and
394
+ * [max](#colorAxis.max) to avoid the colors being determined by
395
+ * outliers.
396
+ *
397
+ * When [dataClasses](#colorAxis.dataClasses) are used, the ranges are
398
+ * subdivided into separate classes like categories based on their
399
+ * values. This can be used for ranges between two values, but also for
400
+ * a true category. However, when your data is categorized, it may be as
401
+ * convenient to add each category to a separate series.
402
+ *
403
+ * Color axis does not work with: `sankey`, `sunburst`, `dependencywheel`,
404
+ * `networkgraph`, `wordcloud`, `venn`, `gauge` and `solidgauge` series
405
+ * types.
406
+ *
407
+ * Since v7.2.0 `colorAxis` can also be an array of options objects.
408
+ *
409
+ * See [the Axis object](/class-reference/Highcharts.Axis) for
410
+ * programmatic access to the axis.
411
+ *
412
+ * @sample {highcharts} highcharts/coloraxis/custom-color-key
413
+ * Column chart with color axis
414
+ * @sample {highcharts} highcharts/coloraxis/horizontal-layout
415
+ * Horizontal layout
416
+ * @sample {highmaps} maps/coloraxis/dataclasscolor
417
+ * With data classes
418
+ * @sample {highmaps} maps/coloraxis/mincolor-maxcolor
419
+ * Min color and max color
420
+ *
421
+ * @extends xAxis
422
+ * @excluding alignTicks, allowDecimals, alternateGridColor, breaks,
423
+ * categories, crosshair, dateTimeLabelFormats, height, left,
424
+ * lineWidth, linkedTo, maxZoom, minRange, minTickInterval,
425
+ * offset, opposite, pane, plotBands, plotLines,
426
+ * reversedStacks, showEmpty, title, top, width, zoomEnabled
427
+ * @product highcharts highstock highmaps
428
+ * @type {*|Array<*>}
429
+ * @optionparent colorAxis
430
+ */
431
+ var colorAxisDefaults = {
838
432
  /**
839
433
  * Whether to allow decimals on the color axis.
840
434
  * @type {boolean}
@@ -1064,7 +658,7 @@
1064
658
  * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
1065
659
  * @product highcharts highstock highmaps
1066
660
  */
1067
- color: palette.neutralColor40
661
+ color: Palette.neutralColor40
1068
662
  },
1069
663
  /**
1070
664
  * The axis labels show the number for each tick.
@@ -1106,7 +700,7 @@
1106
700
  * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
1107
701
  * @product highcharts highstock highmaps
1108
702
  */
1109
- minColor: palette.highlightColor10,
703
+ minColor: Palette.highlightColor10,
1110
704
  /**
1111
705
  * The color to represent the maximum of the color axis. Unless
1112
706
  * [dataClasses](#colorAxis.dataClasses) or
@@ -1125,7 +719,7 @@
1125
719
  * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
1126
720
  * @product highcharts highstock highmaps
1127
721
  */
1128
- maxColor: palette.highlightColor100,
722
+ maxColor: Palette.highlightColor100,
1129
723
  /**
1130
724
  * Color stops for the gradient of a scalar color axis. Use this in
1131
725
  * cases where a linear gradient between a `minColor` and `maxColor`
@@ -1193,6 +787,681 @@
1193
787
  */
1194
788
  showInLegend: true
1195
789
  };
790
+ /* *
791
+ *
792
+ * Default Export
793
+ *
794
+ * */
795
+
796
+ return colorAxisDefaults;
797
+ });
798
+ _registerModule(_modules, 'Core/Axis/Color/ColorAxis.js', [_modules['Core/Axis/Axis.js'], _modules['Core/Color/Color.js'], _modules['Core/Axis/Color/ColorAxisComposition.js'], _modules['Core/Axis/Color/ColorAxisDefaults.js'], _modules['Core/Globals.js'], _modules['Core/Legend/LegendSymbol.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (Axis, Color, ColorAxisComposition, ColorAxisDefaults, H, LegendSymbol, SeriesRegistry, U) {
799
+ /* *
800
+ *
801
+ * (c) 2010-2021 Torstein Honsi
802
+ *
803
+ * License: www.highcharts.com/license
804
+ *
805
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
806
+ *
807
+ * */
808
+ var __extends = (this && this.__extends) || (function () {
809
+ var extendStatics = function (d,
810
+ b) {
811
+ extendStatics = Object.setPrototypeOf ||
812
+ ({ __proto__: [] } instanceof Array && function (d,
813
+ b) { d.__proto__ = b; }) ||
814
+ function (d,
815
+ b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
816
+ return extendStatics(d, b);
817
+ };
818
+ return function (d, b) {
819
+ extendStatics(d, b);
820
+ function __() { this.constructor = d; }
821
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
822
+ };
823
+ })();
824
+ var color = Color.parse;
825
+ var noop = H.noop;
826
+ var Series = SeriesRegistry.series;
827
+ var extend = U.extend,
828
+ isNumber = U.isNumber,
829
+ merge = U.merge,
830
+ pick = U.pick;
831
+ /* *
832
+ *
833
+ * Class
834
+ *
835
+ * */
836
+ /* eslint-disable no-invalid-this, valid-jsdoc */
837
+ /**
838
+ * The ColorAxis object for inclusion in gradient legends.
839
+ *
840
+ * @class
841
+ * @name Highcharts.ColorAxis
842
+ * @augments Highcharts.Axis
843
+ *
844
+ * @param {Highcharts.Chart} chart
845
+ * The related chart of the color axis.
846
+ *
847
+ * @param {Highcharts.ColorAxisOptions} userOptions
848
+ * The color axis options for initialization.
849
+ */
850
+ var ColorAxis = /** @class */ (function (_super) {
851
+ __extends(ColorAxis, _super);
852
+ /* *
853
+ *
854
+ * Constructors
855
+ *
856
+ * */
857
+ /**
858
+ * @private
859
+ */
860
+ function ColorAxis(chart, userOptions) {
861
+ var _this = _super.call(this,
862
+ chart,
863
+ userOptions) || this;
864
+ _this.beforePadding = false; // Prevents unnecessary padding with `hc-more`
865
+ _this.chart = void 0;
866
+ _this.coll = 'colorAxis';
867
+ _this.dataClasses = void 0;
868
+ _this.legendItem = void 0;
869
+ _this.legendItems = void 0;
870
+ _this.name = ''; // Prevents 'undefined' in legend in IE8
871
+ _this.options = void 0;
872
+ _this.stops = void 0;
873
+ _this.visible = true;
874
+ _this.init(chart, userOptions);
875
+ return _this;
876
+ }
877
+ /* *
878
+ *
879
+ * Static Functions
880
+ *
881
+ * */
882
+ ColorAxis.compose = function (ChartClass, FxClass, LegendClass, SeriesClass) {
883
+ ColorAxisComposition.compose(ColorAxis, ChartClass, FxClass, LegendClass, SeriesClass);
884
+ };
885
+ /* *
886
+ *
887
+ * Functions
888
+ *
889
+ * */
890
+ /**
891
+ * Initializes the color axis.
892
+ *
893
+ * @function Highcharts.ColorAxis#init
894
+ *
895
+ * @param {Highcharts.Chart} chart
896
+ * The related chart of the color axis.
897
+ *
898
+ * @param {Highcharts.ColorAxisOptions} userOptions
899
+ * The color axis options for initialization.
900
+ */
901
+ ColorAxis.prototype.init = function (chart, userOptions) {
902
+ var axis = this;
903
+ var legend = chart.options.legend || {},
904
+ horiz = userOptions.layout ?
905
+ userOptions.layout !== 'vertical' :
906
+ legend.layout !== 'vertical',
907
+ visible = userOptions.visible;
908
+ var options = merge(ColorAxis.defaultColorAxisOptions,
909
+ userOptions, {
910
+ showEmpty: false,
911
+ title: null,
912
+ visible: legend.enabled && visible !== false
913
+ });
914
+ axis.coll = 'colorAxis';
915
+ axis.side = userOptions.side || horiz ? 2 : 1;
916
+ axis.reversed = userOptions.reversed || !horiz;
917
+ axis.opposite = !horiz;
918
+ _super.prototype.init.call(this, chart, options);
919
+ // #16053: Restore the actual userOptions.visible so the color axis
920
+ // doesnt stay hidden forever when hiding and showing legend
921
+ axis.userOptions.visible = visible;
922
+ // Base init() pushes it to the xAxis array, now pop it again
923
+ // chart[this.isXAxis ? 'xAxis' : 'yAxis'].pop();
924
+ // Prepare data classes
925
+ if (userOptions.dataClasses) {
926
+ axis.initDataClasses(userOptions);
927
+ }
928
+ axis.initStops();
929
+ // Override original axis properties
930
+ axis.horiz = horiz;
931
+ axis.zoomEnabled = false;
932
+ };
933
+ /**
934
+ * @private
935
+ */
936
+ ColorAxis.prototype.initDataClasses = function (userOptions) {
937
+ var axis = this,
938
+ chart = axis.chart,
939
+ options = axis.options,
940
+ len = userOptions.dataClasses.length;
941
+ var dataClasses,
942
+ colorCounter = 0,
943
+ colorCount = chart.options.chart.colorCount;
944
+ axis.dataClasses = dataClasses = [];
945
+ axis.legendItems = [];
946
+ (userOptions.dataClasses || []).forEach(function (dataClass, i) {
947
+ var colors;
948
+ dataClass = merge(dataClass);
949
+ dataClasses.push(dataClass);
950
+ if (!chart.styledMode && dataClass.color) {
951
+ return;
952
+ }
953
+ if (options.dataClassColor === 'category') {
954
+ if (!chart.styledMode) {
955
+ colors = chart.options.colors;
956
+ colorCount = colors.length;
957
+ dataClass.color = colors[colorCounter];
958
+ }
959
+ dataClass.colorIndex = colorCounter;
960
+ // increase and loop back to zero
961
+ colorCounter++;
962
+ if (colorCounter === colorCount) {
963
+ colorCounter = 0;
964
+ }
965
+ }
966
+ else {
967
+ dataClass.color = color(options.minColor).tweenTo(color(options.maxColor), len < 2 ? 0.5 : i / (len - 1) // #3219
968
+ );
969
+ }
970
+ });
971
+ };
972
+ /**
973
+ * Returns true if the series has points at all.
974
+ *
975
+ * @function Highcharts.ColorAxis#hasData
976
+ *
977
+ * @return {boolean}
978
+ * True, if the series has points, otherwise false.
979
+ */
980
+ ColorAxis.prototype.hasData = function () {
981
+ return !!(this.tickPositions || []).length;
982
+ };
983
+ /**
984
+ * Override so that ticks are not added in data class axes (#6914)
985
+ * @private
986
+ */
987
+ ColorAxis.prototype.setTickPositions = function () {
988
+ if (!this.dataClasses) {
989
+ return _super.prototype.setTickPositions.call(this);
990
+ }
991
+ };
992
+ /**
993
+ * @private
994
+ */
995
+ ColorAxis.prototype.initStops = function () {
996
+ var axis = this;
997
+ axis.stops = axis.options.stops || [
998
+ [0, axis.options.minColor],
999
+ [1, axis.options.maxColor]
1000
+ ];
1001
+ axis.stops.forEach(function (stop) {
1002
+ stop.color = color(stop[1]);
1003
+ });
1004
+ };
1005
+ /**
1006
+ * Extend the setOptions method to process extreme colors and color stops.
1007
+ * @private
1008
+ */
1009
+ ColorAxis.prototype.setOptions = function (userOptions) {
1010
+ var axis = this;
1011
+ _super.prototype.setOptions.call(this, userOptions);
1012
+ axis.options.crosshair = axis.options.marker;
1013
+ };
1014
+ /**
1015
+ * @private
1016
+ */
1017
+ ColorAxis.prototype.setAxisSize = function () {
1018
+ var axis = this;
1019
+ var symbol = axis.legendSymbol;
1020
+ var chart = axis.chart;
1021
+ var legendOptions = chart.options.legend || {};
1022
+ var x,
1023
+ y,
1024
+ width,
1025
+ height;
1026
+ if (symbol) {
1027
+ this.left = x = symbol.attr('x');
1028
+ this.top = y = symbol.attr('y');
1029
+ this.width = width = symbol.attr('width');
1030
+ this.height = height = symbol.attr('height');
1031
+ this.right = chart.chartWidth - x - width;
1032
+ this.bottom = chart.chartHeight - y - height;
1033
+ this.len = this.horiz ? width : height;
1034
+ this.pos = this.horiz ? x : y;
1035
+ }
1036
+ else {
1037
+ // Fake length for disabled legend to avoid tick issues
1038
+ // and such (#5205)
1039
+ this.len = (this.horiz ?
1040
+ legendOptions.symbolWidth :
1041
+ legendOptions.symbolHeight) || ColorAxis.defaultLegendLength;
1042
+ }
1043
+ };
1044
+ /**
1045
+ * @private
1046
+ */
1047
+ ColorAxis.prototype.normalizedValue = function (value) {
1048
+ var axis = this;
1049
+ if (axis.logarithmic) {
1050
+ value = axis.logarithmic.log2lin(value);
1051
+ }
1052
+ return 1 - ((axis.max - value) /
1053
+ ((axis.max - axis.min) || 1));
1054
+ };
1055
+ /**
1056
+ * Translate from a value to a color.
1057
+ * @private
1058
+ */
1059
+ ColorAxis.prototype.toColor = function (value, point) {
1060
+ var axis = this;
1061
+ var dataClasses = axis.dataClasses;
1062
+ var stops = axis.stops;
1063
+ var pos,
1064
+ from,
1065
+ to,
1066
+ color,
1067
+ dataClass,
1068
+ i;
1069
+ if (dataClasses) {
1070
+ i = dataClasses.length;
1071
+ while (i--) {
1072
+ dataClass = dataClasses[i];
1073
+ from = dataClass.from;
1074
+ to = dataClass.to;
1075
+ if ((typeof from === 'undefined' || value >= from) &&
1076
+ (typeof to === 'undefined' || value <= to)) {
1077
+ color = dataClass.color;
1078
+ if (point) {
1079
+ point.dataClass = i;
1080
+ point.colorIndex = dataClass.colorIndex;
1081
+ }
1082
+ break;
1083
+ }
1084
+ }
1085
+ }
1086
+ else {
1087
+ pos = axis.normalizedValue(value);
1088
+ i = stops.length;
1089
+ while (i--) {
1090
+ if (pos > stops[i][0]) {
1091
+ break;
1092
+ }
1093
+ }
1094
+ from = stops[i] || stops[i + 1];
1095
+ to = stops[i + 1] || from;
1096
+ // The position within the gradient
1097
+ pos = 1 - (to[0] - pos) / ((to[0] - from[0]) || 1);
1098
+ color = from.color.tweenTo(to.color, pos);
1099
+ }
1100
+ return color;
1101
+ };
1102
+ /**
1103
+ * Override the getOffset method to add the whole axis groups inside the
1104
+ * legend.
1105
+ * @private
1106
+ */
1107
+ ColorAxis.prototype.getOffset = function () {
1108
+ var axis = this;
1109
+ var group = axis.legendGroup;
1110
+ var sideOffset = axis.chart.axisOffset[axis.side];
1111
+ if (group) {
1112
+ // Hook for the getOffset method to add groups to this parent
1113
+ // group
1114
+ axis.axisParent = group;
1115
+ // Call the base
1116
+ _super.prototype.getOffset.call(this);
1117
+ // First time only
1118
+ if (!axis.added) {
1119
+ axis.added = true;
1120
+ axis.labelLeft = 0;
1121
+ axis.labelRight = axis.width;
1122
+ }
1123
+ // Reset it to avoid color axis reserving space
1124
+ axis.chart.axisOffset[axis.side] = sideOffset;
1125
+ }
1126
+ };
1127
+ /**
1128
+ * Create the color gradient.
1129
+ * @private
1130
+ */
1131
+ ColorAxis.prototype.setLegendColor = function () {
1132
+ var axis = this;
1133
+ var horiz = axis.horiz;
1134
+ var reversed = axis.reversed;
1135
+ var one = reversed ? 1 : 0;
1136
+ var zero = reversed ? 0 : 1;
1137
+ var grad = horiz ? [one, 0,
1138
+ zero, 0] : [0,
1139
+ zero, 0,
1140
+ one]; // #3190
1141
+ axis.legendColor = {
1142
+ linearGradient: {
1143
+ x1: grad[0],
1144
+ y1: grad[1],
1145
+ x2: grad[2],
1146
+ y2: grad[3]
1147
+ },
1148
+ stops: axis.stops
1149
+ };
1150
+ };
1151
+ /**
1152
+ * The color axis appears inside the legend and has its own legend symbol.
1153
+ * @private
1154
+ */
1155
+ ColorAxis.prototype.drawLegendSymbol = function (legend, item) {
1156
+ var axis = this;
1157
+ var padding = legend.padding;
1158
+ var legendOptions = legend.options;
1159
+ var horiz = axis.horiz;
1160
+ var width = pick(legendOptions.symbolWidth,
1161
+ horiz ? ColorAxis.defaultLegendLength : 12);
1162
+ var height = pick(legendOptions.symbolHeight,
1163
+ horiz ? 12 : ColorAxis.defaultLegendLength);
1164
+ var labelPadding = pick(legendOptions.labelPadding,
1165
+ horiz ? 16 : 30);
1166
+ var itemDistance = pick(legendOptions.itemDistance, 10);
1167
+ this.setLegendColor();
1168
+ // Create the gradient
1169
+ item.legendSymbol = this.chart.renderer.rect(0, legend.baseline - 11, width, height).attr({
1170
+ zIndex: 1
1171
+ }).add(item.legendGroup);
1172
+ // Set how much space this legend item takes up
1173
+ axis.legendItemWidth = width + padding + (horiz ? itemDistance : labelPadding);
1174
+ axis.legendItemHeight = height + padding + (horiz ? labelPadding : 0);
1175
+ };
1176
+ /**
1177
+ * Fool the legend.
1178
+ * @private
1179
+ */
1180
+ ColorAxis.prototype.setState = function (state) {
1181
+ this.series.forEach(function (series) {
1182
+ series.setState(state);
1183
+ });
1184
+ };
1185
+ /**
1186
+ * @private
1187
+ */
1188
+ ColorAxis.prototype.setVisible = function () {
1189
+ };
1190
+ /**
1191
+ * @private
1192
+ */
1193
+ ColorAxis.prototype.getSeriesExtremes = function () {
1194
+ var axis = this;
1195
+ var series = axis.series;
1196
+ var colorValArray,
1197
+ colorKey,
1198
+ colorValIndex,
1199
+ pointArrayMap,
1200
+ calculatedExtremes,
1201
+ cSeries,
1202
+ i = series.length,
1203
+ yData,
1204
+ j;
1205
+ this.dataMin = Infinity;
1206
+ this.dataMax = -Infinity;
1207
+ while (i--) { // x, y, value, other
1208
+ cSeries = series[i];
1209
+ colorKey = cSeries.colorKey = pick(cSeries.options.colorKey, cSeries.colorKey, cSeries.pointValKey, cSeries.zoneAxis, 'y');
1210
+ pointArrayMap = cSeries.pointArrayMap;
1211
+ calculatedExtremes = cSeries[colorKey + 'Min'] &&
1212
+ cSeries[colorKey + 'Max'];
1213
+ if (cSeries[colorKey + 'Data']) {
1214
+ colorValArray = cSeries[colorKey + 'Data'];
1215
+ }
1216
+ else {
1217
+ if (!pointArrayMap) {
1218
+ colorValArray = cSeries.yData;
1219
+ }
1220
+ else {
1221
+ colorValArray = [];
1222
+ colorValIndex = pointArrayMap.indexOf(colorKey);
1223
+ yData = cSeries.yData;
1224
+ if (colorValIndex >= 0 && yData) {
1225
+ for (j = 0; j < yData.length; j++) {
1226
+ colorValArray.push(pick(yData[j][colorValIndex], yData[j]));
1227
+ }
1228
+ }
1229
+ }
1230
+ }
1231
+ // If color key extremes are already calculated, use them.
1232
+ if (calculatedExtremes) {
1233
+ cSeries.minColorValue = cSeries[colorKey + 'Min'];
1234
+ cSeries.maxColorValue = cSeries[colorKey + 'Max'];
1235
+ }
1236
+ else {
1237
+ var cExtremes = Series.prototype.getExtremes.call(cSeries,
1238
+ colorValArray);
1239
+ cSeries.minColorValue = cExtremes.dataMin;
1240
+ cSeries.maxColorValue = cExtremes.dataMax;
1241
+ }
1242
+ if (typeof cSeries.minColorValue !== 'undefined') {
1243
+ this.dataMin =
1244
+ Math.min(this.dataMin, cSeries.minColorValue);
1245
+ this.dataMax =
1246
+ Math.max(this.dataMax, cSeries.maxColorValue);
1247
+ }
1248
+ if (!calculatedExtremes) {
1249
+ Series.prototype.applyExtremes.call(cSeries);
1250
+ }
1251
+ }
1252
+ };
1253
+ /**
1254
+ * Internal function to draw a crosshair.
1255
+ *
1256
+ * @function Highcharts.ColorAxis#drawCrosshair
1257
+ *
1258
+ * @param {Highcharts.PointerEventObject} [e]
1259
+ * The event arguments from the modified pointer event, extended with
1260
+ * `chartX` and `chartY`
1261
+ *
1262
+ * @param {Highcharts.Point} [point]
1263
+ * The Point object if the crosshair snaps to points.
1264
+ *
1265
+ * @fires Highcharts.ColorAxis#event:afterDrawCrosshair
1266
+ * @fires Highcharts.ColorAxis#event:drawCrosshair
1267
+ */
1268
+ ColorAxis.prototype.drawCrosshair = function (e, point) {
1269
+ var axis = this;
1270
+ var plotX = point && point.plotX;
1271
+ var plotY = point && point.plotY;
1272
+ var axisPos = axis.pos;
1273
+ var axisLen = axis.len;
1274
+ var crossPos;
1275
+ if (point) {
1276
+ crossPos = axis.toPixels(point.getNestedProperty(point.series.colorKey));
1277
+ if (crossPos < axisPos) {
1278
+ crossPos = axisPos - 2;
1279
+ }
1280
+ else if (crossPos > axisPos + axisLen) {
1281
+ crossPos = axisPos + axisLen + 2;
1282
+ }
1283
+ point.plotX = crossPos;
1284
+ point.plotY = axis.len - crossPos;
1285
+ _super.prototype.drawCrosshair.call(this, e, point);
1286
+ point.plotX = plotX;
1287
+ point.plotY = plotY;
1288
+ if (axis.cross &&
1289
+ !axis.cross.addedToColorAxis &&
1290
+ axis.legendGroup) {
1291
+ axis.cross
1292
+ .addClass('highcharts-coloraxis-marker')
1293
+ .add(axis.legendGroup);
1294
+ axis.cross.addedToColorAxis = true;
1295
+ if (!axis.chart.styledMode &&
1296
+ typeof axis.crosshair === 'object') {
1297
+ axis.cross.attr({
1298
+ fill: axis.crosshair.color
1299
+ });
1300
+ }
1301
+ }
1302
+ }
1303
+ };
1304
+ /**
1305
+ * @private
1306
+ */
1307
+ ColorAxis.prototype.getPlotLinePath = function (options) {
1308
+ var axis = this,
1309
+ left = axis.left,
1310
+ pos = options.translatedValue,
1311
+ top = axis.top;
1312
+ // crosshairs only
1313
+ return isNumber(pos) ? // pos can be 0 (#3969)
1314
+ (axis.horiz ? [
1315
+ ['M', pos - 4, top - 6],
1316
+ ['L', pos + 4, top - 6],
1317
+ ['L', pos, top],
1318
+ ['Z']
1319
+ ] : [
1320
+ ['M', left, pos],
1321
+ ['L', left - 6, pos + 6],
1322
+ ['L', left - 6, pos - 6],
1323
+ ['Z']
1324
+ ]) :
1325
+ _super.prototype.getPlotLinePath.call(this, options);
1326
+ };
1327
+ /**
1328
+ * Updates a color axis instance with a new set of options. The options are
1329
+ * merged with the existing options, so only new or altered options need to
1330
+ * be specified.
1331
+ *
1332
+ * @function Highcharts.ColorAxis#update
1333
+ *
1334
+ * @param {Highcharts.ColorAxisOptions} newOptions
1335
+ * The new options that will be merged in with existing options on the color
1336
+ * axis.
1337
+ *
1338
+ * @param {boolean} [redraw]
1339
+ * Whether to redraw the chart after the color axis is altered. If doing
1340
+ * more operations on the chart, it is a good idea to set redraw to `false`
1341
+ * and call {@link Highcharts.Chart#redraw} after.
1342
+ */
1343
+ ColorAxis.prototype.update = function (newOptions, redraw) {
1344
+ var axis = this,
1345
+ chart = axis.chart,
1346
+ legend = chart.legend;
1347
+ this.series.forEach(function (series) {
1348
+ // Needed for Axis.update when choropleth colors change
1349
+ series.isDirtyData = true;
1350
+ });
1351
+ // When updating data classes, destroy old items and make sure new
1352
+ // ones are created (#3207)
1353
+ if (newOptions.dataClasses && legend.allItems || axis.dataClasses) {
1354
+ axis.destroyItems();
1355
+ }
1356
+ _super.prototype.update.call(this, newOptions, redraw);
1357
+ if (axis.legendItem) {
1358
+ axis.setLegendColor();
1359
+ legend.colorizeItem(this, true);
1360
+ }
1361
+ };
1362
+ /**
1363
+ * Destroy color axis legend items.
1364
+ * @private
1365
+ */
1366
+ ColorAxis.prototype.destroyItems = function () {
1367
+ var axis = this;
1368
+ var chart = axis.chart;
1369
+ if (axis.legendItem) {
1370
+ chart.legend.destroyItem(axis);
1371
+ }
1372
+ else if (axis.legendItems) {
1373
+ axis.legendItems.forEach(function (item) {
1374
+ chart.legend.destroyItem(item);
1375
+ });
1376
+ }
1377
+ chart.isDirtyLegend = true;
1378
+ };
1379
+ // Removing the whole axis (#14283)
1380
+ ColorAxis.prototype.destroy = function () {
1381
+ this.chart.isDirtyLegend = true;
1382
+ this.destroyItems();
1383
+ _super.prototype.destroy.apply(this, [].slice.call(arguments));
1384
+ };
1385
+ /**
1386
+ * Removes the color axis and the related legend item.
1387
+ *
1388
+ * @function Highcharts.ColorAxis#remove
1389
+ *
1390
+ * @param {boolean} [redraw=true]
1391
+ * Whether to redraw the chart following the remove.
1392
+ */
1393
+ ColorAxis.prototype.remove = function (redraw) {
1394
+ this.destroyItems();
1395
+ _super.prototype.remove.call(this, redraw);
1396
+ };
1397
+ /**
1398
+ * Get the legend item symbols for data classes.
1399
+ * @private
1400
+ */
1401
+ ColorAxis.prototype.getDataClassLegendSymbols = function () {
1402
+ var axis = this;
1403
+ var chart = axis.chart;
1404
+ var legendItems = axis.legendItems;
1405
+ var legendOptions = chart.options.legend;
1406
+ var valueDecimals = legendOptions.valueDecimals;
1407
+ var valueSuffix = legendOptions.valueSuffix || '';
1408
+ var name;
1409
+ if (!legendItems.length) {
1410
+ axis.dataClasses.forEach(function (dataClass, i) {
1411
+ var from = dataClass.from,
1412
+ to = dataClass.to,
1413
+ numberFormatter = chart.numberFormatter;
1414
+ var vis = true;
1415
+ // Assemble the default name. This can be overridden
1416
+ // by legend.options.labelFormatter
1417
+ name = '';
1418
+ if (typeof from === 'undefined') {
1419
+ name = '< ';
1420
+ }
1421
+ else if (typeof to === 'undefined') {
1422
+ name = '> ';
1423
+ }
1424
+ if (typeof from !== 'undefined') {
1425
+ name += numberFormatter(from, valueDecimals) + valueSuffix;
1426
+ }
1427
+ if (typeof from !== 'undefined' && typeof to !== 'undefined') {
1428
+ name += ' - ';
1429
+ }
1430
+ if (typeof to !== 'undefined') {
1431
+ name += numberFormatter(to, valueDecimals) + valueSuffix;
1432
+ }
1433
+ // Add a mock object to the legend items
1434
+ legendItems.push(extend({
1435
+ chart: chart,
1436
+ name: name,
1437
+ options: {},
1438
+ drawLegendSymbol: LegendSymbol.drawRectangle,
1439
+ visible: true,
1440
+ setState: noop,
1441
+ isDataClass: true,
1442
+ setVisible: function () {
1443
+ vis = axis.visible = !vis;
1444
+ axis.series.forEach(function (series) {
1445
+ series.points.forEach(function (point) {
1446
+ if (point.dataClass === i) {
1447
+ point.setVisible(vis);
1448
+ }
1449
+ });
1450
+ });
1451
+ chart.legend.colorizeItem(this, vis);
1452
+ }
1453
+ }, dataClass));
1454
+ });
1455
+ }
1456
+ return legendItems;
1457
+ };
1458
+ /* *
1459
+ *
1460
+ * Static Properties
1461
+ *
1462
+ * */
1463
+ ColorAxis.defaultColorAxisOptions = ColorAxisDefaults;
1464
+ ColorAxis.defaultLegendLength = 200;
1196
1465
  /**
1197
1466
  * @private
1198
1467
  */
@@ -1205,126 +1474,37 @@
1205
1474
  ];
1206
1475
  return ColorAxis;
1207
1476
  }(Axis));
1477
+ /* *
1478
+ *
1479
+ * Registry
1480
+ *
1481
+ * */
1208
1482
  // Properties to preserve after destroy, for Axis.update (#5881, #6025).
1209
1483
  Array.prototype.push.apply(Axis.keepProps, ColorAxis.keepProps);
1210
- H.ColorAxis = ColorAxis;
1484
+ /* *
1485
+ *
1486
+ * Default Export
1487
+ *
1488
+ * */
1489
+ /* *
1490
+ *
1491
+ * API Declarations
1492
+ *
1493
+ * */
1211
1494
  /**
1212
- * Handle animation of the color attributes directly
1495
+ * Color axis types
1213
1496
  *
1214
- * @private
1215
- * @function Highcharts.Fx#fillSetter
1216
- */ /**
1217
- * Handle animation of the color attributes directly
1218
- *
1219
- * @private
1220
- * @function Highcharts.Fx#strokeSetter
1221
- */
1222
- ['fill', 'stroke'].forEach(function (prop) {
1223
- Fx.prototype[prop + 'Setter'] = function () {
1224
- this.elem.attr(prop, color(this.start).tweenTo(color(this.end), this.pos), null, true);
1225
- };
1226
- });
1227
- // Extend the chart getAxes method to also get the color axis
1228
- addEvent(Chart, 'afterGetAxes', function () {
1229
- var chart = this,
1230
- options = chart.options;
1231
- this.colorAxis = [];
1232
- if (options.colorAxis) {
1233
- options.colorAxis = splat(options.colorAxis);
1234
- options.colorAxis.forEach(function (axisOptions, i) {
1235
- axisOptions.index = i;
1236
- new ColorAxis(chart, axisOptions); // eslint-disable-line no-new
1237
- });
1238
- }
1239
- });
1240
- // Add colorAxis to series axisTypes
1241
- addEvent(Series, 'bindAxes', function () {
1242
- var axisTypes = this.axisTypes;
1243
- if (!axisTypes) {
1244
- this.axisTypes = ['colorAxis'];
1245
- }
1246
- else if (axisTypes.indexOf('colorAxis') === -1) {
1247
- axisTypes.push('colorAxis');
1248
- }
1249
- });
1250
- // Add the color axis. This also removes the axis' own series to prevent
1251
- // them from showing up individually.
1252
- addEvent(Legend, 'afterGetAllItems', function (e) {
1253
- var _this = this;
1254
- var colorAxisItems = [],
1255
- colorAxes = this.chart.colorAxis || [],
1256
- options,
1257
- i;
1258
- var destroyItem = function (item) {
1259
- var i = e.allItems.indexOf(item);
1260
- if (i !== -1) {
1261
- // #15436
1262
- _this.destroyItem(e.allItems[i]);
1263
- e.allItems.splice(i, 1);
1264
- }
1265
- };
1266
- colorAxes.forEach(function (colorAxis) {
1267
- options = colorAxis.options;
1268
- if (options && options.showInLegend) {
1269
- // Data classes
1270
- if (options.dataClasses && options.visible) {
1271
- colorAxisItems = colorAxisItems.concat(colorAxis.getDataClassLegendSymbols());
1272
- // Gradient legend
1273
- }
1274
- else if (options.visible) {
1275
- // Add this axis on top
1276
- colorAxisItems.push(colorAxis);
1277
- }
1278
- // If dataClasses are defined or showInLegend option is not set to
1279
- // true, do not add color axis' series to legend.
1280
- colorAxis.series.forEach(function (series) {
1281
- if (!series.options.showInLegend || options.dataClasses) {
1282
- if (series.options.legendType === 'point') {
1283
- series.points.forEach(function (point) {
1284
- destroyItem(point);
1285
- });
1286
- }
1287
- else {
1288
- destroyItem(series);
1289
- }
1290
- }
1291
- });
1292
- }
1293
- });
1294
- i = colorAxisItems.length;
1295
- while (i--) {
1296
- e.allItems.unshift(colorAxisItems[i]);
1297
- }
1298
- });
1299
- addEvent(Legend, 'afterColorizeItem', function (e) {
1300
- if (e.visible && e.item.legendColor) {
1301
- e.item.legendSymbol.attr({
1302
- fill: e.item.legendColor
1303
- });
1304
- }
1305
- });
1306
- // Updates in the legend need to be reflected in the color axis (6888)
1307
- addEvent(Legend, 'afterUpdate', function () {
1308
- var colorAxes = this.chart.colorAxis;
1309
- if (colorAxes) {
1310
- colorAxes.forEach(function (colorAxis) {
1311
- colorAxis.update({}, arguments[2]);
1312
- });
1313
- }
1314
- });
1315
- // Calculate and set colors for points
1316
- addEvent(Series, 'afterTranslate', function () {
1317
- if (this.chart.colorAxis &&
1318
- this.chart.colorAxis.length ||
1319
- this.colorAttribs) {
1320
- this.translateColors();
1321
- }
1322
- });
1497
+ * @typedef {"linear"|"logarithmic"} Highcharts.ColorAxisTypeValue
1498
+ */
1499
+ ''; // detach doclet above
1323
1500
 
1324
1501
  return ColorAxis;
1325
1502
  });
1326
- _registerModule(_modules, 'masters/modules/coloraxis.src.js', [], function () {
1503
+ _registerModule(_modules, 'masters/modules/coloraxis.src.js', [_modules['Core/Globals.js'], _modules['Core/Axis/Color/ColorAxis.js']], function (Highcharts, ColorAxis) {
1327
1504
 
1505
+ var G = Highcharts;
1506
+ G.ColorAxis = ColorAxis;
1507
+ ColorAxis.compose(G.Chart, G.Fx, G.Legend, G.Series);
1328
1508
 
1329
1509
  });
1330
1510
  }));