highcharts 11.4.3 → 11.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bower.json +1 -1
- package/es-modules/Accessibility/Accessibility.js +1 -1
- package/es-modules/Accessibility/AccessibilityComponent.js +1 -1
- package/es-modules/Accessibility/Components/NavigatorComponent.js +2 -2
- package/es-modules/Accessibility/KeyboardNavigation.js +1 -1
- package/es-modules/Accessibility/KeyboardNavigationHandler.js +5 -5
- package/es-modules/Accessibility/Options/A11yDefaults.js +1 -1
- package/es-modules/Accessibility/Options/LangDefaults.js +3 -3
- package/es-modules/Accessibility/Utils/EventProvider.js +1 -1
- package/es-modules/Accessibility/Utils/HTMLUtilities.js +1 -1
- package/es-modules/Core/Animation/Fx.js +4 -2
- package/es-modules/Core/Axis/Axis.js +3 -3
- package/es-modules/Core/Axis/AxisDefaults.js +1 -0
- package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +7 -3
- package/es-modules/Core/Axis/GridAxis.js +1 -1
- package/es-modules/Core/Axis/OrdinalAxis.js +5 -2
- package/es-modules/Core/Axis/RadialAxisDefaults.js +3 -3
- package/es-modules/Core/Axis/Stacking/StackItem.js +1 -1
- package/es-modules/Core/Chart/Chart.js +16 -7
- package/es-modules/Core/Chart/MapChart.js +3 -3
- package/es-modules/Core/Chart/StockChart.js +1 -1
- package/es-modules/Core/Color/Color.js +2 -2
- package/es-modules/Core/Defaults.js +27 -1
- package/es-modules/Core/Geometry/GeometryUtilities.js +22 -0
- package/es-modules/Core/Globals.js +1 -1
- package/es-modules/Core/Legend/Legend.js +82 -14
- package/es-modules/Core/MSPointer.js +42 -1
- package/es-modules/Core/Pointer.js +10 -6
- package/es-modules/Core/Renderer/HTML/AST.js +6 -0
- package/es-modules/Core/Renderer/HTML/HTMLElement.js +2 -2
- package/es-modules/Core/Renderer/SVG/SVGElement.js +31 -98
- package/es-modules/Core/Renderer/SVG/SVGLabel.js +20 -0
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +29 -14
- package/es-modules/Core/Renderer/SVG/Symbols.js +18 -18
- package/es-modules/Core/Responsive.js +6 -1
- package/es-modules/Core/Series/DataLabel.js +1 -10
- package/es-modules/Core/Series/DataSeriesComposition.js +0 -2
- package/es-modules/Core/Series/Point.js +7 -10
- package/es-modules/Core/Series/Series.js +40 -24
- package/es-modules/Core/Series/SeriesDefaults.js +18 -12
- package/es-modules/Core/Templating.js +2 -2
- package/es-modules/Core/Tooltip.js +6 -3
- package/es-modules/Data/Connectors/JSONConnector.js +1 -0
- package/es-modules/Data/Converters/CSVConverter.js +1 -1
- package/es-modules/Data/Converters/DataConverter.js +7 -7
- package/es-modules/Data/DataTable.js +106 -5
- package/es-modules/Data/Formula/FormulaParser.js +2 -2
- package/es-modules/Extensions/Annotations/Controllables/ControllableDefaults.js +1 -1
- package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +1 -1
- package/es-modules/Extensions/Annotations/NavigationBindings.js +1 -2
- package/es-modules/Extensions/Boost/Boost.js +1 -1
- package/es-modules/Extensions/Boost/BoostChart.js +8 -2
- package/es-modules/Extensions/Boost/BoostSeries.js +41 -10
- package/es-modules/Extensions/Boost/WGLShader.js +1 -1
- package/es-modules/Extensions/BorderRadius.js +3 -3
- package/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +0 -38
- package/es-modules/Extensions/Data.js +11 -11
- package/es-modules/Extensions/DataGrouping/DataGrouping.js +1 -2
- package/es-modules/Extensions/DataGrouping/DataGroupingDefaults.js +1 -1
- package/es-modules/Extensions/DownloadURL.js +1 -1
- package/es-modules/Extensions/Drilldown/Drilldown.js +0 -2
- package/es-modules/Extensions/Exporting/Exporting.js +14 -14
- package/es-modules/Extensions/OverlappingDataLabels.js +36 -5
- package/es-modules/Extensions/Pane/PaneDefaults.js +3 -2
- package/es-modules/Extensions/ParallelCoordinates/ParallelCoordinates.js +1 -1
- package/es-modules/Extensions/Sonification/MIDI.js +7 -7
- package/es-modules/Extensions/Sonification/SonificationInstrument.js +0 -1
- package/es-modules/Extensions/Sonification/TimelineFromChart.js +1 -3
- package/es-modules/Extensions/TextPath.js +225 -0
- package/es-modules/Maps/MapUtilities.js +1 -20
- package/es-modules/Maps/MapView.js +3 -1
- package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +3 -0
- package/es-modules/Series/Area/AreaSeries.js +5 -0
- package/es-modules/Series/Area/AreaSeriesDefaults.js +1 -1
- package/es-modules/Series/Bar/BarSeries.js +1 -1
- package/es-modules/Series/Bellcurve/BellcurveSeriesDefaults.js +2 -2
- package/es-modules/Series/BoxPlot/BoxPlotSeries.js +2 -1
- package/es-modules/Series/Bubble/BubbleLegendComposition.js +4 -7
- package/es-modules/Series/Bubble/BubbleLegendDefaults.js +3 -3
- package/es-modules/Series/Bubble/BubbleSeries.js +4 -4
- package/es-modules/Series/Column/ColumnSeriesDefaults.js +1 -1
- package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +5 -2
- package/es-modules/Series/Dumbbell/DumbbellSeriesDefaults.js +2 -2
- package/es-modules/Series/ErrorBar/ErrorBarSeries.js +2 -2
- package/es-modules/Series/Flags/FlagsSeries.js +2 -2
- package/es-modules/Series/Flags/FlagsSeriesDefaults.js +1 -1
- package/es-modules/Series/Gantt/GanttSeriesDefaults.js +1 -1
- package/es-modules/Series/Gauge/GaugeSeries.js +1 -1
- package/es-modules/Series/HLC/HLCSeries.js +1 -1
- package/es-modules/Series/Heatmap/HeatmapSeriesDefaults.js +2 -2
- package/es-modules/Series/Item/ItemSeries.js +1 -1
- package/es-modules/Series/Map/MapSeries.js +1 -1
- package/es-modules/Series/Map/MapSeriesDefaults.js +2 -2
- package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +4 -1
- package/es-modules/Series/Organization/OrganizationSeries.js +3 -0
- package/es-modules/Series/PackedBubble/PackedBubblePoint.js +1 -1
- package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +8 -5
- package/es-modules/Series/Pie/PieDataLabel.js +7 -6
- package/es-modules/Series/Pie/PiePoint.js +6 -6
- package/es-modules/Series/Pie/PieSeriesDefaults.js +11 -10
- package/es-modules/Series/Pie3D/Pie3DSeries.js +1 -1
- package/es-modules/Series/Sankey/SankeySeries.js +7 -4
- package/es-modules/Series/Sankey/SankeySeriesDefaults.js +1 -1
- package/es-modules/Series/Sunburst/SunburstSeries.js +8 -5
- package/es-modules/Series/Sunburst/SunburstSeriesDefaults.js +2 -2
- package/es-modules/Series/Tilemap/TilemapSeriesDefaults.js +2 -2
- package/es-modules/Series/Treegraph/TreegraphSeries.js +23 -2
- package/es-modules/Series/Treegraph/TreegraphSeriesDefaults.js +2 -2
- package/es-modules/Series/Treemap/TreemapPoint.js +2 -1
- package/es-modules/Series/Treemap/TreemapSeries.js +15 -7
- package/es-modules/Series/Treemap/TreemapSeriesDefaults.js +15 -1
- package/es-modules/Series/VariablePie/VariablePieSeriesDefaults.js +2 -2
- package/es-modules/Series/Variwide/VariwideComposition.js +1 -1
- package/es-modules/Series/Vector/VectorSeries.js +1 -1
- package/es-modules/Series/Windbarb/WindbarbSeries.js +2 -2
- package/es-modules/Series/Wordcloud/WordcloudSeries.js +2 -2
- package/es-modules/Series/Wordcloud/WordcloudSeriesDefaults.js +1 -1
- package/es-modules/Stock/Indicators/AD/ADIndicator.js +1 -1
- package/es-modules/Stock/Indicators/APO/APOIndicator.js +1 -1
- package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +1 -1
- package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +1 -1
- package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +1 -1
- package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +3 -3
- package/es-modules/Stock/Indicators/LinearRegression/LinearRegressionIndicator.js +1 -1
- package/es-modules/Stock/Indicators/MFI/MFIIndicator.js +1 -1
- package/es-modules/Stock/Indicators/PC/PCIndicator.js +1 -1
- package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +1 -1
- package/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +1 -1
- package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +3 -3
- package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +1 -1
- package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +2 -2
- package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +3 -3
- package/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +1 -1
- package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +1 -1
- package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +1 -1
- package/es-modules/Stock/Navigator/Navigator.js +141 -55
- package/es-modules/Stock/Navigator/NavigatorDefaults.js +1 -1
- package/es-modules/Stock/RangeSelector/RangeSelector.js +1 -1
- package/es-modules/Stock/RangeSelector/RangeSelectorDefaults.js +1 -1
- package/es-modules/Stock/Scrollbar/ScrollbarDefaults.js +1 -1
- package/es-modules/Stock/StockTools/StockToolbar.js +115 -37
- package/es-modules/Stock/StockTools/StockToolsDefaults.js +7 -1
- package/es-modules/Stock/StockTools/StockToolsGui.js +24 -23
- package/es-modules/Stock/StockTools/StockToolsUtilities.js +26 -0
- package/es-modules/masters/highcharts-more.src.js +2 -2
- package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
- package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
- package/es-modules/masters/indicators/ao.src.js +1 -1
- package/es-modules/masters/indicators/apo.src.js +1 -1
- package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
- package/es-modules/masters/indicators/aroon.src.js +1 -1
- package/es-modules/masters/indicators/atr.src.js +1 -1
- package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
- package/es-modules/masters/indicators/cci.src.js +1 -1
- package/es-modules/masters/indicators/chaikin.src.js +1 -1
- package/es-modules/masters/indicators/cmf.src.js +1 -1
- package/es-modules/masters/indicators/cmo.src.js +1 -1
- package/es-modules/masters/indicators/dema.src.js +1 -1
- package/es-modules/masters/indicators/disparity-index.src.js +1 -1
- package/es-modules/masters/indicators/dmi.src.js +1 -1
- package/es-modules/masters/indicators/dpo.src.js +1 -1
- package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/es-modules/masters/indicators/indicators-all.src.js +1 -1
- package/es-modules/masters/indicators/indicators.src.js +1 -1
- package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
- package/es-modules/masters/indicators/klinger.src.js +1 -1
- package/es-modules/masters/indicators/macd.src.js +1 -1
- package/es-modules/masters/indicators/mfi.src.js +1 -1
- package/es-modules/masters/indicators/momentum.src.js +1 -1
- package/es-modules/masters/indicators/natr.src.js +1 -1
- package/es-modules/masters/indicators/obv.src.js +1 -1
- package/es-modules/masters/indicators/pivot-points.src.js +1 -1
- package/es-modules/masters/indicators/ppo.src.js +1 -1
- package/es-modules/masters/indicators/price-channel.src.js +1 -1
- package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
- package/es-modules/masters/indicators/psar.src.js +1 -1
- package/es-modules/masters/indicators/regressions.src.js +1 -1
- package/es-modules/masters/indicators/roc.src.js +1 -1
- package/es-modules/masters/indicators/rsi.src.js +1 -1
- package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
- package/es-modules/masters/indicators/stochastic.src.js +1 -1
- package/es-modules/masters/indicators/supertrend.src.js +1 -1
- package/es-modules/masters/indicators/tema.src.js +1 -1
- package/es-modules/masters/indicators/trendline.src.js +1 -1
- package/es-modules/masters/indicators/trix.src.js +1 -1
- package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
- package/es-modules/masters/indicators/vwap.src.js +1 -1
- package/es-modules/masters/indicators/williams-r.src.js +1 -1
- package/es-modules/masters/indicators/wma.src.js +1 -1
- package/es-modules/masters/indicators/zigzag.src.js +1 -1
- package/es-modules/masters/modules/arc-diagram.src.js +2 -3
- package/es-modules/masters/modules/cylinder.src.js +1 -1
- package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
- package/es-modules/masters/modules/drag-panes.src.js +1 -1
- package/es-modules/masters/modules/export-data.src.js +1 -1
- package/es-modules/masters/modules/funnel3d.src.js +2 -2
- package/es-modules/masters/modules/heikinashi.src.js +1 -1
- package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
- package/es-modules/masters/modules/map.src.js +1 -1
- package/es-modules/masters/modules/offline-exporting.src.js +1 -1
- package/es-modules/masters/modules/organization.src.js +1 -1
- package/es-modules/masters/modules/price-indicator.src.js +1 -1
- package/es-modules/masters/modules/pyramid3d.src.js +3 -3
- package/es-modules/masters/modules/solid-gauge.src.js +1 -1
- package/es-modules/masters/modules/stock-tools.src.js +1 -1
- package/es-modules/masters/modules/textpath.src.d.ts +1 -0
- package/es-modules/masters/modules/textpath.src.js +16 -0
- package/es-modules/masters/modules/tilemap.src.js +1 -1
- package/es-modules/masters/modules/treegraph.src.js +1 -1
- package/es-modules/tsconfig.tsbuildinfo +1 -1
- package/highcharts-3d.js +2 -2
- package/highcharts-3d.src.js +4 -4
- package/highcharts-gantt.js +3 -3
- package/highcharts-gantt.src.js +3374 -3042
- package/highcharts-more.d.ts +42 -2
- package/highcharts-more.js +2 -2
- package/highcharts-more.src.d.ts +42 -2
- package/highcharts-more.src.js +260 -35
- package/highcharts.d.ts +828 -428
- package/highcharts.js +3 -3
- package/highcharts.src.d.ts +828 -428
- package/highcharts.src.js +5844 -5600
- package/highmaps.js +3 -3
- package/highmaps.src.js +3270 -3043
- package/highstock.js +3 -3
- package/highstock.src.js +3379 -3048
- package/indicators/acceleration-bands.js +2 -2
- package/indicators/acceleration-bands.src.js +4 -4
- package/indicators/accumulation-distribution.js +2 -2
- package/indicators/accumulation-distribution.src.js +5 -5
- package/indicators/ao.js +2 -2
- package/indicators/ao.src.js +4 -4
- package/indicators/apo.js +2 -2
- package/indicators/apo.src.js +5 -5
- package/indicators/aroon-oscillator.js +2 -2
- package/indicators/aroon-oscillator.src.js +4 -4
- package/indicators/aroon.js +2 -2
- package/indicators/aroon.src.js +5 -5
- package/indicators/atr.js +2 -2
- package/indicators/atr.src.js +4 -4
- package/indicators/bollinger-bands.js +2 -2
- package/indicators/bollinger-bands.src.js +4 -4
- package/indicators/cci.js +2 -2
- package/indicators/cci.src.js +4 -4
- package/indicators/chaikin.js +2 -2
- package/indicators/chaikin.src.js +6 -6
- package/indicators/cmf.js +2 -2
- package/indicators/cmf.src.js +5 -5
- package/indicators/cmo.js +2 -2
- package/indicators/cmo.src.js +4 -4
- package/indicators/dema.js +2 -2
- package/indicators/dema.src.js +4 -4
- package/indicators/disparity-index.js +2 -2
- package/indicators/disparity-index.src.js +4 -4
- package/indicators/dmi.js +2 -2
- package/indicators/dmi.src.js +4 -4
- package/indicators/dpo.js +2 -2
- package/indicators/dpo.src.js +4 -4
- package/indicators/ema.js +1 -1
- package/indicators/ema.src.js +2 -2
- package/indicators/ichimoku-kinko-hyo.js +2 -2
- package/indicators/ichimoku-kinko-hyo.src.js +7 -7
- package/indicators/indicators-all.js +2 -2
- package/indicators/indicators-all.src.js +29 -29
- package/indicators/indicators.js +2 -2
- package/indicators/indicators.src.js +5 -5
- package/indicators/keltner-channels.js +2 -2
- package/indicators/keltner-channels.src.js +4 -4
- package/indicators/klinger.js +2 -2
- package/indicators/klinger.src.js +4 -4
- package/indicators/macd.js +2 -2
- package/indicators/macd.src.js +4 -4
- package/indicators/mfi.js +2 -2
- package/indicators/mfi.src.js +5 -5
- package/indicators/momentum.js +2 -2
- package/indicators/momentum.src.js +4 -4
- package/indicators/natr.js +2 -2
- package/indicators/natr.src.js +4 -4
- package/indicators/obv.js +2 -2
- package/indicators/obv.src.js +4 -4
- package/indicators/pivot-points.js +2 -2
- package/indicators/pivot-points.src.js +7 -7
- package/indicators/ppo.js +2 -2
- package/indicators/ppo.src.js +5 -5
- package/indicators/price-channel.js +2 -2
- package/indicators/price-channel.src.js +5 -5
- package/indicators/price-envelopes.js +2 -2
- package/indicators/price-envelopes.src.js +4 -4
- package/indicators/psar.js +2 -2
- package/indicators/psar.src.js +5 -5
- package/indicators/regressions.js +2 -2
- package/indicators/regressions.src.js +5 -5
- package/indicators/roc.js +2 -2
- package/indicators/roc.src.js +4 -4
- package/indicators/rsi.js +2 -2
- package/indicators/rsi.src.js +4 -4
- package/indicators/slow-stochastic.js +2 -2
- package/indicators/slow-stochastic.src.js +6 -6
- package/indicators/stochastic.js +2 -2
- package/indicators/stochastic.src.js +4 -4
- package/indicators/supertrend.js +2 -2
- package/indicators/supertrend.src.js +7 -7
- package/indicators/tema.js +2 -2
- package/indicators/tema.src.js +4 -4
- package/indicators/trendline.js +2 -2
- package/indicators/trendline.src.js +5 -5
- package/indicators/trix.js +2 -2
- package/indicators/trix.src.js +4 -4
- package/indicators/volume-by-price.js +2 -2
- package/indicators/volume-by-price.src.js +4 -4
- package/indicators/vwap.js +2 -2
- package/indicators/vwap.src.js +5 -5
- package/indicators/williams-r.js +2 -2
- package/indicators/williams-r.src.js +5 -5
- package/indicators/wma.js +2 -2
- package/indicators/wma.src.js +4 -4
- package/indicators/zigzag.js +2 -2
- package/indicators/zigzag.src.js +4 -4
- package/modules/accessibility.js +2 -2
- package/modules/accessibility.src.js +162 -77
- package/modules/annotations-advanced.js +2 -2
- package/modules/annotations-advanced.src.js +8 -9
- package/modules/annotations.js +2 -2
- package/modules/annotations.src.js +8 -9
- package/modules/arc-diagram.d.ts +120 -1
- package/modules/arc-diagram.js +2 -2
- package/modules/arc-diagram.src.d.ts +120 -1
- package/modules/arc-diagram.src.js +9363 -5
- package/modules/arrow-symbols.js +2 -2
- package/modules/arrow-symbols.src.js +3 -3
- package/modules/boost-canvas.js +2 -2
- package/modules/boost-canvas.src.js +53 -16
- package/modules/boost.js +2 -2
- package/modules/boost.src.js +54 -17
- package/modules/broken-axis.js +2 -2
- package/modules/broken-axis.src.js +3 -3
- package/modules/bullet.js +2 -2
- package/modules/bullet.src.js +3 -3
- package/modules/coloraxis.js +2 -2
- package/modules/coloraxis.src.js +10 -6
- package/modules/current-date-indicator.js +2 -2
- package/modules/current-date-indicator.src.js +3 -3
- package/modules/cylinder.js +2 -2
- package/modules/cylinder.src.js +4 -4
- package/modules/data-tools.js +2 -2
- package/modules/data-tools.src.js +120 -18
- package/modules/data.js +2 -2
- package/modules/data.src.js +14 -14
- package/modules/datagrouping.js +2 -2
- package/modules/datagrouping.src.js +5 -6
- package/modules/debugger.js +2 -2
- package/modules/debugger.src.js +3 -3
- package/modules/dependency-wheel.js +2 -2
- package/modules/dependency-wheel.src.js +8 -7
- package/modules/dotplot.js +2 -2
- package/modules/dotplot.src.js +3 -3
- package/modules/drag-panes.js +2 -2
- package/modules/drag-panes.src.js +4 -4
- package/modules/draggable-points.js +2 -2
- package/modules/draggable-points.src.js +3 -3
- package/modules/drilldown.js +2 -2
- package/modules/drilldown.src.js +3 -43
- package/modules/dumbbell.js +2 -2
- package/modules/dumbbell.src.js +5 -5
- package/modules/export-data.js +2 -2
- package/modules/export-data.src.js +5 -5
- package/modules/exporting.js +2 -2
- package/modules/exporting.src.js +17 -17
- package/modules/flowmap.js +2 -2
- package/modules/flowmap.src.js +3 -3
- package/modules/full-screen.js +2 -2
- package/modules/full-screen.src.js +3 -3
- package/modules/funnel.js +2 -2
- package/modules/funnel.src.js +3 -3
- package/modules/funnel3d.js +2 -2
- package/modules/funnel3d.src.js +4 -4
- package/modules/gantt.js +2 -2
- package/modules/gantt.src.js +155 -67
- package/modules/geoheatmap.js +2 -2
- package/modules/geoheatmap.src.js +3 -3
- package/modules/grid-axis.js +2 -2
- package/modules/grid-axis.src.js +4 -4
- package/modules/heatmap.js +2 -2
- package/modules/heatmap.src.js +12 -8
- package/modules/heikinashi.js +2 -2
- package/modules/heikinashi.src.js +4 -4
- package/modules/histogram-bellcurve.js +2 -2
- package/modules/histogram-bellcurve.src.js +5 -5
- package/modules/hollowcandlestick.js +2 -2
- package/modules/hollowcandlestick.src.js +4 -4
- package/modules/item-series.js +2 -2
- package/modules/item-series.src.js +4 -4
- package/modules/lollipop.js +2 -2
- package/modules/lollipop.src.js +3 -3
- package/modules/map.d.ts +1 -1
- package/modules/map.js +2 -2
- package/modules/map.src.d.ts +1 -1
- package/modules/map.src.js +34 -51
- package/modules/marker-clusters.js +2 -2
- package/modules/marker-clusters.src.js +3 -3
- package/modules/mouse-wheel-zoom.js +2 -2
- package/modules/mouse-wheel-zoom.src.js +3 -3
- package/modules/navigator.js +2 -2
- package/modules/navigator.src.js +146 -61
- package/modules/networkgraph.d.ts +40 -0
- package/modules/networkgraph.js +2 -2
- package/modules/networkgraph.src.d.ts +40 -0
- package/modules/networkgraph.src.js +231 -5
- package/modules/no-data-to-display.js +2 -2
- package/modules/no-data-to-display.src.js +3 -3
- package/modules/offline-exporting.js +2 -2
- package/modules/offline-exporting.src.js +6 -6
- package/modules/organization.js +2 -2
- package/modules/organization.src.js +6 -5
- package/modules/overlapping-datalabels.js +2 -2
- package/modules/overlapping-datalabels.src.js +3 -3
- package/modules/parallel-coordinates.js +2 -2
- package/modules/parallel-coordinates.src.js +4 -4
- package/modules/pareto.js +2 -2
- package/modules/pareto.src.js +3 -3
- package/modules/pathfinder.js +2 -2
- package/modules/pathfinder.src.js +3 -3
- package/modules/pattern-fill.js +2 -2
- package/modules/pattern-fill.src.js +3 -3
- package/modules/pictorial.js +2 -2
- package/modules/pictorial.src.js +3 -3
- package/modules/price-indicator.js +2 -2
- package/modules/price-indicator.src.js +4 -4
- package/modules/pyramid3d.js +2 -2
- package/modules/pyramid3d.src.js +4 -4
- package/modules/sankey.d.ts +42 -1
- package/modules/sankey.js +2 -2
- package/modules/sankey.src.d.ts +42 -1
- package/modules/sankey.src.js +235 -9
- package/modules/series-label.js +2 -2
- package/modules/series-label.src.js +3 -3
- package/modules/series-on-point.js +2 -2
- package/modules/series-on-point.src.js +3 -3
- package/modules/solid-gauge.js +2 -2
- package/modules/solid-gauge.src.js +4 -4
- package/modules/sonification.js +2 -2
- package/modules/sonification.src.js +12 -15
- package/modules/static-scale.js +2 -2
- package/modules/static-scale.src.js +3 -3
- package/modules/stock-tools.d.ts +15 -1
- package/modules/stock-tools.js +2 -2
- package/modules/stock-tools.src.d.ts +15 -1
- package/modules/stock-tools.src.js +178 -70
- package/modules/stock.js +2 -2
- package/modules/stock.src.js +160 -73
- package/modules/streamgraph.js +2 -2
- package/modules/streamgraph.src.js +3 -3
- package/modules/sunburst.d.ts +40 -0
- package/modules/sunburst.js +2 -2
- package/modules/sunburst.src.d.ts +40 -0
- package/modules/sunburst.src.js +269 -58
- package/modules/textpath.d.ts +58 -0
- package/modules/textpath.js +7 -0
- package/modules/textpath.src.d.ts +58 -0
- package/modules/textpath.src.js +269 -0
- package/modules/tiledwebmap.js +3 -3
- package/modules/tiledwebmap.src.js +3 -3
- package/modules/tilemap.js +2 -2
- package/modules/tilemap.src.js +6 -6
- package/modules/timeline.js +2 -2
- package/modules/timeline.src.js +3 -3
- package/modules/treegraph.d.ts +40 -0
- package/modules/treegraph.js +2 -2
- package/modules/treegraph.src.d.ts +40 -0
- package/modules/treegraph.src.js +253 -9
- package/modules/treegrid.js +2 -2
- package/modules/treegrid.src.js +4 -4
- package/modules/treemap.js +2 -2
- package/modules/treemap.src.js +35 -50
- package/modules/variable-pie.js +2 -2
- package/modules/variable-pie.src.js +5 -5
- package/modules/variwide.js +2 -2
- package/modules/variwide.src.js +4 -4
- package/modules/vector.js +2 -2
- package/modules/vector.src.js +4 -4
- package/modules/venn.js +2 -2
- package/modules/venn.src.js +3 -88
- package/modules/windbarb.js +2 -2
- package/modules/windbarb.src.js +5 -5
- package/modules/wordcloud.js +2 -2
- package/modules/wordcloud.src.js +6 -6
- package/modules/xrange.js +2 -2
- package/modules/xrange.src.js +3 -3
- package/options/ad.d.ts +17 -9
- package/options/ad.src.d.ts +17 -9
- package/options/apo.d.ts +17 -9
- package/options/apo.src.d.ts +17 -9
- package/options/arearange.d.ts +17 -9
- package/options/arearange.src.d.ts +17 -9
- package/options/areaspline.d.ts +17 -9
- package/options/areaspline.src.d.ts +17 -9
- package/options/bar.d.ts +17 -9
- package/options/bar.src.d.ts +17 -9
- package/options/bb.d.ts +17 -9
- package/options/bb.src.d.ts +17 -9
- package/options/bubble.d.ts +17 -9
- package/options/bubble.src.d.ts +17 -9
- package/options/candlestick.d.ts +17 -9
- package/options/candlestick.src.d.ts +17 -9
- package/options/cci.d.ts +17 -9
- package/options/cci.src.d.ts +17 -9
- package/options/cmf.d.ts +17 -9
- package/options/cmf.src.d.ts +17 -9
- package/options/column.d.ts +17 -9
- package/options/column.src.d.ts +17 -9
- package/options/columnpyramid.d.ts +17 -9
- package/options/columnpyramid.src.d.ts +17 -9
- package/options/columnrange.d.ts +17 -9
- package/options/columnrange.src.d.ts +17 -9
- package/options/cylinder.d.ts +17 -9
- package/options/cylinder.src.d.ts +17 -9
- package/options/dema.d.ts +17 -9
- package/options/dema.src.d.ts +17 -9
- package/options/dependencywheel.d.ts +17 -9
- package/options/dependencywheel.src.d.ts +17 -9
- package/options/disparityindex.d.ts +17 -9
- package/options/disparityindex.src.d.ts +17 -9
- package/options/dpo.d.ts +17 -9
- package/options/dpo.src.d.ts +17 -9
- package/options/dumbbell.d.ts +17 -9
- package/options/dumbbell.src.d.ts +17 -9
- package/options/ema.d.ts +17 -9
- package/options/ema.src.d.ts +17 -9
- package/options/funnel.d.ts +17 -9
- package/options/funnel.src.d.ts +17 -9
- package/options/gantt.d.ts +16 -8
- package/options/gantt.src.d.ts +16 -8
- package/options/klinger.d.ts +17 -9
- package/options/klinger.src.d.ts +17 -9
- package/options/linearregression.d.ts +17 -9
- package/options/linearregression.src.d.ts +17 -9
- package/options/lollipop.d.ts +17 -9
- package/options/lollipop.src.d.ts +17 -9
- package/options/macd.d.ts +17 -9
- package/options/macd.src.d.ts +17 -9
- package/options/momentum.d.ts +17 -9
- package/options/momentum.src.d.ts +17 -9
- package/options/ohlc.d.ts +17 -9
- package/options/ohlc.src.d.ts +17 -9
- package/options/organization.d.ts +17 -9
- package/options/organization.src.d.ts +17 -9
- package/options/pareto.d.ts +16 -8
- package/options/pareto.src.d.ts +16 -8
- package/options/pc.d.ts +17 -9
- package/options/pc.src.d.ts +17 -9
- package/options/polygon.d.ts +17 -9
- package/options/polygon.src.d.ts +17 -9
- package/options/ppo.d.ts +17 -9
- package/options/ppo.src.d.ts +17 -9
- package/options/psar.d.ts +17 -9
- package/options/psar.src.d.ts +17 -9
- package/options/pyramid.d.ts +17 -9
- package/options/pyramid.src.d.ts +17 -9
- package/options/roc.d.ts +17 -9
- package/options/roc.src.d.ts +17 -9
- package/options/sankey.d.ts +17 -9
- package/options/sankey.src.d.ts +17 -9
- package/options/scatter.d.ts +17 -9
- package/options/scatter.src.d.ts +17 -9
- package/options/series.d.ts +17 -9
- package/options/series.src.d.ts +17 -9
- package/options/sma.d.ts +17 -9
- package/options/sma.src.d.ts +17 -9
- package/options/spline.d.ts +17 -9
- package/options/spline.src.d.ts +17 -9
- package/options/stochastic.d.ts +17 -9
- package/options/stochastic.src.d.ts +17 -9
- package/options/supertrend.d.ts +17 -9
- package/options/supertrend.src.d.ts +17 -9
- package/options/tilemap.d.ts +17 -9
- package/options/tilemap.src.d.ts +17 -9
- package/options/treegraph.d.ts +24 -9
- package/options/treegraph.src.d.ts +24 -9
- package/options/treemap.d.ts +23 -8
- package/options/treemap.src.d.ts +23 -8
- package/options/trendline.d.ts +17 -9
- package/options/trendline.src.d.ts +17 -9
- package/options/variwide.d.ts +17 -9
- package/options/variwide.src.d.ts +17 -9
- package/options/vbp.d.ts +17 -9
- package/options/vbp.src.d.ts +17 -9
- package/options/vector.d.ts +17 -9
- package/options/vector.src.d.ts +17 -9
- package/options/waterfall.d.ts +17 -9
- package/options/waterfall.src.d.ts +17 -9
- package/options/williamsr.d.ts +17 -9
- package/options/williamsr.src.d.ts +17 -9
- package/options/xrange.d.ts +17 -9
- package/options/xrange.src.d.ts +17 -9
- package/package.json +1 -1
- package/standalone-navigator.js +2 -2
- package/standalone-navigator.src.js +3363 -3034
- package/themes/avocado.js +2 -2
- package/themes/avocado.src.js +3 -3
- package/themes/brand-dark.js +2 -2
- package/themes/brand-dark.src.js +3 -3
- package/themes/brand-light.js +2 -2
- package/themes/brand-light.src.js +3 -3
- package/themes/dark-blue.js +2 -2
- package/themes/dark-blue.src.js +3 -3
- package/themes/dark-green.js +2 -2
- package/themes/dark-green.src.js +3 -3
- package/themes/dark-unica.js +2 -2
- package/themes/dark-unica.src.js +3 -3
- package/themes/gray.js +2 -2
- package/themes/gray.src.js +3 -3
- package/themes/grid-light.js +2 -2
- package/themes/grid-light.src.js +3 -3
- package/themes/grid.js +2 -2
- package/themes/grid.src.js +3 -3
- package/themes/high-contrast-dark.js +2 -2
- package/themes/high-contrast-dark.src.js +3 -3
- package/themes/high-contrast-light.js +2 -2
- package/themes/high-contrast-light.src.js +3 -3
- package/themes/sand-signika.js +2 -2
- package/themes/sand-signika.src.js +3 -3
- package/themes/skies.js +2 -2
- package/themes/skies.src.js +3 -3
- package/themes/sunset.js +2 -2
- package/themes/sunset.src.js +3 -3
|
@@ -162,7 +162,7 @@ class Series {
|
|
|
162
162
|
* @name Highcharts.Series#visible
|
|
163
163
|
* @type {boolean}
|
|
164
164
|
*/
|
|
165
|
-
visible,
|
|
165
|
+
visible, // True by default
|
|
166
166
|
/**
|
|
167
167
|
* Read only. The series' selected state as set by {@link
|
|
168
168
|
* Highcharts.Series#select}.
|
|
@@ -788,7 +788,7 @@ class Series {
|
|
|
788
788
|
*/
|
|
789
789
|
setData(data, redraw = true, animation, updatePoints) {
|
|
790
790
|
const series = this, oldData = series.points, oldDataLength = (oldData && oldData.length) || 0, options = series.options, chart = series.chart, dataSorting = options.dataSorting, xAxis = series.xAxis, turboThreshold = options.turboThreshold, xData = this.xData, yData = this.yData, pointArrayMap = series.pointArrayMap, valueCount = pointArrayMap && pointArrayMap.length, keys = options.keys;
|
|
791
|
-
let i, pt, updatedData, indexOfX = 0, indexOfY = 1,
|
|
791
|
+
let i, pt, updatedData, indexOfX = 0, indexOfY = 1, copiedData;
|
|
792
792
|
if (!chart.options.chart.allowMutatingData) { // #4259
|
|
793
793
|
// Remove old reference
|
|
794
794
|
if (options.data) {
|
|
@@ -826,21 +826,24 @@ class Series {
|
|
|
826
826
|
this.parallelArrays.forEach(function (key) {
|
|
827
827
|
series[key + 'Data'].length = 0;
|
|
828
828
|
});
|
|
829
|
-
// In turbo mode,
|
|
830
|
-
//
|
|
831
|
-
// all the rest are defined the same way. Although the 'for'
|
|
832
|
-
//
|
|
833
|
-
//
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
829
|
+
// In turbo mode, look for one- or twodimensional arrays of numbers.
|
|
830
|
+
// The first and the last valid value are tested, and we assume that
|
|
831
|
+
// all the rest are defined the same way. Although the 'for' loops
|
|
832
|
+
// are similar, they are repeated inside each if-else conditional
|
|
833
|
+
// for max performance.
|
|
834
|
+
let runTurbo = turboThreshold && dataLength > turboThreshold;
|
|
835
|
+
if (runTurbo) {
|
|
836
|
+
const firstPoint = series.getFirstValidPoint(data), lastPoint = series.getFirstValidPoint(data, dataLength - 1, -1), isShortArray = (a) => Boolean(isArray(a) && (keys || isNumber(a[0])));
|
|
837
|
+
// Assume all points are numbers
|
|
838
|
+
if (isNumber(firstPoint) && isNumber(lastPoint)) {
|
|
837
839
|
for (i = 0; i < dataLength; i++) {
|
|
838
840
|
xData[i] = this.autoIncrement();
|
|
839
841
|
yData[i] = data[i];
|
|
840
842
|
}
|
|
841
843
|
// Assume all points are arrays when first point is
|
|
842
844
|
}
|
|
843
|
-
else if (
|
|
845
|
+
else if (isShortArray(firstPoint) &&
|
|
846
|
+
isShortArray(lastPoint)) {
|
|
844
847
|
if (valueCount) { // [x, low, high] or [x, o, h, l, c]
|
|
845
848
|
if (firstPoint.length === valueCount) {
|
|
846
849
|
for (i = 0; i < dataLength; i++) {
|
|
@@ -885,10 +888,10 @@ class Series {
|
|
|
885
888
|
else {
|
|
886
889
|
// Highcharts expects configs to be numbers or arrays in
|
|
887
890
|
// turbo mode
|
|
888
|
-
|
|
891
|
+
runTurbo = false;
|
|
889
892
|
}
|
|
890
893
|
}
|
|
891
|
-
|
|
894
|
+
if (!runTurbo) {
|
|
892
895
|
for (i = 0; i < dataLength; i++) {
|
|
893
896
|
pt = { series: series };
|
|
894
897
|
series.pointClass.prototype.applyOptions.apply(pt, [data[i]]);
|
|
@@ -1296,7 +1299,7 @@ class Series {
|
|
|
1296
1299
|
}
|
|
1297
1300
|
}
|
|
1298
1301
|
const dataExtremes = {
|
|
1299
|
-
activeYData,
|
|
1302
|
+
activeYData, // Needed for Stock Cumulative Sum
|
|
1300
1303
|
dataMin: arrayMin(activeYData),
|
|
1301
1304
|
dataMax: arrayMax(activeYData)
|
|
1302
1305
|
};
|
|
@@ -1334,21 +1337,26 @@ class Series {
|
|
|
1334
1337
|
return dataExtremes;
|
|
1335
1338
|
}
|
|
1336
1339
|
/**
|
|
1337
|
-
* Find and return the first non
|
|
1340
|
+
* Find and return the first non nullish point in the data
|
|
1338
1341
|
*
|
|
1339
1342
|
* @private
|
|
1340
1343
|
* @function Highcharts.Series.getFirstValidPoint
|
|
1341
1344
|
* @param {Array<Highcharts.PointOptionsType>} data
|
|
1342
|
-
*
|
|
1345
|
+
* Array of options for points
|
|
1346
|
+
* @param {number} [start=0]
|
|
1347
|
+
* Index to start searching from
|
|
1348
|
+
* @param {number} [increment=1]
|
|
1349
|
+
* Index increment, set -1 to search backwards
|
|
1343
1350
|
*/
|
|
1344
|
-
getFirstValidPoint(data) {
|
|
1351
|
+
getFirstValidPoint(data, start = 0, increment = 1) {
|
|
1345
1352
|
const dataLength = data.length;
|
|
1346
|
-
let i =
|
|
1347
|
-
while (
|
|
1348
|
-
|
|
1349
|
-
|
|
1353
|
+
let i = start;
|
|
1354
|
+
while (i >= 0 && i < dataLength) {
|
|
1355
|
+
if (defined(data[i])) {
|
|
1356
|
+
return data[i];
|
|
1357
|
+
}
|
|
1358
|
+
i += increment;
|
|
1350
1359
|
}
|
|
1351
|
-
return firstPoint;
|
|
1352
1360
|
}
|
|
1353
1361
|
/**
|
|
1354
1362
|
* Translate data points from raw data values to chart specific
|
|
@@ -2187,7 +2195,7 @@ class Series {
|
|
|
2187
2195
|
rotationOriginY: inverted ?
|
|
2188
2196
|
(horAxis.len + vertAxis.len) / 2 :
|
|
2189
2197
|
0,
|
|
2190
|
-
scaleX: inverted ? -1 : 1,
|
|
2198
|
+
scaleX: inverted ? -1 : 1, // #1623
|
|
2191
2199
|
scaleY: 1
|
|
2192
2200
|
};
|
|
2193
2201
|
}
|
|
@@ -2510,7 +2518,7 @@ class Series {
|
|
|
2510
2518
|
if (!chart.styledMode) {
|
|
2511
2519
|
tracker.attr({
|
|
2512
2520
|
'stroke-linecap': 'round',
|
|
2513
|
-
'stroke-linejoin': 'round',
|
|
2521
|
+
'stroke-linejoin': 'round', // #1225
|
|
2514
2522
|
stroke: TRACKER_FILL,
|
|
2515
2523
|
fill: trackByArea ? TRACKER_FILL : 'none',
|
|
2516
2524
|
'stroke-width': series.graph.strokeWidth() +
|
|
@@ -3478,6 +3486,10 @@ export default Series;
|
|
|
3478
3486
|
* default action is to toggle the visibility of the series. This can be
|
|
3479
3487
|
* prevented by returning `false` or calling `event.preventDefault()`.
|
|
3480
3488
|
*
|
|
3489
|
+
* **Note:** This option is deprecated in favor of
|
|
3490
|
+
* Highcharts.LegendItemClickCallbackFunction.
|
|
3491
|
+
*
|
|
3492
|
+
* @deprecated
|
|
3481
3493
|
* @callback Highcharts.SeriesLegendItemClickCallbackFunction
|
|
3482
3494
|
*
|
|
3483
3495
|
* @param {Highcharts.Series} this
|
|
@@ -3489,6 +3501,10 @@ export default Series;
|
|
|
3489
3501
|
/**
|
|
3490
3502
|
* Information about the event.
|
|
3491
3503
|
*
|
|
3504
|
+
* **Note:** This option is deprecated in favor of
|
|
3505
|
+
* Highcharts.LegendItemClickEventObject.
|
|
3506
|
+
*
|
|
3507
|
+
* @deprecated
|
|
3492
3508
|
* @interface Highcharts.SeriesLegendItemClickEventObject
|
|
3493
3509
|
*/ /**
|
|
3494
3510
|
* Related browser event.
|
|
@@ -897,12 +897,13 @@ const seriesDefaults = {
|
|
|
897
897
|
* is to toggle the visibility of the series. This can be prevented
|
|
898
898
|
* by returning `false` or calling `event.preventDefault()`.
|
|
899
899
|
*
|
|
900
|
-
*
|
|
901
|
-
*
|
|
900
|
+
* **Note:** This option is deprecated in favor of
|
|
901
|
+
* [legend.events.itemClick](#legend.events.itemClick).
|
|
902
902
|
*
|
|
903
|
-
* @type
|
|
904
|
-
* @
|
|
905
|
-
* @
|
|
903
|
+
* @type {Highcharts.SeriesLegendItemClickCallbackFunction}
|
|
904
|
+
* @deprecated
|
|
905
|
+
* @context Highcharts.Series
|
|
906
|
+
* @apioption plotOptions.series.events.legendItemClick
|
|
906
907
|
*/
|
|
907
908
|
/**
|
|
908
909
|
* Fires when the mouse leaves the graph. One parameter, `event`, is
|
|
@@ -2215,15 +2216,20 @@ const seriesDefaults = {
|
|
|
2215
2216
|
* @apioption plotOptions.series.tooltip
|
|
2216
2217
|
*/
|
|
2217
2218
|
/**
|
|
2218
|
-
* When a series contains a data array that is longer than this,
|
|
2219
|
-
*
|
|
2220
|
-
*
|
|
2221
|
-
*
|
|
2222
|
-
*
|
|
2219
|
+
* When a series contains a `data` array that is longer than this, the
|
|
2220
|
+
* Series class looks for data configurations of plain numbers or arrays of
|
|
2221
|
+
* numbers. The first and last valid points are checked. If found, the rest
|
|
2222
|
+
* of the data is assumed to be the same. This saves expensive data checking
|
|
2223
|
+
* and indexing in long series, and makes data-heavy charts render faster.
|
|
2224
|
+
*
|
|
2225
|
+
* Set it to `0` disable.
|
|
2223
2226
|
*
|
|
2224
2227
|
* Note:
|
|
2225
|
-
* In boost mode turbo threshold is forced. Only array of numbers or
|
|
2226
|
-
*
|
|
2228
|
+
* - In boost mode turbo threshold is forced. Only array of numbers or two
|
|
2229
|
+
* dimensional arrays are allowed.
|
|
2230
|
+
* - In version 11.4.3 and earlier, if object configurations were passed
|
|
2231
|
+
* beyond the turbo threshold, a warning was logged in the console and the
|
|
2232
|
+
* data series didn't render.
|
|
2227
2233
|
*
|
|
2228
2234
|
* @since 2.2
|
|
2229
2235
|
* @product highcharts highstock gantt
|
|
@@ -121,11 +121,11 @@ function dateFormat(format, timestamp, capitalize) {
|
|
|
121
121
|
* The formatted string.
|
|
122
122
|
*/
|
|
123
123
|
function format(str = '', ctx, chart) {
|
|
124
|
-
const regex = /\{([
|
|
124
|
+
const regex = /\{([\w\:\.\,;\-\/<>%@"'’= #\(\)]+)\}/g,
|
|
125
125
|
// The sub expression regex is the same as the top expression regex,
|
|
126
126
|
// but except parens and block helpers (#), and surrounded by parens
|
|
127
127
|
// instead of curly brackets.
|
|
128
|
-
subRegex = /\(([
|
|
128
|
+
subRegex = /\(([\w\:\.\,;\-\/<>%@"'= ]+)\)/g, matches = [], floatRegex = /f$/, decRegex = /\.(\d)/, lang = defaultOptions.lang, time = chart && chart.time || defaultTime, numberFormatter = chart && chart.numberFormatter || numberFormat;
|
|
129
129
|
/*
|
|
130
130
|
* Get a literal or variable value inside a template expression. May be
|
|
131
131
|
* extended with other types like string or null if needed, but keep it
|
|
@@ -36,6 +36,9 @@ const { addEvent, clamp, css, discardElement, extend, fireEvent, isArray, isNumb
|
|
|
36
36
|
*
|
|
37
37
|
* @param {Highcharts.TooltipOptions} options
|
|
38
38
|
* Tooltip options.
|
|
39
|
+
*
|
|
40
|
+
* @param {Highcharts.Pointer} pointer
|
|
41
|
+
* The pointer instance.
|
|
39
42
|
*/
|
|
40
43
|
class Tooltip {
|
|
41
44
|
/* *
|
|
@@ -371,7 +374,7 @@ class Tooltip {
|
|
|
371
374
|
buildDimensionArray = (dim) => {
|
|
372
375
|
const isX = dim === 'x';
|
|
373
376
|
return [
|
|
374
|
-
dim,
|
|
377
|
+
dim, // Dimension - x or y
|
|
375
378
|
isX ? outerWidth : outerHeight,
|
|
376
379
|
isX ? boxWidth : boxHeight
|
|
377
380
|
].concat(outside ? [
|
|
@@ -719,12 +722,12 @@ class Tooltip {
|
|
|
719
722
|
});
|
|
720
723
|
}
|
|
721
724
|
label.attr({
|
|
725
|
+
// Add class before the label BBox calculation (#21035)
|
|
726
|
+
'class': tooltip.getClassName(point),
|
|
722
727
|
text: text && text.join ?
|
|
723
728
|
text.join('') :
|
|
724
729
|
text
|
|
725
730
|
});
|
|
726
|
-
// Set the stroke color of the box to reflect the point
|
|
727
|
-
label.addClass(tooltip.getClassName(point), true);
|
|
728
731
|
if (!styledMode) {
|
|
729
732
|
label.attr({
|
|
730
733
|
stroke: (options.borderColor ||
|
|
@@ -78,6 +78,7 @@ class JSONConnector extends DataConnector {
|
|
|
78
78
|
table.deleteColumns();
|
|
79
79
|
converter.parse({ data });
|
|
80
80
|
table.setColumns(converter.getTable().getColumns());
|
|
81
|
+
table.setRowKeysColumn(data.length);
|
|
81
82
|
}
|
|
82
83
|
return connector.setModifierOptions(dataModifier).then(() => data);
|
|
83
84
|
})
|
|
@@ -291,7 +291,7 @@ class CSVConverter extends DataConverter {
|
|
|
291
291
|
read(i);
|
|
292
292
|
if (c === '#') {
|
|
293
293
|
// If there are hexvalues remaining (#13283)
|
|
294
|
-
if (!/^#[
|
|
294
|
+
if (!/^#[A-F\d]{3,3}|[A-F\d]{6,6}/i.test(columnStr.substring(i))) {
|
|
295
295
|
// The rest of the row is a comment
|
|
296
296
|
push();
|
|
297
297
|
return;
|
|
@@ -51,7 +51,7 @@ class DataConverter {
|
|
|
51
51
|
*/
|
|
52
52
|
this.dateFormats = {
|
|
53
53
|
'YYYY/mm/dd': {
|
|
54
|
-
regex: /^(
|
|
54
|
+
regex: /^(\d{4})([\-\.\/])(\d{1,2})\2(\d{1,2})$/,
|
|
55
55
|
parser: function (match) {
|
|
56
56
|
return (match ?
|
|
57
57
|
Date.UTC(+match[1], match[3] - 1, +match[4]) :
|
|
@@ -59,7 +59,7 @@ class DataConverter {
|
|
|
59
59
|
}
|
|
60
60
|
},
|
|
61
61
|
'dd/mm/YYYY': {
|
|
62
|
-
regex: /^(
|
|
62
|
+
regex: /^(\d{1,2})([\-\.\/])(\d{1,2})\2(\d{4})$/,
|
|
63
63
|
parser: function (match) {
|
|
64
64
|
return (match ?
|
|
65
65
|
Date.UTC(+match[4], match[3] - 1, +match[1]) :
|
|
@@ -68,7 +68,7 @@ class DataConverter {
|
|
|
68
68
|
alternative: 'mm/dd/YYYY' // Different format with the same regex
|
|
69
69
|
},
|
|
70
70
|
'mm/dd/YYYY': {
|
|
71
|
-
regex: /^(
|
|
71
|
+
regex: /^(\d{1,2})([\-\.\/])(\d{1,2})\2(\d{4})$/,
|
|
72
72
|
parser: function (match) {
|
|
73
73
|
return (match ?
|
|
74
74
|
Date.UTC(+match[4], match[1] - 1, +match[3]) :
|
|
@@ -76,7 +76,7 @@ class DataConverter {
|
|
|
76
76
|
}
|
|
77
77
|
},
|
|
78
78
|
'dd/mm/YY': {
|
|
79
|
-
regex: /^(
|
|
79
|
+
regex: /^(\d{1,2})([\-\.\/])(\d{1,2})\2(\d{2})$/,
|
|
80
80
|
parser: function (match) {
|
|
81
81
|
const d = new Date();
|
|
82
82
|
if (!match) {
|
|
@@ -94,7 +94,7 @@ class DataConverter {
|
|
|
94
94
|
alternative: 'mm/dd/YY' // Different format with the same regex
|
|
95
95
|
},
|
|
96
96
|
'mm/dd/YY': {
|
|
97
|
-
regex: /^(
|
|
97
|
+
regex: /^(\d{1,2})([\-\.\/])(\d{1,2})\2(\d{2})$/,
|
|
98
98
|
parser: function (match) {
|
|
99
99
|
return (match ?
|
|
100
100
|
Date.UTC(+match[4] + 2000, match[1] - 1, +match[3]) :
|
|
@@ -256,7 +256,7 @@ class DataConverter {
|
|
|
256
256
|
data[i] && data[i].length) {
|
|
257
257
|
thing = data[i]
|
|
258
258
|
.trim()
|
|
259
|
-
.replace(/[
|
|
259
|
+
.replace(/[\-\.\/]/g, ' ')
|
|
260
260
|
.split(' ');
|
|
261
261
|
guessedFormat = [
|
|
262
262
|
'',
|
|
@@ -523,7 +523,7 @@ class DataConverter {
|
|
|
523
523
|
if (typeof str === 'string') {
|
|
524
524
|
str = str.replace(/^\s+|\s+$/g, '');
|
|
525
525
|
// Clear white space insdie the string, like thousands separators
|
|
526
|
-
if (inside && /^[
|
|
526
|
+
if (inside && /^[\d\s]+$/.test(str)) {
|
|
527
527
|
str = str.replace(/\s/g, '');
|
|
528
528
|
}
|
|
529
529
|
}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* Authors:
|
|
10
10
|
* - Sophie Bremer
|
|
11
11
|
* - Gøran Slettemark
|
|
12
|
+
* - Jomar Hønsi
|
|
12
13
|
*
|
|
13
14
|
* */
|
|
14
15
|
'use strict';
|
|
@@ -114,7 +115,7 @@ class DataTable {
|
|
|
114
115
|
this.autoId = !options.id;
|
|
115
116
|
this.columns = {};
|
|
116
117
|
/**
|
|
117
|
-
* ID of the table for
|
|
118
|
+
* ID of the table for identification purposes.
|
|
118
119
|
*
|
|
119
120
|
* @name Highcharts.DataTable#id
|
|
120
121
|
* @type {string}
|
|
@@ -123,6 +124,7 @@ class DataTable {
|
|
|
123
124
|
this.modified = this;
|
|
124
125
|
this.rowCount = 0;
|
|
125
126
|
this.versionTag = uniqueKey();
|
|
127
|
+
this.rowKeysId = options.rowKeysId;
|
|
126
128
|
const columns = options.columns || {}, columnNames = Object.keys(columns), thisColumns = this.columns;
|
|
127
129
|
let rowCount = 0;
|
|
128
130
|
for (let i = 0, iEnd = columnNames.length, column, columnName; i < iEnd; ++i) {
|
|
@@ -140,6 +142,7 @@ class DataTable {
|
|
|
140
142
|
alias = aliasKeys[i];
|
|
141
143
|
thisAliases[alias] = aliases[alias];
|
|
142
144
|
}
|
|
145
|
+
this.setRowKeysColumn(rowCount);
|
|
143
146
|
}
|
|
144
147
|
/* *
|
|
145
148
|
*
|
|
@@ -175,6 +178,9 @@ class DataTable {
|
|
|
175
178
|
if (!table.autoId) {
|
|
176
179
|
tableOptions.id = table.id;
|
|
177
180
|
}
|
|
181
|
+
if (table.rowKeysId) {
|
|
182
|
+
tableOptions.rowKeysId = table.rowKeysId;
|
|
183
|
+
}
|
|
178
184
|
const tableClone = new DataTable(tableOptions);
|
|
179
185
|
if (!skipColumns) {
|
|
180
186
|
tableClone.versionTag = table.versionTag;
|
|
@@ -245,7 +251,13 @@ class DataTable {
|
|
|
245
251
|
}
|
|
246
252
|
delete columns[columnName];
|
|
247
253
|
}
|
|
248
|
-
|
|
254
|
+
let nColumns = Object.keys(columns).length;
|
|
255
|
+
if (table.rowKeysId && nColumns === 1) {
|
|
256
|
+
// All columns deleted, remove row keys column
|
|
257
|
+
delete columns[table.rowKeysId];
|
|
258
|
+
nColumns = 0;
|
|
259
|
+
}
|
|
260
|
+
if (!nColumns) {
|
|
249
261
|
table.rowCount = 0;
|
|
250
262
|
}
|
|
251
263
|
if (modifier) {
|
|
@@ -415,7 +427,7 @@ class DataTable {
|
|
|
415
427
|
case 'number':
|
|
416
428
|
return (isNaN(cellValue) && !useNaN ? null : cellValue);
|
|
417
429
|
}
|
|
418
|
-
cellValue = parseFloat(`${cellValue}`);
|
|
430
|
+
cellValue = parseFloat(`${cellValue ?? ''}`);
|
|
419
431
|
return (isNaN(cellValue) && !useNaN ? null : cellValue);
|
|
420
432
|
}
|
|
421
433
|
/**
|
|
@@ -437,6 +449,7 @@ class DataTable {
|
|
|
437
449
|
columnNameOrAlias = (table.aliases[columnNameOrAlias] ||
|
|
438
450
|
columnNameOrAlias);
|
|
439
451
|
const column = table.columns[columnNameOrAlias];
|
|
452
|
+
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
440
453
|
return `${(column && column[rowIndex])}`;
|
|
441
454
|
}
|
|
442
455
|
/**
|
|
@@ -516,6 +529,7 @@ class DataTable {
|
|
|
516
529
|
*/
|
|
517
530
|
getColumnNames() {
|
|
518
531
|
const table = this, columnNames = Object.keys(table.columns);
|
|
532
|
+
this.removeRowKeysColumn(columnNames);
|
|
519
533
|
return columnNames;
|
|
520
534
|
}
|
|
521
535
|
/**
|
|
@@ -536,6 +550,7 @@ class DataTable {
|
|
|
536
550
|
getColumns(columnNamesOrAliases, asReference) {
|
|
537
551
|
const table = this, tableAliasMap = table.aliases, tableColumns = table.columns, columns = {};
|
|
538
552
|
columnNamesOrAliases = (columnNamesOrAliases || Object.keys(tableColumns));
|
|
553
|
+
this.removeRowKeysColumn(columnNamesOrAliases);
|
|
539
554
|
for (let i = 0, iEnd = columnNamesOrAliases.length, column, columnName; i < iEnd; ++i) {
|
|
540
555
|
columnName = columnNamesOrAliases[i];
|
|
541
556
|
column = tableColumns[(tableAliasMap[columnName] || columnName)];
|
|
@@ -652,6 +667,7 @@ class DataTable {
|
|
|
652
667
|
getRowObjects(rowIndex = 0, rowCount = (this.rowCount - rowIndex), columnNamesOrAliases) {
|
|
653
668
|
const table = this, aliases = table.aliases, columns = table.columns, rows = new Array(rowCount);
|
|
654
669
|
columnNamesOrAliases = (columnNamesOrAliases || Object.keys(columns));
|
|
670
|
+
this.removeRowKeysColumn(columnNamesOrAliases);
|
|
655
671
|
for (let i = rowIndex, i2 = 0, iEnd = Math.min(table.rowCount, (rowIndex + rowCount)), column, row; i < iEnd; ++i, ++i2) {
|
|
656
672
|
row = rows[i2] = {};
|
|
657
673
|
for (const columnName of columnNamesOrAliases) {
|
|
@@ -788,6 +804,10 @@ class DataTable {
|
|
|
788
804
|
}
|
|
789
805
|
columns[newColumnName] = columns[columnName];
|
|
790
806
|
delete columns[columnName];
|
|
807
|
+
if (table.rowKeysId) {
|
|
808
|
+
// Ensure that row keys column is last
|
|
809
|
+
this.moveRowKeysColumnToLast(columns, table.rowKeysId);
|
|
810
|
+
}
|
|
791
811
|
}
|
|
792
812
|
return true;
|
|
793
813
|
}
|
|
@@ -923,6 +943,10 @@ class DataTable {
|
|
|
923
943
|
if (tableModifier) {
|
|
924
944
|
tableModifier.modifyColumns(table, columns, (rowIndex || 0));
|
|
925
945
|
}
|
|
946
|
+
if (table.rowKeysId) {
|
|
947
|
+
// Ensure that the row keys column is always last
|
|
948
|
+
this.moveRowKeysColumnToLast(tableColumns, table.rowKeysId);
|
|
949
|
+
}
|
|
926
950
|
table.emit({
|
|
927
951
|
type: 'afterSetColumns',
|
|
928
952
|
columns,
|
|
@@ -931,6 +955,63 @@ class DataTable {
|
|
|
931
955
|
rowIndex
|
|
932
956
|
});
|
|
933
957
|
}
|
|
958
|
+
/**
|
|
959
|
+
* Sets the row key column. This column is invisible and the cells
|
|
960
|
+
* serve as identifiers to the rows they are contained in. Accessing
|
|
961
|
+
* rows by keys instead of indexes is necessary in cases where rows
|
|
962
|
+
* are rearranged by a DataModifier (e.g. SortModifier or RangeModifier).
|
|
963
|
+
*
|
|
964
|
+
* @function Highcharts.DataTable#setRowKeysColumn
|
|
965
|
+
*
|
|
966
|
+
* @param {number} nRows
|
|
967
|
+
* Number of rows to add to the column.
|
|
968
|
+
*
|
|
969
|
+
*/
|
|
970
|
+
setRowKeysColumn(nRows) {
|
|
971
|
+
const id = this.rowKeysId;
|
|
972
|
+
if (!id) {
|
|
973
|
+
return;
|
|
974
|
+
}
|
|
975
|
+
this.columns[id] = [];
|
|
976
|
+
const keysArray = this.columns[id];
|
|
977
|
+
for (let i = 0; i < nRows; i++) {
|
|
978
|
+
keysArray.push(id + '_' + i);
|
|
979
|
+
}
|
|
980
|
+
}
|
|
981
|
+
/**
|
|
982
|
+
* Get the row key column.
|
|
983
|
+
*
|
|
984
|
+
* @function Highcharts.DataTable#getRowKeysColumn
|
|
985
|
+
* *
|
|
986
|
+
* @return {DataTable.Column|undefined}
|
|
987
|
+
* Returns row keys if rowKeysId is defined, else undefined.
|
|
988
|
+
*/
|
|
989
|
+
getRowKeysColumn() {
|
|
990
|
+
const id = this.rowKeysId;
|
|
991
|
+
if (id) {
|
|
992
|
+
return this.columns[id];
|
|
993
|
+
}
|
|
994
|
+
}
|
|
995
|
+
/**
|
|
996
|
+
* Get the row index in the original (unmodified) data table.
|
|
997
|
+
*
|
|
998
|
+
* @function Highcharts.DataTable#getRowIndexOriginal
|
|
999
|
+
*
|
|
1000
|
+
* @param {number} idx
|
|
1001
|
+
* Row index in the modified data table.
|
|
1002
|
+
*
|
|
1003
|
+
* @return {string}
|
|
1004
|
+
* Row index in the original data table.
|
|
1005
|
+
*/
|
|
1006
|
+
getRowIndexOriginal(idx) {
|
|
1007
|
+
const id = this.rowKeysId;
|
|
1008
|
+
if (id) {
|
|
1009
|
+
const rowKeyCol = this.columns[id];
|
|
1010
|
+
const idxOrig = '' + rowKeyCol[idx];
|
|
1011
|
+
return idxOrig.split('_')[1];
|
|
1012
|
+
}
|
|
1013
|
+
return String(idx);
|
|
1014
|
+
}
|
|
934
1015
|
/**
|
|
935
1016
|
* Sets or unsets the modifier for the table.
|
|
936
1017
|
* @private
|
|
@@ -942,7 +1023,7 @@ class DataTable {
|
|
|
942
1023
|
* Custom information for pending events.
|
|
943
1024
|
*
|
|
944
1025
|
* @return {Promise<Highcharts.DataTable>}
|
|
945
|
-
* Resolves to this table if
|
|
1026
|
+
* Resolves to this table if successful, or rejects on failure.
|
|
946
1027
|
*
|
|
947
1028
|
* @emits #setModifier
|
|
948
1029
|
* @emits #afterSetModifier
|
|
@@ -1018,7 +1099,7 @@ class DataTable {
|
|
|
1018
1099
|
* Row values to set.
|
|
1019
1100
|
*
|
|
1020
1101
|
* @param {number} [rowIndex]
|
|
1021
|
-
* Index of the first row to set. Leave `
|
|
1102
|
+
* Index of the first row to set. Leave `undefined` to add as new rows.
|
|
1022
1103
|
*
|
|
1023
1104
|
* @param {Highcharts.DataTableEventDetail} [eventDetail]
|
|
1024
1105
|
* Custom information for pending events.
|
|
@@ -1066,6 +1147,9 @@ class DataTable {
|
|
|
1066
1147
|
columns[columnNames[i]].length = indexRowCount;
|
|
1067
1148
|
}
|
|
1068
1149
|
}
|
|
1150
|
+
if (this.rowKeysId && !columnNames.includes(this.rowKeysId)) {
|
|
1151
|
+
this.setRowKeysColumn(rowCount);
|
|
1152
|
+
}
|
|
1069
1153
|
if (modifier) {
|
|
1070
1154
|
modifier.modifyRows(table, rows, rowIndex);
|
|
1071
1155
|
}
|
|
@@ -1077,6 +1161,23 @@ class DataTable {
|
|
|
1077
1161
|
rows
|
|
1078
1162
|
});
|
|
1079
1163
|
}
|
|
1164
|
+
// The row keys column must always be the last column
|
|
1165
|
+
moveRowKeysColumnToLast(columns, id) {
|
|
1166
|
+
const rowKeyColumn = columns[id];
|
|
1167
|
+
delete columns[id];
|
|
1168
|
+
columns[id] = rowKeyColumn;
|
|
1169
|
+
}
|
|
1170
|
+
// The row keys column must be removed in some methods
|
|
1171
|
+
// (API backwards compatibility)
|
|
1172
|
+
removeRowKeysColumn(columnNamesOrAliases) {
|
|
1173
|
+
if (this.rowKeysId) {
|
|
1174
|
+
const pos = columnNamesOrAliases.indexOf(this.rowKeysId);
|
|
1175
|
+
if (pos !== -1) {
|
|
1176
|
+
// Always the last column
|
|
1177
|
+
columnNamesOrAliases.pop();
|
|
1178
|
+
}
|
|
1179
|
+
}
|
|
1180
|
+
}
|
|
1080
1181
|
}
|
|
1081
1182
|
/* *
|
|
1082
1183
|
*
|
|
@@ -24,12 +24,12 @@ const booleanRegExp = /^(?:FALSE|TRUE)/;
|
|
|
24
24
|
* `.`-separated decimal.
|
|
25
25
|
* @private
|
|
26
26
|
*/
|
|
27
|
-
const decimal1RegExp = /^[
|
|
27
|
+
const decimal1RegExp = /^[+\-]?\d+(?:\.\d+)?(?:e[+\-]\d+)?/;
|
|
28
28
|
/**
|
|
29
29
|
* `,`-separated decimal.
|
|
30
30
|
* @private
|
|
31
31
|
*/
|
|
32
|
-
const decimal2RegExp = /^[
|
|
32
|
+
const decimal2RegExp = /^[+\-]?\d+(?:,\d+)?(?:e[+\-]\d+)?/;
|
|
33
33
|
/**
|
|
34
34
|
* - Group 1: Function name
|
|
35
35
|
* @private
|
|
@@ -185,7 +185,7 @@ class ControllablePath extends Controllable {
|
|
|
185
185
|
.add(parent);
|
|
186
186
|
if (!this.annotation.chart.styledMode) {
|
|
187
187
|
this.tracker.attr({
|
|
188
|
-
'stroke-linejoin': 'round',
|
|
188
|
+
'stroke-linejoin': 'round', // #1225
|
|
189
189
|
stroke: TRACKER_FILL,
|
|
190
190
|
fill: TRACKER_FILL,
|
|
191
191
|
'stroke-width': this.graphic.strokeWidth() +
|
|
@@ -375,8 +375,7 @@ class NavigationBindings {
|
|
|
375
375
|
}
|
|
376
376
|
}
|
|
377
377
|
else {
|
|
378
|
-
chart.stockTools &&
|
|
379
|
-
chart.stockTools.toggleButtonActiveClass(button);
|
|
378
|
+
chart.stockTools && button.classList.remove('highcharts-active');
|
|
380
379
|
svgContainer.removeClass('highcharts-draw-mode');
|
|
381
380
|
navigation.nextEvent = false;
|
|
382
381
|
navigation.mouseMoveEvent = false;
|
|
@@ -92,7 +92,7 @@ function compose(ChartClass, AxisClass, SeriesClass, seriesTypes, ColorClass) {
|
|
|
92
92
|
/**
|
|
93
93
|
* Returns true if the current browser supports WebGL.
|
|
94
94
|
*
|
|
95
|
-
* @requires
|
|
95
|
+
* @requires modules/boost
|
|
96
96
|
*
|
|
97
97
|
* @function Highcharts.hasWebGLSupport
|
|
98
98
|
*
|
|
@@ -202,14 +202,20 @@ function onChartCallback(chart) {
|
|
|
202
202
|
addEvent(chart, 'redraw', canvasToSVG);
|
|
203
203
|
let prevX = -1;
|
|
204
204
|
let prevY = -1;
|
|
205
|
-
addEvent(chart.pointer, 'afterGetHoverData', () => {
|
|
206
|
-
const series =
|
|
205
|
+
addEvent(chart.pointer, 'afterGetHoverData', (e) => {
|
|
206
|
+
const series = e.hoverPoint?.series;
|
|
207
207
|
chart.boost = chart.boost || {};
|
|
208
208
|
if (chart.boost.markerGroup && series) {
|
|
209
209
|
const xAxis = chart.inverted ? series.yAxis : series.xAxis;
|
|
210
210
|
const yAxis = chart.inverted ? series.xAxis : series.yAxis;
|
|
211
211
|
if ((xAxis && xAxis.pos !== prevX) ||
|
|
212
212
|
(yAxis && yAxis.pos !== prevY)) {
|
|
213
|
+
// #21176: If the axis is changed, hide teh halo without
|
|
214
|
+
// animation to prevent flickering of halos sharing the
|
|
215
|
+
// same marker group
|
|
216
|
+
chart.series.forEach((s) => {
|
|
217
|
+
s.halo?.hide();
|
|
218
|
+
});
|
|
213
219
|
// #10464: Keep the marker group position in sync with the
|
|
214
220
|
// position of the hovered series axes since there is only
|
|
215
221
|
// one shared marker group when boosting.
|