highcharts 9.3.3 → 10.0.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/Accessibility.js +1 -1
- package/es-modules/Accessibility/Components/LegendComponent.js +31 -23
- package/es-modules/Accessibility/Components/MenuComponent.js +4 -5
- package/es-modules/Accessibility/Components/RangeSelectorComponent.js +2 -2
- 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 +0 -1
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +3 -3
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +61 -29
- package/es-modules/Accessibility/Components/ZoomComponent.js +13 -10
- package/es-modules/Accessibility/HighContrastMode.js +2 -2
- package/es-modules/Accessibility/KeyboardNavigation.js +113 -98
- package/es-modules/Accessibility/ProxyElement.js +14 -6
- package/es-modules/Accessibility/ProxyProvider.js +10 -2
- package/es-modules/Core/Axis/Axis.js +150 -46
- package/es-modules/Core/Axis/Color/ColorAxis.js +22 -5
- package/es-modules/Core/Axis/GridAxis.js +10 -9
- package/es-modules/Core/Axis/TreeGridTick.js +11 -0
- package/es-modules/Core/Chart/Chart3D.js +1 -11
- package/es-modules/Core/Chart/ChartDefaults.js +32 -11
- package/es-modules/Core/Chart/MapChart.js +1 -6
- package/es-modules/Core/DefaultOptions.js +2 -0
- package/es-modules/Core/Geometry/PolygonClip.js +84 -0
- package/es-modules/Core/Globals.js +4 -18
- package/es-modules/Core/HttpUtilities.js +13 -8
- package/es-modules/Core/Legend/Legend.js +10 -8
- package/es-modules/Core/Navigator.js +9 -6
- package/es-modules/Core/Pointer.js +15 -11
- package/es-modules/Core/Renderer/HTML/AST.js +62 -5
- package/es-modules/Core/Renderer/SVG/SVGElement.js +25 -41
- package/es-modules/Core/Renderer/SVG/SVGElement3D.js +17 -5
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +17 -17
- package/es-modules/Core/Renderer/SVG/TextBuilder.js +12 -10
- package/es-modules/Core/Series/DataLabel.js +11 -3
- package/es-modules/Core/Series/Point.js +2 -2
- package/es-modules/Core/Series/Series.js +33 -15
- package/es-modules/Core/Series/SeriesDefaults.js +4 -1
- package/es-modules/Core/Tooltip.js +14 -31
- package/es-modules/Core/Utilities.js +28 -28
- package/es-modules/Extensions/Annotations/Annotations.js +7 -0
- package/es-modules/Extensions/Annotations/MockPoint.js +1 -1
- package/es-modules/Extensions/Annotations/NavigationBindings.js +1 -1
- package/es-modules/Extensions/Annotations/Popup.js +1 -1
- package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +5 -3
- package/es-modules/Extensions/Boost/BoostInit.js +6 -1
- 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/Breadcrumbs.js +874 -0
- package/es-modules/Extensions/Data.js +26 -14
- package/es-modules/Extensions/DataGrouping.js +5 -2
- package/es-modules/Extensions/DraggablePoints.js +9 -7
- package/es-modules/Extensions/Drilldown.js +147 -94
- package/es-modules/Extensions/Exporting/Exporting.js +9 -7
- package/es-modules/Extensions/Exporting/ExportingDefaults.js +49 -1
- package/es-modules/Extensions/GeoJSON.js +149 -124
- package/es-modules/Extensions/MarkerClusters.js +34 -20
- 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 +1 -1
- package/es-modules/Extensions/ScrollablePlotArea.js +5 -1
- package/es-modules/Extensions/Stacking.js +3 -2
- 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 -8
- package/es-modules/Maps/MapPointer.js +16 -0
- package/es-modules/Maps/MapUtilities.js +56 -0
- package/es-modules/Maps/MapView.js +606 -135
- package/es-modules/Maps/MapViewInsetsOptionsDefault.js +148 -0
- package/es-modules/Maps/MapViewOptionsDefault.js +58 -20
- package/es-modules/Maps/Projection.js +169 -77
- 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 +77 -0
- package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +581 -0
- package/es-modules/Series/Column/ColumnSeries.js +4 -3
- package/es-modules/Series/DataModifyComposition.js +1 -0
- package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +2 -2
- package/es-modules/Series/DrawPointComposition.js +7 -4
- package/es-modules/Series/Lollipop/LollipopSeries.js +1 -1
- package/es-modules/Series/Map/MapPoint.js +24 -1
- package/es-modules/Series/Map/MapSeries.js +196 -169
- package/es-modules/Series/MapBubble/MapBubblePoint.js +16 -24
- package/es-modules/Series/MapBubble/MapBubbleSeries.js +11 -0
- package/es-modules/Series/MapPoint/MapPointPoint.js +2 -8
- package/es-modules/Series/MapPoint/MapPointSeries.js +36 -14
- package/es-modules/Series/NodesComposition.js +60 -13
- package/es-modules/Series/OHLC/OHLCSeries.js +7 -0
- package/es-modules/Series/Organization/OrganizationPoint.js +68 -2
- package/es-modules/Series/Organization/OrganizationSeries.js +79 -25
- package/es-modules/Series/Pie/PiePoint.js +12 -5
- package/es-modules/Series/Pie3D/Pie3DSeries.js +19 -0
- package/es-modules/Series/Sankey/SankeyColumnComposition.js +193 -0
- package/es-modules/Series/Sankey/SankeyPoint.js +37 -1
- package/es-modules/Series/Sankey/SankeySeries.js +10 -127
- package/es-modules/Series/Scatter/ScatterSeries.js +1 -1
- package/es-modules/Series/Sunburst/SunburstSeries.js +13 -2
- package/es-modules/Series/Treemap/TreemapSeries.js +88 -80
- package/es-modules/Series/Waterfall/WaterfallSeries.js +2 -0
- package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +9 -2
- 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 +1 -1
- 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 +1 -1
- package/es-modules/masters/modules/annotations.src.js +1 -1
- 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 +1 -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 +1 -1
- package/es-modules/masters/modules/solid-gauge.src.js +1 -1
- package/es-modules/masters/modules/sonification.src.js +1 -1
- 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 +50 -20
- package/highcharts-gantt.js +800 -795
- package/highcharts-gantt.js.map +1 -1
- package/highcharts-gantt.src.js +528 -290
- package/highcharts-more.js +195 -194
- package/highcharts-more.js.map +1 -1
- package/highcharts-more.src.js +13 -2
- package/highcharts.d.ts +2162 -504
- package/highcharts.js +586 -581
- package/highcharts.js.map +1 -1
- package/highcharts.src.d.ts +2162 -504
- package/highcharts.src.js +494 -272
- package/highmaps.js +753 -723
- package/highmaps.js.map +1 -1
- package/highmaps.src.js +3603 -2117
- package/highstock.js +790 -786
- package/highstock.js.map +1 -1
- package/highstock.src.js +519 -283
- package/indicators/acceleration-bands.js +12 -11
- package/indicators/acceleration-bands.js.map +1 -1
- package/indicators/acceleration-bands.src.js +11 -2
- 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 +11 -2
- package/indicators/apo.js +5 -5
- package/indicators/apo.js.map +1 -1
- package/indicators/apo.src.js +11 -2
- package/indicators/aroon-oscillator.js +10 -10
- package/indicators/aroon-oscillator.js.map +1 -1
- package/indicators/aroon-oscillator.src.js +11 -2
- package/indicators/aroon.js +11 -11
- package/indicators/aroon.js.map +1 -1
- package/indicators/aroon.src.js +11 -2
- package/indicators/atr.js +5 -5
- package/indicators/atr.js.map +1 -1
- package/indicators/atr.src.js +11 -2
- package/indicators/bollinger-bands.js +12 -12
- package/indicators/bollinger-bands.js.map +1 -1
- package/indicators/bollinger-bands.src.js +11 -2
- 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 +11 -2
- 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.js +195 -194
- package/indicators/indicators-all.js.map +1 -1
- package/indicators/indicators-all.src.js +21 -5
- package/indicators/indicators.js +13 -12
- package/indicators/indicators.js.map +1 -1
- package/indicators/indicators.src.js +21 -5
- package/indicators/keltner-channels.js +12 -11
- package/indicators/keltner-channels.js.map +1 -1
- package/indicators/keltner-channels.src.js +11 -2
- package/indicators/klinger.js +13 -13
- package/indicators/klinger.js.map +1 -1
- package/indicators/klinger.src.js +11 -2
- package/indicators/macd.js +12 -11
- package/indicators/macd.js.map +1 -1
- package/indicators/macd.src.js +11 -2
- 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.js +11 -11
- package/indicators/price-channel.js.map +1 -1
- package/indicators/price-channel.src.js +11 -2
- 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.js +12 -12
- package/indicators/stochastic.js.map +1 -1
- package/indicators/stochastic.src.js +11 -2
- package/indicators/supertrend.js +10 -10
- package/indicators/supertrend.js.map +1 -1
- package/indicators/supertrend.src.js +11 -2
- 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 +231 -229
- package/modules/accessibility.js.map +1 -1
- package/modules/accessibility.src.js +278 -197
- package/modules/annotations-advanced.js +144 -144
- package/modules/annotations-advanced.js.map +1 -1
- package/modules/annotations-advanced.src.js +26 -8
- package/modules/annotations.js +79 -79
- package/modules/annotations.js.map +1 -1
- package/modules/annotations.src.js +21 -5
- package/modules/arc-diagram.js +25 -0
- package/modules/arc-diagram.js.map +1 -0
- package/modules/arc-diagram.src.js +770 -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 +15 -15
- package/modules/boost-canvas.js.map +1 -1
- package/modules/boost-canvas.src.js +11 -2
- package/modules/boost.js +80 -79
- package/modules/boost.js.map +1 -1
- package/modules/boost.src.js +71 -43
- 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 +11 -2
- package/modules/coloraxis.js +24 -24
- package/modules/coloraxis.js.map +1 -1
- package/modules/coloraxis.src.js +33 -7
- package/modules/current-date-indicator.js +5 -4
- package/modules/current-date-indicator.js.map +1 -1
- package/modules/current-date-indicator.src.js +11 -2
- package/modules/cylinder.js +11 -11
- package/modules/cylinder.js.map +1 -1
- package/modules/cylinder.src.js +11 -2
- package/modules/data.js +34 -33
- package/modules/data.js.map +1 -1
- package/modules/data.src.js +59 -32
- package/modules/datagrouping.js +21 -20
- package/modules/datagrouping.js.map +1 -1
- package/modules/datagrouping.src.js +16 -4
- package/modules/debugger.js +6 -6
- package/modules/debugger.js.map +1 -1
- package/modules/debugger.src.js +11 -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 +11 -2
- 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 +1090 -105
- package/modules/dumbbell.js +17 -17
- package/modules/dumbbell.js.map +1 -1
- package/modules/dumbbell.src.js +11 -2
- package/modules/export-data.js +21 -20
- package/modules/export-data.js.map +1 -1
- package/modules/export-data.src.js +11 -2
- package/modules/exporting.js +39 -39
- package/modules/exporting.js.map +1 -1
- package/modules/exporting.src.js +82 -18
- package/modules/full-screen.js +8 -7
- package/modules/full-screen.js.map +1 -1
- package/modules/full-screen.src.js +11 -2
- package/modules/funnel.js +12 -12
- package/modules/funnel.js.map +1 -1
- package/modules/funnel.src.js +11 -2
- package/modules/funnel3d.js +21 -21
- package/modules/funnel3d.js.map +1 -1
- package/modules/funnel3d.src.js +11 -2
- package/modules/gantt.js +217 -217
- package/modules/gantt.js.map +1 -1
- package/modules/gantt.src.js +45 -20
- package/modules/grid-axis.js +23 -23
- package/modules/grid-axis.js.map +1 -1
- package/modules/grid-axis.src.js +22 -11
- package/modules/heatmap.js +40 -39
- package/modules/heatmap.js.map +1 -1
- package/modules/heatmap.src.js +33 -7
- 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 +11 -2
- 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 +169 -144
- package/modules/map.js.map +1 -1
- package/modules/map.src.d.ts +80 -43
- package/modules/map.src.js +7960 -6687
- package/modules/marker-clusters.js +36 -36
- package/modules/marker-clusters.js.map +1 -1
- package/modules/marker-clusters.src.js +47 -23
- package/modules/networkgraph.d.ts +5 -0
- package/modules/networkgraph.js +49 -48
- package/modules/networkgraph.js.map +1 -1
- package/modules/networkgraph.src.d.ts +5 -0
- package/modules/networkgraph.src.js +77 -15
- 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 +11 -2
- package/modules/offline-exporting.js +20 -18
- package/modules/offline-exporting.js.map +1 -1
- package/modules/offline-exporting.src.js +126 -25
- 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 +12 -3
- package/modules/organization.js +16 -14
- package/modules/organization.js.map +1 -1
- package/modules/organization.src.js +166 -32
- 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 +11 -2
- 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 +14 -14
- package/modules/pattern-fill.js.map +1 -1
- package/modules/pattern-fill.src.js +11 -2
- 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 +5 -0
- package/modules/sankey.js +32 -29
- package/modules/sankey.js.map +1 -1
- package/modules/sankey.src.d.ts +5 -0
- package/modules/sankey.src.js +338 -156
- package/modules/series-label.js +18 -17
- package/modules/series-label.js.map +1 -1
- package/modules/series-label.src.js +11 -2
- package/modules/solid-gauge.js +10 -10
- package/modules/solid-gauge.js.map +1 -1
- package/modules/solid-gauge.src.js +11 -2
- package/modules/sonification.js +59 -59
- package/modules/sonification.js.map +1 -1
- package/modules/sonification.src.js +11 -2
- 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 +78 -78
- package/modules/stock-tools.js.map +1 -1
- package/modules/stock-tools.src.js +21 -5
- package/modules/stock.js +162 -162
- package/modules/stock.js.map +1 -1
- package/modules/stock.src.js +36 -13
- 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 +1049 -96
- 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 +11 -2
- package/modules/treegrid.js +57 -56
- package/modules/treegrid.js.map +1 -1
- package/modules/treegrid.src.js +33 -11
- package/modules/treemap.d.ts +3 -0
- package/modules/treemap.js +53 -41
- package/modules/treemap.js.map +1 -1
- package/modules/treemap.src.d.ts +3 -0
- package/modules/treemap.src.js +1039 -95
- 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 +18 -6
- 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 +18 -6
- 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/Maps/ProjectionDefinition.js +0 -9
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Highcharts JS
|
|
2
|
+
* @license Highcharts JS v10.0.0 (2022-03-07)
|
|
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) {
|
|
@@ -2758,7 +2767,6 @@
|
|
|
2758
2767
|
if (menu) {
|
|
2759
2768
|
menu.setAttribute('aria-hidden', 'true');
|
|
2760
2769
|
}
|
|
2761
|
-
this.isExportMenuShown = false;
|
|
2762
2770
|
this.setExportButtonExpandedState('false');
|
|
2763
2771
|
};
|
|
2764
2772
|
/**
|
|
@@ -2771,7 +2779,6 @@
|
|
|
2771
2779
|
this.addAccessibleContextMenuAttribs();
|
|
2772
2780
|
unhideChartElementFromAT(chart, menu);
|
|
2773
2781
|
}
|
|
2774
|
-
this.isExportMenuShown = true;
|
|
2775
2782
|
this.setExportButtonExpandedState('true');
|
|
2776
2783
|
};
|
|
2777
2784
|
/**
|
|
@@ -2817,7 +2824,8 @@
|
|
|
2817
2824
|
chart: chart,
|
|
2818
2825
|
chartTitle: getChartTitle(chart)
|
|
2819
2826
|
}),
|
|
2820
|
-
'aria-expanded': false
|
|
2827
|
+
'aria-expanded': false,
|
|
2828
|
+
title: chart.options.lang.contextButtonTitle || null
|
|
2821
2829
|
});
|
|
2822
2830
|
}
|
|
2823
2831
|
};
|
|
@@ -2971,7 +2979,7 @@
|
|
|
2971
2979
|
var chart = this.chart;
|
|
2972
2980
|
var curHighlightedItem = chart.exportDivElements[chart.highlightedExportItemIx];
|
|
2973
2981
|
var exportButtonElement = getExportMenuButtonElement(chart).element;
|
|
2974
|
-
if (
|
|
2982
|
+
if (chart.openMenu) {
|
|
2975
2983
|
this.fakeClickEvent(curHighlightedItem);
|
|
2976
2984
|
}
|
|
2977
2985
|
else {
|
|
@@ -3041,7 +3049,7 @@
|
|
|
3041
3049
|
function chartHideExportMenu() {
|
|
3042
3050
|
var chart = this,
|
|
3043
3051
|
exportList = chart.exportDivElements;
|
|
3044
|
-
if (exportList && chart.exportContextMenu) {
|
|
3052
|
+
if (exportList && chart.exportContextMenu && chart.openMenu) {
|
|
3045
3053
|
// Reset hover states etc.
|
|
3046
3054
|
exportList.forEach(function (el) {
|
|
3047
3055
|
if (el &&
|
|
@@ -3239,6 +3247,65 @@
|
|
|
3239
3247
|
this.removeExitAnchor();
|
|
3240
3248
|
}
|
|
3241
3249
|
};
|
|
3250
|
+
/**
|
|
3251
|
+
* We use an exit anchor to move focus out of chart whenever we want, by
|
|
3252
|
+
* setting focus to this div and not preventing the default tab action. We
|
|
3253
|
+
* also use this when users come back into the chart by tabbing back, in
|
|
3254
|
+
* order to navigate from the end of the chart.
|
|
3255
|
+
* @private
|
|
3256
|
+
*/
|
|
3257
|
+
KeyboardNavigation.prototype.updateExitAnchor = function () {
|
|
3258
|
+
var endMarkerId = "highcharts-end-of-chart-marker-" + this.chart.index,
|
|
3259
|
+
endMarker = getElement(endMarkerId);
|
|
3260
|
+
this.removeExitAnchor();
|
|
3261
|
+
if (endMarker) {
|
|
3262
|
+
this.makeElementAnExitAnchor(endMarker);
|
|
3263
|
+
this.exitAnchor = endMarker;
|
|
3264
|
+
}
|
|
3265
|
+
else {
|
|
3266
|
+
this.createExitAnchor();
|
|
3267
|
+
}
|
|
3268
|
+
};
|
|
3269
|
+
/**
|
|
3270
|
+
* Move to prev/next module.
|
|
3271
|
+
* @private
|
|
3272
|
+
* @param {number} direction
|
|
3273
|
+
* Direction to move. +1 for next, -1 for prev.
|
|
3274
|
+
* @return {boolean}
|
|
3275
|
+
* True if there was a valid module in direction.
|
|
3276
|
+
*/
|
|
3277
|
+
KeyboardNavigation.prototype.move = function (direction) {
|
|
3278
|
+
var curModule = this.modules && this.modules[this.currentModuleIx];
|
|
3279
|
+
if (curModule && curModule.terminate) {
|
|
3280
|
+
curModule.terminate(direction);
|
|
3281
|
+
}
|
|
3282
|
+
// Remove existing focus border if any
|
|
3283
|
+
if (this.chart.focusElement) {
|
|
3284
|
+
this.chart.focusElement.removeFocusBorder();
|
|
3285
|
+
}
|
|
3286
|
+
this.currentModuleIx += direction;
|
|
3287
|
+
var newModule = this.modules && this.modules[this.currentModuleIx];
|
|
3288
|
+
if (newModule) {
|
|
3289
|
+
if (newModule.validate && !newModule.validate()) {
|
|
3290
|
+
return this.move(direction); // Invalid module, recurse
|
|
3291
|
+
}
|
|
3292
|
+
if (newModule.init) {
|
|
3293
|
+
newModule.init(direction); // Valid module, init it
|
|
3294
|
+
return true;
|
|
3295
|
+
}
|
|
3296
|
+
}
|
|
3297
|
+
// No module
|
|
3298
|
+
this.currentModuleIx = 0; // Reset counter
|
|
3299
|
+
// Set focus to chart or exit anchor depending on direction
|
|
3300
|
+
this.exiting = true;
|
|
3301
|
+
if (direction > 0) {
|
|
3302
|
+
this.exitAnchor.focus();
|
|
3303
|
+
}
|
|
3304
|
+
else {
|
|
3305
|
+
this.tabindexContainer.focus();
|
|
3306
|
+
}
|
|
3307
|
+
return false;
|
|
3308
|
+
};
|
|
3242
3309
|
/**
|
|
3243
3310
|
* Function to run on container focus
|
|
3244
3311
|
* @private
|
|
@@ -3252,30 +3319,37 @@
|
|
|
3252
3319
|
if (!this.exiting &&
|
|
3253
3320
|
!this.tabbingInBackwards &&
|
|
3254
3321
|
!this.isClickingChart &&
|
|
3255
|
-
!focusComesFromChart
|
|
3256
|
-
this.
|
|
3257
|
-
|
|
3322
|
+
!focusComesFromChart) {
|
|
3323
|
+
var ix = this.getFirstValidModuleIx();
|
|
3324
|
+
if (ix !== null) {
|
|
3325
|
+
this.currentModuleIx = ix;
|
|
3326
|
+
this.modules[ix].init(1);
|
|
3327
|
+
}
|
|
3258
3328
|
}
|
|
3259
3329
|
this.exiting = false;
|
|
3260
3330
|
};
|
|
3261
3331
|
/**
|
|
3262
|
-
* Reset chart navigation state if we click
|
|
3263
|
-
*
|
|
3332
|
+
* Reset chart navigation state if we mouse click and it's not already
|
|
3333
|
+
* reset. Reset fully if outside the chart, otherwise just hide focus
|
|
3334
|
+
* indicator.
|
|
3264
3335
|
* @private
|
|
3265
3336
|
*/
|
|
3266
3337
|
KeyboardNavigation.prototype.onMouseUp = function () {
|
|
3267
3338
|
delete this.isClickingChart;
|
|
3268
|
-
if (!this.keyboardReset
|
|
3269
|
-
var chart = this.chart
|
|
3270
|
-
|
|
3271
|
-
|
|
3272
|
-
|
|
3273
|
-
curMod.terminate
|
|
3339
|
+
if (!this.keyboardReset) {
|
|
3340
|
+
var chart = this.chart;
|
|
3341
|
+
if (!this.pointerIsOverChart) {
|
|
3342
|
+
var curMod = this.modules &&
|
|
3343
|
+
this.modules[this.currentModuleIx || 0];
|
|
3344
|
+
if (curMod && curMod.terminate) {
|
|
3345
|
+
curMod.terminate();
|
|
3346
|
+
}
|
|
3347
|
+
this.currentModuleIx = 0;
|
|
3274
3348
|
}
|
|
3275
3349
|
if (chart.focusElement) {
|
|
3276
3350
|
chart.focusElement.removeFocusBorder();
|
|
3351
|
+
delete chart.focusElement;
|
|
3277
3352
|
}
|
|
3278
|
-
this.currentModuleIx = 0;
|
|
3279
3353
|
this.keyboardReset = true;
|
|
3280
3354
|
}
|
|
3281
3355
|
};
|
|
@@ -3302,10 +3376,10 @@
|
|
|
3302
3376
|
preventDefault = true;
|
|
3303
3377
|
}
|
|
3304
3378
|
else if (response === curNavModule.response.prev) {
|
|
3305
|
-
preventDefault = this.
|
|
3379
|
+
preventDefault = this.move(-1);
|
|
3306
3380
|
}
|
|
3307
3381
|
else if (response === curNavModule.response.next) {
|
|
3308
|
-
preventDefault = this.
|
|
3382
|
+
preventDefault = this.move(1);
|
|
3309
3383
|
}
|
|
3310
3384
|
if (preventDefault) {
|
|
3311
3385
|
e.preventDefault();
|
|
@@ -3313,79 +3387,6 @@
|
|
|
3313
3387
|
}
|
|
3314
3388
|
}
|
|
3315
3389
|
};
|
|
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
3390
|
/**
|
|
3390
3391
|
* Chart container should have tabindex if navigation is enabled.
|
|
3391
3392
|
* @private
|
|
@@ -3414,6 +3415,18 @@
|
|
|
3414
3415
|
}
|
|
3415
3416
|
};
|
|
3416
3417
|
/**
|
|
3418
|
+
* Add new exit anchor to the chart.
|
|
3419
|
+
* @private
|
|
3420
|
+
*/
|
|
3421
|
+
KeyboardNavigation.prototype.createExitAnchor = function () {
|
|
3422
|
+
var chart = this.chart,
|
|
3423
|
+
exitAnchor = this.exitAnchor = doc.createElement('div');
|
|
3424
|
+
chart.renderTo.appendChild(exitAnchor);
|
|
3425
|
+
this.makeElementAnExitAnchor(exitAnchor);
|
|
3426
|
+
};
|
|
3427
|
+
/**
|
|
3428
|
+
* Add attributes and events to an element to make it function as an
|
|
3429
|
+
* exit anchor.
|
|
3417
3430
|
* @private
|
|
3418
3431
|
*/
|
|
3419
3432
|
KeyboardNavigation.prototype.makeElementAnExitAnchor = function (el) {
|
|
@@ -3425,27 +3438,17 @@
|
|
|
3425
3438
|
this.addExitAnchorEventsToEl(el);
|
|
3426
3439
|
};
|
|
3427
3440
|
/**
|
|
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
|
-
/**
|
|
3441
|
+
* Destroy the exit anchor and remove from DOM.
|
|
3439
3442
|
* @private
|
|
3440
3443
|
*/
|
|
3441
3444
|
KeyboardNavigation.prototype.removeExitAnchor = function () {
|
|
3442
3445
|
if (this.exitAnchor && this.exitAnchor.parentNode) {
|
|
3443
|
-
this.exitAnchor.parentNode
|
|
3444
|
-
.removeChild(this.exitAnchor);
|
|
3446
|
+
this.exitAnchor.parentNode.removeChild(this.exitAnchor);
|
|
3445
3447
|
delete this.exitAnchor;
|
|
3446
3448
|
}
|
|
3447
3449
|
};
|
|
3448
3450
|
/**
|
|
3451
|
+
* Add focus handler to exit anchor element.
|
|
3449
3452
|
* @private
|
|
3450
3453
|
*/
|
|
3451
3454
|
KeyboardNavigation.prototype.addExitAnchorEventsToEl = function (element) {
|
|
@@ -3456,6 +3459,9 @@
|
|
|
3456
3459
|
focusComesFromChart = (e.relatedTarget &&
|
|
3457
3460
|
chart.container.contains(e.relatedTarget)),
|
|
3458
3461
|
comingInBackwards = !(focusComesFromChart || keyboardNavigation.exiting);
|
|
3462
|
+
if (chart.focusElement) {
|
|
3463
|
+
delete chart.focusElement;
|
|
3464
|
+
}
|
|
3459
3465
|
if (comingInBackwards) {
|
|
3460
3466
|
// Focus the container instead
|
|
3461
3467
|
keyboardNavigation.tabbingInBackwards = true;
|
|
@@ -3473,7 +3479,7 @@
|
|
|
3473
3479
|
if (curModule &&
|
|
3474
3480
|
curModule.validate && !curModule.validate()) {
|
|
3475
3481
|
// Invalid. Try moving backwards to find next valid.
|
|
3476
|
-
keyboardNavigation.
|
|
3482
|
+
keyboardNavigation.move(-1);
|
|
3477
3483
|
}
|
|
3478
3484
|
else if (curModule) {
|
|
3479
3485
|
// We have a valid module, init it
|
|
@@ -3487,6 +3493,21 @@
|
|
|
3487
3493
|
}
|
|
3488
3494
|
});
|
|
3489
3495
|
};
|
|
3496
|
+
/**
|
|
3497
|
+
* Get the ix of the first module that either does not require validation or
|
|
3498
|
+
* validates positively.
|
|
3499
|
+
* @private
|
|
3500
|
+
*/
|
|
3501
|
+
KeyboardNavigation.prototype.getFirstValidModuleIx = function () {
|
|
3502
|
+
var len = this.modules.length;
|
|
3503
|
+
for (var i = 0; i < len; ++i) {
|
|
3504
|
+
var mod = this.modules[i];
|
|
3505
|
+
if (!mod.validate || mod.validate()) {
|
|
3506
|
+
return i;
|
|
3507
|
+
}
|
|
3508
|
+
}
|
|
3509
|
+
return null;
|
|
3510
|
+
};
|
|
3490
3511
|
/**
|
|
3491
3512
|
* Remove all traces of keyboard navigation.
|
|
3492
3513
|
* @private
|
|
@@ -3522,6 +3543,7 @@
|
|
|
3522
3543
|
* */
|
|
3523
3544
|
/* eslint-disable valid-jsdoc */
|
|
3524
3545
|
/**
|
|
3546
|
+
* Composition function.
|
|
3525
3547
|
* @private
|
|
3526
3548
|
*/
|
|
3527
3549
|
function compose(ChartClass) {
|
|
@@ -3605,6 +3627,7 @@
|
|
|
3605
3627
|
};
|
|
3606
3628
|
})();
|
|
3607
3629
|
var animObject = A.animObject;
|
|
3630
|
+
var doc = H.doc;
|
|
3608
3631
|
var addEvent = U.addEvent,
|
|
3609
3632
|
fireEvent = U.fireEvent,
|
|
3610
3633
|
isNumber = U.isNumber,
|
|
@@ -3640,6 +3663,19 @@
|
|
|
3640
3663
|
!(chart.colorAxis && chart.colorAxis.length) &&
|
|
3641
3664
|
legendA11yOptions.enabled !== false);
|
|
3642
3665
|
}
|
|
3666
|
+
/**
|
|
3667
|
+
* @private
|
|
3668
|
+
*/
|
|
3669
|
+
function setLegendItemHoverState(hoverActive, legendItem) {
|
|
3670
|
+
legendItem.setState(hoverActive ? 'hover' : '', true);
|
|
3671
|
+
['legendGroup', 'legendItem', 'legendSymbol'].forEach(function (i) {
|
|
3672
|
+
var obj = legendItem[i];
|
|
3673
|
+
var el = obj && obj.element || obj;
|
|
3674
|
+
if (el) {
|
|
3675
|
+
fireEvent(el, hoverActive ? 'mouseover' : 'mouseout');
|
|
3676
|
+
}
|
|
3677
|
+
});
|
|
3678
|
+
}
|
|
3643
3679
|
/* *
|
|
3644
3680
|
*
|
|
3645
3681
|
* Class
|
|
@@ -3663,6 +3699,7 @@
|
|
|
3663
3699
|
var _this = _super !== null && _super.apply(this,
|
|
3664
3700
|
arguments) || this;
|
|
3665
3701
|
_this.highlightedLegendItemIx = NaN;
|
|
3702
|
+
_this.proxyGroup = null;
|
|
3666
3703
|
return _this;
|
|
3667
3704
|
}
|
|
3668
3705
|
/* *
|
|
@@ -3788,12 +3825,19 @@
|
|
|
3788
3825
|
* @private
|
|
3789
3826
|
*/
|
|
3790
3827
|
LegendComponent.prototype.recreateProxies = function () {
|
|
3828
|
+
var focusedElement = doc.activeElement;
|
|
3829
|
+
var proxyGroup = this.proxyGroup;
|
|
3830
|
+
var shouldRestoreFocus = focusedElement && proxyGroup &&
|
|
3831
|
+
proxyGroup.contains(focusedElement);
|
|
3791
3832
|
this.removeProxies();
|
|
3792
3833
|
if (shouldDoLegendA11y(this.chart)) {
|
|
3793
3834
|
this.addLegendProxyGroup();
|
|
3794
3835
|
this.proxyLegendItems();
|
|
3795
3836
|
this.updateLegendItemProxyVisibility();
|
|
3796
3837
|
this.updateLegendTitle();
|
|
3838
|
+
if (shouldRestoreFocus) {
|
|
3839
|
+
this.chart.highlightLegendItem(this.highlightedLegendItemIx);
|
|
3840
|
+
}
|
|
3797
3841
|
return true;
|
|
3798
3842
|
}
|
|
3799
3843
|
return false;
|
|
@@ -3829,7 +3873,7 @@
|
|
|
3829
3873
|
var a11yOptions = this.chart.options.accessibility;
|
|
3830
3874
|
var groupRole = a11yOptions.landmarkVerbosity === 'all' ?
|
|
3831
3875
|
'region' : null;
|
|
3832
|
-
this.proxyProvider.addGroup('legend', 'ul', {
|
|
3876
|
+
this.proxyGroup = this.proxyProvider.addGroup('legend', 'ul', {
|
|
3833
3877
|
// Filled by updateLegendTitle, to keep up to date without
|
|
3834
3878
|
// recreating group
|
|
3835
3879
|
'aria-label': '_placeholder_',
|
|
@@ -3913,21 +3957,19 @@
|
|
|
3913
3957
|
validate: function () {
|
|
3914
3958
|
return component.shouldHaveLegendNavigation();
|
|
3915
3959
|
},
|
|
3916
|
-
init: function (
|
|
3917
|
-
|
|
3960
|
+
init: function () {
|
|
3961
|
+
chart.highlightLegendItem(0);
|
|
3962
|
+
component.highlightedLegendItemIx = 0;
|
|
3918
3963
|
},
|
|
3919
3964
|
terminate: function () {
|
|
3920
3965
|
component.highlightedLegendItemIx = -1;
|
|
3921
|
-
chart.legend.allItems.forEach(function (item) { return
|
|
3966
|
+
chart.legend.allItems.forEach(function (item) { return setLegendItemHoverState(false, item); });
|
|
3922
3967
|
}
|
|
3923
3968
|
});
|
|
3924
3969
|
};
|
|
3925
3970
|
/**
|
|
3971
|
+
* Arrow key navigation
|
|
3926
3972
|
* @private
|
|
3927
|
-
* @param {Highcharts.KeyboardNavigationHandler} keyboardNavigationHandler
|
|
3928
|
-
* @param {number} keyCode
|
|
3929
|
-
* @return {number}
|
|
3930
|
-
* Response code
|
|
3931
3973
|
*/
|
|
3932
3974
|
LegendComponent.prototype.onKbdArrowKey = function (keyboardNavigationHandler, keyCode) {
|
|
3933
3975
|
var keys = this.keyCodes,
|
|
@@ -3946,8 +3988,7 @@
|
|
|
3946
3988
|
keyboardNavigationHandler.init(direction);
|
|
3947
3989
|
return response.success;
|
|
3948
3990
|
}
|
|
3949
|
-
|
|
3950
|
-
return response[direction > 0 ? 'next' : 'prev'];
|
|
3991
|
+
return response.success;
|
|
3951
3992
|
};
|
|
3952
3993
|
/**
|
|
3953
3994
|
* @private
|
|
@@ -3977,17 +4018,6 @@
|
|
|
3977
4018
|
legendA11yOptions.keyboardNavigation &&
|
|
3978
4019
|
legendA11yOptions.keyboardNavigation.enabled);
|
|
3979
4020
|
};
|
|
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
4021
|
return LegendComponent;
|
|
3992
4022
|
}(AccessibilityComponent));
|
|
3993
4023
|
/* *
|
|
@@ -4024,7 +4054,7 @@
|
|
|
4024
4054
|
var itemToHighlight = items[ix];
|
|
4025
4055
|
if (itemToHighlight) {
|
|
4026
4056
|
if (isNumber(oldIx) && items[oldIx]) {
|
|
4027
|
-
|
|
4057
|
+
setLegendItemHoverState(false, items[oldIx]);
|
|
4028
4058
|
}
|
|
4029
4059
|
scrollLegendToItem(this.legend, ix);
|
|
4030
4060
|
var legendItemProp = itemToHighlight.legendItem;
|
|
@@ -4033,9 +4063,7 @@
|
|
|
4033
4063
|
if (legendItemProp && legendItemProp.element && proxyBtn) {
|
|
4034
4064
|
this.setFocusToElement(legendItemProp, proxyBtn);
|
|
4035
4065
|
}
|
|
4036
|
-
|
|
4037
|
-
fireEvent(itemToHighlight.legendGroup.element, 'mouseover');
|
|
4038
|
-
}
|
|
4066
|
+
setLegendItemHoverState(true, itemToHighlight);
|
|
4039
4067
|
return true;
|
|
4040
4068
|
}
|
|
4041
4069
|
return false;
|
|
@@ -4379,9 +4407,9 @@
|
|
|
4379
4407
|
* @private
|
|
4380
4408
|
*/
|
|
4381
4409
|
function defaultPointDescriptionFormatter(point) {
|
|
4382
|
-
var series = point.series,
|
|
4383
|
-
|
|
4384
|
-
' ' + series.name + '.' : '', annotationsDesc = getPointAnnotationDescription(point), pointAnnotationsText = annotationsDesc ? ' ' + annotationsDesc : '';
|
|
4410
|
+
var series = point.series, shouldExposeSeriesName = series.chart.series.length > 1 ||
|
|
4411
|
+
series.options.name, valText = getPointValueDescription(point), description = point.options && point.options.accessibility &&
|
|
4412
|
+
point.options.accessibility.description, userDescText = description ? ' ' + description : '', seriesNameText = shouldExposeSeriesName ? ' ' + series.name + '.' : '', annotationsDesc = getPointAnnotationDescription(point), pointAnnotationsText = annotationsDesc ? ' ' + annotationsDesc : '';
|
|
4385
4413
|
point.accessibility = point.accessibility || {};
|
|
4386
4414
|
point.accessibility.valueDescription = valText;
|
|
4387
4415
|
return valText + userDescText + seriesNameText + pointAnnotationsText;
|
|
@@ -4641,7 +4669,7 @@
|
|
|
4641
4669
|
var announcer = this,
|
|
4642
4670
|
chart = this.chart,
|
|
4643
4671
|
e = this.eventProvider;
|
|
4644
|
-
e.addEvent(chart, '
|
|
4672
|
+
e.addEvent(chart, 'afterApplyDrilldown', function () {
|
|
4645
4673
|
announcer.lastAnnouncementTime = 0;
|
|
4646
4674
|
});
|
|
4647
4675
|
e.addEvent(chart, 'afterAddSeries', function (e) {
|
|
@@ -4951,9 +4979,15 @@
|
|
|
4951
4979
|
ProxyElement.prototype.updateTarget = function (target, attributes) {
|
|
4952
4980
|
this.target = target;
|
|
4953
4981
|
this.updateCSSClassName();
|
|
4982
|
+
var attrs = attributes || {};
|
|
4983
|
+
Object.keys(attrs).forEach(function (a) {
|
|
4984
|
+
if (attrs[a] === null) {
|
|
4985
|
+
delete attrs[a];
|
|
4986
|
+
}
|
|
4987
|
+
});
|
|
4954
4988
|
attr(this.buttonElement, merge({
|
|
4955
4989
|
'aria-label': this.getTargetAttr(target.click, 'aria-label')
|
|
4956
|
-
},
|
|
4990
|
+
}, attrs));
|
|
4957
4991
|
this.eventProvider.removeAddedEvents();
|
|
4958
4992
|
this.addProxyEventsToButton(this.buttonElement, target.click);
|
|
4959
4993
|
this.refreshPosition();
|
|
@@ -5051,12 +5085,14 @@
|
|
|
5051
5085
|
var chartDiv = this.chart.renderTo;
|
|
5052
5086
|
if (chartDiv && posElement && posElement.getBoundingClientRect) {
|
|
5053
5087
|
var rectEl = posElement.getBoundingClientRect(),
|
|
5054
|
-
|
|
5088
|
+
chartPos = this.chart.pointer.getChartPosition();
|
|
5055
5089
|
return {
|
|
5056
|
-
x: rectEl.left -
|
|
5057
|
-
y: rectEl.top -
|
|
5058
|
-
width: rectEl.right
|
|
5059
|
-
|
|
5090
|
+
x: (rectEl.left - chartPos.left) / chartPos.scaleX,
|
|
5091
|
+
y: (rectEl.top - chartPos.top) / chartPos.scaleY,
|
|
5092
|
+
width: rectEl.right / chartPos.scaleX -
|
|
5093
|
+
rectEl.left / chartPos.scaleX,
|
|
5094
|
+
height: rectEl.bottom / chartPos.scaleY -
|
|
5095
|
+
rectEl.top / chartPos.scaleY
|
|
5060
5096
|
};
|
|
5061
5097
|
}
|
|
5062
5098
|
return { x: 0, y: 0, width: 1, height: 1 };
|
|
@@ -5153,10 +5189,13 @@
|
|
|
5153
5189
|
/**
|
|
5154
5190
|
* Create a group that will contain proxy elements. The group order is
|
|
5155
5191
|
* automatically updated according to the last group order keys.
|
|
5192
|
+
*
|
|
5193
|
+
* Returns the added group.
|
|
5156
5194
|
*/
|
|
5157
5195
|
ProxyProvider.prototype.addGroup = function (groupKey, groupType, attributes) {
|
|
5158
|
-
|
|
5159
|
-
|
|
5196
|
+
var existingGroup = this.groups[groupKey];
|
|
5197
|
+
if (existingGroup) {
|
|
5198
|
+
return existingGroup.groupElement;
|
|
5160
5199
|
}
|
|
5161
5200
|
var proxyContainer = this.domElementProvider.createElement(groupType);
|
|
5162
5201
|
// If we want to add a role to the group, and still use e.g.
|
|
@@ -5185,6 +5224,7 @@
|
|
|
5185
5224
|
// won't have to reorder the whole set of groups.
|
|
5186
5225
|
this.afterChartProxyPosContainer.appendChild(groupElement);
|
|
5187
5226
|
this.updateGroupOrder(this.groupOrder);
|
|
5227
|
+
return groupElement;
|
|
5188
5228
|
};
|
|
5189
5229
|
/**
|
|
5190
5230
|
* Update HTML attributes of a group.
|
|
@@ -5368,6 +5408,10 @@
|
|
|
5368
5408
|
*/
|
|
5369
5409
|
ProxyProvider.prototype.updatePosContainerPositions = function () {
|
|
5370
5410
|
var chart = this.chart;
|
|
5411
|
+
// If exporting, don't add these containers to the DOM.
|
|
5412
|
+
if (chart.renderer.forExport) {
|
|
5413
|
+
return;
|
|
5414
|
+
}
|
|
5371
5415
|
var rendererSVGEl = chart.renderer.box;
|
|
5372
5416
|
chart.container.insertBefore(this.afterChartProxyPosContainer, rendererSVGEl.nextSibling);
|
|
5373
5417
|
chart.container.insertBefore(this.beforeChartProxyPosContainer, rendererSVGEl);
|
|
@@ -7981,7 +8025,7 @@
|
|
|
7981
8025
|
if (chart.accessibility) {
|
|
7982
8026
|
chart.accessibility.keyboardNavigation.tabindexContainer
|
|
7983
8027
|
.focus();
|
|
7984
|
-
chart.accessibility.keyboardNavigation
|
|
8028
|
+
chart.accessibility.keyboardNavigation.move(direction);
|
|
7985
8029
|
}
|
|
7986
8030
|
}
|
|
7987
8031
|
else if (rangeSel) {
|
|
@@ -8072,7 +8116,7 @@
|
|
|
8072
8116
|
e.stopPropagation();
|
|
8073
8117
|
if (a11y) {
|
|
8074
8118
|
a11y.keyboardNavigation.tabindexContainer.focus();
|
|
8075
|
-
a11y.keyboardNavigation
|
|
8119
|
+
a11y.keyboardNavigation.move(e.shiftKey ? -1 : 1);
|
|
8076
8120
|
}
|
|
8077
8121
|
}
|
|
8078
8122
|
});
|
|
@@ -8430,6 +8474,7 @@
|
|
|
8430
8474
|
else if (series.a11yMarkersForced) {
|
|
8431
8475
|
delete series.a11yMarkersForced;
|
|
8432
8476
|
unforceSeriesMarkerOptions(series);
|
|
8477
|
+
delete series.resetA11yMarkerOptions;
|
|
8433
8478
|
}
|
|
8434
8479
|
}
|
|
8435
8480
|
/**
|
|
@@ -8457,20 +8502,20 @@
|
|
|
8457
8502
|
});
|
|
8458
8503
|
}
|
|
8459
8504
|
/**
|
|
8505
|
+
* Reset markers to normal
|
|
8460
8506
|
* @private
|
|
8461
8507
|
*/
|
|
8462
8508
|
function unforceSeriesMarkerOptions(series) {
|
|
8463
8509
|
var resetMarkerOptions = series.resetA11yMarkerOptions;
|
|
8464
8510
|
if (resetMarkerOptions) {
|
|
8465
|
-
|
|
8511
|
+
var originalOpactiy = resetMarkerOptions.states &&
|
|
8512
|
+
resetMarkerOptions.states.normal &&
|
|
8513
|
+
resetMarkerOptions.states.normal.opacity;
|
|
8514
|
+
series.update({
|
|
8466
8515
|
marker: {
|
|
8467
8516
|
enabled: resetMarkerOptions.enabled,
|
|
8468
8517
|
states: {
|
|
8469
|
-
normal: {
|
|
8470
|
-
opacity: resetMarkerOptions.states &&
|
|
8471
|
-
resetMarkerOptions.states.normal &&
|
|
8472
|
-
resetMarkerOptions.states.normal.opacity
|
|
8473
|
-
}
|
|
8518
|
+
normal: { opacity: originalOpactiy }
|
|
8474
8519
|
}
|
|
8475
8520
|
}
|
|
8476
8521
|
});
|
|
@@ -8570,6 +8615,37 @@
|
|
|
8570
8615
|
pointA11yDisabled ||
|
|
8571
8616
|
isSkipSeries(point.series);
|
|
8572
8617
|
}
|
|
8618
|
+
/**
|
|
8619
|
+
* Get the first point that is not a skip point in this series.
|
|
8620
|
+
* @private
|
|
8621
|
+
*/
|
|
8622
|
+
function getFirstValidPointInSeries(series) {
|
|
8623
|
+
var points = series.points || [],
|
|
8624
|
+
len = points.length;
|
|
8625
|
+
for (var i = 0; i < len; ++i) {
|
|
8626
|
+
if (!isSkipPoint(points[i])) {
|
|
8627
|
+
return points[i];
|
|
8628
|
+
}
|
|
8629
|
+
}
|
|
8630
|
+
return null;
|
|
8631
|
+
}
|
|
8632
|
+
/**
|
|
8633
|
+
* Get the first point that is not a skip point in this chart.
|
|
8634
|
+
* @private
|
|
8635
|
+
*/
|
|
8636
|
+
function getFirstValidPointInChart(chart) {
|
|
8637
|
+
var series = chart.series || [],
|
|
8638
|
+
len = series.length;
|
|
8639
|
+
for (var i = 0; i < len; ++i) {
|
|
8640
|
+
if (!isSkipSeries(series[i])) {
|
|
8641
|
+
var point = getFirstValidPointInSeries(series[i]);
|
|
8642
|
+
if (point) {
|
|
8643
|
+
return point;
|
|
8644
|
+
}
|
|
8645
|
+
}
|
|
8646
|
+
}
|
|
8647
|
+
return null;
|
|
8648
|
+
}
|
|
8573
8649
|
/**
|
|
8574
8650
|
* @private
|
|
8575
8651
|
*/
|
|
@@ -8582,7 +8658,7 @@
|
|
|
8582
8658
|
// Highlight first valid point in the series will also
|
|
8583
8659
|
// look backwards. It always starts from currently
|
|
8584
8660
|
// highlighted point.
|
|
8585
|
-
res = chart.series[i].
|
|
8661
|
+
res = chart.series[i].highlightNextValidPoint();
|
|
8586
8662
|
if (res) {
|
|
8587
8663
|
break;
|
|
8588
8664
|
}
|
|
@@ -8590,24 +8666,24 @@
|
|
|
8590
8666
|
return res;
|
|
8591
8667
|
}
|
|
8592
8668
|
/**
|
|
8669
|
+
* After drilling down/up, we need to set focus to the first point for
|
|
8670
|
+
* screen readers and keyboard nav.
|
|
8593
8671
|
* @private
|
|
8594
8672
|
*/
|
|
8595
8673
|
function updateChartFocusAfterDrilling(chart) {
|
|
8596
|
-
|
|
8597
|
-
if (
|
|
8598
|
-
|
|
8674
|
+
var point = getFirstValidPointInChart(chart);
|
|
8675
|
+
if (point) {
|
|
8676
|
+
point.highlight(false); // Do not visually highlight
|
|
8599
8677
|
}
|
|
8600
8678
|
}
|
|
8601
8679
|
/**
|
|
8680
|
+
* Highlight the first point in chart that is not a skip point
|
|
8602
8681
|
* @private
|
|
8603
8682
|
*/
|
|
8604
8683
|
function highlightFirstValidPointInChart(chart) {
|
|
8605
|
-
var res = false;
|
|
8606
8684
|
delete chart.highlightedPoint;
|
|
8607
|
-
|
|
8608
|
-
|
|
8609
|
-
}, false);
|
|
8610
|
-
return res;
|
|
8685
|
+
var point = getFirstValidPointInChart(chart);
|
|
8686
|
+
return point ? point.highlight() : false;
|
|
8611
8687
|
}
|
|
8612
8688
|
/* *
|
|
8613
8689
|
*
|
|
@@ -8645,7 +8721,7 @@
|
|
|
8645
8721
|
e.addEvent(Series, 'destroy', function () {
|
|
8646
8722
|
return keyboardNavigation.onSeriesDestroy(this);
|
|
8647
8723
|
});
|
|
8648
|
-
e.addEvent(chart, '
|
|
8724
|
+
e.addEvent(chart, 'afterApplyDrilldown', function () {
|
|
8649
8725
|
updateChartFocusAfterDrilling(this);
|
|
8650
8726
|
});
|
|
8651
8727
|
e.addEvent(chart, 'drilldown', function (e) {
|
|
@@ -8685,11 +8761,11 @@
|
|
|
8685
8761
|
});
|
|
8686
8762
|
};
|
|
8687
8763
|
/**
|
|
8764
|
+
* After drillup we want to find the point that was drilled down to and
|
|
8765
|
+
* highlight it.
|
|
8688
8766
|
* @private
|
|
8689
8767
|
*/
|
|
8690
8768
|
SeriesKeyboardNavigation.prototype.onDrillupAll = function () {
|
|
8691
|
-
// After drillup we want to find the point that was drilled down to and
|
|
8692
|
-
// highlight it.
|
|
8693
8769
|
var last = this.lastDrilledDownPoint,
|
|
8694
8770
|
chart = this.chart,
|
|
8695
8771
|
series = last && getSeriesFromName(chart,
|
|
@@ -8698,15 +8774,13 @@
|
|
|
8698
8774
|
if (last && series && defined(last.x) && defined(last.y)) {
|
|
8699
8775
|
point = getPointFromXY(series, last.x, last.y);
|
|
8700
8776
|
}
|
|
8777
|
+
point = point || getFirstValidPointInChart(chart);
|
|
8701
8778
|
// Container focus can be lost on drillup due to deleted elements.
|
|
8702
8779
|
if (chart.container) {
|
|
8703
8780
|
chart.container.focus();
|
|
8704
8781
|
}
|
|
8705
8782
|
if (point && point.highlight) {
|
|
8706
|
-
point.highlight();
|
|
8707
|
-
}
|
|
8708
|
-
if (chart.focusElement) {
|
|
8709
|
-
chart.focusElement.removeFocusBorder();
|
|
8783
|
+
point.highlight(false); // Do not visually highlight
|
|
8710
8784
|
}
|
|
8711
8785
|
};
|
|
8712
8786
|
/**
|
|
@@ -8751,6 +8825,9 @@
|
|
|
8751
8825
|
highlightFirstValidPointInChart(chart);
|
|
8752
8826
|
return this.response.success;
|
|
8753
8827
|
},
|
|
8828
|
+
validate: function () {
|
|
8829
|
+
return !!getFirstValidPointInChart(chart);
|
|
8830
|
+
},
|
|
8754
8831
|
terminate: function () {
|
|
8755
8832
|
return keyboardNavigation.onHandlerTerminate();
|
|
8756
8833
|
}
|
|
@@ -8813,10 +8890,6 @@
|
|
|
8813
8890
|
/**
|
|
8814
8891
|
* Function that attempts to highlight next/prev point. Handles wrap around.
|
|
8815
8892
|
* @private
|
|
8816
|
-
* @param {Highcharts.KeyboardNavigationHandler} handler
|
|
8817
|
-
* @param {boolean} directionIsNext
|
|
8818
|
-
* @return {number}
|
|
8819
|
-
* response
|
|
8820
8893
|
*/
|
|
8821
8894
|
SeriesKeyboardNavigation.prototype.attemptHighlightAdjacentPoint = function (handler, directionIsNext) {
|
|
8822
8895
|
var chart = this.chart,
|
|
@@ -8824,8 +8897,10 @@
|
|
|
8824
8897
|
.wrapAround,
|
|
8825
8898
|
highlightSuccessful = chart.highlightAdjacentPoint(directionIsNext);
|
|
8826
8899
|
if (!highlightSuccessful) {
|
|
8827
|
-
if (wrapAround
|
|
8828
|
-
|
|
8900
|
+
if (wrapAround && (directionIsNext ?
|
|
8901
|
+
highlightFirstValidPointInChart(chart) :
|
|
8902
|
+
highlightLastValidPointInChart(chart))) {
|
|
8903
|
+
return handler.response.success;
|
|
8829
8904
|
}
|
|
8830
8905
|
return handler.response[directionIsNext ? 'next' : 'prev'];
|
|
8831
8906
|
}
|
|
@@ -9032,7 +9107,7 @@
|
|
|
9032
9107
|
// Highlight the new point or any first valid point back or forwards
|
|
9033
9108
|
// from it
|
|
9034
9109
|
newPoint.highlight();
|
|
9035
|
-
return newPoint.series.
|
|
9110
|
+
return newPoint.series.highlightNextValidPoint();
|
|
9036
9111
|
}
|
|
9037
9112
|
/**
|
|
9038
9113
|
* @private
|
|
@@ -9069,7 +9144,7 @@
|
|
|
9069
9144
|
seriesTypes[type].prototype.keyboardMoveVertical = false;
|
|
9070
9145
|
}
|
|
9071
9146
|
});
|
|
9072
|
-
seriesProto.
|
|
9147
|
+
seriesProto.highlightNextValidPoint = (seriesHighlightNextValidPoint);
|
|
9073
9148
|
}
|
|
9074
9149
|
}
|
|
9075
9150
|
SeriesKeyboardNavigation.compose = compose;
|
|
@@ -9107,7 +9182,7 @@
|
|
|
9107
9182
|
return defined(minIx) ? series.points[minIx] : void 0;
|
|
9108
9183
|
}
|
|
9109
9184
|
/**
|
|
9110
|
-
* Highlights a point (show tooltip
|
|
9185
|
+
* Highlights a point (show tooltip, display hover state, focus element).
|
|
9111
9186
|
*
|
|
9112
9187
|
* @private
|
|
9113
9188
|
* @function Highcharts.Point#highlight
|
|
@@ -9115,9 +9190,10 @@
|
|
|
9115
9190
|
* @return {Highcharts.Point}
|
|
9116
9191
|
* This highlighted point.
|
|
9117
9192
|
*/
|
|
9118
|
-
function pointHighlight() {
|
|
9193
|
+
function pointHighlight(highlightVisually) {
|
|
9194
|
+
if (highlightVisually === void 0) { highlightVisually = true; }
|
|
9119
9195
|
var chart = this.series.chart;
|
|
9120
|
-
if (!this.isNull) {
|
|
9196
|
+
if (!this.isNull && highlightVisually) {
|
|
9121
9197
|
this.onMouseOver(); // Show the hover marker and tooltip
|
|
9122
9198
|
}
|
|
9123
9199
|
else {
|
|
@@ -9132,6 +9208,9 @@
|
|
|
9132
9208
|
// change z-index and mess up the element.
|
|
9133
9209
|
if (this.graphic) {
|
|
9134
9210
|
chart.setFocusToElement(this.graphic);
|
|
9211
|
+
if (!highlightVisually && chart.focusElement) {
|
|
9212
|
+
chart.focusElement.removeFocusBorder();
|
|
9213
|
+
}
|
|
9135
9214
|
}
|
|
9136
9215
|
chart.highlightedPoint = this;
|
|
9137
9216
|
return this;
|
|
@@ -9142,9 +9221,9 @@
|
|
|
9142
9221
|
* point in the series, use that as starting point.
|
|
9143
9222
|
*
|
|
9144
9223
|
* @private
|
|
9145
|
-
* @function Highcharts.Series#
|
|
9224
|
+
* @function Highcharts.Series#highlightNextValidPoint
|
|
9146
9225
|
*/
|
|
9147
|
-
function
|
|
9226
|
+
function seriesHighlightNextValidPoint() {
|
|
9148
9227
|
var curPoint = this.chart.highlightedPoint,
|
|
9149
9228
|
start = (curPoint && curPoint.series) === this ?
|
|
9150
9229
|
getPointIndex(curPoint) :
|
|
@@ -9231,7 +9310,6 @@
|
|
|
9231
9310
|
* @private
|
|
9232
9311
|
*/
|
|
9233
9312
|
SeriesComponent.compose = function (ChartClass, PointClass, SeriesClass) {
|
|
9234
|
-
// Handle forcing markers
|
|
9235
9313
|
NewDataAnnouncer.compose(SeriesClass);
|
|
9236
9314
|
ForcedMarkers.compose(SeriesClass);
|
|
9237
9315
|
SeriesKeyboardNavigation.compose(ChartClass, PointClass, SeriesClass);
|
|
@@ -9364,8 +9442,8 @@
|
|
|
9364
9442
|
*/
|
|
9365
9443
|
function chartHasMapZoom(chart) {
|
|
9366
9444
|
return !!(chart.mapZoom &&
|
|
9367
|
-
chart.
|
|
9368
|
-
chart.
|
|
9445
|
+
chart.mapNavigation &&
|
|
9446
|
+
chart.mapNavigation.navButtons.length);
|
|
9369
9447
|
}
|
|
9370
9448
|
/* *
|
|
9371
9449
|
*
|
|
@@ -9405,7 +9483,7 @@
|
|
|
9405
9483
|
chart = this.chart;
|
|
9406
9484
|
this.proxyProvider.addGroup('zoom', 'div');
|
|
9407
9485
|
[
|
|
9408
|
-
'afterShowResetZoom', '
|
|
9486
|
+
'afterShowResetZoom', 'afterApplyDrilldown', 'drillupall'
|
|
9409
9487
|
].forEach(function (eventType) {
|
|
9410
9488
|
component.addEvent(chart, eventType, function () {
|
|
9411
9489
|
component.updateProxyOverlays();
|
|
@@ -9419,8 +9497,8 @@
|
|
|
9419
9497
|
var chart = this.chart,
|
|
9420
9498
|
component = this;
|
|
9421
9499
|
// Make map zoom buttons accessible
|
|
9422
|
-
if (chart.
|
|
9423
|
-
chart.
|
|
9500
|
+
if (chart.mapNavigation) {
|
|
9501
|
+
chart.mapNavigation.navButtons.forEach(function (button, i) {
|
|
9424
9502
|
unhideChartElementFromAT(chart, button.element);
|
|
9425
9503
|
component.setMapNavButtonAttrs(button.element, 'accessibility.zoom.mapZoom' + (i ? 'Out' : 'In'));
|
|
9426
9504
|
});
|
|
@@ -9457,10 +9535,13 @@
|
|
|
9457
9535
|
if (chart.resetZoomButton) {
|
|
9458
9536
|
this.createZoomProxyButton(chart.resetZoomButton, 'resetZoomProxyButton', chart.langFormat('accessibility.zoom.resetZoomButton', { chart: chart }));
|
|
9459
9537
|
}
|
|
9460
|
-
if (chart.drillUpButton
|
|
9538
|
+
if (chart.drillUpButton &&
|
|
9539
|
+
chart.breadcrumbs &&
|
|
9540
|
+
chart.breadcrumbs.list) {
|
|
9541
|
+
var lastBreadcrumb = chart.breadcrumbs.list[chart.breadcrumbs.list.length - 1];
|
|
9461
9542
|
this.createZoomProxyButton(chart.drillUpButton, 'drillUpProxyButton', chart.langFormat('accessibility.drillUpButton', {
|
|
9462
9543
|
chart: chart,
|
|
9463
|
-
buttonText: chart.
|
|
9544
|
+
buttonText: chart.breadcrumbs.getButtonText(lastBreadcrumb)
|
|
9464
9545
|
}));
|
|
9465
9546
|
}
|
|
9466
9547
|
};
|
|
@@ -9544,14 +9625,14 @@
|
|
|
9544
9625
|
var isMoveOutOfRange = isBackwards && !this.focusedMapNavButtonIx ||
|
|
9545
9626
|
!isBackwards && this.focusedMapNavButtonIx;
|
|
9546
9627
|
// Deselect old
|
|
9547
|
-
chart.
|
|
9628
|
+
chart.mapNavigation.navButtons[this.focusedMapNavButtonIx].setState(0);
|
|
9548
9629
|
if (isMoveOutOfRange) {
|
|
9549
9630
|
chart.mapZoom(); // Reset zoom
|
|
9550
9631
|
return response[isBackwards ? 'prev' : 'next'];
|
|
9551
9632
|
}
|
|
9552
9633
|
// Select other button
|
|
9553
9634
|
this.focusedMapNavButtonIx += isBackwards ? -1 : 1;
|
|
9554
|
-
var button = chart.
|
|
9635
|
+
var button = chart.mapNavigation.navButtons[this.focusedMapNavButtonIx];
|
|
9555
9636
|
chart.setFocusToElement(button.box, button.element);
|
|
9556
9637
|
button.setState(2);
|
|
9557
9638
|
return response.success;
|
|
@@ -9572,8 +9653,8 @@
|
|
|
9572
9653
|
*/
|
|
9573
9654
|
ZoomComponent.prototype.onMapNavInit = function (direction) {
|
|
9574
9655
|
var chart = this.chart,
|
|
9575
|
-
zoomIn = chart.
|
|
9576
|
-
zoomOut = chart.
|
|
9656
|
+
zoomIn = chart.mapNavigation.navButtons[0],
|
|
9657
|
+
zoomOut = chart.mapNavigation.navButtons[1],
|
|
9577
9658
|
initialButton = direction > 0 ? zoomIn : zoomOut;
|
|
9578
9659
|
chart.setFocusToElement(initialButton.box, initialButton.element);
|
|
9579
9660
|
initialButton.setState(2);
|
|
@@ -9756,8 +9837,8 @@
|
|
|
9756
9837
|
doc.body.removeChild(testDiv);
|
|
9757
9838
|
return bi === 'none';
|
|
9758
9839
|
}
|
|
9759
|
-
//
|
|
9760
|
-
return
|
|
9840
|
+
// Other browsers use the forced-colors standard
|
|
9841
|
+
return win.matchMedia && win.matchMedia('(forced-colors: active)').matches;
|
|
9761
9842
|
}
|
|
9762
9843
|
/**
|
|
9763
9844
|
* Force high contrast theme for the chart. The default theme is defined in
|
|
@@ -11797,7 +11878,7 @@
|
|
|
11797
11878
|
});
|
|
11798
11879
|
});
|
|
11799
11880
|
// Direct updates (events happen after render)
|
|
11800
|
-
['
|
|
11881
|
+
['afterApplyDrilldown', 'drillupall'].forEach(function (event) {
|
|
11801
11882
|
addEvent(ChartClass, event, function chartOnAfterDrilldown() {
|
|
11802
11883
|
var a11y = this.accessibility;
|
|
11803
11884
|
if (a11y && !a11y.zombie) {
|