highcharts 10.1.0 → 10.2.0
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/es-modules/Accessibility/Accessibility.js +2 -3
- package/es-modules/Accessibility/Components/AnnotationsA11y.js +3 -3
- package/es-modules/Accessibility/Components/ContainerComponent.js +3 -1
- package/es-modules/Accessibility/Components/InfoRegionsComponent.js +5 -3
- package/es-modules/Accessibility/Components/LegendComponent.js +3 -3
- package/es-modules/Accessibility/Components/MenuComponent.js +3 -1
- package/es-modules/Accessibility/Components/RangeSelectorComponent.js +3 -1
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +3 -1
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +12 -6
- package/es-modules/Accessibility/Components/ZoomComponent.js +30 -70
- package/es-modules/Accessibility/HighContrastMode.js +1 -1
- package/es-modules/Accessibility/KeyboardNavigation.js +2 -2
- package/es-modules/Accessibility/Options/{Options.js → A11yDefaults.js} +6 -1
- package/es-modules/Accessibility/Options/DeprecatedOptions.js +12 -2
- package/es-modules/Accessibility/Options/{LangOptions.js → LangDefaults.js} +10 -0
- package/es-modules/Accessibility/Utils/ChartUtilities.js +1 -1
- package/es-modules/Core/Animation/Fx.js +1 -1
- package/es-modules/Core/Axis/Axis.js +18 -19
- package/es-modules/Core/Axis/AxisDefaults.js +8 -8
- package/es-modules/Core/Axis/Color/ColorAxis.js +4 -2
- package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +3 -3
- package/es-modules/Core/Axis/DateTimeAxis.js +5 -3
- package/es-modules/Core/Axis/GridAxis.js +817 -821
- package/es-modules/Core/Axis/OrdinalAxis.js +23 -1
- package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +2 -2
- package/es-modules/Core/Axis/Tick.js +20 -16
- package/es-modules/Core/Axis/TreeGridTick.js +2 -2
- package/es-modules/Core/Axis/ZAxis.js +3 -1
- package/es-modules/Core/Chart/Chart.js +13 -12
- package/es-modules/Core/Chart/ChartDefaults.js +3 -3
- package/es-modules/Core/Chart/GanttChart.js +3 -1
- package/es-modules/Core/Chart/MapChart.js +3 -1
- package/es-modules/Core/Chart/StockChart.js +6 -4
- package/es-modules/Core/Color/Color.js +1 -1
- package/es-modules/Core/DefaultOptions.js +11 -11
- package/es-modules/Core/Globals.js +1 -1
- package/es-modules/Core/HttpUtilities.js +39 -37
- package/es-modules/Core/Legend/Legend.js +3 -3
- package/es-modules/Core/MSPointer.js +3 -1
- package/es-modules/Core/Navigator.js +6 -6
- package/es-modules/Core/Pointer.js +1 -1
- package/es-modules/Core/Renderer/HTML/AST.js +1 -1
- package/es-modules/Core/Renderer/HTML/HTMLElement.js +3 -1
- package/es-modules/Core/Renderer/HTML/HTMLRenderer.js +3 -1
- package/es-modules/Core/Renderer/SVG/SVGElement.js +7 -7
- package/es-modules/Core/Renderer/SVG/SVGLabel.js +3 -1
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +37 -35
- package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +3 -1
- package/es-modules/Core/ScrollbarDefaults.js +8 -8
- package/es-modules/Core/Series/DataLabel.js +2 -2
- package/es-modules/Core/Series/Point.js +9 -0
- package/es-modules/Core/Series/Series.js +5 -5
- package/es-modules/Core/Series/Series3D.js +3 -1
- package/es-modules/Core/Series/SeriesDefaults.js +3 -3
- package/es-modules/Core/Time.js +6 -7
- package/es-modules/Core/Tooltip.js +3 -3
- package/es-modules/Core/Utilities.js +5 -5
- package/es-modules/Data/DataConverter.js +1 -1
- package/es-modules/Data/DataTable.js +12 -10
- package/es-modules/Data/Modifiers/ChainModifier.js +3 -1
- package/es-modules/Data/Modifiers/GroupModifier.js +3 -1
- package/es-modules/Data/Modifiers/InvertModifier.js +9 -7
- package/es-modules/Data/Modifiers/RangeModifier.js +3 -1
- package/es-modules/Data/Modifiers/SeriesPointsModifier.js +3 -1
- package/es-modules/Data/Modifiers/SortModifier.js +3 -1
- package/es-modules/Data/Parsers/CSVParser.js +3 -1
- package/es-modules/Data/Parsers/DataParser.js +1 -1
- package/es-modules/Data/Parsers/GoogleSheetsParser.js +3 -2
- package/es-modules/Data/Parsers/HTMLTableParser.js +3 -1
- package/es-modules/Data/Stores/CSVStore.js +8 -5
- package/es-modules/Data/Stores/GoogleSheetsStore.js +3 -1
- package/es-modules/Data/Stores/HTMLTableStore.js +3 -1
- package/es-modules/Extensions/Annotations/{Annotations.js → Annotation.js} +21 -9
- package/es-modules/Extensions/Annotations/AnnotationsDefaults.js +0 -0
- package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +5 -2
- package/es-modules/Extensions/Annotations/NavigationBindings.js +8 -5
- package/es-modules/Extensions/Annotations/Popup.js +2 -2
- package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +13 -9
- package/es-modules/Extensions/Annotations/Types/CrookedLine.js +4 -2
- package/es-modules/Extensions/Annotations/Types/ElliottWave.js +4 -2
- package/es-modules/Extensions/Annotations/Types/Fibonacci.js +5 -3
- package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +4 -2
- package/es-modules/Extensions/Annotations/Types/InfinityLine.js +4 -2
- package/es-modules/Extensions/Annotations/Types/Measure.js +4 -2
- package/es-modules/Extensions/Annotations/Types/Pitchfork.js +4 -2
- package/es-modules/Extensions/Annotations/Types/TimeCycles.js +4 -2
- package/es-modules/Extensions/Annotations/Types/Tunnel.js +5 -2
- package/es-modules/Extensions/Annotations/Types/VerticalLine.js +4 -2
- package/es-modules/Extensions/Boost/BoostAttach.js +5 -1
- package/es-modules/Extensions/Boost/BoostInit.js +3 -2
- package/es-modules/Extensions/BoostCanvas.js +11 -5
- package/es-modules/Extensions/Breadcrumbs.js +31 -6
- package/es-modules/Extensions/CurrentDateIndication.js +1 -1
- package/es-modules/Extensions/Data.js +638 -602
- package/es-modules/Extensions/DownloadURL.js +3 -3
- package/es-modules/Extensions/DragPanes.js +1 -1
- package/es-modules/Extensions/Drilldown.js +2 -2
- package/es-modules/Extensions/ExportData.js +57 -7
- package/es-modules/Extensions/Exporting/Exporting.js +3 -3
- package/es-modules/Extensions/Exporting/ExportingDefaults.js +7 -7
- package/es-modules/Extensions/GeoJSON.js +0 -2
- package/es-modules/Extensions/MarkerClusters.js +3 -3
- package/es-modules/Extensions/NoDataToDisplay.js +1 -1
- package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
- package/es-modules/Extensions/Oldie/Oldie.js +2 -2
- package/es-modules/Extensions/Pane.js +3 -3
- package/es-modules/Extensions/ParallelCoordinates.js +1 -1
- package/es-modules/Extensions/PatternFill.js +14 -2
- package/es-modules/Extensions/RangeSelector.js +29 -18
- package/es-modules/Extensions/ScrollablePlotArea.js +3 -3
- package/es-modules/Extensions/{SeriesLabel.js → SeriesLabel/SeriesLabel.js} +262 -384
- package/es-modules/Extensions/SeriesLabel/SeriesLabelDefaults.js +124 -0
- package/es-modules/Extensions/SeriesLabel/SeriesLabelUtilities.js +67 -0
- package/es-modules/Extensions/Sonification/Earcon.js +1 -1
- package/es-modules/Extensions/Stacking.js +1 -1
- package/es-modules/Maps/MapNavigation.js +2 -2
- package/es-modules/Maps/MapView.js +23 -16
- package/es-modules/Maps/MapViewInsetsOptionsDefault.js +1 -1
- package/es-modules/Maps/Projection.js +13 -11
- package/es-modules/Series/ArcDiagram/ArcDiagramPoint.js +3 -1
- package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +3 -1
- package/es-modules/Series/Area/AreaSeries.js +21 -14
- package/es-modules/Series/AreaRange/AreaRangePoint.js +24 -11
- package/es-modules/Series/AreaRange/AreaRangeSeries.js +154 -147
- package/es-modules/Series/AreaSpline/AreaSplineSeries.js +45 -41
- package/es-modules/Series/AreaSplineRange/AreaSplineRangeSeries.js +43 -43
- package/es-modules/Series/Bar/BarSeries.js +3 -1
- package/es-modules/Series/Bellcurve/BellcurveSeries.js +3 -1
- package/es-modules/Series/BoxPlot/BoxPlotSeries.js +4 -2
- package/es-modules/Series/Bubble/BubbleLegendDefaults.js +1 -1
- package/es-modules/Series/Bubble/BubblePoint.js +3 -1
- package/es-modules/Series/Bubble/BubbleSeries.js +15 -6
- package/es-modules/Series/Bullet/BulletPoint.js +3 -1
- package/es-modules/Series/Bullet/BulletSeries.js +4 -3
- package/es-modules/Series/Candlestick/CandlestickSeries.js +5 -3
- package/es-modules/Series/CenteredUtilities.js +2 -1
- package/es-modules/Series/ColorMapComposition.js +111 -0
- package/es-modules/Series/Column/ColumnSeries.js +6 -4
- package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +3 -1
- package/es-modules/Series/ColumnRange/ColumnRangePoint.js +17 -13
- package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +60 -57
- package/es-modules/Series/Cylinder/CylinderPoint.js +3 -1
- package/es-modules/Series/Cylinder/CylinderSeries.js +3 -1
- package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +3 -1
- package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +3 -1
- package/es-modules/Series/DotPlot/DotPlotSeries.js +3 -1
- package/es-modules/Series/DrawPointUtilities.js +87 -0
- package/es-modules/Series/Dumbbell/DumbbellPoint.js +3 -1
- package/es-modules/Series/Dumbbell/DumbbellSeries.js +4 -2
- package/es-modules/Series/ErrorBar/ErrorBarSeries.js +4 -2
- package/es-modules/Series/Flags/FlagsPoint.js +4 -1
- package/es-modules/Series/Flags/FlagsSeries.js +6 -4
- package/es-modules/Series/Funnel/FunnelSeries.js +5 -3
- package/es-modules/Series/Funnel3D/Funnel3DPoint.js +3 -1
- package/es-modules/Series/Funnel3D/Funnel3DSeries.js +3 -1
- package/es-modules/Series/Gantt/GanttPoint.js +3 -1
- package/es-modules/Series/Gantt/GanttSeries.js +3 -1
- package/es-modules/Series/Gauge/GaugePoint.js +3 -1
- package/es-modules/Series/Gauge/GaugeSeries.js +195 -173
- package/es-modules/Series/HLC/HLCPoint.js +3 -1
- package/es-modules/Series/HLC/HLCSeries.js +4 -2
- package/es-modules/Series/Heatmap/HeatmapPoint.js +7 -5
- package/es-modules/Series/Heatmap/HeatmapSeries.js +16 -13
- package/es-modules/Series/HeikinAshi/HeikinAshiPoint.js +3 -1
- package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +3 -1
- package/es-modules/Series/Histogram/HistogramSeries.js +3 -1
- package/es-modules/Series/HollowCandlestick/HollowCandlestickPoint.js +3 -1
- package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +11 -9
- package/es-modules/Series/Item/ItemPoint.js +3 -1
- package/es-modules/Series/Item/ItemSeries.js +3 -1
- package/es-modules/Series/Line/LineSeries.js +4 -2
- package/es-modules/Series/Lollipop/LollipopPoint.js +3 -1
- package/es-modules/Series/Lollipop/LollipopSeries.js +3 -1
- package/es-modules/Series/Map/MapPoint.js +8 -6
- package/es-modules/Series/Map/MapSeries.js +98 -26
- package/es-modules/Series/MapBubble/MapBubblePoint.js +3 -1
- package/es-modules/Series/MapBubble/MapBubbleSeries.js +3 -1
- package/es-modules/Series/MapLine/MapLineSeries.js +18 -1
- package/es-modules/Series/MapPoint/MapPointPoint.js +4 -2
- package/es-modules/Series/MapPoint/MapPointSeries.js +10 -2
- package/es-modules/Series/Networkgraph/Networkgraph.js +3 -1
- package/es-modules/Series/NodesComposition.js +45 -40
- package/es-modules/Series/OHLC/OHLCPoint.js +3 -1
- package/es-modules/Series/OHLC/OHLCSeries.js +3 -1
- package/es-modules/Series/Organization/OrganizationPoint.js +3 -1
- package/es-modules/Series/Organization/OrganizationSeries.js +5 -3
- package/es-modules/Series/PackedBubble/PackedBubbleComposition.js +0 -2
- package/es-modules/Series/PackedBubble/PackedBubblePoint.js +3 -1
- package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +3 -1
- package/es-modules/Series/ParetoSeries/ParetoSeries.js +3 -1
- package/es-modules/Series/Pie/PieDataLabel.js +1 -1
- package/es-modules/Series/Pie/PiePoint.js +3 -1
- package/es-modules/Series/Pie/PieSeries.js +39 -36
- package/es-modules/Series/Pie3D/Pie3DPoint.js +3 -1
- package/es-modules/Series/Pie3D/Pie3DSeries.js +3 -1
- package/es-modules/Series/PolarComposition.js +819 -0
- package/es-modules/Series/Polygon/PolygonSeries.js +3 -1
- package/es-modules/Series/Pyramid/PyramidSeries.js +3 -1
- package/es-modules/Series/Pyramid3D/Pyramid3DSeries.js +3 -1
- package/es-modules/Series/Sankey/SankeyPoint.js +3 -1
- package/es-modules/Series/Sankey/SankeySeries.js +22 -8
- package/es-modules/Series/Scatter/ScatterSeries.js +10 -5
- package/es-modules/Series/Scatter3D/Scatter3DPoint.js +3 -1
- package/es-modules/Series/Scatter3D/Scatter3DSeries.js +3 -1
- package/es-modules/Series/SeriesOnPointComposition.js +391 -0
- package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +5 -3
- package/es-modules/Series/Spline/SplineSeries.js +13 -4
- package/es-modules/Series/Streamgraph/StreamgraphSeries.js +3 -1
- package/es-modules/Series/Sunburst/SunburstPoint.js +3 -3
- package/es-modules/Series/Sunburst/SunburstSeries.js +7 -2
- package/es-modules/Series/Tilemap/TilemapPoint.js +3 -1
- package/es-modules/Series/Tilemap/TilemapSeries.js +3 -1
- package/es-modules/Series/Timeline/TimelinePoint.js +3 -1
- package/es-modules/Series/Timeline/TimelineSeries.js +6 -4
- package/es-modules/Series/Treemap/TreemapPoint.js +8 -4
- package/es-modules/Series/Treemap/TreemapSeries.js +9 -7
- package/es-modules/Series/VariablePie/VariablePieSeries.js +3 -1
- package/es-modules/Series/Variwide/VariwidePoint.js +3 -1
- package/es-modules/Series/Variwide/VariwideSeries.js +3 -1
- package/es-modules/Series/Vector/VectorSeries.js +3 -1
- package/es-modules/Series/Venn/VennPoint.js +5 -5
- package/es-modules/Series/Venn/VennSeries.js +9 -6
- package/es-modules/Series/Waterfall/WaterfallPoint.js +3 -1
- package/es-modules/Series/Waterfall/WaterfallSeries.js +14 -12
- package/es-modules/Series/Windbarb/WindbarbPoint.js +3 -1
- package/es-modules/Series/Windbarb/WindbarbSeries.js +3 -1
- package/es-modules/Series/Wordcloud/WordcloudPoint.js +6 -6
- package/es-modules/Series/Wordcloud/WordcloudSeries.js +7 -4
- package/es-modules/Series/XRange/XRangePoint.js +3 -1
- package/es-modules/Series/XRange/XRangeSeries.js +3 -1
- package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +3 -1
- package/es-modules/Stock/Indicators/AD/ADIndicator.js +3 -1
- package/es-modules/Stock/Indicators/AO/AOIndicator.js +5 -3
- package/es-modules/Stock/Indicators/APO/APOIndicator.js +3 -1
- package/es-modules/Stock/Indicators/ATR/ATRIndicator.js +3 -1
- package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +3 -1
- package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +3 -1
- package/es-modules/Stock/Indicators/BB/BBIndicator.js +6 -4
- package/es-modules/Stock/Indicators/CCI/CCIIndicator.js +3 -1
- package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +3 -1
- package/es-modules/Stock/Indicators/CMO/CMOIndicator.js +3 -1
- package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +3 -1
- package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +3 -1
- package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +13 -7
- package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +3 -1
- package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +3 -1
- package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +3 -1
- package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +3 -1
- package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +3 -1
- package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +3 -1
- package/es-modules/Stock/Indicators/LinearRegression/LinearRegression.js +3 -1
- package/es-modules/Stock/Indicators/LinearRegressionAngle/LinearRegressionAngle.js +3 -1
- package/es-modules/Stock/Indicators/LinearRegressionIntercept/LinearRegressionIntercept.js +3 -1
- package/es-modules/Stock/Indicators/LinearRegressionSlopes/LinearRegressionSlopes.js +3 -1
- package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +26 -13
- package/es-modules/Stock/Indicators/MFI/MFIIndicator.js +3 -1
- package/es-modules/Stock/Indicators/Momentum/MomentumIndicator.js +3 -1
- package/es-modules/Stock/Indicators/MultipleLinesComposition.js +85 -95
- package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +3 -1
- package/es-modules/Stock/Indicators/OBV/OBVIndicator.js +3 -1
- package/es-modules/Stock/Indicators/PC/PCIndicator.js +3 -1
- package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +3 -1
- package/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +3 -1
- package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +3 -1
- package/es-modules/Stock/Indicators/PivotPoints/PivotPointsPoint.js +3 -1
- package/es-modules/Stock/Indicators/PriceEnvelopes/PriceEnvelopesIndicator.js +3 -1
- package/es-modules/Stock/Indicators/ROC/ROCIndicator.js +3 -1
- package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +3 -1
- package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +3 -1
- package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +3 -1
- package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +3 -1
- package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +6 -4
- package/es-modules/Stock/Indicators/TEMA/TEMAIndicator.js +3 -1
- package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +3 -1
- package/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +3 -1
- package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +3 -1
- package/es-modules/Stock/Indicators/VBP/VBPPoint.js +3 -1
- package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +3 -1
- package/es-modules/Stock/Indicators/WMA/WMAIndicator.js +3 -1
- package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +3 -1
- package/es-modules/Stock/Indicators/Zigzag/ZigzagIndicator.js +3 -1
- package/es-modules/Stock/StockToolsBindings.js +20 -19
- package/es-modules/Stock/StockToolsGui.js +1 -1
- 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 +4 -4
- package/es-modules/masters/highcharts.src.js +1 -1
- 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/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 +2 -2
- package/es-modules/masters/modules/annotations.src.js +2 -2
- package/es-modules/masters/modules/arc-diagram.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 +1 -1
- 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 +2 -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 +1 -1
- 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 +1 -1
- package/es-modules/masters/modules/grid-axis.src.js +1 -1
- package/es-modules/masters/modules/heatmap.src.js +1 -1
- package/es-modules/masters/modules/heikinashi.src.js +1 -1
- package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
- package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +5 -2
- package/es-modules/masters/modules/series-on-point.src.js +16 -0
- package/es-modules/masters/modules/solid-gauge.src.js +1 -1
- package/es-modules/masters/modules/sonification.src.js +2 -6
- 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 +1 -1
- 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 +1 -1
- package/es-modules/masters/themes/brand-dark.src.js +1 -1
- package/es-modules/masters/themes/brand-light.src.js +1 -1
- package/es-modules/masters/themes/dark-blue.src.js +1 -1
- package/es-modules/masters/themes/dark-green.src.js +1 -1
- package/es-modules/masters/themes/dark-unica.src.js +1 -1
- package/es-modules/masters/themes/gray.src.js +1 -1
- package/es-modules/masters/themes/grid-light.src.js +1 -1
- package/es-modules/masters/themes/grid.src.js +1 -1
- package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
- package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
- package/es-modules/masters/themes/sand-signika.src.js +1 -1
- package/es-modules/masters/themes/skies.src.js +1 -1
- package/es-modules/masters/themes/sunset.src.js +1 -1
- package/highcharts-3d.js +1 -1
- package/highcharts-3d.src.js +1 -1
- package/highcharts-gantt.js +811 -809
- package/highcharts-gantt.js.map +1 -1
- package/highcharts-gantt.src.js +1271 -1213
- package/highcharts-more.d.ts +10 -0
- package/highcharts-more.js +194 -195
- package/highcharts-more.js.map +1 -1
- package/highcharts-more.src.d.ts +10 -0
- package/highcharts-more.src.js +5649 -5515
- package/highcharts.d.ts +9118 -429
- package/highcharts.js +595 -594
- package/highcharts.js.map +1 -1
- package/highcharts.src.d.ts +9118 -429
- package/highcharts.src.js +335 -285
- package/highmaps.js +763 -760
- package/highmaps.js.map +1 -1
- package/highmaps.src.js +640 -448
- package/highstock.js +797 -794
- package/highstock.js.map +1 -1
- package/highstock.src.js +414 -327
- package/indicators/acceleration-bands.d.ts +1 -17
- package/indicators/acceleration-bands.js +11 -12
- package/indicators/acceleration-bands.js.map +1 -1
- package/indicators/acceleration-bands.src.d.ts +1 -17
- package/indicators/acceleration-bands.src.js +89 -99
- 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 +3 -3
- package/indicators/apo.js +1 -1
- package/indicators/apo.src.js +1 -1
- package/indicators/aroon-oscillator.d.ts +1 -17
- package/indicators/aroon-oscillator.js +10 -10
- package/indicators/aroon-oscillator.js.map +1 -1
- package/indicators/aroon-oscillator.src.d.ts +1 -17
- package/indicators/aroon-oscillator.src.js +89 -99
- package/indicators/aroon.d.ts +1 -17
- package/indicators/aroon.js +11 -11
- package/indicators/aroon.js.map +1 -1
- package/indicators/aroon.src.d.ts +1 -17
- package/indicators/aroon.src.js +89 -99
- package/indicators/atr.js +1 -1
- package/indicators/atr.src.js +1 -1
- package/indicators/bollinger-bands.d.ts +1 -17
- package/indicators/bollinger-bands.js +11 -12
- package/indicators/bollinger-bands.js.map +1 -1
- package/indicators/bollinger-bands.src.d.ts +1 -17
- package/indicators/bollinger-bands.src.js +92 -102
- 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 +12 -12
- package/indicators/dmi.js.map +1 -1
- package/indicators/dmi.src.js +99 -105
- package/indicators/dpo.js +1 -1
- package/indicators/dpo.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.d.ts +1 -17
- package/indicators/indicators-all.js +195 -194
- package/indicators/indicators-all.js.map +1 -1
- package/indicators/indicators-all.src.d.ts +1 -17
- package/indicators/indicators-all.src.js +131 -125
- package/indicators/indicators.js +1 -1
- package/indicators/indicators.src.js +1 -1
- package/indicators/keltner-channels.d.ts +1 -17
- package/indicators/keltner-channels.js +11 -12
- package/indicators/keltner-channels.js.map +1 -1
- package/indicators/keltner-channels.src.d.ts +1 -17
- package/indicators/keltner-channels.src.js +89 -99
- package/indicators/klinger.js +14 -14
- package/indicators/klinger.js.map +1 -1
- package/indicators/klinger.src.js +89 -99
- package/indicators/macd.js +10 -9
- package/indicators/macd.js.map +1 -1
- package/indicators/macd.src.js +25 -13
- 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.d.ts +1 -17
- package/indicators/price-channel.js +11 -11
- package/indicators/price-channel.js.map +1 -1
- package/indicators/price-channel.src.d.ts +1 -17
- package/indicators/price-channel.src.js +89 -99
- 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.d.ts +1 -17
- package/indicators/stochastic.js +12 -12
- package/indicators/stochastic.js.map +1 -1
- package/indicators/stochastic.src.d.ts +1 -17
- package/indicators/stochastic.src.js +89 -99
- package/indicators/supertrend.js +1 -1
- package/indicators/supertrend.src.js +4 -4
- 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 +1 -1
- package/indicators/volume-by-price.src.js +1 -1
- 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 +230 -229
- package/modules/accessibility.js.map +1 -1
- package/modules/accessibility.src.js +110 -115
- package/modules/annotations-advanced.js +187 -187
- package/modules/annotations-advanced.js.map +1 -1
- package/modules/annotations-advanced.src.js +62 -39
- package/modules/annotations.js +61 -61
- package/modules/annotations.js.map +1 -1
- package/modules/annotations.src.js +38 -20
- package/modules/arc-diagram.js +1 -1
- package/modules/arc-diagram.src.js +1 -1
- package/modules/arrow-symbols.js +1 -1
- package/modules/arrow-symbols.src.js +1 -1
- package/modules/boost-canvas.js +12 -11
- package/modules/boost-canvas.js.map +1 -1
- package/modules/boost-canvas.src.js +12 -6
- package/modules/boost.js +81 -80
- package/modules/boost.js.map +1 -1
- package/modules/boost.src.js +20 -9
- package/modules/broken-axis.js +1 -1
- package/modules/broken-axis.src.js +1 -1
- package/modules/bullet.js +1 -1
- package/modules/bullet.js.map +1 -1
- package/modules/bullet.src.js +2 -5
- package/modules/coloraxis.js +2 -2
- package/modules/coloraxis.js.map +1 -1
- package/modules/coloraxis.src.js +5 -5
- package/modules/current-date-indicator.js +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.d.ts +12 -12
- package/modules/data.js +33 -34
- package/modules/data.js.map +1 -1
- package/modules/data.src.d.ts +12 -12
- package/modules/data.src.js +862 -829
- package/modules/datagrouping.js +1 -1
- package/modules/datagrouping.src.js +1 -1
- package/modules/debugger.js +1 -1
- package/modules/debugger.src.js +1 -1
- 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 +2 -2
- package/modules/draggable-points.js +1 -1
- package/modules/draggable-points.src.js +1 -1
- package/modules/drilldown.js +37 -36
- package/modules/drilldown.js.map +1 -1
- package/modules/drilldown.src.js +40 -9
- package/modules/dumbbell.d.ts +4 -0
- package/modules/dumbbell.js +17 -17
- package/modules/dumbbell.js.map +1 -1
- package/modules/dumbbell.src.d.ts +4 -0
- package/modules/dumbbell.src.js +24 -12
- package/modules/export-data.js +24 -22
- package/modules/export-data.js.map +1 -1
- package/modules/export-data.src.js +76 -11
- package/modules/exporting.d.ts +8 -8
- package/modules/exporting.js +36 -36
- package/modules/exporting.js.map +1 -1
- package/modules/exporting.src.d.ts +8 -8
- package/modules/exporting.src.js +50 -50
- package/modules/full-screen.js +1 -1
- package/modules/full-screen.src.js +1 -1
- package/modules/funnel.js +1 -1
- package/modules/funnel.src.js +3 -3
- package/modules/funnel3d.js +1 -1
- package/modules/funnel3d.src.js +1 -1
- package/modules/gantt.js +218 -218
- package/modules/gantt.js.map +1 -1
- package/modules/gantt.src.js +935 -927
- package/modules/grid-axis.js +23 -23
- package/modules/grid-axis.js.map +1 -1
- package/modules/grid-axis.src.js +886 -890
- package/modules/heatmap.js +40 -40
- package/modules/heatmap.js.map +1 -1
- package/modules/heatmap.src.js +115 -87
- package/modules/heikinashi.js +1 -1
- package/modules/heikinashi.src.js +1 -1
- package/modules/histogram-bellcurve.js +1 -1
- package/modules/histogram-bellcurve.src.js +1 -1
- package/modules/hollowcandlestick.js +1 -1
- package/modules/hollowcandlestick.src.js +9 -9
- 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.js +171 -169
- package/modules/map.js.map +1 -1
- package/modules/map.src.js +306 -164
- package/modules/marker-clusters.js +1 -1
- package/modules/marker-clusters.js.map +1 -1
- package/modules/marker-clusters.src.js +2 -6
- package/modules/networkgraph.d.ts +1 -17
- package/modules/networkgraph.js +49 -49
- package/modules/networkgraph.js.map +1 -1
- package/modules/networkgraph.src.d.ts +1 -17
- package/modules/networkgraph.src.js +55 -45
- package/modules/no-data-to-display.js +1 -1
- package/modules/no-data-to-display.src.js +2 -2
- package/modules/offline-exporting.js +3 -3
- package/modules/offline-exporting.js.map +1 -1
- package/modules/offline-exporting.src.js +5 -5
- 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 +3 -3
- package/modules/organization.js +1 -1
- package/modules/organization.src.js +3 -3
- package/modules/overlapping-datalabels.js +1 -1
- package/modules/overlapping-datalabels.src.js +1 -1
- package/modules/parallel-coordinates.js +2 -2
- package/modules/parallel-coordinates.js.map +1 -1
- package/modules/parallel-coordinates.src.js +2 -2
- 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 +15 -14
- package/modules/pattern-fill.js.map +1 -1
- package/modules/pattern-fill.src.js +15 -2
- 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.d.ts +1 -17
- package/modules/sankey.js +32 -32
- package/modules/sankey.js.map +1 -1
- package/modules/sankey.src.d.ts +1 -17
- package/modules/sankey.src.js +86 -55
- package/modules/series-label.js +18 -18
- package/modules/series-label.js.map +1 -1
- package/modules/series-label.src.js +472 -385
- package/modules/series-on-point.js +18 -0
- package/modules/series-on-point.js.map +1 -0
- package/modules/series-on-point.src.js +464 -0
- package/modules/solid-gauge.js +4 -4
- package/modules/solid-gauge.js.map +1 -1
- package/modules/solid-gauge.src.js +5 -5
- package/modules/sonification.js +1 -1
- package/modules/sonification.js.map +1 -1
- package/modules/sonification.src.js +3 -7
- package/modules/static-scale.js +1 -1
- package/modules/static-scale.src.js +1 -1
- package/modules/stock-tools.js +142 -142
- package/modules/stock-tools.js.map +1 -1
- package/modules/stock-tools.src.js +57 -38
- package/modules/stock.js +205 -204
- package/modules/stock.js.map +1 -1
- package/modules/stock.src.js +80 -43
- package/modules/streamgraph.js +1 -1
- package/modules/streamgraph.src.js +1 -1
- package/modules/sunburst.js +73 -73
- package/modules/sunburst.js.map +1 -1
- package/modules/sunburst.src.js +211 -177
- package/modules/tilemap.js +1 -1
- package/modules/tilemap.src.js +1 -1
- package/modules/timeline.js +1 -1
- package/modules/timeline.src.js +4 -4
- package/modules/treegrid.js +56 -56
- package/modules/treegrid.js.map +1 -1
- package/modules/treegrid.src.js +888 -892
- package/modules/treemap.js +54 -53
- package/modules/treemap.js.map +1 -1
- package/modules/treemap.src.js +208 -176
- 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 -31
- package/modules/venn.js.map +1 -1
- package/modules/venn.src.js +78 -107
- package/modules/windbarb.js +1 -1
- package/modules/windbarb.src.js +1 -1
- package/modules/wordcloud.js +23 -24
- package/modules/wordcloud.js.map +1 -1
- package/modules/wordcloud.src.js +78 -107
- package/modules/xrange.js +1 -1
- package/modules/xrange.src.js +1 -1
- package/package.json +1 -1
- package/themes/avocado.js +1 -1
- package/themes/avocado.src.js +1 -1
- package/themes/brand-dark.js +1 -1
- package/themes/brand-dark.src.js +1 -1
- package/themes/brand-light.js +1 -1
- package/themes/brand-light.src.js +1 -1
- package/themes/dark-blue.js +1 -1
- package/themes/dark-blue.src.js +1 -1
- package/themes/dark-green.js +1 -1
- package/themes/dark-green.src.js +1 -1
- package/themes/dark-unica.js +1 -1
- package/themes/dark-unica.src.js +1 -1
- package/themes/gray.js +1 -1
- package/themes/gray.src.js +1 -1
- package/themes/grid-light.js +1 -1
- package/themes/grid-light.src.js +1 -1
- package/themes/grid.js +1 -1
- package/themes/grid.src.js +1 -1
- package/themes/high-contrast-dark.js +1 -1
- package/themes/high-contrast-dark.src.js +1 -1
- package/themes/high-contrast-light.js +1 -1
- package/themes/high-contrast-light.src.js +1 -1
- package/themes/sand-signika.js +1 -1
- package/themes/sand-signika.src.js +1 -1
- package/themes/skies.js +1 -1
- package/themes/skies.src.js +1 -1
- package/themes/sunset.js +1 -1
- package/themes/sunset.src.js +1 -1
- package/es-modules/Extensions/Polar.js +0 -743
- package/es-modules/Series/ColorMapMixin.js +0 -84
- package/es-modules/Series/DrawPointComposition.js +0 -114
|
@@ -7,36 +7,6 @@
|
|
|
7
7
|
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
8
8
|
*
|
|
9
9
|
* */
|
|
10
|
-
'use strict';
|
|
11
|
-
import A from '../Core/Animation/AnimationUtilities.js';
|
|
12
|
-
var animObject = A.animObject;
|
|
13
|
-
import Chart from '../Core/Chart/Chart.js';
|
|
14
|
-
import F from '../Core/FormatUtilities.js';
|
|
15
|
-
var format = F.format;
|
|
16
|
-
import D from '../Core/DefaultOptions.js';
|
|
17
|
-
var setOptions = D.setOptions;
|
|
18
|
-
import Series from '../Core/Series/Series.js';
|
|
19
|
-
import SVGRenderer from '../Core/Renderer/SVG/SVGRenderer.js';
|
|
20
|
-
var symbols = SVGRenderer.prototype.symbols;
|
|
21
|
-
import U from '../Core/Utilities.js';
|
|
22
|
-
var addEvent = U.addEvent, extend = U.extend, fireEvent = U.fireEvent, isNumber = U.isNumber, pick = U.pick, syncTimeout = U.syncTimeout;
|
|
23
|
-
/**
|
|
24
|
-
* Containing the position of a box that should be avoided by labels.
|
|
25
|
-
*
|
|
26
|
-
* @interface Highcharts.LabelIntersectBoxObject
|
|
27
|
-
*/ /**
|
|
28
|
-
* @name Highcharts.LabelIntersectBoxObject#bottom
|
|
29
|
-
* @type {number}
|
|
30
|
-
*/ /**
|
|
31
|
-
* @name Highcharts.LabelIntersectBoxObject#left
|
|
32
|
-
* @type {number}
|
|
33
|
-
*/ /**
|
|
34
|
-
* @name Highcharts.LabelIntersectBoxObject#right
|
|
35
|
-
* @type {number}
|
|
36
|
-
*/ /**
|
|
37
|
-
* @name Highcharts.LabelIntersectBoxObject#top
|
|
38
|
-
* @type {number}
|
|
39
|
-
*/
|
|
40
10
|
/*
|
|
41
11
|
* Highcharts module to place labels next to a series in a natural position.
|
|
42
12
|
*
|
|
@@ -50,338 +20,39 @@ var addEvent = U.addEvent, extend = U.extend, fireEvent = U.fireEvent, isNumber
|
|
|
50
20
|
* https://jsfiddle.net/highcharts/264Nm/
|
|
51
21
|
* https://jsfiddle.net/highcharts/y5A37/
|
|
52
22
|
*/
|
|
53
|
-
'';
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
* human designer placed the labels in the optimal position.
|
|
68
|
-
*
|
|
69
|
-
* The series labels currently work with series types having a
|
|
70
|
-
* `graph` or an `area`.
|
|
71
|
-
*
|
|
72
|
-
* @sample highcharts/series-label/line-chart
|
|
73
|
-
* Line chart
|
|
74
|
-
* @sample highcharts/demo/streamgraph
|
|
75
|
-
* Stream graph
|
|
76
|
-
* @sample highcharts/series-label/stock-chart
|
|
77
|
-
* Stock chart
|
|
78
|
-
*
|
|
79
|
-
* @declare Highcharts.SeriesLabelOptionsObject
|
|
80
|
-
* @since 6.0.0
|
|
81
|
-
* @product highcharts highstock gantt
|
|
82
|
-
* @requires modules/series-label
|
|
83
|
-
*/
|
|
84
|
-
label: {
|
|
85
|
-
/**
|
|
86
|
-
* Enable the series label per series.
|
|
87
|
-
*/
|
|
88
|
-
enabled: true,
|
|
89
|
-
/**
|
|
90
|
-
* Allow labels to be placed distant to the graph if necessary,
|
|
91
|
-
* and draw a connector line to the graph. Setting this option
|
|
92
|
-
* to true may decrease the performance significantly, since the
|
|
93
|
-
* algorithm with systematically search for open spaces in the
|
|
94
|
-
* whole plot area. Visually, it may also result in a more
|
|
95
|
-
* cluttered chart, though more of the series will be labeled.
|
|
96
|
-
*/
|
|
97
|
-
connectorAllowed: false,
|
|
98
|
-
/**
|
|
99
|
-
* If the label is closer than this to a neighbour graph, draw a
|
|
100
|
-
* connector.
|
|
101
|
-
*/
|
|
102
|
-
connectorNeighbourDistance: 24,
|
|
103
|
-
/**
|
|
104
|
-
* A format string for the label, with support for a subset of
|
|
105
|
-
* HTML. Variables are enclosed by curly brackets. Available
|
|
106
|
-
* variables are `name`, `options.xxx`, `color` and other
|
|
107
|
-
* members from the `series` object. Use this option also to set
|
|
108
|
-
* a static text for the label.
|
|
109
|
-
*
|
|
110
|
-
* @type string
|
|
111
|
-
* @since 8.1.0
|
|
112
|
-
*/
|
|
113
|
-
format: void 0,
|
|
114
|
-
/**
|
|
115
|
-
* Callback function to format each of the series' labels. The
|
|
116
|
-
* `this` keyword refers to the series object. By default the
|
|
117
|
-
* `formatter` is undefined and the `series.name` is rendered.
|
|
118
|
-
*
|
|
119
|
-
* @type {Highcharts.FormatterCallbackFunction<Series>}
|
|
120
|
-
* @since 8.1.0
|
|
121
|
-
*/
|
|
122
|
-
formatter: void 0,
|
|
123
|
-
/**
|
|
124
|
-
* For area-like series, allow the font size to vary so that
|
|
125
|
-
* small areas get a smaller font size. The default applies this
|
|
126
|
-
* effect to area-like series but not line-like series.
|
|
127
|
-
*
|
|
128
|
-
* @type {number|null}
|
|
129
|
-
*/
|
|
130
|
-
minFontSize: null,
|
|
131
|
-
/**
|
|
132
|
-
* For area-like series, allow the font size to vary so that
|
|
133
|
-
* small areas get a smaller font size. The default applies this
|
|
134
|
-
* effect to area-like series but not line-like series.
|
|
135
|
-
*
|
|
136
|
-
* @type {number|null}
|
|
137
|
-
*/
|
|
138
|
-
maxFontSize: null,
|
|
139
|
-
/**
|
|
140
|
-
* Draw the label on the area of an area series. By default it
|
|
141
|
-
* is drawn on the area. Set it to `false` to draw it next to
|
|
142
|
-
* the graph instead.
|
|
143
|
-
*
|
|
144
|
-
* @type {boolean|null}
|
|
145
|
-
*/
|
|
146
|
-
onArea: null,
|
|
147
|
-
/**
|
|
148
|
-
* Styles for the series label. The color defaults to the series
|
|
149
|
-
* color, or a contrast color if `onArea`.
|
|
150
|
-
*
|
|
151
|
-
* @type {Highcharts.CSSObject}
|
|
152
|
-
*/
|
|
153
|
-
style: {
|
|
154
|
-
/** @internal */
|
|
155
|
-
fontWeight: 'bold'
|
|
156
|
-
},
|
|
157
|
-
/**
|
|
158
|
-
* An array of boxes to avoid when laying out the labels. Each
|
|
159
|
-
* item has a `left`, `right`, `top` and `bottom` property.
|
|
160
|
-
*
|
|
161
|
-
* @type {Array<Highcharts.LabelIntersectBoxObject>}
|
|
162
|
-
*/
|
|
163
|
-
boxesToAvoid: []
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
});
|
|
168
|
-
/* eslint-disable valid-jsdoc */
|
|
169
|
-
/**
|
|
170
|
-
* Counter-clockwise, part of the fast line intersection logic.
|
|
171
|
-
*
|
|
172
|
-
* @private
|
|
173
|
-
* @function ccw
|
|
174
|
-
*/
|
|
175
|
-
function ccw(x1, y1, x2, y2, x3, y3) {
|
|
176
|
-
var cw = ((y3 - y1) * (x2 - x1)) - ((y2 - y1) * (x3 - x1));
|
|
177
|
-
return cw > 0 ? true : !(cw < 0);
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Detect if two lines intersect.
|
|
23
|
+
'use strict';
|
|
24
|
+
import A from '../../Core/Animation/AnimationUtilities.js';
|
|
25
|
+
var animObject = A.animObject;
|
|
26
|
+
import Chart from '../../Core/Chart/Chart.js';
|
|
27
|
+
import FU from '../../Core/FormatUtilities.js';
|
|
28
|
+
var format = FU.format;
|
|
29
|
+
import D from '../../Core/DefaultOptions.js';
|
|
30
|
+
var setOptions = D.setOptions;
|
|
31
|
+
import SeriesLabelDefaults from './SeriesLabelDefaults.js';
|
|
32
|
+
import SLU from './SeriesLabelUtilities.js';
|
|
33
|
+
var boxIntersectLine = SLU.boxIntersectLine, intersectRect = SLU.intersectRect;
|
|
34
|
+
import U from '../../Core/Utilities.js';
|
|
35
|
+
var addEvent = U.addEvent, extend = U.extend, fireEvent = U.fireEvent, isNumber = U.isNumber, pick = U.pick, syncTimeout = U.syncTimeout;
|
|
36
|
+
/* *
|
|
181
37
|
*
|
|
182
|
-
*
|
|
183
|
-
* @function intersectLine
|
|
184
|
-
*/
|
|
185
|
-
function intersectLine(x1, y1, x2, y2, x3, y3, x4, y4) {
|
|
186
|
-
return ccw(x1, y1, x3, y3, x4, y4) !== ccw(x2, y2, x3, y3, x4, y4) &&
|
|
187
|
-
ccw(x1, y1, x2, y2, x3, y3) !== ccw(x1, y1, x2, y2, x4, y4);
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Detect if a box intersects with a line.
|
|
38
|
+
* Constants
|
|
191
39
|
*
|
|
192
|
-
*
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
return (intersectLine(x, y, x + w, y, x1, y1, x2, y2) || // top of label
|
|
197
|
-
intersectLine(x + w, y, x + w, y + h, x1, y1, x2, y2) || // right
|
|
198
|
-
intersectLine(x, y + h, x + w, y + h, x1, y1, x2, y2) || // bottom
|
|
199
|
-
intersectLine(x, y, x, y + h, x1, y1, x2, y2) // left of label
|
|
200
|
-
);
|
|
201
|
-
}
|
|
202
|
-
/**
|
|
203
|
-
* General symbol definition for labels with connector.
|
|
204
|
-
*/
|
|
205
|
-
symbols.connector = function (x, y, w, h, options) {
|
|
206
|
-
var anchorX = options && options.anchorX, anchorY = options && options.anchorY;
|
|
207
|
-
var path, yOffset, lateral = w / 2;
|
|
208
|
-
if (isNumber(anchorX) && isNumber(anchorY)) {
|
|
209
|
-
path = [['M', anchorX, anchorY]];
|
|
210
|
-
// Prefer 45 deg connectors
|
|
211
|
-
yOffset = y - anchorY;
|
|
212
|
-
if (yOffset < 0) {
|
|
213
|
-
yOffset = -h - yOffset;
|
|
214
|
-
}
|
|
215
|
-
if (yOffset < w) {
|
|
216
|
-
lateral = anchorX < x + (w / 2) ? yOffset : w - yOffset;
|
|
217
|
-
}
|
|
218
|
-
// Anchor below label
|
|
219
|
-
if (anchorY > y + h) {
|
|
220
|
-
path.push(['L', x + lateral, y + h]);
|
|
221
|
-
// Anchor above label
|
|
222
|
-
}
|
|
223
|
-
else if (anchorY < y) {
|
|
224
|
-
path.push(['L', x + lateral, y]);
|
|
225
|
-
// Anchor left of label
|
|
226
|
-
}
|
|
227
|
-
else if (anchorX < x) {
|
|
228
|
-
path.push(['L', x, y + h / 2]);
|
|
229
|
-
// Anchor right of label
|
|
230
|
-
}
|
|
231
|
-
else if (anchorX > x + w) {
|
|
232
|
-
path.push(['L', x + w, y + h / 2]);
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
return path || [];
|
|
236
|
-
};
|
|
237
|
-
/**
|
|
238
|
-
* Points to avoid. In addition to actual data points, the label should avoid
|
|
239
|
-
* interpolated positions.
|
|
40
|
+
* */
|
|
41
|
+
var composedClasses = [];
|
|
42
|
+
var labelDistance = 3;
|
|
43
|
+
/* *
|
|
240
44
|
*
|
|
241
|
-
*
|
|
242
|
-
* @function Highcharts.Series#getPointsOnGraph
|
|
243
|
-
*/
|
|
244
|
-
Series.prototype.getPointsOnGraph = function () {
|
|
245
|
-
if (!this.xAxis && !this.yAxis) {
|
|
246
|
-
return;
|
|
247
|
-
}
|
|
248
|
-
var distance = 16, points = this.points, interpolated = [], graph = this.graph || this.area, node = graph.element, inverted = this.chart.inverted, xAxis = this.xAxis, yAxis = this.yAxis, paneLeft = inverted ? yAxis.pos : xAxis.pos, paneTop = inverted ? xAxis.pos : yAxis.pos, onArea = pick(this.options.label.onArea, !!this.area), translatedThreshold = yAxis.getThreshold(this.options.threshold), grid = {};
|
|
249
|
-
var point, last, i, deltaX, deltaY, delta, len, n, j, d;
|
|
250
|
-
/**
|
|
251
|
-
* Push the point to the interpolated points, but only if that position in
|
|
252
|
-
* the grid has not been occupied. As a performance optimization, we divide
|
|
253
|
-
* the plot area into a grid and only add one point per series (#9815).
|
|
254
|
-
* @private
|
|
255
|
-
*/
|
|
256
|
-
function pushDiscrete(point) {
|
|
257
|
-
var cellSize = 8, key = Math.round(point.plotX / cellSize) + ',' +
|
|
258
|
-
Math.round(point.plotY / cellSize);
|
|
259
|
-
if (!grid[key]) {
|
|
260
|
-
grid[key] = 1;
|
|
261
|
-
interpolated.push(point);
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
// For splines, get the point at length (possible caveat: peaks are not
|
|
265
|
-
// correctly detected)
|
|
266
|
-
if (this.getPointSpline &&
|
|
267
|
-
node.getPointAtLength &&
|
|
268
|
-
!onArea &&
|
|
269
|
-
// Not performing well on complex series, node.getPointAtLength is too
|
|
270
|
-
// heavy (#9815)
|
|
271
|
-
points.length < this.chart.plotSizeX / distance) {
|
|
272
|
-
// If it is animating towards a path definition, use that briefly, and
|
|
273
|
-
// reset
|
|
274
|
-
if (graph.toD) {
|
|
275
|
-
d = graph.attr('d');
|
|
276
|
-
graph.attr({ d: graph.toD });
|
|
277
|
-
}
|
|
278
|
-
len = node.getTotalLength();
|
|
279
|
-
for (i = 0; i < len; i += distance) {
|
|
280
|
-
point = node.getPointAtLength(i);
|
|
281
|
-
pushDiscrete({
|
|
282
|
-
chartX: paneLeft + point.x,
|
|
283
|
-
chartY: paneTop + point.y,
|
|
284
|
-
plotX: point.x,
|
|
285
|
-
plotY: point.y
|
|
286
|
-
});
|
|
287
|
-
}
|
|
288
|
-
if (d) {
|
|
289
|
-
graph.attr({ d: d });
|
|
290
|
-
}
|
|
291
|
-
// Last point
|
|
292
|
-
point = points[points.length - 1];
|
|
293
|
-
point.chartX = paneLeft + point.plotX;
|
|
294
|
-
point.chartY = paneTop + point.plotY;
|
|
295
|
-
pushDiscrete(point);
|
|
296
|
-
// Interpolate
|
|
297
|
-
}
|
|
298
|
-
else {
|
|
299
|
-
len = points.length;
|
|
300
|
-
for (i = 0; i < len; i += 1) {
|
|
301
|
-
point = points[i];
|
|
302
|
-
last = points[i - 1];
|
|
303
|
-
// Absolute coordinates so we can compare different panes
|
|
304
|
-
point.chartX = paneLeft + point.plotX;
|
|
305
|
-
point.chartY = paneTop + point.plotY;
|
|
306
|
-
if (onArea) {
|
|
307
|
-
// Vertically centered inside area
|
|
308
|
-
point.chartCenterY = paneTop + (point.plotY +
|
|
309
|
-
pick(point.yBottom, translatedThreshold)) / 2;
|
|
310
|
-
}
|
|
311
|
-
// Add interpolated points
|
|
312
|
-
if (i > 0) {
|
|
313
|
-
deltaX = Math.abs(point.chartX - last.chartX);
|
|
314
|
-
deltaY = Math.abs(point.chartY - last.chartY);
|
|
315
|
-
delta = Math.max(deltaX, deltaY);
|
|
316
|
-
if (delta > distance) {
|
|
317
|
-
n = Math.ceil(delta / distance);
|
|
318
|
-
for (j = 1; j < n; j += 1) {
|
|
319
|
-
pushDiscrete({
|
|
320
|
-
chartX: last.chartX +
|
|
321
|
-
(point.chartX - last.chartX) *
|
|
322
|
-
(j / n),
|
|
323
|
-
chartY: last.chartY +
|
|
324
|
-
(point.chartY - last.chartY) *
|
|
325
|
-
(j / n),
|
|
326
|
-
chartCenterY: last.chartCenterY +
|
|
327
|
-
(point.chartCenterY -
|
|
328
|
-
last.chartCenterY) * (j / n),
|
|
329
|
-
plotX: last.plotX +
|
|
330
|
-
(point.plotX - last.plotX) *
|
|
331
|
-
(j / n),
|
|
332
|
-
plotY: last.plotY +
|
|
333
|
-
(point.plotY - last.plotY) *
|
|
334
|
-
(j / n)
|
|
335
|
-
});
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
// Add the real point in order to find positive and negative peaks
|
|
340
|
-
if (isNumber(point.plotY)) {
|
|
341
|
-
pushDiscrete(point);
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
// Get the bounding box so we can do a quick check first if the bounding
|
|
346
|
-
// boxes overlap.
|
|
347
|
-
/*
|
|
348
|
-
interpolated.bBox = node.getBBox();
|
|
349
|
-
interpolated.bBox.x += paneLeft;
|
|
350
|
-
interpolated.bBox.y += paneTop;
|
|
351
|
-
*/
|
|
352
|
-
return interpolated;
|
|
353
|
-
};
|
|
354
|
-
/**
|
|
355
|
-
* Overridable function to return series-specific font sizes for the labels. By
|
|
356
|
-
* default it returns bigger font sizes for series with the greater sum of y
|
|
357
|
-
* values.
|
|
45
|
+
* Functions
|
|
358
46
|
*
|
|
359
|
-
*
|
|
360
|
-
* @function Highcharts.Series#labelFontSize
|
|
361
|
-
*/
|
|
362
|
-
Series.prototype.labelFontSize = function (minFontSize, maxFontSize) {
|
|
363
|
-
return minFontSize + ((this.sum / this.chart.labelSeriesMaxSum) *
|
|
364
|
-
(maxFontSize - minFontSize)) + 'px';
|
|
365
|
-
};
|
|
47
|
+
* */
|
|
366
48
|
/**
|
|
367
49
|
* Check whether a proposed label position is clear of other elements.
|
|
368
|
-
*
|
|
369
50
|
* @private
|
|
370
|
-
* @function Highcharts.Series#checkClearPoint
|
|
371
51
|
*/
|
|
372
|
-
|
|
373
|
-
var chart =
|
|
52
|
+
function checkClearPoint(series, x, y, bBox, checkDistance) {
|
|
53
|
+
var chart = series.chart, onArea = pick(series.options.label.onArea, !!series.area), findDistanceToOthers = (onArea || series.options.label.connectorAllowed), leastDistance = 16;
|
|
374
54
|
var distToOthersSquared = Number.MAX_VALUE, // distance to other graphs
|
|
375
|
-
distToPointSquared = Number.MAX_VALUE, dist, connectorPoint,
|
|
376
|
-
/**
|
|
377
|
-
* @private
|
|
378
|
-
*/
|
|
379
|
-
function intersectRect(r1, r2) {
|
|
380
|
-
return !(r2.left > r1.right ||
|
|
381
|
-
r2.right < r1.left ||
|
|
382
|
-
r2.top > r1.bottom ||
|
|
383
|
-
r2.bottom < r1.top);
|
|
384
|
-
}
|
|
55
|
+
distToPointSquared = Number.MAX_VALUE, dist, connectorPoint, serie, points, withinRange, xDist, yDist, i, j;
|
|
385
56
|
/**
|
|
386
57
|
* Get the weight in order to determine the ideal position. Larger distance
|
|
387
58
|
* to other series gives more weight. Smaller distance to the actual point
|
|
@@ -405,9 +76,9 @@ Series.prototype.checkClearPoint = function (x, y, bBox, checkDistance) {
|
|
|
405
76
|
// For each position, check if the lines around the label intersect with any
|
|
406
77
|
// of the graphs.
|
|
407
78
|
for (i = 0; i < chart.series.length; i += 1) {
|
|
408
|
-
|
|
409
|
-
points =
|
|
410
|
-
if (
|
|
79
|
+
serie = chart.series[i];
|
|
80
|
+
points = serie.interpolatedPoints;
|
|
81
|
+
if (serie.visible && points) {
|
|
411
82
|
for (j = 1; j < points.length; j += 1) {
|
|
412
83
|
if (
|
|
413
84
|
// To avoid processing, only check intersection if the X
|
|
@@ -430,14 +101,14 @@ Series.prototype.checkClearPoint = function (x, y, bBox, checkDistance) {
|
|
|
430
101
|
}
|
|
431
102
|
// But if it is too far away (a padded box doesn't
|
|
432
103
|
// intersect), also return.
|
|
433
|
-
if (
|
|
104
|
+
if (series === serie && !withinRange && checkDistance) {
|
|
434
105
|
withinRange = boxIntersectLine(x - leastDistance, y - leastDistance, bBox.width + 2 * leastDistance, bBox.height + 2 * leastDistance, points[j - 1].chartX, points[j - 1].chartY, points[j].chartX, points[j].chartY);
|
|
435
106
|
}
|
|
436
107
|
}
|
|
437
108
|
// Find the squared distance from the center of the label. On
|
|
438
109
|
// area series, avoid its own graph.
|
|
439
110
|
if ((findDistanceToOthers || withinRange) &&
|
|
440
|
-
(
|
|
111
|
+
(series !== serie || onArea)) {
|
|
441
112
|
xDist = x + bBox.width / 2 - points[j].chartX;
|
|
442
113
|
yDist = y + bBox.height / 2 - points[j].chartY;
|
|
443
114
|
distToOthersSquared = Math.min(distToOthersSquared, xDist * xDist + yDist * yDist);
|
|
@@ -446,9 +117,10 @@ Series.prototype.checkClearPoint = function (x, y, bBox, checkDistance) {
|
|
|
446
117
|
// Do we need a connector?
|
|
447
118
|
if (!onArea &&
|
|
448
119
|
findDistanceToOthers &&
|
|
449
|
-
|
|
120
|
+
series === serie &&
|
|
450
121
|
((checkDistance && !withinRange) ||
|
|
451
|
-
distToOthersSquared < Math.pow(
|
|
122
|
+
distToOthersSquared < Math.pow(series.options.label
|
|
123
|
+
.connectorNeighbourDistance, 2))) {
|
|
452
124
|
for (j = 1; j < points.length; j += 1) {
|
|
453
125
|
dist = Math.min((Math.pow(x + bBox.width / 2 - points[j].chartX, 2) +
|
|
454
126
|
Math.pow(y + bBox.height / 2 - points[j].chartY, 2)), (Math.pow(x - points[j].chartX, 2) +
|
|
@@ -471,7 +143,26 @@ Series.prototype.checkClearPoint = function (x, y, bBox, checkDistance) {
|
|
|
471
143
|
weight: getWeight(distToOthersSquared, connectorPoint ? distToPointSquared : 0),
|
|
472
144
|
connectorPoint: connectorPoint
|
|
473
145
|
} : false;
|
|
474
|
-
}
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* @private
|
|
149
|
+
*/
|
|
150
|
+
function compose(ChartClass, SVGRendererClass) {
|
|
151
|
+
if (composedClasses.indexOf(ChartClass) === -1) {
|
|
152
|
+
composedClasses.push(ChartClass);
|
|
153
|
+
// Leave both events, we handle animation differently (#9815)
|
|
154
|
+
addEvent(Chart, 'load', onChartRedraw);
|
|
155
|
+
addEvent(Chart, 'redraw', onChartRedraw);
|
|
156
|
+
}
|
|
157
|
+
if (composedClasses.indexOf(SVGRendererClass) === -1) {
|
|
158
|
+
composedClasses.push(SVGRendererClass);
|
|
159
|
+
SVGRendererClass.prototype.symbols.connector = symbolConnector;
|
|
160
|
+
}
|
|
161
|
+
if (composedClasses.indexOf(setOptions) === -1) {
|
|
162
|
+
composedClasses.push(setOptions);
|
|
163
|
+
setOptions({ plotOptions: { series: { label: SeriesLabelDefaults } } });
|
|
164
|
+
}
|
|
165
|
+
}
|
|
475
166
|
/**
|
|
476
167
|
* The main initialize method that runs on chart level after initialization and
|
|
477
168
|
* redraw. It runs in a timeout to prevent locking, and loops over all series,
|
|
@@ -480,13 +171,13 @@ Series.prototype.checkClearPoint = function (x, y, bBox, checkDistance) {
|
|
|
480
171
|
* @private
|
|
481
172
|
* @function Highcharts.Chart#drawSeriesLabels
|
|
482
173
|
*/
|
|
483
|
-
|
|
174
|
+
function drawSeriesLabels(chart) {
|
|
484
175
|
// console.time('drawSeriesLabels');
|
|
485
|
-
var
|
|
176
|
+
var labelSeries = chart.labelSeries;
|
|
486
177
|
chart.boxesToAvoid = [];
|
|
487
178
|
// Build the interpolated points
|
|
488
179
|
labelSeries.forEach(function (series) {
|
|
489
|
-
series.interpolatedPoints =
|
|
180
|
+
series.interpolatedPoints = getPointsOnGraph(series);
|
|
490
181
|
(series.options.label.boxesToAvoid || []).forEach(function (box) {
|
|
491
182
|
chart.boxesToAvoid.push(box);
|
|
492
183
|
});
|
|
@@ -535,7 +226,7 @@ Chart.prototype.drawSeriesLabels = function () {
|
|
|
535
226
|
labelText = labelOptions.formatter.call(series);
|
|
536
227
|
}
|
|
537
228
|
series.labelBySeries = label = chart.renderer
|
|
538
|
-
.label(labelText, 0,
|
|
229
|
+
.label(labelText, 0, 0, 'connector')
|
|
539
230
|
.addClass('highcharts-series-label ' +
|
|
540
231
|
'highcharts-series-label-' + series.index + ' ' +
|
|
541
232
|
(series.options.className || '') + ' ' +
|
|
@@ -555,7 +246,7 @@ Chart.prototype.drawSeriesLabels = function () {
|
|
|
555
246
|
// Adapt label sizes to the sum of the data
|
|
556
247
|
if (minFontSize && maxFontSize) {
|
|
557
248
|
label.css({
|
|
558
|
-
fontSize:
|
|
249
|
+
fontSize: labelFontSize(series, minFontSize, maxFontSize)
|
|
559
250
|
});
|
|
560
251
|
}
|
|
561
252
|
label
|
|
@@ -575,7 +266,7 @@ Chart.prototype.drawSeriesLabels = function () {
|
|
|
575
266
|
x = points[i].chartX - bBox.width / 2;
|
|
576
267
|
y = points[i].chartCenterY - bBox.height / 2;
|
|
577
268
|
if (insidePane(x, y, bBox)) {
|
|
578
|
-
best =
|
|
269
|
+
best = checkClearPoint(series, x, y, bBox);
|
|
579
270
|
}
|
|
580
271
|
if (best) {
|
|
581
272
|
results.push(best);
|
|
@@ -586,7 +277,7 @@ Chart.prototype.drawSeriesLabels = function () {
|
|
|
586
277
|
x = points[i].chartX + labelDistance;
|
|
587
278
|
y = points[i].chartY - bBox.height - labelDistance;
|
|
588
279
|
if (insidePane(x, y, bBox)) {
|
|
589
|
-
best =
|
|
280
|
+
best = checkClearPoint(series, x, y, bBox, true);
|
|
590
281
|
}
|
|
591
282
|
if (best) {
|
|
592
283
|
results.push(best);
|
|
@@ -595,7 +286,7 @@ Chart.prototype.drawSeriesLabels = function () {
|
|
|
595
286
|
x = points[i].chartX + labelDistance;
|
|
596
287
|
y = points[i].chartY + labelDistance;
|
|
597
288
|
if (insidePane(x, y, bBox)) {
|
|
598
|
-
best =
|
|
289
|
+
best = checkClearPoint(series, x, y, bBox, true);
|
|
599
290
|
}
|
|
600
291
|
if (best) {
|
|
601
292
|
results.push(best);
|
|
@@ -604,7 +295,7 @@ Chart.prototype.drawSeriesLabels = function () {
|
|
|
604
295
|
x = points[i].chartX - bBox.width - labelDistance;
|
|
605
296
|
y = points[i].chartY + labelDistance;
|
|
606
297
|
if (insidePane(x, y, bBox)) {
|
|
607
|
-
best =
|
|
298
|
+
best = checkClearPoint(series, x, y, bBox, true);
|
|
608
299
|
}
|
|
609
300
|
if (best) {
|
|
610
301
|
results.push(best);
|
|
@@ -613,7 +304,7 @@ Chart.prototype.drawSeriesLabels = function () {
|
|
|
613
304
|
x = points[i].chartX - bBox.width - labelDistance;
|
|
614
305
|
y = points[i].chartY - bBox.height - labelDistance;
|
|
615
306
|
if (insidePane(x, y, bBox)) {
|
|
616
|
-
best =
|
|
307
|
+
best = checkClearPoint(series, x, y, bBox, true);
|
|
617
308
|
}
|
|
618
309
|
if (best) {
|
|
619
310
|
results.push(best);
|
|
@@ -624,7 +315,7 @@ Chart.prototype.drawSeriesLabels = function () {
|
|
|
624
315
|
if (labelOptions.connectorAllowed && !results.length && !onArea) {
|
|
625
316
|
for (x = paneLeft + paneWidth - bBox.width; x >= paneLeft; x -= 16) {
|
|
626
317
|
for (y = paneTop; y < paneTop + paneHeight - bBox.height; y += 16) {
|
|
627
|
-
clearPoint =
|
|
318
|
+
clearPoint = checkClearPoint(series, x, y, bBox, true);
|
|
628
319
|
if (clearPoint) {
|
|
629
320
|
results.push(clearPoint);
|
|
630
321
|
}
|
|
@@ -632,9 +323,7 @@ Chart.prototype.drawSeriesLabels = function () {
|
|
|
632
323
|
}
|
|
633
324
|
}
|
|
634
325
|
if (results.length) {
|
|
635
|
-
results.sort(function (a, b) {
|
|
636
|
-
return b.weight - a.weight;
|
|
637
|
-
});
|
|
326
|
+
results.sort(function (a, b) { return b.weight - a.weight; });
|
|
638
327
|
best = results[0];
|
|
639
328
|
chart.boxesToAvoid.push({
|
|
640
329
|
left: best.x,
|
|
@@ -705,15 +394,139 @@ Chart.prototype.drawSeriesLabels = function () {
|
|
|
705
394
|
});
|
|
706
395
|
fireEvent(chart, 'afterDrawSeriesLabels');
|
|
707
396
|
// console.timeEnd('drawSeriesLabels');
|
|
708
|
-
}
|
|
709
|
-
/* eslint-disable no-invalid-this */
|
|
397
|
+
}
|
|
710
398
|
/**
|
|
711
|
-
*
|
|
399
|
+
* Points to avoid. In addition to actual data points, the label should avoid
|
|
400
|
+
* interpolated positions.
|
|
712
401
|
*
|
|
713
402
|
* @private
|
|
714
|
-
* @function
|
|
403
|
+
* @function Highcharts.Series#getPointsOnGraph
|
|
404
|
+
*/
|
|
405
|
+
function getPointsOnGraph(series) {
|
|
406
|
+
if (!series.xAxis && !series.yAxis) {
|
|
407
|
+
return;
|
|
408
|
+
}
|
|
409
|
+
var distance = 16, points = series.points, interpolated = [], graph = series.graph || series.area, node = graph.element, inverted = series.chart.inverted, xAxis = series.xAxis, yAxis = series.yAxis, paneLeft = inverted ? yAxis.pos : xAxis.pos, paneTop = inverted ? xAxis.pos : yAxis.pos, onArea = pick(series.options.label.onArea, !!series.area), translatedThreshold = yAxis.getThreshold(series.options.threshold), grid = {};
|
|
410
|
+
var point, last, i, deltaX, deltaY, delta, len, n, j, d;
|
|
411
|
+
/**
|
|
412
|
+
* Push the point to the interpolated points, but only if that position in
|
|
413
|
+
* the grid has not been occupied. As a performance optimization, we divide
|
|
414
|
+
* the plot area into a grid and only add one point per series (#9815).
|
|
415
|
+
* @private
|
|
416
|
+
*/
|
|
417
|
+
function pushDiscrete(point) {
|
|
418
|
+
var cellSize = 8, key = Math.round(point.plotX / cellSize) + ',' +
|
|
419
|
+
Math.round(point.plotY / cellSize);
|
|
420
|
+
if (!grid[key]) {
|
|
421
|
+
grid[key] = 1;
|
|
422
|
+
interpolated.push(point);
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
// For splines, get the point at length (possible caveat: peaks are not
|
|
426
|
+
// correctly detected)
|
|
427
|
+
if (series.getPointSpline &&
|
|
428
|
+
(node.getPointAtLength) &&
|
|
429
|
+
!onArea &&
|
|
430
|
+
// Not performing well on complex series, node.getPointAtLength is too
|
|
431
|
+
// heavy (#9815)
|
|
432
|
+
points.length < series.chart.plotSizeX / distance) {
|
|
433
|
+
// If it is animating towards a path definition, use that briefly, and
|
|
434
|
+
// reset
|
|
435
|
+
if (graph.toD) {
|
|
436
|
+
d = graph.attr('d');
|
|
437
|
+
graph.attr({ d: graph.toD });
|
|
438
|
+
}
|
|
439
|
+
len = node.getTotalLength();
|
|
440
|
+
for (i = 0; i < len; i += distance) {
|
|
441
|
+
point = node.getPointAtLength(i);
|
|
442
|
+
pushDiscrete({
|
|
443
|
+
chartX: paneLeft + point.x,
|
|
444
|
+
chartY: paneTop + point.y,
|
|
445
|
+
plotX: point.x,
|
|
446
|
+
plotY: point.y
|
|
447
|
+
});
|
|
448
|
+
}
|
|
449
|
+
if (d) {
|
|
450
|
+
graph.attr({ d: d });
|
|
451
|
+
}
|
|
452
|
+
// Last point
|
|
453
|
+
point = points[points.length - 1];
|
|
454
|
+
point.chartX = paneLeft + point.plotX;
|
|
455
|
+
point.chartY = paneTop + point.plotY;
|
|
456
|
+
pushDiscrete(point);
|
|
457
|
+
// Interpolate
|
|
458
|
+
}
|
|
459
|
+
else {
|
|
460
|
+
len = points.length;
|
|
461
|
+
for (i = 0; i < len; i += 1) {
|
|
462
|
+
point = points[i];
|
|
463
|
+
last = points[i - 1];
|
|
464
|
+
// Absolute coordinates so we can compare different panes
|
|
465
|
+
point.chartX = paneLeft + point.plotX;
|
|
466
|
+
point.chartY = paneTop + point.plotY;
|
|
467
|
+
if (onArea) {
|
|
468
|
+
// Vertically centered inside area
|
|
469
|
+
point.chartCenterY = paneTop + (point.plotY +
|
|
470
|
+
pick(point.yBottom, translatedThreshold)) / 2;
|
|
471
|
+
}
|
|
472
|
+
// Add interpolated points
|
|
473
|
+
if (i > 0) {
|
|
474
|
+
deltaX = Math.abs(point.chartX - last.chartX);
|
|
475
|
+
deltaY = Math.abs(point.chartY - last.chartY);
|
|
476
|
+
delta = Math.max(deltaX, deltaY);
|
|
477
|
+
if (delta > distance) {
|
|
478
|
+
n = Math.ceil(delta / distance);
|
|
479
|
+
for (j = 1; j < n; j += 1) {
|
|
480
|
+
pushDiscrete({
|
|
481
|
+
chartX: last.chartX +
|
|
482
|
+
(point.chartX - last.chartX) *
|
|
483
|
+
(j / n),
|
|
484
|
+
chartY: last.chartY +
|
|
485
|
+
(point.chartY - last.chartY) *
|
|
486
|
+
(j / n),
|
|
487
|
+
chartCenterY: last.chartCenterY +
|
|
488
|
+
(point.chartCenterY -
|
|
489
|
+
last.chartCenterY) * (j / n),
|
|
490
|
+
plotX: last.plotX +
|
|
491
|
+
(point.plotX - last.plotX) *
|
|
492
|
+
(j / n),
|
|
493
|
+
plotY: last.plotY +
|
|
494
|
+
(point.plotY - last.plotY) *
|
|
495
|
+
(j / n)
|
|
496
|
+
});
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
// Add the real point in order to find positive and negative peaks
|
|
501
|
+
if (isNumber(point.plotY)) {
|
|
502
|
+
pushDiscrete(point);
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
// Get the bounding box so we can do a quick check first if the bounding
|
|
507
|
+
// boxes overlap.
|
|
508
|
+
/*
|
|
509
|
+
interpolated.bBox = node.getBBox();
|
|
510
|
+
interpolated.bBox.x += paneLeft;
|
|
511
|
+
interpolated.bBox.y += paneTop;
|
|
512
|
+
*/
|
|
513
|
+
return interpolated;
|
|
514
|
+
}
|
|
515
|
+
/**
|
|
516
|
+
* Overridable function to return series-specific font sizes for the labels. By
|
|
517
|
+
* default it returns bigger font sizes for series with the greater sum of y
|
|
518
|
+
* values.
|
|
519
|
+
* @private
|
|
715
520
|
*/
|
|
716
|
-
function
|
|
521
|
+
function labelFontSize(series, minFontSize, maxFontSize) {
|
|
522
|
+
return minFontSize + ((series.sum / series.chart.labelSeriesMaxSum) *
|
|
523
|
+
(maxFontSize - minFontSize)) + 'px';
|
|
524
|
+
}
|
|
525
|
+
/**
|
|
526
|
+
* Prepare drawing series labels.
|
|
527
|
+
* @private
|
|
528
|
+
*/
|
|
529
|
+
function onChartRedraw(e) {
|
|
717
530
|
if (this.renderer) {
|
|
718
531
|
var chart_1 = this;
|
|
719
532
|
var delay_1 = animObject(chart_1.renderer.globalAnimation).duration;
|
|
@@ -755,11 +568,76 @@ function drawLabels(e) {
|
|
|
755
568
|
});
|
|
756
569
|
chart_1.seriesLabelTimer = syncTimeout(function () {
|
|
757
570
|
if (chart_1.series && chart_1.labelSeries) { // #7931, chart destroyed
|
|
758
|
-
|
|
571
|
+
drawSeriesLabels(chart_1);
|
|
759
572
|
}
|
|
760
573
|
}, chart_1.renderer.forExport || !delay_1 ? 0 : delay_1);
|
|
761
574
|
}
|
|
762
575
|
}
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
576
|
+
/**
|
|
577
|
+
* General symbol definition for labels with connector.
|
|
578
|
+
* @private
|
|
579
|
+
*/
|
|
580
|
+
function symbolConnector(x, y, w, h, options) {
|
|
581
|
+
var anchorX = options && options.anchorX, anchorY = options && options.anchorY;
|
|
582
|
+
var path, yOffset, lateral = w / 2;
|
|
583
|
+
if (isNumber(anchorX) && isNumber(anchorY)) {
|
|
584
|
+
path = [['M', anchorX, anchorY]];
|
|
585
|
+
// Prefer 45 deg connectors
|
|
586
|
+
yOffset = y - anchorY;
|
|
587
|
+
if (yOffset < 0) {
|
|
588
|
+
yOffset = -h - yOffset;
|
|
589
|
+
}
|
|
590
|
+
if (yOffset < w) {
|
|
591
|
+
lateral = anchorX < x + (w / 2) ? yOffset : w - yOffset;
|
|
592
|
+
}
|
|
593
|
+
// Anchor below label
|
|
594
|
+
if (anchorY > y + h) {
|
|
595
|
+
path.push(['L', x + lateral, y + h]);
|
|
596
|
+
// Anchor above label
|
|
597
|
+
}
|
|
598
|
+
else if (anchorY < y) {
|
|
599
|
+
path.push(['L', x + lateral, y]);
|
|
600
|
+
// Anchor left of label
|
|
601
|
+
}
|
|
602
|
+
else if (anchorX < x) {
|
|
603
|
+
path.push(['L', x, y + h / 2]);
|
|
604
|
+
// Anchor right of label
|
|
605
|
+
}
|
|
606
|
+
else if (anchorX > x + w) {
|
|
607
|
+
path.push(['L', x + w, y + h / 2]);
|
|
608
|
+
}
|
|
609
|
+
}
|
|
610
|
+
return path || [];
|
|
611
|
+
}
|
|
612
|
+
/* *
|
|
613
|
+
*
|
|
614
|
+
* Default Export
|
|
615
|
+
*
|
|
616
|
+
* */
|
|
617
|
+
var SeriesLabel = {
|
|
618
|
+
compose: compose
|
|
619
|
+
};
|
|
620
|
+
export default SeriesLabel;
|
|
621
|
+
/* *
|
|
622
|
+
*
|
|
623
|
+
* API Declarations
|
|
624
|
+
*
|
|
625
|
+
* */
|
|
626
|
+
/**
|
|
627
|
+
* Containing the position of a box that should be avoided by labels.
|
|
628
|
+
*
|
|
629
|
+
* @interface Highcharts.LabelIntersectBoxObject
|
|
630
|
+
*/ /**
|
|
631
|
+
* @name Highcharts.LabelIntersectBoxObject#bottom
|
|
632
|
+
* @type {number}
|
|
633
|
+
*/ /**
|
|
634
|
+
* @name Highcharts.LabelIntersectBoxObject#left
|
|
635
|
+
* @type {number}
|
|
636
|
+
*/ /**
|
|
637
|
+
* @name Highcharts.LabelIntersectBoxObject#right
|
|
638
|
+
* @type {number}
|
|
639
|
+
*/ /**
|
|
640
|
+
* @name Highcharts.LabelIntersectBoxObject#top
|
|
641
|
+
* @type {number}
|
|
642
|
+
*/
|
|
643
|
+
(''); // keeps doclets above in JS file
|