highcharts 9.2.2 → 9.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -6
- package/bower.json +1 -1
- package/css/annotations/popup.css +48 -8
- package/css/annotations/popup.scss +70 -22
- package/css/highcharts.css +45 -0
- package/css/highcharts.scss +40 -0
- package/css/themes/dark-unica.css +45 -0
- package/css/themes/grid-light.css +45 -0
- package/css/themes/sand-signika.css +45 -0
- package/es-modules/Accessibility/A11yI18n.js +273 -224
- package/es-modules/Accessibility/Accessibility.js +233 -128
- package/es-modules/Accessibility/AccessibilityComponent.js +79 -314
- package/es-modules/Accessibility/Components/AnnotationsA11y.js +10 -0
- package/es-modules/Accessibility/Components/ContainerComponent.js +52 -27
- package/es-modules/Accessibility/Components/InfoRegionsComponent.js +46 -23
- package/es-modules/Accessibility/Components/LegendComponent.js +97 -65
- package/es-modules/Accessibility/Components/MenuComponent.js +59 -40
- package/es-modules/Accessibility/Components/RangeSelectorComponent.js +5 -8
- package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +152 -115
- package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +133 -68
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +64 -27
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +38 -21
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +380 -325
- package/es-modules/Accessibility/Components/ZoomComponent.js +28 -20
- package/es-modules/Accessibility/FocusBorder.js +192 -147
- package/es-modules/Accessibility/HighContrastMode.js +78 -66
- package/es-modules/Accessibility/HighContrastTheme.js +10 -0
- package/es-modules/Accessibility/KeyboardNavigation.js +144 -70
- package/es-modules/Accessibility/KeyboardNavigationHandler.js +71 -44
- package/es-modules/Accessibility/Options/DeprecatedOptions.js +11 -1
- package/es-modules/Accessibility/Options/LangOptions.js +1 -2
- package/es-modules/Accessibility/Options/Options.js +32 -17
- package/es-modules/Accessibility/ProxyElement.js +212 -0
- package/es-modules/Accessibility/ProxyProvider.js +305 -0
- package/es-modules/Accessibility/Utils/Announcer.js +15 -8
- package/es-modules/Accessibility/Utils/ChartUtilities.js +41 -16
- package/es-modules/Accessibility/Utils/DOMElementProvider.js +27 -15
- package/es-modules/Accessibility/Utils/EventProvider.js +27 -17
- package/es-modules/Accessibility/Utils/HTMLUtilities.js +125 -30
- package/es-modules/Core/Axis/Axis.js +37 -30
- package/es-modules/Core/Axis/AxisDefaults.js +35 -24
- package/es-modules/Core/Axis/Color/ColorAxisComposition.js +54 -4
- package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +5 -5
- package/es-modules/Core/Axis/OrdinalAxis.js +8 -12
- package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +4 -5
- package/es-modules/Core/Axis/ScrollbarAxis.js +10 -3
- package/es-modules/Core/Axis/TreeGridAxis.js +2 -2
- package/es-modules/Core/Axis/TreeGridTick.js +1 -2
- package/es-modules/Core/Chart/Chart.js +2 -3
- package/es-modules/Core/Chart/ChartDefaults.js +3 -4
- package/es-modules/Core/Chart/ChartNavigationComposition.js +92 -0
- package/es-modules/Core/Chart/MapChart.js +10 -22
- package/es-modules/Core/Chart/StockChart.js +3 -293
- package/es-modules/Core/Color/Palettes.js +22 -0
- package/es-modules/Core/DefaultOptions.js +19 -17
- package/es-modules/Core/Foundation.js +39 -31
- package/es-modules/Core/Globals.js +1 -1
- package/es-modules/Core/HttpUtilities.js +3 -3
- package/es-modules/Core/Legend/Legend.js +7 -3
- package/es-modules/Core/Navigator.js +7 -8
- package/es-modules/Core/Pointer.js +39 -36
- package/es-modules/Core/Renderer/HTML/AST.js +2 -0
- package/es-modules/Core/Renderer/HTML/HTMLElement.js +23 -18
- package/es-modules/Core/Renderer/SVG/SVGElement.js +3 -4
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +21 -18
- package/es-modules/Core/Renderer/SVG/TextBuilder.js +3 -3
- package/es-modules/Core/ScrollbarDefaults.js +10 -9
- package/es-modules/Core/Series/DataLabel.js +2 -3
- package/es-modules/Core/Series/Point.js +5 -3
- package/es-modules/Core/Series/Series.js +153 -162
- package/es-modules/Core/Series/SeriesDefaults.js +3 -4
- package/es-modules/Core/Series/SeriesRegistry.js +1 -2
- package/es-modules/Core/Tooltip.js +44 -17
- package/es-modules/Core/Utilities.js +15 -7
- package/es-modules/Data/DataConverter.js +489 -0
- package/es-modules/Data/DataPromise.js +252 -0
- package/es-modules/Data/DataSeriesConverter.js +203 -0
- package/es-modules/Data/DataTable.js +1204 -0
- package/es-modules/Data/Modifiers/ChainModifier.js +299 -0
- package/es-modules/Data/Modifiers/DataModifier.js +303 -0
- package/es-modules/Data/Modifiers/GroupModifier.js +144 -0
- package/es-modules/Data/Modifiers/InvertModifier.js +254 -0
- package/es-modules/Data/Modifiers/RangeModifier.js +143 -0
- package/es-modules/Data/Modifiers/SeriesPointsModifier.js +110 -0
- package/es-modules/Data/Modifiers/SortModifier.js +249 -0
- package/es-modules/Data/Parsers/CSVParser.js +399 -0
- package/es-modules/Data/Parsers/DataParser.js +101 -0
- package/es-modules/Data/Parsers/GoogleSheetsParser.js +220 -0
- package/es-modules/Data/Parsers/HTMLTableParser.js +213 -0
- package/es-modules/Data/Stores/CSVStore.js +317 -0
- package/es-modules/Data/Stores/DataStore.js +276 -0
- package/es-modules/Data/Stores/GoogleSheetsStore.js +167 -0
- package/es-modules/Data/Stores/HTMLTableStore.js +351 -0
- package/es-modules/Extensions/Annotations/Annotations.js +61 -11
- package/es-modules/Extensions/Annotations/ControlPoint.js +1 -1
- package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +199 -0
- package/es-modules/Extensions/Annotations/Mixins/ControllableMixin.js +7 -1
- package/es-modules/Extensions/Annotations/NavigationBindings.js +68 -19
- package/es-modules/Extensions/Annotations/Popup.js +479 -141
- package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +51 -2
- package/es-modules/Extensions/Annotations/Types/CrookedLine.js +1 -1
- package/es-modules/Extensions/Annotations/Types/Fibonacci.js +2 -3
- package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +219 -0
- package/es-modules/Extensions/Annotations/Types/InfinityLine.js +1 -1
- package/es-modules/Extensions/Annotations/Types/Measure.js +14 -8
- package/es-modules/Extensions/Annotations/Types/Pitchfork.js +5 -5
- package/es-modules/Extensions/Annotations/Types/TimeCycles.js +207 -0
- package/es-modules/Extensions/Annotations/Types/Tunnel.js +3 -5
- package/es-modules/Extensions/Annotations/Types/VerticalLine.js +1 -1
- package/es-modules/Extensions/Boost/BoostOverrides.js +3 -1
- package/es-modules/Extensions/Boost/WGLShader.js +4 -3
- package/es-modules/Extensions/BoostCanvas.js +1 -2
- package/es-modules/Extensions/CurrentDateIndication.js +2 -3
- package/es-modules/Extensions/DataGrouping.js +31 -18
- package/es-modules/Extensions/DownloadURL.js +2 -2
- package/es-modules/Extensions/DragPanes.js +1 -2
- package/es-modules/Extensions/Drilldown.js +2 -3
- package/es-modules/Extensions/Exporting/Exporting.js +8 -7
- package/es-modules/Extensions/Exporting/ExportingDefaults.js +8 -15
- package/es-modules/Extensions/GeoJSON.js +39 -63
- package/es-modules/Extensions/MarkerClusters.js +115 -97
- package/es-modules/Extensions/NoDataToDisplay.js +1 -2
- package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +9 -8
- package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
- package/es-modules/Extensions/Oldie/Oldie.js +2 -3
- package/es-modules/Extensions/Pane.js +5 -6
- package/es-modules/Extensions/RangeSelector.js +3 -4
- package/es-modules/Extensions/Sonification/ChartSonify.js +247 -637
- package/es-modules/Extensions/Sonification/Earcon.js +136 -102
- package/es-modules/Extensions/Sonification/Instrument.js +496 -426
- package/es-modules/Extensions/Sonification/MusicalFrequencies.js +10 -0
- package/es-modules/Extensions/Sonification/Options.js +10 -0
- package/es-modules/Extensions/Sonification/PointSonify.js +203 -152
- package/es-modules/Extensions/Sonification/SeriesSonify.js +459 -0
- package/es-modules/Extensions/Sonification/SignalHandler.js +124 -0
- package/es-modules/Extensions/Sonification/Sonification.js +26 -52
- package/es-modules/Extensions/Sonification/{Utilities.js → SonificationUtilities.js} +62 -84
- package/es-modules/Extensions/Sonification/Timeline.js +255 -567
- package/es-modules/Extensions/Sonification/TimelineEvent.js +158 -0
- package/es-modules/Extensions/Sonification/TimelinePath.js +311 -0
- package/es-modules/Maps/MapNavigation.js +27 -64
- package/es-modules/Maps/MapNavigationOptionsDefault.js +3 -0
- package/es-modules/Maps/MapPointer.js +7 -5
- package/es-modules/Maps/MapView.js +450 -0
- package/es-modules/Maps/MapViewOptionsDefault.js +95 -0
- package/es-modules/Maps/Projection.js +433 -0
- package/es-modules/Maps/ProjectionDefinition.js +9 -0
- package/es-modules/Maps/Projections/EqualEarth.js +42 -0
- package/es-modules/Maps/Projections/Miller.js +17 -0
- package/es-modules/Maps/Projections/Orthographic.js +26 -0
- package/es-modules/Maps/Projections/ProjectionRegistry.js +17 -0
- package/es-modules/Maps/Projections/WebMercator.js +25 -0
- package/es-modules/Series/AreaRange/AreaRangeSeries.js +4 -5
- package/es-modules/Series/Bellcurve/BellcurveSeries.js +2 -8
- package/es-modules/Series/BoxPlot/BoxPlotSeries.js +1 -2
- package/es-modules/Series/Bubble/BubbleLegendDefaults.js +1 -2
- package/es-modules/Series/Bubble/BubbleLegendItem.js +3 -3
- package/es-modules/Series/Bubble/BubblePoint.js +5 -0
- package/es-modules/Series/Bubble/BubbleSeries.js +90 -50
- package/es-modules/Series/Candlestick/CandlestickSeries.js +10 -18
- package/es-modules/{Mixins/CenteredSeries.js → Series/CenteredUtilities.js} +45 -23
- package/es-modules/Series/ColorMapComposition.js +109 -0
- package/es-modules/Series/Column/ColumnDataLabel.js +5 -5
- package/es-modules/Series/Column/ColumnSeries.js +3 -4
- package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +6 -6
- package/es-modules/Series/DataModifyComposition.js +539 -0
- package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +2 -6
- package/es-modules/Series/DerivedComposition.js +137 -0
- package/es-modules/Series/DrawPointComposition.js +111 -0
- package/es-modules/Series/Dumbbell/DumbbellSeries.js +2 -3
- package/es-modules/Series/ErrorBar/ErrorBarSeries.js +1 -2
- package/es-modules/Series/Flags/FlagsSeries.js +18 -25
- package/es-modules/Series/Funnel/FunnelSeries.js +6 -5
- package/es-modules/Series/Gantt/GanttSeries.js +0 -2
- package/es-modules/Series/Gauge/GaugePoint.js +1 -1
- package/es-modules/Series/Gauge/GaugeSeries.js +7 -7
- package/es-modules/Series/HLC/HLCPoint.js +55 -0
- package/es-modules/Series/HLC/HLCSeries.js +383 -0
- package/es-modules/Series/Heatmap/HeatmapPoint.js +3 -4
- package/es-modules/Series/Heatmap/HeatmapSeries.js +19 -6
- package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +2 -3
- package/es-modules/Series/Histogram/HistogramSeries.js +3 -7
- package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +9 -10
- package/es-modules/Series/Line/LineSeries.js +1 -2
- package/es-modules/Series/Map/MapPoint.js +23 -16
- package/es-modules/Series/Map/MapSeries.js +268 -309
- package/es-modules/Series/MapBubble/MapBubblePoint.js +0 -3
- package/es-modules/Series/MapBubble/MapBubbleSeries.js +10 -1
- package/es-modules/Series/MapPoint/MapPointPoint.js +5 -1
- package/es-modules/Series/MapPoint/MapPointSeries.js +87 -4
- package/es-modules/Series/Networkgraph/Networkgraph.js +5 -5
- package/es-modules/{Mixins/Nodes.js → Series/NodesComposition.js} +76 -29
- package/es-modules/Series/OHLC/OHLCPoint.js +2 -6
- package/es-modules/Series/OHLC/OHLCSeries.js +55 -183
- package/es-modules/{Mixins/OnSeries.js → Series/OnSeriesComposition.js} +53 -21
- package/es-modules/Series/Organization/OrganizationSeries.js +2 -3
- package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +46 -6
- package/es-modules/Series/ParetoSeries/ParetoSeries.js +3 -7
- package/es-modules/Series/Pie/PieDataLabel.js +1 -2
- package/es-modules/Series/Pie/PieSeries.js +6 -7
- package/es-modules/Series/Sankey/SankeyPoint.js +0 -4
- package/es-modules/Series/Sankey/SankeySeries.js +89 -20
- package/es-modules/Series/Sunburst/SunburstPoint.js +2 -3
- package/es-modules/Series/Sunburst/SunburstSeries.js +4 -4
- package/es-modules/Series/Tilemap/TilemapPoint.js +2 -3
- package/es-modules/Series/Timeline/TimelineSeries.js +3 -4
- package/es-modules/{Mixins/TreeSeries.js → Series/TreeUtilities.js} +86 -76
- package/es-modules/Series/Treemap/TreemapPoint.js +2 -2
- package/es-modules/Series/Treemap/TreemapSeries.js +8 -8
- package/es-modules/Series/Venn/VennPoint.js +16 -7
- package/es-modules/Series/Venn/VennSeries.js +5 -8
- package/es-modules/Series/Venn/VennUtils.js +550 -439
- package/es-modules/Series/Waterfall/WaterfallSeries.js +2 -3
- package/es-modules/Series/Windbarb/WindbarbSeries.js +23 -24
- package/es-modules/Series/Wordcloud/WordcloudPoint.js +8 -6
- package/es-modules/Series/Wordcloud/WordcloudSeries.js +24 -20
- package/es-modules/Series/Wordcloud/WordcloudUtils.js +673 -484
- package/es-modules/Series/XRange/XRangePoint.js +1 -0
- package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +3 -6
- package/es-modules/Stock/Indicators/AO/AOIndicator.js +2 -3
- package/es-modules/Stock/Indicators/APO/APOIndicator.js +14 -20
- package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +3 -6
- package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +11 -13
- package/es-modules/Stock/Indicators/ArrayUtilities.js +47 -0
- package/es-modules/Stock/Indicators/BB/BBIndicator.js +27 -11
- package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +6 -12
- package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +1 -11
- package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +19 -11
- package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +17 -11
- package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +1 -3
- package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +11 -9
- package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +8 -16
- package/es-modules/Stock/Indicators/LinearRegression/LinearRegression.js +2 -2
- package/es-modules/Stock/Indicators/LinearRegressionAngle/LinearRegressionAngle.js +2 -2
- package/es-modules/Stock/Indicators/LinearRegressionIntercept/LinearRegressionIntercept.js +2 -2
- package/es-modules/Stock/Indicators/LinearRegressionSlopes/LinearRegressionSlopes.js +2 -2
- package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +1 -2
- package/es-modules/{Mixins/MultipleLines.js → Stock/Indicators/MultipleLinesComposition.js} +136 -87
- package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +1 -3
- package/es-modules/Stock/Indicators/PC/PCIndicator.js +14 -13
- package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +1 -11
- package/es-modules/Stock/Indicators/SMA/SMAComposition.js +0 -26
- package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +9 -32
- package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +0 -8
- package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +15 -8
- package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +4 -6
- package/es-modules/Stock/Indicators/TEMA/TEMAIndicator.js +26 -11
- package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +6 -12
- package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +20 -3
- package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +2 -3
- package/es-modules/Stock/StockToolsBindings.js +144 -42
- package/es-modules/Stock/StockToolsGui.js +405 -11
- 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/ema.src.js +4 -10
- package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/es-modules/masters/indicators/indicators-all.src.js +2 -2
- package/es-modules/masters/indicators/indicators.src.js +2 -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 +16 -2
- package/es-modules/masters/modules/annotations-advanced.src.js +3 -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 +6 -3
- 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 -2
- 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 -3
- 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 +33 -2
- 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 +4 -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/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.src.js +1 -1
- package/highcharts-gantt.js +801 -804
- package/highcharts-gantt.js.map +1 -1
- package/highcharts-gantt.src.js +775 -739
- package/highcharts-more.js +194 -193
- package/highcharts-more.js.map +1 -1
- package/highcharts-more.src.js +207 -119
- package/highcharts.d.ts +9670 -4217
- package/highcharts.js +585 -588
- package/highcharts.js.map +1 -1
- package/highcharts.src.d.ts +9670 -4217
- package/highcharts.src.js +608 -587
- package/highmaps.js +726 -708
- package/highmaps.js.map +1 -1
- package/highmaps.src.js +2708 -1587
- package/highstock.js +788 -783
- package/highstock.js.map +1 -1
- package/highstock.src.js +1896 -1267
- package/indicators/acceleration-bands.js +10 -9
- package/indicators/acceleration-bands.js.map +1 -1
- package/indicators/acceleration-bands.src.js +156 -112
- package/indicators/accumulation-distribution.js +1 -1
- package/indicators/accumulation-distribution.src.js +1 -1
- package/indicators/ao.js +6 -6
- package/indicators/ao.js.map +1 -1
- package/indicators/ao.src.js +4 -4
- package/indicators/apo.js +5 -6
- package/indicators/apo.js.map +1 -1
- package/indicators/apo.src.js +16 -84
- package/indicators/aroon-oscillator.js +9 -9
- package/indicators/aroon-oscillator.js.map +1 -1
- package/indicators/aroon-oscillator.src.js +160 -177
- package/indicators/aroon.js +9 -9
- package/indicators/aroon.js.map +1 -1
- package/indicators/aroon.src.js +156 -112
- package/indicators/atr.js +1 -1
- package/indicators/atr.src.js +1 -1
- package/indicators/bollinger-bands.js +10 -9
- package/indicators/bollinger-bands.js.map +1 -1
- package/indicators/bollinger-bands.src.js +180 -117
- package/indicators/cci.js +1 -1
- package/indicators/cci.src.js +1 -1
- package/indicators/chaikin.js +8 -9
- package/indicators/chaikin.js.map +1 -1
- package/indicators/chaikin.src.js +8 -76
- package/indicators/cmf.js +1 -1
- package/indicators/cmf.src.js +1 -1
- package/indicators/cmo.js +1 -1
- package/indicators/cmo.src.js +1 -1
- package/indicators/dema.js +5 -6
- package/indicators/dema.js.map +1 -1
- package/indicators/dema.src.js +3 -75
- package/indicators/disparity-index.js +6 -7
- package/indicators/disparity-index.js.map +1 -1
- package/indicators/disparity-index.src.js +19 -74
- package/indicators/dmi.js +11 -11
- package/indicators/dmi.js.map +1 -1
- package/indicators/dmi.src.js +173 -116
- package/indicators/dpo.js +1 -1
- package/indicators/dpo.src.js +1 -1
- package/indicators/ema.js +1 -13
- package/indicators/ema.js.map +1 -1
- package/indicators/ema.src.js +7 -188
- package/indicators/ichimoku-kinko-hyo.js +1 -1
- package/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/indicators/indicators-all.js +197 -203
- package/indicators/indicators-all.js.map +1 -1
- package/indicators/indicators-all.src.js +649 -720
- package/indicators/indicators.js +12 -12
- package/indicators/indicators.js.map +1 -1
- package/indicators/indicators.src.js +188 -124
- package/indicators/keltner-channels.js +10 -10
- package/indicators/keltner-channels.js.map +1 -1
- package/indicators/keltner-channels.src.js +164 -118
- package/indicators/klinger.js +12 -13
- package/indicators/klinger.js.map +1 -1
- package/indicators/klinger.src.js +161 -184
- package/indicators/macd.js +2 -2
- package/indicators/macd.js.map +1 -1
- package/indicators/macd.src.js +2 -3
- 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 +3 -3
- package/indicators/natr.js.map +1 -1
- package/indicators/natr.src.js +2 -4
- package/indicators/obv.js +1 -1
- package/indicators/obv.src.js +1 -1
- package/indicators/pivot-points.js +1 -1
- package/indicators/pivot-points.src.js +1 -1
- package/indicators/ppo.js +5 -6
- package/indicators/ppo.js.map +1 -1
- package/indicators/ppo.src.js +3 -75
- package/indicators/price-channel.js +9 -9
- package/indicators/price-channel.js.map +1 -1
- package/indicators/price-channel.src.js +207 -168
- 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.src.js +9 -9
- package/indicators/roc.js +1 -1
- package/indicators/roc.src.js +1 -1
- package/indicators/rsi.js +1 -1
- package/indicators/rsi.src.js +1 -1
- package/indicators/slow-stochastic.js +5 -6
- package/indicators/slow-stochastic.js.map +1 -1
- package/indicators/slow-stochastic.src.js +2 -72
- package/indicators/stochastic.js +10 -10
- package/indicators/stochastic.js.map +1 -1
- package/indicators/stochastic.src.js +209 -164
- package/indicators/supertrend.js +10 -10
- package/indicators/supertrend.js.map +1 -1
- package/indicators/supertrend.src.js +6 -7
- package/indicators/tema.js +6 -7
- package/indicators/tema.js.map +1 -1
- package/indicators/tema.src.js +28 -75
- package/indicators/trendline.js +1 -1
- package/indicators/trendline.src.js +1 -1
- package/indicators/trix.js +4 -5
- package/indicators/trix.js.map +1 -1
- package/indicators/trix.src.js +8 -76
- package/indicators/volume-by-price.js +16 -16
- package/indicators/volume-by-price.js.map +1 -1
- package/indicators/volume-by-price.src.js +21 -3
- package/indicators/vwap.js +1 -1
- package/indicators/vwap.src.js +1 -1
- package/indicators/williams-r.js +5 -6
- package/indicators/williams-r.js.map +1 -1
- package/indicators/williams-r.src.js +41 -51
- 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 +5 -0
- package/modules/accessibility.js +234 -216
- package/modules/accessibility.js.map +1 -1
- package/modules/accessibility.src.d.ts +5 -0
- package/modules/accessibility.src.js +9709 -8608
- package/modules/annotations-advanced.d.ts +30 -0
- package/modules/annotations-advanced.js +191 -165
- package/modules/annotations-advanced.js.map +1 -1
- package/modules/annotations-advanced.src.d.ts +30 -0
- package/modules/annotations-advanced.src.js +1578 -320
- package/modules/annotations.js +121 -107
- package/modules/annotations.js.map +1 -1
- package/modules/annotations.src.js +958 -229
- package/modules/arrow-symbols.js +1 -1
- package/modules/arrow-symbols.src.js +1 -1
- package/modules/boost-canvas.js +15 -15
- package/modules/boost-canvas.js.map +1 -1
- package/modules/boost-canvas.src.js +3 -3
- package/modules/boost.js +79 -79
- package/modules/boost.js.map +1 -1
- package/modules/boost.src.js +10 -9
- package/modules/broken-axis.js +1 -1
- package/modules/broken-axis.src.js +1 -1
- package/modules/bullet.js +1 -1
- package/modules/bullet.src.js +1 -1
- package/modules/coloraxis.js +24 -24
- package/modules/coloraxis.js.map +1 -1
- package/modules/coloraxis.src.js +69 -98
- package/modules/current-date-indicator.js +4 -4
- package/modules/current-date-indicator.js.map +1 -1
- package/modules/current-date-indicator.src.js +4 -4
- package/modules/cylinder.js +1 -1
- package/modules/cylinder.src.js +1 -1
- package/modules/data.js +19 -19
- package/modules/data.js.map +1 -1
- package/modules/data.src.js +9 -6
- package/modules/datagrouping.js +20 -20
- package/modules/datagrouping.js.map +1 -1
- package/modules/datagrouping.src.js +33 -19
- package/modules/debugger.js +1 -1
- package/modules/debugger.src.js +1 -1
- package/modules/dependency-wheel.js +11 -11
- package/modules/dependency-wheel.js.map +1 -1
- package/modules/dependency-wheel.src.js +4 -7
- package/modules/dotplot.js +1 -1
- package/modules/dotplot.src.js +1 -1
- package/modules/drag-panes.js +8 -8
- package/modules/drag-panes.js.map +1 -1
- package/modules/drag-panes.src.js +3 -3
- package/modules/draggable-points.js +1 -1
- package/modules/draggable-points.src.js +1 -1
- package/modules/drilldown.js +24 -24
- package/modules/drilldown.js.map +1 -1
- package/modules/drilldown.src.js +4 -4
- package/modules/dumbbell.js +17 -17
- package/modules/dumbbell.js.map +1 -1
- package/modules/dumbbell.src.js +4 -4
- package/modules/export-data.js +1 -1
- package/modules/export-data.js.map +1 -1
- package/modules/export-data.src.js +3 -3
- package/modules/exporting.js +39 -38
- package/modules/exporting.js.map +1 -1
- package/modules/exporting.src.js +98 -67
- package/modules/full-screen.js +1 -1
- package/modules/full-screen.src.js +1 -1
- package/modules/funnel.js +12 -12
- package/modules/funnel.js.map +1 -1
- package/modules/funnel.src.js +9 -6
- package/modules/funnel3d.js +1 -1
- package/modules/funnel3d.src.js +1 -1
- package/modules/gantt.js +217 -218
- package/modules/gantt.js.map +1 -1
- package/modules/gantt.src.js +167 -152
- package/modules/grid-axis.js +1 -1
- package/modules/grid-axis.src.js +1 -1
- package/modules/heatmap.js +39 -39
- package/modules/heatmap.js.map +1 -1
- package/modules/heatmap.src.js +177 -162
- package/modules/heikinashi.js +1 -1
- package/modules/heikinashi.src.js +4 -4
- package/modules/histogram-bellcurve.js +13 -13
- package/modules/histogram-bellcurve.js.map +1 -1
- package/modules/histogram-bellcurve.src.js +91 -86
- package/modules/hollowcandlestick.js +9 -9
- package/modules/hollowcandlestick.js.map +1 -1
- package/modules/hollowcandlestick.src.js +11 -11
- package/modules/item-series.js +1 -1
- package/modules/item-series.src.js +1 -1
- package/modules/lollipop.js +1 -1
- package/modules/lollipop.src.js +1 -1
- package/modules/map.d.ts +136 -14
- package/modules/map.js +142 -122
- package/modules/map.js.map +1 -1
- package/modules/map.src.d.ts +136 -14
- package/modules/map.src.js +2129 -1029
- package/modules/marker-clusters.js +36 -36
- package/modules/marker-clusters.js.map +1 -1
- package/modules/marker-clusters.src.js +173 -142
- package/modules/networkgraph.d.ts +12 -1
- package/modules/networkgraph.js +49 -49
- package/modules/networkgraph.js.map +1 -1
- package/modules/networkgraph.src.d.ts +12 -1
- package/modules/networkgraph.src.js +91 -43
- package/modules/no-data-to-display.js +5 -5
- package/modules/no-data-to-display.js.map +1 -1
- package/modules/no-data-to-display.src.js +3 -3
- package/modules/offline-exporting.js +17 -17
- package/modules/offline-exporting.js.map +1 -1
- package/modules/offline-exporting.src.js +13 -13
- package/modules/oldie-polyfills.js +1 -1
- package/modules/oldie-polyfills.src.js +1 -1
- package/modules/oldie.js +26 -26
- package/modules/oldie.js.map +1 -1
- package/modules/oldie.src.js +4 -4
- package/modules/organization.js +13 -13
- package/modules/organization.js.map +1 -1
- package/modules/organization.src.js +4 -4
- 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.src.js +1 -1
- package/modules/pareto.js +7 -7
- package/modules/pareto.js.map +1 -1
- package/modules/pareto.src.js +89 -78
- 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.d.ts +12 -1
- package/modules/sankey.js +29 -29
- package/modules/sankey.js.map +1 -1
- package/modules/sankey.src.d.ts +12 -1
- package/modules/sankey.src.js +300 -176
- package/modules/series-label.js +1 -1
- package/modules/series-label.src.js +1 -1
- package/modules/solid-gauge.js +1 -1
- package/modules/solid-gauge.src.js +1 -1
- package/modules/sonification.js +59 -55
- package/modules/sonification.js.map +1 -1
- package/modules/sonification.src.js +3034 -2553
- package/modules/static-scale.js +1 -1
- package/modules/static-scale.src.js +1 -1
- package/modules/stock-tools.js +177 -164
- package/modules/stock-tools.js.map +1 -1
- package/modules/stock-tools.src.js +1001 -131
- package/modules/stock.d.ts +39 -6
- package/modules/stock.js +204 -196
- package/modules/stock.js.map +1 -1
- package/modules/stock.src.d.ts +39 -6
- package/modules/stock.src.js +1689 -1081
- package/modules/streamgraph.js +1 -1
- package/modules/streamgraph.src.js +1 -1
- package/modules/sunburst.js +61 -60
- package/modules/sunburst.js.map +1 -1
- package/modules/sunburst.src.js +329 -266
- package/modules/tilemap.js +17 -17
- package/modules/tilemap.js.map +1 -1
- package/modules/tilemap.src.js +3 -4
- package/modules/timeline.js +18 -18
- package/modules/timeline.js.map +1 -1
- package/modules/timeline.src.js +5 -5
- package/modules/treegrid.js +56 -57
- package/modules/treegrid.js.map +1 -1
- package/modules/treegrid.src.js +126 -120
- package/modules/treemap.js +41 -41
- package/modules/treemap.js.map +1 -1
- package/modules/treemap.src.js +319 -254
- 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 +1 -1
- package/modules/vector.src.js +1 -1
- package/modules/venn.js +31 -31
- package/modules/venn.js.map +1 -1
- package/modules/venn.src.js +731 -721
- package/modules/windbarb.js +15 -15
- package/modules/windbarb.js.map +1 -1
- package/modules/windbarb.src.js +90 -62
- package/modules/wordcloud.js +23 -24
- package/modules/wordcloud.js.map +1 -1
- package/modules/wordcloud.src.js +897 -949
- package/modules/xrange.js +2 -2
- package/modules/xrange.js.map +1 -1
- package/modules/xrange.src.js +2 -1
- package/package.json +1 -1
- package/themes/avocado.js +1 -1
- package/themes/avocado.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/MapAxis.js +0 -157
- package/es-modules/Core/Color/Palette.js +0 -82
- package/es-modules/Extensions/Sonification/InstrumentDefinitions.js +0 -32
- package/es-modules/Mixins/ColorMapSeries.js +0 -82
- package/es-modules/Mixins/ColorSeries.js +0 -77
- package/es-modules/Mixins/DerivedSeries.js +0 -118
- package/es-modules/Mixins/DrawPoint.js +0 -81
- package/es-modules/Mixins/IndicatorRequired.js +0 -56
- package/es-modules/Mixins/Navigation.js +0 -54
- package/es-modules/Mixins/NelderMead.js +0 -132
- package/es-modules/Mixins/Polygon.js +0 -259
- package/es-modules/Mixins/ReduceArray.js +0 -54
|
@@ -10,453 +10,22 @@
|
|
|
10
10
|
*
|
|
11
11
|
* */
|
|
12
12
|
'use strict';
|
|
13
|
-
import
|
|
14
|
-
/**
|
|
15
|
-
* An Earcon configuration, specifying an Earcon and when to play it.
|
|
16
|
-
*
|
|
17
|
-
* @requires module:modules/sonification
|
|
18
|
-
*
|
|
19
|
-
* @interface Highcharts.EarconConfiguration
|
|
20
|
-
*/ /**
|
|
21
|
-
* An Earcon instance.
|
|
22
|
-
* @name Highcharts.EarconConfiguration#earcon
|
|
23
|
-
* @type {Highcharts.Earcon}
|
|
24
|
-
*/ /**
|
|
25
|
-
* The ID of the point to play the Earcon on.
|
|
26
|
-
* @name Highcharts.EarconConfiguration#onPoint
|
|
27
|
-
* @type {string|undefined}
|
|
28
|
-
*/ /**
|
|
29
|
-
* A function to determine whether or not to play this earcon on a point. The
|
|
30
|
-
* function is called for every point, receiving that point as parameter. It
|
|
31
|
-
* should return either a boolean indicating whether or not to play the earcon,
|
|
32
|
-
* or a new Earcon instance - in which case the new Earcon will be played.
|
|
33
|
-
* @name Highcharts.EarconConfiguration#condition
|
|
34
|
-
* @type {Function|undefined}
|
|
35
|
-
*/
|
|
36
|
-
/**
|
|
37
|
-
* Options for sonifying a series.
|
|
38
|
-
*
|
|
39
|
-
* @requires module:modules/sonification
|
|
40
|
-
*
|
|
41
|
-
* @interface Highcharts.SonifySeriesOptionsObject
|
|
42
|
-
*/ /**
|
|
43
|
-
* The duration for playing the points. Note that points might continue to play
|
|
44
|
-
* after the duration has passed, but no new points will start playing.
|
|
45
|
-
* @name Highcharts.SonifySeriesOptionsObject#duration
|
|
46
|
-
* @type {number}
|
|
47
|
-
*/ /**
|
|
48
|
-
* The axis to use for when to play the points. Can be a string with a data
|
|
49
|
-
* property (e.g. `x`), or a function. If it is a function, this function
|
|
50
|
-
* receives the point as argument, and should return a numeric value. The points
|
|
51
|
-
* with the lowest numeric values are then played first, and the time between
|
|
52
|
-
* points will be proportional to the distance between the numeric values.
|
|
53
|
-
* @name Highcharts.SonifySeriesOptionsObject#pointPlayTime
|
|
54
|
-
* @type {string|Function}
|
|
55
|
-
*/ /**
|
|
56
|
-
* The instrument definitions for the points in this series.
|
|
57
|
-
* @name Highcharts.SonifySeriesOptionsObject#instruments
|
|
58
|
-
* @type {Array<Highcharts.PointInstrumentObject>}
|
|
59
|
-
*/ /**
|
|
60
|
-
* Earcons to add to the series.
|
|
61
|
-
* @name Highcharts.SonifySeriesOptionsObject#earcons
|
|
62
|
-
* @type {Array<Highcharts.EarconConfiguration>|undefined}
|
|
63
|
-
*/ /**
|
|
64
|
-
* Optionally provide the minimum/maximum data values for the points. If this is
|
|
65
|
-
* not supplied, it is calculated from all points in the chart on demand. This
|
|
66
|
-
* option is supplied in the following format, as a map of point data properties
|
|
67
|
-
* to objects with min/max values:
|
|
68
|
-
* ```js
|
|
69
|
-
* dataExtremes: {
|
|
70
|
-
* y: {
|
|
71
|
-
* min: 0,
|
|
72
|
-
* max: 100
|
|
73
|
-
* },
|
|
74
|
-
* z: {
|
|
75
|
-
* min: -10,
|
|
76
|
-
* max: 10
|
|
77
|
-
* }
|
|
78
|
-
* // Properties used and not provided are calculated on demand
|
|
79
|
-
* }
|
|
80
|
-
* ```
|
|
81
|
-
* @name Highcharts.SonifySeriesOptionsObject#dataExtremes
|
|
82
|
-
* @type {Highcharts.Dictionary<Highcharts.RangeObject>|undefined}
|
|
83
|
-
*/ /**
|
|
84
|
-
* Callback before a point is played.
|
|
85
|
-
* @name Highcharts.SonifySeriesOptionsObject#onPointStart
|
|
86
|
-
* @type {Function|undefined}
|
|
87
|
-
*/ /**
|
|
88
|
-
* Callback after a point has finished playing.
|
|
89
|
-
* @name Highcharts.SonifySeriesOptionsObject#onPointEnd
|
|
90
|
-
* @type {Function|undefined}
|
|
91
|
-
*/ /**
|
|
92
|
-
* Callback after the series has played.
|
|
93
|
-
* @name Highcharts.SonifySeriesOptionsObject#onEnd
|
|
94
|
-
* @type {Function|undefined}
|
|
95
|
-
*/
|
|
96
|
-
''; // detach doclets above
|
|
13
|
+
import Earcon from './Earcon.js';
|
|
97
14
|
import Point from '../../Core/Series/Point.js';
|
|
15
|
+
import SeriesSonify from './SeriesSonify.js';
|
|
16
|
+
import SU from './SonificationUtilities.js';
|
|
17
|
+
var getExtremesForInstrumentProps = SU.getExtremesForInstrumentProps, virtualAxisTranslate = SU.virtualAxisTranslate;
|
|
18
|
+
import Timeline from './Timeline.js';
|
|
19
|
+
import TimelineEvent from './TimelineEvent.js';
|
|
20
|
+
import TimelinePath from './TimelinePath.js';
|
|
98
21
|
import U from '../../Core/Utilities.js';
|
|
99
|
-
var
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Get the relative time value of a point.
|
|
103
|
-
* @private
|
|
104
|
-
* @param {Highcharts.Point} point
|
|
105
|
-
* The point.
|
|
106
|
-
* @param {Function|string} timeProp
|
|
107
|
-
* The time axis data prop or the time function.
|
|
108
|
-
* @return {number}
|
|
109
|
-
* The time value.
|
|
110
|
-
*/
|
|
111
|
-
function getPointTimeValue(point, timeProp) {
|
|
112
|
-
return typeof timeProp === 'function' ?
|
|
113
|
-
timeProp(point) :
|
|
114
|
-
pick(point[timeProp], point.options[timeProp]);
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Get the time extremes of this series. This is handled outside of the
|
|
118
|
-
* dataExtremes, as we always want to just sonify the visible points, and we
|
|
119
|
-
* always want the extremes to be the extremes of the visible points.
|
|
120
|
-
* @private
|
|
121
|
-
* @param {Highcharts.Series} series
|
|
122
|
-
* The series to compute on.
|
|
123
|
-
* @param {Function|string} timeProp
|
|
124
|
-
* The time axis data prop or the time function.
|
|
125
|
-
* @return {Highcharts.RangeObject}
|
|
126
|
-
* Object with min/max extremes for the time values.
|
|
127
|
-
*/
|
|
128
|
-
function getTimeExtremes(series, timeProp) {
|
|
129
|
-
// Compute the extremes from the visible points.
|
|
130
|
-
return series.points.reduce(function (acc, point) {
|
|
131
|
-
var value = getPointTimeValue(point, timeProp);
|
|
132
|
-
acc.min = Math.min(acc.min, value);
|
|
133
|
-
acc.max = Math.max(acc.max, value);
|
|
134
|
-
return acc;
|
|
135
|
-
}, {
|
|
136
|
-
min: Infinity,
|
|
137
|
-
max: -Infinity
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Calculate value extremes for used instrument data properties on a chart.
|
|
142
|
-
* @private
|
|
143
|
-
* @param {Highcharts.Chart} chart
|
|
144
|
-
* The chart to calculate extremes from.
|
|
145
|
-
* @param {Array<Highcharts.PointInstrumentObject>} [instruments]
|
|
146
|
-
* Additional instrument definitions to inspect for data props used, in
|
|
147
|
-
* addition to the instruments defined in the chart options.
|
|
148
|
-
* @param {Highcharts.Dictionary<Highcharts.RangeObject>} [dataExtremes]
|
|
149
|
-
* Predefined extremes for each data prop.
|
|
150
|
-
* @return {Highcharts.Dictionary<Highcharts.RangeObject>}
|
|
151
|
-
* New extremes with data properties mapped to min/max objects.
|
|
152
|
-
*/
|
|
153
|
-
function getExtremesForInstrumentProps(chart, instruments, dataExtremes) {
|
|
154
|
-
var allInstrumentDefinitions = (instruments || []).slice(0);
|
|
155
|
-
var defaultInstrumentDef = (chart.options.sonification &&
|
|
156
|
-
chart.options.sonification.defaultInstrumentOptions);
|
|
157
|
-
var optionDefToInstrDef = function (optionDef) { return ({
|
|
158
|
-
instrumentMapping: optionDef.mapping
|
|
159
|
-
}); };
|
|
160
|
-
if (defaultInstrumentDef) {
|
|
161
|
-
allInstrumentDefinitions.push(optionDefToInstrDef(defaultInstrumentDef));
|
|
162
|
-
}
|
|
163
|
-
chart.series.forEach(function (series) {
|
|
164
|
-
var instrOptions = (series.options.sonification &&
|
|
165
|
-
series.options.sonification.instruments);
|
|
166
|
-
if (instrOptions) {
|
|
167
|
-
allInstrumentDefinitions = allInstrumentDefinitions.concat(instrOptions.map(optionDefToInstrDef));
|
|
168
|
-
}
|
|
169
|
-
});
|
|
170
|
-
return (allInstrumentDefinitions).reduce(function (newExtremes, instrumentDefinition) {
|
|
171
|
-
Object.keys(instrumentDefinition.instrumentMapping || {}).forEach(function (instrumentParameter) {
|
|
172
|
-
var value = instrumentDefinition.instrumentMapping[instrumentParameter];
|
|
173
|
-
if (typeof value === 'string' && !newExtremes[value]) {
|
|
174
|
-
// This instrument parameter is mapped to a data prop.
|
|
175
|
-
// If we don't have predefined data extremes, find them.
|
|
176
|
-
newExtremes[value] = utilities.calculateDataExtremes(chart, value);
|
|
177
|
-
}
|
|
178
|
-
});
|
|
179
|
-
return newExtremes;
|
|
180
|
-
}, merge(dataExtremes));
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* Get earcons for the point if there are any.
|
|
184
|
-
* @private
|
|
185
|
-
* @param {Highcharts.Point} point
|
|
186
|
-
* The point to find earcons for.
|
|
187
|
-
* @param {Array<Highcharts.EarconConfiguration>} earconDefinitions
|
|
188
|
-
* Earcons to check.
|
|
189
|
-
* @return {Array<Highcharts.Earcon>}
|
|
190
|
-
* Array of earcons to be played with this point.
|
|
191
|
-
*/
|
|
192
|
-
function getPointEarcons(point, earconDefinitions) {
|
|
193
|
-
return earconDefinitions.reduce(function (earcons, earconDefinition) {
|
|
194
|
-
var cond, earcon = earconDefinition.earcon;
|
|
195
|
-
if (earconDefinition.condition) {
|
|
196
|
-
// We have a condition. This overrides onPoint
|
|
197
|
-
cond = earconDefinition.condition(point);
|
|
198
|
-
if (cond instanceof H.sonification.Earcon) {
|
|
199
|
-
// Condition returned an earcon
|
|
200
|
-
earcons.push(cond);
|
|
201
|
-
}
|
|
202
|
-
else if (cond) {
|
|
203
|
-
// Condition returned true
|
|
204
|
-
earcons.push(earcon);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
else if (earconDefinition.onPoint &&
|
|
208
|
-
point.id === earconDefinition.onPoint) {
|
|
209
|
-
// We have earcon onPoint
|
|
210
|
-
earcons.push(earcon);
|
|
211
|
-
}
|
|
212
|
-
return earcons;
|
|
213
|
-
}, []);
|
|
214
|
-
}
|
|
215
|
-
/**
|
|
216
|
-
* Utility function to get a new list of instrument options where all the
|
|
217
|
-
* instrument references are copies.
|
|
218
|
-
* @private
|
|
219
|
-
* @param {Array<Highcharts.PointInstrumentObject>} instruments
|
|
220
|
-
* The instrument options.
|
|
221
|
-
* @return {Array<Highcharts.PointInstrumentObject>}
|
|
222
|
-
* Array of copied instrument options.
|
|
223
|
-
*/
|
|
224
|
-
function makeInstrumentCopies(instruments) {
|
|
225
|
-
return instruments.map(function (instrumentDef) {
|
|
226
|
-
var instrument = instrumentDef.instrument, copy = (typeof instrument === 'string' ?
|
|
227
|
-
H.sonification.instruments[instrument] :
|
|
228
|
-
instrument).copy();
|
|
229
|
-
return merge(instrumentDef, { instrument: copy });
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* Utility function to apply a master volume to a list of instrument
|
|
234
|
-
* options.
|
|
235
|
-
* @private
|
|
236
|
-
* @param {Array<Highcharts.PointInstrumentObject>} instruments
|
|
237
|
-
* The instrument options. Only options with Instrument object instances
|
|
238
|
-
* will be affected.
|
|
239
|
-
* @param {number} masterVolume
|
|
240
|
-
* The master volume multiplier to apply to the instruments.
|
|
241
|
-
* @return {Array<Highcharts.PointInstrumentObject>}
|
|
242
|
-
* Array of instrument options.
|
|
243
|
-
*/
|
|
244
|
-
function applyMasterVolumeToInstruments(instruments, masterVolume) {
|
|
245
|
-
instruments.forEach(function (instrOpts) {
|
|
246
|
-
var instr = instrOpts.instrument;
|
|
247
|
-
if (typeof instr !== 'string') {
|
|
248
|
-
instr.setMasterVolume(masterVolume);
|
|
249
|
-
}
|
|
250
|
-
});
|
|
251
|
-
return instruments;
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Utility function to find the duration of the final note in a series.
|
|
255
|
-
* @private
|
|
256
|
-
* @param {Highcharts.Series} series The data series to calculate on.
|
|
257
|
-
* @param {Array<Highcharts.PointInstrumentObject>} instruments The instrument options for this series.
|
|
258
|
-
* @param {Highcharts.Dictionary<Highcharts.RangeObject>} dataExtremes Value extremes for the data series props.
|
|
259
|
-
* @return {number} The duration of the final note in milliseconds.
|
|
260
|
-
*/
|
|
261
|
-
function getFinalNoteDuration(series, instruments, dataExtremes) {
|
|
262
|
-
var finalPoint = series.points[series.points.length - 1];
|
|
263
|
-
return instruments.reduce(function (duration, instrument) {
|
|
264
|
-
var mapping = instrument.instrumentMapping.duration;
|
|
265
|
-
var instrumentDuration;
|
|
266
|
-
if (typeof mapping === 'string') {
|
|
267
|
-
instrumentDuration = 0; // Ignore, no easy way to map this
|
|
268
|
-
}
|
|
269
|
-
else if (typeof mapping === 'function') {
|
|
270
|
-
instrumentDuration = mapping(finalPoint, dataExtremes);
|
|
271
|
-
}
|
|
272
|
-
else {
|
|
273
|
-
instrumentDuration = mapping;
|
|
274
|
-
}
|
|
275
|
-
return Math.max(duration, instrumentDuration);
|
|
276
|
-
}, 0);
|
|
277
|
-
}
|
|
278
|
-
/**
|
|
279
|
-
* Create a TimelinePath from a series. Takes the same options as seriesSonify.
|
|
280
|
-
* To intuitively allow multiple series to play simultaneously we make copies of
|
|
281
|
-
* the instruments for each series.
|
|
282
|
-
* @private
|
|
283
|
-
* @param {Highcharts.Series} series
|
|
284
|
-
* The series to build from.
|
|
285
|
-
* @param {Highcharts.SonifySeriesOptionsObject} options
|
|
286
|
-
* The options for building the TimelinePath.
|
|
287
|
-
* @return {Highcharts.TimelinePath}
|
|
288
|
-
* A timeline path with events.
|
|
289
|
-
*/
|
|
290
|
-
function buildTimelinePathFromSeries(series, options) {
|
|
291
|
-
// options.timeExtremes is internal and used so that the calculations from
|
|
292
|
-
// chart.sonify can be reused.
|
|
293
|
-
var timeExtremes = options.timeExtremes || getTimeExtremes(series, options.pointPlayTime),
|
|
294
|
-
// Compute any data extremes that aren't defined yet
|
|
295
|
-
dataExtremes = getExtremesForInstrumentProps(series.chart, options.instruments, options.dataExtremes), minimumSeriesDurationMs = 10,
|
|
296
|
-
// Get the duration of the final note
|
|
297
|
-
finalNoteDuration = getFinalNoteDuration(series, options.instruments, dataExtremes),
|
|
298
|
-
// Get time offset for a point, relative to duration
|
|
299
|
-
pointToTime = function (point) {
|
|
300
|
-
return utilities.virtualAxisTranslate(getPointTimeValue(point, options.pointPlayTime), timeExtremes, { min: 0, max: Math.max(options.duration - finalNoteDuration, minimumSeriesDurationMs) });
|
|
301
|
-
}, masterVolume = pick(options.masterVolume, 1),
|
|
302
|
-
// Make copies of the instruments used for this series, to allow
|
|
303
|
-
// multiple series with the same instrument to play together
|
|
304
|
-
instrumentCopies = makeInstrumentCopies(options.instruments), instruments = applyMasterVolumeToInstruments(instrumentCopies, masterVolume),
|
|
305
|
-
// Go through the points, convert to events, optionally add Earcons
|
|
306
|
-
timelineEvents = series.points.reduce(function (events, point) {
|
|
307
|
-
var earcons = getPointEarcons(point, options.earcons || []), time = pointToTime(point);
|
|
308
|
-
return events.concat(
|
|
309
|
-
// Event object for point
|
|
310
|
-
new H.sonification.TimelineEvent({
|
|
311
|
-
eventObject: point,
|
|
312
|
-
time: time,
|
|
313
|
-
id: point.id,
|
|
314
|
-
playOptions: {
|
|
315
|
-
instruments: instruments,
|
|
316
|
-
dataExtremes: dataExtremes,
|
|
317
|
-
masterVolume: masterVolume
|
|
318
|
-
}
|
|
319
|
-
}),
|
|
320
|
-
// Earcons
|
|
321
|
-
earcons.map(function (earcon) {
|
|
322
|
-
return new H.sonification.TimelineEvent({
|
|
323
|
-
eventObject: earcon,
|
|
324
|
-
time: time,
|
|
325
|
-
playOptions: {
|
|
326
|
-
volume: masterVolume
|
|
327
|
-
}
|
|
328
|
-
});
|
|
329
|
-
}));
|
|
330
|
-
}, []);
|
|
331
|
-
// Build the timeline path
|
|
332
|
-
return new H.sonification.TimelinePath({
|
|
333
|
-
events: timelineEvents,
|
|
334
|
-
onStart: function () {
|
|
335
|
-
if (options.onStart) {
|
|
336
|
-
options.onStart(series);
|
|
337
|
-
}
|
|
338
|
-
},
|
|
339
|
-
onEventStart: function (event) {
|
|
340
|
-
var eventObject = event.options && event.options.eventObject;
|
|
341
|
-
if (eventObject instanceof Point) {
|
|
342
|
-
// Check for hidden series
|
|
343
|
-
if (!eventObject.series.visible &&
|
|
344
|
-
!eventObject.series.chart.series.some(function (series) {
|
|
345
|
-
return series.visible;
|
|
346
|
-
})) {
|
|
347
|
-
// We have no visible series, stop the path.
|
|
348
|
-
event.timelinePath.timeline.pause();
|
|
349
|
-
event.timelinePath.timeline.resetCursor();
|
|
350
|
-
return false;
|
|
351
|
-
}
|
|
352
|
-
// Emit onPointStart
|
|
353
|
-
if (options.onPointStart) {
|
|
354
|
-
options.onPointStart(event, eventObject);
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
},
|
|
358
|
-
onEventEnd: function (eventData) {
|
|
359
|
-
var eventObject = eventData.event && eventData.event.options &&
|
|
360
|
-
eventData.event.options.eventObject;
|
|
361
|
-
if (eventObject instanceof Point && options.onPointEnd) {
|
|
362
|
-
options.onPointEnd(eventData.event, eventObject);
|
|
363
|
-
}
|
|
364
|
-
},
|
|
365
|
-
onEnd: function () {
|
|
366
|
-
if (options.onEnd) {
|
|
367
|
-
options.onEnd(series);
|
|
368
|
-
}
|
|
369
|
-
},
|
|
370
|
-
targetDuration: options.duration
|
|
371
|
-
});
|
|
372
|
-
}
|
|
373
|
-
/* eslint-disable no-invalid-this, valid-jsdoc */
|
|
374
|
-
/**
|
|
375
|
-
* Sonify a series.
|
|
376
|
-
*
|
|
377
|
-
* @sample highcharts/sonification/series-basic/
|
|
378
|
-
* Click on series to sonify
|
|
379
|
-
* @sample highcharts/sonification/series-earcon/
|
|
380
|
-
* Series with earcon
|
|
381
|
-
* @sample highcharts/sonification/point-play-time/
|
|
382
|
-
* Play y-axis by time
|
|
383
|
-
* @sample highcharts/sonification/earcon-on-point/
|
|
384
|
-
* Earcon set on point
|
|
385
|
-
*
|
|
386
|
-
* @requires module:modules/sonification
|
|
387
|
-
*
|
|
388
|
-
* @function Highcharts.Series#sonify
|
|
22
|
+
var addEvent = U.addEvent, extend = U.extend, merge = U.merge, pick = U.pick, splat = U.splat;
|
|
23
|
+
/* *
|
|
389
24
|
*
|
|
390
|
-
*
|
|
391
|
-
* The options for sonifying this series. If not provided,
|
|
392
|
-
* uses options set on chart and series.
|
|
25
|
+
* Functions
|
|
393
26
|
*
|
|
394
|
-
*
|
|
395
|
-
*/
|
|
396
|
-
function seriesSonify(options) {
|
|
397
|
-
var mergedOptions = getSeriesSonifyOptions(this, options);
|
|
398
|
-
var timelinePath = buildTimelinePathFromSeries(this, mergedOptions);
|
|
399
|
-
var chartSonification = this.chart.sonification;
|
|
400
|
-
// Only one timeline can play at a time. If we want multiple series playing
|
|
401
|
-
// at the same time, use chart.sonify.
|
|
402
|
-
if (chartSonification.timeline) {
|
|
403
|
-
chartSonification.timeline.pause();
|
|
404
|
-
}
|
|
405
|
-
// Store reference to duration
|
|
406
|
-
chartSonification.duration = mergedOptions.duration;
|
|
407
|
-
// Create new timeline for this series, and play it.
|
|
408
|
-
chartSonification.timeline = new H.sonification.Timeline({
|
|
409
|
-
paths: [timelinePath]
|
|
410
|
-
});
|
|
411
|
-
chartSonification.timeline.play();
|
|
412
|
-
}
|
|
413
|
-
/**
|
|
414
|
-
* Utility function to assemble options for creating a TimelinePath from a
|
|
415
|
-
* series when sonifying an entire chart.
|
|
416
|
-
* @private
|
|
417
|
-
* @param {Highcharts.Series} series
|
|
418
|
-
* The series to return options for.
|
|
419
|
-
* @param {Highcharts.RangeObject} dataExtremes
|
|
420
|
-
* Pre-calculated data extremes for the chart.
|
|
421
|
-
* @param {Highcharts.SonificationOptions} chartSonifyOptions
|
|
422
|
-
* Options passed in to chart.sonify.
|
|
423
|
-
* @return {Partial<Highcharts.SonifySeriesOptionsObject>}
|
|
424
|
-
* Options for buildTimelinePathFromSeries.
|
|
425
|
-
*/
|
|
426
|
-
function buildChartSonifySeriesOptions(series, dataExtremes, chartSonifyOptions) {
|
|
427
|
-
var additionalSeriesOptions = chartSonifyOptions.seriesOptions || {};
|
|
428
|
-
var pointPlayTime = (series.chart.options.sonification &&
|
|
429
|
-
series.chart.options.sonification.defaultInstrumentOptions &&
|
|
430
|
-
series.chart.options.sonification.defaultInstrumentOptions.mapping &&
|
|
431
|
-
series.chart.options.sonification.defaultInstrumentOptions.mapping.pointPlayTime ||
|
|
432
|
-
'x');
|
|
433
|
-
var configOptions = chartOptionsToSonifySeriesOptions(series);
|
|
434
|
-
return merge(
|
|
435
|
-
// Options from chart configuration
|
|
436
|
-
configOptions,
|
|
437
|
-
// Options passed in
|
|
438
|
-
{
|
|
439
|
-
// Calculated dataExtremes for chart
|
|
440
|
-
dataExtremes: dataExtremes,
|
|
441
|
-
// We need to get timeExtremes for each series. We pass this
|
|
442
|
-
// in when building the TimelinePath objects to avoid
|
|
443
|
-
// calculating twice.
|
|
444
|
-
timeExtremes: getTimeExtremes(series, pointPlayTime),
|
|
445
|
-
// Some options we just pass on
|
|
446
|
-
instruments: chartSonifyOptions.instruments || configOptions.instruments,
|
|
447
|
-
onStart: chartSonifyOptions.onSeriesStart || configOptions.onStart,
|
|
448
|
-
onEnd: chartSonifyOptions.onSeriesEnd || configOptions.onEnd,
|
|
449
|
-
earcons: chartSonifyOptions.earcons || configOptions.earcons,
|
|
450
|
-
masterVolume: pick(chartSonifyOptions.masterVolume, configOptions.masterVolume)
|
|
451
|
-
},
|
|
452
|
-
// Merge in the specific series options by ID if any are passed in
|
|
453
|
-
isArray(additionalSeriesOptions) ? (find(additionalSeriesOptions, function (optEntry) {
|
|
454
|
-
return optEntry.id === pick(series.id, series.options.id);
|
|
455
|
-
}) || {}) : additionalSeriesOptions, {
|
|
456
|
-
// Forced options
|
|
457
|
-
pointPlayTime: pointPlayTime
|
|
458
|
-
});
|
|
459
|
-
}
|
|
27
|
+
* */
|
|
28
|
+
/* eslint-disable valid-jsdoc */
|
|
460
29
|
/**
|
|
461
30
|
* Utility function to normalize the ordering of timeline paths when sonifying
|
|
462
31
|
* a chart.
|
|
@@ -511,17 +80,17 @@ function buildPathOrder(orderOptions, chart, seriesOptionsCallback) {
|
|
|
511
80
|
}
|
|
512
81
|
// Is it an earcon? If so, just create the path.
|
|
513
82
|
}
|
|
514
|
-
else if (item instanceof
|
|
83
|
+
else if (item instanceof Earcon) {
|
|
515
84
|
// Path with a single event
|
|
516
|
-
itemObject = new
|
|
517
|
-
events: [new
|
|
85
|
+
itemObject = new TimelinePath({
|
|
86
|
+
events: [new TimelineEvent({
|
|
518
87
|
eventObject: item
|
|
519
88
|
})]
|
|
520
89
|
});
|
|
521
90
|
}
|
|
522
91
|
// Is this item a silent wait? If so, just create the path.
|
|
523
92
|
if (item.silentWait) {
|
|
524
|
-
itemObject = new
|
|
93
|
+
itemObject = new TimelinePath({
|
|
525
94
|
silentWait: item.silentWait
|
|
526
95
|
});
|
|
527
96
|
}
|
|
@@ -564,7 +133,7 @@ function addAfterSeriesWaits(order, wait) {
|
|
|
564
133
|
})) {
|
|
565
134
|
// We have a series, meaning we should add a wait after these
|
|
566
135
|
// paths have finished.
|
|
567
|
-
newOrder.push(new
|
|
136
|
+
newOrder.push(new TimelinePath({
|
|
568
137
|
silentWait: wait
|
|
569
138
|
}));
|
|
570
139
|
}
|
|
@@ -609,12 +178,12 @@ function syncSimultaneousPaths(paths) {
|
|
|
609
178
|
paths.forEach(function (path) {
|
|
610
179
|
var events = path.events, hasEvents = events && events.length, eventsToAdd = [];
|
|
611
180
|
if (!(hasEvents && events[0].time <= extremes.min)) {
|
|
612
|
-
eventsToAdd.push(new
|
|
181
|
+
eventsToAdd.push(new TimelineEvent({
|
|
613
182
|
time: extremes.min
|
|
614
183
|
}));
|
|
615
184
|
}
|
|
616
185
|
if (!(hasEvents && events[events.length - 1].time >= extremes.max)) {
|
|
617
|
-
eventsToAdd.push(new
|
|
186
|
+
eventsToAdd.push(new TimelineEvent({
|
|
618
187
|
time: extremes.max
|
|
619
188
|
}));
|
|
620
189
|
}
|
|
@@ -655,7 +224,7 @@ function getSimulPathDurationTotal(order) {
|
|
|
655
224
|
*/
|
|
656
225
|
function getSeriesDurationMs(seriesValueDuration, totalValueDuration, totalDurationMs) {
|
|
657
226
|
// A series spanning the whole chart would get the full duration.
|
|
658
|
-
return
|
|
227
|
+
return virtualAxisTranslate(seriesValueDuration, { min: 0, max: totalValueDuration }, { min: 0, max: totalDurationMs });
|
|
659
228
|
}
|
|
660
229
|
/**
|
|
661
230
|
* Convert series building objects into paths and return a new list of
|
|
@@ -677,7 +246,7 @@ function buildPathsFromOrder(order, duration) {
|
|
|
677
246
|
// Go through the order list and convert the items
|
|
678
247
|
return order.reduce(function (allPaths, orderDef) {
|
|
679
248
|
var simultaneousPaths = splat(orderDef).reduce(function (simulPaths, item) {
|
|
680
|
-
if (item instanceof
|
|
249
|
+
if (item instanceof TimelinePath) {
|
|
681
250
|
// This item is already a path object
|
|
682
251
|
simulPaths.push(item);
|
|
683
252
|
}
|
|
@@ -688,7 +257,7 @@ function buildPathsFromOrder(order, duration) {
|
|
|
688
257
|
item.seriesOptions.duration || getSeriesDurationMs(item.seriesOptions.timeExtremes.max -
|
|
689
258
|
item.seriesOptions.timeExtremes.min, totalUsedDuration, totalAvailableDurationMs);
|
|
690
259
|
// Add the path
|
|
691
|
-
simulPaths.push(buildTimelinePathFromSeries(item.series, item.seriesOptions));
|
|
260
|
+
simulPaths.push(SeriesSonify.buildTimelinePathFromSeries(item.series, item.seriesOptions));
|
|
692
261
|
}
|
|
693
262
|
return simulPaths;
|
|
694
263
|
}, []);
|
|
@@ -697,95 +266,12 @@ function buildPathsFromOrder(order, duration) {
|
|
|
697
266
|
return allPaths;
|
|
698
267
|
}, []);
|
|
699
268
|
}
|
|
700
|
-
/**
|
|
701
|
-
* @private
|
|
702
|
-
* @param {Highcharts.Series} series The series to get options for.
|
|
703
|
-
* @param {Highcharts.SonifySeriesOptionsObject} options
|
|
704
|
-
* Options to merge with user options on series/chart and default options.
|
|
705
|
-
* @returns {Array<Highcharts.PointInstrumentObject>} The merged options.
|
|
706
|
-
*/
|
|
707
|
-
function getSeriesInstrumentOptions(series, options) {
|
|
708
|
-
if (options && options.instruments) {
|
|
709
|
-
return options.instruments;
|
|
710
|
-
}
|
|
711
|
-
var defaultInstrOpts = (series.chart.options.sonification &&
|
|
712
|
-
series.chart.options.sonification.defaultInstrumentOptions ||
|
|
713
|
-
{});
|
|
714
|
-
var seriesInstrOpts = (series.options.sonification &&
|
|
715
|
-
series.options.sonification.instruments ||
|
|
716
|
-
[{}]);
|
|
717
|
-
var removeNullsFromObject = function (obj) {
|
|
718
|
-
objectEach(obj, function (val, key) {
|
|
719
|
-
if (val === null) {
|
|
720
|
-
delete obj[key];
|
|
721
|
-
}
|
|
722
|
-
});
|
|
723
|
-
};
|
|
724
|
-
// Convert series options to PointInstrumentObjects and merge with
|
|
725
|
-
// default options
|
|
726
|
-
return (seriesInstrOpts).map(function (optionSet) {
|
|
727
|
-
// Allow setting option to null to use default
|
|
728
|
-
removeNullsFromObject(optionSet.mapping || {});
|
|
729
|
-
removeNullsFromObject(optionSet);
|
|
730
|
-
return {
|
|
731
|
-
instrument: optionSet.instrument || defaultInstrOpts.instrument,
|
|
732
|
-
instrumentOptions: merge(defaultInstrOpts, optionSet, {
|
|
733
|
-
// Instrument options are lifted to root in the API options
|
|
734
|
-
// object, so merge all in order to avoid missing any. But
|
|
735
|
-
// remove the following which are not instrumentOptions:
|
|
736
|
-
mapping: void 0,
|
|
737
|
-
instrument: void 0
|
|
738
|
-
}),
|
|
739
|
-
instrumentMapping: merge(defaultInstrOpts.mapping, optionSet.mapping)
|
|
740
|
-
};
|
|
741
|
-
});
|
|
742
|
-
}
|
|
743
|
-
/**
|
|
744
|
-
* Utility function to translate between options set in chart configuration and
|
|
745
|
-
* a SonifySeriesOptionsObject.
|
|
746
|
-
* @private
|
|
747
|
-
* @param {Highcharts.Series} series The series to get options for.
|
|
748
|
-
* @returns {Highcharts.SonifySeriesOptionsObject} Options for chart/series.sonify()
|
|
749
|
-
*/
|
|
750
|
-
function chartOptionsToSonifySeriesOptions(series) {
|
|
751
|
-
var seriesOpts = series.options.sonification || {};
|
|
752
|
-
var chartOpts = series.chart.options.sonification || {};
|
|
753
|
-
var chartEvents = chartOpts.events || {};
|
|
754
|
-
var seriesEvents = seriesOpts.events || {};
|
|
755
|
-
return {
|
|
756
|
-
onEnd: seriesEvents.onSeriesEnd || chartEvents.onSeriesEnd,
|
|
757
|
-
onStart: seriesEvents.onSeriesStart || chartEvents.onSeriesStart,
|
|
758
|
-
onPointEnd: seriesEvents.onPointEnd || chartEvents.onPointEnd,
|
|
759
|
-
onPointStart: seriesEvents.onPointStart || chartEvents.onPointStart,
|
|
760
|
-
pointPlayTime: (chartOpts.defaultInstrumentOptions &&
|
|
761
|
-
chartOpts.defaultInstrumentOptions.mapping &&
|
|
762
|
-
chartOpts.defaultInstrumentOptions.mapping.pointPlayTime),
|
|
763
|
-
masterVolume: chartOpts.masterVolume,
|
|
764
|
-
instruments: getSeriesInstrumentOptions(series),
|
|
765
|
-
earcons: seriesOpts.earcons || chartOpts.earcons
|
|
766
|
-
};
|
|
767
|
-
}
|
|
768
|
-
/**
|
|
769
|
-
* @private
|
|
770
|
-
* @param {Highcharts.Series} series The series to get options for.
|
|
771
|
-
* @param {Highcharts.SonifySeriesOptionsObject} options
|
|
772
|
-
* Options to merge with user options on series/chart and default options.
|
|
773
|
-
* @returns {Highcharts.SonifySeriesOptionsObject} The merged options.
|
|
774
|
-
*/
|
|
775
|
-
function getSeriesSonifyOptions(series, options) {
|
|
776
|
-
var chartOpts = series.chart.options.sonification;
|
|
777
|
-
var seriesOpts = series.options.sonification;
|
|
778
|
-
return merge({
|
|
779
|
-
duration: ((seriesOpts && seriesOpts.duration) ||
|
|
780
|
-
(chartOpts && chartOpts.duration))
|
|
781
|
-
}, chartOptionsToSonifySeriesOptions(series), options);
|
|
782
|
-
}
|
|
783
269
|
/**
|
|
784
270
|
* @private
|
|
785
271
|
* @param {Highcharts.Chart} chart The chart to get options for.
|
|
786
272
|
* @param {Highcharts.SonificationOptions} options
|
|
787
273
|
* Options to merge with user options on chart and default options.
|
|
788
|
-
* @
|
|
274
|
+
* @return {Highcharts.SonificationOptions} The merged options.
|
|
789
275
|
*/
|
|
790
276
|
function getChartSonifyOptions(chart, options) {
|
|
791
277
|
var chartOpts = chart.options.sonification || {};
|
|
@@ -801,95 +287,6 @@ function getChartSonifyOptions(chart, options) {
|
|
|
801
287
|
onEnd: (chartOpts.events && chartOpts.events.onEnd)
|
|
802
288
|
}, options);
|
|
803
289
|
}
|
|
804
|
-
/**
|
|
805
|
-
* Options for sonifying a chart.
|
|
806
|
-
*
|
|
807
|
-
* @requires module:modules/sonification
|
|
808
|
-
*
|
|
809
|
-
* @interface Highcharts.SonificationOptions
|
|
810
|
-
*/ /**
|
|
811
|
-
* Duration for sonifying the entire chart. The duration is distributed across
|
|
812
|
-
* the different series intelligently, but does not take earcons into account.
|
|
813
|
-
* It is also possible to set the duration explicitly per series, using
|
|
814
|
-
* `seriesOptions`. Note that points may continue to play after the duration has
|
|
815
|
-
* passed, but no new points will start playing.
|
|
816
|
-
* @name Highcharts.SonificationOptions#duration
|
|
817
|
-
* @type {number}
|
|
818
|
-
*/ /**
|
|
819
|
-
* Define the order to play the series in. This can be given as a string, or an
|
|
820
|
-
* array specifying a custom ordering. If given as a string, valid values are
|
|
821
|
-
* `sequential` - where each series is played in order - or `simultaneous`,
|
|
822
|
-
* where all series are played at once. For custom ordering, supply an array as
|
|
823
|
-
* the order. Each element in the array can be either a string with a series ID,
|
|
824
|
-
* an Earcon object, or an object with a numeric `silentWait` property
|
|
825
|
-
* designating a number of milliseconds to wait before continuing. Each element
|
|
826
|
-
* of the array will be played in order. To play elements simultaneously, group
|
|
827
|
-
* the elements in an array.
|
|
828
|
-
* @name Highcharts.SonificationOptions#order
|
|
829
|
-
* @type {string|Array<string|Highcharts.Earcon|Array<string|Highcharts.Earcon>>}
|
|
830
|
-
*/ /**
|
|
831
|
-
* The axis to use for when to play the points. Can be a string with a data
|
|
832
|
-
* property (e.g. `x`), or a function. If it is a function, this function
|
|
833
|
-
* receives the point as argument, and should return a numeric value. The points
|
|
834
|
-
* with the lowest numeric values are then played first, and the time between
|
|
835
|
-
* points will be proportional to the distance between the numeric values. This
|
|
836
|
-
* option can not be overridden per series.
|
|
837
|
-
* @name Highcharts.SonificationOptions#pointPlayTime
|
|
838
|
-
* @type {string|Function}
|
|
839
|
-
*/ /**
|
|
840
|
-
* Milliseconds of silent waiting to add between series. Note that waiting time
|
|
841
|
-
* is considered part of the sonify duration.
|
|
842
|
-
* @name Highcharts.SonificationOptions#afterSeriesWait
|
|
843
|
-
* @type {number|undefined}
|
|
844
|
-
*/ /**
|
|
845
|
-
* Options as given to `series.sonify` to override options per series. If the
|
|
846
|
-
* option is supplied as an array of options objects, the `id` property of the
|
|
847
|
-
* object should correspond to the series' id. If the option is supplied as a
|
|
848
|
-
* single object, the options apply to all series.
|
|
849
|
-
* @name Highcharts.SonificationOptions#seriesOptions
|
|
850
|
-
* @type {Object|Array<object>|undefined}
|
|
851
|
-
*/ /**
|
|
852
|
-
* The instrument definitions for the points in this chart.
|
|
853
|
-
* @name Highcharts.SonificationOptions#instruments
|
|
854
|
-
* @type {Array<Highcharts.PointInstrumentObject>|undefined}
|
|
855
|
-
*/ /**
|
|
856
|
-
* Earcons to add to the chart. Note that earcons can also be added per series
|
|
857
|
-
* using `seriesOptions`.
|
|
858
|
-
* @name Highcharts.SonificationOptions#earcons
|
|
859
|
-
* @type {Array<Highcharts.EarconConfiguration>|undefined}
|
|
860
|
-
*/ /**
|
|
861
|
-
* Optionally provide the minimum/maximum data values for the points. If this is
|
|
862
|
-
* not supplied, it is calculated from all points in the chart on demand. This
|
|
863
|
-
* option is supplied in the following format, as a map of point data properties
|
|
864
|
-
* to objects with min/max values:
|
|
865
|
-
* ```js
|
|
866
|
-
* dataExtremes: {
|
|
867
|
-
* y: {
|
|
868
|
-
* min: 0,
|
|
869
|
-
* max: 100
|
|
870
|
-
* },
|
|
871
|
-
* z: {
|
|
872
|
-
* min: -10,
|
|
873
|
-
* max: 10
|
|
874
|
-
* }
|
|
875
|
-
* // Properties used and not provided are calculated on demand
|
|
876
|
-
* }
|
|
877
|
-
* ```
|
|
878
|
-
* @name Highcharts.SonificationOptions#dataExtremes
|
|
879
|
-
* @type {Highcharts.Dictionary<Highcharts.RangeObject>|undefined}
|
|
880
|
-
*/ /**
|
|
881
|
-
* Callback before a series is played.
|
|
882
|
-
* @name Highcharts.SonificationOptions#onSeriesStart
|
|
883
|
-
* @type {Function|undefined}
|
|
884
|
-
*/ /**
|
|
885
|
-
* Callback after a series has finished playing.
|
|
886
|
-
* @name Highcharts.SonificationOptions#onSeriesEnd
|
|
887
|
-
* @type {Function|undefined}
|
|
888
|
-
*/ /**
|
|
889
|
-
* Callback after the chart has played.
|
|
890
|
-
* @name Highcharts.SonificationOptions#onEnd
|
|
891
|
-
* @type {Function|undefined}
|
|
892
|
-
*/
|
|
893
290
|
/**
|
|
894
291
|
* Sonify a chart.
|
|
895
292
|
*
|
|
@@ -909,10 +306,8 @@ function getChartSonifyOptions(chart, options) {
|
|
|
909
306
|
* @function Highcharts.Chart#sonify
|
|
910
307
|
*
|
|
911
308
|
* @param {Highcharts.SonificationOptions} [options]
|
|
912
|
-
*
|
|
913
|
-
*
|
|
914
|
-
*
|
|
915
|
-
* @return {void}
|
|
309
|
+
* The options for sonifying this chart. If not provided,
|
|
310
|
+
* uses options set on chart and series.
|
|
916
311
|
*/
|
|
917
312
|
function chartSonify(options) {
|
|
918
313
|
var opts = getChartSonifyOptions(this, options);
|
|
@@ -926,7 +321,7 @@ function chartSonify(options) {
|
|
|
926
321
|
var dataExtremes = getExtremesForInstrumentProps(this, opts.instruments, opts.dataExtremes);
|
|
927
322
|
// Figure out ordering of series and custom paths
|
|
928
323
|
var order = buildPathOrder(opts.order, this, function (series) {
|
|
929
|
-
return buildChartSonifySeriesOptions(series, dataExtremes, opts);
|
|
324
|
+
return SeriesSonify.buildChartSonifySeriesOptions(series, dataExtremes, opts);
|
|
930
325
|
});
|
|
931
326
|
// Add waits after simultaneous paths with series in them.
|
|
932
327
|
order = addAfterSeriesWaits(order, opts.afterSeriesWait || 0);
|
|
@@ -938,7 +333,7 @@ function chartSonify(options) {
|
|
|
938
333
|
syncSimultaneousPaths(simultaneousPaths);
|
|
939
334
|
});
|
|
940
335
|
// We have a set of paths. Create the timeline, and play it.
|
|
941
|
-
this.sonification.timeline = new
|
|
336
|
+
this.sonification.timeline = new Timeline({
|
|
942
337
|
paths: paths,
|
|
943
338
|
onEnd: opts.onEnd
|
|
944
339
|
});
|
|
@@ -960,7 +355,7 @@ function getCurrentPoints() {
|
|
|
960
355
|
cursorObj = this.sonification.timeline.getCursor(); // Cursor per pathID
|
|
961
356
|
return Object.keys(cursorObj).map(function (path) {
|
|
962
357
|
// Get the event objects under cursor for each path
|
|
963
|
-
return cursorObj[path].eventObject;
|
|
358
|
+
return cursorObj[path].options.eventObject;
|
|
964
359
|
}).filter(function (eventObj) {
|
|
965
360
|
// Return the events that are points
|
|
966
361
|
return eventObj instanceof Point;
|
|
@@ -1092,10 +487,48 @@ function resetCursorEnd() {
|
|
|
1092
487
|
this.sonification.timeline.resetCursorEnd();
|
|
1093
488
|
}
|
|
1094
489
|
}
|
|
1095
|
-
|
|
1096
|
-
|
|
490
|
+
var composedClasses = [];
|
|
491
|
+
/**
|
|
492
|
+
* @private
|
|
493
|
+
* @todo move to composition namespace with all functions
|
|
494
|
+
*/
|
|
495
|
+
function compose(ChartClass) {
|
|
496
|
+
if (composedClasses.indexOf(ChartClass) === -1) {
|
|
497
|
+
composedClasses.push(ChartClass);
|
|
498
|
+
var chartProto = ChartClass.prototype;
|
|
499
|
+
extend(chartProto, {
|
|
500
|
+
sonify: chartSonify,
|
|
501
|
+
pauseSonify: pause,
|
|
502
|
+
resumeSonify: resume,
|
|
503
|
+
rewindSonify: rewind,
|
|
504
|
+
cancelSonify: cancel,
|
|
505
|
+
getCurrentSonifyPoints: getCurrentPoints,
|
|
506
|
+
setSonifyCursor: setCursor,
|
|
507
|
+
resetSonifyCursor: resetCursor,
|
|
508
|
+
resetSonifyCursorEnd: resetCursorEnd
|
|
509
|
+
});
|
|
510
|
+
// Prepare charts for sonification on init
|
|
511
|
+
addEvent(ChartClass, 'init', function () {
|
|
512
|
+
this.sonification = {};
|
|
513
|
+
});
|
|
514
|
+
// Update with chart/series/point updates
|
|
515
|
+
addEvent(ChartClass, 'update', function (e) {
|
|
516
|
+
var newOptions = e.options.sonification;
|
|
517
|
+
if (newOptions) {
|
|
518
|
+
merge(true, this.options.sonification, newOptions);
|
|
519
|
+
}
|
|
520
|
+
});
|
|
521
|
+
}
|
|
522
|
+
return ChartClass;
|
|
523
|
+
}
|
|
524
|
+
/* *
|
|
525
|
+
*
|
|
526
|
+
* Default Export
|
|
527
|
+
*
|
|
528
|
+
* */
|
|
529
|
+
var ChartSonify = {
|
|
1097
530
|
chartSonify: chartSonify,
|
|
1098
|
-
|
|
531
|
+
compose: compose,
|
|
1099
532
|
pause: pause,
|
|
1100
533
|
resume: resume,
|
|
1101
534
|
rewind: rewind,
|
|
@@ -1105,4 +538,181 @@ var chartSonifyFunctions = {
|
|
|
1105
538
|
resetCursor: resetCursor,
|
|
1106
539
|
resetCursorEnd: resetCursorEnd
|
|
1107
540
|
};
|
|
1108
|
-
export default
|
|
541
|
+
export default ChartSonify;
|
|
542
|
+
/* *
|
|
543
|
+
*
|
|
544
|
+
* API Declarations
|
|
545
|
+
*
|
|
546
|
+
* */
|
|
547
|
+
/**
|
|
548
|
+
* An Earcon configuration, specifying an Earcon and when to play it.
|
|
549
|
+
*
|
|
550
|
+
* @requires module:modules/sonification
|
|
551
|
+
*
|
|
552
|
+
* @interface Highcharts.EarconConfiguration
|
|
553
|
+
*/ /**
|
|
554
|
+
* An Earcon instance.
|
|
555
|
+
* @name Highcharts.EarconConfiguration#earcon
|
|
556
|
+
* @type {Highcharts.Earcon}
|
|
557
|
+
*/ /**
|
|
558
|
+
* The ID of the point to play the Earcon on.
|
|
559
|
+
* @name Highcharts.EarconConfiguration#onPoint
|
|
560
|
+
* @type {string|undefined}
|
|
561
|
+
*/ /**
|
|
562
|
+
* A function to determine whether or not to play this earcon on a point. The
|
|
563
|
+
* function is called for every point, receiving that point as parameter. It
|
|
564
|
+
* should return either a boolean indicating whether or not to play the earcon,
|
|
565
|
+
* or a new Earcon instance - in which case the new Earcon will be played.
|
|
566
|
+
* @name Highcharts.EarconConfiguration#condition
|
|
567
|
+
* @type {Function|undefined}
|
|
568
|
+
*/
|
|
569
|
+
/**
|
|
570
|
+
* Options for sonifying a chart.
|
|
571
|
+
*
|
|
572
|
+
* @requires module:modules/sonification
|
|
573
|
+
*
|
|
574
|
+
* @interface Highcharts.SonificationOptions
|
|
575
|
+
*/ /**
|
|
576
|
+
* Duration for sonifying the entire chart. The duration is distributed across
|
|
577
|
+
* the different series intelligently, but does not take earcons into account.
|
|
578
|
+
* It is also possible to set the duration explicitly per series, using
|
|
579
|
+
* `seriesOptions`. Note that points may continue to play after the duration has
|
|
580
|
+
* passed, but no new points will start playing.
|
|
581
|
+
* @name Highcharts.SonificationOptions#duration
|
|
582
|
+
* @type {number}
|
|
583
|
+
*/ /**
|
|
584
|
+
* Define the order to play the series in. This can be given as a string, or an
|
|
585
|
+
* array specifying a custom ordering. If given as a string, valid values are
|
|
586
|
+
* `sequential` - where each series is played in order - or `simultaneous`,
|
|
587
|
+
* where all series are played at once. For custom ordering, supply an array as
|
|
588
|
+
* the order. Each element in the array can be either a string with a series ID,
|
|
589
|
+
* an Earcon object, or an object with a numeric `silentWait` property
|
|
590
|
+
* designating a number of milliseconds to wait before continuing. Each element
|
|
591
|
+
* of the array will be played in order. To play elements simultaneously, group
|
|
592
|
+
* the elements in an array.
|
|
593
|
+
* @name Highcharts.SonificationOptions#order
|
|
594
|
+
* @type {string|Array<string|Highcharts.Earcon|Array<string|Highcharts.Earcon>>}
|
|
595
|
+
*/ /**
|
|
596
|
+
* The axis to use for when to play the points. Can be a string with a data
|
|
597
|
+
* property (e.g. `x`), or a function. If it is a function, this function
|
|
598
|
+
* receives the point as argument, and should return a numeric value. The points
|
|
599
|
+
* with the lowest numeric values are then played first, and the time between
|
|
600
|
+
* points will be proportional to the distance between the numeric values. This
|
|
601
|
+
* option can not be overridden per series.
|
|
602
|
+
* @name Highcharts.SonificationOptions#pointPlayTime
|
|
603
|
+
* @type {string|Function}
|
|
604
|
+
*/ /**
|
|
605
|
+
* Milliseconds of silent waiting to add between series. Note that waiting time
|
|
606
|
+
* is considered part of the sonify duration.
|
|
607
|
+
* @name Highcharts.SonificationOptions#afterSeriesWait
|
|
608
|
+
* @type {number|undefined}
|
|
609
|
+
*/ /**
|
|
610
|
+
* Options as given to `series.sonify` to override options per series. If the
|
|
611
|
+
* option is supplied as an array of options objects, the `id` property of the
|
|
612
|
+
* object should correspond to the series' id. If the option is supplied as a
|
|
613
|
+
* single object, the options apply to all series.
|
|
614
|
+
* @name Highcharts.SonificationOptions#seriesOptions
|
|
615
|
+
* @type {Object|Array<object>|undefined}
|
|
616
|
+
*/ /**
|
|
617
|
+
* The instrument definitions for the points in this chart.
|
|
618
|
+
* @name Highcharts.SonificationOptions#instruments
|
|
619
|
+
* @type {Array<Highcharts.PointInstrumentObject>|undefined}
|
|
620
|
+
*/ /**
|
|
621
|
+
* Earcons to add to the chart. Note that earcons can also be added per series
|
|
622
|
+
* using `seriesOptions`.
|
|
623
|
+
* @name Highcharts.SonificationOptions#earcons
|
|
624
|
+
* @type {Array<Highcharts.EarconConfiguration>|undefined}
|
|
625
|
+
*/ /**
|
|
626
|
+
* Optionally provide the minimum/maximum data values for the points. If this is
|
|
627
|
+
* not supplied, it is calculated from all points in the chart on demand. This
|
|
628
|
+
* option is supplied in the following format, as a map of point data properties
|
|
629
|
+
* to objects with min/max values:
|
|
630
|
+
* ```js
|
|
631
|
+
* dataExtremes: {
|
|
632
|
+
* y: {
|
|
633
|
+
* min: 0,
|
|
634
|
+
* max: 100
|
|
635
|
+
* },
|
|
636
|
+
* z: {
|
|
637
|
+
* min: -10,
|
|
638
|
+
* max: 10
|
|
639
|
+
* }
|
|
640
|
+
* // Properties used and not provided are calculated on demand
|
|
641
|
+
* }
|
|
642
|
+
* ```
|
|
643
|
+
* @name Highcharts.SonificationOptions#dataExtremes
|
|
644
|
+
* @type {Highcharts.Dictionary<Highcharts.RangeObject>|undefined}
|
|
645
|
+
*/ /**
|
|
646
|
+
* Callback before a series is played.
|
|
647
|
+
* @name Highcharts.SonificationOptions#onSeriesStart
|
|
648
|
+
* @type {Function|undefined}
|
|
649
|
+
*/ /**
|
|
650
|
+
* Callback after a series has finished playing.
|
|
651
|
+
* @name Highcharts.SonificationOptions#onSeriesEnd
|
|
652
|
+
* @type {Function|undefined}
|
|
653
|
+
*/ /**
|
|
654
|
+
* Callback after the chart has played.
|
|
655
|
+
* @name Highcharts.SonificationOptions#onEnd
|
|
656
|
+
* @type {Function|undefined}
|
|
657
|
+
*/
|
|
658
|
+
/**
|
|
659
|
+
* Options for sonifying a series.
|
|
660
|
+
*
|
|
661
|
+
* @requires module:modules/sonification
|
|
662
|
+
*
|
|
663
|
+
* @interface Highcharts.SonifySeriesOptionsObject
|
|
664
|
+
*/ /**
|
|
665
|
+
* The duration for playing the points. Note that points might continue to play
|
|
666
|
+
* after the duration has passed, but no new points will start playing.
|
|
667
|
+
* @name Highcharts.SonifySeriesOptionsObject#duration
|
|
668
|
+
* @type {number}
|
|
669
|
+
*/ /**
|
|
670
|
+
* The axis to use for when to play the points. Can be a string with a data
|
|
671
|
+
* property (e.g. `x`), or a function. If it is a function, this function
|
|
672
|
+
* receives the point as argument, and should return a numeric value. The points
|
|
673
|
+
* with the lowest numeric values are then played first, and the time between
|
|
674
|
+
* points will be proportional to the distance between the numeric values.
|
|
675
|
+
* @name Highcharts.SonifySeriesOptionsObject#pointPlayTime
|
|
676
|
+
* @type {string|Function}
|
|
677
|
+
*/ /**
|
|
678
|
+
* The instrument definitions for the points in this series.
|
|
679
|
+
* @name Highcharts.SonifySeriesOptionsObject#instruments
|
|
680
|
+
* @type {Array<Highcharts.PointInstrumentObject>}
|
|
681
|
+
*/ /**
|
|
682
|
+
* Earcons to add to the series.
|
|
683
|
+
* @name Highcharts.SonifySeriesOptionsObject#earcons
|
|
684
|
+
* @type {Array<Highcharts.EarconConfiguration>|undefined}
|
|
685
|
+
*/ /**
|
|
686
|
+
* Optionally provide the minimum/maximum data values for the points. If this is
|
|
687
|
+
* not supplied, it is calculated from all points in the chart on demand. This
|
|
688
|
+
* option is supplied in the following format, as a map of point data properties
|
|
689
|
+
* to objects with min/max values:
|
|
690
|
+
* ```js
|
|
691
|
+
* dataExtremes: {
|
|
692
|
+
* y: {
|
|
693
|
+
* min: 0,
|
|
694
|
+
* max: 100
|
|
695
|
+
* },
|
|
696
|
+
* z: {
|
|
697
|
+
* min: -10,
|
|
698
|
+
* max: 10
|
|
699
|
+
* }
|
|
700
|
+
* // Properties used and not provided are calculated on demand
|
|
701
|
+
* }
|
|
702
|
+
* ```
|
|
703
|
+
* @name Highcharts.SonifySeriesOptionsObject#dataExtremes
|
|
704
|
+
* @type {Highcharts.Dictionary<Highcharts.RangeObject>|undefined}
|
|
705
|
+
*/ /**
|
|
706
|
+
* Callback before a point is played.
|
|
707
|
+
* @name Highcharts.SonifySeriesOptionsObject#onPointStart
|
|
708
|
+
* @type {Function|undefined}
|
|
709
|
+
*/ /**
|
|
710
|
+
* Callback after a point has finished playing.
|
|
711
|
+
* @name Highcharts.SonifySeriesOptionsObject#onPointEnd
|
|
712
|
+
* @type {Function|undefined}
|
|
713
|
+
*/ /**
|
|
714
|
+
* Callback after the series has played.
|
|
715
|
+
* @name Highcharts.SonifySeriesOptionsObject#onEnd
|
|
716
|
+
* @type {Function|undefined}
|
|
717
|
+
*/
|
|
718
|
+
''; // detach doclets above
|