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