highcharts 6.1.4 → 6.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bower.json +1 -1
- package/css/highcharts.css +17 -0
- package/css/highcharts.scss +14 -0
- package/css/themes/dark-unica.css +17 -0
- package/css/themes/grid-light.css +17 -0
- package/css/themes/sand-signika.css +17 -0
- package/es-modules/indicators/momentum.src.js +1 -1
- package/es-modules/indicators/pivot-points.src.js +6 -1
- package/es-modules/masters/highcharts-gantt.src.js +11 -0
- package/es-modules/masters/modules/annotations.src.js +1 -1
- package/es-modules/masters/modules/arrow-symbols.src.js +12 -0
- package/es-modules/masters/modules/broken-axis.src.js +1 -1
- package/es-modules/masters/modules/current-date-indicator.src.js +12 -0
- package/es-modules/masters/modules/data.src.js +1 -1
- package/es-modules/masters/modules/draggable-points.src.js +9 -0
- 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/funnel.src.js +1 -1
- package/es-modules/masters/modules/gantt.src.js +2 -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/item-series.src.js +1 -1
- package/es-modules/masters/modules/map.src.js +1 -1
- package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
- package/es-modules/masters/modules/pathfinder.src.js +12 -0
- package/es-modules/masters/modules/sankey.src.js +1 -1
- package/es-modules/masters/modules/series-label.src.js +1 -1
- package/es-modules/masters/modules/solid-gauge.src.js +1 -1
- package/es-modules/masters/modules/stock.src.js +1 -1
- package/es-modules/masters/modules/streamgraph.src.js +1 -1
- package/es-modules/masters/modules/treegrid.src.js +12 -0
- 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/windbarb.src.js +1 -1
- package/es-modules/masters/modules/xrange.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/sand-signika.src.js +1 -1
- package/es-modules/masters/themes/skies.src.js +1 -1
- package/es-modules/mixins/centered-series.js +1 -1
- package/es-modules/mixins/on-series.js +1 -1
- package/es-modules/modules/boost.src.js +22 -14
- package/es-modules/modules/broken-axis.src.js +169 -134
- package/es-modules/modules/data.src.js +2 -2
- package/es-modules/modules/draggable-points.src.js +2257 -0
- package/es-modules/modules/drilldown.src.js +1 -0
- package/es-modules/modules/export-data.src.js +1 -1
- package/es-modules/modules/exporting.src.js +1 -1
- package/es-modules/modules/funnel.src.js +1 -1
- package/es-modules/modules/item-series.src.js +1 -1
- package/es-modules/modules/no-data-to-display.src.js +5 -5
- package/es-modules/modules/oldie.src.js +1 -1
- package/es-modules/modules/overlapping-datalabels.src.js +38 -22
- package/es-modules/modules/parallel-coordinates.src.js +3 -2
- package/es-modules/modules/sankey.src.js +1 -1
- package/es-modules/modules/series-label.src.js +2 -2
- package/es-modules/modules/solid-gauge.src.js +1 -1
- package/es-modules/modules/static-scale.src.js +67 -28
- package/es-modules/modules/streamgraph.src.js +1 -1
- package/es-modules/modules/tilemap.src.js +231 -134
- package/es-modules/modules/variwide.src.js +1 -1
- package/es-modules/modules/vector.src.js +92 -22
- package/es-modules/modules/windbarb.src.js +1 -1
- package/es-modules/modules/xrange.src.js +257 -77
- package/es-modules/parts/AreaSeries.js +77 -77
- package/es-modules/parts/AreaSplineSeries.js +64 -27
- package/es-modules/parts/Axis.js +160 -67
- package/es-modules/parts/BarSeries.js +68 -51
- package/es-modules/parts/CandlestickSeries.js +1 -1
- package/es-modules/parts/Chart.js +31 -55
- package/es-modules/parts/Color.js +29 -18
- package/es-modules/parts/ColumnSeries.js +264 -142
- package/es-modules/parts/DataGrouping.js +9 -6
- package/es-modules/parts/DataLabels.js +261 -210
- package/es-modules/parts/DateTimeAxis.js +26 -7
- package/es-modules/parts/Dynamics.js +5 -2
- package/es-modules/parts/FlagsSeries.js +1 -1
- package/es-modules/parts/Globals.js +1 -1
- package/es-modules/parts/Html.js +64 -12
- package/es-modules/parts/Interaction.js +187 -63
- package/es-modules/parts/Legend.js +7 -3
- package/es-modules/parts/LogarithmicAxis.js +35 -4
- package/es-modules/parts/MSPointer.js +1 -1
- package/es-modules/parts/Navigator.js +27 -5
- package/es-modules/parts/OHLCSeries.js +1 -1
- package/es-modules/parts/Options.js +15 -13
- package/es-modules/parts/OrdinalAxis.js +1 -1
- package/es-modules/parts/PieSeries.js +256 -140
- package/es-modules/parts/PlotBandSeries.experimental.js +1 -1
- package/es-modules/parts/PlotLineOrBand.js +7 -40
- package/es-modules/parts/Point.js +28 -4
- package/es-modules/parts/Pointer.js +8 -6
- package/es-modules/parts/RangeSelector.js +1 -1
- package/es-modules/parts/Responsive.js +82 -36
- package/es-modules/parts/ScatterSeries.js +57 -25
- package/es-modules/parts/ScrollablePlotArea.js +17 -7
- package/es-modules/parts/Scrollbar.js +9 -2
- package/es-modules/parts/Series.js +22 -9
- package/es-modules/parts/SplineSeries.js +51 -29
- package/es-modules/parts/Stacking.js +100 -6
- package/es-modules/parts/StockChart.js +9 -3
- package/es-modules/parts/SvgRenderer.js +15 -10
- package/es-modules/parts/Tick.js +150 -30
- package/es-modules/parts/Time.js +23 -5
- package/es-modules/parts/Tooltip.js +2 -2
- package/es-modules/parts/TouchPointer.js +1 -1
- package/es-modules/parts/Utilities.js +16 -1
- package/es-modules/parts-3d/Axis.js +1 -1
- package/es-modules/parts-3d/Chart.js +1 -1
- package/es-modules/parts-3d/Column.js +1 -1
- package/es-modules/parts-3d/Math.js +1 -1
- package/es-modules/parts-3d/Pie.js +1 -1
- package/es-modules/parts-3d/SVGRenderer.js +1 -1
- package/es-modules/parts-3d/Scatter.js +1 -1
- package/es-modules/parts-3d/Series.js +1 -1
- package/es-modules/parts-3d/VMLRenderer.js +1 -1
- package/es-modules/parts-gantt/ArrowSymbols.js +110 -0
- package/es-modules/parts-gantt/CurrentDateIndicator.js +92 -0
- package/es-modules/parts-gantt/GanttChart.js +111 -0
- package/es-modules/parts-gantt/GanttSeries.js +376 -0
- package/es-modules/parts-gantt/GridAxis.js +965 -0
- package/es-modules/parts-gantt/Pathfinder.js +1247 -0
- package/es-modules/parts-gantt/PathfinderAlgorithms.js +746 -0
- package/es-modules/parts-gantt/Tree.js +146 -0
- package/es-modules/parts-gantt/TreeGrid.js +917 -0
- package/es-modules/parts-map/ColorAxis.js +1 -1
- package/es-modules/parts-map/ColorSeriesMixin.js +1 -1
- package/es-modules/parts-map/GeoJSON.js +1 -1
- package/es-modules/parts-map/HeatmapSeries.js +124 -53
- package/es-modules/parts-map/Map.js +1 -1
- package/es-modules/parts-map/MapAxis.js +1 -1
- package/es-modules/parts-map/MapBubbleSeries.js +1 -1
- package/es-modules/parts-map/MapLineSeries.js +1 -1
- package/es-modules/parts-map/MapNavigation.js +1 -1
- package/es-modules/parts-map/MapPointSeries.js +1 -1
- package/es-modules/parts-map/MapPointer.js +1 -1
- package/es-modules/parts-map/MapSeries.js +2 -2
- package/es-modules/parts-more/AreaRangeSeries.js +80 -38
- package/es-modules/parts-more/AreaSplineRangeSeries.js +1 -1
- package/es-modules/parts-more/BoxPlotSeries.js +1 -1
- package/es-modules/parts-more/BubbleSeries.js +1 -1
- package/es-modules/parts-more/ColumnRangeSeries.js +1 -1
- package/es-modules/parts-more/ErrorBarSeries.js +1 -1
- package/es-modules/parts-more/GaugeSeries.js +1 -1
- package/es-modules/parts-more/Pane.js +2 -1
- package/es-modules/parts-more/Polar.js +1 -1
- package/es-modules/parts-more/PolygonSeries.js +1 -1
- package/es-modules/parts-more/RadialAxis.js +5 -4
- package/es-modules/parts-more/WaterfallSeries.js +1 -1
- package/es-modules/supplemental.docs.js +0 -1955
- package/es-modules/themes/dark-blue.js +1 -1
- package/es-modules/themes/dark-green.js +1 -1
- package/es-modules/themes/dark-unica.js +1 -1
- package/es-modules/themes/gray.js +1 -1
- package/es-modules/themes/grid-light.js +1 -1
- package/es-modules/themes/grid.js +1 -1
- package/es-modules/themes/sand-signika.js +1 -1
- package/es-modules/themes/skies.js +1 -1
- package/highcharts-3d.js +1 -1
- package/highcharts-3d.src.js +10 -10
- package/highcharts-gantt.js +503 -0
- package/highcharts-gantt.js.map +1 -0
- package/highcharts-gantt.src.js +49289 -0
- package/highcharts-more.js +65 -64
- package/highcharts-more.js.map +1 -1
- package/highcharts-more.src.js +97 -53
- package/highcharts.js +415 -410
- package/highcharts.js.map +1 -1
- package/highcharts.src.js +2170 -1128
- package/highmaps.js +443 -438
- package/highmaps.js.map +1 -1
- package/highmaps.src.js +1647 -849
- package/highstock.js +553 -548
- package/highstock.js.map +1 -1
- package/highstock.src.js +2398 -1283
- package/indicators/accumulation-distribution.js +1 -1
- package/indicators/accumulation-distribution.src.js +1 -1
- package/indicators/atr.js +1 -1
- package/indicators/atr.src.js +1 -1
- package/indicators/bollinger-bands.js +1 -1
- package/indicators/bollinger-bands.src.js +1 -1
- package/indicators/cci.js +1 -1
- package/indicators/cci.src.js +1 -1
- package/indicators/cmf.js +1 -1
- package/indicators/cmf.src.js +1 -1
- package/indicators/ema.js +1 -1
- package/indicators/ema.src.js +1 -1
- package/indicators/ichimoku-kinko-hyo.js +1 -1
- package/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/indicators/indicators.js +1 -1
- package/indicators/indicators.src.js +1 -1
- package/indicators/macd.js +1 -1
- package/indicators/macd.src.js +1 -1
- package/indicators/mfi.js +1 -1
- package/indicators/mfi.src.js +1 -1
- package/indicators/momentum.js +1 -1
- package/indicators/momentum.src.js +2 -2
- package/indicators/pivot-points.js +4 -4
- package/indicators/pivot-points.js.map +1 -1
- package/indicators/pivot-points.src.js +7 -2
- 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/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/stochastic.js +1 -1
- package/indicators/stochastic.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/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/js/es-modules/indicators/momentum.src.js +1 -1
- package/js/es-modules/indicators/pivot-points.src.js +6 -1
- package/js/es-modules/masters/highcharts-gantt.src.js +11 -0
- package/js/es-modules/masters/modules/annotations.src.js +1 -1
- package/js/es-modules/masters/modules/arrow-symbols.src.js +12 -0
- package/js/es-modules/masters/modules/broken-axis.src.js +1 -1
- package/js/es-modules/masters/modules/current-date-indicator.src.js +12 -0
- package/js/es-modules/masters/modules/data.src.js +1 -1
- package/js/es-modules/masters/modules/draggable-points.src.js +9 -0
- package/js/es-modules/masters/modules/export-data.src.js +1 -1
- package/js/es-modules/masters/modules/exporting.src.js +1 -1
- package/js/es-modules/masters/modules/funnel.src.js +1 -1
- package/js/es-modules/masters/modules/gantt.src.js +2 -1
- package/js/es-modules/masters/modules/grid-axis.src.js +1 -1
- package/js/es-modules/masters/modules/heatmap.src.js +1 -1
- package/js/es-modules/masters/modules/item-series.src.js +1 -1
- package/js/es-modules/masters/modules/map.src.js +1 -1
- package/js/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
- package/js/es-modules/masters/modules/pathfinder.src.js +12 -0
- package/js/es-modules/masters/modules/sankey.src.js +1 -1
- package/js/es-modules/masters/modules/series-label.src.js +1 -1
- package/js/es-modules/masters/modules/solid-gauge.src.js +1 -1
- package/js/es-modules/masters/modules/stock.src.js +1 -1
- package/js/es-modules/masters/modules/streamgraph.src.js +1 -1
- package/js/es-modules/masters/modules/treegrid.src.js +12 -0
- package/js/es-modules/masters/modules/variwide.src.js +1 -1
- package/js/es-modules/masters/modules/vector.src.js +1 -1
- package/js/es-modules/masters/modules/windbarb.src.js +1 -1
- package/js/es-modules/masters/modules/xrange.src.js +1 -1
- package/js/es-modules/masters/themes/dark-blue.src.js +1 -1
- package/js/es-modules/masters/themes/dark-green.src.js +1 -1
- package/js/es-modules/masters/themes/dark-unica.src.js +1 -1
- package/js/es-modules/masters/themes/gray.src.js +1 -1
- package/js/es-modules/masters/themes/grid-light.src.js +1 -1
- package/js/es-modules/masters/themes/grid.src.js +1 -1
- package/js/es-modules/masters/themes/sand-signika.src.js +1 -1
- package/js/es-modules/masters/themes/skies.src.js +1 -1
- package/js/es-modules/mixins/centered-series.js +1 -1
- package/js/es-modules/mixins/on-series.js +1 -1
- package/js/es-modules/modules/boost.src.js +22 -14
- package/js/es-modules/modules/broken-axis.src.js +169 -134
- package/js/es-modules/modules/data.src.js +2 -2
- package/js/es-modules/modules/draggable-points.src.js +2257 -0
- package/js/es-modules/modules/drilldown.src.js +1 -0
- package/js/es-modules/modules/export-data.src.js +1 -1
- package/js/es-modules/modules/exporting.src.js +1 -1
- package/js/es-modules/modules/funnel.src.js +1 -1
- package/js/es-modules/modules/item-series.src.js +1 -1
- package/js/es-modules/modules/no-data-to-display.src.js +5 -5
- package/js/es-modules/modules/oldie.src.js +1 -1
- package/js/es-modules/modules/overlapping-datalabels.src.js +38 -22
- package/js/es-modules/modules/parallel-coordinates.src.js +3 -2
- package/js/es-modules/modules/sankey.src.js +1 -1
- package/js/es-modules/modules/series-label.src.js +2 -2
- package/js/es-modules/modules/solid-gauge.src.js +1 -1
- package/js/es-modules/modules/static-scale.src.js +67 -28
- package/js/es-modules/modules/streamgraph.src.js +1 -1
- package/js/es-modules/modules/tilemap.src.js +231 -134
- package/js/es-modules/modules/variwide.src.js +1 -1
- package/js/es-modules/modules/vector.src.js +92 -22
- package/js/es-modules/modules/windbarb.src.js +1 -1
- package/js/es-modules/modules/xrange.src.js +255 -68
- package/js/es-modules/parts/AreaSeries.js +77 -77
- package/js/es-modules/parts/AreaSplineSeries.js +64 -27
- package/js/es-modules/parts/Axis.js +160 -67
- package/js/es-modules/parts/BarSeries.js +68 -51
- package/js/es-modules/parts/CandlestickSeries.js +1 -1
- package/js/es-modules/parts/Chart.js +31 -55
- package/js/es-modules/parts/Color.js +29 -18
- package/js/es-modules/parts/ColumnSeries.js +231 -123
- package/js/es-modules/parts/DataGrouping.js +9 -6
- package/js/es-modules/parts/DataLabels.js +230 -182
- package/js/es-modules/parts/DateTimeAxis.js +26 -7
- package/js/es-modules/parts/Dynamics.js +5 -2
- package/js/es-modules/parts/FlagsSeries.js +1 -1
- package/js/es-modules/parts/Globals.js +1 -1
- package/js/es-modules/parts/Html.js +64 -12
- package/js/es-modules/parts/Interaction.js +178 -61
- package/js/es-modules/parts/Legend.js +7 -3
- package/js/es-modules/parts/LogarithmicAxis.js +35 -4
- package/js/es-modules/parts/MSPointer.js +1 -1
- package/js/es-modules/parts/Navigator.js +27 -5
- package/js/es-modules/parts/OHLCSeries.js +1 -1
- package/js/es-modules/parts/Options.js +13 -12
- package/js/es-modules/parts/OrdinalAxis.js +1 -1
- package/js/es-modules/parts/PieSeries.js +245 -132
- package/js/es-modules/parts/PlotBandSeries.experimental.js +1 -1
- package/js/es-modules/parts/PlotLineOrBand.js +7 -40
- package/js/es-modules/parts/Point.js +28 -4
- package/js/es-modules/parts/Pointer.js +8 -6
- package/js/es-modules/parts/RangeSelector.js +1 -1
- package/js/es-modules/parts/Responsive.js +82 -36
- package/js/es-modules/parts/ScatterSeries.js +56 -25
- package/js/es-modules/parts/ScrollablePlotArea.js +17 -7
- package/js/es-modules/parts/Scrollbar.js +9 -2
- package/js/es-modules/parts/Series.js +22 -9
- package/js/es-modules/parts/SplineSeries.js +51 -29
- package/js/es-modules/parts/Stacking.js +100 -6
- package/js/es-modules/parts/StockChart.js +9 -3
- package/js/es-modules/parts/SvgRenderer.js +15 -10
- package/js/es-modules/parts/Tick.js +150 -30
- package/js/es-modules/parts/Time.js +23 -5
- package/js/es-modules/parts/Tooltip.js +2 -2
- package/js/es-modules/parts/TouchPointer.js +1 -1
- package/js/es-modules/parts/Utilities.js +16 -1
- package/js/es-modules/parts-3d/Axis.js +1 -1
- package/js/es-modules/parts-3d/Chart.js +1 -1
- package/js/es-modules/parts-3d/Column.js +1 -1
- package/js/es-modules/parts-3d/Math.js +1 -1
- package/js/es-modules/parts-3d/Pie.js +1 -1
- package/js/es-modules/parts-3d/SVGRenderer.js +1 -1
- package/js/es-modules/parts-3d/Scatter.js +1 -1
- package/js/es-modules/parts-3d/Series.js +1 -1
- package/js/es-modules/parts-3d/VMLRenderer.js +1 -1
- package/js/es-modules/parts-gantt/ArrowSymbols.js +110 -0
- package/js/es-modules/parts-gantt/CurrentDateIndicator.js +92 -0
- package/js/es-modules/parts-gantt/GanttChart.js +111 -0
- package/js/es-modules/parts-gantt/GanttSeries.js +371 -0
- package/js/es-modules/parts-gantt/GridAxis.js +962 -0
- package/js/es-modules/parts-gantt/Pathfinder.js +1225 -0
- package/js/es-modules/parts-gantt/PathfinderAlgorithms.js +746 -0
- package/js/es-modules/parts-gantt/Tree.js +146 -0
- package/js/es-modules/parts-gantt/TreeGrid.js +891 -0
- package/js/es-modules/parts-map/ColorAxis.js +1 -1
- package/js/es-modules/parts-map/ColorSeriesMixin.js +1 -1
- package/js/es-modules/parts-map/GeoJSON.js +1 -1
- package/js/es-modules/parts-map/HeatmapSeries.js +122 -52
- package/js/es-modules/parts-map/Map.js +1 -1
- package/js/es-modules/parts-map/MapAxis.js +1 -1
- package/js/es-modules/parts-map/MapBubbleSeries.js +1 -1
- package/js/es-modules/parts-map/MapLineSeries.js +1 -1
- package/js/es-modules/parts-map/MapNavigation.js +1 -1
- package/js/es-modules/parts-map/MapPointSeries.js +1 -1
- package/js/es-modules/parts-map/MapPointer.js +1 -1
- package/js/es-modules/parts-map/MapSeries.js +2 -2
- package/js/es-modules/parts-more/AreaRangeSeries.js +80 -38
- package/js/es-modules/parts-more/AreaSplineRangeSeries.js +1 -1
- package/js/es-modules/parts-more/BoxPlotSeries.js +1 -1
- package/js/es-modules/parts-more/BubbleSeries.js +1 -1
- package/js/es-modules/parts-more/ColumnRangeSeries.js +1 -1
- package/js/es-modules/parts-more/ErrorBarSeries.js +1 -1
- package/js/es-modules/parts-more/GaugeSeries.js +1 -1
- package/js/es-modules/parts-more/Pane.js +2 -1
- package/js/es-modules/parts-more/Polar.js +1 -1
- package/js/es-modules/parts-more/PolygonSeries.js +1 -1
- package/js/es-modules/parts-more/RadialAxis.js +5 -4
- package/js/es-modules/parts-more/WaterfallSeries.js +1 -1
- package/js/es-modules/supplemental.docs.js +0 -1955
- package/js/es-modules/themes/dark-blue.js +1 -1
- package/js/es-modules/themes/dark-green.js +1 -1
- package/js/es-modules/themes/dark-unica.js +1 -1
- package/js/es-modules/themes/gray.js +1 -1
- package/js/es-modules/themes/grid-light.js +1 -1
- package/js/es-modules/themes/grid.js +1 -1
- package/js/es-modules/themes/sand-signika.js +1 -1
- package/js/es-modules/themes/skies.js +1 -1
- package/js/highcharts-3d.js +1 -1
- package/js/highcharts-3d.src.js +10 -10
- package/js/highcharts-gantt.js +480 -0
- package/js/highcharts-gantt.js.map +1 -0
- package/js/highcharts-gantt.src.js +47011 -0
- package/js/highcharts-more.js +62 -61
- package/js/highcharts-more.js.map +1 -1
- package/js/highcharts-more.src.js +97 -53
- package/js/highcharts.js +394 -390
- package/js/highcharts.js.map +1 -1
- package/js/highcharts.src.js +2083 -1070
- package/js/highmaps.js +420 -416
- package/js/highmaps.js.map +1 -1
- package/js/highmaps.src.js +1569 -798
- package/js/highstock.js +526 -520
- package/js/highstock.js.map +1 -1
- package/js/highstock.src.js +2311 -1225
- package/js/indicators/accumulation-distribution.js +1 -1
- package/js/indicators/accumulation-distribution.src.js +1 -1
- package/js/indicators/atr.js +1 -1
- package/js/indicators/atr.src.js +1 -1
- package/js/indicators/bollinger-bands.js +1 -1
- package/js/indicators/bollinger-bands.src.js +1 -1
- package/js/indicators/cci.js +1 -1
- package/js/indicators/cci.src.js +1 -1
- package/js/indicators/cmf.js +1 -1
- package/js/indicators/cmf.src.js +1 -1
- package/js/indicators/ema.js +1 -1
- package/js/indicators/ema.src.js +1 -1
- package/js/indicators/ichimoku-kinko-hyo.js +1 -1
- package/js/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/js/indicators/indicators.js +1 -1
- package/js/indicators/indicators.src.js +1 -1
- package/js/indicators/macd.js +1 -1
- package/js/indicators/macd.src.js +1 -1
- package/js/indicators/mfi.js +1 -1
- package/js/indicators/mfi.src.js +1 -1
- package/js/indicators/momentum.js +1 -1
- package/js/indicators/momentum.src.js +2 -2
- package/js/indicators/pivot-points.js +4 -4
- package/js/indicators/pivot-points.js.map +1 -1
- package/js/indicators/pivot-points.src.js +7 -2
- package/js/indicators/price-envelopes.js +1 -1
- package/js/indicators/price-envelopes.src.js +1 -1
- package/js/indicators/psar.js +1 -1
- package/js/indicators/psar.src.js +1 -1
- package/js/indicators/roc.js +1 -1
- package/js/indicators/roc.src.js +1 -1
- package/js/indicators/rsi.js +1 -1
- package/js/indicators/rsi.src.js +1 -1
- package/js/indicators/stochastic.js +1 -1
- package/js/indicators/stochastic.src.js +1 -1
- package/js/indicators/volume-by-price.js +1 -1
- package/js/indicators/volume-by-price.src.js +1 -1
- package/js/indicators/vwap.js +1 -1
- package/js/indicators/vwap.src.js +1 -1
- package/js/indicators/wma.js +1 -1
- package/js/indicators/wma.src.js +1 -1
- package/js/indicators/zigzag.js +1 -1
- package/js/indicators/zigzag.src.js +1 -1
- package/js/modules/accessibility.js +1 -1
- package/js/modules/accessibility.src.js +1 -1
- package/js/modules/annotations.js +2 -2
- package/js/modules/annotations.src.js +2 -2
- package/js/modules/arrow-symbols.js +13 -0
- package/js/modules/arrow-symbols.js.map +1 -0
- package/js/modules/arrow-symbols.src.js +138 -0
- package/js/modules/boost-canvas.js +1 -1
- package/js/modules/boost-canvas.src.js +1 -1
- package/js/modules/boost.js +43 -43
- package/js/modules/boost.js.map +1 -1
- package/js/modules/boost.src.js +23 -15
- package/js/modules/broken-axis.js +11 -10
- package/js/modules/broken-axis.js.map +1 -1
- package/js/modules/broken-axis.src.js +171 -136
- package/js/modules/bullet.js +1 -1
- package/js/modules/bullet.src.js +1 -1
- package/js/modules/current-date-indicator.js +13 -0
- package/js/modules/current-date-indicator.js.map +1 -0
- package/js/modules/current-date-indicator.src.js +120 -0
- package/js/modules/data.js +2 -2
- package/js/modules/data.src.js +4 -4
- package/js/modules/drag-panes.js +1 -1
- package/js/modules/drag-panes.src.js +1 -1
- package/js/modules/draggable-points.js +38 -0
- package/js/modules/draggable-points.js.map +1 -0
- package/js/modules/draggable-points.src.js +2281 -0
- package/js/modules/drilldown.js +1 -1
- package/js/modules/drilldown.js.map +1 -1
- package/js/modules/drilldown.src.js +2 -1
- package/js/modules/export-data.js +2 -2
- package/js/modules/export-data.src.js +3 -3
- package/js/modules/exporting.js +2 -2
- package/js/modules/exporting.src.js +3 -3
- package/js/modules/funnel.js +2 -2
- package/js/modules/funnel.src.js +3 -3
- package/js/modules/gantt.js +80 -18
- package/js/modules/gantt.js.map +1 -1
- package/js/modules/gantt.src.js +5490 -372
- package/js/modules/grid-axis.js +15 -11
- package/js/modules/grid-axis.js.map +1 -1
- package/js/modules/grid-axis.src.js +731 -293
- package/js/modules/heatmap.js +2 -2
- package/js/modules/heatmap.js.map +1 -1
- package/js/modules/heatmap.src.js +126 -56
- package/js/modules/histogram-bellcurve.js +1 -1
- package/js/modules/histogram-bellcurve.src.js +1 -1
- package/js/modules/item-series.js +2 -2
- package/js/modules/item-series.src.js +3 -3
- package/js/modules/map.js +2 -2
- package/js/modules/map.js.map +1 -1
- package/js/modules/map.src.js +137 -67
- package/js/modules/no-data-to-display.js +1 -1
- package/js/modules/no-data-to-display.src.js +6 -6
- package/js/modules/offline-exporting.js +2 -2
- package/js/modules/offline-exporting.src.js +2 -2
- package/js/modules/oldie.js +2 -2
- package/js/modules/oldie.src.js +3 -3
- package/js/modules/overlapping-datalabels.js +2 -2
- package/js/modules/overlapping-datalabels.src.js +2 -2
- package/js/modules/parallel-coordinates.js +9 -9
- package/js/modules/parallel-coordinates.js.map +1 -1
- package/js/modules/parallel-coordinates.src.js +4 -3
- package/js/modules/pareto.js +1 -1
- package/js/modules/pareto.src.js +1 -1
- package/js/modules/pathfinder.js +34 -0
- package/js/modules/pathfinder.js.map +1 -0
- package/js/modules/pathfinder.src.js +2106 -0
- package/js/modules/pattern-fill.js +1 -1
- package/js/modules/pattern-fill.src.js +1 -1
- package/js/modules/sankey.js +2 -2
- package/js/modules/sankey.src.js +3 -3
- package/js/modules/series-label.js +2 -2
- package/js/modules/series-label.src.js +4 -4
- package/js/modules/solid-gauge.js +2 -2
- package/js/modules/solid-gauge.src.js +3 -3
- package/js/modules/static-scale.js +3 -3
- package/js/modules/static-scale.js.map +1 -1
- package/js/modules/static-scale.src.js +65 -26
- package/js/modules/stock.js +135 -134
- package/js/modules/stock.js.map +1 -1
- package/js/modules/stock.src.js +230 -157
- package/js/modules/streamgraph.js +2 -2
- package/js/modules/streamgraph.src.js +3 -3
- package/js/modules/sunburst.js +1 -1
- package/js/modules/sunburst.src.js +1 -1
- package/js/modules/tilemap.js +1 -1
- package/js/modules/tilemap.js.map +1 -1
- package/js/modules/tilemap.src.js +355 -188
- package/js/modules/treegrid.js +51 -0
- package/js/modules/treegrid.js.map +1 -0
- package/js/modules/treegrid.src.js +2759 -0
- package/js/modules/treemap.js +1 -1
- package/js/modules/treemap.src.js +1 -1
- package/js/modules/variable-pie.js +1 -1
- package/js/modules/variable-pie.src.js +1 -1
- package/js/modules/variwide.js +2 -2
- package/js/modules/variwide.src.js +3 -3
- package/js/modules/vector.js +2 -2
- package/js/modules/vector.js.map +1 -1
- package/js/modules/vector.src.js +94 -24
- package/js/modules/windbarb.js +2 -2
- package/js/modules/windbarb.src.js +4 -4
- package/js/modules/wordcloud.js +1 -1
- package/js/modules/wordcloud.src.js +1 -1
- package/js/modules/xrange.js +11 -10
- package/js/modules/xrange.js.map +1 -1
- package/js/modules/xrange.src.js +257 -70
- package/js/themes/avocado.js +1 -1
- package/js/themes/avocado.src.js +1 -1
- package/js/themes/dark-blue.js +2 -2
- package/js/themes/dark-blue.src.js +3 -3
- package/js/themes/dark-green.js +2 -2
- package/js/themes/dark-green.src.js +3 -3
- package/js/themes/dark-unica.js +2 -2
- package/js/themes/dark-unica.src.js +3 -3
- package/js/themes/gray.js +2 -2
- package/js/themes/gray.src.js +3 -3
- package/js/themes/grid-light.js +2 -2
- package/js/themes/grid-light.src.js +3 -3
- package/js/themes/grid.js +2 -2
- package/js/themes/grid.src.js +3 -3
- package/js/themes/sand-signika.js +2 -2
- package/js/themes/sand-signika.src.js +3 -3
- package/js/themes/skies.js +2 -2
- package/js/themes/skies.src.js +3 -3
- package/js/themes/sunset.js +1 -1
- package/js/themes/sunset.src.js +1 -1
- package/modules/accessibility.js +1 -1
- package/modules/accessibility.src.js +1 -1
- package/modules/annotations.js +2 -2
- package/modules/annotations.src.js +2 -2
- package/modules/arrow-symbols.js +13 -0
- package/modules/arrow-symbols.js.map +1 -0
- package/modules/arrow-symbols.src.js +138 -0
- package/modules/boost-canvas.js +1 -1
- package/modules/boost-canvas.src.js +1 -1
- package/modules/boost.js +36 -36
- package/modules/boost.js.map +1 -1
- package/modules/boost.src.js +23 -15
- package/modules/broken-axis.js +11 -10
- package/modules/broken-axis.js.map +1 -1
- package/modules/broken-axis.src.js +171 -136
- package/modules/bullet.js +1 -1
- package/modules/bullet.src.js +1 -1
- package/modules/current-date-indicator.js +13 -0
- package/modules/current-date-indicator.js.map +1 -0
- package/modules/current-date-indicator.src.js +120 -0
- package/modules/data.js +2 -2
- package/modules/data.src.js +4 -4
- package/modules/drag-panes.js +1 -1
- package/modules/drag-panes.src.js +1 -1
- package/modules/draggable-points.js +38 -0
- package/modules/draggable-points.js.map +1 -0
- package/modules/draggable-points.src.js +2281 -0
- package/modules/drilldown.js +1 -1
- package/modules/drilldown.js.map +1 -1
- package/modules/drilldown.src.js +2 -1
- package/modules/export-data.js +2 -2
- package/modules/export-data.src.js +3 -3
- package/modules/exporting.js +2 -2
- package/modules/exporting.src.js +3 -3
- package/modules/funnel.js +2 -2
- package/modules/funnel.src.js +3 -3
- package/modules/gantt.js +83 -19
- package/modules/gantt.js.map +1 -1
- package/modules/gantt.src.js +5553 -379
- package/modules/grid-axis.js +16 -11
- package/modules/grid-axis.js.map +1 -1
- package/modules/grid-axis.src.js +732 -293
- package/modules/heatmap.js +2 -2
- package/modules/heatmap.js.map +1 -1
- package/modules/heatmap.src.js +128 -57
- package/modules/histogram-bellcurve.js +1 -1
- package/modules/histogram-bellcurve.src.js +1 -1
- package/modules/item-series.js +2 -2
- package/modules/item-series.src.js +3 -3
- package/modules/map.js +2 -2
- package/modules/map.js.map +1 -1
- package/modules/map.src.js +139 -68
- package/modules/no-data-to-display.js +1 -1
- package/modules/no-data-to-display.src.js +6 -6
- package/modules/offline-exporting.js +2 -2
- package/modules/offline-exporting.src.js +2 -2
- package/modules/oldie.js +2 -2
- package/modules/oldie.src.js +3 -3
- package/modules/overlapping-datalabels.js +2 -2
- package/modules/overlapping-datalabels.src.js +2 -2
- package/modules/parallel-coordinates.js +8 -8
- package/modules/parallel-coordinates.js.map +1 -1
- package/modules/parallel-coordinates.src.js +4 -3
- package/modules/pareto.js +1 -1
- package/modules/pareto.src.js +1 -1
- package/modules/pathfinder.js +35 -0
- package/modules/pathfinder.js.map +1 -0
- package/modules/pathfinder.src.js +2128 -0
- package/modules/pattern-fill.js +1 -1
- package/modules/pattern-fill.src.js +1 -1
- package/modules/sankey.js +2 -2
- package/modules/sankey.src.js +3 -3
- package/modules/series-label.js +2 -2
- package/modules/series-label.src.js +4 -4
- package/modules/solid-gauge.js +2 -2
- package/modules/solid-gauge.src.js +3 -3
- package/modules/static-scale.js +3 -3
- package/modules/static-scale.js.map +1 -1
- package/modules/static-scale.src.js +65 -26
- package/modules/stock.js +142 -142
- package/modules/stock.js.map +1 -1
- package/modules/stock.src.js +230 -157
- package/modules/streamgraph.js +2 -2
- package/modules/streamgraph.src.js +3 -3
- package/modules/sunburst.js +1 -1
- package/modules/sunburst.src.js +1 -1
- package/modules/tilemap.js +1 -1
- package/modules/tilemap.js.map +1 -1
- package/modules/tilemap.src.js +357 -189
- package/modules/treegrid.js +52 -0
- package/modules/treegrid.js.map +1 -0
- package/modules/treegrid.src.js +2797 -0
- package/modules/treemap.js +1 -1
- package/modules/treemap.src.js +1 -1
- package/modules/variable-pie.js +1 -1
- package/modules/variable-pie.src.js +1 -1
- package/modules/variwide.js +2 -2
- package/modules/variwide.src.js +3 -3
- package/modules/vector.js +2 -2
- package/modules/vector.js.map +1 -1
- package/modules/vector.src.js +94 -24
- package/modules/windbarb.js +2 -2
- package/modules/windbarb.src.js +4 -4
- package/modules/wordcloud.js +1 -1
- package/modules/wordcloud.src.js +1 -1
- package/modules/xrange.js +12 -11
- package/modules/xrange.js.map +1 -1
- package/modules/xrange.src.js +259 -79
- package/package.json +1 -1
- package/themes/avocado.js +1 -1
- package/themes/avocado.src.js +1 -1
- package/themes/dark-blue.js +2 -2
- package/themes/dark-blue.src.js +3 -3
- package/themes/dark-green.js +2 -2
- package/themes/dark-green.src.js +3 -3
- package/themes/dark-unica.js +2 -2
- package/themes/dark-unica.src.js +3 -3
- package/themes/gray.js +2 -2
- package/themes/gray.src.js +3 -3
- package/themes/grid-light.js +2 -2
- package/themes/grid-light.src.js +3 -3
- package/themes/grid.js +2 -2
- package/themes/grid.src.js +3 -3
- package/themes/sand-signika.js +2 -2
- package/themes/sand-signika.src.js +3 -3
- package/themes/skies.js +2 -2
- package/themes/skies.src.js +3 -3
- package/themes/sunset.js +1 -1
- package/themes/sunset.src.js +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Highcharts JS v6.
|
|
2
|
+
* @license Highcharts JS v6.2.0 (2018-10-17)
|
|
3
3
|
* GridAxis
|
|
4
4
|
*
|
|
5
5
|
* (c) 2016 Lars A. V. Cabrera
|
|
@@ -28,14 +28,78 @@
|
|
|
28
28
|
* License: www.highcharts.com/license
|
|
29
29
|
*/
|
|
30
30
|
|
|
31
|
-
var
|
|
32
|
-
|
|
31
|
+
var argsToArray = function (args) {
|
|
32
|
+
return Array.prototype.slice.call(args, 1);
|
|
33
|
+
},
|
|
34
|
+
dateFormat = H.dateFormat,
|
|
35
|
+
defined = H.defined,
|
|
36
|
+
each = H.each,
|
|
37
|
+
isArray = H.isArray,
|
|
38
|
+
isNumber = H.isNumber,
|
|
39
|
+
isObject = function (x) {
|
|
40
|
+
// Always use strict mode
|
|
41
|
+
return H.isObject(x, true);
|
|
42
|
+
},
|
|
43
|
+
merge = H.merge,
|
|
33
44
|
pick = H.pick,
|
|
34
45
|
wrap = H.wrap,
|
|
35
46
|
Axis = H.Axis,
|
|
36
|
-
Chart = H.Chart,
|
|
37
47
|
Tick = H.Tick;
|
|
38
48
|
|
|
49
|
+
/**
|
|
50
|
+
* Set grid options for the axis labels. Requires Highcharts Gantt.
|
|
51
|
+
*
|
|
52
|
+
* @type {object}
|
|
53
|
+
* @since 6.2.0
|
|
54
|
+
* @product gantt
|
|
55
|
+
* @apioption xAxis.grid
|
|
56
|
+
*/
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Enable grid on the axis labels. Defaults to true for Gantt charts.
|
|
60
|
+
*
|
|
61
|
+
* @type {boolean}
|
|
62
|
+
* @since 6.2.0
|
|
63
|
+
* @default true
|
|
64
|
+
* @product gantt
|
|
65
|
+
* @apioption xAxis.grid.enabled
|
|
66
|
+
*/
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Set specific options for each column (or row for horizontal axes) in the
|
|
70
|
+
* grid. Each extra column/row is its own axis, and the axis options can be set
|
|
71
|
+
* here.
|
|
72
|
+
*
|
|
73
|
+
* @type {Array<object>}
|
|
74
|
+
* @sample gantt/demo/left-axis-table
|
|
75
|
+
* Left axis as a table
|
|
76
|
+
* @apioption xAxis.grid.columns
|
|
77
|
+
*/
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Set border color for the label grid lines.
|
|
81
|
+
*
|
|
82
|
+
* @type {Highcharts.ColorString}
|
|
83
|
+
* @apioption xAxis.grid.borderColor
|
|
84
|
+
*/
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Set border width of the label grid lines.
|
|
88
|
+
*
|
|
89
|
+
* @type {number}
|
|
90
|
+
* @default 1
|
|
91
|
+
* @apioption xAxis.grid.borderWidth
|
|
92
|
+
*/
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Set cell height for grid axis labels. By default this is calculated from font
|
|
96
|
+
* size.
|
|
97
|
+
*
|
|
98
|
+
* @type {number}
|
|
99
|
+
* @default null
|
|
100
|
+
* @apioption xAxis.grid.cellHeight
|
|
101
|
+
*/
|
|
102
|
+
|
|
39
103
|
|
|
40
104
|
// Enum for which side the axis is on.
|
|
41
105
|
// Maps to axis.side
|
|
@@ -50,6 +114,14 @@
|
|
|
50
114
|
3: 'left'
|
|
51
115
|
};
|
|
52
116
|
|
|
117
|
+
/**
|
|
118
|
+
* Checks if an axis is a navigator axis.
|
|
119
|
+
* @return {Boolean} true if axis is found in axis.chart.navigator
|
|
120
|
+
*/
|
|
121
|
+
Axis.prototype.isNavigatorAxis = function () {
|
|
122
|
+
return /highcharts-navigator-[xy]axis/.test(this.options.className);
|
|
123
|
+
};
|
|
124
|
+
|
|
53
125
|
/**
|
|
54
126
|
* Checks if an axis is the outer axis in its dimension. Since
|
|
55
127
|
* axes are placed outwards in order, the axis with the highest
|
|
@@ -64,11 +136,12 @@
|
|
|
64
136
|
*/
|
|
65
137
|
Axis.prototype.isOuterAxis = function () {
|
|
66
138
|
var axis = this,
|
|
139
|
+
chart = axis.chart,
|
|
67
140
|
thisIndex = -1,
|
|
68
141
|
isOuter = true;
|
|
69
142
|
|
|
70
|
-
each(
|
|
71
|
-
if (otherAxis.side === axis.side) {
|
|
143
|
+
each(chart.axes, function (otherAxis, index) {
|
|
144
|
+
if (otherAxis.side === axis.side && !otherAxis.isNavigatorAxis()) {
|
|
72
145
|
if (otherAxis === axis) {
|
|
73
146
|
// Get the index of the axis in question
|
|
74
147
|
thisIndex = index;
|
|
@@ -77,9 +150,8 @@
|
|
|
77
150
|
// not been found yet
|
|
78
151
|
} else if (thisIndex >= 0 && index > thisIndex) {
|
|
79
152
|
// There was an axis on the same side with a
|
|
80
|
-
// higher index.
|
|
153
|
+
// higher index.
|
|
81
154
|
isOuter = false;
|
|
82
|
-
return;
|
|
83
155
|
}
|
|
84
156
|
}
|
|
85
157
|
});
|
|
@@ -89,97 +161,37 @@
|
|
|
89
161
|
};
|
|
90
162
|
|
|
91
163
|
/**
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
* @
|
|
164
|
+
* Get the largest label width and height.
|
|
165
|
+
* @param {object} ticks All the ticks on one axis.
|
|
166
|
+
* @param {array} tickPositions All the tick positions on one axis.
|
|
167
|
+
* @return {object} object containing the properties height and width.
|
|
95
168
|
*/
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
maxLabelLength = tick.labelLength;
|
|
119
|
-
}
|
|
120
|
-
});
|
|
121
|
-
this.maxLabelLength = maxLabelLength;
|
|
122
|
-
}
|
|
123
|
-
return this.maxLabelLength;
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Adds the axis defined in axis.options.title
|
|
128
|
-
*/
|
|
129
|
-
Axis.prototype.addTitle = function () {
|
|
130
|
-
var axis = this,
|
|
131
|
-
renderer = axis.chart.renderer,
|
|
132
|
-
axisParent = axis.axisParent,
|
|
133
|
-
horiz = axis.horiz,
|
|
134
|
-
opposite = axis.opposite,
|
|
135
|
-
options = axis.options,
|
|
136
|
-
axisTitleOptions = options.title,
|
|
137
|
-
hasData,
|
|
138
|
-
showAxis,
|
|
139
|
-
textAlign;
|
|
140
|
-
|
|
141
|
-
// For reuse in Axis.render
|
|
142
|
-
hasData = axis.hasData();
|
|
143
|
-
axis.showAxis = showAxis = hasData || pick(options.showEmpty, true);
|
|
144
|
-
|
|
145
|
-
// Disregard title generation in original Axis.getOffset()
|
|
146
|
-
options.title = '';
|
|
147
|
-
|
|
148
|
-
if (!axis.axisTitle) {
|
|
149
|
-
textAlign = axisTitleOptions.textAlign;
|
|
150
|
-
if (!textAlign) {
|
|
151
|
-
textAlign = (horiz ? {
|
|
152
|
-
low: 'left',
|
|
153
|
-
middle: 'center',
|
|
154
|
-
high: 'right'
|
|
155
|
-
} : {
|
|
156
|
-
low: opposite ? 'right' : 'left',
|
|
157
|
-
middle: 'center',
|
|
158
|
-
high: opposite ? 'left' : 'right'
|
|
159
|
-
})[axisTitleOptions.align];
|
|
169
|
+
Axis.prototype.getMaxLabelDimensions = function (ticks, tickPositions) {
|
|
170
|
+
var dimensions = {
|
|
171
|
+
width: 0,
|
|
172
|
+
height: 0
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
each(tickPositions, function (pos) {
|
|
176
|
+
var tick = ticks[pos],
|
|
177
|
+
tickHeight = 0,
|
|
178
|
+
tickWidth = 0,
|
|
179
|
+
label;
|
|
180
|
+
|
|
181
|
+
if (isObject(tick)) {
|
|
182
|
+
label = isObject(tick.label) ? tick.label : {};
|
|
183
|
+
|
|
184
|
+
// Find width and height of tick
|
|
185
|
+
tickHeight = label.getBBox ? label.getBBox().height : 0;
|
|
186
|
+
tickWidth = isNumber(label.textPxLength) ? label.textPxLength : 0;
|
|
187
|
+
|
|
188
|
+
// Update the result if width and/or height are larger
|
|
189
|
+
dimensions.height = Math.max(tickHeight, dimensions.height);
|
|
190
|
+
dimensions.width = Math.max(tickWidth, dimensions.width);
|
|
160
191
|
}
|
|
161
|
-
|
|
162
|
-
axisTitleOptions.text,
|
|
163
|
-
0,
|
|
164
|
-
0,
|
|
165
|
-
axisTitleOptions.useHTML
|
|
166
|
-
)
|
|
167
|
-
.attr({
|
|
168
|
-
zIndex: 7,
|
|
169
|
-
rotation: axisTitleOptions.rotation || 0,
|
|
170
|
-
align: textAlign
|
|
171
|
-
})
|
|
172
|
-
.addClass('highcharts-axis-title')
|
|
173
|
-
|
|
174
|
-
// Add to axisParent instead of axisGroup, to ignore the space
|
|
175
|
-
// it takes
|
|
176
|
-
.add(axisParent);
|
|
177
|
-
axis.axisTitle.isNew = true;
|
|
178
|
-
}
|
|
179
|
-
|
|
192
|
+
});
|
|
180
193
|
|
|
181
|
-
|
|
182
|
-
axis.axisTitle[showAxis ? 'show' : 'hide'](true);
|
|
194
|
+
return dimensions;
|
|
183
195
|
};
|
|
184
196
|
|
|
185
197
|
/**
|
|
@@ -188,106 +200,172 @@
|
|
|
188
200
|
H.dateFormats = {
|
|
189
201
|
// Week number
|
|
190
202
|
W: function (timestamp) {
|
|
191
|
-
var
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
return
|
|
203
|
+
var d = new Date(timestamp),
|
|
204
|
+
yearStart,
|
|
205
|
+
weekNo;
|
|
206
|
+
d.setHours(0, 0, 0, 0);
|
|
207
|
+
d.setDate(d.getDate() - (d.getDay() || 7));
|
|
208
|
+
yearStart = new Date(d.getFullYear(), 0, 1);
|
|
209
|
+
weekNo = Math.ceil((((d - yearStart) / 86400000) + 1) / 7);
|
|
210
|
+
return weekNo;
|
|
199
211
|
},
|
|
200
212
|
// First letter of the day of the week, e.g. 'M' for 'Monday'.
|
|
201
213
|
E: function (timestamp) {
|
|
202
|
-
return
|
|
214
|
+
return dateFormat('%a', timestamp, true).charAt(0);
|
|
203
215
|
}
|
|
204
216
|
};
|
|
205
217
|
|
|
206
218
|
/**
|
|
207
|
-
*
|
|
208
|
-
*
|
|
209
|
-
* Since numeric labels are normally placed at starts and ends of a range of
|
|
210
|
-
* value, and this module makes the label point at the value, an "extra" label
|
|
211
|
-
* would appear.
|
|
212
|
-
*
|
|
219
|
+
* If chart is stockChart, always return 'left' to avoid labels being placed
|
|
220
|
+
* inside chart. Stock charts place yAxis labels inside by default.
|
|
213
221
|
* @param {function} proceed - the original function
|
|
222
|
+
* @return {string} 'left' if stockChart, or auto calculated alignment
|
|
214
223
|
*/
|
|
215
|
-
wrap(
|
|
216
|
-
var axis = this
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
if (!axis.options.grid || isCategoryAxis || isLastTick) {
|
|
223
|
-
proceed.apply(this);
|
|
224
|
+
wrap(Axis.prototype, 'autoLabelAlign', function (proceed) {
|
|
225
|
+
var axis = this,
|
|
226
|
+
retVal;
|
|
227
|
+
if (axis.chart.isStock) {
|
|
228
|
+
retVal = 'left';
|
|
229
|
+
} else {
|
|
230
|
+
retVal = proceed.apply(axis, argsToArray(arguments));
|
|
224
231
|
}
|
|
232
|
+
return retVal;
|
|
225
233
|
});
|
|
226
234
|
|
|
227
235
|
/**
|
|
228
|
-
* Center tick labels
|
|
236
|
+
* Center tick labels in cells.
|
|
229
237
|
*
|
|
230
238
|
* @param {function} proceed - the original function
|
|
231
239
|
*
|
|
232
240
|
* @return {object} object - an object containing x and y positions
|
|
233
|
-
*
|
|
241
|
+
* for the tick
|
|
234
242
|
*/
|
|
235
|
-
wrap(Tick.prototype, 'getLabelPosition', function (proceed, x, y, label
|
|
236
|
-
|
|
237
|
-
|
|
243
|
+
wrap(Tick.prototype, 'getLabelPosition', function (proceed, x, y, label, horiz,
|
|
244
|
+
labelOpts, tickmarkOffset, index) {
|
|
245
|
+
var tick = this,
|
|
246
|
+
axis = tick.axis,
|
|
247
|
+
reversed = axis.reversed,
|
|
248
|
+
chart = axis.chart,
|
|
238
249
|
options = axis.options,
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
250
|
+
gridOptions = (options && isObject(options.grid)) ? options.grid : {},
|
|
251
|
+
align = labelOpts.align,
|
|
252
|
+
// verticalAlign is currently not supported for axis.labels.
|
|
253
|
+
verticalAlign = 'middle', // labelOpts.verticalAlign,
|
|
254
|
+
side = axisSide[axis.side],
|
|
255
|
+
tickPositions = axis.tickPositions,
|
|
256
|
+
tickPos = tick.pos - tickmarkOffset,
|
|
257
|
+
nextTickPos = (
|
|
258
|
+
isNumber(tickPositions[index + 1]) ?
|
|
259
|
+
tickPositions[index + 1] - tickmarkOffset :
|
|
260
|
+
axis.max + tickmarkOffset
|
|
261
|
+
),
|
|
262
|
+
tickSize = axis.tickSize('tick', true),
|
|
263
|
+
tickWidth = isArray(tickSize) ? tickSize[0] : 0,
|
|
264
|
+
crispCorr = tickSize && tickSize[1] / 2,
|
|
265
|
+
labelHeight,
|
|
266
|
+
lblMetrics,
|
|
267
|
+
lines,
|
|
268
|
+
result,
|
|
269
|
+
bottom,
|
|
270
|
+
top,
|
|
271
|
+
left,
|
|
272
|
+
right;
|
|
273
|
+
|
|
274
|
+
// Only center tick labels in grid axes
|
|
275
|
+
if (gridOptions.enabled === true) {
|
|
276
|
+
/**
|
|
277
|
+
* Calculate top and bottom positions of the cell.
|
|
278
|
+
*/
|
|
279
|
+
if (side === 'top') {
|
|
280
|
+
bottom = axis.top + axis.offset;
|
|
281
|
+
top = bottom - tickWidth;
|
|
282
|
+
} else if (side === 'bottom') {
|
|
283
|
+
top = chart.chartHeight - axis.bottom + axis.offset;
|
|
284
|
+
bottom = top + tickWidth;
|
|
269
285
|
} else {
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
286
|
+
bottom = axis.top + axis.len - axis.translate(
|
|
287
|
+
reversed ? nextTickPos : tickPos
|
|
288
|
+
);
|
|
289
|
+
top = axis.top + axis.len - axis.translate(
|
|
290
|
+
reversed ? tickPos : nextTickPos
|
|
291
|
+
);
|
|
292
|
+
}
|
|
275
293
|
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
294
|
+
/**
|
|
295
|
+
* Calculate left and right positions of the cell.
|
|
296
|
+
*/
|
|
297
|
+
if (side === 'right') {
|
|
298
|
+
left = chart.chartWidth - axis.right + axis.offset;
|
|
299
|
+
right = left + tickWidth;
|
|
300
|
+
} else if (side === 'left') {
|
|
301
|
+
right = axis.left + axis.offset;
|
|
302
|
+
left = right - tickWidth;
|
|
303
|
+
} else {
|
|
304
|
+
left = Math.round(axis.left + axis.translate(
|
|
305
|
+
reversed ? nextTickPos : tickPos
|
|
306
|
+
)) - crispCorr;
|
|
307
|
+
right = Math.round(axis.left + axis.translate(
|
|
308
|
+
reversed ? tickPos : nextTickPos
|
|
309
|
+
)) - crispCorr;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
tick.slotWidth = right - left;
|
|
313
|
+
|
|
314
|
+
/**
|
|
315
|
+
* Calculate the positioning of the label based on alignment.
|
|
316
|
+
*/
|
|
317
|
+
result = {
|
|
318
|
+
x: (
|
|
319
|
+
align === 'left' ?
|
|
320
|
+
left :
|
|
321
|
+
align === 'right' ?
|
|
322
|
+
right :
|
|
323
|
+
left + ((right - left) / 2) // default to center
|
|
324
|
+
),
|
|
325
|
+
y: (
|
|
326
|
+
verticalAlign === 'top' ?
|
|
327
|
+
top :
|
|
328
|
+
verticalAlign === 'bottom' ?
|
|
329
|
+
bottom :
|
|
330
|
+
top + ((bottom - top) / 2) // default to middle
|
|
331
|
+
)
|
|
332
|
+
};
|
|
333
|
+
|
|
334
|
+
lblMetrics = chart.renderer.fontMetrics(
|
|
335
|
+
labelOpts.style.fontSize,
|
|
336
|
+
label.element
|
|
337
|
+
);
|
|
338
|
+
labelHeight = label.getBBox().height;
|
|
339
|
+
|
|
340
|
+
// Adjustment to y position to align the label correctly.
|
|
341
|
+
// Would be better to have a setter or similar for this.
|
|
342
|
+
if (!labelOpts.useHTML) {
|
|
343
|
+
lines = Math.round(labelHeight / lblMetrics.h);
|
|
344
|
+
result.y += (
|
|
345
|
+
// Center the label
|
|
346
|
+
// TODO: why does this actually center the label?
|
|
347
|
+
((lblMetrics.b - (lblMetrics.h - lblMetrics.f)) / 2) +
|
|
348
|
+
// Adjust for height of additional lines.
|
|
349
|
+
-(((lines - 1) * lblMetrics.h) / 2)
|
|
350
|
+
);
|
|
351
|
+
} else {
|
|
352
|
+
result.y += (
|
|
353
|
+
// Readjust yCorr in htmlUpdateTransform
|
|
354
|
+
lblMetrics.b +
|
|
355
|
+
// Adjust for height of html label
|
|
356
|
+
-(labelHeight / 2)
|
|
357
|
+
);
|
|
283
358
|
}
|
|
359
|
+
|
|
360
|
+
result.x += (axis.horiz && labelOpts.x || 0);
|
|
361
|
+
} else {
|
|
362
|
+
result = proceed.apply(tick, argsToArray(arguments));
|
|
284
363
|
}
|
|
285
|
-
return
|
|
364
|
+
return result;
|
|
286
365
|
});
|
|
287
366
|
|
|
288
|
-
|
|
289
367
|
/**
|
|
290
|
-
* Draw vertical ticks extra long to create cell floors and roofs.
|
|
368
|
+
* Draw vertical axis ticks extra long to create cell floors and roofs.
|
|
291
369
|
* Overrides the tickLength for vertical axes.
|
|
292
370
|
*
|
|
293
371
|
* @param {function} proceed - the original function
|
|
@@ -295,105 +373,400 @@
|
|
|
295
373
|
*/
|
|
296
374
|
wrap(Axis.prototype, 'tickSize', function (proceed) {
|
|
297
375
|
var axis = this,
|
|
298
|
-
|
|
376
|
+
dimensions = axis.maxLabelDimensions,
|
|
377
|
+
options = axis.options,
|
|
378
|
+
gridOptions = (options && isObject(options.grid)) ? options.grid : {},
|
|
379
|
+
retVal = proceed.apply(axis, argsToArray(arguments)),
|
|
299
380
|
labelPadding,
|
|
300
381
|
distance;
|
|
301
382
|
|
|
302
|
-
if (
|
|
383
|
+
if (gridOptions.enabled === true) {
|
|
303
384
|
labelPadding = (Math.abs(axis.defaultLeftAxisOptions.labels.x) * 2);
|
|
304
|
-
|
|
305
|
-
axis.
|
|
306
|
-
}
|
|
307
|
-
distance = axis.maxLabelLength + labelPadding;
|
|
385
|
+
distance = labelPadding +
|
|
386
|
+
(axis.horiz ? dimensions.height : dimensions.width);
|
|
308
387
|
|
|
309
|
-
retVal
|
|
388
|
+
if (isArray(retVal)) {
|
|
389
|
+
retVal[0] = distance;
|
|
390
|
+
} else {
|
|
391
|
+
retVal = [distance];
|
|
392
|
+
}
|
|
310
393
|
}
|
|
311
394
|
return retVal;
|
|
312
395
|
});
|
|
313
396
|
|
|
397
|
+
wrap(Axis.prototype, 'getTitlePosition', function (proceed) {
|
|
398
|
+
var axis = this,
|
|
399
|
+
options = axis.options,
|
|
400
|
+
gridOptions = (options && isObject(options.grid)) ? options.grid : {};
|
|
401
|
+
|
|
402
|
+
if (gridOptions.enabled === true) {
|
|
403
|
+
// compute anchor points for each of the title align options
|
|
404
|
+
var title = axis.axisTitle,
|
|
405
|
+
titleWidth = title && title.getBBox().width,
|
|
406
|
+
horiz = axis.horiz,
|
|
407
|
+
axisLeft = axis.left,
|
|
408
|
+
axisTop = axis.top,
|
|
409
|
+
axisWidth = axis.width,
|
|
410
|
+
axisHeight = axis.height,
|
|
411
|
+
axisTitleOptions = options.title,
|
|
412
|
+
opposite = axis.opposite,
|
|
413
|
+
offset = axis.offset,
|
|
414
|
+
tickSize = axis.tickSize() || [0],
|
|
415
|
+
xOption = axisTitleOptions.x || 0,
|
|
416
|
+
yOption = axisTitleOptions.y || 0,
|
|
417
|
+
titleMargin = pick(axisTitleOptions.margin, horiz ? 5 : 10),
|
|
418
|
+
titleFontSize = axis.chart.renderer.fontMetrics(
|
|
419
|
+
axisTitleOptions.style && axisTitleOptions.style.fontSize,
|
|
420
|
+
title
|
|
421
|
+
).f,
|
|
422
|
+
// TODO account for alignment
|
|
423
|
+
// the position in the perpendicular direction of the axis
|
|
424
|
+
offAxis = (horiz ? axisTop + axisHeight : axisLeft) +
|
|
425
|
+
(horiz ? 1 : -1) * // horizontal axis reverses the margin
|
|
426
|
+
(opposite ? -1 : 1) * // so does opposite axes
|
|
427
|
+
(tickSize[0] / 2) +
|
|
428
|
+
(axis.side === axisSide.bottom ? titleFontSize : 0);
|
|
429
|
+
|
|
430
|
+
return {
|
|
431
|
+
x: horiz ?
|
|
432
|
+
axisLeft - titleWidth / 2 - titleMargin + xOption :
|
|
433
|
+
offAxis + (opposite ? axisWidth : 0) + offset + xOption,
|
|
434
|
+
y: horiz ?
|
|
435
|
+
(
|
|
436
|
+
offAxis -
|
|
437
|
+
(opposite ? axisHeight : 0) +
|
|
438
|
+
(opposite ? titleFontSize : -titleFontSize) / 2 +
|
|
439
|
+
offset +
|
|
440
|
+
yOption
|
|
441
|
+
) :
|
|
442
|
+
axisTop - titleMargin + yOption
|
|
443
|
+
};
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
return proceed.apply(this, argsToArray(arguments));
|
|
447
|
+
});
|
|
448
|
+
|
|
314
449
|
/**
|
|
315
|
-
*
|
|
316
|
-
* instead of axisGroup, and disregarding margins and offsets related to
|
|
317
|
-
* axisTitle.
|
|
318
|
-
*
|
|
319
|
-
* @param {function} proceed - the original function
|
|
450
|
+
* Avoid altering tickInterval when reserving space.
|
|
320
451
|
*/
|
|
321
|
-
wrap(Axis.prototype, '
|
|
452
|
+
wrap(Axis.prototype, 'unsquish', function (proceed) {
|
|
322
453
|
var axis = this,
|
|
323
|
-
axisOffset = axis.chart.axisOffset,
|
|
324
|
-
side = axis.side,
|
|
325
|
-
axisHeight,
|
|
326
|
-
tickSize,
|
|
327
454
|
options = axis.options,
|
|
328
|
-
|
|
329
|
-
addTitle = axisTitleOptions &&
|
|
330
|
-
axisTitleOptions.text &&
|
|
331
|
-
axisTitleOptions.enabled !== false;
|
|
455
|
+
gridOptions = (options && isObject(options.grid)) ? options.grid : {};
|
|
332
456
|
|
|
333
|
-
if (
|
|
457
|
+
if (gridOptions.enabled === true && this.categories) {
|
|
458
|
+
return this.tickInterval;
|
|
459
|
+
}
|
|
334
460
|
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
axisHeight = axisOffset[side] + tickSize;
|
|
338
|
-
}
|
|
461
|
+
return proceed.apply(this, argsToArray(arguments));
|
|
462
|
+
});
|
|
339
463
|
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
464
|
+
/**
|
|
465
|
+
* Creates a left and right wall on horizontal axes:
|
|
466
|
+
* - Places leftmost tick at the start of the axis, to create a left wall
|
|
467
|
+
* - Ensures that the rightmost tick is at the end of the axis, to create a
|
|
468
|
+
* right wall.
|
|
469
|
+
*
|
|
470
|
+
* @param {function} proceed - the original function
|
|
471
|
+
* @param {object} options - the pure axis options as input by the user
|
|
472
|
+
*/
|
|
473
|
+
H.addEvent(Axis, 'afterSetOptions', function (e) {
|
|
474
|
+
var options = this.options,
|
|
475
|
+
userOptions = e.userOptions,
|
|
476
|
+
gridAxisOptions,
|
|
477
|
+
gridOptions = (options && isObject(options.grid)) ? options.grid : {};
|
|
478
|
+
|
|
479
|
+
if (gridOptions.enabled === true) {
|
|
480
|
+
|
|
481
|
+
// Merge the user options into default grid axis options so that when a
|
|
482
|
+
// user option is set, it takes presedence.
|
|
483
|
+
gridAxisOptions = merge(true, {
|
|
484
|
+
|
|
485
|
+
className: 'highcharts-grid-axis ' + (userOptions.className || ''),
|
|
486
|
+
|
|
487
|
+
dateTimeLabelFormats: {
|
|
488
|
+
hour: {
|
|
489
|
+
list: ['%H:%M', '%H']
|
|
490
|
+
},
|
|
491
|
+
day: {
|
|
492
|
+
list: ['%A, %e. %B', '%a, %e. %b', '%E']
|
|
493
|
+
},
|
|
494
|
+
week: {
|
|
495
|
+
list: ['Week %W', 'W%W']
|
|
496
|
+
},
|
|
497
|
+
month: {
|
|
498
|
+
list: ['%B', '%b', '%o']
|
|
499
|
+
}
|
|
500
|
+
},
|
|
345
501
|
|
|
346
|
-
|
|
502
|
+
grid: {
|
|
503
|
+
borderWidth: 1
|
|
504
|
+
},
|
|
347
505
|
|
|
348
|
-
|
|
506
|
+
labels: {
|
|
507
|
+
padding: 2,
|
|
508
|
+
style: {
|
|
509
|
+
fontSize: '13px'
|
|
510
|
+
}
|
|
511
|
+
},
|
|
512
|
+
|
|
513
|
+
title: {
|
|
514
|
+
text: null,
|
|
515
|
+
reserveSpace: false,
|
|
516
|
+
rotation: 0
|
|
517
|
+
},
|
|
518
|
+
|
|
519
|
+
// In a grid axis, only allow one unit of certain types, for example
|
|
520
|
+
// we shouln't have one grid cell spanning two days.
|
|
521
|
+
units: [[
|
|
522
|
+
'millisecond', // unit name
|
|
523
|
+
[1, 10, 100]
|
|
524
|
+
], [
|
|
525
|
+
'second',
|
|
526
|
+
[1, 10]
|
|
527
|
+
], [
|
|
528
|
+
'minute',
|
|
529
|
+
[1, 5, 15]
|
|
530
|
+
], [
|
|
531
|
+
'hour',
|
|
532
|
+
[1, 6]
|
|
533
|
+
], [
|
|
534
|
+
'day',
|
|
535
|
+
[1]
|
|
536
|
+
], [
|
|
537
|
+
'week',
|
|
538
|
+
[1]
|
|
539
|
+
], [
|
|
540
|
+
'month',
|
|
541
|
+
[1]
|
|
542
|
+
], [
|
|
543
|
+
'year',
|
|
544
|
+
null
|
|
545
|
+
]]
|
|
546
|
+
}, userOptions);
|
|
547
|
+
|
|
548
|
+
// X-axis specific options
|
|
549
|
+
if (this.coll === 'xAxis') {
|
|
550
|
+
|
|
551
|
+
// For linked axes, tickPixelInterval is used only if the
|
|
552
|
+
// tickPositioner below doesn't run or returns undefined (like
|
|
553
|
+
// multiple years)
|
|
554
|
+
if (
|
|
555
|
+
defined(userOptions.linkedTo) &&
|
|
556
|
+
!defined(userOptions.tickPixelInterval)
|
|
557
|
+
) {
|
|
558
|
+
gridAxisOptions.tickPixelInterval = 350;
|
|
559
|
+
}
|
|
349
560
|
|
|
561
|
+
// For the secondary grid axis, use the primary axis' tick intervals
|
|
562
|
+
// and return ticks one level higher.
|
|
563
|
+
if (
|
|
564
|
+
// Check for tick pixel interval in options
|
|
565
|
+
!defined(userOptions.tickPixelInterval) &&
|
|
566
|
+
|
|
567
|
+
// Only for linked axes
|
|
568
|
+
defined(userOptions.linkedTo) &&
|
|
569
|
+
|
|
570
|
+
!defined(userOptions.tickPositioner) &&
|
|
571
|
+
!defined(userOptions.tickInterval)
|
|
572
|
+
) {
|
|
573
|
+
gridAxisOptions.tickPositioner = function (min, max) {
|
|
574
|
+
|
|
575
|
+
var parentInfo = (
|
|
576
|
+
this.linkedParent &&
|
|
577
|
+
this.linkedParent.tickPositions &&
|
|
578
|
+
this.linkedParent.tickPositions.info
|
|
579
|
+
);
|
|
580
|
+
|
|
581
|
+
if (parentInfo) {
|
|
582
|
+
|
|
583
|
+
var unitIdx,
|
|
584
|
+
count,
|
|
585
|
+
unitName,
|
|
586
|
+
i,
|
|
587
|
+
units = gridAxisOptions.units,
|
|
588
|
+
unitRange;
|
|
589
|
+
|
|
590
|
+
for (i = 0; i < units.length; i++) {
|
|
591
|
+
if (units[i][0] === parentInfo.unitName) {
|
|
592
|
+
unitIdx = i;
|
|
593
|
+
break;
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
// Spanning multiple years, go default
|
|
598
|
+
if (!units[unitIdx][1]) {
|
|
599
|
+
return;
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
// Get the first allowed count on the next unit.
|
|
603
|
+
if (units[unitIdx + 1]) {
|
|
604
|
+
unitName = units[unitIdx + 1][0];
|
|
605
|
+
count = (units[unitIdx + 1][1] || [1])[0];
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
unitRange = H.timeUnits[unitName];
|
|
609
|
+
this.tickInterval = unitRange * count;
|
|
610
|
+
return this.getTimeTicks(
|
|
611
|
+
{
|
|
612
|
+
unitRange: unitRange,
|
|
613
|
+
count: count,
|
|
614
|
+
unitName: unitName
|
|
615
|
+
},
|
|
616
|
+
min,
|
|
617
|
+
max,
|
|
618
|
+
this.options.startOfWeek
|
|
619
|
+
);
|
|
620
|
+
}
|
|
621
|
+
};
|
|
622
|
+
}
|
|
350
623
|
|
|
351
|
-
|
|
352
|
-
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
// Now merge the combined options into the axis options
|
|
627
|
+
merge(true, this.options, gridAxisOptions);
|
|
628
|
+
|
|
629
|
+
if (this.horiz) {
|
|
630
|
+
/** _________________________
|
|
631
|
+
* Make this: ___|_____|_____|_____|__|
|
|
632
|
+
* ^ ^
|
|
633
|
+
* _________________________
|
|
634
|
+
* Into this: |_____|_____|_____|_____|
|
|
635
|
+
* ^ ^
|
|
636
|
+
*/
|
|
637
|
+
options.minPadding = pick(userOptions.minPadding, 0);
|
|
638
|
+
options.maxPadding = pick(userOptions.maxPadding, 0);
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
// If borderWidth is set, then use its value for tick and line width.
|
|
642
|
+
if (isNumber(options.grid.borderWidth)) {
|
|
643
|
+
options.tickWidth = options.lineWidth = gridOptions.borderWidth;
|
|
644
|
+
}
|
|
353
645
|
|
|
354
|
-
} else {
|
|
355
|
-
proceed.apply(axis, Array.prototype.slice.call(arguments, 1));
|
|
356
646
|
}
|
|
357
647
|
});
|
|
358
648
|
|
|
359
649
|
/**
|
|
360
|
-
*
|
|
361
|
-
*
|
|
650
|
+
* Ensures a left wall on horizontal axes with series inheriting from column.
|
|
651
|
+
* ColumnSeries normally sets pointRange to null, resulting in Axis to select
|
|
652
|
+
* other values for point ranges. This enforces the above Axis.setOptions()
|
|
653
|
+
* override.
|
|
654
|
+
* _________________________
|
|
655
|
+
* Enforce this: ___|_____|_____|_____|__|
|
|
656
|
+
* ^
|
|
657
|
+
* _________________________
|
|
658
|
+
* To be this: |_____|_____|_____|_____|
|
|
659
|
+
* ^
|
|
362
660
|
*
|
|
363
661
|
* @param {function} proceed - the original function
|
|
662
|
+
* @param {object} options - the pure axis options as input by the user
|
|
364
663
|
*/
|
|
365
|
-
wrap(Axis.prototype, '
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
664
|
+
wrap(Axis.prototype, 'setAxisTranslation', function (proceed) {
|
|
665
|
+
var axis = this,
|
|
666
|
+
options = axis.options,
|
|
667
|
+
gridOptions = (options && isObject(options.grid)) ? options.grid : {},
|
|
668
|
+
tickInfo = this.tickPositions && this.tickPositions.info,
|
|
669
|
+
userLabels = this.userOptions.labels || {};
|
|
670
|
+
|
|
671
|
+
if (this.horiz) {
|
|
672
|
+
if (gridOptions.enabled === true) {
|
|
673
|
+
each(axis.series, function (series) {
|
|
674
|
+
series.options.pointRange = 0;
|
|
675
|
+
});
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
// Lower level time ticks, like hours or minutes, represent points in
|
|
679
|
+
// time and not ranges. These should be aligned left in the grid cell
|
|
680
|
+
// by default. The same applies to years of higher order.
|
|
681
|
+
if (
|
|
682
|
+
tickInfo &&
|
|
683
|
+
(
|
|
684
|
+
options.dateTimeLabelFormats[tickInfo.unitName]
|
|
685
|
+
.range === false ||
|
|
686
|
+
tickInfo.count > 1 // years
|
|
687
|
+
) &&
|
|
688
|
+
!defined(userLabels.align)
|
|
689
|
+
) {
|
|
690
|
+
options.labels.align = 'left';
|
|
691
|
+
|
|
692
|
+
if (!defined(userLabels.x)) {
|
|
693
|
+
options.labels.x = 3;
|
|
694
|
+
}
|
|
695
|
+
}
|
|
369
696
|
}
|
|
370
|
-
|
|
697
|
+
|
|
698
|
+
proceed.apply(axis, argsToArray(arguments));
|
|
371
699
|
});
|
|
372
700
|
|
|
701
|
+
// TODO: Does this function do what the drawing says? Seems to affect ticks and
|
|
702
|
+
// not the labels directly?
|
|
373
703
|
/**
|
|
374
|
-
*
|
|
375
|
-
*
|
|
704
|
+
* Makes tick labels which are usually ignored in a linked axis displayed if
|
|
705
|
+
* they are within range of linkedParent.min.
|
|
706
|
+
* _____________________________
|
|
707
|
+
* | | | | |
|
|
708
|
+
* Make this: | | 2 | 3 | 4 |
|
|
709
|
+
* |___|_______|_______|_______|
|
|
710
|
+
* ^
|
|
711
|
+
* _____________________________
|
|
712
|
+
* | | | | |
|
|
713
|
+
* Into this: | 1 | 2 | 3 | 4 |
|
|
714
|
+
* |___|_______|_______|_______|
|
|
715
|
+
* ^
|
|
376
716
|
* @param {function} proceed - the original function
|
|
377
717
|
*/
|
|
378
|
-
wrap(Axis.prototype, '
|
|
379
|
-
var axis = this
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
718
|
+
wrap(Axis.prototype, 'trimTicks', function (proceed) {
|
|
719
|
+
var axis = this,
|
|
720
|
+
options = axis.options,
|
|
721
|
+
gridOptions = (options && isObject(options.grid)) ? options.grid : {},
|
|
722
|
+
categoryAxis = axis.categories,
|
|
723
|
+
tickPositions = axis.tickPositions,
|
|
724
|
+
firstPos = tickPositions[0],
|
|
725
|
+
lastPos = tickPositions[tickPositions.length - 1],
|
|
726
|
+
linkedMin = axis.linkedParent && axis.linkedParent.min,
|
|
727
|
+
linkedMax = axis.linkedParent && axis.linkedParent.max,
|
|
728
|
+
min = linkedMin || axis.min,
|
|
729
|
+
max = linkedMax || axis.max,
|
|
730
|
+
tickInterval = axis.tickInterval,
|
|
731
|
+
moreThanMin = firstPos > min,
|
|
732
|
+
lessThanMax = lastPos < max,
|
|
733
|
+
endMoreThanMin = firstPos < min && firstPos + tickInterval > min,
|
|
734
|
+
startLessThanMax = lastPos > max && lastPos - tickInterval < max;
|
|
735
|
+
|
|
736
|
+
if (
|
|
737
|
+
gridOptions.enabled === true &&
|
|
738
|
+
!categoryAxis &&
|
|
739
|
+
(axis.horiz || axis.isLinked)
|
|
740
|
+
) {
|
|
741
|
+
if ((moreThanMin || endMoreThanMin) && !options.startOnTick) {
|
|
742
|
+
tickPositions[0] = min;
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
if ((lessThanMax || startLessThanMax) && !options.endOnTick) {
|
|
746
|
+
tickPositions[tickPositions.length - 1] = max;
|
|
747
|
+
}
|
|
384
748
|
}
|
|
385
|
-
|
|
749
|
+
|
|
750
|
+
proceed.apply(axis, argsToArray(arguments));
|
|
386
751
|
});
|
|
387
752
|
|
|
388
753
|
/**
|
|
389
|
-
* Draw an extra line on the far side of the
|
|
390
|
-
* creating
|
|
754
|
+
* Draw an extra line on the far side of the outermost axis,
|
|
755
|
+
* creating floor/roof/wall of a grid. And some padding.
|
|
756
|
+
*
|
|
757
|
+
* Make this:
|
|
758
|
+
* (axis.min) __________________________ (axis.max)
|
|
759
|
+
* | | | | |
|
|
760
|
+
* Into this:
|
|
761
|
+
* (axis.min) __________________________ (axis.max)
|
|
762
|
+
* ___|____|____|____|____|__
|
|
391
763
|
*
|
|
392
764
|
* @param {function} proceed - the original function
|
|
393
765
|
*/
|
|
394
766
|
wrap(Axis.prototype, 'render', function (proceed) {
|
|
395
767
|
var axis = this,
|
|
396
768
|
options = axis.options,
|
|
769
|
+
gridOptions = (options && isObject(options.grid)) ? options.grid : {},
|
|
397
770
|
labelPadding,
|
|
398
771
|
distance,
|
|
399
772
|
lineWidth,
|
|
@@ -403,14 +776,21 @@
|
|
|
403
776
|
xStartIndex,
|
|
404
777
|
xEndIndex,
|
|
405
778
|
renderer = axis.chart.renderer,
|
|
779
|
+
horiz = axis.horiz,
|
|
406
780
|
axisGroupBox;
|
|
407
781
|
|
|
408
|
-
if (
|
|
782
|
+
if (gridOptions.enabled === true) {
|
|
783
|
+
// TODO acutual label padding (top, bottom, left, right)
|
|
784
|
+
// Label padding is needed to figure out where to draw the outer line.
|
|
409
785
|
labelPadding = (Math.abs(axis.defaultLeftAxisOptions.labels.x) * 2);
|
|
410
|
-
|
|
786
|
+
axis.maxLabelDimensions = axis.getMaxLabelDimensions(
|
|
787
|
+
axis.ticks,
|
|
788
|
+
axis.tickPositions
|
|
789
|
+
);
|
|
790
|
+
distance = axis.maxLabelDimensions.width + labelPadding;
|
|
411
791
|
lineWidth = options.lineWidth;
|
|
412
792
|
|
|
413
|
-
// Remove right wall before rendering
|
|
793
|
+
// Remove right wall before rendering if updating
|
|
414
794
|
if (axis.rightWall) {
|
|
415
795
|
axis.rightWall.destroy();
|
|
416
796
|
}
|
|
@@ -421,27 +801,17 @@
|
|
|
421
801
|
|
|
422
802
|
axisGroupBox = axis.axisGroup.getBBox();
|
|
423
803
|
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
])
|
|
434
|
-
.attr({
|
|
435
|
-
stroke: options.tickColor || '#ccd6eb',
|
|
436
|
-
'stroke-width': options.tickWidth || 1,
|
|
437
|
-
zIndex: 7,
|
|
438
|
-
class: 'grid-wall'
|
|
439
|
-
})
|
|
440
|
-
.add(axis.axisGroup);
|
|
441
|
-
}
|
|
442
|
-
|
|
804
|
+
/*
|
|
805
|
+
* Draw an extra axis line on outer axes
|
|
806
|
+
* >
|
|
807
|
+
* Make this: |______|______|______|___
|
|
808
|
+
*
|
|
809
|
+
* > _________________________
|
|
810
|
+
* Into this: |______|______|______|__|
|
|
811
|
+
*
|
|
812
|
+
*/
|
|
443
813
|
if (axis.isOuterAxis() && axis.axisLine) {
|
|
444
|
-
if (
|
|
814
|
+
if (horiz) {
|
|
445
815
|
// -1 to avoid adding distance each time the chart updates
|
|
446
816
|
distance = axisGroupBox.height - 1;
|
|
447
817
|
}
|
|
@@ -459,7 +829,7 @@
|
|
|
459
829
|
}
|
|
460
830
|
|
|
461
831
|
// If axis is horizontal, reposition line path vertically
|
|
462
|
-
if (
|
|
832
|
+
if (horiz) {
|
|
463
833
|
linePath[yStartIndex] = linePath[yStartIndex] + distance;
|
|
464
834
|
linePath[yEndIndex] = linePath[yEndIndex] + distance;
|
|
465
835
|
} else {
|
|
@@ -471,10 +841,10 @@
|
|
|
471
841
|
if (!axis.axisLineExtra) {
|
|
472
842
|
axis.axisLineExtra = renderer.path(linePath)
|
|
473
843
|
.attr({
|
|
474
|
-
|
|
475
|
-
'stroke-width': lineWidth,
|
|
844
|
+
|
|
476
845
|
zIndex: 7
|
|
477
846
|
})
|
|
847
|
+
.addClass('highcharts-axis-line')
|
|
478
848
|
.add(axis.axisGroup);
|
|
479
849
|
} else {
|
|
480
850
|
axis.axisLineExtra.animate({
|
|
@@ -486,62 +856,130 @@
|
|
|
486
856
|
axis.axisLine[axis.showAxis ? 'show' : 'hide'](true);
|
|
487
857
|
}
|
|
488
858
|
}
|
|
859
|
+
|
|
489
860
|
} else {
|
|
490
861
|
proceed.apply(axis);
|
|
491
862
|
}
|
|
492
863
|
});
|
|
493
864
|
|
|
494
865
|
/**
|
|
495
|
-
* Wraps
|
|
496
|
-
* 1. Prohibit timespans of multitudes of a time unit
|
|
497
|
-
* 2. Draw cell walls on vertical axes
|
|
866
|
+
* Wraps axis init to draw cell walls on vertical axes.
|
|
498
867
|
*
|
|
499
868
|
* @param {function} proceed - the original function
|
|
500
869
|
*/
|
|
501
|
-
wrap(
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
870
|
+
wrap(Axis.prototype, 'init', function (proceed, chart, userOptions) {
|
|
871
|
+
var axis = this,
|
|
872
|
+
gridOptions = (
|
|
873
|
+
(userOptions && isObject(userOptions.grid)) ?
|
|
874
|
+
userOptions.grid :
|
|
875
|
+
{}
|
|
876
|
+
),
|
|
877
|
+
columnOptions,
|
|
878
|
+
column,
|
|
879
|
+
columnIndex,
|
|
880
|
+
i;
|
|
881
|
+
function applyGridOptions(axis) {
|
|
882
|
+
var options = axis.options,
|
|
883
|
+
// TODO: Consider using cell margins defined in % of font size?
|
|
884
|
+
// 25 is optimal height for default fontSize (11px)
|
|
885
|
+
// 25 / 11 ≈ 2.28
|
|
886
|
+
fontSizeToCellHeightRatio = 25 / 11,
|
|
887
|
+
fontSize = options.labels.style.fontSize,
|
|
512
888
|
fontMetrics = axis.chart.renderer.fontMetrics(fontSize);
|
|
513
889
|
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
890
|
+
// Center-align by default
|
|
891
|
+
if (!options.labels) {
|
|
892
|
+
options.labels = {};
|
|
893
|
+
}
|
|
894
|
+
options.labels.align = pick(options.labels.align, 'center');
|
|
895
|
+
|
|
896
|
+
// TODO: Check against tickLabelPlacement between/on etc
|
|
897
|
+
/**
|
|
898
|
+
* Prevents adding the last tick label if the axis is not a category
|
|
899
|
+
* axis.
|
|
900
|
+
*
|
|
901
|
+
* Since numeric labels are normally placed at starts and ends of a
|
|
902
|
+
* range of value, and this module makes the label point at the value,
|
|
903
|
+
* an "extra" label would appear.
|
|
904
|
+
*/
|
|
905
|
+
if (!axis.categories) {
|
|
906
|
+
options.showLastLabel = false;
|
|
907
|
+
}
|
|
528
908
|
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
if (!options.lineWidth) {
|
|
537
|
-
options.lineWidth = 1;
|
|
538
|
-
}
|
|
539
|
-
}
|
|
909
|
+
/**
|
|
910
|
+
* Make tick marks taller, creating cell walls of a grid.
|
|
911
|
+
* Use cellHeight axis option if set
|
|
912
|
+
*/
|
|
913
|
+
if (axis.horiz) {
|
|
914
|
+
options.tickLength = gridOptions.cellHeight ||
|
|
915
|
+
fontMetrics.h * fontSizeToCellHeightRatio;
|
|
540
916
|
}
|
|
541
|
-
});
|
|
542
917
|
|
|
543
|
-
|
|
544
|
-
|
|
918
|
+
/**
|
|
919
|
+
* Prevents rotation of labels when squished, as rotating them would not
|
|
920
|
+
* help.
|
|
921
|
+
*/
|
|
922
|
+
axis.labelRotation = 0;
|
|
923
|
+
options.labels.rotation = 0;
|
|
924
|
+
}
|
|
925
|
+
|
|
926
|
+
if (gridOptions.enabled) {
|
|
927
|
+
if (defined(gridOptions.borderColor)) {
|
|
928
|
+
userOptions.tickColor =
|
|
929
|
+
userOptions.lineColor = gridOptions.borderColor;
|
|
930
|
+
}
|
|
931
|
+
|
|
932
|
+
// Handle columns, each column is a grid axis
|
|
933
|
+
if (isArray(gridOptions.columns)) {
|
|
934
|
+
columnIndex = 0;
|
|
935
|
+
i = gridOptions.columns.length;
|
|
936
|
+
while (i--) {
|
|
937
|
+
columnOptions = merge(
|
|
938
|
+
userOptions,
|
|
939
|
+
gridOptions.columns[i],
|
|
940
|
+
{
|
|
941
|
+
// Force to behave like category axis
|
|
942
|
+
type: 'category'
|
|
943
|
+
}
|
|
944
|
+
);
|
|
945
|
+
|
|
946
|
+
delete columnOptions.grid.columns; // Prevent recursion
|
|
947
|
+
|
|
948
|
+
column = new Axis(chart, columnOptions);
|
|
949
|
+
column.isColumn = true;
|
|
950
|
+
column.columnIndex = columnIndex;
|
|
951
|
+
|
|
952
|
+
wrap(column, 'labelFormatter', function (proceed) {
|
|
953
|
+
var axis = this.axis,
|
|
954
|
+
tickPos = axis.tickPositions,
|
|
955
|
+
value = this.value,
|
|
956
|
+
series = axis.series[0],
|
|
957
|
+
isFirst = value === tickPos[0],
|
|
958
|
+
isLast = value === tickPos[tickPos.length - 1],
|
|
959
|
+
point = H.find(series.options.data, function (p) {
|
|
960
|
+
return p[axis.isXAxis ? 'x' : 'y'] === value;
|
|
961
|
+
});
|
|
962
|
+
|
|
963
|
+
// Make additional properties available for the formatter
|
|
964
|
+
this.isFirst = isFirst;
|
|
965
|
+
this.isLast = isLast;
|
|
966
|
+
this.point = point;
|
|
967
|
+
|
|
968
|
+
// Call original labelFormatter
|
|
969
|
+
return proceed.call(this);
|
|
970
|
+
});
|
|
971
|
+
|
|
972
|
+
columnIndex++;
|
|
973
|
+
}
|
|
974
|
+
} else {
|
|
975
|
+
// Call original Axis.init()
|
|
976
|
+
proceed.apply(axis, argsToArray(arguments));
|
|
977
|
+
applyGridOptions(axis);
|
|
978
|
+
}
|
|
979
|
+
} else {
|
|
980
|
+
// Call original Axis.init()
|
|
981
|
+
proceed.apply(axis, argsToArray(arguments));
|
|
982
|
+
}
|
|
545
983
|
});
|
|
546
984
|
|
|
547
985
|
}(Highcharts));
|