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