@ntlab/ntjs-assets 2.0.21 → 2.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/js/cdn.json +1 -1
- package/assets/js/highcharts/css/highcharts.css +74 -0
- package/assets/js/highcharts/es-modules/Accessibility/Components/LegendComponent.js +1 -1
- package/assets/js/highcharts/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +1 -1
- package/assets/js/highcharts/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +9 -2
- package/assets/js/highcharts/es-modules/Core/Axis/Axis.js +25 -15
- package/assets/js/highcharts/es-modules/Core/Axis/AxisDefaults.js +3 -2
- package/assets/js/highcharts/es-modules/Core/Axis/Color/ColorAxis.js +1 -1
- package/assets/js/highcharts/es-modules/Core/Axis/Color/ColorAxisDefaults.js +2 -2
- package/assets/js/highcharts/es-modules/Core/Axis/GridAxis.js +1 -1
- package/assets/js/highcharts/es-modules/Core/Axis/OrdinalAxis.js +1 -1
- package/assets/js/highcharts/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +10 -0
- package/assets/js/highcharts/es-modules/Core/Axis/RadialAxis.js +19 -113
- package/assets/js/highcharts/es-modules/Core/Axis/RadialAxisDefaults.js +128 -0
- package/assets/js/highcharts/es-modules/Core/Axis/Tick.js +9 -13
- package/assets/js/highcharts/es-modules/Core/Chart/Chart.js +21 -17
- package/assets/js/highcharts/es-modules/Core/Chart/ChartDefaults.js +4 -2
- package/assets/js/highcharts/es-modules/Core/Chart/StockChart.js +5 -9
- package/assets/js/highcharts/es-modules/Core/Defaults.js +180 -91
- package/assets/js/highcharts/es-modules/Core/Renderer/SVG/SVGElement.js +50 -28
- package/assets/js/highcharts/es-modules/Core/Renderer/SVG/SVGLabel.js +6 -3
- package/assets/js/highcharts/es-modules/Core/Renderer/SVG/SVGRenderer.js +38 -80
- package/assets/js/highcharts/es-modules/Core/Renderer/SVG/Symbols.js +9 -5
- package/assets/js/highcharts/es-modules/Core/Series/DataLabel.js +17 -10
- package/assets/js/highcharts/es-modules/Core/Series/Point.js +4 -3
- package/assets/js/highcharts/es-modules/Core/Series/Series.js +24 -15
- package/assets/js/highcharts/es-modules/Core/Series/SeriesDefaults.js +15 -0
- package/assets/js/highcharts/es-modules/Core/Templating.js +4 -1
- package/assets/js/highcharts/es-modules/Core/Tooltip.js +17 -55
- package/assets/js/highcharts/es-modules/Core/Utilities.js +16 -0
- package/assets/js/highcharts/es-modules/Data/Converters/CSVConverter.js +1 -1
- package/assets/js/highcharts/es-modules/Data/DataCursor.js +34 -16
- package/assets/js/highcharts/es-modules/Data/DataPool.js +1 -1
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Controllables/Controllable.js +3 -0
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +0 -3
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +0 -3
- package/assets/js/highcharts/es-modules/Extensions/Annotations/EventEmitter.js +6 -6
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +2 -0
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Types/CrookedLine.js +1 -0
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Types/Fibonacci.js +4 -2
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +2 -1
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Types/InfinityLine.js +2 -1
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Types/Measure.js +4 -3
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Types/Pitchfork.js +11 -5
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Types/TimeCycles.js +2 -1
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Types/Tunnel.js +4 -2
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Types/VerticalLine.js +2 -1
- package/assets/js/highcharts/es-modules/Extensions/Boost/BoostChart.js +11 -3
- package/assets/js/highcharts/es-modules/Extensions/Boost/BoostSeries.js +7 -4
- package/assets/js/highcharts/es-modules/Extensions/Boost/WGLRenderer.js +11 -2
- package/assets/js/highcharts/es-modules/Extensions/Data.js +3 -3
- package/assets/js/highcharts/es-modules/Extensions/DataGrouping/DataGroupingSeriesComposition.js +1 -0
- package/assets/js/highcharts/es-modules/Extensions/DownloadURL.js +3 -0
- package/assets/js/highcharts/es-modules/Extensions/DragPanes/AxisResizer.js +1 -2
- package/assets/js/highcharts/es-modules/Extensions/DraggablePoints/DragDropProps.js +17 -0
- package/assets/js/highcharts/es-modules/Extensions/DraggablePoints/DraggablePoints.js +1 -0
- package/assets/js/highcharts/es-modules/Extensions/Drilldown/Drilldown.js +14 -14
- package/assets/js/highcharts/es-modules/Extensions/Exporting/Exporting.js +13 -18
- package/assets/js/highcharts/es-modules/Extensions/Exporting/ExportingDefaults.js +8 -6
- package/assets/js/highcharts/es-modules/Extensions/OfflineExporting/OfflineExporting.js +38 -30
- package/assets/js/highcharts/es-modules/Extensions/Pane/PaneDefaults.js +11 -0
- package/assets/js/highcharts/es-modules/Extensions/RegexLimits.js +1 -0
- package/assets/js/highcharts/es-modules/Extensions/ScrollablePlotArea.js +19 -17
- package/assets/js/highcharts/es-modules/Extensions/Themes/BrandDark.js +13 -1
- package/assets/js/highcharts/es-modules/Maps/MapNavigation.js +5 -3
- package/assets/js/highcharts/es-modules/Maps/MapView.js +5 -5
- package/assets/js/highcharts/es-modules/Maps/Projection.js +39 -20
- package/assets/js/highcharts/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +10 -231
- package/assets/js/highcharts/es-modules/Series/ArcDiagram/ArcDiagramSeriesDefaults.js +245 -0
- package/assets/js/highcharts/es-modules/Series/Area/AreaSeries.js +2 -222
- package/assets/js/highcharts/es-modules/Series/Area/AreaSeriesDefaults.js +239 -0
- package/assets/js/highcharts/es-modules/Series/AreaRange/AreaRangeSeries.js +0 -133
- package/assets/js/highcharts/es-modules/Series/AreaRange/AreaRangeSeriesDefaults.js +273 -0
- package/assets/js/highcharts/es-modules/Series/BoxPlot/BoxPlotSeries.js +36 -38
- package/assets/js/highcharts/es-modules/Series/Bubble/BubbleSeries.js +17 -6
- package/assets/js/highcharts/es-modules/Series/Candlestick/CandlestickSeries.js +9 -11
- package/assets/js/highcharts/es-modules/Series/ColorMapComposition.js +28 -4
- package/assets/js/highcharts/es-modules/Series/Column/ColumnDataLabel.js +1 -1
- package/assets/js/highcharts/es-modules/Series/Column/ColumnSeries.js +25 -30
- package/assets/js/highcharts/es-modules/Series/DataModifyComposition.js +26 -2
- package/assets/js/highcharts/es-modules/Series/DotPlot/DotPlotSeries.js +37 -27
- package/assets/js/highcharts/es-modules/Series/DotPlot/DotPlotSeriesDefaults.js +3 -2
- package/assets/js/highcharts/es-modules/Series/Dumbbell/DumbbellSeries.js +1 -39
- package/assets/js/highcharts/es-modules/Series/Dumbbell/DumbbellSeriesDefaults.js +29 -0
- package/assets/js/highcharts/es-modules/Series/Flags/FlagsSeries.js +2 -1
- package/assets/js/highcharts/es-modules/Series/GeoHeatmap/GeoHeatmapSeries.js +3 -10
- package/assets/js/highcharts/es-modules/Series/HLC/HLCSeries.js +4 -5
- package/assets/js/highcharts/es-modules/Series/MapLine/MapLineSeriesDefaults.js +7 -6
- package/assets/js/highcharts/es-modules/Series/MapPoint/MapPointSeriesDefaults.js +17 -11
- package/assets/js/highcharts/es-modules/Series/Networkgraph/NetworkgraphSeriesDefaults.js +1 -1
- package/assets/js/highcharts/es-modules/Series/Networkgraph/ReingoldFruchtermanLayout.js +1 -1
- package/assets/js/highcharts/es-modules/Series/OHLC/OHLCSeries.js +3 -5
- package/assets/js/highcharts/es-modules/Series/Organization/OrganizationSeries.js +17 -19
- package/assets/js/highcharts/es-modules/Series/Organization/OrganizationSeriesDefaults.js +1 -1
- package/assets/js/highcharts/es-modules/Series/PackedBubble/PackedBubbleLayout.js +3 -3
- package/assets/js/highcharts/es-modules/Series/PackedBubble/PackedBubbleSeries.js +3 -3
- package/assets/js/highcharts/es-modules/Series/PackedBubble/PackedBubbleSeriesDefaults.js +0 -1
- package/assets/js/highcharts/es-modules/Series/Pyramid/PyramidSeriesDefaults.js +3 -3
- package/assets/js/highcharts/es-modules/Series/Sankey/SankeySeries.js +5 -6
- package/assets/js/highcharts/es-modules/Series/Sankey/SankeySeriesDefaults.js +1 -1
- package/assets/js/highcharts/es-modules/Series/SeriesOnPointComposition.js +2 -2
- package/assets/js/highcharts/es-modules/Series/Sunburst/SunburstSeriesDefaults.js +1 -1
- package/assets/js/highcharts/es-modules/Series/Treegraph/TreegraphLink.js +12 -7
- package/assets/js/highcharts/es-modules/Series/Treegraph/TreegraphSeries.js +8 -9
- package/assets/js/highcharts/es-modules/Series/Treemap/TreemapSeries.js +8 -8
- package/assets/js/highcharts/es-modules/Series/Treemap/TreemapSeriesDefaults.js +1 -1
- package/assets/js/highcharts/es-modules/Series/Variwide/VariwideSeries.js +4 -4
- package/assets/js/highcharts/es-modules/Series/Venn/VennSeriesDefaults.js +2 -2
- package/assets/js/highcharts/es-modules/Series/Waterfall/WaterfallSeries.js +11 -12
- package/assets/js/highcharts/es-modules/Series/XRange/XRangeSeries.js +4 -4
- package/assets/js/highcharts/es-modules/Stock/Navigator/Navigator.js +2 -5
- package/assets/js/highcharts/es-modules/Stock/Navigator/NavigatorDefaults.js +11 -0
- package/assets/js/highcharts/es-modules/Stock/Navigator/NavigatorSymbols.js +9 -10
- package/assets/js/highcharts/es-modules/Stock/RangeSelector/RangeSelector.js +162 -187
- package/assets/js/highcharts/es-modules/Stock/RangeSelector/RangeSelectorComposition.js +32 -74
- package/assets/js/highcharts/es-modules/Stock/Scrollbar/Scrollbar.js +6 -7
- package/assets/js/highcharts/es-modules/masters/highcharts-more.src.js +2 -0
- package/assets/js/highcharts/highcharts-3d.js +1 -1
- package/assets/js/highcharts/highcharts-3d.src.js +1 -1
- package/assets/js/highcharts/highcharts-gantt.js +3 -3
- package/assets/js/highcharts/highcharts-gantt.src.js +2008 -906
- package/assets/js/highcharts/highcharts-more.js +2 -2
- package/assets/js/highcharts/highcharts-more.src.js +234 -313
- package/assets/js/highcharts/highcharts.js +3 -3
- package/assets/js/highcharts/highcharts.src.js +743 -616
- package/assets/js/highcharts/highmaps.js +3 -3
- package/assets/js/highcharts/highmaps.src.js +862 -673
- package/assets/js/highcharts/highstock.js +3 -3
- package/assets/js/highcharts/highstock.src.js +1016 -935
- package/assets/js/highcharts/indicators/acceleration-bands.js +1 -1
- package/assets/js/highcharts/indicators/acceleration-bands.src.js +1 -1
- package/assets/js/highcharts/indicators/accumulation-distribution.js +1 -1
- package/assets/js/highcharts/indicators/accumulation-distribution.src.js +1 -1
- package/assets/js/highcharts/indicators/ao.js +1 -1
- package/assets/js/highcharts/indicators/ao.src.js +1 -1
- package/assets/js/highcharts/indicators/apo.js +1 -1
- package/assets/js/highcharts/indicators/apo.src.js +1 -1
- package/assets/js/highcharts/indicators/aroon-oscillator.js +1 -1
- package/assets/js/highcharts/indicators/aroon-oscillator.src.js +1 -1
- package/assets/js/highcharts/indicators/aroon.js +1 -1
- package/assets/js/highcharts/indicators/aroon.src.js +1 -1
- package/assets/js/highcharts/indicators/atr.js +1 -1
- package/assets/js/highcharts/indicators/atr.src.js +1 -1
- package/assets/js/highcharts/indicators/bollinger-bands.js +1 -1
- package/assets/js/highcharts/indicators/bollinger-bands.src.js +1 -1
- package/assets/js/highcharts/indicators/cci.js +1 -1
- package/assets/js/highcharts/indicators/cci.src.js +1 -1
- package/assets/js/highcharts/indicators/chaikin.js +1 -1
- package/assets/js/highcharts/indicators/chaikin.src.js +1 -1
- package/assets/js/highcharts/indicators/cmf.js +1 -1
- package/assets/js/highcharts/indicators/cmf.src.js +1 -1
- package/assets/js/highcharts/indicators/cmo.js +1 -1
- package/assets/js/highcharts/indicators/cmo.src.js +1 -1
- package/assets/js/highcharts/indicators/dema.js +1 -1
- package/assets/js/highcharts/indicators/dema.src.js +1 -1
- package/assets/js/highcharts/indicators/disparity-index.js +1 -1
- package/assets/js/highcharts/indicators/disparity-index.src.js +1 -1
- package/assets/js/highcharts/indicators/dmi.js +1 -1
- package/assets/js/highcharts/indicators/dmi.src.js +1 -1
- package/assets/js/highcharts/indicators/dpo.js +1 -1
- package/assets/js/highcharts/indicators/dpo.src.js +1 -1
- package/assets/js/highcharts/indicators/ichimoku-kinko-hyo.js +1 -1
- package/assets/js/highcharts/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/assets/js/highcharts/indicators/indicators-all.js +1 -1
- package/assets/js/highcharts/indicators/indicators-all.src.js +1 -1
- package/assets/js/highcharts/indicators/indicators.js +1 -1
- package/assets/js/highcharts/indicators/indicators.src.js +1 -1
- package/assets/js/highcharts/indicators/keltner-channels.js +1 -1
- package/assets/js/highcharts/indicators/keltner-channels.src.js +1 -1
- package/assets/js/highcharts/indicators/klinger.js +1 -1
- package/assets/js/highcharts/indicators/klinger.src.js +1 -1
- package/assets/js/highcharts/indicators/macd.js +1 -1
- package/assets/js/highcharts/indicators/macd.src.js +1 -1
- package/assets/js/highcharts/indicators/mfi.js +1 -1
- package/assets/js/highcharts/indicators/mfi.src.js +1 -1
- package/assets/js/highcharts/indicators/momentum.js +1 -1
- package/assets/js/highcharts/indicators/momentum.src.js +1 -1
- package/assets/js/highcharts/indicators/natr.js +1 -1
- package/assets/js/highcharts/indicators/natr.src.js +1 -1
- package/assets/js/highcharts/indicators/obv.js +1 -1
- package/assets/js/highcharts/indicators/obv.src.js +1 -1
- package/assets/js/highcharts/indicators/pivot-points.js +1 -1
- package/assets/js/highcharts/indicators/pivot-points.src.js +1 -1
- package/assets/js/highcharts/indicators/ppo.js +1 -1
- package/assets/js/highcharts/indicators/ppo.src.js +1 -1
- package/assets/js/highcharts/indicators/price-channel.js +1 -1
- package/assets/js/highcharts/indicators/price-channel.src.js +1 -1
- package/assets/js/highcharts/indicators/price-envelopes.js +1 -1
- package/assets/js/highcharts/indicators/price-envelopes.src.js +1 -1
- package/assets/js/highcharts/indicators/psar.js +1 -1
- package/assets/js/highcharts/indicators/psar.src.js +1 -1
- package/assets/js/highcharts/indicators/regressions.js +1 -1
- package/assets/js/highcharts/indicators/regressions.src.js +1 -1
- package/assets/js/highcharts/indicators/roc.js +1 -1
- package/assets/js/highcharts/indicators/roc.src.js +1 -1
- package/assets/js/highcharts/indicators/rsi.js +1 -1
- package/assets/js/highcharts/indicators/rsi.src.js +1 -1
- package/assets/js/highcharts/indicators/slow-stochastic.js +1 -1
- package/assets/js/highcharts/indicators/slow-stochastic.src.js +1 -1
- package/assets/js/highcharts/indicators/stochastic.js +1 -1
- package/assets/js/highcharts/indicators/stochastic.src.js +1 -1
- package/assets/js/highcharts/indicators/supertrend.js +1 -1
- package/assets/js/highcharts/indicators/supertrend.src.js +1 -1
- package/assets/js/highcharts/indicators/tema.js +1 -1
- package/assets/js/highcharts/indicators/tema.src.js +1 -1
- package/assets/js/highcharts/indicators/trendline.js +1 -1
- package/assets/js/highcharts/indicators/trendline.src.js +1 -1
- package/assets/js/highcharts/indicators/trix.js +1 -1
- package/assets/js/highcharts/indicators/trix.src.js +1 -1
- package/assets/js/highcharts/indicators/volume-by-price.js +1 -1
- package/assets/js/highcharts/indicators/volume-by-price.src.js +1 -1
- package/assets/js/highcharts/indicators/vwap.js +1 -1
- package/assets/js/highcharts/indicators/vwap.src.js +1 -1
- package/assets/js/highcharts/indicators/williams-r.js +1 -1
- package/assets/js/highcharts/indicators/williams-r.src.js +1 -1
- package/assets/js/highcharts/indicators/wma.js +1 -1
- package/assets/js/highcharts/indicators/wma.src.js +1 -1
- package/assets/js/highcharts/indicators/zigzag.js +1 -1
- package/assets/js/highcharts/indicators/zigzag.src.js +1 -1
- package/assets/js/highcharts/modules/accessibility.js +2 -2
- package/assets/js/highcharts/modules/accessibility.src.js +39 -28
- package/assets/js/highcharts/modules/annotations-advanced.js +2 -2
- package/assets/js/highcharts/modules/annotations-advanced.src.js +46 -31
- package/assets/js/highcharts/modules/annotations.js +2 -2
- package/assets/js/highcharts/modules/annotations.src.js +12 -15
- package/assets/js/highcharts/modules/arc-diagram.js +2 -2
- package/assets/js/highcharts/modules/arc-diagram.src.js +258 -233
- package/assets/js/highcharts/modules/arrow-symbols.js +1 -1
- package/assets/js/highcharts/modules/arrow-symbols.src.js +1 -1
- package/assets/js/highcharts/modules/boost-canvas.js +2 -2
- package/assets/js/highcharts/modules/boost-canvas.src.js +30 -10
- package/assets/js/highcharts/modules/boost.js +2 -2
- package/assets/js/highcharts/modules/boost.src.js +30 -10
- package/assets/js/highcharts/modules/broken-axis.js +1 -1
- package/assets/js/highcharts/modules/broken-axis.src.js +1 -1
- package/assets/js/highcharts/modules/bullet.js +1 -1
- package/assets/js/highcharts/modules/bullet.src.js +1 -1
- package/assets/js/highcharts/modules/coloraxis.js +2 -2
- package/assets/js/highcharts/modules/coloraxis.src.js +4 -4
- package/assets/js/highcharts/modules/current-date-indicator.js +1 -1
- package/assets/js/highcharts/modules/current-date-indicator.src.js +1 -1
- package/assets/js/highcharts/modules/cylinder.js +1 -1
- package/assets/js/highcharts/modules/cylinder.src.js +1 -1
- package/assets/js/highcharts/modules/data-tools.js +2 -2
- package/assets/js/highcharts/modules/data-tools.src.js +37 -19
- package/assets/js/highcharts/modules/data.js +1 -1
- package/assets/js/highcharts/modules/data.src.js +4 -4
- package/assets/js/highcharts/modules/datagrouping.js +2 -2
- package/assets/js/highcharts/modules/datagrouping.src.js +2 -1
- package/assets/js/highcharts/modules/debugger.js +1 -1
- package/assets/js/highcharts/modules/debugger.src.js +1 -1
- package/assets/js/highcharts/modules/dependency-wheel.js +1 -1
- package/assets/js/highcharts/modules/dependency-wheel.src.js +1 -1
- package/assets/js/highcharts/modules/dotplot.js +2 -2
- package/assets/js/highcharts/modules/dotplot.src.js +41 -30
- package/assets/js/highcharts/modules/drag-panes.js +2 -2
- package/assets/js/highcharts/modules/drag-panes.src.js +2 -3
- package/assets/js/highcharts/modules/draggable-points.js +2 -2
- package/assets/js/highcharts/modules/draggable-points.src.js +19 -1
- package/assets/js/highcharts/modules/drilldown.js +2 -2
- package/assets/js/highcharts/modules/drilldown.src.js +15 -15
- package/assets/js/highcharts/modules/dumbbell.js +2 -2
- package/assets/js/highcharts/modules/dumbbell.src.js +31 -40
- package/assets/js/highcharts/modules/export-data.js +2 -2
- package/assets/js/highcharts/modules/export-data.src.js +4 -1
- package/assets/js/highcharts/modules/exporting.js +2 -2
- package/assets/js/highcharts/modules/exporting.src.js +22 -25
- package/assets/js/highcharts/modules/flowmap.js +1 -1
- package/assets/js/highcharts/modules/flowmap.src.js +1 -1
- package/assets/js/highcharts/modules/full-screen.js +1 -1
- package/assets/js/highcharts/modules/full-screen.src.js +1 -1
- package/assets/js/highcharts/modules/funnel.js +2 -2
- package/assets/js/highcharts/modules/funnel.src.js +4 -4
- package/assets/js/highcharts/modules/funnel3d.js +1 -1
- package/assets/js/highcharts/modules/funnel3d.src.js +1 -1
- package/assets/js/highcharts/modules/gantt.js +2 -2
- package/assets/js/highcharts/modules/gantt.src.js +1266 -291
- package/assets/js/highcharts/modules/geoheatmap.js +1 -1
- package/assets/js/highcharts/modules/geoheatmap.src.js +4 -11
- package/assets/js/highcharts/modules/grid-axis.js +2 -2
- package/assets/js/highcharts/modules/grid-axis.src.js +2 -2
- package/assets/js/highcharts/modules/heatmap.js +2 -2
- package/assets/js/highcharts/modules/heatmap.src.js +32 -9
- package/assets/js/highcharts/modules/heikinashi.js +1 -1
- package/assets/js/highcharts/modules/heikinashi.src.js +1 -1
- package/assets/js/highcharts/modules/histogram-bellcurve.js +1 -1
- package/assets/js/highcharts/modules/histogram-bellcurve.src.js +1 -1
- package/assets/js/highcharts/modules/hollowcandlestick.js +1 -1
- package/assets/js/highcharts/modules/hollowcandlestick.src.js +1 -1
- package/assets/js/highcharts/modules/item-series.js +1 -1
- package/assets/js/highcharts/modules/item-series.src.js +1 -1
- package/assets/js/highcharts/modules/lollipop.js +1 -1
- package/assets/js/highcharts/modules/lollipop.src.js +1 -1
- package/assets/js/highcharts/modules/map.js +2 -2
- package/assets/js/highcharts/modules/map.src.js +120 -58
- package/assets/js/highcharts/modules/marker-clusters.js +1 -1
- package/assets/js/highcharts/modules/marker-clusters.src.js +1 -1
- package/assets/js/highcharts/modules/mouse-wheel-zoom.js +1 -1
- package/assets/js/highcharts/modules/mouse-wheel-zoom.src.js +1 -1
- package/assets/js/highcharts/modules/navigator.js +2 -2
- package/assets/js/highcharts/modules/navigator.src.js +28 -24
- package/assets/js/highcharts/modules/networkgraph.js +2 -2
- package/assets/js/highcharts/modules/networkgraph.src.js +3 -3
- package/assets/js/highcharts/modules/no-data-to-display.js +1 -1
- package/assets/js/highcharts/modules/no-data-to-display.src.js +1 -1
- package/assets/js/highcharts/modules/offline-exporting.js +2 -2
- package/assets/js/highcharts/modules/offline-exporting.src.js +43 -32
- package/assets/js/highcharts/modules/organization.js +2 -2
- package/assets/js/highcharts/modules/organization.src.js +19 -21
- package/assets/js/highcharts/modules/overlapping-datalabels.js +1 -1
- package/assets/js/highcharts/modules/overlapping-datalabels.src.js +1 -1
- package/assets/js/highcharts/modules/parallel-coordinates.js +1 -1
- package/assets/js/highcharts/modules/parallel-coordinates.src.js +1 -1
- package/assets/js/highcharts/modules/pareto.js +1 -1
- package/assets/js/highcharts/modules/pareto.src.js +1 -1
- package/assets/js/highcharts/modules/pathfinder.js +1 -1
- package/assets/js/highcharts/modules/pathfinder.src.js +1 -1
- package/assets/js/highcharts/modules/pattern-fill.js +1 -1
- package/assets/js/highcharts/modules/pattern-fill.src.js +1 -1
- package/assets/js/highcharts/modules/pictorial.js +1 -1
- package/assets/js/highcharts/modules/pictorial.src.js +1 -1
- package/assets/js/highcharts/modules/price-indicator.js +1 -1
- package/assets/js/highcharts/modules/price-indicator.src.js +1 -1
- package/assets/js/highcharts/modules/pyramid3d.js +1 -1
- package/assets/js/highcharts/modules/pyramid3d.src.js +1 -1
- package/assets/js/highcharts/modules/sankey.js +2 -2
- package/assets/js/highcharts/modules/sankey.src.js +7 -8
- package/assets/js/highcharts/modules/series-label.js +1 -1
- package/assets/js/highcharts/modules/series-label.src.js +1 -1
- package/assets/js/highcharts/modules/series-on-point.js +2 -2
- package/assets/js/highcharts/modules/series-on-point.src.js +3 -3
- package/assets/js/highcharts/modules/solid-gauge.js +1 -1
- package/assets/js/highcharts/modules/solid-gauge.src.js +1 -1
- package/assets/js/highcharts/modules/sonification.js +2 -2
- package/assets/js/highcharts/modules/sonification.src.js +4 -1
- package/assets/js/highcharts/modules/static-scale.js +1 -1
- package/assets/js/highcharts/modules/static-scale.src.js +1 -1
- package/assets/js/highcharts/modules/stock-tools.js +2 -2
- package/assets/js/highcharts/modules/stock-tools.src.js +3 -3
- package/assets/js/highcharts/modules/stock.js +2 -2
- package/assets/js/highcharts/modules/stock.src.js +274 -320
- package/assets/js/highcharts/modules/streamgraph.js +1 -1
- package/assets/js/highcharts/modules/streamgraph.src.js +1 -1
- package/assets/js/highcharts/modules/sunburst.js +2 -2
- package/assets/js/highcharts/modules/sunburst.src.js +39 -16
- package/assets/js/highcharts/modules/tiledwebmap.js +1 -1
- package/assets/js/highcharts/modules/tiledwebmap.src.js +1 -1
- package/assets/js/highcharts/modules/tilemap.js +1 -1
- package/assets/js/highcharts/modules/tilemap.src.js +1 -1
- package/assets/js/highcharts/modules/timeline.js +1 -1
- package/assets/js/highcharts/modules/timeline.src.js +1 -1
- package/assets/js/highcharts/modules/treegraph.js +2 -2
- package/assets/js/highcharts/modules/treegraph.src.js +21 -17
- package/assets/js/highcharts/modules/treegrid.js +2 -2
- package/assets/js/highcharts/modules/treegrid.src.js +2 -2
- package/assets/js/highcharts/modules/treemap.js +2 -2
- package/assets/js/highcharts/modules/treemap.src.js +38 -15
- package/assets/js/highcharts/modules/variable-pie.js +1 -1
- package/assets/js/highcharts/modules/variable-pie.src.js +1 -1
- package/assets/js/highcharts/modules/variwide.js +2 -2
- package/assets/js/highcharts/modules/variwide.src.js +5 -5
- package/assets/js/highcharts/modules/vector.js +1 -1
- package/assets/js/highcharts/modules/vector.src.js +1 -1
- package/assets/js/highcharts/modules/venn.js +1 -1
- package/assets/js/highcharts/modules/venn.src.js +3 -3
- package/assets/js/highcharts/modules/windbarb.js +1 -1
- package/assets/js/highcharts/modules/windbarb.src.js +1 -1
- package/assets/js/highcharts/modules/wordcloud.js +1 -1
- package/assets/js/highcharts/modules/wordcloud.src.js +1 -1
- package/assets/js/highcharts/modules/xrange.js +2 -2
- package/assets/js/highcharts/modules/xrange.src.js +5 -5
- package/assets/js/highcharts/standalone-navigator.js +2 -2
- package/assets/js/highcharts/standalone-navigator.src.js +769 -638
- package/assets/js/highcharts/themes/avocado.js +1 -1
- package/assets/js/highcharts/themes/avocado.src.js +1 -1
- package/assets/js/highcharts/themes/brand-dark.js +2 -2
- package/assets/js/highcharts/themes/brand-dark.src.js +14 -2
- package/assets/js/highcharts/themes/brand-light.js +1 -1
- package/assets/js/highcharts/themes/brand-light.src.js +1 -1
- package/assets/js/highcharts/themes/dark-blue.js +1 -1
- package/assets/js/highcharts/themes/dark-blue.src.js +1 -1
- package/assets/js/highcharts/themes/dark-green.js +1 -1
- package/assets/js/highcharts/themes/dark-green.src.js +1 -1
- package/assets/js/highcharts/themes/dark-unica.js +1 -1
- package/assets/js/highcharts/themes/dark-unica.src.js +1 -1
- package/assets/js/highcharts/themes/gray.js +1 -1
- package/assets/js/highcharts/themes/gray.src.js +1 -1
- package/assets/js/highcharts/themes/grid-light.js +1 -1
- package/assets/js/highcharts/themes/grid-light.src.js +1 -1
- package/assets/js/highcharts/themes/grid.js +1 -1
- package/assets/js/highcharts/themes/grid.src.js +1 -1
- package/assets/js/highcharts/themes/high-contrast-dark.js +1 -1
- package/assets/js/highcharts/themes/high-contrast-dark.src.js +1 -1
- package/assets/js/highcharts/themes/high-contrast-light.js +1 -1
- package/assets/js/highcharts/themes/high-contrast-light.src.js +1 -1
- package/assets/js/highcharts/themes/sand-signika.js +1 -1
- package/assets/js/highcharts/themes/sand-signika.src.js +1 -1
- package/assets/js/highcharts/themes/skies.js +1 -1
- package/assets/js/highcharts/themes/skies.src.js +1 -1
- package/assets/js/highcharts/themes/sunset.js +1 -1
- package/assets/js/highcharts/themes/sunset.src.js +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Highstock JS v11.4.
|
|
2
|
+
* @license Highstock JS v11.4.3 (2024-05-22)
|
|
3
3
|
*
|
|
4
4
|
* Highcharts Stock as a plugin for Highcharts
|
|
5
5
|
*
|
|
@@ -460,8 +460,15 @@
|
|
|
460
460
|
}
|
|
461
461
|
// Record for tooltip etc.
|
|
462
462
|
const point = this.series.points[index];
|
|
463
|
+
const cumulativeStart = point.series.options.cumulativeStart, withinRange = point.x <= this.series.xAxis.max &&
|
|
464
|
+
point.x >= this.series.xAxis.min;
|
|
463
465
|
if (point) {
|
|
464
|
-
|
|
466
|
+
if (!cumulativeStart || withinRange) {
|
|
467
|
+
point.cumulativeSum = value;
|
|
468
|
+
}
|
|
469
|
+
else {
|
|
470
|
+
point.cumulativeSum = void 0;
|
|
471
|
+
}
|
|
465
472
|
}
|
|
466
473
|
return value;
|
|
467
474
|
}
|
|
@@ -506,7 +513,7 @@
|
|
|
506
513
|
*/
|
|
507
514
|
/**
|
|
508
515
|
* Defines if comparison should start from the first point within the visible
|
|
509
|
-
* range or should start from the
|
|
516
|
+
* range or should start from the last point **before** the range.
|
|
510
517
|
*
|
|
511
518
|
* In other words, this flag determines if first point within the visible range
|
|
512
519
|
* will have 0% (`compareStart=true`) or should have been already calculated
|
|
@@ -556,6 +563,23 @@
|
|
|
556
563
|
* @product highstock
|
|
557
564
|
* @apioption plotOptions.series.cumulative
|
|
558
565
|
*/
|
|
566
|
+
/**
|
|
567
|
+
* Defines if cumulation should start from the first point within the visible
|
|
568
|
+
* range or should start from the last point **before** the range.
|
|
569
|
+
*
|
|
570
|
+
* In other words, this flag determines if first point within the visible range
|
|
571
|
+
* will start at 0 (`cumulativeStart=true`) or should have been already calculated
|
|
572
|
+
* according to the previous point (`cumulativeStart=false`).
|
|
573
|
+
*
|
|
574
|
+
* @sample {highstock} stock/plotoptions/series-cumulativestart/
|
|
575
|
+
* Cumulative Start
|
|
576
|
+
*
|
|
577
|
+
* @type {boolean}
|
|
578
|
+
* @default false
|
|
579
|
+
* @since 11.4.2
|
|
580
|
+
* @product highstock
|
|
581
|
+
* @apioption plotOptions.series.cumulativeStart
|
|
582
|
+
*/
|
|
559
583
|
''; // Keeps doclets above in transpiled file
|
|
560
584
|
|
|
561
585
|
return DataModifyComposition;
|
|
@@ -1005,6 +1029,15 @@
|
|
|
1005
1029
|
* @since 6.0.0
|
|
1006
1030
|
*/
|
|
1007
1031
|
width: 7,
|
|
1032
|
+
/**
|
|
1033
|
+
* Border radius of the handles.
|
|
1034
|
+
*
|
|
1035
|
+
* @sample {highstock} stock/navigator/handles-border-radius/
|
|
1036
|
+
* Border radius on the navigator handles.
|
|
1037
|
+
*
|
|
1038
|
+
* @since 11.4.2
|
|
1039
|
+
*/
|
|
1040
|
+
borderRadius: 0,
|
|
1008
1041
|
/**
|
|
1009
1042
|
* Height for handles.
|
|
1010
1043
|
*
|
|
@@ -1316,6 +1349,7 @@
|
|
|
1316
1349
|
tickLength: 0,
|
|
1317
1350
|
lineWidth: 0,
|
|
1318
1351
|
gridLineColor: "#e6e6e6" /* Palette.neutralColor10 */,
|
|
1352
|
+
id: 'navigator-x-axis',
|
|
1319
1353
|
gridLineWidth: 1,
|
|
1320
1354
|
tickPixelInterval: 200,
|
|
1321
1355
|
labels: {
|
|
@@ -1369,6 +1403,7 @@
|
|
|
1369
1403
|
startOnTick: false,
|
|
1370
1404
|
endOnTick: false,
|
|
1371
1405
|
minPadding: 0.1,
|
|
1406
|
+
id: 'navigator-y-axis',
|
|
1372
1407
|
maxPadding: 0.1,
|
|
1373
1408
|
labels: {
|
|
1374
1409
|
enabled: false
|
|
@@ -1407,7 +1442,7 @@
|
|
|
1407
1442
|
|
|
1408
1443
|
return NavigatorDefaults;
|
|
1409
1444
|
});
|
|
1410
|
-
_registerModule(_modules, 'Stock/Navigator/NavigatorSymbols.js', [], function () {
|
|
1445
|
+
_registerModule(_modules, 'Stock/Navigator/NavigatorSymbols.js', [_modules['Core/Renderer/SVG/Symbols.js'], _modules['Core/Utilities.js']], function (rect, U) {
|
|
1411
1446
|
/* *
|
|
1412
1447
|
*
|
|
1413
1448
|
* (c) 2010-2024 Torstein Honsi
|
|
@@ -1417,6 +1452,7 @@
|
|
|
1417
1452
|
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
1418
1453
|
*
|
|
1419
1454
|
* */
|
|
1455
|
+
const { relativeLength } = U;
|
|
1420
1456
|
/* *
|
|
1421
1457
|
*
|
|
1422
1458
|
* Constants
|
|
@@ -1427,18 +1463,14 @@
|
|
|
1427
1463
|
* @private
|
|
1428
1464
|
*/
|
|
1429
1465
|
function navigatorHandle(_x, _y, width, height, options = {}) {
|
|
1430
|
-
const halfWidth = options.width ? options.width / 2 : width, markerPosition = Math.
|
|
1466
|
+
const halfWidth = options.width ? options.width / 2 : width, markerPosition = 1.5, r = relativeLength(options.borderRadius || 0, Math.min(halfWidth * 2, height));
|
|
1431
1467
|
height = options.height || height;
|
|
1432
1468
|
return [
|
|
1433
|
-
['M', -
|
|
1434
|
-
['L',
|
|
1435
|
-
['
|
|
1436
|
-
['L',
|
|
1437
|
-
|
|
1438
|
-
['M', -markerPosition, 4],
|
|
1439
|
-
['L', -markerPosition, height - 3],
|
|
1440
|
-
['M', markerPosition - 1, 4],
|
|
1441
|
-
['L', markerPosition - 1, height - 3]
|
|
1469
|
+
['M', -markerPosition, height / 2 - 3.5],
|
|
1470
|
+
['L', -markerPosition, height / 2 + 4.5],
|
|
1471
|
+
['M', markerPosition - 1, height / 2 - 3.5],
|
|
1472
|
+
['L', markerPosition - 1, height / 2 + 4.5],
|
|
1473
|
+
...rect.rect(-halfWidth - 1, 0.5, halfWidth * 2 + 1, height, { r })
|
|
1442
1474
|
];
|
|
1443
1475
|
}
|
|
1444
1476
|
/* *
|
|
@@ -1991,7 +2023,7 @@
|
|
|
1991
2023
|
*
|
|
1992
2024
|
* */
|
|
1993
2025
|
const { defaultOptions } = D;
|
|
1994
|
-
const { addEvent, correctFloat, defined, destroyObjectProperties, fireEvent, merge, pick, removeEvent } = U;
|
|
2026
|
+
const { addEvent, correctFloat, crisp, defined, destroyObjectProperties, fireEvent, merge, pick, removeEvent } = U;
|
|
1995
2027
|
/* *
|
|
1996
2028
|
*
|
|
1997
2029
|
* Constants
|
|
@@ -2223,9 +2255,8 @@
|
|
|
2223
2255
|
rect.attr(rect.crisp({
|
|
2224
2256
|
x: -0.5,
|
|
2225
2257
|
y: -0.5,
|
|
2226
|
-
|
|
2227
|
-
|
|
2228
|
-
height: size + 1,
|
|
2258
|
+
width: size,
|
|
2259
|
+
height: size,
|
|
2229
2260
|
r: options.buttonBorderRadius
|
|
2230
2261
|
}, rect.strokeWidth()));
|
|
2231
2262
|
// Button arrow
|
|
@@ -2435,8 +2466,8 @@
|
|
|
2435
2466
|
const trackBorderWidth = scroller.trackBorderWidth =
|
|
2436
2467
|
scroller.track.strokeWidth();
|
|
2437
2468
|
scroller.track.attr({
|
|
2438
|
-
x: -trackBorderWidth
|
|
2439
|
-
y: -trackBorderWidth
|
|
2469
|
+
x: -crisp(0, trackBorderWidth),
|
|
2470
|
+
y: -crisp(0, trackBorderWidth)
|
|
2440
2471
|
});
|
|
2441
2472
|
// Draw the scrollbar itself
|
|
2442
2473
|
scroller.scrollbarGroup = renderer.g().add(group);
|
|
@@ -2470,7 +2501,7 @@
|
|
|
2470
2501
|
});
|
|
2471
2502
|
}
|
|
2472
2503
|
scroller.scrollbarStrokeWidth = scroller.scrollbar.strokeWidth();
|
|
2473
|
-
scroller.scrollbarGroup.translate(-scroller.scrollbarStrokeWidth
|
|
2504
|
+
scroller.scrollbarGroup.translate(-crisp(0, scroller.scrollbarStrokeWidth), -crisp(0, scroller.scrollbarStrokeWidth));
|
|
2474
2505
|
// Draw the buttons:
|
|
2475
2506
|
scroller.drawScrollbarButton(0);
|
|
2476
2507
|
scroller.drawScrollbarButton(1);
|
|
@@ -3472,8 +3503,6 @@
|
|
|
3472
3503
|
ordinal: baseXaxis.options.ordinal,
|
|
3473
3504
|
overscroll: baseXaxis.options.overscroll
|
|
3474
3505
|
}, navigatorOptions.xAxis, {
|
|
3475
|
-
id: 'navigator-x-axis',
|
|
3476
|
-
yAxis: 'navigator-y-axis',
|
|
3477
3506
|
type: 'datetime',
|
|
3478
3507
|
index: xAxisIndex,
|
|
3479
3508
|
isInternal: true,
|
|
@@ -3492,7 +3521,6 @@
|
|
|
3492
3521
|
height: height
|
|
3493
3522
|
}), 'xAxis');
|
|
3494
3523
|
navigator.yAxis = new Axis(chart, merge(navigatorOptions.yAxis, {
|
|
3495
|
-
id: 'navigator-y-axis',
|
|
3496
3524
|
alignTicks: false,
|
|
3497
3525
|
offset: 0,
|
|
3498
3526
|
index: yAxisIndex,
|
|
@@ -3644,8 +3672,8 @@
|
|
|
3644
3672
|
linkedTo: null,
|
|
3645
3673
|
group: 'nav',
|
|
3646
3674
|
padXAxis: false,
|
|
3647
|
-
xAxis:
|
|
3648
|
-
yAxis:
|
|
3675
|
+
xAxis: this.navigatorOptions.xAxis?.id,
|
|
3676
|
+
yAxis: this.navigatorOptions.yAxis?.id,
|
|
3649
3677
|
showInLegend: false,
|
|
3650
3678
|
stacking: void 0,
|
|
3651
3679
|
isInternal: true,
|
|
@@ -4200,7 +4228,7 @@
|
|
|
4200
4228
|
}
|
|
4201
4229
|
translatedArr[i] = lastTranslated = translated;
|
|
4202
4230
|
}
|
|
4203
|
-
distances.sort();
|
|
4231
|
+
distances.sort((a, b) => a - b);
|
|
4204
4232
|
medianDistance = distances[Math.floor(distances.length / 2)];
|
|
4205
4233
|
if (medianDistance < tickPixelIntervalOption * 0.6) {
|
|
4206
4234
|
medianDistance = null;
|
|
@@ -5608,7 +5636,7 @@
|
|
|
5608
5636
|
* */
|
|
5609
5637
|
const { defaultOptions } = D;
|
|
5610
5638
|
const { composed } = H;
|
|
5611
|
-
const { addEvent, defined, extend,
|
|
5639
|
+
const { addEvent, defined, extend, isNumber, merge, pick, pushUnique } = U;
|
|
5612
5640
|
/* *
|
|
5613
5641
|
*
|
|
5614
5642
|
* Constants
|
|
@@ -5692,13 +5720,13 @@
|
|
|
5692
5720
|
if (pushUnique(composed, 'RangeSelector')) {
|
|
5693
5721
|
const chartProto = ChartClass.prototype;
|
|
5694
5722
|
AxisClass.prototype.minFromRange = axisMinFromRange;
|
|
5695
|
-
addEvent(ChartClass, 'afterGetContainer',
|
|
5723
|
+
addEvent(ChartClass, 'afterGetContainer', createRangeSelector);
|
|
5696
5724
|
addEvent(ChartClass, 'beforeRender', onChartBeforeRender);
|
|
5697
5725
|
addEvent(ChartClass, 'destroy', onChartDestroy);
|
|
5698
5726
|
addEvent(ChartClass, 'getMargins', onChartGetMargins);
|
|
5699
|
-
addEvent(ChartClass, '
|
|
5727
|
+
addEvent(ChartClass, 'redraw', redrawRangeSelector);
|
|
5700
5728
|
addEvent(ChartClass, 'update', onChartUpdate);
|
|
5701
|
-
chartProto.callbacks.push(
|
|
5729
|
+
chartProto.callbacks.push(redrawRangeSelector);
|
|
5702
5730
|
extend(defaultOptions, { rangeSelector: RangeSelectorDefaults.rangeSelector });
|
|
5703
5731
|
extend(defaultOptions.lang, RangeSelectorDefaults.lang);
|
|
5704
5732
|
}
|
|
@@ -5707,7 +5735,7 @@
|
|
|
5707
5735
|
* Initialize rangeselector for stock charts
|
|
5708
5736
|
* @private
|
|
5709
5737
|
*/
|
|
5710
|
-
function
|
|
5738
|
+
function createRangeSelector() {
|
|
5711
5739
|
if (this.options.rangeSelector &&
|
|
5712
5740
|
this.options.rangeSelector.enabled) {
|
|
5713
5741
|
this.rangeSelector = new RangeSelectorConstructor(this);
|
|
@@ -5717,18 +5745,12 @@
|
|
|
5717
5745
|
* @private
|
|
5718
5746
|
*/
|
|
5719
5747
|
function onChartBeforeRender() {
|
|
5720
|
-
const chart = this,
|
|
5748
|
+
const chart = this, rangeSelector = chart.rangeSelector;
|
|
5721
5749
|
if (rangeSelector) {
|
|
5722
5750
|
if (isNumber(rangeSelector.deferredYTDClick)) {
|
|
5723
5751
|
rangeSelector.clickButton(rangeSelector.deferredYTDClick);
|
|
5724
5752
|
delete rangeSelector.deferredYTDClick;
|
|
5725
5753
|
}
|
|
5726
|
-
axes.forEach((axis) => {
|
|
5727
|
-
axis.updateNames();
|
|
5728
|
-
axis.setScale();
|
|
5729
|
-
});
|
|
5730
|
-
chart.getAxisMargins();
|
|
5731
|
-
rangeSelector.render();
|
|
5732
5754
|
const verticalAlign = rangeSelector.options.verticalAlign;
|
|
5733
5755
|
if (!rangeSelector.options.floating) {
|
|
5734
5756
|
if (verticalAlign === 'bottom') {
|
|
@@ -5740,53 +5762,34 @@
|
|
|
5740
5762
|
}
|
|
5741
5763
|
}
|
|
5742
5764
|
}
|
|
5743
|
-
|
|
5744
|
-
|
|
5745
|
-
|
|
5746
|
-
|
|
5747
|
-
|
|
5748
|
-
|
|
5749
|
-
|
|
5750
|
-
|
|
5751
|
-
|
|
5752
|
-
|
|
5753
|
-
|
|
5754
|
-
|
|
5755
|
-
|
|
5756
|
-
|
|
5757
|
-
|
|
5758
|
-
|
|
5759
|
-
|
|
5760
|
-
|
|
5761
|
-
|
|
5762
|
-
|
|
5763
|
-
|
|
5764
|
-
|
|
5765
|
-
}
|
|
5766
|
-
else {
|
|
5767
|
-
alignTo.y += rangeSelector.getHeight();
|
|
5768
|
-
}
|
|
5769
|
-
legend.group.placed = false; // Don't animate the alignment.
|
|
5770
|
-
legend.align(alignTo);
|
|
5771
|
-
}
|
|
5765
|
+
function redrawRangeSelector() {
|
|
5766
|
+
const chart = this;
|
|
5767
|
+
const rangeSelector = this.rangeSelector;
|
|
5768
|
+
if (!rangeSelector) {
|
|
5769
|
+
return;
|
|
5770
|
+
}
|
|
5771
|
+
let alignTo;
|
|
5772
|
+
const extremes = chart.xAxis[0].getExtremes();
|
|
5773
|
+
const legend = chart.legend;
|
|
5774
|
+
const verticalAlign = (rangeSelector &&
|
|
5775
|
+
rangeSelector.options.verticalAlign);
|
|
5776
|
+
if (isNumber(extremes.min)) {
|
|
5777
|
+
rangeSelector.render(extremes.min, extremes.max);
|
|
5778
|
+
}
|
|
5779
|
+
// Re-align the legend so that it's below the rangeselector
|
|
5780
|
+
if (legend.display &&
|
|
5781
|
+
verticalAlign === 'top' &&
|
|
5782
|
+
verticalAlign === legend.options.verticalAlign) {
|
|
5783
|
+
// Create a new alignment box for the legend.
|
|
5784
|
+
alignTo = merge(chart.spacingBox);
|
|
5785
|
+
if (legend.options.layout === 'vertical') {
|
|
5786
|
+
alignTo.y = chart.plotTop;
|
|
5772
5787
|
}
|
|
5773
|
-
|
|
5774
|
-
|
|
5775
|
-
const events = find(chartDestroyEvents, (e) => e[0] === chart);
|
|
5776
|
-
if (!events) {
|
|
5777
|
-
chartDestroyEvents.push([chart, [
|
|
5778
|
-
// Redraw the scroller on setExtremes
|
|
5779
|
-
addEvent(chart.xAxis[0], 'afterSetExtremes', function (e) {
|
|
5780
|
-
if (rangeSelector) {
|
|
5781
|
-
rangeSelector.render(e.min, e.max);
|
|
5782
|
-
}
|
|
5783
|
-
}),
|
|
5784
|
-
// Redraw the scroller chart resize
|
|
5785
|
-
addEvent(chart, 'redraw', redraw)
|
|
5786
|
-
]]);
|
|
5788
|
+
else {
|
|
5789
|
+
alignTo.y += rangeSelector.getHeight();
|
|
5787
5790
|
}
|
|
5788
|
-
//
|
|
5789
|
-
|
|
5791
|
+
legend.group.placed = false; // Don't animate the alignment.
|
|
5792
|
+
legend.align(alignTo);
|
|
5790
5793
|
}
|
|
5791
5794
|
}
|
|
5792
5795
|
/**
|
|
@@ -5818,22 +5821,6 @@
|
|
|
5818
5821
|
}
|
|
5819
5822
|
}
|
|
5820
5823
|
}
|
|
5821
|
-
/**
|
|
5822
|
-
* @private
|
|
5823
|
-
*/
|
|
5824
|
-
function onChartRender() {
|
|
5825
|
-
const chart = this, rangeSelector = chart.rangeSelector;
|
|
5826
|
-
if (rangeSelector && !rangeSelector.options.floating) {
|
|
5827
|
-
rangeSelector.render();
|
|
5828
|
-
const verticalAlign = rangeSelector.options.verticalAlign;
|
|
5829
|
-
if (verticalAlign === 'bottom') {
|
|
5830
|
-
this.extraBottomMargin = true;
|
|
5831
|
-
}
|
|
5832
|
-
else if (verticalAlign !== 'middle') {
|
|
5833
|
-
this.extraTopMargin = true;
|
|
5834
|
-
}
|
|
5835
|
-
}
|
|
5836
|
-
}
|
|
5837
5824
|
/**
|
|
5838
5825
|
* @private
|
|
5839
5826
|
*/
|
|
@@ -5850,7 +5837,6 @@
|
|
|
5850
5837
|
this.extraBottomMargin = false;
|
|
5851
5838
|
this.extraTopMargin = false;
|
|
5852
5839
|
if (rangeSelector) {
|
|
5853
|
-
onChartCallback(this);
|
|
5854
5840
|
const verticalAlign = (optionsRangeSelector &&
|
|
5855
5841
|
optionsRangeSelector.verticalAlign) || (rangeSelector.options && rangeSelector.options.verticalAlign);
|
|
5856
5842
|
if (!rangeSelector.options.floating) {
|
|
@@ -5878,7 +5864,7 @@
|
|
|
5878
5864
|
|
|
5879
5865
|
return RangeSelectorComposition;
|
|
5880
5866
|
});
|
|
5881
|
-
_registerModule(_modules, 'Stock/RangeSelector/RangeSelector.js', [_modules['Core/Axis/Axis.js'], _modules['Core/Defaults.js'], _modules['Core/Globals.js'], _modules['Stock/RangeSelector/RangeSelectorComposition.js'], _modules['Core/Renderer/SVG/SVGElement.js'], _modules['Core/Utilities.js']], function (Axis, D, H, RangeSelectorComposition, SVGElement, U) {
|
|
5867
|
+
_registerModule(_modules, 'Stock/RangeSelector/RangeSelector.js', [_modules['Core/Axis/Axis.js'], _modules['Core/Defaults.js'], _modules['Core/Globals.js'], _modules['Stock/RangeSelector/RangeSelectorComposition.js'], _modules['Core/Renderer/SVG/SVGElement.js'], _modules['Core/Utilities.js'], _modules['Core/Axis/OrdinalAxis.js']], function (Axis, D, H, RangeSelectorComposition, SVGElement, U, OrdinalAxis) {
|
|
5882
5868
|
/* *
|
|
5883
5869
|
*
|
|
5884
5870
|
* (c) 2010-2024 Torstein Honsi
|
|
@@ -5954,7 +5940,6 @@
|
|
|
5954
5940
|
constructor(chart) {
|
|
5955
5941
|
this.buttonOptions = RangeSelector.prototype.defaultButtons;
|
|
5956
5942
|
this.initialButtonGroupWidth = 0;
|
|
5957
|
-
this.chart = chart;
|
|
5958
5943
|
this.init(chart);
|
|
5959
5944
|
}
|
|
5960
5945
|
/* *
|
|
@@ -5975,7 +5960,7 @@
|
|
|
5975
5960
|
clickButton(i, redraw) {
|
|
5976
5961
|
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;
|
|
5977
5962
|
let dataMin = unionExtremes.dataMin, dataMax = unionExtremes.dataMax, newMin, newMax = baseAxis && Math.round(Math.min(baseAxis.max, pick(dataMax, baseAxis.max))), // #1568
|
|
5978
|
-
baseXAxisOptions, range = rangeOptions._range, rangeMin,
|
|
5963
|
+
baseXAxisOptions, range = rangeOptions._range, rangeMin, ctx, ytdExtremes, addOffsetMin = true;
|
|
5979
5964
|
// Chart has no data, base series is removed
|
|
5980
5965
|
if (dataMin === null || dataMax === null) {
|
|
5981
5966
|
return;
|
|
@@ -6073,16 +6058,20 @@
|
|
|
6073
6058
|
// Update the chart
|
|
6074
6059
|
if (!baseAxis) {
|
|
6075
6060
|
// Axis not yet instantiated. Temporarily set min and range
|
|
6076
|
-
// options and remove them on
|
|
6061
|
+
// options and axes once defined and remove them on
|
|
6062
|
+
// chart load (#4317 & #20529).
|
|
6077
6063
|
baseXAxisOptions = splat(chart.options.xAxis)[0];
|
|
6078
|
-
|
|
6079
|
-
|
|
6080
|
-
|
|
6081
|
-
|
|
6064
|
+
const axisRangeUpdateEvent = addEvent(chart, 'afterGetAxes', function () {
|
|
6065
|
+
const xAxis = chart.xAxis[0];
|
|
6066
|
+
xAxis.range = xAxis.options.range = range;
|
|
6067
|
+
xAxis.min = xAxis.options.min = rangeMin;
|
|
6068
|
+
});
|
|
6082
6069
|
addEvent(chart, 'load', function resetMinAndRange() {
|
|
6070
|
+
const xAxis = chart.xAxis[0];
|
|
6083
6071
|
chart.setFixedRange(rangeOptions._range);
|
|
6084
|
-
|
|
6085
|
-
|
|
6072
|
+
xAxis.options.range = baseXAxisOptions.range;
|
|
6073
|
+
xAxis.options.min = baseXAxisOptions.min;
|
|
6074
|
+
axisRangeUpdateEvent(); // Remove event
|
|
6086
6075
|
});
|
|
6087
6076
|
}
|
|
6088
6077
|
else {
|
|
@@ -6156,6 +6145,7 @@
|
|
|
6156
6145
|
});
|
|
6157
6146
|
}
|
|
6158
6147
|
}));
|
|
6148
|
+
this.createElements();
|
|
6159
6149
|
}
|
|
6160
6150
|
/**
|
|
6161
6151
|
* Dynamically update the range selector buttons after a new range has been
|
|
@@ -6165,25 +6155,25 @@
|
|
|
6165
6155
|
* @function Highcharts.RangeSelector#updateButtonStates
|
|
6166
6156
|
*/
|
|
6167
6157
|
updateButtonStates() {
|
|
6168
|
-
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
|
|
6158
|
+
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
|
|
6169
6159
|
unionExtremes = (chart.scroller &&
|
|
6170
|
-
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,
|
|
6171
|
-
|
|
6160
|
+
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)
|
|
6161
|
+
.fill(0), selectedExists = isNumber(selected), buttons = rangeSelector.buttons;
|
|
6162
|
+
let isSelectedTooGreat = false, selectedIndex = null;
|
|
6172
6163
|
rangeSelector.buttonOptions.forEach((rangeOptions, i) => {
|
|
6173
|
-
const range = rangeOptions._range, type = rangeOptions.type, count = rangeOptions.count || 1,
|
|
6164
|
+
const range = rangeOptions._range, type = rangeOptions.type, count = rangeOptions.count || 1, offsetRange = rangeOptions._offsetMax -
|
|
6174
6165
|
rangeOptions._offsetMin, isSelected = i === selected,
|
|
6175
|
-
// Disable buttons where the range exceeds what is allowed
|
|
6166
|
+
// Disable buttons where the range exceeds what is allowed i;
|
|
6176
6167
|
// the current view
|
|
6177
6168
|
isTooGreatRange = range >
|
|
6178
6169
|
dataMax - dataMin,
|
|
6179
6170
|
// Disable buttons where the range is smaller than the minimum
|
|
6180
6171
|
// range
|
|
6181
6172
|
isTooSmallRange = range < baseAxis.minRange;
|
|
6182
|
-
let state = 0,
|
|
6183
6173
|
// Do not select the YTD button if not explicitly told so
|
|
6184
|
-
isYTDButNotSelected = false,
|
|
6174
|
+
let isYTDButNotSelected = false,
|
|
6185
6175
|
// Disable the All button if we're already showing all
|
|
6186
|
-
|
|
6176
|
+
isSameRange = range === actualRange;
|
|
6187
6177
|
if (isSelected && isTooGreatRange) {
|
|
6188
6178
|
isSelectedTooGreat = true;
|
|
6189
6179
|
}
|
|
@@ -6192,8 +6182,9 @@
|
|
|
6192
6182
|
range &&
|
|
6193
6183
|
actualRange < range) {
|
|
6194
6184
|
// Handle ordinal ranges
|
|
6195
|
-
const positions = baseAxis.ordinal.positions;
|
|
6196
|
-
if (positions[
|
|
6185
|
+
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);
|
|
6186
|
+
if (positions[nextOrdinalPosition] -
|
|
6187
|
+
positions[prevOrdinalPosition] > range) {
|
|
6197
6188
|
isSameRange = true;
|
|
6198
6189
|
}
|
|
6199
6190
|
}
|
|
@@ -6213,9 +6204,6 @@
|
|
|
6213
6204
|
else if (type === 'all') {
|
|
6214
6205
|
isSameRange = (baseAxis.max - baseAxis.min >=
|
|
6215
6206
|
dataMax - dataMin);
|
|
6216
|
-
isAllButAlreadyShowingAll = (!isSelected &&
|
|
6217
|
-
selectedExists &&
|
|
6218
|
-
isSameRange);
|
|
6219
6207
|
}
|
|
6220
6208
|
// The new zoom area happens to match the range for a button - mark
|
|
6221
6209
|
// it selected. This happens when scrolling across an ordinal gap.
|
|
@@ -6225,38 +6213,56 @@
|
|
|
6225
6213
|
!(isSelectedTooGreat && type === 'all') &&
|
|
6226
6214
|
(isTooGreatRange ||
|
|
6227
6215
|
isTooSmallRange ||
|
|
6228
|
-
isAllButAlreadyShowingAll ||
|
|
6229
6216
|
hasNoData));
|
|
6230
6217
|
const select = ((isSelectedTooGreat && type === 'all') ||
|
|
6231
|
-
(
|
|
6232
|
-
(isSameRange && !selectedExists && !isYTDButNotSelected) ||
|
|
6218
|
+
(isYTDButNotSelected ? false : isSameRange) ||
|
|
6233
6219
|
(isSelected && rangeSelector.frozenStates));
|
|
6234
6220
|
if (disable) {
|
|
6235
|
-
|
|
6221
|
+
buttonStates[i] = 3;
|
|
6236
6222
|
}
|
|
6237
6223
|
else if (select) {
|
|
6238
|
-
selectedExists
|
|
6239
|
-
|
|
6224
|
+
if (!selectedExists || i === selected) {
|
|
6225
|
+
selectedIndex = i;
|
|
6226
|
+
}
|
|
6227
|
+
}
|
|
6228
|
+
});
|
|
6229
|
+
if (selectedIndex !== null) {
|
|
6230
|
+
buttonStates[selectedIndex] = 2;
|
|
6231
|
+
rangeSelector.setSelected(selectedIndex);
|
|
6232
|
+
}
|
|
6233
|
+
else {
|
|
6234
|
+
rangeSelector.setSelected();
|
|
6235
|
+
if (dropdownLabel) {
|
|
6236
|
+
dropdownLabel.setState(0);
|
|
6237
|
+
dropdownLabel.attr({
|
|
6238
|
+
text: (defaultOptions.lang.rangeSelectorZoom || '') + ' ▾'
|
|
6239
|
+
});
|
|
6240
6240
|
}
|
|
6241
|
-
|
|
6241
|
+
}
|
|
6242
|
+
for (let i = 0; i < buttonStates.length; i++) {
|
|
6243
|
+
const state = buttonStates[i];
|
|
6244
|
+
const button = buttons[i];
|
|
6242
6245
|
if (button.state !== state) {
|
|
6243
6246
|
button.setState(state);
|
|
6244
6247
|
if (dropdown) {
|
|
6245
|
-
dropdown.options[i + 1].disabled =
|
|
6248
|
+
dropdown.options[i + 1].disabled = (state === 3);
|
|
6246
6249
|
if (state === 2) {
|
|
6250
|
+
if (dropdownLabel) {
|
|
6251
|
+
dropdownLabel.setState(2);
|
|
6252
|
+
dropdownLabel.attr({
|
|
6253
|
+
text: rangeSelector.buttonOptions[i].text + ' ▾'
|
|
6254
|
+
});
|
|
6255
|
+
}
|
|
6247
6256
|
dropdown.selectedIndex = i + 1;
|
|
6248
6257
|
}
|
|
6249
|
-
|
|
6250
|
-
|
|
6251
|
-
|
|
6252
|
-
|
|
6253
|
-
|
|
6254
|
-
else if ((state === 2 && !defined(selected)) ||
|
|
6255
|
-
isSelectedTooGreat) {
|
|
6256
|
-
rangeSelector.setSelected(i);
|
|
6258
|
+
const bbox = dropdownLabel.getBBox();
|
|
6259
|
+
css(dropdown, {
|
|
6260
|
+
width: `${bbox.width}px`,
|
|
6261
|
+
height: `${bbox.height}px`
|
|
6262
|
+
});
|
|
6257
6263
|
}
|
|
6258
6264
|
}
|
|
6259
|
-
}
|
|
6265
|
+
}
|
|
6260
6266
|
}
|
|
6261
6267
|
/**
|
|
6262
6268
|
* Compute and cache the range for an individual button
|
|
@@ -6454,12 +6460,10 @@
|
|
|
6454
6460
|
/**
|
|
6455
6461
|
* @private
|
|
6456
6462
|
*/
|
|
6457
|
-
function updateExtremes() {
|
|
6458
|
-
const { maxInput, minInput } = rangeSelector, chartAxis = chart.xAxis[0], unionExtremes =
|
|
6463
|
+
function updateExtremes(name) {
|
|
6464
|
+
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];
|
|
6459
6465
|
let value = rangeSelector.getInputValue(name);
|
|
6460
|
-
if (value !==
|
|
6461
|
-
isNumber(value)) {
|
|
6462
|
-
input.setAttribute('data-hc-time-previous', value);
|
|
6466
|
+
if (isNumber(value) && value !== currentExtreme) {
|
|
6463
6467
|
// Validate the extremes. If it goes beyond the data min or
|
|
6464
6468
|
// max, use the actual data extreme (#2438).
|
|
6465
6469
|
if (isMin && maxInput && isNumber(dataMin)) {
|
|
@@ -6556,7 +6560,7 @@
|
|
|
6556
6560
|
if (input === H.doc.activeElement) { // Only when focused
|
|
6557
6561
|
// Update also when no `change` event is triggered, like when
|
|
6558
6562
|
// clicking inside the SVG (#4710)
|
|
6559
|
-
updateExtremes();
|
|
6563
|
+
updateExtremes(name);
|
|
6560
6564
|
}
|
|
6561
6565
|
// #10404 - move hide and blur outside focus
|
|
6562
6566
|
rangeSelector.hideInput(name);
|
|
@@ -6568,7 +6572,7 @@
|
|
|
6568
6572
|
input.onchange = () => {
|
|
6569
6573
|
// Update extremes and blur input when clicking date input calendar
|
|
6570
6574
|
if (!keyDown) {
|
|
6571
|
-
updateExtremes();
|
|
6575
|
+
updateExtremes(name);
|
|
6572
6576
|
rangeSelector.hideInput(name);
|
|
6573
6577
|
input.blur();
|
|
6574
6578
|
}
|
|
@@ -6576,14 +6580,16 @@
|
|
|
6576
6580
|
input.onkeypress = (event) => {
|
|
6577
6581
|
// IE does not fire onchange on enter
|
|
6578
6582
|
if (event.keyCode === 13) {
|
|
6579
|
-
updateExtremes();
|
|
6583
|
+
updateExtremes(name);
|
|
6580
6584
|
}
|
|
6581
6585
|
};
|
|
6582
6586
|
input.onkeydown = (event) => {
|
|
6583
6587
|
keyDown = true;
|
|
6584
6588
|
// Arrow keys
|
|
6585
|
-
if (event.
|
|
6586
|
-
|
|
6589
|
+
if (event.key === 'ArrowUp' ||
|
|
6590
|
+
event.key === 'ArrowDown' ||
|
|
6591
|
+
event.key === 'Tab') {
|
|
6592
|
+
updateExtremes(name);
|
|
6587
6593
|
}
|
|
6588
6594
|
};
|
|
6589
6595
|
input.onkeyup = () => {
|
|
@@ -6626,6 +6632,42 @@
|
|
|
6626
6632
|
min
|
|
6627
6633
|
};
|
|
6628
6634
|
}
|
|
6635
|
+
createElements() {
|
|
6636
|
+
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;
|
|
6637
|
+
if (options.enabled === false) {
|
|
6638
|
+
return;
|
|
6639
|
+
}
|
|
6640
|
+
this.group = renderer.g('range-selector-group')
|
|
6641
|
+
.attr({
|
|
6642
|
+
zIndex: 7
|
|
6643
|
+
})
|
|
6644
|
+
.add();
|
|
6645
|
+
this.div = createElement('div', void 0, {
|
|
6646
|
+
position: 'relative',
|
|
6647
|
+
height: 0,
|
|
6648
|
+
zIndex: inputsZIndex
|
|
6649
|
+
});
|
|
6650
|
+
if (this.buttonOptions.length) {
|
|
6651
|
+
this.renderButtons();
|
|
6652
|
+
}
|
|
6653
|
+
// First create a wrapper outside the container in order to make
|
|
6654
|
+
// the inputs work and make export correct
|
|
6655
|
+
if (container.parentNode) {
|
|
6656
|
+
container.parentNode.insertBefore(this.div, container);
|
|
6657
|
+
}
|
|
6658
|
+
if (inputEnabled) {
|
|
6659
|
+
// Create the group to keep the inputs
|
|
6660
|
+
this.inputGroup = renderer.g('input-group').add(this.group);
|
|
6661
|
+
const minElems = this.drawInput('min');
|
|
6662
|
+
this.minDateBox = minElems.dateBox;
|
|
6663
|
+
this.minLabel = minElems.label;
|
|
6664
|
+
this.minInput = minElems.input;
|
|
6665
|
+
const maxElems = this.drawInput('max');
|
|
6666
|
+
this.maxDateBox = maxElems.dateBox;
|
|
6667
|
+
this.maxLabel = maxElems.label;
|
|
6668
|
+
this.maxInput = maxElems.input;
|
|
6669
|
+
}
|
|
6670
|
+
}
|
|
6629
6671
|
/**
|
|
6630
6672
|
* Render the range selector including the buttons and the inputs. The first
|
|
6631
6673
|
* time render is called, the elements are created and positioned. On
|
|
@@ -6639,46 +6681,12 @@
|
|
|
6639
6681
|
* X axis maximum
|
|
6640
6682
|
*/
|
|
6641
6683
|
render(min, max) {
|
|
6642
|
-
const chart = this.chart,
|
|
6684
|
+
const chart = this.chart, chartOptions = chart.options, options = chartOptions.rangeSelector,
|
|
6643
6685
|
// Place inputs above the container
|
|
6644
|
-
|
|
6645
|
-
chartOptions.chart.style.zIndex, 0) + 1, inputEnabled = options.inputEnabled, rendered = this.rendered;
|
|
6686
|
+
inputEnabled = options.inputEnabled;
|
|
6646
6687
|
if (options.enabled === false) {
|
|
6647
6688
|
return;
|
|
6648
6689
|
}
|
|
6649
|
-
// Create the elements
|
|
6650
|
-
if (!rendered) {
|
|
6651
|
-
this.group = renderer.g('range-selector-group')
|
|
6652
|
-
.attr({
|
|
6653
|
-
zIndex: 7
|
|
6654
|
-
})
|
|
6655
|
-
.add();
|
|
6656
|
-
this.div = createElement('div', void 0, {
|
|
6657
|
-
position: 'relative',
|
|
6658
|
-
height: 0,
|
|
6659
|
-
zIndex: inputsZIndex
|
|
6660
|
-
});
|
|
6661
|
-
if (this.buttonOptions.length) {
|
|
6662
|
-
this.renderButtons();
|
|
6663
|
-
}
|
|
6664
|
-
// First create a wrapper outside the container in order to make
|
|
6665
|
-
// the inputs work and make export correct
|
|
6666
|
-
if (container.parentNode) {
|
|
6667
|
-
container.parentNode.insertBefore(this.div, container);
|
|
6668
|
-
}
|
|
6669
|
-
if (inputEnabled) {
|
|
6670
|
-
// Create the group to keep the inputs
|
|
6671
|
-
this.inputGroup = renderer.g('input-group').add(this.group);
|
|
6672
|
-
const minElems = this.drawInput('min');
|
|
6673
|
-
this.minDateBox = minElems.dateBox;
|
|
6674
|
-
this.minLabel = minElems.label;
|
|
6675
|
-
this.minInput = minElems.input;
|
|
6676
|
-
const maxElems = this.drawInput('max');
|
|
6677
|
-
this.maxDateBox = maxElems.dateBox;
|
|
6678
|
-
this.maxLabel = maxElems.label;
|
|
6679
|
-
this.maxInput = maxElems.input;
|
|
6680
|
-
}
|
|
6681
|
-
}
|
|
6682
6690
|
if (inputEnabled) {
|
|
6683
6691
|
// Set or reset the input values
|
|
6684
6692
|
this.setInputValue('min', min);
|
|
@@ -6710,7 +6718,7 @@
|
|
|
6710
6718
|
}
|
|
6711
6719
|
}
|
|
6712
6720
|
this.alignElements();
|
|
6713
|
-
this.
|
|
6721
|
+
this.updateButtonStates();
|
|
6714
6722
|
}
|
|
6715
6723
|
/**
|
|
6716
6724
|
* Render the range buttons. This only runs the first time, later the
|
|
@@ -6734,33 +6742,39 @@
|
|
|
6734
6742
|
this.buttonGroup = renderer.g('range-selector-buttons').add(this.group);
|
|
6735
6743
|
const dropdown = this.dropdown = createElement('select', void 0, {
|
|
6736
6744
|
position: 'absolute',
|
|
6737
|
-
width: '1px',
|
|
6738
|
-
height: '1px',
|
|
6739
6745
|
padding: 0,
|
|
6740
6746
|
border: 0,
|
|
6741
|
-
top: '-9999em',
|
|
6742
6747
|
cursor: 'pointer',
|
|
6743
6748
|
opacity: 0.0001
|
|
6744
6749
|
}, this.div);
|
|
6750
|
+
// Create a label for dropdown select element
|
|
6751
|
+
const userButtonTheme = chart.userOptions.rangeSelector?.buttonTheme;
|
|
6752
|
+
this.dropdownLabel = renderer.button('', 0, 0, () => { }, merge(buttonTheme, {
|
|
6753
|
+
'stroke-width': pick(buttonTheme['stroke-width'], 0),
|
|
6754
|
+
width: 'auto',
|
|
6755
|
+
paddingLeft: pick(options.buttonTheme.paddingLeft, userButtonTheme?.padding, 8),
|
|
6756
|
+
paddingRight: pick(options.buttonTheme.paddingRight, userButtonTheme?.padding, 8)
|
|
6757
|
+
}), states && states.hover, states && states.select, states && states.disabled)
|
|
6758
|
+
.hide()
|
|
6759
|
+
.add(this.group);
|
|
6745
6760
|
// Prevent page zoom on iPhone
|
|
6746
6761
|
addEvent(dropdown, 'touchstart', () => {
|
|
6747
6762
|
dropdown.style.fontSize = '16px';
|
|
6748
6763
|
});
|
|
6749
6764
|
// Forward events from select to button
|
|
6750
|
-
|
|
6751
|
-
|
|
6752
|
-
|
|
6753
|
-
|
|
6754
|
-
|
|
6755
|
-
|
|
6756
|
-
|
|
6757
|
-
|
|
6758
|
-
|
|
6759
|
-
|
|
6760
|
-
});
|
|
6765
|
+
const mouseOver = H.isMS ? 'mouseover' : 'mouseenter', mouseOut = H.isMS ? 'mouseout' : 'mouseleave';
|
|
6766
|
+
addEvent(dropdown, mouseOver, () => {
|
|
6767
|
+
fireEvent(this.dropdownLabel.element, mouseOver);
|
|
6768
|
+
});
|
|
6769
|
+
addEvent(dropdown, mouseOut, () => {
|
|
6770
|
+
fireEvent(this.dropdownLabel.element, mouseOut);
|
|
6771
|
+
});
|
|
6772
|
+
addEvent(dropdown, 'change', () => {
|
|
6773
|
+
const button = this.buttons[dropdown.selectedIndex - 1];
|
|
6774
|
+
fireEvent(button.element, 'click');
|
|
6761
6775
|
});
|
|
6762
6776
|
this.zoomText = renderer
|
|
6763
|
-
.label(
|
|
6777
|
+
.label(lang.rangeSelectorZoom || '', 0)
|
|
6764
6778
|
.attr({
|
|
6765
6779
|
padding: options.buttonTheme.padding,
|
|
6766
6780
|
height: options.buttonTheme.height,
|
|
@@ -6852,10 +6866,13 @@
|
|
|
6852
6866
|
this.initialButtonGroupWidth = width;
|
|
6853
6867
|
}
|
|
6854
6868
|
plotLeft -= chart.spacing[3];
|
|
6855
|
-
this.updateButtonStates();
|
|
6856
6869
|
// Detect collision between button group and exporting
|
|
6857
6870
|
const xOffsetForExportButton = getXOffsetForExportButton(buttonGroup, buttonPosition);
|
|
6858
6871
|
this.alignButtonGroup(xOffsetForExportButton);
|
|
6872
|
+
if (this.buttonGroup?.translateY) {
|
|
6873
|
+
this.dropdownLabel
|
|
6874
|
+
.attr({ y: this.buttonGroup.translateY });
|
|
6875
|
+
}
|
|
6859
6876
|
// Skip animation
|
|
6860
6877
|
group.placed = buttonGroup.placed = chart.hasLoaded;
|
|
6861
6878
|
}
|
|
@@ -7025,7 +7042,7 @@
|
|
|
7025
7042
|
return buttonWidth;
|
|
7026
7043
|
};
|
|
7027
7044
|
const groupsOverlap = (buttonGroupWidth) => {
|
|
7028
|
-
if (inputGroup && buttonGroup) {
|
|
7045
|
+
if (inputGroup?.alignOptions && buttonGroup) {
|
|
7029
7046
|
const inputGroupX = (inputGroup.alignAttr.translateX +
|
|
7030
7047
|
inputGroup.alignOptions.x -
|
|
7031
7048
|
xOffsetForExportButton +
|
|
@@ -7033,7 +7050,7 @@
|
|
|
7033
7050
|
inputGroup.getBBox().x +
|
|
7034
7051
|
// 2px padding to not overlap input and label
|
|
7035
7052
|
2);
|
|
7036
|
-
const inputGroupWidth = inputGroup.alignOptions.width;
|
|
7053
|
+
const inputGroupWidth = inputGroup.alignOptions.width || 0;
|
|
7037
7054
|
const buttonGroupX = buttonGroup.alignAttr.translateX +
|
|
7038
7055
|
buttonGroup.getBBox().x;
|
|
7039
7056
|
return (buttonGroupX + buttonGroupWidth > inputGroupX) &&
|
|
@@ -7057,7 +7074,7 @@
|
|
|
7057
7074
|
};
|
|
7058
7075
|
if (buttonGroup) {
|
|
7059
7076
|
if (dropdown === 'always') {
|
|
7060
|
-
this.collapseButtons(
|
|
7077
|
+
this.collapseButtons();
|
|
7061
7078
|
if (groupsOverlap(maxButtonWidth())) {
|
|
7062
7079
|
// Move the inputs down if there is still a collision
|
|
7063
7080
|
// after collapsing the buttons
|
|
@@ -7075,7 +7092,7 @@
|
|
|
7075
7092
|
// 20 is minimal spacing between elements
|
|
7076
7093
|
groupsOverlap(this.initialButtonGroupWidth + 20)) {
|
|
7077
7094
|
if (dropdown === 'responsive') {
|
|
7078
|
-
this.collapseButtons(
|
|
7095
|
+
this.collapseButtons();
|
|
7079
7096
|
if (groupsOverlap(maxButtonWidth())) {
|
|
7080
7097
|
moveInputsDown();
|
|
7081
7098
|
}
|
|
@@ -7090,7 +7107,7 @@
|
|
|
7090
7107
|
}
|
|
7091
7108
|
else if (buttonGroup && dropdown === 'responsive') {
|
|
7092
7109
|
if (this.initialButtonGroupWidth > chart.plotWidth) {
|
|
7093
|
-
this.collapseButtons(
|
|
7110
|
+
this.collapseButtons();
|
|
7094
7111
|
}
|
|
7095
7112
|
else {
|
|
7096
7113
|
this.expandButtons();
|
|
@@ -7098,54 +7115,20 @@
|
|
|
7098
7115
|
}
|
|
7099
7116
|
}
|
|
7100
7117
|
/**
|
|
7101
|
-
* Collapse the buttons and
|
|
7118
|
+
* Collapse the buttons and show the select element.
|
|
7102
7119
|
*
|
|
7103
7120
|
* @private
|
|
7104
7121
|
* @function Highcharts.RangeSelector#collapseButtons
|
|
7105
7122
|
* @param {number} xOffsetForExportButton
|
|
7106
7123
|
*/
|
|
7107
|
-
collapseButtons(
|
|
7108
|
-
const { buttons,
|
|
7109
|
-
// If the buttons are already collapsed do nothing.
|
|
7124
|
+
collapseButtons() {
|
|
7125
|
+
const { buttons, zoomText } = this;
|
|
7110
7126
|
if (this.isCollapsed === true) {
|
|
7111
7127
|
return;
|
|
7112
7128
|
}
|
|
7113
7129
|
this.isCollapsed = true;
|
|
7114
|
-
|
|
7115
|
-
|
|
7116
|
-
const getAttribs = (text) => ({
|
|
7117
|
-
text: text ? `${text} ▾` : '▾',
|
|
7118
|
-
width: 'auto',
|
|
7119
|
-
paddingLeft: pick(options.buttonTheme.paddingLeft, userButtonTheme.padding, 8),
|
|
7120
|
-
paddingRight: pick(options.buttonTheme.paddingRight, userButtonTheme.padding, 8)
|
|
7121
|
-
});
|
|
7122
|
-
if (zoomText) {
|
|
7123
|
-
zoomText.hide();
|
|
7124
|
-
}
|
|
7125
|
-
let hasActiveButton = false;
|
|
7126
|
-
buttonOptions.forEach((rangeOptions, i) => {
|
|
7127
|
-
const button = buttons[i];
|
|
7128
|
-
if (button.state !== 2) {
|
|
7129
|
-
button.hide();
|
|
7130
|
-
}
|
|
7131
|
-
else {
|
|
7132
|
-
button.show();
|
|
7133
|
-
button.attr(getAttribs(rangeOptions.text));
|
|
7134
|
-
hasActiveButton = true;
|
|
7135
|
-
}
|
|
7136
|
-
});
|
|
7137
|
-
if (!hasActiveButton) {
|
|
7138
|
-
if (dropdown) {
|
|
7139
|
-
dropdown.selectedIndex = 0;
|
|
7140
|
-
}
|
|
7141
|
-
buttons[0].show();
|
|
7142
|
-
buttons[0].attr(getAttribs(this.zoomText && this.zoomText.textStr));
|
|
7143
|
-
}
|
|
7144
|
-
const { align } = options.buttonPosition;
|
|
7145
|
-
this.positionButtons();
|
|
7146
|
-
if (align === 'right' || align === 'center') {
|
|
7147
|
-
this.alignButtonGroup(xOffsetForExportButton, buttons[this.currentButtonIndex()].getBBox().width);
|
|
7148
|
-
}
|
|
7130
|
+
zoomText.hide();
|
|
7131
|
+
buttons.forEach((button) => void button.hide());
|
|
7149
7132
|
this.showDropdown();
|
|
7150
7133
|
}
|
|
7151
7134
|
/**
|
|
@@ -7155,44 +7138,16 @@
|
|
|
7155
7138
|
* @function Highcharts.RangeSelector#expandButtons
|
|
7156
7139
|
*/
|
|
7157
7140
|
expandButtons() {
|
|
7158
|
-
const { buttons,
|
|
7159
|
-
this.hideDropdown();
|
|
7160
|
-
// If buttons are already not collapsed, do nothing.
|
|
7141
|
+
const { buttons, zoomText } = this;
|
|
7161
7142
|
if (this.isCollapsed === false) {
|
|
7162
7143
|
return;
|
|
7163
7144
|
}
|
|
7164
7145
|
this.isCollapsed = false;
|
|
7165
|
-
|
|
7166
|
-
|
|
7167
|
-
|
|
7168
|
-
buttonOptions.forEach((rangeOptions, i) => {
|
|
7169
|
-
const button = buttons[i];
|
|
7170
|
-
button.show();
|
|
7171
|
-
button.attr({
|
|
7172
|
-
text: rangeOptions.text,
|
|
7173
|
-
width: options.buttonTheme.width || 28,
|
|
7174
|
-
paddingLeft: pick(options.buttonTheme.paddingLeft, 'unset'),
|
|
7175
|
-
paddingRight: pick(options.buttonTheme.paddingRight, 'unset')
|
|
7176
|
-
});
|
|
7177
|
-
if (button.state < 2) {
|
|
7178
|
-
button.setState(0);
|
|
7179
|
-
}
|
|
7180
|
-
});
|
|
7146
|
+
this.hideDropdown();
|
|
7147
|
+
zoomText.show();
|
|
7148
|
+
buttons.forEach((button) => void button.show());
|
|
7181
7149
|
this.positionButtons();
|
|
7182
7150
|
}
|
|
7183
|
-
/**
|
|
7184
|
-
* Get the index of the visible button when the buttons are collapsed.
|
|
7185
|
-
*
|
|
7186
|
-
* @private
|
|
7187
|
-
* @function Highcharts.RangeSelector#currentButtonIndex
|
|
7188
|
-
*/
|
|
7189
|
-
currentButtonIndex() {
|
|
7190
|
-
const { dropdown } = this;
|
|
7191
|
-
if (dropdown && dropdown.selectedIndex > 0) {
|
|
7192
|
-
return dropdown.selectedIndex - 1;
|
|
7193
|
-
}
|
|
7194
|
-
return 0;
|
|
7195
|
-
}
|
|
7196
7151
|
/**
|
|
7197
7152
|
* Position the select element on top of the button.
|
|
7198
7153
|
*
|
|
@@ -7200,14 +7155,16 @@
|
|
|
7200
7155
|
* @function Highcharts.RangeSelector#showDropdown
|
|
7201
7156
|
*/
|
|
7202
7157
|
showDropdown() {
|
|
7203
|
-
const { buttonGroup,
|
|
7158
|
+
const { buttonGroup, chart, dropdownLabel, dropdown } = this;
|
|
7204
7159
|
if (buttonGroup && dropdown) {
|
|
7205
|
-
const { translateX = 0, translateY = 0 } = buttonGroup,
|
|
7160
|
+
const { translateX = 0, translateY = 0 } = buttonGroup, left = chart.plotLeft + translateX, top = translateY;
|
|
7161
|
+
dropdownLabel
|
|
7162
|
+
.attr({ x: left, y: top })
|
|
7163
|
+
.show();
|
|
7206
7164
|
css(dropdown, {
|
|
7207
|
-
left:
|
|
7208
|
-
top:
|
|
7209
|
-
|
|
7210
|
-
height: bBox.height + 'px'
|
|
7165
|
+
left: left + 'px',
|
|
7166
|
+
top: top + 'px',
|
|
7167
|
+
visibility: 'inherit'
|
|
7211
7168
|
});
|
|
7212
7169
|
this.hasVisibleDropdown = true;
|
|
7213
7170
|
}
|
|
@@ -7219,8 +7176,9 @@
|
|
|
7219
7176
|
hideDropdown() {
|
|
7220
7177
|
const { dropdown } = this;
|
|
7221
7178
|
if (dropdown) {
|
|
7179
|
+
this.dropdownLabel.hide();
|
|
7222
7180
|
css(dropdown, {
|
|
7223
|
-
|
|
7181
|
+
visibility: 'hidden',
|
|
7224
7182
|
width: '1px',
|
|
7225
7183
|
height: '1px'
|
|
7226
7184
|
});
|
|
@@ -7275,12 +7233,14 @@
|
|
|
7275
7233
|
* @function Highcharts.RangeSelector#update
|
|
7276
7234
|
* @param {Highcharts.RangeSelectorOptions} options
|
|
7277
7235
|
*/
|
|
7278
|
-
update(options) {
|
|
7236
|
+
update(options, redraw = true) {
|
|
7279
7237
|
const chart = this.chart;
|
|
7280
7238
|
merge(true, chart.options.rangeSelector, options);
|
|
7281
7239
|
this.destroy();
|
|
7282
7240
|
this.init(chart);
|
|
7283
|
-
|
|
7241
|
+
if (redraw) {
|
|
7242
|
+
this.render();
|
|
7243
|
+
}
|
|
7284
7244
|
}
|
|
7285
7245
|
/**
|
|
7286
7246
|
* Destroys allocated elements.
|
|
@@ -7420,7 +7380,7 @@
|
|
|
7420
7380
|
const { format } = F;
|
|
7421
7381
|
const { getOptions } = D;
|
|
7422
7382
|
const { setFixedRange } = StockUtilities;
|
|
7423
|
-
const { addEvent, clamp, defined, extend, find, isNumber, isString, merge, pick, splat } = U;
|
|
7383
|
+
const { addEvent, clamp, crisp, defined, extend, find, isNumber, isString, merge, pick, splat } = U;
|
|
7424
7384
|
/* *
|
|
7425
7385
|
*
|
|
7426
7386
|
* Functions
|
|
@@ -8039,15 +7999,11 @@
|
|
|
8039
7999
|
// normalize to a crisp line
|
|
8040
8000
|
for (let i = 0; i < points.length; i = i + 2) {
|
|
8041
8001
|
const start = points[i], end = points[i + 1];
|
|
8042
|
-
if (start[1] === end[1]) {
|
|
8043
|
-
|
|
8044
|
-
// behave the same.
|
|
8045
|
-
start[1] = end[1] =
|
|
8046
|
-
Math.round(start[1]) - (width % 2 / 2);
|
|
8002
|
+
if (defined(start[1]) && start[1] === end[1]) {
|
|
8003
|
+
start[1] = end[1] = crisp(start[1], width);
|
|
8047
8004
|
}
|
|
8048
|
-
if (start[2] === end[2]) {
|
|
8049
|
-
start[2] = end[2] =
|
|
8050
|
-
Math.round(start[2]) + (width % 2 / 2);
|
|
8005
|
+
if (defined(start[2]) && start[2] === end[2]) {
|
|
8006
|
+
start[2] = end[2] = crisp(start[2], width);
|
|
8051
8007
|
}
|
|
8052
8008
|
}
|
|
8053
8009
|
return points;
|
|
@@ -8285,7 +8241,7 @@
|
|
|
8285
8241
|
*
|
|
8286
8242
|
* */
|
|
8287
8243
|
const { column: ColumnSeries } = SeriesRegistry.seriesTypes;
|
|
8288
|
-
const { extend, merge } = U;
|
|
8244
|
+
const { crisp, extend, merge } = U;
|
|
8289
8245
|
/* *
|
|
8290
8246
|
*
|
|
8291
8247
|
* Class
|
|
@@ -8332,10 +8288,9 @@
|
|
|
8332
8288
|
*/
|
|
8333
8289
|
getPointPath(point, graphic) {
|
|
8334
8290
|
// Crisp vector coordinates
|
|
8335
|
-
const strokeWidth = graphic.strokeWidth(), series = point.series,
|
|
8291
|
+
const strokeWidth = graphic.strokeWidth(), series = point.series,
|
|
8336
8292
|
// #2596:
|
|
8337
|
-
crispX =
|
|
8338
|
-
let plotClose = point.plotClose;
|
|
8293
|
+
crispX = crisp(point.plotX || 0, strokeWidth), halfWidth = Math.round(point.shapeArgs.width / 2);
|
|
8339
8294
|
// The vertical stem
|
|
8340
8295
|
const path = [
|
|
8341
8296
|
['M', crispX, Math.round(point.yBottom)],
|
|
@@ -8343,7 +8298,7 @@
|
|
|
8343
8298
|
];
|
|
8344
8299
|
// Close
|
|
8345
8300
|
if (point.close !== null) {
|
|
8346
|
-
plotClose =
|
|
8301
|
+
const plotClose = crisp(point.plotClose, strokeWidth);
|
|
8347
8302
|
path.push(['M', crispX, plotClose], ['L', crispX + halfWidth, plotClose]);
|
|
8348
8303
|
series.extendStem(path, strokeWidth / 2, plotClose);
|
|
8349
8304
|
}
|
|
@@ -8710,7 +8665,7 @@
|
|
|
8710
8665
|
* */
|
|
8711
8666
|
const { composed } = H;
|
|
8712
8667
|
const { hlc: HLCSeries } = SeriesRegistry.seriesTypes;
|
|
8713
|
-
const { addEvent, extend, merge, pushUnique } = U;
|
|
8668
|
+
const { addEvent, crisp, extend, merge, pushUnique } = U;
|
|
8714
8669
|
/* *
|
|
8715
8670
|
*
|
|
8716
8671
|
* Functions
|
|
@@ -8776,11 +8731,9 @@
|
|
|
8776
8731
|
*
|
|
8777
8732
|
* */
|
|
8778
8733
|
getPointPath(point, graphic) {
|
|
8779
|
-
const path = super.getPointPath(point, graphic), strokeWidth = graphic.strokeWidth(),
|
|
8780
|
-
let plotOpen = point.plotOpen;
|
|
8781
|
-
// Crisp vector coordinates
|
|
8734
|
+
const path = super.getPointPath(point, graphic), strokeWidth = graphic.strokeWidth(), crispX = crisp(point.plotX || 0, strokeWidth), halfWidth = Math.round(point.shapeArgs.width / 2);
|
|
8782
8735
|
if (point.open !== null) {
|
|
8783
|
-
plotOpen =
|
|
8736
|
+
const plotOpen = crisp(point.plotOpen, strokeWidth);
|
|
8784
8737
|
path.push(['M', crispX, plotOpen], ['L', crispX - halfWidth, plotOpen]);
|
|
8785
8738
|
super.extendStem(path, strokeWidth / 2, plotOpen);
|
|
8786
8739
|
}
|
|
@@ -9001,7 +8954,7 @@
|
|
|
9001
8954
|
|
|
9002
8955
|
return CandlestickSeriesDefaults;
|
|
9003
8956
|
});
|
|
9004
|
-
_registerModule(_modules, 'Series/Candlestick/CandlestickSeries.js', [_modules['Series/Candlestick/CandlestickSeriesDefaults.js'], _modules['Core/
|
|
8957
|
+
_registerModule(_modules, 'Series/Candlestick/CandlestickSeries.js', [_modules['Series/Candlestick/CandlestickSeriesDefaults.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (CandlestickSeriesDefaults, SeriesRegistry, U) {
|
|
9005
8958
|
/* *
|
|
9006
8959
|
*
|
|
9007
8960
|
* (c) 2010-2024 Torstein Honsi
|
|
@@ -9011,9 +8964,8 @@
|
|
|
9011
8964
|
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
9012
8965
|
*
|
|
9013
8966
|
* */
|
|
9014
|
-
const { defaultOptions } = D;
|
|
9015
8967
|
const { column: ColumnSeries, ohlc: OHLCSeries } = SeriesRegistry.seriesTypes;
|
|
9016
|
-
const { merge } = U;
|
|
8968
|
+
const { crisp, merge } = U;
|
|
9017
8969
|
/* *
|
|
9018
8970
|
*
|
|
9019
8971
|
* Class
|
|
@@ -9066,7 +9018,7 @@
|
|
|
9066
9018
|
drawPoints() {
|
|
9067
9019
|
const series = this, points = series.points, chart = series.chart, reversedYAxis = series.yAxis.reversed;
|
|
9068
9020
|
for (const point of points) {
|
|
9069
|
-
let graphic = point.graphic, plotOpen, plotClose, topBox, bottomBox, hasTopWhisker, hasBottomWhisker,
|
|
9021
|
+
let graphic = point.graphic, plotOpen, plotClose, topBox, bottomBox, hasTopWhisker, hasBottomWhisker, crispX, path, halfWidth;
|
|
9070
9022
|
const isNew = !graphic;
|
|
9071
9023
|
if (typeof point.plotY !== 'undefined') {
|
|
9072
9024
|
if (!graphic) {
|
|
@@ -9079,9 +9031,9 @@
|
|
|
9079
9031
|
.shadow(series.options.shadow);
|
|
9080
9032
|
}
|
|
9081
9033
|
// Crisp vector coordinates
|
|
9082
|
-
|
|
9034
|
+
const strokeWidth = graphic.strokeWidth();
|
|
9083
9035
|
// #2596:
|
|
9084
|
-
crispX =
|
|
9036
|
+
crispX = crisp(point.plotX || 0, strokeWidth);
|
|
9085
9037
|
plotOpen = point.plotOpen;
|
|
9086
9038
|
plotClose = point.plotClose;
|
|
9087
9039
|
topBox = Math.min(plotOpen, plotClose);
|
|
@@ -9090,13 +9042,13 @@
|
|
|
9090
9042
|
hasTopWhisker = reversedYAxis ?
|
|
9091
9043
|
bottomBox !== point.yBottom :
|
|
9092
9044
|
Math.round(topBox) !==
|
|
9093
|
-
Math.round(point.plotHigh);
|
|
9045
|
+
Math.round(point.plotHigh || 0);
|
|
9094
9046
|
hasBottomWhisker = reversedYAxis ?
|
|
9095
9047
|
Math.round(topBox) !==
|
|
9096
|
-
Math.round(point.plotHigh) :
|
|
9048
|
+
Math.round(point.plotHigh || 0) :
|
|
9097
9049
|
bottomBox !== point.yBottom;
|
|
9098
|
-
topBox =
|
|
9099
|
-
bottomBox =
|
|
9050
|
+
topBox = crisp(topBox, strokeWidth);
|
|
9051
|
+
bottomBox = crisp(bottomBox, strokeWidth);
|
|
9100
9052
|
// Create the path. Due to a bug in Chrome 49, the path is
|
|
9101
9053
|
// first instantiated with no values, then the values
|
|
9102
9054
|
// pushed. For unknown reasons, instantiating the path array
|
|
@@ -9134,7 +9086,7 @@
|
|
|
9134
9086
|
* Static Properties
|
|
9135
9087
|
*
|
|
9136
9088
|
* */
|
|
9137
|
-
CandlestickSeries.defaultOptions = merge(OHLCSeries.defaultOptions,
|
|
9089
|
+
CandlestickSeries.defaultOptions = merge(OHLCSeries.defaultOptions, { tooltip: OHLCSeries.defaultOptions.tooltip }, CandlestickSeriesDefaults);
|
|
9138
9090
|
SeriesRegistry.registerSeriesType('candlestick', CandlestickSeries);
|
|
9139
9091
|
/* *
|
|
9140
9092
|
*
|
|
@@ -9942,7 +9894,8 @@
|
|
|
9942
9894
|
attribs.anchorX = point.anchorX;
|
|
9943
9895
|
}
|
|
9944
9896
|
graphic.attr({
|
|
9945
|
-
|
|
9897
|
+
// Allow empty string as a flag title (#20549)
|
|
9898
|
+
text: point.options.title ?? options.title ?? 'A'
|
|
9946
9899
|
})[graphic.isNew ? 'attr' : 'animate'](attribs);
|
|
9947
9900
|
// Rig for the distribute function
|
|
9948
9901
|
if (!options.allowOverlapX) {
|
|
@@ -11460,6 +11413,7 @@
|
|
|
11460
11413
|
}
|
|
11461
11414
|
else {
|
|
11462
11415
|
series.groupMap = null;
|
|
11416
|
+
series.currentDataGrouping = void 0;
|
|
11463
11417
|
}
|
|
11464
11418
|
series.hasGroupedData = hasGroupedData;
|
|
11465
11419
|
series.preventGraphAnimation =
|