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
|
@@ -1,893 +0,0 @@
|
|
|
1
|
-
/* *
|
|
2
|
-
*
|
|
3
|
-
* (c) 2010-2021 Highsoft AS
|
|
4
|
-
*
|
|
5
|
-
* Author: Paweł Potaczek
|
|
6
|
-
*
|
|
7
|
-
* License: www.highcharts.com/license
|
|
8
|
-
*
|
|
9
|
-
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
10
|
-
*
|
|
11
|
-
* */
|
|
12
|
-
'use strict';
|
|
13
|
-
import Chart from '../../Core/Chart/Chart.js';
|
|
14
|
-
import Color from '../../Core/Color/Color.js';
|
|
15
|
-
var color = Color.parse;
|
|
16
|
-
import F from '../../Core/FormatUtilities.js';
|
|
17
|
-
import H from '../../Core/Globals.js';
|
|
18
|
-
var noop = H.noop;
|
|
19
|
-
import Legend from '../../Core/Legend.js';
|
|
20
|
-
import D from '../../Core/DefaultOptions.js';
|
|
21
|
-
var setOptions = D.setOptions;
|
|
22
|
-
import palette from '../../Core/Color/Palette.js';
|
|
23
|
-
import Series from '../../Core/Series/Series.js';
|
|
24
|
-
import U from '../../Core/Utilities.js';
|
|
25
|
-
var addEvent = U.addEvent, arrayMax = U.arrayMax, arrayMin = U.arrayMin, isNumber = U.isNumber, merge = U.merge, objectEach = U.objectEach, pick = U.pick, stableSort = U.stableSort, wrap = U.wrap;
|
|
26
|
-
/**
|
|
27
|
-
* @interface Highcharts.BubbleLegendFormatterContextObject
|
|
28
|
-
*/ /**
|
|
29
|
-
* The center y position of the range.
|
|
30
|
-
* @name Highcharts.BubbleLegendFormatterContextObject#center
|
|
31
|
-
* @type {number}
|
|
32
|
-
*/ /**
|
|
33
|
-
* The radius of the bubble range.
|
|
34
|
-
* @name Highcharts.BubbleLegendFormatterContextObject#radius
|
|
35
|
-
* @type {number}
|
|
36
|
-
*/ /**
|
|
37
|
-
* The bubble value.
|
|
38
|
-
* @name Highcharts.BubbleLegendFormatterContextObject#value
|
|
39
|
-
* @type {number}
|
|
40
|
-
*/
|
|
41
|
-
''; // detach doclets above
|
|
42
|
-
import './BubbleSeries.js';
|
|
43
|
-
setOptions({
|
|
44
|
-
legend: {
|
|
45
|
-
/**
|
|
46
|
-
* The bubble legend is an additional element in legend which
|
|
47
|
-
* presents the scale of the bubble series. Individual bubble ranges
|
|
48
|
-
* can be defined by user or calculated from series. In the case of
|
|
49
|
-
* automatically calculated ranges, a 1px margin of error is
|
|
50
|
-
* permitted.
|
|
51
|
-
*
|
|
52
|
-
* @since 7.0.0
|
|
53
|
-
* @product highcharts highstock highmaps
|
|
54
|
-
* @requires highcharts-more
|
|
55
|
-
* @optionparent legend.bubbleLegend
|
|
56
|
-
*/
|
|
57
|
-
bubbleLegend: {
|
|
58
|
-
/**
|
|
59
|
-
* The color of the ranges borders, can be also defined for an
|
|
60
|
-
* individual range.
|
|
61
|
-
*
|
|
62
|
-
* @sample highcharts/bubble-legend/similartoseries/
|
|
63
|
-
* Similar look to the bubble series
|
|
64
|
-
* @sample highcharts/bubble-legend/bordercolor/
|
|
65
|
-
* Individual bubble border color
|
|
66
|
-
*
|
|
67
|
-
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
68
|
-
*/
|
|
69
|
-
borderColor: void 0,
|
|
70
|
-
/**
|
|
71
|
-
* The width of the ranges borders in pixels, can be also
|
|
72
|
-
* defined for an individual range.
|
|
73
|
-
*/
|
|
74
|
-
borderWidth: 2,
|
|
75
|
-
/**
|
|
76
|
-
* An additional class name to apply to the bubble legend'
|
|
77
|
-
* circle graphical elements. This option does not replace
|
|
78
|
-
* default class names of the graphical element.
|
|
79
|
-
*
|
|
80
|
-
* @sample {highcharts} highcharts/css/bubble-legend/
|
|
81
|
-
* Styling by CSS
|
|
82
|
-
*
|
|
83
|
-
* @type {string}
|
|
84
|
-
*/
|
|
85
|
-
className: void 0,
|
|
86
|
-
/**
|
|
87
|
-
* The main color of the bubble legend. Applies to ranges, if
|
|
88
|
-
* individual color is not defined.
|
|
89
|
-
*
|
|
90
|
-
* @sample highcharts/bubble-legend/similartoseries/
|
|
91
|
-
* Similar look to the bubble series
|
|
92
|
-
* @sample highcharts/bubble-legend/color/
|
|
93
|
-
* Individual bubble color
|
|
94
|
-
*
|
|
95
|
-
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
96
|
-
*/
|
|
97
|
-
color: void 0,
|
|
98
|
-
/**
|
|
99
|
-
* An additional class name to apply to the bubble legend's
|
|
100
|
-
* connector graphical elements. This option does not replace
|
|
101
|
-
* default class names of the graphical element.
|
|
102
|
-
*
|
|
103
|
-
* @sample {highcharts} highcharts/css/bubble-legend/
|
|
104
|
-
* Styling by CSS
|
|
105
|
-
*
|
|
106
|
-
* @type {string}
|
|
107
|
-
*/
|
|
108
|
-
connectorClassName: void 0,
|
|
109
|
-
/**
|
|
110
|
-
* The color of the connector, can be also defined
|
|
111
|
-
* for an individual range.
|
|
112
|
-
*
|
|
113
|
-
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
114
|
-
*/
|
|
115
|
-
connectorColor: void 0,
|
|
116
|
-
/**
|
|
117
|
-
* The length of the connectors in pixels. If labels are
|
|
118
|
-
* centered, the distance is reduced to 0.
|
|
119
|
-
*
|
|
120
|
-
* @sample highcharts/bubble-legend/connectorandlabels/
|
|
121
|
-
* Increased connector length
|
|
122
|
-
*/
|
|
123
|
-
connectorDistance: 60,
|
|
124
|
-
/**
|
|
125
|
-
* The width of the connectors in pixels.
|
|
126
|
-
*
|
|
127
|
-
* @sample highcharts/bubble-legend/connectorandlabels/
|
|
128
|
-
* Increased connector width
|
|
129
|
-
*/
|
|
130
|
-
connectorWidth: 1,
|
|
131
|
-
/**
|
|
132
|
-
* Enable or disable the bubble legend.
|
|
133
|
-
*/
|
|
134
|
-
enabled: false,
|
|
135
|
-
/**
|
|
136
|
-
* Options for the bubble legend labels.
|
|
137
|
-
*/
|
|
138
|
-
labels: {
|
|
139
|
-
/**
|
|
140
|
-
* An additional class name to apply to the bubble legend
|
|
141
|
-
* label graphical elements. This option does not replace
|
|
142
|
-
* default class names of the graphical element.
|
|
143
|
-
*
|
|
144
|
-
* @sample {highcharts} highcharts/css/bubble-legend/
|
|
145
|
-
* Styling by CSS
|
|
146
|
-
*
|
|
147
|
-
* @type {string}
|
|
148
|
-
*/
|
|
149
|
-
className: void 0,
|
|
150
|
-
/**
|
|
151
|
-
* Whether to allow data labels to overlap.
|
|
152
|
-
*/
|
|
153
|
-
allowOverlap: false,
|
|
154
|
-
/**
|
|
155
|
-
* A format string for the bubble legend labels. Available
|
|
156
|
-
* variables are the same as for `formatter`.
|
|
157
|
-
*
|
|
158
|
-
* @sample highcharts/bubble-legend/format/
|
|
159
|
-
* Add a unit
|
|
160
|
-
*
|
|
161
|
-
* @type {string}
|
|
162
|
-
*/
|
|
163
|
-
format: '',
|
|
164
|
-
/**
|
|
165
|
-
* Available `this` properties are:
|
|
166
|
-
*
|
|
167
|
-
* - `this.value`: The bubble value.
|
|
168
|
-
*
|
|
169
|
-
* - `this.radius`: The radius of the bubble range.
|
|
170
|
-
*
|
|
171
|
-
* - `this.center`: The center y position of the range.
|
|
172
|
-
*
|
|
173
|
-
* @type {Highcharts.FormatterCallbackFunction<Highcharts.BubbleLegendFormatterContextObject>}
|
|
174
|
-
*/
|
|
175
|
-
formatter: void 0,
|
|
176
|
-
/**
|
|
177
|
-
* The alignment of the labels compared to the bubble
|
|
178
|
-
* legend. Can be one of `left`, `center` or `right`.
|
|
179
|
-
*
|
|
180
|
-
* @sample highcharts/bubble-legend/connectorandlabels/
|
|
181
|
-
* Labels on left
|
|
182
|
-
*
|
|
183
|
-
* @type {Highcharts.AlignValue}
|
|
184
|
-
*/
|
|
185
|
-
align: 'right',
|
|
186
|
-
/**
|
|
187
|
-
* CSS styles for the labels.
|
|
188
|
-
*
|
|
189
|
-
* @type {Highcharts.CSSObject}
|
|
190
|
-
*/
|
|
191
|
-
style: {
|
|
192
|
-
/** @ignore-option */
|
|
193
|
-
fontSize: '10px',
|
|
194
|
-
/** @ignore-option */
|
|
195
|
-
color: palette.neutralColor100
|
|
196
|
-
},
|
|
197
|
-
/**
|
|
198
|
-
* The x position offset of the label relative to the
|
|
199
|
-
* connector.
|
|
200
|
-
*/
|
|
201
|
-
x: 0,
|
|
202
|
-
/**
|
|
203
|
-
* The y position offset of the label relative to the
|
|
204
|
-
* connector.
|
|
205
|
-
*/
|
|
206
|
-
y: 0
|
|
207
|
-
},
|
|
208
|
-
/**
|
|
209
|
-
* Miximum bubble legend range size. If values for ranges are
|
|
210
|
-
* not specified, the `minSize` and the `maxSize` are calculated
|
|
211
|
-
* from bubble series.
|
|
212
|
-
*/
|
|
213
|
-
maxSize: 60,
|
|
214
|
-
/**
|
|
215
|
-
* Minimum bubble legend range size. If values for ranges are
|
|
216
|
-
* not specified, the `minSize` and the `maxSize` are calculated
|
|
217
|
-
* from bubble series.
|
|
218
|
-
*/
|
|
219
|
-
minSize: 10,
|
|
220
|
-
/**
|
|
221
|
-
* The position of the bubble legend in the legend.
|
|
222
|
-
* @sample highcharts/bubble-legend/connectorandlabels/
|
|
223
|
-
* Bubble legend as last item in legend
|
|
224
|
-
*/
|
|
225
|
-
legendIndex: 0,
|
|
226
|
-
/**
|
|
227
|
-
* Options for specific range. One range consists of bubble,
|
|
228
|
-
* label and connector.
|
|
229
|
-
*
|
|
230
|
-
* @sample highcharts/bubble-legend/ranges/
|
|
231
|
-
* Manually defined ranges
|
|
232
|
-
* @sample highcharts/bubble-legend/autoranges/
|
|
233
|
-
* Auto calculated ranges
|
|
234
|
-
*
|
|
235
|
-
* @type {Array<*>}
|
|
236
|
-
*/
|
|
237
|
-
ranges: {
|
|
238
|
-
/**
|
|
239
|
-
* Range size value, similar to bubble Z data.
|
|
240
|
-
* @type {number}
|
|
241
|
-
*/
|
|
242
|
-
value: void 0,
|
|
243
|
-
/**
|
|
244
|
-
* The color of the border for individual range.
|
|
245
|
-
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
246
|
-
*/
|
|
247
|
-
borderColor: void 0,
|
|
248
|
-
/**
|
|
249
|
-
* The color of the bubble for individual range.
|
|
250
|
-
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
251
|
-
*/
|
|
252
|
-
color: void 0,
|
|
253
|
-
/**
|
|
254
|
-
* The color of the connector for individual range.
|
|
255
|
-
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
256
|
-
*/
|
|
257
|
-
connectorColor: void 0
|
|
258
|
-
},
|
|
259
|
-
/**
|
|
260
|
-
* Whether the bubble legend range value should be represented
|
|
261
|
-
* by the area or the width of the bubble. The default, area,
|
|
262
|
-
* corresponds best to the human perception of the size of each
|
|
263
|
-
* bubble.
|
|
264
|
-
*
|
|
265
|
-
* @sample highcharts/bubble-legend/ranges/
|
|
266
|
-
* Size by width
|
|
267
|
-
*
|
|
268
|
-
* @type {Highcharts.BubbleSizeByValue}
|
|
269
|
-
*/
|
|
270
|
-
sizeBy: 'area',
|
|
271
|
-
/**
|
|
272
|
-
* When this is true, the absolute value of z determines the
|
|
273
|
-
* size of the bubble. This means that with the default
|
|
274
|
-
* zThreshold of 0, a bubble of value -1 will have the same size
|
|
275
|
-
* as a bubble of value 1, while a bubble of value 0 will have a
|
|
276
|
-
* smaller size according to minSize.
|
|
277
|
-
*/
|
|
278
|
-
sizeByAbsoluteValue: false,
|
|
279
|
-
/**
|
|
280
|
-
* Define the visual z index of the bubble legend.
|
|
281
|
-
*/
|
|
282
|
-
zIndex: 1,
|
|
283
|
-
/**
|
|
284
|
-
* Ranges with with lower value than zThreshold, are skipped.
|
|
285
|
-
*/
|
|
286
|
-
zThreshold: 0
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
});
|
|
290
|
-
/* eslint-disable no-invalid-this, valid-jsdoc */
|
|
291
|
-
/**
|
|
292
|
-
* BubbleLegend class.
|
|
293
|
-
*
|
|
294
|
-
* @private
|
|
295
|
-
* @class
|
|
296
|
-
* @name Highcharts.BubbleLegend
|
|
297
|
-
* @param {Highcharts.LegendBubbleLegendOptions} options
|
|
298
|
-
* Bubble legend options
|
|
299
|
-
* @param {Highcharts.Legend} legend
|
|
300
|
-
* Legend
|
|
301
|
-
*/
|
|
302
|
-
var BubbleLegend = /** @class */ (function () {
|
|
303
|
-
function BubbleLegend(options, legend) {
|
|
304
|
-
this.chart = void 0;
|
|
305
|
-
this.fontMetrics = void 0;
|
|
306
|
-
this.legend = void 0;
|
|
307
|
-
this.legendGroup = void 0;
|
|
308
|
-
this.legendItem = void 0;
|
|
309
|
-
this.legendItemHeight = void 0;
|
|
310
|
-
this.legendItemWidth = void 0;
|
|
311
|
-
this.legendSymbol = void 0;
|
|
312
|
-
this.maxLabel = void 0;
|
|
313
|
-
this.movementX = void 0;
|
|
314
|
-
this.ranges = void 0;
|
|
315
|
-
this.visible = void 0;
|
|
316
|
-
this.symbols = void 0;
|
|
317
|
-
this.options = void 0;
|
|
318
|
-
this.setState = noop;
|
|
319
|
-
this.init(options, legend);
|
|
320
|
-
}
|
|
321
|
-
/**
|
|
322
|
-
* Create basic bubbleLegend properties similar to item in legend.
|
|
323
|
-
*
|
|
324
|
-
* @private
|
|
325
|
-
* @function Highcharts.BubbleLegend#init
|
|
326
|
-
* @param {Highcharts.LegendBubbleLegendOptions} options
|
|
327
|
-
* Bubble legend options
|
|
328
|
-
* @param {Highcharts.Legend} legend
|
|
329
|
-
* Legend
|
|
330
|
-
* @return {void}
|
|
331
|
-
*/
|
|
332
|
-
BubbleLegend.prototype.init = function (options, legend) {
|
|
333
|
-
this.options = options;
|
|
334
|
-
this.visible = true;
|
|
335
|
-
this.chart = legend.chart;
|
|
336
|
-
this.legend = legend;
|
|
337
|
-
};
|
|
338
|
-
/**
|
|
339
|
-
* Depending on the position option, add bubbleLegend to legend items.
|
|
340
|
-
*
|
|
341
|
-
* @private
|
|
342
|
-
* @function Highcharts.BubbleLegend#addToLegend
|
|
343
|
-
* @param {Array<(Highcharts.Point|Highcharts.Series)>}
|
|
344
|
-
* All legend items
|
|
345
|
-
* @return {void}
|
|
346
|
-
*/
|
|
347
|
-
BubbleLegend.prototype.addToLegend = function (items) {
|
|
348
|
-
// Insert bubbleLegend into legend items
|
|
349
|
-
items.splice(this.options.legendIndex, 0, this);
|
|
350
|
-
};
|
|
351
|
-
/**
|
|
352
|
-
* Calculate ranges, sizes and call the next steps of bubbleLegend
|
|
353
|
-
* creation.
|
|
354
|
-
*
|
|
355
|
-
* @private
|
|
356
|
-
* @function Highcharts.BubbleLegend#drawLegendSymbol
|
|
357
|
-
* @param {Highcharts.Legend} legend
|
|
358
|
-
* Legend instance
|
|
359
|
-
* @return {void}
|
|
360
|
-
*/
|
|
361
|
-
BubbleLegend.prototype.drawLegendSymbol = function (legend) {
|
|
362
|
-
var chart = this.chart, options = this.options, size, itemDistance = pick(legend.options.itemDistance, 20), connectorSpace, ranges = options.ranges, radius, maxLabel, connectorDistance = options.connectorDistance;
|
|
363
|
-
// Predict label dimensions
|
|
364
|
-
this.fontMetrics = chart.renderer.fontMetrics(options.labels.style.fontSize);
|
|
365
|
-
// Do not create bubbleLegend now if ranges or ranges valeus are not
|
|
366
|
-
// specified or if are empty array.
|
|
367
|
-
if (!ranges || !ranges.length || !isNumber(ranges[0].value)) {
|
|
368
|
-
legend.options.bubbleLegend.autoRanges = true;
|
|
369
|
-
return;
|
|
370
|
-
}
|
|
371
|
-
// Sort ranges to right render order
|
|
372
|
-
stableSort(ranges, function (a, b) {
|
|
373
|
-
return b.value - a.value;
|
|
374
|
-
});
|
|
375
|
-
this.ranges = ranges;
|
|
376
|
-
this.setOptions();
|
|
377
|
-
this.render();
|
|
378
|
-
// Get max label size
|
|
379
|
-
maxLabel = this.getMaxLabelSize();
|
|
380
|
-
radius = this.ranges[0].radius;
|
|
381
|
-
size = radius * 2;
|
|
382
|
-
// Space for connectors and labels.
|
|
383
|
-
connectorSpace =
|
|
384
|
-
connectorDistance - radius + maxLabel.width;
|
|
385
|
-
connectorSpace = connectorSpace > 0 ? connectorSpace : 0;
|
|
386
|
-
this.maxLabel = maxLabel;
|
|
387
|
-
this.movementX = options.labels.align === 'left' ?
|
|
388
|
-
connectorSpace : 0;
|
|
389
|
-
this.legendItemWidth = size + connectorSpace + itemDistance;
|
|
390
|
-
this.legendItemHeight = size + this.fontMetrics.h / 2;
|
|
391
|
-
};
|
|
392
|
-
/**
|
|
393
|
-
* Set style options for each bubbleLegend range.
|
|
394
|
-
*
|
|
395
|
-
* @private
|
|
396
|
-
* @function Highcharts.BubbleLegend#setOptions
|
|
397
|
-
* @return {void}
|
|
398
|
-
*/
|
|
399
|
-
BubbleLegend.prototype.setOptions = function () {
|
|
400
|
-
var ranges = this.ranges, options = this.options, series = this.chart.series[options.seriesIndex], baseline = this.legend.baseline, bubbleAttribs = {
|
|
401
|
-
zIndex: options.zIndex,
|
|
402
|
-
'stroke-width': options.borderWidth
|
|
403
|
-
}, connectorAttribs = {
|
|
404
|
-
zIndex: options.zIndex,
|
|
405
|
-
'stroke-width': options.connectorWidth
|
|
406
|
-
}, labelAttribs = {
|
|
407
|
-
align: (this.legend.options.rtl ||
|
|
408
|
-
options.labels.align === 'left') ? 'right' : 'left',
|
|
409
|
-
zIndex: options.zIndex
|
|
410
|
-
}, fillOpacity = series.options.marker.fillOpacity, styledMode = this.chart.styledMode;
|
|
411
|
-
// Allow to parts of styles be used individually for range
|
|
412
|
-
ranges.forEach(function (range, i) {
|
|
413
|
-
if (!styledMode) {
|
|
414
|
-
bubbleAttribs.stroke = pick(range.borderColor, options.borderColor, series.color);
|
|
415
|
-
bubbleAttribs.fill = pick(range.color, options.color, fillOpacity !== 1 ?
|
|
416
|
-
color(series.color).setOpacity(fillOpacity)
|
|
417
|
-
.get('rgba') :
|
|
418
|
-
series.color);
|
|
419
|
-
connectorAttribs.stroke = pick(range.connectorColor, options.connectorColor, series.color);
|
|
420
|
-
}
|
|
421
|
-
// Set options needed for rendering each range
|
|
422
|
-
ranges[i].radius = this.getRangeRadius(range.value);
|
|
423
|
-
ranges[i] = merge(ranges[i], {
|
|
424
|
-
center: (ranges[0].radius - ranges[i].radius +
|
|
425
|
-
baseline)
|
|
426
|
-
});
|
|
427
|
-
if (!styledMode) {
|
|
428
|
-
merge(true, ranges[i], {
|
|
429
|
-
bubbleAttribs: merge(bubbleAttribs),
|
|
430
|
-
connectorAttribs: merge(connectorAttribs),
|
|
431
|
-
labelAttribs: labelAttribs
|
|
432
|
-
});
|
|
433
|
-
}
|
|
434
|
-
}, this);
|
|
435
|
-
};
|
|
436
|
-
/**
|
|
437
|
-
* Calculate radius for each bubble range,
|
|
438
|
-
* used code from BubbleSeries.js 'getRadius' method.
|
|
439
|
-
*
|
|
440
|
-
* @private
|
|
441
|
-
* @function Highcharts.BubbleLegend#getRangeRadius
|
|
442
|
-
* @param {number} value
|
|
443
|
-
* Range value
|
|
444
|
-
* @return {number|null}
|
|
445
|
-
* Radius for one range
|
|
446
|
-
*/
|
|
447
|
-
BubbleLegend.prototype.getRangeRadius = function (value) {
|
|
448
|
-
var options = this.options, seriesIndex = this.options.seriesIndex, bubbleSeries = this.chart.series[seriesIndex], zMax = options.ranges[0].value, zMin = options.ranges[options.ranges.length - 1].value, minSize = options.minSize, maxSize = options.maxSize;
|
|
449
|
-
return bubbleSeries.getRadius.call(this, zMin, zMax, minSize, maxSize, value);
|
|
450
|
-
};
|
|
451
|
-
/**
|
|
452
|
-
* Render the legendSymbol group.
|
|
453
|
-
*
|
|
454
|
-
* @private
|
|
455
|
-
* @function Highcharts.BubbleLegend#render
|
|
456
|
-
* @return {void}
|
|
457
|
-
*/
|
|
458
|
-
BubbleLegend.prototype.render = function () {
|
|
459
|
-
var renderer = this.chart.renderer, zThreshold = this.options.zThreshold;
|
|
460
|
-
if (!this.symbols) {
|
|
461
|
-
this.symbols = {
|
|
462
|
-
connectors: [],
|
|
463
|
-
bubbleItems: [],
|
|
464
|
-
labels: []
|
|
465
|
-
};
|
|
466
|
-
}
|
|
467
|
-
// Nesting SVG groups to enable handleOverflow
|
|
468
|
-
this.legendSymbol = renderer.g('bubble-legend');
|
|
469
|
-
this.legendItem = renderer.g('bubble-legend-item');
|
|
470
|
-
// To enable default 'hideOverlappingLabels' method
|
|
471
|
-
this.legendSymbol.translateX = 0;
|
|
472
|
-
this.legendSymbol.translateY = 0;
|
|
473
|
-
this.ranges.forEach(function (range) {
|
|
474
|
-
if (range.value >= zThreshold) {
|
|
475
|
-
this.renderRange(range);
|
|
476
|
-
}
|
|
477
|
-
}, this);
|
|
478
|
-
// To use handleOverflow method
|
|
479
|
-
this.legendSymbol.add(this.legendItem);
|
|
480
|
-
this.legendItem.add(this.legendGroup);
|
|
481
|
-
this.hideOverlappingLabels();
|
|
482
|
-
};
|
|
483
|
-
/**
|
|
484
|
-
* Render one range, consisting of bubble symbol, connector and label.
|
|
485
|
-
*
|
|
486
|
-
* @private
|
|
487
|
-
* @function Highcharts.BubbleLegend#renderRange
|
|
488
|
-
* @param {Highcharts.LegendBubbleLegendRangesOptions} range
|
|
489
|
-
* Range options
|
|
490
|
-
* @return {void}
|
|
491
|
-
*/
|
|
492
|
-
BubbleLegend.prototype.renderRange = function (range) {
|
|
493
|
-
var mainRange = this.ranges[0], legend = this.legend, options = this.options, labelsOptions = options.labels, chart = this.chart, bubbleSeries = chart.series[options.seriesIndex], renderer = chart.renderer, symbols = this.symbols, labels = symbols.labels, label, elementCenter = range.center, absoluteRadius = Math.abs(range.radius), connectorDistance = options.connectorDistance || 0, labelsAlign = labelsOptions.align, rtl = legend.options.rtl, connectorLength = rtl || labelsAlign === 'left' ?
|
|
494
|
-
-connectorDistance : connectorDistance, borderWidth = options.borderWidth, connectorWidth = options.connectorWidth, posX = mainRange.radius || 0, posY = elementCenter - absoluteRadius -
|
|
495
|
-
borderWidth / 2 + connectorWidth / 2, labelY, labelX, fontMetrics = this.fontMetrics, labelMovement = fontMetrics.f / 2 -
|
|
496
|
-
(fontMetrics.h - fontMetrics.f) / 2, crispMovement = (posY % 1 ? 1 : 0.5) -
|
|
497
|
-
(connectorWidth % 2 ? 0 : 0.5), styledMode = renderer.styledMode;
|
|
498
|
-
// Set options for centered labels
|
|
499
|
-
if (labelsAlign === 'center') {
|
|
500
|
-
connectorLength = 0; // do not use connector
|
|
501
|
-
options.connectorDistance = 0;
|
|
502
|
-
range.labelAttribs.align = 'center';
|
|
503
|
-
}
|
|
504
|
-
labelY = posY + options.labels.y;
|
|
505
|
-
labelX = posX + connectorLength + options.labels.x;
|
|
506
|
-
// Render bubble symbol
|
|
507
|
-
symbols.bubbleItems.push(renderer
|
|
508
|
-
.circle(posX, elementCenter + crispMovement, absoluteRadius)
|
|
509
|
-
.attr(styledMode ? {} : range.bubbleAttribs)
|
|
510
|
-
.addClass((styledMode ?
|
|
511
|
-
'highcharts-color-' +
|
|
512
|
-
bubbleSeries.colorIndex + ' ' :
|
|
513
|
-
'') +
|
|
514
|
-
'highcharts-bubble-legend-symbol ' +
|
|
515
|
-
(options.className || '')).add(this.legendSymbol));
|
|
516
|
-
// Render connector
|
|
517
|
-
symbols.connectors.push(renderer
|
|
518
|
-
.path(renderer.crispLine([
|
|
519
|
-
['M', posX, posY],
|
|
520
|
-
['L', posX + connectorLength, posY]
|
|
521
|
-
], options.connectorWidth))
|
|
522
|
-
.attr((styledMode ? {} : range.connectorAttribs))
|
|
523
|
-
.addClass((styledMode ?
|
|
524
|
-
'highcharts-color-' +
|
|
525
|
-
this.options.seriesIndex + ' ' : '') +
|
|
526
|
-
'highcharts-bubble-legend-connectors ' +
|
|
527
|
-
(options.connectorClassName || '')).add(this.legendSymbol));
|
|
528
|
-
// Render label
|
|
529
|
-
label = renderer
|
|
530
|
-
.text(this.formatLabel(range), labelX, labelY + labelMovement)
|
|
531
|
-
.attr((styledMode ? {} : range.labelAttribs))
|
|
532
|
-
.css(styledMode ? {} : labelsOptions.style)
|
|
533
|
-
.addClass('highcharts-bubble-legend-labels ' +
|
|
534
|
-
(options.labels.className || '')).add(this.legendSymbol);
|
|
535
|
-
labels.push(label);
|
|
536
|
-
// To enable default 'hideOverlappingLabels' method
|
|
537
|
-
label.placed = true;
|
|
538
|
-
label.alignAttr = {
|
|
539
|
-
x: labelX,
|
|
540
|
-
y: labelY + labelMovement
|
|
541
|
-
};
|
|
542
|
-
};
|
|
543
|
-
/**
|
|
544
|
-
* Get the label which takes up the most space.
|
|
545
|
-
*
|
|
546
|
-
* @private
|
|
547
|
-
* @function Highcharts.BubbleLegend#getMaxLabelSize
|
|
548
|
-
* @return {Highcharts.BBoxObject}
|
|
549
|
-
*/
|
|
550
|
-
BubbleLegend.prototype.getMaxLabelSize = function () {
|
|
551
|
-
var labels = this.symbols.labels, maxLabel, labelSize;
|
|
552
|
-
labels.forEach(function (label) {
|
|
553
|
-
labelSize = label.getBBox(true);
|
|
554
|
-
if (maxLabel) {
|
|
555
|
-
maxLabel = labelSize.width > maxLabel.width ?
|
|
556
|
-
labelSize : maxLabel;
|
|
557
|
-
}
|
|
558
|
-
else {
|
|
559
|
-
maxLabel = labelSize;
|
|
560
|
-
}
|
|
561
|
-
});
|
|
562
|
-
return maxLabel || {};
|
|
563
|
-
};
|
|
564
|
-
/**
|
|
565
|
-
* Get formatted label for range.
|
|
566
|
-
*
|
|
567
|
-
* @private
|
|
568
|
-
* @function Highcharts.BubbleLegend#formatLabel
|
|
569
|
-
* @param {Highcharts.LegendBubbleLegendRangesOptions} range
|
|
570
|
-
* Range options
|
|
571
|
-
* @return {string}
|
|
572
|
-
* Range label text
|
|
573
|
-
*/
|
|
574
|
-
BubbleLegend.prototype.formatLabel = function (range) {
|
|
575
|
-
var options = this.options, formatter = options.labels.formatter, format = options.labels.format;
|
|
576
|
-
var numberFormatter = this.chart.numberFormatter;
|
|
577
|
-
return format ? F.format(format, range) :
|
|
578
|
-
formatter ? formatter.call(range) :
|
|
579
|
-
numberFormatter(range.value, 1);
|
|
580
|
-
};
|
|
581
|
-
/**
|
|
582
|
-
* By using default chart 'hideOverlappingLabels' method, hide or show
|
|
583
|
-
* labels and connectors.
|
|
584
|
-
*
|
|
585
|
-
* @private
|
|
586
|
-
* @function Highcharts.BubbleLegend#hideOverlappingLabels
|
|
587
|
-
* @return {void}
|
|
588
|
-
*/
|
|
589
|
-
BubbleLegend.prototype.hideOverlappingLabels = function () {
|
|
590
|
-
var chart = this.chart, allowOverlap = this.options.labels.allowOverlap, symbols = this.symbols;
|
|
591
|
-
if (!allowOverlap && symbols) {
|
|
592
|
-
chart.hideOverlappingLabels(symbols.labels);
|
|
593
|
-
// Hide or show connectors
|
|
594
|
-
symbols.labels.forEach(function (label, index) {
|
|
595
|
-
if (!label.newOpacity) {
|
|
596
|
-
symbols.connectors[index].hide();
|
|
597
|
-
}
|
|
598
|
-
else if (label.newOpacity !== label.oldOpacity) {
|
|
599
|
-
symbols.connectors[index].show();
|
|
600
|
-
}
|
|
601
|
-
});
|
|
602
|
-
}
|
|
603
|
-
};
|
|
604
|
-
/**
|
|
605
|
-
* Calculate ranges from created series.
|
|
606
|
-
*
|
|
607
|
-
* @private
|
|
608
|
-
* @function Highcharts.BubbleLegend#getRanges
|
|
609
|
-
* @return {Array<Highcharts.LegendBubbleLegendRangesOptions>}
|
|
610
|
-
* Array of range objects
|
|
611
|
-
*/
|
|
612
|
-
BubbleLegend.prototype.getRanges = function () {
|
|
613
|
-
var bubbleLegend = this.legend.bubbleLegend, series = bubbleLegend.chart.series, ranges, rangesOptions = bubbleLegend.options.ranges, zData, minZ = Number.MAX_VALUE, maxZ = -Number.MAX_VALUE;
|
|
614
|
-
series.forEach(function (s) {
|
|
615
|
-
// Find the min and max Z, like in bubble series
|
|
616
|
-
if (s.isBubble && !s.ignoreSeries) {
|
|
617
|
-
zData = s.zData.filter(isNumber);
|
|
618
|
-
if (zData.length) {
|
|
619
|
-
minZ = pick(s.options.zMin, Math.min(minZ, Math.max(arrayMin(zData), s.options.displayNegative === false ?
|
|
620
|
-
s.options.zThreshold :
|
|
621
|
-
-Number.MAX_VALUE)));
|
|
622
|
-
maxZ = pick(s.options.zMax, Math.max(maxZ, arrayMax(zData)));
|
|
623
|
-
}
|
|
624
|
-
}
|
|
625
|
-
});
|
|
626
|
-
// Set values for ranges
|
|
627
|
-
if (minZ === maxZ) {
|
|
628
|
-
// Only one range if min and max values are the same.
|
|
629
|
-
ranges = [{ value: maxZ }];
|
|
630
|
-
}
|
|
631
|
-
else {
|
|
632
|
-
ranges = [
|
|
633
|
-
{ value: minZ },
|
|
634
|
-
{ value: (minZ + maxZ) / 2 },
|
|
635
|
-
{ value: maxZ, autoRanges: true }
|
|
636
|
-
];
|
|
637
|
-
}
|
|
638
|
-
// Prevent reverse order of ranges after redraw
|
|
639
|
-
if (rangesOptions.length && rangesOptions[0].radius) {
|
|
640
|
-
ranges.reverse();
|
|
641
|
-
}
|
|
642
|
-
// Merge ranges values with user options
|
|
643
|
-
ranges.forEach(function (range, i) {
|
|
644
|
-
if (rangesOptions && rangesOptions[i]) {
|
|
645
|
-
ranges[i] = merge(rangesOptions[i], range);
|
|
646
|
-
}
|
|
647
|
-
});
|
|
648
|
-
return ranges;
|
|
649
|
-
};
|
|
650
|
-
/**
|
|
651
|
-
* Calculate bubble legend sizes from rendered series.
|
|
652
|
-
*
|
|
653
|
-
* @private
|
|
654
|
-
* @function Highcharts.BubbleLegend#predictBubbleSizes
|
|
655
|
-
* @return {Array<number,number>}
|
|
656
|
-
* Calculated min and max bubble sizes
|
|
657
|
-
*/
|
|
658
|
-
BubbleLegend.prototype.predictBubbleSizes = function () {
|
|
659
|
-
var chart = this.chart, fontMetrics = this.fontMetrics, legendOptions = chart.legend.options, floating = legendOptions.floating, horizontal = legendOptions.layout === 'horizontal', lastLineHeight = horizontal ? chart.legend.lastLineHeight : 0, plotSizeX = chart.plotSizeX, plotSizeY = chart.plotSizeY, bubbleSeries = chart.series[this.options.seriesIndex], minSize = Math.ceil(bubbleSeries.minPxSize), maxPxSize = Math.ceil(bubbleSeries.maxPxSize), maxSize = bubbleSeries.options.maxSize, plotSize = Math.min(plotSizeY, plotSizeX), calculatedSize;
|
|
660
|
-
// Calculate prediceted max size of bubble
|
|
661
|
-
if (floating || !(/%$/.test(maxSize))) {
|
|
662
|
-
calculatedSize = maxPxSize;
|
|
663
|
-
}
|
|
664
|
-
else {
|
|
665
|
-
maxSize = parseFloat(maxSize);
|
|
666
|
-
calculatedSize = ((plotSize + lastLineHeight -
|
|
667
|
-
fontMetrics.h / 2) * maxSize / 100) / (maxSize / 100 + 1);
|
|
668
|
-
// Get maxPxSize from bubble series if calculated bubble legend
|
|
669
|
-
// size will not affect to bubbles series.
|
|
670
|
-
if ((horizontal && plotSizeY - calculatedSize >=
|
|
671
|
-
plotSizeX) || (!horizontal && plotSizeX -
|
|
672
|
-
calculatedSize >= plotSizeY)) {
|
|
673
|
-
calculatedSize = maxPxSize;
|
|
674
|
-
}
|
|
675
|
-
}
|
|
676
|
-
return [minSize, Math.ceil(calculatedSize)];
|
|
677
|
-
};
|
|
678
|
-
/**
|
|
679
|
-
* Correct ranges with calculated sizes.
|
|
680
|
-
*
|
|
681
|
-
* @private
|
|
682
|
-
* @function Highcharts.BubbleLegend#updateRanges
|
|
683
|
-
* @param {number} min
|
|
684
|
-
* @param {number} max
|
|
685
|
-
* @return {void}
|
|
686
|
-
*/
|
|
687
|
-
BubbleLegend.prototype.updateRanges = function (min, max) {
|
|
688
|
-
var bubbleLegendOptions = this.legend.options.bubbleLegend;
|
|
689
|
-
bubbleLegendOptions.minSize = min;
|
|
690
|
-
bubbleLegendOptions.maxSize = max;
|
|
691
|
-
bubbleLegendOptions.ranges = this.getRanges();
|
|
692
|
-
};
|
|
693
|
-
/**
|
|
694
|
-
* Because of the possibility of creating another legend line, predicted
|
|
695
|
-
* bubble legend sizes may differ by a few pixels, so it is necessary to
|
|
696
|
-
* correct them.
|
|
697
|
-
*
|
|
698
|
-
* @private
|
|
699
|
-
* @function Highcharts.BubbleLegend#correctSizes
|
|
700
|
-
* @return {void}
|
|
701
|
-
*/
|
|
702
|
-
BubbleLegend.prototype.correctSizes = function () {
|
|
703
|
-
var legend = this.legend, chart = this.chart, bubbleSeries = chart.series[this.options.seriesIndex], bubbleSeriesSize = bubbleSeries.maxPxSize, bubbleLegendSize = this.options.maxSize;
|
|
704
|
-
if (Math.abs(Math.ceil(bubbleSeriesSize) - bubbleLegendSize) >
|
|
705
|
-
1) {
|
|
706
|
-
this.updateRanges(this.options.minSize, bubbleSeries.maxPxSize);
|
|
707
|
-
legend.render();
|
|
708
|
-
}
|
|
709
|
-
};
|
|
710
|
-
return BubbleLegend;
|
|
711
|
-
}());
|
|
712
|
-
// Start the bubble legend creation process.
|
|
713
|
-
addEvent(Legend, 'afterGetAllItems', function (e) {
|
|
714
|
-
var legend = this, bubbleLegend = legend.bubbleLegend, legendOptions = legend.options, options = legendOptions.bubbleLegend, bubbleSeriesIndex = legend.chart.getVisibleBubbleSeriesIndex();
|
|
715
|
-
// Remove unnecessary element
|
|
716
|
-
if (bubbleLegend && bubbleLegend.ranges && bubbleLegend.ranges.length) {
|
|
717
|
-
// Allow change the way of calculating ranges in update
|
|
718
|
-
if (options.ranges.length) {
|
|
719
|
-
options.autoRanges =
|
|
720
|
-
!!options.ranges[0].autoRanges;
|
|
721
|
-
}
|
|
722
|
-
// Update bubbleLegend dimensions in each redraw
|
|
723
|
-
legend.destroyItem(bubbleLegend);
|
|
724
|
-
}
|
|
725
|
-
// Create bubble legend
|
|
726
|
-
if (bubbleSeriesIndex >= 0 &&
|
|
727
|
-
legendOptions.enabled &&
|
|
728
|
-
options.enabled) {
|
|
729
|
-
options.seriesIndex = bubbleSeriesIndex;
|
|
730
|
-
legend.bubbleLegend = new H.BubbleLegend(options, legend);
|
|
731
|
-
legend.bubbleLegend.addToLegend(e.allItems);
|
|
732
|
-
}
|
|
733
|
-
});
|
|
734
|
-
/**
|
|
735
|
-
* Check if there is at least one visible bubble series.
|
|
736
|
-
*
|
|
737
|
-
* @private
|
|
738
|
-
* @function Highcharts.Chart#getVisibleBubbleSeriesIndex
|
|
739
|
-
* @return {number}
|
|
740
|
-
* First visible bubble series index
|
|
741
|
-
*/
|
|
742
|
-
Chart.prototype.getVisibleBubbleSeriesIndex = function () {
|
|
743
|
-
var series = this.series, i = 0;
|
|
744
|
-
while (i < series.length) {
|
|
745
|
-
if (series[i] &&
|
|
746
|
-
series[i].isBubble &&
|
|
747
|
-
series[i].visible &&
|
|
748
|
-
series[i].zData.length) {
|
|
749
|
-
return i;
|
|
750
|
-
}
|
|
751
|
-
i++;
|
|
752
|
-
}
|
|
753
|
-
return -1;
|
|
754
|
-
};
|
|
755
|
-
/**
|
|
756
|
-
* Calculate height for each row in legend.
|
|
757
|
-
*
|
|
758
|
-
* @private
|
|
759
|
-
* @function Highcharts.Legend#getLinesHeights
|
|
760
|
-
* @return {Array<Highcharts.Dictionary<number>>}
|
|
761
|
-
* Informations about line height and items amount
|
|
762
|
-
*/
|
|
763
|
-
Legend.prototype.getLinesHeights = function () {
|
|
764
|
-
var items = this.allItems, lines = [], lastLine, length = items.length, i = 0, j = 0;
|
|
765
|
-
for (i = 0; i < length; i++) {
|
|
766
|
-
if (items[i].legendItemHeight) {
|
|
767
|
-
// for bubbleLegend
|
|
768
|
-
items[i].itemHeight = items[i].legendItemHeight;
|
|
769
|
-
}
|
|
770
|
-
if ( // Line break
|
|
771
|
-
items[i] === items[length - 1] ||
|
|
772
|
-
items[i + 1] &&
|
|
773
|
-
items[i]._legendItemPos[1] !==
|
|
774
|
-
items[i + 1]._legendItemPos[1]) {
|
|
775
|
-
lines.push({ height: 0 });
|
|
776
|
-
lastLine = lines[lines.length - 1];
|
|
777
|
-
// Find the highest item in line
|
|
778
|
-
for (j; j <= i; j++) {
|
|
779
|
-
if (items[j].itemHeight > lastLine.height) {
|
|
780
|
-
lastLine.height = items[j].itemHeight;
|
|
781
|
-
}
|
|
782
|
-
}
|
|
783
|
-
lastLine.step = i;
|
|
784
|
-
}
|
|
785
|
-
}
|
|
786
|
-
return lines;
|
|
787
|
-
};
|
|
788
|
-
/**
|
|
789
|
-
* Correct legend items translation in case of different elements heights.
|
|
790
|
-
*
|
|
791
|
-
* @private
|
|
792
|
-
* @function Highcharts.Legend#retranslateItems
|
|
793
|
-
* @param {Array<Highcharts.Dictionary<number>>} lines
|
|
794
|
-
* Informations about line height and items amount
|
|
795
|
-
* @return {void}
|
|
796
|
-
*/
|
|
797
|
-
Legend.prototype.retranslateItems = function (lines) {
|
|
798
|
-
var items = this.allItems, orgTranslateX, orgTranslateY, movementX, rtl = this.options.rtl, actualLine = 0;
|
|
799
|
-
items.forEach(function (item, index) {
|
|
800
|
-
orgTranslateX = item.legendGroup.translateX;
|
|
801
|
-
orgTranslateY = item._legendItemPos[1];
|
|
802
|
-
movementX = item.movementX;
|
|
803
|
-
if (movementX || (rtl && item.ranges)) {
|
|
804
|
-
movementX = rtl ?
|
|
805
|
-
orgTranslateX - item.options.maxSize / 2 :
|
|
806
|
-
orgTranslateX + movementX;
|
|
807
|
-
item.legendGroup.attr({ translateX: movementX });
|
|
808
|
-
}
|
|
809
|
-
if (index > lines[actualLine].step) {
|
|
810
|
-
actualLine++;
|
|
811
|
-
}
|
|
812
|
-
item.legendGroup.attr({
|
|
813
|
-
translateY: Math.round(orgTranslateY + lines[actualLine].height / 2)
|
|
814
|
-
});
|
|
815
|
-
item._legendItemPos[1] = orgTranslateY +
|
|
816
|
-
lines[actualLine].height / 2;
|
|
817
|
-
});
|
|
818
|
-
};
|
|
819
|
-
// Toggle bubble legend depending on the visible status of bubble series.
|
|
820
|
-
addEvent(Series, 'legendItemClick', function () {
|
|
821
|
-
var series = this, chart = series.chart, visible = series.visible, legend = series.chart.legend, status;
|
|
822
|
-
if (legend && legend.bubbleLegend) {
|
|
823
|
-
// Temporary correct 'visible' property
|
|
824
|
-
series.visible = !visible;
|
|
825
|
-
// Save future status for getRanges method
|
|
826
|
-
series.ignoreSeries = visible;
|
|
827
|
-
// Check if at lest one bubble series is visible
|
|
828
|
-
status = chart.getVisibleBubbleSeriesIndex() >= 0;
|
|
829
|
-
// Hide bubble legend if all bubble series are disabled
|
|
830
|
-
if (legend.bubbleLegend.visible !== status) {
|
|
831
|
-
// Show or hide bubble legend
|
|
832
|
-
legend.update({
|
|
833
|
-
bubbleLegend: { enabled: status }
|
|
834
|
-
});
|
|
835
|
-
legend.bubbleLegend.visible = status; // Restore default status
|
|
836
|
-
}
|
|
837
|
-
series.visible = visible;
|
|
838
|
-
}
|
|
839
|
-
});
|
|
840
|
-
// If ranges are not specified, determine ranges from rendered bubble series
|
|
841
|
-
// and render legend again.
|
|
842
|
-
wrap(Chart.prototype, 'drawChartBox', function (proceed, options, callback) {
|
|
843
|
-
var chart = this, legend = chart.legend, bubbleSeries = chart.getVisibleBubbleSeriesIndex() >= 0, bubbleLegendOptions, bubbleSizes;
|
|
844
|
-
if (legend && legend.options.enabled && legend.bubbleLegend &&
|
|
845
|
-
legend.options.bubbleLegend.autoRanges && bubbleSeries) {
|
|
846
|
-
bubbleLegendOptions = legend.bubbleLegend.options;
|
|
847
|
-
bubbleSizes = legend.bubbleLegend.predictBubbleSizes();
|
|
848
|
-
legend.bubbleLegend.updateRanges(bubbleSizes[0], bubbleSizes[1]);
|
|
849
|
-
// Disable animation on init
|
|
850
|
-
if (!bubbleLegendOptions.placed) {
|
|
851
|
-
legend.group.placed = false;
|
|
852
|
-
legend.allItems.forEach(function (item) {
|
|
853
|
-
item.legendGroup.translateY = null;
|
|
854
|
-
});
|
|
855
|
-
}
|
|
856
|
-
// Create legend with bubbleLegend
|
|
857
|
-
legend.render();
|
|
858
|
-
chart.getMargins();
|
|
859
|
-
chart.axes.forEach(function (axis) {
|
|
860
|
-
if (axis.visible) { // #11448
|
|
861
|
-
axis.render();
|
|
862
|
-
}
|
|
863
|
-
if (!bubbleLegendOptions.placed) {
|
|
864
|
-
axis.setScale();
|
|
865
|
-
axis.updateNames();
|
|
866
|
-
// Disable axis animation on init
|
|
867
|
-
objectEach(axis.ticks, function (tick) {
|
|
868
|
-
tick.isNew = true;
|
|
869
|
-
tick.isNewLabel = true;
|
|
870
|
-
});
|
|
871
|
-
}
|
|
872
|
-
});
|
|
873
|
-
bubbleLegendOptions.placed = true;
|
|
874
|
-
// After recalculate axes, calculate margins again.
|
|
875
|
-
chart.getMargins();
|
|
876
|
-
// Call default 'drawChartBox' method.
|
|
877
|
-
proceed.call(chart, options, callback);
|
|
878
|
-
// Check bubble legend sizes and correct them if necessary.
|
|
879
|
-
legend.bubbleLegend.correctSizes();
|
|
880
|
-
// Correct items positions with different dimensions in legend.
|
|
881
|
-
legend.retranslateItems(legend.getLinesHeights());
|
|
882
|
-
}
|
|
883
|
-
else {
|
|
884
|
-
proceed.call(chart, options, callback);
|
|
885
|
-
// Allow color change on static bubble legend after click on legend
|
|
886
|
-
if (legend && legend.options.enabled && legend.bubbleLegend) {
|
|
887
|
-
legend.render();
|
|
888
|
-
legend.retranslateItems(legend.getLinesHeights());
|
|
889
|
-
}
|
|
890
|
-
}
|
|
891
|
-
});
|
|
892
|
-
H.BubbleLegend = BubbleLegend;
|
|
893
|
-
export default H.BubbleLegend;
|