highcharts 9.3.1 → 9.3.2
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/annotations/popup.css +1 -1
- package/css/highcharts.css +2 -2
- package/css/highcharts.scss +1 -1
- package/css/stocktools/gui.css +1 -1
- package/css/themes/dark-unica.css +2 -2
- package/css/themes/grid-light.css +2 -2
- package/css/themes/sand-signika.css +2 -2
- package/es-modules/Accessibility/A11yI18n.js +1 -5
- package/es-modules/Accessibility/Accessibility.js +11 -5
- package/es-modules/Accessibility/AccessibilityComponent.js +1 -1
- package/es-modules/Accessibility/Components/AnnotationsA11y.js +9 -5
- package/es-modules/Accessibility/Components/ContainerComponent.js +1 -1
- package/es-modules/Accessibility/Components/InfoRegionsComponent.js +8 -19
- package/es-modules/Accessibility/Components/LegendComponent.js +176 -86
- package/es-modules/Accessibility/Components/MenuComponent.js +1 -10
- package/es-modules/Accessibility/Components/RangeSelectorComponent.js +10 -13
- package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +15 -6
- package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +8 -4
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +3 -1
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +16 -41
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +20 -31
- package/es-modules/Accessibility/Components/ZoomComponent.js +135 -57
- package/es-modules/Accessibility/FocusBorder.js +0 -5
- package/es-modules/Accessibility/HighContrastMode.js +2 -1
- package/es-modules/Accessibility/KeyboardNavigation.js +5 -4
- package/es-modules/Accessibility/Options/DeprecatedOptions.js +12 -5
- package/es-modules/Accessibility/Options/LangOptions.js +3 -3
- package/es-modules/Accessibility/ProxyElement.js +12 -6
- package/es-modules/Accessibility/ProxyProvider.js +0 -3
- package/es-modules/Accessibility/Utils/Announcer.js +2 -2
- package/es-modules/Accessibility/Utils/ChartUtilities.js +17 -32
- package/es-modules/Accessibility/Utils/HTMLUtilities.js +0 -12
- package/es-modules/Core/Animation/Fx.js +5 -14
- package/es-modules/Core/Axis/Axis.js +42 -68
- package/es-modules/Core/Axis/Axis3D.js +10 -4
- package/es-modules/Core/Axis/BrokenAxis.js +17 -11
- package/es-modules/Core/Axis/Color/ColorAxis.js +7 -4
- package/es-modules/Core/Axis/Color/ColorAxisComposition.js +3 -3
- package/es-modules/Core/Axis/DateTimeAxis.js +3 -14
- package/es-modules/Core/Axis/GridAxis.js +26 -16
- package/es-modules/Core/Axis/NavigatorAxis.js +0 -5
- package/es-modules/Core/Axis/OrdinalAxis.js +83 -79
- package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js +0 -5
- package/es-modules/Core/Axis/RadialAxis.js +7 -28
- package/es-modules/Core/Axis/ScrollbarAxis.js +18 -10
- package/es-modules/Core/Axis/StackingAxis.js +2 -1
- package/es-modules/Core/Axis/Tick.js +2 -4
- package/es-modules/Core/Axis/TreeGridAxis.js +26 -17
- package/es-modules/Core/Axis/TreeGridTick.js +4 -1
- package/es-modules/Core/Axis/WaterfallAxis.js +1 -1
- package/es-modules/Core/Axis/ZAxis.js +1 -1
- package/es-modules/Core/Chart/Chart.js +42 -44
- package/es-modules/Core/Chart/Chart3D.js +23 -10
- package/es-modules/Core/Chart/GanttChart.js +4 -4
- package/es-modules/Core/Chart/MapChart.js +3 -3
- package/es-modules/Core/Chart/StockChart.js +10 -23
- package/es-modules/Core/DefaultOptions.js +3 -2
- package/es-modules/Core/Geometry/CircleUtilities.js +2 -1
- package/es-modules/Core/Globals.js +1 -1
- package/es-modules/Core/HttpUtilities.js +5 -4
- package/es-modules/Core/Legend/Legend.js +12 -13
- package/es-modules/Core/Navigator.js +34 -22
- package/es-modules/Core/Pointer.js +13 -9
- package/es-modules/Core/Renderer/HTML/AST.js +27 -14
- package/es-modules/Core/Renderer/HTML/HTMLElement.js +4 -2
- package/es-modules/Core/Renderer/HTML/HTMLRenderer.js +8 -6
- package/es-modules/Core/Renderer/RendererUtilities.js +2 -2
- package/es-modules/Core/Renderer/SVG/SVGElement.js +8 -16
- package/es-modules/Core/Renderer/SVG/SVGLabel.js +17 -8
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +5 -12
- package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +12 -5
- package/es-modules/Core/Renderer/SVG/TextBuilder.js +16 -10
- package/es-modules/Core/Responsive.js +2 -3
- package/es-modules/Core/Scrollbar.js +14 -12
- package/es-modules/Core/Series/DataLabel.js +17 -12
- package/es-modules/Core/Series/Point.js +17 -16
- package/es-modules/Core/Series/Series.js +44 -73
- package/es-modules/Core/Series/SeriesDefaults.js +5 -4
- package/es-modules/Core/Time.js +14 -11
- package/es-modules/Core/Tooltip.js +19 -36
- package/es-modules/Core/Utilities.js +5 -17
- package/es-modules/Data/DataConverter.js +0 -6
- package/es-modules/Data/DataSeriesConverter.js +9 -5
- package/es-modules/Data/DataTable.js +2 -1
- package/es-modules/Data/Modifiers/DataModifier.js +1 -1
- package/es-modules/Data/Parsers/CSVParser.js +3 -2
- package/es-modules/Data/Parsers/GoogleSheetsParser.js +5 -2
- package/es-modules/Data/Stores/CSVStore.js +2 -2
- package/es-modules/Data/Stores/DataStore.js +1 -1
- 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 +11 -10
- package/es-modules/Extensions/Annotations/ControlPoint.js +0 -2
- package/es-modules/Extensions/Annotations/Controllables/ControllableCircle.js +1 -1
- package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +1 -1
- package/es-modules/Extensions/Annotations/Controllables/ControllableImage.js +1 -1
- package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +3 -6
- package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +3 -2
- package/es-modules/Extensions/Annotations/Controllables/ControllableRect.js +1 -1
- package/es-modules/Extensions/Annotations/Mixins/ControllableMixin.js +6 -3
- package/es-modules/Extensions/Annotations/Mixins/EventEmitterMixin.js +0 -1
- package/es-modules/Extensions/Annotations/Mixins/MarkerMixin.js +5 -4
- package/es-modules/Extensions/Annotations/NavigationBindings.js +34 -29
- package/es-modules/Extensions/Annotations/Popup.js +40 -32
- package/es-modules/Extensions/Annotations/Types/CrookedLine.js +4 -2
- package/es-modules/Extensions/Annotations/Types/ElliottWave.js +1 -1
- package/es-modules/Extensions/Annotations/Types/Measure.js +15 -11
- package/es-modules/Extensions/Annotations/Types/Pitchfork.js +2 -1
- package/es-modules/Extensions/Annotations/Types/TimeCycles.js +8 -4
- package/es-modules/Extensions/Annotations/Types/Tunnel.js +10 -5
- package/es-modules/Extensions/Boost/BoostOverrides.js +3 -9
- package/es-modules/Extensions/Boost/BoostUtils.js +0 -6
- package/es-modules/Extensions/Boost/WGLRenderer.js +16 -12
- package/es-modules/Extensions/Boost/WGLShader.js +9 -8
- package/es-modules/Extensions/Boost/WGLVBuffer.js +4 -7
- package/es-modules/Extensions/Data.js +4 -48
- package/es-modules/Extensions/DataGrouping.js +22 -15
- package/es-modules/Extensions/DraggablePoints.js +7 -8
- package/es-modules/Extensions/Drilldown.js +9 -4
- package/es-modules/Extensions/ExportData.js +6 -5
- package/es-modules/Extensions/Exporting/Exporting.js +23 -37
- package/es-modules/Extensions/FullScreen.js +4 -3
- package/es-modules/Extensions/GeoJSON.js +3 -3
- package/es-modules/Extensions/MarkerClusters.js +3 -1
- package/es-modules/Extensions/Math3D.js +4 -4
- package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +23 -24
- package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
- package/es-modules/Extensions/Oldie/Oldie.js +13 -77
- package/es-modules/Extensions/Oldie/VMLAxis3D.js +5 -1
- package/es-modules/Extensions/OverlappingDataLabels.js +10 -6
- package/es-modules/Extensions/Pane.js +6 -6
- package/es-modules/Extensions/ParallelCoordinates.js +5 -3
- package/es-modules/Extensions/PatternFill.js +17 -11
- package/es-modules/Extensions/Polar.js +6 -3
- package/es-modules/Extensions/PriceIndication.js +2 -1
- package/es-modules/Extensions/RangeSelector.js +19 -55
- package/es-modules/Extensions/ScrollablePlotArea.js +2 -2
- package/es-modules/Extensions/SeriesLabel.js +1 -1
- package/es-modules/Extensions/Sonification/ChartSonify.js +32 -26
- package/es-modules/Extensions/Sonification/Instrument.js +12 -15
- package/es-modules/Extensions/Sonification/PointSonify.js +12 -8
- package/es-modules/Extensions/Sonification/SeriesSonify.js +33 -18
- package/es-modules/Extensions/Sonification/SignalHandler.js +4 -6
- package/es-modules/Extensions/Sonification/Sonification.js +1 -1
- package/es-modules/Extensions/Sonification/SonificationUtilities.js +11 -7
- package/es-modules/Extensions/Sonification/Timeline.js +2 -7
- package/es-modules/Extensions/Sonification/TimelineEvent.js +0 -1
- package/es-modules/Extensions/Sonification/TimelinePath.js +8 -8
- package/es-modules/Extensions/Stacking.js +5 -23
- package/es-modules/Extensions/Themes/BrandDark.js +293 -0
- package/es-modules/Extensions/Themes/BrandLight.js +259 -0
- package/es-modules/Extensions/Themes/DarkUnica.js +4 -2
- package/es-modules/Extensions/Themes/Grid.js +4 -2
- package/es-modules/Extensions/Themes/GridLight.js +4 -2
- package/es-modules/Gantt/Connection.js +2 -2
- package/es-modules/Gantt/Pathfinder.js +6 -5
- package/es-modules/Gantt/PathfinderAlgorithms.js +12 -12
- package/es-modules/Maps/MapNavigation.js +6 -7
- package/es-modules/Maps/MapPointer.js +2 -1
- package/es-modules/Maps/MapSymbols.js +23 -3
- package/es-modules/Maps/MapViewOptionsDefault.js +1 -1
- package/es-modules/Series/Area/AreaSeries.js +13 -13
- package/es-modules/Series/Area3DSeries.js +4 -2
- package/es-modules/Series/AreaRange/AreaRangeSeries.js +24 -12
- package/es-modules/Series/Bellcurve/BellcurveSeries.js +2 -1
- package/es-modules/Series/Bubble/BubbleLegendItem.js +2 -12
- package/es-modules/Series/Candlestick/CandlestickSeries.js +0 -1
- package/es-modules/Series/ColorMapMixin.js +84 -0
- package/es-modules/Series/Column/ColumnSeries.js +16 -14
- package/es-modules/Series/Column3D/Column3DComposition.js +1 -2
- package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +5 -2
- package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +2 -1
- package/es-modules/Series/Cylinder/CylinderComposition.js +36 -4
- package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +1 -1
- package/es-modules/Series/Dumbbell/DumbbellPoint.js +0 -1
- package/es-modules/Series/Dumbbell/DumbbellSeries.js +0 -3
- package/es-modules/Series/Flags/FlagsSymbols.js +2 -2
- package/es-modules/Series/Funnel3D/Funnel3DComposition.js +14 -8
- package/es-modules/Series/Funnel3D/Funnel3DSeries.js +2 -1
- package/es-modules/Series/Gantt/GanttPoint.js +1 -1
- package/es-modules/Series/Gantt/GanttSeries.js +3 -1
- package/es-modules/Series/HLC/HLCSeries.js +1 -6
- package/es-modules/Series/Heatmap/HeatmapPoint.js +10 -10
- package/es-modules/Series/Heatmap/HeatmapSeries.js +9 -10
- package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +8 -6
- package/es-modules/Series/Histogram/HistogramSeries.js +4 -4
- package/es-modules/Series/HollowCandlestick/HollowCandlestickPoint.js +1 -4
- package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +19 -20
- package/es-modules/Series/Item/ItemSeries.js +4 -5
- package/es-modules/Series/Map/MapPoint.js +6 -0
- package/es-modules/Series/Map/MapSeries.js +24 -25
- package/es-modules/Series/MapLine/MapLineSeries.js +0 -4
- package/es-modules/Series/Networkgraph/DraggableNodes.js +0 -4
- package/es-modules/Series/Networkgraph/Integrations.js +8 -22
- package/es-modules/Series/Networkgraph/Networkgraph.js +1 -5
- package/es-modules/Series/Networkgraph/QuadTree.js +1 -3
- package/es-modules/Series/NodesComposition.js +2 -1
- package/es-modules/Series/OHLC/OHLCPoint.js +0 -1
- package/es-modules/Series/OHLC/OHLCSeries.js +1 -1
- package/es-modules/Series/Organization/OrganizationSeries.js +4 -2
- package/es-modules/Series/PackedBubble/PackedBubbleComposition.js +1 -0
- package/es-modules/Series/PackedBubble/PackedBubblePoint.js +1 -1
- package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +2 -4
- package/es-modules/Series/Pie/PiePoint.js +2 -2
- package/es-modules/Series/Pie/PieSeries.js +1 -1
- package/es-modules/Series/Pie3D/Pie3DComposition.js +2 -1
- package/es-modules/Series/Pie3D/Pie3DPoint.js +2 -1
- package/es-modules/Series/Pie3D/Pie3DSeries.js +1 -1
- package/es-modules/Series/Pyramid3D/Pyramid3DSeries.js +2 -1
- package/es-modules/Series/Sankey/SankeySeries.js +3 -2
- package/es-modules/Series/SolidGauge/SolidGaugeComposition.js +3 -1
- package/es-modules/Series/Spline/SplineSeries.js +0 -8
- package/es-modules/Series/Sunburst/SunburstSeries.js +2 -2
- package/es-modules/Series/Sunburst/SunburstUtilities.js +3 -2
- package/es-modules/Series/Tilemap/TilemapPoint.js +0 -2
- package/es-modules/Series/Tilemap/TilemapShapes.js +0 -7
- package/es-modules/Series/TreeUtilities.js +2 -2
- package/es-modules/Series/Treemap/TreemapSeries.js +18 -21
- package/es-modules/Series/Variwide/VariwideSeries.js +5 -1
- package/es-modules/Series/Venn/VennSeries.js +6 -9
- package/es-modules/Series/Venn/VennUtils.js +8 -7
- package/es-modules/Series/Waterfall/WaterfallSeries.js +6 -3
- package/es-modules/Series/Wordcloud/WordcloudSeries.js +2 -2
- package/es-modules/Series/Wordcloud/WordcloudUtils.js +6 -10
- package/es-modules/Series/XRange/XRangePoint.js +6 -12
- package/es-modules/Series/XRange/XRangeSeries.js +4 -20
- package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +12 -0
- package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +1 -0
- package/es-modules/Stock/Indicators/BB/BBIndicator.js +12 -0
- package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +35 -15
- package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +9 -5
- package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +2 -1
- package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +6 -6
- package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +12 -0
- package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +8 -3
- package/es-modules/Stock/Indicators/LinearRegression/LinearRegression.js +30 -12
- package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +1 -1
- package/es-modules/Stock/Indicators/MultipleLinesComposition.js +70 -6
- package/es-modules/Stock/Indicators/PC/PCIndicator.js +11 -0
- package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +2 -1
- package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +2 -1
- package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +2 -3
- package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +3 -1
- package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +3 -3
- package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +19 -7
- package/es-modules/Stock/StockToolsBindings.js +13 -6
- package/es-modules/Stock/StockToolsGui.js +34 -23
- 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 +2 -2
- 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/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 +1 -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 +1 -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 +1 -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 +14 -0
- package/es-modules/masters/themes/brand-light.src.js +14 -0
- 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 +1 -1
- package/highcharts-3d.js.map +1 -1
- package/highcharts-3d.src.js +65 -35
- package/highcharts-gantt.js +799 -799
- package/highcharts-gantt.js.map +1 -1
- package/highcharts-gantt.src.js +589 -698
- package/highcharts-more.js +1 -1
- package/highcharts-more.js.map +1 -1
- package/highcharts-more.src.js +73 -103
- package/highcharts.d.ts +5586 -1709
- package/highcharts.js +577 -577
- package/highcharts.js.map +1 -1
- package/highcharts.src.d.ts +5586 -1709
- package/highcharts.src.js +391 -486
- package/highmaps.js +723 -723
- package/highmaps.js.map +1 -1
- package/highmaps.src.js +552 -656
- package/highstock.js +782 -782
- package/highstock.js.map +1 -1
- package/highstock.src.js +612 -731
- package/indicators/acceleration-bands.d.ts +17 -1
- package/indicators/acceleration-bands.js +11 -10
- package/indicators/acceleration-bands.js.map +1 -1
- package/indicators/acceleration-bands.src.d.ts +17 -1
- package/indicators/acceleration-bands.src.js +88 -6
- package/indicators/accumulation-distribution.js +1 -1
- package/indicators/accumulation-distribution.src.js +1 -1
- package/indicators/ao.js +1 -1
- package/indicators/ao.src.js +1 -1
- package/indicators/apo.js +1 -1
- package/indicators/apo.src.js +1 -1
- package/indicators/aroon-oscillator.d.ts +17 -1
- package/indicators/aroon-oscillator.js +10 -9
- package/indicators/aroon-oscillator.js.map +1 -1
- package/indicators/aroon-oscillator.src.d.ts +17 -1
- package/indicators/aroon-oscillator.src.js +76 -6
- package/indicators/aroon.d.ts +17 -1
- package/indicators/aroon.js +11 -9
- package/indicators/aroon.js.map +1 -1
- package/indicators/aroon.src.d.ts +17 -1
- package/indicators/aroon.src.js +77 -6
- package/indicators/atr.js +1 -1
- package/indicators/atr.src.js +1 -1
- package/indicators/bollinger-bands.d.ts +17 -1
- package/indicators/bollinger-bands.js +12 -10
- package/indicators/bollinger-bands.js.map +1 -1
- package/indicators/bollinger-bands.src.d.ts +17 -1
- package/indicators/bollinger-bands.src.js +88 -6
- package/indicators/cci.js +1 -1
- package/indicators/cci.src.js +1 -1
- package/indicators/chaikin.js +1 -1
- package/indicators/chaikin.src.js +1 -1
- package/indicators/cmf.js +1 -1
- package/indicators/cmf.js.map +1 -1
- package/indicators/cmf.src.js +36 -16
- package/indicators/cmo.js +1 -1
- package/indicators/cmo.src.js +1 -1
- package/indicators/dema.js +1 -1
- package/indicators/dema.src.js +1 -1
- package/indicators/disparity-index.js +1 -1
- package/indicators/disparity-index.js.map +1 -1
- package/indicators/disparity-index.src.js +3 -2
- package/indicators/dmi.js +12 -11
- package/indicators/dmi.js.map +1 -1
- package/indicators/dmi.src.js +85 -11
- package/indicators/dpo.js +1 -1
- package/indicators/dpo.src.js +1 -1
- package/indicators/ichimoku-kinko-hyo.js +1 -1
- package/indicators/ichimoku-kinko-hyo.js.map +1 -1
- package/indicators/ichimoku-kinko-hyo.src.js +7 -7
- package/indicators/indicators-all.d.ts +17 -1
- package/indicators/indicators-all.js +198 -197
- package/indicators/indicators-all.js.map +1 -1
- package/indicators/indicators-all.src.d.ts +17 -1
- package/indicators/indicators-all.src.js +246 -65
- package/indicators/indicators.js +1 -1
- package/indicators/indicators.js.map +1 -1
- package/indicators/indicators.src.js +3 -4
- package/indicators/keltner-channels.d.ts +17 -1
- package/indicators/keltner-channels.js +11 -10
- package/indicators/keltner-channels.js.map +1 -1
- package/indicators/keltner-channels.src.d.ts +17 -1
- package/indicators/keltner-channels.src.js +88 -6
- package/indicators/klinger.js +14 -12
- package/indicators/klinger.js.map +1 -1
- package/indicators/klinger.src.js +84 -9
- package/indicators/macd.js +1 -1
- package/indicators/macd.js.map +1 -1
- package/indicators/macd.src.js +2 -2
- package/indicators/mfi.js +1 -1
- package/indicators/mfi.src.js +1 -1
- package/indicators/momentum.js +1 -1
- package/indicators/momentum.src.js +1 -1
- package/indicators/natr.js +1 -1
- package/indicators/natr.src.js +1 -1
- package/indicators/obv.js +1 -1
- package/indicators/obv.src.js +1 -1
- package/indicators/pivot-points.js +1 -1
- package/indicators/pivot-points.js.map +1 -1
- package/indicators/pivot-points.src.js +3 -2
- package/indicators/ppo.js +1 -1
- package/indicators/ppo.src.js +1 -1
- package/indicators/price-channel.d.ts +17 -1
- package/indicators/price-channel.js +11 -9
- package/indicators/price-channel.js.map +1 -1
- package/indicators/price-channel.src.d.ts +17 -1
- package/indicators/price-channel.src.js +87 -6
- package/indicators/price-envelopes.js +1 -1
- package/indicators/price-envelopes.src.js +1 -1
- package/indicators/psar.js +1 -1
- package/indicators/psar.src.js +1 -1
- package/indicators/regressions.js +1 -1
- package/indicators/regressions.js.map +1 -1
- package/indicators/regressions.src.js +31 -13
- package/indicators/roc.js +1 -1
- package/indicators/roc.src.js +1 -1
- package/indicators/rsi.js +1 -1
- package/indicators/rsi.js.map +1 -1
- package/indicators/rsi.src.js +3 -2
- package/indicators/slow-stochastic.js +1 -1
- package/indicators/slow-stochastic.src.js +1 -1
- package/indicators/stochastic.d.ts +17 -1
- package/indicators/stochastic.js +12 -10
- package/indicators/stochastic.js.map +1 -1
- package/indicators/stochastic.src.d.ts +17 -1
- package/indicators/stochastic.src.js +79 -7
- package/indicators/supertrend.js +1 -1
- package/indicators/supertrend.src.js +1 -1
- package/indicators/tema.js +1 -1
- package/indicators/tema.src.js +1 -1
- package/indicators/trendline.js +1 -1
- package/indicators/trendline.src.js +1 -1
- package/indicators/trix.js +1 -1
- package/indicators/trix.src.js +1 -1
- package/indicators/volume-by-price.js +1 -1
- package/indicators/volume-by-price.src.js +4 -4
- package/indicators/vwap.js +1 -1
- package/indicators/vwap.js.map +1 -1
- package/indicators/vwap.src.js +20 -8
- package/indicators/williams-r.js +1 -1
- package/indicators/williams-r.src.js +1 -1
- package/indicators/wma.js +1 -1
- package/indicators/wma.src.js +1 -1
- package/indicators/zigzag.js +1 -1
- package/indicators/zigzag.src.js +1 -1
- package/modules/accessibility.d.ts +0 -35
- package/modules/accessibility.js +225 -222
- package/modules/accessibility.js.map +1 -1
- package/modules/accessibility.src.d.ts +0 -35
- package/modules/accessibility.src.js +503 -418
- package/modules/annotations-advanced.js +128 -128
- package/modules/annotations-advanced.js.map +1 -1
- package/modules/annotations-advanced.src.js +152 -124
- package/modules/annotations.js +122 -122
- package/modules/annotations.js.map +1 -1
- package/modules/annotations.src.js +112 -100
- package/modules/arrow-symbols.js +1 -1
- package/modules/arrow-symbols.src.js +1 -1
- package/modules/boost-canvas.js +1 -1
- package/modules/boost-canvas.src.js +1 -1
- package/modules/boost.js +1 -1
- package/modules/boost.js.map +1 -1
- package/modules/boost.src.js +33 -43
- package/modules/broken-axis.js +1 -1
- package/modules/broken-axis.js.map +1 -1
- package/modules/broken-axis.src.js +18 -12
- package/modules/bullet.js +1 -1
- package/modules/bullet.src.js +1 -1
- package/modules/coloraxis.js +1 -1
- package/modules/coloraxis.js.map +1 -1
- package/modules/coloraxis.src.js +11 -8
- package/modules/current-date-indicator.js +1 -1
- package/modules/current-date-indicator.src.js +1 -1
- package/modules/cylinder.js +1 -1
- package/modules/cylinder.js.map +1 -1
- package/modules/cylinder.src.js +37 -5
- package/modules/data.d.ts +6 -6
- package/modules/data.js +31 -31
- package/modules/data.js.map +1 -1
- package/modules/data.src.d.ts +6 -6
- package/modules/data.src.js +10 -53
- package/modules/datagrouping.js +2 -2
- package/modules/datagrouping.js.map +1 -1
- package/modules/datagrouping.src.js +23 -16
- package/modules/debugger.js +1 -1
- package/modules/debugger.src.js +1 -1
- package/modules/dependency-wheel.js +3 -3
- package/modules/dependency-wheel.js.map +1 -1
- package/modules/dependency-wheel.src.js +2 -2
- package/modules/dotplot.js +1 -1
- package/modules/dotplot.src.js +1 -1
- package/modules/drag-panes.js +1 -1
- package/modules/drag-panes.src.js +1 -1
- package/modules/draggable-points.js +1 -1
- package/modules/draggable-points.js.map +1 -1
- package/modules/draggable-points.src.js +8 -9
- package/modules/drilldown.js +1 -1
- package/modules/drilldown.js.map +1 -1
- package/modules/drilldown.src.js +10 -5
- package/modules/dumbbell.js +1 -1
- package/modules/dumbbell.js.map +1 -1
- package/modules/dumbbell.src.js +1 -5
- package/modules/export-data.js +19 -19
- package/modules/export-data.js.map +1 -1
- package/modules/export-data.src.js +7 -6
- package/modules/exporting.js +1 -1
- package/modules/exporting.js.map +1 -1
- package/modules/exporting.src.js +33 -45
- package/modules/full-screen.js +1 -1
- package/modules/full-screen.js.map +1 -1
- package/modules/full-screen.src.js +5 -4
- package/modules/funnel.js +1 -1
- package/modules/funnel.src.js +1 -1
- package/modules/funnel3d.js +1 -1
- package/modules/funnel3d.js.map +1 -1
- package/modules/funnel3d.src.js +17 -10
- package/modules/gantt.js +1 -1
- package/modules/gantt.js.map +1 -1
- package/modules/gantt.src.js +199 -213
- package/modules/grid-axis.js +1 -1
- package/modules/grid-axis.js.map +1 -1
- package/modules/grid-axis.src.js +27 -19
- package/modules/heatmap.js +39 -39
- package/modules/heatmap.js.map +1 -1
- package/modules/heatmap.src.js +88 -112
- package/modules/heikinashi.js +1 -1
- package/modules/heikinashi.js.map +1 -1
- package/modules/heikinashi.src.js +9 -7
- package/modules/histogram-bellcurve.js +1 -1
- package/modules/histogram-bellcurve.js.map +1 -1
- package/modules/histogram-bellcurve.src.js +7 -6
- package/modules/hollowcandlestick.js +1 -1
- package/modules/hollowcandlestick.js.map +1 -1
- package/modules/hollowcandlestick.src.js +21 -25
- package/modules/item-series.js +6 -6
- package/modules/item-series.js.map +1 -1
- package/modules/item-series.src.js +6 -6
- package/modules/lollipop.js +1 -1
- package/modules/lollipop.src.js +1 -1
- package/modules/map.d.ts +2 -0
- package/modules/map.js +144 -144
- package/modules/map.js.map +1 -1
- package/modules/map.src.d.ts +2 -0
- package/modules/map.src.js +162 -171
- package/modules/marker-clusters.js +1 -1
- package/modules/marker-clusters.js.map +1 -1
- package/modules/marker-clusters.src.js +4 -2
- package/modules/networkgraph.js +1 -1
- package/modules/networkgraph.js.map +1 -1
- package/modules/networkgraph.src.js +13 -36
- package/modules/no-data-to-display.js +1 -1
- package/modules/no-data-to-display.src.js +1 -1
- package/modules/offline-exporting.js +18 -18
- package/modules/offline-exporting.js.map +1 -1
- package/modules/offline-exporting.src.js +27 -32
- package/modules/oldie-polyfills.js +1 -1
- package/modules/oldie-polyfills.src.js +1 -1
- package/modules/oldie.js +2 -2
- package/modules/oldie.js.map +1 -1
- package/modules/oldie.src.js +19 -79
- package/modules/organization.js +1 -1
- package/modules/organization.js.map +1 -1
- package/modules/organization.src.js +5 -3
- package/modules/overlapping-datalabels.js +1 -1
- package/modules/overlapping-datalabels.src.js +1 -1
- package/modules/parallel-coordinates.js +1 -1
- package/modules/parallel-coordinates.js.map +1 -1
- package/modules/parallel-coordinates.src.js +6 -4
- package/modules/pareto.js +1 -1
- package/modules/pareto.src.js +1 -1
- package/modules/pathfinder.js +1 -1
- package/modules/pathfinder.js.map +1 -1
- package/modules/pathfinder.src.js +21 -20
- package/modules/pattern-fill.js +1 -1
- package/modules/pattern-fill.js.map +1 -1
- package/modules/pattern-fill.src.js +18 -12
- package/modules/price-indicator.js +1 -1
- package/modules/price-indicator.js.map +1 -1
- package/modules/price-indicator.src.js +3 -2
- package/modules/pyramid3d.js +1 -1
- package/modules/pyramid3d.js.map +1 -1
- package/modules/pyramid3d.src.js +3 -2
- package/modules/sankey.js +1 -1
- package/modules/sankey.js.map +1 -1
- package/modules/sankey.src.js +8 -6
- package/modules/series-label.js +1 -1
- package/modules/series-label.js.map +1 -1
- package/modules/series-label.src.js +2 -2
- package/modules/solid-gauge.js +1 -1
- package/modules/solid-gauge.js.map +1 -1
- package/modules/solid-gauge.src.js +17 -2
- package/modules/sonification.js +53 -53
- package/modules/sonification.js.map +1 -1
- package/modules/sonification.src.js +121 -103
- package/modules/static-scale.js +1 -1
- package/modules/static-scale.src.js +1 -1
- package/modules/stock-tools.js +66 -66
- package/modules/stock-tools.js.map +1 -1
- package/modules/stock-tools.src.js +119 -96
- package/modules/stock.js +3 -3
- package/modules/stock.js.map +1 -1
- package/modules/stock.src.js +222 -246
- package/modules/streamgraph.js +1 -1
- package/modules/streamgraph.src.js +1 -1
- package/modules/sunburst.js +60 -61
- package/modules/sunburst.js.map +1 -1
- package/modules/sunburst.src.js +83 -113
- package/modules/tilemap.js +1 -1
- package/modules/tilemap.js.map +1 -1
- package/modules/tilemap.src.js +1 -10
- package/modules/timeline.js +1 -1
- package/modules/timeline.src.js +1 -1
- package/modules/treegrid.js +1 -1
- package/modules/treegrid.js.map +1 -1
- package/modules/treegrid.src.js +76 -50
- package/modules/treemap.js +41 -41
- package/modules/treemap.js.map +1 -1
- package/modules/treemap.src.js +78 -109
- package/modules/variable-pie.js +1 -1
- package/modules/variable-pie.src.js +1 -1
- package/modules/variwide.js +1 -1
- package/modules/variwide.js.map +1 -1
- package/modules/variwide.src.js +7 -3
- package/modules/vector.js +1 -1
- package/modules/vector.src.js +1 -1
- package/modules/venn.js +1 -1
- package/modules/venn.js.map +1 -1
- package/modules/venn.src.js +17 -18
- package/modules/windbarb.js +1 -1
- package/modules/windbarb.src.js +1 -1
- package/modules/wordcloud.js +1 -1
- package/modules/wordcloud.js.map +1 -1
- package/modules/wordcloud.src.js +9 -13
- package/modules/xrange.js +1 -1
- package/modules/xrange.js.map +1 -1
- package/modules/xrange.src.js +11 -33
- package/package.json +1 -1
- package/themes/avocado.js +1 -1
- package/themes/avocado.src.js +1 -1
- package/themes/brand-dark.js +15 -0
- package/themes/brand-dark.js.map +1 -0
- package/themes/brand-dark.src.js +328 -0
- package/themes/brand-light.js +15 -0
- package/themes/brand-light.js.map +1 -0
- package/themes/brand-light.src.js +294 -0
- package/themes/dark-blue.js +1 -1
- package/themes/dark-blue.src.js +1 -1
- package/themes/dark-green.js +1 -1
- package/themes/dark-green.src.js +1 -1
- package/themes/dark-unica.js +1 -1
- package/themes/dark-unica.js.map +1 -1
- package/themes/dark-unica.src.js +5 -3
- package/themes/gray.js +1 -1
- package/themes/gray.src.js +1 -1
- package/themes/grid-light.js +1 -1
- package/themes/grid-light.js.map +1 -1
- package/themes/grid-light.src.js +5 -3
- package/themes/grid.js +1 -1
- package/themes/grid.js.map +1 -1
- package/themes/grid.src.js +5 -3
- package/themes/high-contrast-dark.js +1 -1
- package/themes/high-contrast-dark.src.js +1 -1
- package/themes/high-contrast-light.js +1 -1
- package/themes/high-contrast-light.src.js +1 -1
- package/themes/sand-signika.js +1 -1
- package/themes/sand-signika.src.js +1 -1
- package/themes/skies.js +1 -1
- package/themes/skies.src.js +1 -1
- package/themes/sunset.js +1 -1
- package/themes/sunset.src.js +1 -1
- package/es-modules/Series/ColorMapComposition.js +0 -109
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Highcharts JS v9.3.
|
|
2
|
+
* @license Highcharts JS v9.3.2 (2021-11-29)
|
|
3
3
|
*
|
|
4
4
|
* Accessibility module
|
|
5
5
|
*
|
|
@@ -88,13 +88,9 @@
|
|
|
88
88
|
*
|
|
89
89
|
* @private
|
|
90
90
|
* @function formatExtendedStatement
|
|
91
|
-
*
|
|
92
91
|
* @param {string} statement
|
|
93
|
-
*
|
|
94
92
|
* @param {Highcharts.Dictionary<*>} ctx
|
|
95
93
|
* Context to apply to the format string.
|
|
96
|
-
*
|
|
97
|
-
* @return {string}
|
|
98
94
|
*/
|
|
99
95
|
function formatExtendedStatement(statement, ctx) {
|
|
100
96
|
var eachStart = statement.indexOf('#each('), pluralStart = statement.indexOf('#plural('), indexStart = statement.indexOf('['), indexEnd = statement.indexOf(']');
|
|
@@ -121,7 +117,7 @@
|
|
|
121
117
|
}
|
|
122
118
|
// Dealing with a plural-function?
|
|
123
119
|
if (pluralStart > -1) {
|
|
124
|
-
var pluralEnd = statement.slice(pluralStart).indexOf(')') + pluralStart, pluralStatement = statement.substring(pluralStart + 8, pluralEnd), pluralArguments = pluralStatement.split(','), num = Number(ctx[pluralArguments[0]]);
|
|
120
|
+
var pluralEnd = (statement.slice(pluralStart).indexOf(')') + pluralStart), pluralStatement = statement.substring(pluralStart + 8, pluralEnd), pluralArguments = pluralStatement.split(','), num = Number(ctx[pluralArguments[0]]);
|
|
125
121
|
switch (num) {
|
|
126
122
|
case 0:
|
|
127
123
|
result = pick(pluralArguments[4], pluralArguments[1]);
|
|
@@ -456,8 +452,6 @@
|
|
|
456
452
|
}
|
|
457
453
|
/**
|
|
458
454
|
* @private
|
|
459
|
-
* @param {string} str
|
|
460
|
-
* @return {string}
|
|
461
455
|
*/
|
|
462
456
|
function escapeStringForHTML(str) {
|
|
463
457
|
return str
|
|
@@ -470,18 +464,14 @@
|
|
|
470
464
|
}
|
|
471
465
|
/**
|
|
472
466
|
* Get an element by ID
|
|
473
|
-
* @param {string} id
|
|
474
467
|
* @private
|
|
475
|
-
* @return {Highcharts.HTMLDOMElement|Highcharts.SVGDOMElement|null}
|
|
476
468
|
*/
|
|
477
469
|
function getElement(id) {
|
|
478
470
|
return doc.getElementById(id);
|
|
479
471
|
}
|
|
480
472
|
/**
|
|
481
473
|
* Get a fake mouse event of a given type
|
|
482
|
-
* @param {string} type
|
|
483
474
|
* @private
|
|
484
|
-
* @return {global.MouseEvent}
|
|
485
475
|
*/
|
|
486
476
|
function getFakeMouseEvent(type, position) {
|
|
487
477
|
var pos = position || {
|
|
@@ -596,8 +586,6 @@
|
|
|
596
586
|
/**
|
|
597
587
|
* Utility function. Reverses child nodes of a DOM element.
|
|
598
588
|
* @private
|
|
599
|
-
* @param {Highcharts.HTMLDOMElement|Highcharts.SVGDOMElement} node
|
|
600
|
-
* @return {void}
|
|
601
589
|
*/
|
|
602
590
|
function reverseChildNodes(node) {
|
|
603
591
|
var i = node.childNodes.length;
|
|
@@ -609,8 +597,6 @@
|
|
|
609
597
|
* Used for aria-label attributes, painting on a canvas will fail if the
|
|
610
598
|
* text contains tags.
|
|
611
599
|
* @private
|
|
612
|
-
* @param {string} str
|
|
613
|
-
* @return {string}
|
|
614
600
|
*/
|
|
615
601
|
function stripHTMLTagsFromString(str) {
|
|
616
602
|
return typeof str === 'string' ?
|
|
@@ -620,8 +606,6 @@
|
|
|
620
606
|
* Utility function for hiding an element visually, but still keeping it
|
|
621
607
|
* available to screen reader users.
|
|
622
608
|
* @private
|
|
623
|
-
* @param {Highcharts.HTMLDOMElement} element
|
|
624
|
-
* @return {void}
|
|
625
609
|
*/
|
|
626
610
|
function visuallyHideElement(element) {
|
|
627
611
|
css(element, {
|
|
@@ -685,12 +669,14 @@
|
|
|
685
669
|
/* eslint-disable valid-jsdoc */
|
|
686
670
|
/**
|
|
687
671
|
* Fire an event on an element that is either wrapped by Highcharts,
|
|
688
|
-
* or a DOM element
|
|
672
|
+
* or a DOM element.
|
|
673
|
+
* @private
|
|
689
674
|
*/
|
|
690
675
|
function fireEventOnWrappedOrUnwrappedElement(el, eventObject) {
|
|
691
676
|
var type = eventObject.type;
|
|
692
677
|
var hcEvents = el.hcEvents;
|
|
693
|
-
if (doc.createEvent &&
|
|
678
|
+
if (doc.createEvent &&
|
|
679
|
+
(el.dispatchEvent || el.fireEvent)) {
|
|
694
680
|
if (el.dispatchEvent) {
|
|
695
681
|
el.dispatchEvent(eventObject);
|
|
696
682
|
}
|
|
@@ -706,7 +692,7 @@
|
|
|
706
692
|
}
|
|
707
693
|
}
|
|
708
694
|
/**
|
|
709
|
-
* @
|
|
695
|
+
* @private
|
|
710
696
|
*/
|
|
711
697
|
function getChartTitle(chart) {
|
|
712
698
|
return stripHTMLTags(chart.options.title.text ||
|
|
@@ -714,8 +700,7 @@
|
|
|
714
700
|
}
|
|
715
701
|
/**
|
|
716
702
|
* Return string with the axis name/title.
|
|
717
|
-
* @
|
|
718
|
-
* @return {string}
|
|
703
|
+
* @private
|
|
719
704
|
*/
|
|
720
705
|
function getAxisDescription(axis) {
|
|
721
706
|
return axis && (axis.userOptions && axis.userOptions.accessibility &&
|
|
@@ -728,8 +713,11 @@
|
|
|
728
713
|
}
|
|
729
714
|
/**
|
|
730
715
|
* Return string with text description of the axis range.
|
|
731
|
-
* @
|
|
732
|
-
* @
|
|
716
|
+
* @private
|
|
717
|
+
* @param {Highcharts.Axis} axis
|
|
718
|
+
* The axis to get range desc of.
|
|
719
|
+
* @return {string}
|
|
720
|
+
* A string with the range description for the axis.
|
|
733
721
|
*/
|
|
734
722
|
function getAxisRangeDescription(axis) {
|
|
735
723
|
var axisOptions = axis.options || {};
|
|
@@ -752,8 +740,7 @@
|
|
|
752
740
|
}
|
|
753
741
|
/**
|
|
754
742
|
* Describe the range of a category axis.
|
|
755
|
-
* @
|
|
756
|
-
* @return {string}
|
|
743
|
+
* @private
|
|
757
744
|
*/
|
|
758
745
|
function getCategoryAxisRangeDesc(axis) {
|
|
759
746
|
var chart = axis.chart;
|
|
@@ -768,8 +755,7 @@
|
|
|
768
755
|
}
|
|
769
756
|
/**
|
|
770
757
|
* Describe the length of the time window shown on an axis.
|
|
771
|
-
* @
|
|
772
|
-
* @return {string}
|
|
758
|
+
* @private
|
|
773
759
|
*/
|
|
774
760
|
function getAxisTimeLengthDesc(axis) {
|
|
775
761
|
var chart = axis.chart,
|
|
@@ -796,14 +782,14 @@
|
|
|
796
782
|
}
|
|
797
783
|
/**
|
|
798
784
|
* Describe an axis from-to range.
|
|
799
|
-
* @
|
|
800
|
-
* @return {string}
|
|
785
|
+
* @private
|
|
801
786
|
*/
|
|
802
787
|
function getAxisFromToDescription(axis) {
|
|
803
788
|
var chart = axis.chart,
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
789
|
+
options = chart.options,
|
|
790
|
+
dateRangeFormat = (options &&
|
|
791
|
+
options.accessibility &&
|
|
792
|
+
options.accessibility.screenReaderSection.axisRangeDateFormat ||
|
|
807
793
|
''),
|
|
808
794
|
format = function (axisKey) {
|
|
809
795
|
return axis.dateTime ? chart.time.dateFormat(dateRangeFormat,
|
|
@@ -852,8 +838,6 @@
|
|
|
852
838
|
* Remove aria-hidden from element. Also unhides parents of the element, and
|
|
853
839
|
* hides siblings that are not explicitly unhidden.
|
|
854
840
|
* @private
|
|
855
|
-
* @param {Highcharts.Chart} chart
|
|
856
|
-
* @param {Highcharts.HTMLDOMElement|Highcharts.SVGDOMElement} element
|
|
857
841
|
*/
|
|
858
842
|
function unhideChartElementFromAT(chart, element) {
|
|
859
843
|
element.setAttribute('aria-hidden', false);
|
|
@@ -875,9 +859,6 @@
|
|
|
875
859
|
/**
|
|
876
860
|
* Hide series from screen readers.
|
|
877
861
|
* @private
|
|
878
|
-
* @param {Highcharts.Series} series
|
|
879
|
-
* The series to hide
|
|
880
|
-
* @return {void}
|
|
881
862
|
*/
|
|
882
863
|
function hideSeriesFromAT(series) {
|
|
883
864
|
var seriesEl = getSeriesA11yElement(series);
|
|
@@ -888,9 +869,6 @@
|
|
|
888
869
|
/**
|
|
889
870
|
* Get series objects by series name.
|
|
890
871
|
* @private
|
|
891
|
-
* @param {Highcharts.Chart} chart
|
|
892
|
-
* @param {string} name
|
|
893
|
-
* @return {Array<Highcharts.Series>}
|
|
894
872
|
*/
|
|
895
873
|
function getSeriesFromName(chart, name) {
|
|
896
874
|
if (!name) {
|
|
@@ -903,10 +881,6 @@
|
|
|
903
881
|
/**
|
|
904
882
|
* Get point in a series from x/y values.
|
|
905
883
|
* @private
|
|
906
|
-
* @param {Array<Highcharts.Series>} series
|
|
907
|
-
* @param {number} x
|
|
908
|
-
* @param {number} y
|
|
909
|
-
* @return {Highcharts.Point|undefined}
|
|
910
884
|
*/
|
|
911
885
|
function getPointFromXY(series, x, y) {
|
|
912
886
|
var i = series.length,
|
|
@@ -923,9 +897,6 @@
|
|
|
923
897
|
/**
|
|
924
898
|
* Get relative position of point on an x/y axis from 0 to 1.
|
|
925
899
|
* @private
|
|
926
|
-
* @param {Highcharts.Axis} axis
|
|
927
|
-
* @param {Highcharts.Point} point
|
|
928
|
-
* @return {number}
|
|
929
900
|
*/
|
|
930
901
|
function getRelativePointAxisPosition(axis, point) {
|
|
931
902
|
if (!defined(axis.dataMin) || !defined(axis.dataMax)) {
|
|
@@ -941,7 +912,6 @@
|
|
|
941
912
|
/**
|
|
942
913
|
* Get relative position of point on an x/y axis from 0 to 1.
|
|
943
914
|
* @private
|
|
944
|
-
* @param {Highcharts.Point} point
|
|
945
915
|
*/
|
|
946
916
|
function scrollToPoint(point) {
|
|
947
917
|
var xAxis = point.series.xAxis,
|
|
@@ -1229,7 +1199,7 @@
|
|
|
1229
1199
|
init: function () { },
|
|
1230
1200
|
/**
|
|
1231
1201
|
* Get keyboard navigation handler for this component.
|
|
1232
|
-
* @
|
|
1202
|
+
* @private
|
|
1233
1203
|
*/
|
|
1234
1204
|
getKeyboardNavigation: function () { },
|
|
1235
1205
|
/**
|
|
@@ -1514,7 +1484,7 @@
|
|
|
1514
1484
|
};
|
|
1515
1485
|
/**
|
|
1516
1486
|
* Empty handler to just set focus on chart
|
|
1517
|
-
* @
|
|
1487
|
+
* @private
|
|
1518
1488
|
*/
|
|
1519
1489
|
ContainerComponent.prototype.getKeyboardNavigation = function () {
|
|
1520
1490
|
var chart = this.chart;
|
|
@@ -1712,11 +1682,6 @@
|
|
|
1712
1682
|
// For text elements, apply x and y offset, #11397.
|
|
1713
1683
|
/**
|
|
1714
1684
|
* @private
|
|
1715
|
-
* @function
|
|
1716
|
-
*
|
|
1717
|
-
* @param {Highcharts.SVGElement} text
|
|
1718
|
-
*
|
|
1719
|
-
* @return {TextAnchorCorrectionObject}
|
|
1720
1685
|
*/
|
|
1721
1686
|
function getTextAnchorCorrection(text) {
|
|
1722
1687
|
var posXCorrection = 0,
|
|
@@ -1912,12 +1877,12 @@
|
|
|
1912
1877
|
clearTimeout(this.clearAnnouncementRegionTimer);
|
|
1913
1878
|
}
|
|
1914
1879
|
this.clearAnnouncementRegionTimer = setTimeout(function () {
|
|
1915
|
-
_this.announceRegion.innerHTML =
|
|
1880
|
+
_this.announceRegion.innerHTML = AST.emptyHTML;
|
|
1916
1881
|
delete _this.clearAnnouncementRegionTimer;
|
|
1917
1882
|
}, 1000);
|
|
1918
1883
|
};
|
|
1919
1884
|
Announcer.prototype.addAnnounceRegion = function (type) {
|
|
1920
|
-
var chartContainer = this.chart.announcerContainer || this.createAnnouncerContainer(),
|
|
1885
|
+
var chartContainer = (this.chart.announcerContainer || this.createAnnouncerContainer()),
|
|
1921
1886
|
div = this.domElementProvider.createElement('div');
|
|
1922
1887
|
attr(div, {
|
|
1923
1888
|
'aria-hidden': false,
|
|
@@ -1994,7 +1959,7 @@
|
|
|
1994
1959
|
* Get the text of an annotation label.
|
|
1995
1960
|
*
|
|
1996
1961
|
* @private
|
|
1997
|
-
* @param {
|
|
1962
|
+
* @param {Object} label The annotation label object
|
|
1998
1963
|
* @return {string} The text in the label.
|
|
1999
1964
|
*/
|
|
2000
1965
|
function getLabelText(label) {
|
|
@@ -2010,7 +1975,7 @@
|
|
|
2010
1975
|
* Describe an annotation label.
|
|
2011
1976
|
*
|
|
2012
1977
|
* @private
|
|
2013
|
-
* @param {
|
|
1978
|
+
* @param {Object} label The annotation label object to describe
|
|
2014
1979
|
* @return {string} The description for the label.
|
|
2015
1980
|
*/
|
|
2016
1981
|
function getAnnotationLabelDescription(label) {
|
|
@@ -2039,10 +2004,14 @@
|
|
|
2039
2004
|
var pointValueDescriptions = points
|
|
2040
2005
|
.filter(function (p) { return !!p.graphic; }) // Filter out mock points
|
|
2041
2006
|
.map(getValueDesc)
|
|
2042
|
-
|
|
2043
|
-
|
|
2044
|
-
var
|
|
2045
|
-
var
|
|
2007
|
+
// Filter out points we can't describe
|
|
2008
|
+
.filter(function (desc) { return !!desc; });
|
|
2009
|
+
var numPoints = pointValueDescriptions.length;
|
|
2010
|
+
var pointsSelector = numPoints > 1 ?
|
|
2011
|
+
'MultiplePoints' : numPoints ?
|
|
2012
|
+
'SinglePoint' : 'NoPoints';
|
|
2013
|
+
var langFormatStr = ('accessibility.screenReaderSection.annotations.description' +
|
|
2014
|
+
pointsSelector);
|
|
2046
2015
|
var context = {
|
|
2047
2016
|
annotationText: labelText,
|
|
2048
2017
|
annotation: label,
|
|
@@ -2311,7 +2280,8 @@
|
|
|
2311
2280
|
after: {
|
|
2312
2281
|
element: null,
|
|
2313
2282
|
buildContent: function (chart) {
|
|
2314
|
-
var formatter = chart.options.accessibility
|
|
2283
|
+
var formatter = chart.options.accessibility
|
|
2284
|
+
.screenReaderSection
|
|
2315
2285
|
.afterChartFormatter;
|
|
2316
2286
|
return formatter ? formatter(chart) :
|
|
2317
2287
|
component.defaultAfterChartFormatter();
|
|
@@ -2425,11 +2395,11 @@
|
|
|
2425
2395
|
};
|
|
2426
2396
|
/**
|
|
2427
2397
|
* @private
|
|
2428
|
-
* @return {string}
|
|
2429
2398
|
*/
|
|
2430
2399
|
InfoRegionsComponent.prototype.defaultBeforeChartFormatter = function () {
|
|
2431
|
-
var chart = this.chart
|
|
2432
|
-
|
|
2400
|
+
var chart = this.chart,
|
|
2401
|
+
format = chart.options.accessibility.screenReaderSection
|
|
2402
|
+
.beforeChartFormat;
|
|
2433
2403
|
if (!format) {
|
|
2434
2404
|
return '';
|
|
2435
2405
|
}
|
|
@@ -2467,11 +2437,11 @@
|
|
|
2467
2437
|
};
|
|
2468
2438
|
/**
|
|
2469
2439
|
* @private
|
|
2470
|
-
* @return {string}
|
|
2471
2440
|
*/
|
|
2472
2441
|
InfoRegionsComponent.prototype.defaultAfterChartFormatter = function () {
|
|
2473
2442
|
var chart = this.chart;
|
|
2474
|
-
var format = chart.options.accessibility.screenReaderSection
|
|
2443
|
+
var format = chart.options.accessibility.screenReaderSection
|
|
2444
|
+
.afterChartFormat;
|
|
2475
2445
|
if (!format) {
|
|
2476
2446
|
return '';
|
|
2477
2447
|
}
|
|
@@ -2483,7 +2453,6 @@
|
|
|
2483
2453
|
};
|
|
2484
2454
|
/**
|
|
2485
2455
|
* @private
|
|
2486
|
-
* @return {string}
|
|
2487
2456
|
*/
|
|
2488
2457
|
InfoRegionsComponent.prototype.getLinkedDescription = function () {
|
|
2489
2458
|
var el = this.linkedDescriptionElement,
|
|
@@ -2492,7 +2461,6 @@
|
|
|
2492
2461
|
};
|
|
2493
2462
|
/**
|
|
2494
2463
|
* @private
|
|
2495
|
-
* @return {string}
|
|
2496
2464
|
*/
|
|
2497
2465
|
InfoRegionsComponent.prototype.getLongdescText = function () {
|
|
2498
2466
|
var chartOptions = this.chart.options,
|
|
@@ -2506,7 +2474,6 @@
|
|
|
2506
2474
|
};
|
|
2507
2475
|
/**
|
|
2508
2476
|
* @private
|
|
2509
|
-
* @return {string}
|
|
2510
2477
|
*/
|
|
2511
2478
|
InfoRegionsComponent.prototype.getTypeDescriptionText = function () {
|
|
2512
2479
|
var chart = this.chart;
|
|
@@ -2516,8 +2483,6 @@
|
|
|
2516
2483
|
};
|
|
2517
2484
|
/**
|
|
2518
2485
|
* @private
|
|
2519
|
-
* @param {string} buttonId
|
|
2520
|
-
* @return {string}
|
|
2521
2486
|
*/
|
|
2522
2487
|
InfoRegionsComponent.prototype.getDataTableButtonText = function (buttonId) {
|
|
2523
2488
|
var chart = this.chart,
|
|
@@ -2527,8 +2492,6 @@
|
|
|
2527
2492
|
};
|
|
2528
2493
|
/**
|
|
2529
2494
|
* @private
|
|
2530
|
-
* @param {string} buttonId
|
|
2531
|
-
* @return {string}
|
|
2532
2495
|
*/
|
|
2533
2496
|
InfoRegionsComponent.prototype.getSonifyButtonText = function (buttonId) {
|
|
2534
2497
|
var chart = this.chart;
|
|
@@ -2542,7 +2505,6 @@
|
|
|
2542
2505
|
};
|
|
2543
2506
|
/**
|
|
2544
2507
|
* @private
|
|
2545
|
-
* @return {string}
|
|
2546
2508
|
*/
|
|
2547
2509
|
InfoRegionsComponent.prototype.getSubtitleText = function () {
|
|
2548
2510
|
var subtitle = (this.chart.options.subtitle);
|
|
@@ -2550,7 +2512,6 @@
|
|
|
2550
2512
|
};
|
|
2551
2513
|
/**
|
|
2552
2514
|
* @private
|
|
2553
|
-
* @return {string}
|
|
2554
2515
|
*/
|
|
2555
2516
|
InfoRegionsComponent.prototype.getEndOfChartMarkerText = function () {
|
|
2556
2517
|
var chart = this.chart, markerText = chart.langFormat('accessibility.screenReaderSection.endOfChartMarker', { chart: chart }), id = 'highcharts-end-of-chart-marker-' + chart.index;
|
|
@@ -2613,7 +2574,8 @@
|
|
|
2613
2574
|
el.setAttribute('tabindex', -1);
|
|
2614
2575
|
el.onclick = function (e) {
|
|
2615
2576
|
var onPlayAsSoundClick = (chart.options.accessibility &&
|
|
2616
|
-
chart.options.accessibility.screenReaderSection
|
|
2577
|
+
chart.options.accessibility.screenReaderSection
|
|
2578
|
+
.onPlayAsSoundClick);
|
|
2617
2579
|
(onPlayAsSoundClick || defaultHandler).call(this, e, chart);
|
|
2618
2580
|
};
|
|
2619
2581
|
}
|
|
@@ -2640,7 +2602,6 @@
|
|
|
2640
2602
|
/**
|
|
2641
2603
|
* Return object with text description of each of the chart's axes.
|
|
2642
2604
|
* @private
|
|
2643
|
-
* @return {Highcharts.Dictionary<string>}
|
|
2644
2605
|
*/
|
|
2645
2606
|
InfoRegionsComponent.prototype.getAxesDescription = function () {
|
|
2646
2607
|
var chart = this.chart,
|
|
@@ -2661,8 +2622,6 @@
|
|
|
2661
2622
|
};
|
|
2662
2623
|
/**
|
|
2663
2624
|
* @private
|
|
2664
|
-
* @param {string} collectionKey
|
|
2665
|
-
* @return {string}
|
|
2666
2625
|
*/
|
|
2667
2626
|
InfoRegionsComponent.prototype.getAxisDescriptionText = function (collectionKey) {
|
|
2668
2627
|
var chart = this.chart;
|
|
@@ -2736,17 +2695,13 @@
|
|
|
2736
2695
|
/* eslint-disable valid-jsdoc */
|
|
2737
2696
|
/**
|
|
2738
2697
|
* Get the wrapped export button element of a chart.
|
|
2739
|
-
*
|
|
2740
2698
|
* @private
|
|
2741
|
-
* @param {Highcharts.Chart} chart
|
|
2742
|
-
* @returns {Highcharts.SVGElement}
|
|
2743
2699
|
*/
|
|
2744
2700
|
function getExportMenuButtonElement(chart) {
|
|
2745
2701
|
return chart.exportSVGElements && chart.exportSVGElements[0];
|
|
2746
2702
|
}
|
|
2747
2703
|
/**
|
|
2748
2704
|
* @private
|
|
2749
|
-
* @param {Highcharts.Chart} chart
|
|
2750
2705
|
*/
|
|
2751
2706
|
function exportingShouldHaveA11y(chart) {
|
|
2752
2707
|
var exportingOpts = chart.options.exporting,
|
|
@@ -2895,7 +2850,7 @@
|
|
|
2895
2850
|
};
|
|
2896
2851
|
/**
|
|
2897
2852
|
* Get keyboard navigation handler for this component.
|
|
2898
|
-
* @
|
|
2853
|
+
* @private
|
|
2899
2854
|
*/
|
|
2900
2855
|
MenuComponent.prototype.getKeyboardNavigation = function () {
|
|
2901
2856
|
var keys = this.keyCodes,
|
|
@@ -3094,10 +3049,6 @@
|
|
|
3094
3049
|
*
|
|
3095
3050
|
* @private
|
|
3096
3051
|
* @function Highcharts.Chart#highlightExportItem
|
|
3097
|
-
*
|
|
3098
|
-
* @param {number} ix
|
|
3099
|
-
*
|
|
3100
|
-
* @return {boolean}
|
|
3101
3052
|
*/
|
|
3102
3053
|
function chartHighlightExportItem(ix) {
|
|
3103
3054
|
var listItem = this.exportDivElements && this.exportDivElements[ix];
|
|
@@ -3129,7 +3080,6 @@
|
|
|
3129
3080
|
*
|
|
3130
3081
|
* @private
|
|
3131
3082
|
* @function Highcharts.Chart#highlightLastExportItem
|
|
3132
|
-
* @return {boolean}
|
|
3133
3083
|
*/
|
|
3134
3084
|
function chartHighlightLastExportItem() {
|
|
3135
3085
|
var chart = this;
|
|
@@ -3184,7 +3134,7 @@
|
|
|
3184
3134
|
* @class
|
|
3185
3135
|
* @param {Highcharts.Chart} chart
|
|
3186
3136
|
* Chart object
|
|
3187
|
-
* @param {
|
|
3137
|
+
* @param {Object} components
|
|
3188
3138
|
* Map of component names to AccessibilityComponent objects.
|
|
3189
3139
|
* @name Highcharts.KeyboardNavigation
|
|
3190
3140
|
*/
|
|
@@ -3220,7 +3170,7 @@
|
|
|
3220
3170
|
* @private
|
|
3221
3171
|
* @param {Highcharts.Chart} chart
|
|
3222
3172
|
* Chart object
|
|
3223
|
-
* @param {
|
|
3173
|
+
* @param {Object} components
|
|
3224
3174
|
* Map of component names to AccessibilityComponent objects.
|
|
3225
3175
|
*/
|
|
3226
3176
|
KeyboardNavigation.prototype.init = function (chart, components) {
|
|
@@ -3264,7 +3214,8 @@
|
|
|
3264
3214
|
order.length) {
|
|
3265
3215
|
// We (still) have keyboard navigation. Update module list
|
|
3266
3216
|
this.modules = order.reduce(function (modules, componentName) {
|
|
3267
|
-
var navModules = components[componentName]
|
|
3217
|
+
var navModules = components[componentName]
|
|
3218
|
+
.getKeyboardNavigation();
|
|
3268
3219
|
return modules.concat(navModules);
|
|
3269
3220
|
}, []);
|
|
3270
3221
|
this.updateExitAnchor();
|
|
@@ -3411,7 +3362,7 @@
|
|
|
3411
3362
|
* @private
|
|
3412
3363
|
*/
|
|
3413
3364
|
KeyboardNavigation.prototype.updateExitAnchor = function () {
|
|
3414
|
-
var endMarkerId = 'highcharts-end-of-chart-marker-' + this.chart.index,
|
|
3365
|
+
var endMarkerId = ('highcharts-end-of-chart-marker-' + this.chart.index),
|
|
3415
3366
|
endMarker = getElement(endMarkerId);
|
|
3416
3367
|
this.removeExitAnchor();
|
|
3417
3368
|
if (endMarker) {
|
|
@@ -3612,7 +3563,7 @@
|
|
|
3612
3563
|
|
|
3613
3564
|
return KeyboardNavigation;
|
|
3614
3565
|
});
|
|
3615
|
-
_registerModule(_modules, 'Accessibility/Components/LegendComponent.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/
|
|
3566
|
+
_registerModule(_modules, 'Accessibility/Components/LegendComponent.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Globals.js'], _modules['Core/Legend/Legend.js'], _modules['Core/Utilities.js'], _modules['Accessibility/AccessibilityComponent.js'], _modules['Accessibility/KeyboardNavigationHandler.js'], _modules['Accessibility/Utils/ChartUtilities.js'], _modules['Accessibility/Utils/HTMLUtilities.js']], function (A, H, Legend, U, AccessibilityComponent, KeyboardNavigationHandler, CU, HU) {
|
|
3616
3567
|
/* *
|
|
3617
3568
|
*
|
|
3618
3569
|
* (c) 2009-2021 Øystein Moseng
|
|
@@ -3624,18 +3575,38 @@
|
|
|
3624
3575
|
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
3625
3576
|
*
|
|
3626
3577
|
* */
|
|
3578
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3579
|
+
var extendStatics = function (d,
|
|
3580
|
+
b) {
|
|
3581
|
+
extendStatics = Object.setPrototypeOf ||
|
|
3582
|
+
({ __proto__: [] } instanceof Array && function (d,
|
|
3583
|
+
b) { d.__proto__ = b; }) ||
|
|
3584
|
+
function (d,
|
|
3585
|
+
b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
3586
|
+
return extendStatics(d, b);
|
|
3587
|
+
};
|
|
3588
|
+
return function (d, b) {
|
|
3589
|
+
extendStatics(d, b);
|
|
3590
|
+
function __() { this.constructor = d; }
|
|
3591
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
3592
|
+
};
|
|
3593
|
+
})();
|
|
3627
3594
|
var animObject = A.animObject;
|
|
3628
3595
|
var addEvent = U.addEvent,
|
|
3629
|
-
extend = U.extend,
|
|
3630
3596
|
fireEvent = U.fireEvent,
|
|
3631
3597
|
isNumber = U.isNumber,
|
|
3632
3598
|
pick = U.pick,
|
|
3633
3599
|
syncTimeout = U.syncTimeout;
|
|
3634
|
-
var
|
|
3635
|
-
|
|
3636
|
-
|
|
3637
|
-
|
|
3638
|
-
/*
|
|
3600
|
+
var getChartTitle = CU.getChartTitle;
|
|
3601
|
+
var stripHTMLTags = HU.stripHTMLTagsFromString,
|
|
3602
|
+
addClass = HU.addClass,
|
|
3603
|
+
removeClass = HU.removeClass;
|
|
3604
|
+
/* *
|
|
3605
|
+
*
|
|
3606
|
+
* Functions
|
|
3607
|
+
*
|
|
3608
|
+
* */
|
|
3609
|
+
/* eslint-disable valid-jsdoc */
|
|
3639
3610
|
/**
|
|
3640
3611
|
* @private
|
|
3641
3612
|
*/
|
|
@@ -3656,47 +3627,11 @@
|
|
|
3656
3627
|
!(chart.colorAxis && chart.colorAxis.length) &&
|
|
3657
3628
|
legendA11yOptions.enabled !== false);
|
|
3658
3629
|
}
|
|
3659
|
-
|
|
3660
|
-
* Highlight legend item by index.
|
|
3661
|
-
*
|
|
3662
|
-
* @private
|
|
3663
|
-
* @function Highcharts.Chart#highlightLegendItem
|
|
3630
|
+
/* *
|
|
3664
3631
|
*
|
|
3665
|
-
*
|
|
3632
|
+
* Class
|
|
3666
3633
|
*
|
|
3667
|
-
*
|
|
3668
|
-
*/
|
|
3669
|
-
Chart.prototype.highlightLegendItem = function (ix) {
|
|
3670
|
-
var items = this.legend.allItems;
|
|
3671
|
-
var oldIx = this.accessibility &&
|
|
3672
|
-
this.accessibility.components.legend.highlightedLegendItemIx;
|
|
3673
|
-
var itemToHighlight = items[ix];
|
|
3674
|
-
if (itemToHighlight) {
|
|
3675
|
-
if (isNumber(oldIx) && items[oldIx]) {
|
|
3676
|
-
fireEvent(items[oldIx].legendGroup.element, 'mouseout');
|
|
3677
|
-
}
|
|
3678
|
-
scrollLegendToItem(this.legend, ix);
|
|
3679
|
-
var legendItemProp = itemToHighlight.legendItem;
|
|
3680
|
-
var proxyBtn = itemToHighlight.a11yProxyElement && itemToHighlight.a11yProxyElement.buttonElement;
|
|
3681
|
-
if (legendItemProp && legendItemProp.element && proxyBtn) {
|
|
3682
|
-
this.setFocusToElement(legendItemProp, proxyBtn);
|
|
3683
|
-
}
|
|
3684
|
-
if (itemToHighlight.legendGroup) {
|
|
3685
|
-
fireEvent(itemToHighlight.legendGroup.element, 'mouseover');
|
|
3686
|
-
}
|
|
3687
|
-
return true;
|
|
3688
|
-
}
|
|
3689
|
-
return false;
|
|
3690
|
-
};
|
|
3691
|
-
// Keep track of pressed state for legend items
|
|
3692
|
-
addEvent(Legend, 'afterColorizeItem', function (e) {
|
|
3693
|
-
var chart = this.chart,
|
|
3694
|
-
a11yOptions = chart.options.accessibility,
|
|
3695
|
-
legendItem = e.item;
|
|
3696
|
-
if (a11yOptions.enabled && legendItem && legendItem.a11yProxyElement) {
|
|
3697
|
-
legendItem.a11yProxyElement.buttonElement.setAttribute('aria-pressed', e.visible ? 'true' : 'false');
|
|
3698
|
-
}
|
|
3699
|
-
});
|
|
3634
|
+
* */
|
|
3700
3635
|
/**
|
|
3701
3636
|
* The LegendComponent class
|
|
3702
3637
|
*
|
|
@@ -3704,18 +3639,36 @@
|
|
|
3704
3639
|
* @class
|
|
3705
3640
|
* @name Highcharts.LegendComponent
|
|
3706
3641
|
*/
|
|
3707
|
-
var LegendComponent = function () {
|
|
3708
|
-
|
|
3709
|
-
|
|
3642
|
+
var LegendComponent = /** @class */ (function (_super) {
|
|
3643
|
+
__extends(LegendComponent, _super);
|
|
3644
|
+
function LegendComponent() {
|
|
3645
|
+
/* *
|
|
3646
|
+
*
|
|
3647
|
+
* Properties
|
|
3648
|
+
*
|
|
3649
|
+
* */
|
|
3650
|
+
var _this = _super !== null && _super.apply(this,
|
|
3651
|
+
arguments) || this;
|
|
3652
|
+
_this.highlightedLegendItemIx = NaN;
|
|
3653
|
+
return _this;
|
|
3654
|
+
}
|
|
3655
|
+
/* *
|
|
3656
|
+
*
|
|
3657
|
+
* Functions
|
|
3658
|
+
*
|
|
3659
|
+
* */
|
|
3660
|
+
/* eslint-disable valid-jsdoc */
|
|
3710
3661
|
/**
|
|
3711
3662
|
* Init the component
|
|
3712
3663
|
* @private
|
|
3713
3664
|
*/
|
|
3714
|
-
init
|
|
3665
|
+
LegendComponent.prototype.init = function () {
|
|
3715
3666
|
var component = this;
|
|
3716
3667
|
this.recreateProxies();
|
|
3717
3668
|
// Note: Chart could create legend dynamically, so events can not be
|
|
3718
3669
|
// tied to the component's chart's current legend.
|
|
3670
|
+
// @todo 1. attach component to created legends
|
|
3671
|
+
// @todo 2. move listeners to composition and access `this.component`
|
|
3719
3672
|
this.addEvent(Legend, 'afterScroll', function () {
|
|
3720
3673
|
if (this.chart === component.chart) {
|
|
3721
3674
|
component.proxyProvider.updateGroupProxyElementPositions('legend');
|
|
@@ -3734,15 +3687,16 @@
|
|
|
3734
3687
|
if (this.chart === component.chart &&
|
|
3735
3688
|
this.chart.renderer &&
|
|
3736
3689
|
component.recreateProxies()) {
|
|
3737
|
-
syncTimeout(function () { return component.proxyProvider
|
|
3690
|
+
syncTimeout(function () { return component.proxyProvider
|
|
3691
|
+
.updateGroupProxyElementPositions('legend'); }, animObject(pick(this.chart.renderer.globalAnimation, true)).duration);
|
|
3738
3692
|
}
|
|
3739
3693
|
});
|
|
3740
|
-
}
|
|
3694
|
+
};
|
|
3741
3695
|
/**
|
|
3742
3696
|
* Update visibility of legend items when using paged legend
|
|
3743
3697
|
* @private
|
|
3744
3698
|
*/
|
|
3745
|
-
updateLegendItemProxyVisibility
|
|
3699
|
+
LegendComponent.prototype.updateLegendItemProxyVisibility = function () {
|
|
3746
3700
|
var chart = this.chart;
|
|
3747
3701
|
var legend = chart.legend;
|
|
3748
3702
|
var items = legend.allItems || [];
|
|
@@ -3756,8 +3710,11 @@
|
|
|
3756
3710
|
if (hasPages) {
|
|
3757
3711
|
var itemPage = item.pageIx || 0;
|
|
3758
3712
|
var y = item._legendItemPos ? item._legendItemPos[1] : 0;
|
|
3759
|
-
var h = item.legendItem ?
|
|
3760
|
-
|
|
3713
|
+
var h = item.legendItem ?
|
|
3714
|
+
Math.round(item.legendItem.getBBox().height) :
|
|
3715
|
+
0;
|
|
3716
|
+
hide = y + h - legend.pages[itemPage] > clipHeight ||
|
|
3717
|
+
itemPage !== curPage - 1;
|
|
3761
3718
|
}
|
|
3762
3719
|
if (hide) {
|
|
3763
3720
|
if (chart.styledMode) {
|
|
@@ -3773,19 +3730,19 @@
|
|
|
3773
3730
|
}
|
|
3774
3731
|
}
|
|
3775
3732
|
});
|
|
3776
|
-
}
|
|
3733
|
+
};
|
|
3777
3734
|
/**
|
|
3778
3735
|
* @private
|
|
3779
3736
|
*/
|
|
3780
|
-
onChartRender
|
|
3737
|
+
LegendComponent.prototype.onChartRender = function () {
|
|
3781
3738
|
if (!shouldDoLegendA11y(this.chart)) {
|
|
3782
3739
|
this.removeProxies();
|
|
3783
3740
|
}
|
|
3784
|
-
}
|
|
3741
|
+
};
|
|
3785
3742
|
/**
|
|
3786
3743
|
* @private
|
|
3787
3744
|
*/
|
|
3788
|
-
highlightAdjacentLegendPage
|
|
3745
|
+
LegendComponent.prototype.highlightAdjacentLegendPage = function (direction) {
|
|
3789
3746
|
var chart = this.chart;
|
|
3790
3747
|
var legend = chart.legend;
|
|
3791
3748
|
var curPageIx = legend.currentPage || 1;
|
|
@@ -3803,21 +3760,21 @@
|
|
|
3803
3760
|
}
|
|
3804
3761
|
}
|
|
3805
3762
|
}
|
|
3806
|
-
}
|
|
3763
|
+
};
|
|
3807
3764
|
/**
|
|
3808
3765
|
* @private
|
|
3809
3766
|
*/
|
|
3810
|
-
updateProxyPositionForItem
|
|
3767
|
+
LegendComponent.prototype.updateProxyPositionForItem = function (item) {
|
|
3811
3768
|
if (item.a11yProxyElement) {
|
|
3812
3769
|
item.a11yProxyElement.refreshPosition();
|
|
3813
3770
|
}
|
|
3814
|
-
}
|
|
3771
|
+
};
|
|
3815
3772
|
/**
|
|
3816
3773
|
* Returns false if legend a11y is disabled and proxies were not created,
|
|
3817
3774
|
* true otherwise.
|
|
3818
3775
|
* @private
|
|
3819
3776
|
*/
|
|
3820
|
-
recreateProxies
|
|
3777
|
+
LegendComponent.prototype.recreateProxies = function () {
|
|
3821
3778
|
this.removeProxies();
|
|
3822
3779
|
if (shouldDoLegendA11y(this.chart)) {
|
|
3823
3780
|
this.addLegendProxyGroup();
|
|
@@ -3827,17 +3784,17 @@
|
|
|
3827
3784
|
return true;
|
|
3828
3785
|
}
|
|
3829
3786
|
return false;
|
|
3830
|
-
}
|
|
3787
|
+
};
|
|
3831
3788
|
/**
|
|
3832
3789
|
* @private
|
|
3833
3790
|
*/
|
|
3834
|
-
removeProxies
|
|
3791
|
+
LegendComponent.prototype.removeProxies = function () {
|
|
3835
3792
|
this.proxyProvider.removeGroup('legend');
|
|
3836
|
-
}
|
|
3793
|
+
};
|
|
3837
3794
|
/**
|
|
3838
3795
|
* @private
|
|
3839
3796
|
*/
|
|
3840
|
-
updateLegendTitle
|
|
3797
|
+
LegendComponent.prototype.updateLegendTitle = function () {
|
|
3841
3798
|
var chart = this.chart;
|
|
3842
3799
|
var legendTitle = stripHTMLTags((chart.legend &&
|
|
3843
3800
|
chart.legend.options.title &&
|
|
@@ -3851,22 +3808,25 @@
|
|
|
3851
3808
|
this.proxyProvider.updateGroupAttrs('legend', {
|
|
3852
3809
|
'aria-label': legendLabel
|
|
3853
3810
|
});
|
|
3854
|
-
}
|
|
3811
|
+
};
|
|
3855
3812
|
/**
|
|
3856
3813
|
* @private
|
|
3857
3814
|
*/
|
|
3858
|
-
addLegendProxyGroup
|
|
3815
|
+
LegendComponent.prototype.addLegendProxyGroup = function () {
|
|
3859
3816
|
var a11yOptions = this.chart.options.accessibility;
|
|
3860
|
-
var groupRole = a11yOptions.landmarkVerbosity === 'all' ?
|
|
3817
|
+
var groupRole = a11yOptions.landmarkVerbosity === 'all' ?
|
|
3818
|
+
'region' : null;
|
|
3861
3819
|
this.proxyProvider.addGroup('legend', 'ul', {
|
|
3820
|
+
// Filled by updateLegendTitle, to keep up to date without
|
|
3821
|
+
// recreating group
|
|
3862
3822
|
'aria-label': '_placeholder_',
|
|
3863
3823
|
role: groupRole
|
|
3864
3824
|
});
|
|
3865
|
-
}
|
|
3825
|
+
};
|
|
3866
3826
|
/**
|
|
3867
3827
|
* @private
|
|
3868
3828
|
*/
|
|
3869
|
-
proxyLegendItems
|
|
3829
|
+
LegendComponent.prototype.proxyLegendItems = function () {
|
|
3870
3830
|
var component = this,
|
|
3871
3831
|
items = (this.chart.legend &&
|
|
3872
3832
|
this.chart.legend.allItems || []);
|
|
@@ -3875,12 +3835,12 @@
|
|
|
3875
3835
|
component.proxyLegendItem(item);
|
|
3876
3836
|
}
|
|
3877
3837
|
});
|
|
3878
|
-
}
|
|
3838
|
+
};
|
|
3879
3839
|
/**
|
|
3880
3840
|
* @private
|
|
3881
3841
|
* @param {Highcharts.BubbleLegendItem|Point|Highcharts.Series} item
|
|
3882
3842
|
*/
|
|
3883
|
-
proxyLegendItem
|
|
3843
|
+
LegendComponent.prototype.proxyLegendItem = function (item) {
|
|
3884
3844
|
if (!item.legendItem || !item.legendGroup) {
|
|
3885
3845
|
return;
|
|
3886
3846
|
}
|
|
@@ -3895,17 +3855,19 @@
|
|
|
3895
3855
|
'aria-label': itemLabel
|
|
3896
3856
|
};
|
|
3897
3857
|
// Considers useHTML
|
|
3898
|
-
var proxyPositioningElement = item.legendGroup.div ?
|
|
3858
|
+
var proxyPositioningElement = item.legendGroup.div ?
|
|
3859
|
+
item.legendItem :
|
|
3860
|
+
item.legendGroup;
|
|
3899
3861
|
item.a11yProxyElement = this.proxyProvider.addProxyElement('legend', {
|
|
3900
3862
|
click: item.legendItem,
|
|
3901
3863
|
visual: proxyPositioningElement.element
|
|
3902
3864
|
}, attribs);
|
|
3903
|
-
}
|
|
3865
|
+
};
|
|
3904
3866
|
/**
|
|
3905
3867
|
* Get keyboard navigation handler for this component.
|
|
3906
|
-
* @
|
|
3868
|
+
* @private
|
|
3907
3869
|
*/
|
|
3908
|
-
getKeyboardNavigation
|
|
3870
|
+
LegendComponent.prototype.getKeyboardNavigation = function () {
|
|
3909
3871
|
var keys = this.keyCodes,
|
|
3910
3872
|
component = this,
|
|
3911
3873
|
chart = this.chart;
|
|
@@ -3946,7 +3908,7 @@
|
|
|
3946
3908
|
chart.legend.allItems.forEach(function (item) { return item.setState('', true); });
|
|
3947
3909
|
}
|
|
3948
3910
|
});
|
|
3949
|
-
}
|
|
3911
|
+
};
|
|
3950
3912
|
/**
|
|
3951
3913
|
* @private
|
|
3952
3914
|
* @param {Highcharts.KeyboardNavigationHandler} keyboardNavigationHandler
|
|
@@ -3954,7 +3916,7 @@
|
|
|
3954
3916
|
* @return {number}
|
|
3955
3917
|
* Response code
|
|
3956
3918
|
*/
|
|
3957
|
-
onKbdArrowKey
|
|
3919
|
+
LegendComponent.prototype.onKbdArrowKey = function (keyboardNavigationHandler, keyCode) {
|
|
3958
3920
|
var keys = this.keyCodes,
|
|
3959
3921
|
response = keyboardNavigationHandler.response,
|
|
3960
3922
|
chart = this.chart,
|
|
@@ -3973,24 +3935,23 @@
|
|
|
3973
3935
|
}
|
|
3974
3936
|
// No wrap, move
|
|
3975
3937
|
return response[direction > 0 ? 'next' : 'prev'];
|
|
3976
|
-
}
|
|
3938
|
+
};
|
|
3977
3939
|
/**
|
|
3978
3940
|
* @private
|
|
3979
3941
|
* @param {Highcharts.KeyboardNavigationHandler} keyboardNavigationHandler
|
|
3980
3942
|
* @return {number} Response code
|
|
3981
3943
|
*/
|
|
3982
|
-
onKbdClick
|
|
3944
|
+
LegendComponent.prototype.onKbdClick = function (keyboardNavigationHandler) {
|
|
3983
3945
|
var legendItem = this.chart.legend.allItems[this.highlightedLegendItemIx];
|
|
3984
3946
|
if (legendItem && legendItem.a11yProxyElement) {
|
|
3985
3947
|
legendItem.a11yProxyElement.click();
|
|
3986
3948
|
}
|
|
3987
3949
|
return keyboardNavigationHandler.response.success;
|
|
3988
|
-
}
|
|
3950
|
+
};
|
|
3989
3951
|
/**
|
|
3990
3952
|
* @private
|
|
3991
|
-
* @return {boolean|undefined}
|
|
3992
3953
|
*/
|
|
3993
|
-
shouldHaveLegendNavigation
|
|
3954
|
+
LegendComponent.prototype.shouldHaveLegendNavigation = function () {
|
|
3994
3955
|
var chart = this.chart,
|
|
3995
3956
|
legendOptions = chart.options.legend || {},
|
|
3996
3957
|
hasLegend = chart.legend && chart.legend.allItems,
|
|
@@ -4002,19 +3963,103 @@
|
|
|
4002
3963
|
legendA11yOptions.enabled &&
|
|
4003
3964
|
legendA11yOptions.keyboardNavigation &&
|
|
4004
3965
|
legendA11yOptions.keyboardNavigation.enabled);
|
|
4005
|
-
}
|
|
3966
|
+
};
|
|
4006
3967
|
/**
|
|
4007
3968
|
* @private
|
|
4008
3969
|
* @param {number} direction
|
|
4009
3970
|
*/
|
|
4010
|
-
onKbdNavigationInit
|
|
3971
|
+
LegendComponent.prototype.onKbdNavigationInit = function (direction) {
|
|
4011
3972
|
var chart = this.chart,
|
|
4012
3973
|
lastIx = chart.legend.allItems.length - 1,
|
|
4013
3974
|
ixToHighlight = direction > 0 ? 0 : lastIx;
|
|
4014
3975
|
chart.highlightLegendItem(ixToHighlight);
|
|
4015
3976
|
this.highlightedLegendItemIx = ixToHighlight;
|
|
3977
|
+
};
|
|
3978
|
+
return LegendComponent;
|
|
3979
|
+
}(AccessibilityComponent));
|
|
3980
|
+
/* *
|
|
3981
|
+
*
|
|
3982
|
+
* Class Namespace
|
|
3983
|
+
*
|
|
3984
|
+
* */
|
|
3985
|
+
(function (LegendComponent) {
|
|
3986
|
+
/* *
|
|
3987
|
+
*
|
|
3988
|
+
* Declarations
|
|
3989
|
+
*
|
|
3990
|
+
* */
|
|
3991
|
+
/* *
|
|
3992
|
+
*
|
|
3993
|
+
* Constants
|
|
3994
|
+
*
|
|
3995
|
+
* */
|
|
3996
|
+
var composedClasses = [];
|
|
3997
|
+
/* *
|
|
3998
|
+
*
|
|
3999
|
+
* Functions
|
|
4000
|
+
*
|
|
4001
|
+
* */
|
|
4002
|
+
/* eslint-disable valid-jsdoc */
|
|
4003
|
+
/**
|
|
4004
|
+
* Highlight legend item by index.
|
|
4005
|
+
* @private
|
|
4006
|
+
*/
|
|
4007
|
+
function chartHighlightLegendItem(ix) {
|
|
4008
|
+
var items = this.legend.allItems;
|
|
4009
|
+
var oldIx = this.accessibility &&
|
|
4010
|
+
this.accessibility.components.legend.highlightedLegendItemIx;
|
|
4011
|
+
var itemToHighlight = items[ix];
|
|
4012
|
+
if (itemToHighlight) {
|
|
4013
|
+
if (isNumber(oldIx) && items[oldIx]) {
|
|
4014
|
+
fireEvent(items[oldIx].legendGroup.element, 'mouseout');
|
|
4015
|
+
}
|
|
4016
|
+
scrollLegendToItem(this.legend, ix);
|
|
4017
|
+
var legendItemProp = itemToHighlight.legendItem;
|
|
4018
|
+
var proxyBtn = itemToHighlight.a11yProxyElement &&
|
|
4019
|
+
itemToHighlight.a11yProxyElement.buttonElement;
|
|
4020
|
+
if (legendItemProp && legendItemProp.element && proxyBtn) {
|
|
4021
|
+
this.setFocusToElement(legendItemProp, proxyBtn);
|
|
4022
|
+
}
|
|
4023
|
+
if (itemToHighlight.legendGroup) {
|
|
4024
|
+
fireEvent(itemToHighlight.legendGroup.element, 'mouseover');
|
|
4025
|
+
}
|
|
4026
|
+
return true;
|
|
4027
|
+
}
|
|
4028
|
+
return false;
|
|
4016
4029
|
}
|
|
4017
|
-
|
|
4030
|
+
/**
|
|
4031
|
+
* @private
|
|
4032
|
+
*/
|
|
4033
|
+
function compose(ChartClass, LegendClass) {
|
|
4034
|
+
if (composedClasses.indexOf(ChartClass) === -1) {
|
|
4035
|
+
composedClasses.push(ChartClass);
|
|
4036
|
+
var chartProto = ChartClass.prototype;
|
|
4037
|
+
chartProto.highlightLegendItem = chartHighlightLegendItem;
|
|
4038
|
+
}
|
|
4039
|
+
if (composedClasses.indexOf(LegendClass) === -1) {
|
|
4040
|
+
composedClasses.push(LegendClass);
|
|
4041
|
+
addEvent(LegendClass, 'afterColorizeItem', legendOnAfterColorizeItem);
|
|
4042
|
+
}
|
|
4043
|
+
}
|
|
4044
|
+
LegendComponent.compose = compose;
|
|
4045
|
+
/**
|
|
4046
|
+
* Keep track of pressed state for legend items.
|
|
4047
|
+
* @private
|
|
4048
|
+
*/
|
|
4049
|
+
function legendOnAfterColorizeItem(e) {
|
|
4050
|
+
var chart = this.chart,
|
|
4051
|
+
a11yOptions = chart.options.accessibility,
|
|
4052
|
+
legendItem = e.item;
|
|
4053
|
+
if (a11yOptions.enabled && legendItem && legendItem.a11yProxyElement) {
|
|
4054
|
+
legendItem.a11yProxyElement.buttonElement.setAttribute('aria-pressed', e.visible ? 'true' : 'false');
|
|
4055
|
+
}
|
|
4056
|
+
}
|
|
4057
|
+
})(LegendComponent || (LegendComponent = {}));
|
|
4058
|
+
/* *
|
|
4059
|
+
*
|
|
4060
|
+
* Default Export
|
|
4061
|
+
*
|
|
4062
|
+
* */
|
|
4018
4063
|
|
|
4019
4064
|
return LegendComponent;
|
|
4020
4065
|
});
|
|
@@ -4093,8 +4138,6 @@
|
|
|
4093
4138
|
}
|
|
4094
4139
|
/**
|
|
4095
4140
|
* @private
|
|
4096
|
-
* @param {Highcharts.Point} point
|
|
4097
|
-
* @return {Highcharts.HTMLDOMElement|Highcharts.SVGDOMElement|undefined}
|
|
4098
4141
|
*/
|
|
4099
4142
|
function addDummyPointElement(point) {
|
|
4100
4143
|
var series = point.series,
|
|
@@ -4125,8 +4168,6 @@
|
|
|
4125
4168
|
}
|
|
4126
4169
|
/**
|
|
4127
4170
|
* @private
|
|
4128
|
-
* @param {Highcharts.Series} series
|
|
4129
|
-
* @return {boolean}
|
|
4130
4171
|
*/
|
|
4131
4172
|
function hasMorePointsThanDescriptionThreshold(series) {
|
|
4132
4173
|
var chartA11yOptions = series.chart.options.accessibility,
|
|
@@ -4137,8 +4178,6 @@
|
|
|
4137
4178
|
}
|
|
4138
4179
|
/**
|
|
4139
4180
|
* @private
|
|
4140
|
-
* @param {Highcharts.Series} series
|
|
4141
|
-
* @return {boolean}
|
|
4142
4181
|
*/
|
|
4143
4182
|
function shouldSetScreenReaderPropsOnPoints(series) {
|
|
4144
4183
|
var seriesA11yOptions = series.options.accessibility || {};
|
|
@@ -4147,8 +4186,6 @@
|
|
|
4147
4186
|
}
|
|
4148
4187
|
/**
|
|
4149
4188
|
* @private
|
|
4150
|
-
* @param {Highcharts.Series} series
|
|
4151
|
-
* @return {boolean}
|
|
4152
4189
|
*/
|
|
4153
4190
|
function shouldSetKeyboardNavPropsOnPoints(series) {
|
|
4154
4191
|
var chartA11yOptions = series.chart.options.accessibility,
|
|
@@ -4159,8 +4196,6 @@
|
|
|
4159
4196
|
}
|
|
4160
4197
|
/**
|
|
4161
4198
|
* @private
|
|
4162
|
-
* @param {Highcharts.Series} series
|
|
4163
|
-
* @return {boolean}
|
|
4164
4199
|
*/
|
|
4165
4200
|
function shouldDescribeSeriesElement(series) {
|
|
4166
4201
|
var chart = series.chart,
|
|
@@ -4175,15 +4210,13 @@
|
|
|
4175
4210
|
}
|
|
4176
4211
|
/**
|
|
4177
4212
|
* @private
|
|
4178
|
-
* @param {Highcharts.Point} point
|
|
4179
|
-
* @param {number} value
|
|
4180
|
-
* @return {string}
|
|
4181
4213
|
*/
|
|
4182
4214
|
function pointNumberToString(point, value) {
|
|
4183
4215
|
var series = point.series,
|
|
4184
4216
|
chart = series.chart,
|
|
4185
4217
|
a11yPointOptions = chart.options.accessibility.point || {},
|
|
4186
|
-
seriesA11yPointOptions = series.options.accessibility &&
|
|
4218
|
+
seriesA11yPointOptions = series.options.accessibility &&
|
|
4219
|
+
series.options.accessibility.point || {},
|
|
4187
4220
|
tooltipOptions = series.tooltipOptions || {},
|
|
4188
4221
|
lang = chart.options.lang;
|
|
4189
4222
|
if (isNumber(value)) {
|
|
@@ -4196,8 +4229,6 @@
|
|
|
4196
4229
|
}
|
|
4197
4230
|
/**
|
|
4198
4231
|
* @private
|
|
4199
|
-
* @param {Highcharts.Series} series
|
|
4200
|
-
* @return {string}
|
|
4201
4232
|
*/
|
|
4202
4233
|
function getSeriesDescriptionText(series) {
|
|
4203
4234
|
var seriesA11yOptions = series.options.accessibility || {},
|
|
@@ -4209,9 +4240,6 @@
|
|
|
4209
4240
|
}
|
|
4210
4241
|
/**
|
|
4211
4242
|
* @private
|
|
4212
|
-
* @param {Highcharts.series} series
|
|
4213
|
-
* @param {string} axisCollection
|
|
4214
|
-
* @return {string}
|
|
4215
4243
|
*/
|
|
4216
4244
|
function getSeriesAxisDescriptionText(series, axisCollection) {
|
|
4217
4245
|
var axis = series[axisCollection];
|
|
@@ -4224,21 +4252,19 @@
|
|
|
4224
4252
|
* Get accessible time description for a point on a datetime axis.
|
|
4225
4253
|
*
|
|
4226
4254
|
* @private
|
|
4227
|
-
* @function Highcharts.Point#getTimeDescription
|
|
4228
|
-
* @param {Highcharts.Point} point
|
|
4229
|
-
* @return {string|undefined}
|
|
4230
|
-
* The description as string.
|
|
4231
4255
|
*/
|
|
4232
4256
|
function getPointA11yTimeDescription(point) {
|
|
4233
4257
|
var series = point.series,
|
|
4234
4258
|
chart = series.chart,
|
|
4235
|
-
seriesA11yOptions = series.options.accessibility &&
|
|
4259
|
+
seriesA11yOptions = series.options.accessibility &&
|
|
4260
|
+
series.options.accessibility.point || {},
|
|
4236
4261
|
a11yOptions = chart.options.accessibility.point || {},
|
|
4237
4262
|
dateXAxis = series.xAxis && series.xAxis.dateTime;
|
|
4238
4263
|
if (dateXAxis) {
|
|
4239
4264
|
var tooltipDateFormat = dateXAxis.getXDateFormat(point.x || 0,
|
|
4240
4265
|
chart.options.tooltip.dateTimeLabelFormats),
|
|
4241
|
-
dateFormat = seriesA11yOptions.dateFormatter &&
|
|
4266
|
+
dateFormat = seriesA11yOptions.dateFormatter &&
|
|
4267
|
+
seriesA11yOptions.dateFormatter(point) ||
|
|
4242
4268
|
a11yOptions.dateFormatter && a11yOptions.dateFormatter(point) ||
|
|
4243
4269
|
seriesA11yOptions.dateFormat ||
|
|
4244
4270
|
a11yOptions.dateFormat ||
|
|
@@ -4248,8 +4274,6 @@
|
|
|
4248
4274
|
}
|
|
4249
4275
|
/**
|
|
4250
4276
|
* @private
|
|
4251
|
-
* @param {Highcharts.Point} point
|
|
4252
|
-
* @return {string}
|
|
4253
4277
|
*/
|
|
4254
4278
|
function getPointXDescription(point) {
|
|
4255
4279
|
var timeDesc = getPointA11yTimeDescription(point), xAxis = point.series.xAxis || {}, pointCategory = xAxis.categories && defined(point.category) &&
|
|
@@ -4259,10 +4283,6 @@
|
|
|
4259
4283
|
}
|
|
4260
4284
|
/**
|
|
4261
4285
|
* @private
|
|
4262
|
-
* @param {Highcharts.Point} point
|
|
4263
|
-
* @param {string} prefix
|
|
4264
|
-
* @param {string} suffix
|
|
4265
|
-
* @return {string}
|
|
4266
4286
|
*/
|
|
4267
4287
|
function getPointArrayMapValueDescription(point, prefix, suffix) {
|
|
4268
4288
|
var pre = prefix || '', suf = suffix || '', keyToValStr = function (key) {
|
|
@@ -4275,13 +4295,12 @@
|
|
|
4275
4295
|
}
|
|
4276
4296
|
/**
|
|
4277
4297
|
* @private
|
|
4278
|
-
* @param {Highcharts.Point} point
|
|
4279
|
-
* @return {string}
|
|
4280
4298
|
*/
|
|
4281
4299
|
function getPointValue(point) {
|
|
4282
4300
|
var series = point.series,
|
|
4283
4301
|
a11yPointOpts = series.chart.options.accessibility.point || {},
|
|
4284
|
-
seriesA11yPointOpts = series.chart.options.accessibility &&
|
|
4302
|
+
seriesA11yPointOpts = series.chart.options.accessibility &&
|
|
4303
|
+
series.chart.options.accessibility.point || {},
|
|
4285
4304
|
tooltipOptions = series.tooltipOptions || {},
|
|
4286
4305
|
valuePrefix = seriesA11yPointOpts.valuePrefix ||
|
|
4287
4306
|
a11yPointOpts.valuePrefix ||
|
|
@@ -4311,8 +4330,10 @@
|
|
|
4311
4330
|
* empty string if none.
|
|
4312
4331
|
*
|
|
4313
4332
|
* @private
|
|
4314
|
-
* @param {Highcharts.Point} point
|
|
4315
|
-
*
|
|
4333
|
+
* @param {Highcharts.Point} point
|
|
4334
|
+
* The data point to get the annotation info from.
|
|
4335
|
+
* @return {string}
|
|
4336
|
+
* Annotation description
|
|
4316
4337
|
*/
|
|
4317
4338
|
function getPointAnnotationDescription(point) {
|
|
4318
4339
|
var chart = point.series.chart;
|
|
@@ -4325,7 +4346,6 @@
|
|
|
4325
4346
|
/**
|
|
4326
4347
|
* Return string with information about point.
|
|
4327
4348
|
* @private
|
|
4328
|
-
* @return {string}
|
|
4329
4349
|
*/
|
|
4330
4350
|
function getPointValueDescription(point) {
|
|
4331
4351
|
var series = point.series, chart = series.chart, seriesA11yOptions = series.options.accessibility, seriesValueDescFormat = seriesA11yOptions && seriesA11yOptions.point &&
|
|
@@ -4344,7 +4364,6 @@
|
|
|
4344
4364
|
/**
|
|
4345
4365
|
* Return string with information about point.
|
|
4346
4366
|
* @private
|
|
4347
|
-
* @return {string}
|
|
4348
4367
|
*/
|
|
4349
4368
|
function defaultPointDescriptionFormatter(point) {
|
|
4350
4369
|
var series = point.series, chart = series.chart, valText = getPointValueDescription(point), description = point.options && point.options.accessibility &&
|
|
@@ -4363,7 +4382,8 @@
|
|
|
4363
4382
|
function setPointScreenReaderAttribs(point, pointElement) {
|
|
4364
4383
|
var series = point.series,
|
|
4365
4384
|
a11yPointOptions = series.chart.options.accessibility.point || {},
|
|
4366
|
-
seriesPointA11yOptions = series.options.accessibility &&
|
|
4385
|
+
seriesPointA11yOptions = series.options.accessibility &&
|
|
4386
|
+
series.options.accessibility.point || {},
|
|
4367
4387
|
label = stripHTMLTags(seriesPointA11yOptions.descriptionFormatter &&
|
|
4368
4388
|
seriesPointA11yOptions.descriptionFormatter(point) ||
|
|
4369
4389
|
a11yPointOptions.descriptionFormatter &&
|
|
@@ -4408,7 +4428,6 @@
|
|
|
4408
4428
|
/**
|
|
4409
4429
|
* Return string with information about series.
|
|
4410
4430
|
* @private
|
|
4411
|
-
* @return {string}
|
|
4412
4431
|
*/
|
|
4413
4432
|
function defaultSeriesDescriptionFormatter(series) {
|
|
4414
4433
|
var chart = series.chart,
|
|
@@ -4444,7 +4463,8 @@
|
|
|
4444
4463
|
} /* else do not add role */
|
|
4445
4464
|
seriesElement.setAttribute('tabindex', '-1');
|
|
4446
4465
|
if (!series.chart.styledMode) {
|
|
4447
|
-
|
|
4466
|
+
// Don't show browser outline on click, despite tabindex
|
|
4467
|
+
seriesElement.style.outline = 'none';
|
|
4448
4468
|
}
|
|
4449
4469
|
seriesElement.setAttribute('aria-label', stripHTMLTags(a11yOptions.series.descriptionFormatter &&
|
|
4450
4470
|
a11yOptions.series.descriptionFormatter(series) ||
|
|
@@ -4581,8 +4601,9 @@
|
|
|
4581
4601
|
*/
|
|
4582
4602
|
NewDataAnnouncer.prototype.init = function () {
|
|
4583
4603
|
var chart = this.chart;
|
|
4584
|
-
var announceOptions = chart.options.accessibility.announceNewData;
|
|
4585
|
-
var announceType = announceOptions.interruptUser ?
|
|
4604
|
+
var announceOptions = (chart.options.accessibility.announceNewData);
|
|
4605
|
+
var announceType = announceOptions.interruptUser ?
|
|
4606
|
+
'assertive' : 'polite';
|
|
4586
4607
|
this.lastAnnouncementTime = 0;
|
|
4587
4608
|
this.dirty = {
|
|
4588
4609
|
allSeries: {}
|
|
@@ -4649,7 +4670,9 @@
|
|
|
4649
4670
|
}
|
|
4650
4671
|
this.queueAnnouncement(Object
|
|
4651
4672
|
.keys(this.dirty.allSeries)
|
|
4652
|
-
.map(function (ix) {
|
|
4673
|
+
.map(function (ix) {
|
|
4674
|
+
return announcer.dirty.allSeries[ix];
|
|
4675
|
+
}), this.dirty.newSeries, newPoint);
|
|
4653
4676
|
// Reset
|
|
4654
4677
|
this.dirty = {
|
|
4655
4678
|
allSeries: {}
|
|
@@ -4731,7 +4754,8 @@
|
|
|
4731
4754
|
}
|
|
4732
4755
|
}
|
|
4733
4756
|
// Default formatter - use lang options
|
|
4734
|
-
var multiple = H.charts && H.charts.length > 1 ?
|
|
4757
|
+
var multiple = H.charts && H.charts.length > 1 ?
|
|
4758
|
+
'Multiple' : 'Single', langKey = newSeries ? 'newSeriesAnnounce' + multiple :
|
|
4735
4759
|
newPoint ? 'newPointAnnounce' + multiple : 'newDataAnnounce', chartTitle = getChartTitle(chart);
|
|
4736
4760
|
return chart.langFormat('accessibility.announceNewData.' + langKey, {
|
|
4737
4761
|
chartTitle: chartTitle,
|
|
@@ -4868,13 +4892,17 @@
|
|
|
4868
4892
|
this.chart = chart;
|
|
4869
4893
|
this.target = target;
|
|
4870
4894
|
this.groupType = groupType;
|
|
4895
|
+
var isListItem = groupType === 'ul';
|
|
4871
4896
|
this.eventProvider = new EventProvider();
|
|
4872
|
-
var wrapperEl =
|
|
4897
|
+
var wrapperEl = isListItem ? doc.createElement('li') : null;
|
|
4873
4898
|
var btnEl = this.buttonElement = doc.createElement('button');
|
|
4874
4899
|
if (!chart.styledMode) {
|
|
4875
4900
|
this.hideButtonVisually(btnEl);
|
|
4876
4901
|
}
|
|
4877
4902
|
if (wrapperEl) {
|
|
4903
|
+
if (isListItem && !chart.styledMode) {
|
|
4904
|
+
wrapperEl.style.listStyle = 'none';
|
|
4905
|
+
}
|
|
4878
4906
|
wrapperEl.appendChild(btnEl);
|
|
4879
4907
|
this.element = wrapperEl;
|
|
4880
4908
|
}
|
|
@@ -4901,10 +4929,11 @@
|
|
|
4901
4929
|
fireEventOnWrappedOrUnwrappedElement(this.target.click, fakeEventObject);
|
|
4902
4930
|
};
|
|
4903
4931
|
/**
|
|
4904
|
-
* Update the target to be proxied.
|
|
4905
|
-
*
|
|
4932
|
+
* Update the target to be proxied. The position and events are updated to
|
|
4933
|
+
* match the new target.
|
|
4906
4934
|
* @param target The new target definition
|
|
4907
|
-
* @param attributes New HTML attributes to apply to the button. Set an
|
|
4935
|
+
* @param attributes New HTML attributes to apply to the button. Set an
|
|
4936
|
+
* attribute to null to remove.
|
|
4908
4937
|
*/
|
|
4909
4938
|
ProxyElement.prototype.updateTarget = function (target, attributes) {
|
|
4910
4939
|
this.target = target;
|
|
@@ -4940,7 +4969,7 @@
|
|
|
4940
4969
|
* Update the CSS class name to match target
|
|
4941
4970
|
*/
|
|
4942
4971
|
ProxyElement.prototype.updateCSSClassName = function () {
|
|
4943
|
-
var stringHasNoTooltip = function (s) { return s.indexOf('highcharts-no-tooltip') > -1; };
|
|
4972
|
+
var stringHasNoTooltip = function (s) { return (s.indexOf('highcharts-no-tooltip') > -1); };
|
|
4944
4973
|
var legend = this.chart.legend;
|
|
4945
4974
|
var groupDiv = legend.group && legend.group.div;
|
|
4946
4975
|
var noTooltipOnGroup = stringHasNoTooltip(groupDiv && groupDiv.className || '');
|
|
@@ -4968,7 +4997,8 @@
|
|
|
4968
4997
|
fireEventOnWrappedOrUnwrappedElement(target, clonedEvent);
|
|
4969
4998
|
}
|
|
4970
4999
|
e.stopPropagation();
|
|
4971
|
-
// #9682, #15318: Touch scrolling didnt work when touching
|
|
5000
|
+
// #9682, #15318: Touch scrolling didnt work when touching
|
|
5001
|
+
// proxy
|
|
4972
5002
|
if (!isTouchEvent) {
|
|
4973
5003
|
e.preventDefault();
|
|
4974
5004
|
}
|
|
@@ -5136,9 +5166,6 @@
|
|
|
5136
5166
|
};
|
|
5137
5167
|
attr(groupElement, attributes || {});
|
|
5138
5168
|
if (groupType === 'ul') {
|
|
5139
|
-
if (!this.chart.styledMode) {
|
|
5140
|
-
proxyContainer.style.listStyle = 'none';
|
|
5141
|
-
}
|
|
5142
5169
|
proxyContainer.setAttribute('role', 'list'); // Needed for webkit
|
|
5143
5170
|
}
|
|
5144
5171
|
// Add the group to the end by default, and perhaps then we
|
|
@@ -5934,7 +5961,6 @@
|
|
|
5934
5961
|
* @param {number} i
|
|
5935
5962
|
* The index of the button
|
|
5936
5963
|
* @param {boolean} [redraw]
|
|
5937
|
-
* @return {void}
|
|
5938
5964
|
*/
|
|
5939
5965
|
RangeSelector.prototype.clickButton = function (i, redraw) {
|
|
5940
5966
|
var rangeSelector = this,
|
|
@@ -6032,7 +6058,8 @@
|
|
|
6032
6058
|
// If the navigator exist and the axis range is declared reset that
|
|
6033
6059
|
// range and from now on only use the range set by a user, #14742.
|
|
6034
6060
|
if (chart.navigator && chart.navigator.baseSeries[0]) {
|
|
6035
|
-
chart.navigator.baseSeries[0].xAxis.options
|
|
6061
|
+
chart.navigator.baseSeries[0].xAxis.options
|
|
6062
|
+
.range = void 0;
|
|
6036
6063
|
}
|
|
6037
6064
|
newMin = dataMin;
|
|
6038
6065
|
newMax = dataMax;
|
|
@@ -6077,7 +6104,6 @@
|
|
|
6077
6104
|
* @private
|
|
6078
6105
|
* @function Highcharts.RangeSelector#setSelected
|
|
6079
6106
|
* @param {number} [selected]
|
|
6080
|
-
* @return {void}
|
|
6081
6107
|
*/
|
|
6082
6108
|
RangeSelector.prototype.setSelected = function (selected) {
|
|
6083
6109
|
this.selected = this.options.selected = selected;
|
|
@@ -6088,12 +6114,11 @@
|
|
|
6088
6114
|
* @private
|
|
6089
6115
|
* @function Highcharts.RangeSelector#init
|
|
6090
6116
|
* @param {Highcharts.Chart} chart
|
|
6091
|
-
* @return {void}
|
|
6092
6117
|
*/
|
|
6093
6118
|
RangeSelector.prototype.init = function (chart) {
|
|
6094
6119
|
var rangeSelector = this,
|
|
6095
6120
|
options = chart.options.rangeSelector,
|
|
6096
|
-
buttonOptions = options.buttons || rangeSelector.defaultButtons.slice(),
|
|
6121
|
+
buttonOptions = (options.buttons || rangeSelector.defaultButtons.slice()),
|
|
6097
6122
|
selectedOption = options.selected,
|
|
6098
6123
|
blurInputs = function () {
|
|
6099
6124
|
var minInput = rangeSelector.minInput,
|
|
@@ -6143,7 +6168,6 @@
|
|
|
6143
6168
|
*
|
|
6144
6169
|
* @private
|
|
6145
6170
|
* @function Highcharts.RangeSelector#updateButtonStates
|
|
6146
|
-
* @return {void}
|
|
6147
6171
|
*/
|
|
6148
6172
|
RangeSelector.prototype.updateButtonStates = function () {
|
|
6149
6173
|
var rangeSelector = this,
|
|
@@ -6249,7 +6273,6 @@
|
|
|
6249
6273
|
* @private
|
|
6250
6274
|
* @function Highcharts.RangeSelector#computeButtonRange
|
|
6251
6275
|
* @param {Highcharts.RangeSelectorButtonsOptions} rangeOptions
|
|
6252
|
-
* @return {void}
|
|
6253
6276
|
*/
|
|
6254
6277
|
RangeSelector.prototype.computeButtonRange = function (rangeOptions) {
|
|
6255
6278
|
var type = rangeOptions.type,
|
|
@@ -6284,12 +6307,11 @@
|
|
|
6284
6307
|
*
|
|
6285
6308
|
* @private
|
|
6286
6309
|
* @function Highcharts.RangeSelector#getInputValue
|
|
6287
|
-
* @param {string} name
|
|
6288
|
-
* @return {number}
|
|
6289
6310
|
*/
|
|
6290
6311
|
RangeSelector.prototype.getInputValue = function (name) {
|
|
6291
6312
|
var input = name === 'min' ? this.minInput : this.maxInput;
|
|
6292
|
-
var options = this.chart.options
|
|
6313
|
+
var options = this.chart.options
|
|
6314
|
+
.rangeSelector;
|
|
6293
6315
|
var time = this.chart.time;
|
|
6294
6316
|
if (input) {
|
|
6295
6317
|
return ((input.type === 'text' && options.inputDateParser) ||
|
|
@@ -6302,9 +6324,6 @@
|
|
|
6302
6324
|
*
|
|
6303
6325
|
* @private
|
|
6304
6326
|
* @function Highcharts.RangeSelector#setInputValue
|
|
6305
|
-
* @param {string} name
|
|
6306
|
-
* @param {number} [inputTime]
|
|
6307
|
-
* @return {void}
|
|
6308
6327
|
*/
|
|
6309
6328
|
RangeSelector.prototype.setInputValue = function (name, inputTime) {
|
|
6310
6329
|
var options = this.options, time = this.chart.time, input = name === 'min' ? this.minInput : this.maxInput, dateBox = name === 'min' ? this.minDateBox : this.maxDateBox;
|
|
@@ -6319,7 +6338,8 @@
|
|
|
6319
6338
|
input.setAttribute('data-hc-time', inputTime);
|
|
6320
6339
|
updatedTime = inputTime;
|
|
6321
6340
|
}
|
|
6322
|
-
input.value = time.dateFormat(this.inputTypeFormats[input.type] ||
|
|
6341
|
+
input.value = time.dateFormat((this.inputTypeFormats[input.type] ||
|
|
6342
|
+
options.inputEditDateFormat), updatedTime);
|
|
6323
6343
|
if (dateBox) {
|
|
6324
6344
|
dateBox.attr({
|
|
6325
6345
|
text: time.dateFormat(options.inputDateFormat, updatedTime)
|
|
@@ -6332,10 +6352,6 @@
|
|
|
6332
6352
|
*
|
|
6333
6353
|
* @private
|
|
6334
6354
|
* @function Highcharts.RangeSelector#setInputExtremes
|
|
6335
|
-
* @param {string} name
|
|
6336
|
-
* @param {number} min
|
|
6337
|
-
* @param {number} max
|
|
6338
|
-
* @return {void}
|
|
6339
6355
|
*/
|
|
6340
6356
|
RangeSelector.prototype.setInputExtremes = function (name, min, max) {
|
|
6341
6357
|
var input = name === 'min' ? this.minInput : this.maxInput;
|
|
@@ -6360,7 +6376,6 @@
|
|
|
6360
6376
|
* @private
|
|
6361
6377
|
* @function Highcharts.RangeSelector#showInput
|
|
6362
6378
|
* @param {string} name
|
|
6363
|
-
* @return {void}
|
|
6364
6379
|
*/
|
|
6365
6380
|
RangeSelector.prototype.showInput = function (name) {
|
|
6366
6381
|
var dateBox = name === 'min' ? this.minDateBox : this.maxDateBox;
|
|
@@ -6372,7 +6387,9 @@
|
|
|
6372
6387
|
translateY = _a.translateY;
|
|
6373
6388
|
var inputBoxWidth = this.options.inputBoxWidth;
|
|
6374
6389
|
css(input, {
|
|
6375
|
-
width: isTextInput ?
|
|
6390
|
+
width: isTextInput ?
|
|
6391
|
+
((dateBox.width + (inputBoxWidth ? -2 : 20)) + 'px') :
|
|
6392
|
+
'auto',
|
|
6376
6393
|
height: isTextInput ? ((dateBox.height - 2) + 'px') : 'auto',
|
|
6377
6394
|
border: '2px solid silver'
|
|
6378
6395
|
});
|
|
@@ -6398,7 +6415,6 @@
|
|
|
6398
6415
|
* @private
|
|
6399
6416
|
* @function Highcharts.RangeSelector#hideInput
|
|
6400
6417
|
* @param {string} name
|
|
6401
|
-
* @return {void}
|
|
6402
6418
|
*/
|
|
6403
6419
|
RangeSelector.prototype.hideInput = function (name) {
|
|
6404
6420
|
var input = name === 'min' ? this.minInput : this.maxInput;
|
|
@@ -6450,8 +6466,6 @@
|
|
|
6450
6466
|
*
|
|
6451
6467
|
* @private
|
|
6452
6468
|
* @function Highcharts.RangeSelector#drawInput
|
|
6453
|
-
* @param {string} name
|
|
6454
|
-
* @return {RangeSelectorInputElements}
|
|
6455
6469
|
*/
|
|
6456
6470
|
RangeSelector.prototype.drawInput = function (name) {
|
|
6457
6471
|
var _a = this,
|
|
@@ -6620,8 +6634,6 @@
|
|
|
6620
6634
|
*
|
|
6621
6635
|
* @private
|
|
6622
6636
|
* @function Highcharts.RangeSelector#getPosition
|
|
6623
|
-
*
|
|
6624
|
-
* @return {Highcharts.Dictionary<number>}
|
|
6625
6637
|
*/
|
|
6626
6638
|
RangeSelector.prototype.getPosition = function () {
|
|
6627
6639
|
var chart = this.chart,
|
|
@@ -6641,13 +6653,8 @@
|
|
|
6641
6653
|
*
|
|
6642
6654
|
* @private
|
|
6643
6655
|
* @function Highcharts.RangeSelector#getYTDExtremes
|
|
6644
|
-
*
|
|
6645
|
-
* @param {number} dataMax
|
|
6646
|
-
*
|
|
6647
|
-
* @param {number} dataMin
|
|
6648
|
-
*
|
|
6649
6656
|
* @return {*}
|
|
6650
|
-
*
|
|
6657
|
+
* Returns min and max for the YTD
|
|
6651
6658
|
*/
|
|
6652
6659
|
RangeSelector.prototype.getYTDExtremes = function (dataMax, dataMin, useUTC) {
|
|
6653
6660
|
var time = this.chart.time,
|
|
@@ -6676,7 +6683,6 @@
|
|
|
6676
6683
|
* X axis minimum
|
|
6677
6684
|
* @param {number} [max]
|
|
6678
6685
|
* X axis maximum
|
|
6679
|
-
* @return {void}
|
|
6680
6686
|
*/
|
|
6681
6687
|
RangeSelector.prototype.render = function (min, max) {
|
|
6682
6688
|
var chart = this.chart,
|
|
@@ -6730,7 +6736,8 @@
|
|
|
6730
6736
|
this.setInputValue('min', min);
|
|
6731
6737
|
this.setInputValue('max', max);
|
|
6732
6738
|
var unionExtremes = (chart.scroller && chart.scroller.getUnionExtremes()) || chart.xAxis[0] || {};
|
|
6733
|
-
if (defined(unionExtremes.dataMin) &&
|
|
6739
|
+
if (defined(unionExtremes.dataMin) &&
|
|
6740
|
+
defined(unionExtremes.dataMax)) {
|
|
6734
6741
|
var minRange = chart.xAxis[0].minRange || 0;
|
|
6735
6742
|
this.setInputExtremes('min', unionExtremes.dataMin, Math.min(unionExtremes.dataMax, this.getInputValue('max')) - minRange);
|
|
6736
6743
|
this.setInputExtremes('max', Math.max(unionExtremes.dataMin, this.getInputValue('min')) + minRange, unionExtremes.dataMax);
|
|
@@ -6763,7 +6770,6 @@
|
|
|
6763
6770
|
*
|
|
6764
6771
|
* @private
|
|
6765
6772
|
* @function Highcharts.RangeSelector#renderButtons
|
|
6766
|
-
* @return {void}
|
|
6767
6773
|
*/
|
|
6768
6774
|
RangeSelector.prototype.renderButtons = function () {
|
|
6769
6775
|
var _this = this;
|
|
@@ -6864,7 +6870,6 @@
|
|
|
6864
6870
|
*
|
|
6865
6871
|
* @private
|
|
6866
6872
|
* @function Highcharts.RangeSelector#alignElements
|
|
6867
|
-
* @return {void}
|
|
6868
6873
|
*/
|
|
6869
6874
|
RangeSelector.prototype.alignElements = function () {
|
|
6870
6875
|
var _this = this;
|
|
@@ -7020,7 +7025,6 @@
|
|
|
7020
7025
|
* @function Highcharts.RangeSelector#alignButtonGroup
|
|
7021
7026
|
* @param {number} xOffsetForExportButton
|
|
7022
7027
|
* @param {number} [width]
|
|
7023
|
-
* @return {void}
|
|
7024
7028
|
*/
|
|
7025
7029
|
RangeSelector.prototype.alignButtonGroup = function (xOffsetForExportButton, width) {
|
|
7026
7030
|
var _a = this,
|
|
@@ -7050,7 +7054,6 @@
|
|
|
7050
7054
|
/**
|
|
7051
7055
|
* @private
|
|
7052
7056
|
* @function Highcharts.RangeSelector#positionButtons
|
|
7053
|
-
* @return {void}
|
|
7054
7057
|
*/
|
|
7055
7058
|
RangeSelector.prototype.positionButtons = function () {
|
|
7056
7059
|
var _a = this,
|
|
@@ -7091,7 +7094,6 @@
|
|
|
7091
7094
|
* @param {number} xOffsetForExportButton
|
|
7092
7095
|
* The X offset of the group required to make room for the
|
|
7093
7096
|
* exporting button
|
|
7094
|
-
* @return {void}
|
|
7095
7097
|
*/
|
|
7096
7098
|
RangeSelector.prototype.handleCollision = function (xOffsetForExportButton) {
|
|
7097
7099
|
var _this = this;
|
|
@@ -7192,7 +7194,6 @@
|
|
|
7192
7194
|
* @private
|
|
7193
7195
|
* @function Highcharts.RangeSelector#collapseButtons
|
|
7194
7196
|
* @param {number} xOffsetForExportButton
|
|
7195
|
-
* @return {void}
|
|
7196
7197
|
*/
|
|
7197
7198
|
RangeSelector.prototype.collapseButtons = function (xOffsetForExportButton) {
|
|
7198
7199
|
var _a = this,
|
|
@@ -7246,7 +7247,6 @@
|
|
|
7246
7247
|
*
|
|
7247
7248
|
* @private
|
|
7248
7249
|
* @function Highcharts.RangeSelector#expandButtons
|
|
7249
|
-
* @return {void}
|
|
7250
7250
|
*/
|
|
7251
7251
|
RangeSelector.prototype.expandButtons = function () {
|
|
7252
7252
|
var _a = this,
|
|
@@ -7278,7 +7278,6 @@
|
|
|
7278
7278
|
*
|
|
7279
7279
|
* @private
|
|
7280
7280
|
* @function Highcharts.RangeSelector#currentButtonIndex
|
|
7281
|
-
* @return {number}
|
|
7282
7281
|
*/
|
|
7283
7282
|
RangeSelector.prototype.currentButtonIndex = function () {
|
|
7284
7283
|
var dropdown = this.dropdown;
|
|
@@ -7292,7 +7291,6 @@
|
|
|
7292
7291
|
*
|
|
7293
7292
|
* @private
|
|
7294
7293
|
* @function Highcharts.RangeSelector#showDropdown
|
|
7295
|
-
* @return {void}
|
|
7296
7294
|
*/
|
|
7297
7295
|
RangeSelector.prototype.showDropdown = function () {
|
|
7298
7296
|
var _a = this,
|
|
@@ -7316,7 +7314,6 @@
|
|
|
7316
7314
|
/**
|
|
7317
7315
|
* @private
|
|
7318
7316
|
* @function Highcharts.RangeSelector#hideDropdown
|
|
7319
|
-
* @return {void}
|
|
7320
7317
|
*/
|
|
7321
7318
|
RangeSelector.prototype.hideDropdown = function () {
|
|
7322
7319
|
var dropdown = this.dropdown;
|
|
@@ -7335,7 +7332,7 @@
|
|
|
7335
7332
|
* @private
|
|
7336
7333
|
* @function Highcharts.RangeSelector#getHeight
|
|
7337
7334
|
* @return {number}
|
|
7338
|
-
*
|
|
7335
|
+
* Returns rangeSelector height
|
|
7339
7336
|
*/
|
|
7340
7337
|
RangeSelector.prototype.getHeight = function () {
|
|
7341
7338
|
var rangeSelector = this,
|
|
@@ -7371,11 +7368,8 @@
|
|
|
7371
7368
|
*
|
|
7372
7369
|
* @private
|
|
7373
7370
|
* @function Highcharts.RangeSelector#titleCollision
|
|
7374
|
-
*
|
|
7375
|
-
* @param {Highcharts.Chart} chart
|
|
7376
|
-
*
|
|
7377
7371
|
* @return {boolean}
|
|
7378
|
-
*
|
|
7372
|
+
* Returns collision status
|
|
7379
7373
|
*/
|
|
7380
7374
|
RangeSelector.prototype.titleCollision = function (chart) {
|
|
7381
7375
|
return !(chart.options.title.text ||
|
|
@@ -7387,7 +7381,6 @@
|
|
|
7387
7381
|
* @private
|
|
7388
7382
|
* @function Highcharts.RangeSelector#update
|
|
7389
7383
|
* @param {Highcharts.RangeSelectorOptions} options
|
|
7390
|
-
* @return {void}
|
|
7391
7384
|
*/
|
|
7392
7385
|
RangeSelector.prototype.update = function (options) {
|
|
7393
7386
|
var chart = this.chart;
|
|
@@ -7483,17 +7476,14 @@
|
|
|
7483
7476
|
*
|
|
7484
7477
|
* @private
|
|
7485
7478
|
* @function preferredInputType
|
|
7486
|
-
* @param {string} format
|
|
7487
|
-
* @return {string}
|
|
7488
7479
|
*/
|
|
7489
7480
|
function preferredInputType(format) {
|
|
7490
7481
|
var ms = format.indexOf('%L') !== -1;
|
|
7491
7482
|
if (ms) {
|
|
7492
7483
|
return 'text';
|
|
7493
7484
|
}
|
|
7494
|
-
var date = ['a', 'A', 'd', 'e', 'w', 'b', 'B', 'm', 'o', 'y', 'Y']
|
|
7495
|
-
return format.indexOf('%' + char) !== -1;
|
|
7496
|
-
});
|
|
7485
|
+
var date = ['a', 'A', 'd', 'e', 'w', 'b', 'B', 'm', 'o', 'y', 'Y']
|
|
7486
|
+
.some(function (char) { return format.indexOf('%' + char) !== -1; });
|
|
7497
7487
|
var time = ['H', 'k', 'I', 'l', 'M', 'S'].some(function (char) {
|
|
7498
7488
|
return format.indexOf('%' + char) !== -1;
|
|
7499
7489
|
});
|
|
@@ -7530,7 +7520,8 @@
|
|
|
7530
7520
|
// Get the true range from a start date
|
|
7531
7521
|
getTrueRange = function (base,
|
|
7532
7522
|
count) {
|
|
7533
|
-
var timeName = type === 'year' ?
|
|
7523
|
+
var timeName = type === 'year' ?
|
|
7524
|
+
'FullYear' : 'Month';
|
|
7534
7525
|
var date = new time.Date(base);
|
|
7535
7526
|
var basePeriod = time.get(timeName,
|
|
7536
7527
|
date);
|
|
@@ -7975,7 +7966,8 @@
|
|
|
7975
7966
|
var newIxOutOfRange = newIx > 1 || newIx < 0;
|
|
7976
7967
|
if (newIxOutOfRange) {
|
|
7977
7968
|
if (chart.accessibility) {
|
|
7978
|
-
chart.accessibility.keyboardNavigation.tabindexContainer
|
|
7969
|
+
chart.accessibility.keyboardNavigation.tabindexContainer
|
|
7970
|
+
.focus();
|
|
7979
7971
|
chart.accessibility.keyboardNavigation[direction < 0 ? 'prev' : 'next']();
|
|
7980
7972
|
}
|
|
7981
7973
|
}
|
|
@@ -8060,13 +8052,14 @@
|
|
|
8060
8052
|
// Tab-press with dropdown focused does not propagate to chart
|
|
8061
8053
|
// automatically, so we manually catch and handle it when relevant.
|
|
8062
8054
|
this.removeDropdownKeydownHandler = addEvent(dropdown, 'keydown', function (e) {
|
|
8063
|
-
var isTab = (e.which || e.keyCode) === _this.keyCodes.tab
|
|
8055
|
+
var isTab = (e.which || e.keyCode) === _this.keyCodes.tab,
|
|
8056
|
+
a11y = chart.accessibility;
|
|
8064
8057
|
if (isTab) {
|
|
8065
8058
|
e.preventDefault();
|
|
8066
8059
|
e.stopPropagation();
|
|
8067
|
-
if (
|
|
8068
|
-
|
|
8069
|
-
|
|
8060
|
+
if (a11y) {
|
|
8061
|
+
a11y.keyboardNavigation.tabindexContainer.focus();
|
|
8062
|
+
a11y.keyboardNavigation[e.shiftKey ? 'prev' : 'next']();
|
|
8070
8063
|
}
|
|
8071
8064
|
}
|
|
8072
8065
|
});
|
|
@@ -8196,10 +8189,6 @@
|
|
|
8196
8189
|
*
|
|
8197
8190
|
* @private
|
|
8198
8191
|
* @function Highcharts.Chart#highlightRangeSelectorButton
|
|
8199
|
-
*
|
|
8200
|
-
* @param {number} ix
|
|
8201
|
-
*
|
|
8202
|
-
* @return {boolean}
|
|
8203
8192
|
*/
|
|
8204
8193
|
function chartHighlightRangeSelectorButton(ix) {
|
|
8205
8194
|
var buttons = (this.rangeSelector &&
|
|
@@ -8233,7 +8222,7 @@
|
|
|
8233
8222
|
if (composedClasses.indexOf(ChartClass) === -1) {
|
|
8234
8223
|
composedClasses.push(ChartClass);
|
|
8235
8224
|
var chartProto = ChartClass.prototype;
|
|
8236
|
-
chartProto.highlightRangeSelectorButton = chartHighlightRangeSelectorButton;
|
|
8225
|
+
chartProto.highlightRangeSelectorButton = (chartHighlightRangeSelectorButton);
|
|
8237
8226
|
}
|
|
8238
8227
|
if (composedClasses.indexOf(RangeSelectorClass) === -1) {
|
|
8239
8228
|
composedClasses.push(RangeSelectorClass);
|
|
@@ -8247,9 +8236,9 @@
|
|
|
8247
8236
|
* @private
|
|
8248
8237
|
*/
|
|
8249
8238
|
function rangeSelectorAfterBtnClick() {
|
|
8250
|
-
|
|
8251
|
-
|
|
8252
|
-
return
|
|
8239
|
+
var a11y = this.chart.accessibility;
|
|
8240
|
+
if (a11y && a11y.components.rangeSelector) {
|
|
8241
|
+
return a11y.components.rangeSelector.onAfterBtnClick();
|
|
8253
8242
|
}
|
|
8254
8243
|
}
|
|
8255
8244
|
})(RangeSelectorComponent || (RangeSelectorComponent = {}));
|
|
@@ -8345,7 +8334,8 @@
|
|
|
8345
8334
|
var hadForcedMarker = point.hasForcedA11yMarker;
|
|
8346
8335
|
delete point.hasForcedA11yMarker;
|
|
8347
8336
|
if (pointOptions.marker) {
|
|
8348
|
-
var isStillForcedMarker = hadForcedMarker &&
|
|
8337
|
+
var isStillForcedMarker = hadForcedMarker &&
|
|
8338
|
+
getPointMarkerOpacity(pointOptions) === 0;
|
|
8349
8339
|
if (pointOptions.marker.enabled && !isStillForcedMarker) {
|
|
8350
8340
|
unforcePointMarkerOptions(pointOptions);
|
|
8351
8341
|
point.hasForcedA11yMarker = false;
|
|
@@ -8361,7 +8351,9 @@
|
|
|
8361
8351
|
* @private
|
|
8362
8352
|
*/
|
|
8363
8353
|
function hasIndividualPointMarkerOptions(series) {
|
|
8364
|
-
return !!(series._hasPointMarkers &&
|
|
8354
|
+
return !!(series._hasPointMarkers &&
|
|
8355
|
+
series.points &&
|
|
8356
|
+
series.points.length);
|
|
8365
8357
|
}
|
|
8366
8358
|
/**
|
|
8367
8359
|
* @private
|
|
@@ -8370,7 +8362,8 @@
|
|
|
8370
8362
|
var a11yOptions = series.chart.options.accessibility;
|
|
8371
8363
|
return series.points.length <
|
|
8372
8364
|
a11yOptions.series.pointDescriptionEnabledThreshold ||
|
|
8373
|
-
a11yOptions.series
|
|
8365
|
+
a11yOptions.series
|
|
8366
|
+
.pointDescriptionEnabledThreshold === false;
|
|
8374
8367
|
}
|
|
8375
8368
|
/**
|
|
8376
8369
|
* Process marker graphics after render
|
|
@@ -8388,8 +8381,11 @@
|
|
|
8388
8381
|
if (hasIndividualPointMarkerOptions(series)) {
|
|
8389
8382
|
series.points.forEach(function (point) {
|
|
8390
8383
|
if (point.graphic) {
|
|
8391
|
-
point.graphic[point.hasForcedA11yMarker ?
|
|
8392
|
-
|
|
8384
|
+
point.graphic[point.hasForcedA11yMarker ?
|
|
8385
|
+
'addClass' : 'removeClass']('highcharts-a11y-marker-hidden');
|
|
8386
|
+
point.graphic[point.hasForcedA11yMarker === false ?
|
|
8387
|
+
'addClass' :
|
|
8388
|
+
'removeClass']('highcharts-a11y-marker-visible');
|
|
8393
8389
|
}
|
|
8394
8390
|
});
|
|
8395
8391
|
}
|
|
@@ -8431,7 +8427,9 @@
|
|
|
8431
8427
|
chartA11yEnabled = chart.options.accessibility.enabled,
|
|
8432
8428
|
seriesA11yEnabled = (series.options.accessibility &&
|
|
8433
8429
|
series.options.accessibility.enabled) !== false;
|
|
8434
|
-
return chartA11yEnabled &&
|
|
8430
|
+
return (chartA11yEnabled &&
|
|
8431
|
+
seriesA11yEnabled &&
|
|
8432
|
+
isWithinDescriptionThreshold(series));
|
|
8435
8433
|
}
|
|
8436
8434
|
/**
|
|
8437
8435
|
* @private
|
|
@@ -8505,12 +8503,10 @@
|
|
|
8505
8503
|
*
|
|
8506
8504
|
* @private
|
|
8507
8505
|
* @function getPointIndex
|
|
8508
|
-
*
|
|
8509
8506
|
* @param {Highcharts.AccessibilityPoint} point
|
|
8510
|
-
*
|
|
8511
|
-
*
|
|
8507
|
+
* The point to find index of.
|
|
8512
8508
|
* @return {number|undefined}
|
|
8513
|
-
*
|
|
8509
|
+
* The index in the series.points array of the point.
|
|
8514
8510
|
*/
|
|
8515
8511
|
function getPointIndex(point) {
|
|
8516
8512
|
var index = point.index,
|
|
@@ -8529,13 +8525,7 @@
|
|
|
8529
8525
|
}
|
|
8530
8526
|
/**
|
|
8531
8527
|
* Determine if series navigation should be skipped
|
|
8532
|
-
*
|
|
8533
8528
|
* @private
|
|
8534
|
-
* @function isSkipSeries
|
|
8535
|
-
*
|
|
8536
|
-
* @param {Highcharts.Series} series
|
|
8537
|
-
*
|
|
8538
|
-
* @return {boolean|number|undefined}
|
|
8539
8529
|
*/
|
|
8540
8530
|
function isSkipSeries(series) {
|
|
8541
8531
|
var a11yOptions = series.chart.options.accessibility,
|
|
@@ -8554,13 +8544,7 @@
|
|
|
8554
8544
|
}
|
|
8555
8545
|
/**
|
|
8556
8546
|
* Determine if navigation for a point should be skipped
|
|
8557
|
-
*
|
|
8558
8547
|
* @private
|
|
8559
|
-
* @function isSkipPoint
|
|
8560
|
-
*
|
|
8561
|
-
* @param {Highcharts.Point} point
|
|
8562
|
-
*
|
|
8563
|
-
* @return {boolean|number|undefined}
|
|
8564
8548
|
*/
|
|
8565
8549
|
function isSkipPoint(point) {
|
|
8566
8550
|
var a11yOptions = point.series.chart.options.accessibility;
|
|
@@ -8607,7 +8591,9 @@
|
|
|
8607
8591
|
function highlightFirstValidPointInChart(chart) {
|
|
8608
8592
|
var res = false;
|
|
8609
8593
|
delete chart.highlightedPoint;
|
|
8610
|
-
res = chart.series.reduce(function (acc, cur) {
|
|
8594
|
+
res = chart.series.reduce(function (acc, cur) {
|
|
8595
|
+
return acc || cur.highlightFirstValidPoint();
|
|
8596
|
+
}, false);
|
|
8611
8597
|
return res;
|
|
8612
8598
|
}
|
|
8613
8599
|
/* *
|
|
@@ -8673,7 +8659,7 @@
|
|
|
8673
8659
|
// If then navigating with virtual cursor, it is possible to leave
|
|
8674
8660
|
// keyboard nav module state on the data points and still activate
|
|
8675
8661
|
// proxy buttons.
|
|
8676
|
-
var focusedElClassName = focusedElement && focusedElement.getAttribute('class');
|
|
8662
|
+
var focusedElClassName = (focusedElement && focusedElement.getAttribute('class'));
|
|
8677
8663
|
var isProxyFocused = focusedElClassName &&
|
|
8678
8664
|
focusedElClassName.indexOf('highcharts-a11y-proxy-button') > -1;
|
|
8679
8665
|
if (chart.highlightedPoint === point &&
|
|
@@ -8711,7 +8697,7 @@
|
|
|
8711
8697
|
}
|
|
8712
8698
|
};
|
|
8713
8699
|
/**
|
|
8714
|
-
* @
|
|
8700
|
+
* @private
|
|
8715
8701
|
*/
|
|
8716
8702
|
SeriesKeyboardNavigation.prototype.getKeyboardNavigationHandler = function () {
|
|
8717
8703
|
var keyboardNavigation = this,
|
|
@@ -8802,7 +8788,7 @@
|
|
|
8802
8788
|
if (chart.tooltip) {
|
|
8803
8789
|
chart.tooltip.hide(0);
|
|
8804
8790
|
}
|
|
8805
|
-
var hoverSeries = chart.highlightedPoint && chart.highlightedPoint.series;
|
|
8791
|
+
var hoverSeries = (chart.highlightedPoint && chart.highlightedPoint.series);
|
|
8806
8792
|
if (hoverSeries && hoverSeries.onMouseOut) {
|
|
8807
8793
|
hoverSeries.onMouseOut();
|
|
8808
8794
|
}
|
|
@@ -8896,7 +8882,9 @@
|
|
|
8896
8882
|
curPointIndex = curPoint && getPointIndex(curPoint) || 0,
|
|
8897
8883
|
curPoints = curPoint && curPoint.series.points || [],
|
|
8898
8884
|
lastSeries = chart.series && chart.series[chart.series.length - 1],
|
|
8899
|
-
lastPoint = lastSeries &&
|
|
8885
|
+
lastPoint = lastSeries &&
|
|
8886
|
+
lastSeries.points &&
|
|
8887
|
+
lastSeries.points[lastSeries.points.length - 1];
|
|
8900
8888
|
var newSeries,
|
|
8901
8889
|
newPoint;
|
|
8902
8890
|
// If no points, return false
|
|
@@ -8909,8 +8897,7 @@
|
|
|
8909
8897
|
newPoint = next ? series[0].points[0] : lastPoint;
|
|
8910
8898
|
}
|
|
8911
8899
|
else {
|
|
8912
|
-
// We have a highlighted point.
|
|
8913
|
-
// Grab next/prev point & series
|
|
8900
|
+
// We have a highlighted point. Grab next/prev point & series.
|
|
8914
8901
|
newSeries = series[curPoint.series.index + (next ? 1 : -1)];
|
|
8915
8902
|
newPoint = curPoints[curPointIndex + (next ? 1 : -1)];
|
|
8916
8903
|
if (!newPoint && newSeries) {
|
|
@@ -8970,7 +8957,7 @@
|
|
|
8970
8957
|
if (series.yAxis && series.yAxis.reversed) {
|
|
8971
8958
|
yDistance *= -1;
|
|
8972
8959
|
}
|
|
8973
|
-
if (yDistance <= 0 && down || yDistance >= 0 && !down ||
|
|
8960
|
+
if (yDistance <= 0 && down || yDistance >= 0 && !down ||
|
|
8974
8961
|
distance < 5 || // Points in same spot => infinite loop
|
|
8975
8962
|
isSkipPoint(point)) {
|
|
8976
8963
|
return;
|
|
@@ -9001,10 +8988,11 @@
|
|
|
9001
8988
|
if (!chart.highlightedPoint) {
|
|
9002
8989
|
newSeries = down ? (chart.series && chart.series[0]) : lastSeries;
|
|
9003
8990
|
newPoint = down ?
|
|
9004
|
-
(newSeries && newSeries.points && newSeries.points[0]) :
|
|
8991
|
+
(newSeries && newSeries.points && newSeries.points[0]) :
|
|
8992
|
+
lastPoint;
|
|
9005
8993
|
return newPoint ? newPoint.highlight() : false;
|
|
9006
8994
|
}
|
|
9007
|
-
newSeries = chart.series[curPoint.series.index + (down ? -1 : 1)];
|
|
8995
|
+
newSeries = (chart.series[curPoint.series.index + (down ? -1 : 1)]);
|
|
9008
8996
|
if (!newSeries) {
|
|
9009
8997
|
return false;
|
|
9010
8998
|
}
|
|
@@ -9018,7 +9006,8 @@
|
|
|
9018
9006
|
if (isSkipSeries(newSeries)) {
|
|
9019
9007
|
// Skip the series
|
|
9020
9008
|
newPoint.highlight();
|
|
9021
|
-
|
|
9009
|
+
// Try recurse
|
|
9010
|
+
adjacentNewPoint = chart.highlightAdjacentSeries(down);
|
|
9022
9011
|
if (!adjacentNewPoint) {
|
|
9023
9012
|
// Recurse failed
|
|
9024
9013
|
curPoint.highlight();
|
|
@@ -9040,7 +9029,7 @@
|
|
|
9040
9029
|
composedClasses.push(ChartClass);
|
|
9041
9030
|
var chartProto = ChartClass.prototype;
|
|
9042
9031
|
chartProto.highlightAdjacentPoint = chartHighlightAdjacentPoint;
|
|
9043
|
-
chartProto.highlightAdjacentPointVertical = chartHighlightAdjacentPointVertical;
|
|
9032
|
+
chartProto.highlightAdjacentPointVertical = (chartHighlightAdjacentPointVertical);
|
|
9044
9033
|
chartProto.highlightAdjacentSeries = chartHighlightAdjacentSeries;
|
|
9045
9034
|
}
|
|
9046
9035
|
if (composedClasses.indexOf(PointClass) === -1) {
|
|
@@ -9067,7 +9056,7 @@
|
|
|
9067
9056
|
seriesTypes[type].prototype.keyboardMoveVertical = false;
|
|
9068
9057
|
}
|
|
9069
9058
|
});
|
|
9070
|
-
seriesProto.highlightFirstValidPoint = seriesHighlightFirstValidPoint;
|
|
9059
|
+
seriesProto.highlightFirstValidPoint = (seriesHighlightFirstValidPoint);
|
|
9071
9060
|
}
|
|
9072
9061
|
}
|
|
9073
9062
|
SeriesKeyboardNavigation.compose = compose;
|
|
@@ -9141,8 +9130,6 @@
|
|
|
9141
9130
|
*
|
|
9142
9131
|
* @private
|
|
9143
9132
|
* @function Highcharts.Series#highlightFirstValidPoint
|
|
9144
|
-
*
|
|
9145
|
-
* @return {boolean|Highcharts.Point}
|
|
9146
9133
|
*/
|
|
9147
9134
|
function seriesHighlightFirstValidPoint() {
|
|
9148
9135
|
var curPoint = this.chart.highlightedPoint,
|
|
@@ -9232,6 +9219,7 @@
|
|
|
9232
9219
|
*/
|
|
9233
9220
|
SeriesComponent.compose = function (ChartClass, PointClass, SeriesClass) {
|
|
9234
9221
|
// Handle forcing markers
|
|
9222
|
+
NewDataAnnouncer.compose(SeriesClass);
|
|
9235
9223
|
ForcedMarkers.compose(SeriesClass);
|
|
9236
9224
|
SeriesKeyboardNavigation.compose(ChartClass, PointClass, SeriesClass);
|
|
9237
9225
|
};
|
|
@@ -9296,13 +9284,14 @@
|
|
|
9296
9284
|
};
|
|
9297
9285
|
/**
|
|
9298
9286
|
* Get keyboard navigation handler for this component.
|
|
9299
|
-
* @
|
|
9287
|
+
* @private
|
|
9300
9288
|
*/
|
|
9301
9289
|
SeriesComponent.prototype.getKeyboardNavigation = function () {
|
|
9302
9290
|
return this.keyboardNavigation.getKeyboardNavigationHandler();
|
|
9303
9291
|
};
|
|
9304
9292
|
/**
|
|
9305
9293
|
* Remove traces
|
|
9294
|
+
* @private
|
|
9306
9295
|
*/
|
|
9307
9296
|
SeriesComponent.prototype.destroy = function () {
|
|
9308
9297
|
this.newDataAnnouncer.destroy();
|
|
@@ -9330,12 +9319,33 @@
|
|
|
9330
9319
|
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
9331
9320
|
*
|
|
9332
9321
|
* */
|
|
9322
|
+
var __extends = (this && this.__extends) || (function () {
|
|
9323
|
+
var extendStatics = function (d,
|
|
9324
|
+
b) {
|
|
9325
|
+
extendStatics = Object.setPrototypeOf ||
|
|
9326
|
+
({ __proto__: [] } instanceof Array && function (d,
|
|
9327
|
+
b) { d.__proto__ = b; }) ||
|
|
9328
|
+
function (d,
|
|
9329
|
+
b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
9330
|
+
return extendStatics(d, b);
|
|
9331
|
+
};
|
|
9332
|
+
return function (d, b) {
|
|
9333
|
+
extendStatics(d, b);
|
|
9334
|
+
function __() { this.constructor = d; }
|
|
9335
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
9336
|
+
};
|
|
9337
|
+
})();
|
|
9333
9338
|
var unhideChartElementFromAT = ChartUtilities.unhideChartElementFromAT;
|
|
9334
9339
|
var noop = H.noop;
|
|
9335
9340
|
var attr = U.attr,
|
|
9336
9341
|
extend = U.extend,
|
|
9337
9342
|
pick = U.pick;
|
|
9338
|
-
/*
|
|
9343
|
+
/* *
|
|
9344
|
+
*
|
|
9345
|
+
* Functions
|
|
9346
|
+
*
|
|
9347
|
+
* */
|
|
9348
|
+
/* eslint-disable valid-jsdoc */
|
|
9339
9349
|
/**
|
|
9340
9350
|
* @private
|
|
9341
9351
|
*/
|
|
@@ -9344,33 +9354,11 @@
|
|
|
9344
9354
|
chart.mapNavButtons &&
|
|
9345
9355
|
chart.mapNavButtons.length);
|
|
9346
9356
|
}
|
|
9347
|
-
|
|
9348
|
-
* Pan along axis in a direction (1 or -1), optionally with a defined
|
|
9349
|
-
* granularity (number of steps it takes to walk across current view)
|
|
9357
|
+
/* *
|
|
9350
9358
|
*
|
|
9351
|
-
*
|
|
9352
|
-
* @function Highcharts.Axis#panStep
|
|
9359
|
+
* Class
|
|
9353
9360
|
*
|
|
9354
|
-
*
|
|
9355
|
-
* @param {number} [granularity]
|
|
9356
|
-
*/
|
|
9357
|
-
H.Axis.prototype.panStep = function (direction, granularity) {
|
|
9358
|
-
var gran = granularity || 3;
|
|
9359
|
-
var extremes = this.getExtremes();
|
|
9360
|
-
var step = (extremes.max - extremes.min) / gran * direction;
|
|
9361
|
-
var newMax = extremes.max + step;
|
|
9362
|
-
var newMin = extremes.min + step;
|
|
9363
|
-
var size = newMax - newMin;
|
|
9364
|
-
if (direction < 0 && newMin < extremes.dataMin) {
|
|
9365
|
-
newMin = extremes.dataMin;
|
|
9366
|
-
newMax = newMin + size;
|
|
9367
|
-
}
|
|
9368
|
-
else if (direction > 0 && newMax > extremes.dataMax) {
|
|
9369
|
-
newMax = extremes.dataMax;
|
|
9370
|
-
newMin = newMax - size;
|
|
9371
|
-
}
|
|
9372
|
-
this.setExtremes(newMin, newMax);
|
|
9373
|
-
};
|
|
9361
|
+
* */
|
|
9374
9362
|
/**
|
|
9375
9363
|
* The ZoomComponent class
|
|
9376
9364
|
*
|
|
@@ -9378,13 +9366,28 @@
|
|
|
9378
9366
|
* @class
|
|
9379
9367
|
* @name Highcharts.ZoomComponent
|
|
9380
9368
|
*/
|
|
9381
|
-
var ZoomComponent =
|
|
9382
|
-
|
|
9383
|
-
|
|
9369
|
+
var ZoomComponent = /** @class */ (function (_super) {
|
|
9370
|
+
__extends(ZoomComponent, _super);
|
|
9371
|
+
function ZoomComponent() {
|
|
9372
|
+
/* *
|
|
9373
|
+
*
|
|
9374
|
+
* Properties
|
|
9375
|
+
*
|
|
9376
|
+
* */
|
|
9377
|
+
var _this = _super !== null && _super.apply(this,
|
|
9378
|
+
arguments) || this;
|
|
9379
|
+
_this.focusedMapNavButtonIx = -1;
|
|
9380
|
+
return _this;
|
|
9381
|
+
}
|
|
9382
|
+
/* *
|
|
9383
|
+
*
|
|
9384
|
+
* Functions
|
|
9385
|
+
*
|
|
9386
|
+
* */
|
|
9384
9387
|
/**
|
|
9385
9388
|
* Initialize the component
|
|
9386
9389
|
*/
|
|
9387
|
-
init
|
|
9390
|
+
ZoomComponent.prototype.init = function () {
|
|
9388
9391
|
var component = this,
|
|
9389
9392
|
chart = this.chart;
|
|
9390
9393
|
this.proxyProvider.addGroup('zoom', 'div');
|
|
@@ -9395,11 +9398,11 @@
|
|
|
9395
9398
|
component.updateProxyOverlays();
|
|
9396
9399
|
});
|
|
9397
9400
|
});
|
|
9398
|
-
}
|
|
9401
|
+
};
|
|
9399
9402
|
/**
|
|
9400
9403
|
* Called when chart is updated
|
|
9401
9404
|
*/
|
|
9402
|
-
onChartUpdate
|
|
9405
|
+
ZoomComponent.prototype.onChartUpdate = function () {
|
|
9403
9406
|
var chart = this.chart,
|
|
9404
9407
|
component = this;
|
|
9405
9408
|
// Make map zoom buttons accessible
|
|
@@ -9409,13 +9412,13 @@
|
|
|
9409
9412
|
component.setMapNavButtonAttrs(button.element, 'accessibility.zoom.mapZoom' + (i ? 'Out' : 'In'));
|
|
9410
9413
|
});
|
|
9411
9414
|
}
|
|
9412
|
-
}
|
|
9415
|
+
};
|
|
9413
9416
|
/**
|
|
9414
9417
|
* @private
|
|
9415
9418
|
* @param {Highcharts.HTMLDOMElement|Highcharts.SVGDOMElement} button
|
|
9416
9419
|
* @param {string} labelFormatKey
|
|
9417
9420
|
*/
|
|
9418
|
-
setMapNavButtonAttrs
|
|
9421
|
+
ZoomComponent.prototype.setMapNavButtonAttrs = function (button, labelFormatKey) {
|
|
9419
9422
|
var chart = this.chart,
|
|
9420
9423
|
label = chart.langFormat(labelFormatKey, { chart: chart });
|
|
9421
9424
|
attr(button, {
|
|
@@ -9423,18 +9426,18 @@
|
|
|
9423
9426
|
role: 'button',
|
|
9424
9427
|
'aria-label': label
|
|
9425
9428
|
});
|
|
9426
|
-
}
|
|
9429
|
+
};
|
|
9427
9430
|
/**
|
|
9428
9431
|
* Update the proxy overlays on every new render to ensure positions are
|
|
9429
9432
|
* correct.
|
|
9430
9433
|
*/
|
|
9431
|
-
onChartRender
|
|
9434
|
+
ZoomComponent.prototype.onChartRender = function () {
|
|
9432
9435
|
this.updateProxyOverlays();
|
|
9433
|
-
}
|
|
9436
|
+
};
|
|
9434
9437
|
/**
|
|
9435
9438
|
* Update proxy overlays, recreating the buttons.
|
|
9436
9439
|
*/
|
|
9437
|
-
updateProxyOverlays
|
|
9440
|
+
ZoomComponent.prototype.updateProxyOverlays = function () {
|
|
9438
9441
|
var chart = this.chart;
|
|
9439
9442
|
// Always start with a clean slate
|
|
9440
9443
|
this.proxyProvider.clearGroup('zoom');
|
|
@@ -9447,27 +9450,27 @@
|
|
|
9447
9450
|
buttonText: chart.getDrilldownBackText()
|
|
9448
9451
|
}));
|
|
9449
9452
|
}
|
|
9450
|
-
}
|
|
9453
|
+
};
|
|
9451
9454
|
/**
|
|
9452
9455
|
* @private
|
|
9453
9456
|
* @param {Highcharts.SVGElement} buttonEl
|
|
9454
9457
|
* @param {string} buttonProp
|
|
9455
9458
|
* @param {string} label
|
|
9456
9459
|
*/
|
|
9457
|
-
createZoomProxyButton
|
|
9460
|
+
ZoomComponent.prototype.createZoomProxyButton = function (buttonEl, buttonProp, label) {
|
|
9458
9461
|
this[buttonProp] = this.proxyProvider.addProxyElement('zoom', {
|
|
9459
9462
|
click: buttonEl
|
|
9460
9463
|
}, {
|
|
9461
9464
|
'aria-label': label,
|
|
9462
9465
|
tabindex: -1
|
|
9463
9466
|
});
|
|
9464
|
-
}
|
|
9467
|
+
};
|
|
9465
9468
|
/**
|
|
9466
9469
|
* Get keyboard navigation handler for map zoom.
|
|
9467
9470
|
* @private
|
|
9468
9471
|
* @return {Highcharts.KeyboardNavigationHandler} The module object
|
|
9469
9472
|
*/
|
|
9470
|
-
getMapZoomNavigation
|
|
9473
|
+
ZoomComponent.prototype.getMapZoomNavigation = function () {
|
|
9471
9474
|
var keys = this.keyCodes,
|
|
9472
9475
|
chart = this.chart,
|
|
9473
9476
|
component = this;
|
|
@@ -9499,14 +9502,14 @@
|
|
|
9499
9502
|
return component.onMapNavInit(direction);
|
|
9500
9503
|
}
|
|
9501
9504
|
});
|
|
9502
|
-
}
|
|
9505
|
+
};
|
|
9503
9506
|
/**
|
|
9504
9507
|
* @private
|
|
9505
9508
|
* @param {Highcharts.KeyboardNavigationHandler} keyboardNavigationHandler
|
|
9506
9509
|
* @param {number} keyCode
|
|
9507
9510
|
* @return {number} Response code
|
|
9508
9511
|
*/
|
|
9509
|
-
onMapKbdArrow
|
|
9512
|
+
ZoomComponent.prototype.onMapKbdArrow = function (keyboardNavigationHandler, keyCode) {
|
|
9510
9513
|
var keys = this.keyCodes,
|
|
9511
9514
|
panAxis = (keyCode === keys.up || keyCode === keys.down) ?
|
|
9512
9515
|
'yAxis' : 'xAxis',
|
|
@@ -9514,14 +9517,14 @@
|
|
|
9514
9517
|
-1 : 1;
|
|
9515
9518
|
this.chart[panAxis][0].panStep(stepDirection);
|
|
9516
9519
|
return keyboardNavigationHandler.response.success;
|
|
9517
|
-
}
|
|
9520
|
+
};
|
|
9518
9521
|
/**
|
|
9519
9522
|
* @private
|
|
9520
9523
|
* @param {Highcharts.KeyboardNavigationHandler} keyboardNavigationHandler
|
|
9521
9524
|
* @param {global.KeyboardEvent} event
|
|
9522
9525
|
* @return {number} Response code
|
|
9523
9526
|
*/
|
|
9524
|
-
onMapKbdTab
|
|
9527
|
+
ZoomComponent.prototype.onMapKbdTab = function (keyboardNavigationHandler, event) {
|
|
9525
9528
|
var chart = this.chart;
|
|
9526
9529
|
var response = keyboardNavigationHandler.response;
|
|
9527
9530
|
var isBackwards = event.shiftKey;
|
|
@@ -9539,22 +9542,22 @@
|
|
|
9539
9542
|
chart.setFocusToElement(button.box, button.element);
|
|
9540
9543
|
button.setState(2);
|
|
9541
9544
|
return response.success;
|
|
9542
|
-
}
|
|
9545
|
+
};
|
|
9543
9546
|
/**
|
|
9544
9547
|
* @private
|
|
9545
9548
|
* @param {Highcharts.KeyboardNavigationHandler} keyboardNavigationHandler
|
|
9546
9549
|
* @return {number} Response code
|
|
9547
9550
|
*/
|
|
9548
|
-
onMapKbdClick
|
|
9551
|
+
ZoomComponent.prototype.onMapKbdClick = function (keyboardNavigationHandler) {
|
|
9549
9552
|
var el = this.chart.mapNavButtons[this.focusedMapNavButtonIx].element;
|
|
9550
9553
|
this.fakeClickEvent(el);
|
|
9551
9554
|
return keyboardNavigationHandler.response.success;
|
|
9552
|
-
}
|
|
9555
|
+
};
|
|
9553
9556
|
/**
|
|
9554
9557
|
* @private
|
|
9555
9558
|
* @param {number} direction
|
|
9556
9559
|
*/
|
|
9557
|
-
onMapNavInit
|
|
9560
|
+
ZoomComponent.prototype.onMapNavInit = function (direction) {
|
|
9558
9561
|
var chart = this.chart,
|
|
9559
9562
|
zoomIn = chart.mapNavButtons[0],
|
|
9560
9563
|
zoomOut = chart.mapNavButtons[1],
|
|
@@ -9562,7 +9565,7 @@
|
|
|
9562
9565
|
chart.setFocusToElement(initialButton.box, initialButton.element);
|
|
9563
9566
|
initialButton.setState(2);
|
|
9564
9567
|
this.focusedMapNavButtonIx = direction > 0 ? 0 : 1;
|
|
9565
|
-
}
|
|
9568
|
+
};
|
|
9566
9569
|
/**
|
|
9567
9570
|
* Get keyboard navigation handler for a simple chart button. Provide the
|
|
9568
9571
|
* button reference for the chart, and a function to call on click.
|
|
@@ -9571,7 +9574,7 @@
|
|
|
9571
9574
|
* @param {string} buttonProp The property on chart referencing the button.
|
|
9572
9575
|
* @return {Highcharts.KeyboardNavigationHandler} The module object
|
|
9573
9576
|
*/
|
|
9574
|
-
simpleButtonNavigation
|
|
9577
|
+
ZoomComponent.prototype.simpleButtonNavigation = function (buttonProp, proxyProp, onClick) {
|
|
9575
9578
|
var keys = this.keyCodes,
|
|
9576
9579
|
component = this,
|
|
9577
9580
|
chart = this.chart;
|
|
@@ -9580,8 +9583,9 @@
|
|
|
9580
9583
|
[
|
|
9581
9584
|
[keys.tab, keys.up, keys.down, keys.left, keys.right],
|
|
9582
9585
|
function (keyCode, e) {
|
|
9583
|
-
var isBackwards = keyCode === keys.tab && e.shiftKey ||
|
|
9584
|
-
keyCode === keys.left ||
|
|
9586
|
+
var isBackwards = (keyCode === keys.tab && e.shiftKey ||
|
|
9587
|
+
keyCode === keys.left ||
|
|
9588
|
+
keyCode === keys.up);
|
|
9585
9589
|
// Arrow/tab => just move
|
|
9586
9590
|
return this.response[isBackwards ? 'prev' : 'next'];
|
|
9587
9591
|
}
|
|
@@ -9605,13 +9609,13 @@
|
|
|
9605
9609
|
chart.setFocusToElement(chart[buttonProp].box, component[proxyProp].buttonElement);
|
|
9606
9610
|
}
|
|
9607
9611
|
});
|
|
9608
|
-
}
|
|
9612
|
+
};
|
|
9609
9613
|
/**
|
|
9610
9614
|
* Get keyboard navigation handlers for this component.
|
|
9611
9615
|
* @return {Array<Highcharts.KeyboardNavigationHandler>}
|
|
9612
9616
|
* List of module objects
|
|
9613
9617
|
*/
|
|
9614
|
-
getKeyboardNavigation
|
|
9618
|
+
ZoomComponent.prototype.getKeyboardNavigation = function () {
|
|
9615
9619
|
return [
|
|
9616
9620
|
this.simpleButtonNavigation('resetZoomButton', 'resetZoomProxyButton', function (_handler, chart) {
|
|
9617
9621
|
chart.zoomOut();
|
|
@@ -9622,8 +9626,75 @@
|
|
|
9622
9626
|
}),
|
|
9623
9627
|
this.getMapZoomNavigation()
|
|
9624
9628
|
];
|
|
9629
|
+
};
|
|
9630
|
+
return ZoomComponent;
|
|
9631
|
+
}(AccessibilityComponent));
|
|
9632
|
+
/* *
|
|
9633
|
+
*
|
|
9634
|
+
* Class Namespace
|
|
9635
|
+
*
|
|
9636
|
+
* */
|
|
9637
|
+
(function (ZoomComponent) {
|
|
9638
|
+
/* *
|
|
9639
|
+
*
|
|
9640
|
+
* Declarations
|
|
9641
|
+
*
|
|
9642
|
+
* */
|
|
9643
|
+
/* *
|
|
9644
|
+
*
|
|
9645
|
+
* Constants
|
|
9646
|
+
*
|
|
9647
|
+
* */
|
|
9648
|
+
ZoomComponent.composedClasses = [];
|
|
9649
|
+
/* *
|
|
9650
|
+
*
|
|
9651
|
+
* Functions
|
|
9652
|
+
*
|
|
9653
|
+
* */
|
|
9654
|
+
/**
|
|
9655
|
+
* @private
|
|
9656
|
+
*/
|
|
9657
|
+
function compose(AxisClass) {
|
|
9658
|
+
if (ZoomComponent.composedClasses.indexOf(AxisClass) === -1) {
|
|
9659
|
+
ZoomComponent.composedClasses.push(AxisClass);
|
|
9660
|
+
var axisProto = AxisClass.prototype;
|
|
9661
|
+
axisProto.panStep = axisPanStep;
|
|
9662
|
+
}
|
|
9625
9663
|
}
|
|
9626
|
-
|
|
9664
|
+
ZoomComponent.compose = compose;
|
|
9665
|
+
/**
|
|
9666
|
+
* Pan along axis in a direction (1 or -1), optionally with a defined
|
|
9667
|
+
* granularity (number of steps it takes to walk across current view)
|
|
9668
|
+
*
|
|
9669
|
+
* @private
|
|
9670
|
+
* @function Highcharts.Axis#panStep
|
|
9671
|
+
*
|
|
9672
|
+
* @param {number} direction
|
|
9673
|
+
* @param {number} [granularity]
|
|
9674
|
+
*/
|
|
9675
|
+
function axisPanStep(direction, granularity) {
|
|
9676
|
+
var gran = granularity || 3;
|
|
9677
|
+
var extremes = this.getExtremes();
|
|
9678
|
+
var step = (extremes.max - extremes.min) / gran * direction;
|
|
9679
|
+
var newMax = extremes.max + step;
|
|
9680
|
+
var newMin = extremes.min + step;
|
|
9681
|
+
var size = newMax - newMin;
|
|
9682
|
+
if (direction < 0 && newMin < extremes.dataMin) {
|
|
9683
|
+
newMin = extremes.dataMin;
|
|
9684
|
+
newMax = newMin + size;
|
|
9685
|
+
}
|
|
9686
|
+
else if (direction > 0 && newMax > extremes.dataMax) {
|
|
9687
|
+
newMax = extremes.dataMax;
|
|
9688
|
+
newMin = newMax - size;
|
|
9689
|
+
}
|
|
9690
|
+
this.setExtremes(newMin, newMax);
|
|
9691
|
+
}
|
|
9692
|
+
})(ZoomComponent || (ZoomComponent = {}));
|
|
9693
|
+
/* *
|
|
9694
|
+
*
|
|
9695
|
+
* Default Export
|
|
9696
|
+
*
|
|
9697
|
+
* */
|
|
9627
9698
|
|
|
9628
9699
|
return ZoomComponent;
|
|
9629
9700
|
});
|
|
@@ -9663,7 +9734,8 @@
|
|
|
9663
9734
|
// Test BG image for IE
|
|
9664
9735
|
if (isMS && win.getComputedStyle) {
|
|
9665
9736
|
var testDiv = doc.createElement('div');
|
|
9666
|
-
var imageSrc = 'data:image/gif;base64,
|
|
9737
|
+
var imageSrc = 'data:image/gif;base64,' +
|
|
9738
|
+
'R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';
|
|
9667
9739
|
testDiv.style.backgroundImage = "url(" + imageSrc + ")"; // #13071
|
|
9668
9740
|
doc.body.appendChild(testDiv);
|
|
9669
9741
|
var bi = (testDiv.currentStyle ||
|
|
@@ -10860,9 +10932,9 @@
|
|
|
10860
10932
|
*/
|
|
10861
10933
|
annotations: {
|
|
10862
10934
|
heading: 'Chart annotations summary',
|
|
10863
|
-
descriptionSinglePoint: '{annotationText}. Related to {annotationPoint}',
|
|
10864
|
-
descriptionMultiplePoints: '{annotationText}. Related to {annotationPoint}' +
|
|
10865
|
-
'{ Also related to, #each(additionalAnnotationPoints)}',
|
|
10935
|
+
descriptionSinglePoint: ('{annotationText}. Related to {annotationPoint}'),
|
|
10936
|
+
descriptionMultiplePoints: ('{annotationText}. Related to {annotationPoint}' +
|
|
10937
|
+
'{ Also related to, #each(additionalAnnotationPoints)}'),
|
|
10866
10938
|
descriptionNoPoints: '{annotationText}'
|
|
10867
10939
|
},
|
|
10868
10940
|
/**
|
|
@@ -11229,7 +11301,8 @@
|
|
|
11229
11301
|
if (typeof val !== 'undefined') {
|
|
11230
11302
|
traverseSetOption(rootNew, mapToNewOptions[oldOptionKey], val);
|
|
11231
11303
|
error(32, false, chart, (_a = {},
|
|
11232
|
-
_a[rootOldAsArray.join('.') +
|
|
11304
|
+
_a[rootOldAsArray.join('.') + '.' + oldOptionKey] = (rootNewAsArray.join('.') + '.' +
|
|
11305
|
+
mapToNewOptions[oldOptionKey].join('.')),
|
|
11233
11306
|
_a));
|
|
11234
11307
|
}
|
|
11235
11308
|
});
|
|
@@ -11257,7 +11330,9 @@
|
|
|
11257
11330
|
if (opts && opts.description) {
|
|
11258
11331
|
opts.accessibility = opts.accessibility || {};
|
|
11259
11332
|
opts.accessibility.description = opts.description;
|
|
11260
|
-
error(32, false, chart, {
|
|
11333
|
+
error(32, false, chart, {
|
|
11334
|
+
'axis.description': 'use axis.accessibility.description'
|
|
11335
|
+
});
|
|
11261
11336
|
}
|
|
11262
11337
|
});
|
|
11263
11338
|
}
|
|
@@ -11287,8 +11362,9 @@
|
|
|
11287
11362
|
var optionVal = series.options[oldOption];
|
|
11288
11363
|
// Special case
|
|
11289
11364
|
if (oldOption === 'accessibility.pointDescriptionFormatter') {
|
|
11290
|
-
optionVal = series.options.accessibility &&
|
|
11291
|
-
series.options.accessibility
|
|
11365
|
+
optionVal = (series.options.accessibility &&
|
|
11366
|
+
series.options.accessibility
|
|
11367
|
+
.pointDescriptionFormatter);
|
|
11292
11368
|
}
|
|
11293
11369
|
if (typeof optionVal !== 'undefined') {
|
|
11294
11370
|
// Set the new option
|
|
@@ -11297,7 +11373,10 @@
|
|
|
11297
11373
|
// value, since we set enabled rather than disabled
|
|
11298
11374
|
oldOption === 'skipKeyboardNavigation' ?
|
|
11299
11375
|
!optionVal : optionVal);
|
|
11300
|
-
error(32, false, chart, (_a = {},
|
|
11376
|
+
error(32, false, chart, (_a = {},
|
|
11377
|
+
_a["series." + oldOption] = ('series.' +
|
|
11378
|
+
oldToNewSeriesOptions[oldOption].join('.')),
|
|
11379
|
+
_a));
|
|
11301
11380
|
}
|
|
11302
11381
|
});
|
|
11303
11382
|
});
|
|
@@ -11453,7 +11532,6 @@
|
|
|
11453
11532
|
this.proxyProvider = new ProxyProvider(this.chart);
|
|
11454
11533
|
this.initComponents();
|
|
11455
11534
|
this.keyboardNavigation = new KeyboardNavigation(chart, this.components);
|
|
11456
|
-
this.update();
|
|
11457
11535
|
};
|
|
11458
11536
|
/**
|
|
11459
11537
|
* @private
|
|
@@ -11658,6 +11736,9 @@
|
|
|
11658
11736
|
}
|
|
11659
11737
|
else {
|
|
11660
11738
|
this.accessibility = a11y = new Accessibility(this);
|
|
11739
|
+
if (a11y && !a11y.zombie) {
|
|
11740
|
+
a11y.update();
|
|
11741
|
+
}
|
|
11661
11742
|
}
|
|
11662
11743
|
}
|
|
11663
11744
|
else if (a11y) {
|
|
@@ -11675,13 +11756,17 @@
|
|
|
11675
11756
|
/**
|
|
11676
11757
|
* @private
|
|
11677
11758
|
*/
|
|
11678
|
-
function compose(ChartClass, PointClass, SeriesClass, SVGElementClass, RangeSelectorClass) {
|
|
11679
|
-
|
|
11680
|
-
FocusBorder.compose(ChartClass, SVGElementClass);
|
|
11759
|
+
function compose(AxisClass, ChartClass, LegendClass, PointClass, SeriesClass, SVGElementClass, RangeSelectorClass) {
|
|
11760
|
+
// ordered:
|
|
11681
11761
|
KeyboardNavigation.compose(ChartClass);
|
|
11682
|
-
MenuComponent.compose(ChartClass);
|
|
11683
11762
|
NewDataAnnouncer.compose(SeriesClass);
|
|
11763
|
+
LegendComponent.compose(ChartClass, LegendClass);
|
|
11764
|
+
MenuComponent.compose(ChartClass);
|
|
11684
11765
|
SeriesComponent.compose(ChartClass, PointClass, SeriesClass);
|
|
11766
|
+
ZoomComponent.compose(AxisClass);
|
|
11767
|
+
// RangeSelector
|
|
11768
|
+
A11yI18n.compose(ChartClass);
|
|
11769
|
+
FocusBorder.compose(ChartClass, SVGElementClass);
|
|
11685
11770
|
if (RangeSelectorClass) {
|
|
11686
11771
|
RangeSelectorComponent.compose(ChartClass, RangeSelectorClass);
|
|
11687
11772
|
}
|
|
@@ -11764,7 +11849,7 @@
|
|
|
11764
11849
|
G.AccessibilityComponent = AccessibilityComponent;
|
|
11765
11850
|
G.KeyboardNavigationHandler = KeyboardNavigationHandler;
|
|
11766
11851
|
G.SeriesAccessibilityDescriber = SeriesDescriber;
|
|
11767
|
-
Accessibility.compose(G.Chart, G.Point, G.Series, G.SVGElement, G.RangeSelector);
|
|
11852
|
+
Accessibility.compose(G.Axis, G.Chart, G.Legend, G.Point, G.Series, G.SVGElement, G.RangeSelector);
|
|
11768
11853
|
|
|
11769
11854
|
});
|
|
11770
11855
|
}));
|