@ntlab/ntjs-assets 2.0.21 → 2.0.22
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/assets/js/cdn.json +1 -1
- package/assets/js/highcharts/css/highcharts.css +74 -0
- package/assets/js/highcharts/es-modules/Accessibility/Components/LegendComponent.js +1 -1
- package/assets/js/highcharts/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +1 -1
- package/assets/js/highcharts/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +9 -2
- package/assets/js/highcharts/es-modules/Core/Axis/Axis.js +25 -15
- package/assets/js/highcharts/es-modules/Core/Axis/AxisDefaults.js +3 -2
- package/assets/js/highcharts/es-modules/Core/Axis/Color/ColorAxis.js +1 -1
- package/assets/js/highcharts/es-modules/Core/Axis/Color/ColorAxisDefaults.js +2 -2
- package/assets/js/highcharts/es-modules/Core/Axis/GridAxis.js +1 -1
- package/assets/js/highcharts/es-modules/Core/Axis/OrdinalAxis.js +1 -1
- package/assets/js/highcharts/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +10 -0
- package/assets/js/highcharts/es-modules/Core/Axis/RadialAxis.js +19 -113
- package/assets/js/highcharts/es-modules/Core/Axis/RadialAxisDefaults.js +128 -0
- package/assets/js/highcharts/es-modules/Core/Axis/Tick.js +9 -13
- package/assets/js/highcharts/es-modules/Core/Chart/Chart.js +21 -17
- package/assets/js/highcharts/es-modules/Core/Chart/ChartDefaults.js +4 -2
- package/assets/js/highcharts/es-modules/Core/Chart/StockChart.js +5 -9
- package/assets/js/highcharts/es-modules/Core/Defaults.js +180 -91
- package/assets/js/highcharts/es-modules/Core/Renderer/SVG/SVGElement.js +50 -28
- package/assets/js/highcharts/es-modules/Core/Renderer/SVG/SVGLabel.js +6 -3
- package/assets/js/highcharts/es-modules/Core/Renderer/SVG/SVGRenderer.js +38 -80
- package/assets/js/highcharts/es-modules/Core/Renderer/SVG/Symbols.js +9 -5
- package/assets/js/highcharts/es-modules/Core/Series/DataLabel.js +17 -10
- package/assets/js/highcharts/es-modules/Core/Series/Point.js +4 -3
- package/assets/js/highcharts/es-modules/Core/Series/Series.js +24 -15
- package/assets/js/highcharts/es-modules/Core/Series/SeriesDefaults.js +15 -0
- package/assets/js/highcharts/es-modules/Core/Templating.js +4 -1
- package/assets/js/highcharts/es-modules/Core/Tooltip.js +17 -55
- package/assets/js/highcharts/es-modules/Core/Utilities.js +16 -0
- package/assets/js/highcharts/es-modules/Data/Converters/CSVConverter.js +1 -1
- package/assets/js/highcharts/es-modules/Data/DataCursor.js +34 -16
- package/assets/js/highcharts/es-modules/Data/DataPool.js +1 -1
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Controllables/Controllable.js +3 -0
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +0 -3
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +0 -3
- package/assets/js/highcharts/es-modules/Extensions/Annotations/EventEmitter.js +6 -6
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +2 -0
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Types/CrookedLine.js +1 -0
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Types/Fibonacci.js +4 -2
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +2 -1
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Types/InfinityLine.js +2 -1
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Types/Measure.js +4 -3
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Types/Pitchfork.js +11 -5
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Types/TimeCycles.js +2 -1
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Types/Tunnel.js +4 -2
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Types/VerticalLine.js +2 -1
- package/assets/js/highcharts/es-modules/Extensions/Boost/BoostChart.js +11 -3
- package/assets/js/highcharts/es-modules/Extensions/Boost/BoostSeries.js +7 -4
- package/assets/js/highcharts/es-modules/Extensions/Boost/WGLRenderer.js +11 -2
- package/assets/js/highcharts/es-modules/Extensions/Data.js +3 -3
- package/assets/js/highcharts/es-modules/Extensions/DataGrouping/DataGroupingSeriesComposition.js +1 -0
- package/assets/js/highcharts/es-modules/Extensions/DownloadURL.js +3 -0
- package/assets/js/highcharts/es-modules/Extensions/DragPanes/AxisResizer.js +1 -2
- package/assets/js/highcharts/es-modules/Extensions/DraggablePoints/DragDropProps.js +17 -0
- package/assets/js/highcharts/es-modules/Extensions/DraggablePoints/DraggablePoints.js +1 -0
- package/assets/js/highcharts/es-modules/Extensions/Drilldown/Drilldown.js +14 -14
- package/assets/js/highcharts/es-modules/Extensions/Exporting/Exporting.js +13 -18
- package/assets/js/highcharts/es-modules/Extensions/Exporting/ExportingDefaults.js +8 -6
- package/assets/js/highcharts/es-modules/Extensions/OfflineExporting/OfflineExporting.js +38 -30
- package/assets/js/highcharts/es-modules/Extensions/Pane/PaneDefaults.js +11 -0
- package/assets/js/highcharts/es-modules/Extensions/RegexLimits.js +1 -0
- package/assets/js/highcharts/es-modules/Extensions/ScrollablePlotArea.js +19 -17
- package/assets/js/highcharts/es-modules/Extensions/Themes/BrandDark.js +13 -1
- package/assets/js/highcharts/es-modules/Maps/MapNavigation.js +5 -3
- package/assets/js/highcharts/es-modules/Maps/MapView.js +5 -5
- package/assets/js/highcharts/es-modules/Maps/Projection.js +39 -20
- package/assets/js/highcharts/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +10 -231
- package/assets/js/highcharts/es-modules/Series/ArcDiagram/ArcDiagramSeriesDefaults.js +245 -0
- package/assets/js/highcharts/es-modules/Series/Area/AreaSeries.js +2 -222
- package/assets/js/highcharts/es-modules/Series/Area/AreaSeriesDefaults.js +239 -0
- package/assets/js/highcharts/es-modules/Series/AreaRange/AreaRangeSeries.js +0 -133
- package/assets/js/highcharts/es-modules/Series/AreaRange/AreaRangeSeriesDefaults.js +273 -0
- package/assets/js/highcharts/es-modules/Series/BoxPlot/BoxPlotSeries.js +36 -38
- package/assets/js/highcharts/es-modules/Series/Bubble/BubbleSeries.js +17 -6
- package/assets/js/highcharts/es-modules/Series/Candlestick/CandlestickSeries.js +9 -11
- package/assets/js/highcharts/es-modules/Series/ColorMapComposition.js +28 -4
- package/assets/js/highcharts/es-modules/Series/Column/ColumnDataLabel.js +1 -1
- package/assets/js/highcharts/es-modules/Series/Column/ColumnSeries.js +25 -30
- package/assets/js/highcharts/es-modules/Series/DataModifyComposition.js +26 -2
- package/assets/js/highcharts/es-modules/Series/DotPlot/DotPlotSeries.js +37 -27
- package/assets/js/highcharts/es-modules/Series/DotPlot/DotPlotSeriesDefaults.js +3 -2
- package/assets/js/highcharts/es-modules/Series/Dumbbell/DumbbellSeries.js +1 -39
- package/assets/js/highcharts/es-modules/Series/Dumbbell/DumbbellSeriesDefaults.js +29 -0
- package/assets/js/highcharts/es-modules/Series/Flags/FlagsSeries.js +2 -1
- package/assets/js/highcharts/es-modules/Series/GeoHeatmap/GeoHeatmapSeries.js +3 -10
- package/assets/js/highcharts/es-modules/Series/HLC/HLCSeries.js +4 -5
- package/assets/js/highcharts/es-modules/Series/MapLine/MapLineSeriesDefaults.js +7 -6
- package/assets/js/highcharts/es-modules/Series/MapPoint/MapPointSeriesDefaults.js +17 -11
- package/assets/js/highcharts/es-modules/Series/Networkgraph/NetworkgraphSeriesDefaults.js +1 -1
- package/assets/js/highcharts/es-modules/Series/Networkgraph/ReingoldFruchtermanLayout.js +1 -1
- package/assets/js/highcharts/es-modules/Series/OHLC/OHLCSeries.js +3 -5
- package/assets/js/highcharts/es-modules/Series/Organization/OrganizationSeries.js +17 -19
- package/assets/js/highcharts/es-modules/Series/Organization/OrganizationSeriesDefaults.js +1 -1
- package/assets/js/highcharts/es-modules/Series/PackedBubble/PackedBubbleLayout.js +3 -3
- package/assets/js/highcharts/es-modules/Series/PackedBubble/PackedBubbleSeries.js +3 -3
- package/assets/js/highcharts/es-modules/Series/PackedBubble/PackedBubbleSeriesDefaults.js +0 -1
- package/assets/js/highcharts/es-modules/Series/Pyramid/PyramidSeriesDefaults.js +3 -3
- package/assets/js/highcharts/es-modules/Series/Sankey/SankeySeries.js +5 -6
- package/assets/js/highcharts/es-modules/Series/Sankey/SankeySeriesDefaults.js +1 -1
- package/assets/js/highcharts/es-modules/Series/SeriesOnPointComposition.js +2 -2
- package/assets/js/highcharts/es-modules/Series/Sunburst/SunburstSeriesDefaults.js +1 -1
- package/assets/js/highcharts/es-modules/Series/Treegraph/TreegraphLink.js +12 -7
- package/assets/js/highcharts/es-modules/Series/Treegraph/TreegraphSeries.js +8 -9
- package/assets/js/highcharts/es-modules/Series/Treemap/TreemapSeries.js +8 -8
- package/assets/js/highcharts/es-modules/Series/Treemap/TreemapSeriesDefaults.js +1 -1
- package/assets/js/highcharts/es-modules/Series/Variwide/VariwideSeries.js +4 -4
- package/assets/js/highcharts/es-modules/Series/Venn/VennSeriesDefaults.js +2 -2
- package/assets/js/highcharts/es-modules/Series/Waterfall/WaterfallSeries.js +11 -12
- package/assets/js/highcharts/es-modules/Series/XRange/XRangeSeries.js +4 -4
- package/assets/js/highcharts/es-modules/Stock/Navigator/Navigator.js +2 -5
- package/assets/js/highcharts/es-modules/Stock/Navigator/NavigatorDefaults.js +11 -0
- package/assets/js/highcharts/es-modules/Stock/Navigator/NavigatorSymbols.js +9 -10
- package/assets/js/highcharts/es-modules/Stock/RangeSelector/RangeSelector.js +162 -187
- package/assets/js/highcharts/es-modules/Stock/RangeSelector/RangeSelectorComposition.js +32 -74
- package/assets/js/highcharts/es-modules/Stock/Scrollbar/Scrollbar.js +6 -7
- package/assets/js/highcharts/es-modules/masters/highcharts-more.src.js +2 -0
- package/assets/js/highcharts/highcharts-3d.js +1 -1
- package/assets/js/highcharts/highcharts-3d.src.js +1 -1
- package/assets/js/highcharts/highcharts-gantt.js +3 -3
- package/assets/js/highcharts/highcharts-gantt.src.js +2008 -906
- package/assets/js/highcharts/highcharts-more.js +2 -2
- package/assets/js/highcharts/highcharts-more.src.js +234 -313
- package/assets/js/highcharts/highcharts.js +3 -3
- package/assets/js/highcharts/highcharts.src.js +743 -616
- package/assets/js/highcharts/highmaps.js +3 -3
- package/assets/js/highcharts/highmaps.src.js +862 -673
- package/assets/js/highcharts/highstock.js +3 -3
- package/assets/js/highcharts/highstock.src.js +1016 -935
- package/assets/js/highcharts/indicators/acceleration-bands.js +1 -1
- package/assets/js/highcharts/indicators/acceleration-bands.src.js +1 -1
- package/assets/js/highcharts/indicators/accumulation-distribution.js +1 -1
- package/assets/js/highcharts/indicators/accumulation-distribution.src.js +1 -1
- package/assets/js/highcharts/indicators/ao.js +1 -1
- package/assets/js/highcharts/indicators/ao.src.js +1 -1
- package/assets/js/highcharts/indicators/apo.js +1 -1
- package/assets/js/highcharts/indicators/apo.src.js +1 -1
- package/assets/js/highcharts/indicators/aroon-oscillator.js +1 -1
- package/assets/js/highcharts/indicators/aroon-oscillator.src.js +1 -1
- package/assets/js/highcharts/indicators/aroon.js +1 -1
- package/assets/js/highcharts/indicators/aroon.src.js +1 -1
- package/assets/js/highcharts/indicators/atr.js +1 -1
- package/assets/js/highcharts/indicators/atr.src.js +1 -1
- package/assets/js/highcharts/indicators/bollinger-bands.js +1 -1
- package/assets/js/highcharts/indicators/bollinger-bands.src.js +1 -1
- package/assets/js/highcharts/indicators/cci.js +1 -1
- package/assets/js/highcharts/indicators/cci.src.js +1 -1
- package/assets/js/highcharts/indicators/chaikin.js +1 -1
- package/assets/js/highcharts/indicators/chaikin.src.js +1 -1
- package/assets/js/highcharts/indicators/cmf.js +1 -1
- package/assets/js/highcharts/indicators/cmf.src.js +1 -1
- package/assets/js/highcharts/indicators/cmo.js +1 -1
- package/assets/js/highcharts/indicators/cmo.src.js +1 -1
- package/assets/js/highcharts/indicators/dema.js +1 -1
- package/assets/js/highcharts/indicators/dema.src.js +1 -1
- package/assets/js/highcharts/indicators/disparity-index.js +1 -1
- package/assets/js/highcharts/indicators/disparity-index.src.js +1 -1
- package/assets/js/highcharts/indicators/dmi.js +1 -1
- package/assets/js/highcharts/indicators/dmi.src.js +1 -1
- package/assets/js/highcharts/indicators/dpo.js +1 -1
- package/assets/js/highcharts/indicators/dpo.src.js +1 -1
- package/assets/js/highcharts/indicators/ichimoku-kinko-hyo.js +1 -1
- package/assets/js/highcharts/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/assets/js/highcharts/indicators/indicators-all.js +1 -1
- package/assets/js/highcharts/indicators/indicators-all.src.js +1 -1
- package/assets/js/highcharts/indicators/indicators.js +1 -1
- package/assets/js/highcharts/indicators/indicators.src.js +1 -1
- package/assets/js/highcharts/indicators/keltner-channels.js +1 -1
- package/assets/js/highcharts/indicators/keltner-channels.src.js +1 -1
- package/assets/js/highcharts/indicators/klinger.js +1 -1
- package/assets/js/highcharts/indicators/klinger.src.js +1 -1
- package/assets/js/highcharts/indicators/macd.js +1 -1
- package/assets/js/highcharts/indicators/macd.src.js +1 -1
- package/assets/js/highcharts/indicators/mfi.js +1 -1
- package/assets/js/highcharts/indicators/mfi.src.js +1 -1
- package/assets/js/highcharts/indicators/momentum.js +1 -1
- package/assets/js/highcharts/indicators/momentum.src.js +1 -1
- package/assets/js/highcharts/indicators/natr.js +1 -1
- package/assets/js/highcharts/indicators/natr.src.js +1 -1
- package/assets/js/highcharts/indicators/obv.js +1 -1
- package/assets/js/highcharts/indicators/obv.src.js +1 -1
- package/assets/js/highcharts/indicators/pivot-points.js +1 -1
- package/assets/js/highcharts/indicators/pivot-points.src.js +1 -1
- package/assets/js/highcharts/indicators/ppo.js +1 -1
- package/assets/js/highcharts/indicators/ppo.src.js +1 -1
- package/assets/js/highcharts/indicators/price-channel.js +1 -1
- package/assets/js/highcharts/indicators/price-channel.src.js +1 -1
- package/assets/js/highcharts/indicators/price-envelopes.js +1 -1
- package/assets/js/highcharts/indicators/price-envelopes.src.js +1 -1
- package/assets/js/highcharts/indicators/psar.js +1 -1
- package/assets/js/highcharts/indicators/psar.src.js +1 -1
- package/assets/js/highcharts/indicators/regressions.js +1 -1
- package/assets/js/highcharts/indicators/regressions.src.js +1 -1
- package/assets/js/highcharts/indicators/roc.js +1 -1
- package/assets/js/highcharts/indicators/roc.src.js +1 -1
- package/assets/js/highcharts/indicators/rsi.js +1 -1
- package/assets/js/highcharts/indicators/rsi.src.js +1 -1
- package/assets/js/highcharts/indicators/slow-stochastic.js +1 -1
- package/assets/js/highcharts/indicators/slow-stochastic.src.js +1 -1
- package/assets/js/highcharts/indicators/stochastic.js +1 -1
- package/assets/js/highcharts/indicators/stochastic.src.js +1 -1
- package/assets/js/highcharts/indicators/supertrend.js +1 -1
- package/assets/js/highcharts/indicators/supertrend.src.js +1 -1
- package/assets/js/highcharts/indicators/tema.js +1 -1
- package/assets/js/highcharts/indicators/tema.src.js +1 -1
- package/assets/js/highcharts/indicators/trendline.js +1 -1
- package/assets/js/highcharts/indicators/trendline.src.js +1 -1
- package/assets/js/highcharts/indicators/trix.js +1 -1
- package/assets/js/highcharts/indicators/trix.src.js +1 -1
- package/assets/js/highcharts/indicators/volume-by-price.js +1 -1
- package/assets/js/highcharts/indicators/volume-by-price.src.js +1 -1
- package/assets/js/highcharts/indicators/vwap.js +1 -1
- package/assets/js/highcharts/indicators/vwap.src.js +1 -1
- package/assets/js/highcharts/indicators/williams-r.js +1 -1
- package/assets/js/highcharts/indicators/williams-r.src.js +1 -1
- package/assets/js/highcharts/indicators/wma.js +1 -1
- package/assets/js/highcharts/indicators/wma.src.js +1 -1
- package/assets/js/highcharts/indicators/zigzag.js +1 -1
- package/assets/js/highcharts/indicators/zigzag.src.js +1 -1
- package/assets/js/highcharts/modules/accessibility.js +2 -2
- package/assets/js/highcharts/modules/accessibility.src.js +39 -28
- package/assets/js/highcharts/modules/annotations-advanced.js +2 -2
- package/assets/js/highcharts/modules/annotations-advanced.src.js +46 -31
- package/assets/js/highcharts/modules/annotations.js +2 -2
- package/assets/js/highcharts/modules/annotations.src.js +12 -15
- package/assets/js/highcharts/modules/arc-diagram.js +2 -2
- package/assets/js/highcharts/modules/arc-diagram.src.js +258 -233
- package/assets/js/highcharts/modules/arrow-symbols.js +1 -1
- package/assets/js/highcharts/modules/arrow-symbols.src.js +1 -1
- package/assets/js/highcharts/modules/boost-canvas.js +2 -2
- package/assets/js/highcharts/modules/boost-canvas.src.js +30 -10
- package/assets/js/highcharts/modules/boost.js +2 -2
- package/assets/js/highcharts/modules/boost.src.js +30 -10
- package/assets/js/highcharts/modules/broken-axis.js +1 -1
- package/assets/js/highcharts/modules/broken-axis.src.js +1 -1
- package/assets/js/highcharts/modules/bullet.js +1 -1
- package/assets/js/highcharts/modules/bullet.src.js +1 -1
- package/assets/js/highcharts/modules/coloraxis.js +2 -2
- package/assets/js/highcharts/modules/coloraxis.src.js +4 -4
- package/assets/js/highcharts/modules/current-date-indicator.js +1 -1
- package/assets/js/highcharts/modules/current-date-indicator.src.js +1 -1
- package/assets/js/highcharts/modules/cylinder.js +1 -1
- package/assets/js/highcharts/modules/cylinder.src.js +1 -1
- package/assets/js/highcharts/modules/data-tools.js +2 -2
- package/assets/js/highcharts/modules/data-tools.src.js +37 -19
- package/assets/js/highcharts/modules/data.js +1 -1
- package/assets/js/highcharts/modules/data.src.js +4 -4
- package/assets/js/highcharts/modules/datagrouping.js +2 -2
- package/assets/js/highcharts/modules/datagrouping.src.js +2 -1
- package/assets/js/highcharts/modules/debugger.js +1 -1
- package/assets/js/highcharts/modules/debugger.src.js +1 -1
- package/assets/js/highcharts/modules/dependency-wheel.js +1 -1
- package/assets/js/highcharts/modules/dependency-wheel.src.js +1 -1
- package/assets/js/highcharts/modules/dotplot.js +2 -2
- package/assets/js/highcharts/modules/dotplot.src.js +41 -30
- package/assets/js/highcharts/modules/drag-panes.js +2 -2
- package/assets/js/highcharts/modules/drag-panes.src.js +2 -3
- package/assets/js/highcharts/modules/draggable-points.js +2 -2
- package/assets/js/highcharts/modules/draggable-points.src.js +19 -1
- package/assets/js/highcharts/modules/drilldown.js +2 -2
- package/assets/js/highcharts/modules/drilldown.src.js +15 -15
- package/assets/js/highcharts/modules/dumbbell.js +2 -2
- package/assets/js/highcharts/modules/dumbbell.src.js +31 -40
- package/assets/js/highcharts/modules/export-data.js +2 -2
- package/assets/js/highcharts/modules/export-data.src.js +4 -1
- package/assets/js/highcharts/modules/exporting.js +2 -2
- package/assets/js/highcharts/modules/exporting.src.js +22 -25
- package/assets/js/highcharts/modules/flowmap.js +1 -1
- package/assets/js/highcharts/modules/flowmap.src.js +1 -1
- package/assets/js/highcharts/modules/full-screen.js +1 -1
- package/assets/js/highcharts/modules/full-screen.src.js +1 -1
- package/assets/js/highcharts/modules/funnel.js +2 -2
- package/assets/js/highcharts/modules/funnel.src.js +4 -4
- package/assets/js/highcharts/modules/funnel3d.js +1 -1
- package/assets/js/highcharts/modules/funnel3d.src.js +1 -1
- package/assets/js/highcharts/modules/gantt.js +2 -2
- package/assets/js/highcharts/modules/gantt.src.js +1266 -291
- package/assets/js/highcharts/modules/geoheatmap.js +1 -1
- package/assets/js/highcharts/modules/geoheatmap.src.js +4 -11
- package/assets/js/highcharts/modules/grid-axis.js +2 -2
- package/assets/js/highcharts/modules/grid-axis.src.js +2 -2
- package/assets/js/highcharts/modules/heatmap.js +2 -2
- package/assets/js/highcharts/modules/heatmap.src.js +32 -9
- package/assets/js/highcharts/modules/heikinashi.js +1 -1
- package/assets/js/highcharts/modules/heikinashi.src.js +1 -1
- package/assets/js/highcharts/modules/histogram-bellcurve.js +1 -1
- package/assets/js/highcharts/modules/histogram-bellcurve.src.js +1 -1
- package/assets/js/highcharts/modules/hollowcandlestick.js +1 -1
- package/assets/js/highcharts/modules/hollowcandlestick.src.js +1 -1
- package/assets/js/highcharts/modules/item-series.js +1 -1
- package/assets/js/highcharts/modules/item-series.src.js +1 -1
- package/assets/js/highcharts/modules/lollipop.js +1 -1
- package/assets/js/highcharts/modules/lollipop.src.js +1 -1
- package/assets/js/highcharts/modules/map.js +2 -2
- package/assets/js/highcharts/modules/map.src.js +120 -58
- package/assets/js/highcharts/modules/marker-clusters.js +1 -1
- package/assets/js/highcharts/modules/marker-clusters.src.js +1 -1
- package/assets/js/highcharts/modules/mouse-wheel-zoom.js +1 -1
- package/assets/js/highcharts/modules/mouse-wheel-zoom.src.js +1 -1
- package/assets/js/highcharts/modules/navigator.js +2 -2
- package/assets/js/highcharts/modules/navigator.src.js +28 -24
- package/assets/js/highcharts/modules/networkgraph.js +2 -2
- package/assets/js/highcharts/modules/networkgraph.src.js +3 -3
- package/assets/js/highcharts/modules/no-data-to-display.js +1 -1
- package/assets/js/highcharts/modules/no-data-to-display.src.js +1 -1
- package/assets/js/highcharts/modules/offline-exporting.js +2 -2
- package/assets/js/highcharts/modules/offline-exporting.src.js +43 -32
- package/assets/js/highcharts/modules/organization.js +2 -2
- package/assets/js/highcharts/modules/organization.src.js +19 -21
- package/assets/js/highcharts/modules/overlapping-datalabels.js +1 -1
- package/assets/js/highcharts/modules/overlapping-datalabels.src.js +1 -1
- package/assets/js/highcharts/modules/parallel-coordinates.js +1 -1
- package/assets/js/highcharts/modules/parallel-coordinates.src.js +1 -1
- package/assets/js/highcharts/modules/pareto.js +1 -1
- package/assets/js/highcharts/modules/pareto.src.js +1 -1
- package/assets/js/highcharts/modules/pathfinder.js +1 -1
- package/assets/js/highcharts/modules/pathfinder.src.js +1 -1
- package/assets/js/highcharts/modules/pattern-fill.js +1 -1
- package/assets/js/highcharts/modules/pattern-fill.src.js +1 -1
- package/assets/js/highcharts/modules/pictorial.js +1 -1
- package/assets/js/highcharts/modules/pictorial.src.js +1 -1
- package/assets/js/highcharts/modules/price-indicator.js +1 -1
- package/assets/js/highcharts/modules/price-indicator.src.js +1 -1
- package/assets/js/highcharts/modules/pyramid3d.js +1 -1
- package/assets/js/highcharts/modules/pyramid3d.src.js +1 -1
- package/assets/js/highcharts/modules/sankey.js +2 -2
- package/assets/js/highcharts/modules/sankey.src.js +7 -8
- package/assets/js/highcharts/modules/series-label.js +1 -1
- package/assets/js/highcharts/modules/series-label.src.js +1 -1
- package/assets/js/highcharts/modules/series-on-point.js +2 -2
- package/assets/js/highcharts/modules/series-on-point.src.js +3 -3
- package/assets/js/highcharts/modules/solid-gauge.js +1 -1
- package/assets/js/highcharts/modules/solid-gauge.src.js +1 -1
- package/assets/js/highcharts/modules/sonification.js +2 -2
- package/assets/js/highcharts/modules/sonification.src.js +4 -1
- package/assets/js/highcharts/modules/static-scale.js +1 -1
- package/assets/js/highcharts/modules/static-scale.src.js +1 -1
- package/assets/js/highcharts/modules/stock-tools.js +2 -2
- package/assets/js/highcharts/modules/stock-tools.src.js +3 -3
- package/assets/js/highcharts/modules/stock.js +2 -2
- package/assets/js/highcharts/modules/stock.src.js +274 -320
- package/assets/js/highcharts/modules/streamgraph.js +1 -1
- package/assets/js/highcharts/modules/streamgraph.src.js +1 -1
- package/assets/js/highcharts/modules/sunburst.js +2 -2
- package/assets/js/highcharts/modules/sunburst.src.js +39 -16
- package/assets/js/highcharts/modules/tiledwebmap.js +1 -1
- package/assets/js/highcharts/modules/tiledwebmap.src.js +1 -1
- package/assets/js/highcharts/modules/tilemap.js +1 -1
- package/assets/js/highcharts/modules/tilemap.src.js +1 -1
- package/assets/js/highcharts/modules/timeline.js +1 -1
- package/assets/js/highcharts/modules/timeline.src.js +1 -1
- package/assets/js/highcharts/modules/treegraph.js +2 -2
- package/assets/js/highcharts/modules/treegraph.src.js +21 -17
- package/assets/js/highcharts/modules/treegrid.js +2 -2
- package/assets/js/highcharts/modules/treegrid.src.js +2 -2
- package/assets/js/highcharts/modules/treemap.js +2 -2
- package/assets/js/highcharts/modules/treemap.src.js +38 -15
- package/assets/js/highcharts/modules/variable-pie.js +1 -1
- package/assets/js/highcharts/modules/variable-pie.src.js +1 -1
- package/assets/js/highcharts/modules/variwide.js +2 -2
- package/assets/js/highcharts/modules/variwide.src.js +5 -5
- package/assets/js/highcharts/modules/vector.js +1 -1
- package/assets/js/highcharts/modules/vector.src.js +1 -1
- package/assets/js/highcharts/modules/venn.js +1 -1
- package/assets/js/highcharts/modules/venn.src.js +3 -3
- package/assets/js/highcharts/modules/windbarb.js +1 -1
- package/assets/js/highcharts/modules/windbarb.src.js +1 -1
- package/assets/js/highcharts/modules/wordcloud.js +1 -1
- package/assets/js/highcharts/modules/wordcloud.src.js +1 -1
- package/assets/js/highcharts/modules/xrange.js +2 -2
- package/assets/js/highcharts/modules/xrange.src.js +5 -5
- package/assets/js/highcharts/standalone-navigator.js +2 -2
- package/assets/js/highcharts/standalone-navigator.src.js +769 -638
- package/assets/js/highcharts/themes/avocado.js +1 -1
- package/assets/js/highcharts/themes/avocado.src.js +1 -1
- package/assets/js/highcharts/themes/brand-dark.js +2 -2
- package/assets/js/highcharts/themes/brand-dark.src.js +14 -2
- package/assets/js/highcharts/themes/brand-light.js +1 -1
- package/assets/js/highcharts/themes/brand-light.src.js +1 -1
- package/assets/js/highcharts/themes/dark-blue.js +1 -1
- package/assets/js/highcharts/themes/dark-blue.src.js +1 -1
- package/assets/js/highcharts/themes/dark-green.js +1 -1
- package/assets/js/highcharts/themes/dark-green.src.js +1 -1
- package/assets/js/highcharts/themes/dark-unica.js +1 -1
- package/assets/js/highcharts/themes/dark-unica.src.js +1 -1
- package/assets/js/highcharts/themes/gray.js +1 -1
- package/assets/js/highcharts/themes/gray.src.js +1 -1
- package/assets/js/highcharts/themes/grid-light.js +1 -1
- package/assets/js/highcharts/themes/grid-light.src.js +1 -1
- package/assets/js/highcharts/themes/grid.js +1 -1
- package/assets/js/highcharts/themes/grid.src.js +1 -1
- package/assets/js/highcharts/themes/high-contrast-dark.js +1 -1
- package/assets/js/highcharts/themes/high-contrast-dark.src.js +1 -1
- package/assets/js/highcharts/themes/high-contrast-light.js +1 -1
- package/assets/js/highcharts/themes/high-contrast-light.src.js +1 -1
- package/assets/js/highcharts/themes/sand-signika.js +1 -1
- package/assets/js/highcharts/themes/sand-signika.src.js +1 -1
- package/assets/js/highcharts/themes/skies.js +1 -1
- package/assets/js/highcharts/themes/skies.src.js +1 -1
- package/assets/js/highcharts/themes/sunset.js +1 -1
- package/assets/js/highcharts/themes/sunset.src.js +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Highcharts JS v11.4.
|
|
2
|
+
* @license Highcharts JS v11.4.3 (2024-05-22)
|
|
3
3
|
*
|
|
4
4
|
* (c) 2009-2024 Torstein Honsi
|
|
5
5
|
*
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
* Constants
|
|
63
63
|
*
|
|
64
64
|
* */
|
|
65
|
-
Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '11.4.
|
|
65
|
+
Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '11.4.3', Globals.win = (typeof window !== 'undefined' ?
|
|
66
66
|
window :
|
|
67
67
|
{}), // eslint-disable-line node/no-unsupported-features/es-builtins
|
|
68
68
|
Globals.doc = Globals.win.document, Globals.svg = (Globals.doc &&
|
|
@@ -339,6 +339,21 @@
|
|
|
339
339
|
function clamp(value, min, max) {
|
|
340
340
|
return value > min ? value < max ? value : max : min;
|
|
341
341
|
}
|
|
342
|
+
/**
|
|
343
|
+
* Utility for crisping a line position to the nearest full pixel depening on
|
|
344
|
+
* the line width
|
|
345
|
+
* @param {number} value The raw pixel position
|
|
346
|
+
* @param {number} lineWidth The line width
|
|
347
|
+
* @param {boolean} [inverted] Whether the containing group is inverted.
|
|
348
|
+
* Crisping round numbers on the y-scale need to go
|
|
349
|
+
* to the other side because the coordinate system
|
|
350
|
+
* is flipped (scaleY is -1)
|
|
351
|
+
* @return {number} The pixel position to use for a crisp display
|
|
352
|
+
*/
|
|
353
|
+
const crisp = (value, lineWidth = 0, inverted) => {
|
|
354
|
+
const mod = lineWidth % 2 / 2, inverter = inverted ? -1 : 1;
|
|
355
|
+
return (Math.round(value * inverter - mod) + mod) * inverter;
|
|
356
|
+
};
|
|
342
357
|
// eslint-disable-next-line valid-jsdoc
|
|
343
358
|
/**
|
|
344
359
|
* Return the deep difference between two objects. It can either return the new
|
|
@@ -1904,6 +1919,7 @@
|
|
|
1904
1919
|
clearTimeout: internalClearTimeout,
|
|
1905
1920
|
correctFloat,
|
|
1906
1921
|
createElement,
|
|
1922
|
+
crisp,
|
|
1907
1923
|
css,
|
|
1908
1924
|
defined,
|
|
1909
1925
|
destroyObjectProperties,
|
|
@@ -2692,7 +2708,7 @@
|
|
|
2692
2708
|
*
|
|
2693
2709
|
* @type {number}
|
|
2694
2710
|
* @default 2
|
|
2695
|
-
* @since
|
|
2711
|
+
* @since 11.3.0
|
|
2696
2712
|
* @apioption chart.axisLayoutRuns
|
|
2697
2713
|
*/
|
|
2698
2714
|
/**
|
|
@@ -3434,13 +3450,15 @@
|
|
|
3434
3450
|
* element's height is 0.
|
|
3435
3451
|
*
|
|
3436
3452
|
* @sample {highcharts} highcharts/chart/height/
|
|
3437
|
-
*
|
|
3453
|
+
* Forced 200px height
|
|
3438
3454
|
* @sample {highstock} stock/chart/height/
|
|
3439
3455
|
* 300px height
|
|
3440
3456
|
* @sample {highmaps} maps/chart/size/
|
|
3441
3457
|
* Chart with explicit size
|
|
3442
3458
|
* @sample highcharts/chart/height-percent/
|
|
3443
3459
|
* Highcharts with percentage height
|
|
3460
|
+
* @sample highcharts/chart/height-inherited/
|
|
3461
|
+
* Chart with inherited height
|
|
3444
3462
|
*
|
|
3445
3463
|
* @type {null|number|string}
|
|
3446
3464
|
*/
|
|
@@ -4339,8 +4357,8 @@
|
|
|
4339
4357
|
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
4340
4358
|
*
|
|
4341
4359
|
* */
|
|
4342
|
-
const { isTouchDevice
|
|
4343
|
-
const { merge } = U;
|
|
4360
|
+
const { isTouchDevice } = H;
|
|
4361
|
+
const { fireEvent, merge } = U;
|
|
4344
4362
|
/* *
|
|
4345
4363
|
*
|
|
4346
4364
|
* API Options
|
|
@@ -4571,84 +4589,163 @@
|
|
|
4571
4589
|
* ```js
|
|
4572
4590
|
* Highcharts.setOptions({
|
|
4573
4591
|
* global: {
|
|
4574
|
-
*
|
|
4592
|
+
* buttonTheme: {
|
|
4593
|
+
* fill: '#d0d0d0'
|
|
4594
|
+
* }
|
|
4575
4595
|
* }
|
|
4576
4596
|
* });
|
|
4577
4597
|
* ```
|
|
4578
4598
|
*/
|
|
4579
|
-
|
|
4580
|
-
|
|
4581
|
-
|
|
4582
|
-
|
|
4583
|
-
|
|
4584
|
-
|
|
4585
|
-
|
|
4586
|
-
|
|
4587
|
-
|
|
4588
|
-
|
|
4589
|
-
|
|
4590
|
-
|
|
4591
|
-
|
|
4592
|
-
|
|
4593
|
-
|
|
4594
|
-
|
|
4595
|
-
|
|
4596
|
-
|
|
4597
|
-
|
|
4598
|
-
|
|
4599
|
-
|
|
4600
|
-
|
|
4601
|
-
|
|
4602
|
-
|
|
4603
|
-
|
|
4604
|
-
|
|
4605
|
-
|
|
4606
|
-
|
|
4607
|
-
|
|
4608
|
-
|
|
4609
|
-
|
|
4610
|
-
|
|
4611
|
-
|
|
4612
|
-
|
|
4613
|
-
|
|
4614
|
-
|
|
4615
|
-
|
|
4616
|
-
|
|
4617
|
-
|
|
4618
|
-
|
|
4619
|
-
|
|
4620
|
-
|
|
4621
|
-
|
|
4622
|
-
|
|
4623
|
-
|
|
4624
|
-
|
|
4625
|
-
|
|
4626
|
-
|
|
4627
|
-
|
|
4628
|
-
|
|
4629
|
-
|
|
4630
|
-
|
|
4631
|
-
|
|
4632
|
-
|
|
4633
|
-
|
|
4634
|
-
|
|
4635
|
-
|
|
4636
|
-
|
|
4637
|
-
|
|
4638
|
-
|
|
4639
|
-
|
|
4640
|
-
|
|
4641
|
-
|
|
4642
|
-
|
|
4643
|
-
|
|
4644
|
-
|
|
4645
|
-
|
|
4646
|
-
|
|
4647
|
-
|
|
4648
|
-
|
|
4649
|
-
|
|
4650
|
-
|
|
4651
|
-
|
|
4599
|
+
global: {
|
|
4600
|
+
/**
|
|
4601
|
+
* _Canvg rendering for Android 2.x is removed as of Highcharts 5.0\.
|
|
4602
|
+
* Use the [libURL](#exporting.libURL) option to configure exporting._
|
|
4603
|
+
*
|
|
4604
|
+
* The URL to the additional file to lazy load for Android 2.x devices.
|
|
4605
|
+
* These devices don't support SVG, so we download a helper file that
|
|
4606
|
+
* contains [canvg](https://github.com/canvg/canvg), its dependency
|
|
4607
|
+
* rbcolor, and our own CanVG Renderer class. To avoid hotlinking to
|
|
4608
|
+
* our site, you can install canvas-tools.js on your own server and
|
|
4609
|
+
* change this option accordingly.
|
|
4610
|
+
*
|
|
4611
|
+
* @deprecated
|
|
4612
|
+
*
|
|
4613
|
+
* @type {string}
|
|
4614
|
+
* @default https://code.highcharts.com/{version}/modules/canvas-tools.js
|
|
4615
|
+
* @product highcharts highmaps
|
|
4616
|
+
* @apioption global.canvasToolsURL
|
|
4617
|
+
*/
|
|
4618
|
+
/**
|
|
4619
|
+
* This option is deprecated since v6.0.5. Instead, use
|
|
4620
|
+
* [time.useUTC](#time.useUTC) that supports individual time settings
|
|
4621
|
+
* per chart.
|
|
4622
|
+
*
|
|
4623
|
+
* @deprecated
|
|
4624
|
+
*
|
|
4625
|
+
* @type {boolean}
|
|
4626
|
+
* @apioption global.useUTC
|
|
4627
|
+
*/
|
|
4628
|
+
/**
|
|
4629
|
+
* This option is deprecated since v6.0.5. Instead, use
|
|
4630
|
+
* [time.Date](#time.Date) that supports individual time settings
|
|
4631
|
+
* per chart.
|
|
4632
|
+
*
|
|
4633
|
+
* @deprecated
|
|
4634
|
+
*
|
|
4635
|
+
* @type {Function}
|
|
4636
|
+
* @product highcharts highstock
|
|
4637
|
+
* @apioption global.Date
|
|
4638
|
+
*/
|
|
4639
|
+
/**
|
|
4640
|
+
* This option is deprecated since v6.0.5. Instead, use
|
|
4641
|
+
* [time.getTimezoneOffset](#time.getTimezoneOffset) that supports
|
|
4642
|
+
* individual time settings per chart.
|
|
4643
|
+
*
|
|
4644
|
+
* @deprecated
|
|
4645
|
+
*
|
|
4646
|
+
* @type {Function}
|
|
4647
|
+
* @product highcharts highstock
|
|
4648
|
+
* @apioption global.getTimezoneOffset
|
|
4649
|
+
*/
|
|
4650
|
+
/**
|
|
4651
|
+
* This option is deprecated since v6.0.5. Instead, use
|
|
4652
|
+
* [time.timezone](#time.timezone) that supports individual time
|
|
4653
|
+
* settings per chart.
|
|
4654
|
+
*
|
|
4655
|
+
* @deprecated
|
|
4656
|
+
*
|
|
4657
|
+
* @type {string}
|
|
4658
|
+
* @product highcharts highstock
|
|
4659
|
+
* @apioption global.timezone
|
|
4660
|
+
*/
|
|
4661
|
+
/**
|
|
4662
|
+
* This option is deprecated since v6.0.5. Instead, use
|
|
4663
|
+
* [time.timezoneOffset](#time.timezoneOffset) that supports individual
|
|
4664
|
+
* time settings per chart.
|
|
4665
|
+
*
|
|
4666
|
+
* @deprecated
|
|
4667
|
+
*
|
|
4668
|
+
* @type {number}
|
|
4669
|
+
* @product highcharts highstock
|
|
4670
|
+
* @apioption global.timezoneOffset
|
|
4671
|
+
*/
|
|
4672
|
+
/**
|
|
4673
|
+
* General theme for buttons. This applies to the zoom button, exporting
|
|
4674
|
+
* context menu, map navigation, range selector buttons and custom
|
|
4675
|
+
* buttons generated using the `SVGRenderer.button` function. However,
|
|
4676
|
+
* each of these may be overridden with more specific options.
|
|
4677
|
+
*
|
|
4678
|
+
* @sample highcharts/global/buttontheme
|
|
4679
|
+
* General button theme
|
|
4680
|
+
* @since 11.4.2
|
|
4681
|
+
*/
|
|
4682
|
+
buttonTheme: {
|
|
4683
|
+
/**
|
|
4684
|
+
* The fill color for buttons
|
|
4685
|
+
*/
|
|
4686
|
+
fill: "#f7f7f7" /* Palette.neutralColor3 */,
|
|
4687
|
+
/**
|
|
4688
|
+
* The padding of buttons
|
|
4689
|
+
*/
|
|
4690
|
+
padding: 8,
|
|
4691
|
+
/**
|
|
4692
|
+
* The border radius for buttons
|
|
4693
|
+
*/
|
|
4694
|
+
r: 2,
|
|
4695
|
+
/**
|
|
4696
|
+
* The stroke color for buttons
|
|
4697
|
+
*/
|
|
4698
|
+
stroke: "#cccccc" /* Palette.neutralColor20 */,
|
|
4699
|
+
/**
|
|
4700
|
+
* The stroke width for buttons
|
|
4701
|
+
*/
|
|
4702
|
+
'stroke-width': 1,
|
|
4703
|
+
/**
|
|
4704
|
+
* CSS styling for the buttons' text
|
|
4705
|
+
*/
|
|
4706
|
+
style: {
|
|
4707
|
+
color: "#333333" /* Palette.neutralColor80 */,
|
|
4708
|
+
cursor: 'pointer',
|
|
4709
|
+
fontSize: '0.8em',
|
|
4710
|
+
fontWeight: 'normal'
|
|
4711
|
+
},
|
|
4712
|
+
/**
|
|
4713
|
+
* State overrides for the buttons
|
|
4714
|
+
*/
|
|
4715
|
+
states: {
|
|
4716
|
+
/**
|
|
4717
|
+
* Hover state overrides for the buttons are applied in addition
|
|
4718
|
+
* to the normal state options
|
|
4719
|
+
*/
|
|
4720
|
+
hover: {
|
|
4721
|
+
fill: "#e6e6e6" /* Palette.neutralColor10 */
|
|
4722
|
+
},
|
|
4723
|
+
/**
|
|
4724
|
+
* Select state overrides for the buttons are applied in
|
|
4725
|
+
* addition to the normal state options
|
|
4726
|
+
*/
|
|
4727
|
+
select: {
|
|
4728
|
+
fill: "#e6e9ff" /* Palette.highlightColor10 */,
|
|
4729
|
+
style: {
|
|
4730
|
+
color: "#000000" /* Palette.neutralColor100 */,
|
|
4731
|
+
fontWeight: 'bold'
|
|
4732
|
+
}
|
|
4733
|
+
},
|
|
4734
|
+
/**
|
|
4735
|
+
* Disabled state overrides for the buttons are applied in
|
|
4736
|
+
* addition to the normal state options
|
|
4737
|
+
*/
|
|
4738
|
+
disabled: {
|
|
4739
|
+
/**
|
|
4740
|
+
* Disabled state CSS style overrides for the buttons' text
|
|
4741
|
+
*/
|
|
4742
|
+
style: {
|
|
4743
|
+
color: "#cccccc" /* Palette.neutralColor20 */
|
|
4744
|
+
}
|
|
4745
|
+
}
|
|
4746
|
+
}
|
|
4747
|
+
}
|
|
4748
|
+
},
|
|
4652
4749
|
/**
|
|
4653
4750
|
* Time options that can apply globally or to individual charts. These
|
|
4654
4751
|
* settings affect how `datetime` axes are laid out, how tooltips are
|
|
@@ -4718,13 +4815,16 @@
|
|
|
4718
4815
|
* for drawing time based charts in specific time zones using their
|
|
4719
4816
|
* local DST crossover dates, with the help of external libraries.
|
|
4720
4817
|
*
|
|
4721
|
-
*
|
|
4818
|
+
* This option is deprecated as of v11.4.1 and will be removed in a
|
|
4819
|
+
* future release. Use the [time.timezone](#time.timezone) option
|
|
4820
|
+
* instead.
|
|
4722
4821
|
*
|
|
4723
4822
|
* @sample {highcharts|highstock} highcharts/time/gettimezoneoffset/
|
|
4724
4823
|
* Use moment.js to draw Oslo time regardless of browser locale
|
|
4725
4824
|
*
|
|
4726
4825
|
* @type {Highcharts.TimezoneOffsetCallbackFunction}
|
|
4727
4826
|
* @since 4.1.0
|
|
4827
|
+
* @deprecated 11.4.2
|
|
4728
4828
|
* @product highcharts highstock gantt
|
|
4729
4829
|
*/
|
|
4730
4830
|
getTimezoneOffset: void 0,
|
|
@@ -4734,12 +4834,10 @@
|
|
|
4734
4834
|
* docs](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat#timezone).
|
|
4735
4835
|
* If the given time zone is not recognized by the browser, Highcharts
|
|
4736
4836
|
* provides a warning and falls back to returning a 0 offset,
|
|
4737
|
-
* corresponding to the
|
|
4837
|
+
* corresponding to the UTC time zone.
|
|
4738
4838
|
*
|
|
4739
4839
|
* Until v11.2.0, this option depended on moment.js.
|
|
4740
4840
|
*
|
|
4741
|
-
* @see [getTimezoneOffset](#time.getTimezoneOffset)
|
|
4742
|
-
*
|
|
4743
4841
|
* @sample {highcharts|highstock} highcharts/time/timezone/ Europe/Oslo
|
|
4744
4842
|
*
|
|
4745
4843
|
* @type {string}
|
|
@@ -4753,12 +4851,17 @@
|
|
|
4753
4851
|
* [getTimezoneOffset](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset)
|
|
4754
4852
|
* method. Use this to display UTC based data in a predefined time zone.
|
|
4755
4853
|
*
|
|
4854
|
+
* This option is deprecated as of v11.4.1 and will be removed in a
|
|
4855
|
+
* future release. Use the [time.timezone](#time.timezone) option
|
|
4856
|
+
* instead.
|
|
4857
|
+
*
|
|
4756
4858
|
* @see [time.getTimezoneOffset](#time.getTimezoneOffset)
|
|
4757
4859
|
*
|
|
4758
4860
|
* @sample {highcharts|highstock} highcharts/time/timezoneoffset/
|
|
4759
4861
|
* Timezone offset
|
|
4760
4862
|
*
|
|
4761
4863
|
* @since 3.0.8
|
|
4864
|
+
* @deprecated 11.4.2
|
|
4762
4865
|
* @product highcharts highstock gantt
|
|
4763
4866
|
*/
|
|
4764
4867
|
timezoneOffset: 0,
|
|
@@ -5644,7 +5747,7 @@
|
|
|
5644
5747
|
* Item text styles
|
|
5645
5748
|
*
|
|
5646
5749
|
* @type {Highcharts.CSSObject}
|
|
5647
|
-
* @default {"color": "#333333", "cursor": "pointer", "fontSize": "0.
|
|
5750
|
+
* @default {"color": "#333333", "cursor": "pointer", "fontSize": "0.8em", "fontWeight": "bold", "textOverflow": "ellipsis"}
|
|
5648
5751
|
*/
|
|
5649
5752
|
itemStyle: {
|
|
5650
5753
|
/**
|
|
@@ -5956,7 +6059,7 @@
|
|
|
5956
6059
|
* `.highcharts-legend-title` class.
|
|
5957
6060
|
*
|
|
5958
6061
|
* @type {Highcharts.CSSObject}
|
|
5959
|
-
* @default {"fontSize": "0.
|
|
6062
|
+
* @default {"fontSize": "0.8em", "fontWeight": "bold"}
|
|
5960
6063
|
* @since 3.0
|
|
5961
6064
|
*/
|
|
5962
6065
|
style: {
|
|
@@ -6163,20 +6266,20 @@
|
|
|
6163
6266
|
*/
|
|
6164
6267
|
/**
|
|
6165
6268
|
* A [format string](https://www.highcharts.com/docs/chart-concepts/labels-and-string-formatting)
|
|
6166
|
-
* for the whole tooltip. When format strings are a requirement,
|
|
6167
|
-
* usually more convenient to use `headerFormat`, `pointFormat`
|
|
6168
|
-
* `footerFormat`, but the `format` option allows combining them
|
|
6169
|
-
* one setting.
|
|
6269
|
+
* for the whole shared tooltip. When format strings are a requirement,
|
|
6270
|
+
* it is usually more convenient to use `headerFormat`, `pointFormat`
|
|
6271
|
+
* and `footerFormat`, but the `format` option allows combining them
|
|
6272
|
+
* into one setting.
|
|
6170
6273
|
*
|
|
6171
6274
|
* The context of the format string is the same as that of the
|
|
6172
|
-
* `formatter` callback.
|
|
6275
|
+
* `tooltip.formatter` callback.
|
|
6173
6276
|
*
|
|
6174
6277
|
* @sample {highcharts} highcharts/tooltip/format-shared/
|
|
6175
6278
|
* Format for shared tooltip
|
|
6176
6279
|
*
|
|
6177
6280
|
* @type {string}
|
|
6178
6281
|
* @default undefined
|
|
6179
|
-
* @since
|
|
6282
|
+
* @since 11.1.0
|
|
6180
6283
|
* @apioption tooltip.format
|
|
6181
6284
|
*/
|
|
6182
6285
|
/**
|
|
@@ -6449,11 +6552,14 @@
|
|
|
6449
6552
|
/**
|
|
6450
6553
|
* Enable or disable animation of the tooltip.
|
|
6451
6554
|
*
|
|
6452
|
-
* @type {boolean}
|
|
6453
|
-
* @default true
|
|
6555
|
+
* @type {boolean|Partial<Highcharts.AnimationOptionsObject>}
|
|
6454
6556
|
* @since 2.3.0
|
|
6455
6557
|
*/
|
|
6456
|
-
animation:
|
|
6558
|
+
animation: {
|
|
6559
|
+
duration: 300,
|
|
6560
|
+
// EaseOutCirc
|
|
6561
|
+
easing: (x) => Math.sqrt(1 - Math.pow(x - 1, 2))
|
|
6562
|
+
},
|
|
6457
6563
|
/**
|
|
6458
6564
|
* The radius of the rounded border corners.
|
|
6459
6565
|
*
|
|
@@ -6908,6 +7014,7 @@
|
|
|
6908
7014
|
* Updated options.
|
|
6909
7015
|
*/
|
|
6910
7016
|
function setOptions(options) {
|
|
7017
|
+
fireEvent(H, 'setOptions', { options });
|
|
6911
7018
|
// Copy in the default options
|
|
6912
7019
|
merge(true, defaultOptions, options);
|
|
6913
7020
|
// Update the time object
|
|
@@ -8857,7 +8964,7 @@
|
|
|
8857
8964
|
// Block helpers may return true or false. They may also return a
|
|
8858
8965
|
// string, like the `each` helper.
|
|
8859
8966
|
if (match.isBlock && typeof replacement === 'boolean') {
|
|
8860
|
-
replacement = format(replacement ? body : elseBody, ctx);
|
|
8967
|
+
replacement = format(replacement ? body : elseBody, ctx, chart);
|
|
8861
8968
|
}
|
|
8862
8969
|
// Simple variable replacement
|
|
8863
8970
|
}
|
|
@@ -8974,6 +9081,9 @@
|
|
|
8974
9081
|
// Get the decimal component
|
|
8975
9082
|
ret += decimalPoint + roundedNumber.slice(-decimals);
|
|
8976
9083
|
}
|
|
9084
|
+
else if (+ret === 0) { // Remove signed minus #20564
|
|
9085
|
+
ret = '0';
|
|
9086
|
+
}
|
|
8977
9087
|
if (exponent[1] && +ret !== 0) {
|
|
8978
9088
|
ret += 'e' + exponent[1];
|
|
8979
9089
|
}
|
|
@@ -9255,7 +9365,7 @@
|
|
|
9255
9365
|
* */
|
|
9256
9366
|
const { animate, animObject, stop } = A;
|
|
9257
9367
|
const { deg2rad, doc, svg, SVG_NS, win } = H;
|
|
9258
|
-
const { addEvent, attr, createElement, css, defined, erase, extend, fireEvent, isArray, isFunction, isObject, isString, merge, objectEach, pick, pInt, replaceNested, syncTimeout, uniqueKey } = U;
|
|
9368
|
+
const { addEvent, attr, createElement, crisp, css, defined, erase, extend, fireEvent, isArray, isFunction, isObject, isString, merge, objectEach, pick, pInt, pushUnique, replaceNested, syncTimeout, uniqueKey } = U;
|
|
9259
9369
|
/* *
|
|
9260
9370
|
*
|
|
9261
9371
|
* Class
|
|
@@ -9441,7 +9551,7 @@
|
|
|
9441
9551
|
* @param {boolean} [alignByTranslate]
|
|
9442
9552
|
* Align element by translation.
|
|
9443
9553
|
*
|
|
9444
|
-
* @param {string|Highcharts.BBoxObject} [
|
|
9554
|
+
* @param {string|Highcharts.BBoxObject} [alignTo]
|
|
9445
9555
|
* The box to align to, needs a width and height. When the box is a
|
|
9446
9556
|
* string, it refers to an object in the Renderer. For example, when
|
|
9447
9557
|
* box is `spacingBox`, it refers to `Renderer.spacingBox` which
|
|
@@ -9453,34 +9563,39 @@
|
|
|
9453
9563
|
*
|
|
9454
9564
|
* @return {Highcharts.SVGElement} Returns the SVGElement for chaining.
|
|
9455
9565
|
*/
|
|
9456
|
-
align(alignOptions, alignByTranslate,
|
|
9457
|
-
const attribs = {}, renderer = this.renderer, alignedObjects = renderer.alignedObjects;
|
|
9458
|
-
let x, y,
|
|
9566
|
+
align(alignOptions, alignByTranslate, alignTo, redraw = true) {
|
|
9567
|
+
const attribs = {}, renderer = this.renderer, alignedObjects = renderer.alignedObjects, initialAlignment = Boolean(alignOptions);
|
|
9568
|
+
let x, y, alignFactor, vAlignFactor;
|
|
9459
9569
|
// First call on instanciate
|
|
9460
9570
|
if (alignOptions) {
|
|
9461
9571
|
this.alignOptions = alignOptions;
|
|
9462
9572
|
this.alignByTranslate = alignByTranslate;
|
|
9463
|
-
|
|
9464
|
-
this.alignTo = alignTo = box || 'renderer';
|
|
9465
|
-
// Prevent duplicates, like legendGroup after resize
|
|
9466
|
-
erase(alignedObjects, this);
|
|
9467
|
-
alignedObjects.push(this);
|
|
9468
|
-
box = void 0; // Reassign it below
|
|
9469
|
-
}
|
|
9573
|
+
this.alignTo = alignTo;
|
|
9470
9574
|
// When called on resize, no arguments are supplied
|
|
9471
9575
|
}
|
|
9472
9576
|
else {
|
|
9473
|
-
alignOptions = this.alignOptions;
|
|
9577
|
+
alignOptions = this.alignOptions || {};
|
|
9474
9578
|
alignByTranslate = this.alignByTranslate;
|
|
9475
9579
|
alignTo = this.alignTo;
|
|
9476
9580
|
}
|
|
9477
|
-
|
|
9581
|
+
const alignToKey = !alignTo || isString(alignTo) ?
|
|
9582
|
+
alignTo || 'renderer' :
|
|
9583
|
+
void 0;
|
|
9584
|
+
// When aligned to a key, automatically re-align on redraws
|
|
9585
|
+
if (alignToKey) {
|
|
9586
|
+
// Prevent duplicates, like legendGroup after resize
|
|
9587
|
+
if (initialAlignment) {
|
|
9588
|
+
pushUnique(alignedObjects, this);
|
|
9589
|
+
}
|
|
9590
|
+
alignTo = void 0; // Do not use the box
|
|
9591
|
+
}
|
|
9592
|
+
const alignToBox = pick(alignTo, renderer[alignToKey], renderer);
|
|
9478
9593
|
// Assign variables
|
|
9479
9594
|
const align = alignOptions.align, vAlign = alignOptions.verticalAlign;
|
|
9480
9595
|
// Default: left align
|
|
9481
|
-
x = (
|
|
9596
|
+
x = (alignToBox.x || 0) + (alignOptions.x || 0);
|
|
9482
9597
|
// Default: top align
|
|
9483
|
-
y = (
|
|
9598
|
+
y = (alignToBox.y || 0) + (alignOptions.y || 0);
|
|
9484
9599
|
// Align
|
|
9485
9600
|
if (align === 'right') {
|
|
9486
9601
|
alignFactor = 1;
|
|
@@ -9489,7 +9604,7 @@
|
|
|
9489
9604
|
alignFactor = 2;
|
|
9490
9605
|
}
|
|
9491
9606
|
if (alignFactor) {
|
|
9492
|
-
x += (
|
|
9607
|
+
x += ((alignToBox.width || 0) - (alignOptions.width || 0)) /
|
|
9493
9608
|
alignFactor;
|
|
9494
9609
|
}
|
|
9495
9610
|
attribs[alignByTranslate ? 'translateX' : 'x'] = Math.round(x);
|
|
@@ -9501,7 +9616,7 @@
|
|
|
9501
9616
|
vAlignFactor = 2;
|
|
9502
9617
|
}
|
|
9503
9618
|
if (vAlignFactor) {
|
|
9504
|
-
y += (
|
|
9619
|
+
y += ((alignToBox.height || 0) - (alignOptions.height || 0)) /
|
|
9505
9620
|
vAlignFactor;
|
|
9506
9621
|
}
|
|
9507
9622
|
attribs[alignByTranslate ? 'translateY' : 'y'] = Math.round(y);
|
|
@@ -9721,7 +9836,7 @@
|
|
|
9721
9836
|
* used as a getter, the current value of the attribute is returned.
|
|
9722
9837
|
*/
|
|
9723
9838
|
attr(hash, val, complete, continueAnimation) {
|
|
9724
|
-
const element = this
|
|
9839
|
+
const { element } = this, symbolCustomAttribs = SVGElement.symbolCustomAttribs;
|
|
9725
9840
|
let key, hasSetSymbolSize, ret = this, skipAttr, setter;
|
|
9726
9841
|
// Single key-value pair
|
|
9727
9842
|
if (typeof hash === 'string' && typeof val !== 'undefined') {
|
|
@@ -9811,15 +9926,17 @@
|
|
|
9811
9926
|
* The modified rectangle arguments.
|
|
9812
9927
|
*/
|
|
9813
9928
|
crisp(rect, strokeWidth) {
|
|
9814
|
-
const wrapper = this;
|
|
9815
|
-
strokeWidth = strokeWidth || rect.strokeWidth || 0;
|
|
9816
9929
|
// Math.round because strokeWidth can sometimes have roundoff errors
|
|
9817
|
-
|
|
9818
|
-
|
|
9819
|
-
|
|
9820
|
-
|
|
9821
|
-
|
|
9822
|
-
|
|
9930
|
+
strokeWidth = Math.round(strokeWidth || rect.strokeWidth || 0);
|
|
9931
|
+
const x1 = rect.x || this.x || 0, y1 = rect.y || this.y || 0, x2 = (rect.width || this.width || 0) + x1, y2 = (rect.height || this.height || 0) + y1,
|
|
9932
|
+
// Find all the rounded coordinates for corners
|
|
9933
|
+
x = crisp(x1, strokeWidth), y = crisp(y1, strokeWidth), x2Crisp = crisp(x2, strokeWidth), y2Crisp = crisp(y2, strokeWidth);
|
|
9934
|
+
extend(rect, {
|
|
9935
|
+
x,
|
|
9936
|
+
y,
|
|
9937
|
+
width: x2Crisp - x,
|
|
9938
|
+
height: y2Crisp - y
|
|
9939
|
+
});
|
|
9823
9940
|
if (defined(rect.strokeWidth)) {
|
|
9824
9941
|
rect.strokeWidth = strokeWidth;
|
|
9825
9942
|
}
|
|
@@ -10094,7 +10211,7 @@
|
|
|
10094
10211
|
parentToClean = grandParent;
|
|
10095
10212
|
}
|
|
10096
10213
|
// Remove from alignObjects
|
|
10097
|
-
if (wrapper.
|
|
10214
|
+
if (wrapper.alignOptions) {
|
|
10098
10215
|
erase(renderer.alignedObjects, wrapper);
|
|
10099
10216
|
}
|
|
10100
10217
|
objectEach(wrapper, function (val, key) {
|
|
@@ -10469,6 +10586,20 @@
|
|
|
10469
10586
|
this.opacity = opacity;
|
|
10470
10587
|
element.setAttribute(key, opacity);
|
|
10471
10588
|
}
|
|
10589
|
+
/**
|
|
10590
|
+
* Re-align an aligned text or label after setting the text.
|
|
10591
|
+
*
|
|
10592
|
+
* @private
|
|
10593
|
+
* @function Highcharts.SVGElement#reAlign
|
|
10594
|
+
*
|
|
10595
|
+
*/
|
|
10596
|
+
reAlign() {
|
|
10597
|
+
if (this.alignOptions?.width && this.alignOptions.align !== 'left') {
|
|
10598
|
+
this.alignOptions.width = this.getBBox().width;
|
|
10599
|
+
this.placed = false; // Block animation
|
|
10600
|
+
this.align();
|
|
10601
|
+
}
|
|
10602
|
+
}
|
|
10472
10603
|
/**
|
|
10473
10604
|
* Remove a class name from the element.
|
|
10474
10605
|
*
|
|
@@ -10768,6 +10899,7 @@
|
|
|
10768
10899
|
if (this.added) {
|
|
10769
10900
|
this.renderer.buildText(this);
|
|
10770
10901
|
}
|
|
10902
|
+
this.reAlign();
|
|
10771
10903
|
}
|
|
10772
10904
|
}
|
|
10773
10905
|
/**
|
|
@@ -11360,9 +11492,11 @@
|
|
|
11360
11492
|
return bBox;
|
|
11361
11493
|
}
|
|
11362
11494
|
getCrispAdjust() {
|
|
11363
|
-
return this.renderer.styledMode && this.box ?
|
|
11364
|
-
this.box.strokeWidth()
|
|
11365
|
-
(this['stroke-width'] ?
|
|
11495
|
+
return (this.renderer.styledMode && this.box ?
|
|
11496
|
+
this.box.strokeWidth() :
|
|
11497
|
+
(this['stroke-width'] ?
|
|
11498
|
+
parseInt(this['stroke-width'], 10) :
|
|
11499
|
+
0)) % 2 / 2;
|
|
11366
11500
|
}
|
|
11367
11501
|
heightSetter(value) {
|
|
11368
11502
|
this.heightSetting = value;
|
|
@@ -11420,6 +11554,7 @@
|
|
|
11420
11554
|
this.text.attr({ text });
|
|
11421
11555
|
}
|
|
11422
11556
|
this.updateTextPadding();
|
|
11557
|
+
this.reAlign();
|
|
11423
11558
|
}
|
|
11424
11559
|
/*
|
|
11425
11560
|
* This function runs after the label is added to the DOM (when the bounding
|
|
@@ -11591,11 +11726,15 @@
|
|
|
11591
11726
|
function arc(cx, cy, w, h, options) {
|
|
11592
11727
|
const arc = [];
|
|
11593
11728
|
if (options) {
|
|
11594
|
-
const start = options.start || 0, rx = pick(options.r, w), ry = pick(options.r, h || w),
|
|
11595
|
-
|
|
11596
|
-
//
|
|
11597
|
-
//
|
|
11598
|
-
|
|
11729
|
+
const start = options.start || 0, rx = pick(options.r, w), ry = pick(options.r, h || w),
|
|
11730
|
+
// Subtract a small number to prevent cos and sin of start and end
|
|
11731
|
+
// from becoming equal on 360 arcs (#1561). The size of the circle
|
|
11732
|
+
// affects the constant, therefore the division by `rx`. If the
|
|
11733
|
+
// proximity is too small, the arc disappears. If it is too great, a
|
|
11734
|
+
// gap appears. This can be seen in the animation of the official
|
|
11735
|
+
// bubble demo (#20586).
|
|
11736
|
+
proximity = 0.0002 / Math.max(rx, 1), fullCircle = (Math.abs((options.end || 0) - start - 2 * Math.PI) <
|
|
11737
|
+
proximity), end = (options.end || 0) - proximity, innerRadius = options.innerR, open = pick(options.open, fullCircle), cosStart = Math.cos(start), sinStart = Math.sin(start), cosEnd = Math.cos(end), sinEnd = Math.sin(end),
|
|
11599
11738
|
// Proximity takes care of rounding errors around PI (#6971)
|
|
11600
11739
|
longArc = pick(options.longArc, end - start - Math.PI < proximity ? 0 : 1);
|
|
11601
11740
|
let arcSegment = [
|
|
@@ -12243,7 +12382,7 @@
|
|
|
12243
12382
|
|
|
12244
12383
|
return TextBuilder;
|
|
12245
12384
|
});
|
|
12246
|
-
_registerModule(_modules, 'Core/Renderer/SVG/SVGRenderer.js', [_modules['Core/Renderer/HTML/AST.js'], _modules['Core/Color/Color.js'], _modules['Core/Globals.js'], _modules['Core/Renderer/RendererRegistry.js'], _modules['Core/Renderer/SVG/SVGElement.js'], _modules['Core/Renderer/SVG/SVGLabel.js'], _modules['Core/Renderer/SVG/Symbols.js'], _modules['Core/Renderer/SVG/TextBuilder.js'], _modules['Core/Utilities.js']], function (AST, Color, H, RendererRegistry, SVGElement, SVGLabel, Symbols, TextBuilder, U) {
|
|
12385
|
+
_registerModule(_modules, 'Core/Renderer/SVG/SVGRenderer.js', [_modules['Core/Renderer/HTML/AST.js'], _modules['Core/Defaults.js'], _modules['Core/Color/Color.js'], _modules['Core/Globals.js'], _modules['Core/Renderer/RendererRegistry.js'], _modules['Core/Renderer/SVG/SVGElement.js'], _modules['Core/Renderer/SVG/SVGLabel.js'], _modules['Core/Renderer/SVG/Symbols.js'], _modules['Core/Renderer/SVG/TextBuilder.js'], _modules['Core/Utilities.js']], function (AST, D, Color, H, RendererRegistry, SVGElement, SVGLabel, Symbols, TextBuilder, U) {
|
|
12247
12386
|
/* *
|
|
12248
12387
|
*
|
|
12249
12388
|
* (c) 2010-2024 Torstein Honsi
|
|
@@ -12253,8 +12392,9 @@
|
|
|
12253
12392
|
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
12254
12393
|
*
|
|
12255
12394
|
* */
|
|
12395
|
+
const { defaultOptions } = D;
|
|
12256
12396
|
const { charts, deg2rad, doc, isFirefox, isMS, isWebKit, noop, SVG_NS, symbolSizes, win } = H;
|
|
12257
|
-
const { addEvent, attr, createElement, css, defined, destroyObjectProperties, extend, isArray, isNumber, isObject, isString, merge, pick, pInt, replaceNested, uniqueKey } = U;
|
|
12397
|
+
const { addEvent, attr, createElement, crisp, css, defined, destroyObjectProperties, extend, isArray, isNumber, isObject, isString, merge, pick, pInt, replaceNested, uniqueKey } = U;
|
|
12258
12398
|
/* *
|
|
12259
12399
|
*
|
|
12260
12400
|
* Variables
|
|
@@ -12403,7 +12543,7 @@
|
|
|
12403
12543
|
this.url = this.getReferenceURL();
|
|
12404
12544
|
// Add description
|
|
12405
12545
|
const desc = this.createElement('desc').add();
|
|
12406
|
-
desc.element.appendChild(doc.createTextNode('Created with Highcharts 11.4.
|
|
12546
|
+
desc.element.appendChild(doc.createTextNode('Created with Highcharts 11.4.3'));
|
|
12407
12547
|
this.defs = this.createElement('defs').add();
|
|
12408
12548
|
this.allowHTML = allowHTML;
|
|
12409
12549
|
this.forExport = forExport;
|
|
@@ -12736,7 +12876,9 @@
|
|
|
12736
12876
|
return 1.05 / (l + 0.05) > (l + 0.05) / 0.05 ? '#FFFFFF' : '#000000';
|
|
12737
12877
|
}
|
|
12738
12878
|
/**
|
|
12739
|
-
* Create a button with preset states.
|
|
12879
|
+
* Create a button with preset states. Styles for the button can either be
|
|
12880
|
+
* set as arguments, or a general theme for all buttons can be set by the
|
|
12881
|
+
* `global.buttonTheme` option.
|
|
12740
12882
|
*
|
|
12741
12883
|
* @function Highcharts.SVGRenderer#button
|
|
12742
12884
|
*
|
|
@@ -12774,56 +12916,31 @@
|
|
|
12774
12916
|
* The button element.
|
|
12775
12917
|
*/
|
|
12776
12918
|
button(text, x, y, callback, theme = {}, hoverState, selectState, disabledState, shape, useHTML) {
|
|
12777
|
-
const label = this.label(text, x, y, shape, void 0, void 0, useHTML, void 0, 'button'), styledMode = this.styledMode,
|
|
12919
|
+
const label = this.label(text, x, y, shape, void 0, void 0, useHTML, void 0, 'button'), styledMode = this.styledMode, args = arguments;
|
|
12778
12920
|
let curState = 0;
|
|
12779
|
-
theme = merge(theme);
|
|
12921
|
+
theme = merge(defaultOptions.global.buttonTheme, theme);
|
|
12922
|
+
// @todo Consider moving this to a lower level, like .attr
|
|
12923
|
+
if (styledMode) {
|
|
12924
|
+
delete theme.fill;
|
|
12925
|
+
delete theme.stroke;
|
|
12926
|
+
delete theme['stroke-width'];
|
|
12927
|
+
}
|
|
12928
|
+
const states = theme.states || {}, normalStyle = theme.style || {};
|
|
12780
12929
|
delete theme.states;
|
|
12781
|
-
const normalStyle = merge({
|
|
12782
|
-
color: "#333333" /* Palette.neutralColor80 */,
|
|
12783
|
-
cursor: 'pointer',
|
|
12784
|
-
fontSize: '0.8em',
|
|
12785
|
-
fontWeight: 'normal'
|
|
12786
|
-
}, theme.style);
|
|
12787
12930
|
delete theme.style;
|
|
12788
|
-
//
|
|
12789
|
-
|
|
12790
|
-
|
|
12791
|
-
|
|
12792
|
-
|
|
12793
|
-
//
|
|
12794
|
-
|
|
12795
|
-
let hoverStyle, selectStyle, disabledStyle;
|
|
12931
|
+
// Presentational
|
|
12932
|
+
const stateAttribs = [
|
|
12933
|
+
AST.filterUserAttributes(theme)
|
|
12934
|
+
],
|
|
12935
|
+
// The string type is a mistake, it is just for compliance with
|
|
12936
|
+
// SVGAttribute and is not used in button theme.
|
|
12937
|
+
stateStyles = [normalStyle];
|
|
12796
12938
|
if (!styledMode) {
|
|
12797
|
-
|
|
12798
|
-
|
|
12799
|
-
|
|
12800
|
-
|
|
12801
|
-
|
|
12802
|
-
}, normalState);
|
|
12803
|
-
// Hover state
|
|
12804
|
-
hoverState = merge(normalState, {
|
|
12805
|
-
fill: "#e6e6e6" /* Palette.neutralColor10 */
|
|
12806
|
-
}, AST.filterUserAttributes(hoverState || states.hover || {}));
|
|
12807
|
-
hoverStyle = hoverState.style;
|
|
12808
|
-
delete hoverState.style;
|
|
12809
|
-
// Pressed state
|
|
12810
|
-
selectState = merge(normalState, {
|
|
12811
|
-
fill: "#e6e9ff" /* Palette.highlightColor10 */,
|
|
12812
|
-
style: {
|
|
12813
|
-
color: "#000000" /* Palette.neutralColor100 */,
|
|
12814
|
-
fontWeight: 'bold'
|
|
12815
|
-
}
|
|
12816
|
-
}, AST.filterUserAttributes(selectState || states.select || {}));
|
|
12817
|
-
selectStyle = selectState.style;
|
|
12818
|
-
delete selectState.style;
|
|
12819
|
-
// Disabled state
|
|
12820
|
-
disabledState = merge(normalState, {
|
|
12821
|
-
style: {
|
|
12822
|
-
color: "#cccccc" /* Palette.neutralColor20 */
|
|
12823
|
-
}
|
|
12824
|
-
}, AST.filterUserAttributes(disabledState || states.disabled || {}));
|
|
12825
|
-
disabledStyle = disabledState.style;
|
|
12826
|
-
delete disabledState.style;
|
|
12939
|
+
['hover', 'select', 'disabled'].forEach((stateName, i) => {
|
|
12940
|
+
stateAttribs.push(merge(stateAttribs[0], AST.filterUserAttributes(args[i + 5] || states[stateName] || {})));
|
|
12941
|
+
stateStyles.push(stateAttribs[i + 1].style);
|
|
12942
|
+
delete stateAttribs[i + 1].style;
|
|
12943
|
+
});
|
|
12827
12944
|
}
|
|
12828
12945
|
// Add the events. IE9 and IE10 need mouseover and mouseout to function
|
|
12829
12946
|
// (#667).
|
|
@@ -12837,7 +12954,7 @@
|
|
|
12837
12954
|
label.setState(curState);
|
|
12838
12955
|
}
|
|
12839
12956
|
});
|
|
12840
|
-
label.setState =
|
|
12957
|
+
label.setState = (state = 0) => {
|
|
12841
12958
|
// Hover state is temporary, don't record it
|
|
12842
12959
|
if (state !== 1) {
|
|
12843
12960
|
label.state = curState = state;
|
|
@@ -12846,31 +12963,19 @@
|
|
|
12846
12963
|
label
|
|
12847
12964
|
.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/)
|
|
12848
12965
|
.addClass('highcharts-button-' +
|
|
12849
|
-
['normal', 'hover', 'pressed', 'disabled'][state
|
|
12966
|
+
['normal', 'hover', 'pressed', 'disabled'][state]);
|
|
12850
12967
|
if (!styledMode) {
|
|
12851
|
-
label
|
|
12852
|
-
|
|
12853
|
-
normalState,
|
|
12854
|
-
hoverState,
|
|
12855
|
-
selectState,
|
|
12856
|
-
disabledState
|
|
12857
|
-
][state || 0]);
|
|
12858
|
-
const css = [
|
|
12859
|
-
normalStyle,
|
|
12860
|
-
hoverStyle,
|
|
12861
|
-
selectStyle,
|
|
12862
|
-
disabledStyle
|
|
12863
|
-
][state || 0];
|
|
12968
|
+
label.attr(stateAttribs[state]);
|
|
12969
|
+
const css = stateStyles[state];
|
|
12864
12970
|
if (isObject(css)) {
|
|
12865
12971
|
label.css(css);
|
|
12866
12972
|
}
|
|
12867
12973
|
}
|
|
12868
12974
|
};
|
|
12975
|
+
label.attr(stateAttribs[0]);
|
|
12869
12976
|
// Presentational attributes
|
|
12870
12977
|
if (!styledMode) {
|
|
12871
|
-
label
|
|
12872
|
-
.attr(normalState)
|
|
12873
|
-
.css(extend({ cursor: 'default' }, normalStyle));
|
|
12978
|
+
label.css(extend({ cursor: 'default' }, normalStyle));
|
|
12874
12979
|
// HTML labels don't need to handle pointer events because click and
|
|
12875
12980
|
// mouseenter/mouseleave is bound to the underlying <g> element.
|
|
12876
12981
|
// Should this be reconsidered, we need more complex logic to share
|
|
@@ -12900,26 +13005,17 @@
|
|
|
12900
13005
|
* @param {number} width
|
|
12901
13006
|
* The width of the line.
|
|
12902
13007
|
*
|
|
12903
|
-
* @param {string} [roundingFunction=round]
|
|
12904
|
-
* The rounding function name on the `Math` object, can be one of
|
|
12905
|
-
* `round`, `floor` or `ceil`.
|
|
12906
|
-
*
|
|
12907
13008
|
* @return {Highcharts.SVGPathArray}
|
|
12908
13009
|
* The original points array, but modified to render crisply.
|
|
12909
13010
|
*/
|
|
12910
|
-
crispLine(points, width
|
|
12911
|
-
const start = points
|
|
12912
|
-
const end = points[1];
|
|
13011
|
+
crispLine(points, width) {
|
|
13012
|
+
const [start, end] = points;
|
|
12913
13013
|
// Normalize to a crisp line
|
|
12914
13014
|
if (defined(start[1]) && start[1] === end[1]) {
|
|
12915
|
-
|
|
12916
|
-
// the same.
|
|
12917
|
-
start[1] = end[1] =
|
|
12918
|
-
Math[roundingFunction](start[1]) - (width % 2 / 2);
|
|
13015
|
+
start[1] = end[1] = crisp(start[1], width);
|
|
12919
13016
|
}
|
|
12920
13017
|
if (defined(start[2]) && start[2] === end[2]) {
|
|
12921
|
-
start[2] = end[2] =
|
|
12922
|
-
Math[roundingFunction](start[2]) + (width % 2 / 2);
|
|
13018
|
+
start[2] = end[2] = crisp(start[2], width);
|
|
12923
13019
|
}
|
|
12924
13020
|
return points;
|
|
12925
13021
|
}
|
|
@@ -13318,7 +13414,7 @@
|
|
|
13318
13414
|
if (symbolFn) {
|
|
13319
13415
|
// Check if there's a path defined for this symbol
|
|
13320
13416
|
if (typeof x === 'number') {
|
|
13321
|
-
path = symbolFn.call(this.symbols,
|
|
13417
|
+
path = symbolFn.call(this.symbols, x || 0, y || 0, width || 0, height || 0, options);
|
|
13322
13418
|
}
|
|
13323
13419
|
obj = this.path(path);
|
|
13324
13420
|
if (!ren.styledMode) {
|
|
@@ -15477,11 +15573,12 @@
|
|
|
15477
15573
|
overflow: 'justify',
|
|
15478
15574
|
/**
|
|
15479
15575
|
* The pixel padding for axis labels, to ensure white space between
|
|
15480
|
-
* them.
|
|
15576
|
+
* them. Defaults to 4 for horizontal axes, 1 for vertical.
|
|
15481
15577
|
*
|
|
15578
|
+
* @default undefined
|
|
15482
15579
|
* @product highcharts gantt
|
|
15580
|
+
* @apioption xAxis.labels.padding
|
|
15483
15581
|
*/
|
|
15484
|
-
padding: 5,
|
|
15485
15582
|
/**
|
|
15486
15583
|
* Whether to reserve space for the labels. By default, space is
|
|
15487
15584
|
* reserved for the labels in these cases:
|
|
@@ -17792,7 +17889,7 @@
|
|
|
17792
17889
|
});
|
|
17793
17890
|
if (label.getBBox().width <
|
|
17794
17891
|
axis.getSlotWidth(tick) - 2 *
|
|
17795
|
-
labelOptions.padding) {
|
|
17892
|
+
(labelOptions.padding || 0)) {
|
|
17796
17893
|
return;
|
|
17797
17894
|
}
|
|
17798
17895
|
}
|
|
@@ -17981,7 +18078,7 @@
|
|
|
17981
18078
|
* Extendible method to return the path of the marker
|
|
17982
18079
|
* @private
|
|
17983
18080
|
*/
|
|
17984
|
-
getMarkPath(x, y, tickLength, tickWidth, horiz, renderer) {
|
|
18081
|
+
getMarkPath(x, y, tickLength, tickWidth, horiz = false, renderer) {
|
|
17985
18082
|
return renderer.crispLine([[
|
|
17986
18083
|
'M',
|
|
17987
18084
|
x,
|
|
@@ -18109,9 +18206,7 @@
|
|
|
18109
18206
|
* @param {number} [opacity]
|
|
18110
18207
|
*/
|
|
18111
18208
|
render(index, old, opacity) {
|
|
18112
|
-
const tick = this, axis = tick.axis, horiz = axis.horiz, pos = tick.pos, tickmarkOffset = pick(tick.tickmarkOffset, axis.tickmarkOffset), xy = tick.getPosition(horiz, pos, tickmarkOffset, old), x = xy.x, y = xy.y, axisStart = axis.pos, axisEnd = axisStart + axis.len,
|
|
18113
|
-
(!horiz && y === axisStart)) ? -1 : 1, // #1480, #1687
|
|
18114
|
-
pxPos = horiz ? x : y;
|
|
18209
|
+
const tick = this, axis = tick.axis, horiz = axis.horiz, pos = tick.pos, tickmarkOffset = pick(tick.tickmarkOffset, axis.tickmarkOffset), xy = tick.getPosition(horiz, pos, tickmarkOffset, old), x = xy.x, y = xy.y, axisStart = axis.pos, axisEnd = axisStart + axis.len, pxPos = horiz ? x : y;
|
|
18115
18210
|
// Anything that is not between `axis.pos` and `axis.pos + axis.length`
|
|
18116
18211
|
// should not be visible (#20166). The `correctFloat` is for reversed
|
|
18117
18212
|
// axes in Safari.
|
|
@@ -18125,9 +18220,9 @@
|
|
|
18125
18220
|
opacity = pick(opacity, 1);
|
|
18126
18221
|
this.isActive = true;
|
|
18127
18222
|
// Create the grid line
|
|
18128
|
-
this.renderGridLine(old, opacity
|
|
18223
|
+
this.renderGridLine(old, opacity);
|
|
18129
18224
|
// Create the tick mark
|
|
18130
|
-
this.renderMark(xy, opacity
|
|
18225
|
+
this.renderMark(xy, opacity);
|
|
18131
18226
|
// The label is created on init - now move it into place
|
|
18132
18227
|
this.renderLabel(xy, old, labelOpacity, index);
|
|
18133
18228
|
tick.isNew = false;
|
|
@@ -18140,9 +18235,8 @@
|
|
|
18140
18235
|
* @function Highcharts.Tick#renderGridLine
|
|
18141
18236
|
* @param {boolean} old Whether or not the tick is old
|
|
18142
18237
|
* @param {number} opacity The opacity of the grid line
|
|
18143
|
-
* @param {number} reverseCrisp Modifier for avoiding overlapping 1 or -1
|
|
18144
18238
|
*/
|
|
18145
|
-
renderGridLine(old, opacity
|
|
18239
|
+
renderGridLine(old, opacity) {
|
|
18146
18240
|
const tick = this, axis = tick.axis, options = axis.options, attribs = {}, pos = tick.pos, type = tick.type, tickmarkOffset = pick(tick.tickmarkOffset, axis.tickmarkOffset), renderer = axis.chart.renderer;
|
|
18147
18241
|
let gridLine = tick.gridLine, gridLinePath, gridLineWidth = options.gridLineWidth, gridLineColor = options.gridLineColor, dashStyle = options.gridLineDashStyle;
|
|
18148
18242
|
if (tick.type === 'minor') {
|
|
@@ -18175,7 +18269,7 @@
|
|
|
18175
18269
|
if (gridLine) {
|
|
18176
18270
|
gridLinePath = axis.getPlotLinePath({
|
|
18177
18271
|
value: pos + tickmarkOffset,
|
|
18178
|
-
lineWidth: gridLine.strokeWidth()
|
|
18272
|
+
lineWidth: gridLine.strokeWidth(),
|
|
18179
18273
|
force: 'pass',
|
|
18180
18274
|
old: old,
|
|
18181
18275
|
acrossPanes: false // #18025
|
|
@@ -18197,9 +18291,8 @@
|
|
|
18197
18291
|
* @function Highcharts.Tick#renderMark
|
|
18198
18292
|
* @param {Highcharts.PositionObject} xy The position vector of the mark
|
|
18199
18293
|
* @param {number} opacity The opacity of the mark
|
|
18200
|
-
* @param {number} reverseCrisp Modifier for avoiding overlapping 1 or -1
|
|
18201
18294
|
*/
|
|
18202
|
-
renderMark(xy, opacity
|
|
18295
|
+
renderMark(xy, opacity) {
|
|
18203
18296
|
const tick = this, axis = tick.axis, options = axis.options, renderer = axis.chart.renderer, type = tick.type, tickSize = axis.tickSize(type ? type + 'Tick' : 'tick'), x = xy.x, y = xy.y, tickWidth = pick(options[type !== 'minor' ? 'tickWidth' : 'minorTickWidth'], !type && axis.isXAxis ? 1 : 0), // X axis defaults to 1
|
|
18204
18297
|
tickColor = options[type !== 'minor' ? 'tickColor' : 'minorTickColor'];
|
|
18205
18298
|
let mark = tick.mark;
|
|
@@ -18227,7 +18320,7 @@
|
|
|
18227
18320
|
}
|
|
18228
18321
|
}
|
|
18229
18322
|
mark[isNewMark ? 'attr' : 'animate']({
|
|
18230
|
-
d: tick.getMarkPath(x, y, tickSize[0], mark.strokeWidth()
|
|
18323
|
+
d: tick.getMarkPath(x, y, tickSize[0], mark.strokeWidth(), axis.horiz, renderer),
|
|
18231
18324
|
opacity: opacity
|
|
18232
18325
|
});
|
|
18233
18326
|
}
|
|
@@ -18567,7 +18660,7 @@
|
|
|
18567
18660
|
* @name Highcharts.Axis#len
|
|
18568
18661
|
* @type {number}
|
|
18569
18662
|
*/
|
|
18570
|
-
axis.len = 0;
|
|
18663
|
+
axis.len ?? (axis.len = 0);
|
|
18571
18664
|
axis.minRange = axis.userMinRange = options.minRange || options.maxZoom;
|
|
18572
18665
|
axis.range = options.range;
|
|
18573
18666
|
axis.offset = options.offset || 0;
|
|
@@ -18645,13 +18738,17 @@
|
|
|
18645
18738
|
// Top and bottom axis defaults
|
|
18646
18739
|
{
|
|
18647
18740
|
labels: {
|
|
18648
|
-
autoRotation: [-45]
|
|
18741
|
+
autoRotation: [-45],
|
|
18742
|
+
padding: 4
|
|
18649
18743
|
},
|
|
18650
18744
|
margin: 15
|
|
18651
18745
|
} :
|
|
18652
18746
|
// Left and right axis, title rotated 90 or 270 degrees
|
|
18653
18747
|
// respectively
|
|
18654
18748
|
{
|
|
18749
|
+
labels: {
|
|
18750
|
+
padding: 1
|
|
18751
|
+
},
|
|
18655
18752
|
title: {
|
|
18656
18753
|
rotation: 90 * this.side
|
|
18657
18754
|
}
|
|
@@ -18861,10 +18958,13 @@
|
|
|
18861
18958
|
val = axis.val2lin(val);
|
|
18862
18959
|
}
|
|
18863
18960
|
const value = sign * (val - localMin) * localA;
|
|
18864
|
-
returnValue =
|
|
18961
|
+
returnValue = value +
|
|
18865
18962
|
cvsOffset +
|
|
18866
18963
|
(sign * minPixelPadding) +
|
|
18867
18964
|
(isNumber(pointPlacement) ? localA * pointPlacement : 0);
|
|
18965
|
+
if (!axis.isRadial) {
|
|
18966
|
+
returnValue = correctFloat(returnValue);
|
|
18967
|
+
}
|
|
18868
18968
|
}
|
|
18869
18969
|
return returnValue;
|
|
18870
18970
|
}
|
|
@@ -18952,8 +19052,8 @@
|
|
|
18952
19052
|
// Keep the translated value within sane bounds, and avoid Infinity
|
|
18953
19053
|
// to fail the isNumber test (#7709).
|
|
18954
19054
|
translatedValue = clamp(translatedValue, -1e5, 1e5);
|
|
18955
|
-
x1 = x2 =
|
|
18956
|
-
y1 = y2 =
|
|
19055
|
+
x1 = x2 = translatedValue + transB;
|
|
19056
|
+
y1 = y2 = cHeight - translatedValue - transB;
|
|
18957
19057
|
if (!isNumber(translatedValue)) { // No min or max
|
|
18958
19058
|
skip = true;
|
|
18959
19059
|
force = false; // #7175, don't force it when path is invalid
|
|
@@ -20284,17 +20384,17 @@
|
|
|
20284
20384
|
* @function Highcharts.Axis#unsquish
|
|
20285
20385
|
*/
|
|
20286
20386
|
unsquish() {
|
|
20287
|
-
const labelOptions = this.options.labels, horiz = this.horiz, tickInterval = this.tickInterval, slotSize = this.len / (((this.categories ? 1 : 0) +
|
|
20387
|
+
const labelOptions = this.options.labels, padding = labelOptions.padding || 0, horiz = this.horiz, tickInterval = this.tickInterval, slotSize = this.len / (((this.categories ? 1 : 0) +
|
|
20288
20388
|
this.max -
|
|
20289
20389
|
this.min) /
|
|
20290
20390
|
tickInterval), rotationOption = labelOptions.rotation,
|
|
20291
20391
|
// We don't know the actual rendered line height at this point, but
|
|
20292
|
-
// it defaults to 0.
|
|
20293
|
-
lineHeight = this.labelMetrics().h, range = Math.max(this.max - this.min, 0),
|
|
20392
|
+
// it defaults to 0.8em
|
|
20393
|
+
lineHeight = correctFloat(this.labelMetrics().h * 0.8), range = Math.max(this.max - this.min, 0),
|
|
20294
20394
|
// Return the multiple of tickInterval that is needed to avoid
|
|
20295
20395
|
// collision
|
|
20296
20396
|
getStep = function (spaceNeeded) {
|
|
20297
|
-
let step = spaceNeeded / (slotSize || 1);
|
|
20397
|
+
let step = (spaceNeeded + 2 * padding) / (slotSize || 1);
|
|
20298
20398
|
step = step > 1 ? Math.ceil(step) : 1;
|
|
20299
20399
|
// Guard for very small or negative angles (#9835)
|
|
20300
20400
|
if (step * tickInterval > range &&
|
|
@@ -20390,7 +20490,10 @@
|
|
|
20390
20490
|
* @function Highcharts.Axis#renderUnsquish
|
|
20391
20491
|
*/
|
|
20392
20492
|
renderUnsquish() {
|
|
20393
|
-
const chart = this.chart, renderer = chart.renderer, tickPositions = this.tickPositions, ticks = this.ticks, labelOptions = this.options.labels, labelStyleOptions = labelOptions.style, horiz = this.horiz, slotWidth = this.getSlotWidth(), innerWidth = Math.max(1, Math.round(slotWidth -
|
|
20493
|
+
const chart = this.chart, renderer = chart.renderer, tickPositions = this.tickPositions, ticks = this.ticks, labelOptions = this.options.labels, labelStyleOptions = labelOptions.style, horiz = this.horiz, slotWidth = this.getSlotWidth(), innerWidth = Math.max(1, Math.round(slotWidth - (horiz ?
|
|
20494
|
+
2 * (labelOptions.padding || 0) :
|
|
20495
|
+
labelOptions.distance || 0 // #21172
|
|
20496
|
+
))), attr = {}, labelMetrics = this.labelMetrics(), textOverflowOption = labelStyleOptions.textOverflow;
|
|
20394
20497
|
let commonWidth, commonTextOverflow, maxLabelLength = 0, label, i, pos;
|
|
20395
20498
|
// Set rotation option unless it is "auto", like in gauges
|
|
20396
20499
|
if (!isString(labelOptions.rotation)) {
|
|
@@ -20707,7 +20810,7 @@
|
|
|
20707
20810
|
}
|
|
20708
20811
|
// Due to GridAxis.tickSize, tickSize should be calculated after ticks
|
|
20709
20812
|
// has rendered.
|
|
20710
|
-
if (coll !== 'colorAxis') {
|
|
20813
|
+
if (coll !== 'colorAxis' && clipOffset) {
|
|
20711
20814
|
const tickSize = this.tickSize('tick');
|
|
20712
20815
|
axisOffset[side] = Math.max(axisOffset[side], (axis.axisTitleMargin || 0) + titleOffset +
|
|
20713
20816
|
directionFactor * axis.offset, labelOffsetPadded, // #3027
|
|
@@ -20719,10 +20822,9 @@
|
|
|
20719
20822
|
// the plot area and axis lines
|
|
20720
20823
|
const clip = !axis.axisLine || options.offset ?
|
|
20721
20824
|
0 :
|
|
20722
|
-
// #4308, #4371
|
|
20723
|
-
|
|
20724
|
-
clipOffset[invertedSide] =
|
|
20725
|
-
Math.max(clipOffset[invertedSide], clip);
|
|
20825
|
+
// #4308, #4371
|
|
20826
|
+
axis.axisLine.strokeWidth() / 2;
|
|
20827
|
+
clipOffset[invertedSide] = Math.max(clipOffset[invertedSide], clip);
|
|
20726
20828
|
}
|
|
20727
20829
|
fireEvent(this, 'afterGetOffset');
|
|
20728
20830
|
}
|
|
@@ -21357,6 +21459,7 @@
|
|
|
21357
21459
|
'coll',
|
|
21358
21460
|
'extKey',
|
|
21359
21461
|
'hcEvents',
|
|
21462
|
+
'len',
|
|
21360
21463
|
'names',
|
|
21361
21464
|
'series',
|
|
21362
21465
|
'userMax',
|
|
@@ -22577,6 +22680,16 @@
|
|
|
22577
22680
|
* @type {Highcharts.ColorString}
|
|
22578
22681
|
* @apioption xAxis.plotBands.borderColor
|
|
22579
22682
|
*/
|
|
22683
|
+
/**
|
|
22684
|
+
* Border radius for the plot band. Applies only to gauges. Can be a pixel
|
|
22685
|
+
* value or a percentage, for example `50%`.
|
|
22686
|
+
*
|
|
22687
|
+
* @type {number|string}
|
|
22688
|
+
* @since 11.4.2
|
|
22689
|
+
* @sample {highcharts} highcharts/xaxis/plotbands-gauge-borderradius
|
|
22690
|
+
* Angular gauge with rounded plot bands
|
|
22691
|
+
* @apioption xAxis.plotBands.borderRadius
|
|
22692
|
+
*/
|
|
22580
22693
|
/**
|
|
22581
22694
|
* Border width for the plot band. Also requires `borderColor` to be set.
|
|
22582
22695
|
*
|
|
@@ -23134,7 +23247,7 @@
|
|
|
23134
23247
|
|
|
23135
23248
|
return PlotLineOrBand;
|
|
23136
23249
|
});
|
|
23137
|
-
_registerModule(_modules, 'Core/Tooltip.js', [_modules['Core/Templating.js'], _modules['Core/Globals.js'], _modules['Core/Renderer/RendererUtilities.js'], _modules['Core/Renderer/RendererRegistry.js'], _modules['Core/Utilities.js']], function (F, H, R, RendererRegistry, U) {
|
|
23250
|
+
_registerModule(_modules, 'Core/Tooltip.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Templating.js'], _modules['Core/Globals.js'], _modules['Core/Renderer/RendererUtilities.js'], _modules['Core/Renderer/RendererRegistry.js'], _modules['Core/Utilities.js']], function (A, F, H, R, RendererRegistry, U) {
|
|
23138
23251
|
/* *
|
|
23139
23252
|
*
|
|
23140
23253
|
* (c) 2010-2024 Torstein Honsi
|
|
@@ -23144,6 +23257,7 @@
|
|
|
23144
23257
|
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
23145
23258
|
*
|
|
23146
23259
|
* */
|
|
23260
|
+
const { animObject } = A;
|
|
23147
23261
|
const { format } = F;
|
|
23148
23262
|
const { composed, doc, isSafari } = H;
|
|
23149
23263
|
const { distribute } = R;
|
|
@@ -23183,7 +23297,6 @@
|
|
|
23183
23297
|
this.distance = 0;
|
|
23184
23298
|
this.isHidden = true;
|
|
23185
23299
|
this.isSticky = false;
|
|
23186
|
-
this.now = {};
|
|
23187
23300
|
this.options = {};
|
|
23188
23301
|
this.outside = false;
|
|
23189
23302
|
this.chart = chart;
|
|
@@ -23277,7 +23390,6 @@
|
|
|
23277
23390
|
discardElement(this.container);
|
|
23278
23391
|
}
|
|
23279
23392
|
U.clearTimeout(this.hideTimer);
|
|
23280
|
-
U.clearTimeout(this.tooltipTimeout);
|
|
23281
23393
|
}
|
|
23282
23394
|
/**
|
|
23283
23395
|
* Extendable method to get the anchor position of the tooltip
|
|
@@ -23438,19 +23550,15 @@
|
|
|
23438
23550
|
// container.
|
|
23439
23551
|
if (tooltip.outside) {
|
|
23440
23552
|
const label = this.label;
|
|
23441
|
-
|
|
23442
|
-
|
|
23443
|
-
|
|
23444
|
-
|
|
23445
|
-
container
|
|
23446
|
-
|
|
23447
|
-
|
|
23448
|
-
|
|
23449
|
-
|
|
23450
|
-
if (container) {
|
|
23451
|
-
container.style.top = value + 'px';
|
|
23452
|
-
}
|
|
23453
|
-
};
|
|
23553
|
+
[label.xSetter, label.ySetter].forEach((setter, i) => {
|
|
23554
|
+
label[i ? 'ySetter' : 'xSetter'] = (value) => {
|
|
23555
|
+
setter.call(label, tooltip.distance);
|
|
23556
|
+
label[i ? 'y' : 'x'] = value;
|
|
23557
|
+
if (container) {
|
|
23558
|
+
container.style[i ? 'top' : 'left'] = `${value}px`;
|
|
23559
|
+
}
|
|
23560
|
+
};
|
|
23561
|
+
});
|
|
23454
23562
|
}
|
|
23455
23563
|
this.label
|
|
23456
23564
|
.attr({ zIndex: 8 })
|
|
@@ -23701,15 +23809,6 @@
|
|
|
23701
23809
|
* @type {Array<null>}
|
|
23702
23810
|
*/
|
|
23703
23811
|
this.crosshairs = [];
|
|
23704
|
-
/**
|
|
23705
|
-
* Current values of x and y when animating.
|
|
23706
|
-
*
|
|
23707
|
-
* @private
|
|
23708
|
-
* @readonly
|
|
23709
|
-
* @name Highcharts.Tooltip#now
|
|
23710
|
-
* @type {Highcharts.PositionObject}
|
|
23711
|
-
*/
|
|
23712
|
-
this.now = { x: 0, y: 0 };
|
|
23713
23812
|
/**
|
|
23714
23813
|
* Tooltips are initially hidden.
|
|
23715
23814
|
*
|
|
@@ -23773,38 +23872,13 @@
|
|
|
23773
23872
|
* @param {number} anchorY
|
|
23774
23873
|
*/
|
|
23775
23874
|
move(x, y, anchorX, anchorY) {
|
|
23776
|
-
const tooltip = this,
|
|
23777
|
-
|
|
23778
|
-
|
|
23779
|
-
|
|
23780
|
-
(Math.abs(x - now.x) > 1 || Math.abs(y - now.y) > 1), skipAnchor = tooltip.followPointer || tooltip.len > 1;
|
|
23781
|
-
// Get intermediate values for animation
|
|
23782
|
-
extend(now, {
|
|
23783
|
-
x: animate ? (2 * now.x + x) / 3 : x,
|
|
23784
|
-
y: animate ? (now.y + y) / 2 : y,
|
|
23785
|
-
anchorX: skipAnchor ?
|
|
23786
|
-
void 0 :
|
|
23787
|
-
animate ? (2 * now.anchorX + anchorX) / 3 : anchorX,
|
|
23788
|
-
anchorY: skipAnchor ?
|
|
23789
|
-
void 0 :
|
|
23790
|
-
animate ? (now.anchorY + anchorY) / 2 : anchorY
|
|
23791
|
-
});
|
|
23792
|
-
// Move to the intermediate value
|
|
23793
|
-
tooltip.getLabel().attr(now);
|
|
23794
|
-
tooltip.drawTracker();
|
|
23795
|
-
// Run on next tick of the mouse tracker
|
|
23796
|
-
if (animate) {
|
|
23797
|
-
// Never allow two timeouts
|
|
23798
|
-
U.clearTimeout(this.tooltipTimeout);
|
|
23799
|
-
// Set the fixed interval ticking for the smooth tooltip
|
|
23800
|
-
this.tooltipTimeout = setTimeout(function () {
|
|
23801
|
-
// The interval function may still be running during destroy,
|
|
23802
|
-
// so check that the chart is really there before calling.
|
|
23803
|
-
if (tooltip) {
|
|
23804
|
-
tooltip.move(x, y, anchorX, anchorY);
|
|
23805
|
-
}
|
|
23806
|
-
}, 32);
|
|
23875
|
+
const tooltip = this, animation = animObject(!tooltip.isHidden && tooltip.options.animation), skipAnchor = tooltip.followPointer || (tooltip.len || 0) > 1, attr = { x, y };
|
|
23876
|
+
if (!skipAnchor) {
|
|
23877
|
+
attr.anchorX = anchorX;
|
|
23878
|
+
attr.anchorY = anchorY;
|
|
23807
23879
|
}
|
|
23880
|
+
animation.step = () => tooltip.drawTracker();
|
|
23881
|
+
tooltip.getLabel().animate(attr, animation);
|
|
23808
23882
|
}
|
|
23809
23883
|
/**
|
|
23810
23884
|
* Refresh the tooltip's text and position.
|
|
@@ -24527,7 +24601,7 @@
|
|
|
24527
24601
|
const { animObject } = A;
|
|
24528
24602
|
const { defaultOptions } = D;
|
|
24529
24603
|
const { format } = F;
|
|
24530
|
-
const { addEvent, erase, extend, fireEvent, getNestedProperty, isArray, isFunction, isNumber, isObject, merge, pick, syncTimeout, removeEvent, uniqueKey } = U;
|
|
24604
|
+
const { addEvent, crisp, erase, extend, fireEvent, getNestedProperty, isArray, isFunction, isNumber, isObject, merge, pick, syncTimeout, removeEvent, uniqueKey } = U;
|
|
24531
24605
|
/* eslint-disable no-invalid-this, valid-jsdoc */
|
|
24532
24606
|
/* *
|
|
24533
24607
|
*
|
|
@@ -25635,7 +25709,8 @@
|
|
|
25635
25709
|
}, AST.filterUserAttributes(haloOptions.attributes || {})));
|
|
25636
25710
|
}
|
|
25637
25711
|
}
|
|
25638
|
-
else if (halo
|
|
25712
|
+
else if (halo?.point?.haloPath &&
|
|
25713
|
+
!halo.point.destroyed) {
|
|
25639
25714
|
// Animate back to 0 on the current halo point (#6055)
|
|
25640
25715
|
halo.animate({ d: halo.point.haloPath(0) }, null,
|
|
25641
25716
|
// Hide after unhovering. The `complete` callback runs in the
|
|
@@ -25658,7 +25733,7 @@
|
|
|
25658
25733
|
*/
|
|
25659
25734
|
haloPath(size) {
|
|
25660
25735
|
const pos = this.pos();
|
|
25661
|
-
return pos ? this.series.chart.renderer.symbols.circle(
|
|
25736
|
+
return pos ? this.series.chart.renderer.symbols.circle(crisp(pos[0], 1) - size, pos[1] - size, size * 2, size * 2) : [];
|
|
25662
25737
|
}
|
|
25663
25738
|
}
|
|
25664
25739
|
/* *
|
|
@@ -30357,6 +30432,21 @@
|
|
|
30357
30432
|
* @type {Highcharts.AlignValue|null}
|
|
30358
30433
|
*/
|
|
30359
30434
|
align: 'center',
|
|
30435
|
+
/**
|
|
30436
|
+
* Alignment method for data labels. If set to `plotEdges`, the labels
|
|
30437
|
+
* are aligned within the plot area in the direction of the y-axis. So
|
|
30438
|
+
* in a regular column chart, the labels are aligned vertically
|
|
30439
|
+
* according to the `verticalAlign` setting. In a bar chart, which is
|
|
30440
|
+
* inverted, the labels are aligned horizontally according to the
|
|
30441
|
+
* `align` setting. Applies to cartesian series only.
|
|
30442
|
+
*
|
|
30443
|
+
* @sample {highcharts} highcharts/series-bar/datalabels-alignto/
|
|
30444
|
+
* Align to plot edges
|
|
30445
|
+
*
|
|
30446
|
+
* @type {string}
|
|
30447
|
+
* @since 11.4.2
|
|
30448
|
+
* @apioption plotOptions.series.dataLabels.alignTo
|
|
30449
|
+
*/
|
|
30360
30450
|
/**
|
|
30361
30451
|
* Whether to allow data labels to overlap. To make the labels less
|
|
30362
30452
|
* sensitive for overlapping, the
|
|
@@ -31414,7 +31504,7 @@
|
|
|
31414
31504
|
const { registerEventOptions } = F;
|
|
31415
31505
|
const { svg, win } = H;
|
|
31416
31506
|
const { seriesTypes } = SeriesRegistry;
|
|
31417
|
-
const { arrayMax, arrayMin, clamp, correctFloat, defined, destroyObjectProperties, diffObjects, erase, error, extend, find, fireEvent, getClosestDistance, getNestedProperty, insertItem, isArray, isNumber, isString, merge, objectEach, pick, removeEvent, splat, syncTimeout } = U;
|
|
31507
|
+
const { arrayMax, arrayMin, clamp, correctFloat, crisp, defined, destroyObjectProperties, diffObjects, erase, error, extend, find, fireEvent, getClosestDistance, getNestedProperty, insertItem, isArray, isNumber, isString, merge, objectEach, pick, removeEvent, splat, syncTimeout } = U;
|
|
31418
31508
|
/* *
|
|
31419
31509
|
*
|
|
31420
31510
|
* Class
|
|
@@ -32378,10 +32468,7 @@
|
|
|
32378
32468
|
* Force getting extremes of a total series data range.
|
|
32379
32469
|
*/
|
|
32380
32470
|
getProcessedData(forceExtremesFromAll) {
|
|
32381
|
-
const series = this, xAxis = series.xAxis, options = series.options, cropThreshold = options.cropThreshold,
|
|
32382
|
-
series.getExtremesFromAll ||
|
|
32383
|
-
options.getExtremesFromAll, // #4599
|
|
32384
|
-
logarithmic = xAxis?.logarithmic, isCartesian = series.isCartesian;
|
|
32471
|
+
const series = this, xAxis = series.xAxis, options = series.options, cropThreshold = options.cropThreshold, logarithmic = xAxis?.logarithmic, isCartesian = series.isCartesian;
|
|
32385
32472
|
let croppedData, cropped, cropStart = 0, xExtremes, min, max,
|
|
32386
32473
|
// Copied during slice operation:
|
|
32387
32474
|
processedXData = series.xData, processedYData = series.yData, updatingNames = false;
|
|
@@ -32396,7 +32483,7 @@
|
|
|
32396
32483
|
// Optionally filter out points outside the plot area
|
|
32397
32484
|
if (isCartesian &&
|
|
32398
32485
|
series.sorted &&
|
|
32399
|
-
!
|
|
32486
|
+
!forceExtremesFromAll &&
|
|
32400
32487
|
(!cropThreshold ||
|
|
32401
32488
|
dataLength > cropThreshold ||
|
|
32402
32489
|
series.forceCrop)) {
|
|
@@ -32637,16 +32724,24 @@
|
|
|
32637
32724
|
* Force getting extremes of a total series data range.
|
|
32638
32725
|
*/
|
|
32639
32726
|
getExtremes(yData, forceExtremesFromAll) {
|
|
32640
|
-
const xAxis = this.xAxis, yAxis = this.yAxis,
|
|
32727
|
+
const xAxis = this.xAxis, yAxis = this.yAxis, activeYData = [],
|
|
32641
32728
|
// Handle X outside the viewed area. This does not work with
|
|
32642
32729
|
// non-sorted data like scatter (#7639).
|
|
32643
32730
|
shoulder = this.requireSorting && !this.is('column') ?
|
|
32644
32731
|
1 : 0,
|
|
32645
32732
|
// #2117, need to compensate for log X axis
|
|
32646
|
-
positiveValuesOnly = yAxis ? yAxis.positiveValuesOnly : false
|
|
32647
|
-
|
|
32648
|
-
|
|
32649
|
-
|
|
32733
|
+
positiveValuesOnly = yAxis ? yAxis.positiveValuesOnly : false, getExtremesFromAll = forceExtremesFromAll ||
|
|
32734
|
+
this.getExtremesFromAll ||
|
|
32735
|
+
this.options.getExtremesFromAll; // #4599
|
|
32736
|
+
let { processedXData, processedYData } = this, xExtremes, validValue, withinRange, x, y, i, j, xMin = 0, xMax = 0, activeCounter = 0;
|
|
32737
|
+
// Get the processed data from the full range (#21003)
|
|
32738
|
+
if (this.cropped && getExtremesFromAll) {
|
|
32739
|
+
const processedData = this.getProcessedData(true);
|
|
32740
|
+
processedXData = processedData.xData;
|
|
32741
|
+
processedYData = processedData.yData;
|
|
32742
|
+
}
|
|
32743
|
+
yData = yData || this.stackedYData || processedYData || [];
|
|
32744
|
+
const yDataLength = yData.length, xData = processedXData || this.xData;
|
|
32650
32745
|
if (xAxis) {
|
|
32651
32746
|
xExtremes = xAxis.getExtremes();
|
|
32652
32747
|
xMin = xExtremes.min;
|
|
@@ -33216,12 +33311,16 @@
|
|
|
33216
33311
|
}
|
|
33217
33312
|
const pos = point.pos();
|
|
33218
33313
|
if (isNumber(radius) && pos) {
|
|
33219
|
-
attribs.x = pos[0] - radius;
|
|
33220
|
-
attribs.y = pos[1] - radius;
|
|
33221
33314
|
if (seriesOptions.crisp) {
|
|
33222
|
-
|
|
33223
|
-
|
|
33315
|
+
pos[0] = crisp(pos[0], point.hasImage ?
|
|
33316
|
+
0 :
|
|
33317
|
+
symbol === 'rect' ?
|
|
33318
|
+
// Rectangle symbols need crisp edges, others don't
|
|
33319
|
+
seriesMarkerOptions?.lineWidth || 0 :
|
|
33320
|
+
1);
|
|
33224
33321
|
}
|
|
33322
|
+
attribs.x = pos[0] - radius;
|
|
33323
|
+
attribs.y = pos[1] - radius;
|
|
33225
33324
|
}
|
|
33226
33325
|
if (radius) {
|
|
33227
33326
|
attribs.width = attribs.height = 2 * radius;
|
|
@@ -36393,7 +36492,7 @@
|
|
|
36393
36492
|
* @emits Highcharts.Chart#event:afterSetChartSize
|
|
36394
36493
|
*/
|
|
36395
36494
|
setChartSize(skipAxes) {
|
|
36396
|
-
const chart = this,
|
|
36495
|
+
const chart = this, { chartHeight, chartWidth, inverted, spacing, renderer } = chart, clipOffset = chart.clipOffset, clipRoundFunc = Math[inverted ? 'floor' : 'round'];
|
|
36397
36496
|
let plotLeft, plotTop, plotWidth, plotHeight;
|
|
36398
36497
|
/**
|
|
36399
36498
|
* The current left position of the plot area in pixels.
|
|
@@ -36425,7 +36524,6 @@
|
|
|
36425
36524
|
chart.plotHeight = plotHeight = Math.max(0, Math.round(chartHeight - plotTop - chart.marginBottom));
|
|
36426
36525
|
chart.plotSizeX = inverted ? plotHeight : plotWidth;
|
|
36427
36526
|
chart.plotSizeY = inverted ? plotWidth : plotHeight;
|
|
36428
|
-
chart.plotBorderWidth = optionsChart.plotBorderWidth || 0;
|
|
36429
36527
|
// Set boxes used for alignment
|
|
36430
36528
|
chart.spacingBox = renderer.spacingBox = {
|
|
36431
36529
|
x: spacing[3],
|
|
@@ -36439,17 +36537,15 @@
|
|
|
36439
36537
|
width: plotWidth,
|
|
36440
36538
|
height: plotHeight
|
|
36441
36539
|
};
|
|
36442
|
-
|
|
36443
|
-
|
|
36444
|
-
|
|
36445
|
-
|
|
36446
|
-
|
|
36447
|
-
|
|
36448
|
-
|
|
36449
|
-
|
|
36450
|
-
|
|
36451
|
-
clipY))
|
|
36452
|
-
};
|
|
36540
|
+
// Compute the clipping box
|
|
36541
|
+
if (clipOffset) {
|
|
36542
|
+
chart.clipBox = {
|
|
36543
|
+
x: clipRoundFunc(clipOffset[3]),
|
|
36544
|
+
y: clipRoundFunc(clipOffset[0]),
|
|
36545
|
+
width: clipRoundFunc(chart.plotSizeX - clipOffset[1] - clipOffset[3]),
|
|
36546
|
+
height: clipRoundFunc(chart.plotSizeY - clipOffset[0] - clipOffset[2])
|
|
36547
|
+
};
|
|
36548
|
+
}
|
|
36453
36549
|
if (!skipAxes) {
|
|
36454
36550
|
chart.axes.forEach(function (axis) {
|
|
36455
36551
|
axis.setAxisSize();
|
|
@@ -36467,7 +36563,7 @@
|
|
|
36467
36563
|
*/
|
|
36468
36564
|
resetMargins() {
|
|
36469
36565
|
fireEvent(this, 'resetMargins');
|
|
36470
|
-
const chart = this, chartOptions = chart.options.chart;
|
|
36566
|
+
const chart = this, chartOptions = chart.options.chart, plotBorderWidth = chartOptions.plotBorderWidth || 0, halfWidth = plotBorderWidth / 2;
|
|
36471
36567
|
// Create margin and spacing array
|
|
36472
36568
|
['margin', 'spacing'].forEach(function splashArrays(target) {
|
|
36473
36569
|
const value = chartOptions[target], values = isObject(value) ? value : [value, value, value, value];
|
|
@@ -36486,7 +36582,13 @@
|
|
|
36486
36582
|
chart[m] = pick(chart.margin[side], chart.spacing[side]);
|
|
36487
36583
|
});
|
|
36488
36584
|
chart.axisOffset = [0, 0, 0, 0]; // Top, right, bottom, left
|
|
36489
|
-
chart.clipOffset = [
|
|
36585
|
+
chart.clipOffset = [
|
|
36586
|
+
halfWidth,
|
|
36587
|
+
halfWidth,
|
|
36588
|
+
halfWidth,
|
|
36589
|
+
halfWidth
|
|
36590
|
+
];
|
|
36591
|
+
chart.plotBorderWidth = plotBorderWidth;
|
|
36490
36592
|
}
|
|
36491
36593
|
/**
|
|
36492
36594
|
* Internal function to draw or redraw the borders and backgrounds for chart
|
|
@@ -36729,7 +36831,8 @@
|
|
|
36729
36831
|
chart.setChartSize();
|
|
36730
36832
|
for (const axis of axes) {
|
|
36731
36833
|
const { options } = axis, { labels } = options;
|
|
36732
|
-
if (
|
|
36834
|
+
if (chart.hasCartesianSeries && // #20948
|
|
36835
|
+
axis.horiz &&
|
|
36733
36836
|
axis.visible &&
|
|
36734
36837
|
labels.enabled &&
|
|
36735
36838
|
axis.series.length &&
|
|
@@ -37651,7 +37754,7 @@
|
|
|
37651
37754
|
// Remove active points for shared tooltip
|
|
37652
37755
|
this.hoverPoints?.forEach((point) => point.setState());
|
|
37653
37756
|
for (const axis of axes) {
|
|
37654
|
-
const { horiz, len, minPointOffset = 0, options, reversed } = axis, wh = horiz ? 'width' : 'height', xy = horiz ? 'x' : 'y', toLength = to[wh]
|
|
37757
|
+
const { horiz, len, minPointOffset = 0, options, reversed } = axis, wh = horiz ? 'width' : 'height', xy = horiz ? 'x' : 'y', toLength = pick(to[wh], axis.len), fromLength = pick(from[wh], axis.len),
|
|
37655
37758
|
// If fingers pinched very close on this axis, treat as pan
|
|
37656
37759
|
scale = Math.abs(toLength) < 10 ?
|
|
37657
37760
|
1 :
|
|
@@ -38217,23 +38320,7 @@
|
|
|
38217
38320
|
* @private
|
|
38218
38321
|
*/
|
|
38219
38322
|
moveFixedElements() {
|
|
38220
|
-
const { container, inverted, scrollablePixelsX, scrollablePixelsY } = this.chart, fixedRenderer = this.fixedRenderer, fixedSelectors =
|
|
38221
|
-
'.highcharts-breadcrumbs-group',
|
|
38222
|
-
'.highcharts-contextbutton',
|
|
38223
|
-
'.highcharts-caption',
|
|
38224
|
-
'.highcharts-credits',
|
|
38225
|
-
'.highcharts-legend',
|
|
38226
|
-
'.highcharts-legend-checkbox',
|
|
38227
|
-
'.highcharts-navigator-series',
|
|
38228
|
-
'.highcharts-navigator-xaxis',
|
|
38229
|
-
'.highcharts-navigator-yaxis',
|
|
38230
|
-
'.highcharts-navigator',
|
|
38231
|
-
'.highcharts-reset-zoom',
|
|
38232
|
-
'.highcharts-drillup-button',
|
|
38233
|
-
'.highcharts-scrollbar',
|
|
38234
|
-
'.highcharts-subtitle',
|
|
38235
|
-
'.highcharts-title'
|
|
38236
|
-
];
|
|
38323
|
+
const { container, inverted, scrollablePixelsX, scrollablePixelsY } = this.chart, fixedRenderer = this.fixedRenderer, fixedSelectors = ScrollablePlotArea.fixedSelectors;
|
|
38237
38324
|
let axisClass;
|
|
38238
38325
|
if (scrollablePixelsX && !inverted) {
|
|
38239
38326
|
axisClass = '.highcharts-yaxis';
|
|
@@ -38260,6 +38347,24 @@
|
|
|
38260
38347
|
}
|
|
38261
38348
|
}
|
|
38262
38349
|
}
|
|
38350
|
+
ScrollablePlotArea.fixedSelectors = [
|
|
38351
|
+
'.highcharts-breadcrumbs-group',
|
|
38352
|
+
'.highcharts-contextbutton',
|
|
38353
|
+
'.highcharts-caption',
|
|
38354
|
+
'.highcharts-credits',
|
|
38355
|
+
'.highcharts-drillup-button',
|
|
38356
|
+
'.highcharts-legend',
|
|
38357
|
+
'.highcharts-legend-checkbox',
|
|
38358
|
+
'.highcharts-navigator-series',
|
|
38359
|
+
'.highcharts-navigator-xaxis',
|
|
38360
|
+
'.highcharts-navigator-yaxis',
|
|
38361
|
+
'.highcharts-navigator',
|
|
38362
|
+
'.highcharts-range-selector-group',
|
|
38363
|
+
'.highcharts-reset-zoom',
|
|
38364
|
+
'.highcharts-scrollbar',
|
|
38365
|
+
'.highcharts-subtitle',
|
|
38366
|
+
'.highcharts-title'
|
|
38367
|
+
];
|
|
38263
38368
|
/* *
|
|
38264
38369
|
*
|
|
38265
38370
|
* Default Export
|
|
@@ -39553,7 +39658,248 @@
|
|
|
39553
39658
|
|
|
39554
39659
|
return LineSeries;
|
|
39555
39660
|
});
|
|
39556
|
-
_registerModule(_modules, 'Series/Area/
|
|
39661
|
+
_registerModule(_modules, 'Series/Area/AreaSeriesDefaults.js', [], function () {
|
|
39662
|
+
/* *
|
|
39663
|
+
*
|
|
39664
|
+
* (c) 2010-2024 Torstein Honsi
|
|
39665
|
+
*
|
|
39666
|
+
* License: www.highcharts.com/license
|
|
39667
|
+
*
|
|
39668
|
+
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
39669
|
+
*
|
|
39670
|
+
* */
|
|
39671
|
+
/* *
|
|
39672
|
+
*
|
|
39673
|
+
* API Options
|
|
39674
|
+
*
|
|
39675
|
+
* */
|
|
39676
|
+
/**
|
|
39677
|
+
* The area series type.
|
|
39678
|
+
*
|
|
39679
|
+
* @sample {highcharts} highcharts/demo/area-basic/
|
|
39680
|
+
* Area chart
|
|
39681
|
+
* @sample {highstock} stock/demo/area/
|
|
39682
|
+
* Area chart
|
|
39683
|
+
*
|
|
39684
|
+
* @extends plotOptions.line
|
|
39685
|
+
* @excluding useOhlcData
|
|
39686
|
+
* @product highcharts highstock
|
|
39687
|
+
* @optionparent plotOptions.area
|
|
39688
|
+
*/
|
|
39689
|
+
const AreaSeriesDefaults = {
|
|
39690
|
+
/**
|
|
39691
|
+
* @see [fillColor](#plotOptions.area.fillColor)
|
|
39692
|
+
* @see [fillOpacity](#plotOptions.area.fillOpacity)
|
|
39693
|
+
*
|
|
39694
|
+
* @apioption plotOptions.area.color
|
|
39695
|
+
*/
|
|
39696
|
+
/**
|
|
39697
|
+
* Fill color or gradient for the area. When `undefined`, the series'
|
|
39698
|
+
* `color` is used with the series' `fillOpacity`.
|
|
39699
|
+
*
|
|
39700
|
+
* In styled mode, the fill color can be set with the `.highcharts-area`
|
|
39701
|
+
* class name.
|
|
39702
|
+
*
|
|
39703
|
+
* @see [color](#plotOptions.area.color)
|
|
39704
|
+
* @see [fillOpacity](#plotOptions.area.fillOpacity)
|
|
39705
|
+
*
|
|
39706
|
+
* @sample {highcharts} highcharts/plotoptions/area-fillcolor-default/
|
|
39707
|
+
* Undefined by default
|
|
39708
|
+
* @sample {highcharts} highcharts/plotoptions/area-fillcolor-gradient/
|
|
39709
|
+
* Gradient
|
|
39710
|
+
*
|
|
39711
|
+
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
39712
|
+
* @product highcharts highstock
|
|
39713
|
+
* @apioption plotOptions.area.fillColor
|
|
39714
|
+
*/
|
|
39715
|
+
/**
|
|
39716
|
+
* Fill opacity for the area. When you set an explicit `fillColor`,
|
|
39717
|
+
* the `fillOpacity` is not applied. Instead, you should define the
|
|
39718
|
+
* opacity in the `fillColor` with an rgba color definition. The
|
|
39719
|
+
* `fillOpacity` setting, also the default setting, overrides the alpha
|
|
39720
|
+
* component of the `color` setting.
|
|
39721
|
+
*
|
|
39722
|
+
* In styled mode, the fill opacity can be set with the
|
|
39723
|
+
* `.highcharts-area` class name.
|
|
39724
|
+
*
|
|
39725
|
+
* @see [color](#plotOptions.area.color)
|
|
39726
|
+
* @see [fillColor](#plotOptions.area.fillColor)
|
|
39727
|
+
*
|
|
39728
|
+
* @sample {highcharts} highcharts/plotoptions/area-fillopacity/
|
|
39729
|
+
* Automatic fill color and fill opacity of 0.1
|
|
39730
|
+
*
|
|
39731
|
+
* @type {number}
|
|
39732
|
+
* @default {highcharts} 0.75
|
|
39733
|
+
* @default {highstock} 0.75
|
|
39734
|
+
* @product highcharts highstock
|
|
39735
|
+
* @apioption plotOptions.area.fillOpacity
|
|
39736
|
+
*/
|
|
39737
|
+
/**
|
|
39738
|
+
* A separate color for the graph line. By default the line takes the
|
|
39739
|
+
* `color` of the series, but the lineColor setting allows setting a
|
|
39740
|
+
* separate color for the line without altering the `fillColor`.
|
|
39741
|
+
*
|
|
39742
|
+
* In styled mode, the line stroke can be set with the
|
|
39743
|
+
* `.highcharts-graph` class name.
|
|
39744
|
+
*
|
|
39745
|
+
* @sample {highcharts} highcharts/plotoptions/area-linecolor/
|
|
39746
|
+
* Dark gray line
|
|
39747
|
+
*
|
|
39748
|
+
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
39749
|
+
* @product highcharts highstock
|
|
39750
|
+
* @apioption plotOptions.area.lineColor
|
|
39751
|
+
*/
|
|
39752
|
+
/**
|
|
39753
|
+
* A separate color for the negative part of the area. Note that `zones`
|
|
39754
|
+
* takes precedence over the negative fill color.
|
|
39755
|
+
*
|
|
39756
|
+
* In styled mode, a negative color is set with the
|
|
39757
|
+
* `.highcharts-negative` class name.
|
|
39758
|
+
*
|
|
39759
|
+
* @see [negativeColor](#plotOptions.area.negativeColor)
|
|
39760
|
+
*
|
|
39761
|
+
* @sample {highcharts} highcharts/css/series-negative-color/
|
|
39762
|
+
* Negative color in styled mode
|
|
39763
|
+
*
|
|
39764
|
+
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
39765
|
+
* @since 3.0
|
|
39766
|
+
* @product highcharts
|
|
39767
|
+
* @apioption plotOptions.area.negativeFillColor
|
|
39768
|
+
*/
|
|
39769
|
+
/**
|
|
39770
|
+
* Whether the whole area or just the line should respond to mouseover
|
|
39771
|
+
* tooltips and other mouse or touch events.
|
|
39772
|
+
*
|
|
39773
|
+
* @sample {highcharts|highstock} highcharts/plotoptions/area-trackbyarea/
|
|
39774
|
+
* Display the tooltip when the area is hovered
|
|
39775
|
+
*
|
|
39776
|
+
* @type {boolean}
|
|
39777
|
+
* @default false
|
|
39778
|
+
* @since 1.1.6
|
|
39779
|
+
* @product highcharts highstock
|
|
39780
|
+
* @apioption plotOptions.area.trackByArea
|
|
39781
|
+
*/
|
|
39782
|
+
/**
|
|
39783
|
+
* The Y axis value to serve as the base for the area, for
|
|
39784
|
+
* distinguishing between values above and below a threshold. The area
|
|
39785
|
+
* between the graph and the threshold is filled.
|
|
39786
|
+
*
|
|
39787
|
+
* * If a number is given, the Y axis will scale to the threshold.
|
|
39788
|
+
* * If `null`, the scaling behaves like a line series with fill between
|
|
39789
|
+
* the graph and the Y axis minimum.
|
|
39790
|
+
* * If `Infinity` or `-Infinity`, the area between the graph and the
|
|
39791
|
+
* corresponding Y axis extreme is filled (since v6.1.0).
|
|
39792
|
+
*
|
|
39793
|
+
* @sample {highcharts} highcharts/plotoptions/area-threshold/
|
|
39794
|
+
* A threshold of 100
|
|
39795
|
+
* @sample {highcharts} highcharts/plotoptions/area-threshold-infinity/
|
|
39796
|
+
* A threshold of Infinity
|
|
39797
|
+
*
|
|
39798
|
+
* @type {number|null}
|
|
39799
|
+
* @since 2.0
|
|
39800
|
+
* @product highcharts highstock
|
|
39801
|
+
*/
|
|
39802
|
+
threshold: 0,
|
|
39803
|
+
legendSymbol: 'areaMarker'
|
|
39804
|
+
};
|
|
39805
|
+
/**
|
|
39806
|
+
* A `area` series. If the [type](#series.area.type) option is not
|
|
39807
|
+
* specified, it is inherited from [chart.type](#chart.type).
|
|
39808
|
+
*
|
|
39809
|
+
* @extends series,plotOptions.area
|
|
39810
|
+
* @excluding dataParser, dataURL, useOhlcData
|
|
39811
|
+
* @product highcharts highstock
|
|
39812
|
+
* @apioption series.area
|
|
39813
|
+
*/
|
|
39814
|
+
/**
|
|
39815
|
+
* @see [fillColor](#series.area.fillColor)
|
|
39816
|
+
* @see [fillOpacity](#series.area.fillOpacity)
|
|
39817
|
+
*
|
|
39818
|
+
* @apioption series.area.color
|
|
39819
|
+
*/
|
|
39820
|
+
/**
|
|
39821
|
+
* An array of data points for the series. For the `area` series type,
|
|
39822
|
+
* points can be given in the following ways:
|
|
39823
|
+
*
|
|
39824
|
+
* 1. An array of numerical values. In this case, the numerical values will be
|
|
39825
|
+
* interpreted as `y` options. The `x` values will be automatically
|
|
39826
|
+
* calculated, either starting at 0 and incremented by 1, or from
|
|
39827
|
+
* `pointStart` * and `pointInterval` given in the series options. If the
|
|
39828
|
+
* axis has categories, these will be used. Example:
|
|
39829
|
+
* ```js
|
|
39830
|
+
* data: [0, 5, 3, 5]
|
|
39831
|
+
* ```
|
|
39832
|
+
*
|
|
39833
|
+
* 2. An array of arrays with 2 values. In this case, the values correspond to
|
|
39834
|
+
* `x,y`. If the first value is a string, it is applied as the name of the
|
|
39835
|
+
* point, and the `x` value is inferred.
|
|
39836
|
+
* ```js
|
|
39837
|
+
* data: [
|
|
39838
|
+
* [0, 9],
|
|
39839
|
+
* [1, 7],
|
|
39840
|
+
* [2, 6]
|
|
39841
|
+
* ]
|
|
39842
|
+
* ```
|
|
39843
|
+
*
|
|
39844
|
+
* 3. An array of objects with named values. The following snippet shows only a
|
|
39845
|
+
* few settings, see the complete options set below. If the total number of
|
|
39846
|
+
* data points exceeds the series'
|
|
39847
|
+
* [turboThreshold](#series.area.turboThreshold), this option is not
|
|
39848
|
+
* available.
|
|
39849
|
+
* ```js
|
|
39850
|
+
* data: [{
|
|
39851
|
+
* x: 1,
|
|
39852
|
+
* y: 9,
|
|
39853
|
+
* name: "Point2",
|
|
39854
|
+
* color: "#00FF00"
|
|
39855
|
+
* }, {
|
|
39856
|
+
* x: 1,
|
|
39857
|
+
* y: 6,
|
|
39858
|
+
* name: "Point1",
|
|
39859
|
+
* color: "#FF00FF"
|
|
39860
|
+
* }]
|
|
39861
|
+
* ```
|
|
39862
|
+
*
|
|
39863
|
+
* @sample {highcharts} highcharts/chart/reflow-true/
|
|
39864
|
+
* Numerical values
|
|
39865
|
+
* @sample {highcharts} highcharts/series/data-array-of-arrays/
|
|
39866
|
+
* Arrays of numeric x and y
|
|
39867
|
+
* @sample {highcharts} highcharts/series/data-array-of-arrays-datetime/
|
|
39868
|
+
* Arrays of datetime x and y
|
|
39869
|
+
* @sample {highcharts} highcharts/series/data-array-of-name-value/
|
|
39870
|
+
* Arrays of point.name and y
|
|
39871
|
+
* @sample {highcharts} highcharts/series/data-array-of-objects/
|
|
39872
|
+
* Config objects
|
|
39873
|
+
*
|
|
39874
|
+
* @type {Array<number|Array<(number|string),(number|null)>|null|*>}
|
|
39875
|
+
* @extends series.line.data
|
|
39876
|
+
* @product highcharts highstock
|
|
39877
|
+
* @apioption series.area.data
|
|
39878
|
+
*/
|
|
39879
|
+
/**
|
|
39880
|
+
* @see [color](#series.area.color)
|
|
39881
|
+
* @see [fillOpacity](#series.area.fillOpacity)
|
|
39882
|
+
*
|
|
39883
|
+
* @apioption series.area.fillColor
|
|
39884
|
+
*/
|
|
39885
|
+
/**
|
|
39886
|
+
* @see [color](#series.area.color)
|
|
39887
|
+
* @see [fillColor](#series.area.fillColor)
|
|
39888
|
+
*
|
|
39889
|
+
* @default {highcharts} 0.75
|
|
39890
|
+
* @default {highstock} 0.75
|
|
39891
|
+
* @apioption series.area.fillOpacity
|
|
39892
|
+
*/
|
|
39893
|
+
''; // Adds doclets above to transpiled
|
|
39894
|
+
/* *
|
|
39895
|
+
*
|
|
39896
|
+
* Default Export
|
|
39897
|
+
*
|
|
39898
|
+
* */
|
|
39899
|
+
|
|
39900
|
+
return AreaSeriesDefaults;
|
|
39901
|
+
});
|
|
39902
|
+
_registerModule(_modules, 'Series/Area/AreaSeries.js', [_modules['Series/Area/AreaSeriesDefaults.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (AreaSeriesDefaults, SeriesRegistry, U) {
|
|
39557
39903
|
/* *
|
|
39558
39904
|
*
|
|
39559
39905
|
* (c) 2010-2024 Torstein Honsi
|
|
@@ -39866,134 +40212,7 @@
|
|
|
39866
40212
|
* Static Properties
|
|
39867
40213
|
*
|
|
39868
40214
|
* */
|
|
39869
|
-
|
|
39870
|
-
* The area series type.
|
|
39871
|
-
*
|
|
39872
|
-
* @sample {highcharts} highcharts/demo/area-basic/
|
|
39873
|
-
* Area chart
|
|
39874
|
-
* @sample {highstock} stock/demo/area/
|
|
39875
|
-
* Area chart
|
|
39876
|
-
*
|
|
39877
|
-
* @extends plotOptions.line
|
|
39878
|
-
* @excluding useOhlcData
|
|
39879
|
-
* @product highcharts highstock
|
|
39880
|
-
* @optionparent plotOptions.area
|
|
39881
|
-
*/
|
|
39882
|
-
AreaSeries.defaultOptions = merge(LineSeries.defaultOptions, {
|
|
39883
|
-
/**
|
|
39884
|
-
* @see [fillColor](#plotOptions.area.fillColor)
|
|
39885
|
-
* @see [fillOpacity](#plotOptions.area.fillOpacity)
|
|
39886
|
-
*
|
|
39887
|
-
* @apioption plotOptions.area.color
|
|
39888
|
-
*/
|
|
39889
|
-
/**
|
|
39890
|
-
* Fill color or gradient for the area. When `undefined`, the series'
|
|
39891
|
-
* `color` is used with the series' `fillOpacity`.
|
|
39892
|
-
*
|
|
39893
|
-
* In styled mode, the fill color can be set with the `.highcharts-area`
|
|
39894
|
-
* class name.
|
|
39895
|
-
*
|
|
39896
|
-
* @see [color](#plotOptions.area.color)
|
|
39897
|
-
* @see [fillOpacity](#plotOptions.area.fillOpacity)
|
|
39898
|
-
*
|
|
39899
|
-
* @sample {highcharts} highcharts/plotoptions/area-fillcolor-default/
|
|
39900
|
-
* Undefined by default
|
|
39901
|
-
* @sample {highcharts} highcharts/plotoptions/area-fillcolor-gradient/
|
|
39902
|
-
* Gradient
|
|
39903
|
-
*
|
|
39904
|
-
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
39905
|
-
* @product highcharts highstock
|
|
39906
|
-
* @apioption plotOptions.area.fillColor
|
|
39907
|
-
*/
|
|
39908
|
-
/**
|
|
39909
|
-
* Fill opacity for the area. When you set an explicit `fillColor`,
|
|
39910
|
-
* the `fillOpacity` is not applied. Instead, you should define the
|
|
39911
|
-
* opacity in the `fillColor` with an rgba color definition. The
|
|
39912
|
-
* `fillOpacity` setting, also the default setting, overrides the alpha
|
|
39913
|
-
* component of the `color` setting.
|
|
39914
|
-
*
|
|
39915
|
-
* In styled mode, the fill opacity can be set with the
|
|
39916
|
-
* `.highcharts-area` class name.
|
|
39917
|
-
*
|
|
39918
|
-
* @see [color](#plotOptions.area.color)
|
|
39919
|
-
* @see [fillColor](#plotOptions.area.fillColor)
|
|
39920
|
-
*
|
|
39921
|
-
* @sample {highcharts} highcharts/plotoptions/area-fillopacity/
|
|
39922
|
-
* Automatic fill color and fill opacity of 0.1
|
|
39923
|
-
*
|
|
39924
|
-
* @type {number}
|
|
39925
|
-
* @default {highcharts} 0.75
|
|
39926
|
-
* @default {highstock} 0.75
|
|
39927
|
-
* @product highcharts highstock
|
|
39928
|
-
* @apioption plotOptions.area.fillOpacity
|
|
39929
|
-
*/
|
|
39930
|
-
/**
|
|
39931
|
-
* A separate color for the graph line. By default the line takes the
|
|
39932
|
-
* `color` of the series, but the lineColor setting allows setting a
|
|
39933
|
-
* separate color for the line without altering the `fillColor`.
|
|
39934
|
-
*
|
|
39935
|
-
* In styled mode, the line stroke can be set with the
|
|
39936
|
-
* `.highcharts-graph` class name.
|
|
39937
|
-
*
|
|
39938
|
-
* @sample {highcharts} highcharts/plotoptions/area-linecolor/
|
|
39939
|
-
* Dark gray line
|
|
39940
|
-
*
|
|
39941
|
-
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
39942
|
-
* @product highcharts highstock
|
|
39943
|
-
* @apioption plotOptions.area.lineColor
|
|
39944
|
-
*/
|
|
39945
|
-
/**
|
|
39946
|
-
* A separate color for the negative part of the area.
|
|
39947
|
-
*
|
|
39948
|
-
* In styled mode, a negative color is set with the
|
|
39949
|
-
* `.highcharts-negative` class name.
|
|
39950
|
-
*
|
|
39951
|
-
* @see [negativeColor](#plotOptions.area.negativeColor)
|
|
39952
|
-
*
|
|
39953
|
-
* @sample {highcharts} highcharts/css/series-negative-color/
|
|
39954
|
-
* Negative color in styled mode
|
|
39955
|
-
*
|
|
39956
|
-
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
39957
|
-
* @since 3.0
|
|
39958
|
-
* @product highcharts
|
|
39959
|
-
* @apioption plotOptions.area.negativeFillColor
|
|
39960
|
-
*/
|
|
39961
|
-
/**
|
|
39962
|
-
* Whether the whole area or just the line should respond to mouseover
|
|
39963
|
-
* tooltips and other mouse or touch events.
|
|
39964
|
-
*
|
|
39965
|
-
* @sample {highcharts|highstock} highcharts/plotoptions/area-trackbyarea/
|
|
39966
|
-
* Display the tooltip when the area is hovered
|
|
39967
|
-
*
|
|
39968
|
-
* @type {boolean}
|
|
39969
|
-
* @default false
|
|
39970
|
-
* @since 1.1.6
|
|
39971
|
-
* @product highcharts highstock
|
|
39972
|
-
* @apioption plotOptions.area.trackByArea
|
|
39973
|
-
*/
|
|
39974
|
-
/**
|
|
39975
|
-
* The Y axis value to serve as the base for the area, for
|
|
39976
|
-
* distinguishing between values above and below a threshold. The area
|
|
39977
|
-
* between the graph and the threshold is filled.
|
|
39978
|
-
*
|
|
39979
|
-
* * If a number is given, the Y axis will scale to the threshold.
|
|
39980
|
-
* * If `null`, the scaling behaves like a line series with fill between
|
|
39981
|
-
* the graph and the Y axis minimum.
|
|
39982
|
-
* * If `Infinity` or `-Infinity`, the area between the graph and the
|
|
39983
|
-
* corresponding Y axis extreme is filled (since v6.1.0).
|
|
39984
|
-
*
|
|
39985
|
-
* @sample {highcharts} highcharts/plotoptions/area-threshold/
|
|
39986
|
-
* A threshold of 100
|
|
39987
|
-
* @sample {highcharts} highcharts/plotoptions/area-threshold-infinity/
|
|
39988
|
-
* A threshold of Infinity
|
|
39989
|
-
*
|
|
39990
|
-
* @type {number|null}
|
|
39991
|
-
* @since 2.0
|
|
39992
|
-
* @product highcharts highstock
|
|
39993
|
-
*/
|
|
39994
|
-
threshold: 0,
|
|
39995
|
-
legendSymbol: 'areaMarker'
|
|
39996
|
-
});
|
|
40215
|
+
AreaSeries.defaultOptions = merge(LineSeries.defaultOptions, AreaSeriesDefaults);
|
|
39997
40216
|
extend(AreaSeries.prototype, {
|
|
39998
40217
|
singleStacks: false
|
|
39999
40218
|
});
|
|
@@ -40003,100 +40222,6 @@
|
|
|
40003
40222
|
* Default Export
|
|
40004
40223
|
*
|
|
40005
40224
|
* */
|
|
40006
|
-
/* *
|
|
40007
|
-
*
|
|
40008
|
-
* API Options
|
|
40009
|
-
*
|
|
40010
|
-
* */
|
|
40011
|
-
/**
|
|
40012
|
-
* A `area` series. If the [type](#series.area.type) option is not
|
|
40013
|
-
* specified, it is inherited from [chart.type](#chart.type).
|
|
40014
|
-
*
|
|
40015
|
-
* @extends series,plotOptions.area
|
|
40016
|
-
* @excluding dataParser, dataURL, useOhlcData
|
|
40017
|
-
* @product highcharts highstock
|
|
40018
|
-
* @apioption series.area
|
|
40019
|
-
*/
|
|
40020
|
-
/**
|
|
40021
|
-
* @see [fillColor](#series.area.fillColor)
|
|
40022
|
-
* @see [fillOpacity](#series.area.fillOpacity)
|
|
40023
|
-
*
|
|
40024
|
-
* @apioption series.area.color
|
|
40025
|
-
*/
|
|
40026
|
-
/**
|
|
40027
|
-
* An array of data points for the series. For the `area` series type,
|
|
40028
|
-
* points can be given in the following ways:
|
|
40029
|
-
*
|
|
40030
|
-
* 1. An array of numerical values. In this case, the numerical values will be
|
|
40031
|
-
* interpreted as `y` options. The `x` values will be automatically
|
|
40032
|
-
* calculated, either starting at 0 and incremented by 1, or from
|
|
40033
|
-
* `pointStart` * and `pointInterval` given in the series options. If the
|
|
40034
|
-
* axis has categories, these will be used. Example:
|
|
40035
|
-
* ```js
|
|
40036
|
-
* data: [0, 5, 3, 5]
|
|
40037
|
-
* ```
|
|
40038
|
-
*
|
|
40039
|
-
* 2. An array of arrays with 2 values. In this case, the values correspond to
|
|
40040
|
-
* `x,y`. If the first value is a string, it is applied as the name of the
|
|
40041
|
-
* point, and the `x` value is inferred.
|
|
40042
|
-
* ```js
|
|
40043
|
-
* data: [
|
|
40044
|
-
* [0, 9],
|
|
40045
|
-
* [1, 7],
|
|
40046
|
-
* [2, 6]
|
|
40047
|
-
* ]
|
|
40048
|
-
* ```
|
|
40049
|
-
*
|
|
40050
|
-
* 3. An array of objects with named values. The following snippet shows only a
|
|
40051
|
-
* few settings, see the complete options set below. If the total number of
|
|
40052
|
-
* data points exceeds the series'
|
|
40053
|
-
* [turboThreshold](#series.area.turboThreshold), this option is not
|
|
40054
|
-
* available.
|
|
40055
|
-
* ```js
|
|
40056
|
-
* data: [{
|
|
40057
|
-
* x: 1,
|
|
40058
|
-
* y: 9,
|
|
40059
|
-
* name: "Point2",
|
|
40060
|
-
* color: "#00FF00"
|
|
40061
|
-
* }, {
|
|
40062
|
-
* x: 1,
|
|
40063
|
-
* y: 6,
|
|
40064
|
-
* name: "Point1",
|
|
40065
|
-
* color: "#FF00FF"
|
|
40066
|
-
* }]
|
|
40067
|
-
* ```
|
|
40068
|
-
*
|
|
40069
|
-
* @sample {highcharts} highcharts/chart/reflow-true/
|
|
40070
|
-
* Numerical values
|
|
40071
|
-
* @sample {highcharts} highcharts/series/data-array-of-arrays/
|
|
40072
|
-
* Arrays of numeric x and y
|
|
40073
|
-
* @sample {highcharts} highcharts/series/data-array-of-arrays-datetime/
|
|
40074
|
-
* Arrays of datetime x and y
|
|
40075
|
-
* @sample {highcharts} highcharts/series/data-array-of-name-value/
|
|
40076
|
-
* Arrays of point.name and y
|
|
40077
|
-
* @sample {highcharts} highcharts/series/data-array-of-objects/
|
|
40078
|
-
* Config objects
|
|
40079
|
-
*
|
|
40080
|
-
* @type {Array<number|Array<(number|string),(number|null)>|null|*>}
|
|
40081
|
-
* @extends series.line.data
|
|
40082
|
-
* @product highcharts highstock
|
|
40083
|
-
* @apioption series.area.data
|
|
40084
|
-
*/
|
|
40085
|
-
/**
|
|
40086
|
-
* @see [color](#series.area.color)
|
|
40087
|
-
* @see [fillOpacity](#series.area.fillOpacity)
|
|
40088
|
-
*
|
|
40089
|
-
* @apioption series.area.fillColor
|
|
40090
|
-
*/
|
|
40091
|
-
/**
|
|
40092
|
-
* @see [color](#series.area.color)
|
|
40093
|
-
* @see [fillColor](#series.area.fillColor)
|
|
40094
|
-
*
|
|
40095
|
-
* @default {highcharts} 0.75
|
|
40096
|
-
* @default {highstock} 0.75
|
|
40097
|
-
* @apioption series.area.fillOpacity
|
|
40098
|
-
*/
|
|
40099
|
-
''; // Adds doclets above to transpiled
|
|
40100
40225
|
|
|
40101
40226
|
return AreaSeries;
|
|
40102
40227
|
});
|
|
@@ -41055,7 +41180,7 @@
|
|
|
41055
41180
|
const { animObject } = A;
|
|
41056
41181
|
const { parse: color } = Color;
|
|
41057
41182
|
const { noop } = H;
|
|
41058
|
-
const { clamp, defined, extend, fireEvent, isArray, isNumber, merge, pick, objectEach } = U;
|
|
41183
|
+
const { clamp, crisp, defined, extend, fireEvent, isArray, isNumber, merge, pick, objectEach } = U;
|
|
41059
41184
|
/* *
|
|
41060
41185
|
*
|
|
41061
41186
|
* Class
|
|
@@ -41087,17 +41212,27 @@
|
|
|
41087
41212
|
* Whether to initialize the animation or run it
|
|
41088
41213
|
*/
|
|
41089
41214
|
animate(init) {
|
|
41090
|
-
const series = this, yAxis = this.yAxis, yAxisPos = yAxis.pos, options = series.options, inverted = this.chart
|
|
41215
|
+
const series = this, yAxis = this.yAxis, yAxisPos = yAxis.pos, reversed = yAxis.reversed, options = series.options, { clipOffset, inverted } = this.chart, attr = {}, translateProp = inverted ?
|
|
41091
41216
|
'translateX' :
|
|
41092
41217
|
'translateY';
|
|
41093
41218
|
let translateStart, translatedThreshold;
|
|
41094
|
-
if (init) {
|
|
41219
|
+
if (init && clipOffset) {
|
|
41095
41220
|
attr.scaleY = 0.001;
|
|
41096
41221
|
translatedThreshold = clamp(yAxis.toPixels(options.threshold), yAxisPos, yAxisPos + yAxis.len);
|
|
41097
41222
|
if (inverted) {
|
|
41223
|
+
// Make sure the columns don't cover the axis line during
|
|
41224
|
+
// entrance animation
|
|
41225
|
+
translatedThreshold += reversed ?
|
|
41226
|
+
-Math.floor(clipOffset[0]) :
|
|
41227
|
+
Math.ceil(clipOffset[2]);
|
|
41098
41228
|
attr.translateX = translatedThreshold - yAxis.len;
|
|
41099
41229
|
}
|
|
41100
41230
|
else {
|
|
41231
|
+
// Make sure the columns don't cover the axis line during
|
|
41232
|
+
// entrance animation
|
|
41233
|
+
translatedThreshold += reversed ?
|
|
41234
|
+
Math.ceil(clipOffset[0]) :
|
|
41235
|
+
-Math.floor(clipOffset[2]);
|
|
41101
41236
|
attr.translateY = translatedThreshold;
|
|
41102
41237
|
}
|
|
41103
41238
|
// Apply final clipping (used in Highcharts Stock) (#7083)
|
|
@@ -41217,31 +41352,19 @@
|
|
|
41217
41352
|
* @private
|
|
41218
41353
|
* @function Highcharts.seriesTypes.column#crispCol
|
|
41219
41354
|
*/
|
|
41220
|
-
crispCol(x, y,
|
|
41221
|
-
const borderWidth = this.borderWidth,
|
|
41222
|
-
|
|
41355
|
+
crispCol(x, y, width, height) {
|
|
41356
|
+
const borderWidth = this.borderWidth, inverted = this.chart.inverted, bottom = crisp(y + height, borderWidth, inverted);
|
|
41357
|
+
// Vertical
|
|
41358
|
+
y = crisp(y, borderWidth, inverted);
|
|
41359
|
+
height = bottom - y;
|
|
41223
41360
|
// Horizontal. We need to first compute the exact right edge, then
|
|
41224
41361
|
// round it and compute the width from there.
|
|
41225
41362
|
if (this.options.crisp) {
|
|
41226
|
-
right =
|
|
41227
|
-
x =
|
|
41228
|
-
|
|
41229
|
-
}
|
|
41230
|
-
// Vertical
|
|
41231
|
-
const bottom = Math.round(y + h) + yCrisp, fromTop = Math.abs(y) <= 0.5 && bottom > 0.5; // #4504, #4656
|
|
41232
|
-
y = Math.round(y) + yCrisp;
|
|
41233
|
-
h = bottom - y;
|
|
41234
|
-
// Top edges are exceptions
|
|
41235
|
-
if (fromTop && h) { // #5146
|
|
41236
|
-
y -= 1;
|
|
41237
|
-
h += 1;
|
|
41363
|
+
const right = crisp(x + width, borderWidth);
|
|
41364
|
+
x = crisp(x, borderWidth);
|
|
41365
|
+
width = right - x;
|
|
41238
41366
|
}
|
|
41239
|
-
return {
|
|
41240
|
-
x: x,
|
|
41241
|
-
y: y,
|
|
41242
|
-
width: w,
|
|
41243
|
-
height: h
|
|
41244
|
-
};
|
|
41367
|
+
return { x, y, width, height };
|
|
41245
41368
|
}
|
|
41246
41369
|
/**
|
|
41247
41370
|
* Adjust for missing columns, according to the `centerInCategory`
|
|
@@ -41323,14 +41446,11 @@
|
|
|
41323
41446
|
translate() {
|
|
41324
41447
|
const series = this, chart = series.chart, options = series.options, dense = series.dense =
|
|
41325
41448
|
series.closestPointRange * series.xAxis.transA < 2, borderWidth = series.borderWidth = pick(options.borderWidth, dense ? 0 : 1 // #3635
|
|
41326
|
-
), xAxis = series.xAxis, yAxis = series.yAxis, threshold = options.threshold, minPointLength = pick(options.minPointLength, 5), metrics = series.getColumnMetrics(), seriesPointWidth = metrics.width, seriesXOffset = series.pointXOffset = metrics.offset, dataMin = series.dataMin, dataMax = series.dataMax
|
|
41449
|
+
), xAxis = series.xAxis, yAxis = series.yAxis, threshold = options.threshold, minPointLength = pick(options.minPointLength, 5), metrics = series.getColumnMetrics(), seriesPointWidth = metrics.width, seriesXOffset = series.pointXOffset = metrics.offset, dataMin = series.dataMin, dataMax = series.dataMax, translatedThreshold = series.translatedThreshold =
|
|
41450
|
+
yAxis.getThreshold(threshold);
|
|
41327
41451
|
// Postprocessed for border width
|
|
41328
41452
|
let seriesBarW = series.barW =
|
|
41329
|
-
Math.max(seriesPointWidth, 1 + 2 * borderWidth)
|
|
41330
|
-
yAxis.getThreshold(threshold);
|
|
41331
|
-
if (chart.inverted) {
|
|
41332
|
-
translatedThreshold -= 0.5; // #3355
|
|
41333
|
-
}
|
|
41453
|
+
Math.max(seriesPointWidth, 1 + 2 * borderWidth);
|
|
41334
41454
|
// When the pointPadding is 0, we want the columns to be packed
|
|
41335
41455
|
// tightly, so we allow individual columns to have individual sizes.
|
|
41336
41456
|
// When pointPadding is greater, we strive for equal-width columns
|
|
@@ -41710,7 +41830,7 @@
|
|
|
41710
41830
|
* @private
|
|
41711
41831
|
*/
|
|
41712
41832
|
function alignDataLabel(point, dataLabel, options, alignTo, isNew) {
|
|
41713
|
-
const series = this, chart = this
|
|
41833
|
+
const series = this, { chart, enabledDataSorting } = this, inverted = this.isCartesian && chart.inverted, plotX = point.plotX, plotY = point.plotY, rotation = options.rotation || 0, isInsidePlot = defined(plotX) &&
|
|
41714
41834
|
defined(plotY) &&
|
|
41715
41835
|
chart.isInsidePlot(plotX, Math.round(plotY), {
|
|
41716
41836
|
inverted,
|
|
@@ -41730,10 +41850,10 @@
|
|
|
41730
41850
|
(enabledDataSorting && !justify) ||
|
|
41731
41851
|
isInsidePlot ||
|
|
41732
41852
|
(
|
|
41733
|
-
// If the data label is inside the align box, it is
|
|
41734
|
-
//
|
|
41735
|
-
//
|
|
41736
|
-
//
|
|
41853
|
+
// If the data label is inside the align box, it is enough
|
|
41854
|
+
// that parts of the align box is inside the plot area
|
|
41855
|
+
// (#12370). When stacking, it is always inside regardless
|
|
41856
|
+
// of the option (#15148).
|
|
41737
41857
|
pick(options.inside, !!this.options.stacking) &&
|
|
41738
41858
|
alignTo &&
|
|
41739
41859
|
chart.isInsidePlot(plotX, inverted ?
|
|
@@ -41759,6 +41879,11 @@
|
|
|
41759
41879
|
width: 0,
|
|
41760
41880
|
height: 0
|
|
41761
41881
|
}, alignTo || {});
|
|
41882
|
+
// Align to plot edges
|
|
41883
|
+
if (options.alignTo === 'plotEdges' && series.isCartesian) {
|
|
41884
|
+
alignTo[inverted ? 'x' : 'y'] = 0;
|
|
41885
|
+
alignTo[inverted ? 'width' : 'height'] = this.yAxis?.len || 0;
|
|
41886
|
+
}
|
|
41762
41887
|
// Add the text size for alignment calculation
|
|
41763
41888
|
extend(options, {
|
|
41764
41889
|
width: bBox.width,
|
|
@@ -42096,10 +42221,12 @@
|
|
|
42096
42221
|
* @private
|
|
42097
42222
|
*/
|
|
42098
42223
|
function justifyDataLabel(dataLabel, options, alignAttr, bBox, alignTo, isNew) {
|
|
42099
|
-
const chart = this.chart, align = options.align, verticalAlign = options.verticalAlign, padding = dataLabel.box ? 0 : (dataLabel.padding || 0)
|
|
42224
|
+
const chart = this.chart, align = options.align, verticalAlign = options.verticalAlign, padding = dataLabel.box ? 0 : (dataLabel.padding || 0), horizontalAxis = chart.inverted ? this.yAxis : this.xAxis, horizontalAxisShift = horizontalAxis ?
|
|
42225
|
+
horizontalAxis.left - chart.plotLeft : 0, verticalAxis = chart.inverted ? this.xAxis : this.yAxis, verticalAxisShift = verticalAxis ?
|
|
42226
|
+
verticalAxis.top - chart.plotTop : 0;
|
|
42100
42227
|
let { x = 0, y = 0 } = options, off, justified;
|
|
42101
42228
|
// Off left
|
|
42102
|
-
off = (alignAttr.x || 0) + padding;
|
|
42229
|
+
off = (alignAttr.x || 0) + padding + horizontalAxisShift;
|
|
42103
42230
|
if (off < 0) {
|
|
42104
42231
|
if (align === 'right' && x >= 0) {
|
|
42105
42232
|
options.align = 'left';
|
|
@@ -42111,7 +42238,7 @@
|
|
|
42111
42238
|
justified = true;
|
|
42112
42239
|
}
|
|
42113
42240
|
// Off right
|
|
42114
|
-
off = (alignAttr.x || 0) + bBox.width - padding;
|
|
42241
|
+
off = (alignAttr.x || 0) + bBox.width - padding + horizontalAxisShift;
|
|
42115
42242
|
if (off > chart.plotWidth) {
|
|
42116
42243
|
if (align === 'left' && x <= 0) {
|
|
42117
42244
|
options.align = 'right';
|
|
@@ -42123,7 +42250,7 @@
|
|
|
42123
42250
|
justified = true;
|
|
42124
42251
|
}
|
|
42125
42252
|
// Off top
|
|
42126
|
-
off = alignAttr.y + padding;
|
|
42253
|
+
off = alignAttr.y + padding + verticalAxisShift;
|
|
42127
42254
|
if (off < 0) {
|
|
42128
42255
|
if (verticalAlign === 'bottom' && y >= 0) {
|
|
42129
42256
|
options.verticalAlign = 'top';
|
|
@@ -42135,7 +42262,7 @@
|
|
|
42135
42262
|
justified = true;
|
|
42136
42263
|
}
|
|
42137
42264
|
// Off bottom
|
|
42138
|
-
off = (alignAttr.y || 0) + bBox.height - padding;
|
|
42265
|
+
off = (alignAttr.y || 0) + bBox.height - padding + verticalAxisShift;
|
|
42139
42266
|
if (off > chart.plotHeight) {
|
|
42140
42267
|
if (verticalAlign === 'top' && y <= 0) {
|
|
42141
42268
|
options.verticalAlign = 'bottom';
|
|
@@ -42315,7 +42442,7 @@
|
|
|
42315
42442
|
// If parts of the box overshoots outside the plot area, modify
|
|
42316
42443
|
// the box to center the label inside
|
|
42317
42444
|
const overshoot = alignTo.y + alignTo.height - yLen;
|
|
42318
|
-
if (overshoot > 0 && overshoot < alignTo.height) {
|
|
42445
|
+
if (overshoot > 0 && overshoot < alignTo.height - 1) {
|
|
42319
42446
|
alignTo.height -= overshoot;
|
|
42320
42447
|
}
|
|
42321
42448
|
}
|