highcharts 9.3.3 → 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/css/highcharts.css +19 -2
- package/css/highcharts.scss +17 -2
- package/css/themes/dark-unica.css +19 -2
- package/css/themes/grid-light.css +19 -2
- package/css/themes/sand-signika.css +19 -2
- package/es-modules/Accessibility/A11yI18n.js +4 -4
- package/es-modules/Accessibility/Accessibility.js +3 -4
- package/es-modules/Accessibility/Components/AnnotationsA11y.js +3 -3
- package/es-modules/Accessibility/Components/ContainerComponent.js +11 -10
- package/es-modules/Accessibility/Components/InfoRegionsComponent.js +18 -11
- package/es-modules/Accessibility/Components/LegendComponent.js +34 -26
- package/es-modules/Accessibility/Components/MenuComponent.js +7 -6
- package/es-modules/Accessibility/Components/RangeSelectorComponent.js +5 -3
- package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +7 -6
- package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +1 -1
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +3 -2
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +34 -18
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +96 -39
- package/es-modules/Accessibility/Components/ZoomComponent.js +43 -80
- package/es-modules/Accessibility/FocusBorder.js +6 -5
- package/es-modules/Accessibility/HighContrastMode.js +3 -3
- package/es-modules/Accessibility/KeyboardNavigation.js +113 -98
- package/es-modules/Accessibility/Options/{Options.js → A11yDefaults.js} +72 -4
- package/es-modules/Accessibility/Options/DeprecatedOptions.js +12 -2
- package/es-modules/Accessibility/Options/{LangOptions.js → LangDefaults.js} +46 -31
- package/es-modules/Accessibility/ProxyElement.js +14 -6
- package/es-modules/Accessibility/ProxyProvider.js +10 -2
- package/es-modules/Accessibility/Utils/ChartUtilities.js +10 -5
- package/es-modules/Core/Animation/Fx.js +1 -1
- package/es-modules/Core/Axis/Axis.js +197 -91
- package/es-modules/Core/Axis/AxisDefaults.js +8 -8
- package/es-modules/Core/Axis/Color/ColorAxis.js +26 -7
- 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 +821 -821
- package/es-modules/Core/Axis/LogarithmicAxis.js +1 -1
- package/es-modules/Core/Axis/OrdinalAxis.js +26 -3
- package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +3 -3
- package/es-modules/Core/Axis/StackingAxis.js +0 -1
- package/es-modules/Core/Axis/Tick.js +22 -18
- package/es-modules/Core/Axis/TreeGridTick.js +13 -2
- package/es-modules/Core/Axis/ZAxis.js +3 -1
- package/es-modules/Core/Chart/Chart.js +27 -8
- package/es-modules/Core/Chart/Chart3D.js +1 -11
- package/es-modules/Core/Chart/ChartDefaults.js +46 -14
- package/es-modules/Core/Chart/GanttChart.js +3 -1
- package/es-modules/Core/Chart/MapChart.js +4 -7
- package/es-modules/Core/Chart/StockChart.js +7 -5
- package/es-modules/Core/Color/Color.js +1 -1
- package/es-modules/Core/DefaultOptions.js +19 -15
- package/es-modules/Core/Geometry/PolygonClip.js +84 -0
- package/es-modules/Core/Globals.js +4 -18
- package/es-modules/Core/HttpUtilities.js +46 -39
- package/es-modules/Core/Legend/Legend.js +14 -12
- package/es-modules/Core/MSPointer.js +3 -1
- package/es-modules/Core/Navigator.js +16 -13
- package/es-modules/Core/Pointer.js +16 -12
- package/es-modules/Core/Renderer/HTML/AST.js +68 -8
- 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 +54 -70
- package/es-modules/Core/Renderer/SVG/SVGElement3D.js +17 -5
- package/es-modules/Core/Renderer/SVG/SVGLabel.js +3 -1
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +60 -55
- package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +4 -2
- package/es-modules/Core/Renderer/SVG/TextBuilder.js +12 -10
- package/es-modules/Core/Scrollbar.js +9 -5
- package/es-modules/Core/ScrollbarDefaults.js +8 -8
- package/es-modules/Core/Series/DataLabel.js +67 -38
- package/es-modules/Core/Series/Point.js +11 -2
- package/es-modules/Core/Series/Series.js +57 -27
- package/es-modules/Core/Series/Series3D.js +3 -1
- package/es-modules/Core/Series/SeriesDefaults.js +7 -4
- package/es-modules/Core/Time.js +6 -7
- package/es-modules/Core/Tooltip.js +17 -34
- package/es-modules/Core/Utilities.js +33 -33
- 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} +30 -11
- package/es-modules/Extensions/Annotations/AnnotationsDefaults.js +0 -0
- package/es-modules/Extensions/Annotations/ControlPoint.js +1 -1
- package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +5 -2
- package/es-modules/Extensions/Annotations/MockPoint.js +1 -1
- package/es-modules/Extensions/Annotations/NavigationBindings.js +16 -5
- package/es-modules/Extensions/Annotations/Popup.js +2 -2
- package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +18 -12
- 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 +9 -3
- package/es-modules/Extensions/Boost/BoostOptions.js +26 -0
- package/es-modules/Extensions/Boost/Boostables.js +1 -0
- package/es-modules/Extensions/Boost/WGLRenderer.js +48 -37
- package/es-modules/Extensions/Boost/WGLShader.js +4 -3
- package/es-modules/Extensions/BoostCanvas.js +11 -5
- package/es-modules/Extensions/Breadcrumbs.js +898 -0
- package/es-modules/Extensions/CurrentDateIndication.js +1 -1
- package/es-modules/Extensions/Data.js +661 -613
- package/es-modules/Extensions/DataGrouping.js +8 -3
- package/es-modules/Extensions/Debugger/ErrorMessages.js +4 -0
- package/es-modules/Extensions/DownloadURL.js +3 -3
- package/es-modules/Extensions/DragPanes.js +1 -1
- package/es-modules/Extensions/DraggablePoints.js +9 -7
- package/es-modules/Extensions/Drilldown.js +152 -97
- package/es-modules/Extensions/ExportData.js +58 -9
- package/es-modules/Extensions/Exporting/Exporting.js +34 -23
- package/es-modules/Extensions/Exporting/ExportingDefaults.js +56 -8
- package/es-modules/Extensions/FullScreen.js +121 -54
- package/es-modules/Extensions/GeoJSON.js +149 -125
- package/es-modules/Extensions/MarkerClusters.js +36 -22
- package/es-modules/Extensions/NoDataToDisplay.js +1 -1
- package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +110 -22
- package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
- package/es-modules/Extensions/Oldie/Oldie.js +2 -2
- package/es-modules/Extensions/OverlappingDataLabels.js +5 -4
- 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 +8 -4
- 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 +5 -4
- package/es-modules/Extensions/Themes/HighContrastDark.js +10 -10
- package/es-modules/Extensions/Themes/HighContrastLight.js +10 -10
- package/es-modules/Maps/MapNavigation.js +49 -12
- package/es-modules/Maps/MapPointer.js +16 -0
- package/es-modules/Maps/MapUtilities.js +56 -0
- package/es-modules/Maps/MapView.js +619 -137
- package/es-modules/Maps/MapViewInsetsOptionsDefault.js +148 -0
- package/es-modules/Maps/MapViewOptionsDefault.js +60 -20
- package/es-modules/Maps/Projection.js +182 -88
- package/es-modules/Maps/Projections/EqualEarth.js +15 -6
- package/es-modules/Maps/Projections/LambertConformalConic.js +27 -19
- package/es-modules/Maps/Projections/Miller.js +23 -10
- package/es-modules/Maps/Projections/Orthographic.js +21 -10
- package/es-modules/Maps/Projections/WebMercator.js +25 -13
- package/es-modules/Series/ArcDiagram/ArcDiagramPoint.js +79 -0
- package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +591 -0
- 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 +8 -2
- package/es-modules/Series/ColorMapComposition.js +111 -0
- package/es-modules/Series/Column/ColumnSeries.js +10 -7
- 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/DataModifyComposition.js +1 -0
- package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +3 -1
- package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +5 -3
- 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 +13 -16
- 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 +196 -174
- 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 +29 -33
- 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 +4 -2
- package/es-modules/Series/Map/MapPoint.js +32 -7
- package/es-modules/Series/Map/MapSeries.js +298 -189
- package/es-modules/Series/MapBubble/MapBubblePoint.js +19 -25
- package/es-modules/Series/MapBubble/MapBubbleSeries.js +61 -2
- package/es-modules/Series/MapLine/MapLineSeries.js +18 -1
- package/es-modules/Series/MapPoint/MapPointPoint.js +6 -10
- package/es-modules/Series/MapPoint/MapPointSeries.js +50 -16
- package/es-modules/Series/Networkgraph/Networkgraph.js +3 -1
- package/es-modules/Series/NodesComposition.js +101 -49
- package/es-modules/Series/OHLC/OHLCPoint.js +3 -1
- package/es-modules/Series/OHLC/OHLCSeries.js +10 -1
- package/es-modules/Series/Organization/OrganizationPoint.js +71 -3
- package/es-modules/Series/Organization/OrganizationSeries.js +84 -28
- 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 +4 -2
- package/es-modules/Series/Pie/PiePoint.js +15 -6
- package/es-modules/Series/Pie/PieSeries.js +51 -37
- package/es-modules/Series/Pie3D/Pie3DPoint.js +3 -1
- package/es-modules/Series/Pie3D/Pie3DSeries.js +22 -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/SankeyColumnComposition.js +193 -0
- package/es-modules/Series/Sankey/SankeyPoint.js +40 -2
- package/es-modules/Series/Sankey/SankeySeries.js +35 -136
- package/es-modules/Series/Scatter/ScatterSeries.js +11 -6
- 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 +21 -5
- 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 +97 -87
- 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 +16 -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 +11 -8
- 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 +12 -3
- 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 +51 -43
- 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 +14 -0
- 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 +2 -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 +5 -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 +5 -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 +99 -98
- package/highcharts-3d.js.map +1 -1
- package/highcharts-3d.src.js +51 -21
- package/highcharts-gantt.js +811 -801
- package/highcharts-gantt.js.map +1 -1
- package/highcharts-gantt.src.js +2020 -1607
- package/highcharts-more.d.ts +10 -0
- package/highcharts-more.js +194 -194
- package/highcharts-more.js.map +1 -1
- package/highcharts-more.src.d.ts +10 -0
- package/highcharts-more.src.js +3512 -3364
- package/highcharts.d.ts +12336 -965
- package/highcharts.js +595 -586
- package/highcharts.js.map +1 -1
- package/highcharts.src.d.ts +12336 -965
- package/highcharts.src.js +1047 -665
- package/highmaps.js +763 -728
- package/highmaps.js.map +1 -1
- package/highmaps.src.js +4482 -2639
- package/highstock.js +798 -788
- package/highstock.js.map +1 -1
- package/highstock.src.js +1177 -739
- package/indicators/acceleration-bands.d.ts +1 -17
- package/indicators/acceleration-bands.js +11 -11
- package/indicators/acceleration-bands.js.map +1 -1
- package/indicators/acceleration-bands.src.d.ts +1 -17
- package/indicators/acceleration-bands.src.js +99 -100
- package/indicators/accumulation-distribution.js +5 -5
- package/indicators/accumulation-distribution.js.map +1 -1
- package/indicators/accumulation-distribution.src.js +11 -2
- package/indicators/ao.js +6 -6
- package/indicators/ao.js.map +1 -1
- package/indicators/ao.src.js +13 -4
- package/indicators/apo.js +5 -5
- package/indicators/apo.js.map +1 -1
- package/indicators/apo.src.js +11 -2
- 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 +99 -100
- 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 +99 -100
- package/indicators/atr.js +5 -5
- package/indicators/atr.js.map +1 -1
- package/indicators/atr.src.js +11 -2
- 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 +102 -103
- package/indicators/cci.js +5 -5
- package/indicators/cci.js.map +1 -1
- package/indicators/cci.src.js +11 -2
- package/indicators/chaikin.js +8 -8
- package/indicators/chaikin.js.map +1 -1
- package/indicators/chaikin.src.js +11 -2
- package/indicators/cmf.js +6 -6
- package/indicators/cmf.js.map +1 -1
- package/indicators/cmf.src.js +11 -2
- package/indicators/cmo.js +5 -5
- package/indicators/cmo.js.map +1 -1
- package/indicators/cmo.src.js +11 -2
- package/indicators/dema.js +5 -5
- package/indicators/dema.js.map +1 -1
- package/indicators/dema.src.js +11 -2
- package/indicators/disparity-index.js +6 -6
- package/indicators/disparity-index.js.map +1 -1
- package/indicators/disparity-index.src.js +11 -2
- package/indicators/dmi.js +12 -12
- package/indicators/dmi.js.map +1 -1
- package/indicators/dmi.src.js +109 -106
- package/indicators/dpo.js +5 -5
- package/indicators/dpo.js.map +1 -1
- package/indicators/dpo.src.js +11 -2
- package/indicators/ema.js +2 -1
- package/indicators/ema.js.map +1 -1
- package/indicators/ema.src.js +10 -1
- package/indicators/ichimoku-kinko-hyo.js +16 -16
- package/indicators/ichimoku-kinko-hyo.js.map +1 -1
- package/indicators/ichimoku-kinko-hyo.src.js +11 -2
- package/indicators/indicators-all.d.ts +1 -17
- package/indicators/indicators-all.js +198 -196
- package/indicators/indicators-all.js.map +1 -1
- package/indicators/indicators-all.src.d.ts +1 -17
- package/indicators/indicators-all.src.js +151 -129
- package/indicators/indicators.js +13 -12
- package/indicators/indicators.js.map +1 -1
- package/indicators/indicators.src.js +21 -5
- package/indicators/keltner-channels.d.ts +1 -17
- package/indicators/keltner-channels.js +11 -11
- package/indicators/keltner-channels.js.map +1 -1
- package/indicators/keltner-channels.src.d.ts +1 -17
- package/indicators/keltner-channels.src.js +99 -100
- package/indicators/klinger.js +14 -14
- package/indicators/klinger.js.map +1 -1
- package/indicators/klinger.src.js +99 -100
- package/indicators/macd.js +13 -11
- package/indicators/macd.js.map +1 -1
- package/indicators/macd.src.js +35 -14
- package/indicators/mfi.js +6 -6
- package/indicators/mfi.js.map +1 -1
- package/indicators/mfi.src.js +11 -2
- package/indicators/momentum.js +5 -5
- package/indicators/momentum.js.map +1 -1
- package/indicators/momentum.src.js +11 -2
- package/indicators/natr.js +5 -4
- package/indicators/natr.js.map +1 -1
- package/indicators/natr.src.js +11 -2
- package/indicators/obv.js +5 -5
- package/indicators/obv.js.map +1 -1
- package/indicators/obv.src.js +11 -2
- package/indicators/pivot-points.js +11 -11
- package/indicators/pivot-points.js.map +1 -1
- package/indicators/pivot-points.src.js +11 -2
- package/indicators/ppo.js +5 -5
- package/indicators/ppo.js.map +1 -1
- package/indicators/ppo.src.js +11 -2
- 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 +99 -100
- package/indicators/price-envelopes.js +8 -8
- package/indicators/price-envelopes.js.map +1 -1
- package/indicators/price-envelopes.src.js +11 -2
- package/indicators/psar.js +7 -6
- package/indicators/psar.js.map +1 -1
- package/indicators/psar.src.js +11 -2
- package/indicators/regressions.js +12 -12
- package/indicators/regressions.js.map +1 -1
- package/indicators/regressions.src.js +11 -2
- package/indicators/roc.js +5 -5
- package/indicators/roc.js.map +1 -1
- package/indicators/roc.src.js +11 -2
- package/indicators/rsi.js +6 -5
- package/indicators/rsi.js.map +1 -1
- package/indicators/rsi.src.js +11 -2
- package/indicators/slow-stochastic.js +5 -5
- package/indicators/slow-stochastic.js.map +1 -1
- package/indicators/slow-stochastic.src.js +11 -2
- 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 +99 -100
- package/indicators/supertrend.js +10 -10
- package/indicators/supertrend.js.map +1 -1
- package/indicators/supertrend.src.js +14 -5
- package/indicators/tema.js +6 -6
- package/indicators/tema.js.map +1 -1
- package/indicators/tema.src.js +11 -2
- package/indicators/trendline.js +5 -5
- package/indicators/trendline.js.map +1 -1
- package/indicators/trendline.src.js +11 -2
- package/indicators/trix.js +4 -4
- package/indicators/trix.js.map +1 -1
- package/indicators/trix.src.js +11 -2
- package/indicators/volume-by-price.js +17 -17
- package/indicators/volume-by-price.js.map +1 -1
- package/indicators/volume-by-price.src.js +11 -2
- package/indicators/vwap.js +5 -5
- package/indicators/vwap.js.map +1 -1
- package/indicators/vwap.src.js +11 -2
- package/indicators/williams-r.js +6 -5
- package/indicators/williams-r.js.map +1 -1
- package/indicators/williams-r.src.js +11 -2
- package/indicators/wma.js +5 -5
- package/indicators/wma.js.map +1 -1
- package/indicators/wma.src.js +11 -2
- package/indicators/zigzag.js +6 -6
- package/indicators/zigzag.js.map +1 -1
- package/indicators/zigzag.src.js +11 -2
- package/lib/jspdf.js +299 -184
- package/lib/jspdf.src.js +25266 -18067
- package/lib/svg2pdf.js +35 -31
- package/lib/svg2pdf.src.js +5721 -4179
- package/modules/accessibility.js +242 -237
- package/modules/accessibility.js.map +1 -1
- package/modules/accessibility.src.js +599 -390
- package/modules/annotations-advanced.js +192 -192
- package/modules/annotations-advanced.js.map +1 -1
- package/modules/annotations-advanced.src.js +96 -47
- package/modules/annotations.js +126 -126
- package/modules/annotations.js.map +1 -1
- package/modules/annotations.src.js +67 -25
- package/modules/arc-diagram.js +25 -0
- package/modules/arc-diagram.js.map +1 -0
- package/modules/arc-diagram.src.js +778 -0
- package/modules/arrow-symbols.js +4 -3
- package/modules/arrow-symbols.js.map +1 -1
- package/modules/arrow-symbols.src.js +11 -2
- package/modules/boost-canvas.js +16 -15
- package/modules/boost-canvas.js.map +1 -1
- package/modules/boost-canvas.src.js +22 -7
- package/modules/boost.js +81 -79
- package/modules/boost.js.map +1 -1
- package/modules/boost.src.js +90 -51
- package/modules/broken-axis.js +13 -13
- package/modules/broken-axis.js.map +1 -1
- package/modules/broken-axis.src.js +11 -2
- package/modules/bullet.js +9 -9
- package/modules/bullet.js.map +1 -1
- package/modules/bullet.src.js +12 -6
- package/modules/coloraxis.js +24 -24
- package/modules/coloraxis.js.map +1 -1
- package/modules/coloraxis.src.js +37 -11
- package/modules/current-date-indicator.js +5 -4
- package/modules/current-date-indicator.js.map +1 -1
- package/modules/current-date-indicator.src.js +12 -3
- package/modules/cylinder.js +11 -11
- package/modules/cylinder.js.map +1 -1
- package/modules/cylinder.src.js +11 -2
- package/modules/data.d.ts +12 -12
- package/modules/data.js +33 -33
- package/modules/data.js.map +1 -1
- package/modules/data.src.d.ts +12 -12
- package/modules/data.src.js +906 -846
- package/modules/datagrouping.js +21 -20
- package/modules/datagrouping.js.map +1 -1
- package/modules/datagrouping.src.js +19 -5
- package/modules/debugger.js +8 -7
- package/modules/debugger.js.map +1 -1
- package/modules/debugger.src.js +15 -2
- package/modules/dependency-wheel.js +12 -11
- package/modules/dependency-wheel.js.map +1 -1
- package/modules/dependency-wheel.src.js +14 -5
- package/modules/dotplot.js +6 -6
- package/modules/dotplot.js.map +1 -1
- package/modules/dotplot.src.js +11 -2
- package/modules/drag-panes.js +10 -10
- package/modules/drag-panes.js.map +1 -1
- package/modules/drag-panes.src.js +12 -3
- package/modules/draggable-points.js +35 -34
- package/modules/draggable-points.js.map +1 -1
- package/modules/draggable-points.src.js +20 -9
- package/modules/drilldown.d.ts +19 -0
- package/modules/drilldown.js +37 -25
- package/modules/drilldown.js.map +1 -1
- package/modules/drilldown.src.d.ts +19 -0
- package/modules/drilldown.src.js +1124 -108
- 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 +34 -13
- package/modules/export-data.js +24 -21
- package/modules/export-data.js.map +1 -1
- package/modules/export-data.src.js +87 -14
- package/modules/exporting.d.ts +8 -8
- package/modules/exporting.js +39 -39
- package/modules/exporting.js.map +1 -1
- package/modules/exporting.src.d.ts +8 -8
- package/modules/exporting.src.js +270 -135
- package/modules/full-screen.js +8 -7
- package/modules/full-screen.js.map +1 -1
- package/modules/full-screen.src.js +135 -58
- package/modules/funnel.js +12 -12
- package/modules/funnel.js.map +1 -1
- package/modules/funnel.src.js +13 -4
- package/modules/funnel3d.js +21 -21
- package/modules/funnel3d.js.map +1 -1
- package/modules/funnel3d.src.js +11 -2
- package/modules/gantt.js +218 -217
- package/modules/gantt.js.map +1 -1
- package/modules/gantt.src.js +983 -943
- package/modules/grid-axis.js +23 -23
- package/modules/grid-axis.js.map +1 -1
- package/modules/grid-axis.src.js +900 -890
- package/modules/heatmap.js +40 -39
- package/modules/heatmap.js.map +1 -1
- package/modules/heatmap.src.js +160 -113
- package/modules/heikinashi.js +8 -8
- package/modules/heikinashi.js.map +1 -1
- package/modules/heikinashi.src.js +11 -2
- package/modules/histogram-bellcurve.js +13 -13
- package/modules/histogram-bellcurve.js.map +1 -1
- package/modules/histogram-bellcurve.src.js +11 -2
- package/modules/hollowcandlestick.js +9 -9
- package/modules/hollowcandlestick.js.map +1 -1
- package/modules/hollowcandlestick.src.js +19 -10
- package/modules/item-series.js +12 -12
- package/modules/item-series.js.map +1 -1
- package/modules/item-series.src.js +11 -2
- package/modules/lollipop.js +7 -7
- package/modules/lollipop.js.map +1 -1
- package/modules/lollipop.src.js +12 -3
- package/modules/map.d.ts +80 -43
- package/modules/map.js +171 -144
- package/modules/map.js.map +1 -1
- package/modules/map.src.d.ts +80 -43
- package/modules/map.src.js +8292 -6822
- package/modules/marker-clusters.js +36 -36
- package/modules/marker-clusters.js.map +1 -1
- package/modules/marker-clusters.src.js +48 -28
- package/modules/networkgraph.d.ts +1 -12
- package/modules/networkgraph.js +46 -45
- package/modules/networkgraph.js.map +1 -1
- package/modules/networkgraph.src.d.ts +1 -12
- package/modules/networkgraph.src.js +127 -55
- package/modules/no-data-to-display.js +5 -5
- package/modules/no-data-to-display.js.map +1 -1
- package/modules/no-data-to-display.src.js +12 -3
- package/modules/offline-exporting.js +20 -18
- package/modules/offline-exporting.js.map +1 -1
- package/modules/offline-exporting.src.js +129 -28
- package/modules/oldie-polyfills.js +7 -7
- package/modules/oldie-polyfills.js.map +1 -1
- package/modules/oldie-polyfills.src.js +11 -2
- package/modules/oldie.js +30 -30
- package/modules/oldie.js.map +1 -1
- package/modules/oldie.src.js +13 -4
- package/modules/organization.js +16 -14
- package/modules/organization.js.map +1 -1
- package/modules/organization.src.js +168 -34
- package/modules/overlapping-datalabels.js +3 -2
- package/modules/overlapping-datalabels.js.map +1 -1
- package/modules/overlapping-datalabels.src.js +11 -2
- package/modules/parallel-coordinates.js +11 -11
- package/modules/parallel-coordinates.js.map +1 -1
- package/modules/parallel-coordinates.src.js +12 -3
- package/modules/pareto.js +7 -7
- package/modules/pareto.js.map +1 -1
- package/modules/pareto.src.js +11 -2
- package/modules/pathfinder.js +31 -31
- package/modules/pathfinder.js.map +1 -1
- package/modules/pathfinder.src.js +11 -2
- package/modules/pattern-fill.js +15 -14
- package/modules/pattern-fill.js.map +1 -1
- package/modules/pattern-fill.src.js +25 -3
- package/modules/price-indicator.js +5 -5
- package/modules/price-indicator.js.map +1 -1
- package/modules/price-indicator.src.js +11 -2
- package/modules/pyramid3d.js +4 -4
- package/modules/pyramid3d.js.map +1 -1
- package/modules/pyramid3d.src.js +11 -2
- package/modules/sankey.d.ts +1 -12
- package/modules/sankey.js +32 -29
- package/modules/sankey.js.map +1 -1
- package/modules/sankey.src.d.ts +1 -12
- package/modules/sankey.src.js +422 -207
- package/modules/series-label.js +18 -17
- package/modules/series-label.js.map +1 -1
- package/modules/series-label.src.js +482 -386
- 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 +10 -10
- package/modules/solid-gauge.js.map +1 -1
- package/modules/solid-gauge.src.js +15 -6
- package/modules/sonification.js +59 -59
- package/modules/sonification.js.map +1 -1
- package/modules/sonification.src.js +13 -8
- package/modules/static-scale.js +5 -4
- package/modules/static-scale.js.map +1 -1
- package/modules/static-scale.src.js +11 -2
- package/modules/stock-tools.js +167 -167
- package/modules/stock-tools.js.map +1 -1
- package/modules/stock-tools.src.js +118 -67
- package/modules/stock.js +205 -204
- package/modules/stock.js.map +1 -1
- package/modules/stock.src.js +141 -76
- package/modules/streamgraph.js +5 -4
- package/modules/streamgraph.js.map +1 -1
- package/modules/streamgraph.src.js +11 -2
- package/modules/sunburst.d.ts +3 -0
- package/modules/sunburst.js +73 -60
- package/modules/sunburst.js.map +1 -1
- package/modules/sunburst.src.d.ts +3 -0
- package/modules/sunburst.src.js +1391 -406
- package/modules/tilemap.js +17 -17
- package/modules/tilemap.js.map +1 -1
- package/modules/tilemap.src.js +11 -2
- package/modules/timeline.js +18 -18
- package/modules/timeline.js.map +1 -1
- package/modules/timeline.src.js +14 -5
- package/modules/treegrid.js +57 -56
- package/modules/treegrid.js.map +1 -1
- package/modules/treegrid.src.js +913 -892
- package/modules/treemap.d.ts +3 -0
- package/modules/treemap.js +54 -41
- package/modules/treemap.js.map +1 -1
- package/modules/treemap.src.d.ts +3 -0
- package/modules/treemap.src.js +1229 -255
- package/modules/variable-pie.js +9 -9
- package/modules/variable-pie.js.map +1 -1
- package/modules/variable-pie.src.js +11 -2
- package/modules/variwide.js +12 -12
- package/modules/variwide.js.map +1 -1
- package/modules/variwide.src.js +11 -2
- package/modules/vector.js +8 -7
- package/modules/vector.js.map +1 -1
- package/modules/vector.src.js +11 -2
- package/modules/venn.js +31 -31
- package/modules/venn.js.map +1 -1
- package/modules/venn.src.js +88 -105
- package/modules/windbarb.js +15 -15
- package/modules/windbarb.js.map +1 -1
- package/modules/windbarb.src.js +11 -2
- package/modules/wordcloud.js +23 -23
- package/modules/wordcloud.js.map +1 -1
- package/modules/wordcloud.src.js +92 -109
- package/modules/xrange.js +16 -16
- package/modules/xrange.js.map +1 -1
- package/modules/xrange.src.js +11 -2
- package/package.json +1 -1
- package/themes/avocado.js +4 -3
- package/themes/avocado.js.map +1 -1
- package/themes/avocado.src.js +11 -2
- package/themes/brand-dark.js +9 -8
- package/themes/brand-dark.js.map +1 -1
- package/themes/brand-dark.src.js +11 -2
- package/themes/brand-light.js +8 -8
- package/themes/brand-light.js.map +1 -1
- package/themes/brand-light.src.js +11 -2
- package/themes/dark-blue.js +9 -8
- package/themes/dark-blue.js.map +1 -1
- package/themes/dark-blue.src.js +11 -2
- package/themes/dark-green.js +9 -8
- package/themes/dark-green.js.map +1 -1
- package/themes/dark-green.src.js +11 -2
- package/themes/dark-unica.js +8 -7
- package/themes/dark-unica.js.map +1 -1
- package/themes/dark-unica.src.js +11 -2
- package/themes/gray.js +9 -8
- package/themes/gray.js.map +1 -1
- package/themes/gray.src.js +11 -2
- package/themes/grid-light.js +5 -4
- package/themes/grid-light.js.map +1 -1
- package/themes/grid-light.src.js +11 -2
- package/themes/grid.js +5 -5
- package/themes/grid.js.map +1 -1
- package/themes/grid.src.js +11 -2
- package/themes/high-contrast-dark.js +7 -7
- package/themes/high-contrast-dark.js.map +1 -1
- package/themes/high-contrast-dark.src.js +21 -12
- package/themes/high-contrast-light.js +3 -3
- package/themes/high-contrast-light.js.map +1 -1
- package/themes/high-contrast-light.src.js +21 -12
- package/themes/sand-signika.js +5 -5
- package/themes/sand-signika.js.map +1 -1
- package/themes/sand-signika.src.js +11 -2
- package/themes/skies.js +5 -5
- package/themes/skies.js.map +1 -1
- package/themes/skies.src.js +11 -2
- package/themes/sunset.js +3 -3
- package/themes/sunset.js.map +1 -1
- package/themes/sunset.src.js +11 -2
- package/es-modules/Extensions/Polar.js +0 -740
- package/es-modules/Maps/ProjectionDefinition.js +0 -9
- package/es-modules/Series/ColorMapMixin.js +0 -84
- package/es-modules/Series/DrawPointComposition.js +0 -111
package/highcharts.src.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Highcharts JS
|
|
2
|
+
* @license Highcharts JS v10.2.0 (2022-07-05)
|
|
3
3
|
*
|
|
4
4
|
* (c) 2009-2021 Torstein Honsi
|
|
5
5
|
*
|
|
6
6
|
* License: www.highcharts.com/license
|
|
7
7
|
*/
|
|
8
|
-
'use strict';
|
|
9
8
|
(function (root, factory) {
|
|
10
9
|
if (typeof module === 'object' && module.exports) {
|
|
11
10
|
factory['default'] = factory;
|
|
@@ -22,11 +21,21 @@
|
|
|
22
21
|
}
|
|
23
22
|
root.Highcharts = factory(root);
|
|
24
23
|
}
|
|
25
|
-
}(typeof window !== 'undefined' ? window : this, function (
|
|
24
|
+
}(typeof window !== 'undefined' ? window : this, function (window) {
|
|
25
|
+
'use strict';
|
|
26
26
|
var _modules = {};
|
|
27
27
|
function _registerModule(obj, path, args, fn) {
|
|
28
28
|
if (!obj.hasOwnProperty(path)) {
|
|
29
29
|
obj[path] = fn.apply(null, args);
|
|
30
|
+
|
|
31
|
+
if (typeof CustomEvent === 'function') {
|
|
32
|
+
window.dispatchEvent(
|
|
33
|
+
new CustomEvent(
|
|
34
|
+
'HighchartsModuleLoaded',
|
|
35
|
+
{ detail: { path: path, module: obj[path] }
|
|
36
|
+
})
|
|
37
|
+
);
|
|
38
|
+
}
|
|
30
39
|
}
|
|
31
40
|
}
|
|
32
41
|
_registerModule(_modules, 'Core/Globals.js', [], function () {
|
|
@@ -39,23 +48,6 @@
|
|
|
39
48
|
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
40
49
|
*
|
|
41
50
|
* */
|
|
42
|
-
/* *
|
|
43
|
-
*
|
|
44
|
-
* Constants
|
|
45
|
-
*
|
|
46
|
-
* */
|
|
47
|
-
/**
|
|
48
|
-
* @private
|
|
49
|
-
* @deprecated
|
|
50
|
-
* @todo Rename UMD argument `win` to `window`; move code to `Globals.win`
|
|
51
|
-
*/
|
|
52
|
-
var w = (typeof win !== 'undefined' ?
|
|
53
|
-
win :
|
|
54
|
-
typeof window !== 'undefined' ?
|
|
55
|
-
window :
|
|
56
|
-
{}
|
|
57
|
-
// eslint-disable-next-line node/no-unsupported-features/es-builtins
|
|
58
|
-
);
|
|
59
51
|
/* *
|
|
60
52
|
*
|
|
61
53
|
* Namespace
|
|
@@ -71,7 +63,10 @@
|
|
|
71
63
|
* Constants
|
|
72
64
|
*
|
|
73
65
|
* */
|
|
74
|
-
Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '
|
|
66
|
+
Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '10.2.0', Globals.win = (typeof window !== 'undefined' ?
|
|
67
|
+
window :
|
|
68
|
+
{}), // eslint-disable-line node/no-unsupported-features/es-builtins
|
|
69
|
+
Globals.doc = Globals.win.document, Globals.svg = (Globals.doc &&
|
|
75
70
|
Globals.doc.createElementNS &&
|
|
76
71
|
!!Globals.doc.createElementNS(Globals.SVG_NS, 'svg').createSVGRect), Globals.userAgent = (Globals.win.navigator && Globals.win.navigator.userAgent) || '', Globals.isChrome = Globals.userAgent.indexOf('Chrome') !== -1, Globals.isFirefox = Globals.userAgent.indexOf('Firefox') !== -1, Globals.isMS = /(edge|msie|trident)/i.test(Globals.userAgent) && !Globals.win.opera, Globals.isSafari = !Globals.isChrome && Globals.userAgent.indexOf('Safari') !== -1, Globals.isTouchDevice = /(Mobile|Android|Windows Phone)/.test(Globals.userAgent), Globals.isWebKit = Globals.userAgent.indexOf('AppleWebKit') !== -1, Globals.deg2rad = Math.PI * 2 / 360, Globals.hasBidiBug = (Globals.isFirefox &&
|
|
77
72
|
parseInt(Globals.userAgent.split('Firefox/')[1], 10) < 4 // issue #38
|
|
@@ -213,11 +208,11 @@
|
|
|
213
208
|
function error(code, stop, chart, params) {
|
|
214
209
|
var severity = stop ? 'Highcharts error' : 'Highcharts warning';
|
|
215
210
|
if (code === 32) {
|
|
216
|
-
code = severity + ": Deprecated member";
|
|
211
|
+
code = "" + severity + ": Deprecated member";
|
|
217
212
|
}
|
|
218
213
|
var isCode = isNumber(code);
|
|
219
214
|
var message = isCode ?
|
|
220
|
-
severity + " #" + code + ": www.highcharts.com/errors/" + code + "/" :
|
|
215
|
+
"" + severity + " #" + code + ": www.highcharts.com/errors/" + code + "/" :
|
|
221
216
|
code.toString();
|
|
222
217
|
var defaultHandler = function () {
|
|
223
218
|
if (stop) {
|
|
@@ -236,7 +231,7 @@
|
|
|
236
231
|
message += '?';
|
|
237
232
|
}
|
|
238
233
|
objectEach(params, function (value, key) {
|
|
239
|
-
additionalMessages_1 += "\n - "
|
|
234
|
+
additionalMessages_1 += "\n - ".concat(key, ": ").concat(value);
|
|
240
235
|
if (isCode) {
|
|
241
236
|
message += encodeURI(key) + '=' + encodeURI(value);
|
|
242
237
|
}
|
|
@@ -365,7 +360,9 @@
|
|
|
365
360
|
// Arrays, primitives and DOM nodes are copied directly
|
|
366
361
|
}
|
|
367
362
|
else if (isObject(newer[key]) ||
|
|
368
|
-
newer[key] !== older[key]
|
|
363
|
+
newer[key] !== older[key] ||
|
|
364
|
+
// If the newer key is explicitly undefined, keep it (#10525)
|
|
365
|
+
(key in newer && !(key in older))) {
|
|
369
366
|
result[key] = newer[key];
|
|
370
367
|
}
|
|
371
368
|
});
|
|
@@ -533,7 +530,7 @@
|
|
|
533
530
|
* @param {Highcharts.HTMLDOMElement|Highcharts.SVGDOMElement} elem
|
|
534
531
|
* The DOM element to receive the attribute(s).
|
|
535
532
|
*
|
|
536
|
-
* @param {string|Highcharts.HTMLAttributes|Highcharts.SVGAttributes} [
|
|
533
|
+
* @param {string|Highcharts.HTMLAttributes|Highcharts.SVGAttributes} [keyOrAttribs]
|
|
537
534
|
* The property or an object of key-value pairs.
|
|
538
535
|
*
|
|
539
536
|
* @param {number|string} [value]
|
|
@@ -542,33 +539,36 @@
|
|
|
542
539
|
* @return {string|null|undefined}
|
|
543
540
|
* When used as a getter, return the value.
|
|
544
541
|
*/
|
|
545
|
-
function attr(elem,
|
|
542
|
+
function attr(elem, keyOrAttribs, value) {
|
|
543
|
+
var isGetter = isString(keyOrAttribs) && !defined(value);
|
|
546
544
|
var ret;
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
545
|
+
var attrSingle = function (value,
|
|
546
|
+
key) {
|
|
547
|
+
// Set the value
|
|
548
|
+
if (defined(value)) {
|
|
549
|
+
elem.setAttribute(key,
|
|
550
|
+
value);
|
|
551
|
+
// Get the value
|
|
552
|
+
}
|
|
553
|
+
else if (isGetter) {
|
|
554
|
+
ret = elem.getAttribute(key);
|
|
556
555
|
// IE7 and below cannot get class through getAttribute (#7850)
|
|
557
|
-
if (!ret &&
|
|
558
|
-
ret = elem.getAttribute(
|
|
556
|
+
if (!ret && key === 'class') {
|
|
557
|
+
ret = elem.getAttribute(key + 'Name');
|
|
559
558
|
}
|
|
559
|
+
// Remove the value
|
|
560
560
|
}
|
|
561
|
-
|
|
561
|
+
else {
|
|
562
|
+
elem.removeAttribute(key);
|
|
563
|
+
}
|
|
564
|
+
};
|
|
565
|
+
// If keyOrAttribs is a string
|
|
566
|
+
if (isString(keyOrAttribs)) {
|
|
567
|
+
attrSingle(value, keyOrAttribs);
|
|
568
|
+
// Else if keyOrAttribs is defined, it is a hash of key/value pairs
|
|
562
569
|
}
|
|
563
570
|
else {
|
|
564
|
-
objectEach(
|
|
565
|
-
if (defined(val)) {
|
|
566
|
-
elem.setAttribute(key, val);
|
|
567
|
-
}
|
|
568
|
-
else {
|
|
569
|
-
elem.removeAttribute(key);
|
|
570
|
-
}
|
|
571
|
-
});
|
|
571
|
+
objectEach(keyOrAttribs, attrSingle);
|
|
572
572
|
}
|
|
573
573
|
return ret;
|
|
574
574
|
}
|
|
@@ -619,10 +619,8 @@
|
|
|
619
619
|
*
|
|
620
620
|
* @function Highcharts.clearTimeout
|
|
621
621
|
*
|
|
622
|
-
* @param {number} id
|
|
623
|
-
*
|
|
624
|
-
*
|
|
625
|
-
* @return {void}
|
|
622
|
+
* @param {number|undefined} id
|
|
623
|
+
* Id of a timeout.
|
|
626
624
|
*/
|
|
627
625
|
function internalClearTimeout(id) {
|
|
628
626
|
if (defined(id)) {
|
|
@@ -692,9 +690,8 @@
|
|
|
692
690
|
*/
|
|
693
691
|
function css(el, styles) {
|
|
694
692
|
if (H.isMS && !H.svg) { // #2686
|
|
695
|
-
if (styles &&
|
|
696
|
-
styles.filter =
|
|
697
|
-
'alpha(opacity=' + (styles.opacity * 100) + ')';
|
|
693
|
+
if (styles && defined(styles.opacity)) {
|
|
694
|
+
styles.filter = "alpha(opacity=".concat(styles.opacity * 100, ")");
|
|
698
695
|
}
|
|
699
696
|
}
|
|
700
697
|
extend(el.style, styles);
|
|
@@ -887,7 +884,7 @@
|
|
|
887
884
|
var i,
|
|
888
885
|
retInterval = interval;
|
|
889
886
|
// round to a tenfold of 1, 2, 2.5 or 5
|
|
890
|
-
magnitude = pick(magnitude,
|
|
887
|
+
magnitude = pick(magnitude, getMagnitude(interval));
|
|
891
888
|
var normalized = interval / magnitude;
|
|
892
889
|
// multiples for a linear scale
|
|
893
890
|
if (!multiples) {
|
|
@@ -1417,7 +1414,7 @@
|
|
|
1417
1414
|
}, function (val, key) {
|
|
1418
1415
|
H[key] = function (arr) {
|
|
1419
1416
|
var _a;
|
|
1420
|
-
error(32, false, void 0, (_a = {}, _a["Highcharts."
|
|
1417
|
+
error(32, false, void 0, (_a = {}, _a["Highcharts.".concat(key)] = "use Array.".concat(val), _a));
|
|
1421
1418
|
return Array.prototype[val].apply(arr, [].slice.call(arguments, 1));
|
|
1422
1419
|
};
|
|
1423
1420
|
});
|
|
@@ -2173,19 +2170,22 @@
|
|
|
2173
2170
|
*/
|
|
2174
2171
|
var ChartDefaults = {
|
|
2175
2172
|
/**
|
|
2176
|
-
* Default `mapData` for all series
|
|
2177
|
-
|
|
2178
|
-
*
|
|
2179
|
-
|
|
2173
|
+
* Default `mapData` for all series,
|
|
2174
|
+
in terms of a GeoJSON or TopoJSON
|
|
2175
|
+
* object. If set to a string,
|
|
2176
|
+
it functions as an index into the
|
|
2177
|
+
* `Highcharts.maps` array.
|
|
2180
2178
|
*
|
|
2181
|
-
*
|
|
2179
|
+
* For picking out individual shapes and geometries to use for each series
|
|
2180
|
+
* of the map,
|
|
2181
|
+
see [series.mapData](#series.map.mapData).
|
|
2182
2182
|
*
|
|
2183
2183
|
* @sample maps/demo/geojson
|
|
2184
|
-
* Loading
|
|
2184
|
+
* Loading GeoJSON data
|
|
2185
2185
|
* @sample maps/chart/topojson
|
|
2186
|
-
* Loading
|
|
2186
|
+
* Loading TopoJSON data
|
|
2187
2187
|
*
|
|
2188
|
-
* @type {string|Array<*>|Highcharts.GeoJSON}
|
|
2188
|
+
* @type {string|Array<*>|Highcharts.GeoJSON|Highcharts.TopoJSON}
|
|
2189
2189
|
* @since 5.0.0
|
|
2190
2190
|
* @product highmaps
|
|
2191
2191
|
* @apioption chart.map
|
|
@@ -2200,7 +2200,7 @@
|
|
|
2200
2200
|
* @apioption chart.mapTransforms
|
|
2201
2201
|
*/
|
|
2202
2202
|
/**
|
|
2203
|
-
* When using multiple
|
|
2203
|
+
* When using multiple axes,
|
|
2204
2204
|
the ticks of two or more opposite axes
|
|
2205
2205
|
* will automatically be aligned by adding ticks to the axis or axes
|
|
2206
2206
|
* with the least ticks,
|
|
@@ -2211,8 +2211,8 @@
|
|
|
2211
2211
|
it's a good idea to hide them for the secondary
|
|
2212
2212
|
* axis by setting `gridLineWidth` to 0.
|
|
2213
2213
|
*
|
|
2214
|
-
* If `startOnTick` or `endOnTick` in
|
|
2215
|
-
* then the `alignTicks ` will be disabled for the
|
|
2214
|
+
* If `startOnTick` or `endOnTick` in the axis options are set to false,
|
|
2215
|
+
* then the `alignTicks ` will be disabled for the axis.
|
|
2216
2216
|
*
|
|
2217
2217
|
* Disabled for logarithmic axes.
|
|
2218
2218
|
*
|
|
@@ -2230,6 +2230,31 @@
|
|
|
2230
2230
|
* @product highcharts highstock gantt
|
|
2231
2231
|
* @apioption chart.alignTicks
|
|
2232
2232
|
*/
|
|
2233
|
+
/**
|
|
2234
|
+
* When using multiple axes,
|
|
2235
|
+
align the thresholds. When this is true,
|
|
2236
|
+
other
|
|
2237
|
+
* ticks will also be aligned.
|
|
2238
|
+
*
|
|
2239
|
+
* Note that for line series and some other series types,
|
|
2240
|
+
the `threshold`
|
|
2241
|
+
* option is set to `null` by default. This will in turn cause their y-axis
|
|
2242
|
+
* to not have a threshold. In order to avoid that,
|
|
2243
|
+
set the series
|
|
2244
|
+
* `threshold` to 0 or another number.
|
|
2245
|
+
*
|
|
2246
|
+
* If `startOnTick` or `endOnTick` in the axis options are set to false,
|
|
2247
|
+
or
|
|
2248
|
+
* if the axis is logarithmic,
|
|
2249
|
+
the threshold will not be aligned.
|
|
2250
|
+
*
|
|
2251
|
+
* @sample {highcharts} highcharts/chart/alignthresholds/ Set to true
|
|
2252
|
+
*
|
|
2253
|
+
* @since 10.0.0
|
|
2254
|
+
* @product highcharts highstock gantt
|
|
2255
|
+
* @apioption chart.alignThresholds
|
|
2256
|
+
*/
|
|
2257
|
+
alignThresholds: false,
|
|
2233
2258
|
/**
|
|
2234
2259
|
* Set the overall animation for all chart updating. Animation can be
|
|
2235
2260
|
* disabled throughout the chart by setting it to false here. It can
|
|
@@ -2654,6 +2679,17 @@
|
|
|
2654
2679
|
* @since 5.0.0
|
|
2655
2680
|
*/
|
|
2656
2681
|
colorCount: 10,
|
|
2682
|
+
/**
|
|
2683
|
+
* By default, (because of memory and performance reasons) the chart does
|
|
2684
|
+
* not copy the data but keeps it as a reference. In some cases, this might
|
|
2685
|
+
* result in mutating the original data source. In order to prevent that,
|
|
2686
|
+
* set that property to false. Please note that changing that might decrease
|
|
2687
|
+
* performance, especially with bigger sets of data.
|
|
2688
|
+
*
|
|
2689
|
+
* @type {boolean}
|
|
2690
|
+
* @since 10.1.0
|
|
2691
|
+
*/
|
|
2692
|
+
allowMutatingData: true,
|
|
2657
2693
|
/**
|
|
2658
2694
|
* Alias of `type`.
|
|
2659
2695
|
*
|
|
@@ -3066,9 +3102,10 @@
|
|
|
3066
3102
|
* Y
|
|
3067
3103
|
* @sample {highstock} stock/chart/zoomtype-xy/
|
|
3068
3104
|
* Xy
|
|
3105
|
+
* @sample {highmaps} maps/chart/zoomtype-xy/
|
|
3106
|
+
* Map with selection zoom
|
|
3069
3107
|
*
|
|
3070
3108
|
* @type {string}
|
|
3071
|
-
* @product highcharts highstock gantt
|
|
3072
3109
|
* @validvalue ["x", "y", "xy"]
|
|
3073
3110
|
* @apioption chart.zoomType
|
|
3074
3111
|
*/
|
|
@@ -3137,7 +3174,7 @@
|
|
|
3137
3174
|
*
|
|
3138
3175
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
3139
3176
|
*/
|
|
3140
|
-
borderColor: "#335cad" /* highlightColor80 */,
|
|
3177
|
+
borderColor: "#335cad" /* Palette.highlightColor80 */,
|
|
3141
3178
|
/**
|
|
3142
3179
|
* The pixel width of the outer chart border.
|
|
3143
3180
|
*
|
|
@@ -3176,7 +3213,7 @@
|
|
|
3176
3213
|
*
|
|
3177
3214
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
3178
3215
|
*/
|
|
3179
|
-
backgroundColor: "#ffffff" /* backgroundColor */,
|
|
3216
|
+
backgroundColor: "#ffffff" /* Palette.backgroundColor */,
|
|
3180
3217
|
/**
|
|
3181
3218
|
* The background color or gradient for the plot area.
|
|
3182
3219
|
*
|
|
@@ -3233,7 +3270,7 @@
|
|
|
3233
3270
|
*
|
|
3234
3271
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
3235
3272
|
*/
|
|
3236
|
-
plotBorderColor: "#cccccc" /* neutralColor20 */
|
|
3273
|
+
plotBorderColor: "#cccccc" /* Palette.neutralColor20 */
|
|
3237
3274
|
};
|
|
3238
3275
|
/* *
|
|
3239
3276
|
*
|
|
@@ -3412,7 +3449,7 @@
|
|
|
3412
3449
|
return 'rgb(' + rgba[0] + ',' + rgba[1] + ',' + rgba[2] + ')';
|
|
3413
3450
|
}
|
|
3414
3451
|
if (format === 'a') {
|
|
3415
|
-
return ""
|
|
3452
|
+
return "".concat(rgba[3]);
|
|
3416
3453
|
}
|
|
3417
3454
|
return 'rgba(' + rgba.join(',') + ')';
|
|
3418
3455
|
}
|
|
@@ -3908,13 +3945,12 @@
|
|
|
3908
3945
|
*/
|
|
3909
3946
|
Time.prototype.update = function (options) {
|
|
3910
3947
|
var useUTC = pick(options && options.useUTC,
|
|
3911
|
-
true)
|
|
3912
|
-
time = this;
|
|
3948
|
+
true);
|
|
3913
3949
|
this.options = options = merge(true, this.options || {}, options);
|
|
3914
3950
|
// Allow using a different Date class
|
|
3915
3951
|
this.Date = options.Date || win.Date || Date;
|
|
3916
3952
|
this.useUTC = useUTC;
|
|
3917
|
-
this.timezoneOffset = (useUTC && options.timezoneOffset);
|
|
3953
|
+
this.timezoneOffset = (useUTC && options.timezoneOffset) || void 0;
|
|
3918
3954
|
this.getTimezoneOffset = this.timezoneOffsetFunction();
|
|
3919
3955
|
/*
|
|
3920
3956
|
* The time object has options allowing for variable time zones, meaning
|
|
@@ -4351,17 +4387,16 @@
|
|
|
4351
4387
|
hour: 6,
|
|
4352
4388
|
day: 3
|
|
4353
4389
|
};
|
|
4354
|
-
var
|
|
4355
|
-
|
|
4356
|
-
lastN =
|
|
4357
|
-
|
|
4358
|
-
|
|
4359
|
-
|
|
4360
|
-
|
|
4361
|
-
|
|
4362
|
-
|
|
4363
|
-
|
|
4364
|
-
n = 'week';
|
|
4390
|
+
var n = 'millisecond',
|
|
4391
|
+
// for sub-millisecond data, #4223
|
|
4392
|
+
lastN = n;
|
|
4393
|
+
for (n in timeUnits) { // eslint-disable-line guard-for-in
|
|
4394
|
+
// If the range is exactly one week and we're looking at a
|
|
4395
|
+
// Sunday/Monday, go for the week format
|
|
4396
|
+
if (range === timeUnits.week &&
|
|
4397
|
+
+this.dateFormat('%w', timestamp) === startOfWeek &&
|
|
4398
|
+
dateStr.substr(6) === blank.substr(6)) {
|
|
4399
|
+
n = 'week';
|
|
4365
4400
|
break;
|
|
4366
4401
|
}
|
|
4367
4402
|
// The first format that is too great for the range
|
|
@@ -4381,10 +4416,7 @@
|
|
|
4381
4416
|
lastN = n;
|
|
4382
4417
|
}
|
|
4383
4418
|
}
|
|
4384
|
-
|
|
4385
|
-
format = this.resolveDTLFormat(dateTimeLabelFormats[n]).main;
|
|
4386
|
-
}
|
|
4387
|
-
return format;
|
|
4419
|
+
return this.resolveDTLFormat(dateTimeLabelFormats[n]).main;
|
|
4388
4420
|
};
|
|
4389
4421
|
return Time;
|
|
4390
4422
|
}());
|
|
@@ -5341,7 +5373,7 @@
|
|
|
5341
5373
|
/**
|
|
5342
5374
|
* @ignore-option
|
|
5343
5375
|
*/
|
|
5344
|
-
color: "#333333" /* neutralColor80 */
|
|
5376
|
+
color: "#333333" /* Palette.neutralColor80 */
|
|
5345
5377
|
}
|
|
5346
5378
|
},
|
|
5347
5379
|
/**
|
|
@@ -5621,7 +5653,7 @@
|
|
|
5621
5653
|
*
|
|
5622
5654
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
5623
5655
|
*/
|
|
5624
|
-
borderColor: "#999999" /* neutralColor40 */,
|
|
5656
|
+
borderColor: "#999999" /* Palette.neutralColor40 */,
|
|
5625
5657
|
/**
|
|
5626
5658
|
* The border corner radius of the legend.
|
|
5627
5659
|
*
|
|
@@ -5715,7 +5747,7 @@
|
|
|
5715
5747
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
5716
5748
|
* @since 2.2.4
|
|
5717
5749
|
*/
|
|
5718
|
-
activeColor: "#003399" /* highlightColor100 */,
|
|
5750
|
+
activeColor: "#003399" /* Palette.highlightColor100 */,
|
|
5719
5751
|
/**
|
|
5720
5752
|
* The color of the inactive up or down arrow in the legend page
|
|
5721
5753
|
* navigation. .
|
|
@@ -5731,7 +5763,7 @@
|
|
|
5731
5763
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
5732
5764
|
* @since 2.2.4
|
|
5733
5765
|
*/
|
|
5734
|
-
inactiveColor: "#cccccc" /* neutralColor20 */
|
|
5766
|
+
inactiveColor: "#cccccc" /* Palette.neutralColor20 */
|
|
5735
5767
|
},
|
|
5736
5768
|
/**
|
|
5737
5769
|
* The inner padding of the legend box.
|
|
@@ -5807,7 +5839,7 @@
|
|
|
5807
5839
|
/**
|
|
5808
5840
|
* @ignore
|
|
5809
5841
|
*/
|
|
5810
|
-
color: "#333333" /* neutralColor80 */,
|
|
5842
|
+
color: "#333333" /* Palette.neutralColor80 */,
|
|
5811
5843
|
/**
|
|
5812
5844
|
* @ignore
|
|
5813
5845
|
*/
|
|
@@ -5845,7 +5877,7 @@
|
|
|
5845
5877
|
/**
|
|
5846
5878
|
* @ignore
|
|
5847
5879
|
*/
|
|
5848
|
-
color: "#000000" /* neutralColor100 */
|
|
5880
|
+
color: "#000000" /* Palette.neutralColor100 */
|
|
5849
5881
|
},
|
|
5850
5882
|
/**
|
|
5851
5883
|
* CSS styles for each legend item when the corresponding series or
|
|
@@ -5866,7 +5898,7 @@
|
|
|
5866
5898
|
/**
|
|
5867
5899
|
* @ignore
|
|
5868
5900
|
*/
|
|
5869
|
-
color: "#cccccc" /* neutralColor20 */
|
|
5901
|
+
color: "#cccccc" /* Palette.neutralColor20 */
|
|
5870
5902
|
},
|
|
5871
5903
|
/**
|
|
5872
5904
|
* Whether to apply a drop shadow to the legend. A `backgroundColor`
|
|
@@ -6170,7 +6202,7 @@
|
|
|
6170
6202
|
/**
|
|
6171
6203
|
* @ignore
|
|
6172
6204
|
*/
|
|
6173
|
-
backgroundColor: "#ffffff" /* backgroundColor */,
|
|
6205
|
+
backgroundColor: "#ffffff" /* Palette.backgroundColor */,
|
|
6174
6206
|
/**
|
|
6175
6207
|
* @ignore
|
|
6176
6208
|
*/
|
|
@@ -6376,18 +6408,20 @@
|
|
|
6376
6408
|
* @apioption tooltip.pointFormatter
|
|
6377
6409
|
*/
|
|
6378
6410
|
/**
|
|
6379
|
-
* A callback function to place the tooltip in a
|
|
6411
|
+
* A callback function to place the tooltip in a custom position. The
|
|
6380
6412
|
* callback receives three parameters: `labelWidth`, `labelHeight` and
|
|
6381
6413
|
* `point`, where point contains values for `plotX` and `plotY` telling
|
|
6382
6414
|
* where the reference point is in the plot area. Add `chart.plotLeft`
|
|
6383
6415
|
* and `chart.plotTop` to get the full coordinates.
|
|
6384
6416
|
*
|
|
6417
|
+
* To find the actual hovered `Point` instance, use
|
|
6418
|
+
* `this.chart.hoverPoint`. For shared or split tooltips, all the hover
|
|
6419
|
+
* points are available in `this.chart.hoverPoints`.
|
|
6420
|
+
*
|
|
6385
6421
|
* Since v7, when [tooltip.split](#tooltip.split) option is enabled,
|
|
6386
6422
|
* positioner is called for each of the boxes separately, including
|
|
6387
6423
|
* xAxis header. xAxis header is not a point, instead `point` argument
|
|
6388
|
-
* contains info:
|
|
6389
|
-
* `{ plotX: Number, plotY: Number, isHeader: Boolean }`
|
|
6390
|
-
*
|
|
6424
|
+
* contains info: `{ plotX: Number, plotY: Number, isHeader: Boolean }`
|
|
6391
6425
|
*
|
|
6392
6426
|
* The return should be an object containing x and y values, for example
|
|
6393
6427
|
* `{ x: 100, y: 100 }`.
|
|
@@ -6730,6 +6764,8 @@
|
|
|
6730
6764
|
*
|
|
6731
6765
|
* @sample {highcharts} highcharts/tooltip/pointformat/
|
|
6732
6766
|
* A different point format with value suffix
|
|
6767
|
+
* @sample {highcharts|highstock} highcharts/tooltip/pointformat-extra-information/
|
|
6768
|
+
* Show extra information about points in the tooltip
|
|
6733
6769
|
* @sample {highmaps} maps/tooltip/format/
|
|
6734
6770
|
* Format demo
|
|
6735
6771
|
*
|
|
@@ -6761,7 +6797,7 @@
|
|
|
6761
6797
|
*
|
|
6762
6798
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
6763
6799
|
*/
|
|
6764
|
-
backgroundColor: color("#f7f7f7" /* neutralColor3 */)
|
|
6800
|
+
backgroundColor: color("#f7f7f7" /* Palette.neutralColor3 */)
|
|
6765
6801
|
// @todo: Disallow undefined as input for colors
|
|
6766
6802
|
.setOpacity(0.85).get(),
|
|
6767
6803
|
/**
|
|
@@ -6824,7 +6860,7 @@
|
|
|
6824
6860
|
*/
|
|
6825
6861
|
style: {
|
|
6826
6862
|
/** @internal */
|
|
6827
|
-
color: "#333333" /* neutralColor80 */,
|
|
6863
|
+
color: "#333333" /* Palette.neutralColor80 */,
|
|
6828
6864
|
/** @internal */
|
|
6829
6865
|
cursor: 'default',
|
|
6830
6866
|
/** @internal */
|
|
@@ -6939,7 +6975,7 @@
|
|
|
6939
6975
|
/** @internal */
|
|
6940
6976
|
cursor: 'pointer',
|
|
6941
6977
|
/** @internal */
|
|
6942
|
-
color: "#999999" /* neutralColor40 */,
|
|
6978
|
+
color: "#999999" /* Palette.neutralColor40 */,
|
|
6943
6979
|
/** @internal */
|
|
6944
6980
|
fontSize: '9px'
|
|
6945
6981
|
},
|
|
@@ -7413,7 +7449,7 @@
|
|
|
7413
7449
|
curAnim = options.curAnim;
|
|
7414
7450
|
var ret,
|
|
7415
7451
|
done;
|
|
7416
|
-
if (elem.attr && !elem.element) { // #2616, element is destroyed
|
|
7452
|
+
if ((elem.attr) && !elem.element) { // #2616, element is destroyed
|
|
7417
7453
|
ret = false;
|
|
7418
7454
|
}
|
|
7419
7455
|
else if (gotoEnd || t >= duration + this.startTime) {
|
|
@@ -7841,6 +7877,7 @@
|
|
|
7841
7877
|
win = H.win;
|
|
7842
7878
|
var attr = U.attr,
|
|
7843
7879
|
createElement = U.createElement,
|
|
7880
|
+
css = U.css,
|
|
7844
7881
|
error = U.error,
|
|
7845
7882
|
isFunction = U.isFunction,
|
|
7846
7883
|
isString = U.isString,
|
|
@@ -7925,12 +7962,26 @@
|
|
|
7925
7962
|
valid = isString(val) && AST.allowedReferences.some(function (ref) { return val.indexOf(ref) === 0; });
|
|
7926
7963
|
}
|
|
7927
7964
|
if (!valid) {
|
|
7928
|
-
error(
|
|
7965
|
+
error(33, false, void 0, {
|
|
7966
|
+
'Invalid attribute in config': "".concat(key)
|
|
7967
|
+
});
|
|
7929
7968
|
delete attributes[key];
|
|
7930
7969
|
}
|
|
7931
7970
|
});
|
|
7932
7971
|
return attributes;
|
|
7933
7972
|
};
|
|
7973
|
+
AST.parseStyle = function (style) {
|
|
7974
|
+
return style
|
|
7975
|
+
.split(';')
|
|
7976
|
+
.reduce(function (styles, line) {
|
|
7977
|
+
var pair = line.split(':').map(function (s) { return s.trim(); }),
|
|
7978
|
+
key = pair.shift();
|
|
7979
|
+
if (key && pair.length) {
|
|
7980
|
+
styles[key.replace(/-([a-z])/g, function (g) { return g[1].toUpperCase(); })] = pair.join(':'); // #17146
|
|
7981
|
+
}
|
|
7982
|
+
return styles;
|
|
7983
|
+
}, {});
|
|
7984
|
+
};
|
|
7934
7985
|
/**
|
|
7935
7986
|
* Utility function to set html content for an element by passing in a
|
|
7936
7987
|
* markup string. The markup is safely parsed by the AST class to avoid
|
|
@@ -7986,12 +8037,15 @@
|
|
|
7986
8037
|
var textNode = item.textContent ?
|
|
7987
8038
|
H.doc.createTextNode(item.textContent) :
|
|
7988
8039
|
void 0;
|
|
8040
|
+
// Whether to ignore the AST filtering totally, #15345
|
|
8041
|
+
var bypassHTMLFiltering = AST.bypassHTMLFiltering;
|
|
7989
8042
|
var node;
|
|
7990
8043
|
if (tagName) {
|
|
7991
8044
|
if (tagName === '#text') {
|
|
7992
8045
|
node = textNode;
|
|
7993
8046
|
}
|
|
7994
|
-
else if (AST.allowedTags.indexOf(tagName) !== -1
|
|
8047
|
+
else if (AST.allowedTags.indexOf(tagName) !== -1 ||
|
|
8048
|
+
bypassHTMLFiltering) {
|
|
7995
8049
|
var NS = tagName === 'svg' ?
|
|
7996
8050
|
SVG_NS :
|
|
7997
8051
|
(subParent.namespaceURI || SVG_NS);
|
|
@@ -8004,11 +8058,17 @@
|
|
|
8004
8058
|
if (key !== 'tagName' &&
|
|
8005
8059
|
key !== 'attributes' &&
|
|
8006
8060
|
key !== 'children' &&
|
|
8061
|
+
key !== 'style' &&
|
|
8007
8062
|
key !== 'textContent') {
|
|
8008
8063
|
attributes_1[key] = val;
|
|
8009
8064
|
}
|
|
8010
8065
|
});
|
|
8011
|
-
attr(element,
|
|
8066
|
+
attr(element, bypassHTMLFiltering ?
|
|
8067
|
+
attributes_1 :
|
|
8068
|
+
AST.filterUserAttributes(attributes_1));
|
|
8069
|
+
if (item.style) {
|
|
8070
|
+
css(element, item.style);
|
|
8071
|
+
}
|
|
8012
8072
|
// Add text content
|
|
8013
8073
|
if (textNode) {
|
|
8014
8074
|
element.appendChild(textNode);
|
|
@@ -8018,8 +8078,9 @@
|
|
|
8018
8078
|
node = element;
|
|
8019
8079
|
}
|
|
8020
8080
|
else {
|
|
8021
|
-
error(
|
|
8022
|
-
tagName
|
|
8081
|
+
error(33, false, void 0, {
|
|
8082
|
+
'Invalid tagName in config': tagName
|
|
8083
|
+
});
|
|
8023
8084
|
}
|
|
8024
8085
|
}
|
|
8025
8086
|
// Add to the tree
|
|
@@ -8047,7 +8108,11 @@
|
|
|
8047
8108
|
*/
|
|
8048
8109
|
AST.prototype.parseMarkup = function (markup) {
|
|
8049
8110
|
var nodes = [];
|
|
8050
|
-
markup = markup
|
|
8111
|
+
markup = markup
|
|
8112
|
+
.trim()
|
|
8113
|
+
// The style attribute throws a warning when parsing when CSP is
|
|
8114
|
+
// enabled (#6884), so use an alias and pick it up below
|
|
8115
|
+
.replace(/ style="/g, ' data-style="');
|
|
8051
8116
|
var doc;
|
|
8052
8117
|
if (hasValidDOMParser) {
|
|
8053
8118
|
doc = new DOMParser().parseFromString(trustedTypesPolicy ?
|
|
@@ -8074,7 +8139,12 @@
|
|
|
8074
8139
|
if (parsedAttributes) {
|
|
8075
8140
|
var attributes_2 = {};
|
|
8076
8141
|
[].forEach.call(parsedAttributes, function (attrib) {
|
|
8077
|
-
|
|
8142
|
+
if (attrib.name === 'data-style') {
|
|
8143
|
+
astNode.style = AST.parseStyle(attrib.value);
|
|
8144
|
+
}
|
|
8145
|
+
else {
|
|
8146
|
+
attributes_2[attrib.name] = attrib.value;
|
|
8147
|
+
}
|
|
8078
8148
|
});
|
|
8079
8149
|
astNode.attributes = attributes_2;
|
|
8080
8150
|
}
|
|
@@ -8278,6 +8348,34 @@
|
|
|
8278
8348
|
'#text'
|
|
8279
8349
|
];
|
|
8280
8350
|
AST.emptyHTML = emptyHTML;
|
|
8351
|
+
/**
|
|
8352
|
+
* Allow all custom SVG and HTML attributes, references and tags (together
|
|
8353
|
+
* with potentially harmful ones) to be added to the DOM from the chart
|
|
8354
|
+
* configuration. In other words, disable the the allow-listing which is the
|
|
8355
|
+
* primary functionality of the AST.
|
|
8356
|
+
*
|
|
8357
|
+
* WARNING: Setting this property to `true` while allowing untrusted user
|
|
8358
|
+
* data in the chart configuration will expose your application to XSS
|
|
8359
|
+
* security risks!
|
|
8360
|
+
*
|
|
8361
|
+
* Note that in case you want to allow a known set of tags or attributes,
|
|
8362
|
+
* you should allow-list them instead of disabling the filtering totally.
|
|
8363
|
+
* See [allowedAttributes](Highcharts.AST#.allowedAttributes),
|
|
8364
|
+
* [allowedReferences](Highcharts.AST#.allowedReferences) and
|
|
8365
|
+
* [allowedTags](Highcharts.AST#.allowedTags). The `bypassHTMLFiltering`
|
|
8366
|
+
* setting is intended only for those cases where allow-listing is not
|
|
8367
|
+
* practical, and the chart configuration already comes from a secure
|
|
8368
|
+
* source.
|
|
8369
|
+
*
|
|
8370
|
+
* @example
|
|
8371
|
+
* // Allow all custom attributes, references and tags (disable DOM XSS
|
|
8372
|
+
* // filtering)
|
|
8373
|
+
* Highcharts.AST.bypassHTMLFiltering = true;
|
|
8374
|
+
*
|
|
8375
|
+
* @name Highcharts.AST.bypassHTMLFiltering
|
|
8376
|
+
* @static
|
|
8377
|
+
*/
|
|
8378
|
+
AST.bypassHTMLFiltering = false;
|
|
8281
8379
|
return AST;
|
|
8282
8380
|
}());
|
|
8283
8381
|
/* *
|
|
@@ -9121,7 +9219,7 @@
|
|
|
9121
9219
|
}, deferTime);
|
|
9122
9220
|
}
|
|
9123
9221
|
else {
|
|
9124
|
-
this.attr(params, void 0, complete);
|
|
9222
|
+
this.attr(params, void 0, complete || animOptions.complete);
|
|
9125
9223
|
// Call the end step synchronously
|
|
9126
9224
|
objectEach(params, function (val, prop) {
|
|
9127
9225
|
if (animOptions.step) {
|
|
@@ -9519,25 +9617,20 @@
|
|
|
9519
9617
|
* Return the SVG element for chaining.
|
|
9520
9618
|
*/
|
|
9521
9619
|
SVGElement.prototype.css = function (styles) {
|
|
9522
|
-
var oldStyles = this.styles,
|
|
9523
|
-
|
|
9524
|
-
|
|
9525
|
-
// the DOM. In styled mode, no CSS should find its way to the DOM
|
|
9526
|
-
// whatsoever (#6173, #6474).
|
|
9527
|
-
svgPseudoProps = ['textOutline', 'textOverflow', 'width'];
|
|
9620
|
+
var oldStyles = this.styles,
|
|
9621
|
+
newStyles = {},
|
|
9622
|
+
elem = this.element;
|
|
9528
9623
|
var textWidth,
|
|
9529
|
-
serializedCss = '',
|
|
9530
|
-
hyphenate,
|
|
9531
9624
|
hasNew = !oldStyles;
|
|
9532
9625
|
// convert legacy
|
|
9533
|
-
if (styles
|
|
9626
|
+
if (styles.color) {
|
|
9534
9627
|
styles.fill = styles.color;
|
|
9535
9628
|
}
|
|
9536
9629
|
// Filter out existing styles to increase performance (#2640)
|
|
9537
9630
|
if (oldStyles) {
|
|
9538
|
-
objectEach(styles, function (
|
|
9539
|
-
if (oldStyles && oldStyles[n] !==
|
|
9540
|
-
newStyles[n] =
|
|
9631
|
+
objectEach(styles, function (value, n) {
|
|
9632
|
+
if (oldStyles && oldStyles[n] !== value) {
|
|
9633
|
+
newStyles[n] = value;
|
|
9541
9634
|
hasNew = true;
|
|
9542
9635
|
}
|
|
9543
9636
|
});
|
|
@@ -9548,41 +9641,30 @@
|
|
|
9548
9641
|
styles = extend(oldStyles, newStyles);
|
|
9549
9642
|
}
|
|
9550
9643
|
// Get the text width from style
|
|
9551
|
-
|
|
9552
|
-
|
|
9553
|
-
|
|
9554
|
-
|
|
9555
|
-
|
|
9556
|
-
|
|
9557
|
-
|
|
9558
|
-
|
|
9559
|
-
textWidth = this.textWidth = pInt(styles.width);
|
|
9560
|
-
}
|
|
9644
|
+
// Previously set, unset it (#8234)
|
|
9645
|
+
if (styles.width === null || styles.width === 'auto') {
|
|
9646
|
+
delete this.textWidth;
|
|
9647
|
+
// Apply new
|
|
9648
|
+
}
|
|
9649
|
+
else if (elem.nodeName.toLowerCase() === 'text' &&
|
|
9650
|
+
styles.width) {
|
|
9651
|
+
textWidth = this.textWidth = pInt(styles.width);
|
|
9561
9652
|
}
|
|
9562
9653
|
// store object
|
|
9563
9654
|
this.styles = styles;
|
|
9564
9655
|
if (textWidth && (!svg && this.renderer.forExport)) {
|
|
9565
9656
|
delete styles.width;
|
|
9566
9657
|
}
|
|
9567
|
-
|
|
9568
|
-
if (elem.namespaceURI === this.SVG_NS) {
|
|
9569
|
-
|
|
9570
|
-
|
|
9571
|
-
|
|
9572
|
-
|
|
9573
|
-
|
|
9574
|
-
|
|
9575
|
-
n.replace(/([A-Z])/g, hyphenate) + ':' +
|
|
9576
|
-
style + ';';
|
|
9577
|
-
}
|
|
9578
|
-
});
|
|
9579
|
-
if (serializedCss) {
|
|
9580
|
-
attr(elem, 'style', serializedCss); // #1881
|
|
9581
|
-
}
|
|
9582
|
-
}
|
|
9583
|
-
else {
|
|
9584
|
-
css(elem, styles);
|
|
9658
|
+
var stylesToApply_1 = merge(styles);
|
|
9659
|
+
if (elem.namespaceURI === this.SVG_NS) {
|
|
9660
|
+
// These CSS properties are interpreted internally by the SVG
|
|
9661
|
+
// renderer, but are not supported by SVG and should not be
|
|
9662
|
+
// added to the DOM. In styled mode, no CSS should find its way
|
|
9663
|
+
// to the DOM whatsoever (#6173, #6474).
|
|
9664
|
+
['textOutline', 'textOverflow', 'width'].forEach(function (key) { return (stylesToApply_1 &&
|
|
9665
|
+
delete stylesToApply_1[key]); });
|
|
9585
9666
|
}
|
|
9667
|
+
css(elem, stylesToApply_1);
|
|
9586
9668
|
if (this.added) {
|
|
9587
9669
|
// Rebuild text after added. Cache mechanisms in the buildText
|
|
9588
9670
|
// will prevent building if there are no significant changes.
|
|
@@ -9590,7 +9672,7 @@
|
|
|
9590
9672
|
this.renderer.buildText(this);
|
|
9591
9673
|
}
|
|
9592
9674
|
// Apply text outline after added
|
|
9593
|
-
if (styles
|
|
9675
|
+
if (styles.textOutline) {
|
|
9594
9676
|
this.applyTextOutline(styles.textOutline);
|
|
9595
9677
|
}
|
|
9596
9678
|
}
|
|
@@ -9801,7 +9883,7 @@
|
|
|
9801
9883
|
duration: pick(duration, 150),
|
|
9802
9884
|
complete: function () {
|
|
9803
9885
|
// #3088, assuming we're only using this for tooltips
|
|
9804
|
-
elemWrapper.
|
|
9886
|
+
elemWrapper.hide();
|
|
9805
9887
|
}
|
|
9806
9888
|
});
|
|
9807
9889
|
};
|
|
@@ -9846,8 +9928,9 @@
|
|
|
9846
9928
|
*/
|
|
9847
9929
|
SVGElement.prototype.getBBox = function (reload, rot) {
|
|
9848
9930
|
var wrapper = this,
|
|
9849
|
-
|
|
9931
|
+
alignValue = wrapper.alignValue,
|
|
9850
9932
|
element = wrapper.element,
|
|
9933
|
+
renderer = wrapper.renderer,
|
|
9851
9934
|
styles = wrapper.styles,
|
|
9852
9935
|
textStr = wrapper.textStr,
|
|
9853
9936
|
cache = renderer.cache,
|
|
@@ -9857,7 +9940,7 @@
|
|
|
9857
9940
|
wrapper.rotation, 0),
|
|
9858
9941
|
fontSize = renderer.styledMode ? (element &&
|
|
9859
9942
|
SVGElement.prototype.getStyle.call(element, 'font-size')) : (styles && styles.fontSize);
|
|
9860
|
-
var bBox,
|
|
9943
|
+
var bBox,
|
|
9861
9944
|
width,
|
|
9862
9945
|
height,
|
|
9863
9946
|
toggleTextShadowShim,
|
|
@@ -9878,6 +9961,7 @@
|
|
|
9878
9961
|
rotation,
|
|
9879
9962
|
fontSize,
|
|
9880
9963
|
wrapper.textWidth,
|
|
9964
|
+
alignValue,
|
|
9881
9965
|
styles && styles.textOverflow,
|
|
9882
9966
|
styles && styles.fontWeight // #12163
|
|
9883
9967
|
].join(',');
|
|
@@ -9923,7 +10007,7 @@
|
|
|
9923
10007
|
// other condition is for Opera that returns a width of
|
|
9924
10008
|
// -Infinity on hidden elements.
|
|
9925
10009
|
if (!bBox || bBox.width < 0) {
|
|
9926
|
-
bBox = { width: 0, height: 0 };
|
|
10010
|
+
bBox = { x: 0, y: 0, width: 0, height: 0 };
|
|
9927
10011
|
}
|
|
9928
10012
|
// VML Renderer or useHTML within SVG
|
|
9929
10013
|
}
|
|
@@ -9947,16 +10031,40 @@
|
|
|
9947
10031
|
bBox.height = height = ({
|
|
9948
10032
|
'11px,17': 14,
|
|
9949
10033
|
'13px,20': 16
|
|
9950
|
-
}[(fontSize || '') + ","
|
|
10034
|
+
}["" + (fontSize || '') + ",".concat(Math.round(height))] ||
|
|
9951
10035
|
height);
|
|
9952
10036
|
}
|
|
9953
10037
|
// Adjust for rotated text
|
|
9954
10038
|
if (rotation) {
|
|
9955
|
-
var
|
|
9956
|
-
|
|
9957
|
-
|
|
9958
|
-
|
|
9959
|
-
|
|
10039
|
+
var baseline = Number(element.getAttribute('y') || 0) - bBox.y,
|
|
10040
|
+
alignFactor = {
|
|
10041
|
+
'right': 1,
|
|
10042
|
+
'center': 0.5
|
|
10043
|
+
}[alignValue || 0] || 0,
|
|
10044
|
+
rad = rotation * deg2rad,
|
|
10045
|
+
rad90 = (rotation - 90) * deg2rad,
|
|
10046
|
+
wCosRad = width * Math.cos(rad),
|
|
10047
|
+
wSinRad = width * Math.sin(rad),
|
|
10048
|
+
cosRad90 = Math.cos(rad90),
|
|
10049
|
+
sinRad90 = Math.sin(rad90),
|
|
10050
|
+
// Find the starting point on the left side baseline of
|
|
10051
|
+
// the text
|
|
10052
|
+
pX = bBox.x + alignFactor * (width - wCosRad),
|
|
10053
|
+
pY = bBox.y + baseline - alignFactor * wSinRad,
|
|
10054
|
+
// Find all corners
|
|
10055
|
+
aX = pX + baseline * cosRad90,
|
|
10056
|
+
bX = aX + wCosRad,
|
|
10057
|
+
cX = bX - height * cosRad90,
|
|
10058
|
+
dX = cX - wCosRad,
|
|
10059
|
+
aY = pY + baseline * sinRad90,
|
|
10060
|
+
bY = aY + wSinRad,
|
|
10061
|
+
cY = bY - height * sinRad90,
|
|
10062
|
+
dY = cY - wSinRad;
|
|
10063
|
+
// Deduct the bounding box from the corners
|
|
10064
|
+
bBox.x = Math.min(aX, bX, cX, dX);
|
|
10065
|
+
bBox.y = Math.min(aY, bY, cY, dY);
|
|
10066
|
+
bBox.width = Math.max(aX, bX, cX, dX) - bBox.x;
|
|
10067
|
+
bBox.height = Math.max(aY, bY, cY, dY) - bBox.y;
|
|
9960
10068
|
}
|
|
9961
10069
|
}
|
|
9962
10070
|
// Cache it. When loading a chart in a hidden iframe in Firefox and
|
|
@@ -10015,21 +10123,11 @@
|
|
|
10015
10123
|
*
|
|
10016
10124
|
* @function Highcharts.SVGElement#hide
|
|
10017
10125
|
*
|
|
10018
|
-
* @param {boolean} [hideByTranslation=false]
|
|
10019
|
-
* The flag to determine if element should be hidden by moving out
|
|
10020
|
-
* of the viewport. Used for example for dataLabels.
|
|
10021
|
-
*
|
|
10022
10126
|
* @return {Highcharts.SVGElement}
|
|
10023
10127
|
* Returns the SVGElement for chaining.
|
|
10024
10128
|
*/
|
|
10025
|
-
SVGElement.prototype.hide = function (
|
|
10026
|
-
|
|
10027
|
-
this.attr({ y: -9999 });
|
|
10028
|
-
}
|
|
10029
|
-
else {
|
|
10030
|
-
this.attr({ visibility: 'hidden' });
|
|
10031
|
-
}
|
|
10032
|
-
return this;
|
|
10129
|
+
SVGElement.prototype.hide = function () {
|
|
10130
|
+
return this.attr({ visibility: 'hidden' });
|
|
10033
10131
|
};
|
|
10034
10132
|
/**
|
|
10035
10133
|
* @private
|
|
@@ -10143,7 +10241,7 @@
|
|
|
10143
10241
|
SVGElement.prototype.removeClass = function (className) {
|
|
10144
10242
|
return this.attr('class', ('' + this.attr('class'))
|
|
10145
10243
|
.replace(isString(className) ?
|
|
10146
|
-
new RegExp("(^| )"
|
|
10244
|
+
new RegExp("(^| )".concat(className, "( |$)")) : // #12064, #13590
|
|
10147
10245
|
className, ' ')
|
|
10148
10246
|
.replace(/ +/g, ' ')
|
|
10149
10247
|
.trim());
|
|
@@ -10368,7 +10466,7 @@
|
|
|
10368
10466
|
element = this.element,
|
|
10369
10467
|
oldShadowOptions = this.oldShadowOptions,
|
|
10370
10468
|
defaultShadowOptions = {
|
|
10371
|
-
color: "#000000" /* neutralColor100 */,
|
|
10469
|
+
color: "#000000" /* Palette.neutralColor100 */,
|
|
10372
10470
|
offsetX: this.parentInverted ? -1 : 1,
|
|
10373
10471
|
offsetY: this.parentInverted ? -1 : 1,
|
|
10374
10472
|
opacity: 0.15,
|
|
@@ -10409,14 +10507,14 @@
|
|
|
10409
10507
|
else if (!this.shadows) {
|
|
10410
10508
|
shadowElementOpacity = options.opacity / options.width;
|
|
10411
10509
|
transform = this.parentInverted ?
|
|
10412
|
-
"translate("
|
|
10413
|
-
"translate("
|
|
10510
|
+
"translate(".concat(options.offsetY, ", ").concat(options.offsetX, ")") :
|
|
10511
|
+
"translate(".concat(options.offsetX, ", ").concat(options.offsetY, ")");
|
|
10414
10512
|
for (i = 1; i <= options.width; i++) {
|
|
10415
10513
|
shadow = element.cloneNode(false);
|
|
10416
10514
|
strokeWidth = (options.width * 2) + 1 - (2 * i);
|
|
10417
10515
|
attr(shadow, {
|
|
10418
10516
|
stroke: (shadowOptions.color ||
|
|
10419
|
-
"#000000" /* neutralColor100 */),
|
|
10517
|
+
"#000000" /* Palette.neutralColor100 */),
|
|
10420
10518
|
'stroke-opacity': shadowElementOpacity * i,
|
|
10421
10519
|
'stroke-width': strokeWidth,
|
|
10422
10520
|
transform: transform,
|
|
@@ -10444,7 +10542,7 @@
|
|
|
10444
10542
|
*
|
|
10445
10543
|
* @function Highcharts.SVGElement#show
|
|
10446
10544
|
*
|
|
10447
|
-
* @param {boolean} [inherit=
|
|
10545
|
+
* @param {boolean} [inherit=true]
|
|
10448
10546
|
* Set the visibility attribute to `inherit` rather than `visible`.
|
|
10449
10547
|
* The difference is that an element with `visibility="visible"`
|
|
10450
10548
|
* will be visible even if the parent is hidden.
|
|
@@ -10453,6 +10551,7 @@
|
|
|
10453
10551
|
* Returns the SVGElement for chaining.
|
|
10454
10552
|
*/
|
|
10455
10553
|
SVGElement.prototype.show = function (inherit) {
|
|
10554
|
+
if (inherit === void 0) { inherit = true; }
|
|
10456
10555
|
return this.attr({ visibility: inherit ? 'inherit' : 'visible' });
|
|
10457
10556
|
};
|
|
10458
10557
|
/**
|
|
@@ -11759,6 +11858,7 @@
|
|
|
11759
11858
|
SVG_NS = H.SVG_NS,
|
|
11760
11859
|
win = H.win;
|
|
11761
11860
|
var attr = U.attr,
|
|
11861
|
+
extend = U.extend,
|
|
11762
11862
|
isString = U.isString,
|
|
11763
11863
|
objectEach = U.objectEach,
|
|
11764
11864
|
pick = U.pick;
|
|
@@ -12034,28 +12134,32 @@
|
|
|
12034
12134
|
var _a = node.attributes,
|
|
12035
12135
|
attributes = _a === void 0 ? {} : _a,
|
|
12036
12136
|
children = node.children,
|
|
12137
|
+
_b = node.style,
|
|
12138
|
+
style = _b === void 0 ? {} : _b,
|
|
12037
12139
|
tagName = node.tagName,
|
|
12038
12140
|
styledMode = _this.renderer.styledMode;
|
|
12039
12141
|
// Apply styling to text tags
|
|
12040
12142
|
if (tagName === 'b' || tagName === 'strong') {
|
|
12041
12143
|
if (styledMode) {
|
|
12042
|
-
|
|
12144
|
+
// eslint-disable-next-line dot-notation
|
|
12145
|
+
attributes['class'] = 'highcharts-strong';
|
|
12043
12146
|
}
|
|
12044
12147
|
else {
|
|
12045
|
-
|
|
12148
|
+
style.fontWeight = 'bold';
|
|
12046
12149
|
}
|
|
12047
12150
|
}
|
|
12048
12151
|
else if (tagName === 'i' || tagName === 'em') {
|
|
12049
12152
|
if (styledMode) {
|
|
12050
|
-
|
|
12153
|
+
// eslint-disable-next-line dot-notation
|
|
12154
|
+
attributes['class'] = 'highcharts-emphasized';
|
|
12051
12155
|
}
|
|
12052
12156
|
else {
|
|
12053
|
-
|
|
12157
|
+
style.fontStyle = 'italic';
|
|
12054
12158
|
}
|
|
12055
12159
|
}
|
|
12056
|
-
// Modify
|
|
12057
|
-
if (
|
|
12058
|
-
|
|
12160
|
+
// Modify styling
|
|
12161
|
+
if (style && style.color) {
|
|
12162
|
+
style.fill = style.color;
|
|
12059
12163
|
}
|
|
12060
12164
|
// Handle breaks
|
|
12061
12165
|
if (tagName === 'br') {
|
|
@@ -12080,7 +12184,7 @@
|
|
|
12080
12184
|
if (tagName !== '#text' && tagName !== 'a') {
|
|
12081
12185
|
node.tagName = 'tspan';
|
|
12082
12186
|
}
|
|
12083
|
-
node
|
|
12187
|
+
extend(node, { attributes: attributes, style: style });
|
|
12084
12188
|
// Recurse
|
|
12085
12189
|
if (children) {
|
|
12086
12190
|
children
|
|
@@ -12420,7 +12524,7 @@
|
|
|
12420
12524
|
this.url = this.getReferenceURL();
|
|
12421
12525
|
// Add description
|
|
12422
12526
|
var desc = this.createElement('desc').add();
|
|
12423
|
-
desc.element.appendChild(doc.createTextNode('Created with Highcharts
|
|
12527
|
+
desc.element.appendChild(doc.createTextNode('Created with Highcharts 10.2.0'));
|
|
12424
12528
|
renderer.defs = this.createElement('defs').add();
|
|
12425
12529
|
renderer.allowHTML = allowHTML;
|
|
12426
12530
|
renderer.forExport = forExport;
|
|
@@ -12533,7 +12637,7 @@
|
|
|
12533
12637
|
id: 'hitme',
|
|
12534
12638
|
width: 8,
|
|
12535
12639
|
height: 8,
|
|
12536
|
-
'clip-path': "url(#"
|
|
12640
|
+
'clip-path': "url(#".concat(id, ")"),
|
|
12537
12641
|
fill: 'rgba(0,0,0,0.001)'
|
|
12538
12642
|
}
|
|
12539
12643
|
}]
|
|
@@ -12686,27 +12790,31 @@
|
|
|
12686
12790
|
new TextBuilder(wrapper).buildSVG();
|
|
12687
12791
|
};
|
|
12688
12792
|
/**
|
|
12689
|
-
* Returns white for dark colors and black for bright colors
|
|
12793
|
+
* Returns white for dark colors and black for bright colors, based on W3C's
|
|
12794
|
+
* definition of [Relative luminance](
|
|
12795
|
+
* https://www.w3.org/WAI/GL/wiki/Relative_luminance).
|
|
12690
12796
|
*
|
|
12691
12797
|
* @function Highcharts.SVGRenderer#getContrast
|
|
12692
12798
|
*
|
|
12693
|
-
* @param {Highcharts.ColorString}
|
|
12799
|
+
* @param {Highcharts.ColorString} color
|
|
12694
12800
|
* The color to get the contrast for.
|
|
12695
12801
|
*
|
|
12696
12802
|
* @return {Highcharts.ColorString}
|
|
12697
12803
|
* The contrast color, either `#000000` or `#FFFFFF`.
|
|
12698
12804
|
*/
|
|
12699
|
-
SVGRenderer.prototype.getContrast = function (
|
|
12700
|
-
|
|
12701
|
-
|
|
12702
|
-
|
|
12703
|
-
|
|
12704
|
-
|
|
12705
|
-
|
|
12706
|
-
|
|
12707
|
-
|
|
12708
|
-
|
|
12709
|
-
|
|
12805
|
+
SVGRenderer.prototype.getContrast = function (color) {
|
|
12806
|
+
// #6216, #17273
|
|
12807
|
+
var rgba = Color.parse(color).rgba
|
|
12808
|
+
.map(function (b8) {
|
|
12809
|
+
var c = b8 / 255;
|
|
12810
|
+
return c <= 0.03928 ?
|
|
12811
|
+
c / 12.92 :
|
|
12812
|
+
Math.pow((c + 0.055) / 1.055, 2.4);
|
|
12813
|
+
});
|
|
12814
|
+
// Relative luminance
|
|
12815
|
+
var l = 0.2126 * rgba[0] + 0.7152 * rgba[1] + 0.0722 * rgba[2];
|
|
12816
|
+
// Use white or black based on which provides more contrast
|
|
12817
|
+
return 1.05 / (l + 0.05) > (l + 0.05) / 0.05 ? '#FFFFFF' : '#000000';
|
|
12710
12818
|
};
|
|
12711
12819
|
/**
|
|
12712
12820
|
* Create a button with preset states.
|
|
@@ -12731,7 +12839,7 @@
|
|
|
12731
12839
|
* @param {Highcharts.SVGAttributes} [hoverState]
|
|
12732
12840
|
* SVG attributes for the hover state.
|
|
12733
12841
|
*
|
|
12734
|
-
* @param {Highcharts.SVGAttributes} [
|
|
12842
|
+
* @param {Highcharts.SVGAttributes} [selectState]
|
|
12735
12843
|
* SVG attributes for the pressed state.
|
|
12736
12844
|
*
|
|
12737
12845
|
* @param {Highcharts.SVGAttributes} [disabledState]
|
|
@@ -12746,7 +12854,8 @@
|
|
|
12746
12854
|
* @return {Highcharts.SVGElement}
|
|
12747
12855
|
* The button element.
|
|
12748
12856
|
*/
|
|
12749
|
-
SVGRenderer.prototype.button = function (text, x, y, callback, theme, hoverState,
|
|
12857
|
+
SVGRenderer.prototype.button = function (text, x, y, callback, theme, hoverState, selectState, disabledState, shape, useHTML) {
|
|
12858
|
+
if (theme === void 0) { theme = {}; }
|
|
12750
12859
|
var label = this.label(text,
|
|
12751
12860
|
x,
|
|
12752
12861
|
y,
|
|
@@ -12755,59 +12864,57 @@
|
|
|
12755
12864
|
void 0,
|
|
12756
12865
|
useHTML,
|
|
12757
12866
|
void 0, 'button'),
|
|
12758
|
-
styledMode = this.styledMode
|
|
12759
|
-
|
|
12760
|
-
|
|
12761
|
-
|
|
12762
|
-
|
|
12763
|
-
var
|
|
12764
|
-
|
|
12765
|
-
|
|
12867
|
+
styledMode = this.styledMode,
|
|
12868
|
+
states = theme.states || {};
|
|
12869
|
+
var curState = 0;
|
|
12870
|
+
theme = merge(theme);
|
|
12871
|
+
delete theme.states;
|
|
12872
|
+
var normalStyle = merge({
|
|
12873
|
+
color: "#333333" /* Palette.neutralColor80 */,
|
|
12874
|
+
cursor: 'pointer',
|
|
12875
|
+
fontWeight: 'normal'
|
|
12876
|
+
},
|
|
12877
|
+
theme.style);
|
|
12878
|
+
delete theme.style;
|
|
12879
|
+
// Remove stylable attributes. Pass in the ButtonThemeObject and get the
|
|
12880
|
+
// SVGAttributes subset back.
|
|
12881
|
+
var normalState = AST.filterUserAttributes(theme);
|
|
12766
12882
|
// Default, non-stylable attributes
|
|
12767
12883
|
label.attr(merge({ padding: 8, r: 2 }, normalState));
|
|
12768
|
-
// Presentational
|
|
12769
|
-
|
|
12770
|
-
|
|
12771
|
-
|
|
12884
|
+
// Presentational. The string type is a mistake, it is just for
|
|
12885
|
+
// compliance with SVGAttribute and is not used in button theme.
|
|
12886
|
+
var hoverStyle,
|
|
12887
|
+
selectStyle,
|
|
12772
12888
|
disabledStyle;
|
|
12773
12889
|
if (!styledMode) {
|
|
12774
12890
|
// Normal state - prepare the attributes
|
|
12775
12891
|
normalState = merge({
|
|
12776
|
-
fill: "#f7f7f7" /* neutralColor3 */,
|
|
12777
|
-
stroke: "#cccccc" /* neutralColor20 */,
|
|
12778
|
-
'stroke-width': 1
|
|
12779
|
-
style: {
|
|
12780
|
-
color: "#333333" /* neutralColor80 */,
|
|
12781
|
-
cursor: 'pointer',
|
|
12782
|
-
fontWeight: 'normal'
|
|
12783
|
-
}
|
|
12784
|
-
}, {
|
|
12785
|
-
style: userNormalStyle
|
|
12892
|
+
fill: "#f7f7f7" /* Palette.neutralColor3 */,
|
|
12893
|
+
stroke: "#cccccc" /* Palette.neutralColor20 */,
|
|
12894
|
+
'stroke-width': 1
|
|
12786
12895
|
}, normalState);
|
|
12787
|
-
normalStyle = normalState.style;
|
|
12788
|
-
delete normalState.style;
|
|
12789
12896
|
// Hover state
|
|
12790
12897
|
hoverState = merge(normalState, {
|
|
12791
|
-
fill: "#e6e6e6" /* neutralColor10 */
|
|
12792
|
-
}, AST.filterUserAttributes(hoverState || {}));
|
|
12898
|
+
fill: "#e6e6e6" /* Palette.neutralColor10 */
|
|
12899
|
+
}, AST.filterUserAttributes(hoverState || states.hover || {}));
|
|
12793
12900
|
hoverStyle = hoverState.style;
|
|
12794
12901
|
delete hoverState.style;
|
|
12795
12902
|
// Pressed state
|
|
12796
|
-
|
|
12797
|
-
fill: "#e6ebf5" /* highlightColor10 */,
|
|
12903
|
+
selectState = merge(normalState, {
|
|
12904
|
+
fill: "#e6ebf5" /* Palette.highlightColor10 */,
|
|
12798
12905
|
style: {
|
|
12799
|
-
color: "#000000" /* neutralColor100 */,
|
|
12906
|
+
color: "#000000" /* Palette.neutralColor100 */,
|
|
12800
12907
|
fontWeight: 'bold'
|
|
12801
12908
|
}
|
|
12802
|
-
}, AST.filterUserAttributes(
|
|
12803
|
-
|
|
12804
|
-
delete
|
|
12909
|
+
}, AST.filterUserAttributes(selectState || states.select || {}));
|
|
12910
|
+
selectStyle = selectState.style;
|
|
12911
|
+
delete selectState.style;
|
|
12805
12912
|
// Disabled state
|
|
12806
12913
|
disabledState = merge(normalState, {
|
|
12807
12914
|
style: {
|
|
12808
|
-
color: "#cccccc" /* neutralColor20 */
|
|
12915
|
+
color: "#cccccc" /* Palette.neutralColor20 */
|
|
12809
12916
|
}
|
|
12810
|
-
}, AST.filterUserAttributes(disabledState || {}));
|
|
12917
|
+
}, AST.filterUserAttributes(disabledState || states.disabled || {}));
|
|
12811
12918
|
disabledStyle = disabledState.style;
|
|
12812
12919
|
delete disabledState.style;
|
|
12813
12920
|
}
|
|
@@ -12838,15 +12945,18 @@
|
|
|
12838
12945
|
.attr([
|
|
12839
12946
|
normalState,
|
|
12840
12947
|
hoverState,
|
|
12841
|
-
|
|
12948
|
+
selectState,
|
|
12842
12949
|
disabledState
|
|
12843
|
-
][state || 0])
|
|
12844
|
-
.css([
|
|
12845
|
-
normalStyle,
|
|
12846
|
-
hoverStyle,
|
|
12847
|
-
pressedStyle,
|
|
12848
|
-
disabledStyle
|
|
12849
12950
|
][state || 0]);
|
|
12951
|
+
var css_1 = [
|
|
12952
|
+
normalStyle,
|
|
12953
|
+
hoverStyle,
|
|
12954
|
+
selectStyle,
|
|
12955
|
+
disabledStyle
|
|
12956
|
+
][state || 0];
|
|
12957
|
+
if (isObject(css_1)) {
|
|
12958
|
+
label.css(css_1);
|
|
12959
|
+
}
|
|
12850
12960
|
}
|
|
12851
12961
|
};
|
|
12852
12962
|
// Presentational attributes
|
|
@@ -13548,7 +13658,7 @@
|
|
|
13548
13658
|
*/
|
|
13549
13659
|
SVGRenderer.prototype.fontMetrics = function (fontSize, elem) {
|
|
13550
13660
|
if ((this.styledMode || !/px/.test(fontSize)) &&
|
|
13551
|
-
win.getComputedStyle // old IE doesn't support it
|
|
13661
|
+
(win.getComputedStyle) // old IE doesn't support it
|
|
13552
13662
|
) {
|
|
13553
13663
|
fontSize = elem && SVGElement.prototype.getStyle.call(elem, 'font-size');
|
|
13554
13664
|
}
|
|
@@ -15692,7 +15802,7 @@
|
|
|
15692
15802
|
*/
|
|
15693
15803
|
style: {
|
|
15694
15804
|
/** @internal */
|
|
15695
|
-
color: "#666666" /* neutralColor60 */,
|
|
15805
|
+
color: "#666666" /* Palette.neutralColor60 */,
|
|
15696
15806
|
/** @internal */
|
|
15697
15807
|
cursor: 'default',
|
|
15698
15808
|
/** @internal */
|
|
@@ -16527,7 +16637,7 @@
|
|
|
16527
16637
|
*/
|
|
16528
16638
|
style: {
|
|
16529
16639
|
/** @internal */
|
|
16530
|
-
color: "#666666" /* neutralColor60 */
|
|
16640
|
+
color: "#666666" /* Palette.neutralColor60 */
|
|
16531
16641
|
}
|
|
16532
16642
|
},
|
|
16533
16643
|
/**
|
|
@@ -16644,7 +16754,7 @@
|
|
|
16644
16754
|
* @type {Highcharts.ColorType}
|
|
16645
16755
|
* @default #f2f2f2
|
|
16646
16756
|
*/
|
|
16647
|
-
minorGridLineColor: "#f2f2f2" /* neutralColor5 */,
|
|
16757
|
+
minorGridLineColor: "#f2f2f2" /* Palette.neutralColor5 */,
|
|
16648
16758
|
/**
|
|
16649
16759
|
* Width of the minor, secondary grid lines.
|
|
16650
16760
|
*
|
|
@@ -16670,7 +16780,7 @@
|
|
|
16670
16780
|
* @type {Highcharts.ColorType}
|
|
16671
16781
|
* @default #999999
|
|
16672
16782
|
*/
|
|
16673
|
-
minorTickColor: "#999999" /* neutralColor40 */,
|
|
16783
|
+
minorTickColor: "#999999" /* Palette.neutralColor40 */,
|
|
16674
16784
|
/**
|
|
16675
16785
|
* The color of the line marking the axis itself.
|
|
16676
16786
|
*
|
|
@@ -16691,7 +16801,7 @@
|
|
|
16691
16801
|
* @type {Highcharts.ColorType}
|
|
16692
16802
|
* @default #ccd6eb
|
|
16693
16803
|
*/
|
|
16694
|
-
lineColor: "#ccd6eb" /* highlightColor20 */,
|
|
16804
|
+
lineColor: "#ccd6eb" /* Palette.highlightColor20 */,
|
|
16695
16805
|
/**
|
|
16696
16806
|
* The width of the line marking the axis itself.
|
|
16697
16807
|
*
|
|
@@ -16728,7 +16838,7 @@
|
|
|
16728
16838
|
* @type {Highcharts.ColorType}
|
|
16729
16839
|
* @default #e6e6e6
|
|
16730
16840
|
*/
|
|
16731
|
-
gridLineColor: "#e6e6e6" /* neutralColor10 */,
|
|
16841
|
+
gridLineColor: "#e6e6e6" /* Palette.neutralColor10 */,
|
|
16732
16842
|
/**
|
|
16733
16843
|
* The width of the grid lines extending the ticks across the plot area.
|
|
16734
16844
|
* Defaults to 1 on the Y axis and 0 on the X axis, except for 3d
|
|
@@ -16786,7 +16896,7 @@
|
|
|
16786
16896
|
* @type {Highcharts.ColorType}
|
|
16787
16897
|
* @default #ccd6eb
|
|
16788
16898
|
*/
|
|
16789
|
-
tickColor: "#ccd6eb" /* highlightColor20 */
|
|
16899
|
+
tickColor: "#ccd6eb" /* Palette.highlightColor20 */
|
|
16790
16900
|
// tickWidth: 1
|
|
16791
16901
|
};
|
|
16792
16902
|
/**
|
|
@@ -17576,7 +17686,7 @@
|
|
|
17576
17686
|
*/
|
|
17577
17687
|
style: {
|
|
17578
17688
|
/** @internal */
|
|
17579
|
-
color: "#000000" /* neutralColor100 */,
|
|
17689
|
+
color: "#000000" /* Palette.neutralColor100 */,
|
|
17580
17690
|
/** @internal */
|
|
17581
17691
|
fontSize: '11px',
|
|
17582
17692
|
/** @internal */
|
|
@@ -17866,7 +17976,8 @@
|
|
|
17866
17976
|
dateTimeLabelFormat = dateTimeLabelFormats.main;
|
|
17867
17977
|
}
|
|
17868
17978
|
else if (isNumber(value)) { // #1441
|
|
17869
|
-
dateTimeLabelFormat = axis.dateTime.getXDateFormat(value,
|
|
17979
|
+
dateTimeLabelFormat = axis.dateTime.getXDateFormat(value, options.dateTimeLabelFormats ||
|
|
17980
|
+
{});
|
|
17870
17981
|
}
|
|
17871
17982
|
}
|
|
17872
17983
|
// set properties for access in render method
|
|
@@ -18034,8 +18145,8 @@
|
|
|
18034
18145
|
pos = {
|
|
18035
18146
|
x: horiz ?
|
|
18036
18147
|
correctFloat(axis.translate(tickPos + tickmarkOffset,
|
|
18037
|
-
|
|
18038
|
-
|
|
18148
|
+
void 0,
|
|
18149
|
+
void 0,
|
|
18039
18150
|
old) +
|
|
18040
18151
|
axis.transB) :
|
|
18041
18152
|
(axis.left +
|
|
@@ -18053,8 +18164,8 @@
|
|
|
18053
18164
|
(axis.opposite ? axis.height : 0)) :
|
|
18054
18165
|
correctFloat(cHeight -
|
|
18055
18166
|
axis.translate(tickPos + tickmarkOffset,
|
|
18056
|
-
|
|
18057
|
-
|
|
18167
|
+
void 0,
|
|
18168
|
+
void 0,
|
|
18058
18169
|
old) -
|
|
18059
18170
|
axis.transB)
|
|
18060
18171
|
};
|
|
@@ -18082,20 +18193,23 @@
|
|
|
18082
18193
|
-axis.labelOffset * (axis.labelAlign === 'center' ? 0.5 : 1) :
|
|
18083
18194
|
0),
|
|
18084
18195
|
pos = {};
|
|
18085
|
-
var yOffset
|
|
18196
|
+
var yOffset,
|
|
18086
18197
|
line;
|
|
18087
|
-
if (
|
|
18088
|
-
|
|
18089
|
-
|
|
18090
|
-
|
|
18091
|
-
|
|
18092
|
-
|
|
18093
|
-
|
|
18094
|
-
|
|
18095
|
-
|
|
18096
|
-
|
|
18097
|
-
|
|
18098
|
-
|
|
18198
|
+
if (axis.side === 0) {
|
|
18199
|
+
yOffset = label.rotation ? -8 : -label.getBBox().height;
|
|
18200
|
+
}
|
|
18201
|
+
else if (axis.side === 2) {
|
|
18202
|
+
yOffset = rotCorr.y + 8;
|
|
18203
|
+
}
|
|
18204
|
+
else {
|
|
18205
|
+
// #3140, #3140
|
|
18206
|
+
yOffset = Math.cos(label.rotation * deg2rad) *
|
|
18207
|
+
(rotCorr.y - label.getBBox(false, 0).height / 2);
|
|
18208
|
+
}
|
|
18209
|
+
if (defined(labelOptions.y)) {
|
|
18210
|
+
yOffset = axis.side === 0 && axis.horiz ?
|
|
18211
|
+
labelOptions.y + yOffset :
|
|
18212
|
+
labelOptions.y;
|
|
18099
18213
|
}
|
|
18100
18214
|
x = x +
|
|
18101
18215
|
labelOptions.x +
|
|
@@ -18486,11 +18600,11 @@
|
|
|
18486
18600
|
// Set the new position, and show or hide
|
|
18487
18601
|
if (show && isNumber(xy.y)) {
|
|
18488
18602
|
xy.opacity = opacity;
|
|
18489
|
-
label[tick.isNewLabel ? 'attr' : 'animate'](xy);
|
|
18603
|
+
label[tick.isNewLabel ? 'attr' : 'animate'](xy).show(true);
|
|
18490
18604
|
tick.isNewLabel = false;
|
|
18491
18605
|
}
|
|
18492
18606
|
else {
|
|
18493
|
-
label.
|
|
18607
|
+
label.hide(); // #1338, #15863
|
|
18494
18608
|
tick.isNewLabel = true;
|
|
18495
18609
|
}
|
|
18496
18610
|
}
|
|
@@ -18590,7 +18704,6 @@
|
|
|
18590
18704
|
error = U.error,
|
|
18591
18705
|
extend = U.extend,
|
|
18592
18706
|
fireEvent = U.fireEvent,
|
|
18593
|
-
getMagnitude = U.getMagnitude,
|
|
18594
18707
|
isArray = U.isArray,
|
|
18595
18708
|
isNumber = U.isNumber,
|
|
18596
18709
|
isString = U.isString,
|
|
@@ -18602,6 +18715,16 @@
|
|
|
18602
18715
|
removeEvent = U.removeEvent,
|
|
18603
18716
|
splat = U.splat,
|
|
18604
18717
|
syncTimeout = U.syncTimeout;
|
|
18718
|
+
var getNormalizedTickInterval = function (axis,
|
|
18719
|
+
tickInterval) { return normalizeTickInterval(tickInterval,
|
|
18720
|
+
void 0,
|
|
18721
|
+
void 0,
|
|
18722
|
+
pick(axis.options.allowDecimals,
|
|
18723
|
+
// If the tick interval is greather than 0.5, avoid decimals, as
|
|
18724
|
+
// linear axes are often used to render discrete values (#3363). If
|
|
18725
|
+
// a tick amount is set, allow decimals by default, as it increases
|
|
18726
|
+
// the chances for a good fit.
|
|
18727
|
+
tickInterval < 0.5 || axis.tickAmount !== void 0), !!axis.tickAmount); };
|
|
18605
18728
|
/* *
|
|
18606
18729
|
*
|
|
18607
18730
|
* Class
|
|
@@ -18648,7 +18771,6 @@
|
|
|
18648
18771
|
function Axis(chart, userOptions) {
|
|
18649
18772
|
this.alternateBands = void 0;
|
|
18650
18773
|
this.bottom = void 0;
|
|
18651
|
-
this.categories = void 0;
|
|
18652
18774
|
this.chart = void 0;
|
|
18653
18775
|
this.closestPointRange = void 0;
|
|
18654
18776
|
this.coll = void 0;
|
|
@@ -18812,7 +18934,7 @@
|
|
|
18812
18934
|
* @type {Array<string>}
|
|
18813
18935
|
* @readonly
|
|
18814
18936
|
*/
|
|
18815
|
-
axis.categories = options.categories || axis.hasNames;
|
|
18937
|
+
axis.categories = options.categories || (axis.hasNames ? [] : void 0);
|
|
18816
18938
|
if (!axis.names) { // Preserve on update (#3830)
|
|
18817
18939
|
axis.names = [];
|
|
18818
18940
|
axis.names.keys = {};
|
|
@@ -18968,7 +19090,7 @@
|
|
|
18968
19090
|
multi,
|
|
18969
19091
|
ret;
|
|
18970
19092
|
if (categories) {
|
|
18971
|
-
ret = ""
|
|
19093
|
+
ret = "".concat(this.value);
|
|
18972
19094
|
}
|
|
18973
19095
|
else if (dateTimeLabelFormat) { // datetime axis
|
|
18974
19096
|
ret = time.dateFormat(dateTimeLabelFormat, value);
|
|
@@ -19044,7 +19166,6 @@
|
|
|
19044
19166
|
if (axis.isXAxis) {
|
|
19045
19167
|
xData = series.xData;
|
|
19046
19168
|
if (xData.length) {
|
|
19047
|
-
var isPositive = function (number) { return number > 0; };
|
|
19048
19169
|
xData = axis.logarithmic ?
|
|
19049
19170
|
xData.filter(axis.validatePositiveValue) :
|
|
19050
19171
|
xData;
|
|
@@ -19113,8 +19234,11 @@
|
|
|
19113
19234
|
*/
|
|
19114
19235
|
Axis.prototype.translate = function (val, backwards, cvsCoord, old, handleLog, pointPlacement) {
|
|
19115
19236
|
var axis = (this.linkedParent || this), // #1417
|
|
19116
|
-
localMin = old && axis.old ? axis.old.min : axis.min
|
|
19117
|
-
|
|
19237
|
+
localMin = (old && axis.old ? axis.old.min : axis.min);
|
|
19238
|
+
if (!isNumber(localMin)) {
|
|
19239
|
+
return NaN;
|
|
19240
|
+
}
|
|
19241
|
+
var minPixelPadding = axis.minPixelPadding,
|
|
19118
19242
|
doPostTranslate = (axis.isOrdinal ||
|
|
19119
19243
|
axis.brokenAxis && axis.brokenAxis.hasBreaks ||
|
|
19120
19244
|
(axis.logarithmic && handleLog)) && axis.lin2val;
|
|
@@ -19151,14 +19275,11 @@
|
|
|
19151
19275
|
if (doPostTranslate) { // log, ordinal and broken axis
|
|
19152
19276
|
val = axis.val2lin(val);
|
|
19153
19277
|
}
|
|
19154
|
-
|
|
19155
|
-
|
|
19156
|
-
|
|
19157
|
-
|
|
19158
|
-
|
|
19159
|
-
localA * pointPlacement :
|
|
19160
|
-
0)) :
|
|
19161
|
-
void 0;
|
|
19278
|
+
var value = sign * (val - localMin) * localA;
|
|
19279
|
+
returnValue = (!axis.isRadial ? correctFloat(value) : value) +
|
|
19280
|
+
cvsOffset +
|
|
19281
|
+
(sign * minPixelPadding) +
|
|
19282
|
+
(isNumber(pointPlacement) ? localA * pointPlacement : 0);
|
|
19162
19283
|
}
|
|
19163
19284
|
return returnValue;
|
|
19164
19285
|
};
|
|
@@ -19178,7 +19299,7 @@
|
|
|
19178
19299
|
* Pixel position of the value on the chart or axis.
|
|
19179
19300
|
*/
|
|
19180
19301
|
Axis.prototype.toPixels = function (value, paneCoordinates) {
|
|
19181
|
-
return this.translate(value, false, !this.horiz,
|
|
19302
|
+
return this.translate(value, false, !this.horiz, void 0, true) +
|
|
19182
19303
|
(paneCoordinates ? 0 : this.pos);
|
|
19183
19304
|
};
|
|
19184
19305
|
/**
|
|
@@ -19198,7 +19319,7 @@
|
|
|
19198
19319
|
* The axis value.
|
|
19199
19320
|
*/
|
|
19200
19321
|
Axis.prototype.toValue = function (pixel, paneCoordinates) {
|
|
19201
|
-
return this.translate(pixel - (paneCoordinates ? 0 : this.pos), true, !this.horiz,
|
|
19322
|
+
return this.translate(pixel - (paneCoordinates ? 0 : this.pos), true, !this.horiz, void 0, true);
|
|
19202
19323
|
};
|
|
19203
19324
|
/**
|
|
19204
19325
|
* Create the path for a plot line that goes from the given value on
|
|
@@ -19257,7 +19378,7 @@
|
|
|
19257
19378
|
translatedValue: translatedValue
|
|
19258
19379
|
};
|
|
19259
19380
|
fireEvent(this, 'getPlotLinePath', evt, function (e) {
|
|
19260
|
-
translatedValue = pick(translatedValue, axis.translate(value,
|
|
19381
|
+
translatedValue = pick(translatedValue, axis.translate(value, void 0, void 0, old));
|
|
19261
19382
|
// Keep the translated value within sane bounds, and avoid Infinity
|
|
19262
19383
|
// to fail the isNumber test (#7709).
|
|
19263
19384
|
translatedValue = clamp(translatedValue, -1e5, 1e5);
|
|
@@ -19546,20 +19667,20 @@
|
|
|
19546
19667
|
* The X value that the point is given.
|
|
19547
19668
|
*/
|
|
19548
19669
|
Axis.prototype.nameToX = function (point) {
|
|
19549
|
-
var explicitCategories = isArray(this.categories),
|
|
19670
|
+
var explicitCategories = isArray(this.options.categories),
|
|
19550
19671
|
names = explicitCategories ? this.categories : this.names;
|
|
19551
19672
|
var nameX = point.options.x,
|
|
19552
19673
|
x;
|
|
19553
19674
|
point.series.requireSorting = false;
|
|
19554
19675
|
if (!defined(nameX)) {
|
|
19555
|
-
nameX = this.options.uniqueNames ?
|
|
19676
|
+
nameX = this.options.uniqueNames && names ?
|
|
19556
19677
|
(explicitCategories ?
|
|
19557
19678
|
names.indexOf(point.name) :
|
|
19558
19679
|
pick(names.keys[point.name], -1)) :
|
|
19559
19680
|
point.series.autoIncrement();
|
|
19560
19681
|
}
|
|
19561
19682
|
if (nameX === -1) { // Not found in currenct categories
|
|
19562
|
-
if (!explicitCategories) {
|
|
19683
|
+
if (!explicitCategories && names) {
|
|
19563
19684
|
x = names.length;
|
|
19564
19685
|
}
|
|
19565
19686
|
}
|
|
@@ -19954,15 +20075,9 @@
|
|
|
19954
20075
|
if (!tickIntervalOption && axis.tickInterval < minTickInterval) {
|
|
19955
20076
|
axis.tickInterval = minTickInterval;
|
|
19956
20077
|
}
|
|
19957
|
-
//
|
|
20078
|
+
// For linear axes, normalize the interval
|
|
19958
20079
|
if (!axis.dateTime && !axis.logarithmic && !tickIntervalOption) {
|
|
19959
|
-
axis.tickInterval =
|
|
19960
|
-
// If the tick interval is greather than 0.5, avoid
|
|
19961
|
-
// decimals, as linear axes are often used to render
|
|
19962
|
-
// discrete values. #3363. If a tick amount is set, allow
|
|
19963
|
-
// decimals by default, as it increases the chances for a
|
|
19964
|
-
// good fit.
|
|
19965
|
-
axis.tickInterval < 0.5 || this.tickAmount !== void 0), !!this.tickAmount);
|
|
20080
|
+
axis.tickInterval = getNormalizedTickInterval(axis, axis.tickInterval);
|
|
19966
20081
|
}
|
|
19967
20082
|
// Prevent ticks from getting so close that we can't draw the labels
|
|
19968
20083
|
if (!this.tickAmount) {
|
|
@@ -20047,7 +20162,21 @@
|
|
|
20047
20162
|
tickPositions = axis.logarithmic.getLogTickPositions(this.tickInterval, this.min, this.max);
|
|
20048
20163
|
}
|
|
20049
20164
|
else {
|
|
20050
|
-
|
|
20165
|
+
var startingTickInterval = this.tickInterval;
|
|
20166
|
+
var adjustedTickInterval = startingTickInterval;
|
|
20167
|
+
while (adjustedTickInterval <= startingTickInterval * 2) {
|
|
20168
|
+
tickPositions = this.getLinearTickPositions(this.tickInterval, this.min, this.max);
|
|
20169
|
+
// If there are more tick positions than the set tickAmount,
|
|
20170
|
+
// increase the tickInterval and continue until it fits.
|
|
20171
|
+
// (#17100)
|
|
20172
|
+
if (this.tickAmount &&
|
|
20173
|
+
tickPositions.length > this.tickAmount) {
|
|
20174
|
+
this.tickInterval = getNormalizedTickInterval(this, adjustedTickInterval *= 1.1);
|
|
20175
|
+
}
|
|
20176
|
+
else {
|
|
20177
|
+
break;
|
|
20178
|
+
}
|
|
20179
|
+
}
|
|
20051
20180
|
}
|
|
20052
20181
|
// Too dense ticks, keep only the first and last (#4477)
|
|
20053
20182
|
if (tickPositions.length > this.len) {
|
|
@@ -20146,39 +20275,92 @@
|
|
|
20146
20275
|
*/
|
|
20147
20276
|
Axis.prototype.alignToOthers = function () {
|
|
20148
20277
|
var axis = this,
|
|
20149
|
-
|
|
20150
|
-
|
|
20151
|
-
|
|
20278
|
+
alignedAxes = [this],
|
|
20279
|
+
options = axis.options,
|
|
20280
|
+
alignThresholds = (this.coll === 'yAxis' &&
|
|
20281
|
+
this.chart.options.chart.alignThresholds),
|
|
20282
|
+
thresholdAlignments = [];
|
|
20152
20283
|
var hasOther;
|
|
20153
|
-
|
|
20154
|
-
|
|
20155
|
-
|
|
20156
|
-
|
|
20284
|
+
axis.thresholdAlignment = void 0;
|
|
20285
|
+
if ((
|
|
20286
|
+
// Only if alignTicks or alignThresholds is true
|
|
20287
|
+
(this.chart.options.chart.alignTicks !== false &&
|
|
20288
|
+
options.alignTicks) || (alignThresholds)) &&
|
|
20157
20289
|
// Disabled when startOnTick or endOnTick are false (#7604)
|
|
20158
20290
|
options.startOnTick !== false &&
|
|
20159
20291
|
options.endOnTick !== false &&
|
|
20160
20292
|
// Don't try to align ticks on a log axis, they are not evenly
|
|
20161
20293
|
// spaced (#6021)
|
|
20162
20294
|
!axis.logarithmic) {
|
|
20163
|
-
|
|
20164
|
-
|
|
20165
|
-
|
|
20166
|
-
|
|
20167
|
-
|
|
20168
|
-
|
|
20169
|
-
|
|
20170
|
-
|
|
20171
|
-
|
|
20172
|
-
|
|
20173
|
-
|
|
20174
|
-
|
|
20175
|
-
|
|
20176
|
-
|
|
20295
|
+
// Get a key identifying which pane the axis belongs to
|
|
20296
|
+
var getKey_1 = function (axis) {
|
|
20297
|
+
var horiz = axis.horiz,
|
|
20298
|
+
options = axis.options;
|
|
20299
|
+
return [
|
|
20300
|
+
horiz ? options.left : options.top,
|
|
20301
|
+
options.width,
|
|
20302
|
+
options.height,
|
|
20303
|
+
options.pane
|
|
20304
|
+
].join(',');
|
|
20305
|
+
};
|
|
20306
|
+
var thisKey_1 = getKey_1(this);
|
|
20307
|
+
this.chart[this.coll].forEach(function (otherAxis) {
|
|
20308
|
+
var series = otherAxis.series;
|
|
20309
|
+
if (
|
|
20310
|
+
// #4442
|
|
20311
|
+
series.length &&
|
|
20312
|
+
series.some(function (s) { return s.visible; }) &&
|
|
20313
|
+
otherAxis !== axis &&
|
|
20314
|
+
getKey_1(otherAxis) === thisKey_1) {
|
|
20315
|
+
hasOther = true; // #4201
|
|
20316
|
+
alignedAxes.push(otherAxis);
|
|
20177
20317
|
}
|
|
20178
20318
|
});
|
|
20179
20319
|
}
|
|
20320
|
+
if (hasOther && alignThresholds) {
|
|
20321
|
+
// Handle alignThresholds. The `thresholdAlignments` array keeps
|
|
20322
|
+
// records of where each axis in the group wants its threshold, from
|
|
20323
|
+
// 0 which is on `axis.min`, to 1 which is on `axis.max`.
|
|
20324
|
+
alignedAxes.forEach(function (otherAxis) {
|
|
20325
|
+
var threshAlign = otherAxis.getThresholdAlignment(axis);
|
|
20326
|
+
if (isNumber(threshAlign)) {
|
|
20327
|
+
thresholdAlignments.push(threshAlign);
|
|
20328
|
+
}
|
|
20329
|
+
});
|
|
20330
|
+
// For each of the axes in the group, record the average
|
|
20331
|
+
// `thresholdAlignment`.
|
|
20332
|
+
var thresholdAlignment_1 = thresholdAlignments.length > 1 ?
|
|
20333
|
+
thresholdAlignments.reduce(function (sum,
|
|
20334
|
+
n) { return (sum += n); }, 0) / thresholdAlignments.length :
|
|
20335
|
+
void 0;
|
|
20336
|
+
alignedAxes.forEach(function (axis) {
|
|
20337
|
+
axis.thresholdAlignment = thresholdAlignment_1;
|
|
20338
|
+
});
|
|
20339
|
+
}
|
|
20180
20340
|
return hasOther;
|
|
20181
20341
|
};
|
|
20342
|
+
/**
|
|
20343
|
+
* Where the axis wants its threshold, from 0 which is on `axis.min`, to 1 which
|
|
20344
|
+
* is on `axis.max`.
|
|
20345
|
+
*
|
|
20346
|
+
* @private
|
|
20347
|
+
* @function Highcharts.Axis#getThresholdAlignment
|
|
20348
|
+
*/
|
|
20349
|
+
Axis.prototype.getThresholdAlignment = function (callerAxis) {
|
|
20350
|
+
if (!isNumber(this.dataMin) ||
|
|
20351
|
+
(this !== callerAxis &&
|
|
20352
|
+
this.series.some(function (s) { return (s.isDirty || s.isDirtyData); }))) {
|
|
20353
|
+
this.getSeriesExtremes();
|
|
20354
|
+
}
|
|
20355
|
+
if (isNumber(this.threshold)) {
|
|
20356
|
+
var thresholdAlignment = clamp(((this.threshold - (this.dataMin || 0)) /
|
|
20357
|
+
((this.dataMax || 0) - (this.dataMin || 0))), 0, 1);
|
|
20358
|
+
if (this.options.reversed) {
|
|
20359
|
+
thresholdAlignment = 1 - thresholdAlignment;
|
|
20360
|
+
}
|
|
20361
|
+
return thresholdAlignment;
|
|
20362
|
+
}
|
|
20363
|
+
};
|
|
20182
20364
|
/**
|
|
20183
20365
|
* Find the max ticks of either the x and y axis collection, and record it
|
|
20184
20366
|
* in `this.tickAmount`.
|
|
@@ -20223,47 +20405,101 @@
|
|
|
20223
20405
|
*/
|
|
20224
20406
|
Axis.prototype.adjustTickAmount = function () {
|
|
20225
20407
|
var axis = this,
|
|
20226
|
-
|
|
20227
|
-
|
|
20408
|
+
finalTickAmt = axis.finalTickAmt,
|
|
20409
|
+
max = axis.max,
|
|
20410
|
+
min = axis.min,
|
|
20411
|
+
options = axis.options,
|
|
20228
20412
|
tickPositions = axis.tickPositions,
|
|
20229
20413
|
tickAmount = axis.tickAmount,
|
|
20230
|
-
|
|
20414
|
+
thresholdAlignment = axis.thresholdAlignment,
|
|
20231
20415
|
currentTickAmount = tickPositions && tickPositions.length,
|
|
20232
20416
|
threshold = pick(axis.threshold,
|
|
20233
20417
|
axis.softThreshold ? 0 : null);
|
|
20234
20418
|
var len,
|
|
20235
|
-
i
|
|
20236
|
-
|
|
20237
|
-
|
|
20238
|
-
|
|
20239
|
-
|
|
20419
|
+
i,
|
|
20420
|
+
tickInterval = axis.tickInterval,
|
|
20421
|
+
thresholdTickIndex;
|
|
20422
|
+
var
|
|
20423
|
+
// Extend the tickPositions by appending a position
|
|
20424
|
+
append = function () { return tickPositions.push(correctFloat(tickPositions[tickPositions.length - 1] +
|
|
20425
|
+
tickInterval)); },
|
|
20426
|
+
// Extend the tickPositions by prepending a position
|
|
20427
|
+
prepend = function () { return tickPositions.unshift(correctFloat(tickPositions[0] - tickInterval)); };
|
|
20428
|
+
// If `thresholdAlignment` is a number, it means the `alignThresholds`
|
|
20429
|
+
// option is true. The `thresholdAlignment` is a scalar value between 0
|
|
20430
|
+
// and 1 for where the threshold should be relative to `axis.min` and
|
|
20431
|
+
// `axis.max`. Now that we know the tick amount, convert this to the
|
|
20432
|
+
// tick index. Unless `thresholdAlignment` is exactly 0 or 1, avoid the
|
|
20433
|
+
// first or last tick because that would lead to series being clipped.
|
|
20434
|
+
if (isNumber(thresholdAlignment)) {
|
|
20435
|
+
thresholdTickIndex = thresholdAlignment < 0.5 ?
|
|
20436
|
+
Math.ceil(thresholdAlignment * (tickAmount - 1)) :
|
|
20437
|
+
Math.floor(thresholdAlignment * (tickAmount - 1));
|
|
20438
|
+
if (options.reversed) {
|
|
20439
|
+
thresholdTickIndex = tickAmount - 1 - thresholdTickIndex;
|
|
20440
|
+
}
|
|
20441
|
+
}
|
|
20442
|
+
if (axis.hasData() && isNumber(min) && isNumber(max)) { // #14769
|
|
20443
|
+
// Adjust extremes and translation to the modified tick positions
|
|
20444
|
+
var adjustExtremes = function () {
|
|
20445
|
+
axis.transA *= (currentTickAmount - 1) / (tickAmount - 1);
|
|
20446
|
+
// Do not crop when ticks are not extremes (#9841)
|
|
20447
|
+
axis.min = options.startOnTick ?
|
|
20448
|
+
tickPositions[0] :
|
|
20449
|
+
Math.min(min, tickPositions[0]);
|
|
20450
|
+
axis.max = options.endOnTick ?
|
|
20451
|
+
tickPositions[tickPositions.length - 1] :
|
|
20452
|
+
Math.max(max, tickPositions[tickPositions.length - 1]);
|
|
20453
|
+
};
|
|
20454
|
+
// When the axis is subject to the alignThresholds option. Use
|
|
20455
|
+
// axis.threshold because the local threshold includes the
|
|
20456
|
+
// `softThreshold`.
|
|
20457
|
+
if (isNumber(thresholdTickIndex) && isNumber(axis.threshold)) {
|
|
20458
|
+
// Throw away the previously computed tickPositions and start
|
|
20459
|
+
// from scratch with only the threshold itself, then add ticks
|
|
20460
|
+
// below the threshold first, then fill up above the threshold.
|
|
20461
|
+
// If we are not able to fill up to axis.max, double the
|
|
20462
|
+
// tickInterval and run again.
|
|
20463
|
+
while (tickPositions[thresholdTickIndex] !== threshold ||
|
|
20464
|
+
tickPositions.length !== tickAmount ||
|
|
20465
|
+
tickPositions[0] > min ||
|
|
20466
|
+
tickPositions[tickPositions.length - 1] < max) {
|
|
20467
|
+
tickPositions.length = 0;
|
|
20468
|
+
tickPositions.push(axis.threshold);
|
|
20469
|
+
while (tickPositions.length < tickAmount) {
|
|
20470
|
+
if (
|
|
20471
|
+
// Start by prepending positions until the threshold
|
|
20472
|
+
// is at the required index...
|
|
20473
|
+
tickPositions[thresholdTickIndex] === void 0 ||
|
|
20474
|
+
tickPositions[thresholdTickIndex] > axis.threshold) {
|
|
20475
|
+
prepend();
|
|
20476
|
+
}
|
|
20477
|
+
else {
|
|
20478
|
+
// ... then append positions until we have the
|
|
20479
|
+
// required length
|
|
20480
|
+
append();
|
|
20481
|
+
}
|
|
20482
|
+
}
|
|
20483
|
+
// Safety vent
|
|
20484
|
+
if (tickInterval > axis.tickInterval * 8) {
|
|
20485
|
+
break;
|
|
20486
|
+
}
|
|
20487
|
+
tickInterval *= 2;
|
|
20488
|
+
}
|
|
20489
|
+
adjustExtremes();
|
|
20490
|
+
}
|
|
20491
|
+
else if (currentTickAmount < tickAmount) {
|
|
20240
20492
|
while (tickPositions.length < tickAmount) {
|
|
20241
20493
|
// Extend evenly for both sides unless we're on the
|
|
20242
20494
|
// threshold (#3965)
|
|
20243
|
-
if (tickPositions.length % 2 ||
|
|
20244
|
-
|
|
20245
|
-
// to the end
|
|
20246
|
-
tickPositions.push(correctFloat(tickPositions[tickPositions.length - 1] +
|
|
20247
|
-
tickInterval));
|
|
20495
|
+
if (tickPositions.length % 2 || min === threshold) {
|
|
20496
|
+
append();
|
|
20248
20497
|
}
|
|
20249
20498
|
else {
|
|
20250
|
-
|
|
20251
|
-
tickPositions.unshift(correctFloat(tickPositions[0] - tickInterval));
|
|
20499
|
+
prepend();
|
|
20252
20500
|
}
|
|
20253
20501
|
}
|
|
20254
|
-
|
|
20255
|
-
// Do not crop when ticks are not extremes (#9841)
|
|
20256
|
-
axis.min = axisOptions.startOnTick ?
|
|
20257
|
-
tickPositions[0] :
|
|
20258
|
-
Math.min(axis.min, tickPositions[0]);
|
|
20259
|
-
axis.max = axisOptions.endOnTick ?
|
|
20260
|
-
tickPositions[tickPositions.length - 1] :
|
|
20261
|
-
Math.max(axis.max, tickPositions[tickPositions.length - 1]);
|
|
20262
|
-
// We have too many ticks, run second pass to try to reduce ticks
|
|
20263
|
-
}
|
|
20264
|
-
else if (currentTickAmount > tickAmount) {
|
|
20265
|
-
axis.tickInterval *= 2;
|
|
20266
|
-
axis.setTickPositions();
|
|
20502
|
+
adjustExtremes();
|
|
20267
20503
|
}
|
|
20268
20504
|
// The finalTickAmt property is set in getTickAmount
|
|
20269
20505
|
if (defined(finalTickAmt)) {
|
|
@@ -20530,7 +20766,7 @@
|
|
|
20530
20766
|
* @param {number} threshold
|
|
20531
20767
|
* The threshold in axis values.
|
|
20532
20768
|
*
|
|
20533
|
-
* @return {number
|
|
20769
|
+
* @return {number}
|
|
20534
20770
|
* The translated threshold position in terms of pixels, and corrected to
|
|
20535
20771
|
* stay within the axis bounds.
|
|
20536
20772
|
*/
|
|
@@ -21026,12 +21262,10 @@
|
|
|
21026
21262
|
axis.staggerLines = (axis.horiz && labelOptions.staggerLines) || void 0;
|
|
21027
21263
|
// Create the axisGroup and gridGroup elements on first iteration
|
|
21028
21264
|
if (!axis.axisGroup) {
|
|
21029
|
-
var createGroup = function (name,
|
|
21030
|
-
suffix,
|
|
21031
|
-
zIndex) { return renderer.g(name)
|
|
21265
|
+
var createGroup = function (name, suffix, zIndex) { return renderer.g(name)
|
|
21032
21266
|
.attr({ zIndex: zIndex })
|
|
21033
|
-
.addClass("highcharts-"
|
|
21034
|
-
(_this.isRadial ? "highcharts-radial-axis"
|
|
21267
|
+
.addClass("highcharts-".concat(coll.toLowerCase()).concat(suffix, " ") +
|
|
21268
|
+
(_this.isRadial ? "highcharts-radial-axis".concat(suffix, " ") : '') +
|
|
21035
21269
|
(className || ''))
|
|
21036
21270
|
.add(axisParent); };
|
|
21037
21271
|
axis.gridGroup = createGroup('grid', '-grid', options.gridZIndex);
|
|
@@ -21219,18 +21453,18 @@
|
|
|
21219
21453
|
// The part of a multiline text that is below the baseline of the
|
|
21220
21454
|
// first line. Subtract 1 to preserve pixel-perfectness from the
|
|
21221
21455
|
// old behaviour (v5.0.12), where only one line was allowed.
|
|
21222
|
-
textHeightOvershoot = Math.max(axisTitle.getBBox(
|
|
21456
|
+
textHeightOvershoot = axisTitle ? Math.max(axisTitle.getBBox(false, 0).height - fontMetrics.h - 1, 0) : 0,
|
|
21223
21457
|
// the position in the length direction of the axis
|
|
21224
|
-
alongAxis = {
|
|
21458
|
+
alongAxis = ({
|
|
21225
21459
|
low: margin + (horiz ? 0 : axisLength),
|
|
21226
21460
|
middle: margin + axisLength / 2,
|
|
21227
21461
|
high: margin + (horiz ? axisLength : 0)
|
|
21228
|
-
}[axisTitleOptions.align],
|
|
21462
|
+
})[axisTitleOptions.align],
|
|
21229
21463
|
// the position in the perpendicular direction of the axis
|
|
21230
21464
|
offAxis = (horiz ? axisTop + this.height : axisLeft) +
|
|
21231
21465
|
(horiz ? 1 : -1) * // horizontal axis reverses the margin
|
|
21232
21466
|
(opposite ? -1 : 1) * // so does opposite axes
|
|
21233
|
-
this.axisTitleMargin +
|
|
21467
|
+
(this.axisTitleMargin || 0) +
|
|
21234
21468
|
[
|
|
21235
21469
|
-textHeightOvershoot,
|
|
21236
21470
|
textHeightOvershoot,
|
|
@@ -21454,14 +21688,8 @@
|
|
|
21454
21688
|
}
|
|
21455
21689
|
if (axisTitle && showAxis) {
|
|
21456
21690
|
var titleXy = axis.getTitlePosition();
|
|
21457
|
-
|
|
21458
|
-
|
|
21459
|
-
axisTitle.isNew = false;
|
|
21460
|
-
}
|
|
21461
|
-
else {
|
|
21462
|
-
axisTitle.attr('y', -9999);
|
|
21463
|
-
axisTitle.isNew = true;
|
|
21464
|
-
}
|
|
21691
|
+
axisTitle[axisTitle.isNew ? 'attr' : 'animate'](titleXy);
|
|
21692
|
+
axisTitle.isNew = false;
|
|
21465
21693
|
}
|
|
21466
21694
|
// Stacked totals:
|
|
21467
21695
|
if (stackLabelOptions && stackLabelOptions.enabled && axis.stacking) {
|
|
@@ -21657,10 +21885,10 @@
|
|
|
21657
21885
|
stroke: options.color ||
|
|
21658
21886
|
(categorized ?
|
|
21659
21887
|
Color
|
|
21660
|
-
.parse("#ccd6eb" /* highlightColor20 */)
|
|
21888
|
+
.parse("#ccd6eb" /* Palette.highlightColor20 */)
|
|
21661
21889
|
.setOpacity(0.25)
|
|
21662
21890
|
.get() :
|
|
21663
|
-
"#cccccc" /* neutralColor20 */),
|
|
21891
|
+
"#cccccc" /* Palette.neutralColor20 */),
|
|
21664
21892
|
'stroke-width': pick(options.width, 1)
|
|
21665
21893
|
}).css({
|
|
21666
21894
|
'pointer-events': 'none'
|
|
@@ -22265,10 +22493,13 @@
|
|
|
22265
22493
|
* @private
|
|
22266
22494
|
*/
|
|
22267
22495
|
Additions.prototype.getXDateFormat = function (x, dateTimeLabelFormats) {
|
|
22268
|
-
var axis = this.axis
|
|
22496
|
+
var axis = this.axis,
|
|
22497
|
+
time = axis.chart.time;
|
|
22269
22498
|
return axis.closestPointRange ?
|
|
22270
|
-
|
|
22271
|
-
|
|
22499
|
+
time.getDateFormat(axis.closestPointRange, x, axis.options.startOfWeek, dateTimeLabelFormats) ||
|
|
22500
|
+
// #2546, 2581
|
|
22501
|
+
time.resolveDTLFormat(dateTimeLabelFormats.year).main :
|
|
22502
|
+
time.resolveDTLFormat(dateTimeLabelFormats.day).main;
|
|
22272
22503
|
};
|
|
22273
22504
|
return Additions;
|
|
22274
22505
|
}());
|
|
@@ -22469,7 +22700,7 @@
|
|
|
22469
22700
|
axisLength;
|
|
22470
22701
|
interval = pick(filteredTickIntervalOption, log.minorAutoInterval, (realMax - realMin) *
|
|
22471
22702
|
tickPixelIntervalOption / (totalPixelLength || 1));
|
|
22472
|
-
interval = normalizeTickInterval(interval
|
|
22703
|
+
interval = normalizeTickInterval(interval);
|
|
22473
22704
|
positions = axis.getLinearTickPositions(interval, realMin, realMax).map(log.log2lin);
|
|
22474
22705
|
if (!minor) {
|
|
22475
22706
|
log.minorAutoInterval = interval / 5;
|
|
@@ -22903,7 +23134,7 @@
|
|
|
22903
23134
|
// Set the presentational attributes
|
|
22904
23135
|
if (!axis.chart.styledMode) {
|
|
22905
23136
|
if (isLine) {
|
|
22906
|
-
attribs.stroke = color || "#999999" /* neutralColor40 */;
|
|
23137
|
+
attribs.stroke = color || "#999999" /* Palette.neutralColor40 */;
|
|
22907
23138
|
attribs['stroke-width'] = pick(options.width, 1);
|
|
22908
23139
|
if (options.dashStyle) {
|
|
22909
23140
|
attribs.dashstyle =
|
|
@@ -22911,7 +23142,7 @@
|
|
|
22911
23142
|
}
|
|
22912
23143
|
}
|
|
22913
23144
|
else if (isBand) { // plot band
|
|
22914
|
-
attribs.fill = color || "#e6ebf5" /* highlightColor10 */;
|
|
23145
|
+
attribs.fill = color || "#e6ebf5" /* Palette.highlightColor10 */;
|
|
22915
23146
|
if (options.borderWidth) {
|
|
22916
23147
|
attribs.stroke = options.borderColor;
|
|
22917
23148
|
attribs['stroke-width'] = options.borderWidth;
|
|
@@ -22969,7 +23200,7 @@
|
|
|
22969
23200
|
}
|
|
22970
23201
|
else if (svgElem) {
|
|
22971
23202
|
if (path) {
|
|
22972
|
-
svgElem.show(
|
|
23203
|
+
svgElem.show();
|
|
22973
23204
|
svgElem.animate({ d: path });
|
|
22974
23205
|
}
|
|
22975
23206
|
else if (svgElem.d) {
|
|
@@ -23869,6 +24100,12 @@
|
|
|
23869
24100
|
* the context here is an object holding point, series, x, y etc.
|
|
23870
24101
|
*
|
|
23871
24102
|
* @function Highcharts.Tooltip#defaultFormatter
|
|
24103
|
+
*
|
|
24104
|
+
* @param {Highcharts.Tooltip} tooltip
|
|
24105
|
+
*
|
|
24106
|
+
* @return {string|Array<string>}
|
|
24107
|
+
* Returns a string (single tooltip and shared)
|
|
24108
|
+
* or an array of strings (split tooltip)
|
|
23872
24109
|
*/
|
|
23873
24110
|
Tooltip.prototype.defaultFormatter = function (tooltip) {
|
|
23874
24111
|
var items = this.points || splat(this);
|
|
@@ -24471,7 +24708,7 @@
|
|
|
24471
24708
|
shared = tooltip.shared,
|
|
24472
24709
|
styledMode = chart.styledMode;
|
|
24473
24710
|
var textConfig = {};
|
|
24474
|
-
if (!options.enabled) {
|
|
24711
|
+
if (!options.enabled || !point.series) { // #16820
|
|
24475
24712
|
return;
|
|
24476
24713
|
}
|
|
24477
24714
|
U.clearTimeout(this.hideTimer);
|
|
@@ -24554,7 +24791,7 @@
|
|
|
24554
24791
|
stroke: (options.borderColor ||
|
|
24555
24792
|
point.color ||
|
|
24556
24793
|
currentSeries.color ||
|
|
24557
|
-
"#666666" /* neutralColor60 */)
|
|
24794
|
+
"#666666" /* Palette.neutralColor60 */)
|
|
24558
24795
|
});
|
|
24559
24796
|
}
|
|
24560
24797
|
tooltip.updatePosition({
|
|
@@ -24754,7 +24991,7 @@
|
|
|
24754
24991
|
stroke: (options.borderColor ||
|
|
24755
24992
|
point.color ||
|
|
24756
24993
|
series.color ||
|
|
24757
|
-
"#333333" /* neutralColor80 */)
|
|
24994
|
+
"#333333" /* Palette.neutralColor80 */)
|
|
24758
24995
|
});
|
|
24759
24996
|
}
|
|
24760
24997
|
return tt;
|
|
@@ -25092,7 +25329,7 @@
|
|
|
25092
25329
|
// scale transform/css zoom. #11329.
|
|
25093
25330
|
if (chartPosition.scaleX !== 1 || chartPosition.scaleY !== 1) {
|
|
25094
25331
|
css(this.container, {
|
|
25095
|
-
transform: "scale("
|
|
25332
|
+
transform: "scale(".concat(chartPosition.scaleX, ", ").concat(chartPosition.scaleY, ")")
|
|
25096
25333
|
});
|
|
25097
25334
|
anchorX *= chartPosition.scaleX;
|
|
25098
25335
|
anchorY *= chartPosition.scaleY;
|
|
@@ -25127,46 +25364,23 @@
|
|
|
25127
25364
|
* @callback Highcharts.TooltipFormatterCallbackFunction
|
|
25128
25365
|
*
|
|
25129
25366
|
* @param {Highcharts.TooltipFormatterContextObject} this
|
|
25130
|
-
*
|
|
25367
|
+
* Context to format
|
|
25131
25368
|
*
|
|
25132
25369
|
* @param {Highcharts.Tooltip} tooltip
|
|
25133
|
-
*
|
|
25370
|
+
* The tooltip instance
|
|
25134
25371
|
*
|
|
25135
25372
|
* @return {false|string|Array<(string|null|undefined)>|null|undefined}
|
|
25136
|
-
*
|
|
25373
|
+
* Formatted text or false
|
|
25137
25374
|
*/
|
|
25138
25375
|
/**
|
|
25376
|
+
* Configuration for the tooltip formatters.
|
|
25377
|
+
*
|
|
25139
25378
|
* @interface Highcharts.TooltipFormatterContextObject
|
|
25379
|
+
* @extends Highcharts.PointLabelObject
|
|
25140
25380
|
*/ /**
|
|
25141
|
-
*
|
|
25142
|
-
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
25143
|
-
*/ /**
|
|
25144
|
-
* @name Highcharts.TooltipFormatterContextObject#colorIndex
|
|
25145
|
-
* @type {number|undefined}
|
|
25146
|
-
*/ /**
|
|
25147
|
-
* @name Highcharts.TooltipFormatterContextObject#key
|
|
25148
|
-
* @type {number}
|
|
25149
|
-
*/ /**
|
|
25150
|
-
* @name Highcharts.TooltipFormatterContextObject#percentage
|
|
25151
|
-
* @type {number|undefined}
|
|
25152
|
-
*/ /**
|
|
25153
|
-
* @name Highcharts.TooltipFormatterContextObject#point
|
|
25154
|
-
* @type {Highcharts.Point}
|
|
25155
|
-
*/ /**
|
|
25381
|
+
* Array of points in shared tooltips.
|
|
25156
25382
|
* @name Highcharts.TooltipFormatterContextObject#points
|
|
25157
25383
|
* @type {Array<Highcharts.TooltipFormatterContextObject>|undefined}
|
|
25158
|
-
*/ /**
|
|
25159
|
-
* @name Highcharts.TooltipFormatterContextObject#series
|
|
25160
|
-
* @type {Highcharts.Series}
|
|
25161
|
-
*/ /**
|
|
25162
|
-
* @name Highcharts.TooltipFormatterContextObject#total
|
|
25163
|
-
* @type {number|undefined}
|
|
25164
|
-
*/ /**
|
|
25165
|
-
* @name Highcharts.TooltipFormatterContextObject#x
|
|
25166
|
-
* @type {number}
|
|
25167
|
-
*/ /**
|
|
25168
|
-
* @name Highcharts.TooltipFormatterContextObject#y
|
|
25169
|
-
* @type {number}
|
|
25170
25384
|
*/
|
|
25171
25385
|
/**
|
|
25172
25386
|
* A callback function to place the tooltip in a specific position.
|
|
@@ -25343,6 +25557,15 @@
|
|
|
25343
25557
|
* @type {Highcharts.Series}
|
|
25344
25558
|
*/
|
|
25345
25559
|
this.series = void 0;
|
|
25560
|
+
/**
|
|
25561
|
+
* The attributes of the rendered SVG shape like in `column` or `pie`
|
|
25562
|
+
* series.
|
|
25563
|
+
*
|
|
25564
|
+
* @readonly
|
|
25565
|
+
* @name Highcharts.Point#shapeArgs
|
|
25566
|
+
* @type {Readonly<Highcharts.SVGAttributes>|undefined}
|
|
25567
|
+
*/
|
|
25568
|
+
this.shapeArgs = void 0;
|
|
25346
25569
|
/**
|
|
25347
25570
|
* The total of values in either a stack for stacked series, or a pie in a
|
|
25348
25571
|
* pie series.
|
|
@@ -26422,7 +26645,7 @@
|
|
|
26422
26645
|
* @type {Highcharts.Point}
|
|
26423
26646
|
*/
|
|
26424
26647
|
/**
|
|
26425
|
-
* Configuration
|
|
26648
|
+
* Configuration for the data label and tooltip formatters.
|
|
26426
26649
|
*
|
|
26427
26650
|
* @interface Highcharts.PointLabelObject
|
|
26428
26651
|
*/ /**
|
|
@@ -26464,7 +26687,7 @@
|
|
|
26464
26687
|
*/ /**
|
|
26465
26688
|
* The y value of the point.
|
|
26466
26689
|
* @name Highcharts.PointLabelObject#y
|
|
26467
|
-
* @type {number|undefined}
|
|
26690
|
+
* @type {number|null|undefined}
|
|
26468
26691
|
*/
|
|
26469
26692
|
/**
|
|
26470
26693
|
* Gets fired when the mouse leaves the area close to the point.
|
|
@@ -26801,7 +27024,7 @@
|
|
|
26801
27024
|
if (!chart.styledMode) {
|
|
26802
27025
|
selectionMarker.attr({
|
|
26803
27026
|
fill: (chartOptions.selectionMarkerFill ||
|
|
26804
|
-
color("#335cad" /* highlightColor80 */)
|
|
27027
|
+
color("#335cad" /* Palette.highlightColor80 */)
|
|
26805
27028
|
.setOpacity(0.25).get())
|
|
26806
27029
|
});
|
|
26807
27030
|
}
|
|
@@ -27244,9 +27467,10 @@
|
|
|
27244
27467
|
* name.
|
|
27245
27468
|
*/
|
|
27246
27469
|
Pointer.prototype.inClass = function (element, className) {
|
|
27247
|
-
var
|
|
27248
|
-
|
|
27249
|
-
|
|
27470
|
+
var elem = element,
|
|
27471
|
+
elemClassName;
|
|
27472
|
+
while (elem) {
|
|
27473
|
+
elemClassName = attr(elem, 'class');
|
|
27250
27474
|
if (elemClassName) {
|
|
27251
27475
|
if (elemClassName.indexOf(className) !== -1) {
|
|
27252
27476
|
return true;
|
|
@@ -27255,7 +27479,7 @@
|
|
|
27255
27479
|
return false;
|
|
27256
27480
|
}
|
|
27257
27481
|
}
|
|
27258
|
-
|
|
27482
|
+
elem = elem.parentElement;
|
|
27259
27483
|
}
|
|
27260
27484
|
};
|
|
27261
27485
|
/**
|
|
@@ -27296,6 +27520,9 @@
|
|
|
27296
27520
|
* properties `chartX` and `chartY` in order to work on the internal
|
|
27297
27521
|
* coordinate system.
|
|
27298
27522
|
*
|
|
27523
|
+
* On map charts, the properties `lon` and `lat` are added to the event
|
|
27524
|
+
* object given that the chart has projection information.
|
|
27525
|
+
*
|
|
27299
27526
|
* @function Highcharts.Pointer#normalize
|
|
27300
27527
|
*
|
|
27301
27528
|
* @param {global.MouseEvent|global.PointerEvent|global.TouchEvent} e
|
|
@@ -27891,11 +28118,12 @@
|
|
|
27891
28118
|
* The mouseOver event should be triggered when hoverPoint
|
|
27892
28119
|
* is correct.
|
|
27893
28120
|
*/
|
|
27894
|
-
hoverPoint.firePointEvent('mouseOver')
|
|
27895
|
-
|
|
27896
|
-
|
|
27897
|
-
|
|
27898
|
-
|
|
28121
|
+
hoverPoint.firePointEvent('mouseOver', void 0, function () {
|
|
28122
|
+
// Draw tooltip if necessary
|
|
28123
|
+
if (tooltip && hoverPoint) {
|
|
28124
|
+
tooltip.refresh(useSharedTooltip ? points : hoverPoint, e);
|
|
28125
|
+
}
|
|
28126
|
+
});
|
|
27899
28127
|
// Update positions (regardless of kdpoint or hoverPoint)
|
|
27900
28128
|
}
|
|
27901
28129
|
else if (followPointer && tooltip && !tooltip.isHidden) {
|
|
@@ -27926,7 +28154,7 @@
|
|
|
27926
28154
|
point = chart.hoverPoint; // #13002
|
|
27927
28155
|
if (!point || point.series[axis.coll] !== axis) {
|
|
27928
28156
|
point = find(points, function (p) {
|
|
27929
|
-
return p.series[axis.coll] === axis;
|
|
28157
|
+
return p.series && p.series[axis.coll] === axis;
|
|
27930
28158
|
});
|
|
27931
28159
|
}
|
|
27932
28160
|
}
|
|
@@ -28015,7 +28243,7 @@
|
|
|
28015
28243
|
var hoverChart = H.charts[pick(Pointer.hoverChartIndex, -1)];
|
|
28016
28244
|
if (hoverChart &&
|
|
28017
28245
|
hoverChart !== chart) {
|
|
28018
|
-
hoverChart.pointer.onContainerMouseLeave({ relatedTarget:
|
|
28246
|
+
hoverChart.pointer.onContainerMouseLeave({ relatedTarget: chart.container });
|
|
28019
28247
|
}
|
|
28020
28248
|
if (!hoverChart ||
|
|
28021
28249
|
!hoverChart.mouseIsDown) {
|
|
@@ -28477,7 +28705,7 @@
|
|
|
28477
28705
|
this.maxItemWidth = 0;
|
|
28478
28706
|
this.maxLegendWidth = 0;
|
|
28479
28707
|
this.offsetWidth = 0;
|
|
28480
|
-
this.options =
|
|
28708
|
+
this.options = void 0;
|
|
28481
28709
|
this.padding = 0;
|
|
28482
28710
|
this.pages = [];
|
|
28483
28711
|
this.proximate = false;
|
|
@@ -28808,7 +29036,7 @@
|
|
|
28808
29036
|
* @name Highcharts.Legend#title
|
|
28809
29037
|
* @type {Highcharts.SVGElement}
|
|
28810
29038
|
*/
|
|
28811
|
-
this.title = this.chart.renderer.label(titleOptions.text, padding - 3, padding - 4,
|
|
29039
|
+
this.title = this.chart.renderer.label(titleOptions.text, padding - 3, padding - 4, void 0, void 0, void 0, options.useHTML, void 0, 'legend-title')
|
|
28812
29040
|
.attr({ zIndex: 1 });
|
|
28813
29041
|
if (!this.chart.styledMode) {
|
|
28814
29042
|
this.title.css(titleOptions.style);
|
|
@@ -28869,7 +29097,7 @@
|
|
|
28869
29097
|
item.series :
|
|
28870
29098
|
item,
|
|
28871
29099
|
seriesOptions = series.options,
|
|
28872
|
-
showCheckbox = legend.createCheckboxForItem &&
|
|
29100
|
+
showCheckbox = (legend.createCheckboxForItem) &&
|
|
28873
29101
|
seriesOptions &&
|
|
28874
29102
|
seriesOptions.showCheckbox,
|
|
28875
29103
|
useHTML = options.useHTML,
|
|
@@ -29140,7 +29368,7 @@
|
|
|
29140
29368
|
}
|
|
29141
29369
|
}, this);
|
|
29142
29370
|
distribute(boxes, chart.plotHeight).forEach(function (box) {
|
|
29143
|
-
if (box.item._legendItemPos) {
|
|
29371
|
+
if (box.item._legendItemPos && box.pos) {
|
|
29144
29372
|
box.item._legendItemPos[1] =
|
|
29145
29373
|
chart.plotTop - chart.spacing[0] + box.pos;
|
|
29146
29374
|
}
|
|
@@ -29175,8 +29403,7 @@
|
|
|
29175
29403
|
legend.lastItemY = 0;
|
|
29176
29404
|
legend.widthOption = relativeLength(options.width, chart.spacingBox.width - padding);
|
|
29177
29405
|
// Compute how wide the legend is allowed to be
|
|
29178
|
-
allowedWidth =
|
|
29179
|
-
chart.spacingBox.width - 2 * padding - options.x;
|
|
29406
|
+
allowedWidth = chart.spacingBox.width - 2 * padding - options.x;
|
|
29180
29407
|
if (['rm', 'lm'].indexOf(legend.getAlignment().substring(0, 2)) > -1) {
|
|
29181
29408
|
allowedWidth /= 2;
|
|
29182
29409
|
}
|
|
@@ -29249,7 +29476,6 @@
|
|
|
29249
29476
|
r: options.borderRadius
|
|
29250
29477
|
})
|
|
29251
29478
|
.add(legendGroup);
|
|
29252
|
-
box.isNew = true;
|
|
29253
29479
|
}
|
|
29254
29480
|
// Presentational
|
|
29255
29481
|
if (!chart.styledMode) {
|
|
@@ -29262,16 +29488,15 @@
|
|
|
29262
29488
|
.shadow(options.shadow);
|
|
29263
29489
|
}
|
|
29264
29490
|
if (legendWidth > 0 && legendHeight > 0) {
|
|
29265
|
-
box[box.
|
|
29491
|
+
box[box.placed ? 'animate' : 'attr'](box.crisp.call({}, {
|
|
29266
29492
|
x: 0,
|
|
29267
29493
|
y: 0,
|
|
29268
29494
|
width: legendWidth,
|
|
29269
29495
|
height: legendHeight
|
|
29270
29496
|
}, box.strokeWidth()));
|
|
29271
|
-
box.isNew = false;
|
|
29272
29497
|
}
|
|
29273
29498
|
// hide the border if no items
|
|
29274
|
-
|
|
29499
|
+
legendGroup[display ? 'show' : 'hide']();
|
|
29275
29500
|
// Open for responsiveness
|
|
29276
29501
|
if (chart.styledMode && legendGroup.getStyle('display') === 'none') {
|
|
29277
29502
|
legendWidth = legendHeight = 0;
|
|
@@ -29311,6 +29536,11 @@
|
|
|
29311
29536
|
if (y !== alignTo.y) {
|
|
29312
29537
|
alignTo = merge(alignTo, { y: y });
|
|
29313
29538
|
}
|
|
29539
|
+
if (!chart.hasRendered) {
|
|
29540
|
+
// Avoid animation when adjusting alignment for responsiveness and
|
|
29541
|
+
// colorAxis label layout
|
|
29542
|
+
this.group.placed = false;
|
|
29543
|
+
}
|
|
29314
29544
|
this.group.align(merge(options, {
|
|
29315
29545
|
width: this.legendWidth,
|
|
29316
29546
|
height: this.legendHeight,
|
|
@@ -29444,7 +29674,7 @@
|
|
|
29444
29674
|
});
|
|
29445
29675
|
this.pager = renderer.text('', 15, 10)
|
|
29446
29676
|
.addClass('highcharts-legend-navigation');
|
|
29447
|
-
if (!chart.styledMode) {
|
|
29677
|
+
if (!chart.styledMode && navOptions.style) {
|
|
29448
29678
|
this.pager.css(navOptions.style);
|
|
29449
29679
|
}
|
|
29450
29680
|
this.pager.add(nav);
|
|
@@ -29505,7 +29735,7 @@
|
|
|
29505
29735
|
this.nav.attr({
|
|
29506
29736
|
translateX: padding,
|
|
29507
29737
|
translateY: clipHeight + this.padding + 7 + this.titleHeight,
|
|
29508
|
-
visibility: '
|
|
29738
|
+
visibility: 'inherit'
|
|
29509
29739
|
});
|
|
29510
29740
|
[this.up, this.upTracker].forEach(function (elem) {
|
|
29511
29741
|
elem.attr({
|
|
@@ -29957,7 +30187,6 @@
|
|
|
29957
30187
|
fireEvent = U.fireEvent,
|
|
29958
30188
|
getStyle = U.getStyle,
|
|
29959
30189
|
isArray = U.isArray,
|
|
29960
|
-
isFunction = U.isFunction,
|
|
29961
30190
|
isNumber = U.isNumber,
|
|
29962
30191
|
isObject = U.isObject,
|
|
29963
30192
|
isString = U.isString,
|
|
@@ -30719,10 +30948,10 @@
|
|
|
30719
30948
|
var chart = this;
|
|
30720
30949
|
// Default style
|
|
30721
30950
|
var style = name === 'title' ? {
|
|
30722
|
-
color: "#333333" /* neutralColor80 */,
|
|
30951
|
+
color: "#333333" /* Palette.neutralColor80 */,
|
|
30723
30952
|
fontSize: this.options.isStock ? '16px' : '18px' // #2944
|
|
30724
30953
|
} : {
|
|
30725
|
-
color: "#666666" /* neutralColor60 */
|
|
30954
|
+
color: "#666666" /* Palette.neutralColor60 */
|
|
30726
30955
|
};
|
|
30727
30956
|
// Merge default options with explicit options
|
|
30728
30957
|
var options = this.options[name] = merge(
|
|
@@ -32003,9 +32232,32 @@
|
|
|
32003
32232
|
if (defined(this.index)) {
|
|
32004
32233
|
this.setReflow(this.options.chart.reflow);
|
|
32005
32234
|
}
|
|
32235
|
+
this.warnIfA11yModuleNotLoaded();
|
|
32006
32236
|
// Don't run again
|
|
32007
32237
|
this.hasLoaded = true;
|
|
32008
32238
|
};
|
|
32239
|
+
/**
|
|
32240
|
+
* Emit console warning if the a11y module is not loaded.
|
|
32241
|
+
*/
|
|
32242
|
+
Chart.prototype.warnIfA11yModuleNotLoaded = function () {
|
|
32243
|
+
var _a = this,
|
|
32244
|
+
options = _a.options,
|
|
32245
|
+
title = _a.title;
|
|
32246
|
+
if (options && !this.accessibility) {
|
|
32247
|
+
// Make chart behave as an image with the title as alt text
|
|
32248
|
+
this.renderer.boxWrapper.attr({
|
|
32249
|
+
role: 'img',
|
|
32250
|
+
'aria-label': (title && title.element.textContent) || ''
|
|
32251
|
+
});
|
|
32252
|
+
if (!(options.accessibility && options.accessibility.enabled === false)) {
|
|
32253
|
+
error('Highcharts warning: Consider including the ' +
|
|
32254
|
+
'"accessibility.js" module to make your chart more ' +
|
|
32255
|
+
'usable for people with disabilities. Set the ' +
|
|
32256
|
+
'"accessibility.enabled" option to false to remove this ' +
|
|
32257
|
+
'warning. See https://www.highcharts.com/docs/accessibility/accessibility-module.', false, this);
|
|
32258
|
+
}
|
|
32259
|
+
}
|
|
32260
|
+
};
|
|
32009
32261
|
/**
|
|
32010
32262
|
* Add a series to the chart after render time. Note that this method should
|
|
32011
32263
|
* never be used when adding data synchronously at chart render time, as it
|
|
@@ -32570,7 +32822,6 @@
|
|
|
32570
32822
|
lang = defaultOptions.lang,
|
|
32571
32823
|
btnOptions = chart.options.chart.resetZoomButton,
|
|
32572
32824
|
theme = btnOptions.theme,
|
|
32573
|
-
states = theme.states,
|
|
32574
32825
|
alignTo = (btnOptions.relativeTo === 'chart' ||
|
|
32575
32826
|
btnOptions.relativeTo === 'spacingBox' ?
|
|
32576
32827
|
null :
|
|
@@ -32583,7 +32834,7 @@
|
|
|
32583
32834
|
}
|
|
32584
32835
|
fireEvent(this, 'beforeShowResetZoom', null, function () {
|
|
32585
32836
|
chart.resetZoomButton = chart.renderer
|
|
32586
|
-
.button(lang.resetZoom, null, null, zoomOut, theme
|
|
32837
|
+
.button(lang.resetZoom, null, null, zoomOut, theme)
|
|
32587
32838
|
.attr({
|
|
32588
32839
|
align: btnOptions.position.align,
|
|
32589
32840
|
title: lang.resetZoomTitle
|
|
@@ -32684,9 +32935,7 @@
|
|
|
32684
32935
|
enabled: panning,
|
|
32685
32936
|
type: 'x'
|
|
32686
32937
|
}),
|
|
32687
|
-
chartOptions = chart.options.chart
|
|
32688
|
-
hasMapNavigation = chart.options.mapNavigation &&
|
|
32689
|
-
chart.options.mapNavigation.enabled;
|
|
32938
|
+
chartOptions = chart.options.chart;
|
|
32690
32939
|
if (chartOptions && chartOptions.panning) {
|
|
32691
32940
|
chartOptions.panning = panningOptions;
|
|
32692
32941
|
}
|
|
@@ -32781,7 +33030,6 @@
|
|
|
32781
33030
|
newMax <= paddedMax) {
|
|
32782
33031
|
axis.setExtremes(newMin, newMax, false, false, { trigger: 'pan' });
|
|
32783
33032
|
if (!chart.resetZoomButton &&
|
|
32784
|
-
!hasMapNavigation &&
|
|
32785
33033
|
// Show reset zoom button only when both newMin and
|
|
32786
33034
|
// newMax values are between padded axis range.
|
|
32787
33035
|
newMin !== paddedMin &&
|
|
@@ -34112,7 +34360,7 @@
|
|
|
34112
34360
|
*
|
|
34113
34361
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
34114
34362
|
*/
|
|
34115
|
-
lineColor: "#ffffff" /* backgroundColor */,
|
|
34363
|
+
lineColor: "#ffffff" /* Palette.backgroundColor */,
|
|
34116
34364
|
/**
|
|
34117
34365
|
* The width of the point marker's outline.
|
|
34118
34366
|
*
|
|
@@ -34312,7 +34560,7 @@
|
|
|
34312
34560
|
*
|
|
34313
34561
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
34314
34562
|
*/
|
|
34315
|
-
fillColor: "#cccccc" /* neutralColor20 */,
|
|
34563
|
+
fillColor: "#cccccc" /* Palette.neutralColor20 */,
|
|
34316
34564
|
/**
|
|
34317
34565
|
* The color of the point marker's outline. When
|
|
34318
34566
|
* `undefined`, the series' or point's color is used.
|
|
@@ -34322,7 +34570,7 @@
|
|
|
34322
34570
|
*
|
|
34323
34571
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
34324
34572
|
*/
|
|
34325
|
-
lineColor: "#000000" /* neutralColor100 */,
|
|
34573
|
+
lineColor: "#000000" /* Palette.neutralColor100 */,
|
|
34326
34574
|
/**
|
|
34327
34575
|
* The width of the point marker's outline.
|
|
34328
34576
|
*
|
|
@@ -34381,6 +34629,9 @@
|
|
|
34381
34629
|
* parameter, `event`, is passed to the function, containing common
|
|
34382
34630
|
* event information.
|
|
34383
34631
|
*
|
|
34632
|
+
* Returning `false` cancels the default behavior, which is to show a
|
|
34633
|
+
* tooltip for the point.
|
|
34634
|
+
*
|
|
34384
34635
|
* @sample {highcharts} highcharts/plotoptions/series-point-events-mouseover/
|
|
34385
34636
|
* Show values in the chart's corner on mouse over
|
|
34386
34637
|
*
|
|
@@ -35103,7 +35354,7 @@
|
|
|
35103
35354
|
* @deprecated
|
|
35104
35355
|
*
|
|
35105
35356
|
* @extends plotOptions.series.marker
|
|
35106
|
-
* @excluding states
|
|
35357
|
+
* @excluding states, symbol
|
|
35107
35358
|
* @product highcharts highstock
|
|
35108
35359
|
*/
|
|
35109
35360
|
marker: {
|
|
@@ -36035,7 +36286,7 @@
|
|
|
36035
36286
|
this.getCyclic('color');
|
|
36036
36287
|
}
|
|
36037
36288
|
else if (this.options.colorByPoint) {
|
|
36038
|
-
this.color = "#cccccc" /* neutralColor20 */;
|
|
36289
|
+
this.color = "#cccccc" /* Palette.neutralColor20 */;
|
|
36039
36290
|
}
|
|
36040
36291
|
else {
|
|
36041
36292
|
this.getCyclic('color', this.options.color ||
|
|
@@ -36222,7 +36473,7 @@
|
|
|
36222
36473
|
data.forEach(function (point, i) {
|
|
36223
36474
|
// .update doesn't exist on a linked, hidden series (#3709)
|
|
36224
36475
|
// (#10187)
|
|
36225
|
-
if (point !== oldData[i].y && oldData[i].update) {
|
|
36476
|
+
if (point !== oldData[i].y && (oldData[i].update)) {
|
|
36226
36477
|
oldData[i].update(point, false, null, false);
|
|
36227
36478
|
}
|
|
36228
36479
|
});
|
|
@@ -36319,8 +36570,19 @@
|
|
|
36319
36570
|
updatedData,
|
|
36320
36571
|
indexOfX = 0,
|
|
36321
36572
|
indexOfY = 1,
|
|
36322
|
-
firstPoint = null
|
|
36323
|
-
|
|
36573
|
+
firstPoint = null,
|
|
36574
|
+
copiedData;
|
|
36575
|
+
if (!chart.options.chart.allowMutatingData) { // #4259
|
|
36576
|
+
// Remove old reference
|
|
36577
|
+
if (options.data) {
|
|
36578
|
+
delete series.options.data;
|
|
36579
|
+
}
|
|
36580
|
+
if (series.userOptions.data) {
|
|
36581
|
+
delete series.userOptions.data;
|
|
36582
|
+
}
|
|
36583
|
+
copiedData = merge(true, data);
|
|
36584
|
+
}
|
|
36585
|
+
data = copiedData || data || [];
|
|
36324
36586
|
var dataLength = data.length;
|
|
36325
36587
|
redraw = pick(redraw, true);
|
|
36326
36588
|
if (dataSorting && dataSorting.enabled) {
|
|
@@ -36328,7 +36590,8 @@
|
|
|
36328
36590
|
}
|
|
36329
36591
|
// First try to run Point.update which is cheaper, allows animation,
|
|
36330
36592
|
// and keeps references to points.
|
|
36331
|
-
if (
|
|
36593
|
+
if (chart.options.chart.allowMutatingData &&
|
|
36594
|
+
updatePoints !== false &&
|
|
36332
36595
|
dataLength &&
|
|
36333
36596
|
oldDataLength &&
|
|
36334
36597
|
!series.cropped &&
|
|
@@ -36429,7 +36692,7 @@
|
|
|
36429
36692
|
// destroy old points
|
|
36430
36693
|
i = oldDataLength;
|
|
36431
36694
|
while (i--) {
|
|
36432
|
-
if (oldData[i] && oldData[i].destroy) {
|
|
36695
|
+
if (oldData[i] && (oldData[i].destroy)) {
|
|
36433
36696
|
oldData[i].destroy();
|
|
36434
36697
|
}
|
|
36435
36698
|
}
|
|
@@ -36553,7 +36816,7 @@
|
|
|
36553
36816
|
xExtremes = xAxis.getExtremes();
|
|
36554
36817
|
min = xExtremes.min;
|
|
36555
36818
|
max = xExtremes.max;
|
|
36556
|
-
updatingNames = xAxis.categories && !xAxis.names.length;
|
|
36819
|
+
updatingNames = !!(xAxis.categories && !xAxis.names.length);
|
|
36557
36820
|
}
|
|
36558
36821
|
// optionally filter out points outside the plot area
|
|
36559
36822
|
if (isCartesian &&
|
|
@@ -36687,7 +36950,7 @@
|
|
|
36687
36950
|
Series.prototype.generatePoints = function () {
|
|
36688
36951
|
var series = this,
|
|
36689
36952
|
options = series.options,
|
|
36690
|
-
dataOptions = options.data,
|
|
36953
|
+
dataOptions = (series.processedData || options.data),
|
|
36691
36954
|
processedXData = series.processedXData,
|
|
36692
36955
|
processedYData = series.processedYData,
|
|
36693
36956
|
PointClass = series.pointClass,
|
|
@@ -37020,8 +37283,16 @@
|
|
|
37020
37283
|
!xAxis.validatePositiveValue(xValue)) {
|
|
37021
37284
|
point.isNull = true;
|
|
37022
37285
|
}
|
|
37023
|
-
|
|
37286
|
+
/**
|
|
37287
|
+
* The translated X value for the point in terms of pixels. Relative
|
|
37288
|
+
* to the X axis position if the series has one, otherwise relative
|
|
37289
|
+
* to the plot area. Depending on the series type this value might
|
|
37290
|
+
* not be defined.
|
|
37291
|
+
* @name Highcharts.Point#plotX
|
|
37292
|
+
* @type {number|undefined}
|
|
37293
|
+
*/
|
|
37024
37294
|
point.plotX = plotX = correctFloat(// #5236
|
|
37295
|
+
// Get the plotX translation
|
|
37025
37296
|
limitedRange(xAxis.translate(// #3923
|
|
37026
37297
|
xValue, 0, 0, 0, 1, pointPlacement, this.type === 'flags')) // #3923
|
|
37027
37298
|
);
|
|
@@ -37082,6 +37353,14 @@
|
|
|
37082
37353
|
false,
|
|
37083
37354
|
true);
|
|
37084
37355
|
if (typeof translated !== 'undefined') {
|
|
37356
|
+
/**
|
|
37357
|
+
* The translated Y value for the point in terms of pixels.
|
|
37358
|
+
* Relative to the Y axis position if the series has one,
|
|
37359
|
+
* otherwise relative to the plot area. Depending on the
|
|
37360
|
+
* series type this value might not be defined.
|
|
37361
|
+
* @name Highcharts.Point#plotY
|
|
37362
|
+
* @type {number|undefined}
|
|
37363
|
+
*/
|
|
37085
37364
|
point.plotY = limitedRange(translated);
|
|
37086
37365
|
}
|
|
37087
37366
|
}
|
|
@@ -37096,10 +37375,7 @@
|
|
|
37096
37375
|
threshold ||
|
|
37097
37376
|
0);
|
|
37098
37377
|
// some API data
|
|
37099
|
-
point.category = (categories &&
|
|
37100
|
-
typeof categories[point.x] !== 'undefined' ?
|
|
37101
|
-
categories[point.x] :
|
|
37102
|
-
point.x);
|
|
37378
|
+
point.category = pick(categories && categories[point.x], point.x);
|
|
37103
37379
|
// Determine auto enabling of markers (#3635, #5099)
|
|
37104
37380
|
if (!point.isNull && point.visible !== false) {
|
|
37105
37381
|
if (typeof lastPlotX !== 'undefined') {
|
|
@@ -37308,7 +37584,7 @@
|
|
|
37308
37584
|
this.setClip();
|
|
37309
37585
|
// Destroy temporary clip rectangles that are no longer in use
|
|
37310
37586
|
objectEach(this.chart.sharedClips, function (clip, key, sharedClips) {
|
|
37311
|
-
if (clip && !_this.chart.container.querySelector("[clip-path=\"url(#"
|
|
37587
|
+
if (clip && !_this.chart.container.querySelector("[clip-path=\"url(#".concat(clip.id, ")\"]"))) {
|
|
37312
37588
|
clip.destroy();
|
|
37313
37589
|
delete sharedClips[key];
|
|
37314
37590
|
}
|
|
@@ -37450,26 +37726,26 @@
|
|
|
37450
37726
|
var seriesStateOptions,
|
|
37451
37727
|
pointStateOptions,
|
|
37452
37728
|
radius = pick(pointMarkerOptions.radius,
|
|
37453
|
-
seriesMarkerOptions.radius);
|
|
37729
|
+
seriesMarkerOptions && seriesMarkerOptions.radius);
|
|
37454
37730
|
// Handle hover and select states
|
|
37455
37731
|
if (state) {
|
|
37456
37732
|
seriesStateOptions = seriesMarkerOptions.states[state];
|
|
37457
37733
|
pointStateOptions = pointMarkerOptions.states &&
|
|
37458
37734
|
pointMarkerOptions.states[state];
|
|
37459
|
-
radius = pick(pointStateOptions && pointStateOptions.radius, seriesStateOptions && seriesStateOptions.radius, radius + (seriesStateOptions && seriesStateOptions.radiusPlus ||
|
|
37735
|
+
radius = pick(pointStateOptions && pointStateOptions.radius, seriesStateOptions && seriesStateOptions.radius, radius && radius + (seriesStateOptions && seriesStateOptions.radiusPlus ||
|
|
37460
37736
|
0));
|
|
37461
37737
|
}
|
|
37462
37738
|
point.hasImage = symbol && symbol.indexOf('url') === 0;
|
|
37463
37739
|
if (point.hasImage) {
|
|
37464
37740
|
radius = 0; // and subsequently width and height is not set
|
|
37465
37741
|
}
|
|
37466
|
-
var attribs = {
|
|
37742
|
+
var attribs = isNumber(radius) ? {
|
|
37467
37743
|
// Math.floor for #1843:
|
|
37468
37744
|
x: seriesOptions.crisp ?
|
|
37469
37745
|
Math.floor(point.plotX - radius) :
|
|
37470
37746
|
point.plotX - radius,
|
|
37471
37747
|
y: point.plotY - radius
|
|
37472
|
-
};
|
|
37748
|
+
} : {};
|
|
37473
37749
|
if (radius) {
|
|
37474
37750
|
attribs.width = attribs.height = 2 * radius;
|
|
37475
37751
|
}
|
|
@@ -37559,7 +37835,7 @@
|
|
|
37559
37835
|
point,
|
|
37560
37836
|
axis;
|
|
37561
37837
|
// add event hook
|
|
37562
|
-
fireEvent(series, 'destroy');
|
|
37838
|
+
fireEvent(series, 'destroy', { keepEventsForUpdate: keepEventsForUpdate });
|
|
37563
37839
|
// remove events
|
|
37564
37840
|
this.removeEvents(keepEventsForUpdate);
|
|
37565
37841
|
// erase from axes
|
|
@@ -37746,10 +38022,10 @@
|
|
|
37746
38022
|
else if (series.visible) {
|
|
37747
38023
|
// If zones were removed, restore graph and area
|
|
37748
38024
|
if (graph) {
|
|
37749
|
-
graph.show(
|
|
38025
|
+
graph.show();
|
|
37750
38026
|
}
|
|
37751
38027
|
if (area) {
|
|
37752
|
-
area.show(
|
|
38028
|
+
area.show();
|
|
37753
38029
|
}
|
|
37754
38030
|
}
|
|
37755
38031
|
};
|
|
@@ -38243,7 +38519,7 @@
|
|
|
38243
38519
|
else if (series.graph) { // create
|
|
38244
38520
|
series.tracker = renderer.path(trackerPath)
|
|
38245
38521
|
.attr({
|
|
38246
|
-
visibility: series.visible ? '
|
|
38522
|
+
visibility: series.visible ? 'inherit' : 'hidden',
|
|
38247
38523
|
zIndex: 2
|
|
38248
38524
|
})
|
|
38249
38525
|
.addClass(trackByArea ?
|
|
@@ -38369,7 +38645,10 @@
|
|
|
38369
38645
|
names[x] = point.name;
|
|
38370
38646
|
}
|
|
38371
38647
|
dataOptions.splice(i, 0, options);
|
|
38372
|
-
if (isInTheMiddle
|
|
38648
|
+
if (isInTheMiddle ||
|
|
38649
|
+
// When processedData is present we need to splice an empty slot
|
|
38650
|
+
// into series.data, otherwise generatePoints won't pick it up.
|
|
38651
|
+
series.processedData) {
|
|
38373
38652
|
series.data.splice(i, 0, null);
|
|
38374
38653
|
series.processData();
|
|
38375
38654
|
}
|
|
@@ -38379,7 +38658,7 @@
|
|
|
38379
38658
|
}
|
|
38380
38659
|
// Shift the first point off the parallel arrays
|
|
38381
38660
|
if (shift) {
|
|
38382
|
-
if (data[0] && data[0].remove) {
|
|
38661
|
+
if (data[0] && (data[0].remove)) {
|
|
38383
38662
|
data[0].remove(false);
|
|
38384
38663
|
}
|
|
38385
38664
|
else {
|
|
@@ -38574,6 +38853,8 @@
|
|
|
38574
38853
|
typeof options.pointStart !== 'undefined' ||
|
|
38575
38854
|
typeof options.pointInterval !== 'undefined' ||
|
|
38576
38855
|
typeof options.relativeXValue !== 'undefined' ||
|
|
38856
|
+
options.joinBy ||
|
|
38857
|
+
options.mapData || // #11636
|
|
38577
38858
|
// Changes to data grouping requires new points in new group
|
|
38578
38859
|
series.hasOptionChanged('dataGrouping') ||
|
|
38579
38860
|
series.hasOptionChanged('pointStart') ||
|
|
@@ -38582,9 +38863,12 @@
|
|
|
38582
38863
|
series.hasOptionChanged('keys'));
|
|
38583
38864
|
newType = newType || initialType;
|
|
38584
38865
|
if (keepPoints) {
|
|
38585
|
-
preserve.push('data', 'isDirtyData', 'points', '
|
|
38866
|
+
preserve.push('data', 'isDirtyData', 'points', 'processedData', // #17057
|
|
38867
|
+
'processedXData', 'processedYData', 'xIncrement', 'cropped', '_hasPointMarkers', '_hasPointLabels', 'clips', // #15420
|
|
38586
38868
|
// Networkgraph (#14397)
|
|
38587
38869
|
'nodes', 'layout',
|
|
38870
|
+
// Treemap
|
|
38871
|
+
'level',
|
|
38588
38872
|
// Map specific, consider moving it to series-specific preserve-
|
|
38589
38873
|
// properties (#10617)
|
|
38590
38874
|
'mapMap', 'mapData', 'minY', 'maxY', 'minX', 'maxX');
|
|
@@ -38636,8 +38920,6 @@
|
|
|
38636
38920
|
series.remove(false, false, false, true);
|
|
38637
38921
|
if (casting) {
|
|
38638
38922
|
// Modern browsers including IE11
|
|
38639
|
-
// @todo slow, consider alternatives mentioned:
|
|
38640
|
-
// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf
|
|
38641
38923
|
if (Object.setPrototypeOf) {
|
|
38642
38924
|
Object.setPrototypeOf(series, seriesTypes[newType].prototype);
|
|
38643
38925
|
// Legacy (IE < 11)
|
|
@@ -39477,6 +39759,7 @@
|
|
|
39477
39759
|
var stop = A.stop;
|
|
39478
39760
|
var addEvent = U.addEvent,
|
|
39479
39761
|
createElement = U.createElement,
|
|
39762
|
+
defined = U.defined,
|
|
39480
39763
|
merge = U.merge,
|
|
39481
39764
|
pick = U.pick;
|
|
39482
39765
|
/* eslint-disable no-invalid-this, valid-jsdoc */
|
|
@@ -39510,7 +39793,7 @@
|
|
|
39510
39793
|
}
|
|
39511
39794
|
else if (scrollableMinHeight) {
|
|
39512
39795
|
this.scrollablePixelsY = scrollablePixelsY = Math.max(0, scrollableMinHeight - this.chartHeight);
|
|
39513
|
-
if (scrollablePixelsY) {
|
|
39796
|
+
if (defined(scrollablePixelsY)) {
|
|
39514
39797
|
this.scrollablePlotBox = (this.renderer.scrollablePlotBox = merge(this.plotBox));
|
|
39515
39798
|
this.plotBox.height = this.plotHeight += scrollablePixelsY;
|
|
39516
39799
|
if (this.inverted) {
|
|
@@ -39645,7 +39928,7 @@
|
|
|
39645
39928
|
axisClass = '.highcharts-yaxis';
|
|
39646
39929
|
}
|
|
39647
39930
|
if (axisClass) {
|
|
39648
|
-
fixedSelectors.push(axisClass + ":not(.highcharts-radial-axis)", axisClass + "-labels:not(.highcharts-radial-axis-labels)");
|
|
39931
|
+
fixedSelectors.push("" + axisClass + ":not(.highcharts-radial-axis)", "" + axisClass + "-labels:not(.highcharts-radial-axis-labels)");
|
|
39649
39932
|
}
|
|
39650
39933
|
fixedSelectors.forEach(function (className) {
|
|
39651
39934
|
[].forEach.call(container.querySelectorAll(className), function (elem) {
|
|
@@ -39696,7 +39979,7 @@
|
|
|
39696
39979
|
.addClass('highcharts-scrollable-mask')
|
|
39697
39980
|
.add();
|
|
39698
39981
|
addEvent(this, 'afterShowResetZoom', this.moveFixedElements);
|
|
39699
|
-
addEvent(this, '
|
|
39982
|
+
addEvent(this, 'afterApplyDrilldown', this.moveFixedElements);
|
|
39700
39983
|
addEvent(this, 'afterLayOutTitles', this.moveFixedElements);
|
|
39701
39984
|
}
|
|
39702
39985
|
else {
|
|
@@ -39824,6 +40107,7 @@
|
|
|
39824
40107
|
* area will become scrollable.
|
|
39825
40108
|
*
|
|
39826
40109
|
* @type {number}
|
|
40110
|
+
* @since 7.1.2
|
|
39827
40111
|
* @apioption chart.scrollablePlotArea.minHeight
|
|
39828
40112
|
*/
|
|
39829
40113
|
/**
|
|
@@ -39831,6 +40115,7 @@
|
|
|
39831
40115
|
* area will become scrollable.
|
|
39832
40116
|
*
|
|
39833
40117
|
* @type {number}
|
|
40118
|
+
* @since 6.1.0
|
|
39834
40119
|
* @apioption chart.scrollablePlotArea.minWidth
|
|
39835
40120
|
*/
|
|
39836
40121
|
/**
|
|
@@ -39839,6 +40124,7 @@
|
|
|
39839
40124
|
* Typically we would use 1 if the chart has right aligned Y axes.
|
|
39840
40125
|
*
|
|
39841
40126
|
* @type {number}
|
|
40127
|
+
* @since 6.1.0
|
|
39842
40128
|
* @apioption chart.scrollablePlotArea.scrollPositionX
|
|
39843
40129
|
*/
|
|
39844
40130
|
/**
|
|
@@ -39846,6 +40132,7 @@
|
|
|
39846
40132
|
* 1, where 0 aligns the plot area to the top and 1 aligns it to the bottom.
|
|
39847
40133
|
*
|
|
39848
40134
|
* @type {number}
|
|
40135
|
+
* @since 7.1.2
|
|
39849
40136
|
* @apioption chart.scrollablePlotArea.scrollPositionY
|
|
39850
40137
|
*/
|
|
39851
40138
|
/**
|
|
@@ -40063,7 +40350,6 @@
|
|
|
40063
40350
|
renderer
|
|
40064
40351
|
.g('stack-labels')
|
|
40065
40352
|
.attr({
|
|
40066
|
-
visibility: 'visible',
|
|
40067
40353
|
zIndex: 6,
|
|
40068
40354
|
opacity: 0
|
|
40069
40355
|
})
|
|
@@ -40299,7 +40585,7 @@
|
|
|
40299
40585
|
}
|
|
40300
40586
|
else {
|
|
40301
40587
|
// Move label away to avoid the overlapping issues
|
|
40302
|
-
label.
|
|
40588
|
+
label.hide();
|
|
40303
40589
|
isJustify = false;
|
|
40304
40590
|
}
|
|
40305
40591
|
if (isJustify) {
|
|
@@ -40423,7 +40709,7 @@
|
|
|
40423
40709
|
this.chart.options.chart.ignoreHiddenSeries !== false)) {
|
|
40424
40710
|
return;
|
|
40425
40711
|
}
|
|
40426
|
-
var series = this, xData = series.processedXData, yData = series.processedYData, stackedYData = [], yDataLength = yData.length, seriesOptions = series.options, threshold = seriesOptions.threshold, stackThreshold = pick(seriesOptions.startFromThreshold && threshold, 0), stackOption = seriesOptions.stack, stackKey = stackingParam ? series.type + ","
|
|
40712
|
+
var series = this, xData = series.processedXData, yData = series.processedYData, stackedYData = [], yDataLength = yData.length, seriesOptions = series.options, threshold = seriesOptions.threshold, stackThreshold = pick(seriesOptions.startFromThreshold && threshold, 0), stackOption = seriesOptions.stack, stackKey = stackingParam ? "" + series.type + ",".concat(stacking) : series.stackKey, negKey = '-' + stackKey, negStacks = series.negStacks, yAxis = series.yAxis, stacks = yAxis.stacking.stacks, oldStacks = yAxis.stacking.oldStacks, stackIndicator, isNegative, stack, other, key, pointKey, i, x, y;
|
|
40427
40713
|
yAxis.stacking.stacksTouched += 1;
|
|
40428
40714
|
// loop over the non-null y values and read them into a local array
|
|
40429
40715
|
for (i = 0; i < yDataLength; i++) {
|
|
@@ -40586,11 +40872,12 @@
|
|
|
40586
40872
|
// changed:
|
|
40587
40873
|
if (!defined(stackIndicator) ||
|
|
40588
40874
|
stackIndicator.x !== x ||
|
|
40589
|
-
(key && stackIndicator.
|
|
40875
|
+
(key && stackIndicator.stackKey !== key)) {
|
|
40590
40876
|
stackIndicator = {
|
|
40591
40877
|
x: x,
|
|
40592
40878
|
index: 0,
|
|
40593
|
-
key: key
|
|
40879
|
+
key: key,
|
|
40880
|
+
stackKey: key
|
|
40594
40881
|
};
|
|
40595
40882
|
}
|
|
40596
40883
|
else {
|
|
@@ -40734,7 +41021,7 @@
|
|
|
40734
41021
|
if (!styledMode) {
|
|
40735
41022
|
props[0].push((options.lineColor ||
|
|
40736
41023
|
this.color ||
|
|
40737
|
-
"#cccccc" /* neutralColor20 */ // when colorByPoint = true
|
|
41024
|
+
"#cccccc" /* Palette.neutralColor20 */ // when colorByPoint = true
|
|
40738
41025
|
), options.dashStyle);
|
|
40739
41026
|
}
|
|
40740
41027
|
props = series.getZonesGraphs(props);
|
|
@@ -41306,9 +41593,9 @@
|
|
|
41306
41593
|
});
|
|
41307
41594
|
props.forEach(function (prop) {
|
|
41308
41595
|
var areaKey = prop[0],
|
|
41309
|
-
area = series[areaKey],
|
|
41310
|
-
verb = area ? 'animate' : 'attr',
|
|
41311
41596
|
attribs = {};
|
|
41597
|
+
var area = series[areaKey];
|
|
41598
|
+
var verb = area ? 'animate' : 'attr';
|
|
41312
41599
|
// Create or update the area
|
|
41313
41600
|
if (area) { // update
|
|
41314
41601
|
area.endX = series.preventGraphAnimation ?
|
|
@@ -41338,15 +41625,18 @@
|
|
|
41338
41625
|
* @private
|
|
41339
41626
|
*/
|
|
41340
41627
|
AreaSeries.prototype.getGraphPath = function (points) {
|
|
41341
|
-
var getGraphPath = LineSeries.prototype.getGraphPath,
|
|
41342
|
-
yAxis.getThreshold(options.threshold)),
|
|
41628
|
+
var getGraphPath = LineSeries.prototype.getGraphPath, options = this.options, stacking = options.stacking, yAxis = this.yAxis, bottomPoints = [], graphPoints = [], seriesIndex = this.index, stacks = yAxis.stacking.stacks[this.stackKey], threshold = options.threshold, translatedThreshold = Math.round(// #10909
|
|
41629
|
+
yAxis.getThreshold(options.threshold)), connectNulls = pick(// #10574
|
|
41343
41630
|
options.connectNulls, stacking === 'percent'),
|
|
41344
41631
|
// To display null points in underlying stacked series, this
|
|
41345
41632
|
// series graph must be broken, and the area also fall down to
|
|
41346
41633
|
// fill the gap left by the null point. #2069
|
|
41347
41634
|
addDummyPoints = function (i, otherI, side) {
|
|
41348
41635
|
var point = points[i], stackedValues = stacking &&
|
|
41349
|
-
stacks[point.x].points[seriesIndex], nullVal = point[side + 'Null'] || 0, cliffVal = point[side + 'Cliff'] || 0
|
|
41636
|
+
stacks[point.x].points[seriesIndex], nullVal = point[side + 'Null'] || 0, cliffVal = point[side + 'Cliff'] || 0;
|
|
41637
|
+
var top,
|
|
41638
|
+
bottom,
|
|
41639
|
+
isNull = true;
|
|
41350
41640
|
if (cliffVal || nullVal) {
|
|
41351
41641
|
top = (nullVal ?
|
|
41352
41642
|
stackedValues[0] :
|
|
@@ -41378,13 +41668,16 @@
|
|
|
41378
41668
|
});
|
|
41379
41669
|
}
|
|
41380
41670
|
};
|
|
41671
|
+
var plotX,
|
|
41672
|
+
isNull,
|
|
41673
|
+
yBottom;
|
|
41381
41674
|
// Find what points to use
|
|
41382
41675
|
points = points || this.points;
|
|
41383
41676
|
// Fill in missing points
|
|
41384
41677
|
if (stacking) {
|
|
41385
41678
|
points = this.getStackPoints(points);
|
|
41386
41679
|
}
|
|
41387
|
-
for (i = 0
|
|
41680
|
+
for (var i = 0, iEnd = points.length; i < iEnd; ++i) {
|
|
41388
41681
|
// Reset after series.update of stacking property (#12033)
|
|
41389
41682
|
if (!stacking) {
|
|
41390
41683
|
points[i].leftCliff = points[i].rightCliff =
|
|
@@ -41414,20 +41707,29 @@
|
|
|
41414
41707
|
}
|
|
41415
41708
|
}
|
|
41416
41709
|
}
|
|
41417
|
-
topPath = getGraphPath.call(this,
|
|
41710
|
+
var topPath = getGraphPath.call(this,
|
|
41711
|
+
graphPoints,
|
|
41712
|
+
true,
|
|
41713
|
+
true);
|
|
41418
41714
|
bottomPoints.reversed = true;
|
|
41419
|
-
bottomPath = getGraphPath.call(this,
|
|
41715
|
+
var bottomPath = getGraphPath.call(this,
|
|
41716
|
+
bottomPoints,
|
|
41717
|
+
true,
|
|
41718
|
+
true);
|
|
41420
41719
|
var firstBottomPoint = bottomPath[0];
|
|
41421
41720
|
if (firstBottomPoint && firstBottomPoint[0] === 'M') {
|
|
41422
41721
|
bottomPath[0] = ['L', firstBottomPoint[1], firstBottomPoint[2]];
|
|
41423
41722
|
}
|
|
41424
|
-
areaPath = topPath.concat(bottomPath);
|
|
41723
|
+
var areaPath = topPath.concat(bottomPath);
|
|
41425
41724
|
if (areaPath.length) {
|
|
41426
41725
|
areaPath.push(['Z']);
|
|
41427
41726
|
}
|
|
41428
41727
|
// TODO: don't set leftCliff and rightCliff when connectNulls?
|
|
41429
|
-
graphPath = getGraphPath
|
|
41430
|
-
|
|
41728
|
+
var graphPath = getGraphPath
|
|
41729
|
+
.call(this,
|
|
41730
|
+
graphPoints,
|
|
41731
|
+
false,
|
|
41732
|
+
connectNulls);
|
|
41431
41733
|
areaPath.xMap = topPath.xMap;
|
|
41432
41734
|
this.areaPath = areaPath;
|
|
41433
41735
|
return graphPath;
|
|
@@ -41486,8 +41788,8 @@
|
|
|
41486
41788
|
cliffName = direction === 1 ?
|
|
41487
41789
|
'rightCliff' :
|
|
41488
41790
|
'leftCliff',
|
|
41489
|
-
cliff = 0,
|
|
41490
41791
|
otherStack = stack[keys[idx + direction]];
|
|
41792
|
+
var cliff = 0;
|
|
41491
41793
|
// If there is a stack next to this one,
|
|
41492
41794
|
// to the left or to the right...
|
|
41493
41795
|
if (otherStack) {
|
|
@@ -41594,7 +41896,7 @@
|
|
|
41594
41896
|
* @sample {highcharts} highcharts/plotoptions/area-fillcolor-gradient/
|
|
41595
41897
|
* Gradient
|
|
41596
41898
|
*
|
|
41597
|
-
* @type
|
|
41899
|
+
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
41598
41900
|
* @product highcharts highstock
|
|
41599
41901
|
* @apioption plotOptions.area.fillColor
|
|
41600
41902
|
*/
|
|
@@ -41631,7 +41933,7 @@
|
|
|
41631
41933
|
* @sample {highcharts} highcharts/plotoptions/area-linecolor/
|
|
41632
41934
|
* Dark gray line
|
|
41633
41935
|
*
|
|
41634
|
-
* @type
|
|
41936
|
+
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
41635
41937
|
* @product highcharts highstock
|
|
41636
41938
|
* @apioption plotOptions.area.lineColor
|
|
41637
41939
|
*/
|
|
@@ -41646,7 +41948,7 @@
|
|
|
41646
41948
|
* @sample {highcharts} highcharts/css/series-negative-color/
|
|
41647
41949
|
* Negative color in styled mode
|
|
41648
41950
|
*
|
|
41649
|
-
* @type
|
|
41951
|
+
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
41650
41952
|
* @since 3.0
|
|
41651
41953
|
* @product highcharts
|
|
41652
41954
|
* @apioption plotOptions.area.negativeFillColor
|
|
@@ -41824,6 +42126,11 @@
|
|
|
41824
42126
|
var LineSeries = SeriesRegistry.seriesTypes.line;
|
|
41825
42127
|
var merge = U.merge,
|
|
41826
42128
|
pick = U.pick;
|
|
42129
|
+
/* *
|
|
42130
|
+
*
|
|
42131
|
+
* Class
|
|
42132
|
+
*
|
|
42133
|
+
* */
|
|
41827
42134
|
/**
|
|
41828
42135
|
* Spline series type.
|
|
41829
42136
|
*
|
|
@@ -41872,12 +42179,11 @@
|
|
|
41872
42179
|
plotX = point.plotX || 0,
|
|
41873
42180
|
plotY = point.plotY || 0,
|
|
41874
42181
|
lastPoint = points[i - 1],
|
|
41875
|
-
nextPoint = points[i + 1]
|
|
41876
|
-
|
|
42182
|
+
nextPoint = points[i + 1];
|
|
42183
|
+
var leftContX,
|
|
41877
42184
|
leftContY,
|
|
41878
42185
|
rightContX,
|
|
41879
|
-
rightContY
|
|
41880
|
-
ret;
|
|
42186
|
+
rightContY;
|
|
41881
42187
|
/**
|
|
41882
42188
|
* @private
|
|
41883
42189
|
*/
|
|
@@ -41893,8 +42199,8 @@
|
|
|
41893
42199
|
var lastX = lastPoint.plotX || 0,
|
|
41894
42200
|
lastY = lastPoint.plotY || 0,
|
|
41895
42201
|
nextX = nextPoint.plotX || 0,
|
|
41896
|
-
nextY = nextPoint.plotY || 0
|
|
41897
|
-
|
|
42202
|
+
nextY = nextPoint.plotY || 0;
|
|
42203
|
+
var correction = 0;
|
|
41898
42204
|
leftContX = (smoothing * plotX + lastX) / denom;
|
|
41899
42205
|
leftContY = (smoothing * plotY + lastY) / denom;
|
|
41900
42206
|
rightContX = (smoothing * plotX + nextX) / denom;
|
|
@@ -41980,15 +42286,19 @@
|
|
|
41980
42286
|
.add();
|
|
41981
42287
|
}
|
|
41982
42288
|
// */
|
|
41983
|
-
ret = [
|
|
41984
|
-
|
|
41985
|
-
|
|
41986
|
-
|
|
41987
|
-
|
|
41988
|
-
|
|
41989
|
-
|
|
41990
|
-
|
|
41991
|
-
|
|
42289
|
+
var ret = [
|
|
42290
|
+
'C',
|
|
42291
|
+
pick(lastPoint.rightContX,
|
|
42292
|
+
lastPoint.plotX, 0),
|
|
42293
|
+
pick(lastPoint.rightContY,
|
|
42294
|
+
lastPoint.plotY, 0),
|
|
42295
|
+
pick(leftContX,
|
|
42296
|
+
plotX, 0),
|
|
42297
|
+
pick(leftContY,
|
|
42298
|
+
plotY, 0),
|
|
42299
|
+
plotX,
|
|
42300
|
+
plotY
|
|
42301
|
+
];
|
|
41992
42302
|
// reset for updating series later
|
|
41993
42303
|
lastPoint.rightContX = lastPoint.rightContY = void 0;
|
|
41994
42304
|
return ret;
|
|
@@ -42093,7 +42403,7 @@
|
|
|
42093
42403
|
|
|
42094
42404
|
return SplineSeries;
|
|
42095
42405
|
});
|
|
42096
|
-
_registerModule(_modules, 'Series/AreaSpline/AreaSplineSeries.js', [_modules['Series/
|
|
42406
|
+
_registerModule(_modules, 'Series/AreaSpline/AreaSplineSeries.js', [_modules['Series/Spline/SplineSeries.js'], _modules['Core/Legend/LegendSymbol.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SplineSeries, LegendSymbol, SeriesRegistry, U) {
|
|
42097
42407
|
/* *
|
|
42098
42408
|
*
|
|
42099
42409
|
* (c) 2010-2021 Torstein Honsi
|
|
@@ -42119,7 +42429,9 @@
|
|
|
42119
42429
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
42120
42430
|
};
|
|
42121
42431
|
})();
|
|
42122
|
-
var
|
|
42432
|
+
var _a = SeriesRegistry.seriesTypes,
|
|
42433
|
+
AreaSeries = _a.area,
|
|
42434
|
+
areaProto = _a.area.prototype;
|
|
42123
42435
|
var extend = U.extend,
|
|
42124
42436
|
merge = U.merge;
|
|
42125
42437
|
/* *
|
|
@@ -42141,7 +42453,7 @@
|
|
|
42141
42453
|
function AreaSplineSeries() {
|
|
42142
42454
|
/* *
|
|
42143
42455
|
*
|
|
42144
|
-
* Static
|
|
42456
|
+
* Static Properties
|
|
42145
42457
|
*
|
|
42146
42458
|
* */
|
|
42147
42459
|
var _this = _super !== null && _super.apply(this,
|
|
@@ -42156,40 +42468,6 @@
|
|
|
42156
42468
|
_this.options = void 0;
|
|
42157
42469
|
return _this;
|
|
42158
42470
|
}
|
|
42159
|
-
/**
|
|
42160
|
-
* The area spline series is an area series where the graph between the
|
|
42161
|
-
* points is smoothed into a spline.
|
|
42162
|
-
*
|
|
42163
|
-
* @sample {highcharts} highcharts/demo/areaspline/
|
|
42164
|
-
* Area spline chart
|
|
42165
|
-
* @sample {highstock} stock/demo/areaspline/
|
|
42166
|
-
* Area spline chart
|
|
42167
|
-
*
|
|
42168
|
-
* @extends plotOptions.area
|
|
42169
|
-
* @excluding step, boostThreshold, boostBlending
|
|
42170
|
-
* @product highcharts highstock
|
|
42171
|
-
* @apioption plotOptions.areaspline
|
|
42172
|
-
*/
|
|
42173
|
-
/**
|
|
42174
|
-
* @see [fillColor](#plotOptions.areaspline.fillColor)
|
|
42175
|
-
* @see [fillOpacity](#plotOptions.areaspline.fillOpacity)
|
|
42176
|
-
*
|
|
42177
|
-
* @apioption plotOptions.areaspline.color
|
|
42178
|
-
*/
|
|
42179
|
-
/**
|
|
42180
|
-
* @see [color](#plotOptions.areaspline.color)
|
|
42181
|
-
* @see [fillOpacity](#plotOptions.areaspline.fillOpacity)
|
|
42182
|
-
*
|
|
42183
|
-
* @apioption plotOptions.areaspline.fillColor
|
|
42184
|
-
*/
|
|
42185
|
-
/**
|
|
42186
|
-
* @see [color](#plotOptions.areaspline.color)
|
|
42187
|
-
* @see [fillColor](#plotOptions.areaspline.fillColor)
|
|
42188
|
-
*
|
|
42189
|
-
* @default {highcharts} 0.75
|
|
42190
|
-
* @default {highstock} 0.75
|
|
42191
|
-
* @apioption plotOptions.areaspline.fillOpacity
|
|
42192
|
-
*/
|
|
42193
42471
|
AreaSplineSeries.defaultOptions = merge(SplineSeries.defaultOptions, AreaSeries.defaultOptions);
|
|
42194
42472
|
return AreaSplineSeries;
|
|
42195
42473
|
}(SplineSeries));
|
|
@@ -42202,9 +42480,47 @@
|
|
|
42202
42480
|
SeriesRegistry.registerSeriesType('areaspline', AreaSplineSeries);
|
|
42203
42481
|
/* *
|
|
42204
42482
|
*
|
|
42205
|
-
* Default
|
|
42483
|
+
* Default Export
|
|
42484
|
+
*
|
|
42485
|
+
* */
|
|
42486
|
+
/* *
|
|
42487
|
+
*
|
|
42488
|
+
* API Options
|
|
42206
42489
|
*
|
|
42207
42490
|
* */
|
|
42491
|
+
/**
|
|
42492
|
+
* The area spline series is an area series where the graph between the
|
|
42493
|
+
* points is smoothed into a spline.
|
|
42494
|
+
*
|
|
42495
|
+
* @sample {highcharts} highcharts/demo/areaspline/
|
|
42496
|
+
* Area spline chart
|
|
42497
|
+
* @sample {highstock} stock/demo/areaspline/
|
|
42498
|
+
* Area spline chart
|
|
42499
|
+
*
|
|
42500
|
+
* @extends plotOptions.area
|
|
42501
|
+
* @excluding step, boostThreshold, boostBlending
|
|
42502
|
+
* @product highcharts highstock
|
|
42503
|
+
* @apioption plotOptions.areaspline
|
|
42504
|
+
*/
|
|
42505
|
+
/**
|
|
42506
|
+
* @see [fillColor](#plotOptions.areaspline.fillColor)
|
|
42507
|
+
* @see [fillOpacity](#plotOptions.areaspline.fillOpacity)
|
|
42508
|
+
*
|
|
42509
|
+
* @apioption plotOptions.areaspline.color
|
|
42510
|
+
*/
|
|
42511
|
+
/**
|
|
42512
|
+
* @see [color](#plotOptions.areaspline.color)
|
|
42513
|
+
* @see [fillOpacity](#plotOptions.areaspline.fillOpacity)
|
|
42514
|
+
*
|
|
42515
|
+
* @apioption plotOptions.areaspline.fillColor
|
|
42516
|
+
*/
|
|
42517
|
+
/**
|
|
42518
|
+
* @see [color](#plotOptions.areaspline.color)
|
|
42519
|
+
* @see [fillColor](#plotOptions.areaspline.fillColor)
|
|
42520
|
+
*
|
|
42521
|
+
* @default 0.75
|
|
42522
|
+
* @apioption plotOptions.areaspline.fillOpacity
|
|
42523
|
+
*/
|
|
42208
42524
|
/**
|
|
42209
42525
|
* A `areaspline` series. If the [type](#series.areaspline.type) option
|
|
42210
42526
|
* is not specified, it is inherited from [chart.type](#chart.type).
|
|
@@ -42290,8 +42606,7 @@
|
|
|
42290
42606
|
* @see [color](#series.areaspline.color)
|
|
42291
42607
|
* @see [fillColor](#series.areaspline.fillColor)
|
|
42292
42608
|
*
|
|
42293
|
-
* @default
|
|
42294
|
-
* @default {highstock} 0.75
|
|
42609
|
+
* @default 0.75
|
|
42295
42610
|
* @apioption series.areaspline.fillOpacity
|
|
42296
42611
|
*/
|
|
42297
42612
|
''; // adds doclets above into transpilat
|
|
@@ -42600,8 +42915,9 @@
|
|
|
42600
42915
|
var _this = this;
|
|
42601
42916
|
var stacking = this.options.stacking;
|
|
42602
42917
|
if (!point.isNull && metrics.columnCount > 1) {
|
|
42603
|
-
var
|
|
42604
|
-
var
|
|
42918
|
+
var reversedStacks_1 = this.yAxis.options.reversedStacks;
|
|
42919
|
+
var indexInCategory_1 = 0,
|
|
42920
|
+
totalInCategory_1 = reversedStacks_1 ? 0 : -metrics.columnCount;
|
|
42605
42921
|
// Loop over all the stacks on the Y axis. When stacking is enabled,
|
|
42606
42922
|
// these are real point stacks. When stacking is not enabled, but
|
|
42607
42923
|
// `centerInCategory` is true, there is one stack handling the
|
|
@@ -42622,7 +42938,8 @@
|
|
|
42622
42938
|
indexInCategory_1 = totalInCategory_1;
|
|
42623
42939
|
}
|
|
42624
42940
|
if (stackItem.hasValidPoints) {
|
|
42625
|
-
|
|
42941
|
+
reversedStacks_1 ? // #16169
|
|
42942
|
+
totalInCategory_1++ : totalInCategory_1--;
|
|
42626
42943
|
}
|
|
42627
42944
|
// If `stacking` is not enabled, look for the index
|
|
42628
42945
|
// and total of the `group` stack.
|
|
@@ -43281,7 +43598,7 @@
|
|
|
43281
43598
|
* @default #cccccc
|
|
43282
43599
|
* @product highcharts highstock gantt
|
|
43283
43600
|
*/
|
|
43284
|
-
color: "#cccccc" /* neutralColor20 */,
|
|
43601
|
+
color: "#cccccc" /* Palette.neutralColor20 */,
|
|
43285
43602
|
/**
|
|
43286
43603
|
* A specific border color for the selected point.
|
|
43287
43604
|
*
|
|
@@ -43289,7 +43606,7 @@
|
|
|
43289
43606
|
* @default #000000
|
|
43290
43607
|
* @product highcharts highstock gantt
|
|
43291
43608
|
*/
|
|
43292
|
-
borderColor: "#000000" /* neutralColor100 */
|
|
43609
|
+
borderColor: "#000000" /* Palette.neutralColor100 */
|
|
43293
43610
|
}
|
|
43294
43611
|
},
|
|
43295
43612
|
dataLabels: {
|
|
@@ -43356,7 +43673,7 @@
|
|
|
43356
43673
|
*
|
|
43357
43674
|
* @private
|
|
43358
43675
|
*/
|
|
43359
|
-
borderColor: "#ffffff" /* backgroundColor */
|
|
43676
|
+
borderColor: "#ffffff" /* Palette.backgroundColor */
|
|
43360
43677
|
});
|
|
43361
43678
|
return ColumnSeries;
|
|
43362
43679
|
}(Series));
|
|
@@ -43602,17 +43919,18 @@
|
|
|
43602
43919
|
inverted = this.isCartesian && chart.inverted,
|
|
43603
43920
|
enabledDataSorting = this.enabledDataSorting,
|
|
43604
43921
|
plotX = pick(point.dlBox && point.dlBox.centerX,
|
|
43605
|
-
point.plotX
|
|
43606
|
-
plotY =
|
|
43607
|
-
bBox = dataLabel.getBBox(),
|
|
43922
|
+
point.plotX),
|
|
43923
|
+
plotY = point.plotY,
|
|
43608
43924
|
rotation = options.rotation,
|
|
43609
43925
|
align = options.align,
|
|
43610
|
-
isInsidePlot =
|
|
43926
|
+
isInsidePlot = defined(plotX) &&
|
|
43927
|
+
defined(plotY) &&
|
|
43928
|
+
chart.isInsidePlot(plotX,
|
|
43611
43929
|
Math.round(plotY), {
|
|
43612
|
-
|
|
43613
|
-
|
|
43614
|
-
|
|
43615
|
-
|
|
43930
|
+
inverted: inverted,
|
|
43931
|
+
paneCoordinates: true,
|
|
43932
|
+
series: series
|
|
43933
|
+
}),
|
|
43616
43934
|
setStartPos = function (alignOptions) {
|
|
43617
43935
|
if (enabledDataSorting && series.xAxis && !justify) {
|
|
43618
43936
|
series.setDataLabelStartPos(point,
|
|
@@ -43623,8 +43941,6 @@
|
|
|
43623
43941
|
}
|
|
43624
43942
|
};
|
|
43625
43943
|
var baseline,
|
|
43626
|
-
normRotation,
|
|
43627
|
-
negRotation,
|
|
43628
43944
|
rotCorr, // rotation correction
|
|
43629
43945
|
// Math.round for rounding errors (#2683), alignTo to allow column
|
|
43630
43946
|
// labels (#2700)
|
|
@@ -43648,7 +43964,12 @@
|
|
|
43648
43964
|
paneCoordinates: true,
|
|
43649
43965
|
series: series
|
|
43650
43966
|
})));
|
|
43651
|
-
if (visible) {
|
|
43967
|
+
if (visible && defined(plotX) && defined(plotY)) {
|
|
43968
|
+
if (rotation) {
|
|
43969
|
+
dataLabel.attr({ align: align });
|
|
43970
|
+
}
|
|
43971
|
+
var bBox = dataLabel.getBBox(true),
|
|
43972
|
+
bBoxCorrection = [0, 0];
|
|
43652
43973
|
baseline = chart.renderer.fontMetrics(chart.styledMode ? void 0 : options.style.fontSize, dataLabel).b;
|
|
43653
43974
|
// The alignment box is a singular point
|
|
43654
43975
|
alignTo = extend({
|
|
@@ -43677,27 +43998,12 @@
|
|
|
43677
43998
|
{ top: 0, middle: 0.5, bottom: 1 }[options.verticalAlign] *
|
|
43678
43999
|
alignTo.height)
|
|
43679
44000
|
};
|
|
44001
|
+
bBoxCorrection = [
|
|
44002
|
+
bBox.x - Number(dataLabel.attr('x')),
|
|
44003
|
+
bBox.y - Number(dataLabel.attr('y'))
|
|
44004
|
+
];
|
|
43680
44005
|
setStartPos(alignAttr); // data sorting
|
|
43681
|
-
dataLabel[isNew ? 'attr' : 'animate'](alignAttr)
|
|
43682
|
-
.attr({
|
|
43683
|
-
align: align
|
|
43684
|
-
});
|
|
43685
|
-
// Compensate for the rotated label sticking out on the sides
|
|
43686
|
-
normRotation = (rotation + 720) % 360;
|
|
43687
|
-
negRotation = normRotation > 180 && normRotation < 360;
|
|
43688
|
-
if (align === 'left') {
|
|
43689
|
-
alignAttr.y -= negRotation ? bBox.height : 0;
|
|
43690
|
-
}
|
|
43691
|
-
else if (align === 'center') {
|
|
43692
|
-
alignAttr.x -= bBox.width / 2;
|
|
43693
|
-
alignAttr.y -= bBox.height / 2;
|
|
43694
|
-
}
|
|
43695
|
-
else if (align === 'right') {
|
|
43696
|
-
alignAttr.x -= bBox.width;
|
|
43697
|
-
alignAttr.y -= negRotation ? 0 : bBox.height;
|
|
43698
|
-
}
|
|
43699
|
-
dataLabel.placed = true;
|
|
43700
|
-
dataLabel.alignAttr = alignAttr;
|
|
44006
|
+
dataLabel[isNew ? 'attr' : 'animate'](alignAttr);
|
|
43701
44007
|
}
|
|
43702
44008
|
else {
|
|
43703
44009
|
setStartPos(alignTo); // data sorting
|
|
@@ -43710,12 +44016,37 @@
|
|
|
43710
44016
|
// Now check that the data label is within the plot area
|
|
43711
44017
|
}
|
|
43712
44018
|
else if (pick(options.crop, true)) {
|
|
44019
|
+
var x = alignAttr.x,
|
|
44020
|
+
y = alignAttr.y;
|
|
44021
|
+
x += bBoxCorrection[0];
|
|
44022
|
+
y += bBoxCorrection[1];
|
|
44023
|
+
// Uncomment this block to visualize the bounding boxes used for
|
|
44024
|
+
// determining visibility
|
|
44025
|
+
/*
|
|
44026
|
+
chart.renderer.rect(
|
|
44027
|
+
chart.plotLeft + alignAttr.x + bBox.x,
|
|
44028
|
+
chart.plotTop + alignAttr.y + bBox.y + 9999,
|
|
44029
|
+
bBox.width,
|
|
44030
|
+
bBox.height
|
|
44031
|
+
).attr({
|
|
44032
|
+
stroke: 'rgba(0, 0, 0, 0.3)',
|
|
44033
|
+
'stroke-width': 0.5
|
|
44034
|
+
}).add();
|
|
44035
|
+
chart.renderer.circle(
|
|
44036
|
+
chart.plotLeft + alignAttr.x,
|
|
44037
|
+
chart.plotTop + alignAttr.y,
|
|
44038
|
+
2
|
|
44039
|
+
).attr({
|
|
44040
|
+
fill: 'red',
|
|
44041
|
+
zIndex: 20
|
|
44042
|
+
}).add();
|
|
44043
|
+
// */
|
|
43713
44044
|
visible =
|
|
43714
|
-
chart.isInsidePlot(
|
|
44045
|
+
chart.isInsidePlot(x, y, {
|
|
43715
44046
|
paneCoordinates: true,
|
|
43716
44047
|
series: series
|
|
43717
44048
|
}) &&
|
|
43718
|
-
chart.isInsidePlot(
|
|
44049
|
+
chart.isInsidePlot(x + bBox.width, y + bBox.height, {
|
|
43719
44050
|
paneCoordinates: true,
|
|
43720
44051
|
series: series
|
|
43721
44052
|
});
|
|
@@ -43739,9 +44070,12 @@
|
|
|
43739
44070
|
}
|
|
43740
44071
|
// Show or hide based on the final aligned position
|
|
43741
44072
|
if (!visible && (!enabledDataSorting || justify)) {
|
|
43742
|
-
dataLabel.hide(
|
|
44073
|
+
dataLabel.hide();
|
|
43743
44074
|
dataLabel.placed = false; // don't animate back in
|
|
43744
44075
|
}
|
|
44076
|
+
else {
|
|
44077
|
+
dataLabel.show();
|
|
44078
|
+
}
|
|
43745
44079
|
}
|
|
43746
44080
|
/**
|
|
43747
44081
|
* Handle the dataLabels.filter option.
|
|
@@ -43818,7 +44152,7 @@
|
|
|
43818
44152
|
var group = series.dataLabelsGroup;
|
|
43819
44153
|
if (group) {
|
|
43820
44154
|
if (series.visible) { // #2597, #3023, #3024
|
|
43821
|
-
dataLabelsGroup.show(
|
|
44155
|
+
dataLabelsGroup.show();
|
|
43822
44156
|
}
|
|
43823
44157
|
group[seriesOptions.animation ? 'animate' : 'attr']({ opacity: 1 }, animationConfig);
|
|
43824
44158
|
}
|
|
@@ -43850,10 +44184,10 @@
|
|
|
43850
44184
|
rotation,
|
|
43851
44185
|
attr,
|
|
43852
44186
|
dataLabel = point.dataLabels ?
|
|
43853
|
-
point.dataLabels[i] : point.dataLabel
|
|
43854
|
-
var labelDistance = pick(labelOptions.distance,
|
|
43855
|
-
point.labelDistance),
|
|
44187
|
+
point.dataLabels[i] : point.dataLabel,
|
|
43856
44188
|
isNew = !dataLabel;
|
|
44189
|
+
var labelDistance = pick(labelOptions.distance,
|
|
44190
|
+
point.labelDistance);
|
|
43857
44191
|
if (labelEnabled) {
|
|
43858
44192
|
// Create individual options structure that can be
|
|
43859
44193
|
// extended without affecting others
|
|
@@ -43867,7 +44201,7 @@
|
|
|
43867
44201
|
rotation = labelOptions.rotation;
|
|
43868
44202
|
if (!chart.styledMode) {
|
|
43869
44203
|
// Determine the color
|
|
43870
|
-
style.color = pick(labelOptions.color, style.color, series.color, "#000000" /* neutralColor100 */);
|
|
44204
|
+
style.color = pick(labelOptions.color, style.color, series.color, "#000000" /* Palette.neutralColor100 */);
|
|
43871
44205
|
// Get automated contrast color
|
|
43872
44206
|
if (style.color === 'contrast') {
|
|
43873
44207
|
point.contrastColor = renderer.getContrast((point.color || series.color));
|
|
@@ -43876,7 +44210,7 @@
|
|
|
43876
44210
|
labelDistance < 0 ||
|
|
43877
44211
|
!!seriesOptions.stacking ?
|
|
43878
44212
|
point.contrastColor :
|
|
43879
|
-
"#000000" /* neutralColor100 */;
|
|
44213
|
+
"#000000" /* Palette.neutralColor100 */;
|
|
43880
44214
|
}
|
|
43881
44215
|
else {
|
|
43882
44216
|
delete point.contrastColor;
|
|
@@ -43907,7 +44241,15 @@
|
|
|
43907
44241
|
// #820
|
|
43908
44242
|
if (dataLabel && (!labelEnabled ||
|
|
43909
44243
|
!defined(labelText) ||
|
|
43910
|
-
!!dataLabel.div !== !!labelOptions.useHTML
|
|
44244
|
+
!!dataLabel.div !== !!labelOptions.useHTML ||
|
|
44245
|
+
(
|
|
44246
|
+
// Change from no rotation to rotation and
|
|
44247
|
+
// vice versa. Don't use defined() because
|
|
44248
|
+
// rotation = 0 means also rotation = undefined
|
|
44249
|
+
(!dataLabel.rotation ||
|
|
44250
|
+
!labelOptions.rotation) &&
|
|
44251
|
+
dataLabel.rotation !== labelOptions.rotation))) {
|
|
44252
|
+
isNew = true;
|
|
43911
44253
|
point.dataLabel = dataLabel =
|
|
43912
44254
|
point.dataLabel && point.dataLabel.destroy();
|
|
43913
44255
|
if (point.dataLabels) {
|
|
@@ -43945,10 +44287,10 @@
|
|
|
43945
44287
|
point.dataLabels = point.dataLabels || [];
|
|
43946
44288
|
dataLabel = point.dataLabels[i] = rotation ?
|
|
43947
44289
|
// Labels don't rotate, use text element
|
|
43948
|
-
renderer.text(labelText, 0,
|
|
44290
|
+
renderer.text(labelText, 0, 0, labelOptions.useHTML)
|
|
43949
44291
|
.addClass('highcharts-data-label') :
|
|
43950
44292
|
// We can use label
|
|
43951
|
-
renderer.label(labelText, 0,
|
|
44293
|
+
renderer.label(labelText, 0, 0, labelOptions.shape, null, null, labelOptions.useHTML, null, 'data-label');
|
|
43952
44294
|
// Store for backwards compatibility
|
|
43953
44295
|
if (!i) {
|
|
43954
44296
|
point.dataLabel = dataLabel;
|
|
@@ -43989,6 +44331,9 @@
|
|
|
43989
44331
|
// we need to align it
|
|
43990
44332
|
series.alignDataLabel(point, dataLabel, labelOptions, null, isNew);
|
|
43991
44333
|
}
|
|
44334
|
+
else if (dataLabel) {
|
|
44335
|
+
dataLabel.hide();
|
|
44336
|
+
}
|
|
43992
44337
|
});
|
|
43993
44338
|
});
|
|
43994
44339
|
}
|
|
@@ -44466,7 +44811,7 @@
|
|
|
44466
44811
|
|
|
44467
44812
|
return BarSeries;
|
|
44468
44813
|
});
|
|
44469
|
-
_registerModule(_modules, 'Series/Scatter/ScatterSeries.js', [_modules['
|
|
44814
|
+
_registerModule(_modules, 'Series/Scatter/ScatterSeries.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
|
|
44470
44815
|
/* *
|
|
44471
44816
|
*
|
|
44472
44817
|
* (c) 2010-2021 Torstein Honsi
|
|
@@ -44492,6 +44837,9 @@
|
|
|
44492
44837
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
44493
44838
|
};
|
|
44494
44839
|
})();
|
|
44840
|
+
var _a = SeriesRegistry.seriesTypes,
|
|
44841
|
+
ColumnSeries = _a.column,
|
|
44842
|
+
LineSeries = _a.line;
|
|
44495
44843
|
var addEvent = U.addEvent,
|
|
44496
44844
|
extend = U.extend,
|
|
44497
44845
|
merge = U.merge;
|
|
@@ -44508,6 +44856,11 @@
|
|
|
44508
44856
|
var ScatterSeries = /** @class */ (function (_super) {
|
|
44509
44857
|
__extends(ScatterSeries, _super);
|
|
44510
44858
|
function ScatterSeries() {
|
|
44859
|
+
/* *
|
|
44860
|
+
*
|
|
44861
|
+
* Static Properties
|
|
44862
|
+
*
|
|
44863
|
+
* */
|
|
44511
44864
|
var _this = _super !== null && _super.apply(this,
|
|
44512
44865
|
arguments) || this;
|
|
44513
44866
|
/* *
|
|
@@ -44575,7 +44928,6 @@
|
|
|
44575
44928
|
};
|
|
44576
44929
|
/**
|
|
44577
44930
|
* @private
|
|
44578
|
-
* @function Highcharts.seriesTypes.scatter#drawGraph
|
|
44579
44931
|
*/
|
|
44580
44932
|
ScatterSeries.prototype.drawGraph = function () {
|
|
44581
44933
|
if (this.options.lineWidth) {
|
|
@@ -44661,7 +45013,7 @@
|
|
|
44661
45013
|
*
|
|
44662
45014
|
* @type {boolean}
|
|
44663
45015
|
* @default false
|
|
44664
|
-
* @product highcharts highstock
|
|
45016
|
+
* @product highcharts highstock highmaps
|
|
44665
45017
|
* @apioption plotOptions.scatter.stickyTracking
|
|
44666
45018
|
*/
|
|
44667
45019
|
/**
|
|
@@ -44778,7 +45130,7 @@
|
|
|
44778
45130
|
* @product highcharts highstock
|
|
44779
45131
|
* @apioption series.scatter.data
|
|
44780
45132
|
*/
|
|
44781
|
-
''; //
|
|
45133
|
+
''; // keeps doclets above in JS file
|
|
44782
45134
|
|
|
44783
45135
|
return ScatterSeries;
|
|
44784
45136
|
});
|
|
@@ -44793,7 +45145,8 @@
|
|
|
44793
45145
|
*
|
|
44794
45146
|
* */
|
|
44795
45147
|
var deg2rad = H.deg2rad;
|
|
44796
|
-
var
|
|
45148
|
+
var fireEvent = U.fireEvent,
|
|
45149
|
+
isNumber = U.isNumber,
|
|
44797
45150
|
pick = U.pick,
|
|
44798
45151
|
relativeLength = U.relativeLength;
|
|
44799
45152
|
/**
|
|
@@ -44827,7 +45180,8 @@
|
|
|
44827
45180
|
plotHeight = chart.plotHeight - 2 * slicingRoom,
|
|
44828
45181
|
centerOption = options.center,
|
|
44829
45182
|
smallestSize = Math.min(plotWidth,
|
|
44830
|
-
plotHeight)
|
|
45183
|
+
plotHeight),
|
|
45184
|
+
thickness = options.thickness;
|
|
44831
45185
|
var handleSlicingRoom,
|
|
44832
45186
|
size = options.size,
|
|
44833
45187
|
innerSize = options.innerSize || 0,
|
|
@@ -44864,6 +45218,12 @@
|
|
|
44864
45218
|
if (positions[3] > positions[2]) {
|
|
44865
45219
|
positions[3] = positions[2];
|
|
44866
45220
|
}
|
|
45221
|
+
// thickness overrides innerSize, need to be less than pie size (#6647)
|
|
45222
|
+
if (isNumber(thickness) &&
|
|
45223
|
+
thickness * 2 < positions[2] && thickness > 0) {
|
|
45224
|
+
positions[3] = positions[2] - thickness * 2;
|
|
45225
|
+
}
|
|
45226
|
+
fireEvent(this, 'afterGetCenter', { positions: positions });
|
|
44867
45227
|
return positions;
|
|
44868
45228
|
}
|
|
44869
45229
|
CenteredUtilities.getCenter = getCenter;
|
|
@@ -45051,12 +45411,19 @@
|
|
|
45051
45411
|
return isNumber(this.y) && this.y >= 0;
|
|
45052
45412
|
};
|
|
45053
45413
|
/**
|
|
45054
|
-
* Toggle the visibility of
|
|
45055
|
-
*
|
|
45414
|
+
* Toggle the visibility of a pie slice or other data point. Note that this
|
|
45415
|
+
* method is available only for some series, like pie, treemap and sunburst.
|
|
45416
|
+
*
|
|
45417
|
+
* @function Highcharts.Point#setVisible
|
|
45418
|
+
*
|
|
45419
|
+
* @param {boolean} [vis]
|
|
45420
|
+
* True to show the pie slice or other data point, false to hide. If
|
|
45421
|
+
* undefined, the visibility is toggled.
|
|
45422
|
+
*
|
|
45423
|
+
* @param {boolean} [redraw] Whether to redraw the chart after the point is
|
|
45424
|
+
* altered. If doing more operations on the chart, it is a good idea to set
|
|
45425
|
+
* redraw to false and call {@link Chart#redraw|chart.redraw()} after.
|
|
45056
45426
|
*
|
|
45057
|
-
* @param {boolean} vis
|
|
45058
|
-
* Whether to show the slice or not. If undefined, the visibility is
|
|
45059
|
-
* toggled.
|
|
45060
45427
|
*/
|
|
45061
45428
|
PiePoint.prototype.setVisible = function (vis, redraw) {
|
|
45062
45429
|
var _this = this;
|
|
@@ -45360,7 +45727,7 @@
|
|
|
45360
45727
|
this.graph.attr({
|
|
45361
45728
|
'stroke-width': options.borderWidth,
|
|
45362
45729
|
fill: options.fillColor || 'none',
|
|
45363
|
-
stroke: options.color || "#cccccc" /* neutralColor20 */
|
|
45730
|
+
stroke: options.color || "#cccccc" /* Palette.neutralColor20 */
|
|
45364
45731
|
});
|
|
45365
45732
|
}
|
|
45366
45733
|
}
|
|
@@ -45517,6 +45884,7 @@
|
|
|
45517
45884
|
* @private
|
|
45518
45885
|
*/
|
|
45519
45886
|
PieSeries.prototype.translate = function (positions) {
|
|
45887
|
+
fireEvent(this, 'translate');
|
|
45520
45888
|
this.generatePoints();
|
|
45521
45889
|
var series = this,
|
|
45522
45890
|
precision = 1000, // issue #172
|
|
@@ -45686,7 +46054,7 @@
|
|
|
45686
46054
|
* pointPlacement, pointStart, softThreshold, stacking, step,
|
|
45687
46055
|
* threshold, turboThreshold, zoneAxis, zones, dataSorting,
|
|
45688
46056
|
* boostBlending
|
|
45689
|
-
* @product highcharts
|
|
46057
|
+
* @product highcharts highmaps
|
|
45690
46058
|
* @optionparent plotOptions.pie
|
|
45691
46059
|
*/
|
|
45692
46060
|
PieSeries.defaultOptions = merge(Series.defaultOptions, {
|
|
@@ -45706,7 +46074,7 @@
|
|
|
45706
46074
|
*
|
|
45707
46075
|
* @type {Function}
|
|
45708
46076
|
* @since 1.2.0
|
|
45709
|
-
* @product highcharts
|
|
46077
|
+
* @product highcharts highmaps
|
|
45710
46078
|
* @context Highcharts.Point
|
|
45711
46079
|
* @apioption plotOptions.pie.events.checkboxClick
|
|
45712
46080
|
*/
|
|
@@ -45722,7 +46090,7 @@
|
|
|
45722
46090
|
*
|
|
45723
46091
|
* @type {Highcharts.PointLegendItemClickCallbackFunction}
|
|
45724
46092
|
* @since 1.2.0
|
|
45725
|
-
* @product highcharts
|
|
46093
|
+
* @product highcharts highmaps
|
|
45726
46094
|
* @apioption plotOptions.pie.point.events.legendItemClick
|
|
45727
46095
|
*/
|
|
45728
46096
|
/**
|
|
@@ -45738,7 +46106,7 @@
|
|
|
45738
46106
|
*
|
|
45739
46107
|
* @type {Array<(number|string|null),(number|string|null)>}
|
|
45740
46108
|
* @default [null, null]
|
|
45741
|
-
* @product highcharts
|
|
46109
|
+
* @product highcharts highmaps
|
|
45742
46110
|
*
|
|
45743
46111
|
* @private
|
|
45744
46112
|
*/
|
|
@@ -45783,7 +46151,7 @@
|
|
|
45783
46151
|
*
|
|
45784
46152
|
* @type {Array<Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject>}
|
|
45785
46153
|
* @since 3.0
|
|
45786
|
-
* @product highcharts
|
|
46154
|
+
* @product highcharts highmaps
|
|
45787
46155
|
* @apioption plotOptions.pie.colors
|
|
45788
46156
|
*/
|
|
45789
46157
|
/**
|
|
@@ -45810,7 +46178,7 @@
|
|
|
45810
46178
|
*
|
|
45811
46179
|
* @type {string}
|
|
45812
46180
|
* @since 7.0.0
|
|
45813
|
-
* @product highcharts
|
|
46181
|
+
* @product highcharts highmaps
|
|
45814
46182
|
* @apioption plotOptions.pie.dataLabels.alignTo
|
|
45815
46183
|
*/
|
|
45816
46184
|
allowOverlap: true,
|
|
@@ -45828,7 +46196,7 @@
|
|
|
45828
46196
|
*
|
|
45829
46197
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
45830
46198
|
* @since 2.1
|
|
45831
|
-
* @product highcharts
|
|
46199
|
+
* @product highcharts highmaps
|
|
45832
46200
|
* @apioption plotOptions.pie.dataLabels.connectorColor
|
|
45833
46201
|
*/
|
|
45834
46202
|
/**
|
|
@@ -45840,7 +46208,7 @@
|
|
|
45840
46208
|
* No padding
|
|
45841
46209
|
*
|
|
45842
46210
|
* @since 2.1
|
|
45843
|
-
* @product highcharts
|
|
46211
|
+
* @product highcharts highmaps
|
|
45844
46212
|
*/
|
|
45845
46213
|
connectorPadding: 5,
|
|
45846
46214
|
/**
|
|
@@ -45877,7 +46245,7 @@
|
|
|
45877
46245
|
*
|
|
45878
46246
|
* @type {string|Function}
|
|
45879
46247
|
* @since 7.0.0
|
|
45880
|
-
* @product highcharts
|
|
46248
|
+
* @product highcharts highmaps
|
|
45881
46249
|
*/
|
|
45882
46250
|
connectorShape: 'fixedOffset',
|
|
45883
46251
|
/**
|
|
@@ -45894,7 +46262,7 @@
|
|
|
45894
46262
|
* @type {number}
|
|
45895
46263
|
* @default 1
|
|
45896
46264
|
* @since 2.1
|
|
45897
|
-
* @product highcharts
|
|
46265
|
+
* @product highcharts highmaps
|
|
45898
46266
|
* @apioption plotOptions.pie.dataLabels.connectorWidth
|
|
45899
46267
|
*/
|
|
45900
46268
|
/**
|
|
@@ -45906,7 +46274,7 @@
|
|
|
45906
46274
|
* crookDistance set to 90%
|
|
45907
46275
|
*
|
|
45908
46276
|
* @since 7.0.0
|
|
45909
|
-
* @product highcharts
|
|
46277
|
+
* @product highcharts highmaps
|
|
45910
46278
|
*/
|
|
45911
46279
|
crookDistance: '70%',
|
|
45912
46280
|
/**
|
|
@@ -45920,7 +46288,7 @@
|
|
|
45920
46288
|
*
|
|
45921
46289
|
* @type {number|string}
|
|
45922
46290
|
* @since 2.1
|
|
45923
|
-
* @product highcharts
|
|
46291
|
+
* @product highcharts highmaps
|
|
45924
46292
|
*/
|
|
45925
46293
|
distance: 30,
|
|
45926
46294
|
enabled: true,
|
|
@@ -45961,7 +46329,7 @@
|
|
|
45961
46329
|
* Non soft
|
|
45962
46330
|
*
|
|
45963
46331
|
* @since 2.1.7
|
|
45964
|
-
* @product highcharts
|
|
46332
|
+
* @product highcharts highmaps
|
|
45965
46333
|
*/
|
|
45966
46334
|
softConnector: true,
|
|
45967
46335
|
/**
|
|
@@ -45997,9 +46365,20 @@
|
|
|
45997
46365
|
*
|
|
45998
46366
|
* @type {number}
|
|
45999
46367
|
* @since 1.3.6
|
|
46000
|
-
* @product highcharts
|
|
46368
|
+
* @product highcharts highmaps
|
|
46001
46369
|
* @apioption plotOptions.pie.endAngle
|
|
46002
46370
|
*/
|
|
46371
|
+
/**
|
|
46372
|
+
* Thickness describing the ring size for a donut type chart,
|
|
46373
|
+
* overriding [innerSize](#plotOptions.pie.innerSize).
|
|
46374
|
+
*
|
|
46375
|
+
* @type {number}
|
|
46376
|
+
* @default undefined
|
|
46377
|
+
* @product highcharts
|
|
46378
|
+
* @since 10.1.0
|
|
46379
|
+
* @apioption plotOptions.pie.thickness
|
|
46380
|
+
* @private
|
|
46381
|
+
*/
|
|
46003
46382
|
/**
|
|
46004
46383
|
* Equivalent to [chart.ignoreHiddenSeries](#chart.ignoreHiddenSeries),
|
|
46005
46384
|
* this option tells whether the series shall be redrawn as if the
|
|
@@ -46012,7 +46391,7 @@
|
|
|
46012
46391
|
* True, the hiddden point is ignored
|
|
46013
46392
|
*
|
|
46014
46393
|
* @since 2.3.0
|
|
46015
|
-
* @product highcharts
|
|
46394
|
+
* @product highcharts highmaps
|
|
46016
46395
|
*
|
|
46017
46396
|
* @private
|
|
46018
46397
|
*/
|
|
@@ -46027,7 +46406,7 @@
|
|
|
46027
46406
|
* The size of the inner diameter for the pie. A size greater than 0
|
|
46028
46407
|
* renders a donut chart. Can be a percentage or pixel value.
|
|
46029
46408
|
* Percentages are relative to the pie size. Pixel values are given as
|
|
46030
|
-
* integers.
|
|
46409
|
+
* integers. Setting overridden by thickness.
|
|
46031
46410
|
*
|
|
46032
46411
|
*
|
|
46033
46412
|
* Note: in Highcharts < 4.1.2, the percentage was relative to the plot
|
|
@@ -46043,7 +46422,7 @@
|
|
|
46043
46422
|
* @type {number|string}
|
|
46044
46423
|
* @default 0
|
|
46045
46424
|
* @since 2.0
|
|
46046
|
-
* @product highcharts
|
|
46425
|
+
* @product highcharts highmaps
|
|
46047
46426
|
* @apioption plotOptions.pie.innerSize
|
|
46048
46427
|
*/
|
|
46049
46428
|
/**
|
|
@@ -46066,7 +46445,7 @@
|
|
|
46066
46445
|
* @type {number|string}
|
|
46067
46446
|
* @default 80
|
|
46068
46447
|
* @since 3.0
|
|
46069
|
-
* @product highcharts
|
|
46448
|
+
* @product highcharts highmaps
|
|
46070
46449
|
* @apioption plotOptions.pie.minSize
|
|
46071
46450
|
*/
|
|
46072
46451
|
/**
|
|
@@ -46083,7 +46462,7 @@
|
|
|
46083
46462
|
* Smaller pie
|
|
46084
46463
|
*
|
|
46085
46464
|
* @type {number|string|null}
|
|
46086
|
-
* @product highcharts
|
|
46465
|
+
* @product highcharts highmaps
|
|
46087
46466
|
*
|
|
46088
46467
|
* @private
|
|
46089
46468
|
*/
|
|
@@ -46095,7 +46474,7 @@
|
|
|
46095
46474
|
* @sample {highcharts} highcharts/plotoptions/series-showinlegend/
|
|
46096
46475
|
* One series in the legend, one hidden
|
|
46097
46476
|
*
|
|
46098
|
-
* @product highcharts
|
|
46477
|
+
* @product highcharts highmaps
|
|
46099
46478
|
*
|
|
46100
46479
|
* @private
|
|
46101
46480
|
*/
|
|
@@ -46107,7 +46486,7 @@
|
|
|
46107
46486
|
* @sample {highcharts} highcharts/plotoptions/pie-slicedoffset-20/
|
|
46108
46487
|
* 20px offset
|
|
46109
46488
|
*
|
|
46110
|
-
* @product highcharts
|
|
46489
|
+
* @product highcharts highmaps
|
|
46111
46490
|
*
|
|
46112
46491
|
* @private
|
|
46113
46492
|
*/
|
|
@@ -46122,7 +46501,7 @@
|
|
|
46122
46501
|
* @type {number}
|
|
46123
46502
|
* @default 0
|
|
46124
46503
|
* @since 2.3.4
|
|
46125
|
-
* @product highcharts
|
|
46504
|
+
* @product highcharts highmaps
|
|
46126
46505
|
* @apioption plotOptions.pie.startAngle
|
|
46127
46506
|
*/
|
|
46128
46507
|
/**
|
|
@@ -46134,7 +46513,7 @@
|
|
|
46134
46513
|
* `stickyTracking` is false and `tooltip.shared` is false, the tooltip
|
|
46135
46514
|
* will be hidden when moving the mouse between series.
|
|
46136
46515
|
*
|
|
46137
|
-
* @product highcharts
|
|
46516
|
+
* @product highcharts highmaps
|
|
46138
46517
|
*
|
|
46139
46518
|
* @private
|
|
46140
46519
|
*/
|
|
@@ -46156,11 +46535,11 @@
|
|
|
46156
46535
|
*
|
|
46157
46536
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
46158
46537
|
* @default #ffffff
|
|
46159
|
-
* @product highcharts
|
|
46538
|
+
* @product highcharts highmaps
|
|
46160
46539
|
*
|
|
46161
46540
|
* @private
|
|
46162
46541
|
*/
|
|
46163
|
-
borderColor: "#ffffff" /* backgroundColor */,
|
|
46542
|
+
borderColor: "#ffffff" /* Palette.backgroundColor */,
|
|
46164
46543
|
/**
|
|
46165
46544
|
* The width of the border surrounding each slice.
|
|
46166
46545
|
*
|
|
@@ -46175,7 +46554,7 @@
|
|
|
46175
46554
|
* @sample {highcharts} highcharts/plotoptions/pie-borderwidth/
|
|
46176
46555
|
* 3px border
|
|
46177
46556
|
*
|
|
46178
|
-
* @product highcharts
|
|
46557
|
+
* @product highcharts highmaps
|
|
46179
46558
|
*
|
|
46180
46559
|
* @private
|
|
46181
46560
|
*/
|
|
@@ -46189,7 +46568,7 @@
|
|
|
46189
46568
|
/**
|
|
46190
46569
|
* @extends plotOptions.series.states.hover
|
|
46191
46570
|
* @excluding marker, lineWidth, lineWidthPlus
|
|
46192
|
-
* @product highcharts
|
|
46571
|
+
* @product highcharts highmaps
|
|
46193
46572
|
*/
|
|
46194
46573
|
hover: {
|
|
46195
46574
|
/**
|
|
@@ -46203,7 +46582,7 @@
|
|
|
46203
46582
|
* @sample {highcharts} highcharts/plotoptions/pie-states-hover-brightness/
|
|
46204
46583
|
* Brightened by 0.5
|
|
46205
46584
|
*
|
|
46206
|
-
* @product highcharts
|
|
46585
|
+
* @product highcharts highmaps
|
|
46207
46586
|
*/
|
|
46208
46587
|
brightness: 0.1
|
|
46209
46588
|
}
|
|
@@ -46245,7 +46624,7 @@
|
|
|
46245
46624
|
* @extends series,plotOptions.pie
|
|
46246
46625
|
* @excluding cropThreshold, dataParser, dataURL, stack, xAxis, yAxis,
|
|
46247
46626
|
* dataSorting, step, boostThreshold, boostBlending
|
|
46248
|
-
* @product highcharts
|
|
46627
|
+
* @product highcharts highmaps
|
|
46249
46628
|
* @apioption series.pie
|
|
46250
46629
|
*/
|
|
46251
46630
|
/**
|
|
@@ -46289,19 +46668,19 @@
|
|
|
46289
46668
|
* @type {Array<number|Array<string,(number|null)>|null|*>}
|
|
46290
46669
|
* @extends series.line.data
|
|
46291
46670
|
* @excluding marker, x
|
|
46292
|
-
* @product highcharts
|
|
46671
|
+
* @product highcharts highmaps
|
|
46293
46672
|
* @apioption series.pie.data
|
|
46294
46673
|
*/
|
|
46295
46674
|
/**
|
|
46296
46675
|
* @type {Highcharts.SeriesPieDataLabelsOptionsObject}
|
|
46297
|
-
* @product highcharts
|
|
46676
|
+
* @product highcharts highmaps
|
|
46298
46677
|
* @apioption series.pie.data.dataLabels
|
|
46299
46678
|
*/
|
|
46300
46679
|
/**
|
|
46301
46680
|
* The sequential index of the data point in the legend.
|
|
46302
46681
|
*
|
|
46303
46682
|
* @type {number}
|
|
46304
|
-
* @product highcharts
|
|
46683
|
+
* @product highcharts highmaps
|
|
46305
46684
|
* @apioption series.pie.data.legendIndex
|
|
46306
46685
|
*/
|
|
46307
46686
|
/**
|
|
@@ -46311,18 +46690,18 @@
|
|
|
46311
46690
|
* One sliced point
|
|
46312
46691
|
*
|
|
46313
46692
|
* @type {boolean}
|
|
46314
|
-
* @product highcharts
|
|
46693
|
+
* @product highcharts highmaps
|
|
46315
46694
|
* @apioption series.pie.data.sliced
|
|
46316
46695
|
*/
|
|
46317
46696
|
/**
|
|
46318
46697
|
* @extends plotOptions.pie.dataLabels
|
|
46319
46698
|
* @excluding align, allowOverlap, inside, staggerLines, step
|
|
46320
|
-
* @product highcharts
|
|
46699
|
+
* @product highcharts highmaps
|
|
46321
46700
|
* @apioption series.pie.dataLabels
|
|
46322
46701
|
*/
|
|
46323
46702
|
/**
|
|
46324
46703
|
* @excluding legendItemClick
|
|
46325
|
-
* @product highcharts
|
|
46704
|
+
* @product highcharts highmaps
|
|
46326
46705
|
* @apioption series.pie.events
|
|
46327
46706
|
*/
|
|
46328
46707
|
''; // placeholder for transpiled doclets above
|
|
@@ -46691,7 +47070,7 @@
|
|
|
46691
47070
|
'stroke-width': connectorWidth,
|
|
46692
47071
|
'stroke': (pointDataLabelsOptions.connectorColor ||
|
|
46693
47072
|
point.color ||
|
|
46694
|
-
"#666666" /* neutralColor60 */)
|
|
47073
|
+
"#666666" /* Palette.neutralColor60 */)
|
|
46695
47074
|
});
|
|
46696
47075
|
}
|
|
46697
47076
|
}
|
|
@@ -46789,7 +47168,9 @@
|
|
|
46789
47168
|
if (newSize < center[2]) {
|
|
46790
47169
|
center[2] = newSize;
|
|
46791
47170
|
center[3] = Math.min(// #3632
|
|
46792
|
-
|
|
47171
|
+
options.thickness ?
|
|
47172
|
+
Math.max(0, newSize - options.thickness * 2) :
|
|
47173
|
+
Math.max(0, relativeLength(options.innerSize || 0, newSize)), newSize); // #6647
|
|
46793
47174
|
this.translate(center);
|
|
46794
47175
|
if (this.drawDataLabels) {
|
|
46795
47176
|
this.drawDataLabels();
|
|
@@ -46852,9 +47233,7 @@
|
|
|
46852
47233
|
!yAxis.options.stackLabels.allowOverlap) {
|
|
46853
47234
|
objectEach(yAxis.stacking.stacks, function (stack) {
|
|
46854
47235
|
objectEach(stack, function (stackItem) {
|
|
46855
|
-
if (stackItem.label
|
|
46856
|
-
stackItem.label.visibility !== 'hidden' // #15607
|
|
46857
|
-
) {
|
|
47236
|
+
if (stackItem.label) {
|
|
46858
47237
|
labels.push(stackItem.label);
|
|
46859
47238
|
}
|
|
46860
47239
|
});
|
|
@@ -46998,7 +47377,10 @@
|
|
|
46998
47377
|
box2 &&
|
|
46999
47378
|
label1 !== label2 && // #6465, polar chart with connectEnds
|
|
47000
47379
|
label1.newOpacity !== 0 &&
|
|
47001
|
-
label2.newOpacity !== 0
|
|
47380
|
+
label2.newOpacity !== 0 &&
|
|
47381
|
+
// #15863 dataLabels are no longer hidden by translation
|
|
47382
|
+
label1.visibility !== 'hidden' &&
|
|
47383
|
+
label2.visibility !== 'hidden') {
|
|
47002
47384
|
if (isIntersectRect(box1, box2)) {
|
|
47003
47385
|
(label1.labelrank < label2.labelrank ? label1 : label2)
|
|
47004
47386
|
.newOpacity = 0;
|