highcharts 9.3.3 → 10.2.0
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/css/highcharts.css +19 -2
- package/css/highcharts.scss +17 -2
- package/css/themes/dark-unica.css +19 -2
- package/css/themes/grid-light.css +19 -2
- package/css/themes/sand-signika.css +19 -2
- package/es-modules/Accessibility/A11yI18n.js +4 -4
- package/es-modules/Accessibility/Accessibility.js +3 -4
- package/es-modules/Accessibility/Components/AnnotationsA11y.js +3 -3
- package/es-modules/Accessibility/Components/ContainerComponent.js +11 -10
- package/es-modules/Accessibility/Components/InfoRegionsComponent.js +18 -11
- package/es-modules/Accessibility/Components/LegendComponent.js +34 -26
- package/es-modules/Accessibility/Components/MenuComponent.js +7 -6
- package/es-modules/Accessibility/Components/RangeSelectorComponent.js +5 -3
- package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +7 -6
- package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +1 -1
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +3 -2
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +34 -18
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +96 -39
- package/es-modules/Accessibility/Components/ZoomComponent.js +43 -80
- package/es-modules/Accessibility/FocusBorder.js +6 -5
- package/es-modules/Accessibility/HighContrastMode.js +3 -3
- package/es-modules/Accessibility/KeyboardNavigation.js +113 -98
- package/es-modules/Accessibility/Options/{Options.js → A11yDefaults.js} +72 -4
- package/es-modules/Accessibility/Options/DeprecatedOptions.js +12 -2
- package/es-modules/Accessibility/Options/{LangOptions.js → LangDefaults.js} +46 -31
- package/es-modules/Accessibility/ProxyElement.js +14 -6
- package/es-modules/Accessibility/ProxyProvider.js +10 -2
- package/es-modules/Accessibility/Utils/ChartUtilities.js +10 -5
- package/es-modules/Core/Animation/Fx.js +1 -1
- package/es-modules/Core/Axis/Axis.js +197 -91
- package/es-modules/Core/Axis/AxisDefaults.js +8 -8
- package/es-modules/Core/Axis/Color/ColorAxis.js +26 -7
- package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +3 -3
- package/es-modules/Core/Axis/DateTimeAxis.js +5 -3
- package/es-modules/Core/Axis/GridAxis.js +821 -821
- package/es-modules/Core/Axis/LogarithmicAxis.js +1 -1
- package/es-modules/Core/Axis/OrdinalAxis.js +26 -3
- package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +3 -3
- package/es-modules/Core/Axis/StackingAxis.js +0 -1
- package/es-modules/Core/Axis/Tick.js +22 -18
- package/es-modules/Core/Axis/TreeGridTick.js +13 -2
- package/es-modules/Core/Axis/ZAxis.js +3 -1
- package/es-modules/Core/Chart/Chart.js +27 -8
- package/es-modules/Core/Chart/Chart3D.js +1 -11
- package/es-modules/Core/Chart/ChartDefaults.js +46 -14
- package/es-modules/Core/Chart/GanttChart.js +3 -1
- package/es-modules/Core/Chart/MapChart.js +4 -7
- package/es-modules/Core/Chart/StockChart.js +7 -5
- package/es-modules/Core/Color/Color.js +1 -1
- package/es-modules/Core/DefaultOptions.js +19 -15
- package/es-modules/Core/Geometry/PolygonClip.js +84 -0
- package/es-modules/Core/Globals.js +4 -18
- package/es-modules/Core/HttpUtilities.js +46 -39
- package/es-modules/Core/Legend/Legend.js +14 -12
- package/es-modules/Core/MSPointer.js +3 -1
- package/es-modules/Core/Navigator.js +16 -13
- package/es-modules/Core/Pointer.js +16 -12
- package/es-modules/Core/Renderer/HTML/AST.js +68 -8
- package/es-modules/Core/Renderer/HTML/HTMLElement.js +3 -1
- package/es-modules/Core/Renderer/HTML/HTMLRenderer.js +3 -1
- package/es-modules/Core/Renderer/SVG/SVGElement.js +54 -70
- package/es-modules/Core/Renderer/SVG/SVGElement3D.js +17 -5
- package/es-modules/Core/Renderer/SVG/SVGLabel.js +3 -1
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +60 -55
- package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +4 -2
- package/es-modules/Core/Renderer/SVG/TextBuilder.js +12 -10
- package/es-modules/Core/Scrollbar.js +9 -5
- package/es-modules/Core/ScrollbarDefaults.js +8 -8
- package/es-modules/Core/Series/DataLabel.js +67 -38
- package/es-modules/Core/Series/Point.js +11 -2
- package/es-modules/Core/Series/Series.js +57 -27
- package/es-modules/Core/Series/Series3D.js +3 -1
- package/es-modules/Core/Series/SeriesDefaults.js +7 -4
- package/es-modules/Core/Time.js +6 -7
- package/es-modules/Core/Tooltip.js +17 -34
- package/es-modules/Core/Utilities.js +33 -33
- package/es-modules/Data/DataConverter.js +1 -1
- package/es-modules/Data/DataTable.js +12 -10
- package/es-modules/Data/Modifiers/ChainModifier.js +3 -1
- package/es-modules/Data/Modifiers/GroupModifier.js +3 -1
- package/es-modules/Data/Modifiers/InvertModifier.js +9 -7
- package/es-modules/Data/Modifiers/RangeModifier.js +3 -1
- package/es-modules/Data/Modifiers/SeriesPointsModifier.js +3 -1
- package/es-modules/Data/Modifiers/SortModifier.js +3 -1
- package/es-modules/Data/Parsers/CSVParser.js +3 -1
- package/es-modules/Data/Parsers/DataParser.js +1 -1
- package/es-modules/Data/Parsers/GoogleSheetsParser.js +3 -2
- package/es-modules/Data/Parsers/HTMLTableParser.js +3 -1
- package/es-modules/Data/Stores/CSVStore.js +8 -5
- package/es-modules/Data/Stores/GoogleSheetsStore.js +3 -1
- package/es-modules/Data/Stores/HTMLTableStore.js +3 -1
- package/es-modules/Extensions/Annotations/{Annotations.js → Annotation.js} +30 -11
- package/es-modules/Extensions/Annotations/AnnotationsDefaults.js +0 -0
- package/es-modules/Extensions/Annotations/ControlPoint.js +1 -1
- package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +5 -2
- package/es-modules/Extensions/Annotations/MockPoint.js +1 -1
- package/es-modules/Extensions/Annotations/NavigationBindings.js +16 -5
- package/es-modules/Extensions/Annotations/Popup.js +2 -2
- package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +18 -12
- package/es-modules/Extensions/Annotations/Types/CrookedLine.js +4 -2
- package/es-modules/Extensions/Annotations/Types/ElliottWave.js +4 -2
- package/es-modules/Extensions/Annotations/Types/Fibonacci.js +5 -3
- package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +4 -2
- package/es-modules/Extensions/Annotations/Types/InfinityLine.js +4 -2
- package/es-modules/Extensions/Annotations/Types/Measure.js +4 -2
- package/es-modules/Extensions/Annotations/Types/Pitchfork.js +4 -2
- package/es-modules/Extensions/Annotations/Types/TimeCycles.js +4 -2
- package/es-modules/Extensions/Annotations/Types/Tunnel.js +5 -2
- package/es-modules/Extensions/Annotations/Types/VerticalLine.js +4 -2
- package/es-modules/Extensions/Boost/BoostAttach.js +5 -1
- package/es-modules/Extensions/Boost/BoostInit.js +9 -3
- package/es-modules/Extensions/Boost/BoostOptions.js +26 -0
- package/es-modules/Extensions/Boost/Boostables.js +1 -0
- package/es-modules/Extensions/Boost/WGLRenderer.js +48 -37
- package/es-modules/Extensions/Boost/WGLShader.js +4 -3
- package/es-modules/Extensions/BoostCanvas.js +11 -5
- package/es-modules/Extensions/Breadcrumbs.js +898 -0
- package/es-modules/Extensions/CurrentDateIndication.js +1 -1
- package/es-modules/Extensions/Data.js +661 -613
- package/es-modules/Extensions/DataGrouping.js +8 -3
- package/es-modules/Extensions/Debugger/ErrorMessages.js +4 -0
- package/es-modules/Extensions/DownloadURL.js +3 -3
- package/es-modules/Extensions/DragPanes.js +1 -1
- package/es-modules/Extensions/DraggablePoints.js +9 -7
- package/es-modules/Extensions/Drilldown.js +152 -97
- package/es-modules/Extensions/ExportData.js +58 -9
- package/es-modules/Extensions/Exporting/Exporting.js +34 -23
- package/es-modules/Extensions/Exporting/ExportingDefaults.js +56 -8
- package/es-modules/Extensions/FullScreen.js +121 -54
- package/es-modules/Extensions/GeoJSON.js +149 -125
- package/es-modules/Extensions/MarkerClusters.js +36 -22
- package/es-modules/Extensions/NoDataToDisplay.js +1 -1
- package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +110 -22
- package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
- package/es-modules/Extensions/Oldie/Oldie.js +2 -2
- package/es-modules/Extensions/OverlappingDataLabels.js +5 -4
- package/es-modules/Extensions/Pane.js +3 -3
- package/es-modules/Extensions/ParallelCoordinates.js +1 -1
- package/es-modules/Extensions/PatternFill.js +14 -2
- package/es-modules/Extensions/RangeSelector.js +29 -18
- package/es-modules/Extensions/ScrollablePlotArea.js +8 -4
- package/es-modules/Extensions/{SeriesLabel.js → SeriesLabel/SeriesLabel.js} +262 -384
- package/es-modules/Extensions/SeriesLabel/SeriesLabelDefaults.js +124 -0
- package/es-modules/Extensions/SeriesLabel/SeriesLabelUtilities.js +67 -0
- package/es-modules/Extensions/Sonification/Earcon.js +1 -1
- package/es-modules/Extensions/Stacking.js +5 -4
- package/es-modules/Extensions/Themes/HighContrastDark.js +10 -10
- package/es-modules/Extensions/Themes/HighContrastLight.js +10 -10
- package/es-modules/Maps/MapNavigation.js +49 -12
- package/es-modules/Maps/MapPointer.js +16 -0
- package/es-modules/Maps/MapUtilities.js +56 -0
- package/es-modules/Maps/MapView.js +619 -137
- package/es-modules/Maps/MapViewInsetsOptionsDefault.js +148 -0
- package/es-modules/Maps/MapViewOptionsDefault.js +60 -20
- package/es-modules/Maps/Projection.js +182 -88
- package/es-modules/Maps/Projections/EqualEarth.js +15 -6
- package/es-modules/Maps/Projections/LambertConformalConic.js +27 -19
- package/es-modules/Maps/Projections/Miller.js +23 -10
- package/es-modules/Maps/Projections/Orthographic.js +21 -10
- package/es-modules/Maps/Projections/WebMercator.js +25 -13
- package/es-modules/Series/ArcDiagram/ArcDiagramPoint.js +79 -0
- package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +591 -0
- package/es-modules/Series/Area/AreaSeries.js +21 -14
- package/es-modules/Series/AreaRange/AreaRangePoint.js +24 -11
- package/es-modules/Series/AreaRange/AreaRangeSeries.js +154 -147
- package/es-modules/Series/AreaSpline/AreaSplineSeries.js +45 -41
- package/es-modules/Series/AreaSplineRange/AreaSplineRangeSeries.js +43 -43
- package/es-modules/Series/Bar/BarSeries.js +3 -1
- package/es-modules/Series/Bellcurve/BellcurveSeries.js +3 -1
- package/es-modules/Series/BoxPlot/BoxPlotSeries.js +4 -2
- package/es-modules/Series/Bubble/BubbleLegendDefaults.js +1 -1
- package/es-modules/Series/Bubble/BubblePoint.js +3 -1
- package/es-modules/Series/Bubble/BubbleSeries.js +15 -6
- package/es-modules/Series/Bullet/BulletPoint.js +3 -1
- package/es-modules/Series/Bullet/BulletSeries.js +4 -3
- package/es-modules/Series/Candlestick/CandlestickSeries.js +5 -3
- package/es-modules/Series/CenteredUtilities.js +8 -2
- package/es-modules/Series/ColorMapComposition.js +111 -0
- package/es-modules/Series/Column/ColumnSeries.js +10 -7
- package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +3 -1
- package/es-modules/Series/ColumnRange/ColumnRangePoint.js +17 -13
- package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +60 -57
- package/es-modules/Series/Cylinder/CylinderPoint.js +3 -1
- package/es-modules/Series/Cylinder/CylinderSeries.js +3 -1
- package/es-modules/Series/DataModifyComposition.js +1 -0
- package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +3 -1
- package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +5 -3
- package/es-modules/Series/DotPlot/DotPlotSeries.js +3 -1
- package/es-modules/Series/DrawPointUtilities.js +87 -0
- package/es-modules/Series/Dumbbell/DumbbellPoint.js +3 -1
- package/es-modules/Series/Dumbbell/DumbbellSeries.js +4 -2
- package/es-modules/Series/ErrorBar/ErrorBarSeries.js +4 -2
- package/es-modules/Series/Flags/FlagsPoint.js +4 -1
- package/es-modules/Series/Flags/FlagsSeries.js +13 -16
- package/es-modules/Series/Funnel/FunnelSeries.js +5 -3
- package/es-modules/Series/Funnel3D/Funnel3DPoint.js +3 -1
- package/es-modules/Series/Funnel3D/Funnel3DSeries.js +3 -1
- package/es-modules/Series/Gantt/GanttPoint.js +3 -1
- package/es-modules/Series/Gantt/GanttSeries.js +3 -1
- package/es-modules/Series/Gauge/GaugePoint.js +3 -1
- package/es-modules/Series/Gauge/GaugeSeries.js +196 -174
- package/es-modules/Series/HLC/HLCPoint.js +3 -1
- package/es-modules/Series/HLC/HLCSeries.js +4 -2
- package/es-modules/Series/Heatmap/HeatmapPoint.js +7 -5
- package/es-modules/Series/Heatmap/HeatmapSeries.js +29 -33
- package/es-modules/Series/HeikinAshi/HeikinAshiPoint.js +3 -1
- package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +3 -1
- package/es-modules/Series/Histogram/HistogramSeries.js +3 -1
- package/es-modules/Series/HollowCandlestick/HollowCandlestickPoint.js +3 -1
- package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +11 -9
- package/es-modules/Series/Item/ItemPoint.js +3 -1
- package/es-modules/Series/Item/ItemSeries.js +3 -1
- package/es-modules/Series/Line/LineSeries.js +4 -2
- package/es-modules/Series/Lollipop/LollipopPoint.js +3 -1
- package/es-modules/Series/Lollipop/LollipopSeries.js +4 -2
- package/es-modules/Series/Map/MapPoint.js +32 -7
- package/es-modules/Series/Map/MapSeries.js +298 -189
- package/es-modules/Series/MapBubble/MapBubblePoint.js +19 -25
- package/es-modules/Series/MapBubble/MapBubbleSeries.js +61 -2
- package/es-modules/Series/MapLine/MapLineSeries.js +18 -1
- package/es-modules/Series/MapPoint/MapPointPoint.js +6 -10
- package/es-modules/Series/MapPoint/MapPointSeries.js +50 -16
- package/es-modules/Series/Networkgraph/Networkgraph.js +3 -1
- package/es-modules/Series/NodesComposition.js +101 -49
- package/es-modules/Series/OHLC/OHLCPoint.js +3 -1
- package/es-modules/Series/OHLC/OHLCSeries.js +10 -1
- package/es-modules/Series/Organization/OrganizationPoint.js +71 -3
- package/es-modules/Series/Organization/OrganizationSeries.js +84 -28
- package/es-modules/Series/PackedBubble/PackedBubbleComposition.js +0 -2
- package/es-modules/Series/PackedBubble/PackedBubblePoint.js +3 -1
- package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +3 -1
- package/es-modules/Series/ParetoSeries/ParetoSeries.js +3 -1
- package/es-modules/Series/Pie/PieDataLabel.js +4 -2
- package/es-modules/Series/Pie/PiePoint.js +15 -6
- package/es-modules/Series/Pie/PieSeries.js +51 -37
- package/es-modules/Series/Pie3D/Pie3DPoint.js +3 -1
- package/es-modules/Series/Pie3D/Pie3DSeries.js +22 -1
- package/es-modules/Series/PolarComposition.js +819 -0
- package/es-modules/Series/Polygon/PolygonSeries.js +3 -1
- package/es-modules/Series/Pyramid/PyramidSeries.js +3 -1
- package/es-modules/Series/Pyramid3D/Pyramid3DSeries.js +3 -1
- package/es-modules/Series/Sankey/SankeyColumnComposition.js +193 -0
- package/es-modules/Series/Sankey/SankeyPoint.js +40 -2
- package/es-modules/Series/Sankey/SankeySeries.js +35 -136
- package/es-modules/Series/Scatter/ScatterSeries.js +11 -6
- package/es-modules/Series/Scatter3D/Scatter3DPoint.js +3 -1
- package/es-modules/Series/Scatter3D/Scatter3DSeries.js +3 -1
- package/es-modules/Series/SeriesOnPointComposition.js +391 -0
- package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +5 -3
- package/es-modules/Series/Spline/SplineSeries.js +13 -4
- package/es-modules/Series/Streamgraph/StreamgraphSeries.js +3 -1
- package/es-modules/Series/Sunburst/SunburstPoint.js +3 -3
- package/es-modules/Series/Sunburst/SunburstSeries.js +21 -5
- package/es-modules/Series/Tilemap/TilemapPoint.js +3 -1
- package/es-modules/Series/Tilemap/TilemapSeries.js +3 -1
- package/es-modules/Series/Timeline/TimelinePoint.js +3 -1
- package/es-modules/Series/Timeline/TimelineSeries.js +6 -4
- package/es-modules/Series/Treemap/TreemapPoint.js +8 -4
- package/es-modules/Series/Treemap/TreemapSeries.js +97 -87
- package/es-modules/Series/VariablePie/VariablePieSeries.js +3 -1
- package/es-modules/Series/Variwide/VariwidePoint.js +3 -1
- package/es-modules/Series/Variwide/VariwideSeries.js +3 -1
- package/es-modules/Series/Vector/VectorSeries.js +3 -1
- package/es-modules/Series/Venn/VennPoint.js +5 -5
- package/es-modules/Series/Venn/VennSeries.js +9 -6
- package/es-modules/Series/Waterfall/WaterfallPoint.js +3 -1
- package/es-modules/Series/Waterfall/WaterfallSeries.js +16 -12
- package/es-modules/Series/Windbarb/WindbarbPoint.js +3 -1
- package/es-modules/Series/Windbarb/WindbarbSeries.js +3 -1
- package/es-modules/Series/Wordcloud/WordcloudPoint.js +6 -6
- package/es-modules/Series/Wordcloud/WordcloudSeries.js +11 -8
- package/es-modules/Series/XRange/XRangePoint.js +3 -1
- package/es-modules/Series/XRange/XRangeSeries.js +3 -1
- package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +3 -1
- package/es-modules/Stock/Indicators/AD/ADIndicator.js +3 -1
- package/es-modules/Stock/Indicators/AO/AOIndicator.js +5 -3
- package/es-modules/Stock/Indicators/APO/APOIndicator.js +3 -1
- package/es-modules/Stock/Indicators/ATR/ATRIndicator.js +3 -1
- package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +3 -1
- package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +3 -1
- package/es-modules/Stock/Indicators/BB/BBIndicator.js +6 -4
- package/es-modules/Stock/Indicators/CCI/CCIIndicator.js +3 -1
- package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +3 -1
- package/es-modules/Stock/Indicators/CMO/CMOIndicator.js +3 -1
- package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +3 -1
- package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +3 -1
- package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +13 -7
- package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +3 -1
- package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +3 -1
- package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +3 -1
- package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +3 -1
- package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +3 -1
- package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +3 -1
- package/es-modules/Stock/Indicators/LinearRegression/LinearRegression.js +3 -1
- package/es-modules/Stock/Indicators/LinearRegressionAngle/LinearRegressionAngle.js +3 -1
- package/es-modules/Stock/Indicators/LinearRegressionIntercept/LinearRegressionIntercept.js +3 -1
- package/es-modules/Stock/Indicators/LinearRegressionSlopes/LinearRegressionSlopes.js +3 -1
- package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +26 -13
- package/es-modules/Stock/Indicators/MFI/MFIIndicator.js +3 -1
- package/es-modules/Stock/Indicators/Momentum/MomentumIndicator.js +3 -1
- package/es-modules/Stock/Indicators/MultipleLinesComposition.js +85 -95
- package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +3 -1
- package/es-modules/Stock/Indicators/OBV/OBVIndicator.js +3 -1
- package/es-modules/Stock/Indicators/PC/PCIndicator.js +3 -1
- package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +3 -1
- package/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +3 -1
- package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +3 -1
- package/es-modules/Stock/Indicators/PivotPoints/PivotPointsPoint.js +3 -1
- package/es-modules/Stock/Indicators/PriceEnvelopes/PriceEnvelopesIndicator.js +3 -1
- package/es-modules/Stock/Indicators/ROC/ROCIndicator.js +3 -1
- package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +3 -1
- package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +12 -3
- package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +3 -1
- package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +3 -1
- package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +6 -4
- package/es-modules/Stock/Indicators/TEMA/TEMAIndicator.js +3 -1
- package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +3 -1
- package/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +3 -1
- package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +3 -1
- package/es-modules/Stock/Indicators/VBP/VBPPoint.js +3 -1
- package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +3 -1
- package/es-modules/Stock/Indicators/WMA/WMAIndicator.js +3 -1
- package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +3 -1
- package/es-modules/Stock/Indicators/Zigzag/ZigzagIndicator.js +3 -1
- package/es-modules/Stock/StockToolsBindings.js +51 -43
- package/es-modules/Stock/StockToolsGui.js +1 -1
- package/es-modules/masters/highcharts-3d.src.js +1 -1
- package/es-modules/masters/highcharts-gantt.src.js +1 -1
- package/es-modules/masters/highcharts-more.src.js +4 -4
- package/es-modules/masters/highcharts.src.js +1 -1
- package/es-modules/masters/highmaps.src.js +1 -1
- package/es-modules/masters/highstock.src.js +1 -1
- 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/accessibility.src.js +1 -1
- package/es-modules/masters/modules/annotations-advanced.src.js +2 -2
- package/es-modules/masters/modules/annotations.src.js +2 -2
- package/es-modules/masters/modules/arc-diagram.src.js +14 -0
- package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
- package/es-modules/masters/modules/boost-canvas.src.js +1 -1
- package/es-modules/masters/modules/boost.src.js +1 -1
- package/es-modules/masters/modules/broken-axis.src.js +1 -1
- package/es-modules/masters/modules/bullet.src.js +1 -1
- package/es-modules/masters/modules/coloraxis.src.js +1 -1
- package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
- package/es-modules/masters/modules/cylinder.src.js +1 -1
- package/es-modules/masters/modules/data.src.js +2 -1
- package/es-modules/masters/modules/datagrouping.src.js +1 -1
- package/es-modules/masters/modules/debugger.src.js +1 -1
- package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
- package/es-modules/masters/modules/dotplot.src.js +1 -1
- package/es-modules/masters/modules/drag-panes.src.js +1 -1
- package/es-modules/masters/modules/draggable-points.src.js +1 -1
- package/es-modules/masters/modules/drilldown.src.js +2 -1
- package/es-modules/masters/modules/dumbbell.src.js +1 -1
- package/es-modules/masters/modules/export-data.src.js +1 -1
- package/es-modules/masters/modules/exporting.src.js +1 -1
- package/es-modules/masters/modules/full-screen.src.js +1 -1
- package/es-modules/masters/modules/funnel.src.js +1 -1
- package/es-modules/masters/modules/funnel3d.src.js +1 -1
- package/es-modules/masters/modules/gantt.src.js +1 -1
- package/es-modules/masters/modules/grid-axis.src.js +1 -1
- package/es-modules/masters/modules/heatmap.src.js +1 -1
- package/es-modules/masters/modules/heikinashi.src.js +1 -1
- package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
- package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
- package/es-modules/masters/modules/item-series.src.js +1 -1
- package/es-modules/masters/modules/lollipop.src.js +1 -1
- package/es-modules/masters/modules/map.src.js +5 -1
- package/es-modules/masters/modules/marker-clusters.src.js +1 -1
- package/es-modules/masters/modules/networkgraph.src.js +1 -1
- package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
- package/es-modules/masters/modules/offline-exporting.src.js +1 -1
- package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
- package/es-modules/masters/modules/oldie.src.js +1 -1
- package/es-modules/masters/modules/organization.src.js +1 -1
- package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
- package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
- package/es-modules/masters/modules/pareto.src.js +1 -1
- package/es-modules/masters/modules/pathfinder.src.js +1 -1
- package/es-modules/masters/modules/pattern-fill.src.js +1 -1
- package/es-modules/masters/modules/price-indicator.src.js +1 -1
- package/es-modules/masters/modules/pyramid3d.src.js +1 -1
- package/es-modules/masters/modules/sankey.src.js +1 -1
- package/es-modules/masters/modules/series-label.src.js +5 -2
- package/es-modules/masters/modules/series-on-point.src.js +16 -0
- package/es-modules/masters/modules/solid-gauge.src.js +1 -1
- package/es-modules/masters/modules/sonification.src.js +2 -6
- package/es-modules/masters/modules/static-scale.src.js +1 -1
- package/es-modules/masters/modules/stock-tools.src.js +1 -1
- package/es-modules/masters/modules/stock.src.js +1 -1
- package/es-modules/masters/modules/streamgraph.src.js +1 -1
- package/es-modules/masters/modules/sunburst.src.js +1 -1
- package/es-modules/masters/modules/tilemap.src.js +1 -1
- package/es-modules/masters/modules/timeline.src.js +1 -1
- package/es-modules/masters/modules/treegrid.src.js +1 -1
- package/es-modules/masters/modules/treemap.src.js +5 -1
- package/es-modules/masters/modules/variable-pie.src.js +1 -1
- package/es-modules/masters/modules/variwide.src.js +1 -1
- package/es-modules/masters/modules/vector.src.js +1 -1
- package/es-modules/masters/modules/venn.src.js +1 -1
- package/es-modules/masters/modules/windbarb.src.js +1 -1
- package/es-modules/masters/modules/wordcloud.src.js +1 -1
- package/es-modules/masters/modules/xrange.src.js +1 -1
- package/es-modules/masters/themes/avocado.src.js +1 -1
- package/es-modules/masters/themes/brand-dark.src.js +1 -1
- package/es-modules/masters/themes/brand-light.src.js +1 -1
- package/es-modules/masters/themes/dark-blue.src.js +1 -1
- package/es-modules/masters/themes/dark-green.src.js +1 -1
- package/es-modules/masters/themes/dark-unica.src.js +1 -1
- package/es-modules/masters/themes/gray.src.js +1 -1
- package/es-modules/masters/themes/grid-light.src.js +1 -1
- package/es-modules/masters/themes/grid.src.js +1 -1
- package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
- package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
- package/es-modules/masters/themes/sand-signika.src.js +1 -1
- package/es-modules/masters/themes/skies.src.js +1 -1
- package/es-modules/masters/themes/sunset.src.js +1 -1
- package/highcharts-3d.js +99 -98
- package/highcharts-3d.js.map +1 -1
- package/highcharts-3d.src.js +51 -21
- package/highcharts-gantt.js +811 -801
- package/highcharts-gantt.js.map +1 -1
- package/highcharts-gantt.src.js +2020 -1607
- package/highcharts-more.d.ts +10 -0
- package/highcharts-more.js +194 -194
- package/highcharts-more.js.map +1 -1
- package/highcharts-more.src.d.ts +10 -0
- package/highcharts-more.src.js +3512 -3364
- package/highcharts.d.ts +12336 -965
- package/highcharts.js +595 -586
- package/highcharts.js.map +1 -1
- package/highcharts.src.d.ts +12336 -965
- package/highcharts.src.js +1047 -665
- package/highmaps.js +763 -728
- package/highmaps.js.map +1 -1
- package/highmaps.src.js +4482 -2639
- package/highstock.js +798 -788
- package/highstock.js.map +1 -1
- package/highstock.src.js +1177 -739
- package/indicators/acceleration-bands.d.ts +1 -17
- package/indicators/acceleration-bands.js +11 -11
- package/indicators/acceleration-bands.js.map +1 -1
- package/indicators/acceleration-bands.src.d.ts +1 -17
- package/indicators/acceleration-bands.src.js +99 -100
- package/indicators/accumulation-distribution.js +5 -5
- package/indicators/accumulation-distribution.js.map +1 -1
- package/indicators/accumulation-distribution.src.js +11 -2
- package/indicators/ao.js +6 -6
- package/indicators/ao.js.map +1 -1
- package/indicators/ao.src.js +13 -4
- package/indicators/apo.js +5 -5
- package/indicators/apo.js.map +1 -1
- package/indicators/apo.src.js +11 -2
- package/indicators/aroon-oscillator.d.ts +1 -17
- package/indicators/aroon-oscillator.js +10 -10
- package/indicators/aroon-oscillator.js.map +1 -1
- package/indicators/aroon-oscillator.src.d.ts +1 -17
- package/indicators/aroon-oscillator.src.js +99 -100
- package/indicators/aroon.d.ts +1 -17
- package/indicators/aroon.js +11 -11
- package/indicators/aroon.js.map +1 -1
- package/indicators/aroon.src.d.ts +1 -17
- package/indicators/aroon.src.js +99 -100
- package/indicators/atr.js +5 -5
- package/indicators/atr.js.map +1 -1
- package/indicators/atr.src.js +11 -2
- package/indicators/bollinger-bands.d.ts +1 -17
- package/indicators/bollinger-bands.js +11 -12
- package/indicators/bollinger-bands.js.map +1 -1
- package/indicators/bollinger-bands.src.d.ts +1 -17
- package/indicators/bollinger-bands.src.js +102 -103
- package/indicators/cci.js +5 -5
- package/indicators/cci.js.map +1 -1
- package/indicators/cci.src.js +11 -2
- package/indicators/chaikin.js +8 -8
- package/indicators/chaikin.js.map +1 -1
- package/indicators/chaikin.src.js +11 -2
- package/indicators/cmf.js +6 -6
- package/indicators/cmf.js.map +1 -1
- package/indicators/cmf.src.js +11 -2
- package/indicators/cmo.js +5 -5
- package/indicators/cmo.js.map +1 -1
- package/indicators/cmo.src.js +11 -2
- package/indicators/dema.js +5 -5
- package/indicators/dema.js.map +1 -1
- package/indicators/dema.src.js +11 -2
- package/indicators/disparity-index.js +6 -6
- package/indicators/disparity-index.js.map +1 -1
- package/indicators/disparity-index.src.js +11 -2
- package/indicators/dmi.js +12 -12
- package/indicators/dmi.js.map +1 -1
- package/indicators/dmi.src.js +109 -106
- package/indicators/dpo.js +5 -5
- package/indicators/dpo.js.map +1 -1
- package/indicators/dpo.src.js +11 -2
- package/indicators/ema.js +2 -1
- package/indicators/ema.js.map +1 -1
- package/indicators/ema.src.js +10 -1
- package/indicators/ichimoku-kinko-hyo.js +16 -16
- package/indicators/ichimoku-kinko-hyo.js.map +1 -1
- package/indicators/ichimoku-kinko-hyo.src.js +11 -2
- package/indicators/indicators-all.d.ts +1 -17
- package/indicators/indicators-all.js +198 -196
- package/indicators/indicators-all.js.map +1 -1
- package/indicators/indicators-all.src.d.ts +1 -17
- package/indicators/indicators-all.src.js +151 -129
- package/indicators/indicators.js +13 -12
- package/indicators/indicators.js.map +1 -1
- package/indicators/indicators.src.js +21 -5
- package/indicators/keltner-channels.d.ts +1 -17
- package/indicators/keltner-channels.js +11 -11
- package/indicators/keltner-channels.js.map +1 -1
- package/indicators/keltner-channels.src.d.ts +1 -17
- package/indicators/keltner-channels.src.js +99 -100
- package/indicators/klinger.js +14 -14
- package/indicators/klinger.js.map +1 -1
- package/indicators/klinger.src.js +99 -100
- package/indicators/macd.js +13 -11
- package/indicators/macd.js.map +1 -1
- package/indicators/macd.src.js +35 -14
- package/indicators/mfi.js +6 -6
- package/indicators/mfi.js.map +1 -1
- package/indicators/mfi.src.js +11 -2
- package/indicators/momentum.js +5 -5
- package/indicators/momentum.js.map +1 -1
- package/indicators/momentum.src.js +11 -2
- package/indicators/natr.js +5 -4
- package/indicators/natr.js.map +1 -1
- package/indicators/natr.src.js +11 -2
- package/indicators/obv.js +5 -5
- package/indicators/obv.js.map +1 -1
- package/indicators/obv.src.js +11 -2
- package/indicators/pivot-points.js +11 -11
- package/indicators/pivot-points.js.map +1 -1
- package/indicators/pivot-points.src.js +11 -2
- package/indicators/ppo.js +5 -5
- package/indicators/ppo.js.map +1 -1
- package/indicators/ppo.src.js +11 -2
- package/indicators/price-channel.d.ts +1 -17
- package/indicators/price-channel.js +11 -11
- package/indicators/price-channel.js.map +1 -1
- package/indicators/price-channel.src.d.ts +1 -17
- package/indicators/price-channel.src.js +99 -100
- package/indicators/price-envelopes.js +8 -8
- package/indicators/price-envelopes.js.map +1 -1
- package/indicators/price-envelopes.src.js +11 -2
- package/indicators/psar.js +7 -6
- package/indicators/psar.js.map +1 -1
- package/indicators/psar.src.js +11 -2
- package/indicators/regressions.js +12 -12
- package/indicators/regressions.js.map +1 -1
- package/indicators/regressions.src.js +11 -2
- package/indicators/roc.js +5 -5
- package/indicators/roc.js.map +1 -1
- package/indicators/roc.src.js +11 -2
- package/indicators/rsi.js +6 -5
- package/indicators/rsi.js.map +1 -1
- package/indicators/rsi.src.js +11 -2
- package/indicators/slow-stochastic.js +5 -5
- package/indicators/slow-stochastic.js.map +1 -1
- package/indicators/slow-stochastic.src.js +11 -2
- package/indicators/stochastic.d.ts +1 -17
- package/indicators/stochastic.js +12 -12
- package/indicators/stochastic.js.map +1 -1
- package/indicators/stochastic.src.d.ts +1 -17
- package/indicators/stochastic.src.js +99 -100
- package/indicators/supertrend.js +10 -10
- package/indicators/supertrend.js.map +1 -1
- package/indicators/supertrend.src.js +14 -5
- package/indicators/tema.js +6 -6
- package/indicators/tema.js.map +1 -1
- package/indicators/tema.src.js +11 -2
- package/indicators/trendline.js +5 -5
- package/indicators/trendline.js.map +1 -1
- package/indicators/trendline.src.js +11 -2
- package/indicators/trix.js +4 -4
- package/indicators/trix.js.map +1 -1
- package/indicators/trix.src.js +11 -2
- package/indicators/volume-by-price.js +17 -17
- package/indicators/volume-by-price.js.map +1 -1
- package/indicators/volume-by-price.src.js +11 -2
- package/indicators/vwap.js +5 -5
- package/indicators/vwap.js.map +1 -1
- package/indicators/vwap.src.js +11 -2
- package/indicators/williams-r.js +6 -5
- package/indicators/williams-r.js.map +1 -1
- package/indicators/williams-r.src.js +11 -2
- package/indicators/wma.js +5 -5
- package/indicators/wma.js.map +1 -1
- package/indicators/wma.src.js +11 -2
- package/indicators/zigzag.js +6 -6
- package/indicators/zigzag.js.map +1 -1
- package/indicators/zigzag.src.js +11 -2
- package/lib/jspdf.js +299 -184
- package/lib/jspdf.src.js +25266 -18067
- package/lib/svg2pdf.js +35 -31
- package/lib/svg2pdf.src.js +5721 -4179
- package/modules/accessibility.js +242 -237
- package/modules/accessibility.js.map +1 -1
- package/modules/accessibility.src.js +599 -390
- package/modules/annotations-advanced.js +192 -192
- package/modules/annotations-advanced.js.map +1 -1
- package/modules/annotations-advanced.src.js +96 -47
- package/modules/annotations.js +126 -126
- package/modules/annotations.js.map +1 -1
- package/modules/annotations.src.js +67 -25
- package/modules/arc-diagram.js +25 -0
- package/modules/arc-diagram.js.map +1 -0
- package/modules/arc-diagram.src.js +778 -0
- package/modules/arrow-symbols.js +4 -3
- package/modules/arrow-symbols.js.map +1 -1
- package/modules/arrow-symbols.src.js +11 -2
- package/modules/boost-canvas.js +16 -15
- package/modules/boost-canvas.js.map +1 -1
- package/modules/boost-canvas.src.js +22 -7
- package/modules/boost.js +81 -79
- package/modules/boost.js.map +1 -1
- package/modules/boost.src.js +90 -51
- package/modules/broken-axis.js +13 -13
- package/modules/broken-axis.js.map +1 -1
- package/modules/broken-axis.src.js +11 -2
- package/modules/bullet.js +9 -9
- package/modules/bullet.js.map +1 -1
- package/modules/bullet.src.js +12 -6
- package/modules/coloraxis.js +24 -24
- package/modules/coloraxis.js.map +1 -1
- package/modules/coloraxis.src.js +37 -11
- package/modules/current-date-indicator.js +5 -4
- package/modules/current-date-indicator.js.map +1 -1
- package/modules/current-date-indicator.src.js +12 -3
- package/modules/cylinder.js +11 -11
- package/modules/cylinder.js.map +1 -1
- package/modules/cylinder.src.js +11 -2
- package/modules/data.d.ts +12 -12
- package/modules/data.js +33 -33
- package/modules/data.js.map +1 -1
- package/modules/data.src.d.ts +12 -12
- package/modules/data.src.js +906 -846
- package/modules/datagrouping.js +21 -20
- package/modules/datagrouping.js.map +1 -1
- package/modules/datagrouping.src.js +19 -5
- package/modules/debugger.js +8 -7
- package/modules/debugger.js.map +1 -1
- package/modules/debugger.src.js +15 -2
- package/modules/dependency-wheel.js +12 -11
- package/modules/dependency-wheel.js.map +1 -1
- package/modules/dependency-wheel.src.js +14 -5
- package/modules/dotplot.js +6 -6
- package/modules/dotplot.js.map +1 -1
- package/modules/dotplot.src.js +11 -2
- package/modules/drag-panes.js +10 -10
- package/modules/drag-panes.js.map +1 -1
- package/modules/drag-panes.src.js +12 -3
- package/modules/draggable-points.js +35 -34
- package/modules/draggable-points.js.map +1 -1
- package/modules/draggable-points.src.js +20 -9
- package/modules/drilldown.d.ts +19 -0
- package/modules/drilldown.js +37 -25
- package/modules/drilldown.js.map +1 -1
- package/modules/drilldown.src.d.ts +19 -0
- package/modules/drilldown.src.js +1124 -108
- package/modules/dumbbell.d.ts +4 -0
- package/modules/dumbbell.js +17 -17
- package/modules/dumbbell.js.map +1 -1
- package/modules/dumbbell.src.d.ts +4 -0
- package/modules/dumbbell.src.js +34 -13
- package/modules/export-data.js +24 -21
- package/modules/export-data.js.map +1 -1
- package/modules/export-data.src.js +87 -14
- package/modules/exporting.d.ts +8 -8
- package/modules/exporting.js +39 -39
- package/modules/exporting.js.map +1 -1
- package/modules/exporting.src.d.ts +8 -8
- package/modules/exporting.src.js +270 -135
- package/modules/full-screen.js +8 -7
- package/modules/full-screen.js.map +1 -1
- package/modules/full-screen.src.js +135 -58
- package/modules/funnel.js +12 -12
- package/modules/funnel.js.map +1 -1
- package/modules/funnel.src.js +13 -4
- package/modules/funnel3d.js +21 -21
- package/modules/funnel3d.js.map +1 -1
- package/modules/funnel3d.src.js +11 -2
- package/modules/gantt.js +218 -217
- package/modules/gantt.js.map +1 -1
- package/modules/gantt.src.js +983 -943
- package/modules/grid-axis.js +23 -23
- package/modules/grid-axis.js.map +1 -1
- package/modules/grid-axis.src.js +900 -890
- package/modules/heatmap.js +40 -39
- package/modules/heatmap.js.map +1 -1
- package/modules/heatmap.src.js +160 -113
- package/modules/heikinashi.js +8 -8
- package/modules/heikinashi.js.map +1 -1
- package/modules/heikinashi.src.js +11 -2
- package/modules/histogram-bellcurve.js +13 -13
- package/modules/histogram-bellcurve.js.map +1 -1
- package/modules/histogram-bellcurve.src.js +11 -2
- package/modules/hollowcandlestick.js +9 -9
- package/modules/hollowcandlestick.js.map +1 -1
- package/modules/hollowcandlestick.src.js +19 -10
- package/modules/item-series.js +12 -12
- package/modules/item-series.js.map +1 -1
- package/modules/item-series.src.js +11 -2
- package/modules/lollipop.js +7 -7
- package/modules/lollipop.js.map +1 -1
- package/modules/lollipop.src.js +12 -3
- package/modules/map.d.ts +80 -43
- package/modules/map.js +171 -144
- package/modules/map.js.map +1 -1
- package/modules/map.src.d.ts +80 -43
- package/modules/map.src.js +8292 -6822
- package/modules/marker-clusters.js +36 -36
- package/modules/marker-clusters.js.map +1 -1
- package/modules/marker-clusters.src.js +48 -28
- package/modules/networkgraph.d.ts +1 -12
- package/modules/networkgraph.js +46 -45
- package/modules/networkgraph.js.map +1 -1
- package/modules/networkgraph.src.d.ts +1 -12
- package/modules/networkgraph.src.js +127 -55
- package/modules/no-data-to-display.js +5 -5
- package/modules/no-data-to-display.js.map +1 -1
- package/modules/no-data-to-display.src.js +12 -3
- package/modules/offline-exporting.js +20 -18
- package/modules/offline-exporting.js.map +1 -1
- package/modules/offline-exporting.src.js +129 -28
- package/modules/oldie-polyfills.js +7 -7
- package/modules/oldie-polyfills.js.map +1 -1
- package/modules/oldie-polyfills.src.js +11 -2
- package/modules/oldie.js +30 -30
- package/modules/oldie.js.map +1 -1
- package/modules/oldie.src.js +13 -4
- package/modules/organization.js +16 -14
- package/modules/organization.js.map +1 -1
- package/modules/organization.src.js +168 -34
- package/modules/overlapping-datalabels.js +3 -2
- package/modules/overlapping-datalabels.js.map +1 -1
- package/modules/overlapping-datalabels.src.js +11 -2
- package/modules/parallel-coordinates.js +11 -11
- package/modules/parallel-coordinates.js.map +1 -1
- package/modules/parallel-coordinates.src.js +12 -3
- package/modules/pareto.js +7 -7
- package/modules/pareto.js.map +1 -1
- package/modules/pareto.src.js +11 -2
- package/modules/pathfinder.js +31 -31
- package/modules/pathfinder.js.map +1 -1
- package/modules/pathfinder.src.js +11 -2
- package/modules/pattern-fill.js +15 -14
- package/modules/pattern-fill.js.map +1 -1
- package/modules/pattern-fill.src.js +25 -3
- package/modules/price-indicator.js +5 -5
- package/modules/price-indicator.js.map +1 -1
- package/modules/price-indicator.src.js +11 -2
- package/modules/pyramid3d.js +4 -4
- package/modules/pyramid3d.js.map +1 -1
- package/modules/pyramid3d.src.js +11 -2
- package/modules/sankey.d.ts +1 -12
- package/modules/sankey.js +32 -29
- package/modules/sankey.js.map +1 -1
- package/modules/sankey.src.d.ts +1 -12
- package/modules/sankey.src.js +422 -207
- package/modules/series-label.js +18 -17
- package/modules/series-label.js.map +1 -1
- package/modules/series-label.src.js +482 -386
- package/modules/series-on-point.js +18 -0
- package/modules/series-on-point.js.map +1 -0
- package/modules/series-on-point.src.js +464 -0
- package/modules/solid-gauge.js +10 -10
- package/modules/solid-gauge.js.map +1 -1
- package/modules/solid-gauge.src.js +15 -6
- package/modules/sonification.js +59 -59
- package/modules/sonification.js.map +1 -1
- package/modules/sonification.src.js +13 -8
- package/modules/static-scale.js +5 -4
- package/modules/static-scale.js.map +1 -1
- package/modules/static-scale.src.js +11 -2
- package/modules/stock-tools.js +167 -167
- package/modules/stock-tools.js.map +1 -1
- package/modules/stock-tools.src.js +118 -67
- package/modules/stock.js +205 -204
- package/modules/stock.js.map +1 -1
- package/modules/stock.src.js +141 -76
- package/modules/streamgraph.js +5 -4
- package/modules/streamgraph.js.map +1 -1
- package/modules/streamgraph.src.js +11 -2
- package/modules/sunburst.d.ts +3 -0
- package/modules/sunburst.js +73 -60
- package/modules/sunburst.js.map +1 -1
- package/modules/sunburst.src.d.ts +3 -0
- package/modules/sunburst.src.js +1391 -406
- package/modules/tilemap.js +17 -17
- package/modules/tilemap.js.map +1 -1
- package/modules/tilemap.src.js +11 -2
- package/modules/timeline.js +18 -18
- package/modules/timeline.js.map +1 -1
- package/modules/timeline.src.js +14 -5
- package/modules/treegrid.js +57 -56
- package/modules/treegrid.js.map +1 -1
- package/modules/treegrid.src.js +913 -892
- package/modules/treemap.d.ts +3 -0
- package/modules/treemap.js +54 -41
- package/modules/treemap.js.map +1 -1
- package/modules/treemap.src.d.ts +3 -0
- package/modules/treemap.src.js +1229 -255
- package/modules/variable-pie.js +9 -9
- package/modules/variable-pie.js.map +1 -1
- package/modules/variable-pie.src.js +11 -2
- package/modules/variwide.js +12 -12
- package/modules/variwide.js.map +1 -1
- package/modules/variwide.src.js +11 -2
- package/modules/vector.js +8 -7
- package/modules/vector.js.map +1 -1
- package/modules/vector.src.js +11 -2
- package/modules/venn.js +31 -31
- package/modules/venn.js.map +1 -1
- package/modules/venn.src.js +88 -105
- package/modules/windbarb.js +15 -15
- package/modules/windbarb.js.map +1 -1
- package/modules/windbarb.src.js +11 -2
- package/modules/wordcloud.js +23 -23
- package/modules/wordcloud.js.map +1 -1
- package/modules/wordcloud.src.js +92 -109
- package/modules/xrange.js +16 -16
- package/modules/xrange.js.map +1 -1
- package/modules/xrange.src.js +11 -2
- package/package.json +1 -1
- package/themes/avocado.js +4 -3
- package/themes/avocado.js.map +1 -1
- package/themes/avocado.src.js +11 -2
- package/themes/brand-dark.js +9 -8
- package/themes/brand-dark.js.map +1 -1
- package/themes/brand-dark.src.js +11 -2
- package/themes/brand-light.js +8 -8
- package/themes/brand-light.js.map +1 -1
- package/themes/brand-light.src.js +11 -2
- package/themes/dark-blue.js +9 -8
- package/themes/dark-blue.js.map +1 -1
- package/themes/dark-blue.src.js +11 -2
- package/themes/dark-green.js +9 -8
- package/themes/dark-green.js.map +1 -1
- package/themes/dark-green.src.js +11 -2
- package/themes/dark-unica.js +8 -7
- package/themes/dark-unica.js.map +1 -1
- package/themes/dark-unica.src.js +11 -2
- package/themes/gray.js +9 -8
- package/themes/gray.js.map +1 -1
- package/themes/gray.src.js +11 -2
- package/themes/grid-light.js +5 -4
- package/themes/grid-light.js.map +1 -1
- package/themes/grid-light.src.js +11 -2
- package/themes/grid.js +5 -5
- package/themes/grid.js.map +1 -1
- package/themes/grid.src.js +11 -2
- package/themes/high-contrast-dark.js +7 -7
- package/themes/high-contrast-dark.js.map +1 -1
- package/themes/high-contrast-dark.src.js +21 -12
- package/themes/high-contrast-light.js +3 -3
- package/themes/high-contrast-light.js.map +1 -1
- package/themes/high-contrast-light.src.js +21 -12
- package/themes/sand-signika.js +5 -5
- package/themes/sand-signika.js.map +1 -1
- package/themes/sand-signika.src.js +11 -2
- package/themes/skies.js +5 -5
- package/themes/skies.js.map +1 -1
- package/themes/skies.src.js +11 -2
- package/themes/sunset.js +3 -3
- package/themes/sunset.js.map +1 -1
- package/themes/sunset.src.js +11 -2
- package/es-modules/Extensions/Polar.js +0 -740
- package/es-modules/Maps/ProjectionDefinition.js +0 -9
- package/es-modules/Series/ColorMapMixin.js +0 -84
- package/es-modules/Series/DrawPointComposition.js +0 -111
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Highcharts JS
|
|
2
|
+
* @license Highcharts JS v10.2.0 (2022-07-05)
|
|
3
3
|
*
|
|
4
4
|
* Accessibility module
|
|
5
5
|
*
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
*
|
|
9
9
|
* License: www.highcharts.com/license
|
|
10
10
|
*/
|
|
11
|
-
'use strict';
|
|
12
11
|
(function (factory) {
|
|
13
12
|
if (typeof module === 'object' && module.exports) {
|
|
14
13
|
factory['default'] = factory;
|
|
@@ -23,10 +22,20 @@
|
|
|
23
22
|
factory(typeof Highcharts !== 'undefined' ? Highcharts : undefined);
|
|
24
23
|
}
|
|
25
24
|
}(function (Highcharts) {
|
|
25
|
+
'use strict';
|
|
26
26
|
var _modules = Highcharts ? Highcharts._modules : {};
|
|
27
27
|
function _registerModule(obj, path, args, fn) {
|
|
28
28
|
if (!obj.hasOwnProperty(path)) {
|
|
29
29
|
obj[path] = fn.apply(null, args);
|
|
30
|
+
|
|
31
|
+
if (typeof CustomEvent === 'function') {
|
|
32
|
+
window.dispatchEvent(
|
|
33
|
+
new CustomEvent(
|
|
34
|
+
'HighchartsModuleLoaded',
|
|
35
|
+
{ detail: { path: path, module: obj[path] }
|
|
36
|
+
})
|
|
37
|
+
);
|
|
38
|
+
}
|
|
30
39
|
}
|
|
31
40
|
}
|
|
32
41
|
_registerModule(_modules, 'Accessibility/A11yI18n.js', [_modules['Core/FormatUtilities.js'], _modules['Core/Utilities.js']], function (F, U) {
|
|
@@ -43,7 +52,8 @@
|
|
|
43
52
|
*
|
|
44
53
|
* */
|
|
45
54
|
var format = F.format;
|
|
46
|
-
var
|
|
55
|
+
var getNestedProperty = U.getNestedProperty,
|
|
56
|
+
pick = U.pick;
|
|
47
57
|
/* *
|
|
48
58
|
*
|
|
49
59
|
* Composition
|
|
@@ -102,7 +112,7 @@
|
|
|
102
112
|
var lenArg = Number(eachArguments[1]),
|
|
103
113
|
len = void 0;
|
|
104
114
|
result = '';
|
|
105
|
-
arr =
|
|
115
|
+
arr = getNestedProperty(eachArguments[0], ctx);
|
|
106
116
|
if (arr) {
|
|
107
117
|
lenArg = isNaN(lenArg) ? arr.length : lenArg;
|
|
108
118
|
len = lenArg < 0 ?
|
|
@@ -117,7 +127,7 @@
|
|
|
117
127
|
}
|
|
118
128
|
// Dealing with a plural-function?
|
|
119
129
|
if (pluralStart > -1) {
|
|
120
|
-
var pluralEnd = (statement.slice(pluralStart).indexOf(')') + pluralStart), pluralStatement = statement.substring(pluralStart + 8, pluralEnd), pluralArguments = pluralStatement.split(','), num = Number(
|
|
130
|
+
var pluralEnd = (statement.slice(pluralStart).indexOf(')') + pluralStart), pluralStatement = statement.substring(pluralStart + 8, pluralEnd), pluralArguments = pluralStatement.split(','), num = Number(getNestedProperty(pluralArguments[0], ctx));
|
|
121
131
|
switch (num) {
|
|
122
132
|
case 0:
|
|
123
133
|
result = pick(pluralArguments[4], pluralArguments[1]);
|
|
@@ -140,7 +150,7 @@
|
|
|
140
150
|
ix = Number(statement.substring(indexStart + 1,
|
|
141
151
|
indexEnd));
|
|
142
152
|
var val = void 0;
|
|
143
|
-
arr = ctx
|
|
153
|
+
arr = getNestedProperty(arrayName, ctx);
|
|
144
154
|
if (!isNaN(ix) && arr) {
|
|
145
155
|
if (ix < 0) {
|
|
146
156
|
val = arr[arr.length + ix];
|
|
@@ -675,7 +685,7 @@
|
|
|
675
685
|
function fireEventOnWrappedOrUnwrappedElement(el, eventObject) {
|
|
676
686
|
var type = eventObject.type;
|
|
677
687
|
var hcEvents = el.hcEvents;
|
|
678
|
-
if (doc.createEvent &&
|
|
688
|
+
if ((doc.createEvent) &&
|
|
679
689
|
(el.dispatchEvent || el.fireEvent)) {
|
|
680
690
|
if (el.dispatchEvent) {
|
|
681
691
|
el.dispatchEvent(eventObject);
|
|
@@ -759,9 +769,11 @@
|
|
|
759
769
|
*/
|
|
760
770
|
function getAxisTimeLengthDesc(axis) {
|
|
761
771
|
var chart = axis.chart,
|
|
762
|
-
range = {}
|
|
772
|
+
range = {},
|
|
773
|
+
min = axis.dataMin || axis.min || 0,
|
|
774
|
+
max = axis.dataMax || axis.max || 0;
|
|
763
775
|
var rangeUnit = 'Seconds';
|
|
764
|
-
range.Seconds = (
|
|
776
|
+
range.Seconds = (max - min) / 1000;
|
|
765
777
|
range.Minutes = range.Seconds / 60;
|
|
766
778
|
range.Hours = range.Minutes / 60;
|
|
767
779
|
range.Days = range.Hours / 24;
|
|
@@ -791,9 +803,15 @@
|
|
|
791
803
|
options.accessibility &&
|
|
792
804
|
options.accessibility.screenReaderSection.axisRangeDateFormat ||
|
|
793
805
|
''),
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
806
|
+
extremes = {
|
|
807
|
+
min: axis.dataMin || axis.min || 0,
|
|
808
|
+
max: axis.dataMax || axis.max || 0
|
|
809
|
+
},
|
|
810
|
+
format = function (key) {
|
|
811
|
+
return axis.dateTime ?
|
|
812
|
+
chart.time.dateFormat(dateRangeFormat,
|
|
813
|
+
extremes[key]) :
|
|
814
|
+
extremes[key].toString();
|
|
797
815
|
};
|
|
798
816
|
return chart.langFormat('accessibility.axis.rangeFromTo', {
|
|
799
817
|
chart: chart,
|
|
@@ -1454,20 +1472,19 @@
|
|
|
1454
1472
|
}
|
|
1455
1473
|
};
|
|
1456
1474
|
/**
|
|
1475
|
+
* Set attributes on the chart container element.
|
|
1457
1476
|
* @private
|
|
1458
1477
|
*/
|
|
1459
1478
|
ContainerComponent.prototype.setRenderToAttrs = function () {
|
|
1460
|
-
var chart = this.chart
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1479
|
+
var chart = this.chart, shouldHaveLandmark = chart.options.accessibility
|
|
1480
|
+
.landmarkVerbosity !== 'disabled', containerLabel = chart.langFormat('accessibility.chartContainerLabel', {
|
|
1481
|
+
title: getChartTitle(chart),
|
|
1482
|
+
chart: chart
|
|
1483
|
+
});
|
|
1484
|
+
if (containerLabel) {
|
|
1485
|
+
chart.renderTo.setAttribute('role', shouldHaveLandmark ? 'region' : 'group');
|
|
1486
|
+
chart.renderTo.setAttribute('aria-label', containerLabel);
|
|
1466
1487
|
}
|
|
1467
|
-
chart.renderTo.setAttribute('aria-label', chart.langFormat('accessibility.chartContainerLabel', {
|
|
1468
|
-
title: getChartTitle(chart),
|
|
1469
|
-
chart: chart
|
|
1470
|
-
}));
|
|
1471
1488
|
};
|
|
1472
1489
|
/**
|
|
1473
1490
|
* @private
|
|
@@ -1672,15 +1689,21 @@
|
|
|
1672
1689
|
}
|
|
1673
1690
|
// Add the border rect
|
|
1674
1691
|
var bb = this.getBBox(),
|
|
1675
|
-
pad = pick(margin, 3)
|
|
1692
|
+
pad = pick(margin, 3),
|
|
1693
|
+
parent = this.parentGroup,
|
|
1694
|
+
scaleX = this.scaleX || parent && parent.scaleX,
|
|
1695
|
+
scaleY = this.scaleY || parent && parent.scaleY,
|
|
1696
|
+
oneDefined = scaleX ? !scaleY : scaleY,
|
|
1697
|
+
scaleBoth = oneDefined ? Math.abs(scaleX || scaleY || 1) :
|
|
1698
|
+
(Math.abs(scaleX || 1) + Math.abs(scaleY || 1)) / 2;
|
|
1676
1699
|
bb.x += this.translateX ? this.translateX : 0;
|
|
1677
1700
|
bb.y += this.translateY ? this.translateY : 0;
|
|
1678
1701
|
var borderPosX = bb.x - pad,
|
|
1679
1702
|
borderPosY = bb.y - pad,
|
|
1680
1703
|
borderWidth = bb.width + 2 * pad,
|
|
1681
1704
|
borderHeight = bb.height + 2 * pad;
|
|
1682
|
-
// For text elements, apply x and y offset, #11397.
|
|
1683
1705
|
/**
|
|
1706
|
+
* For text elements, apply x and y offset, #11397.
|
|
1684
1707
|
* @private
|
|
1685
1708
|
*/
|
|
1686
1709
|
function getTextAnchorCorrection(text) {
|
|
@@ -1728,16 +1751,16 @@
|
|
|
1728
1751
|
}
|
|
1729
1752
|
}
|
|
1730
1753
|
}
|
|
1731
|
-
this.focusBorder = this.renderer.rect(borderPosX, borderPosY, borderWidth, borderHeight, parseInt((attribs && attribs.r || 0).toString(), 10))
|
|
1754
|
+
this.focusBorder = this.renderer.rect(borderPosX, borderPosY, borderWidth, borderHeight, parseInt((attribs && attribs.r || 0).toString(), 10) / scaleBoth)
|
|
1732
1755
|
.addClass('highcharts-focus-border')
|
|
1733
1756
|
.attr({
|
|
1734
1757
|
zIndex: 99
|
|
1735
1758
|
})
|
|
1736
|
-
.add(
|
|
1759
|
+
.add(parent);
|
|
1737
1760
|
if (!this.renderer.styledMode) {
|
|
1738
1761
|
this.focusBorder.attr({
|
|
1739
1762
|
stroke: attribs && attribs.stroke,
|
|
1740
|
-
'stroke-width': attribs && attribs.strokeWidth
|
|
1763
|
+
'stroke-width': (attribs && attribs.strokeWidth || 0) / scaleBoth
|
|
1741
1764
|
});
|
|
1742
1765
|
}
|
|
1743
1766
|
avgElementAddUpdateFocusBorderHooks(this, margin, attribs);
|
|
@@ -2032,7 +2055,7 @@
|
|
|
2032
2055
|
var labels = getChartAnnotationLabels(chart);
|
|
2033
2056
|
return labels.map(function (label) {
|
|
2034
2057
|
var desc = escapeStringForHTML(stripHTMLTagsFromString(getAnnotationLabelDescription(label)));
|
|
2035
|
-
return desc ? "<li>"
|
|
2058
|
+
return desc ? "<li>".concat(desc, "</li>") : '';
|
|
2036
2059
|
});
|
|
2037
2060
|
}
|
|
2038
2061
|
/**
|
|
@@ -2048,7 +2071,7 @@
|
|
|
2048
2071
|
return '';
|
|
2049
2072
|
}
|
|
2050
2073
|
var annotationItems = getAnnotationListItems(chart);
|
|
2051
|
-
return "<ul style=\"list-style-type: none\">"
|
|
2074
|
+
return "<ul style=\"list-style-type: none\">".concat(annotationItems.join(' '), "</ul>");
|
|
2052
2075
|
}
|
|
2053
2076
|
/**
|
|
2054
2077
|
* Return the texts for the annotation(s) connected to a point, or empty array
|
|
@@ -2065,7 +2088,7 @@
|
|
|
2065
2088
|
if (!pointLabels.length) {
|
|
2066
2089
|
return [];
|
|
2067
2090
|
}
|
|
2068
|
-
return pointLabels.map(function (label) { return ""
|
|
2091
|
+
return pointLabels.map(function (label) { return "".concat(getLabelText(label)); });
|
|
2069
2092
|
}
|
|
2070
2093
|
/* *
|
|
2071
2094
|
*
|
|
@@ -2176,11 +2199,13 @@
|
|
|
2176
2199
|
function getTypeDescription(chart, types) {
|
|
2177
2200
|
var firstType = types[0],
|
|
2178
2201
|
firstSeries = chart.series && chart.series[0] || {},
|
|
2202
|
+
mapTitle = chart.mapView && chart.mapView.geoMap &&
|
|
2203
|
+
chart.mapView.geoMap.title,
|
|
2179
2204
|
formatContext = {
|
|
2180
2205
|
numSeries: chart.series.length,
|
|
2181
2206
|
numPoints: firstSeries.points && firstSeries.points.length,
|
|
2182
2207
|
chart: chart,
|
|
2183
|
-
mapTitle:
|
|
2208
|
+
mapTitle: mapTitle
|
|
2184
2209
|
};
|
|
2185
2210
|
if (!firstType) {
|
|
2186
2211
|
return getTypeDescForEmptyChart(chart, formatContext);
|
|
@@ -2370,27 +2395,28 @@
|
|
|
2370
2395
|
if (sectionDiv.parentNode) {
|
|
2371
2396
|
sectionDiv.parentNode.removeChild(sectionDiv);
|
|
2372
2397
|
}
|
|
2373
|
-
|
|
2398
|
+
region.element = null;
|
|
2374
2399
|
}
|
|
2375
2400
|
};
|
|
2376
2401
|
/**
|
|
2402
|
+
* Apply a11y attributes to a screen reader info section
|
|
2377
2403
|
* @private
|
|
2378
2404
|
* @param {Highcharts.HTMLDOMElement} sectionDiv The section element
|
|
2379
2405
|
* @param {string} regionKey Name/key of the region we are setting attrs for
|
|
2380
2406
|
*/
|
|
2381
2407
|
InfoRegionsComponent.prototype.setScreenReaderSectionAttribs = function (sectionDiv, regionKey) {
|
|
2382
|
-
var
|
|
2383
|
-
chart.index;
|
|
2408
|
+
var chart = this.chart, labelText = chart.langFormat('accessibility.screenReaderSection.' + regionKey +
|
|
2409
|
+
'RegionLabel', { chart: chart, chartTitle: getChartTitle(chart) }), sectionId = "highcharts-screen-reader-region-".concat(regionKey, "-").concat(chart.index);
|
|
2384
2410
|
attr(sectionDiv, {
|
|
2385
2411
|
id: sectionId,
|
|
2386
|
-
'aria-label': labelText
|
|
2412
|
+
'aria-label': labelText || void 0
|
|
2387
2413
|
});
|
|
2388
2414
|
// Sections are wrapped to be positioned relatively to chart in case
|
|
2389
2415
|
// elements inside are tabbed to.
|
|
2390
2416
|
sectionDiv.style.position = 'relative';
|
|
2391
|
-
if (
|
|
2392
|
-
|
|
2393
|
-
|
|
2417
|
+
if (labelText) {
|
|
2418
|
+
sectionDiv.setAttribute('role', chart.options.accessibility.landmarkVerbosity === 'all' ?
|
|
2419
|
+
'region' : 'group');
|
|
2394
2420
|
}
|
|
2395
2421
|
};
|
|
2396
2422
|
/**
|
|
@@ -2611,7 +2637,10 @@
|
|
|
2611
2637
|
return axes.length > 1 || axes[0] &&
|
|
2612
2638
|
pick(axes[0].options.accessibility &&
|
|
2613
2639
|
axes[0].options.accessibility.enabled, defaultCondition);
|
|
2614
|
-
}, hasNoMap = !!chart.types &&
|
|
2640
|
+
}, hasNoMap = !!chart.types &&
|
|
2641
|
+
chart.types.indexOf('map') < 0 &&
|
|
2642
|
+
chart.types.indexOf('treemap') < 0 &&
|
|
2643
|
+
chart.types.indexOf('tilemap') < 0, hasCartesian = !!chart.hasCartesianSeries, showXAxes = shouldDescribeColl('xAxis', !chart.angular && hasCartesian && hasNoMap), showYAxes = shouldDescribeColl('yAxis', hasCartesian && hasNoMap), desc = {};
|
|
2615
2644
|
if (showXAxes) {
|
|
2616
2645
|
desc.xAxis = this.getAxisDescriptionText('xAxis');
|
|
2617
2646
|
}
|
|
@@ -2758,7 +2787,6 @@
|
|
|
2758
2787
|
if (menu) {
|
|
2759
2788
|
menu.setAttribute('aria-hidden', 'true');
|
|
2760
2789
|
}
|
|
2761
|
-
this.isExportMenuShown = false;
|
|
2762
2790
|
this.setExportButtonExpandedState('false');
|
|
2763
2791
|
};
|
|
2764
2792
|
/**
|
|
@@ -2771,7 +2799,6 @@
|
|
|
2771
2799
|
this.addAccessibleContextMenuAttribs();
|
|
2772
2800
|
unhideChartElementFromAT(chart, menu);
|
|
2773
2801
|
}
|
|
2774
|
-
this.isExportMenuShown = true;
|
|
2775
2802
|
this.setExportButtonExpandedState('true');
|
|
2776
2803
|
};
|
|
2777
2804
|
/**
|
|
@@ -2817,7 +2844,8 @@
|
|
|
2817
2844
|
chart: chart,
|
|
2818
2845
|
chartTitle: getChartTitle(chart)
|
|
2819
2846
|
}),
|
|
2820
|
-
'aria-expanded': false
|
|
2847
|
+
'aria-expanded': false,
|
|
2848
|
+
title: chart.options.lang.contextButtonTitle || null
|
|
2821
2849
|
});
|
|
2822
2850
|
}
|
|
2823
2851
|
};
|
|
@@ -2971,7 +2999,7 @@
|
|
|
2971
2999
|
var chart = this.chart;
|
|
2972
3000
|
var curHighlightedItem = chart.exportDivElements[chart.highlightedExportItemIx];
|
|
2973
3001
|
var exportButtonElement = getExportMenuButtonElement(chart).element;
|
|
2974
|
-
if (
|
|
3002
|
+
if (chart.openMenu) {
|
|
2975
3003
|
this.fakeClickEvent(curHighlightedItem);
|
|
2976
3004
|
}
|
|
2977
3005
|
else {
|
|
@@ -3041,7 +3069,7 @@
|
|
|
3041
3069
|
function chartHideExportMenu() {
|
|
3042
3070
|
var chart = this,
|
|
3043
3071
|
exportList = chart.exportDivElements;
|
|
3044
|
-
if (exportList && chart.exportContextMenu) {
|
|
3072
|
+
if (exportList && chart.exportContextMenu && chart.openMenu) {
|
|
3045
3073
|
// Reset hover states etc.
|
|
3046
3074
|
exportList.forEach(function (el) {
|
|
3047
3075
|
if (el &&
|
|
@@ -3239,6 +3267,65 @@
|
|
|
3239
3267
|
this.removeExitAnchor();
|
|
3240
3268
|
}
|
|
3241
3269
|
};
|
|
3270
|
+
/**
|
|
3271
|
+
* We use an exit anchor to move focus out of chart whenever we want, by
|
|
3272
|
+
* setting focus to this div and not preventing the default tab action. We
|
|
3273
|
+
* also use this when users come back into the chart by tabbing back, in
|
|
3274
|
+
* order to navigate from the end of the chart.
|
|
3275
|
+
* @private
|
|
3276
|
+
*/
|
|
3277
|
+
KeyboardNavigation.prototype.updateExitAnchor = function () {
|
|
3278
|
+
var endMarkerId = "highcharts-end-of-chart-marker-".concat(this.chart.index),
|
|
3279
|
+
endMarker = getElement(endMarkerId);
|
|
3280
|
+
this.removeExitAnchor();
|
|
3281
|
+
if (endMarker) {
|
|
3282
|
+
this.makeElementAnExitAnchor(endMarker);
|
|
3283
|
+
this.exitAnchor = endMarker;
|
|
3284
|
+
}
|
|
3285
|
+
else {
|
|
3286
|
+
this.createExitAnchor();
|
|
3287
|
+
}
|
|
3288
|
+
};
|
|
3289
|
+
/**
|
|
3290
|
+
* Move to prev/next module.
|
|
3291
|
+
* @private
|
|
3292
|
+
* @param {number} direction
|
|
3293
|
+
* Direction to move. +1 for next, -1 for prev.
|
|
3294
|
+
* @return {boolean}
|
|
3295
|
+
* True if there was a valid module in direction.
|
|
3296
|
+
*/
|
|
3297
|
+
KeyboardNavigation.prototype.move = function (direction) {
|
|
3298
|
+
var curModule = this.modules && this.modules[this.currentModuleIx];
|
|
3299
|
+
if (curModule && curModule.terminate) {
|
|
3300
|
+
curModule.terminate(direction);
|
|
3301
|
+
}
|
|
3302
|
+
// Remove existing focus border if any
|
|
3303
|
+
if (this.chart.focusElement) {
|
|
3304
|
+
this.chart.focusElement.removeFocusBorder();
|
|
3305
|
+
}
|
|
3306
|
+
this.currentModuleIx += direction;
|
|
3307
|
+
var newModule = this.modules && this.modules[this.currentModuleIx];
|
|
3308
|
+
if (newModule) {
|
|
3309
|
+
if (newModule.validate && !newModule.validate()) {
|
|
3310
|
+
return this.move(direction); // Invalid module, recurse
|
|
3311
|
+
}
|
|
3312
|
+
if (newModule.init) {
|
|
3313
|
+
newModule.init(direction); // Valid module, init it
|
|
3314
|
+
return true;
|
|
3315
|
+
}
|
|
3316
|
+
}
|
|
3317
|
+
// No module
|
|
3318
|
+
this.currentModuleIx = 0; // Reset counter
|
|
3319
|
+
// Set focus to chart or exit anchor depending on direction
|
|
3320
|
+
this.exiting = true;
|
|
3321
|
+
if (direction > 0) {
|
|
3322
|
+
this.exitAnchor && this.exitAnchor.focus();
|
|
3323
|
+
}
|
|
3324
|
+
else {
|
|
3325
|
+
this.tabindexContainer.focus();
|
|
3326
|
+
}
|
|
3327
|
+
return false;
|
|
3328
|
+
};
|
|
3242
3329
|
/**
|
|
3243
3330
|
* Function to run on container focus
|
|
3244
3331
|
* @private
|
|
@@ -3252,30 +3339,37 @@
|
|
|
3252
3339
|
if (!this.exiting &&
|
|
3253
3340
|
!this.tabbingInBackwards &&
|
|
3254
3341
|
!this.isClickingChart &&
|
|
3255
|
-
!focusComesFromChart
|
|
3256
|
-
this.
|
|
3257
|
-
|
|
3342
|
+
!focusComesFromChart) {
|
|
3343
|
+
var ix = this.getFirstValidModuleIx();
|
|
3344
|
+
if (ix !== null) {
|
|
3345
|
+
this.currentModuleIx = ix;
|
|
3346
|
+
this.modules[ix].init(1);
|
|
3347
|
+
}
|
|
3258
3348
|
}
|
|
3259
3349
|
this.exiting = false;
|
|
3260
3350
|
};
|
|
3261
3351
|
/**
|
|
3262
|
-
* Reset chart navigation state if we click
|
|
3263
|
-
*
|
|
3352
|
+
* Reset chart navigation state if we mouse click and it's not already
|
|
3353
|
+
* reset. Reset fully if outside the chart, otherwise just hide focus
|
|
3354
|
+
* indicator.
|
|
3264
3355
|
* @private
|
|
3265
3356
|
*/
|
|
3266
3357
|
KeyboardNavigation.prototype.onMouseUp = function () {
|
|
3267
3358
|
delete this.isClickingChart;
|
|
3268
|
-
if (!this.keyboardReset
|
|
3269
|
-
var chart = this.chart
|
|
3270
|
-
|
|
3271
|
-
|
|
3272
|
-
|
|
3273
|
-
curMod.terminate
|
|
3359
|
+
if (!this.keyboardReset) {
|
|
3360
|
+
var chart = this.chart;
|
|
3361
|
+
if (!this.pointerIsOverChart) {
|
|
3362
|
+
var curMod = this.modules &&
|
|
3363
|
+
this.modules[this.currentModuleIx || 0];
|
|
3364
|
+
if (curMod && curMod.terminate) {
|
|
3365
|
+
curMod.terminate();
|
|
3366
|
+
}
|
|
3367
|
+
this.currentModuleIx = 0;
|
|
3274
3368
|
}
|
|
3275
3369
|
if (chart.focusElement) {
|
|
3276
3370
|
chart.focusElement.removeFocusBorder();
|
|
3371
|
+
delete chart.focusElement;
|
|
3277
3372
|
}
|
|
3278
|
-
this.currentModuleIx = 0;
|
|
3279
3373
|
this.keyboardReset = true;
|
|
3280
3374
|
}
|
|
3281
3375
|
};
|
|
@@ -3302,10 +3396,10 @@
|
|
|
3302
3396
|
preventDefault = true;
|
|
3303
3397
|
}
|
|
3304
3398
|
else if (response === curNavModule.response.prev) {
|
|
3305
|
-
preventDefault = this.
|
|
3399
|
+
preventDefault = this.move(-1);
|
|
3306
3400
|
}
|
|
3307
3401
|
else if (response === curNavModule.response.next) {
|
|
3308
|
-
preventDefault = this.
|
|
3402
|
+
preventDefault = this.move(1);
|
|
3309
3403
|
}
|
|
3310
3404
|
if (preventDefault) {
|
|
3311
3405
|
e.preventDefault();
|
|
@@ -3313,79 +3407,6 @@
|
|
|
3313
3407
|
}
|
|
3314
3408
|
}
|
|
3315
3409
|
};
|
|
3316
|
-
/**
|
|
3317
|
-
* Go to previous module.
|
|
3318
|
-
* @private
|
|
3319
|
-
*/
|
|
3320
|
-
KeyboardNavigation.prototype.prev = function () {
|
|
3321
|
-
return this.move(-1);
|
|
3322
|
-
};
|
|
3323
|
-
/**
|
|
3324
|
-
* Go to next module.
|
|
3325
|
-
* @private
|
|
3326
|
-
*/
|
|
3327
|
-
KeyboardNavigation.prototype.next = function () {
|
|
3328
|
-
return this.move(1);
|
|
3329
|
-
};
|
|
3330
|
-
/**
|
|
3331
|
-
* Move to prev/next module.
|
|
3332
|
-
* @private
|
|
3333
|
-
* @param {number} direction
|
|
3334
|
-
* Direction to move. +1 for next, -1 for prev.
|
|
3335
|
-
* @return {boolean}
|
|
3336
|
-
* True if there was a valid module in direction.
|
|
3337
|
-
*/
|
|
3338
|
-
KeyboardNavigation.prototype.move = function (direction) {
|
|
3339
|
-
var curModule = this.modules && this.modules[this.currentModuleIx];
|
|
3340
|
-
if (curModule && curModule.terminate) {
|
|
3341
|
-
curModule.terminate(direction);
|
|
3342
|
-
}
|
|
3343
|
-
// Remove existing focus border if any
|
|
3344
|
-
if (this.chart.focusElement) {
|
|
3345
|
-
this.chart.focusElement.removeFocusBorder();
|
|
3346
|
-
}
|
|
3347
|
-
this.currentModuleIx += direction;
|
|
3348
|
-
var newModule = this.modules && this.modules[this.currentModuleIx];
|
|
3349
|
-
if (newModule) {
|
|
3350
|
-
if (newModule.validate && !newModule.validate()) {
|
|
3351
|
-
return this.move(direction); // Invalid module, recurse
|
|
3352
|
-
}
|
|
3353
|
-
if (newModule.init) {
|
|
3354
|
-
newModule.init(direction); // Valid module, init it
|
|
3355
|
-
return true;
|
|
3356
|
-
}
|
|
3357
|
-
}
|
|
3358
|
-
// No module
|
|
3359
|
-
this.currentModuleIx = 0; // Reset counter
|
|
3360
|
-
// Set focus to chart or exit anchor depending on direction
|
|
3361
|
-
this.exiting = true;
|
|
3362
|
-
if (direction > 0) {
|
|
3363
|
-
this.exitAnchor.focus();
|
|
3364
|
-
}
|
|
3365
|
-
else {
|
|
3366
|
-
this.tabindexContainer.focus();
|
|
3367
|
-
}
|
|
3368
|
-
return false;
|
|
3369
|
-
};
|
|
3370
|
-
/**
|
|
3371
|
-
* We use an exit anchor to move focus out of chart whenever we want, by
|
|
3372
|
-
* setting focus to this div and not preventing the default tab action. We
|
|
3373
|
-
* also use this when users come back into the chart by tabbing back, in
|
|
3374
|
-
* order to navigate from the end of the chart.
|
|
3375
|
-
* @private
|
|
3376
|
-
*/
|
|
3377
|
-
KeyboardNavigation.prototype.updateExitAnchor = function () {
|
|
3378
|
-
var endMarkerId = ('highcharts-end-of-chart-marker-' + this.chart.index),
|
|
3379
|
-
endMarker = getElement(endMarkerId);
|
|
3380
|
-
this.removeExitAnchor();
|
|
3381
|
-
if (endMarker) {
|
|
3382
|
-
this.makeElementAnExitAnchor(endMarker);
|
|
3383
|
-
this.exitAnchor = endMarker;
|
|
3384
|
-
}
|
|
3385
|
-
else {
|
|
3386
|
-
this.createExitAnchor();
|
|
3387
|
-
}
|
|
3388
|
-
};
|
|
3389
3410
|
/**
|
|
3390
3411
|
* Chart container should have tabindex if navigation is enabled.
|
|
3391
3412
|
* @private
|
|
@@ -3414,6 +3435,18 @@
|
|
|
3414
3435
|
}
|
|
3415
3436
|
};
|
|
3416
3437
|
/**
|
|
3438
|
+
* Add new exit anchor to the chart.
|
|
3439
|
+
* @private
|
|
3440
|
+
*/
|
|
3441
|
+
KeyboardNavigation.prototype.createExitAnchor = function () {
|
|
3442
|
+
var chart = this.chart,
|
|
3443
|
+
exitAnchor = this.exitAnchor = doc.createElement('div');
|
|
3444
|
+
chart.renderTo.appendChild(exitAnchor);
|
|
3445
|
+
this.makeElementAnExitAnchor(exitAnchor);
|
|
3446
|
+
};
|
|
3447
|
+
/**
|
|
3448
|
+
* Add attributes and events to an element to make it function as an
|
|
3449
|
+
* exit anchor.
|
|
3417
3450
|
* @private
|
|
3418
3451
|
*/
|
|
3419
3452
|
KeyboardNavigation.prototype.makeElementAnExitAnchor = function (el) {
|
|
@@ -3425,27 +3458,17 @@
|
|
|
3425
3458
|
this.addExitAnchorEventsToEl(el);
|
|
3426
3459
|
};
|
|
3427
3460
|
/**
|
|
3428
|
-
*
|
|
3429
|
-
*
|
|
3430
|
-
* @private
|
|
3431
|
-
*/
|
|
3432
|
-
KeyboardNavigation.prototype.createExitAnchor = function () {
|
|
3433
|
-
var chart = this.chart,
|
|
3434
|
-
exitAnchor = this.exitAnchor = doc.createElement('div');
|
|
3435
|
-
chart.renderTo.appendChild(exitAnchor);
|
|
3436
|
-
this.makeElementAnExitAnchor(exitAnchor);
|
|
3437
|
-
};
|
|
3438
|
-
/**
|
|
3461
|
+
* Destroy the exit anchor and remove from DOM.
|
|
3439
3462
|
* @private
|
|
3440
3463
|
*/
|
|
3441
3464
|
KeyboardNavigation.prototype.removeExitAnchor = function () {
|
|
3442
3465
|
if (this.exitAnchor && this.exitAnchor.parentNode) {
|
|
3443
|
-
this.exitAnchor.parentNode
|
|
3444
|
-
.removeChild(this.exitAnchor);
|
|
3466
|
+
this.exitAnchor.parentNode.removeChild(this.exitAnchor);
|
|
3445
3467
|
delete this.exitAnchor;
|
|
3446
3468
|
}
|
|
3447
3469
|
};
|
|
3448
3470
|
/**
|
|
3471
|
+
* Add focus handler to exit anchor element.
|
|
3449
3472
|
* @private
|
|
3450
3473
|
*/
|
|
3451
3474
|
KeyboardNavigation.prototype.addExitAnchorEventsToEl = function (element) {
|
|
@@ -3456,6 +3479,9 @@
|
|
|
3456
3479
|
focusComesFromChart = (e.relatedTarget &&
|
|
3457
3480
|
chart.container.contains(e.relatedTarget)),
|
|
3458
3481
|
comingInBackwards = !(focusComesFromChart || keyboardNavigation.exiting);
|
|
3482
|
+
if (chart.focusElement) {
|
|
3483
|
+
delete chart.focusElement;
|
|
3484
|
+
}
|
|
3459
3485
|
if (comingInBackwards) {
|
|
3460
3486
|
// Focus the container instead
|
|
3461
3487
|
keyboardNavigation.tabbingInBackwards = true;
|
|
@@ -3473,7 +3499,7 @@
|
|
|
3473
3499
|
if (curModule &&
|
|
3474
3500
|
curModule.validate && !curModule.validate()) {
|
|
3475
3501
|
// Invalid. Try moving backwards to find next valid.
|
|
3476
|
-
keyboardNavigation.
|
|
3502
|
+
keyboardNavigation.move(-1);
|
|
3477
3503
|
}
|
|
3478
3504
|
else if (curModule) {
|
|
3479
3505
|
// We have a valid module, init it
|
|
@@ -3487,6 +3513,21 @@
|
|
|
3487
3513
|
}
|
|
3488
3514
|
});
|
|
3489
3515
|
};
|
|
3516
|
+
/**
|
|
3517
|
+
* Get the ix of the first module that either does not require validation or
|
|
3518
|
+
* validates positively.
|
|
3519
|
+
* @private
|
|
3520
|
+
*/
|
|
3521
|
+
KeyboardNavigation.prototype.getFirstValidModuleIx = function () {
|
|
3522
|
+
var len = this.modules.length;
|
|
3523
|
+
for (var i = 0; i < len; ++i) {
|
|
3524
|
+
var mod = this.modules[i];
|
|
3525
|
+
if (!mod.validate || mod.validate()) {
|
|
3526
|
+
return i;
|
|
3527
|
+
}
|
|
3528
|
+
}
|
|
3529
|
+
return null;
|
|
3530
|
+
};
|
|
3490
3531
|
/**
|
|
3491
3532
|
* Remove all traces of keyboard navigation.
|
|
3492
3533
|
* @private
|
|
@@ -3522,6 +3563,7 @@
|
|
|
3522
3563
|
* */
|
|
3523
3564
|
/* eslint-disable valid-jsdoc */
|
|
3524
3565
|
/**
|
|
3566
|
+
* Composition function.
|
|
3525
3567
|
* @private
|
|
3526
3568
|
*/
|
|
3527
3569
|
function compose(ChartClass) {
|
|
@@ -3605,6 +3647,7 @@
|
|
|
3605
3647
|
};
|
|
3606
3648
|
})();
|
|
3607
3649
|
var animObject = A.animObject;
|
|
3650
|
+
var doc = H.doc;
|
|
3608
3651
|
var addEvent = U.addEvent,
|
|
3609
3652
|
fireEvent = U.fireEvent,
|
|
3610
3653
|
isNumber = U.isNumber,
|
|
@@ -3619,7 +3662,6 @@
|
|
|
3619
3662
|
* Functions
|
|
3620
3663
|
*
|
|
3621
3664
|
* */
|
|
3622
|
-
/* eslint-disable valid-jsdoc */
|
|
3623
3665
|
/**
|
|
3624
3666
|
* @private
|
|
3625
3667
|
*/
|
|
@@ -3640,6 +3682,19 @@
|
|
|
3640
3682
|
!(chart.colorAxis && chart.colorAxis.length) &&
|
|
3641
3683
|
legendA11yOptions.enabled !== false);
|
|
3642
3684
|
}
|
|
3685
|
+
/**
|
|
3686
|
+
* @private
|
|
3687
|
+
*/
|
|
3688
|
+
function setLegendItemHoverState(hoverActive, legendItem) {
|
|
3689
|
+
legendItem.setState(hoverActive ? 'hover' : '', true);
|
|
3690
|
+
['legendGroup', 'legendItem', 'legendSymbol'].forEach(function (i) {
|
|
3691
|
+
var obj = legendItem[i];
|
|
3692
|
+
var el = obj && obj.element || obj;
|
|
3693
|
+
if (el) {
|
|
3694
|
+
fireEvent(el, hoverActive ? 'mouseover' : 'mouseout');
|
|
3695
|
+
}
|
|
3696
|
+
});
|
|
3697
|
+
}
|
|
3643
3698
|
/* *
|
|
3644
3699
|
*
|
|
3645
3700
|
* Class
|
|
@@ -3663,6 +3718,7 @@
|
|
|
3663
3718
|
var _this = _super !== null && _super.apply(this,
|
|
3664
3719
|
arguments) || this;
|
|
3665
3720
|
_this.highlightedLegendItemIx = NaN;
|
|
3721
|
+
_this.proxyGroup = null;
|
|
3666
3722
|
return _this;
|
|
3667
3723
|
}
|
|
3668
3724
|
/* *
|
|
@@ -3670,7 +3726,6 @@
|
|
|
3670
3726
|
* Functions
|
|
3671
3727
|
*
|
|
3672
3728
|
* */
|
|
3673
|
-
/* eslint-disable valid-jsdoc */
|
|
3674
3729
|
/**
|
|
3675
3730
|
* Init the component
|
|
3676
3731
|
* @private
|
|
@@ -3788,12 +3843,19 @@
|
|
|
3788
3843
|
* @private
|
|
3789
3844
|
*/
|
|
3790
3845
|
LegendComponent.prototype.recreateProxies = function () {
|
|
3846
|
+
var focusedElement = doc.activeElement;
|
|
3847
|
+
var proxyGroup = this.proxyGroup;
|
|
3848
|
+
var shouldRestoreFocus = focusedElement && proxyGroup &&
|
|
3849
|
+
proxyGroup.contains(focusedElement);
|
|
3791
3850
|
this.removeProxies();
|
|
3792
3851
|
if (shouldDoLegendA11y(this.chart)) {
|
|
3793
3852
|
this.addLegendProxyGroup();
|
|
3794
3853
|
this.proxyLegendItems();
|
|
3795
3854
|
this.updateLegendItemProxyVisibility();
|
|
3796
3855
|
this.updateLegendTitle();
|
|
3856
|
+
if (shouldRestoreFocus) {
|
|
3857
|
+
this.chart.highlightLegendItem(this.highlightedLegendItemIx);
|
|
3858
|
+
}
|
|
3797
3859
|
return true;
|
|
3798
3860
|
}
|
|
3799
3861
|
return false;
|
|
@@ -3829,7 +3891,7 @@
|
|
|
3829
3891
|
var a11yOptions = this.chart.options.accessibility;
|
|
3830
3892
|
var groupRole = a11yOptions.landmarkVerbosity === 'all' ?
|
|
3831
3893
|
'region' : null;
|
|
3832
|
-
this.proxyProvider.addGroup('legend', 'ul', {
|
|
3894
|
+
this.proxyGroup = this.proxyProvider.addGroup('legend', 'ul', {
|
|
3833
3895
|
// Filled by updateLegendTitle, to keep up to date without
|
|
3834
3896
|
// recreating group
|
|
3835
3897
|
'aria-label': '_placeholder_',
|
|
@@ -3913,21 +3975,19 @@
|
|
|
3913
3975
|
validate: function () {
|
|
3914
3976
|
return component.shouldHaveLegendNavigation();
|
|
3915
3977
|
},
|
|
3916
|
-
init: function (
|
|
3917
|
-
|
|
3978
|
+
init: function () {
|
|
3979
|
+
chart.highlightLegendItem(0);
|
|
3980
|
+
component.highlightedLegendItemIx = 0;
|
|
3918
3981
|
},
|
|
3919
3982
|
terminate: function () {
|
|
3920
3983
|
component.highlightedLegendItemIx = -1;
|
|
3921
|
-
chart.legend.allItems.forEach(function (item) { return
|
|
3984
|
+
chart.legend.allItems.forEach(function (item) { return setLegendItemHoverState(false, item); });
|
|
3922
3985
|
}
|
|
3923
3986
|
});
|
|
3924
3987
|
};
|
|
3925
3988
|
/**
|
|
3989
|
+
* Arrow key navigation
|
|
3926
3990
|
* @private
|
|
3927
|
-
* @param {Highcharts.KeyboardNavigationHandler} keyboardNavigationHandler
|
|
3928
|
-
* @param {number} keyCode
|
|
3929
|
-
* @return {number}
|
|
3930
|
-
* Response code
|
|
3931
3991
|
*/
|
|
3932
3992
|
LegendComponent.prototype.onKbdArrowKey = function (keyboardNavigationHandler, keyCode) {
|
|
3933
3993
|
var keys = this.keyCodes,
|
|
@@ -3946,8 +4006,7 @@
|
|
|
3946
4006
|
keyboardNavigationHandler.init(direction);
|
|
3947
4007
|
return response.success;
|
|
3948
4008
|
}
|
|
3949
|
-
|
|
3950
|
-
return response[direction > 0 ? 'next' : 'prev'];
|
|
4009
|
+
return response.success;
|
|
3951
4010
|
};
|
|
3952
4011
|
/**
|
|
3953
4012
|
* @private
|
|
@@ -3977,17 +4036,6 @@
|
|
|
3977
4036
|
legendA11yOptions.keyboardNavigation &&
|
|
3978
4037
|
legendA11yOptions.keyboardNavigation.enabled);
|
|
3979
4038
|
};
|
|
3980
|
-
/**
|
|
3981
|
-
* @private
|
|
3982
|
-
* @param {number} direction
|
|
3983
|
-
*/
|
|
3984
|
-
LegendComponent.prototype.onKbdNavigationInit = function (direction) {
|
|
3985
|
-
var chart = this.chart,
|
|
3986
|
-
lastIx = chart.legend.allItems.length - 1,
|
|
3987
|
-
ixToHighlight = direction > 0 ? 0 : lastIx;
|
|
3988
|
-
chart.highlightLegendItem(ixToHighlight);
|
|
3989
|
-
this.highlightedLegendItemIx = ixToHighlight;
|
|
3990
|
-
};
|
|
3991
4039
|
return LegendComponent;
|
|
3992
4040
|
}(AccessibilityComponent));
|
|
3993
4041
|
/* *
|
|
@@ -4024,7 +4072,7 @@
|
|
|
4024
4072
|
var itemToHighlight = items[ix];
|
|
4025
4073
|
if (itemToHighlight) {
|
|
4026
4074
|
if (isNumber(oldIx) && items[oldIx]) {
|
|
4027
|
-
|
|
4075
|
+
setLegendItemHoverState(false, items[oldIx]);
|
|
4028
4076
|
}
|
|
4029
4077
|
scrollLegendToItem(this.legend, ix);
|
|
4030
4078
|
var legendItemProp = itemToHighlight.legendItem;
|
|
@@ -4033,9 +4081,7 @@
|
|
|
4033
4081
|
if (legendItemProp && legendItemProp.element && proxyBtn) {
|
|
4034
4082
|
this.setFocusToElement(legendItemProp, proxyBtn);
|
|
4035
4083
|
}
|
|
4036
|
-
|
|
4037
|
-
fireEvent(itemToHighlight.legendGroup.element, 'mouseover');
|
|
4038
|
-
}
|
|
4084
|
+
setLegendItemHoverState(true, itemToHighlight);
|
|
4039
4085
|
return true;
|
|
4040
4086
|
}
|
|
4041
4087
|
return false;
|
|
@@ -4124,14 +4170,21 @@
|
|
|
4124
4170
|
}) || null;
|
|
4125
4171
|
}
|
|
4126
4172
|
/**
|
|
4173
|
+
* Whether or not we should add a dummy point element in
|
|
4174
|
+
* order to describe a point that has no graphic.
|
|
4127
4175
|
* @private
|
|
4128
4176
|
*/
|
|
4129
4177
|
function shouldAddDummyPoint(point) {
|
|
4130
4178
|
// Note: Sunburst series use isNull for hidden points on drilldown.
|
|
4131
4179
|
// Ignore these.
|
|
4132
|
-
var
|
|
4133
|
-
|
|
4134
|
-
|
|
4180
|
+
var series = point.series,
|
|
4181
|
+
chart = series && series.chart,
|
|
4182
|
+
isSunburst = series && series.is('sunburst'),
|
|
4183
|
+
isNull = point.isNull,
|
|
4184
|
+
shouldDescribeNull = chart &&
|
|
4185
|
+
chart
|
|
4186
|
+
.options.accessibility.point.describeNull;
|
|
4187
|
+
return isNull && !isSunburst && shouldDescribeNull;
|
|
4135
4188
|
}
|
|
4136
4189
|
/**
|
|
4137
4190
|
* @private
|
|
@@ -4379,9 +4432,9 @@
|
|
|
4379
4432
|
* @private
|
|
4380
4433
|
*/
|
|
4381
4434
|
function defaultPointDescriptionFormatter(point) {
|
|
4382
|
-
var series = point.series,
|
|
4383
|
-
|
|
4384
|
-
' ' + series.name + '.' : '', annotationsDesc = getPointAnnotationDescription(point), pointAnnotationsText = annotationsDesc ? ' ' + annotationsDesc : '';
|
|
4435
|
+
var series = point.series, shouldExposeSeriesName = series.chart.series.length > 1 ||
|
|
4436
|
+
series.options.name, valText = getPointValueDescription(point), description = point.options && point.options.accessibility &&
|
|
4437
|
+
point.options.accessibility.description, userDescText = description ? ' ' + description : '', seriesNameText = shouldExposeSeriesName ? ' ' + series.name + '.' : '', annotationsDesc = getPointAnnotationDescription(point), pointAnnotationsText = annotationsDesc ? ' ' + annotationsDesc : '';
|
|
4385
4438
|
point.accessibility = point.accessibility || {};
|
|
4386
4439
|
point.accessibility.valueDescription = valText;
|
|
4387
4440
|
return valText + userDescText + seriesNameText + pointAnnotationsText;
|
|
@@ -4412,15 +4465,21 @@
|
|
|
4412
4465
|
*/
|
|
4413
4466
|
function describePointsInSeries(series) {
|
|
4414
4467
|
var setScreenReaderProps = shouldSetScreenReaderPropsOnPoints(series),
|
|
4415
|
-
setKeyboardProps = shouldSetKeyboardNavPropsOnPoints(series)
|
|
4468
|
+
setKeyboardProps = shouldSetKeyboardNavPropsOnPoints(series),
|
|
4469
|
+
shouldDescribeNullPoints = series.chart.options.accessibility
|
|
4470
|
+
.point.describeNull;
|
|
4416
4471
|
if (setScreenReaderProps || setKeyboardProps) {
|
|
4417
4472
|
series.points.forEach(function (point) {
|
|
4418
4473
|
var pointEl = point.graphic && point.graphic.element ||
|
|
4419
|
-
shouldAddDummyPoint(point) && addDummyPointElement(point)
|
|
4420
|
-
|
|
4474
|
+
shouldAddDummyPoint(point) && addDummyPointElement(point),
|
|
4475
|
+
pointA11yDisabled = (point.options &&
|
|
4421
4476
|
point.options.accessibility &&
|
|
4422
4477
|
point.options.accessibility.enabled === false);
|
|
4423
4478
|
if (pointEl) {
|
|
4479
|
+
if (point.isNull && !shouldDescribeNullPoints) {
|
|
4480
|
+
pointEl.setAttribute('aria-hidden', true);
|
|
4481
|
+
return;
|
|
4482
|
+
}
|
|
4424
4483
|
// We always set tabindex, as long as we are setting props.
|
|
4425
4484
|
// When setting tabindex, also remove default outline to
|
|
4426
4485
|
// avoid ugly border on click.
|
|
@@ -4448,14 +4507,19 @@
|
|
|
4448
4507
|
description = getSeriesDescriptionText(series),
|
|
4449
4508
|
shouldDescribeAxis = function (coll) {
|
|
4450
4509
|
return chart[coll] && chart[coll].length > 1 && series[coll];
|
|
4451
|
-
}, xAxisInfo = getSeriesAxisDescriptionText(series, 'xAxis'), yAxisInfo = getSeriesAxisDescriptionText(series, 'yAxis'), summaryContext = {
|
|
4452
|
-
|
|
4453
|
-
|
|
4454
|
-
|
|
4455
|
-
|
|
4456
|
-
|
|
4457
|
-
|
|
4458
|
-
|
|
4510
|
+
}, seriesNumber = series.index + 1, xAxisInfo = getSeriesAxisDescriptionText(series, 'xAxis'), yAxisInfo = getSeriesAxisDescriptionText(series, 'yAxis'), summaryContext = {
|
|
4511
|
+
seriesNumber: seriesNumber,
|
|
4512
|
+
series: series,
|
|
4513
|
+
chart: chart
|
|
4514
|
+
}, combinationSuffix = chartTypes.length > 1 ? 'Combination' : '', summary = chart.langFormat('accessibility.series.summary.' + series.type + combinationSuffix, summaryContext) || chart.langFormat('accessibility.series.summary.default' + combinationSuffix, summaryContext), axisDescription = (shouldDescribeAxis('yAxis') ? ' ' + yAxisInfo + '.' : '') + (shouldDescribeAxis('xAxis') ? ' ' + xAxisInfo + '.' : ''), formatStr = chart.options.accessibility.series.descriptionFormat || '';
|
|
4515
|
+
return format(formatStr, {
|
|
4516
|
+
seriesDescription: summary,
|
|
4517
|
+
authorDescription: (description ? ' ' + description : ''),
|
|
4518
|
+
axisDescription: axisDescription,
|
|
4519
|
+
series: series,
|
|
4520
|
+
chart: chart,
|
|
4521
|
+
seriesNumber: seriesNumber
|
|
4522
|
+
}, void 0);
|
|
4459
4523
|
}
|
|
4460
4524
|
/**
|
|
4461
4525
|
* Set a11y props on a series element
|
|
@@ -4473,7 +4537,10 @@
|
|
|
4473
4537
|
}
|
|
4474
4538
|
else if (landmarkVerbosity === 'all') {
|
|
4475
4539
|
seriesElement.setAttribute('role', 'region');
|
|
4476
|
-
}
|
|
4540
|
+
}
|
|
4541
|
+
else {
|
|
4542
|
+
seriesElement.setAttribute('role', 'group');
|
|
4543
|
+
}
|
|
4477
4544
|
seriesElement.setAttribute('tabindex', '-1');
|
|
4478
4545
|
if (!series.chart.styledMode) {
|
|
4479
4546
|
// Don't show browser outline on click, despite tabindex
|
|
@@ -4506,7 +4573,7 @@
|
|
|
4506
4573
|
describeSeriesElement(series, seriesEl);
|
|
4507
4574
|
}
|
|
4508
4575
|
else {
|
|
4509
|
-
seriesEl.
|
|
4576
|
+
seriesEl.removeAttribute('aria-label');
|
|
4510
4577
|
}
|
|
4511
4578
|
}
|
|
4512
4579
|
}
|
|
@@ -4641,7 +4708,7 @@
|
|
|
4641
4708
|
var announcer = this,
|
|
4642
4709
|
chart = this.chart,
|
|
4643
4710
|
e = this.eventProvider;
|
|
4644
|
-
e.addEvent(chart, '
|
|
4711
|
+
e.addEvent(chart, 'afterApplyDrilldown', function () {
|
|
4645
4712
|
announcer.lastAnnouncementTime = 0;
|
|
4646
4713
|
});
|
|
4647
4714
|
e.addEvent(chart, 'afterAddSeries', function (e) {
|
|
@@ -4951,9 +5018,15 @@
|
|
|
4951
5018
|
ProxyElement.prototype.updateTarget = function (target, attributes) {
|
|
4952
5019
|
this.target = target;
|
|
4953
5020
|
this.updateCSSClassName();
|
|
5021
|
+
var attrs = attributes || {};
|
|
5022
|
+
Object.keys(attrs).forEach(function (a) {
|
|
5023
|
+
if (attrs[a] === null) {
|
|
5024
|
+
delete attrs[a];
|
|
5025
|
+
}
|
|
5026
|
+
});
|
|
4954
5027
|
attr(this.buttonElement, merge({
|
|
4955
5028
|
'aria-label': this.getTargetAttr(target.click, 'aria-label')
|
|
4956
|
-
},
|
|
5029
|
+
}, attrs));
|
|
4957
5030
|
this.eventProvider.removeAddedEvents();
|
|
4958
5031
|
this.addProxyEventsToButton(this.buttonElement, target.click);
|
|
4959
5032
|
this.refreshPosition();
|
|
@@ -5051,12 +5124,14 @@
|
|
|
5051
5124
|
var chartDiv = this.chart.renderTo;
|
|
5052
5125
|
if (chartDiv && posElement && posElement.getBoundingClientRect) {
|
|
5053
5126
|
var rectEl = posElement.getBoundingClientRect(),
|
|
5054
|
-
|
|
5127
|
+
chartPos = this.chart.pointer.getChartPosition();
|
|
5055
5128
|
return {
|
|
5056
|
-
x: rectEl.left -
|
|
5057
|
-
y: rectEl.top -
|
|
5058
|
-
width: rectEl.right
|
|
5059
|
-
|
|
5129
|
+
x: (rectEl.left - chartPos.left) / chartPos.scaleX,
|
|
5130
|
+
y: (rectEl.top - chartPos.top) / chartPos.scaleY,
|
|
5131
|
+
width: rectEl.right / chartPos.scaleX -
|
|
5132
|
+
rectEl.left / chartPos.scaleX,
|
|
5133
|
+
height: rectEl.bottom / chartPos.scaleY -
|
|
5134
|
+
rectEl.top / chartPos.scaleY
|
|
5060
5135
|
};
|
|
5061
5136
|
}
|
|
5062
5137
|
return { x: 0, y: 0, width: 1, height: 1 };
|
|
@@ -5153,10 +5228,13 @@
|
|
|
5153
5228
|
/**
|
|
5154
5229
|
* Create a group that will contain proxy elements. The group order is
|
|
5155
5230
|
* automatically updated according to the last group order keys.
|
|
5231
|
+
*
|
|
5232
|
+
* Returns the added group.
|
|
5156
5233
|
*/
|
|
5157
5234
|
ProxyProvider.prototype.addGroup = function (groupKey, groupType, attributes) {
|
|
5158
|
-
|
|
5159
|
-
|
|
5235
|
+
var existingGroup = this.groups[groupKey];
|
|
5236
|
+
if (existingGroup) {
|
|
5237
|
+
return existingGroup.groupElement;
|
|
5160
5238
|
}
|
|
5161
5239
|
var proxyContainer = this.domElementProvider.createElement(groupType);
|
|
5162
5240
|
// If we want to add a role to the group, and still use e.g.
|
|
@@ -5185,6 +5263,7 @@
|
|
|
5185
5263
|
// won't have to reorder the whole set of groups.
|
|
5186
5264
|
this.afterChartProxyPosContainer.appendChild(groupElement);
|
|
5187
5265
|
this.updateGroupOrder(this.groupOrder);
|
|
5266
|
+
return groupElement;
|
|
5188
5267
|
};
|
|
5189
5268
|
/**
|
|
5190
5269
|
* Update HTML attributes of a group.
|
|
@@ -5368,6 +5447,10 @@
|
|
|
5368
5447
|
*/
|
|
5369
5448
|
ProxyProvider.prototype.updatePosContainerPositions = function () {
|
|
5370
5449
|
var chart = this.chart;
|
|
5450
|
+
// If exporting, don't add these containers to the DOM.
|
|
5451
|
+
if (chart.renderer.forExport) {
|
|
5452
|
+
return;
|
|
5453
|
+
}
|
|
5371
5454
|
var rendererSVGEl = chart.renderer.box;
|
|
5372
5455
|
chart.container.insertBefore(this.afterChartProxyPosContainer, rendererSVGEl.nextSibling);
|
|
5373
5456
|
chart.container.insertBefore(this.beforeChartProxyPosContainer, rendererSVGEl);
|
|
@@ -5874,7 +5957,7 @@
|
|
|
5874
5957
|
*/
|
|
5875
5958
|
inputStyle: {
|
|
5876
5959
|
/** @ignore */
|
|
5877
|
-
color: "#335cad" /* highlightColor80 */,
|
|
5960
|
+
color: "#335cad" /* Palette.highlightColor80 */,
|
|
5878
5961
|
/** @ignore */
|
|
5879
5962
|
cursor: 'pointer'
|
|
5880
5963
|
},
|
|
@@ -5891,7 +5974,7 @@
|
|
|
5891
5974
|
*/
|
|
5892
5975
|
labelStyle: {
|
|
5893
5976
|
/** @ignore */
|
|
5894
|
-
color: "#666666" /* neutralColor60 */
|
|
5977
|
+
color: "#666666" /* Palette.neutralColor60 */
|
|
5895
5978
|
}
|
|
5896
5979
|
}
|
|
5897
5980
|
});
|
|
@@ -5995,7 +6078,8 @@
|
|
|
5995
6078
|
rangeSetting,
|
|
5996
6079
|
ctx,
|
|
5997
6080
|
ytdExtremes,
|
|
5998
|
-
dataGrouping = rangeOptions.dataGrouping
|
|
6081
|
+
dataGrouping = rangeOptions.dataGrouping,
|
|
6082
|
+
addOffsetMin = true;
|
|
5999
6083
|
// chart has no data, base series is removed
|
|
6000
6084
|
if (dataMin === null || dataMax === null) {
|
|
6001
6085
|
return;
|
|
@@ -6028,12 +6112,16 @@
|
|
|
6028
6112
|
if (isNumber(ctx.newMax)) {
|
|
6029
6113
|
newMax = ctx.newMax;
|
|
6030
6114
|
}
|
|
6115
|
+
// #15799: offsetMin is added in minFromRange so that it works
|
|
6116
|
+
// with pre-selected buttons as well
|
|
6117
|
+
addOffsetMin = false;
|
|
6031
6118
|
}
|
|
6032
6119
|
// Fixed times like minutes, hours, days
|
|
6033
6120
|
}
|
|
6034
6121
|
else if (range) {
|
|
6035
6122
|
newMin = Math.max(newMax - range, dataMin);
|
|
6036
6123
|
newMax = Math.min(newMin + range, dataMax);
|
|
6124
|
+
addOffsetMin = false;
|
|
6037
6125
|
}
|
|
6038
6126
|
else if (type === 'ytd') {
|
|
6039
6127
|
// On user clicks on the buttons, or a delayed action running from
|
|
@@ -6044,14 +6132,17 @@
|
|
|
6044
6132
|
// event (below). When the series are initialized, but before
|
|
6045
6133
|
// the chart is rendered, we have access to the xData array
|
|
6046
6134
|
// (#942).
|
|
6047
|
-
if (typeof dataMax === 'undefined'
|
|
6135
|
+
if (typeof dataMax === 'undefined' ||
|
|
6136
|
+
typeof dataMin === 'undefined') {
|
|
6048
6137
|
dataMin = Number.MAX_VALUE;
|
|
6049
6138
|
dataMax = Number.MIN_VALUE;
|
|
6050
6139
|
chart.series.forEach(function (series) {
|
|
6051
6140
|
// reassign it to the last item
|
|
6052
6141
|
var xData = series.xData;
|
|
6053
|
-
|
|
6054
|
-
|
|
6142
|
+
if (xData) {
|
|
6143
|
+
dataMin = Math.min(xData[0], dataMin);
|
|
6144
|
+
dataMax = Math.max(xData[xData.length - 1], dataMax);
|
|
6145
|
+
}
|
|
6055
6146
|
});
|
|
6056
6147
|
redraw = false;
|
|
6057
6148
|
}
|
|
@@ -6071,16 +6162,15 @@
|
|
|
6071
6162
|
// If the navigator exist and the axis range is declared reset that
|
|
6072
6163
|
// range and from now on only use the range set by a user, #14742.
|
|
6073
6164
|
if (chart.navigator && chart.navigator.baseSeries[0]) {
|
|
6074
|
-
chart.navigator.baseSeries[0].xAxis.options
|
|
6075
|
-
.range = void 0;
|
|
6165
|
+
chart.navigator.baseSeries[0].xAxis.options.range = void 0;
|
|
6076
6166
|
}
|
|
6077
6167
|
newMin = dataMin;
|
|
6078
6168
|
newMax = dataMax;
|
|
6079
6169
|
}
|
|
6080
|
-
if (defined(newMin)) {
|
|
6170
|
+
if (addOffsetMin && rangeOptions._offsetMin && defined(newMin)) {
|
|
6081
6171
|
newMin += rangeOptions._offsetMin;
|
|
6082
6172
|
}
|
|
6083
|
-
if (defined(newMax)) {
|
|
6173
|
+
if (rangeOptions._offsetMax && defined(newMax)) {
|
|
6084
6174
|
newMax += rangeOptions._offsetMax;
|
|
6085
6175
|
}
|
|
6086
6176
|
if (this.dropdown) {
|
|
@@ -6137,10 +6227,10 @@
|
|
|
6137
6227
|
var minInput = rangeSelector.minInput,
|
|
6138
6228
|
maxInput = rangeSelector.maxInput;
|
|
6139
6229
|
// #3274 in some case blur is not defined
|
|
6140
|
-
if (minInput && minInput.blur) {
|
|
6230
|
+
if (minInput && (minInput.blur)) {
|
|
6141
6231
|
fireEvent(minInput, 'blur');
|
|
6142
6232
|
}
|
|
6143
|
-
if (maxInput && maxInput.blur) {
|
|
6233
|
+
if (maxInput && (maxInput.blur)) {
|
|
6144
6234
|
fireEvent(maxInput, 'blur');
|
|
6145
6235
|
}
|
|
6146
6236
|
};
|
|
@@ -6459,7 +6549,7 @@
|
|
|
6459
6549
|
}
|
|
6460
6550
|
else if (H.isSafari && !hasTimezone(input)) {
|
|
6461
6551
|
var offset = new Date(input).getTimezoneOffset() / 60;
|
|
6462
|
-
input += offset <= 0 ? "+"
|
|
6552
|
+
input += offset <= 0 ? "+".concat(pad(-offset), ":00") : "-".concat(pad(offset), ":00");
|
|
6463
6553
|
}
|
|
6464
6554
|
var date = Date.parse(input);
|
|
6465
6555
|
// If the value isn't parsed directly to a value by the
|
|
@@ -6581,7 +6671,7 @@
|
|
|
6581
6671
|
// Styles
|
|
6582
6672
|
label.css(merge(chartStyle, options.labelStyle));
|
|
6583
6673
|
dateBox.css(merge({
|
|
6584
|
-
color: "#333333" /* neutralColor80 */
|
|
6674
|
+
color: "#333333" /* Palette.neutralColor80 */
|
|
6585
6675
|
}, chartStyle, options.inputStyle));
|
|
6586
6676
|
css(input, extend({
|
|
6587
6677
|
position: 'absolute',
|
|
@@ -7219,7 +7309,7 @@
|
|
|
7219
7309
|
var userButtonTheme = (chart.userOptions.rangeSelector &&
|
|
7220
7310
|
chart.userOptions.rangeSelector.buttonTheme) || {};
|
|
7221
7311
|
var getAttribs = function (text) { return ({
|
|
7222
|
-
text: text ? text + " \u25BE" : '▾',
|
|
7312
|
+
text: text ? "" + text + " \u25BE" : '▾',
|
|
7223
7313
|
width: 'auto',
|
|
7224
7314
|
paddingLeft: pick(options.buttonTheme.paddingLeft,
|
|
7225
7315
|
userButtonTheme.padding, 8),
|
|
@@ -7548,8 +7638,8 @@
|
|
|
7548
7638
|
min = max - rangeOptions;
|
|
7549
7639
|
range = rangeOptions;
|
|
7550
7640
|
}
|
|
7551
|
-
else {
|
|
7552
|
-
min = max + getTrueRange(max, -rangeOptions.count);
|
|
7641
|
+
else if (rangeOptions) {
|
|
7642
|
+
min = max + getTrueRange(max, -(rangeOptions.count || 1));
|
|
7553
7643
|
// Let the fixedRange reflect initial settings (#5930)
|
|
7554
7644
|
if (this.chart) {
|
|
7555
7645
|
this.chart.fixedRange = max - min;
|
|
@@ -7564,11 +7654,16 @@
|
|
|
7564
7654
|
if (typeof range === 'undefined') { // #4501
|
|
7565
7655
|
range = getTrueRange(min, rangeOptions.count);
|
|
7566
7656
|
}
|
|
7567
|
-
this.newMax = Math.min(min + range, this.dataMax);
|
|
7657
|
+
this.newMax = Math.min(min + range, pick(this.dataMax, Number.MAX_VALUE));
|
|
7568
7658
|
}
|
|
7569
7659
|
if (!isNumber(max)) {
|
|
7570
7660
|
min = void 0;
|
|
7571
7661
|
}
|
|
7662
|
+
else if (!isNumber(rangeOptions) &&
|
|
7663
|
+
rangeOptions &&
|
|
7664
|
+
rangeOptions._offsetMin) {
|
|
7665
|
+
min += rangeOptions._offsetMin;
|
|
7666
|
+
}
|
|
7572
7667
|
return min;
|
|
7573
7668
|
};
|
|
7574
7669
|
if (!H.RangeSelector) {
|
|
@@ -7981,7 +8076,7 @@
|
|
|
7981
8076
|
if (chart.accessibility) {
|
|
7982
8077
|
chart.accessibility.keyboardNavigation.tabindexContainer
|
|
7983
8078
|
.focus();
|
|
7984
|
-
chart.accessibility.keyboardNavigation
|
|
8079
|
+
chart.accessibility.keyboardNavigation.move(direction);
|
|
7985
8080
|
}
|
|
7986
8081
|
}
|
|
7987
8082
|
else if (rangeSel) {
|
|
@@ -8072,7 +8167,7 @@
|
|
|
8072
8167
|
e.stopPropagation();
|
|
8073
8168
|
if (a11y) {
|
|
8074
8169
|
a11y.keyboardNavigation.tabindexContainer.focus();
|
|
8075
|
-
a11y.keyboardNavigation
|
|
8170
|
+
a11y.keyboardNavigation.move(e.shiftKey ? -1 : 1);
|
|
8076
8171
|
}
|
|
8077
8172
|
}
|
|
8078
8173
|
});
|
|
@@ -8430,6 +8525,7 @@
|
|
|
8430
8525
|
else if (series.a11yMarkersForced) {
|
|
8431
8526
|
delete series.a11yMarkersForced;
|
|
8432
8527
|
unforceSeriesMarkerOptions(series);
|
|
8528
|
+
delete series.resetA11yMarkerOptions;
|
|
8433
8529
|
}
|
|
8434
8530
|
}
|
|
8435
8531
|
/**
|
|
@@ -8457,20 +8553,20 @@
|
|
|
8457
8553
|
});
|
|
8458
8554
|
}
|
|
8459
8555
|
/**
|
|
8556
|
+
* Reset markers to normal
|
|
8460
8557
|
* @private
|
|
8461
8558
|
*/
|
|
8462
8559
|
function unforceSeriesMarkerOptions(series) {
|
|
8463
8560
|
var resetMarkerOptions = series.resetA11yMarkerOptions;
|
|
8464
8561
|
if (resetMarkerOptions) {
|
|
8465
|
-
|
|
8562
|
+
var originalOpactiy = resetMarkerOptions.states &&
|
|
8563
|
+
resetMarkerOptions.states.normal &&
|
|
8564
|
+
resetMarkerOptions.states.normal.opacity;
|
|
8565
|
+
series.update({
|
|
8466
8566
|
marker: {
|
|
8467
8567
|
enabled: resetMarkerOptions.enabled,
|
|
8468
8568
|
states: {
|
|
8469
|
-
normal: {
|
|
8470
|
-
opacity: resetMarkerOptions.states &&
|
|
8471
|
-
resetMarkerOptions.states.normal &&
|
|
8472
|
-
resetMarkerOptions.states.normal.opacity
|
|
8473
|
-
}
|
|
8569
|
+
normal: { opacity: originalOpactiy }
|
|
8474
8570
|
}
|
|
8475
8571
|
}
|
|
8476
8572
|
});
|
|
@@ -8570,6 +8666,37 @@
|
|
|
8570
8666
|
pointA11yDisabled ||
|
|
8571
8667
|
isSkipSeries(point.series);
|
|
8572
8668
|
}
|
|
8669
|
+
/**
|
|
8670
|
+
* Get the first point that is not a skip point in this series.
|
|
8671
|
+
* @private
|
|
8672
|
+
*/
|
|
8673
|
+
function getFirstValidPointInSeries(series) {
|
|
8674
|
+
var points = series.points || [],
|
|
8675
|
+
len = points.length;
|
|
8676
|
+
for (var i = 0; i < len; ++i) {
|
|
8677
|
+
if (!isSkipPoint(points[i])) {
|
|
8678
|
+
return points[i];
|
|
8679
|
+
}
|
|
8680
|
+
}
|
|
8681
|
+
return null;
|
|
8682
|
+
}
|
|
8683
|
+
/**
|
|
8684
|
+
* Get the first point that is not a skip point in this chart.
|
|
8685
|
+
* @private
|
|
8686
|
+
*/
|
|
8687
|
+
function getFirstValidPointInChart(chart) {
|
|
8688
|
+
var series = chart.series || [],
|
|
8689
|
+
len = series.length;
|
|
8690
|
+
for (var i = 0; i < len; ++i) {
|
|
8691
|
+
if (!isSkipSeries(series[i])) {
|
|
8692
|
+
var point = getFirstValidPointInSeries(series[i]);
|
|
8693
|
+
if (point) {
|
|
8694
|
+
return point;
|
|
8695
|
+
}
|
|
8696
|
+
}
|
|
8697
|
+
}
|
|
8698
|
+
return null;
|
|
8699
|
+
}
|
|
8573
8700
|
/**
|
|
8574
8701
|
* @private
|
|
8575
8702
|
*/
|
|
@@ -8582,7 +8709,7 @@
|
|
|
8582
8709
|
// Highlight first valid point in the series will also
|
|
8583
8710
|
// look backwards. It always starts from currently
|
|
8584
8711
|
// highlighted point.
|
|
8585
|
-
res = chart.series[i].
|
|
8712
|
+
res = chart.series[i].highlightNextValidPoint();
|
|
8586
8713
|
if (res) {
|
|
8587
8714
|
break;
|
|
8588
8715
|
}
|
|
@@ -8590,24 +8717,24 @@
|
|
|
8590
8717
|
return res;
|
|
8591
8718
|
}
|
|
8592
8719
|
/**
|
|
8720
|
+
* After drilling down/up, we need to set focus to the first point for
|
|
8721
|
+
* screen readers and keyboard nav.
|
|
8593
8722
|
* @private
|
|
8594
8723
|
*/
|
|
8595
8724
|
function updateChartFocusAfterDrilling(chart) {
|
|
8596
|
-
|
|
8597
|
-
if (
|
|
8598
|
-
|
|
8725
|
+
var point = getFirstValidPointInChart(chart);
|
|
8726
|
+
if (point) {
|
|
8727
|
+
point.highlight(false); // Do not visually highlight
|
|
8599
8728
|
}
|
|
8600
8729
|
}
|
|
8601
8730
|
/**
|
|
8731
|
+
* Highlight the first point in chart that is not a skip point
|
|
8602
8732
|
* @private
|
|
8603
8733
|
*/
|
|
8604
8734
|
function highlightFirstValidPointInChart(chart) {
|
|
8605
|
-
var res = false;
|
|
8606
8735
|
delete chart.highlightedPoint;
|
|
8607
|
-
|
|
8608
|
-
|
|
8609
|
-
}, false);
|
|
8610
|
-
return res;
|
|
8736
|
+
var point = getFirstValidPointInChart(chart);
|
|
8737
|
+
return point ? point.highlight() : false;
|
|
8611
8738
|
}
|
|
8612
8739
|
/* *
|
|
8613
8740
|
*
|
|
@@ -8645,7 +8772,7 @@
|
|
|
8645
8772
|
e.addEvent(Series, 'destroy', function () {
|
|
8646
8773
|
return keyboardNavigation.onSeriesDestroy(this);
|
|
8647
8774
|
});
|
|
8648
|
-
e.addEvent(chart, '
|
|
8775
|
+
e.addEvent(chart, 'afterApplyDrilldown', function () {
|
|
8649
8776
|
updateChartFocusAfterDrilling(this);
|
|
8650
8777
|
});
|
|
8651
8778
|
e.addEvent(chart, 'drilldown', function (e) {
|
|
@@ -8685,11 +8812,11 @@
|
|
|
8685
8812
|
});
|
|
8686
8813
|
};
|
|
8687
8814
|
/**
|
|
8815
|
+
* After drillup we want to find the point that was drilled down to and
|
|
8816
|
+
* highlight it.
|
|
8688
8817
|
* @private
|
|
8689
8818
|
*/
|
|
8690
8819
|
SeriesKeyboardNavigation.prototype.onDrillupAll = function () {
|
|
8691
|
-
// After drillup we want to find the point that was drilled down to and
|
|
8692
|
-
// highlight it.
|
|
8693
8820
|
var last = this.lastDrilledDownPoint,
|
|
8694
8821
|
chart = this.chart,
|
|
8695
8822
|
series = last && getSeriesFromName(chart,
|
|
@@ -8698,15 +8825,13 @@
|
|
|
8698
8825
|
if (last && series && defined(last.x) && defined(last.y)) {
|
|
8699
8826
|
point = getPointFromXY(series, last.x, last.y);
|
|
8700
8827
|
}
|
|
8828
|
+
point = point || getFirstValidPointInChart(chart);
|
|
8701
8829
|
// Container focus can be lost on drillup due to deleted elements.
|
|
8702
8830
|
if (chart.container) {
|
|
8703
8831
|
chart.container.focus();
|
|
8704
8832
|
}
|
|
8705
8833
|
if (point && point.highlight) {
|
|
8706
|
-
point.highlight();
|
|
8707
|
-
}
|
|
8708
|
-
if (chart.focusElement) {
|
|
8709
|
-
chart.focusElement.removeFocusBorder();
|
|
8834
|
+
point.highlight(false); // Do not visually highlight
|
|
8710
8835
|
}
|
|
8711
8836
|
};
|
|
8712
8837
|
/**
|
|
@@ -8719,13 +8844,16 @@
|
|
|
8719
8844
|
inverted = chart.inverted;
|
|
8720
8845
|
return new KeyboardNavigationHandler(chart, {
|
|
8721
8846
|
keyCodeMap: [
|
|
8722
|
-
[inverted ? [keys.up, keys.down] : [keys.left, keys.right],
|
|
8847
|
+
[inverted ? [keys.up, keys.down] : [keys.left, keys.right],
|
|
8848
|
+
function (keyCode) {
|
|
8723
8849
|
return keyboardNavigation.onKbdSideways(this, keyCode);
|
|
8724
8850
|
}],
|
|
8725
|
-
[inverted ? [keys.left, keys.right] : [keys.up, keys.down],
|
|
8851
|
+
[inverted ? [keys.left, keys.right] : [keys.up, keys.down],
|
|
8852
|
+
function (keyCode) {
|
|
8726
8853
|
return keyboardNavigation.onKbdVertical(this, keyCode);
|
|
8727
8854
|
}],
|
|
8728
|
-
[[keys.enter, keys.space],
|
|
8855
|
+
[[keys.enter, keys.space],
|
|
8856
|
+
function (keyCode, event) {
|
|
8729
8857
|
var point = chart.highlightedPoint;
|
|
8730
8858
|
if (point) {
|
|
8731
8859
|
event.point = point;
|
|
@@ -8734,22 +8862,27 @@
|
|
|
8734
8862
|
}
|
|
8735
8863
|
return this.response.success;
|
|
8736
8864
|
}],
|
|
8737
|
-
[[keys.home],
|
|
8865
|
+
[[keys.home],
|
|
8866
|
+
function () {
|
|
8738
8867
|
highlightFirstValidPointInChart(chart);
|
|
8739
8868
|
return this.response.success;
|
|
8740
8869
|
}],
|
|
8741
|
-
[[keys.end],
|
|
8870
|
+
[[keys.end],
|
|
8871
|
+
function () {
|
|
8742
8872
|
highlightLastValidPointInChart(chart);
|
|
8743
8873
|
return this.response.success;
|
|
8744
8874
|
}],
|
|
8745
|
-
[[keys.pageDown, keys.pageUp],
|
|
8875
|
+
[[keys.pageDown, keys.pageUp],
|
|
8876
|
+
function (keyCode) {
|
|
8746
8877
|
chart.highlightAdjacentSeries(keyCode === keys.pageDown);
|
|
8747
8878
|
return this.response.success;
|
|
8748
8879
|
}]
|
|
8749
8880
|
],
|
|
8750
8881
|
init: function () {
|
|
8751
|
-
|
|
8752
|
-
|
|
8882
|
+
return keyboardNavigation.onHandlerInit(this);
|
|
8883
|
+
},
|
|
8884
|
+
validate: function () {
|
|
8885
|
+
return !!getFirstValidPointInChart(chart);
|
|
8753
8886
|
},
|
|
8754
8887
|
terminate: function () {
|
|
8755
8888
|
return keyboardNavigation.onHandlerTerminate();
|
|
@@ -8768,6 +8901,25 @@
|
|
|
8768
8901
|
isNext = keyCode === keys.right || keyCode === keys.down;
|
|
8769
8902
|
return this.attemptHighlightAdjacentPoint(handler, isNext);
|
|
8770
8903
|
};
|
|
8904
|
+
/**
|
|
8905
|
+
* When keyboard navigation inits.
|
|
8906
|
+
* @private
|
|
8907
|
+
* @param {Highcharts.KeyboardNavigationHandler} handler The handler object
|
|
8908
|
+
* @return {number}
|
|
8909
|
+
* response
|
|
8910
|
+
*/
|
|
8911
|
+
SeriesKeyboardNavigation.prototype.onHandlerInit = function (handler) {
|
|
8912
|
+
var chart = this.chart,
|
|
8913
|
+
kbdNavOptions = chart.options.accessibility.keyboardNavigation;
|
|
8914
|
+
if (kbdNavOptions.seriesNavigation.rememberPointFocus &&
|
|
8915
|
+
chart.highlightedPoint) {
|
|
8916
|
+
chart.highlightedPoint.highlight();
|
|
8917
|
+
}
|
|
8918
|
+
else {
|
|
8919
|
+
highlightFirstValidPointInChart(chart);
|
|
8920
|
+
}
|
|
8921
|
+
return handler.response.success;
|
|
8922
|
+
};
|
|
8771
8923
|
/**
|
|
8772
8924
|
* @private
|
|
8773
8925
|
* @param {Highcharts.KeyboardNavigationHandler} handler
|
|
@@ -8797,7 +8949,8 @@
|
|
|
8797
8949
|
* @private
|
|
8798
8950
|
*/
|
|
8799
8951
|
SeriesKeyboardNavigation.prototype.onHandlerTerminate = function () {
|
|
8800
|
-
var chart = this.chart
|
|
8952
|
+
var chart = this.chart,
|
|
8953
|
+
kbdNavOptions = chart.options.accessibility.keyboardNavigation;
|
|
8801
8954
|
if (chart.tooltip) {
|
|
8802
8955
|
chart.tooltip.hide(0);
|
|
8803
8956
|
}
|
|
@@ -8808,15 +8961,13 @@
|
|
|
8808
8961
|
if (chart.highlightedPoint && chart.highlightedPoint.onMouseOut) {
|
|
8809
8962
|
chart.highlightedPoint.onMouseOut();
|
|
8810
8963
|
}
|
|
8811
|
-
|
|
8964
|
+
if (!kbdNavOptions.seriesNavigation.rememberPointFocus) {
|
|
8965
|
+
delete chart.highlightedPoint;
|
|
8966
|
+
}
|
|
8812
8967
|
};
|
|
8813
8968
|
/**
|
|
8814
8969
|
* Function that attempts to highlight next/prev point. Handles wrap around.
|
|
8815
8970
|
* @private
|
|
8816
|
-
* @param {Highcharts.KeyboardNavigationHandler} handler
|
|
8817
|
-
* @param {boolean} directionIsNext
|
|
8818
|
-
* @return {number}
|
|
8819
|
-
* response
|
|
8820
8971
|
*/
|
|
8821
8972
|
SeriesKeyboardNavigation.prototype.attemptHighlightAdjacentPoint = function (handler, directionIsNext) {
|
|
8822
8973
|
var chart = this.chart,
|
|
@@ -8824,8 +8975,10 @@
|
|
|
8824
8975
|
.wrapAround,
|
|
8825
8976
|
highlightSuccessful = chart.highlightAdjacentPoint(directionIsNext);
|
|
8826
8977
|
if (!highlightSuccessful) {
|
|
8827
|
-
if (wrapAround
|
|
8828
|
-
|
|
8978
|
+
if (wrapAround && (directionIsNext ?
|
|
8979
|
+
highlightFirstValidPointInChart(chart) :
|
|
8980
|
+
highlightLastValidPointInChart(chart))) {
|
|
8981
|
+
return handler.response.success;
|
|
8829
8982
|
}
|
|
8830
8983
|
return handler.response[directionIsNext ? 'next' : 'prev'];
|
|
8831
8984
|
}
|
|
@@ -9032,7 +9185,7 @@
|
|
|
9032
9185
|
// Highlight the new point or any first valid point back or forwards
|
|
9033
9186
|
// from it
|
|
9034
9187
|
newPoint.highlight();
|
|
9035
|
-
return newPoint.series.
|
|
9188
|
+
return newPoint.series.highlightNextValidPoint();
|
|
9036
9189
|
}
|
|
9037
9190
|
/**
|
|
9038
9191
|
* @private
|
|
@@ -9069,7 +9222,7 @@
|
|
|
9069
9222
|
seriesTypes[type].prototype.keyboardMoveVertical = false;
|
|
9070
9223
|
}
|
|
9071
9224
|
});
|
|
9072
|
-
seriesProto.
|
|
9225
|
+
seriesProto.highlightNextValidPoint = (seriesHighlightNextValidPoint);
|
|
9073
9226
|
}
|
|
9074
9227
|
}
|
|
9075
9228
|
SeriesKeyboardNavigation.compose = compose;
|
|
@@ -9107,7 +9260,7 @@
|
|
|
9107
9260
|
return defined(minIx) ? series.points[minIx] : void 0;
|
|
9108
9261
|
}
|
|
9109
9262
|
/**
|
|
9110
|
-
* Highlights a point (show tooltip
|
|
9263
|
+
* Highlights a point (show tooltip, display hover state, focus element).
|
|
9111
9264
|
*
|
|
9112
9265
|
* @private
|
|
9113
9266
|
* @function Highcharts.Point#highlight
|
|
@@ -9115,9 +9268,10 @@
|
|
|
9115
9268
|
* @return {Highcharts.Point}
|
|
9116
9269
|
* This highlighted point.
|
|
9117
9270
|
*/
|
|
9118
|
-
function pointHighlight() {
|
|
9271
|
+
function pointHighlight(highlightVisually) {
|
|
9272
|
+
if (highlightVisually === void 0) { highlightVisually = true; }
|
|
9119
9273
|
var chart = this.series.chart;
|
|
9120
|
-
if (!this.isNull) {
|
|
9274
|
+
if (!this.isNull && highlightVisually) {
|
|
9121
9275
|
this.onMouseOver(); // Show the hover marker and tooltip
|
|
9122
9276
|
}
|
|
9123
9277
|
else {
|
|
@@ -9132,6 +9286,9 @@
|
|
|
9132
9286
|
// change z-index and mess up the element.
|
|
9133
9287
|
if (this.graphic) {
|
|
9134
9288
|
chart.setFocusToElement(this.graphic);
|
|
9289
|
+
if (!highlightVisually && chart.focusElement) {
|
|
9290
|
+
chart.focusElement.removeFocusBorder();
|
|
9291
|
+
}
|
|
9135
9292
|
}
|
|
9136
9293
|
chart.highlightedPoint = this;
|
|
9137
9294
|
return this;
|
|
@@ -9142,9 +9299,9 @@
|
|
|
9142
9299
|
* point in the series, use that as starting point.
|
|
9143
9300
|
*
|
|
9144
9301
|
* @private
|
|
9145
|
-
* @function Highcharts.Series#
|
|
9302
|
+
* @function Highcharts.Series#highlightNextValidPoint
|
|
9146
9303
|
*/
|
|
9147
|
-
function
|
|
9304
|
+
function seriesHighlightNextValidPoint() {
|
|
9148
9305
|
var curPoint = this.chart.highlightedPoint,
|
|
9149
9306
|
start = (curPoint && curPoint.series) === this ?
|
|
9150
9307
|
getPointIndex(curPoint) :
|
|
@@ -9231,7 +9388,6 @@
|
|
|
9231
9388
|
* @private
|
|
9232
9389
|
*/
|
|
9233
9390
|
SeriesComponent.compose = function (ChartClass, PointClass, SeriesClass) {
|
|
9234
|
-
// Handle forcing markers
|
|
9235
9391
|
NewDataAnnouncer.compose(SeriesClass);
|
|
9236
9392
|
ForcedMarkers.compose(SeriesClass);
|
|
9237
9393
|
SeriesKeyboardNavigation.compose(ChartClass, PointClass, SeriesClass);
|
|
@@ -9320,7 +9476,7 @@
|
|
|
9320
9476
|
|
|
9321
9477
|
return SeriesComponent;
|
|
9322
9478
|
});
|
|
9323
|
-
_registerModule(_modules, 'Accessibility/Components/ZoomComponent.js', [_modules['Accessibility/AccessibilityComponent.js'], _modules['Accessibility/Utils/ChartUtilities.js'], _modules['
|
|
9479
|
+
_registerModule(_modules, 'Accessibility/Components/ZoomComponent.js', [_modules['Accessibility/AccessibilityComponent.js'], _modules['Accessibility/Utils/ChartUtilities.js'], _modules['Accessibility/KeyboardNavigationHandler.js'], _modules['Core/Utilities.js']], function (AccessibilityComponent, CU, KeyboardNavigationHandler, U) {
|
|
9324
9480
|
/* *
|
|
9325
9481
|
*
|
|
9326
9482
|
* (c) 2009-2021 Øystein Moseng
|
|
@@ -9348,24 +9504,43 @@
|
|
|
9348
9504
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
9349
9505
|
};
|
|
9350
9506
|
})();
|
|
9351
|
-
var unhideChartElementFromAT =
|
|
9352
|
-
var noop = H.noop;
|
|
9507
|
+
var unhideChartElementFromAT = CU.unhideChartElementFromAT;
|
|
9353
9508
|
var attr = U.attr,
|
|
9354
|
-
extend = U.extend,
|
|
9355
9509
|
pick = U.pick;
|
|
9356
9510
|
/* *
|
|
9357
9511
|
*
|
|
9358
9512
|
* Functions
|
|
9359
9513
|
*
|
|
9360
9514
|
* */
|
|
9361
|
-
|
|
9515
|
+
/**
|
|
9516
|
+
* Pan along axis in a direction (1 or -1), optionally with a defined
|
|
9517
|
+
* granularity (number of steps it takes to walk across current view)
|
|
9518
|
+
* @private
|
|
9519
|
+
*/
|
|
9520
|
+
function axisPanStep(axis, direction, granularity) {
|
|
9521
|
+
var gran = granularity || 3;
|
|
9522
|
+
var extremes = axis.getExtremes();
|
|
9523
|
+
var step = (extremes.max - extremes.min) / gran * direction;
|
|
9524
|
+
var newMax = extremes.max + step;
|
|
9525
|
+
var newMin = extremes.min + step;
|
|
9526
|
+
var size = newMax - newMin;
|
|
9527
|
+
if (direction < 0 && newMin < extremes.dataMin) {
|
|
9528
|
+
newMin = extremes.dataMin;
|
|
9529
|
+
newMax = newMin + size;
|
|
9530
|
+
}
|
|
9531
|
+
else if (direction > 0 && newMax > extremes.dataMax) {
|
|
9532
|
+
newMax = extremes.dataMax;
|
|
9533
|
+
newMin = newMax - size;
|
|
9534
|
+
}
|
|
9535
|
+
axis.setExtremes(newMin, newMax);
|
|
9536
|
+
}
|
|
9362
9537
|
/**
|
|
9363
9538
|
* @private
|
|
9364
9539
|
*/
|
|
9365
9540
|
function chartHasMapZoom(chart) {
|
|
9366
|
-
return !!(chart.mapZoom &&
|
|
9367
|
-
chart.
|
|
9368
|
-
chart.
|
|
9541
|
+
return !!((chart.mapZoom) &&
|
|
9542
|
+
chart.mapNavigation &&
|
|
9543
|
+
chart.mapNavigation.navButtons.length);
|
|
9369
9544
|
}
|
|
9370
9545
|
/* *
|
|
9371
9546
|
*
|
|
@@ -9405,7 +9580,7 @@
|
|
|
9405
9580
|
chart = this.chart;
|
|
9406
9581
|
this.proxyProvider.addGroup('zoom', 'div');
|
|
9407
9582
|
[
|
|
9408
|
-
'afterShowResetZoom', '
|
|
9583
|
+
'afterShowResetZoom', 'afterApplyDrilldown', 'drillupall'
|
|
9409
9584
|
].forEach(function (eventType) {
|
|
9410
9585
|
component.addEvent(chart, eventType, function () {
|
|
9411
9586
|
component.updateProxyOverlays();
|
|
@@ -9419,8 +9594,8 @@
|
|
|
9419
9594
|
var chart = this.chart,
|
|
9420
9595
|
component = this;
|
|
9421
9596
|
// Make map zoom buttons accessible
|
|
9422
|
-
if (chart.
|
|
9423
|
-
chart.
|
|
9597
|
+
if (chart.mapNavigation) {
|
|
9598
|
+
chart.mapNavigation.navButtons.forEach(function (button, i) {
|
|
9424
9599
|
unhideChartElementFromAT(chart, button.element);
|
|
9425
9600
|
component.setMapNavButtonAttrs(button.element, 'accessibility.zoom.mapZoom' + (i ? 'Out' : 'In'));
|
|
9426
9601
|
});
|
|
@@ -9457,10 +9632,13 @@
|
|
|
9457
9632
|
if (chart.resetZoomButton) {
|
|
9458
9633
|
this.createZoomProxyButton(chart.resetZoomButton, 'resetZoomProxyButton', chart.langFormat('accessibility.zoom.resetZoomButton', { chart: chart }));
|
|
9459
9634
|
}
|
|
9460
|
-
if (chart.drillUpButton
|
|
9635
|
+
if (chart.drillUpButton &&
|
|
9636
|
+
chart.breadcrumbs &&
|
|
9637
|
+
chart.breadcrumbs.list) {
|
|
9638
|
+
var lastBreadcrumb = chart.breadcrumbs.list[chart.breadcrumbs.list.length - 1];
|
|
9461
9639
|
this.createZoomProxyButton(chart.drillUpButton, 'drillUpProxyButton', chart.langFormat('accessibility.drillUpButton', {
|
|
9462
9640
|
chart: chart,
|
|
9463
|
-
buttonText: chart.
|
|
9641
|
+
buttonText: chart.breadcrumbs.getButtonText(lastBreadcrumb)
|
|
9464
9642
|
}));
|
|
9465
9643
|
}
|
|
9466
9644
|
};
|
|
@@ -9528,7 +9706,7 @@
|
|
|
9528
9706
|
'yAxis' : 'xAxis',
|
|
9529
9707
|
stepDirection = (keyCode === keys.left || keyCode === keys.up) ?
|
|
9530
9708
|
-1 : 1;
|
|
9531
|
-
this.chart[panAxis][0]
|
|
9709
|
+
axisPanStep(this.chart[panAxis][0], stepDirection);
|
|
9532
9710
|
return keyboardNavigationHandler.response.success;
|
|
9533
9711
|
};
|
|
9534
9712
|
/**
|
|
@@ -9544,14 +9722,14 @@
|
|
|
9544
9722
|
var isMoveOutOfRange = isBackwards && !this.focusedMapNavButtonIx ||
|
|
9545
9723
|
!isBackwards && this.focusedMapNavButtonIx;
|
|
9546
9724
|
// Deselect old
|
|
9547
|
-
chart.
|
|
9725
|
+
chart.mapNavigation.navButtons[this.focusedMapNavButtonIx].setState(0);
|
|
9548
9726
|
if (isMoveOutOfRange) {
|
|
9549
9727
|
chart.mapZoom(); // Reset zoom
|
|
9550
9728
|
return response[isBackwards ? 'prev' : 'next'];
|
|
9551
9729
|
}
|
|
9552
9730
|
// Select other button
|
|
9553
9731
|
this.focusedMapNavButtonIx += isBackwards ? -1 : 1;
|
|
9554
|
-
var button = chart.
|
|
9732
|
+
var button = chart.mapNavigation.navButtons[this.focusedMapNavButtonIx];
|
|
9555
9733
|
chart.setFocusToElement(button.box, button.element);
|
|
9556
9734
|
button.setState(2);
|
|
9557
9735
|
return response.success;
|
|
@@ -9572,8 +9750,8 @@
|
|
|
9572
9750
|
*/
|
|
9573
9751
|
ZoomComponent.prototype.onMapNavInit = function (direction) {
|
|
9574
9752
|
var chart = this.chart,
|
|
9575
|
-
zoomIn = chart.
|
|
9576
|
-
zoomOut = chart.
|
|
9753
|
+
zoomIn = chart.mapNavigation.navButtons[0],
|
|
9754
|
+
zoomOut = chart.mapNavigation.navButtons[1],
|
|
9577
9755
|
initialButton = direction > 0 ? zoomIn : zoomOut;
|
|
9578
9756
|
chart.setFocusToElement(initialButton.box, initialButton.element);
|
|
9579
9757
|
initialButton.setState(2);
|
|
@@ -9642,67 +9820,6 @@
|
|
|
9642
9820
|
};
|
|
9643
9821
|
return ZoomComponent;
|
|
9644
9822
|
}(AccessibilityComponent));
|
|
9645
|
-
/* *
|
|
9646
|
-
*
|
|
9647
|
-
* Class Namespace
|
|
9648
|
-
*
|
|
9649
|
-
* */
|
|
9650
|
-
(function (ZoomComponent) {
|
|
9651
|
-
/* *
|
|
9652
|
-
*
|
|
9653
|
-
* Declarations
|
|
9654
|
-
*
|
|
9655
|
-
* */
|
|
9656
|
-
/* *
|
|
9657
|
-
*
|
|
9658
|
-
* Constants
|
|
9659
|
-
*
|
|
9660
|
-
* */
|
|
9661
|
-
ZoomComponent.composedClasses = [];
|
|
9662
|
-
/* *
|
|
9663
|
-
*
|
|
9664
|
-
* Functions
|
|
9665
|
-
*
|
|
9666
|
-
* */
|
|
9667
|
-
/**
|
|
9668
|
-
* @private
|
|
9669
|
-
*/
|
|
9670
|
-
function compose(AxisClass) {
|
|
9671
|
-
if (ZoomComponent.composedClasses.indexOf(AxisClass) === -1) {
|
|
9672
|
-
ZoomComponent.composedClasses.push(AxisClass);
|
|
9673
|
-
var axisProto = AxisClass.prototype;
|
|
9674
|
-
axisProto.panStep = axisPanStep;
|
|
9675
|
-
}
|
|
9676
|
-
}
|
|
9677
|
-
ZoomComponent.compose = compose;
|
|
9678
|
-
/**
|
|
9679
|
-
* Pan along axis in a direction (1 or -1), optionally with a defined
|
|
9680
|
-
* granularity (number of steps it takes to walk across current view)
|
|
9681
|
-
*
|
|
9682
|
-
* @private
|
|
9683
|
-
* @function Highcharts.Axis#panStep
|
|
9684
|
-
*
|
|
9685
|
-
* @param {number} direction
|
|
9686
|
-
* @param {number} [granularity]
|
|
9687
|
-
*/
|
|
9688
|
-
function axisPanStep(direction, granularity) {
|
|
9689
|
-
var gran = granularity || 3;
|
|
9690
|
-
var extremes = this.getExtremes();
|
|
9691
|
-
var step = (extremes.max - extremes.min) / gran * direction;
|
|
9692
|
-
var newMax = extremes.max + step;
|
|
9693
|
-
var newMin = extremes.min + step;
|
|
9694
|
-
var size = newMax - newMin;
|
|
9695
|
-
if (direction < 0 && newMin < extremes.dataMin) {
|
|
9696
|
-
newMin = extremes.dataMin;
|
|
9697
|
-
newMax = newMin + size;
|
|
9698
|
-
}
|
|
9699
|
-
else if (direction > 0 && newMax > extremes.dataMax) {
|
|
9700
|
-
newMax = extremes.dataMax;
|
|
9701
|
-
newMin = newMax - size;
|
|
9702
|
-
}
|
|
9703
|
-
this.setExtremes(newMin, newMax);
|
|
9704
|
-
}
|
|
9705
|
-
})(ZoomComponent || (ZoomComponent = {}));
|
|
9706
9823
|
/* *
|
|
9707
9824
|
*
|
|
9708
9825
|
* Default Export
|
|
@@ -9749,15 +9866,15 @@
|
|
|
9749
9866
|
var testDiv = doc.createElement('div');
|
|
9750
9867
|
var imageSrc = 'data:image/gif;base64,' +
|
|
9751
9868
|
'R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';
|
|
9752
|
-
testDiv.style.backgroundImage = "url("
|
|
9869
|
+
testDiv.style.backgroundImage = "url(".concat(imageSrc, ")"); // #13071
|
|
9753
9870
|
doc.body.appendChild(testDiv);
|
|
9754
9871
|
var bi = (testDiv.currentStyle ||
|
|
9755
9872
|
win.getComputedStyle(testDiv)).backgroundImage;
|
|
9756
9873
|
doc.body.removeChild(testDiv);
|
|
9757
9874
|
return bi === 'none';
|
|
9758
9875
|
}
|
|
9759
|
-
//
|
|
9760
|
-
return
|
|
9876
|
+
// Other browsers use the forced-colors standard
|
|
9877
|
+
return win.matchMedia && win.matchMedia('(forced-colors: active)').matches;
|
|
9761
9878
|
}
|
|
9762
9879
|
/**
|
|
9763
9880
|
* Force high contrast theme for the chart. The default theme is defined in
|
|
@@ -10033,7 +10150,7 @@
|
|
|
10033
10150
|
|
|
10034
10151
|
return theme;
|
|
10035
10152
|
});
|
|
10036
|
-
_registerModule(_modules, 'Accessibility/Options/
|
|
10153
|
+
_registerModule(_modules, 'Accessibility/Options/A11yDefaults.js', [], function () {
|
|
10037
10154
|
/* *
|
|
10038
10155
|
*
|
|
10039
10156
|
* (c) 2009-2021 Øystein Moseng
|
|
@@ -10045,6 +10162,11 @@
|
|
|
10045
10162
|
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
10046
10163
|
*
|
|
10047
10164
|
* */
|
|
10165
|
+
/* *
|
|
10166
|
+
*
|
|
10167
|
+
* API Options
|
|
10168
|
+
*
|
|
10169
|
+
* */
|
|
10048
10170
|
/**
|
|
10049
10171
|
* Formatter callback for the accessibility announcement.
|
|
10050
10172
|
*
|
|
@@ -10125,7 +10247,17 @@
|
|
|
10125
10247
|
*/
|
|
10126
10248
|
accessibility: {
|
|
10127
10249
|
/**
|
|
10128
|
-
* Enable accessibility functionality for the chart.
|
|
10250
|
+
* Enable accessibility functionality for the chart. For more
|
|
10251
|
+
* information on how to include these features, and why this is
|
|
10252
|
+
* recommended, see [Highcharts Accessibility](https://www.highcharts.com/docs/accessibility/accessibility-module).
|
|
10253
|
+
*
|
|
10254
|
+
* Highcharts will by default emit a warning to the console if
|
|
10255
|
+
* the [accessibility module](https://code.highcharts.com/modules/accessibility.js)
|
|
10256
|
+
* is not loaded. Setting this option to `false` will override
|
|
10257
|
+
* and silence the warning.
|
|
10258
|
+
*
|
|
10259
|
+
* Once the module is loaded, setting this option to `false`
|
|
10260
|
+
* will disable the module for this chart.
|
|
10129
10261
|
*
|
|
10130
10262
|
* @since 5.0.0
|
|
10131
10263
|
*/
|
|
@@ -10239,12 +10371,43 @@
|
|
|
10239
10371
|
* of the series for a screen reader user. If `false` is returned,
|
|
10240
10372
|
* the default formatter will be used for that series.
|
|
10241
10373
|
*
|
|
10374
|
+
* @see [series.descriptionFormat](#accessibility.series.descriptionFormat)
|
|
10242
10375
|
* @see [series.description](#plotOptions.series.description)
|
|
10243
10376
|
*
|
|
10244
10377
|
* @type {Highcharts.ScreenReaderFormatterCallbackFunction<Highcharts.Series>}
|
|
10245
10378
|
* @since 8.0.0
|
|
10246
10379
|
* @apioption accessibility.series.descriptionFormatter
|
|
10247
10380
|
*/
|
|
10381
|
+
/**
|
|
10382
|
+
* Format to use for describing the data series group to assistive
|
|
10383
|
+
* technology - including screen readers.
|
|
10384
|
+
*
|
|
10385
|
+
* The series context and its subproperties are available under the
|
|
10386
|
+
* variable `{series}`, for example `{series.name}` for the series
|
|
10387
|
+
* name, and `{series.points.length}` for the number of data points.
|
|
10388
|
+
*
|
|
10389
|
+
* The chart context and its subproperties are available under the
|
|
10390
|
+
* variable `{chart}`, for example `{chart.series.length}` for the
|
|
10391
|
+
* number of series in the chart.
|
|
10392
|
+
*
|
|
10393
|
+
* `{seriesDescription}` refers to the automatic description of the
|
|
10394
|
+
* series type and number of points added by Highcharts by default.
|
|
10395
|
+
* `{authorDescription}` refers to the description added in
|
|
10396
|
+
* [series.description](#plotOptions.series.description) if one is
|
|
10397
|
+
* present. `{axisDescription}` refers to the description added if
|
|
10398
|
+
* the chart has multiple X or Y axes.
|
|
10399
|
+
*
|
|
10400
|
+
* Note that if [series.descriptionFormatter](#accessibility.series.descriptionFormatter)
|
|
10401
|
+
* is declared it will take precedence, and this option will be
|
|
10402
|
+
* overridden.
|
|
10403
|
+
*
|
|
10404
|
+
* @sample highcharts/accessibility/advanced-accessible
|
|
10405
|
+
* Accessible low-medium-high chart
|
|
10406
|
+
*
|
|
10407
|
+
* @type {string}
|
|
10408
|
+
* @since 10.1.0
|
|
10409
|
+
*/
|
|
10410
|
+
descriptionFormat: '{seriesDescription}{authorDescription}{axisDescription}',
|
|
10248
10411
|
/**
|
|
10249
10412
|
* Whether or not to add series descriptions to charts with a single
|
|
10250
10413
|
* series.
|
|
@@ -10346,6 +10509,8 @@
|
|
|
10346
10509
|
* to assistive technology - including screen readers.
|
|
10347
10510
|
* The point context is available as `{point}`.
|
|
10348
10511
|
*
|
|
10512
|
+
* Other available context variables include `{index}`, `{value}`, and `{xDescription}`.
|
|
10513
|
+
*
|
|
10349
10514
|
* Additionally, the series name, annotation info, and
|
|
10350
10515
|
* description added in `point.accessibility.description`
|
|
10351
10516
|
* is added by default if relevant. To override this, use the
|
|
@@ -10358,7 +10523,18 @@
|
|
|
10358
10523
|
* @type {string}
|
|
10359
10524
|
* @since 8.0.1
|
|
10360
10525
|
*/
|
|
10361
|
-
valueDescriptionFormat: '{
|
|
10526
|
+
valueDescriptionFormat: '{xDescription}{separator}{value}.',
|
|
10527
|
+
/**
|
|
10528
|
+
* Whether or not to describe points with the value `null` to
|
|
10529
|
+
* assistive technology, such as screen readers.
|
|
10530
|
+
*
|
|
10531
|
+
* @sample {highmaps} maps/demo/all-areas-as-null
|
|
10532
|
+
* Accessible map with null points
|
|
10533
|
+
*
|
|
10534
|
+
* @type {boolean}
|
|
10535
|
+
* @since 10.1.0
|
|
10536
|
+
*/
|
|
10537
|
+
describeNull: true
|
|
10362
10538
|
},
|
|
10363
10539
|
/**
|
|
10364
10540
|
* Amount of landmarks/regions to create for screen reader users. More
|
|
@@ -10527,7 +10703,7 @@
|
|
|
10527
10703
|
*/
|
|
10528
10704
|
style: {
|
|
10529
10705
|
/** @internal */
|
|
10530
|
-
color: "#335cad" /* highlightColor80 */,
|
|
10706
|
+
color: "#335cad" /* Palette.highlightColor80 */,
|
|
10531
10707
|
/** @internal */
|
|
10532
10708
|
lineWidth: 2,
|
|
10533
10709
|
/** @internal */
|
|
@@ -10602,7 +10778,16 @@
|
|
|
10602
10778
|
* @type {boolean|number}
|
|
10603
10779
|
* @since 8.0.0
|
|
10604
10780
|
*/
|
|
10605
|
-
pointNavigationEnabledThreshold: false
|
|
10781
|
+
pointNavigationEnabledThreshold: false,
|
|
10782
|
+
/**
|
|
10783
|
+
* Remember which point was focused even after navigating away
|
|
10784
|
+
* from the series, so that when navigating back to the series
|
|
10785
|
+
* you start at the last focused point.
|
|
10786
|
+
*
|
|
10787
|
+
* @type {boolean}
|
|
10788
|
+
* @since 10.1.0
|
|
10789
|
+
*/
|
|
10790
|
+
rememberPointFocus: false
|
|
10606
10791
|
}
|
|
10607
10792
|
},
|
|
10608
10793
|
/**
|
|
@@ -10866,7 +11051,7 @@
|
|
|
10866
11051
|
|
|
10867
11052
|
return Options;
|
|
10868
11053
|
});
|
|
10869
|
-
_registerModule(_modules, 'Accessibility/Options/
|
|
11054
|
+
_registerModule(_modules, 'Accessibility/Options/LangDefaults.js', [], function () {
|
|
10870
11055
|
/* *
|
|
10871
11056
|
*
|
|
10872
11057
|
* (c) 2009-2021 Øystein Moseng
|
|
@@ -10878,6 +11063,11 @@
|
|
|
10878
11063
|
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
10879
11064
|
*
|
|
10880
11065
|
* */
|
|
11066
|
+
/* *
|
|
11067
|
+
*
|
|
11068
|
+
* API Options
|
|
11069
|
+
*
|
|
11070
|
+
* */
|
|
10881
11071
|
var langOptions = {
|
|
10882
11072
|
/**
|
|
10883
11073
|
* Configure the accessibility strings in the chart. Requires the
|
|
@@ -10936,7 +11126,7 @@
|
|
|
10936
11126
|
* @since 8.0.0
|
|
10937
11127
|
*/
|
|
10938
11128
|
screenReaderSection: {
|
|
10939
|
-
beforeRegionLabel: '
|
|
11129
|
+
beforeRegionLabel: '',
|
|
10940
11130
|
afterRegionLabel: '',
|
|
10941
11131
|
/**
|
|
10942
11132
|
* Language options for annotation descriptions.
|
|
@@ -11102,12 +11292,12 @@
|
|
|
11102
11292
|
xAxisDescriptionPlural: 'The chart has {numAxes} X axes displaying {#each(names, -1) }and {names[-1]}.',
|
|
11103
11293
|
yAxisDescriptionSingular: 'The chart has 1 Y axis displaying {names[0]}. {ranges[0]}',
|
|
11104
11294
|
yAxisDescriptionPlural: 'The chart has {numAxes} Y axes displaying {#each(names, -1) }and {names[-1]}.',
|
|
11105
|
-
timeRangeDays: '
|
|
11106
|
-
timeRangeHours: '
|
|
11107
|
-
timeRangeMinutes: '
|
|
11108
|
-
timeRangeSeconds: '
|
|
11109
|
-
rangeFromTo: '
|
|
11110
|
-
rangeCategories: '
|
|
11295
|
+
timeRangeDays: 'Data range: {range} days.',
|
|
11296
|
+
timeRangeHours: 'Data range: {range} hours.',
|
|
11297
|
+
timeRangeMinutes: 'Data range: {range} minutes.',
|
|
11298
|
+
timeRangeSeconds: 'Data range: {range} seconds.',
|
|
11299
|
+
rangeFromTo: 'Data ranges from {rangeFrom} to {rangeTo}.',
|
|
11300
|
+
rangeCategories: 'Data range: {numCategories} categories.'
|
|
11111
11301
|
},
|
|
11112
11302
|
/**
|
|
11113
11303
|
* Exporting menu format strings for accessibility module.
|
|
@@ -11138,34 +11328,39 @@
|
|
|
11138
11328
|
* If a definition does not exist for the specific series type
|
|
11139
11329
|
* and mode, the 'default' lang definitions are used.
|
|
11140
11330
|
*
|
|
11331
|
+
* Chart and its subproperties can be accessed with the `{chart}` variable.
|
|
11332
|
+
* The series and its subproperties can be accessed with the `{series}` variable.
|
|
11333
|
+
*
|
|
11334
|
+
* The series index (starting from 1) can be accessed with the `{seriesNumber}` variable.
|
|
11335
|
+
*
|
|
11141
11336
|
* @since 6.0.6
|
|
11142
11337
|
*/
|
|
11143
11338
|
summary: {
|
|
11144
11339
|
/* eslint-disable max-len */
|
|
11145
|
-
'default': '{name}, series {
|
|
11146
|
-
defaultCombination: '{name}, series {
|
|
11147
|
-
line: '{name}, line {
|
|
11148
|
-
lineCombination: '{name}, series {
|
|
11149
|
-
spline: '{name}, line {
|
|
11150
|
-
splineCombination: '{name}, series {
|
|
11151
|
-
column: '{name}, bar series {
|
|
11152
|
-
columnCombination: '{name}, series {
|
|
11153
|
-
bar: '{name}, bar series {
|
|
11154
|
-
barCombination: '{name}, series {
|
|
11155
|
-
pie: '{name}, pie {
|
|
11156
|
-
pieCombination: '{name}, series {
|
|
11157
|
-
scatter: '{name}, scatter plot {
|
|
11158
|
-
scatterCombination: '{name}, series {
|
|
11159
|
-
boxplot: '{name}, boxplot {
|
|
11160
|
-
boxplotCombination: '{name}, series {
|
|
11161
|
-
bubble: '{name}, bubble series {
|
|
11162
|
-
bubbleCombination: '{name}, series {
|
|
11163
|
-
map: '{name}, map {
|
|
11164
|
-
mapCombination: '{name}, series {
|
|
11165
|
-
mapline: '{name}, line {
|
|
11166
|
-
maplineCombination: '{name}, series {
|
|
11167
|
-
mapbubble: '{name}, bubble series {
|
|
11168
|
-
mapbubbleCombination: '{name}, series {
|
|
11340
|
+
'default': '{series.name}, series {seriesNumber} of {chart.series.length} with {series.points.length} data {#plural(series.points.length, points, point)}.',
|
|
11341
|
+
defaultCombination: '{series.name}, series {seriesNumber} of {chart.series.length} with {series.points.length} data {#plural(series.points.length, points, point)}.',
|
|
11342
|
+
line: '{series.name}, line {seriesNumber} of {chart.series.length} with {series.points.length} data {#plural(series.points.length, points, point)}.',
|
|
11343
|
+
lineCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Line with {series.points.length} data {#plural(series.points.length, points, point)}.',
|
|
11344
|
+
spline: '{series.name}, line {seriesNumber} of {chart.series.length} with {series.points.length} data {#plural(series.points.length, points, point)}.',
|
|
11345
|
+
splineCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Line with {series.points.length} data {#plural(series.points.length, points, point)}.',
|
|
11346
|
+
column: '{series.name}, bar series {seriesNumber} of {chart.series.length} with {series.points.length} {#plural(series.points.length, bars, bar)}.',
|
|
11347
|
+
columnCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Bar series with {series.points.length} {#plural(series.points.length, bars, bar)}.',
|
|
11348
|
+
bar: '{series.name}, bar series {seriesNumber} of {chart.series.length} with {series.points.length} {#plural(series.points.length, bars, bar)}.',
|
|
11349
|
+
barCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Bar series with {series.points.length} {#plural(series.points.length, bars, bar)}.',
|
|
11350
|
+
pie: '{series.name}, pie {seriesNumber} of {chart.series.length} with {series.points.length} {#plural(series.points.length, slices, slice)}.',
|
|
11351
|
+
pieCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Pie with {series.points.length} {#plural(series.points.length, slices, slice)}.',
|
|
11352
|
+
scatter: '{series.name}, scatter plot {seriesNumber} of {chart.series.length} with {series.points.length} {#plural(series.points.length, points, point)}.',
|
|
11353
|
+
scatterCombination: '{series.name}, series {seriesNumber} of {chart.series.length}, scatter plot with {series.points.length} {#plural(series.points.length, points, point)}.',
|
|
11354
|
+
boxplot: '{series.name}, boxplot {seriesNumber} of {chart.series.length} with {series.points.length} {#plural(series.points.length, boxes, box)}.',
|
|
11355
|
+
boxplotCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Boxplot with {series.points.length} {#plural(series.points.length, boxes, box)}.',
|
|
11356
|
+
bubble: '{series.name}, bubble series {seriesNumber} of {chart.series.length} with {series.points.length} {#plural(series.points.length, bubbles, bubble)}.',
|
|
11357
|
+
bubbleCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Bubble series with {series.points.length} {#plural(series.points.length, bubbles, bubble)}.',
|
|
11358
|
+
map: '{series.name}, map {seriesNumber} of {chart.series.length} with {series.points.length} {#plural(series.points.length, areas, area)}.',
|
|
11359
|
+
mapCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Map with {series.points.length} {#plural(series.points.length, areas, area)}.',
|
|
11360
|
+
mapline: '{series.name}, line {seriesNumber} of {chart.series.length} with {series.points.length} data {#plural(series.points.length, points, point)}.',
|
|
11361
|
+
maplineCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Line with {series.points.length} data {#plural(series.points.length, points, point)}.',
|
|
11362
|
+
mapbubble: '{series.name}, bubble series {seriesNumber} of {chart.series.length} with {series.points.length} {#plural(series.points.length, bubbles, bubble)}.',
|
|
11363
|
+
mapbubbleCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Bubble series with {series.points.length} {#plural(series.points.length, bubbles, bubble)}.'
|
|
11169
11364
|
},
|
|
11170
11365
|
/**
|
|
11171
11366
|
* User supplied description text. This is added in the point
|
|
@@ -11204,6 +11399,11 @@
|
|
|
11204
11399
|
}
|
|
11205
11400
|
}
|
|
11206
11401
|
};
|
|
11402
|
+
/* *
|
|
11403
|
+
*
|
|
11404
|
+
* Default Export
|
|
11405
|
+
*
|
|
11406
|
+
* */
|
|
11207
11407
|
|
|
11208
11408
|
return langOptions;
|
|
11209
11409
|
});
|
|
@@ -11271,6 +11471,11 @@
|
|
|
11271
11471
|
/* eslint-enable max-len */
|
|
11272
11472
|
var error = U.error,
|
|
11273
11473
|
pick = U.pick;
|
|
11474
|
+
/* *
|
|
11475
|
+
*
|
|
11476
|
+
* Functions
|
|
11477
|
+
*
|
|
11478
|
+
* */
|
|
11274
11479
|
/* eslint-disable valid-jsdoc */
|
|
11275
11480
|
/**
|
|
11276
11481
|
* Set a new option on a root prop, where the option is defined as an array of
|
|
@@ -11330,7 +11535,7 @@
|
|
|
11330
11535
|
var _a;
|
|
11331
11536
|
if (chartOptions[prop]) {
|
|
11332
11537
|
a11yOptions[prop] = chartOptions[prop];
|
|
11333
|
-
error(32, false, chart, (_a = {}, _a["chart."
|
|
11538
|
+
error(32, false, chart, (_a = {}, _a["chart.".concat(prop)] = "use accessibility.".concat(prop), _a));
|
|
11334
11539
|
}
|
|
11335
11540
|
});
|
|
11336
11541
|
}
|
|
@@ -11387,7 +11592,7 @@
|
|
|
11387
11592
|
oldOption === 'skipKeyboardNavigation' ?
|
|
11388
11593
|
!optionVal : optionVal);
|
|
11389
11594
|
error(32, false, chart, (_a = {},
|
|
11390
|
-
_a["series."
|
|
11595
|
+
_a["series.".concat(oldOption)] = ('series.' +
|
|
11391
11596
|
oldToNewSeriesOptions[oldOption].join('.')),
|
|
11392
11597
|
_a));
|
|
11393
11598
|
}
|
|
@@ -11462,10 +11667,15 @@
|
|
|
11462
11667
|
copyDeprecatedKeyboardNavigationOptions(chart);
|
|
11463
11668
|
copyDeprecatedLangOptions(chart);
|
|
11464
11669
|
}
|
|
11670
|
+
/* *
|
|
11671
|
+
*
|
|
11672
|
+
* Default Export
|
|
11673
|
+
*
|
|
11674
|
+
* */
|
|
11465
11675
|
|
|
11466
11676
|
return copyDeprecatedOptions;
|
|
11467
11677
|
});
|
|
11468
|
-
_registerModule(_modules, 'Accessibility/Accessibility.js', [_modules['Core/DefaultOptions.js'], _modules['Core/Globals.js'], _modules['Core/Utilities.js'], _modules['Accessibility/A11yI18n.js'], _modules['Accessibility/Components/ContainerComponent.js'], _modules['Accessibility/FocusBorder.js'], _modules['Accessibility/Components/InfoRegionsComponent.js'], _modules['Accessibility/KeyboardNavigation.js'], _modules['Accessibility/Components/LegendComponent.js'], _modules['Accessibility/Components/MenuComponent.js'], _modules['Accessibility/Components/SeriesComponent/NewDataAnnouncer.js'], _modules['Accessibility/ProxyProvider.js'], _modules['Accessibility/Components/RangeSelectorComponent.js'], _modules['Accessibility/Components/SeriesComponent/SeriesComponent.js'], _modules['Accessibility/Components/ZoomComponent.js'], _modules['Accessibility/HighContrastMode.js'], _modules['Accessibility/HighContrastTheme.js'], _modules['Accessibility/Options/
|
|
11678
|
+
_registerModule(_modules, 'Accessibility/Accessibility.js', [_modules['Core/DefaultOptions.js'], _modules['Core/Globals.js'], _modules['Core/Utilities.js'], _modules['Accessibility/A11yI18n.js'], _modules['Accessibility/Components/ContainerComponent.js'], _modules['Accessibility/FocusBorder.js'], _modules['Accessibility/Components/InfoRegionsComponent.js'], _modules['Accessibility/KeyboardNavigation.js'], _modules['Accessibility/Components/LegendComponent.js'], _modules['Accessibility/Components/MenuComponent.js'], _modules['Accessibility/Components/SeriesComponent/NewDataAnnouncer.js'], _modules['Accessibility/ProxyProvider.js'], _modules['Accessibility/Components/RangeSelectorComponent.js'], _modules['Accessibility/Components/SeriesComponent/SeriesComponent.js'], _modules['Accessibility/Components/ZoomComponent.js'], _modules['Accessibility/HighContrastMode.js'], _modules['Accessibility/HighContrastTheme.js'], _modules['Accessibility/Options/A11yDefaults.js'], _modules['Accessibility/Options/LangDefaults.js'], _modules['Accessibility/Options/DeprecatedOptions.js']], function (D, H, U, A11yI18n, ContainerComponent, FocusBorder, InfoRegionsComponent, KeyboardNavigation, LegendComponent, MenuComponent, NewDataAnnouncer, ProxyProvider, RangeSelectorComponent, SeriesComponent, ZoomComponent, whcm, highContrastTheme, defaultOptionsA11Y, defaultLangOptions, copyDeprecatedOptions) {
|
|
11469
11679
|
/* *
|
|
11470
11680
|
*
|
|
11471
11681
|
* (c) 2009-2021 Øystein Moseng
|
|
@@ -11776,7 +11986,6 @@
|
|
|
11776
11986
|
LegendComponent.compose(ChartClass, LegendClass);
|
|
11777
11987
|
MenuComponent.compose(ChartClass);
|
|
11778
11988
|
SeriesComponent.compose(ChartClass, PointClass, SeriesClass);
|
|
11779
|
-
ZoomComponent.compose(AxisClass);
|
|
11780
11989
|
// RangeSelector
|
|
11781
11990
|
A11yI18n.compose(ChartClass);
|
|
11782
11991
|
FocusBorder.compose(ChartClass, SVGElementClass);
|
|
@@ -11797,7 +12006,7 @@
|
|
|
11797
12006
|
});
|
|
11798
12007
|
});
|
|
11799
12008
|
// Direct updates (events happen after render)
|
|
11800
|
-
['
|
|
12009
|
+
['afterApplyDrilldown', 'drillupall'].forEach(function (event) {
|
|
11801
12010
|
addEvent(ChartClass, event, function chartOnAfterDrilldown() {
|
|
11802
12011
|
var a11y = this.accessibility;
|
|
11803
12012
|
if (a11y && !a11y.zombie) {
|