highcharts 10.2.0 → 10.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bower.json +1 -1
- package/css/highcharts.css +10 -20
- package/css/themes/dark-unica.css +10 -20
- package/css/themes/grid-light.css +10 -20
- package/css/themes/sand-signika.css +10 -20
- package/es-modules/Accessibility/Accessibility.js +6 -0
- package/es-modules/Accessibility/Components/LegendComponent.js +8 -8
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +3 -2
- package/es-modules/Accessibility/Options/A11yDefaults.js +1 -1
- package/es-modules/Core/Axis/Axis.js +3 -0
- package/es-modules/Core/Axis/Axis3D.js +1 -1
- package/es-modules/Core/Axis/AxisDefaults.js +1 -1
- package/es-modules/Core/Axis/BrokenAxis.js +1 -1
- package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +4 -0
- package/es-modules/Core/Axis/NavigatorAxis.js +2 -2
- package/es-modules/Core/Axis/OrdinalAxis.js +2 -2
- package/es-modules/Core/Axis/RadialAxis.js +1 -1
- package/es-modules/Core/Axis/Stacking/StackItem.js +262 -0
- package/es-modules/Core/Axis/Stacking/StackingAxis.js +468 -0
- package/es-modules/Core/Axis/TreeGrid/TreeGridAxis.js +732 -0
- package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +313 -0
- package/es-modules/Core/Axis/WaterfallAxis.js +1 -1
- package/es-modules/Core/Axis/ZAxis.js +73 -70
- package/es-modules/Core/Chart/Chart.js +16 -2
- package/es-modules/Core/Chart/Chart3D.js +2 -2
- package/es-modules/Core/Chart/ChartDefaults.js +151 -2
- package/es-modules/Core/Chart/StockChart.js +5 -3
- package/es-modules/Core/DefaultOptions.js +2 -1
- package/es-modules/Core/Geometry/CircleUtilities.js +4 -4
- package/es-modules/Core/Globals.js +2 -1
- package/es-modules/{Extensions → Core}/Math3D.js +48 -43
- package/es-modules/Core/Navigator.js +24 -7
- package/es-modules/Core/Pointer.js +7 -9
- package/es-modules/Core/Renderer/HTML/AST.js +4 -1
- package/es-modules/Core/Renderer/SVG/SVGElement.js +103 -163
- package/es-modules/Core/Renderer/SVG/SVGLabel.js +29 -27
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +3 -3
- package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +1 -1
- package/es-modules/Core/Renderer/SVG/TextBuilder.js +5 -3
- package/es-modules/Core/Scrollbar.js +3 -1
- package/es-modules/Core/Series/DataLabel.js +8 -6
- package/es-modules/Core/Series/Point.js +2 -2
- package/es-modules/Core/Series/Series.js +36 -31
- package/es-modules/Core/Series/Series3D.js +1 -1
- package/es-modules/Core/Series/SeriesDefaults.js +8 -3
- package/es-modules/Core/Series/SeriesRegistry.js +6 -29
- package/es-modules/Core/Tooltip.js +14 -3
- package/es-modules/Core/Utilities.js +1 -3
- package/es-modules/Data/DataConverter.js +5 -0
- package/es-modules/Data/DataPromise.js +1 -1
- package/es-modules/Data/DataSeriesComposition.js +288 -0
- package/es-modules/Data/DataSeriesConverter.js +1 -1
- package/es-modules/Data/DataTable.js +2 -2
- package/es-modules/Data/Modifiers/ChainModifier.js +1 -1
- package/es-modules/Data/Modifiers/DataModifier.js +1 -1
- package/es-modules/Data/Modifiers/GroupModifier.js +1 -1
- package/es-modules/Data/Modifiers/InvertModifier.js +1 -1
- package/es-modules/Data/Modifiers/RangeModifier.js +1 -1
- package/es-modules/Data/Modifiers/SeriesPointsModifier.js +1 -1
- package/es-modules/Data/Modifiers/SortModifier.js +1 -1
- package/es-modules/Data/Parsers/DataParser.js +1 -1
- package/es-modules/Data/Stores/DataStore.js +1 -1
- package/es-modules/Extensions/Annotations/Annotation.js +347 -1156
- package/es-modules/Extensions/Annotations/AnnotationChart.js +291 -0
- package/es-modules/Extensions/Annotations/AnnotationDefaults.js +624 -0
- package/es-modules/Extensions/Annotations/ControlPoint.js +89 -64
- package/es-modules/Extensions/Annotations/{Mixins/ControllableMixin.js → Controllables/Controllable.js} +300 -241
- package/es-modules/Extensions/Annotations/Controllables/ControllableCircle.js +63 -50
- package/es-modules/Extensions/Annotations/Controllables/ControllableDefaults.js +95 -0
- package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +90 -61
- package/es-modules/Extensions/Annotations/Controllables/ControllableImage.js +50 -44
- package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +95 -78
- package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +167 -51
- package/es-modules/Extensions/Annotations/Controllables/ControllableRect.js +53 -52
- package/es-modules/Extensions/Annotations/{Mixins/EventEmitterMixin.js → EventEmitter.js} +136 -116
- package/es-modules/Extensions/Annotations/MockPoint.js +210 -145
- package/es-modules/Extensions/Annotations/NavigationBindings.js +272 -674
- package/es-modules/Extensions/Annotations/NavigationBindingsDefaults.js +396 -0
- package/es-modules/Extensions/Annotations/NavigationBindingsUtilities.js +98 -0
- package/es-modules/Extensions/Annotations/Popup/Popup.js +295 -0
- package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +177 -0
- package/es-modules/Extensions/Annotations/Popup/PopupComposition.js +81 -0
- package/es-modules/Extensions/Annotations/Popup/PopupIndicators.js +609 -0
- package/es-modules/Extensions/Annotations/Popup/PopupTabs.js +134 -0
- package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +10 -14
- package/es-modules/Extensions/Annotations/Types/CrookedLine.js +11 -19
- package/es-modules/Extensions/Annotations/Types/ElliottWave.js +10 -10
- package/es-modules/Extensions/Annotations/Types/Fibonacci.js +28 -20
- package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +63 -63
- package/es-modules/Extensions/Annotations/Types/InfinityLine.js +10 -19
- package/es-modules/Extensions/Annotations/Types/Measure.js +255 -249
- package/es-modules/Extensions/Annotations/Types/Pitchfork.js +11 -17
- package/es-modules/Extensions/Annotations/Types/TimeCycles.js +20 -17
- package/es-modules/Extensions/Annotations/Types/Tunnel.js +12 -13
- package/es-modules/Extensions/Annotations/Types/VerticalLine.js +11 -15
- package/es-modules/Extensions/Boost/Boost.js +320 -15
- package/es-modules/Extensions/Boost/BoostChart.js +245 -0
- package/es-modules/Extensions/Boost/BoostSeries.js +927 -0
- package/es-modules/Extensions/Boost/BoostableMap.js +21 -5
- package/es-modules/Extensions/Boost/Boostables.js +13 -2
- package/es-modules/Extensions/Boost/NamedColors.js +15 -6
- package/es-modules/Extensions/Boost/WGLDrawMode.js +36 -0
- package/es-modules/Extensions/Boost/WGLRenderer.js +288 -295
- package/es-modules/Extensions/Boost/WGLShader.js +370 -376
- package/es-modules/Extensions/Boost/WGLVertexBuffer.js +192 -0
- package/es-modules/Extensions/BoostCanvas.js +62 -46
- package/es-modules/Extensions/Breadcrumbs.js +4 -0
- package/es-modules/Extensions/DataGrouping.js +65 -27
- package/es-modules/Extensions/Debugger/Debugger.js +60 -22
- package/es-modules/Extensions/DraggablePoints.js +4 -3
- package/es-modules/Extensions/Drilldown.js +7 -8
- package/es-modules/Extensions/{ExportData.js → ExportData/ExportData.js} +341 -530
- package/es-modules/Extensions/ExportData/ExportDataDefaults.js +272 -0
- package/es-modules/Extensions/Exporting/Exporting.js +5 -1
- package/es-modules/Extensions/Exporting/ExportingDefaults.js +3 -1
- package/es-modules/Extensions/{FullScreen.js → Exporting/Fullscreen.js} +72 -27
- package/es-modules/Extensions/MarkerClusters.js +2 -0
- package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
- package/es-modules/Extensions/Oldie/Oldie.js +1 -1
- package/es-modules/Extensions/ParallelCoordinates.js +11 -7
- package/es-modules/Extensions/ScrollablePlotArea.js +1 -1
- package/es-modules/Extensions/SeriesLabel/SeriesLabel.js +2 -2
- package/es-modules/Extensions/Sonification/ChartSonify.js +1 -1
- package/es-modules/Maps/MapPointer.js +1 -1
- package/es-modules/Maps/MapView.js +2 -1
- package/es-modules/Series/{Area3DSeries.js → Area3D/Area3DSeries.js} +42 -20
- package/es-modules/Series/AreaRange/AreaRangeSeries.js +8 -2
- package/es-modules/Series/Bubble/BubbleLegendComposition.js +223 -231
- package/es-modules/Series/Bubble/BubbleLegendItem.js +46 -45
- package/es-modules/Series/Bubble/BubbleSeries.js +85 -66
- package/es-modules/Series/Column/ColumnSeries.js +2 -0
- package/es-modules/Series/Column3D/Column3DComposition.js +2 -2
- package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +1 -1
- package/es-modules/Series/Cylinder/CylinderComposition.js +1 -1
- package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +24 -11
- package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +16 -2
- package/es-modules/Series/DragNodesComposition.js +166 -0
- package/es-modules/Series/Funnel3D/Funnel3DSeries.js +1 -1
- package/es-modules/Series/Gantt/GanttSeries.js +1 -1
- package/es-modules/Series/GraphLayoutComposition.js +130 -0
- package/es-modules/Series/Heatmap/HeatmapSeries.js +5 -1
- package/es-modules/Series/Lollipop/LollipopPoint.js +21 -11
- package/es-modules/Series/Lollipop/LollipopSeries.js +15 -10
- package/es-modules/Series/Map/MapSeries.js +6 -1
- package/es-modules/Series/MapBubble/MapBubblePoint.js +15 -17
- package/es-modules/Series/MapBubble/MapBubbleSeries.js +19 -19
- package/es-modules/Series/Networkgraph/EulerIntegration.js +199 -0
- package/es-modules/Series/Networkgraph/NetworkgraphPoint.js +290 -0
- package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +401 -0
- package/es-modules/Series/Networkgraph/NetworkgraphSeriesDefaults.js +545 -0
- package/es-modules/Series/Networkgraph/QuadTree.js +66 -272
- package/es-modules/Series/Networkgraph/QuadTreeNode.js +271 -0
- package/es-modules/Series/Networkgraph/{Layouts.js → ReingoldFruchtermanLayout.js} +240 -259
- package/es-modules/Series/Networkgraph/VerletIntegration.js +193 -0
- package/es-modules/Series/Organization/OrganizationSeries.js +9 -1
- package/es-modules/Series/PackedBubble/PackedBubbleIntegration.js +81 -0
- package/es-modules/Series/PackedBubble/{PackedBubbleComposition.js → PackedBubbleLayout.js} +114 -77
- package/es-modules/Series/PackedBubble/PackedBubblePoint.js +2 -2
- package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +197 -570
- package/es-modules/Series/PackedBubble/PackedBubbleSeriesDefaults.js +394 -0
- package/es-modules/Series/Pie/PieSeries.js +3 -1
- package/es-modules/Series/PolarComposition.js +12 -12
- package/es-modules/Series/Sankey/SankeySeries.js +13 -1
- package/es-modules/Series/Scatter/ScatterSeries.js +4 -1
- package/es-modules/Series/Scatter3D/Scatter3DSeries.js +1 -1
- package/es-modules/Series/SeriesOnPointComposition.js +5 -1
- package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +1 -1
- package/es-modules/Series/Sunburst/SunburstPoint.js +5 -6
- package/es-modules/Series/Sunburst/SunburstSeries.js +24 -2
- package/es-modules/Series/Timeline/TimelineSeries.js +2 -0
- package/es-modules/Series/Treemap/TreemapSeries.js +3 -3
- package/es-modules/Series/Vector/VectorSeries.js +2 -4
- package/es-modules/Series/Wordcloud/WordcloudSeries.js +1 -1
- package/es-modules/Series/Wordcloud/WordcloudUtils.js +1 -1
- package/es-modules/Series/XRange/XRangePoint.js +54 -45
- package/es-modules/Series/XRange/XRangeSeries.js +121 -273
- package/es-modules/Series/XRange/XRangeSeriesDefaults.js +211 -0
- package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +10 -2
- package/es-modules/Stock/Indicators/AD/ADIndicator.js +5 -0
- package/es-modules/Stock/Indicators/AO/AOIndicator.js +22 -11
- package/es-modules/Stock/Indicators/APO/APOIndicator.js +6 -1
- package/es-modules/Stock/Indicators/ATR/ATRIndicator.js +16 -3
- package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +15 -2
- package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +6 -2
- package/es-modules/Stock/Indicators/BB/BBIndicator.js +5 -1
- package/es-modules/Stock/Indicators/CCI/CCIIndicator.js +16 -3
- package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +20 -0
- package/es-modules/Stock/Indicators/CMO/CMOIndicator.js +15 -1
- package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +7 -2
- package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +25 -0
- package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +5 -0
- package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +19 -8
- package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +10 -0
- package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +34 -15
- package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +25 -0
- package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +12 -1
- package/es-modules/Stock/Indicators/LinearRegression/{LinearRegression.js → LinearRegressionIndicator.js} +11 -1
- package/es-modules/Stock/Indicators/LinearRegressionAngle/{LinearRegressionAngle.js → LinearRegressionAngleIndicator.js} +12 -7
- package/es-modules/Stock/Indicators/LinearRegressionIntercept/{LinearRegressionIntercept.js → LinearRegressionInterceptIndicator.js} +11 -1
- package/es-modules/Stock/Indicators/LinearRegressionSlopes/{LinearRegressionSlopes.js → LinearRegressionSlopesIndicator.js} +11 -1
- package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +21 -10
- package/es-modules/Stock/Indicators/MFI/MFIIndicator.js +23 -10
- package/es-modules/Stock/Indicators/Momentum/MomentumIndicator.js +30 -2
- package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +16 -1
- package/es-modules/Stock/Indicators/OBV/OBVIndicator.js +10 -0
- package/es-modules/Stock/Indicators/PC/PCIndicator.js +13 -8
- package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +14 -4
- package/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +16 -3
- package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +16 -6
- package/es-modules/Stock/Indicators/PivotPoints/PivotPointsPoint.js +16 -12
- package/es-modules/Stock/Indicators/PriceEnvelopes/PriceEnvelopesIndicator.js +25 -0
- package/es-modules/Stock/Indicators/ROC/ROCIndicator.js +15 -2
- package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +20 -2
- package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +1 -1
- package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +25 -0
- package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +15 -0
- package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +17 -3
- package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +25 -0
- package/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +14 -4
- package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +32 -3
- package/es-modules/Stock/Indicators/VBP/VBPPoint.js +6 -6
- package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +11 -1
- package/es-modules/Stock/Indicators/WMA/WMAIndicator.js +30 -2
- package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +10 -0
- package/es-modules/Stock/Indicators/Zigzag/ZigzagIndicator.js +11 -1
- package/es-modules/Stock/StockToolbar.js +568 -0
- package/es-modules/Stock/StockTools.js +256 -0
- package/es-modules/Stock/StockToolsBindings.js +114 -629
- package/es-modules/Stock/StockToolsDefaults.js +1190 -0
- package/es-modules/Stock/StockToolsGui.js +150 -1771
- package/es-modules/Stock/StockToolsUtilities.js +423 -0
- package/es-modules/masters/highcharts-3d.src.js +5 -4
- package/es-modules/masters/highcharts-gantt.src.js +1 -1
- package/es-modules/masters/highcharts-more.src.js +4 -3
- package/es-modules/masters/highcharts.src.js +5 -2
- 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 +5 -7
- 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 +5 -5
- package/es-modules/masters/indicators/roc.src.js +1 -1
- package/es-modules/masters/indicators/rsi.src.js +1 -1
- package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
- package/es-modules/masters/indicators/stochastic.src.js +1 -1
- package/es-modules/masters/indicators/supertrend.src.js +1 -1
- package/es-modules/masters/indicators/tema.src.js +1 -1
- package/es-modules/masters/indicators/trendline.src.js +1 -1
- package/es-modules/masters/indicators/trix.src.js +1 -1
- package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
- package/es-modules/masters/indicators/vwap.src.js +1 -1
- package/es-modules/masters/indicators/williams-r.src.js +1 -1
- package/es-modules/masters/indicators/wma.src.js +1 -1
- package/es-modules/masters/indicators/zigzag.src.js +1 -1
- package/es-modules/masters/modules/accessibility.src.js +1 -1
- package/es-modules/masters/modules/annotations-advanced.src.js +6 -4
- package/es-modules/masters/modules/annotations.src.js +6 -4
- package/es-modules/masters/modules/arc-diagram.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 +6 -2
- 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 +5 -3
- 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 +5 -2
- package/es-modules/masters/modules/exporting.src.js +1 -2
- package/es-modules/masters/modules/full-screen.src.js +6 -2
- 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 +3 -2
- 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 +2 -2
- package/es-modules/masters/modules/marker-clusters.src.js +1 -1
- package/es-modules/masters/modules/networkgraph.src.js +5 -2
- 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/series-on-point.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 +10 -3
- 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 +2 -2
- 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 +5 -2
- package/es-modules/masters/themes/avocado.src.js +1 -1
- package/es-modules/masters/themes/brand-dark.src.js +1 -1
- package/es-modules/masters/themes/brand-light.src.js +1 -1
- package/es-modules/masters/themes/dark-blue.src.js +1 -1
- package/es-modules/masters/themes/dark-green.src.js +1 -1
- package/es-modules/masters/themes/dark-unica.src.js +1 -1
- package/es-modules/masters/themes/gray.src.js +1 -1
- package/es-modules/masters/themes/grid-light.src.js +1 -1
- package/es-modules/masters/themes/grid.src.js +1 -1
- package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
- package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
- package/es-modules/masters/themes/sand-signika.src.js +1 -1
- package/es-modules/masters/themes/skies.src.js +1 -1
- package/es-modules/masters/themes/sunset.src.js +1 -1
- package/highcharts-3d.js +98 -99
- package/highcharts-3d.js.map +1 -1
- package/highcharts-3d.src.js +232 -211
- package/highcharts-gantt.js +808 -809
- package/highcharts-gantt.js.map +1 -1
- package/highcharts-gantt.src.js +2308 -2136
- package/highcharts-more.d.ts +5 -8
- package/highcharts-more.js +201 -194
- package/highcharts-more.js.map +1 -1
- package/highcharts-more.src.d.ts +5 -8
- package/highcharts-more.src.js +3671 -3275
- package/highcharts.d.ts +1400 -885
- package/highcharts.js +593 -595
- package/highcharts.js.map +1 -1
- package/highcharts.src.d.ts +1400 -885
- package/highcharts.src.js +847 -716
- package/highmaps.js +762 -763
- package/highmaps.js.map +1 -1
- package/highmaps.src.js +1288 -1129
- package/highstock.js +796 -798
- package/highstock.js.map +1 -1
- package/highstock.src.js +953 -762
- package/indicators/acceleration-bands.js +1 -1
- package/indicators/acceleration-bands.js.map +1 -1
- package/indicators/acceleration-bands.src.js +11 -3
- package/indicators/accumulation-distribution.js +1 -1
- package/indicators/accumulation-distribution.js.map +1 -1
- package/indicators/accumulation-distribution.src.js +6 -1
- package/indicators/ao.js +6 -6
- package/indicators/ao.js.map +1 -1
- package/indicators/ao.src.js +23 -14
- package/indicators/apo.js +1 -1
- package/indicators/apo.js.map +1 -1
- package/indicators/apo.src.js +6 -1
- package/indicators/aroon-oscillator.js +10 -10
- package/indicators/aroon-oscillator.js.map +1 -1
- package/indicators/aroon-oscillator.src.js +7 -3
- package/indicators/aroon.js +1 -1
- package/indicators/aroon.js.map +1 -1
- package/indicators/aroon.src.js +16 -3
- package/indicators/atr.js +1 -1
- package/indicators/atr.js.map +1 -1
- package/indicators/atr.src.js +17 -4
- package/indicators/bollinger-bands.js +1 -1
- package/indicators/bollinger-bands.js.map +1 -1
- package/indicators/bollinger-bands.src.js +6 -2
- package/indicators/cci.js +1 -1
- package/indicators/cci.js.map +1 -1
- package/indicators/cci.src.js +17 -4
- package/indicators/chaikin.js +8 -8
- package/indicators/chaikin.js.map +1 -1
- package/indicators/chaikin.src.js +13 -5
- package/indicators/cmf.js +1 -1
- package/indicators/cmf.js.map +1 -1
- package/indicators/cmf.src.js +21 -1
- package/indicators/cmo.js +1 -1
- package/indicators/cmo.js.map +1 -1
- package/indicators/cmo.src.js +16 -2
- package/indicators/dema.js +1 -1
- package/indicators/dema.js.map +1 -1
- package/indicators/dema.src.js +26 -1
- package/indicators/disparity-index.js +1 -1
- package/indicators/disparity-index.src.js +1 -1
- package/indicators/dmi.js +1 -1
- package/indicators/dmi.js.map +1 -1
- package/indicators/dmi.src.js +6 -1
- package/indicators/dpo.js +1 -1
- package/indicators/dpo.js.map +1 -1
- package/indicators/dpo.src.js +20 -9
- package/indicators/ichimoku-kinko-hyo.js +1 -1
- package/indicators/ichimoku-kinko-hyo.js.map +1 -1
- package/indicators/ichimoku-kinko-hyo.src.js +35 -16
- package/indicators/indicators-all.js +199 -199
- package/indicators/indicators-all.js.map +1 -1
- package/indicators/indicators-all.src.js +754 -162
- package/indicators/indicators.js +1 -1
- package/indicators/indicators.js.map +1 -1
- package/indicators/indicators.src.js +12 -2
- package/indicators/keltner-channels.js +1 -1
- package/indicators/keltner-channels.js.map +1 -1
- package/indicators/keltner-channels.src.js +26 -1
- package/indicators/klinger.js +12 -12
- package/indicators/klinger.js.map +1 -1
- package/indicators/klinger.src.js +13 -4
- package/indicators/macd.js +1 -1
- package/indicators/macd.js.map +1 -1
- package/indicators/macd.src.js +22 -13
- package/indicators/mfi.js +1 -1
- package/indicators/mfi.js.map +1 -1
- package/indicators/mfi.src.js +24 -11
- package/indicators/momentum.js +1 -1
- package/indicators/momentum.js.map +1 -1
- package/indicators/momentum.src.js +31 -3
- package/indicators/natr.js +1 -1
- package/indicators/natr.js.map +1 -1
- package/indicators/natr.src.js +17 -3
- package/indicators/obv.js +1 -1
- package/indicators/obv.js.map +1 -1
- package/indicators/obv.src.js +11 -1
- package/indicators/pivot-points.js +1 -1
- package/indicators/pivot-points.js.map +1 -1
- package/indicators/pivot-points.src.js +32 -19
- package/indicators/ppo.js +1 -1
- package/indicators/ppo.js.map +1 -1
- package/indicators/ppo.src.js +15 -5
- package/indicators/price-channel.js +1 -1
- package/indicators/price-channel.js.map +1 -1
- package/indicators/price-channel.src.js +14 -9
- package/indicators/price-envelopes.js +1 -1
- package/indicators/price-envelopes.js.map +1 -1
- package/indicators/price-envelopes.src.js +26 -1
- package/indicators/psar.js +1 -1
- package/indicators/psar.js.map +1 -1
- package/indicators/psar.src.js +17 -4
- package/indicators/regressions.js +12 -11
- package/indicators/regressions.js.map +1 -1
- package/indicators/regressions.src.js +50 -15
- package/indicators/roc.js +1 -1
- package/indicators/roc.js.map +1 -1
- package/indicators/roc.src.js +16 -3
- package/indicators/rsi.js +1 -1
- package/indicators/rsi.js.map +1 -1
- package/indicators/rsi.src.js +21 -3
- package/indicators/slow-stochastic.js +1 -1
- package/indicators/slow-stochastic.js.map +1 -1
- package/indicators/slow-stochastic.src.js +26 -1
- package/indicators/stochastic.js +1 -1
- package/indicators/stochastic.js.map +1 -1
- package/indicators/stochastic.src.js +16 -1
- package/indicators/supertrend.js +7 -7
- package/indicators/supertrend.js.map +1 -1
- package/indicators/supertrend.src.js +18 -6
- package/indicators/tema.js +1 -1
- package/indicators/tema.src.js +1 -1
- package/indicators/trendline.js +1 -1
- package/indicators/trendline.js.map +1 -1
- package/indicators/trendline.src.js +15 -5
- package/indicators/trix.js +1 -1
- package/indicators/trix.js.map +1 -1
- package/indicators/trix.src.js +26 -1
- package/indicators/volume-by-price.js +17 -17
- package/indicators/volume-by-price.js.map +1 -1
- package/indicators/volume-by-price.src.js +38 -10
- package/indicators/vwap.js +1 -1
- package/indicators/vwap.js.map +1 -1
- package/indicators/vwap.src.js +12 -2
- package/indicators/williams-r.js +1 -1
- package/indicators/williams-r.js.map +1 -1
- package/indicators/williams-r.src.js +11 -1
- package/indicators/wma.js +1 -1
- package/indicators/wma.js.map +1 -1
- package/indicators/wma.src.js +31 -3
- package/indicators/zigzag.js +1 -1
- package/indicators/zigzag.js.map +1 -1
- package/indicators/zigzag.src.js +12 -2
- package/modules/accessibility.js +183 -182
- package/modules/accessibility.js.map +1 -1
- package/modules/accessibility.src.js +559 -554
- package/modules/annotations-advanced.d.ts +1 -1
- package/modules/annotations-advanced.js +193 -192
- package/modules/annotations-advanced.js.map +1 -1
- package/modules/annotations-advanced.src.d.ts +1 -1
- package/modules/annotations-advanced.src.js +9263 -8654
- package/modules/annotations.d.ts +1 -1
- package/modules/annotations.js +128 -126
- package/modules/annotations.js.map +1 -1
- package/modules/annotations.src.d.ts +1 -1
- package/modules/annotations.src.js +6699 -6063
- package/modules/arc-diagram.js +1 -1
- package/modules/arc-diagram.src.js +1 -1
- package/modules/arrow-symbols.js +1 -1
- package/modules/arrow-symbols.src.js +1 -1
- package/modules/boost-canvas.d.ts +19 -0
- package/modules/boost-canvas.js +81 -16
- package/modules/boost-canvas.js.map +1 -1
- package/modules/boost-canvas.src.d.ts +19 -0
- package/modules/boost-canvas.src.js +3334 -50
- package/modules/boost.d.ts +8 -26
- package/modules/boost.js +84 -77
- package/modules/boost.js.map +1 -1
- package/modules/boost.src.d.ts +8 -26
- package/modules/boost.src.js +2423 -1888
- package/modules/broken-axis.js +2 -2
- package/modules/broken-axis.js.map +1 -1
- package/modules/broken-axis.src.js +2 -2
- 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 +5 -1
- package/modules/current-date-indicator.js +1 -1
- package/modules/current-date-indicator.src.js +1 -1
- package/modules/cylinder.js +9 -9
- package/modules/cylinder.js.map +1 -1
- package/modules/cylinder.src.js +2 -2
- package/modules/data.js +1 -1
- package/modules/data.src.js +1 -1
- package/modules/datagrouping.d.ts +22 -0
- package/modules/datagrouping.js +4 -4
- package/modules/datagrouping.js.map +1 -1
- package/modules/datagrouping.src.d.ts +22 -0
- package/modules/datagrouping.src.js +66 -28
- package/modules/debugger.js +6 -5
- package/modules/debugger.js.map +1 -1
- package/modules/debugger.src.js +81 -40
- package/modules/dependency-wheel.js +12 -12
- package/modules/dependency-wheel.js.map +1 -1
- package/modules/dependency-wheel.src.js +41 -14
- 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 +5 -5
- package/modules/draggable-points.js.map +1 -1
- package/modules/draggable-points.src.js +5 -4
- package/modules/drilldown.d.ts +0 -10
- package/modules/drilldown.js +29 -29
- package/modules/drilldown.js.map +1 -1
- package/modules/drilldown.src.d.ts +0 -10
- package/modules/drilldown.src.js +12 -9
- package/modules/dumbbell.js +1 -1
- package/modules/dumbbell.src.js +1 -1
- package/modules/export-data.js +25 -24
- package/modules/export-data.js.map +1 -1
- package/modules/export-data.src.js +607 -499
- package/modules/exporting.js +38 -38
- package/modules/exporting.js.map +1 -1
- package/modules/exporting.src.js +559 -507
- package/modules/full-screen.js +8 -8
- package/modules/full-screen.js.map +1 -1
- package/modules/full-screen.src.js +76 -26
- package/modules/funnel.js +1 -1
- package/modules/funnel.src.js +1 -1
- package/modules/funnel3d.js +2 -2
- package/modules/funnel3d.js.map +1 -1
- package/modules/funnel3d.src.js +2 -2
- package/modules/gantt.js +217 -216
- package/modules/gantt.js.map +1 -1
- package/modules/gantt.src.js +1481 -1440
- package/modules/grid-axis.js +1 -1
- package/modules/grid-axis.src.js +1 -1
- package/modules/heatmap.js +1 -1
- package/modules/heatmap.js.map +1 -1
- package/modules/heatmap.src.js +10 -2
- package/modules/heikinashi.js +1 -1
- package/modules/heikinashi.src.js +1 -1
- package/modules/histogram-bellcurve.js +1 -1
- package/modules/histogram-bellcurve.src.js +1 -1
- package/modules/hollowcandlestick.js +1 -1
- package/modules/hollowcandlestick.src.js +1 -1
- package/modules/item-series.js +1 -1
- package/modules/item-series.src.js +1 -1
- package/modules/lollipop.js +6 -6
- package/modules/lollipop.js.map +1 -1
- package/modules/lollipop.src.js +37 -22
- package/modules/map.d.ts +3 -3
- package/modules/map.js +171 -171
- package/modules/map.js.map +1 -1
- package/modules/map.src.d.ts +3 -3
- package/modules/map.src.js +442 -414
- package/modules/marker-clusters.js +1 -1
- package/modules/marker-clusters.js.map +1 -1
- package/modules/marker-clusters.src.js +3 -1
- package/modules/networkgraph.js +55 -50
- package/modules/networkgraph.js.map +1 -1
- package/modules/networkgraph.src.js +2259 -1938
- package/modules/no-data-to-display.js +1 -1
- package/modules/no-data-to-display.src.js +1 -1
- package/modules/offline-exporting.js +2 -2
- package/modules/offline-exporting.src.js +2 -2
- package/modules/oldie-polyfills.js +1 -1
- package/modules/oldie-polyfills.src.js +1 -1
- package/modules/oldie.js +2 -2
- package/modules/oldie.src.js +2 -2
- package/modules/organization.js +15 -15
- package/modules/organization.js.map +1 -1
- package/modules/organization.src.js +10 -2
- package/modules/overlapping-datalabels.js +1 -1
- package/modules/overlapping-datalabels.src.js +1 -1
- package/modules/parallel-coordinates.js +11 -11
- package/modules/parallel-coordinates.js.map +1 -1
- package/modules/parallel-coordinates.src.js +13 -8
- package/modules/pareto.js +1 -1
- package/modules/pareto.src.js +1 -1
- package/modules/pathfinder.js +1 -1
- package/modules/pathfinder.src.js +1 -1
- package/modules/pattern-fill.js +1 -1
- package/modules/pattern-fill.src.js +1 -1
- package/modules/price-indicator.js +1 -1
- package/modules/price-indicator.src.js +1 -1
- package/modules/pyramid3d.js +1 -1
- package/modules/pyramid3d.src.js +1 -1
- package/modules/sankey.js +1 -1
- package/modules/sankey.js.map +1 -1
- package/modules/sankey.src.js +14 -2
- package/modules/series-label.js +5 -5
- package/modules/series-label.js.map +1 -1
- package/modules/series-label.src.js +3 -3
- package/modules/series-on-point.js +1 -1
- package/modules/series-on-point.js.map +1 -1
- package/modules/series-on-point.src.js +6 -2
- package/modules/solid-gauge.js +1 -1
- package/modules/solid-gauge.src.js +2 -2
- package/modules/sonification.d.ts +2 -2
- package/modules/sonification.js +1 -1
- package/modules/sonification.src.d.ts +2 -2
- package/modules/sonification.src.js +2 -2
- package/modules/static-scale.js +1 -1
- package/modules/static-scale.src.js +1 -1
- package/modules/stock-tools.d.ts +1 -23
- package/modules/stock-tools.js +109 -179
- package/modules/stock-tools.js.map +1 -1
- package/modules/stock-tools.src.d.ts +1 -23
- package/modules/stock-tools.src.js +2605 -6335
- package/modules/stock.d.ts +8 -0
- package/modules/stock.js +105 -105
- package/modules/stock.js.map +1 -1
- package/modules/stock.src.d.ts +8 -0
- package/modules/stock.src.js +105 -45
- package/modules/streamgraph.js +1 -1
- package/modules/streamgraph.src.js +1 -1
- package/modules/sunburst.js +72 -72
- package/modules/sunburst.js.map +1 -1
- package/modules/sunburst.src.js +38 -12
- package/modules/tilemap.js +1 -1
- package/modules/tilemap.src.js +1 -1
- package/modules/timeline.js +1 -1
- package/modules/timeline.js.map +1 -1
- package/modules/timeline.src.js +3 -1
- package/modules/treegrid.js +57 -57
- package/modules/treegrid.js.map +1 -1
- package/modules/treegrid.src.js +1022 -1014
- package/modules/treemap.js +1 -1
- package/modules/treemap.js.map +1 -1
- package/modules/treemap.src.js +8 -4
- package/modules/variable-pie.js +1 -1
- package/modules/variable-pie.src.js +1 -1
- package/modules/variwide.js +1 -1
- package/modules/variwide.src.js +1 -1
- package/modules/vector.js +2 -2
- package/modules/vector.js.map +1 -1
- package/modules/vector.src.js +3 -5
- package/modules/venn.js +1 -1
- package/modules/venn.src.js +5 -5
- package/modules/windbarb.js +1 -1
- package/modules/windbarb.src.js +1 -1
- package/modules/wordcloud.js +1 -1
- package/modules/wordcloud.src.js +3 -3
- package/modules/xrange.js +17 -17
- package/modules/xrange.js.map +1 -1
- package/modules/xrange.src.js +411 -397
- package/package.json +1 -1
- package/themes/avocado.js +1 -1
- package/themes/avocado.src.js +1 -1
- package/themes/brand-dark.js +1 -1
- package/themes/brand-dark.src.js +1 -1
- package/themes/brand-light.js +1 -1
- package/themes/brand-light.src.js +1 -1
- 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.src.js +1 -1
- package/themes/gray.js +1 -1
- package/themes/gray.src.js +1 -1
- package/themes/grid-light.js +1 -1
- package/themes/grid-light.src.js +1 -1
- package/themes/grid.js +1 -1
- package/themes/grid.src.js +1 -1
- 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/Core/Axis/StackingAxis.js +0 -215
- package/es-modules/Core/Axis/TreeGridAxis.js +0 -720
- package/es-modules/Core/Axis/TreeGridTick.js +0 -317
- package/es-modules/Extensions/Annotations/AnnotationsDefaults.js +0 -0
- package/es-modules/Extensions/Annotations/Mixins/MarkerMixin.js +0 -179
- package/es-modules/Extensions/Annotations/Popup.js +0 -1123
- package/es-modules/Extensions/Boost/BoostAttach.js +0 -154
- package/es-modules/Extensions/Boost/BoostInit.js +0 -324
- package/es-modules/Extensions/Boost/BoostOptions.js +0 -245
- package/es-modules/Extensions/Boost/BoostOverrides.js +0 -386
- package/es-modules/Extensions/Boost/BoostUtils.js +0 -255
- package/es-modules/Extensions/Boost/WGLVBuffer.js +0 -153
- package/es-modules/Extensions/Stacking.js +0 -517
- package/es-modules/Series/Networkgraph/DraggableNodes.js +0 -132
- package/es-modules/Series/Networkgraph/Integrations.js +0 -348
- package/es-modules/Series/Networkgraph/Networkgraph.js +0 -1180
- package/es-modules/Series/XRange/XRangeComposition.js +0 -49
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Highcharts JS v10.2.
|
|
2
|
+
* @license Highcharts JS v10.2.1 (2022-08-29)
|
|
3
3
|
*
|
|
4
4
|
* Accessibility module
|
|
5
5
|
*
|
|
@@ -38,421 +38,113 @@
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
-
_registerModule(_modules, 'Accessibility/
|
|
41
|
+
_registerModule(_modules, 'Accessibility/Utils/HTMLUtilities.js', [_modules['Core/Globals.js'], _modules['Core/Utilities.js']], function (H, U) {
|
|
42
42
|
/* *
|
|
43
43
|
*
|
|
44
|
-
*
|
|
44
|
+
* (c) 2009-2021 Øystein Moseng
|
|
45
45
|
*
|
|
46
|
-
*
|
|
47
|
-
* Author: Øystein Moseng
|
|
46
|
+
* Utility functions for accessibility module.
|
|
48
47
|
*
|
|
49
48
|
* License: www.highcharts.com/license
|
|
50
49
|
*
|
|
51
50
|
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
52
51
|
*
|
|
53
52
|
* */
|
|
54
|
-
var
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
var doc = H.doc,
|
|
54
|
+
win = H.win;
|
|
55
|
+
var css = U.css;
|
|
57
56
|
/* *
|
|
58
57
|
*
|
|
59
|
-
*
|
|
58
|
+
* Functions
|
|
60
59
|
*
|
|
61
60
|
* */
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
*
|
|
73
|
-
* */
|
|
74
|
-
var composedClasses = [];
|
|
75
|
-
/* *
|
|
76
|
-
*
|
|
77
|
-
* Functions
|
|
78
|
-
*
|
|
79
|
-
* */
|
|
80
|
-
/* eslint-disable valid-jsdoc */
|
|
81
|
-
/**
|
|
82
|
-
* @private
|
|
83
|
-
*/
|
|
84
|
-
function compose(ChartClass) {
|
|
85
|
-
if (composedClasses.indexOf(ChartClass) === -1) {
|
|
86
|
-
composedClasses.push(ChartClass);
|
|
87
|
-
var chartProto = ChartClass.prototype;
|
|
88
|
-
chartProto.langFormat = langFormat;
|
|
89
|
-
}
|
|
90
|
-
return ChartClass;
|
|
61
|
+
/* eslint-disable valid-jsdoc */
|
|
62
|
+
/**
|
|
63
|
+
* @private
|
|
64
|
+
* @param {Highcharts.HTMLDOMElement} el
|
|
65
|
+
* @param {string} className
|
|
66
|
+
* @return {void}
|
|
67
|
+
*/
|
|
68
|
+
function addClass(el, className) {
|
|
69
|
+
if (el.classList) {
|
|
70
|
+
el.classList.add(className);
|
|
91
71
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
if
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
72
|
+
else if (el.className.indexOf(className) < 0) {
|
|
73
|
+
// Note: Dumb check for class name exists, should be fine for practical
|
|
74
|
+
// use cases, but will return false positives if the element has a class
|
|
75
|
+
// that contains the className.
|
|
76
|
+
el.className += ' ' + className;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* @private
|
|
81
|
+
* @param {Highcharts.HTMLDOMElement} el
|
|
82
|
+
* @param {string} className
|
|
83
|
+
* @return {void}
|
|
84
|
+
*/
|
|
85
|
+
function removeClass(el, className) {
|
|
86
|
+
if (el.classList) {
|
|
87
|
+
el.classList.remove(className);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
// Note: Dumb logic that will break if the element has a class name that
|
|
91
|
+
// consists of className plus something else.
|
|
92
|
+
el.className = el.className.replace(new RegExp(className, 'g'), '');
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Utility function to clone a mouse event for re-dispatching.
|
|
97
|
+
* @private
|
|
98
|
+
*/
|
|
99
|
+
function cloneMouseEvent(e) {
|
|
100
|
+
if (typeof win.MouseEvent === 'function') {
|
|
101
|
+
return new win.MouseEvent(e.type, e);
|
|
102
|
+
}
|
|
103
|
+
// No MouseEvent support, try using initMouseEvent
|
|
104
|
+
if (doc.createEvent) {
|
|
105
|
+
var evt = doc.createEvent('MouseEvent');
|
|
106
|
+
if (evt.initMouseEvent) {
|
|
107
|
+
evt.initMouseEvent(e.type, e.bubbles, // #10561, #12161
|
|
108
|
+
e.cancelable, e.view || win, e.detail, e.screenX, e.screenY, e.clientX, e.clientY, e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, e.button, e.relatedTarget);
|
|
109
|
+
return evt;
|
|
127
110
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
result = pluralArguments[1];
|
|
111
|
+
}
|
|
112
|
+
return getFakeMouseEvent(e.type);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Utility function to clone a touch event for re-dispatching.
|
|
116
|
+
* @private
|
|
117
|
+
*/
|
|
118
|
+
function cloneTouchEvent(e) {
|
|
119
|
+
var touchListToTouchArray = function (l) {
|
|
120
|
+
var touchArray = [];
|
|
121
|
+
for (var i = 0; i < l.length; ++i) {
|
|
122
|
+
var item = l.item(i);
|
|
123
|
+
if (item) {
|
|
124
|
+
touchArray.push(item);
|
|
143
125
|
}
|
|
144
|
-
return result ? stringTrim(result) : '';
|
|
145
126
|
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
if (typeof val === 'undefined') {
|
|
166
|
-
val = arr[arr.length - 1];
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
return typeof val !== 'undefined' ? val : '';
|
|
127
|
+
return touchArray;
|
|
128
|
+
};
|
|
129
|
+
if (typeof win.TouchEvent === 'function') {
|
|
130
|
+
var newEvent = new win.TouchEvent(e.type, {
|
|
131
|
+
touches: touchListToTouchArray(e.touches),
|
|
132
|
+
targetTouches: touchListToTouchArray(e.targetTouches),
|
|
133
|
+
changedTouches: touchListToTouchArray(e.changedTouches),
|
|
134
|
+
ctrlKey: e.ctrlKey,
|
|
135
|
+
shiftKey: e.shiftKey,
|
|
136
|
+
altKey: e.altKey,
|
|
137
|
+
metaKey: e.metaKey,
|
|
138
|
+
bubbles: e.bubbles,
|
|
139
|
+
cancelable: e.cancelable,
|
|
140
|
+
composed: e.composed,
|
|
141
|
+
detail: e.detail,
|
|
142
|
+
view: e.view
|
|
143
|
+
});
|
|
144
|
+
if (e.defaultPrevented) {
|
|
145
|
+
newEvent.preventDefault();
|
|
171
146
|
}
|
|
172
|
-
|
|
173
|
-
return '{' + statement + '}';
|
|
174
|
-
}
|
|
175
|
-
/* eslint-disable max-len */
|
|
176
|
-
/**
|
|
177
|
-
* i18n formatting function. Extends Highcharts.format() functionality by
|
|
178
|
-
* also handling arrays and plural conditionals. Arrays can be indexed as
|
|
179
|
-
* follows:
|
|
180
|
-
*
|
|
181
|
-
* - Format: 'This is the first index: {myArray[0]}. The last: {myArray[-1]}.'
|
|
182
|
-
*
|
|
183
|
-
* - Context: { myArray: [0, 1, 2, 3, 4, 5] }
|
|
184
|
-
*
|
|
185
|
-
* - Result: 'This is the first index: 0. The last: 5.'
|
|
186
|
-
*
|
|
187
|
-
*
|
|
188
|
-
* They can also be iterated using the #each() function. This will repeat
|
|
189
|
-
* the contents of the bracket expression for each element. Example:
|
|
190
|
-
*
|
|
191
|
-
* - Format: 'List contains: {#each(myArray)cm }'
|
|
192
|
-
*
|
|
193
|
-
* - Context: { myArray: [0, 1, 2] }
|
|
194
|
-
*
|
|
195
|
-
* - Result: 'List contains: 0cm 1cm 2cm '
|
|
196
|
-
*
|
|
197
|
-
*
|
|
198
|
-
* The #each() function optionally takes a length parameter. If positive,
|
|
199
|
-
* this parameter specifies the max number of elements to iterate through.
|
|
200
|
-
* If negative, the function will subtract the number from the length of the
|
|
201
|
-
* array. Use this to stop iterating before the array ends. Example:
|
|
202
|
-
*
|
|
203
|
-
* - Format: 'List contains: {#each(myArray, -1) }and {myArray[-1]}.'
|
|
204
|
-
*
|
|
205
|
-
* - Context: { myArray: [0, 1, 2, 3] }
|
|
206
|
-
*
|
|
207
|
-
* - Result: 'List contains: 0, 1, 2, and 3.'
|
|
208
|
-
*
|
|
209
|
-
*
|
|
210
|
-
* Use the #plural() function to pick a string depending on whether or not a
|
|
211
|
-
* context object is 1. Arguments are #plural(obj, plural, singular).
|
|
212
|
-
* Example:
|
|
213
|
-
*
|
|
214
|
-
* - Format: 'Has {numPoints} {#plural(numPoints, points, point}.'
|
|
215
|
-
*
|
|
216
|
-
* - Context: { numPoints: 5 }
|
|
217
|
-
*
|
|
218
|
-
* - Result: 'Has 5 points.'
|
|
219
|
-
*
|
|
220
|
-
*
|
|
221
|
-
* Optionally there are additional parameters for dual and none:
|
|
222
|
-
* #plural(obj, plural, singular, dual, none). Example:
|
|
223
|
-
*
|
|
224
|
-
* - Format: 'Has {#plural(numPoints, many points, one point, two points,
|
|
225
|
-
* none}.'
|
|
226
|
-
*
|
|
227
|
-
* - Context: { numPoints: 2 }
|
|
228
|
-
*
|
|
229
|
-
* - Result: 'Has two points.'
|
|
230
|
-
*
|
|
231
|
-
*
|
|
232
|
-
* The dual or none parameters will take precedence if they are supplied.
|
|
233
|
-
*
|
|
234
|
-
* @requires modules/accessibility
|
|
235
|
-
*
|
|
236
|
-
* @function Highcharts.i18nFormat
|
|
237
|
-
*
|
|
238
|
-
* @param {string} formatString
|
|
239
|
-
* The string to format.
|
|
240
|
-
*
|
|
241
|
-
* @param {Highcharts.Dictionary<*>} context
|
|
242
|
-
* Context to apply to the format string.
|
|
243
|
-
*
|
|
244
|
-
* @param {Highcharts.Chart} chart
|
|
245
|
-
* A `Chart` instance with a time object and numberFormatter, passed on to
|
|
246
|
-
* format().
|
|
247
|
-
*
|
|
248
|
-
* @return {string}
|
|
249
|
-
* The formatted string.
|
|
250
|
-
*/
|
|
251
|
-
function i18nFormat(formatString, context, chart) {
|
|
252
|
-
var getFirstBracketStatement = function (sourceStr, offset) {
|
|
253
|
-
var str = sourceStr.slice(offset || 0), startBracket = str.indexOf('{'), endBracket = str.indexOf('}');
|
|
254
|
-
if (startBracket > -1 && endBracket > startBracket) {
|
|
255
|
-
return {
|
|
256
|
-
statement: str.substring(startBracket + 1, endBracket),
|
|
257
|
-
begin: offset + startBracket + 1,
|
|
258
|
-
end: offset + endBracket
|
|
259
|
-
};
|
|
260
|
-
}
|
|
261
|
-
}, tokens = [];
|
|
262
|
-
var bracketRes,
|
|
263
|
-
constRes,
|
|
264
|
-
cursor = 0;
|
|
265
|
-
// Tokenize format string into bracket statements and constants
|
|
266
|
-
do {
|
|
267
|
-
bracketRes = getFirstBracketStatement(formatString, cursor);
|
|
268
|
-
constRes = formatString.substring(cursor, bracketRes && bracketRes.begin - 1);
|
|
269
|
-
// If we have constant content before this bracket statement, add it
|
|
270
|
-
if (constRes.length) {
|
|
271
|
-
tokens.push({
|
|
272
|
-
value: constRes,
|
|
273
|
-
type: 'constant'
|
|
274
|
-
});
|
|
275
|
-
}
|
|
276
|
-
// Add the bracket statement
|
|
277
|
-
if (bracketRes) {
|
|
278
|
-
tokens.push({
|
|
279
|
-
value: bracketRes.statement,
|
|
280
|
-
type: 'statement'
|
|
281
|
-
});
|
|
282
|
-
}
|
|
283
|
-
cursor = bracketRes ? bracketRes.end + 1 : cursor + 1;
|
|
284
|
-
} while (bracketRes);
|
|
285
|
-
// Perform the formatting. The formatArrayStatement function returns
|
|
286
|
-
// the statement in brackets if it is not an array statement, which
|
|
287
|
-
// means it gets picked up by format below.
|
|
288
|
-
tokens.forEach(function (token) {
|
|
289
|
-
if (token.type === 'statement') {
|
|
290
|
-
token.value = formatExtendedStatement(token.value, context);
|
|
291
|
-
}
|
|
292
|
-
});
|
|
293
|
-
// Join string back together and pass to format to pick up non-array
|
|
294
|
-
// statements.
|
|
295
|
-
return format(tokens.reduce(function (acc, cur) { return acc + cur.value; }, ''), context, chart);
|
|
296
|
-
}
|
|
297
|
-
A11yI18nComposition.i18nFormat = i18nFormat;
|
|
298
|
-
/* eslint-enable max-len */
|
|
299
|
-
/**
|
|
300
|
-
* Apply context to a format string from lang options of the chart.
|
|
301
|
-
*
|
|
302
|
-
* @requires modules/accessibility
|
|
303
|
-
*
|
|
304
|
-
* @function Highcharts.Chart#langFormat
|
|
305
|
-
*
|
|
306
|
-
* @param {string} langKey
|
|
307
|
-
* Key (using dot notation) into lang option structure.
|
|
308
|
-
*
|
|
309
|
-
* @param {Highcharts.Dictionary<*>} context
|
|
310
|
-
* Context to apply to the format string.
|
|
311
|
-
*
|
|
312
|
-
* @return {string}
|
|
313
|
-
* The formatted string.
|
|
314
|
-
*/
|
|
315
|
-
function langFormat(langKey, context) {
|
|
316
|
-
var keys = langKey.split('.');
|
|
317
|
-
var formatString = this.options.lang,
|
|
318
|
-
i = 0;
|
|
319
|
-
for (; i < keys.length; ++i) {
|
|
320
|
-
formatString = formatString && formatString[keys[i]];
|
|
321
|
-
}
|
|
322
|
-
return typeof formatString === 'string' ?
|
|
323
|
-
i18nFormat(formatString, context, this) : '';
|
|
324
|
-
}
|
|
325
|
-
/**
|
|
326
|
-
* String trim that works for IE6-8 as well.
|
|
327
|
-
*
|
|
328
|
-
* @private
|
|
329
|
-
* @function stringTrim
|
|
330
|
-
*
|
|
331
|
-
* @param {string} str
|
|
332
|
-
* The input string
|
|
333
|
-
*
|
|
334
|
-
* @return {string}
|
|
335
|
-
* The trimmed string
|
|
336
|
-
*/
|
|
337
|
-
function stringTrim(str) {
|
|
338
|
-
return str.trim && str.trim() || str.replace(/^\s+|\s+$/g, '');
|
|
339
|
-
}
|
|
340
|
-
})(A11yI18nComposition || (A11yI18nComposition = {}));
|
|
341
|
-
/* *
|
|
342
|
-
*
|
|
343
|
-
* Default Export
|
|
344
|
-
*
|
|
345
|
-
* */
|
|
346
|
-
|
|
347
|
-
return A11yI18nComposition;
|
|
348
|
-
});
|
|
349
|
-
_registerModule(_modules, 'Accessibility/Utils/HTMLUtilities.js', [_modules['Core/Globals.js'], _modules['Core/Utilities.js']], function (H, U) {
|
|
350
|
-
/* *
|
|
351
|
-
*
|
|
352
|
-
* (c) 2009-2021 Øystein Moseng
|
|
353
|
-
*
|
|
354
|
-
* Utility functions for accessibility module.
|
|
355
|
-
*
|
|
356
|
-
* License: www.highcharts.com/license
|
|
357
|
-
*
|
|
358
|
-
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
359
|
-
*
|
|
360
|
-
* */
|
|
361
|
-
var doc = H.doc,
|
|
362
|
-
win = H.win;
|
|
363
|
-
var css = U.css;
|
|
364
|
-
/* *
|
|
365
|
-
*
|
|
366
|
-
* Functions
|
|
367
|
-
*
|
|
368
|
-
* */
|
|
369
|
-
/* eslint-disable valid-jsdoc */
|
|
370
|
-
/**
|
|
371
|
-
* @private
|
|
372
|
-
* @param {Highcharts.HTMLDOMElement} el
|
|
373
|
-
* @param {string} className
|
|
374
|
-
* @return {void}
|
|
375
|
-
*/
|
|
376
|
-
function addClass(el, className) {
|
|
377
|
-
if (el.classList) {
|
|
378
|
-
el.classList.add(className);
|
|
379
|
-
}
|
|
380
|
-
else if (el.className.indexOf(className) < 0) {
|
|
381
|
-
// Note: Dumb check for class name exists, should be fine for practical
|
|
382
|
-
// use cases, but will return false positives if the element has a class
|
|
383
|
-
// that contains the className.
|
|
384
|
-
el.className += ' ' + className;
|
|
385
|
-
}
|
|
386
|
-
}
|
|
387
|
-
/**
|
|
388
|
-
* @private
|
|
389
|
-
* @param {Highcharts.HTMLDOMElement} el
|
|
390
|
-
* @param {string} className
|
|
391
|
-
* @return {void}
|
|
392
|
-
*/
|
|
393
|
-
function removeClass(el, className) {
|
|
394
|
-
if (el.classList) {
|
|
395
|
-
el.classList.remove(className);
|
|
396
|
-
}
|
|
397
|
-
else {
|
|
398
|
-
// Note: Dumb logic that will break if the element has a class name that
|
|
399
|
-
// consists of className plus something else.
|
|
400
|
-
el.className = el.className.replace(new RegExp(className, 'g'), '');
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
/**
|
|
404
|
-
* Utility function to clone a mouse event for re-dispatching.
|
|
405
|
-
* @private
|
|
406
|
-
*/
|
|
407
|
-
function cloneMouseEvent(e) {
|
|
408
|
-
if (typeof win.MouseEvent === 'function') {
|
|
409
|
-
return new win.MouseEvent(e.type, e);
|
|
410
|
-
}
|
|
411
|
-
// No MouseEvent support, try using initMouseEvent
|
|
412
|
-
if (doc.createEvent) {
|
|
413
|
-
var evt = doc.createEvent('MouseEvent');
|
|
414
|
-
if (evt.initMouseEvent) {
|
|
415
|
-
evt.initMouseEvent(e.type, e.bubbles, // #10561, #12161
|
|
416
|
-
e.cancelable, e.view || win, e.detail, e.screenX, e.screenY, e.clientX, e.clientY, e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, e.button, e.relatedTarget);
|
|
417
|
-
return evt;
|
|
418
|
-
}
|
|
419
|
-
}
|
|
420
|
-
return getFakeMouseEvent(e.type);
|
|
421
|
-
}
|
|
422
|
-
/**
|
|
423
|
-
* Utility function to clone a touch event for re-dispatching.
|
|
424
|
-
* @private
|
|
425
|
-
*/
|
|
426
|
-
function cloneTouchEvent(e) {
|
|
427
|
-
var touchListToTouchArray = function (l) {
|
|
428
|
-
var touchArray = [];
|
|
429
|
-
for (var i = 0; i < l.length; ++i) {
|
|
430
|
-
var item = l.item(i);
|
|
431
|
-
if (item) {
|
|
432
|
-
touchArray.push(item);
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
return touchArray;
|
|
436
|
-
};
|
|
437
|
-
if (typeof win.TouchEvent === 'function') {
|
|
438
|
-
var newEvent = new win.TouchEvent(e.type, {
|
|
439
|
-
touches: touchListToTouchArray(e.touches),
|
|
440
|
-
targetTouches: touchListToTouchArray(e.targetTouches),
|
|
441
|
-
changedTouches: touchListToTouchArray(e.changedTouches),
|
|
442
|
-
ctrlKey: e.ctrlKey,
|
|
443
|
-
shiftKey: e.shiftKey,
|
|
444
|
-
altKey: e.altKey,
|
|
445
|
-
metaKey: e.metaKey,
|
|
446
|
-
bubbles: e.bubbles,
|
|
447
|
-
cancelable: e.cancelable,
|
|
448
|
-
composed: e.composed,
|
|
449
|
-
detail: e.detail,
|
|
450
|
-
view: e.view
|
|
451
|
-
});
|
|
452
|
-
if (e.defaultPrevented) {
|
|
453
|
-
newEvent.preventDefault();
|
|
454
|
-
}
|
|
455
|
-
return newEvent;
|
|
147
|
+
return newEvent;
|
|
456
148
|
}
|
|
457
149
|
var fakeEvt = cloneMouseEvent(e);
|
|
458
150
|
fakeEvt.touches = e.touches;
|
|
@@ -501,158 +193,466 @@
|
|
|
501
193
|
clientY: pos.y
|
|
502
194
|
});
|
|
503
195
|
}
|
|
504
|
-
// No MouseEvent support, try using initMouseEvent
|
|
505
|
-
if (doc.createEvent) {
|
|
506
|
-
var evt = doc.createEvent('MouseEvent');
|
|
507
|
-
if (evt.initMouseEvent) {
|
|
508
|
-
evt.initMouseEvent(type, true, // Bubble
|
|
509
|
-
true, // Cancel
|
|
510
|
-
win, // View
|
|
511
|
-
type === 'click' ? 1 : 0, // Detail
|
|
512
|
-
// Coords
|
|
513
|
-
pos.x, pos.y, pos.x, pos.y,
|
|
514
|
-
// Pressed keys
|
|
515
|
-
false, false, false, false, 0, // button
|
|
516
|
-
null // related target
|
|
517
|
-
);
|
|
518
|
-
return evt;
|
|
519
|
-
}
|
|
520
|
-
}
|
|
521
|
-
return { type: type };
|
|
522
|
-
}
|
|
523
|
-
/**
|
|
524
|
-
* Get an appropriate heading level for an element. Corresponds to the
|
|
525
|
-
* heading level below the previous heading in the DOM.
|
|
526
|
-
*
|
|
527
|
-
* Note: Only detects previous headings in the DOM that are siblings,
|
|
528
|
-
* ancestors, or previous siblings of ancestors. Headings that are nested below
|
|
529
|
-
* siblings of ancestors (cousins et.al) are not picked up. This is because it
|
|
530
|
-
* is ambiguous whether or not the nesting is for layout purposes or indicates a
|
|
531
|
-
* separate section.
|
|
532
|
-
*
|
|
533
|
-
* @private
|
|
534
|
-
* @param {Highcharts.HTMLDOMElement} [element]
|
|
535
|
-
* @return {string} The heading tag name (h1, h2 etc).
|
|
536
|
-
* If no nearest heading is found, "p" is returned.
|
|
537
|
-
*/
|
|
538
|
-
function getHeadingTagNameForElement(element) {
|
|
539
|
-
var getIncreasedHeadingLevel = function (tagName) {
|
|
540
|
-
var headingLevel = parseInt(tagName.slice(1), 10),
|
|
541
|
-
newLevel = Math.min(6,
|
|
542
|
-
headingLevel + 1);
|
|
543
|
-
return 'h' + newLevel;
|
|
544
|
-
};
|
|
545
|
-
var isHeading = function (tagName) { return /H[1-6]/.test(tagName); };
|
|
546
|
-
var getPreviousSiblingsHeading = function (el) {
|
|
547
|
-
var sibling = el;
|
|
548
|
-
while (sibling = sibling.previousSibling) { // eslint-disable-line
|
|
549
|
-
var tagName = sibling.tagName || '';
|
|
550
|
-
if (isHeading(tagName)) {
|
|
551
|
-
return tagName;
|
|
552
|
-
}
|
|
553
|
-
}
|
|
554
|
-
return '';
|
|
555
|
-
};
|
|
556
|
-
var getHeadingRecursive = function (el) {
|
|
557
|
-
var prevSiblingsHeading = getPreviousSiblingsHeading(el);
|
|
558
|
-
if (prevSiblingsHeading) {
|
|
559
|
-
return getIncreasedHeadingLevel(prevSiblingsHeading);
|
|
560
|
-
}
|
|
561
|
-
// No previous siblings are headings, try parent node
|
|
562
|
-
var parent = el.parentElement;
|
|
563
|
-
if (!parent) {
|
|
564
|
-
return 'p';
|
|
565
|
-
}
|
|
566
|
-
var parentTagName = parent.tagName;
|
|
567
|
-
if (isHeading(parentTagName)) {
|
|
568
|
-
return getIncreasedHeadingLevel(parentTagName);
|
|
196
|
+
// No MouseEvent support, try using initMouseEvent
|
|
197
|
+
if (doc.createEvent) {
|
|
198
|
+
var evt = doc.createEvent('MouseEvent');
|
|
199
|
+
if (evt.initMouseEvent) {
|
|
200
|
+
evt.initMouseEvent(type, true, // Bubble
|
|
201
|
+
true, // Cancel
|
|
202
|
+
win, // View
|
|
203
|
+
type === 'click' ? 1 : 0, // Detail
|
|
204
|
+
// Coords
|
|
205
|
+
pos.x, pos.y, pos.x, pos.y,
|
|
206
|
+
// Pressed keys
|
|
207
|
+
false, false, false, false, 0, // button
|
|
208
|
+
null // related target
|
|
209
|
+
);
|
|
210
|
+
return evt;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return { type: type };
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Get an appropriate heading level for an element. Corresponds to the
|
|
217
|
+
* heading level below the previous heading in the DOM.
|
|
218
|
+
*
|
|
219
|
+
* Note: Only detects previous headings in the DOM that are siblings,
|
|
220
|
+
* ancestors, or previous siblings of ancestors. Headings that are nested below
|
|
221
|
+
* siblings of ancestors (cousins et.al) are not picked up. This is because it
|
|
222
|
+
* is ambiguous whether or not the nesting is for layout purposes or indicates a
|
|
223
|
+
* separate section.
|
|
224
|
+
*
|
|
225
|
+
* @private
|
|
226
|
+
* @param {Highcharts.HTMLDOMElement} [element]
|
|
227
|
+
* @return {string} The heading tag name (h1, h2 etc).
|
|
228
|
+
* If no nearest heading is found, "p" is returned.
|
|
229
|
+
*/
|
|
230
|
+
function getHeadingTagNameForElement(element) {
|
|
231
|
+
var getIncreasedHeadingLevel = function (tagName) {
|
|
232
|
+
var headingLevel = parseInt(tagName.slice(1), 10),
|
|
233
|
+
newLevel = Math.min(6,
|
|
234
|
+
headingLevel + 1);
|
|
235
|
+
return 'h' + newLevel;
|
|
236
|
+
};
|
|
237
|
+
var isHeading = function (tagName) { return /H[1-6]/.test(tagName); };
|
|
238
|
+
var getPreviousSiblingsHeading = function (el) {
|
|
239
|
+
var sibling = el;
|
|
240
|
+
while (sibling = sibling.previousSibling) { // eslint-disable-line
|
|
241
|
+
var tagName = sibling.tagName || '';
|
|
242
|
+
if (isHeading(tagName)) {
|
|
243
|
+
return tagName;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
return '';
|
|
247
|
+
};
|
|
248
|
+
var getHeadingRecursive = function (el) {
|
|
249
|
+
var prevSiblingsHeading = getPreviousSiblingsHeading(el);
|
|
250
|
+
if (prevSiblingsHeading) {
|
|
251
|
+
return getIncreasedHeadingLevel(prevSiblingsHeading);
|
|
252
|
+
}
|
|
253
|
+
// No previous siblings are headings, try parent node
|
|
254
|
+
var parent = el.parentElement;
|
|
255
|
+
if (!parent) {
|
|
256
|
+
return 'p';
|
|
257
|
+
}
|
|
258
|
+
var parentTagName = parent.tagName;
|
|
259
|
+
if (isHeading(parentTagName)) {
|
|
260
|
+
return getIncreasedHeadingLevel(parentTagName);
|
|
261
|
+
}
|
|
262
|
+
return getHeadingRecursive(parent);
|
|
263
|
+
};
|
|
264
|
+
return getHeadingRecursive(element);
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Remove an element from the DOM.
|
|
268
|
+
* @private
|
|
269
|
+
* @param {Highcharts.HTMLDOMElement|Highcharts.SVGDOMElement} [element]
|
|
270
|
+
* @return {void}
|
|
271
|
+
*/
|
|
272
|
+
function removeElement(element) {
|
|
273
|
+
if (element && element.parentNode) {
|
|
274
|
+
element.parentNode.removeChild(element);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Remove all child nodes from an element.
|
|
279
|
+
* @private
|
|
280
|
+
* @param {Highcharts.HTMLDOMElement|Highcharts.SVGDOMElement} [element]
|
|
281
|
+
* @return {void}
|
|
282
|
+
*/
|
|
283
|
+
function removeChildNodes(element) {
|
|
284
|
+
while (element.lastChild) {
|
|
285
|
+
element.removeChild(element.lastChild);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Utility function. Reverses child nodes of a DOM element.
|
|
290
|
+
* @private
|
|
291
|
+
*/
|
|
292
|
+
function reverseChildNodes(node) {
|
|
293
|
+
var i = node.childNodes.length;
|
|
294
|
+
while (i--) {
|
|
295
|
+
node.appendChild(node.childNodes[i]);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Used for aria-label attributes, painting on a canvas will fail if the
|
|
300
|
+
* text contains tags.
|
|
301
|
+
* @private
|
|
302
|
+
*/
|
|
303
|
+
function stripHTMLTagsFromString(str) {
|
|
304
|
+
return typeof str === 'string' ?
|
|
305
|
+
str.replace(/<\/?[^>]+(>|$)/g, '') : str;
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Utility function for hiding an element visually, but still keeping it
|
|
309
|
+
* available to screen reader users.
|
|
310
|
+
* @private
|
|
311
|
+
*/
|
|
312
|
+
function visuallyHideElement(element) {
|
|
313
|
+
css(element, {
|
|
314
|
+
position: 'absolute',
|
|
315
|
+
width: '1px',
|
|
316
|
+
height: '1px',
|
|
317
|
+
overflow: 'hidden',
|
|
318
|
+
whiteSpace: 'nowrap',
|
|
319
|
+
clip: 'rect(1px, 1px, 1px, 1px)',
|
|
320
|
+
marginTop: '-3px',
|
|
321
|
+
'-ms-filter': 'progid:DXImageTransform.Microsoft.Alpha(Opacity=1)',
|
|
322
|
+
filter: 'alpha(opacity=1)',
|
|
323
|
+
opacity: 0.01
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
/* *
|
|
327
|
+
*
|
|
328
|
+
* Default Export
|
|
329
|
+
*
|
|
330
|
+
* */
|
|
331
|
+
var HTMLUtilities = {
|
|
332
|
+
addClass: addClass,
|
|
333
|
+
cloneMouseEvent: cloneMouseEvent,
|
|
334
|
+
cloneTouchEvent: cloneTouchEvent,
|
|
335
|
+
escapeStringForHTML: escapeStringForHTML,
|
|
336
|
+
getElement: getElement,
|
|
337
|
+
getFakeMouseEvent: getFakeMouseEvent,
|
|
338
|
+
getHeadingTagNameForElement: getHeadingTagNameForElement,
|
|
339
|
+
removeChildNodes: removeChildNodes,
|
|
340
|
+
removeClass: removeClass,
|
|
341
|
+
removeElement: removeElement,
|
|
342
|
+
reverseChildNodes: reverseChildNodes,
|
|
343
|
+
stripHTMLTagsFromString: stripHTMLTagsFromString,
|
|
344
|
+
visuallyHideElement: visuallyHideElement
|
|
345
|
+
};
|
|
346
|
+
|
|
347
|
+
return HTMLUtilities;
|
|
348
|
+
});
|
|
349
|
+
_registerModule(_modules, 'Accessibility/A11yI18n.js', [_modules['Core/FormatUtilities.js'], _modules['Core/Utilities.js']], function (F, U) {
|
|
350
|
+
/* *
|
|
351
|
+
*
|
|
352
|
+
* Accessibility module - internationalization support
|
|
353
|
+
*
|
|
354
|
+
* (c) 2010-2021 Highsoft AS
|
|
355
|
+
* Author: Øystein Moseng
|
|
356
|
+
*
|
|
357
|
+
* License: www.highcharts.com/license
|
|
358
|
+
*
|
|
359
|
+
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
360
|
+
*
|
|
361
|
+
* */
|
|
362
|
+
var format = F.format;
|
|
363
|
+
var getNestedProperty = U.getNestedProperty,
|
|
364
|
+
pick = U.pick;
|
|
365
|
+
/* *
|
|
366
|
+
*
|
|
367
|
+
* Composition
|
|
368
|
+
*
|
|
369
|
+
* */
|
|
370
|
+
var A11yI18nComposition;
|
|
371
|
+
(function (A11yI18nComposition) {
|
|
372
|
+
/* *
|
|
373
|
+
*
|
|
374
|
+
* Declarations
|
|
375
|
+
*
|
|
376
|
+
* */
|
|
377
|
+
/* *
|
|
378
|
+
*
|
|
379
|
+
* Constants
|
|
380
|
+
*
|
|
381
|
+
* */
|
|
382
|
+
var composedClasses = [];
|
|
383
|
+
/* *
|
|
384
|
+
*
|
|
385
|
+
* Functions
|
|
386
|
+
*
|
|
387
|
+
* */
|
|
388
|
+
/* eslint-disable valid-jsdoc */
|
|
389
|
+
/**
|
|
390
|
+
* @private
|
|
391
|
+
*/
|
|
392
|
+
function compose(ChartClass) {
|
|
393
|
+
if (composedClasses.indexOf(ChartClass) === -1) {
|
|
394
|
+
composedClasses.push(ChartClass);
|
|
395
|
+
var chartProto = ChartClass.prototype;
|
|
396
|
+
chartProto.langFormat = langFormat;
|
|
397
|
+
}
|
|
398
|
+
return ChartClass;
|
|
399
|
+
}
|
|
400
|
+
A11yI18nComposition.compose = compose;
|
|
401
|
+
/**
|
|
402
|
+
* i18n utility function. Format a single array or plural statement in a
|
|
403
|
+
* format string. If the statement is not an array or plural statement,
|
|
404
|
+
* returns the statement within brackets. Invalid array statements return
|
|
405
|
+
* an empty string.
|
|
406
|
+
*
|
|
407
|
+
* @private
|
|
408
|
+
* @function formatExtendedStatement
|
|
409
|
+
* @param {string} statement
|
|
410
|
+
* @param {Highcharts.Dictionary<*>} ctx
|
|
411
|
+
* Context to apply to the format string.
|
|
412
|
+
*/
|
|
413
|
+
function formatExtendedStatement(statement, ctx) {
|
|
414
|
+
var eachStart = statement.indexOf('#each('), pluralStart = statement.indexOf('#plural('), indexStart = statement.indexOf('['), indexEnd = statement.indexOf(']');
|
|
415
|
+
var arr,
|
|
416
|
+
result;
|
|
417
|
+
// Dealing with an each-function?
|
|
418
|
+
if (eachStart > -1) {
|
|
419
|
+
var eachEnd = statement.slice(eachStart).indexOf(')') + eachStart, preEach = statement.substring(0, eachStart), postEach = statement.substring(eachEnd + 1), eachStatement = statement.substring(eachStart + 6, eachEnd), eachArguments = eachStatement.split(',');
|
|
420
|
+
var lenArg = Number(eachArguments[1]),
|
|
421
|
+
len = void 0;
|
|
422
|
+
result = '';
|
|
423
|
+
arr = getNestedProperty(eachArguments[0], ctx);
|
|
424
|
+
if (arr) {
|
|
425
|
+
lenArg = isNaN(lenArg) ? arr.length : lenArg;
|
|
426
|
+
len = lenArg < 0 ?
|
|
427
|
+
arr.length + lenArg :
|
|
428
|
+
Math.min(lenArg, arr.length); // Overshoot
|
|
429
|
+
// Run through the array for the specified length
|
|
430
|
+
for (var i = 0; i < len; ++i) {
|
|
431
|
+
result += preEach + arr[i] + postEach;
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
return result.length ? result : '';
|
|
435
|
+
}
|
|
436
|
+
// Dealing with a plural-function?
|
|
437
|
+
if (pluralStart > -1) {
|
|
438
|
+
var pluralEnd = (statement.slice(pluralStart).indexOf(')') + pluralStart), pluralStatement = statement.substring(pluralStart + 8, pluralEnd), pluralArguments = pluralStatement.split(','), num = Number(getNestedProperty(pluralArguments[0], ctx));
|
|
439
|
+
switch (num) {
|
|
440
|
+
case 0:
|
|
441
|
+
result = pick(pluralArguments[4], pluralArguments[1]);
|
|
442
|
+
break;
|
|
443
|
+
case 1:
|
|
444
|
+
result = pick(pluralArguments[2], pluralArguments[1]);
|
|
445
|
+
break;
|
|
446
|
+
case 2:
|
|
447
|
+
result = pick(pluralArguments[3], pluralArguments[1]);
|
|
448
|
+
break;
|
|
449
|
+
default:
|
|
450
|
+
result = pluralArguments[1];
|
|
451
|
+
}
|
|
452
|
+
return result ? stringTrim(result) : '';
|
|
453
|
+
}
|
|
454
|
+
// Array index
|
|
455
|
+
if (indexStart > -1) {
|
|
456
|
+
var arrayName = statement.substring(0,
|
|
457
|
+
indexStart),
|
|
458
|
+
ix = Number(statement.substring(indexStart + 1,
|
|
459
|
+
indexEnd));
|
|
460
|
+
var val = void 0;
|
|
461
|
+
arr = getNestedProperty(arrayName, ctx);
|
|
462
|
+
if (!isNaN(ix) && arr) {
|
|
463
|
+
if (ix < 0) {
|
|
464
|
+
val = arr[arr.length + ix];
|
|
465
|
+
// Handle negative overshoot
|
|
466
|
+
if (typeof val === 'undefined') {
|
|
467
|
+
val = arr[0];
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
else {
|
|
471
|
+
val = arr[ix];
|
|
472
|
+
// Handle positive overshoot
|
|
473
|
+
if (typeof val === 'undefined') {
|
|
474
|
+
val = arr[arr.length - 1];
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
return typeof val !== 'undefined' ? val : '';
|
|
479
|
+
}
|
|
480
|
+
// Standard substitution, delegate to format or similar
|
|
481
|
+
return '{' + statement + '}';
|
|
482
|
+
}
|
|
483
|
+
/* eslint-disable max-len */
|
|
484
|
+
/**
|
|
485
|
+
* i18n formatting function. Extends Highcharts.format() functionality by
|
|
486
|
+
* also handling arrays and plural conditionals. Arrays can be indexed as
|
|
487
|
+
* follows:
|
|
488
|
+
*
|
|
489
|
+
* - Format: 'This is the first index: {myArray[0]}. The last: {myArray[-1]}.'
|
|
490
|
+
*
|
|
491
|
+
* - Context: { myArray: [0, 1, 2, 3, 4, 5] }
|
|
492
|
+
*
|
|
493
|
+
* - Result: 'This is the first index: 0. The last: 5.'
|
|
494
|
+
*
|
|
495
|
+
*
|
|
496
|
+
* They can also be iterated using the #each() function. This will repeat
|
|
497
|
+
* the contents of the bracket expression for each element. Example:
|
|
498
|
+
*
|
|
499
|
+
* - Format: 'List contains: {#each(myArray)cm }'
|
|
500
|
+
*
|
|
501
|
+
* - Context: { myArray: [0, 1, 2] }
|
|
502
|
+
*
|
|
503
|
+
* - Result: 'List contains: 0cm 1cm 2cm '
|
|
504
|
+
*
|
|
505
|
+
*
|
|
506
|
+
* The #each() function optionally takes a length parameter. If positive,
|
|
507
|
+
* this parameter specifies the max number of elements to iterate through.
|
|
508
|
+
* If negative, the function will subtract the number from the length of the
|
|
509
|
+
* array. Use this to stop iterating before the array ends. Example:
|
|
510
|
+
*
|
|
511
|
+
* - Format: 'List contains: {#each(myArray, -1) }and {myArray[-1]}.'
|
|
512
|
+
*
|
|
513
|
+
* - Context: { myArray: [0, 1, 2, 3] }
|
|
514
|
+
*
|
|
515
|
+
* - Result: 'List contains: 0, 1, 2, and 3.'
|
|
516
|
+
*
|
|
517
|
+
*
|
|
518
|
+
* Use the #plural() function to pick a string depending on whether or not a
|
|
519
|
+
* context object is 1. Arguments are #plural(obj, plural, singular).
|
|
520
|
+
* Example:
|
|
521
|
+
*
|
|
522
|
+
* - Format: 'Has {numPoints} {#plural(numPoints, points, point}.'
|
|
523
|
+
*
|
|
524
|
+
* - Context: { numPoints: 5 }
|
|
525
|
+
*
|
|
526
|
+
* - Result: 'Has 5 points.'
|
|
527
|
+
*
|
|
528
|
+
*
|
|
529
|
+
* Optionally there are additional parameters for dual and none:
|
|
530
|
+
* #plural(obj, plural, singular, dual, none). Example:
|
|
531
|
+
*
|
|
532
|
+
* - Format: 'Has {#plural(numPoints, many points, one point, two points,
|
|
533
|
+
* none}.'
|
|
534
|
+
*
|
|
535
|
+
* - Context: { numPoints: 2 }
|
|
536
|
+
*
|
|
537
|
+
* - Result: 'Has two points.'
|
|
538
|
+
*
|
|
539
|
+
*
|
|
540
|
+
* The dual or none parameters will take precedence if they are supplied.
|
|
541
|
+
*
|
|
542
|
+
* @requires modules/accessibility
|
|
543
|
+
*
|
|
544
|
+
* @function Highcharts.i18nFormat
|
|
545
|
+
*
|
|
546
|
+
* @param {string} formatString
|
|
547
|
+
* The string to format.
|
|
548
|
+
*
|
|
549
|
+
* @param {Highcharts.Dictionary<*>} context
|
|
550
|
+
* Context to apply to the format string.
|
|
551
|
+
*
|
|
552
|
+
* @param {Highcharts.Chart} chart
|
|
553
|
+
* A `Chart` instance with a time object and numberFormatter, passed on to
|
|
554
|
+
* format().
|
|
555
|
+
*
|
|
556
|
+
* @return {string}
|
|
557
|
+
* The formatted string.
|
|
558
|
+
*/
|
|
559
|
+
function i18nFormat(formatString, context, chart) {
|
|
560
|
+
var getFirstBracketStatement = function (sourceStr, offset) {
|
|
561
|
+
var str = sourceStr.slice(offset || 0), startBracket = str.indexOf('{'), endBracket = str.indexOf('}');
|
|
562
|
+
if (startBracket > -1 && endBracket > startBracket) {
|
|
563
|
+
return {
|
|
564
|
+
statement: str.substring(startBracket + 1, endBracket),
|
|
565
|
+
begin: offset + startBracket + 1,
|
|
566
|
+
end: offset + endBracket
|
|
567
|
+
};
|
|
568
|
+
}
|
|
569
|
+
}, tokens = [];
|
|
570
|
+
var bracketRes,
|
|
571
|
+
constRes,
|
|
572
|
+
cursor = 0;
|
|
573
|
+
// Tokenize format string into bracket statements and constants
|
|
574
|
+
do {
|
|
575
|
+
bracketRes = getFirstBracketStatement(formatString, cursor);
|
|
576
|
+
constRes = formatString.substring(cursor, bracketRes && bracketRes.begin - 1);
|
|
577
|
+
// If we have constant content before this bracket statement, add it
|
|
578
|
+
if (constRes.length) {
|
|
579
|
+
tokens.push({
|
|
580
|
+
value: constRes,
|
|
581
|
+
type: 'constant'
|
|
582
|
+
});
|
|
583
|
+
}
|
|
584
|
+
// Add the bracket statement
|
|
585
|
+
if (bracketRes) {
|
|
586
|
+
tokens.push({
|
|
587
|
+
value: bracketRes.statement,
|
|
588
|
+
type: 'statement'
|
|
589
|
+
});
|
|
590
|
+
}
|
|
591
|
+
cursor = bracketRes ? bracketRes.end + 1 : cursor + 1;
|
|
592
|
+
} while (bracketRes);
|
|
593
|
+
// Perform the formatting. The formatArrayStatement function returns
|
|
594
|
+
// the statement in brackets if it is not an array statement, which
|
|
595
|
+
// means it gets picked up by format below.
|
|
596
|
+
tokens.forEach(function (token) {
|
|
597
|
+
if (token.type === 'statement') {
|
|
598
|
+
token.value = formatExtendedStatement(token.value, context);
|
|
599
|
+
}
|
|
600
|
+
});
|
|
601
|
+
// Join string back together and pass to format to pick up non-array
|
|
602
|
+
// statements.
|
|
603
|
+
return format(tokens.reduce(function (acc, cur) { return acc + cur.value; }, ''), context, chart);
|
|
604
|
+
}
|
|
605
|
+
A11yI18nComposition.i18nFormat = i18nFormat;
|
|
606
|
+
/* eslint-enable max-len */
|
|
607
|
+
/**
|
|
608
|
+
* Apply context to a format string from lang options of the chart.
|
|
609
|
+
*
|
|
610
|
+
* @requires modules/accessibility
|
|
611
|
+
*
|
|
612
|
+
* @function Highcharts.Chart#langFormat
|
|
613
|
+
*
|
|
614
|
+
* @param {string} langKey
|
|
615
|
+
* Key (using dot notation) into lang option structure.
|
|
616
|
+
*
|
|
617
|
+
* @param {Highcharts.Dictionary<*>} context
|
|
618
|
+
* Context to apply to the format string.
|
|
619
|
+
*
|
|
620
|
+
* @return {string}
|
|
621
|
+
* The formatted string.
|
|
622
|
+
*/
|
|
623
|
+
function langFormat(langKey, context) {
|
|
624
|
+
var keys = langKey.split('.');
|
|
625
|
+
var formatString = this.options.lang,
|
|
626
|
+
i = 0;
|
|
627
|
+
for (; i < keys.length; ++i) {
|
|
628
|
+
formatString = formatString && formatString[keys[i]];
|
|
569
629
|
}
|
|
570
|
-
return
|
|
571
|
-
|
|
572
|
-
return getHeadingRecursive(element);
|
|
573
|
-
}
|
|
574
|
-
/**
|
|
575
|
-
* Remove an element from the DOM.
|
|
576
|
-
* @private
|
|
577
|
-
* @param {Highcharts.HTMLDOMElement|Highcharts.SVGDOMElement} [element]
|
|
578
|
-
* @return {void}
|
|
579
|
-
*/
|
|
580
|
-
function removeElement(element) {
|
|
581
|
-
if (element && element.parentNode) {
|
|
582
|
-
element.parentNode.removeChild(element);
|
|
583
|
-
}
|
|
584
|
-
}
|
|
585
|
-
/**
|
|
586
|
-
* Remove all child nodes from an element.
|
|
587
|
-
* @private
|
|
588
|
-
* @param {Highcharts.HTMLDOMElement|Highcharts.SVGDOMElement} [element]
|
|
589
|
-
* @return {void}
|
|
590
|
-
*/
|
|
591
|
-
function removeChildNodes(element) {
|
|
592
|
-
while (element.lastChild) {
|
|
593
|
-
element.removeChild(element.lastChild);
|
|
630
|
+
return typeof formatString === 'string' ?
|
|
631
|
+
i18nFormat(formatString, context, this) : '';
|
|
594
632
|
}
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
633
|
+
/**
|
|
634
|
+
* String trim that works for IE6-8 as well.
|
|
635
|
+
*
|
|
636
|
+
* @private
|
|
637
|
+
* @function stringTrim
|
|
638
|
+
*
|
|
639
|
+
* @param {string} str
|
|
640
|
+
* The input string
|
|
641
|
+
*
|
|
642
|
+
* @return {string}
|
|
643
|
+
* The trimmed string
|
|
644
|
+
*/
|
|
645
|
+
function stringTrim(str) {
|
|
646
|
+
return str.trim && str.trim() || str.replace(/^\s+|\s+$/g, '');
|
|
604
647
|
}
|
|
605
|
-
}
|
|
606
|
-
/**
|
|
607
|
-
* Used for aria-label attributes, painting on a canvas will fail if the
|
|
608
|
-
* text contains tags.
|
|
609
|
-
* @private
|
|
610
|
-
*/
|
|
611
|
-
function stripHTMLTagsFromString(str) {
|
|
612
|
-
return typeof str === 'string' ?
|
|
613
|
-
str.replace(/<\/?[^>]+(>|$)/g, '') : str;
|
|
614
|
-
}
|
|
615
|
-
/**
|
|
616
|
-
* Utility function for hiding an element visually, but still keeping it
|
|
617
|
-
* available to screen reader users.
|
|
618
|
-
* @private
|
|
619
|
-
*/
|
|
620
|
-
function visuallyHideElement(element) {
|
|
621
|
-
css(element, {
|
|
622
|
-
position: 'absolute',
|
|
623
|
-
width: '1px',
|
|
624
|
-
height: '1px',
|
|
625
|
-
overflow: 'hidden',
|
|
626
|
-
whiteSpace: 'nowrap',
|
|
627
|
-
clip: 'rect(1px, 1px, 1px, 1px)',
|
|
628
|
-
marginTop: '-3px',
|
|
629
|
-
'-ms-filter': 'progid:DXImageTransform.Microsoft.Alpha(Opacity=1)',
|
|
630
|
-
filter: 'alpha(opacity=1)',
|
|
631
|
-
opacity: 0.01
|
|
632
|
-
});
|
|
633
|
-
}
|
|
648
|
+
})(A11yI18nComposition || (A11yI18nComposition = {}));
|
|
634
649
|
/* *
|
|
635
650
|
*
|
|
636
651
|
* Default Export
|
|
637
652
|
*
|
|
638
653
|
* */
|
|
639
|
-
var HTMLUtilities = {
|
|
640
|
-
addClass: addClass,
|
|
641
|
-
cloneMouseEvent: cloneMouseEvent,
|
|
642
|
-
cloneTouchEvent: cloneTouchEvent,
|
|
643
|
-
escapeStringForHTML: escapeStringForHTML,
|
|
644
|
-
getElement: getElement,
|
|
645
|
-
getFakeMouseEvent: getFakeMouseEvent,
|
|
646
|
-
getHeadingTagNameForElement: getHeadingTagNameForElement,
|
|
647
|
-
removeChildNodes: removeChildNodes,
|
|
648
|
-
removeClass: removeClass,
|
|
649
|
-
removeElement: removeElement,
|
|
650
|
-
reverseChildNodes: reverseChildNodes,
|
|
651
|
-
stripHTMLTagsFromString: stripHTMLTagsFromString,
|
|
652
|
-
visuallyHideElement: visuallyHideElement
|
|
653
|
-
};
|
|
654
654
|
|
|
655
|
-
return
|
|
655
|
+
return A11yI18nComposition;
|
|
656
656
|
});
|
|
657
657
|
_registerModule(_modules, 'Accessibility/Utils/ChartUtilities.js', [_modules['Core/Globals.js'], _modules['Accessibility/Utils/HTMLUtilities.js'], _modules['Core/Utilities.js']], function (H, HU, U) {
|
|
658
658
|
/* *
|
|
@@ -3677,9 +3677,10 @@
|
|
|
3677
3677
|
*/
|
|
3678
3678
|
function shouldDoLegendA11y(chart) {
|
|
3679
3679
|
var items = chart.legend && chart.legend.allItems,
|
|
3680
|
-
legendA11yOptions = (chart.options.legend.accessibility || {})
|
|
3680
|
+
legendA11yOptions = (chart.options.legend.accessibility || {}),
|
|
3681
|
+
unsupportedColorAxis = chart.colorAxis && chart.colorAxis.some(function (c) { return !c.dataClasses || !c.dataClasses.length; });
|
|
3681
3682
|
return !!(items && items.length &&
|
|
3682
|
-
!
|
|
3683
|
+
!unsupportedColorAxis &&
|
|
3683
3684
|
legendA11yOptions.enabled !== false);
|
|
3684
3685
|
}
|
|
3685
3686
|
/**
|
|
@@ -3733,7 +3734,7 @@
|
|
|
3733
3734
|
LegendComponent.prototype.init = function () {
|
|
3734
3735
|
var component = this;
|
|
3735
3736
|
this.recreateProxies();
|
|
3736
|
-
// Note: Chart could create legend dynamically, so events
|
|
3737
|
+
// Note: Chart could create legend dynamically, so events cannot be
|
|
3737
3738
|
// tied to the component's chart's current legend.
|
|
3738
3739
|
// @todo 1. attach component to created legends
|
|
3739
3740
|
// @todo 2. move listeners to composition and access `this.component`
|
|
@@ -4024,15 +4025,13 @@
|
|
|
4024
4025
|
* @private
|
|
4025
4026
|
*/
|
|
4026
4027
|
LegendComponent.prototype.shouldHaveLegendNavigation = function () {
|
|
4028
|
+
if (!shouldDoLegendA11y(this.chart)) {
|
|
4029
|
+
return false;
|
|
4030
|
+
}
|
|
4027
4031
|
var chart = this.chart,
|
|
4028
4032
|
legendOptions = chart.options.legend || {},
|
|
4029
|
-
hasLegend = chart.legend && chart.legend.allItems,
|
|
4030
|
-
hasColorAxis = chart.colorAxis && chart.colorAxis.length,
|
|
4031
4033
|
legendA11yOptions = (legendOptions.accessibility || {});
|
|
4032
|
-
return !!(
|
|
4033
|
-
chart.legend.display &&
|
|
4034
|
-
!hasColorAxis &&
|
|
4035
|
-
legendA11yOptions.enabled &&
|
|
4034
|
+
return !!(chart.legend.display &&
|
|
4036
4035
|
legendA11yOptions.keyboardNavigation &&
|
|
4037
4036
|
legendA11yOptions.keyboardNavigation.enabled);
|
|
4038
4037
|
};
|
|
@@ -4343,7 +4342,8 @@
|
|
|
4343
4342
|
*/
|
|
4344
4343
|
function getPointXDescription(point) {
|
|
4345
4344
|
var timeDesc = getPointA11yTimeDescription(point), xAxis = point.series.xAxis || {}, pointCategory = xAxis.categories && defined(point.category) &&
|
|
4346
|
-
('' + point.category).replace('<br/>', ' '), canUseId = point.id &&
|
|
4345
|
+
('' + point.category).replace('<br/>', ' '), canUseId = defined(point.id) &&
|
|
4346
|
+
('' + point.id).indexOf('highcharts-') < 0, fallback = 'x, ' + point.x;
|
|
4347
4347
|
return point.name || timeDesc || pointCategory ||
|
|
4348
4348
|
(canUseId ? point.id : fallback);
|
|
4349
4349
|
}
|
|
@@ -4563,7 +4563,7 @@
|
|
|
4563
4563
|
// For some series types the order of elements do not match the
|
|
4564
4564
|
// order of points in series. In that case we have to reverse them
|
|
4565
4565
|
// in order for AT to read them out in an understandable order.
|
|
4566
|
-
// Due to z-index issues we
|
|
4566
|
+
// Due to z-index issues we cannot do this for 3D charts.
|
|
4567
4567
|
if (seriesEl.lastChild === firstPointEl && !is3d) {
|
|
4568
4568
|
reverseChildNodes(seriesEl);
|
|
4569
4569
|
}
|
|
@@ -10693,7 +10693,7 @@
|
|
|
10693
10693
|
* Style options for the focus border drawn around elements
|
|
10694
10694
|
* while navigating through them. Note that some browsers in
|
|
10695
10695
|
* addition draw their own borders for focused elements. These
|
|
10696
|
-
* automatic borders
|
|
10696
|
+
* automatic borders cannot be styled by Highcharts.
|
|
10697
10697
|
*
|
|
10698
10698
|
* In styled mode, the border is given the
|
|
10699
10699
|
* `.highcharts-focus-border` class.
|
|
@@ -11675,7 +11675,7 @@
|
|
|
11675
11675
|
|
|
11676
11676
|
return copyDeprecatedOptions;
|
|
11677
11677
|
});
|
|
11678
|
-
_registerModule(_modules, 'Accessibility/Accessibility.js', [_modules['Core/DefaultOptions.js'], _modules['Core/Globals.js'], _modules['Core/Utilities.js'], _modules['Accessibility/A11yI18n.js'], _modules['Accessibility/Components/ContainerComponent.js'], _modules['Accessibility/FocusBorder.js'], _modules['Accessibility/Components/InfoRegionsComponent.js'], _modules['Accessibility/KeyboardNavigation.js'], _modules['Accessibility/Components/LegendComponent.js'], _modules['Accessibility/Components/MenuComponent.js'], _modules['Accessibility/Components/SeriesComponent/NewDataAnnouncer.js'], _modules['Accessibility/ProxyProvider.js'], _modules['Accessibility/Components/RangeSelectorComponent.js'], _modules['Accessibility/Components/SeriesComponent/SeriesComponent.js'], _modules['Accessibility/Components/ZoomComponent.js'], _modules['Accessibility/HighContrastMode.js'], _modules['Accessibility/HighContrastTheme.js'], _modules['Accessibility/Options/A11yDefaults.js'], _modules['Accessibility/Options/LangDefaults.js'], _modules['Accessibility/Options/DeprecatedOptions.js']], function (D, H, U, A11yI18n, ContainerComponent, FocusBorder, InfoRegionsComponent, KeyboardNavigation, LegendComponent, MenuComponent, NewDataAnnouncer, ProxyProvider, RangeSelectorComponent, SeriesComponent, ZoomComponent, whcm, highContrastTheme, defaultOptionsA11Y, defaultLangOptions, copyDeprecatedOptions) {
|
|
11678
|
+
_registerModule(_modules, 'Accessibility/Accessibility.js', [_modules['Core/DefaultOptions.js'], _modules['Core/Globals.js'], _modules['Core/Utilities.js'], _modules['Accessibility/Utils/HTMLUtilities.js'], _modules['Accessibility/A11yI18n.js'], _modules['Accessibility/Components/ContainerComponent.js'], _modules['Accessibility/FocusBorder.js'], _modules['Accessibility/Components/InfoRegionsComponent.js'], _modules['Accessibility/KeyboardNavigation.js'], _modules['Accessibility/Components/LegendComponent.js'], _modules['Accessibility/Components/MenuComponent.js'], _modules['Accessibility/Components/SeriesComponent/NewDataAnnouncer.js'], _modules['Accessibility/ProxyProvider.js'], _modules['Accessibility/Components/RangeSelectorComponent.js'], _modules['Accessibility/Components/SeriesComponent/SeriesComponent.js'], _modules['Accessibility/Components/ZoomComponent.js'], _modules['Accessibility/HighContrastMode.js'], _modules['Accessibility/HighContrastTheme.js'], _modules['Accessibility/Options/A11yDefaults.js'], _modules['Accessibility/Options/LangDefaults.js'], _modules['Accessibility/Options/DeprecatedOptions.js']], function (D, H, U, HU, A11yI18n, ContainerComponent, FocusBorder, InfoRegionsComponent, KeyboardNavigation, LegendComponent, MenuComponent, NewDataAnnouncer, ProxyProvider, RangeSelectorComponent, SeriesComponent, ZoomComponent, whcm, highContrastTheme, defaultOptionsA11Y, defaultLangOptions, copyDeprecatedOptions) {
|
|
11679
11679
|
/* *
|
|
11680
11680
|
*
|
|
11681
11681
|
* (c) 2009-2021 Øystein Moseng
|
|
@@ -11693,6 +11693,7 @@
|
|
|
11693
11693
|
extend = U.extend,
|
|
11694
11694
|
fireEvent = U.fireEvent,
|
|
11695
11695
|
merge = U.merge;
|
|
11696
|
+
var removeElement = HU.removeElement;
|
|
11696
11697
|
/* *
|
|
11697
11698
|
*
|
|
11698
11699
|
* Class
|
|
@@ -11846,6 +11847,10 @@
|
|
|
11846
11847
|
if (this.proxyProvider) {
|
|
11847
11848
|
this.proxyProvider.destroy();
|
|
11848
11849
|
}
|
|
11850
|
+
// Remove announcer container
|
|
11851
|
+
if (chart.announcerContainer) {
|
|
11852
|
+
removeElement(chart.announcerContainer);
|
|
11853
|
+
}
|
|
11849
11854
|
// Kill keyboard nav
|
|
11850
11855
|
if (this.keyboardNavigation) {
|
|
11851
11856
|
this.keyboardNavigation.destroy();
|