@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
|
@@ -14,7 +14,7 @@ import Color from '../../Color/Color.js';
|
|
|
14
14
|
import H from '../../Globals.js';
|
|
15
15
|
const { deg2rad, doc, svg, SVG_NS, win } = H;
|
|
16
16
|
import U from '../../Utilities.js';
|
|
17
|
-
const { addEvent, attr, createElement, css, defined, erase, extend, fireEvent, isArray, isFunction, isObject, isString, merge, objectEach, pick, pInt, replaceNested, syncTimeout, uniqueKey } = U;
|
|
17
|
+
const { addEvent, attr, createElement, crisp, css, defined, erase, extend, fireEvent, isArray, isFunction, isObject, isString, merge, objectEach, pick, pInt, pushUnique, replaceNested, syncTimeout, uniqueKey } = U;
|
|
18
18
|
/* *
|
|
19
19
|
*
|
|
20
20
|
* Class
|
|
@@ -200,7 +200,7 @@ class SVGElement {
|
|
|
200
200
|
* @param {boolean} [alignByTranslate]
|
|
201
201
|
* Align element by translation.
|
|
202
202
|
*
|
|
203
|
-
* @param {string|Highcharts.BBoxObject} [
|
|
203
|
+
* @param {string|Highcharts.BBoxObject} [alignTo]
|
|
204
204
|
* The box to align to, needs a width and height. When the box is a
|
|
205
205
|
* string, it refers to an object in the Renderer. For example, when
|
|
206
206
|
* box is `spacingBox`, it refers to `Renderer.spacingBox` which
|
|
@@ -212,34 +212,39 @@ class SVGElement {
|
|
|
212
212
|
*
|
|
213
213
|
* @return {Highcharts.SVGElement} Returns the SVGElement for chaining.
|
|
214
214
|
*/
|
|
215
|
-
align(alignOptions, alignByTranslate,
|
|
216
|
-
const attribs = {}, renderer = this.renderer, alignedObjects = renderer.alignedObjects;
|
|
217
|
-
let x, y,
|
|
215
|
+
align(alignOptions, alignByTranslate, alignTo, redraw = true) {
|
|
216
|
+
const attribs = {}, renderer = this.renderer, alignedObjects = renderer.alignedObjects, initialAlignment = Boolean(alignOptions);
|
|
217
|
+
let x, y, alignFactor, vAlignFactor;
|
|
218
218
|
// First call on instanciate
|
|
219
219
|
if (alignOptions) {
|
|
220
220
|
this.alignOptions = alignOptions;
|
|
221
221
|
this.alignByTranslate = alignByTranslate;
|
|
222
|
-
|
|
223
|
-
this.alignTo = alignTo = box || 'renderer';
|
|
224
|
-
// Prevent duplicates, like legendGroup after resize
|
|
225
|
-
erase(alignedObjects, this);
|
|
226
|
-
alignedObjects.push(this);
|
|
227
|
-
box = void 0; // Reassign it below
|
|
228
|
-
}
|
|
222
|
+
this.alignTo = alignTo;
|
|
229
223
|
// When called on resize, no arguments are supplied
|
|
230
224
|
}
|
|
231
225
|
else {
|
|
232
|
-
alignOptions = this.alignOptions;
|
|
226
|
+
alignOptions = this.alignOptions || {};
|
|
233
227
|
alignByTranslate = this.alignByTranslate;
|
|
234
228
|
alignTo = this.alignTo;
|
|
235
229
|
}
|
|
236
|
-
|
|
230
|
+
const alignToKey = !alignTo || isString(alignTo) ?
|
|
231
|
+
alignTo || 'renderer' :
|
|
232
|
+
void 0;
|
|
233
|
+
// When aligned to a key, automatically re-align on redraws
|
|
234
|
+
if (alignToKey) {
|
|
235
|
+
// Prevent duplicates, like legendGroup after resize
|
|
236
|
+
if (initialAlignment) {
|
|
237
|
+
pushUnique(alignedObjects, this);
|
|
238
|
+
}
|
|
239
|
+
alignTo = void 0; // Do not use the box
|
|
240
|
+
}
|
|
241
|
+
const alignToBox = pick(alignTo, renderer[alignToKey], renderer);
|
|
237
242
|
// Assign variables
|
|
238
243
|
const align = alignOptions.align, vAlign = alignOptions.verticalAlign;
|
|
239
244
|
// Default: left align
|
|
240
|
-
x = (
|
|
245
|
+
x = (alignToBox.x || 0) + (alignOptions.x || 0);
|
|
241
246
|
// Default: top align
|
|
242
|
-
y = (
|
|
247
|
+
y = (alignToBox.y || 0) + (alignOptions.y || 0);
|
|
243
248
|
// Align
|
|
244
249
|
if (align === 'right') {
|
|
245
250
|
alignFactor = 1;
|
|
@@ -248,7 +253,7 @@ class SVGElement {
|
|
|
248
253
|
alignFactor = 2;
|
|
249
254
|
}
|
|
250
255
|
if (alignFactor) {
|
|
251
|
-
x += (
|
|
256
|
+
x += ((alignToBox.width || 0) - (alignOptions.width || 0)) /
|
|
252
257
|
alignFactor;
|
|
253
258
|
}
|
|
254
259
|
attribs[alignByTranslate ? 'translateX' : 'x'] = Math.round(x);
|
|
@@ -260,7 +265,7 @@ class SVGElement {
|
|
|
260
265
|
vAlignFactor = 2;
|
|
261
266
|
}
|
|
262
267
|
if (vAlignFactor) {
|
|
263
|
-
y += (
|
|
268
|
+
y += ((alignToBox.height || 0) - (alignOptions.height || 0)) /
|
|
264
269
|
vAlignFactor;
|
|
265
270
|
}
|
|
266
271
|
attribs[alignByTranslate ? 'translateY' : 'y'] = Math.round(y);
|
|
@@ -480,7 +485,7 @@ class SVGElement {
|
|
|
480
485
|
* used as a getter, the current value of the attribute is returned.
|
|
481
486
|
*/
|
|
482
487
|
attr(hash, val, complete, continueAnimation) {
|
|
483
|
-
const element = this
|
|
488
|
+
const { element } = this, symbolCustomAttribs = SVGElement.symbolCustomAttribs;
|
|
484
489
|
let key, hasSetSymbolSize, ret = this, skipAttr, setter;
|
|
485
490
|
// Single key-value pair
|
|
486
491
|
if (typeof hash === 'string' && typeof val !== 'undefined') {
|
|
@@ -570,15 +575,17 @@ class SVGElement {
|
|
|
570
575
|
* The modified rectangle arguments.
|
|
571
576
|
*/
|
|
572
577
|
crisp(rect, strokeWidth) {
|
|
573
|
-
const wrapper = this;
|
|
574
|
-
strokeWidth = strokeWidth || rect.strokeWidth || 0;
|
|
575
578
|
// Math.round because strokeWidth can sometimes have roundoff errors
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
579
|
+
strokeWidth = Math.round(strokeWidth || rect.strokeWidth || 0);
|
|
580
|
+
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,
|
|
581
|
+
// Find all the rounded coordinates for corners
|
|
582
|
+
x = crisp(x1, strokeWidth), y = crisp(y1, strokeWidth), x2Crisp = crisp(x2, strokeWidth), y2Crisp = crisp(y2, strokeWidth);
|
|
583
|
+
extend(rect, {
|
|
584
|
+
x,
|
|
585
|
+
y,
|
|
586
|
+
width: x2Crisp - x,
|
|
587
|
+
height: y2Crisp - y
|
|
588
|
+
});
|
|
582
589
|
if (defined(rect.strokeWidth)) {
|
|
583
590
|
rect.strokeWidth = strokeWidth;
|
|
584
591
|
}
|
|
@@ -853,7 +860,7 @@ class SVGElement {
|
|
|
853
860
|
parentToClean = grandParent;
|
|
854
861
|
}
|
|
855
862
|
// Remove from alignObjects
|
|
856
|
-
if (wrapper.
|
|
863
|
+
if (wrapper.alignOptions) {
|
|
857
864
|
erase(renderer.alignedObjects, wrapper);
|
|
858
865
|
}
|
|
859
866
|
objectEach(wrapper, function (val, key) {
|
|
@@ -1228,6 +1235,20 @@ class SVGElement {
|
|
|
1228
1235
|
this.opacity = opacity;
|
|
1229
1236
|
element.setAttribute(key, opacity);
|
|
1230
1237
|
}
|
|
1238
|
+
/**
|
|
1239
|
+
* Re-align an aligned text or label after setting the text.
|
|
1240
|
+
*
|
|
1241
|
+
* @private
|
|
1242
|
+
* @function Highcharts.SVGElement#reAlign
|
|
1243
|
+
*
|
|
1244
|
+
*/
|
|
1245
|
+
reAlign() {
|
|
1246
|
+
if (this.alignOptions?.width && this.alignOptions.align !== 'left') {
|
|
1247
|
+
this.alignOptions.width = this.getBBox().width;
|
|
1248
|
+
this.placed = false; // Block animation
|
|
1249
|
+
this.align();
|
|
1250
|
+
}
|
|
1251
|
+
}
|
|
1231
1252
|
/**
|
|
1232
1253
|
* Remove a class name from the element.
|
|
1233
1254
|
*
|
|
@@ -1527,6 +1548,7 @@ class SVGElement {
|
|
|
1527
1548
|
if (this.added) {
|
|
1528
1549
|
this.renderer.buildText(this);
|
|
1529
1550
|
}
|
|
1551
|
+
this.reAlign();
|
|
1530
1552
|
}
|
|
1531
1553
|
}
|
|
1532
1554
|
/**
|
|
@@ -176,9 +176,11 @@ class SVGLabel extends SVGElement {
|
|
|
176
176
|
return bBox;
|
|
177
177
|
}
|
|
178
178
|
getCrispAdjust() {
|
|
179
|
-
return this.renderer.styledMode && this.box ?
|
|
180
|
-
this.box.strokeWidth()
|
|
181
|
-
(this['stroke-width'] ?
|
|
179
|
+
return (this.renderer.styledMode && this.box ?
|
|
180
|
+
this.box.strokeWidth() :
|
|
181
|
+
(this['stroke-width'] ?
|
|
182
|
+
parseInt(this['stroke-width'], 10) :
|
|
183
|
+
0)) % 2 / 2;
|
|
182
184
|
}
|
|
183
185
|
heightSetter(value) {
|
|
184
186
|
this.heightSetting = value;
|
|
@@ -236,6 +238,7 @@ class SVGLabel extends SVGElement {
|
|
|
236
238
|
this.text.attr({ text });
|
|
237
239
|
}
|
|
238
240
|
this.updateTextPadding();
|
|
241
|
+
this.reAlign();
|
|
239
242
|
}
|
|
240
243
|
/*
|
|
241
244
|
* This function runs after the label is added to the DOM (when the bounding
|
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
* */
|
|
10
10
|
'use strict';
|
|
11
11
|
import AST from '../HTML/AST.js';
|
|
12
|
+
import D from '../../Defaults.js';
|
|
13
|
+
const { defaultOptions } = D;
|
|
12
14
|
import Color from '../../Color/Color.js';
|
|
13
15
|
import H from '../../Globals.js';
|
|
14
16
|
const { charts, deg2rad, doc, isFirefox, isMS, isWebKit, noop, SVG_NS, symbolSizes, win } = H;
|
|
@@ -18,7 +20,7 @@ import SVGLabel from './SVGLabel.js';
|
|
|
18
20
|
import Symbols from './Symbols.js';
|
|
19
21
|
import TextBuilder from './TextBuilder.js';
|
|
20
22
|
import U from '../../Utilities.js';
|
|
21
|
-
const { addEvent, attr, createElement, css, defined, destroyObjectProperties, extend, isArray, isNumber, isObject, isString, merge, pick, pInt, replaceNested, uniqueKey } = U;
|
|
23
|
+
const { addEvent, attr, createElement, crisp, css, defined, destroyObjectProperties, extend, isArray, isNumber, isObject, isString, merge, pick, pInt, replaceNested, uniqueKey } = U;
|
|
22
24
|
/* *
|
|
23
25
|
*
|
|
24
26
|
* Variables
|
|
@@ -500,7 +502,9 @@ class SVGRenderer {
|
|
|
500
502
|
return 1.05 / (l + 0.05) > (l + 0.05) / 0.05 ? '#FFFFFF' : '#000000';
|
|
501
503
|
}
|
|
502
504
|
/**
|
|
503
|
-
* Create a button with preset states.
|
|
505
|
+
* Create a button with preset states. Styles for the button can either be
|
|
506
|
+
* set as arguments, or a general theme for all buttons can be set by the
|
|
507
|
+
* `global.buttonTheme` option.
|
|
504
508
|
*
|
|
505
509
|
* @function Highcharts.SVGRenderer#button
|
|
506
510
|
*
|
|
@@ -538,56 +542,31 @@ class SVGRenderer {
|
|
|
538
542
|
* The button element.
|
|
539
543
|
*/
|
|
540
544
|
button(text, x, y, callback, theme = {}, hoverState, selectState, disabledState, shape, useHTML) {
|
|
541
|
-
const label = this.label(text, x, y, shape, void 0, void 0, useHTML, void 0, 'button'), styledMode = this.styledMode,
|
|
545
|
+
const label = this.label(text, x, y, shape, void 0, void 0, useHTML, void 0, 'button'), styledMode = this.styledMode, args = arguments;
|
|
542
546
|
let curState = 0;
|
|
543
|
-
theme = merge(theme);
|
|
547
|
+
theme = merge(defaultOptions.global.buttonTheme, theme);
|
|
548
|
+
// @todo Consider moving this to a lower level, like .attr
|
|
549
|
+
if (styledMode) {
|
|
550
|
+
delete theme.fill;
|
|
551
|
+
delete theme.stroke;
|
|
552
|
+
delete theme['stroke-width'];
|
|
553
|
+
}
|
|
554
|
+
const states = theme.states || {}, normalStyle = theme.style || {};
|
|
544
555
|
delete theme.states;
|
|
545
|
-
const normalStyle = merge({
|
|
546
|
-
color: "#333333" /* Palette.neutralColor80 */,
|
|
547
|
-
cursor: 'pointer',
|
|
548
|
-
fontSize: '0.8em',
|
|
549
|
-
fontWeight: 'normal'
|
|
550
|
-
}, theme.style);
|
|
551
556
|
delete theme.style;
|
|
552
|
-
//
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
//
|
|
558
|
-
|
|
559
|
-
let hoverStyle, selectStyle, disabledStyle;
|
|
557
|
+
// Presentational
|
|
558
|
+
const stateAttribs = [
|
|
559
|
+
AST.filterUserAttributes(theme)
|
|
560
|
+
],
|
|
561
|
+
// The string type is a mistake, it is just for compliance with
|
|
562
|
+
// SVGAttribute and is not used in button theme.
|
|
563
|
+
stateStyles = [normalStyle];
|
|
560
564
|
if (!styledMode) {
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
}, normalState);
|
|
567
|
-
// Hover state
|
|
568
|
-
hoverState = merge(normalState, {
|
|
569
|
-
fill: "#e6e6e6" /* Palette.neutralColor10 */
|
|
570
|
-
}, AST.filterUserAttributes(hoverState || states.hover || {}));
|
|
571
|
-
hoverStyle = hoverState.style;
|
|
572
|
-
delete hoverState.style;
|
|
573
|
-
// Pressed state
|
|
574
|
-
selectState = merge(normalState, {
|
|
575
|
-
fill: "#e6e9ff" /* Palette.highlightColor10 */,
|
|
576
|
-
style: {
|
|
577
|
-
color: "#000000" /* Palette.neutralColor100 */,
|
|
578
|
-
fontWeight: 'bold'
|
|
579
|
-
}
|
|
580
|
-
}, AST.filterUserAttributes(selectState || states.select || {}));
|
|
581
|
-
selectStyle = selectState.style;
|
|
582
|
-
delete selectState.style;
|
|
583
|
-
// Disabled state
|
|
584
|
-
disabledState = merge(normalState, {
|
|
585
|
-
style: {
|
|
586
|
-
color: "#cccccc" /* Palette.neutralColor20 */
|
|
587
|
-
}
|
|
588
|
-
}, AST.filterUserAttributes(disabledState || states.disabled || {}));
|
|
589
|
-
disabledStyle = disabledState.style;
|
|
590
|
-
delete disabledState.style;
|
|
565
|
+
['hover', 'select', 'disabled'].forEach((stateName, i) => {
|
|
566
|
+
stateAttribs.push(merge(stateAttribs[0], AST.filterUserAttributes(args[i + 5] || states[stateName] || {})));
|
|
567
|
+
stateStyles.push(stateAttribs[i + 1].style);
|
|
568
|
+
delete stateAttribs[i + 1].style;
|
|
569
|
+
});
|
|
591
570
|
}
|
|
592
571
|
// Add the events. IE9 and IE10 need mouseover and mouseout to function
|
|
593
572
|
// (#667).
|
|
@@ -601,7 +580,7 @@ class SVGRenderer {
|
|
|
601
580
|
label.setState(curState);
|
|
602
581
|
}
|
|
603
582
|
});
|
|
604
|
-
label.setState =
|
|
583
|
+
label.setState = (state = 0) => {
|
|
605
584
|
// Hover state is temporary, don't record it
|
|
606
585
|
if (state !== 1) {
|
|
607
586
|
label.state = curState = state;
|
|
@@ -610,31 +589,19 @@ class SVGRenderer {
|
|
|
610
589
|
label
|
|
611
590
|
.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/)
|
|
612
591
|
.addClass('highcharts-button-' +
|
|
613
|
-
['normal', 'hover', 'pressed', 'disabled'][state
|
|
592
|
+
['normal', 'hover', 'pressed', 'disabled'][state]);
|
|
614
593
|
if (!styledMode) {
|
|
615
|
-
label
|
|
616
|
-
|
|
617
|
-
normalState,
|
|
618
|
-
hoverState,
|
|
619
|
-
selectState,
|
|
620
|
-
disabledState
|
|
621
|
-
][state || 0]);
|
|
622
|
-
const css = [
|
|
623
|
-
normalStyle,
|
|
624
|
-
hoverStyle,
|
|
625
|
-
selectStyle,
|
|
626
|
-
disabledStyle
|
|
627
|
-
][state || 0];
|
|
594
|
+
label.attr(stateAttribs[state]);
|
|
595
|
+
const css = stateStyles[state];
|
|
628
596
|
if (isObject(css)) {
|
|
629
597
|
label.css(css);
|
|
630
598
|
}
|
|
631
599
|
}
|
|
632
600
|
};
|
|
601
|
+
label.attr(stateAttribs[0]);
|
|
633
602
|
// Presentational attributes
|
|
634
603
|
if (!styledMode) {
|
|
635
|
-
label
|
|
636
|
-
.attr(normalState)
|
|
637
|
-
.css(extend({ cursor: 'default' }, normalStyle));
|
|
604
|
+
label.css(extend({ cursor: 'default' }, normalStyle));
|
|
638
605
|
// HTML labels don't need to handle pointer events because click and
|
|
639
606
|
// mouseenter/mouseleave is bound to the underlying <g> element.
|
|
640
607
|
// Should this be reconsidered, we need more complex logic to share
|
|
@@ -664,26 +631,17 @@ class SVGRenderer {
|
|
|
664
631
|
* @param {number} width
|
|
665
632
|
* The width of the line.
|
|
666
633
|
*
|
|
667
|
-
* @param {string} [roundingFunction=round]
|
|
668
|
-
* The rounding function name on the `Math` object, can be one of
|
|
669
|
-
* `round`, `floor` or `ceil`.
|
|
670
|
-
*
|
|
671
634
|
* @return {Highcharts.SVGPathArray}
|
|
672
635
|
* The original points array, but modified to render crisply.
|
|
673
636
|
*/
|
|
674
|
-
crispLine(points, width
|
|
675
|
-
const start = points
|
|
676
|
-
const end = points[1];
|
|
637
|
+
crispLine(points, width) {
|
|
638
|
+
const [start, end] = points;
|
|
677
639
|
// Normalize to a crisp line
|
|
678
640
|
if (defined(start[1]) && start[1] === end[1]) {
|
|
679
|
-
|
|
680
|
-
// the same.
|
|
681
|
-
start[1] = end[1] =
|
|
682
|
-
Math[roundingFunction](start[1]) - (width % 2 / 2);
|
|
641
|
+
start[1] = end[1] = crisp(start[1], width);
|
|
683
642
|
}
|
|
684
643
|
if (defined(start[2]) && start[2] === end[2]) {
|
|
685
|
-
start[2] = end[2] =
|
|
686
|
-
Math[roundingFunction](start[2]) + (width % 2 / 2);
|
|
644
|
+
start[2] = end[2] = crisp(start[2], width);
|
|
687
645
|
}
|
|
688
646
|
return points;
|
|
689
647
|
}
|
|
@@ -1082,7 +1040,7 @@ class SVGRenderer {
|
|
|
1082
1040
|
if (symbolFn) {
|
|
1083
1041
|
// Check if there's a path defined for this symbol
|
|
1084
1042
|
if (typeof x === 'number') {
|
|
1085
|
-
path = symbolFn.call(this.symbols,
|
|
1043
|
+
path = symbolFn.call(this.symbols, x || 0, y || 0, width || 0, height || 0, options);
|
|
1086
1044
|
}
|
|
1087
1045
|
obj = this.path(path);
|
|
1088
1046
|
if (!ren.styledMode) {
|
|
@@ -22,11 +22,15 @@ const { defined, isNumber, pick } = U;
|
|
|
22
22
|
function arc(cx, cy, w, h, options) {
|
|
23
23
|
const arc = [];
|
|
24
24
|
if (options) {
|
|
25
|
-
const start = options.start || 0, rx = pick(options.r, w), ry = pick(options.r, h || w),
|
|
26
|
-
|
|
27
|
-
//
|
|
28
|
-
//
|
|
29
|
-
|
|
25
|
+
const start = options.start || 0, rx = pick(options.r, w), ry = pick(options.r, h || w),
|
|
26
|
+
// Subtract a small number to prevent cos and sin of start and end
|
|
27
|
+
// from becoming equal on 360 arcs (#1561). The size of the circle
|
|
28
|
+
// affects the constant, therefore the division by `rx`. If the
|
|
29
|
+
// proximity is too small, the arc disappears. If it is too great, a
|
|
30
|
+
// gap appears. This can be seen in the animation of the official
|
|
31
|
+
// bubble demo (#20586).
|
|
32
|
+
proximity = 0.0002 / Math.max(rx, 1), fullCircle = (Math.abs((options.end || 0) - start - 2 * Math.PI) <
|
|
33
|
+
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),
|
|
30
34
|
// Proximity takes care of rounding errors around PI (#6971)
|
|
31
35
|
longArc = pick(options.longArc, end - start - Math.PI < proximity ? 0 : 1);
|
|
32
36
|
let arcSegment = [
|
|
@@ -46,7 +46,7 @@ var DataLabel;
|
|
|
46
46
|
* @private
|
|
47
47
|
*/
|
|
48
48
|
function alignDataLabel(point, dataLabel, options, alignTo, isNew) {
|
|
49
|
-
const series = this, chart = this
|
|
49
|
+
const series = this, { chart, enabledDataSorting } = this, inverted = this.isCartesian && chart.inverted, plotX = point.plotX, plotY = point.plotY, rotation = options.rotation || 0, isInsidePlot = defined(plotX) &&
|
|
50
50
|
defined(plotY) &&
|
|
51
51
|
chart.isInsidePlot(plotX, Math.round(plotY), {
|
|
52
52
|
inverted,
|
|
@@ -66,10 +66,10 @@ var DataLabel;
|
|
|
66
66
|
(enabledDataSorting && !justify) ||
|
|
67
67
|
isInsidePlot ||
|
|
68
68
|
(
|
|
69
|
-
// If the data label is inside the align box, it is
|
|
70
|
-
//
|
|
71
|
-
//
|
|
72
|
-
//
|
|
69
|
+
// If the data label is inside the align box, it is enough
|
|
70
|
+
// that parts of the align box is inside the plot area
|
|
71
|
+
// (#12370). When stacking, it is always inside regardless
|
|
72
|
+
// of the option (#15148).
|
|
73
73
|
pick(options.inside, !!this.options.stacking) &&
|
|
74
74
|
alignTo &&
|
|
75
75
|
chart.isInsidePlot(plotX, inverted ?
|
|
@@ -95,6 +95,11 @@ var DataLabel;
|
|
|
95
95
|
width: 0,
|
|
96
96
|
height: 0
|
|
97
97
|
}, alignTo || {});
|
|
98
|
+
// Align to plot edges
|
|
99
|
+
if (options.alignTo === 'plotEdges' && series.isCartesian) {
|
|
100
|
+
alignTo[inverted ? 'x' : 'y'] = 0;
|
|
101
|
+
alignTo[inverted ? 'width' : 'height'] = this.yAxis?.len || 0;
|
|
102
|
+
}
|
|
98
103
|
// Add the text size for alignment calculation
|
|
99
104
|
extend(options, {
|
|
100
105
|
width: bBox.width,
|
|
@@ -432,10 +437,12 @@ var DataLabel;
|
|
|
432
437
|
* @private
|
|
433
438
|
*/
|
|
434
439
|
function justifyDataLabel(dataLabel, options, alignAttr, bBox, alignTo, isNew) {
|
|
435
|
-
const chart = this.chart, align = options.align, verticalAlign = options.verticalAlign, padding = dataLabel.box ? 0 : (dataLabel.padding || 0)
|
|
440
|
+
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 ?
|
|
441
|
+
horizontalAxis.left - chart.plotLeft : 0, verticalAxis = chart.inverted ? this.xAxis : this.yAxis, verticalAxisShift = verticalAxis ?
|
|
442
|
+
verticalAxis.top - chart.plotTop : 0;
|
|
436
443
|
let { x = 0, y = 0 } = options, off, justified;
|
|
437
444
|
// Off left
|
|
438
|
-
off = (alignAttr.x || 0) + padding;
|
|
445
|
+
off = (alignAttr.x || 0) + padding + horizontalAxisShift;
|
|
439
446
|
if (off < 0) {
|
|
440
447
|
if (align === 'right' && x >= 0) {
|
|
441
448
|
options.align = 'left';
|
|
@@ -447,7 +454,7 @@ var DataLabel;
|
|
|
447
454
|
justified = true;
|
|
448
455
|
}
|
|
449
456
|
// Off right
|
|
450
|
-
off = (alignAttr.x || 0) + bBox.width - padding;
|
|
457
|
+
off = (alignAttr.x || 0) + bBox.width - padding + horizontalAxisShift;
|
|
451
458
|
if (off > chart.plotWidth) {
|
|
452
459
|
if (align === 'left' && x <= 0) {
|
|
453
460
|
options.align = 'right';
|
|
@@ -459,7 +466,7 @@ var DataLabel;
|
|
|
459
466
|
justified = true;
|
|
460
467
|
}
|
|
461
468
|
// Off top
|
|
462
|
-
off = alignAttr.y + padding;
|
|
469
|
+
off = alignAttr.y + padding + verticalAxisShift;
|
|
463
470
|
if (off < 0) {
|
|
464
471
|
if (verticalAlign === 'bottom' && y >= 0) {
|
|
465
472
|
options.verticalAlign = 'top';
|
|
@@ -471,7 +478,7 @@ var DataLabel;
|
|
|
471
478
|
justified = true;
|
|
472
479
|
}
|
|
473
480
|
// Off bottom
|
|
474
|
-
off = (alignAttr.y || 0) + bBox.height - padding;
|
|
481
|
+
off = (alignAttr.y || 0) + bBox.height - padding + verticalAxisShift;
|
|
475
482
|
if (off > chart.plotHeight) {
|
|
476
483
|
if (verticalAlign === 'top' && y <= 0) {
|
|
477
484
|
options.verticalAlign = 'bottom';
|
|
@@ -16,7 +16,7 @@ const { defaultOptions } = D;
|
|
|
16
16
|
import F from '../Templating.js';
|
|
17
17
|
const { format } = F;
|
|
18
18
|
import U from '../Utilities.js';
|
|
19
|
-
const { addEvent, erase, extend, fireEvent, getNestedProperty, isArray, isFunction, isNumber, isObject, merge, pick, syncTimeout, removeEvent, uniqueKey } = U;
|
|
19
|
+
const { addEvent, crisp, erase, extend, fireEvent, getNestedProperty, isArray, isFunction, isNumber, isObject, merge, pick, syncTimeout, removeEvent, uniqueKey } = U;
|
|
20
20
|
/* eslint-disable no-invalid-this, valid-jsdoc */
|
|
21
21
|
/* *
|
|
22
22
|
*
|
|
@@ -1124,7 +1124,8 @@ class Point {
|
|
|
1124
1124
|
}, AST.filterUserAttributes(haloOptions.attributes || {})));
|
|
1125
1125
|
}
|
|
1126
1126
|
}
|
|
1127
|
-
else if (halo
|
|
1127
|
+
else if (halo?.point?.haloPath &&
|
|
1128
|
+
!halo.point.destroyed) {
|
|
1128
1129
|
// Animate back to 0 on the current halo point (#6055)
|
|
1129
1130
|
halo.animate({ d: halo.point.haloPath(0) }, null,
|
|
1130
1131
|
// Hide after unhovering. The `complete` callback runs in the
|
|
@@ -1147,7 +1148,7 @@ class Point {
|
|
|
1147
1148
|
*/
|
|
1148
1149
|
haloPath(size) {
|
|
1149
1150
|
const pos = this.pos();
|
|
1150
|
-
return pos ? this.series.chart.renderer.symbols.circle(
|
|
1151
|
+
return pos ? this.series.chart.renderer.symbols.circle(crisp(pos[0], 1) - size, pos[1] - size, size * 2, size * 2) : [];
|
|
1151
1152
|
}
|
|
1152
1153
|
}
|
|
1153
1154
|
/* *
|
|
@@ -23,7 +23,7 @@ import SeriesRegistry from './SeriesRegistry.js';
|
|
|
23
23
|
const { seriesTypes } = SeriesRegistry;
|
|
24
24
|
import SVGElement from '../Renderer/SVG/SVGElement.js';
|
|
25
25
|
import U from '../Utilities.js';
|
|
26
|
-
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;
|
|
26
|
+
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;
|
|
27
27
|
/* *
|
|
28
28
|
*
|
|
29
29
|
* Class
|
|
@@ -987,10 +987,7 @@ class Series {
|
|
|
987
987
|
* Force getting extremes of a total series data range.
|
|
988
988
|
*/
|
|
989
989
|
getProcessedData(forceExtremesFromAll) {
|
|
990
|
-
const series = this, xAxis = series.xAxis, options = series.options, cropThreshold = options.cropThreshold,
|
|
991
|
-
series.getExtremesFromAll ||
|
|
992
|
-
options.getExtremesFromAll, // #4599
|
|
993
|
-
logarithmic = xAxis?.logarithmic, isCartesian = series.isCartesian;
|
|
990
|
+
const series = this, xAxis = series.xAxis, options = series.options, cropThreshold = options.cropThreshold, logarithmic = xAxis?.logarithmic, isCartesian = series.isCartesian;
|
|
994
991
|
let croppedData, cropped, cropStart = 0, xExtremes, min, max,
|
|
995
992
|
// Copied during slice operation:
|
|
996
993
|
processedXData = series.xData, processedYData = series.yData, updatingNames = false;
|
|
@@ -1005,7 +1002,7 @@ class Series {
|
|
|
1005
1002
|
// Optionally filter out points outside the plot area
|
|
1006
1003
|
if (isCartesian &&
|
|
1007
1004
|
series.sorted &&
|
|
1008
|
-
!
|
|
1005
|
+
!forceExtremesFromAll &&
|
|
1009
1006
|
(!cropThreshold ||
|
|
1010
1007
|
dataLength > cropThreshold ||
|
|
1011
1008
|
series.forceCrop)) {
|
|
@@ -1246,16 +1243,24 @@ class Series {
|
|
|
1246
1243
|
* Force getting extremes of a total series data range.
|
|
1247
1244
|
*/
|
|
1248
1245
|
getExtremes(yData, forceExtremesFromAll) {
|
|
1249
|
-
const xAxis = this.xAxis, yAxis = this.yAxis,
|
|
1246
|
+
const xAxis = this.xAxis, yAxis = this.yAxis, activeYData = [],
|
|
1250
1247
|
// Handle X outside the viewed area. This does not work with
|
|
1251
1248
|
// non-sorted data like scatter (#7639).
|
|
1252
1249
|
shoulder = this.requireSorting && !this.is('column') ?
|
|
1253
1250
|
1 : 0,
|
|
1254
1251
|
// #2117, need to compensate for log X axis
|
|
1255
|
-
positiveValuesOnly = yAxis ? yAxis.positiveValuesOnly : false
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1252
|
+
positiveValuesOnly = yAxis ? yAxis.positiveValuesOnly : false, getExtremesFromAll = forceExtremesFromAll ||
|
|
1253
|
+
this.getExtremesFromAll ||
|
|
1254
|
+
this.options.getExtremesFromAll; // #4599
|
|
1255
|
+
let { processedXData, processedYData } = this, xExtremes, validValue, withinRange, x, y, i, j, xMin = 0, xMax = 0, activeCounter = 0;
|
|
1256
|
+
// Get the processed data from the full range (#21003)
|
|
1257
|
+
if (this.cropped && getExtremesFromAll) {
|
|
1258
|
+
const processedData = this.getProcessedData(true);
|
|
1259
|
+
processedXData = processedData.xData;
|
|
1260
|
+
processedYData = processedData.yData;
|
|
1261
|
+
}
|
|
1262
|
+
yData = yData || this.stackedYData || processedYData || [];
|
|
1263
|
+
const yDataLength = yData.length, xData = processedXData || this.xData;
|
|
1259
1264
|
if (xAxis) {
|
|
1260
1265
|
xExtremes = xAxis.getExtremes();
|
|
1261
1266
|
xMin = xExtremes.min;
|
|
@@ -1825,12 +1830,16 @@ class Series {
|
|
|
1825
1830
|
}
|
|
1826
1831
|
const pos = point.pos();
|
|
1827
1832
|
if (isNumber(radius) && pos) {
|
|
1828
|
-
attribs.x = pos[0] - radius;
|
|
1829
|
-
attribs.y = pos[1] - radius;
|
|
1830
1833
|
if (seriesOptions.crisp) {
|
|
1831
|
-
|
|
1832
|
-
|
|
1834
|
+
pos[0] = crisp(pos[0], point.hasImage ?
|
|
1835
|
+
0 :
|
|
1836
|
+
symbol === 'rect' ?
|
|
1837
|
+
// Rectangle symbols need crisp edges, others don't
|
|
1838
|
+
seriesMarkerOptions?.lineWidth || 0 :
|
|
1839
|
+
1);
|
|
1833
1840
|
}
|
|
1841
|
+
attribs.x = pos[0] - radius;
|
|
1842
|
+
attribs.y = pos[1] - radius;
|
|
1834
1843
|
}
|
|
1835
1844
|
if (radius) {
|
|
1836
1845
|
attribs.width = attribs.height = 2 * radius;
|
|
@@ -1447,6 +1447,21 @@ const seriesDefaults = {
|
|
|
1447
1447
|
* @type {Highcharts.AlignValue|null}
|
|
1448
1448
|
*/
|
|
1449
1449
|
align: 'center',
|
|
1450
|
+
/**
|
|
1451
|
+
* Alignment method for data labels. If set to `plotEdges`, the labels
|
|
1452
|
+
* are aligned within the plot area in the direction of the y-axis. So
|
|
1453
|
+
* in a regular column chart, the labels are aligned vertically
|
|
1454
|
+
* according to the `verticalAlign` setting. In a bar chart, which is
|
|
1455
|
+
* inverted, the labels are aligned horizontally according to the
|
|
1456
|
+
* `align` setting. Applies to cartesian series only.
|
|
1457
|
+
*
|
|
1458
|
+
* @sample {highcharts} highcharts/series-bar/datalabels-alignto/
|
|
1459
|
+
* Align to plot edges
|
|
1460
|
+
*
|
|
1461
|
+
* @type {string}
|
|
1462
|
+
* @since 11.4.2
|
|
1463
|
+
* @apioption plotOptions.series.dataLabels.alignTo
|
|
1464
|
+
*/
|
|
1450
1465
|
/**
|
|
1451
1466
|
* Whether to allow data labels to overlap. To make the labels less
|
|
1452
1467
|
* sensitive for overlapping, the
|
|
@@ -231,7 +231,7 @@ function format(str = '', ctx, chart) {
|
|
|
231
231
|
// Block helpers may return true or false. They may also return a
|
|
232
232
|
// string, like the `each` helper.
|
|
233
233
|
if (match.isBlock && typeof replacement === 'boolean') {
|
|
234
|
-
replacement = format(replacement ? body : elseBody, ctx);
|
|
234
|
+
replacement = format(replacement ? body : elseBody, ctx, chart);
|
|
235
235
|
}
|
|
236
236
|
// Simple variable replacement
|
|
237
237
|
}
|
|
@@ -348,6 +348,9 @@ function numberFormat(number, decimals, decimalPoint, thousandsSep) {
|
|
|
348
348
|
// Get the decimal component
|
|
349
349
|
ret += decimalPoint + roundedNumber.slice(-decimals);
|
|
350
350
|
}
|
|
351
|
+
else if (+ret === 0) { // Remove signed minus #20564
|
|
352
|
+
ret = '0';
|
|
353
|
+
}
|
|
351
354
|
if (exponent[1] && +ret !== 0) {
|
|
352
355
|
ret += 'e' + exponent[1];
|
|
353
356
|
}
|