highcharts 10.1.0 → 10.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bower.json +1 -1
- package/es-modules/Accessibility/Accessibility.js +2 -3
- package/es-modules/Accessibility/Components/AnnotationsA11y.js +3 -3
- package/es-modules/Accessibility/Components/ContainerComponent.js +3 -1
- package/es-modules/Accessibility/Components/InfoRegionsComponent.js +5 -3
- package/es-modules/Accessibility/Components/LegendComponent.js +3 -3
- package/es-modules/Accessibility/Components/MenuComponent.js +3 -1
- package/es-modules/Accessibility/Components/RangeSelectorComponent.js +3 -1
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +3 -1
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +12 -6
- package/es-modules/Accessibility/Components/ZoomComponent.js +30 -70
- package/es-modules/Accessibility/HighContrastMode.js +1 -1
- package/es-modules/Accessibility/KeyboardNavigation.js +2 -2
- package/es-modules/Accessibility/Options/{Options.js → A11yDefaults.js} +6 -1
- package/es-modules/Accessibility/Options/DeprecatedOptions.js +12 -2
- package/es-modules/Accessibility/Options/{LangOptions.js → LangDefaults.js} +10 -0
- package/es-modules/Accessibility/Utils/ChartUtilities.js +1 -1
- package/es-modules/Core/Animation/Fx.js +1 -1
- package/es-modules/Core/Axis/Axis.js +18 -19
- package/es-modules/Core/Axis/AxisDefaults.js +8 -8
- package/es-modules/Core/Axis/Color/ColorAxis.js +4 -2
- package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +3 -3
- package/es-modules/Core/Axis/DateTimeAxis.js +5 -3
- package/es-modules/Core/Axis/GridAxis.js +817 -821
- package/es-modules/Core/Axis/OrdinalAxis.js +23 -1
- package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +2 -2
- package/es-modules/Core/Axis/Tick.js +20 -16
- package/es-modules/Core/Axis/TreeGridTick.js +2 -2
- package/es-modules/Core/Axis/ZAxis.js +3 -1
- package/es-modules/Core/Chart/Chart.js +13 -12
- package/es-modules/Core/Chart/ChartDefaults.js +3 -3
- package/es-modules/Core/Chart/GanttChart.js +3 -1
- package/es-modules/Core/Chart/MapChart.js +3 -1
- package/es-modules/Core/Chart/StockChart.js +6 -4
- package/es-modules/Core/Color/Color.js +1 -1
- package/es-modules/Core/DefaultOptions.js +11 -11
- package/es-modules/Core/Globals.js +1 -1
- package/es-modules/Core/HttpUtilities.js +39 -37
- package/es-modules/Core/Legend/Legend.js +3 -3
- package/es-modules/Core/MSPointer.js +3 -1
- package/es-modules/Core/Navigator.js +6 -6
- package/es-modules/Core/Pointer.js +1 -1
- package/es-modules/Core/Renderer/HTML/AST.js +1 -1
- package/es-modules/Core/Renderer/HTML/HTMLElement.js +3 -1
- package/es-modules/Core/Renderer/HTML/HTMLRenderer.js +3 -1
- package/es-modules/Core/Renderer/SVG/SVGElement.js +7 -7
- package/es-modules/Core/Renderer/SVG/SVGLabel.js +3 -1
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +37 -35
- package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +3 -1
- package/es-modules/Core/ScrollbarDefaults.js +8 -8
- package/es-modules/Core/Series/DataLabel.js +2 -2
- package/es-modules/Core/Series/Point.js +9 -0
- package/es-modules/Core/Series/Series.js +5 -5
- package/es-modules/Core/Series/Series3D.js +3 -1
- package/es-modules/Core/Series/SeriesDefaults.js +3 -3
- package/es-modules/Core/Time.js +6 -7
- package/es-modules/Core/Tooltip.js +3 -3
- package/es-modules/Core/Utilities.js +5 -5
- package/es-modules/Data/DataConverter.js +1 -1
- package/es-modules/Data/DataTable.js +12 -10
- package/es-modules/Data/Modifiers/ChainModifier.js +3 -1
- package/es-modules/Data/Modifiers/GroupModifier.js +3 -1
- package/es-modules/Data/Modifiers/InvertModifier.js +9 -7
- package/es-modules/Data/Modifiers/RangeModifier.js +3 -1
- package/es-modules/Data/Modifiers/SeriesPointsModifier.js +3 -1
- package/es-modules/Data/Modifiers/SortModifier.js +3 -1
- package/es-modules/Data/Parsers/CSVParser.js +3 -1
- package/es-modules/Data/Parsers/DataParser.js +1 -1
- package/es-modules/Data/Parsers/GoogleSheetsParser.js +3 -2
- package/es-modules/Data/Parsers/HTMLTableParser.js +3 -1
- package/es-modules/Data/Stores/CSVStore.js +8 -5
- package/es-modules/Data/Stores/GoogleSheetsStore.js +3 -1
- package/es-modules/Data/Stores/HTMLTableStore.js +3 -1
- package/es-modules/Extensions/Annotations/{Annotations.js → Annotation.js} +21 -9
- package/es-modules/Extensions/Annotations/AnnotationsDefaults.js +0 -0
- package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +5 -2
- package/es-modules/Extensions/Annotations/NavigationBindings.js +8 -5
- package/es-modules/Extensions/Annotations/Popup.js +2 -2
- package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +13 -9
- package/es-modules/Extensions/Annotations/Types/CrookedLine.js +4 -2
- package/es-modules/Extensions/Annotations/Types/ElliottWave.js +4 -2
- package/es-modules/Extensions/Annotations/Types/Fibonacci.js +5 -3
- package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +4 -2
- package/es-modules/Extensions/Annotations/Types/InfinityLine.js +4 -2
- package/es-modules/Extensions/Annotations/Types/Measure.js +4 -2
- package/es-modules/Extensions/Annotations/Types/Pitchfork.js +4 -2
- package/es-modules/Extensions/Annotations/Types/TimeCycles.js +4 -2
- package/es-modules/Extensions/Annotations/Types/Tunnel.js +5 -2
- package/es-modules/Extensions/Annotations/Types/VerticalLine.js +4 -2
- package/es-modules/Extensions/Boost/BoostAttach.js +5 -1
- package/es-modules/Extensions/Boost/BoostInit.js +3 -2
- package/es-modules/Extensions/BoostCanvas.js +11 -5
- package/es-modules/Extensions/Breadcrumbs.js +31 -6
- package/es-modules/Extensions/CurrentDateIndication.js +1 -1
- package/es-modules/Extensions/Data.js +638 -602
- package/es-modules/Extensions/DownloadURL.js +3 -3
- package/es-modules/Extensions/DragPanes.js +1 -1
- package/es-modules/Extensions/Drilldown.js +2 -2
- package/es-modules/Extensions/ExportData.js +57 -7
- package/es-modules/Extensions/Exporting/Exporting.js +3 -3
- package/es-modules/Extensions/Exporting/ExportingDefaults.js +7 -7
- package/es-modules/Extensions/GeoJSON.js +0 -2
- package/es-modules/Extensions/MarkerClusters.js +3 -3
- package/es-modules/Extensions/NoDataToDisplay.js +1 -1
- package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
- package/es-modules/Extensions/Oldie/Oldie.js +2 -2
- package/es-modules/Extensions/Pane.js +3 -3
- package/es-modules/Extensions/ParallelCoordinates.js +1 -1
- package/es-modules/Extensions/PatternFill.js +14 -2
- package/es-modules/Extensions/RangeSelector.js +29 -18
- package/es-modules/Extensions/ScrollablePlotArea.js +3 -3
- package/es-modules/Extensions/{SeriesLabel.js → SeriesLabel/SeriesLabel.js} +262 -384
- package/es-modules/Extensions/SeriesLabel/SeriesLabelDefaults.js +124 -0
- package/es-modules/Extensions/SeriesLabel/SeriesLabelUtilities.js +67 -0
- package/es-modules/Extensions/Sonification/Earcon.js +1 -1
- package/es-modules/Extensions/Stacking.js +1 -1
- package/es-modules/Maps/MapNavigation.js +2 -2
- package/es-modules/Maps/MapView.js +23 -16
- package/es-modules/Maps/MapViewInsetsOptionsDefault.js +1 -1
- package/es-modules/Maps/Projection.js +13 -11
- package/es-modules/Series/ArcDiagram/ArcDiagramPoint.js +3 -1
- package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +3 -1
- package/es-modules/Series/Area/AreaSeries.js +21 -14
- package/es-modules/Series/AreaRange/AreaRangePoint.js +24 -11
- package/es-modules/Series/AreaRange/AreaRangeSeries.js +154 -147
- package/es-modules/Series/AreaSpline/AreaSplineSeries.js +45 -41
- package/es-modules/Series/AreaSplineRange/AreaSplineRangeSeries.js +43 -43
- package/es-modules/Series/Bar/BarSeries.js +3 -1
- package/es-modules/Series/Bellcurve/BellcurveSeries.js +3 -1
- package/es-modules/Series/BoxPlot/BoxPlotSeries.js +4 -2
- package/es-modules/Series/Bubble/BubbleLegendDefaults.js +1 -1
- package/es-modules/Series/Bubble/BubblePoint.js +3 -1
- package/es-modules/Series/Bubble/BubbleSeries.js +15 -6
- package/es-modules/Series/Bullet/BulletPoint.js +3 -1
- package/es-modules/Series/Bullet/BulletSeries.js +4 -3
- package/es-modules/Series/Candlestick/CandlestickSeries.js +5 -3
- package/es-modules/Series/CenteredUtilities.js +2 -1
- package/es-modules/Series/ColorMapComposition.js +111 -0
- package/es-modules/Series/Column/ColumnSeries.js +6 -4
- package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +3 -1
- package/es-modules/Series/ColumnRange/ColumnRangePoint.js +17 -13
- package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +60 -57
- package/es-modules/Series/Cylinder/CylinderPoint.js +3 -1
- package/es-modules/Series/Cylinder/CylinderSeries.js +3 -1
- package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +3 -1
- package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +3 -1
- package/es-modules/Series/DotPlot/DotPlotSeries.js +3 -1
- package/es-modules/Series/DrawPointUtilities.js +87 -0
- package/es-modules/Series/Dumbbell/DumbbellPoint.js +3 -1
- package/es-modules/Series/Dumbbell/DumbbellSeries.js +4 -2
- package/es-modules/Series/ErrorBar/ErrorBarSeries.js +4 -2
- package/es-modules/Series/Flags/FlagsPoint.js +4 -1
- package/es-modules/Series/Flags/FlagsSeries.js +6 -4
- package/es-modules/Series/Funnel/FunnelSeries.js +5 -3
- package/es-modules/Series/Funnel3D/Funnel3DPoint.js +3 -1
- package/es-modules/Series/Funnel3D/Funnel3DSeries.js +3 -1
- package/es-modules/Series/Gantt/GanttPoint.js +3 -1
- package/es-modules/Series/Gantt/GanttSeries.js +3 -1
- package/es-modules/Series/Gauge/GaugePoint.js +3 -1
- package/es-modules/Series/Gauge/GaugeSeries.js +195 -173
- package/es-modules/Series/HLC/HLCPoint.js +3 -1
- package/es-modules/Series/HLC/HLCSeries.js +4 -2
- package/es-modules/Series/Heatmap/HeatmapPoint.js +7 -5
- package/es-modules/Series/Heatmap/HeatmapSeries.js +16 -13
- package/es-modules/Series/HeikinAshi/HeikinAshiPoint.js +3 -1
- package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +3 -1
- package/es-modules/Series/Histogram/HistogramSeries.js +3 -1
- package/es-modules/Series/HollowCandlestick/HollowCandlestickPoint.js +3 -1
- package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +11 -9
- package/es-modules/Series/Item/ItemPoint.js +3 -1
- package/es-modules/Series/Item/ItemSeries.js +3 -1
- package/es-modules/Series/Line/LineSeries.js +4 -2
- package/es-modules/Series/Lollipop/LollipopPoint.js +3 -1
- package/es-modules/Series/Lollipop/LollipopSeries.js +3 -1
- package/es-modules/Series/Map/MapPoint.js +8 -6
- package/es-modules/Series/Map/MapSeries.js +98 -26
- package/es-modules/Series/MapBubble/MapBubblePoint.js +3 -1
- package/es-modules/Series/MapBubble/MapBubbleSeries.js +3 -1
- package/es-modules/Series/MapLine/MapLineSeries.js +18 -1
- package/es-modules/Series/MapPoint/MapPointPoint.js +4 -2
- package/es-modules/Series/MapPoint/MapPointSeries.js +10 -2
- package/es-modules/Series/Networkgraph/Networkgraph.js +3 -1
- package/es-modules/Series/NodesComposition.js +45 -40
- package/es-modules/Series/OHLC/OHLCPoint.js +3 -1
- package/es-modules/Series/OHLC/OHLCSeries.js +3 -1
- package/es-modules/Series/Organization/OrganizationPoint.js +3 -1
- package/es-modules/Series/Organization/OrganizationSeries.js +5 -3
- package/es-modules/Series/PackedBubble/PackedBubbleComposition.js +0 -2
- package/es-modules/Series/PackedBubble/PackedBubblePoint.js +3 -1
- package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +3 -1
- package/es-modules/Series/ParetoSeries/ParetoSeries.js +3 -1
- package/es-modules/Series/Pie/PieDataLabel.js +1 -1
- package/es-modules/Series/Pie/PiePoint.js +3 -1
- package/es-modules/Series/Pie/PieSeries.js +39 -36
- package/es-modules/Series/Pie3D/Pie3DPoint.js +3 -1
- package/es-modules/Series/Pie3D/Pie3DSeries.js +3 -1
- package/es-modules/Series/PolarComposition.js +819 -0
- package/es-modules/Series/Polygon/PolygonSeries.js +3 -1
- package/es-modules/Series/Pyramid/PyramidSeries.js +3 -1
- package/es-modules/Series/Pyramid3D/Pyramid3DSeries.js +3 -1
- package/es-modules/Series/Sankey/SankeyPoint.js +3 -1
- package/es-modules/Series/Sankey/SankeySeries.js +22 -8
- package/es-modules/Series/Scatter/ScatterSeries.js +10 -5
- package/es-modules/Series/Scatter3D/Scatter3DPoint.js +3 -1
- package/es-modules/Series/Scatter3D/Scatter3DSeries.js +3 -1
- package/es-modules/Series/SeriesOnPointComposition.js +391 -0
- package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +5 -3
- package/es-modules/Series/Spline/SplineSeries.js +13 -4
- package/es-modules/Series/Streamgraph/StreamgraphSeries.js +3 -1
- package/es-modules/Series/Sunburst/SunburstPoint.js +3 -3
- package/es-modules/Series/Sunburst/SunburstSeries.js +7 -2
- package/es-modules/Series/Tilemap/TilemapPoint.js +3 -1
- package/es-modules/Series/Tilemap/TilemapSeries.js +3 -1
- package/es-modules/Series/Timeline/TimelinePoint.js +3 -1
- package/es-modules/Series/Timeline/TimelineSeries.js +6 -4
- package/es-modules/Series/Treemap/TreemapPoint.js +8 -4
- package/es-modules/Series/Treemap/TreemapSeries.js +9 -7
- package/es-modules/Series/VariablePie/VariablePieSeries.js +3 -1
- package/es-modules/Series/Variwide/VariwidePoint.js +3 -1
- package/es-modules/Series/Variwide/VariwideSeries.js +3 -1
- package/es-modules/Series/Vector/VectorSeries.js +3 -1
- package/es-modules/Series/Venn/VennPoint.js +5 -5
- package/es-modules/Series/Venn/VennSeries.js +9 -6
- package/es-modules/Series/Waterfall/WaterfallPoint.js +3 -1
- package/es-modules/Series/Waterfall/WaterfallSeries.js +14 -12
- package/es-modules/Series/Windbarb/WindbarbPoint.js +3 -1
- package/es-modules/Series/Windbarb/WindbarbSeries.js +3 -1
- package/es-modules/Series/Wordcloud/WordcloudPoint.js +6 -6
- package/es-modules/Series/Wordcloud/WordcloudSeries.js +7 -4
- package/es-modules/Series/XRange/XRangePoint.js +3 -1
- package/es-modules/Series/XRange/XRangeSeries.js +3 -1
- package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +3 -1
- package/es-modules/Stock/Indicators/AD/ADIndicator.js +3 -1
- package/es-modules/Stock/Indicators/AO/AOIndicator.js +5 -3
- package/es-modules/Stock/Indicators/APO/APOIndicator.js +3 -1
- package/es-modules/Stock/Indicators/ATR/ATRIndicator.js +3 -1
- package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +3 -1
- package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +3 -1
- package/es-modules/Stock/Indicators/BB/BBIndicator.js +6 -4
- package/es-modules/Stock/Indicators/CCI/CCIIndicator.js +3 -1
- package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +3 -1
- package/es-modules/Stock/Indicators/CMO/CMOIndicator.js +3 -1
- package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +3 -1
- package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +3 -1
- package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +13 -7
- package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +3 -1
- package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +3 -1
- package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +3 -1
- package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +3 -1
- package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +3 -1
- package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +3 -1
- package/es-modules/Stock/Indicators/LinearRegression/LinearRegression.js +3 -1
- package/es-modules/Stock/Indicators/LinearRegressionAngle/LinearRegressionAngle.js +3 -1
- package/es-modules/Stock/Indicators/LinearRegressionIntercept/LinearRegressionIntercept.js +3 -1
- package/es-modules/Stock/Indicators/LinearRegressionSlopes/LinearRegressionSlopes.js +3 -1
- package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +26 -13
- package/es-modules/Stock/Indicators/MFI/MFIIndicator.js +3 -1
- package/es-modules/Stock/Indicators/Momentum/MomentumIndicator.js +3 -1
- package/es-modules/Stock/Indicators/MultipleLinesComposition.js +85 -95
- package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +3 -1
- package/es-modules/Stock/Indicators/OBV/OBVIndicator.js +3 -1
- package/es-modules/Stock/Indicators/PC/PCIndicator.js +3 -1
- package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +3 -1
- package/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +3 -1
- package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +3 -1
- package/es-modules/Stock/Indicators/PivotPoints/PivotPointsPoint.js +3 -1
- package/es-modules/Stock/Indicators/PriceEnvelopes/PriceEnvelopesIndicator.js +3 -1
- package/es-modules/Stock/Indicators/ROC/ROCIndicator.js +3 -1
- package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +3 -1
- package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +3 -1
- package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +3 -1
- package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +3 -1
- package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +6 -4
- package/es-modules/Stock/Indicators/TEMA/TEMAIndicator.js +3 -1
- package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +3 -1
- package/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +3 -1
- package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +3 -1
- package/es-modules/Stock/Indicators/VBP/VBPPoint.js +3 -1
- package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +3 -1
- package/es-modules/Stock/Indicators/WMA/WMAIndicator.js +3 -1
- package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +3 -1
- package/es-modules/Stock/Indicators/Zigzag/ZigzagIndicator.js +3 -1
- package/es-modules/Stock/StockToolsBindings.js +20 -19
- package/es-modules/Stock/StockToolsGui.js +1 -1
- package/es-modules/masters/highcharts-3d.src.js +1 -1
- package/es-modules/masters/highcharts-gantt.src.js +1 -1
- package/es-modules/masters/highcharts-more.src.js +4 -4
- package/es-modules/masters/highcharts.src.js +1 -1
- package/es-modules/masters/highmaps.src.js +1 -1
- package/es-modules/masters/highstock.src.js +1 -1
- package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
- package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
- package/es-modules/masters/indicators/ao.src.js +1 -1
- package/es-modules/masters/indicators/apo.src.js +1 -1
- package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
- package/es-modules/masters/indicators/aroon.src.js +1 -1
- package/es-modules/masters/indicators/atr.src.js +1 -1
- package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
- package/es-modules/masters/indicators/cci.src.js +1 -1
- package/es-modules/masters/indicators/chaikin.src.js +1 -1
- package/es-modules/masters/indicators/cmf.src.js +1 -1
- package/es-modules/masters/indicators/cmo.src.js +1 -1
- package/es-modules/masters/indicators/dema.src.js +1 -1
- package/es-modules/masters/indicators/disparity-index.src.js +1 -1
- package/es-modules/masters/indicators/dmi.src.js +1 -1
- package/es-modules/masters/indicators/dpo.src.js +1 -1
- package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/es-modules/masters/indicators/indicators-all.src.js +1 -1
- package/es-modules/masters/indicators/indicators.src.js +1 -1
- package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
- package/es-modules/masters/indicators/klinger.src.js +1 -1
- package/es-modules/masters/indicators/macd.src.js +1 -1
- package/es-modules/masters/indicators/mfi.src.js +1 -1
- package/es-modules/masters/indicators/momentum.src.js +1 -1
- package/es-modules/masters/indicators/natr.src.js +1 -1
- package/es-modules/masters/indicators/obv.src.js +1 -1
- package/es-modules/masters/indicators/pivot-points.src.js +1 -1
- package/es-modules/masters/indicators/ppo.src.js +1 -1
- package/es-modules/masters/indicators/price-channel.src.js +1 -1
- package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
- package/es-modules/masters/indicators/psar.src.js +1 -1
- package/es-modules/masters/indicators/regressions.src.js +1 -1
- package/es-modules/masters/indicators/roc.src.js +1 -1
- package/es-modules/masters/indicators/rsi.src.js +1 -1
- package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
- package/es-modules/masters/indicators/stochastic.src.js +1 -1
- package/es-modules/masters/indicators/supertrend.src.js +1 -1
- package/es-modules/masters/indicators/tema.src.js +1 -1
- package/es-modules/masters/indicators/trendline.src.js +1 -1
- package/es-modules/masters/indicators/trix.src.js +1 -1
- package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
- package/es-modules/masters/indicators/vwap.src.js +1 -1
- package/es-modules/masters/indicators/williams-r.src.js +1 -1
- package/es-modules/masters/indicators/wma.src.js +1 -1
- package/es-modules/masters/indicators/zigzag.src.js +1 -1
- package/es-modules/masters/modules/accessibility.src.js +1 -1
- package/es-modules/masters/modules/annotations-advanced.src.js +2 -2
- package/es-modules/masters/modules/annotations.src.js +2 -2
- package/es-modules/masters/modules/arc-diagram.src.js +1 -1
- package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
- package/es-modules/masters/modules/boost-canvas.src.js +1 -1
- package/es-modules/masters/modules/boost.src.js +1 -1
- package/es-modules/masters/modules/broken-axis.src.js +1 -1
- package/es-modules/masters/modules/bullet.src.js +1 -1
- package/es-modules/masters/modules/coloraxis.src.js +1 -1
- package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
- package/es-modules/masters/modules/cylinder.src.js +1 -1
- package/es-modules/masters/modules/data.src.js +2 -1
- package/es-modules/masters/modules/datagrouping.src.js +1 -1
- package/es-modules/masters/modules/debugger.src.js +1 -1
- package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
- package/es-modules/masters/modules/dotplot.src.js +1 -1
- package/es-modules/masters/modules/drag-panes.src.js +1 -1
- package/es-modules/masters/modules/draggable-points.src.js +1 -1
- package/es-modules/masters/modules/drilldown.src.js +1 -1
- package/es-modules/masters/modules/dumbbell.src.js +1 -1
- package/es-modules/masters/modules/export-data.src.js +1 -1
- package/es-modules/masters/modules/exporting.src.js +1 -1
- package/es-modules/masters/modules/full-screen.src.js +1 -1
- package/es-modules/masters/modules/funnel.src.js +1 -1
- package/es-modules/masters/modules/funnel3d.src.js +1 -1
- package/es-modules/masters/modules/gantt.src.js +1 -1
- package/es-modules/masters/modules/grid-axis.src.js +1 -1
- package/es-modules/masters/modules/heatmap.src.js +1 -1
- package/es-modules/masters/modules/heikinashi.src.js +1 -1
- package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
- package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
- package/es-modules/masters/modules/item-series.src.js +1 -1
- package/es-modules/masters/modules/lollipop.src.js +1 -1
- package/es-modules/masters/modules/map.src.js +1 -1
- package/es-modules/masters/modules/marker-clusters.src.js +1 -1
- package/es-modules/masters/modules/networkgraph.src.js +1 -1
- package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
- package/es-modules/masters/modules/offline-exporting.src.js +1 -1
- package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
- package/es-modules/masters/modules/oldie.src.js +1 -1
- package/es-modules/masters/modules/organization.src.js +1 -1
- package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
- package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
- package/es-modules/masters/modules/pareto.src.js +1 -1
- package/es-modules/masters/modules/pathfinder.src.js +1 -1
- package/es-modules/masters/modules/pattern-fill.src.js +1 -1
- package/es-modules/masters/modules/price-indicator.src.js +1 -1
- package/es-modules/masters/modules/pyramid3d.src.js +1 -1
- package/es-modules/masters/modules/sankey.src.js +1 -1
- package/es-modules/masters/modules/series-label.src.js +5 -2
- package/es-modules/masters/modules/series-on-point.src.js +16 -0
- package/es-modules/masters/modules/solid-gauge.src.js +1 -1
- package/es-modules/masters/modules/sonification.src.js +2 -6
- package/es-modules/masters/modules/static-scale.src.js +1 -1
- package/es-modules/masters/modules/stock-tools.src.js +1 -1
- package/es-modules/masters/modules/stock.src.js +1 -1
- package/es-modules/masters/modules/streamgraph.src.js +1 -1
- package/es-modules/masters/modules/sunburst.src.js +1 -1
- package/es-modules/masters/modules/tilemap.src.js +1 -1
- package/es-modules/masters/modules/timeline.src.js +1 -1
- package/es-modules/masters/modules/treegrid.src.js +1 -1
- package/es-modules/masters/modules/treemap.src.js +1 -1
- package/es-modules/masters/modules/variable-pie.src.js +1 -1
- package/es-modules/masters/modules/variwide.src.js +1 -1
- package/es-modules/masters/modules/vector.src.js +1 -1
- package/es-modules/masters/modules/venn.src.js +1 -1
- package/es-modules/masters/modules/windbarb.src.js +1 -1
- package/es-modules/masters/modules/wordcloud.src.js +1 -1
- package/es-modules/masters/modules/xrange.src.js +1 -1
- package/es-modules/masters/themes/avocado.src.js +1 -1
- package/es-modules/masters/themes/brand-dark.src.js +1 -1
- package/es-modules/masters/themes/brand-light.src.js +1 -1
- package/es-modules/masters/themes/dark-blue.src.js +1 -1
- package/es-modules/masters/themes/dark-green.src.js +1 -1
- package/es-modules/masters/themes/dark-unica.src.js +1 -1
- package/es-modules/masters/themes/gray.src.js +1 -1
- package/es-modules/masters/themes/grid-light.src.js +1 -1
- package/es-modules/masters/themes/grid.src.js +1 -1
- package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
- package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
- package/es-modules/masters/themes/sand-signika.src.js +1 -1
- package/es-modules/masters/themes/skies.src.js +1 -1
- package/es-modules/masters/themes/sunset.src.js +1 -1
- package/highcharts-3d.js +1 -1
- package/highcharts-3d.src.js +1 -1
- package/highcharts-gantt.js +811 -809
- package/highcharts-gantt.js.map +1 -1
- package/highcharts-gantt.src.js +1271 -1213
- package/highcharts-more.d.ts +10 -0
- package/highcharts-more.js +194 -195
- package/highcharts-more.js.map +1 -1
- package/highcharts-more.src.d.ts +10 -0
- package/highcharts-more.src.js +5649 -5515
- package/highcharts.d.ts +9118 -429
- package/highcharts.js +595 -594
- package/highcharts.js.map +1 -1
- package/highcharts.src.d.ts +9118 -429
- package/highcharts.src.js +335 -285
- package/highmaps.js +763 -760
- package/highmaps.js.map +1 -1
- package/highmaps.src.js +640 -448
- package/highstock.js +797 -794
- package/highstock.js.map +1 -1
- package/highstock.src.js +414 -327
- package/indicators/acceleration-bands.d.ts +1 -17
- package/indicators/acceleration-bands.js +11 -12
- package/indicators/acceleration-bands.js.map +1 -1
- package/indicators/acceleration-bands.src.d.ts +1 -17
- package/indicators/acceleration-bands.src.js +89 -99
- package/indicators/accumulation-distribution.js +1 -1
- package/indicators/accumulation-distribution.src.js +1 -1
- package/indicators/ao.js +1 -1
- package/indicators/ao.src.js +3 -3
- package/indicators/apo.js +1 -1
- package/indicators/apo.src.js +1 -1
- package/indicators/aroon-oscillator.d.ts +1 -17
- package/indicators/aroon-oscillator.js +10 -10
- package/indicators/aroon-oscillator.js.map +1 -1
- package/indicators/aroon-oscillator.src.d.ts +1 -17
- package/indicators/aroon-oscillator.src.js +89 -99
- package/indicators/aroon.d.ts +1 -17
- package/indicators/aroon.js +11 -11
- package/indicators/aroon.js.map +1 -1
- package/indicators/aroon.src.d.ts +1 -17
- package/indicators/aroon.src.js +89 -99
- package/indicators/atr.js +1 -1
- package/indicators/atr.src.js +1 -1
- package/indicators/bollinger-bands.d.ts +1 -17
- package/indicators/bollinger-bands.js +11 -12
- package/indicators/bollinger-bands.js.map +1 -1
- package/indicators/bollinger-bands.src.d.ts +1 -17
- package/indicators/bollinger-bands.src.js +92 -102
- package/indicators/cci.js +1 -1
- package/indicators/cci.src.js +1 -1
- package/indicators/chaikin.js +1 -1
- package/indicators/chaikin.src.js +1 -1
- package/indicators/cmf.js +1 -1
- package/indicators/cmf.src.js +1 -1
- package/indicators/cmo.js +1 -1
- package/indicators/cmo.src.js +1 -1
- package/indicators/dema.js +1 -1
- package/indicators/dema.src.js +1 -1
- package/indicators/disparity-index.js +1 -1
- package/indicators/disparity-index.src.js +1 -1
- package/indicators/dmi.js +12 -12
- package/indicators/dmi.js.map +1 -1
- package/indicators/dmi.src.js +99 -105
- package/indicators/dpo.js +1 -1
- package/indicators/dpo.src.js +1 -1
- package/indicators/ichimoku-kinko-hyo.js +1 -1
- package/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/indicators/indicators-all.d.ts +1 -17
- package/indicators/indicators-all.js +195 -194
- package/indicators/indicators-all.js.map +1 -1
- package/indicators/indicators-all.src.d.ts +1 -17
- package/indicators/indicators-all.src.js +131 -125
- package/indicators/indicators.js +1 -1
- package/indicators/indicators.src.js +1 -1
- package/indicators/keltner-channels.d.ts +1 -17
- package/indicators/keltner-channels.js +11 -12
- package/indicators/keltner-channels.js.map +1 -1
- package/indicators/keltner-channels.src.d.ts +1 -17
- package/indicators/keltner-channels.src.js +89 -99
- package/indicators/klinger.js +14 -14
- package/indicators/klinger.js.map +1 -1
- package/indicators/klinger.src.js +89 -99
- package/indicators/macd.js +10 -9
- package/indicators/macd.js.map +1 -1
- package/indicators/macd.src.js +25 -13
- package/indicators/mfi.js +1 -1
- package/indicators/mfi.src.js +1 -1
- package/indicators/momentum.js +1 -1
- package/indicators/momentum.src.js +1 -1
- package/indicators/natr.js +1 -1
- package/indicators/natr.src.js +1 -1
- package/indicators/obv.js +1 -1
- package/indicators/obv.src.js +1 -1
- package/indicators/pivot-points.js +1 -1
- package/indicators/pivot-points.src.js +1 -1
- package/indicators/ppo.js +1 -1
- package/indicators/ppo.src.js +1 -1
- package/indicators/price-channel.d.ts +1 -17
- package/indicators/price-channel.js +11 -11
- package/indicators/price-channel.js.map +1 -1
- package/indicators/price-channel.src.d.ts +1 -17
- package/indicators/price-channel.src.js +89 -99
- package/indicators/price-envelopes.js +1 -1
- package/indicators/price-envelopes.src.js +1 -1
- package/indicators/psar.js +1 -1
- package/indicators/psar.src.js +1 -1
- package/indicators/regressions.js +1 -1
- package/indicators/regressions.src.js +1 -1
- package/indicators/roc.js +1 -1
- package/indicators/roc.src.js +1 -1
- package/indicators/rsi.js +1 -1
- package/indicators/rsi.src.js +1 -1
- package/indicators/slow-stochastic.js +1 -1
- package/indicators/slow-stochastic.src.js +1 -1
- package/indicators/stochastic.d.ts +1 -17
- package/indicators/stochastic.js +12 -12
- package/indicators/stochastic.js.map +1 -1
- package/indicators/stochastic.src.d.ts +1 -17
- package/indicators/stochastic.src.js +89 -99
- package/indicators/supertrend.js +1 -1
- package/indicators/supertrend.src.js +4 -4
- package/indicators/tema.js +1 -1
- package/indicators/tema.src.js +1 -1
- package/indicators/trendline.js +1 -1
- package/indicators/trendline.src.js +1 -1
- package/indicators/trix.js +1 -1
- package/indicators/trix.src.js +1 -1
- package/indicators/volume-by-price.js +1 -1
- package/indicators/volume-by-price.src.js +1 -1
- package/indicators/vwap.js +1 -1
- package/indicators/vwap.src.js +1 -1
- package/indicators/williams-r.js +1 -1
- package/indicators/williams-r.src.js +1 -1
- package/indicators/wma.js +1 -1
- package/indicators/wma.src.js +1 -1
- package/indicators/zigzag.js +1 -1
- package/indicators/zigzag.src.js +1 -1
- package/modules/accessibility.js +230 -229
- package/modules/accessibility.js.map +1 -1
- package/modules/accessibility.src.js +110 -115
- package/modules/annotations-advanced.js +187 -187
- package/modules/annotations-advanced.js.map +1 -1
- package/modules/annotations-advanced.src.js +62 -39
- package/modules/annotations.js +61 -61
- package/modules/annotations.js.map +1 -1
- package/modules/annotations.src.js +38 -20
- package/modules/arc-diagram.js +1 -1
- package/modules/arc-diagram.src.js +1 -1
- package/modules/arrow-symbols.js +1 -1
- package/modules/arrow-symbols.src.js +1 -1
- package/modules/boost-canvas.js +12 -11
- package/modules/boost-canvas.js.map +1 -1
- package/modules/boost-canvas.src.js +12 -6
- package/modules/boost.js +81 -80
- package/modules/boost.js.map +1 -1
- package/modules/boost.src.js +20 -9
- package/modules/broken-axis.js +1 -1
- package/modules/broken-axis.src.js +1 -1
- package/modules/bullet.js +1 -1
- package/modules/bullet.js.map +1 -1
- package/modules/bullet.src.js +2 -5
- package/modules/coloraxis.js +2 -2
- package/modules/coloraxis.js.map +1 -1
- package/modules/coloraxis.src.js +5 -5
- package/modules/current-date-indicator.js +1 -1
- package/modules/current-date-indicator.src.js +2 -2
- package/modules/cylinder.js +1 -1
- package/modules/cylinder.src.js +1 -1
- package/modules/data.d.ts +12 -12
- package/modules/data.js +33 -34
- package/modules/data.js.map +1 -1
- package/modules/data.src.d.ts +12 -12
- package/modules/data.src.js +862 -829
- package/modules/datagrouping.js +1 -1
- package/modules/datagrouping.src.js +1 -1
- package/modules/debugger.js +1 -1
- package/modules/debugger.src.js +1 -1
- package/modules/dependency-wheel.js +1 -1
- package/modules/dependency-wheel.src.js +1 -1
- package/modules/dotplot.js +1 -1
- package/modules/dotplot.src.js +1 -1
- package/modules/drag-panes.js +1 -1
- package/modules/drag-panes.src.js +2 -2
- package/modules/draggable-points.js +1 -1
- package/modules/draggable-points.src.js +1 -1
- package/modules/drilldown.js +37 -36
- package/modules/drilldown.js.map +1 -1
- package/modules/drilldown.src.js +40 -9
- package/modules/dumbbell.d.ts +4 -0
- package/modules/dumbbell.js +17 -17
- package/modules/dumbbell.js.map +1 -1
- package/modules/dumbbell.src.d.ts +4 -0
- package/modules/dumbbell.src.js +24 -12
- package/modules/export-data.js +24 -22
- package/modules/export-data.js.map +1 -1
- package/modules/export-data.src.js +76 -11
- package/modules/exporting.d.ts +8 -8
- package/modules/exporting.js +36 -36
- package/modules/exporting.js.map +1 -1
- package/modules/exporting.src.d.ts +8 -8
- package/modules/exporting.src.js +50 -50
- package/modules/full-screen.js +1 -1
- package/modules/full-screen.src.js +1 -1
- package/modules/funnel.js +1 -1
- package/modules/funnel.src.js +3 -3
- package/modules/funnel3d.js +1 -1
- package/modules/funnel3d.src.js +1 -1
- package/modules/gantt.js +218 -218
- package/modules/gantt.js.map +1 -1
- package/modules/gantt.src.js +935 -927
- package/modules/grid-axis.js +23 -23
- package/modules/grid-axis.js.map +1 -1
- package/modules/grid-axis.src.js +886 -890
- package/modules/heatmap.js +40 -40
- package/modules/heatmap.js.map +1 -1
- package/modules/heatmap.src.js +115 -87
- package/modules/heikinashi.js +1 -1
- package/modules/heikinashi.src.js +1 -1
- package/modules/histogram-bellcurve.js +1 -1
- package/modules/histogram-bellcurve.src.js +1 -1
- package/modules/hollowcandlestick.js +1 -1
- package/modules/hollowcandlestick.src.js +9 -9
- package/modules/item-series.js +1 -1
- package/modules/item-series.src.js +1 -1
- package/modules/lollipop.js +1 -1
- package/modules/lollipop.src.js +1 -1
- package/modules/map.js +171 -169
- package/modules/map.js.map +1 -1
- package/modules/map.src.js +306 -164
- package/modules/marker-clusters.js +1 -1
- package/modules/marker-clusters.js.map +1 -1
- package/modules/marker-clusters.src.js +2 -6
- package/modules/networkgraph.d.ts +1 -17
- package/modules/networkgraph.js +49 -49
- package/modules/networkgraph.js.map +1 -1
- package/modules/networkgraph.src.d.ts +1 -17
- package/modules/networkgraph.src.js +55 -45
- package/modules/no-data-to-display.js +1 -1
- package/modules/no-data-to-display.src.js +2 -2
- package/modules/offline-exporting.js +3 -3
- package/modules/offline-exporting.js.map +1 -1
- package/modules/offline-exporting.src.js +5 -5
- package/modules/oldie-polyfills.js +1 -1
- package/modules/oldie-polyfills.src.js +1 -1
- package/modules/oldie.js +2 -2
- package/modules/oldie.src.js +3 -3
- package/modules/organization.js +1 -1
- package/modules/organization.src.js +3 -3
- package/modules/overlapping-datalabels.js +1 -1
- package/modules/overlapping-datalabels.src.js +1 -1
- package/modules/parallel-coordinates.js +2 -2
- package/modules/parallel-coordinates.js.map +1 -1
- package/modules/parallel-coordinates.src.js +2 -2
- package/modules/pareto.js +1 -1
- package/modules/pareto.src.js +1 -1
- package/modules/pathfinder.js +1 -1
- package/modules/pathfinder.src.js +1 -1
- package/modules/pattern-fill.js +15 -14
- package/modules/pattern-fill.js.map +1 -1
- package/modules/pattern-fill.src.js +15 -2
- package/modules/price-indicator.js +1 -1
- package/modules/price-indicator.src.js +1 -1
- package/modules/pyramid3d.js +1 -1
- package/modules/pyramid3d.src.js +1 -1
- package/modules/sankey.d.ts +1 -17
- package/modules/sankey.js +32 -32
- package/modules/sankey.js.map +1 -1
- package/modules/sankey.src.d.ts +1 -17
- package/modules/sankey.src.js +86 -55
- package/modules/series-label.js +18 -18
- package/modules/series-label.js.map +1 -1
- package/modules/series-label.src.js +472 -385
- package/modules/series-on-point.js +18 -0
- package/modules/series-on-point.js.map +1 -0
- package/modules/series-on-point.src.js +464 -0
- package/modules/solid-gauge.js +4 -4
- package/modules/solid-gauge.js.map +1 -1
- package/modules/solid-gauge.src.js +5 -5
- package/modules/sonification.js +1 -1
- package/modules/sonification.js.map +1 -1
- package/modules/sonification.src.js +3 -7
- package/modules/static-scale.js +1 -1
- package/modules/static-scale.src.js +1 -1
- package/modules/stock-tools.js +142 -142
- package/modules/stock-tools.js.map +1 -1
- package/modules/stock-tools.src.js +57 -38
- package/modules/stock.js +205 -204
- package/modules/stock.js.map +1 -1
- package/modules/stock.src.js +80 -43
- package/modules/streamgraph.js +1 -1
- package/modules/streamgraph.src.js +1 -1
- package/modules/sunburst.js +73 -73
- package/modules/sunburst.js.map +1 -1
- package/modules/sunburst.src.js +211 -177
- package/modules/tilemap.js +1 -1
- package/modules/tilemap.src.js +1 -1
- package/modules/timeline.js +1 -1
- package/modules/timeline.src.js +4 -4
- package/modules/treegrid.js +56 -56
- package/modules/treegrid.js.map +1 -1
- package/modules/treegrid.src.js +888 -892
- package/modules/treemap.js +54 -53
- package/modules/treemap.js.map +1 -1
- package/modules/treemap.src.js +208 -176
- package/modules/variable-pie.js +1 -1
- package/modules/variable-pie.src.js +1 -1
- package/modules/variwide.js +1 -1
- package/modules/variwide.src.js +1 -1
- package/modules/vector.js +1 -1
- package/modules/vector.src.js +1 -1
- package/modules/venn.js +31 -31
- package/modules/venn.js.map +1 -1
- package/modules/venn.src.js +78 -107
- package/modules/windbarb.js +1 -1
- package/modules/windbarb.src.js +1 -1
- package/modules/wordcloud.js +23 -24
- package/modules/wordcloud.js.map +1 -1
- package/modules/wordcloud.src.js +78 -107
- package/modules/xrange.js +1 -1
- package/modules/xrange.src.js +1 -1
- package/package.json +1 -1
- package/themes/avocado.js +1 -1
- package/themes/avocado.src.js +1 -1
- package/themes/brand-dark.js +1 -1
- package/themes/brand-dark.src.js +1 -1
- package/themes/brand-light.js +1 -1
- package/themes/brand-light.src.js +1 -1
- package/themes/dark-blue.js +1 -1
- package/themes/dark-blue.src.js +1 -1
- package/themes/dark-green.js +1 -1
- package/themes/dark-green.src.js +1 -1
- package/themes/dark-unica.js +1 -1
- package/themes/dark-unica.src.js +1 -1
- package/themes/gray.js +1 -1
- package/themes/gray.src.js +1 -1
- package/themes/grid-light.js +1 -1
- package/themes/grid-light.src.js +1 -1
- package/themes/grid.js +1 -1
- package/themes/grid.src.js +1 -1
- package/themes/high-contrast-dark.js +1 -1
- package/themes/high-contrast-dark.src.js +1 -1
- package/themes/high-contrast-light.js +1 -1
- package/themes/high-contrast-light.src.js +1 -1
- package/themes/sand-signika.js +1 -1
- package/themes/sand-signika.src.js +1 -1
- package/themes/skies.js +1 -1
- package/themes/skies.src.js +1 -1
- package/themes/sunset.js +1 -1
- package/themes/sunset.src.js +1 -1
- package/es-modules/Extensions/Polar.js +0 -743
- package/es-modules/Series/ColorMapMixin.js +0 -84
- package/es-modules/Series/DrawPointComposition.js +0 -114
|
@@ -15,19 +15,49 @@ import H from '../Globals.js';
|
|
|
15
15
|
var dateFormats = H.dateFormats;
|
|
16
16
|
import U from '../Utilities.js';
|
|
17
17
|
var addEvent = U.addEvent, defined = U.defined, erase = U.erase, find = U.find, isArray = U.isArray, isNumber = U.isNumber, merge = U.merge, pick = U.pick, timeUnits = U.timeUnits, wrap = U.wrap;
|
|
18
|
+
/* *
|
|
19
|
+
*
|
|
20
|
+
* Enums
|
|
21
|
+
*
|
|
22
|
+
* */
|
|
23
|
+
/**
|
|
24
|
+
* Enum for which side the axis is on. Maps to axis.side.
|
|
25
|
+
* @private
|
|
26
|
+
*/
|
|
27
|
+
var GridAxisSide;
|
|
28
|
+
(function (GridAxisSide) {
|
|
29
|
+
GridAxisSide[GridAxisSide["top"] = 0] = "top";
|
|
30
|
+
GridAxisSide[GridAxisSide["right"] = 1] = "right";
|
|
31
|
+
GridAxisSide[GridAxisSide["bottom"] = 2] = "bottom";
|
|
32
|
+
GridAxisSide[GridAxisSide["left"] = 3] = "left";
|
|
33
|
+
})(GridAxisSide || (GridAxisSide = {}));
|
|
34
|
+
/* *
|
|
35
|
+
*
|
|
36
|
+
* Constants
|
|
37
|
+
*
|
|
38
|
+
* */
|
|
39
|
+
var composedClasses = [];
|
|
18
40
|
/* *
|
|
19
41
|
*
|
|
20
42
|
* Functions
|
|
21
43
|
*
|
|
22
44
|
* */
|
|
23
|
-
|
|
45
|
+
/**
|
|
46
|
+
* @private
|
|
47
|
+
*/
|
|
24
48
|
function argsToArray(args) {
|
|
25
49
|
return Array.prototype.slice.call(args, 1);
|
|
26
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* @private
|
|
53
|
+
*/
|
|
27
54
|
function isObject(x) {
|
|
28
55
|
// Always use strict mode
|
|
29
56
|
return U.isObject(x, true);
|
|
30
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* @private
|
|
60
|
+
*/
|
|
31
61
|
function applyGridOptions(axis) {
|
|
32
62
|
var options = axis.options;
|
|
33
63
|
// Center-align by default
|
|
@@ -52,894 +82,857 @@ function applyGridOptions(axis) {
|
|
|
52
82
|
options.labels.rotation = 0;
|
|
53
83
|
}
|
|
54
84
|
/**
|
|
55
|
-
*
|
|
85
|
+
* Extends axis class with grid support.
|
|
56
86
|
* @private
|
|
57
87
|
*/
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
*
|
|
80
|
-
* */
|
|
81
|
-
/* eslint-disable valid-jsdoc */
|
|
82
|
-
/**
|
|
83
|
-
* Extends axis class with grid support.
|
|
84
|
-
* @private
|
|
85
|
-
*/
|
|
86
|
-
function compose(AxisClass, ChartClass, TickClass) {
|
|
87
|
-
if (AxisClass.keepProps.indexOf('grid') === -1) {
|
|
88
|
-
AxisClass.keepProps.push('grid');
|
|
89
|
-
AxisClass.prototype.getMaxLabelDimensions = getMaxLabelDimensions;
|
|
90
|
-
wrap(AxisClass.prototype, 'unsquish', wrapUnsquish);
|
|
91
|
-
// Add event handlers
|
|
92
|
-
addEvent(AxisClass, 'init', onInit);
|
|
93
|
-
addEvent(AxisClass, 'afterGetOffset', onAfterGetOffset);
|
|
94
|
-
addEvent(AxisClass, 'afterGetTitlePosition', onAfterGetTitlePosition);
|
|
95
|
-
addEvent(AxisClass, 'afterInit', onAfterInit);
|
|
96
|
-
addEvent(AxisClass, 'afterRender', onAfterRender);
|
|
97
|
-
addEvent(AxisClass, 'afterSetAxisTranslation', onAfterSetAxisTranslation);
|
|
98
|
-
addEvent(AxisClass, 'afterSetOptions', onAfterSetOptions);
|
|
99
|
-
addEvent(AxisClass, 'afterSetOptions', onAfterSetOptions2);
|
|
100
|
-
addEvent(AxisClass, 'afterSetScale', onAfterSetScale);
|
|
101
|
-
addEvent(AxisClass, 'afterTickSize', onAfterTickSize);
|
|
102
|
-
addEvent(AxisClass, 'trimTicks', onTrimTicks);
|
|
103
|
-
addEvent(AxisClass, 'destroy', onDestroy);
|
|
104
|
-
}
|
|
88
|
+
function compose(AxisClass, ChartClass, TickClass) {
|
|
89
|
+
if (composedClasses.indexOf(AxisClass) === -1) {
|
|
90
|
+
composedClasses.push(AxisClass);
|
|
91
|
+
AxisClass.keepProps.push('grid');
|
|
92
|
+
AxisClass.prototype.getMaxLabelDimensions = getMaxLabelDimensions;
|
|
93
|
+
wrap(AxisClass.prototype, 'unsquish', wrapUnsquish);
|
|
94
|
+
// Add event handlers
|
|
95
|
+
addEvent(AxisClass, 'init', onInit);
|
|
96
|
+
addEvent(AxisClass, 'afterGetOffset', onAfterGetOffset);
|
|
97
|
+
addEvent(AxisClass, 'afterGetTitlePosition', onAfterGetTitlePosition);
|
|
98
|
+
addEvent(AxisClass, 'afterInit', onAfterInit);
|
|
99
|
+
addEvent(AxisClass, 'afterRender', onAfterRender);
|
|
100
|
+
addEvent(AxisClass, 'afterSetAxisTranslation', onAfterSetAxisTranslation);
|
|
101
|
+
addEvent(AxisClass, 'afterSetOptions', onAfterSetOptions);
|
|
102
|
+
addEvent(AxisClass, 'afterSetOptions', onAfterSetOptions2);
|
|
103
|
+
addEvent(AxisClass, 'afterSetScale', onAfterSetScale);
|
|
104
|
+
addEvent(AxisClass, 'afterTickSize', onAfterTickSize);
|
|
105
|
+
addEvent(AxisClass, 'trimTicks', onTrimTicks);
|
|
106
|
+
addEvent(AxisClass, 'destroy', onDestroy);
|
|
107
|
+
}
|
|
108
|
+
if (composedClasses.indexOf(ChartClass) === -1) {
|
|
105
109
|
addEvent(ChartClass, 'afterSetChartSize', onChartAfterSetChartSize);
|
|
110
|
+
}
|
|
111
|
+
if (composedClasses.indexOf(TickClass) === -1) {
|
|
106
112
|
addEvent(TickClass, 'afterGetLabelPosition', onTickAfterGetLabelPosition);
|
|
107
113
|
addEvent(TickClass, 'labelFormat', onTickLabelFormat);
|
|
108
|
-
return AxisClass;
|
|
109
114
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
labelWidth = isNumber(label.textPxLength) ?
|
|
144
|
-
// Math.round ensures crisp lines
|
|
145
|
-
Math.round(label.textPxLength) :
|
|
146
|
-
0;
|
|
147
|
-
if (label.textStr) {
|
|
148
|
-
// Set the tickWidth same as the label width after ellipsis
|
|
149
|
-
// applied #10281
|
|
150
|
-
labelWidth = Math.round(label.getBBox().width);
|
|
151
|
-
}
|
|
152
|
-
// Update the result if width and/or height are larger
|
|
153
|
-
dimensions.height = Math.max(labelHeight, dimensions.height);
|
|
154
|
-
dimensions.width = Math.max(labelWidth, dimensions.width);
|
|
115
|
+
return AxisClass;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Get the largest label width and height.
|
|
119
|
+
*
|
|
120
|
+
* @private
|
|
121
|
+
* @function Highcharts.Axis#getMaxLabelDimensions
|
|
122
|
+
*
|
|
123
|
+
* @param {Highcharts.Dictionary<Highcharts.Tick>} ticks
|
|
124
|
+
* All the ticks on one axis.
|
|
125
|
+
*
|
|
126
|
+
* @param {Array<number|string>} tickPositions
|
|
127
|
+
* All the tick positions on one axis.
|
|
128
|
+
*
|
|
129
|
+
* @return {Highcharts.SizeObject}
|
|
130
|
+
* Object containing the properties height and width.
|
|
131
|
+
*
|
|
132
|
+
* @todo Move this to the generic axis implementation, as it is used there.
|
|
133
|
+
*/
|
|
134
|
+
function getMaxLabelDimensions(ticks, tickPositions) {
|
|
135
|
+
var dimensions = {
|
|
136
|
+
width: 0,
|
|
137
|
+
height: 0
|
|
138
|
+
};
|
|
139
|
+
tickPositions.forEach(function (pos) {
|
|
140
|
+
var tick = ticks[pos];
|
|
141
|
+
var labelHeight = 0, labelWidth = 0, label;
|
|
142
|
+
if (isObject(tick)) {
|
|
143
|
+
label = isObject(tick.label) ? tick.label : {};
|
|
144
|
+
// Find width and height of label
|
|
145
|
+
labelHeight = label.getBBox ? label.getBBox().height : 0;
|
|
146
|
+
if (label.textStr && !isNumber(label.textPxLength)) {
|
|
147
|
+
label.textPxLength = label.getBBox().width;
|
|
155
148
|
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
149
|
+
labelWidth = isNumber(label.textPxLength) ?
|
|
150
|
+
// Math.round ensures crisp lines
|
|
151
|
+
Math.round(label.textPxLength) :
|
|
152
|
+
0;
|
|
153
|
+
if (label.textStr) {
|
|
154
|
+
// Set the tickWidth same as the label width after ellipsis
|
|
155
|
+
// applied #10281
|
|
156
|
+
labelWidth = Math.round(label.getBBox().width);
|
|
157
|
+
}
|
|
158
|
+
// Update the result if width and/or height are larger
|
|
159
|
+
dimensions.height = Math.max(labelHeight, dimensions.height);
|
|
160
|
+
dimensions.width = Math.max(labelWidth, dimensions.width);
|
|
164
161
|
}
|
|
165
|
-
|
|
162
|
+
});
|
|
163
|
+
// For tree grid, add indentation
|
|
164
|
+
if (this.options.type === 'treegrid' &&
|
|
165
|
+
this.treeGrid &&
|
|
166
|
+
this.treeGrid.mapOfPosToGridNode) {
|
|
167
|
+
var treeDepth = this.treeGrid.mapOfPosToGridNode[-1].height || 0;
|
|
168
|
+
dimensions.width += (this.options.labels.indentation *
|
|
169
|
+
(treeDepth - 1));
|
|
166
170
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
171
|
+
return dimensions;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Handle columns and getOffset.
|
|
175
|
+
* @private
|
|
176
|
+
*/
|
|
177
|
+
function onAfterGetOffset() {
|
|
178
|
+
var grid = this.grid;
|
|
179
|
+
(grid && grid.columns || []).forEach(function (column) {
|
|
180
|
+
column.getOffset();
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* @private
|
|
185
|
+
*/
|
|
186
|
+
function onAfterGetTitlePosition(e) {
|
|
187
|
+
var axis = this;
|
|
188
|
+
var options = axis.options;
|
|
189
|
+
var gridOptions = options.grid || {};
|
|
190
|
+
if (gridOptions.enabled === true) {
|
|
191
|
+
// compute anchor points for each of the title align options
|
|
192
|
+
var axisTitle = axis.axisTitle, axisHeight = axis.height, horiz = axis.horiz, axisLeft = axis.left, offset = axis.offset, opposite = axis.opposite, options_1 = axis.options, axisTop = axis.top, axisWidth = axis.width;
|
|
193
|
+
var tickSize = axis.tickSize();
|
|
194
|
+
var titleWidth = axisTitle && axisTitle.getBBox().width;
|
|
195
|
+
var xOption = options_1.title.x;
|
|
196
|
+
var yOption = options_1.title.y;
|
|
197
|
+
var titleMargin = pick(options_1.title.margin, horiz ? 5 : 10);
|
|
198
|
+
var titleFontSize = axis.chart.renderer.fontMetrics(options_1.title.style.fontSize, axisTitle).f;
|
|
199
|
+
var crispCorr = tickSize ? tickSize[0] / 2 : 0;
|
|
200
|
+
// TODO account for alignment
|
|
201
|
+
// the position in the perpendicular direction of the axis
|
|
202
|
+
var offAxis = ((horiz ? axisTop + axisHeight : axisLeft) +
|
|
203
|
+
(horiz ? 1 : -1) * // horizontal axis reverses the margin
|
|
204
|
+
(opposite ? -1 : 1) * // so does opposite axes
|
|
205
|
+
crispCorr +
|
|
206
|
+
(axis.side === GridAxisSide.bottom ? titleFontSize : 0));
|
|
207
|
+
e.titlePosition.x = horiz ?
|
|
208
|
+
axisLeft - (titleWidth || 0) / 2 - titleMargin + xOption :
|
|
209
|
+
offAxis + (opposite ? axisWidth : 0) + offset + xOption;
|
|
210
|
+
e.titlePosition.y = horiz ?
|
|
211
|
+
(offAxis -
|
|
212
|
+
(opposite ? axisHeight : 0) +
|
|
213
|
+
(opposite ? titleFontSize : -titleFontSize) / 2 +
|
|
214
|
+
offset +
|
|
215
|
+
yOption) :
|
|
216
|
+
axisTop - titleMargin + yOption;
|
|
176
217
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
var axisTitle = axis.axisTitle, axisHeight = axis.height, horiz = axis.horiz, axisLeft = axis.left, offset = axis.offset, opposite = axis.opposite, options_1 = axis.options, axisTop = axis.top, axisWidth = axis.width;
|
|
187
|
-
var tickSize = axis.tickSize();
|
|
188
|
-
var titleWidth = axisTitle && axisTitle.getBBox().width;
|
|
189
|
-
var xOption = options_1.title.x;
|
|
190
|
-
var yOption = options_1.title.y;
|
|
191
|
-
var titleMargin = pick(options_1.title.margin, horiz ? 5 : 10);
|
|
192
|
-
var titleFontSize = axis.chart.renderer.fontMetrics(options_1.title.style.fontSize, axisTitle).f;
|
|
193
|
-
var crispCorr = tickSize ? tickSize[0] / 2 : 0;
|
|
194
|
-
// TODO account for alignment
|
|
195
|
-
// the position in the perpendicular direction of the axis
|
|
196
|
-
var offAxis = ((horiz ? axisTop + axisHeight : axisLeft) +
|
|
197
|
-
(horiz ? 1 : -1) * // horizontal axis reverses the margin
|
|
198
|
-
(opposite ? -1 : 1) * // so does opposite axes
|
|
199
|
-
crispCorr +
|
|
200
|
-
(axis.side === GridAxis.Side.bottom ? titleFontSize : 0));
|
|
201
|
-
e.titlePosition.x = horiz ?
|
|
202
|
-
axisLeft - (titleWidth || 0) / 2 - titleMargin + xOption :
|
|
203
|
-
offAxis + (opposite ? axisWidth : 0) + offset + xOption;
|
|
204
|
-
e.titlePosition.y = horiz ?
|
|
205
|
-
(offAxis -
|
|
206
|
-
(opposite ? axisHeight : 0) +
|
|
207
|
-
(opposite ? titleFontSize : -titleFontSize) / 2 +
|
|
208
|
-
offset +
|
|
209
|
-
yOption) :
|
|
210
|
-
axisTop - titleMargin + yOption;
|
|
211
|
-
}
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* @private
|
|
221
|
+
*/
|
|
222
|
+
function onAfterInit() {
|
|
223
|
+
var axis = this;
|
|
224
|
+
var chart = axis.chart, _a = axis.options.grid, gridOptions = _a === void 0 ? {} : _a, userOptions = axis.userOptions;
|
|
225
|
+
if (gridOptions.enabled) {
|
|
226
|
+
applyGridOptions(axis);
|
|
212
227
|
}
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
delete columnOptions.grid.columns; // Prevent recursion
|
|
237
|
-
var column = new Axis(axis.chart, columnOptions);
|
|
238
|
-
column.grid.isColumn = true;
|
|
239
|
-
column.grid.columnIndex = columnIndex;
|
|
240
|
-
// Remove column axis from chart axes array, and place it
|
|
241
|
-
// in the columns array.
|
|
242
|
-
erase(chart.axes, column);
|
|
243
|
-
erase(chart[axis.coll], column);
|
|
244
|
-
columns.push(column);
|
|
245
|
-
}
|
|
228
|
+
if (gridOptions.columns) {
|
|
229
|
+
var columns = axis.grid.columns = [];
|
|
230
|
+
var columnIndex = axis.grid.columnIndex = 0;
|
|
231
|
+
// Handle columns, each column is a grid axis
|
|
232
|
+
while (++columnIndex < gridOptions.columns.length) {
|
|
233
|
+
var columnOptions = merge(userOptions, gridOptions.columns[gridOptions.columns.length - columnIndex - 1], {
|
|
234
|
+
linkedTo: 0,
|
|
235
|
+
// Force to behave like category axis
|
|
236
|
+
type: 'category',
|
|
237
|
+
// Disable by default the scrollbar on the grid axis
|
|
238
|
+
scrollbar: {
|
|
239
|
+
enabled: false
|
|
240
|
+
}
|
|
241
|
+
});
|
|
242
|
+
delete columnOptions.grid.columns; // Prevent recursion
|
|
243
|
+
var column = new Axis(axis.chart, columnOptions);
|
|
244
|
+
column.grid.isColumn = true;
|
|
245
|
+
column.grid.columnIndex = columnIndex;
|
|
246
|
+
// Remove column axis from chart axes array, and place it
|
|
247
|
+
// in the columns array.
|
|
248
|
+
erase(chart.axes, column);
|
|
249
|
+
erase(chart[axis.coll], column);
|
|
250
|
+
columns.push(column);
|
|
246
251
|
}
|
|
247
252
|
}
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Draw an extra line on the far side of the outermost axis,
|
|
256
|
+
* creating floor/roof/wall of a grid. And some padding.
|
|
257
|
+
* ```
|
|
258
|
+
* Make this:
|
|
259
|
+
* (axis.min) __________________________ (axis.max)
|
|
260
|
+
* | | | | |
|
|
261
|
+
* Into this:
|
|
262
|
+
* (axis.min) __________________________ (axis.max)
|
|
263
|
+
* ___|____|____|____|____|__
|
|
264
|
+
* ```
|
|
265
|
+
* @private
|
|
266
|
+
*/
|
|
267
|
+
function onAfterRender() {
|
|
268
|
+
var axis = this, grid = axis.grid, options = axis.options, gridOptions = options.grid || {};
|
|
269
|
+
if (gridOptions.enabled === true) {
|
|
270
|
+
var min = axis.min || 0, max = axis.max || 0;
|
|
271
|
+
// @todo acutual label padding (top, bottom, left, right)
|
|
272
|
+
axis.maxLabelDimensions = axis.getMaxLabelDimensions(axis.ticks, axis.tickPositions);
|
|
273
|
+
// Remove right wall before rendering if updating
|
|
274
|
+
if (axis.rightWall) {
|
|
275
|
+
axis.rightWall.destroy();
|
|
276
|
+
}
|
|
277
|
+
/*
|
|
278
|
+
Draw an extra axis line on outer axes
|
|
279
|
+
>
|
|
280
|
+
Make this: |______|______|______|___
|
|
275
281
|
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
}
|
|
293
|
-
else {
|
|
294
|
-
startPoint[1] += distance;
|
|
295
|
-
endPoint[1] += distance;
|
|
296
|
-
}
|
|
282
|
+
> _________________________
|
|
283
|
+
Into this: |______|______|______|__|
|
|
284
|
+
*/
|
|
285
|
+
if (axis.grid && axis.grid.isOuterAxis() && axis.axisLine) {
|
|
286
|
+
var lineWidth = options.lineWidth;
|
|
287
|
+
if (lineWidth) {
|
|
288
|
+
var linePath = axis.getLinePath(lineWidth), startPoint = linePath[0], endPoint = linePath[1],
|
|
289
|
+
// Negate distance if top or left axis
|
|
290
|
+
// Subtract 1px to draw the line at the end of the tick
|
|
291
|
+
tickLength = (axis.tickSize('tick') || [1])[0], distance = (tickLength - 1) * ((axis.side === GridAxisSide.top ||
|
|
292
|
+
axis.side === GridAxisSide.left) ? -1 : 1);
|
|
293
|
+
// If axis is horizontal, reposition line path vertically
|
|
294
|
+
if (startPoint[0] === 'M' && endPoint[0] === 'L') {
|
|
295
|
+
if (axis.horiz) {
|
|
296
|
+
startPoint[2] += distance;
|
|
297
|
+
endPoint[2] += distance;
|
|
297
298
|
}
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
var upperBorderStartPoint = startPoint, upperBorderEndPoint = [
|
|
302
|
-
'L',
|
|
303
|
-
axis.left,
|
|
304
|
-
startPoint[2] || 0
|
|
305
|
-
], upperBorderPath = [
|
|
306
|
-
upperBorderStartPoint,
|
|
307
|
-
upperBorderEndPoint
|
|
308
|
-
], lowerBorderEndPoint = [
|
|
309
|
-
'L',
|
|
310
|
-
axis.chart.chartWidth - axis.chart.marginRight,
|
|
311
|
-
axis.toPixels(max + axis.tickmarkOffset)
|
|
312
|
-
], lowerBorderStartPoint = [
|
|
313
|
-
'M',
|
|
314
|
-
endPoint[1] || 0,
|
|
315
|
-
axis.toPixels(max + axis.tickmarkOffset)
|
|
316
|
-
], lowerBorderPath = [
|
|
317
|
-
lowerBorderStartPoint,
|
|
318
|
-
lowerBorderEndPoint
|
|
319
|
-
];
|
|
320
|
-
if (!axis.grid.upperBorder && min % 1 !== 0) {
|
|
321
|
-
axis.grid.upperBorder = axis.grid.renderBorder(upperBorderPath);
|
|
322
|
-
}
|
|
323
|
-
if (axis.grid.upperBorder) {
|
|
324
|
-
axis.grid.upperBorder.attr({
|
|
325
|
-
stroke: options.lineColor,
|
|
326
|
-
'stroke-width': options.lineWidth
|
|
327
|
-
});
|
|
328
|
-
axis.grid.upperBorder.animate({
|
|
329
|
-
d: upperBorderPath
|
|
330
|
-
});
|
|
331
|
-
}
|
|
332
|
-
if (!axis.grid.lowerBorder && max % 1 !== 0) {
|
|
333
|
-
axis.grid.lowerBorder = axis.grid.renderBorder(lowerBorderPath);
|
|
334
|
-
}
|
|
335
|
-
if (axis.grid.lowerBorder) {
|
|
336
|
-
axis.grid.lowerBorder.attr({
|
|
337
|
-
stroke: options.lineColor,
|
|
338
|
-
'stroke-width': options.lineWidth
|
|
339
|
-
});
|
|
340
|
-
axis.grid.lowerBorder.animate({
|
|
341
|
-
d: lowerBorderPath
|
|
342
|
-
});
|
|
343
|
-
}
|
|
299
|
+
else {
|
|
300
|
+
startPoint[1] += distance;
|
|
301
|
+
endPoint[1] += distance;
|
|
344
302
|
}
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
303
|
+
}
|
|
304
|
+
// If it doesn't exist, add an upper and lower border
|
|
305
|
+
// for the vertical grid axis.
|
|
306
|
+
if (!axis.horiz && axis.chart.marginRight) {
|
|
307
|
+
var upperBorderStartPoint = startPoint, upperBorderEndPoint = [
|
|
308
|
+
'L',
|
|
309
|
+
axis.left,
|
|
310
|
+
startPoint[2] || 0
|
|
311
|
+
], upperBorderPath = [
|
|
312
|
+
upperBorderStartPoint,
|
|
313
|
+
upperBorderEndPoint
|
|
314
|
+
], lowerBorderEndPoint = [
|
|
315
|
+
'L',
|
|
316
|
+
axis.chart.chartWidth - axis.chart.marginRight,
|
|
317
|
+
axis.toPixels(max + axis.tickmarkOffset)
|
|
318
|
+
], lowerBorderStartPoint = [
|
|
319
|
+
'M',
|
|
320
|
+
endPoint[1] || 0,
|
|
321
|
+
axis.toPixels(max + axis.tickmarkOffset)
|
|
322
|
+
], lowerBorderPath = [
|
|
323
|
+
lowerBorderStartPoint,
|
|
324
|
+
lowerBorderEndPoint
|
|
325
|
+
];
|
|
326
|
+
if (!axis.grid.upperBorder && min % 1 !== 0) {
|
|
327
|
+
axis.grid.upperBorder = axis.grid.renderBorder(upperBorderPath);
|
|
349
328
|
}
|
|
350
|
-
|
|
351
|
-
axis.grid.
|
|
329
|
+
if (axis.grid.upperBorder) {
|
|
330
|
+
axis.grid.upperBorder.attr({
|
|
352
331
|
stroke: options.lineColor,
|
|
353
332
|
'stroke-width': options.lineWidth
|
|
354
333
|
});
|
|
355
|
-
axis.grid.
|
|
356
|
-
d:
|
|
334
|
+
axis.grid.upperBorder.animate({
|
|
335
|
+
d: upperBorderPath
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
if (!axis.grid.lowerBorder && max % 1 !== 0) {
|
|
339
|
+
axis.grid.lowerBorder = axis.grid.renderBorder(lowerBorderPath);
|
|
340
|
+
}
|
|
341
|
+
if (axis.grid.lowerBorder) {
|
|
342
|
+
axis.grid.lowerBorder.attr({
|
|
343
|
+
stroke: options.lineColor,
|
|
344
|
+
'stroke-width': options.lineWidth
|
|
345
|
+
});
|
|
346
|
+
axis.grid.lowerBorder.animate({
|
|
347
|
+
d: lowerBorderPath
|
|
357
348
|
});
|
|
358
349
|
}
|
|
359
|
-
// show or hide the line depending on options.showEmpty
|
|
360
|
-
axis.axisLine[axis.showAxis ? 'show' : 'hide']();
|
|
361
350
|
}
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
// Manipulate the tick mark visibility
|
|
367
|
-
// based on the axis.max- allows smooth scrolling.
|
|
368
|
-
if (!axis.horiz &&
|
|
369
|
-
axis.chart.hasRendered &&
|
|
370
|
-
(axis.scrollbar ||
|
|
371
|
-
(axis.linkedParent && axis.linkedParent.scrollbar))) {
|
|
372
|
-
var tickmarkOffset = axis.tickmarkOffset, lastTick = axis.tickPositions[axis.tickPositions.length - 1], firstTick = axis.tickPositions[0];
|
|
373
|
-
var label = void 0, tickMark = void 0;
|
|
374
|
-
while ((label = axis.hiddenLabels.pop()) && label.element) {
|
|
375
|
-
label.show(); // #15453
|
|
351
|
+
// Render an extra line parallel to the existing axes, to
|
|
352
|
+
// close the grid.
|
|
353
|
+
if (!axis.grid.axisLineExtra) {
|
|
354
|
+
axis.grid.axisLineExtra = axis.grid.renderBorder(linePath);
|
|
376
355
|
}
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
356
|
+
else {
|
|
357
|
+
axis.grid.axisLineExtra.attr({
|
|
358
|
+
stroke: options.lineColor,
|
|
359
|
+
'stroke-width': options.lineWidth
|
|
360
|
+
});
|
|
361
|
+
axis.grid.axisLineExtra.animate({
|
|
362
|
+
d: linePath
|
|
363
|
+
});
|
|
380
364
|
}
|
|
381
|
-
//
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
365
|
+
// show or hide the line depending on options.showEmpty
|
|
366
|
+
axis.axisLine[axis.showAxis ? 'show' : 'hide']();
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
(grid && grid.columns || []).forEach(function (column) { return column.render(); });
|
|
370
|
+
// Manipulate the tick mark visibility
|
|
371
|
+
// based on the axis.max- allows smooth scrolling.
|
|
372
|
+
if (!axis.horiz &&
|
|
373
|
+
axis.chart.hasRendered &&
|
|
374
|
+
(axis.scrollbar ||
|
|
375
|
+
(axis.linkedParent && axis.linkedParent.scrollbar))) {
|
|
376
|
+
var tickmarkOffset = axis.tickmarkOffset, lastTick = axis.tickPositions[axis.tickPositions.length - 1], firstTick = axis.tickPositions[0];
|
|
377
|
+
var label = void 0, tickMark = void 0;
|
|
378
|
+
while ((label = axis.hiddenLabels.pop()) && label.element) {
|
|
379
|
+
label.show(); // #15453
|
|
380
|
+
}
|
|
381
|
+
while ((tickMark = axis.hiddenMarks.pop()) &&
|
|
382
|
+
tickMark.element) {
|
|
383
|
+
tickMark.show(); // #16439
|
|
384
|
+
}
|
|
385
|
+
// Hide/show firts tick label.
|
|
386
|
+
label = axis.ticks[firstTick].label;
|
|
387
|
+
if (label) {
|
|
388
|
+
if (min - firstTick > tickmarkOffset) {
|
|
389
|
+
axis.hiddenLabels.push(label.hide());
|
|
390
390
|
}
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
if (label) {
|
|
394
|
-
if (lastTick - max > tickmarkOffset) {
|
|
395
|
-
axis.hiddenLabels.push(label.hide());
|
|
396
|
-
}
|
|
397
|
-
else {
|
|
398
|
-
label.show();
|
|
399
|
-
}
|
|
391
|
+
else {
|
|
392
|
+
label.show();
|
|
400
393
|
}
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
394
|
+
}
|
|
395
|
+
// Hide/show last tick mark/label.
|
|
396
|
+
label = axis.ticks[lastTick].label;
|
|
397
|
+
if (label) {
|
|
398
|
+
if (lastTick - max > tickmarkOffset) {
|
|
399
|
+
axis.hiddenLabels.push(label.hide());
|
|
406
400
|
}
|
|
401
|
+
else {
|
|
402
|
+
label.show();
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
var mark = axis.ticks[lastTick].mark;
|
|
406
|
+
if (mark &&
|
|
407
|
+
lastTick - max < tickmarkOffset &&
|
|
408
|
+
lastTick - max > 0 && axis.ticks[lastTick].isLast) {
|
|
409
|
+
axis.hiddenMarks.push(mark.hide());
|
|
407
410
|
}
|
|
408
411
|
}
|
|
409
412
|
}
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
413
|
+
}
|
|
414
|
+
/**
|
|
415
|
+
* @private
|
|
416
|
+
*/
|
|
417
|
+
function onAfterSetAxisTranslation() {
|
|
418
|
+
var axis = this;
|
|
419
|
+
var tickInfo = axis.tickPositions && axis.tickPositions.info;
|
|
420
|
+
var options = axis.options;
|
|
421
|
+
var gridOptions = options.grid || {};
|
|
422
|
+
var userLabels = axis.userOptions.labels || {};
|
|
423
|
+
// Fire this only for the Gantt type chart, #14868.
|
|
424
|
+
if (gridOptions.enabled) {
|
|
425
|
+
if (axis.horiz) {
|
|
426
|
+
axis.series.forEach(function (series) {
|
|
427
|
+
series.options.pointRange = 0;
|
|
428
|
+
});
|
|
429
|
+
// Lower level time ticks, like hours or minutes, represent
|
|
430
|
+
// points in time and not ranges. These should be aligned
|
|
431
|
+
// left in the grid cell by default. The same applies to
|
|
432
|
+
// years of higher order.
|
|
433
|
+
if (tickInfo &&
|
|
434
|
+
options.dateTimeLabelFormats &&
|
|
435
|
+
options.labels &&
|
|
436
|
+
!defined(userLabels.align) &&
|
|
437
|
+
(options.dateTimeLabelFormats[tickInfo.unitName]
|
|
438
|
+
.range === false ||
|
|
439
|
+
tickInfo.count > 1 // years
|
|
440
|
+
)) {
|
|
441
|
+
options.labels.align = 'left';
|
|
442
|
+
if (!defined(userLabels.x)) {
|
|
443
|
+
options.labels.x = 3;
|
|
441
444
|
}
|
|
442
445
|
}
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
446
|
+
}
|
|
447
|
+
else {
|
|
448
|
+
// Don't trim ticks which not in min/max range but
|
|
449
|
+
// they are still in the min/max plus tickInterval.
|
|
450
|
+
if (this.options.type !== 'treegrid' &&
|
|
451
|
+
axis.grid &&
|
|
452
|
+
axis.grid.columns) {
|
|
453
|
+
this.minPointOffset = this.tickInterval;
|
|
451
454
|
}
|
|
452
455
|
}
|
|
453
456
|
}
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
day: {
|
|
475
|
-
list: ['%A, %e. %B', '%a, %e. %b', '%E']
|
|
476
|
-
},
|
|
477
|
-
week: {
|
|
478
|
-
list: ['Week %W', 'W%W']
|
|
479
|
-
},
|
|
480
|
-
month: {
|
|
481
|
-
list: ['%B', '%b', '%o']
|
|
482
|
-
}
|
|
483
|
-
},
|
|
484
|
-
grid: {
|
|
485
|
-
borderWidth: 1
|
|
457
|
+
}
|
|
458
|
+
/**
|
|
459
|
+
* Creates a left and right wall on horizontal axes:
|
|
460
|
+
* - Places leftmost tick at the start of the axis, to create a left
|
|
461
|
+
* wall
|
|
462
|
+
* - Ensures that the rightmost tick is at the end of the axis, to
|
|
463
|
+
* create a right wall.
|
|
464
|
+
* @private
|
|
465
|
+
*/
|
|
466
|
+
function onAfterSetOptions(e) {
|
|
467
|
+
var options = this.options, userOptions = e.userOptions, gridOptions = ((options && isObject(options.grid)) ? options.grid : {});
|
|
468
|
+
var gridAxisOptions;
|
|
469
|
+
if (gridOptions.enabled === true) {
|
|
470
|
+
// Merge the user options into default grid axis options so
|
|
471
|
+
// that when a user option is set, it takes presedence.
|
|
472
|
+
gridAxisOptions = merge(true, {
|
|
473
|
+
className: ('highcharts-grid-axis ' + (userOptions.className || '')),
|
|
474
|
+
dateTimeLabelFormats: {
|
|
475
|
+
hour: {
|
|
476
|
+
list: ['%H:%M', '%H']
|
|
486
477
|
},
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
style: {
|
|
490
|
-
fontSize: '13px'
|
|
491
|
-
}
|
|
478
|
+
day: {
|
|
479
|
+
list: ['%A, %e. %B', '%a, %e. %b', '%E']
|
|
492
480
|
},
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
text: null,
|
|
496
|
-
reserveSpace: false,
|
|
497
|
-
rotation: 0
|
|
481
|
+
week: {
|
|
482
|
+
list: ['Week %W', 'W%W']
|
|
498
483
|
},
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
// two days.
|
|
502
|
-
units: [[
|
|
503
|
-
'millisecond',
|
|
504
|
-
[1, 10, 100]
|
|
505
|
-
], [
|
|
506
|
-
'second',
|
|
507
|
-
[1, 10]
|
|
508
|
-
], [
|
|
509
|
-
'minute',
|
|
510
|
-
[1, 5, 15]
|
|
511
|
-
], [
|
|
512
|
-
'hour',
|
|
513
|
-
[1, 6]
|
|
514
|
-
], [
|
|
515
|
-
'day',
|
|
516
|
-
[1]
|
|
517
|
-
], [
|
|
518
|
-
'week',
|
|
519
|
-
[1]
|
|
520
|
-
], [
|
|
521
|
-
'month',
|
|
522
|
-
[1]
|
|
523
|
-
], [
|
|
524
|
-
'year',
|
|
525
|
-
null
|
|
526
|
-
]]
|
|
527
|
-
}, userOptions);
|
|
528
|
-
// X-axis specific options
|
|
529
|
-
if (this.coll === 'xAxis') {
|
|
530
|
-
// For linked axes, tickPixelInterval is used only if
|
|
531
|
-
// the tickPositioner below doesn't run or returns
|
|
532
|
-
// undefined (like multiple years)
|
|
533
|
-
if (defined(userOptions.linkedTo) &&
|
|
534
|
-
!defined(userOptions.tickPixelInterval)) {
|
|
535
|
-
gridAxisOptions.tickPixelInterval = 350;
|
|
484
|
+
month: {
|
|
485
|
+
list: ['%B', '%b', '%o']
|
|
536
486
|
}
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
!defined(userOptions.tickInterval)) {
|
|
546
|
-
gridAxisOptions.tickPositioner = function (min, max) {
|
|
547
|
-
var parentInfo = (this.linkedParent &&
|
|
548
|
-
this.linkedParent.tickPositions &&
|
|
549
|
-
this.linkedParent.tickPositions.info);
|
|
550
|
-
if (parentInfo) {
|
|
551
|
-
var units = (gridAxisOptions.units || []);
|
|
552
|
-
var unitIdx = void 0, count = void 0, unitName = void 0;
|
|
553
|
-
for (var i = 0; i < units.length; i++) {
|
|
554
|
-
if (units[i][0] ===
|
|
555
|
-
parentInfo.unitName) {
|
|
556
|
-
unitIdx = i;
|
|
557
|
-
break;
|
|
558
|
-
}
|
|
559
|
-
}
|
|
560
|
-
// Get the first allowed count on the next
|
|
561
|
-
// unit.
|
|
562
|
-
if (units[unitIdx + 1]) {
|
|
563
|
-
unitName = units[unitIdx + 1][0];
|
|
564
|
-
count =
|
|
565
|
-
(units[unitIdx + 1][1] || [1])[0];
|
|
566
|
-
// In case the base X axis shows years, make
|
|
567
|
-
// the secondary axis show ten times the
|
|
568
|
-
// years (#11427)
|
|
569
|
-
}
|
|
570
|
-
else if (parentInfo.unitName === 'year') {
|
|
571
|
-
unitName = 'year';
|
|
572
|
-
count = parentInfo.count * 10;
|
|
573
|
-
}
|
|
574
|
-
var unitRange = timeUnits[unitName];
|
|
575
|
-
this.tickInterval = unitRange * count;
|
|
576
|
-
return this.getTimeTicks({
|
|
577
|
-
unitRange: unitRange,
|
|
578
|
-
count: count,
|
|
579
|
-
unitName: unitName
|
|
580
|
-
}, min, max, this.options.startOfWeek);
|
|
581
|
-
}
|
|
582
|
-
};
|
|
487
|
+
},
|
|
488
|
+
grid: {
|
|
489
|
+
borderWidth: 1
|
|
490
|
+
},
|
|
491
|
+
labels: {
|
|
492
|
+
padding: 2,
|
|
493
|
+
style: {
|
|
494
|
+
fontSize: '13px'
|
|
583
495
|
}
|
|
496
|
+
},
|
|
497
|
+
margin: 0,
|
|
498
|
+
title: {
|
|
499
|
+
text: null,
|
|
500
|
+
reserveSpace: false,
|
|
501
|
+
rotation: 0
|
|
502
|
+
},
|
|
503
|
+
// In a grid axis, only allow one unit of certain types,
|
|
504
|
+
// for example we shouln't have one grid cell spanning
|
|
505
|
+
// two days.
|
|
506
|
+
units: [[
|
|
507
|
+
'millisecond',
|
|
508
|
+
[1, 10, 100]
|
|
509
|
+
], [
|
|
510
|
+
'second',
|
|
511
|
+
[1, 10]
|
|
512
|
+
], [
|
|
513
|
+
'minute',
|
|
514
|
+
[1, 5, 15]
|
|
515
|
+
], [
|
|
516
|
+
'hour',
|
|
517
|
+
[1, 6]
|
|
518
|
+
], [
|
|
519
|
+
'day',
|
|
520
|
+
[1]
|
|
521
|
+
], [
|
|
522
|
+
'week',
|
|
523
|
+
[1]
|
|
524
|
+
], [
|
|
525
|
+
'month',
|
|
526
|
+
[1]
|
|
527
|
+
], [
|
|
528
|
+
'year',
|
|
529
|
+
null
|
|
530
|
+
]]
|
|
531
|
+
}, userOptions);
|
|
532
|
+
// X-axis specific options
|
|
533
|
+
if (this.coll === 'xAxis') {
|
|
534
|
+
// For linked axes, tickPixelInterval is used only if
|
|
535
|
+
// the tickPositioner below doesn't run or returns
|
|
536
|
+
// undefined (like multiple years)
|
|
537
|
+
if (defined(userOptions.linkedTo) &&
|
|
538
|
+
!defined(userOptions.tickPixelInterval)) {
|
|
539
|
+
gridAxisOptions.tickPixelInterval = 350;
|
|
584
540
|
}
|
|
585
|
-
//
|
|
586
|
-
|
|
587
|
-
if (
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
541
|
+
// For the secondary grid axis, use the primary axis'
|
|
542
|
+
// tick intervals and return ticks one level higher.
|
|
543
|
+
if (
|
|
544
|
+
// Check for tick pixel interval in options
|
|
545
|
+
!defined(userOptions.tickPixelInterval) &&
|
|
546
|
+
// Only for linked axes
|
|
547
|
+
defined(userOptions.linkedTo) &&
|
|
548
|
+
!defined(userOptions.tickPositioner) &&
|
|
549
|
+
!defined(userOptions.tickInterval)) {
|
|
550
|
+
gridAxisOptions.tickPositioner = function (min, max) {
|
|
551
|
+
var parentInfo = (this.linkedParent &&
|
|
552
|
+
this.linkedParent.tickPositions &&
|
|
553
|
+
this.linkedParent.tickPositions.info);
|
|
554
|
+
if (parentInfo) {
|
|
555
|
+
var units = (gridAxisOptions.units || []);
|
|
556
|
+
var unitIdx = void 0, count = 1, unitName = 'year';
|
|
557
|
+
for (var i = 0; i < units.length; i++) {
|
|
558
|
+
var unit_1 = units[i];
|
|
559
|
+
if (unit_1 && unit_1[0] === parentInfo.unitName) {
|
|
560
|
+
unitIdx = i;
|
|
561
|
+
break;
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
// Get the first allowed count on the next unit.
|
|
565
|
+
var unit = (isNumber(unitIdx) && units[unitIdx + 1]);
|
|
566
|
+
if (unit) {
|
|
567
|
+
unitName = unit[0] || 'year';
|
|
568
|
+
var counts = unit[1];
|
|
569
|
+
count = counts && counts[0] || 1;
|
|
570
|
+
// In case the base X axis shows years, make the
|
|
571
|
+
// secondary axis show ten times the years (#11427)
|
|
572
|
+
}
|
|
573
|
+
else if (parentInfo.unitName === 'year') {
|
|
574
|
+
// unitName is 'year'
|
|
575
|
+
count = parentInfo.count * 10;
|
|
576
|
+
}
|
|
577
|
+
var unitRange = timeUnits[unitName];
|
|
578
|
+
this.tickInterval = unitRange * count;
|
|
579
|
+
return this.chart.time.getTimeTicks({ unitRange: unitRange, count: count, unitName: unitName }, min, max, this.options.startOfWeek);
|
|
580
|
+
}
|
|
581
|
+
};
|
|
602
582
|
}
|
|
603
583
|
}
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
584
|
+
// Now merge the combined options into the axis options
|
|
585
|
+
merge(true, this.options, gridAxisOptions);
|
|
586
|
+
if (this.horiz) {
|
|
587
|
+
/* _________________________
|
|
588
|
+
Make this: ___|_____|_____|_____|__|
|
|
589
|
+
^ ^
|
|
590
|
+
_________________________
|
|
591
|
+
Into this: |_____|_____|_____|_____|
|
|
592
|
+
^ ^ */
|
|
593
|
+
options.minPadding = pick(userOptions.minPadding, 0);
|
|
594
|
+
options.maxPadding = pick(userOptions.maxPadding, 0);
|
|
595
|
+
}
|
|
596
|
+
// If borderWidth is set, then use its value for tick and
|
|
597
|
+
// line width.
|
|
598
|
+
if (isNumber(options.grid.borderWidth)) {
|
|
599
|
+
options.tickWidth = options.lineWidth =
|
|
600
|
+
gridOptions.borderWidth;
|
|
617
601
|
}
|
|
618
602
|
}
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
603
|
+
}
|
|
604
|
+
/**
|
|
605
|
+
* @private
|
|
606
|
+
*/
|
|
607
|
+
function onAfterSetOptions2(e) {
|
|
608
|
+
var axis = this;
|
|
609
|
+
var userOptions = e.userOptions;
|
|
610
|
+
var gridOptions = userOptions && userOptions.grid || {};
|
|
611
|
+
var columns = gridOptions.columns;
|
|
612
|
+
// Add column options to the parent axis. Children has their column
|
|
613
|
+
// options set on init in onGridAxisAfterInit.
|
|
614
|
+
if (gridOptions.enabled && columns) {
|
|
615
|
+
merge(true, axis.options, columns[columns.length - 1]);
|
|
628
616
|
}
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
617
|
+
}
|
|
618
|
+
/**
|
|
619
|
+
* Handle columns and setScale.
|
|
620
|
+
* @private
|
|
621
|
+
*/
|
|
622
|
+
function onAfterSetScale() {
|
|
623
|
+
var axis = this;
|
|
624
|
+
(axis.grid.columns || []).forEach(function (column) { return column.setScale(); });
|
|
625
|
+
}
|
|
626
|
+
/**
|
|
627
|
+
* Draw vertical axis ticks extra long to create cell floors and roofs.
|
|
628
|
+
* Overrides the tickLength for vertical axes.
|
|
629
|
+
* @private
|
|
630
|
+
*/
|
|
631
|
+
function onAfterTickSize(e) {
|
|
632
|
+
var defaultLeftAxisOptions = AxisDefaults.defaultLeftAxisOptions;
|
|
633
|
+
var _a = this, horiz = _a.horiz, maxLabelDimensions = _a.maxLabelDimensions, _b = _a.options.grid, gridOptions = _b === void 0 ? {} : _b;
|
|
634
|
+
if (gridOptions.enabled && maxLabelDimensions) {
|
|
635
|
+
var labelPadding = (Math.abs(defaultLeftAxisOptions.labels.x) * 2);
|
|
636
|
+
var distance = horiz ?
|
|
637
|
+
(gridOptions.cellHeight ||
|
|
638
|
+
labelPadding + maxLabelDimensions.height) :
|
|
639
|
+
labelPadding + maxLabelDimensions.width;
|
|
640
|
+
if (isArray(e.tickSize)) {
|
|
641
|
+
e.tickSize[0] = distance;
|
|
642
|
+
}
|
|
643
|
+
else {
|
|
644
|
+
e.tickSize = [distance, 0];
|
|
649
645
|
}
|
|
650
646
|
}
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
647
|
+
}
|
|
648
|
+
/**
|
|
649
|
+
* @private
|
|
650
|
+
*/
|
|
651
|
+
function onChartAfterSetChartSize() {
|
|
652
|
+
this.axes.forEach(function (axis) {
|
|
653
|
+
(axis.grid && axis.grid.columns || []).forEach(function (column) {
|
|
654
|
+
column.setAxisSize();
|
|
655
|
+
column.setAxisTranslation();
|
|
660
656
|
});
|
|
657
|
+
});
|
|
658
|
+
}
|
|
659
|
+
/**
|
|
660
|
+
* @private
|
|
661
|
+
*/
|
|
662
|
+
function onDestroy(e) {
|
|
663
|
+
var grid = this.grid;
|
|
664
|
+
(grid.columns || []).forEach(function (column) { return column.destroy(e.keepEvents); });
|
|
665
|
+
grid.columns = void 0;
|
|
666
|
+
}
|
|
667
|
+
/**
|
|
668
|
+
* Wraps axis init to draw cell walls on vertical axes.
|
|
669
|
+
* @private
|
|
670
|
+
*/
|
|
671
|
+
function onInit(e) {
|
|
672
|
+
var axis = this;
|
|
673
|
+
var userOptions = e.userOptions || {};
|
|
674
|
+
var gridOptions = userOptions.grid || {};
|
|
675
|
+
if (gridOptions.enabled && defined(gridOptions.borderColor)) {
|
|
676
|
+
userOptions.tickColor = userOptions.lineColor = (gridOptions.borderColor);
|
|
661
677
|
}
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
*/
|
|
665
|
-
function onDestroy(e) {
|
|
666
|
-
var grid = this.grid;
|
|
667
|
-
(grid.columns || []).forEach(function (column) {
|
|
668
|
-
column.destroy(e.keepEvents);
|
|
669
|
-
});
|
|
670
|
-
grid.columns = void 0;
|
|
678
|
+
if (!axis.grid) {
|
|
679
|
+
axis.grid = new GridAxisAdditions(axis);
|
|
671
680
|
}
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
681
|
+
axis.hiddenLabels = [];
|
|
682
|
+
axis.hiddenMarks = [];
|
|
683
|
+
}
|
|
684
|
+
/**
|
|
685
|
+
* Center tick labels in cells.
|
|
686
|
+
* @private
|
|
687
|
+
*/
|
|
688
|
+
function onTickAfterGetLabelPosition(e) {
|
|
689
|
+
var tick = this, label = tick.label, axis = tick.axis, reversed = axis.reversed, chart = axis.chart, options = axis.options, gridOptions = options.grid || {}, labelOpts = axis.options.labels, align = labelOpts.align,
|
|
690
|
+
// verticalAlign is currently not supported for axis.labels.
|
|
691
|
+
verticalAlign = 'middle', // labelOpts.verticalAlign,
|
|
692
|
+
side = GridAxisSide[axis.side], tickmarkOffset = e.tickmarkOffset, tickPositions = axis.tickPositions, tickPos = tick.pos - tickmarkOffset, nextTickPos = (isNumber(tickPositions[e.index + 1]) ?
|
|
693
|
+
tickPositions[e.index + 1] - tickmarkOffset :
|
|
694
|
+
(axis.max || 0) + tickmarkOffset), tickSize = axis.tickSize('tick'), tickWidth = tickSize ? tickSize[0] : 0, crispCorr = tickSize ? tickSize[1] / 2 : 0;
|
|
695
|
+
var labelHeight, lblMetrics, lines, bottom, top, left, right;
|
|
696
|
+
// Only center tick labels in grid axes
|
|
697
|
+
if (gridOptions.enabled === true) {
|
|
698
|
+
// Calculate top and bottom positions of the cell.
|
|
699
|
+
if (side === 'top') {
|
|
700
|
+
bottom = axis.top + axis.offset;
|
|
701
|
+
top = bottom - tickWidth;
|
|
682
702
|
}
|
|
683
|
-
if (
|
|
684
|
-
|
|
703
|
+
else if (side === 'bottom') {
|
|
704
|
+
top = chart.chartHeight - axis.bottom + axis.offset;
|
|
705
|
+
bottom = top + tickWidth;
|
|
685
706
|
}
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
/**
|
|
690
|
-
* Center tick labels in cells.
|
|
691
|
-
* @private
|
|
692
|
-
*/
|
|
693
|
-
function onTickAfterGetLabelPosition(e) {
|
|
694
|
-
var tick = this, label = tick.label, axis = tick.axis, reversed = axis.reversed, chart = axis.chart, options = axis.options, gridOptions = options.grid || {}, labelOpts = axis.options.labels, align = labelOpts.align,
|
|
695
|
-
// verticalAlign is currently not supported for axis.labels.
|
|
696
|
-
verticalAlign = 'middle', // labelOpts.verticalAlign,
|
|
697
|
-
side = GridAxis.Side[axis.side], tickmarkOffset = e.tickmarkOffset, tickPositions = axis.tickPositions, tickPos = tick.pos - tickmarkOffset, nextTickPos = (isNumber(tickPositions[e.index + 1]) ?
|
|
698
|
-
tickPositions[e.index + 1] - tickmarkOffset :
|
|
699
|
-
(axis.max || 0) + tickmarkOffset), tickSize = axis.tickSize('tick'), tickWidth = tickSize ? tickSize[0] : 0, crispCorr = tickSize ? tickSize[1] / 2 : 0;
|
|
700
|
-
var labelHeight, lblMetrics, lines, bottom, top, left, right;
|
|
701
|
-
// Only center tick labels in grid axes
|
|
702
|
-
if (gridOptions.enabled === true) {
|
|
703
|
-
// Calculate top and bottom positions of the cell.
|
|
704
|
-
if (side === 'top') {
|
|
705
|
-
bottom = axis.top + axis.offset;
|
|
706
|
-
top = bottom - tickWidth;
|
|
707
|
-
}
|
|
708
|
-
else if (side === 'bottom') {
|
|
709
|
-
top = chart.chartHeight - axis.bottom + axis.offset;
|
|
710
|
-
bottom = top + tickWidth;
|
|
711
|
-
}
|
|
712
|
-
else {
|
|
713
|
-
bottom = axis.top + axis.len - (axis.translate(reversed ? nextTickPos : tickPos) || 0);
|
|
714
|
-
top = axis.top + axis.len - (axis.translate(reversed ? tickPos : nextTickPos) || 0);
|
|
715
|
-
}
|
|
716
|
-
// Calculate left and right positions of the cell.
|
|
717
|
-
if (side === 'right') {
|
|
718
|
-
left = chart.chartWidth - axis.right + axis.offset;
|
|
719
|
-
right = left + tickWidth;
|
|
720
|
-
}
|
|
721
|
-
else if (side === 'left') {
|
|
722
|
-
right = axis.left + axis.offset;
|
|
723
|
-
left = right - tickWidth;
|
|
724
|
-
}
|
|
725
|
-
else {
|
|
726
|
-
left = Math.round(axis.left + (axis.translate(reversed ? nextTickPos : tickPos) || 0)) - crispCorr;
|
|
727
|
-
right = Math.min(// #15742
|
|
728
|
-
Math.round(axis.left + (axis.translate(reversed ? tickPos : nextTickPos) || 0)) - crispCorr, axis.left + axis.len);
|
|
729
|
-
}
|
|
730
|
-
tick.slotWidth = right - left;
|
|
731
|
-
// Calculate the positioning of the label based on
|
|
732
|
-
// alignment.
|
|
733
|
-
e.pos.x = (align === 'left' ?
|
|
734
|
-
left :
|
|
735
|
-
align === 'right' ?
|
|
736
|
-
right :
|
|
737
|
-
left + ((right - left) / 2) // default to center
|
|
738
|
-
);
|
|
739
|
-
e.pos.y = (verticalAlign === 'top' ?
|
|
740
|
-
top :
|
|
741
|
-
verticalAlign === 'bottom' ?
|
|
742
|
-
bottom :
|
|
743
|
-
top + ((bottom - top) / 2) // default to middle
|
|
744
|
-
);
|
|
745
|
-
lblMetrics = chart.renderer.fontMetrics(labelOpts.style.fontSize, label && label.element);
|
|
746
|
-
labelHeight = label ? label.getBBox().height : 0;
|
|
747
|
-
// Adjustment to y position to align the label correctly.
|
|
748
|
-
// Would be better to have a setter or similar for this.
|
|
749
|
-
if (!labelOpts.useHTML) {
|
|
750
|
-
lines = Math.round(labelHeight / lblMetrics.h);
|
|
751
|
-
e.pos.y += (
|
|
752
|
-
// Center the label
|
|
753
|
-
// TODO: why does this actually center the label?
|
|
754
|
-
((lblMetrics.b - (lblMetrics.h - lblMetrics.f)) / 2) +
|
|
755
|
-
// Adjust for height of additional lines.
|
|
756
|
-
-(((lines - 1) * lblMetrics.h) / 2));
|
|
757
|
-
}
|
|
758
|
-
else {
|
|
759
|
-
e.pos.y += (
|
|
760
|
-
// Readjust yCorr in htmlUpdateTransform
|
|
761
|
-
lblMetrics.b +
|
|
762
|
-
// Adjust for height of html label
|
|
763
|
-
-(labelHeight / 2));
|
|
764
|
-
}
|
|
765
|
-
e.pos.x += (axis.horiz && labelOpts.x) || 0;
|
|
707
|
+
else {
|
|
708
|
+
bottom = axis.top + axis.len - (axis.translate(reversed ? nextTickPos : tickPos) || 0);
|
|
709
|
+
top = axis.top + axis.len - (axis.translate(reversed ? tickPos : nextTickPos) || 0);
|
|
766
710
|
}
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
function onTickLabelFormat(ctx) {
|
|
772
|
-
var axis = ctx.axis, value = ctx.value;
|
|
773
|
-
if (axis.options.grid &&
|
|
774
|
-
axis.options.grid.enabled) {
|
|
775
|
-
var tickPos = axis.tickPositions;
|
|
776
|
-
var series = (axis.linkedParent || axis).series[0];
|
|
777
|
-
var isFirst = value === tickPos[0];
|
|
778
|
-
var isLast = value === tickPos[tickPos.length - 1];
|
|
779
|
-
var point = series && find(series.options.data, function (p) {
|
|
780
|
-
return p[axis.isXAxis ? 'x' : 'y'] === value;
|
|
781
|
-
});
|
|
782
|
-
var pointCopy = void 0;
|
|
783
|
-
if (point && series.is('gantt')) {
|
|
784
|
-
// For the Gantt set point aliases to the pointCopy
|
|
785
|
-
// to do not change the original point
|
|
786
|
-
pointCopy = merge(point);
|
|
787
|
-
H.seriesTypes.gantt.prototype.pointClass
|
|
788
|
-
.setGanttPointAliases(pointCopy);
|
|
789
|
-
}
|
|
790
|
-
// Make additional properties available for the
|
|
791
|
-
// formatter
|
|
792
|
-
ctx.isFirst = isFirst;
|
|
793
|
-
ctx.isLast = isLast;
|
|
794
|
-
ctx.point = pointCopy;
|
|
711
|
+
// Calculate left and right positions of the cell.
|
|
712
|
+
if (side === 'right') {
|
|
713
|
+
left = chart.chartWidth - axis.right + axis.offset;
|
|
714
|
+
right = left + tickWidth;
|
|
795
715
|
}
|
|
716
|
+
else if (side === 'left') {
|
|
717
|
+
right = axis.left + axis.offset;
|
|
718
|
+
left = right - tickWidth;
|
|
719
|
+
}
|
|
720
|
+
else {
|
|
721
|
+
left = Math.round(axis.left + (axis.translate(reversed ? nextTickPos : tickPos) || 0)) - crispCorr;
|
|
722
|
+
right = Math.min(// #15742
|
|
723
|
+
Math.round(axis.left + (axis.translate(reversed ? tickPos : nextTickPos) || 0)) - crispCorr, axis.left + axis.len);
|
|
724
|
+
}
|
|
725
|
+
tick.slotWidth = right - left;
|
|
726
|
+
// Calculate the positioning of the label based on
|
|
727
|
+
// alignment.
|
|
728
|
+
e.pos.x = (align === 'left' ?
|
|
729
|
+
left :
|
|
730
|
+
align === 'right' ?
|
|
731
|
+
right :
|
|
732
|
+
left + ((right - left) / 2) // default to center
|
|
733
|
+
);
|
|
734
|
+
e.pos.y = (verticalAlign === 'top' ?
|
|
735
|
+
top :
|
|
736
|
+
verticalAlign === 'bottom' ?
|
|
737
|
+
bottom :
|
|
738
|
+
top + ((bottom - top) / 2) // default to middle
|
|
739
|
+
);
|
|
740
|
+
lblMetrics = chart.renderer.fontMetrics(labelOpts.style.fontSize, label && label.element);
|
|
741
|
+
labelHeight = label ? label.getBBox().height : 0;
|
|
742
|
+
// Adjustment to y position to align the label correctly.
|
|
743
|
+
// Would be better to have a setter or similar for this.
|
|
744
|
+
if (!labelOpts.useHTML) {
|
|
745
|
+
lines = Math.round(labelHeight / lblMetrics.h);
|
|
746
|
+
e.pos.y += (
|
|
747
|
+
// Center the label
|
|
748
|
+
// TODO: why does this actually center the label?
|
|
749
|
+
((lblMetrics.b - (lblMetrics.h - lblMetrics.f)) / 2) +
|
|
750
|
+
// Adjust for height of additional lines.
|
|
751
|
+
-(((lines - 1) * lblMetrics.h) / 2));
|
|
752
|
+
}
|
|
753
|
+
else {
|
|
754
|
+
e.pos.y += (
|
|
755
|
+
// Readjust yCorr in htmlUpdateTransform
|
|
756
|
+
lblMetrics.b +
|
|
757
|
+
// Adjust for height of html label
|
|
758
|
+
-(labelHeight / 2));
|
|
759
|
+
}
|
|
760
|
+
e.pos.x += (axis.horiz && labelOpts.x) || 0;
|
|
796
761
|
}
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
var gridOptions = options.grid || {};
|
|
820
|
-
var categoryAxis = axis.categories;
|
|
821
|
-
var tickPositions = axis.tickPositions;
|
|
822
|
-
var firstPos = tickPositions[0];
|
|
823
|
-
var lastPos = tickPositions[tickPositions.length - 1];
|
|
824
|
-
var linkedMin = axis.linkedParent && axis.linkedParent.min;
|
|
825
|
-
var linkedMax = axis.linkedParent && axis.linkedParent.max;
|
|
826
|
-
var min = linkedMin || axis.min;
|
|
827
|
-
var max = linkedMax || axis.max;
|
|
828
|
-
var tickInterval = axis.tickInterval;
|
|
829
|
-
var endMoreThanMin = (firstPos < min &&
|
|
830
|
-
firstPos + tickInterval > min);
|
|
831
|
-
var startLessThanMax = (lastPos > max &&
|
|
832
|
-
lastPos - tickInterval < max);
|
|
833
|
-
if (gridOptions.enabled === true &&
|
|
834
|
-
!categoryAxis &&
|
|
835
|
-
(axis.horiz || axis.isLinked)) {
|
|
836
|
-
if (endMoreThanMin && !options.startOnTick) {
|
|
837
|
-
tickPositions[0] = min;
|
|
838
|
-
}
|
|
839
|
-
if (startLessThanMax && !options.endOnTick) {
|
|
840
|
-
tickPositions[tickPositions.length - 1] = max;
|
|
841
|
-
}
|
|
762
|
+
}
|
|
763
|
+
/**
|
|
764
|
+
* @private
|
|
765
|
+
*/
|
|
766
|
+
function onTickLabelFormat(ctx) {
|
|
767
|
+
var axis = ctx.axis, value = ctx.value;
|
|
768
|
+
if (axis.options.grid &&
|
|
769
|
+
axis.options.grid.enabled) {
|
|
770
|
+
var tickPos = axis.tickPositions;
|
|
771
|
+
var series = (axis.linkedParent || axis).series[0];
|
|
772
|
+
var isFirst = value === tickPos[0];
|
|
773
|
+
var isLast = value === tickPos[tickPos.length - 1];
|
|
774
|
+
var point = series && find(series.options.data, function (p) {
|
|
775
|
+
return p[axis.isXAxis ? 'x' : 'y'] === value;
|
|
776
|
+
});
|
|
777
|
+
var pointCopy = void 0;
|
|
778
|
+
if (point && series.is('gantt')) {
|
|
779
|
+
// For the Gantt set point aliases to the pointCopy
|
|
780
|
+
// to do not change the original point
|
|
781
|
+
pointCopy = merge(point);
|
|
782
|
+
H.seriesTypes.gantt.prototype.pointClass
|
|
783
|
+
.setGanttPointAliases(pointCopy);
|
|
842
784
|
}
|
|
785
|
+
// Make additional properties available for the
|
|
786
|
+
// formatter
|
|
787
|
+
ctx.isFirst = isFirst;
|
|
788
|
+
ctx.isLast = isLast;
|
|
789
|
+
ctx.point = pointCopy;
|
|
843
790
|
}
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
791
|
+
}
|
|
792
|
+
/**
|
|
793
|
+
* Makes tick labels which are usually ignored in a linked axis
|
|
794
|
+
* displayed if they are within range of linkedParent.min.
|
|
795
|
+
* ```
|
|
796
|
+
* _____________________________
|
|
797
|
+
* | | | | |
|
|
798
|
+
* Make this: | | 2 | 3 | 4 |
|
|
799
|
+
* |___|_______|_______|_______|
|
|
800
|
+
* ^
|
|
801
|
+
* _____________________________
|
|
802
|
+
* | | | | |
|
|
803
|
+
* Into this: | 1 | 2 | 3 | 4 |
|
|
804
|
+
* |___|_______|_______|_______|
|
|
805
|
+
* ^
|
|
806
|
+
* ```
|
|
807
|
+
* @private
|
|
808
|
+
* @todo Does this function do what the drawing says? Seems to affect
|
|
809
|
+
* ticks and not the labels directly?
|
|
810
|
+
*/
|
|
811
|
+
function onTrimTicks() {
|
|
812
|
+
var axis = this;
|
|
813
|
+
var options = axis.options;
|
|
814
|
+
var gridOptions = options.grid || {};
|
|
815
|
+
var categoryAxis = axis.categories;
|
|
816
|
+
var tickPositions = axis.tickPositions;
|
|
817
|
+
var firstPos = tickPositions[0];
|
|
818
|
+
var lastPos = tickPositions[tickPositions.length - 1];
|
|
819
|
+
var linkedMin = axis.linkedParent && axis.linkedParent.min;
|
|
820
|
+
var linkedMax = axis.linkedParent && axis.linkedParent.max;
|
|
821
|
+
var min = linkedMin || axis.min;
|
|
822
|
+
var max = linkedMax || axis.max;
|
|
823
|
+
var tickInterval = axis.tickInterval;
|
|
824
|
+
var endMoreThanMin = (firstPos < min &&
|
|
825
|
+
firstPos + tickInterval > min);
|
|
826
|
+
var startLessThanMax = (lastPos > max &&
|
|
827
|
+
lastPos - tickInterval < max);
|
|
828
|
+
if (gridOptions.enabled === true &&
|
|
829
|
+
!categoryAxis &&
|
|
830
|
+
(axis.horiz || axis.isLinked)) {
|
|
831
|
+
if (endMoreThanMin && !options.startOnTick) {
|
|
832
|
+
tickPositions[0] = min;
|
|
833
|
+
}
|
|
834
|
+
if (startLessThanMax && !options.endOnTick) {
|
|
835
|
+
tickPositions[tickPositions.length - 1] = max;
|
|
853
836
|
}
|
|
854
|
-
return proceed.apply(axis, argsToArray(arguments));
|
|
855
837
|
}
|
|
838
|
+
}
|
|
839
|
+
/**
|
|
840
|
+
* Avoid altering tickInterval when reserving space.
|
|
841
|
+
* @private
|
|
842
|
+
*/
|
|
843
|
+
function wrapUnsquish(proceed) {
|
|
844
|
+
var axis = this;
|
|
845
|
+
var _a = axis.options.grid, gridOptions = _a === void 0 ? {} : _a;
|
|
846
|
+
if (gridOptions.enabled === true && axis.categories) {
|
|
847
|
+
return axis.tickInterval;
|
|
848
|
+
}
|
|
849
|
+
return proceed.apply(axis, argsToArray(arguments));
|
|
850
|
+
}
|
|
851
|
+
/* *
|
|
852
|
+
*
|
|
853
|
+
* Class
|
|
854
|
+
*
|
|
855
|
+
* */
|
|
856
|
+
/**
|
|
857
|
+
* Additions for grid axes.
|
|
858
|
+
* @private
|
|
859
|
+
* @class
|
|
860
|
+
*/
|
|
861
|
+
var GridAxisAdditions = /** @class */ (function () {
|
|
856
862
|
/* *
|
|
863
|
+
*
|
|
864
|
+
* Constructors
|
|
865
|
+
*
|
|
866
|
+
* */
|
|
867
|
+
function GridAxisAdditions(axis) {
|
|
868
|
+
this.axis = axis;
|
|
869
|
+
}
|
|
870
|
+
/* *
|
|
871
|
+
*
|
|
872
|
+
* Functions
|
|
873
|
+
*
|
|
874
|
+
* */
|
|
875
|
+
/**
|
|
876
|
+
* Checks if an axis is the outer axis in its dimension. Since
|
|
877
|
+
* axes are placed outwards in order, the axis with the highest
|
|
878
|
+
* index is the outermost axis.
|
|
857
879
|
*
|
|
858
|
-
*
|
|
880
|
+
* Example: If there are multiple x-axes at the top of the chart,
|
|
881
|
+
* this function returns true if the axis supplied is the last
|
|
882
|
+
* of the x-axes.
|
|
859
883
|
*
|
|
860
|
-
* */
|
|
861
|
-
/**
|
|
862
|
-
* Additions for grid axes.
|
|
863
884
|
* @private
|
|
864
|
-
*
|
|
885
|
+
*
|
|
886
|
+
* @return {boolean}
|
|
887
|
+
* True if the axis is the outermost axis in its dimension; false if
|
|
888
|
+
* not.
|
|
865
889
|
*/
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
* Checks if an axis is the outer axis in its dimension. Since
|
|
882
|
-
* axes are placed outwards in order, the axis with the highest
|
|
883
|
-
* index is the outermost axis.
|
|
884
|
-
*
|
|
885
|
-
* Example: If there are multiple x-axes at the top of the chart,
|
|
886
|
-
* this function returns true if the axis supplied is the last
|
|
887
|
-
* of the x-axes.
|
|
888
|
-
*
|
|
889
|
-
* @private
|
|
890
|
-
*
|
|
891
|
-
* @return {boolean}
|
|
892
|
-
* True if the axis is the outermost axis in its dimension; false if
|
|
893
|
-
* not.
|
|
894
|
-
*/
|
|
895
|
-
Additions.prototype.isOuterAxis = function () {
|
|
896
|
-
var axis = this.axis;
|
|
897
|
-
var chart = axis.chart;
|
|
898
|
-
var columnIndex = axis.grid.columnIndex;
|
|
899
|
-
var columns = (axis.linkedParent && axis.linkedParent.grid.columns ||
|
|
900
|
-
axis.grid.columns);
|
|
901
|
-
var parentAxis = columnIndex ? axis.linkedParent : axis;
|
|
902
|
-
var thisIndex = -1, lastIndex = 0;
|
|
903
|
-
chart[axis.coll].forEach(function (otherAxis, index) {
|
|
904
|
-
if (otherAxis.side === axis.side &&
|
|
905
|
-
!otherAxis.options.isInternal) {
|
|
906
|
-
lastIndex = index;
|
|
907
|
-
if (otherAxis === parentAxis) {
|
|
908
|
-
// Get the index of the axis in question
|
|
909
|
-
thisIndex = index;
|
|
910
|
-
}
|
|
890
|
+
GridAxisAdditions.prototype.isOuterAxis = function () {
|
|
891
|
+
var axis = this.axis;
|
|
892
|
+
var chart = axis.chart;
|
|
893
|
+
var columnIndex = axis.grid.columnIndex;
|
|
894
|
+
var columns = (axis.linkedParent && axis.linkedParent.grid.columns ||
|
|
895
|
+
axis.grid.columns);
|
|
896
|
+
var parentAxis = columnIndex ? axis.linkedParent : axis;
|
|
897
|
+
var thisIndex = -1, lastIndex = 0;
|
|
898
|
+
(chart[axis.coll] || []).forEach(function (otherAxis, index) {
|
|
899
|
+
if (otherAxis.side === axis.side &&
|
|
900
|
+
!otherAxis.options.isInternal) {
|
|
901
|
+
lastIndex = index;
|
|
902
|
+
if (otherAxis === parentAxis) {
|
|
903
|
+
// Get the index of the axis in question
|
|
904
|
+
thisIndex = index;
|
|
911
905
|
}
|
|
912
|
-
});
|
|
913
|
-
return (lastIndex === thisIndex &&
|
|
914
|
-
(isNumber(columnIndex) ?
|
|
915
|
-
columns.length === columnIndex :
|
|
916
|
-
true));
|
|
917
|
-
};
|
|
918
|
-
/**
|
|
919
|
-
* Add extra border based on the provided path.
|
|
920
|
-
* @private
|
|
921
|
-
* @param {SVGPath} path
|
|
922
|
-
* The path of the border.
|
|
923
|
-
* @return {Highcharts.SVGElement}
|
|
924
|
-
* Border
|
|
925
|
-
*/
|
|
926
|
-
Additions.prototype.renderBorder = function (path) {
|
|
927
|
-
var axis = this.axis, renderer = axis.chart.renderer, options = axis.options, extraBorderLine = renderer.path(path)
|
|
928
|
-
.addClass('highcharts-axis-line')
|
|
929
|
-
.add(axis.axisBorder);
|
|
930
|
-
if (!renderer.styledMode) {
|
|
931
|
-
extraBorderLine.attr({
|
|
932
|
-
stroke: options.lineColor,
|
|
933
|
-
'stroke-width': options.lineWidth,
|
|
934
|
-
zIndex: 7
|
|
935
|
-
});
|
|
936
906
|
}
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
}
|
|
907
|
+
});
|
|
908
|
+
return (lastIndex === thisIndex &&
|
|
909
|
+
(isNumber(columnIndex) ?
|
|
910
|
+
columns.length === columnIndex :
|
|
911
|
+
true));
|
|
912
|
+
};
|
|
913
|
+
/**
|
|
914
|
+
* Add extra border based on the provided path.
|
|
915
|
+
* @private
|
|
916
|
+
* @param {SVGPath} path
|
|
917
|
+
* The path of the border.
|
|
918
|
+
* @return {Highcharts.SVGElement}
|
|
919
|
+
* Border
|
|
920
|
+
*/
|
|
921
|
+
GridAxisAdditions.prototype.renderBorder = function (path) {
|
|
922
|
+
var axis = this.axis, renderer = axis.chart.renderer, options = axis.options, extraBorderLine = renderer.path(path)
|
|
923
|
+
.addClass('highcharts-axis-line')
|
|
924
|
+
.add(axis.axisBorder);
|
|
925
|
+
if (!renderer.styledMode) {
|
|
926
|
+
extraBorderLine.attr({
|
|
927
|
+
stroke: options.lineColor,
|
|
928
|
+
'stroke-width': options.lineWidth,
|
|
929
|
+
zIndex: 7
|
|
930
|
+
});
|
|
931
|
+
}
|
|
932
|
+
return extraBorderLine;
|
|
933
|
+
};
|
|
934
|
+
return GridAxisAdditions;
|
|
935
|
+
}());
|
|
943
936
|
/* *
|
|
944
937
|
*
|
|
945
938
|
* Registry
|
|
@@ -971,6 +964,9 @@ dateFormats.W = function (timestamp) {
|
|
|
971
964
|
* Default Export
|
|
972
965
|
*
|
|
973
966
|
* */
|
|
967
|
+
var GridAxis = {
|
|
968
|
+
compose: compose
|
|
969
|
+
};
|
|
974
970
|
export default GridAxis;
|
|
975
971
|
/* *
|
|
976
972
|
*
|