@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
|
@@ -15,6 +15,7 @@ import H from '../../Core/Globals.js';
|
|
|
15
15
|
import RangeSelectorComposition from './RangeSelectorComposition.js';
|
|
16
16
|
import SVGElement from '../../Core/Renderer/SVG/SVGElement.js';
|
|
17
17
|
import U from '../../Core/Utilities.js';
|
|
18
|
+
import OrdinalAxis from '../../Core/Axis/OrdinalAxis.js';
|
|
18
19
|
const { addEvent, createElement, css, defined, destroyObjectProperties, discardElement, extend, fireEvent, isNumber, merge, objectEach, pad, pick, pInt, splat } = U;
|
|
19
20
|
/* *
|
|
20
21
|
*
|
|
@@ -80,7 +81,6 @@ class RangeSelector {
|
|
|
80
81
|
constructor(chart) {
|
|
81
82
|
this.buttonOptions = RangeSelector.prototype.defaultButtons;
|
|
82
83
|
this.initialButtonGroupWidth = 0;
|
|
83
|
-
this.chart = chart;
|
|
84
84
|
this.init(chart);
|
|
85
85
|
}
|
|
86
86
|
/* *
|
|
@@ -101,7 +101,7 @@ class RangeSelector {
|
|
|
101
101
|
clickButton(i, redraw) {
|
|
102
102
|
const rangeSelector = this, chart = rangeSelector.chart, rangeOptions = rangeSelector.buttonOptions[i], baseAxis = chart.xAxis[0], unionExtremes = (chart.scroller && chart.scroller.getUnionExtremes()) || baseAxis || {}, type = rangeOptions.type, dataGrouping = rangeOptions.dataGrouping;
|
|
103
103
|
let dataMin = unionExtremes.dataMin, dataMax = unionExtremes.dataMax, newMin, newMax = baseAxis && Math.round(Math.min(baseAxis.max, pick(dataMax, baseAxis.max))), // #1568
|
|
104
|
-
baseXAxisOptions, range = rangeOptions._range, rangeMin,
|
|
104
|
+
baseXAxisOptions, range = rangeOptions._range, rangeMin, ctx, ytdExtremes, addOffsetMin = true;
|
|
105
105
|
// Chart has no data, base series is removed
|
|
106
106
|
if (dataMin === null || dataMax === null) {
|
|
107
107
|
return;
|
|
@@ -199,16 +199,20 @@ class RangeSelector {
|
|
|
199
199
|
// Update the chart
|
|
200
200
|
if (!baseAxis) {
|
|
201
201
|
// Axis not yet instantiated. Temporarily set min and range
|
|
202
|
-
// options and remove them on
|
|
202
|
+
// options and axes once defined and remove them on
|
|
203
|
+
// chart load (#4317 & #20529).
|
|
203
204
|
baseXAxisOptions = splat(chart.options.xAxis)[0];
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
205
|
+
const axisRangeUpdateEvent = addEvent(chart, 'afterGetAxes', function () {
|
|
206
|
+
const xAxis = chart.xAxis[0];
|
|
207
|
+
xAxis.range = xAxis.options.range = range;
|
|
208
|
+
xAxis.min = xAxis.options.min = rangeMin;
|
|
209
|
+
});
|
|
208
210
|
addEvent(chart, 'load', function resetMinAndRange() {
|
|
211
|
+
const xAxis = chart.xAxis[0];
|
|
209
212
|
chart.setFixedRange(rangeOptions._range);
|
|
210
|
-
|
|
211
|
-
|
|
213
|
+
xAxis.options.range = baseXAxisOptions.range;
|
|
214
|
+
xAxis.options.min = baseXAxisOptions.min;
|
|
215
|
+
axisRangeUpdateEvent(); // Remove event
|
|
212
216
|
});
|
|
213
217
|
}
|
|
214
218
|
else {
|
|
@@ -282,6 +286,7 @@ class RangeSelector {
|
|
|
282
286
|
});
|
|
283
287
|
}
|
|
284
288
|
}));
|
|
289
|
+
this.createElements();
|
|
285
290
|
}
|
|
286
291
|
/**
|
|
287
292
|
* Dynamically update the range selector buttons after a new range has been
|
|
@@ -291,25 +296,25 @@ class RangeSelector {
|
|
|
291
296
|
* @function Highcharts.RangeSelector#updateButtonStates
|
|
292
297
|
*/
|
|
293
298
|
updateButtonStates() {
|
|
294
|
-
const rangeSelector = this, chart = this.chart, dropdown = this.dropdown, baseAxis = chart.xAxis[0], actualRange = Math.round(baseAxis.max - baseAxis.min), hasNoData = !baseAxis.hasVisibleSeries, day = 24 * 36e5, // A single day in milliseconds
|
|
299
|
+
const rangeSelector = this, chart = this.chart, dropdown = this.dropdown, dropdownLabel = this.dropdownLabel, baseAxis = chart.xAxis[0], actualRange = Math.round(baseAxis.max - baseAxis.min), hasNoData = !baseAxis.hasVisibleSeries, day = 24 * 36e5, // A single day in milliseconds
|
|
295
300
|
unionExtremes = (chart.scroller &&
|
|
296
|
-
chart.scroller.getUnionExtremes()) || baseAxis, dataMin = unionExtremes.dataMin, dataMax = unionExtremes.dataMax, ytdExtremes = rangeSelector.getYTDExtremes(dataMax, dataMin, chart.time.useUTC), ytdMin = ytdExtremes.min, ytdMax = ytdExtremes.max, selected = rangeSelector.selected, allButtonsEnabled = rangeSelector.options.allButtonsEnabled,
|
|
297
|
-
|
|
301
|
+
chart.scroller.getUnionExtremes()) || baseAxis, dataMin = unionExtremes.dataMin, dataMax = unionExtremes.dataMax, ytdExtremes = rangeSelector.getYTDExtremes(dataMax, dataMin, chart.time.useUTC), ytdMin = ytdExtremes.min, ytdMax = ytdExtremes.max, selected = rangeSelector.selected, allButtonsEnabled = rangeSelector.options.allButtonsEnabled, buttonStates = new Array(rangeSelector.buttonOptions.length)
|
|
302
|
+
.fill(0), selectedExists = isNumber(selected), buttons = rangeSelector.buttons;
|
|
303
|
+
let isSelectedTooGreat = false, selectedIndex = null;
|
|
298
304
|
rangeSelector.buttonOptions.forEach((rangeOptions, i) => {
|
|
299
|
-
const range = rangeOptions._range, type = rangeOptions.type, count = rangeOptions.count || 1,
|
|
305
|
+
const range = rangeOptions._range, type = rangeOptions.type, count = rangeOptions.count || 1, offsetRange = rangeOptions._offsetMax -
|
|
300
306
|
rangeOptions._offsetMin, isSelected = i === selected,
|
|
301
|
-
// Disable buttons where the range exceeds what is allowed
|
|
307
|
+
// Disable buttons where the range exceeds what is allowed i;
|
|
302
308
|
// the current view
|
|
303
309
|
isTooGreatRange = range >
|
|
304
310
|
dataMax - dataMin,
|
|
305
311
|
// Disable buttons where the range is smaller than the minimum
|
|
306
312
|
// range
|
|
307
313
|
isTooSmallRange = range < baseAxis.minRange;
|
|
308
|
-
let state = 0,
|
|
309
314
|
// Do not select the YTD button if not explicitly told so
|
|
310
|
-
isYTDButNotSelected = false,
|
|
315
|
+
let isYTDButNotSelected = false,
|
|
311
316
|
// Disable the All button if we're already showing all
|
|
312
|
-
|
|
317
|
+
isSameRange = range === actualRange;
|
|
313
318
|
if (isSelected && isTooGreatRange) {
|
|
314
319
|
isSelectedTooGreat = true;
|
|
315
320
|
}
|
|
@@ -318,8 +323,9 @@ class RangeSelector {
|
|
|
318
323
|
range &&
|
|
319
324
|
actualRange < range) {
|
|
320
325
|
// Handle ordinal ranges
|
|
321
|
-
const positions = baseAxis.ordinal.positions;
|
|
322
|
-
if (positions[
|
|
326
|
+
const positions = baseAxis.ordinal.positions, prevOrdinalPosition = OrdinalAxis.Additions.findIndexOf(positions, baseAxis.min, true), nextOrdinalPosition = Math.min(OrdinalAxis.Additions.findIndexOf(positions, baseAxis.max, true) + 1, positions.length - 1);
|
|
327
|
+
if (positions[nextOrdinalPosition] -
|
|
328
|
+
positions[prevOrdinalPosition] > range) {
|
|
323
329
|
isSameRange = true;
|
|
324
330
|
}
|
|
325
331
|
}
|
|
@@ -339,9 +345,6 @@ class RangeSelector {
|
|
|
339
345
|
else if (type === 'all') {
|
|
340
346
|
isSameRange = (baseAxis.max - baseAxis.min >=
|
|
341
347
|
dataMax - dataMin);
|
|
342
|
-
isAllButAlreadyShowingAll = (!isSelected &&
|
|
343
|
-
selectedExists &&
|
|
344
|
-
isSameRange);
|
|
345
348
|
}
|
|
346
349
|
// The new zoom area happens to match the range for a button - mark
|
|
347
350
|
// it selected. This happens when scrolling across an ordinal gap.
|
|
@@ -351,38 +354,56 @@ class RangeSelector {
|
|
|
351
354
|
!(isSelectedTooGreat && type === 'all') &&
|
|
352
355
|
(isTooGreatRange ||
|
|
353
356
|
isTooSmallRange ||
|
|
354
|
-
isAllButAlreadyShowingAll ||
|
|
355
357
|
hasNoData));
|
|
356
358
|
const select = ((isSelectedTooGreat && type === 'all') ||
|
|
357
|
-
(
|
|
358
|
-
(isSameRange && !selectedExists && !isYTDButNotSelected) ||
|
|
359
|
+
(isYTDButNotSelected ? false : isSameRange) ||
|
|
359
360
|
(isSelected && rangeSelector.frozenStates));
|
|
360
361
|
if (disable) {
|
|
361
|
-
|
|
362
|
+
buttonStates[i] = 3;
|
|
362
363
|
}
|
|
363
364
|
else if (select) {
|
|
364
|
-
selectedExists
|
|
365
|
-
|
|
365
|
+
if (!selectedExists || i === selected) {
|
|
366
|
+
selectedIndex = i;
|
|
367
|
+
}
|
|
366
368
|
}
|
|
367
|
-
|
|
369
|
+
});
|
|
370
|
+
if (selectedIndex !== null) {
|
|
371
|
+
buttonStates[selectedIndex] = 2;
|
|
372
|
+
rangeSelector.setSelected(selectedIndex);
|
|
373
|
+
}
|
|
374
|
+
else {
|
|
375
|
+
rangeSelector.setSelected();
|
|
376
|
+
if (dropdownLabel) {
|
|
377
|
+
dropdownLabel.setState(0);
|
|
378
|
+
dropdownLabel.attr({
|
|
379
|
+
text: (defaultOptions.lang.rangeSelectorZoom || '') + ' ▾'
|
|
380
|
+
});
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
for (let i = 0; i < buttonStates.length; i++) {
|
|
384
|
+
const state = buttonStates[i];
|
|
385
|
+
const button = buttons[i];
|
|
368
386
|
if (button.state !== state) {
|
|
369
387
|
button.setState(state);
|
|
370
388
|
if (dropdown) {
|
|
371
|
-
dropdown.options[i + 1].disabled =
|
|
389
|
+
dropdown.options[i + 1].disabled = (state === 3);
|
|
372
390
|
if (state === 2) {
|
|
391
|
+
if (dropdownLabel) {
|
|
392
|
+
dropdownLabel.setState(2);
|
|
393
|
+
dropdownLabel.attr({
|
|
394
|
+
text: rangeSelector.buttonOptions[i].text + ' ▾'
|
|
395
|
+
});
|
|
396
|
+
}
|
|
373
397
|
dropdown.selectedIndex = i + 1;
|
|
374
398
|
}
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
else if ((state === 2 && !defined(selected)) ||
|
|
381
|
-
isSelectedTooGreat) {
|
|
382
|
-
rangeSelector.setSelected(i);
|
|
399
|
+
const bbox = dropdownLabel.getBBox();
|
|
400
|
+
css(dropdown, {
|
|
401
|
+
width: `${bbox.width}px`,
|
|
402
|
+
height: `${bbox.height}px`
|
|
403
|
+
});
|
|
383
404
|
}
|
|
384
405
|
}
|
|
385
|
-
}
|
|
406
|
+
}
|
|
386
407
|
}
|
|
387
408
|
/**
|
|
388
409
|
* Compute and cache the range for an individual button
|
|
@@ -580,12 +601,10 @@ class RangeSelector {
|
|
|
580
601
|
/**
|
|
581
602
|
* @private
|
|
582
603
|
*/
|
|
583
|
-
function updateExtremes() {
|
|
584
|
-
const { maxInput, minInput } = rangeSelector, chartAxis = chart.xAxis[0], unionExtremes =
|
|
604
|
+
function updateExtremes(name) {
|
|
605
|
+
const { maxInput, minInput } = rangeSelector, chartAxis = chart.xAxis[0], unionExtremes = chart.scroller?.getUnionExtremes() || chartAxis, dataMin = unionExtremes.dataMin, dataMax = unionExtremes.dataMax, currentExtreme = chart.xAxis[0].getExtremes()[name];
|
|
585
606
|
let value = rangeSelector.getInputValue(name);
|
|
586
|
-
if (value !==
|
|
587
|
-
isNumber(value)) {
|
|
588
|
-
input.setAttribute('data-hc-time-previous', value);
|
|
607
|
+
if (isNumber(value) && value !== currentExtreme) {
|
|
589
608
|
// Validate the extremes. If it goes beyond the data min or
|
|
590
609
|
// max, use the actual data extreme (#2438).
|
|
591
610
|
if (isMin && maxInput && isNumber(dataMin)) {
|
|
@@ -682,7 +701,7 @@ class RangeSelector {
|
|
|
682
701
|
if (input === H.doc.activeElement) { // Only when focused
|
|
683
702
|
// Update also when no `change` event is triggered, like when
|
|
684
703
|
// clicking inside the SVG (#4710)
|
|
685
|
-
updateExtremes();
|
|
704
|
+
updateExtremes(name);
|
|
686
705
|
}
|
|
687
706
|
// #10404 - move hide and blur outside focus
|
|
688
707
|
rangeSelector.hideInput(name);
|
|
@@ -694,7 +713,7 @@ class RangeSelector {
|
|
|
694
713
|
input.onchange = () => {
|
|
695
714
|
// Update extremes and blur input when clicking date input calendar
|
|
696
715
|
if (!keyDown) {
|
|
697
|
-
updateExtremes();
|
|
716
|
+
updateExtremes(name);
|
|
698
717
|
rangeSelector.hideInput(name);
|
|
699
718
|
input.blur();
|
|
700
719
|
}
|
|
@@ -702,14 +721,16 @@ class RangeSelector {
|
|
|
702
721
|
input.onkeypress = (event) => {
|
|
703
722
|
// IE does not fire onchange on enter
|
|
704
723
|
if (event.keyCode === 13) {
|
|
705
|
-
updateExtremes();
|
|
724
|
+
updateExtremes(name);
|
|
706
725
|
}
|
|
707
726
|
};
|
|
708
727
|
input.onkeydown = (event) => {
|
|
709
728
|
keyDown = true;
|
|
710
729
|
// Arrow keys
|
|
711
|
-
if (event.
|
|
712
|
-
|
|
730
|
+
if (event.key === 'ArrowUp' ||
|
|
731
|
+
event.key === 'ArrowDown' ||
|
|
732
|
+
event.key === 'Tab') {
|
|
733
|
+
updateExtremes(name);
|
|
713
734
|
}
|
|
714
735
|
};
|
|
715
736
|
input.onkeyup = () => {
|
|
@@ -752,6 +773,42 @@ class RangeSelector {
|
|
|
752
773
|
min
|
|
753
774
|
};
|
|
754
775
|
}
|
|
776
|
+
createElements() {
|
|
777
|
+
const chart = this.chart, renderer = chart.renderer, container = chart.container, chartOptions = chart.options, options = chartOptions.rangeSelector, inputEnabled = options.inputEnabled, inputsZIndex = pick(chartOptions.chart.style?.zIndex, 0) + 1;
|
|
778
|
+
if (options.enabled === false) {
|
|
779
|
+
return;
|
|
780
|
+
}
|
|
781
|
+
this.group = renderer.g('range-selector-group')
|
|
782
|
+
.attr({
|
|
783
|
+
zIndex: 7
|
|
784
|
+
})
|
|
785
|
+
.add();
|
|
786
|
+
this.div = createElement('div', void 0, {
|
|
787
|
+
position: 'relative',
|
|
788
|
+
height: 0,
|
|
789
|
+
zIndex: inputsZIndex
|
|
790
|
+
});
|
|
791
|
+
if (this.buttonOptions.length) {
|
|
792
|
+
this.renderButtons();
|
|
793
|
+
}
|
|
794
|
+
// First create a wrapper outside the container in order to make
|
|
795
|
+
// the inputs work and make export correct
|
|
796
|
+
if (container.parentNode) {
|
|
797
|
+
container.parentNode.insertBefore(this.div, container);
|
|
798
|
+
}
|
|
799
|
+
if (inputEnabled) {
|
|
800
|
+
// Create the group to keep the inputs
|
|
801
|
+
this.inputGroup = renderer.g('input-group').add(this.group);
|
|
802
|
+
const minElems = this.drawInput('min');
|
|
803
|
+
this.minDateBox = minElems.dateBox;
|
|
804
|
+
this.minLabel = minElems.label;
|
|
805
|
+
this.minInput = minElems.input;
|
|
806
|
+
const maxElems = this.drawInput('max');
|
|
807
|
+
this.maxDateBox = maxElems.dateBox;
|
|
808
|
+
this.maxLabel = maxElems.label;
|
|
809
|
+
this.maxInput = maxElems.input;
|
|
810
|
+
}
|
|
811
|
+
}
|
|
755
812
|
/**
|
|
756
813
|
* Render the range selector including the buttons and the inputs. The first
|
|
757
814
|
* time render is called, the elements are created and positioned. On
|
|
@@ -765,46 +822,12 @@ class RangeSelector {
|
|
|
765
822
|
* X axis maximum
|
|
766
823
|
*/
|
|
767
824
|
render(min, max) {
|
|
768
|
-
const chart = this.chart,
|
|
825
|
+
const chart = this.chart, chartOptions = chart.options, options = chartOptions.rangeSelector,
|
|
769
826
|
// Place inputs above the container
|
|
770
|
-
|
|
771
|
-
chartOptions.chart.style.zIndex, 0) + 1, inputEnabled = options.inputEnabled, rendered = this.rendered;
|
|
827
|
+
inputEnabled = options.inputEnabled;
|
|
772
828
|
if (options.enabled === false) {
|
|
773
829
|
return;
|
|
774
830
|
}
|
|
775
|
-
// Create the elements
|
|
776
|
-
if (!rendered) {
|
|
777
|
-
this.group = renderer.g('range-selector-group')
|
|
778
|
-
.attr({
|
|
779
|
-
zIndex: 7
|
|
780
|
-
})
|
|
781
|
-
.add();
|
|
782
|
-
this.div = createElement('div', void 0, {
|
|
783
|
-
position: 'relative',
|
|
784
|
-
height: 0,
|
|
785
|
-
zIndex: inputsZIndex
|
|
786
|
-
});
|
|
787
|
-
if (this.buttonOptions.length) {
|
|
788
|
-
this.renderButtons();
|
|
789
|
-
}
|
|
790
|
-
// First create a wrapper outside the container in order to make
|
|
791
|
-
// the inputs work and make export correct
|
|
792
|
-
if (container.parentNode) {
|
|
793
|
-
container.parentNode.insertBefore(this.div, container);
|
|
794
|
-
}
|
|
795
|
-
if (inputEnabled) {
|
|
796
|
-
// Create the group to keep the inputs
|
|
797
|
-
this.inputGroup = renderer.g('input-group').add(this.group);
|
|
798
|
-
const minElems = this.drawInput('min');
|
|
799
|
-
this.minDateBox = minElems.dateBox;
|
|
800
|
-
this.minLabel = minElems.label;
|
|
801
|
-
this.minInput = minElems.input;
|
|
802
|
-
const maxElems = this.drawInput('max');
|
|
803
|
-
this.maxDateBox = maxElems.dateBox;
|
|
804
|
-
this.maxLabel = maxElems.label;
|
|
805
|
-
this.maxInput = maxElems.input;
|
|
806
|
-
}
|
|
807
|
-
}
|
|
808
831
|
if (inputEnabled) {
|
|
809
832
|
// Set or reset the input values
|
|
810
833
|
this.setInputValue('min', min);
|
|
@@ -836,7 +859,7 @@ class RangeSelector {
|
|
|
836
859
|
}
|
|
837
860
|
}
|
|
838
861
|
this.alignElements();
|
|
839
|
-
this.
|
|
862
|
+
this.updateButtonStates();
|
|
840
863
|
}
|
|
841
864
|
/**
|
|
842
865
|
* Render the range buttons. This only runs the first time, later the
|
|
@@ -860,33 +883,39 @@ class RangeSelector {
|
|
|
860
883
|
this.buttonGroup = renderer.g('range-selector-buttons').add(this.group);
|
|
861
884
|
const dropdown = this.dropdown = createElement('select', void 0, {
|
|
862
885
|
position: 'absolute',
|
|
863
|
-
width: '1px',
|
|
864
|
-
height: '1px',
|
|
865
886
|
padding: 0,
|
|
866
887
|
border: 0,
|
|
867
|
-
top: '-9999em',
|
|
868
888
|
cursor: 'pointer',
|
|
869
889
|
opacity: 0.0001
|
|
870
890
|
}, this.div);
|
|
891
|
+
// Create a label for dropdown select element
|
|
892
|
+
const userButtonTheme = chart.userOptions.rangeSelector?.buttonTheme;
|
|
893
|
+
this.dropdownLabel = renderer.button('', 0, 0, () => { }, merge(buttonTheme, {
|
|
894
|
+
'stroke-width': pick(buttonTheme['stroke-width'], 0),
|
|
895
|
+
width: 'auto',
|
|
896
|
+
paddingLeft: pick(options.buttonTheme.paddingLeft, userButtonTheme?.padding, 8),
|
|
897
|
+
paddingRight: pick(options.buttonTheme.paddingRight, userButtonTheme?.padding, 8)
|
|
898
|
+
}), states && states.hover, states && states.select, states && states.disabled)
|
|
899
|
+
.hide()
|
|
900
|
+
.add(this.group);
|
|
871
901
|
// Prevent page zoom on iPhone
|
|
872
902
|
addEvent(dropdown, 'touchstart', () => {
|
|
873
903
|
dropdown.style.fontSize = '16px';
|
|
874
904
|
});
|
|
875
905
|
// Forward events from select to button
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
});
|
|
906
|
+
const mouseOver = H.isMS ? 'mouseover' : 'mouseenter', mouseOut = H.isMS ? 'mouseout' : 'mouseleave';
|
|
907
|
+
addEvent(dropdown, mouseOver, () => {
|
|
908
|
+
fireEvent(this.dropdownLabel.element, mouseOver);
|
|
909
|
+
});
|
|
910
|
+
addEvent(dropdown, mouseOut, () => {
|
|
911
|
+
fireEvent(this.dropdownLabel.element, mouseOut);
|
|
912
|
+
});
|
|
913
|
+
addEvent(dropdown, 'change', () => {
|
|
914
|
+
const button = this.buttons[dropdown.selectedIndex - 1];
|
|
915
|
+
fireEvent(button.element, 'click');
|
|
887
916
|
});
|
|
888
917
|
this.zoomText = renderer
|
|
889
|
-
.label(
|
|
918
|
+
.label(lang.rangeSelectorZoom || '', 0)
|
|
890
919
|
.attr({
|
|
891
920
|
padding: options.buttonTheme.padding,
|
|
892
921
|
height: options.buttonTheme.height,
|
|
@@ -978,10 +1007,13 @@ class RangeSelector {
|
|
|
978
1007
|
this.initialButtonGroupWidth = width;
|
|
979
1008
|
}
|
|
980
1009
|
plotLeft -= chart.spacing[3];
|
|
981
|
-
this.updateButtonStates();
|
|
982
1010
|
// Detect collision between button group and exporting
|
|
983
1011
|
const xOffsetForExportButton = getXOffsetForExportButton(buttonGroup, buttonPosition);
|
|
984
1012
|
this.alignButtonGroup(xOffsetForExportButton);
|
|
1013
|
+
if (this.buttonGroup?.translateY) {
|
|
1014
|
+
this.dropdownLabel
|
|
1015
|
+
.attr({ y: this.buttonGroup.translateY });
|
|
1016
|
+
}
|
|
985
1017
|
// Skip animation
|
|
986
1018
|
group.placed = buttonGroup.placed = chart.hasLoaded;
|
|
987
1019
|
}
|
|
@@ -1151,7 +1183,7 @@ class RangeSelector {
|
|
|
1151
1183
|
return buttonWidth;
|
|
1152
1184
|
};
|
|
1153
1185
|
const groupsOverlap = (buttonGroupWidth) => {
|
|
1154
|
-
if (inputGroup && buttonGroup) {
|
|
1186
|
+
if (inputGroup?.alignOptions && buttonGroup) {
|
|
1155
1187
|
const inputGroupX = (inputGroup.alignAttr.translateX +
|
|
1156
1188
|
inputGroup.alignOptions.x -
|
|
1157
1189
|
xOffsetForExportButton +
|
|
@@ -1159,7 +1191,7 @@ class RangeSelector {
|
|
|
1159
1191
|
inputGroup.getBBox().x +
|
|
1160
1192
|
// 2px padding to not overlap input and label
|
|
1161
1193
|
2);
|
|
1162
|
-
const inputGroupWidth = inputGroup.alignOptions.width;
|
|
1194
|
+
const inputGroupWidth = inputGroup.alignOptions.width || 0;
|
|
1163
1195
|
const buttonGroupX = buttonGroup.alignAttr.translateX +
|
|
1164
1196
|
buttonGroup.getBBox().x;
|
|
1165
1197
|
return (buttonGroupX + buttonGroupWidth > inputGroupX) &&
|
|
@@ -1183,7 +1215,7 @@ class RangeSelector {
|
|
|
1183
1215
|
};
|
|
1184
1216
|
if (buttonGroup) {
|
|
1185
1217
|
if (dropdown === 'always') {
|
|
1186
|
-
this.collapseButtons(
|
|
1218
|
+
this.collapseButtons();
|
|
1187
1219
|
if (groupsOverlap(maxButtonWidth())) {
|
|
1188
1220
|
// Move the inputs down if there is still a collision
|
|
1189
1221
|
// after collapsing the buttons
|
|
@@ -1201,7 +1233,7 @@ class RangeSelector {
|
|
|
1201
1233
|
// 20 is minimal spacing between elements
|
|
1202
1234
|
groupsOverlap(this.initialButtonGroupWidth + 20)) {
|
|
1203
1235
|
if (dropdown === 'responsive') {
|
|
1204
|
-
this.collapseButtons(
|
|
1236
|
+
this.collapseButtons();
|
|
1205
1237
|
if (groupsOverlap(maxButtonWidth())) {
|
|
1206
1238
|
moveInputsDown();
|
|
1207
1239
|
}
|
|
@@ -1216,7 +1248,7 @@ class RangeSelector {
|
|
|
1216
1248
|
}
|
|
1217
1249
|
else if (buttonGroup && dropdown === 'responsive') {
|
|
1218
1250
|
if (this.initialButtonGroupWidth > chart.plotWidth) {
|
|
1219
|
-
this.collapseButtons(
|
|
1251
|
+
this.collapseButtons();
|
|
1220
1252
|
}
|
|
1221
1253
|
else {
|
|
1222
1254
|
this.expandButtons();
|
|
@@ -1224,54 +1256,20 @@ class RangeSelector {
|
|
|
1224
1256
|
}
|
|
1225
1257
|
}
|
|
1226
1258
|
/**
|
|
1227
|
-
* Collapse the buttons and
|
|
1259
|
+
* Collapse the buttons and show the select element.
|
|
1228
1260
|
*
|
|
1229
1261
|
* @private
|
|
1230
1262
|
* @function Highcharts.RangeSelector#collapseButtons
|
|
1231
1263
|
* @param {number} xOffsetForExportButton
|
|
1232
1264
|
*/
|
|
1233
|
-
collapseButtons(
|
|
1234
|
-
const { buttons,
|
|
1235
|
-
// If the buttons are already collapsed do nothing.
|
|
1265
|
+
collapseButtons() {
|
|
1266
|
+
const { buttons, zoomText } = this;
|
|
1236
1267
|
if (this.isCollapsed === true) {
|
|
1237
1268
|
return;
|
|
1238
1269
|
}
|
|
1239
1270
|
this.isCollapsed = true;
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
const getAttribs = (text) => ({
|
|
1243
|
-
text: text ? `${text} ▾` : '▾',
|
|
1244
|
-
width: 'auto',
|
|
1245
|
-
paddingLeft: pick(options.buttonTheme.paddingLeft, userButtonTheme.padding, 8),
|
|
1246
|
-
paddingRight: pick(options.buttonTheme.paddingRight, userButtonTheme.padding, 8)
|
|
1247
|
-
});
|
|
1248
|
-
if (zoomText) {
|
|
1249
|
-
zoomText.hide();
|
|
1250
|
-
}
|
|
1251
|
-
let hasActiveButton = false;
|
|
1252
|
-
buttonOptions.forEach((rangeOptions, i) => {
|
|
1253
|
-
const button = buttons[i];
|
|
1254
|
-
if (button.state !== 2) {
|
|
1255
|
-
button.hide();
|
|
1256
|
-
}
|
|
1257
|
-
else {
|
|
1258
|
-
button.show();
|
|
1259
|
-
button.attr(getAttribs(rangeOptions.text));
|
|
1260
|
-
hasActiveButton = true;
|
|
1261
|
-
}
|
|
1262
|
-
});
|
|
1263
|
-
if (!hasActiveButton) {
|
|
1264
|
-
if (dropdown) {
|
|
1265
|
-
dropdown.selectedIndex = 0;
|
|
1266
|
-
}
|
|
1267
|
-
buttons[0].show();
|
|
1268
|
-
buttons[0].attr(getAttribs(this.zoomText && this.zoomText.textStr));
|
|
1269
|
-
}
|
|
1270
|
-
const { align } = options.buttonPosition;
|
|
1271
|
-
this.positionButtons();
|
|
1272
|
-
if (align === 'right' || align === 'center') {
|
|
1273
|
-
this.alignButtonGroup(xOffsetForExportButton, buttons[this.currentButtonIndex()].getBBox().width);
|
|
1274
|
-
}
|
|
1271
|
+
zoomText.hide();
|
|
1272
|
+
buttons.forEach((button) => void button.hide());
|
|
1275
1273
|
this.showDropdown();
|
|
1276
1274
|
}
|
|
1277
1275
|
/**
|
|
@@ -1281,44 +1279,16 @@ class RangeSelector {
|
|
|
1281
1279
|
* @function Highcharts.RangeSelector#expandButtons
|
|
1282
1280
|
*/
|
|
1283
1281
|
expandButtons() {
|
|
1284
|
-
const { buttons,
|
|
1285
|
-
this.hideDropdown();
|
|
1286
|
-
// If buttons are already not collapsed, do nothing.
|
|
1282
|
+
const { buttons, zoomText } = this;
|
|
1287
1283
|
if (this.isCollapsed === false) {
|
|
1288
1284
|
return;
|
|
1289
1285
|
}
|
|
1290
1286
|
this.isCollapsed = false;
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
buttonOptions.forEach((rangeOptions, i) => {
|
|
1295
|
-
const button = buttons[i];
|
|
1296
|
-
button.show();
|
|
1297
|
-
button.attr({
|
|
1298
|
-
text: rangeOptions.text,
|
|
1299
|
-
width: options.buttonTheme.width || 28,
|
|
1300
|
-
paddingLeft: pick(options.buttonTheme.paddingLeft, 'unset'),
|
|
1301
|
-
paddingRight: pick(options.buttonTheme.paddingRight, 'unset')
|
|
1302
|
-
});
|
|
1303
|
-
if (button.state < 2) {
|
|
1304
|
-
button.setState(0);
|
|
1305
|
-
}
|
|
1306
|
-
});
|
|
1287
|
+
this.hideDropdown();
|
|
1288
|
+
zoomText.show();
|
|
1289
|
+
buttons.forEach((button) => void button.show());
|
|
1307
1290
|
this.positionButtons();
|
|
1308
1291
|
}
|
|
1309
|
-
/**
|
|
1310
|
-
* Get the index of the visible button when the buttons are collapsed.
|
|
1311
|
-
*
|
|
1312
|
-
* @private
|
|
1313
|
-
* @function Highcharts.RangeSelector#currentButtonIndex
|
|
1314
|
-
*/
|
|
1315
|
-
currentButtonIndex() {
|
|
1316
|
-
const { dropdown } = this;
|
|
1317
|
-
if (dropdown && dropdown.selectedIndex > 0) {
|
|
1318
|
-
return dropdown.selectedIndex - 1;
|
|
1319
|
-
}
|
|
1320
|
-
return 0;
|
|
1321
|
-
}
|
|
1322
1292
|
/**
|
|
1323
1293
|
* Position the select element on top of the button.
|
|
1324
1294
|
*
|
|
@@ -1326,14 +1296,16 @@ class RangeSelector {
|
|
|
1326
1296
|
* @function Highcharts.RangeSelector#showDropdown
|
|
1327
1297
|
*/
|
|
1328
1298
|
showDropdown() {
|
|
1329
|
-
const { buttonGroup,
|
|
1299
|
+
const { buttonGroup, chart, dropdownLabel, dropdown } = this;
|
|
1330
1300
|
if (buttonGroup && dropdown) {
|
|
1331
|
-
const { translateX = 0, translateY = 0 } = buttonGroup,
|
|
1301
|
+
const { translateX = 0, translateY = 0 } = buttonGroup, left = chart.plotLeft + translateX, top = translateY;
|
|
1302
|
+
dropdownLabel
|
|
1303
|
+
.attr({ x: left, y: top })
|
|
1304
|
+
.show();
|
|
1332
1305
|
css(dropdown, {
|
|
1333
|
-
left:
|
|
1334
|
-
top:
|
|
1335
|
-
|
|
1336
|
-
height: bBox.height + 'px'
|
|
1306
|
+
left: left + 'px',
|
|
1307
|
+
top: top + 'px',
|
|
1308
|
+
visibility: 'inherit'
|
|
1337
1309
|
});
|
|
1338
1310
|
this.hasVisibleDropdown = true;
|
|
1339
1311
|
}
|
|
@@ -1345,8 +1317,9 @@ class RangeSelector {
|
|
|
1345
1317
|
hideDropdown() {
|
|
1346
1318
|
const { dropdown } = this;
|
|
1347
1319
|
if (dropdown) {
|
|
1320
|
+
this.dropdownLabel.hide();
|
|
1348
1321
|
css(dropdown, {
|
|
1349
|
-
|
|
1322
|
+
visibility: 'hidden',
|
|
1350
1323
|
width: '1px',
|
|
1351
1324
|
height: '1px'
|
|
1352
1325
|
});
|
|
@@ -1401,12 +1374,14 @@ class RangeSelector {
|
|
|
1401
1374
|
* @function Highcharts.RangeSelector#update
|
|
1402
1375
|
* @param {Highcharts.RangeSelectorOptions} options
|
|
1403
1376
|
*/
|
|
1404
|
-
update(options) {
|
|
1377
|
+
update(options, redraw = true) {
|
|
1405
1378
|
const chart = this.chart;
|
|
1406
1379
|
merge(true, chart.options.rangeSelector, options);
|
|
1407
1380
|
this.destroy();
|
|
1408
1381
|
this.init(chart);
|
|
1409
|
-
|
|
1382
|
+
if (redraw) {
|
|
1383
|
+
this.render();
|
|
1384
|
+
}
|
|
1410
1385
|
}
|
|
1411
1386
|
/**
|
|
1412
1387
|
* Destroys allocated elements.
|