highcharts 13.0.2 → 13.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bower.json +1 -1
- package/css/highcharts.css +6 -2
- package/es-modules/Accessibility/Components/InfoRegionsComponent.js +10 -6
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +2 -1
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +25 -1
- package/es-modules/Accessibility/KeyboardNavigation.js +1 -1
- package/es-modules/Accessibility/Utils/HTMLUtilities.js +13 -3
- package/es-modules/Core/Animation/AnimationUtilities.js +7 -2
- package/es-modules/Core/Animation/Fx.js +1 -0
- package/es-modules/Core/Axis/Axis.js +181 -211
- package/es-modules/Core/Axis/Axis3DComposition.js +13 -15
- package/es-modules/Core/Axis/AxisDefaults.js +9 -8
- package/es-modules/Core/Axis/BrokenAxis.js +5 -4
- package/es-modules/Core/Axis/Color/ColorAxis.js +66 -54
- package/es-modules/Core/Axis/Color/ColorAxisComposition.js +3 -0
- package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +6 -4
- package/es-modules/Core/Axis/DateTimeAxis.js +4 -3
- package/es-modules/Core/Axis/GridAxis.js +17 -13
- package/es-modules/Core/Axis/LogarithmicAxis.js +4 -3
- package/es-modules/Core/Axis/NavigatorAxisComposition.js +3 -4
- package/es-modules/Core/Axis/OrdinalAxis.js +0 -15
- package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +135 -72
- package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js +72 -124
- package/es-modules/Core/Axis/RadialAxis.js +50 -7
- package/es-modules/Core/Axis/ScrollbarAxis.js +3 -0
- package/es-modules/Core/Axis/Stacking/StackItem.js +49 -75
- package/es-modules/Core/Axis/Stacking/StackingAxis.js +34 -22
- package/es-modules/Core/Axis/Tick.js +95 -92
- package/es-modules/Core/Axis/TreeGrid/TreeGridAxis.js +9 -13
- package/es-modules/Core/Axis/WaterfallAxis.js +1 -1
- package/es-modules/Core/Chart/Chart.js +13 -4
- package/es-modules/Core/Chart/StockChart.js +20 -26
- package/es-modules/Core/Defaults.js +18 -0
- package/es-modules/Core/Globals.js +9 -7
- package/es-modules/Core/Pointer.js +7 -8
- package/es-modules/Core/Renderer/HTML/AST.js +18 -11
- package/es-modules/Core/Renderer/HTML/HTMLElement.js +5 -1
- package/es-modules/Core/Renderer/SVG/SVGElement.js +1 -0
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +1 -1
- package/es-modules/Core/Renderer/SVG/Symbols.js +1 -1
- package/es-modules/Core/Renderer/SVG/TextBuilder.js +6 -2
- package/es-modules/Core/Series/OverlappingDataLabels.js +41 -32
- package/es-modules/Core/Series/Point.js +14 -11
- package/es-modules/Core/Series/Series.js +21 -10
- package/es-modules/Core/Tooltip.js +35 -40
- package/es-modules/Data/DataCursor.js +3 -2
- package/es-modules/Data/DataTable.js +21 -2
- package/es-modules/Data/DataTableCore.js +28 -4
- package/es-modules/Data/Formula/FormulaParser.js +30 -10
- package/es-modules/Extensions/Annotations/Annotation.js +5 -7
- package/es-modules/Extensions/Annotations/AnnotationChart.js +2 -1
- package/es-modules/Extensions/Boost/BoostSeries.js +4 -13
- package/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +6 -4
- package/es-modules/Extensions/Breadcrumbs/BreadcrumbsDefaults.js +1 -1
- package/es-modules/Extensions/Data.js +4 -2
- package/es-modules/Extensions/DragPanes/DragPanes.js +6 -9
- package/es-modules/Extensions/Drilldown/Drilldown.js +9 -4
- package/es-modules/Extensions/ExportData/ExportData.js +24 -4
- package/es-modules/Extensions/Pane/Pane.js +1 -1
- package/es-modules/Extensions/ParallelCoordinates/ParallelAxis.js +5 -4
- package/es-modules/Extensions/StaticScale.js +13 -11
- package/es-modules/Series/Area/AreaSeriesDefaults.js +1 -1
- package/es-modules/Series/AreaRange/AreaRangeSeriesDefaults.js +1 -1
- package/es-modules/Series/AreaSpline/AreaSplineSeries.js +1 -1
- package/es-modules/Series/AreaSplineRange/AreaSplineRangeSeries.js +1 -1
- package/es-modules/Series/Bar/BarSeries.js +1 -1
- package/es-modules/Series/Bellcurve/BellcurveSeriesDefaults.js +1 -1
- package/es-modules/Series/BoxPlot/BoxPlotSeriesDefaults.js +1 -1
- package/es-modules/Series/Bubble/BubbleSeries.js +1 -1
- package/es-modules/Series/Bullet/BulletSeriesDefaults.js +1 -1
- package/es-modules/Series/Candlestick/CandlestickSeriesDefaults.js +1 -1
- package/es-modules/Series/Column/ColumnSeriesDefaults.js +6 -3
- package/es-modules/Series/ColumnPyramid/ColumnPyramidSeriesDefaults.js +2 -3
- package/es-modules/Series/ColumnRange/ColumnRangeSeriesDefaults.js +1 -1
- package/es-modules/Series/Contour/ContourSeriesDefaults.js +12 -14
- package/es-modules/Series/ErrorBar/ErrorBarSeriesDefaults.js +1 -1
- package/es-modules/Series/Flags/FlagsPoint.js +4 -2
- package/es-modules/Series/Flags/FlagsPointOptions.js +12 -0
- package/es-modules/Series/Flags/FlagsSeries.js +8 -7
- package/es-modules/Series/Flags/FlagsSeriesDefaults.js +7 -7
- package/es-modules/Series/Flags/FlagsSeriesOptions.js +12 -0
- package/es-modules/Series/Flags/FlagsSymbols.js +5 -3
- package/es-modules/Series/Funnel/FunnelSeriesDefaults.js +1 -1
- package/es-modules/Series/Gauge/GaugeSeries.js +1 -1
- package/es-modules/Series/GeoHeatmap/GeoHeatmapSeries.js +1 -1
- package/es-modules/Series/HLC/HLCSeriesDefaults.js +1 -7
- package/es-modules/Series/Heatmap/HeatmapSeriesDefaults.js +1 -1
- package/es-modules/Series/HeikinAshi/HeikinAshiSeriesDefaults.js +1 -1
- package/es-modules/Series/Histogram/HistogramSeriesDefaults.js +1 -1
- package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +1 -1
- package/es-modules/Series/Item/ItemSeriesDefaults.js +1 -1
- package/es-modules/Series/Line/LineSeries.js +0 -1
- package/es-modules/Series/Map/MapSeriesDefaults.js +1 -1
- package/es-modules/Series/MapBubble/MapBubbleSeries.js +0 -1
- package/es-modules/Series/MapLine/MapLineSeriesDefaults.js +1 -1
- package/es-modules/Series/MapPoint/MapPointSeriesDefaults.js +0 -1
- package/es-modules/Series/Networkgraph/ReingoldFruchtermanLayout.js +5 -5
- package/es-modules/Series/OHLC/OHLCSeriesDefaults.js +0 -1
- package/es-modules/Series/PackedBubble/PackedBubbleChart.js +18 -0
- package/es-modules/Series/PackedBubble/PackedBubbleDataLabelOptions.js +12 -0
- package/es-modules/Series/PackedBubble/PackedBubbleIntegration.js +3 -3
- package/es-modules/Series/PackedBubble/PackedBubbleLayout.js +2 -2
- package/es-modules/Series/PackedBubble/PackedBubblePoint.js +1 -1
- package/es-modules/Series/PackedBubble/PackedBubblePointOptions.js +12 -0
- package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +20 -20
- package/es-modules/Series/PackedBubble/PackedBubbleSeriesDefaults.js +2 -2
- package/es-modules/Series/PackedBubble/PackedBubbleSeriesOptions.js +12 -0
- package/es-modules/Series/ParetoSeries/ParetoPoint.js +17 -0
- package/es-modules/Series/ParetoSeries/ParetoPointOptions.js +12 -0
- package/es-modules/Series/ParetoSeries/ParetoSeries.js +3 -3
- package/es-modules/Series/ParetoSeries/ParetoSeriesDefaults.js +1 -1
- package/es-modules/Series/ParetoSeries/ParetoSeriesOptions.js +12 -0
- package/es-modules/Series/PathUtilities.js +3 -1
- package/es-modules/Series/Pictorial/PictorialPointOptions.js +12 -0
- package/es-modules/Series/Pictorial/PictorialSeries.js +5 -25
- package/es-modules/Series/Pictorial/PictorialSeriesDefaults.js +45 -0
- package/es-modules/Series/Pictorial/PictorialSeriesOptions.js +12 -0
- package/es-modules/Series/Pie/PieSeriesDefaults.js +1 -1
- package/es-modules/Series/Pie3D/Pie3DPoint.js +1 -1
- package/es-modules/Series/Pie3D/Pie3DSeries.js +6 -6
- package/es-modules/Series/PolarComposition.js +22 -21
- package/es-modules/Series/Polygon/PolygonPoint.js +17 -0
- package/es-modules/Series/Polygon/PolygonPointOptions.js +12 -0
- package/es-modules/Series/Polygon/PolygonSeriesDefaults.js +1 -1
- package/es-modules/Series/Polygon/PolygonSeriesOptions.js +12 -0
- package/es-modules/Series/Pyramid/PyramidPoint.js +19 -0
- package/es-modules/Series/Pyramid/PyramidPointOptions.js +14 -0
- package/es-modules/Series/Pyramid/PyramidSeries.js +1 -1
- package/es-modules/Series/Pyramid/PyramidSeriesDefaults.js +1 -1
- package/es-modules/Series/Pyramid/PyramidSeriesOptions.js +14 -0
- package/es-modules/Series/Pyramid3D/Pyramid3DPoint.js +19 -0
- package/es-modules/Series/Pyramid3D/Pyramid3DPointOptions.js +14 -0
- package/es-modules/Series/Pyramid3D/Pyramid3DSeries.js +1 -1
- package/es-modules/Series/Pyramid3D/Pyramid3DSeriesOptions.js +14 -0
- package/es-modules/Series/Renko/RenkoSeriesDefaults.js +1 -2
- package/es-modules/Series/Sankey/SankeySeriesDefaults.js +6 -7
- package/es-modules/Series/Scatter/ScatterSeriesDefaults.js +1 -1
- package/es-modules/Series/SolidGauge/SolidGaugeSeriesDefaults.js +1 -1
- package/es-modules/Series/Spline/SplineSeries.js +1 -1
- package/es-modules/Series/Streamgraph/StreamgraphSeriesDefaults.js +1 -1
- package/es-modules/Series/Sunburst/SunburstSeriesDefaults.js +1 -1
- package/es-modules/Series/TiledWebMap/TiledWebMapSeriesDefaults.js +2 -2
- package/es-modules/Series/Tilemap/TilemapSeriesDefaults.js +1 -1
- package/es-modules/Series/Timeline/TimelineSeriesDefaults.js +1 -1
- package/es-modules/Series/Treemap/TreemapSeriesDefaults.js +1 -1
- package/es-modules/Series/VariablePie/VariablePieSeriesDefaults.js +1 -1
- package/es-modules/Series/Variwide/VariwideComposition.js +11 -8
- package/es-modules/Series/Vector/VectorSeriesDefaults.js +1 -1
- package/es-modules/Series/Venn/VennSeriesDefaults.js +1 -1
- package/es-modules/Series/Waterfall/WaterfallSeriesDefaults.js +1 -1
- package/es-modules/Series/Windbarb/WindbarbSeriesDefaults.js +1 -1
- package/es-modules/Shared/Utilities.js +7 -0
- package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +1 -1
- package/es-modules/Stock/Indicators/AD/ADIndicator.js +0 -1
- package/es-modules/Stock/Indicators/AO/AOIndicator.js +1 -1
- package/es-modules/Stock/Indicators/APO/APOIndicator.js +1 -1
- package/es-modules/Stock/Indicators/ATR/ATRIndicator.js +0 -1
- package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +1 -1
- package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +2 -2
- package/es-modules/Stock/Indicators/BB/BBIndicator.js +0 -1
- package/es-modules/Stock/Indicators/CCI/CCIIndicator.js +0 -1
- package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +0 -1
- package/es-modules/Stock/Indicators/CMO/CMOIndicator.js +0 -1
- package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +1 -1
- package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +1 -1
- package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +3 -3
- package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +1 -1
- package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +3 -3
- package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +0 -1
- package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +0 -1
- package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +1 -1
- package/es-modules/Stock/Indicators/LinearRegression/LinearRegressionIndicator.js +0 -1
- package/es-modules/Stock/Indicators/LinearRegressionAngle/LinearRegressionAngleIndicator.js +0 -1
- package/es-modules/Stock/Indicators/LinearRegressionIntercept/LinearRegressionInterceptIndicator.js +0 -1
- package/es-modules/Stock/Indicators/LinearRegressionSlopes/LinearRegressionSlopesIndicator.js +0 -1
- package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +0 -1
- package/es-modules/Stock/Indicators/MFI/MFIIndicator.js +0 -1
- package/es-modules/Stock/Indicators/Momentum/MomentumIndicator.js +0 -1
- package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +0 -1
- package/es-modules/Stock/Indicators/OBV/OBVIndicator.js +0 -1
- package/es-modules/Stock/Indicators/PC/PCIndicator.js +1 -1
- package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +1 -1
- package/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +0 -1
- package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +0 -1
- package/es-modules/Stock/Indicators/PriceEnvelopes/PriceEnvelopesIndicator.js +0 -1
- package/es-modules/Stock/Indicators/ROC/ROCIndicator.js +0 -1
- package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +0 -1
- package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +1 -1
- package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +3 -3
- package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +1 -1
- package/es-modules/Stock/Indicators/TEMA/TEMAIndicator.js +1 -1
- package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +1 -1
- package/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +0 -1
- package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +1 -1
- package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +0 -1
- package/es-modules/Stock/Indicators/WMA/WMAIndicator.js +0 -1
- package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +1 -1
- package/es-modules/Stock/Indicators/Zigzag/ZigzagIndicator.js +0 -1
- package/es-modules/Stock/Navigator/ChartNavigatorComposition.js +5 -5
- package/es-modules/Stock/Navigator/Navigator.js +1 -5
- package/es-modules/Stock/Navigator/StandaloneNavigator.js +38 -8
- package/es-modules/Stock/RangeSelector/RangeSelectorComposition.js +2 -2
- package/es-modules/Stock/Scrollbar/ScrollbarDefaults.js +1 -3
- package/es-modules/masters/highcharts-3d.src.js +1 -1
- package/es-modules/masters/highcharts-autoload.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/i18n/fr-FR.src.d.ts +1 -1
- package/es-modules/masters/i18n/fr-FR.src.js +1 -1
- package/es-modules/masters/i18n/nb-NO.src.d.ts +1 -1
- package/es-modules/masters/i18n/nb-NO.src.js +1 -1
- package/es-modules/masters/i18n/zh-CN.src.d.ts +1 -1
- package/es-modules/masters/i18n/zh-CN.src.js +1 -1
- package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
- package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
- package/es-modules/masters/indicators/ao.src.js +1 -1
- package/es-modules/masters/indicators/apo.src.js +1 -1
- package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
- package/es-modules/masters/indicators/aroon.src.js +1 -1
- package/es-modules/masters/indicators/atr.src.js +1 -1
- package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
- package/es-modules/masters/indicators/cci.src.js +1 -1
- package/es-modules/masters/indicators/chaikin.src.js +1 -1
- package/es-modules/masters/indicators/cmf.src.js +1 -1
- package/es-modules/masters/indicators/cmo.src.js +1 -1
- package/es-modules/masters/indicators/dema.src.js +1 -1
- package/es-modules/masters/indicators/disparity-index.src.js +1 -1
- package/es-modules/masters/indicators/dmi.src.js +1 -1
- package/es-modules/masters/indicators/dpo.src.js +1 -1
- package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/es-modules/masters/indicators/indicators-all.src.js +1 -1
- package/es-modules/masters/indicators/indicators.src.js +1 -1
- package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
- package/es-modules/masters/indicators/klinger.src.js +1 -1
- package/es-modules/masters/indicators/macd.src.js +1 -1
- package/es-modules/masters/indicators/mfi.src.js +1 -1
- package/es-modules/masters/indicators/momentum.src.js +1 -1
- package/es-modules/masters/indicators/natr.src.js +1 -1
- package/es-modules/masters/indicators/obv.src.js +1 -1
- package/es-modules/masters/indicators/pivot-points.src.js +1 -1
- package/es-modules/masters/indicators/ppo.src.js +1 -1
- package/es-modules/masters/indicators/price-channel.src.js +1 -1
- package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
- package/es-modules/masters/indicators/psar.src.js +1 -1
- package/es-modules/masters/indicators/regressions.src.js +1 -1
- package/es-modules/masters/indicators/roc.src.js +1 -1
- package/es-modules/masters/indicators/rsi.src.js +1 -1
- package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
- package/es-modules/masters/indicators/stochastic.src.js +1 -1
- package/es-modules/masters/indicators/supertrend.src.js +1 -1
- package/es-modules/masters/indicators/tema.src.js +1 -1
- package/es-modules/masters/indicators/trendline.src.js +1 -1
- package/es-modules/masters/indicators/trix.src.js +1 -1
- package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
- package/es-modules/masters/indicators/vwap.src.js +1 -1
- package/es-modules/masters/indicators/williams-r.src.js +1 -1
- package/es-modules/masters/indicators/wma.src.js +1 -1
- package/es-modules/masters/indicators/zigzag.src.js +1 -1
- package/es-modules/masters/modules/accessibility.src.js +1 -1
- package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
- package/es-modules/masters/modules/annotations.src.js +1 -1
- package/es-modules/masters/modules/arc-diagram.src.js +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/contour.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-sorting.src.js +1 -1
- package/es-modules/masters/modules/data-tools.src.js +1 -1
- package/es-modules/masters/modules/data.src.js +1 -1
- package/es-modules/masters/modules/datagrouping.src.js +1 -1
- package/es-modules/masters/modules/debugger.src.js +1 -1
- package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
- package/es-modules/masters/modules/dotplot.src.js +1 -1
- package/es-modules/masters/modules/drag-panes.src.js +1 -1
- package/es-modules/masters/modules/draggable-points.src.js +1 -1
- package/es-modules/masters/modules/drilldown.src.js +1 -1
- package/es-modules/masters/modules/dumbbell.src.js +1 -1
- package/es-modules/masters/modules/export-data.src.js +1 -1
- package/es-modules/masters/modules/exporting.src.js +1 -1
- package/es-modules/masters/modules/flowmap.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/geoheatmap.src.js +1 -1
- package/es-modules/masters/modules/grid-axis.src.js +1 -1
- package/es-modules/masters/modules/heatmap.src.js +1 -1
- package/es-modules/masters/modules/heikinashi.src.js +1 -1
- package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
- package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
- package/es-modules/masters/modules/item-series.src.js +1 -1
- package/es-modules/masters/modules/lollipop.src.js +1 -1
- package/es-modules/masters/modules/map.src.js +1 -1
- package/es-modules/masters/modules/marker-clusters.src.js +1 -1
- package/es-modules/masters/modules/mouse-wheel-zoom.src.js +1 -1
- package/es-modules/masters/modules/navigator.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/non-cartesian-zoom.src.js +1 -1
- package/es-modules/masters/modules/offline-exporting.src.js +1 -1
- package/es-modules/masters/modules/organization.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/pictorial.src.js +1 -1
- package/es-modules/masters/modules/pointandfigure.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/renko.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 +1 -1
- package/es-modules/masters/modules/stock.src.js +1 -1
- package/es-modules/masters/modules/streamgraph.src.js +1 -1
- package/es-modules/masters/modules/sunburst.src.js +1 -1
- package/es-modules/masters/modules/textpath.src.js +1 -1
- package/es-modules/masters/modules/tiledwebmap.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/treegraph.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/standalone-navigator.src.js +1 -1
- package/es-modules/masters/themes/adaptive.src.js +1 -1
- package/es-modules/masters/themes/avocado.src.js +1 -1
- package/es-modules/masters/themes/dark-unica.src.js +1 -1
- package/es-modules/masters/themes/grid-light.src.js +1 -1
- package/es-modules/masters/themes/high-contrast.src.js +1 -1
- package/es-modules/masters/themes/sand-signika.src.js +1 -1
- package/es-modules/masters/themes/sunset.src.js +1 -1
- package/es-modules/tsconfig.tsbuildinfo +1 -1
- package/esm/highcharts-3d.js +2 -2
- package/esm/highcharts-3d.src.js +38 -61
- package/esm/highcharts-autoload.js +2 -2
- package/esm/highcharts-autoload.src.js +18 -39
- package/esm/highcharts-gantt.js +1 -1
- package/esm/highcharts-gantt.src.js +1 -1
- package/esm/highcharts-more.js +2 -2
- package/esm/highcharts-more.src.js +142 -120
- package/esm/highcharts.js +4 -4
- package/esm/highcharts.src.js +824 -750
- package/esm/highmaps.js +1 -1
- package/esm/highmaps.src.js +1 -1
- package/esm/highstock.js +1 -1
- package/esm/highstock.src.js +1 -1
- package/esm/i18n/fr-FR.js +2 -2
- package/esm/i18n/fr-FR.src.js +17 -38
- package/esm/i18n/nb-NO.js +2 -2
- package/esm/i18n/nb-NO.src.js +17 -38
- package/esm/i18n/zh-CN.js +2 -2
- package/esm/i18n/zh-CN.src.js +17 -38
- package/esm/indicators/acceleration-bands.js +2 -2
- package/esm/indicators/acceleration-bands.src.js +18 -39
- package/esm/indicators/accumulation-distribution.js +2 -2
- package/esm/indicators/accumulation-distribution.src.js +17 -39
- package/esm/indicators/ao.js +2 -2
- package/esm/indicators/ao.src.js +18 -39
- package/esm/indicators/apo.js +2 -2
- package/esm/indicators/apo.src.js +18 -39
- package/esm/indicators/aroon-oscillator.js +2 -2
- package/esm/indicators/aroon-oscillator.src.js +19 -40
- package/esm/indicators/aroon.js +2 -2
- package/esm/indicators/aroon.src.js +18 -39
- package/esm/indicators/atr.js +2 -2
- package/esm/indicators/atr.src.js +17 -39
- package/esm/indicators/bollinger-bands.js +2 -2
- package/esm/indicators/bollinger-bands.src.js +17 -39
- package/esm/indicators/cci.js +2 -2
- package/esm/indicators/cci.src.js +17 -39
- package/esm/indicators/chaikin.js +2 -2
- package/esm/indicators/chaikin.src.js +18 -40
- package/esm/indicators/cmf.js +2 -2
- package/esm/indicators/cmf.src.js +17 -39
- package/esm/indicators/cmo.js +2 -2
- package/esm/indicators/cmo.src.js +17 -39
- package/esm/indicators/dema.js +2 -2
- package/esm/indicators/dema.src.js +18 -39
- package/esm/indicators/disparity-index.js +2 -2
- package/esm/indicators/disparity-index.src.js +20 -41
- package/esm/indicators/dmi.js +2 -2
- package/esm/indicators/dmi.src.js +20 -41
- package/esm/indicators/dpo.js +2 -2
- package/esm/indicators/dpo.src.js +18 -39
- package/esm/indicators/ichimoku-kinko-hyo.js +2 -2
- package/esm/indicators/ichimoku-kinko-hyo.src.js +18 -40
- package/esm/indicators/indicators-all.js +2 -2
- package/esm/indicators/indicators-all.src.js +76 -99
- package/esm/indicators/indicators.js +2 -2
- package/esm/indicators/indicators.src.js +48 -46
- package/esm/indicators/keltner-channels.js +2 -2
- package/esm/indicators/keltner-channels.src.js +18 -39
- package/esm/indicators/klinger.js +2 -2
- package/esm/indicators/klinger.src.js +17 -38
- package/esm/indicators/macd.js +2 -2
- package/esm/indicators/macd.src.js +17 -39
- package/esm/indicators/mfi.js +2 -2
- package/esm/indicators/mfi.src.js +17 -39
- package/esm/indicators/momentum.js +2 -2
- package/esm/indicators/momentum.src.js +17 -39
- package/esm/indicators/natr.js +2 -2
- package/esm/indicators/natr.src.js +17 -39
- package/esm/indicators/obv.js +2 -2
- package/esm/indicators/obv.src.js +17 -39
- package/esm/indicators/pivot-points.js +2 -2
- package/esm/indicators/pivot-points.src.js +17 -39
- package/esm/indicators/ppo.js +2 -2
- package/esm/indicators/ppo.src.js +18 -39
- package/esm/indicators/price-channel.js +2 -2
- package/esm/indicators/price-channel.src.js +18 -39
- package/esm/indicators/price-envelopes.js +2 -2
- package/esm/indicators/price-envelopes.src.js +17 -39
- package/esm/indicators/psar.js +2 -2
- package/esm/indicators/psar.src.js +17 -39
- package/esm/indicators/regressions.js +2 -2
- package/esm/indicators/regressions.src.js +17 -42
- package/esm/indicators/roc.js +2 -2
- package/esm/indicators/roc.src.js +17 -39
- package/esm/indicators/rsi.js +2 -2
- package/esm/indicators/rsi.src.js +17 -39
- package/esm/indicators/slow-stochastic.js +2 -2
- package/esm/indicators/slow-stochastic.src.js +17 -38
- package/esm/indicators/stochastic.js +2 -2
- package/esm/indicators/stochastic.src.js +20 -41
- package/esm/indicators/supertrend.js +2 -2
- package/esm/indicators/supertrend.src.js +19 -40
- package/esm/indicators/tema.js +2 -2
- package/esm/indicators/tema.src.js +18 -39
- package/esm/indicators/trendline.js +2 -2
- package/esm/indicators/trendline.src.js +17 -39
- package/esm/indicators/trix.js +2 -2
- package/esm/indicators/trix.src.js +18 -39
- package/esm/indicators/volume-by-price.js +2 -2
- package/esm/indicators/volume-by-price.src.js +18 -39
- package/esm/indicators/vwap.js +2 -2
- package/esm/indicators/vwap.src.js +17 -39
- package/esm/indicators/williams-r.js +2 -2
- package/esm/indicators/williams-r.src.js +18 -39
- package/esm/indicators/wma.js +2 -2
- package/esm/indicators/wma.src.js +17 -39
- package/esm/indicators/zigzag.js +2 -2
- package/esm/indicators/zigzag.src.js +17 -39
- package/esm/modules/accessibility.js +2 -2
- package/esm/modules/accessibility.src.js +90 -76
- package/esm/modules/annotations-advanced.js +3 -3
- package/esm/modules/annotations-advanced.src.js +36 -58
- package/esm/modules/annotations.js +3 -3
- package/esm/modules/annotations.src.js +36 -58
- package/esm/modules/arc-diagram.js +2 -2
- package/esm/modules/arc-diagram.src.js +18 -39
- package/esm/modules/arrow-symbols.js +3 -3
- package/esm/modules/arrow-symbols.src.js +17 -38
- package/esm/modules/boost-canvas.js +2 -2
- package/esm/modules/boost-canvas.src.js +57 -63
- package/esm/modules/boost.js +2 -2
- package/esm/modules/boost.src.js +56 -62
- package/esm/modules/broken-axis.js +2 -2
- package/esm/modules/broken-axis.src.js +21 -41
- package/esm/modules/bullet.js +2 -2
- package/esm/modules/bullet.src.js +18 -39
- package/esm/modules/coloraxis.js +2 -2
- package/esm/modules/coloraxis.src.js +92 -96
- package/esm/modules/contour.js +3 -3
- package/esm/modules/contour.src.js +29 -52
- package/esm/modules/current-date-indicator.js +2 -2
- package/esm/modules/current-date-indicator.src.js +17 -38
- package/esm/modules/cylinder.js +2 -2
- package/esm/modules/cylinder.src.js +18 -39
- package/esm/modules/data-sorting.js +2 -2
- package/esm/modules/data-sorting.src.js +18 -39
- package/esm/modules/data-tools.js +2 -2
- package/esm/modules/data-tools.src.js +110 -67
- package/esm/modules/data.js +4 -4
- package/esm/modules/data.src.js +53 -48
- package/esm/modules/datagrouping.js +2 -2
- package/esm/modules/datagrouping.src.js +52 -48
- package/esm/modules/debugger.js +2 -2
- package/esm/modules/debugger.src.js +17 -38
- package/esm/modules/dependency-wheel.js +2 -2
- package/esm/modules/dependency-wheel.src.js +17 -38
- package/esm/modules/dotplot.js +2 -2
- package/esm/modules/dotplot.src.js +17 -38
- package/esm/modules/drag-panes.js +2 -2
- package/esm/modules/drag-panes.src.js +22 -46
- package/esm/modules/draggable-points.js +2 -2
- package/esm/modules/draggable-points.src.js +17 -38
- package/esm/modules/drilldown.js +2 -2
- package/esm/modules/drilldown.src.js +40 -54
- package/esm/modules/dumbbell.js +2 -2
- package/esm/modules/dumbbell.src.js +18 -39
- package/esm/modules/export-data.js +2 -2
- package/esm/modules/export-data.src.js +42 -43
- package/esm/modules/exporting.js +2 -2
- package/esm/modules/exporting.src.js +26 -47
- package/esm/modules/flowmap.js +2 -2
- package/esm/modules/flowmap.src.js +17 -38
- package/esm/modules/full-screen.js +2 -2
- package/esm/modules/full-screen.src.js +17 -38
- package/esm/modules/funnel.js +2 -2
- package/esm/modules/funnel.src.js +21 -42
- package/esm/modules/funnel3d.js +2 -2
- package/esm/modules/funnel3d.src.js +18 -39
- package/esm/modules/gantt.js +2 -2
- package/esm/modules/gantt.src.js +84 -104
- package/esm/modules/geoheatmap.js +2 -2
- package/esm/modules/geoheatmap.src.js +18 -39
- package/esm/modules/grid-axis.js +2 -2
- package/esm/modules/grid-axis.src.js +34 -51
- package/esm/modules/heatmap.js +2 -2
- package/esm/modules/heatmap.src.js +20 -41
- package/esm/modules/heikinashi.js +2 -2
- package/esm/modules/heikinashi.src.js +18 -39
- package/esm/modules/histogram-bellcurve.js +2 -2
- package/esm/modules/histogram-bellcurve.src.js +19 -40
- package/esm/modules/hollowcandlestick.js +2 -2
- package/esm/modules/hollowcandlestick.src.js +18 -39
- package/esm/modules/item-series.js +2 -2
- package/esm/modules/item-series.src.js +19 -40
- package/esm/modules/lollipop.js +2 -2
- package/esm/modules/lollipop.src.js +18 -39
- package/esm/modules/map.js +2 -2
- package/esm/modules/map.src.js +64 -63
- package/esm/modules/marker-clusters.js +2 -2
- package/esm/modules/marker-clusters.src.js +49 -46
- package/esm/modules/mouse-wheel-zoom.js +2 -2
- package/esm/modules/mouse-wheel-zoom.src.js +17 -38
- package/esm/modules/navigator.js +2 -2
- package/esm/modules/navigator.src.js +72 -67
- package/esm/modules/networkgraph.js +2 -2
- package/esm/modules/networkgraph.src.js +24 -45
- package/esm/modules/no-data-to-display.js +2 -2
- package/esm/modules/no-data-to-display.src.js +17 -38
- package/esm/modules/non-cartesian-zoom.js +2 -2
- package/esm/modules/non-cartesian-zoom.src.js +17 -38
- package/esm/modules/offline-exporting.js +2 -2
- package/esm/modules/offline-exporting.src.js +19 -40
- package/esm/modules/organization.js +2 -2
- package/esm/modules/organization.src.js +20 -39
- package/esm/modules/parallel-coordinates.js +2 -2
- package/esm/modules/parallel-coordinates.src.js +24 -44
- package/esm/modules/pareto.js +2 -2
- package/esm/modules/pareto.src.js +21 -42
- package/esm/modules/pathfinder.js +2 -2
- package/esm/modules/pathfinder.src.js +20 -39
- package/esm/modules/pattern-fill.js +2 -2
- package/esm/modules/pattern-fill.src.js +17 -38
- package/esm/modules/pictorial.js +2 -2
- package/esm/modules/pictorial.src.js +71 -65
- package/esm/modules/pointandfigure.js +2 -2
- package/esm/modules/pointandfigure.src.js +47 -44
- package/esm/modules/price-indicator.js +2 -2
- package/esm/modules/price-indicator.src.js +17 -38
- package/esm/modules/pyramid3d.js +2 -2
- package/esm/modules/pyramid3d.src.js +18 -39
- package/esm/modules/renko.js +2 -2
- package/esm/modules/renko.src.js +18 -40
- package/esm/modules/sankey.js +2 -2
- package/esm/modules/sankey.src.js +24 -46
- package/esm/modules/series-label.js +2 -2
- package/esm/modules/series-label.src.js +17 -38
- package/esm/modules/series-on-point.js +2 -2
- package/esm/modules/series-on-point.src.js +47 -44
- package/esm/modules/solid-gauge.js +2 -2
- package/esm/modules/solid-gauge.src.js +18 -39
- package/esm/modules/sonification.js +2 -2
- package/esm/modules/sonification.src.js +18 -39
- package/esm/modules/static-scale.js +2 -2
- package/esm/modules/static-scale.src.js +30 -49
- package/esm/modules/stock-tools.js +2 -2
- package/esm/modules/stock-tools.src.js +29 -50
- package/esm/modules/stock.js +2 -2
- package/esm/modules/stock.src.js +117 -141
- package/esm/modules/streamgraph.js +2 -2
- package/esm/modules/streamgraph.src.js +18 -39
- package/esm/modules/sunburst.js +2 -2
- package/esm/modules/sunburst.src.js +38 -57
- package/esm/modules/textpath.js +2 -2
- package/esm/modules/textpath.src.js +17 -38
- package/esm/modules/tiledwebmap.js +3 -3
- package/esm/modules/tiledwebmap.src.js +19 -40
- package/esm/modules/tilemap.js +2 -2
- package/esm/modules/tilemap.src.js +22 -40
- package/esm/modules/timeline.js +2 -2
- package/esm/modules/timeline.src.js +19 -40
- package/esm/modules/treegraph.js +2 -2
- package/esm/modules/treegraph.src.js +23 -42
- package/esm/modules/treegrid.js +2 -2
- package/esm/modules/treegrid.src.js +47 -67
- package/esm/modules/treemap.js +2 -2
- package/esm/modules/treemap.src.js +34 -53
- package/esm/modules/variable-pie.js +2 -2
- package/esm/modules/variable-pie.src.js +19 -40
- package/esm/modules/variwide.js +2 -2
- package/esm/modules/variwide.src.js +28 -46
- package/esm/modules/vector.js +2 -2
- package/esm/modules/vector.src.js +18 -39
- package/esm/modules/venn.js +2 -2
- package/esm/modules/venn.src.js +18 -39
- package/esm/modules/windbarb.js +2 -2
- package/esm/modules/windbarb.src.js +18 -39
- package/esm/modules/wordcloud.js +2 -2
- package/esm/modules/wordcloud.src.js +18 -39
- package/esm/modules/xrange.js +2 -2
- package/esm/modules/xrange.src.js +18 -39
- package/esm/standalone-navigator.js +4 -4
- package/esm/standalone-navigator.src.js +876 -776
- package/esm/themes/adaptive.js +2 -2
- package/esm/themes/adaptive.src.js +17 -38
- package/esm/themes/avocado.js +2 -2
- package/esm/themes/avocado.src.js +17 -38
- package/esm/themes/dark-unica.js +2 -2
- package/esm/themes/dark-unica.src.js +17 -38
- package/esm/themes/grid-light.js +2 -2
- package/esm/themes/grid-light.src.js +17 -38
- package/esm/themes/high-contrast.js +2 -2
- package/esm/themes/high-contrast.src.js +17 -38
- package/esm/themes/sand-signika.js +2 -2
- package/esm/themes/sand-signika.src.js +17 -38
- package/esm/themes/sunset.js +2 -2
- package/esm/themes/sunset.src.js +17 -38
- package/highcharts-3d.js +2 -2
- package/highcharts-3d.src.js +43 -66
- package/highcharts-autoload.d.ts +0 -1
- package/highcharts-autoload.js +4 -4
- package/highcharts-autoload.src.d.ts +0 -1
- package/highcharts-autoload.src.js +833 -778
- package/highcharts-gantt.js +4 -4
- package/highcharts-gantt.src.js +895 -839
- package/highcharts-more.d.ts +10 -0
- package/highcharts-more.js +2 -2
- package/highcharts-more.src.d.ts +10 -0
- package/highcharts-more.src.js +147 -125
- package/highcharts.d.ts +2785 -80144
- package/highcharts.js +4 -4
- package/highcharts.src.d.ts +2785 -80144
- package/highcharts.src.js +832 -777
- package/highmaps.js +4 -4
- package/highmaps.src.js +915 -845
- package/highstock.js +4 -4
- package/highstock.src.js +903 -874
- package/i18n/fr-FR.js +2 -2
- package/i18n/fr-FR.src.js +26 -37
- package/i18n/nb-NO.js +2 -2
- package/i18n/nb-NO.src.js +26 -37
- package/i18n/zh-CN.js +2 -2
- package/i18n/zh-CN.src.js +26 -37
- package/indicators/acceleration-bands.js +2 -2
- package/indicators/acceleration-bands.src.js +23 -44
- package/indicators/accumulation-distribution.js +2 -2
- package/indicators/accumulation-distribution.src.js +22 -44
- package/indicators/ao.js +2 -2
- package/indicators/ao.src.js +23 -44
- package/indicators/apo.js +2 -2
- package/indicators/apo.src.js +23 -44
- package/indicators/aroon-oscillator.js +2 -2
- package/indicators/aroon-oscillator.src.js +24 -45
- package/indicators/aroon.js +2 -2
- package/indicators/aroon.src.js +23 -44
- package/indicators/atr.js +2 -2
- package/indicators/atr.src.js +22 -44
- package/indicators/bollinger-bands.js +2 -2
- package/indicators/bollinger-bands.src.js +22 -44
- package/indicators/cci.js +2 -2
- package/indicators/cci.src.js +22 -44
- package/indicators/chaikin.js +2 -2
- package/indicators/chaikin.src.js +23 -45
- package/indicators/cmf.js +2 -2
- package/indicators/cmf.src.js +22 -44
- package/indicators/cmo.js +2 -2
- package/indicators/cmo.src.js +22 -44
- package/indicators/dema.js +2 -2
- package/indicators/dema.src.js +23 -44
- package/indicators/disparity-index.js +2 -2
- package/indicators/disparity-index.src.js +25 -46
- package/indicators/dmi.js +2 -2
- package/indicators/dmi.src.js +25 -46
- package/indicators/dpo.js +2 -2
- package/indicators/dpo.src.js +23 -44
- package/indicators/ichimoku-kinko-hyo.js +2 -2
- package/indicators/ichimoku-kinko-hyo.src.js +23 -45
- package/indicators/indicators-all.js +2 -2
- package/indicators/indicators-all.src.js +81 -104
- package/indicators/indicators.js +2 -2
- package/indicators/indicators.src.js +53 -51
- package/indicators/keltner-channels.js +2 -2
- package/indicators/keltner-channels.src.js +23 -44
- package/indicators/klinger.js +2 -2
- package/indicators/klinger.src.js +22 -43
- package/indicators/macd.js +2 -2
- package/indicators/macd.src.js +22 -44
- package/indicators/mfi.js +2 -2
- package/indicators/mfi.src.js +22 -44
- package/indicators/momentum.js +2 -2
- package/indicators/momentum.src.js +22 -44
- package/indicators/natr.js +2 -2
- package/indicators/natr.src.js +22 -44
- package/indicators/obv.js +2 -2
- package/indicators/obv.src.js +22 -44
- package/indicators/pivot-points.js +2 -2
- package/indicators/pivot-points.src.js +22 -44
- package/indicators/ppo.js +2 -2
- package/indicators/ppo.src.js +23 -44
- package/indicators/price-channel.js +2 -2
- package/indicators/price-channel.src.js +23 -44
- package/indicators/price-envelopes.js +2 -2
- package/indicators/price-envelopes.src.js +22 -44
- package/indicators/psar.js +2 -2
- package/indicators/psar.src.js +22 -44
- package/indicators/regressions.js +2 -2
- package/indicators/regressions.src.js +22 -47
- package/indicators/roc.js +2 -2
- package/indicators/roc.src.js +22 -44
- package/indicators/rsi.js +2 -2
- package/indicators/rsi.src.js +22 -44
- package/indicators/slow-stochastic.js +2 -2
- package/indicators/slow-stochastic.src.js +22 -43
- package/indicators/stochastic.js +2 -2
- package/indicators/stochastic.src.js +25 -46
- package/indicators/supertrend.js +2 -2
- package/indicators/supertrend.src.js +24 -45
- package/indicators/tema.js +2 -2
- package/indicators/tema.src.js +23 -44
- package/indicators/trendline.js +2 -2
- package/indicators/trendline.src.js +22 -44
- package/indicators/trix.js +2 -2
- package/indicators/trix.src.js +23 -44
- package/indicators/volume-by-price.js +2 -2
- package/indicators/volume-by-price.src.js +23 -44
- package/indicators/vwap.js +2 -2
- package/indicators/vwap.src.js +22 -44
- package/indicators/williams-r.js +2 -2
- package/indicators/williams-r.src.js +23 -44
- package/indicators/wma.js +2 -2
- package/indicators/wma.src.js +22 -44
- package/indicators/zigzag.js +2 -2
- package/indicators/zigzag.src.js +22 -44
- package/modules/accessibility.js +2 -2
- package/modules/accessibility.src.js +95 -81
- package/modules/annotations-advanced.js +9 -9
- package/modules/annotations-advanced.src.js +41 -63
- package/modules/annotations.js +3 -3
- package/modules/annotations.src.js +41 -63
- package/modules/arc-diagram.js +2 -2
- package/modules/arc-diagram.src.js +23 -44
- package/modules/arrow-symbols.js +2 -2
- package/modules/arrow-symbols.src.js +17 -38
- package/modules/boost-canvas.js +2 -2
- package/modules/boost-canvas.src.js +62 -68
- package/modules/boost.js +2 -2
- package/modules/boost.src.js +61 -67
- package/modules/broken-axis.js +2 -2
- package/modules/broken-axis.src.js +26 -46
- package/modules/bullet.js +2 -2
- package/modules/bullet.src.js +23 -44
- package/modules/coloraxis.js +2 -2
- package/modules/coloraxis.src.js +97 -101
- package/modules/contour.js +5 -5
- package/modules/contour.src.js +111 -117
- package/modules/current-date-indicator.js +2 -2
- package/modules/current-date-indicator.src.js +17 -38
- package/modules/cylinder.js +2 -2
- package/modules/cylinder.src.js +23 -44
- package/modules/data-sorting.js +2 -2
- package/modules/data-sorting.src.js +18 -39
- package/modules/data-tools.js +2 -2
- package/modules/data-tools.src.js +110 -67
- package/modules/data.js +4 -4
- package/modules/data.src.js +58 -53
- package/modules/datagrouping.js +2 -2
- package/modules/datagrouping.src.js +57 -53
- package/modules/debugger.js +2 -2
- package/modules/debugger.src.js +17 -38
- package/modules/dependency-wheel.js +2 -2
- package/modules/dependency-wheel.src.js +22 -43
- package/modules/dotplot.js +2 -2
- package/modules/dotplot.src.js +22 -43
- package/modules/drag-panes.js +2 -2
- package/modules/drag-panes.src.js +22 -46
- package/modules/draggable-points.js +2 -2
- package/modules/draggable-points.src.js +17 -38
- package/modules/drilldown.js +2 -2
- package/modules/drilldown.src.js +45 -59
- package/modules/dumbbell.js +2 -2
- package/modules/dumbbell.src.js +23 -44
- package/modules/export-data.js +2 -2
- package/modules/export-data.src.js +47 -48
- package/modules/exporting.js +2 -2
- package/modules/exporting.src.js +31 -52
- package/modules/flowmap.js +2 -2
- package/modules/flowmap.src.js +22 -43
- package/modules/full-screen.js +2 -2
- package/modules/full-screen.src.js +22 -43
- package/modules/funnel.js +2 -2
- package/modules/funnel.src.js +26 -47
- package/modules/funnel3d.js +2 -2
- package/modules/funnel3d.src.js +23 -44
- package/modules/gantt.js +8 -8
- package/modules/gantt.src.js +93 -113
- package/modules/geoheatmap.js +2 -2
- package/modules/geoheatmap.src.js +23 -44
- package/modules/grid-axis.js +2 -2
- package/modules/grid-axis.src.js +39 -56
- package/modules/heatmap.js +4 -4
- package/modules/heatmap.src.js +101 -105
- package/modules/heikinashi.js +2 -2
- package/modules/heikinashi.src.js +23 -44
- package/modules/histogram-bellcurve.js +2 -2
- package/modules/histogram-bellcurve.src.js +24 -45
- package/modules/hollowcandlestick.js +2 -2
- package/modules/hollowcandlestick.src.js +23 -44
- package/modules/item-series.js +2 -2
- package/modules/item-series.src.js +24 -45
- package/modules/lollipop.js +2 -2
- package/modules/lollipop.src.js +23 -44
- package/modules/map.js +4 -4
- package/modules/map.src.js +146 -128
- package/modules/marker-clusters.js +2 -2
- package/modules/marker-clusters.src.js +49 -46
- package/modules/mouse-wheel-zoom.js +2 -2
- package/modules/mouse-wheel-zoom.src.js +17 -38
- package/modules/navigator.js +2 -2
- package/modules/navigator.src.js +77 -72
- package/modules/networkgraph.js +2 -2
- package/modules/networkgraph.src.js +29 -50
- package/modules/no-data-to-display.js +2 -2
- package/modules/no-data-to-display.src.js +22 -43
- package/modules/non-cartesian-zoom.js +2 -2
- package/modules/non-cartesian-zoom.src.js +17 -38
- package/modules/offline-exporting.js +2 -2
- package/modules/offline-exporting.src.js +24 -45
- package/modules/organization.js +3 -3
- package/modules/organization.src.js +25 -44
- package/modules/parallel-coordinates.js +2 -2
- package/modules/parallel-coordinates.src.js +29 -49
- package/modules/pareto.js +2 -2
- package/modules/pareto.src.js +26 -47
- package/modules/pathfinder.js +2 -2
- package/modules/pathfinder.src.js +25 -44
- package/modules/pattern-fill.js +2 -2
- package/modules/pattern-fill.src.js +17 -38
- package/modules/pictorial.js +2 -2
- package/modules/pictorial.src.js +76 -70
- package/modules/pointandfigure.js +2 -2
- package/modules/pointandfigure.src.js +52 -49
- package/modules/price-indicator.js +2 -2
- package/modules/price-indicator.src.js +17 -38
- package/modules/pyramid3d.js +2 -2
- package/modules/pyramid3d.src.js +23 -44
- package/modules/renko.js +2 -2
- package/modules/renko.src.js +23 -45
- package/modules/sankey.js +2 -2
- package/modules/sankey.src.js +29 -51
- package/modules/series-label.js +2 -2
- package/modules/series-label.src.js +22 -43
- package/modules/series-on-point.js +2 -2
- package/modules/series-on-point.src.js +52 -49
- package/modules/solid-gauge.js +2 -2
- package/modules/solid-gauge.src.js +23 -44
- package/modules/sonification.js +2 -2
- package/modules/sonification.src.js +23 -44
- package/modules/static-scale.js +2 -2
- package/modules/static-scale.src.js +30 -49
- package/modules/stock-tools.js +2 -2
- package/modules/stock-tools.src.js +34 -55
- package/modules/stock.js +6 -6
- package/modules/stock.src.js +132 -154
- package/modules/streamgraph.js +2 -2
- package/modules/streamgraph.src.js +23 -44
- package/modules/sunburst.js +2 -2
- package/modules/sunburst.src.js +43 -62
- package/modules/textpath.js +2 -2
- package/modules/textpath.src.js +17 -38
- package/modules/tiledwebmap.js +3 -3
- package/modules/tiledwebmap.src.js +24 -45
- package/modules/tilemap.js +2 -2
- package/modules/tilemap.src.js +27 -45
- package/modules/timeline.js +2 -2
- package/modules/timeline.src.js +24 -45
- package/modules/treegraph.js +2 -2
- package/modules/treegraph.src.js +28 -47
- package/modules/treegrid.js +2 -2
- package/modules/treegrid.src.js +52 -72
- package/modules/treemap.js +2 -2
- package/modules/treemap.src.js +39 -58
- package/modules/variable-pie.js +2 -2
- package/modules/variable-pie.src.js +24 -45
- package/modules/variwide.js +2 -2
- package/modules/variwide.src.js +33 -51
- package/modules/vector.js +2 -2
- package/modules/vector.src.js +23 -44
- package/modules/venn.js +2 -2
- package/modules/venn.src.js +23 -44
- package/modules/windbarb.js +2 -2
- package/modules/windbarb.src.js +23 -44
- package/modules/wordcloud.js +2 -2
- package/modules/wordcloud.src.js +23 -44
- package/modules/xrange.js +2 -2
- package/modules/xrange.src.js +23 -44
- package/options/abands.d.ts +183 -8
- package/options/abands.src.d.ts +183 -8
- package/options/ad.d.ts +176 -5
- package/options/ad.src.d.ts +176 -5
- package/options/ao.d.ts +202 -0
- package/options/ao.src.d.ts +202 -0
- package/options/apo.d.ts +178 -8
- package/options/apo.src.d.ts +178 -8
- package/options/arcdiagram.d.ts +785 -0
- package/options/arcdiagram.src.d.ts +785 -0
- package/options/area.d.ts +226 -0
- package/options/area.src.d.ts +226 -0
- package/options/arearange.d.ts +229 -8
- package/options/arearange.src.d.ts +229 -8
- package/options/areaspline.d.ts +1344 -8
- package/options/areaspline.src.d.ts +1344 -8
- package/options/areasplinerange.d.ts +972 -8
- package/options/areasplinerange.src.d.ts +972 -8
- package/options/aroon.d.ts +219 -0
- package/options/aroon.src.d.ts +219 -0
- package/options/aroonoscillator.d.ts +1140 -8
- package/options/aroonoscillator.src.d.ts +1140 -8
- package/options/atr.d.ts +210 -0
- package/options/atr.src.d.ts +210 -0
- package/options/bar.d.ts +183 -10
- package/options/bar.src.d.ts +183 -10
- package/options/bb.d.ts +1232 -0
- package/options/bb.src.d.ts +1232 -0
- package/options/bellcurve.d.ts +1167 -8
- package/options/bellcurve.src.d.ts +1167 -8
- package/options/boxplot.d.ts +163 -10
- package/options/boxplot.src.d.ts +163 -10
- package/options/bubble.d.ts +1005 -8
- package/options/bubble.src.d.ts +1005 -8
- package/options/bullet.d.ts +953 -8
- package/options/bullet.src.d.ts +953 -8
- package/options/candlestick.d.ts +1309 -8
- package/options/candlestick.src.d.ts +1309 -8
- package/options/cci.d.ts +210 -0
- package/options/cci.src.d.ts +210 -0
- package/options/chaikin.d.ts +180 -8
- package/options/chaikin.src.d.ts +180 -8
- package/options/cmf.d.ts +211 -0
- package/options/cmf.src.d.ts +211 -0
- package/options/cmo.d.ts +175 -5
- package/options/cmo.src.d.ts +175 -5
- package/options/column.d.ts +252 -2
- package/options/column.src.d.ts +252 -2
- package/options/columnpyramid.d.ts +1296 -0
- package/options/columnpyramid.src.d.ts +1296 -0
- package/options/columnrange.d.ts +216 -2
- package/options/columnrange.src.d.ts +216 -2
- package/options/contour.d.ts +1148 -0
- package/options/contour.src.d.ts +1148 -0
- package/options/cylinder.d.ts +183 -2
- package/options/cylinder.src.d.ts +183 -2
- package/options/dema.d.ts +1181 -0
- package/options/dema.src.d.ts +1181 -0
- package/options/dependencywheel.d.ts +315 -0
- package/options/dependencywheel.src.d.ts +315 -0
- package/options/disparityindex.d.ts +1157 -8
- package/options/disparityindex.src.d.ts +1157 -8
- package/options/dmi.d.ts +1227 -0
- package/options/dmi.src.d.ts +1227 -0
- package/options/dpo.d.ts +1140 -8
- package/options/dpo.src.d.ts +1140 -8
- package/options/dumbbell.d.ts +286 -0
- package/options/dumbbell.src.d.ts +286 -0
- package/options/ema.d.ts +1156 -5
- package/options/ema.src.d.ts +1156 -5
- package/options/errorbar.d.ts +1286 -0
- package/options/errorbar.src.d.ts +1286 -0
- package/options/flags.d.ts +1269 -8
- package/options/flags.src.d.ts +1269 -8
- package/options/flowmap.d.ts +551 -0
- package/options/flowmap.src.d.ts +551 -0
- package/options/funnel.d.ts +728 -10
- package/options/funnel.src.d.ts +728 -10
- package/options/gantt.d.ts +1011 -0
- package/options/gantt.src.d.ts +1011 -0
- package/options/gauge.d.ts +675 -0
- package/options/gauge.src.d.ts +675 -0
- package/options/geoheatmap.d.ts +585 -8
- package/options/geoheatmap.src.d.ts +585 -8
- package/options/heatmap.d.ts +1054 -8
- package/options/heatmap.src.d.ts +1054 -8
- package/options/heikinashi.d.ts +178 -10
- package/options/heikinashi.src.d.ts +178 -10
- package/options/histogram.d.ts +1226 -0
- package/options/histogram.src.d.ts +1226 -0
- package/options/hlc.d.ts +223 -2
- package/options/hlc.src.d.ts +223 -2
- package/options/hollowcandlestick.d.ts +1335 -0
- package/options/hollowcandlestick.src.d.ts +1335 -0
- package/options/ikh.d.ts +228 -5
- package/options/ikh.src.d.ts +228 -5
- package/options/item.d.ts +217 -8
- package/options/item.src.d.ts +217 -8
- package/options/keltnerchannels.d.ts +1220 -0
- package/options/keltnerchannels.src.d.ts +1220 -0
- package/options/klinger.d.ts +1162 -0
- package/options/klinger.src.d.ts +1162 -0
- package/options/line.d.ts +1377 -8
- package/options/line.src.d.ts +1377 -8
- package/options/linearregression.d.ts +199 -5
- package/options/linearregression.src.d.ts +199 -5
- package/options/linearregressionangle.d.ts +1157 -5
- package/options/linearregressionangle.src.d.ts +1157 -5
- package/options/linearregressionintercept.d.ts +240 -0
- package/options/linearregressionintercept.src.d.ts +240 -0
- package/options/linearregressionslope.d.ts +240 -0
- package/options/linearregressionslope.src.d.ts +240 -0
- package/options/lollipop.d.ts +949 -0
- package/options/lollipop.src.d.ts +949 -0
- package/options/macd.d.ts +254 -0
- package/options/macd.src.d.ts +254 -0
- package/options/map.d.ts +150 -8
- package/options/map.src.d.ts +150 -8
- package/options/mapbubble.d.ts +1016 -8
- package/options/mapbubble.src.d.ts +1016 -8
- package/options/mapline.d.ts +994 -0
- package/options/mapline.src.d.ts +994 -0
- package/options/mappoint.d.ts +1105 -1
- package/options/mappoint.src.d.ts +1105 -1
- package/options/mfi.d.ts +181 -5
- package/options/mfi.src.d.ts +181 -5
- package/options/momentum.d.ts +215 -0
- package/options/momentum.src.d.ts +215 -0
- package/options/natr.d.ts +170 -5
- package/options/natr.src.d.ts +170 -5
- package/options/networkgraph.d.ts +365 -0
- package/options/networkgraph.src.d.ts +365 -0
- package/options/obv.d.ts +170 -5
- package/options/obv.src.d.ts +170 -5
- package/options/ohlc.d.ts +183 -7
- package/options/ohlc.src.d.ts +183 -7
- package/options/organization.d.ts +808 -0
- package/options/organization.src.d.ts +808 -0
- package/options/packedbubble.d.ts +877 -8
- package/options/packedbubble.src.d.ts +877 -8
- package/options/pareto.d.ts +1028 -0
- package/options/pareto.src.d.ts +1028 -0
- package/options/pc.d.ts +183 -8
- package/options/pc.src.d.ts +183 -8
- package/options/pictorial.d.ts +202 -2
- package/options/pictorial.src.d.ts +202 -2
- package/options/pie.d.ts +196 -8
- package/options/pie.src.d.ts +196 -8
- package/options/pivotpoints.d.ts +1199 -0
- package/options/pivotpoints.src.d.ts +1199 -0
- package/options/pointandfigure.d.ts +980 -0
- package/options/pointandfigure.src.d.ts +980 -0
- package/options/polygon.d.ts +234 -0
- package/options/polygon.src.d.ts +234 -0
- package/options/ppo.d.ts +1156 -8
- package/options/ppo.src.d.ts +1156 -8
- package/options/priceenvelopes.d.ts +1229 -0
- package/options/priceenvelopes.src.d.ts +1229 -0
- package/options/psar.d.ts +1156 -5
- package/options/psar.src.d.ts +1156 -5
- package/options/pyramid.d.ts +837 -2
- package/options/pyramid.src.d.ts +837 -2
- package/options/renko.d.ts +247 -10
- package/options/renko.src.d.ts +247 -10
- package/options/roc.d.ts +1215 -0
- package/options/roc.src.d.ts +1215 -0
- package/options/rsi.d.ts +1157 -5
- package/options/rsi.src.d.ts +1157 -5
- package/options/sankey.d.ts +276 -8
- package/options/sankey.src.d.ts +276 -8
- package/options/scatter.d.ts +3043 -1018
- package/options/scatter.src.d.ts +3043 -1018
- package/options/series.d.ts +175 -0
- package/options/series.src.d.ts +175 -0
- package/options/slowstochastic.d.ts +183 -0
- package/options/slowstochastic.src.d.ts +183 -0
- package/options/sma.d.ts +211 -0
- package/options/sma.src.d.ts +211 -0
- package/options/solidgauge.d.ts +218 -0
- package/options/solidgauge.src.d.ts +218 -0
- package/options/spline.d.ts +230 -0
- package/options/spline.src.d.ts +230 -0
- package/options/stochastic.d.ts +1170 -8
- package/options/stochastic.src.d.ts +1170 -8
- package/options/streamgraph.d.ts +1345 -8
- package/options/streamgraph.src.d.ts +1345 -8
- package/options/sunburst.d.ts +286 -9
- package/options/sunburst.src.d.ts +286 -9
- package/options/supertrend.d.ts +1208 -0
- package/options/supertrend.src.d.ts +1208 -0
- package/options/tema.d.ts +1140 -8
- package/options/tema.src.d.ts +1140 -8
- package/options/tiledwebmap.d.ts +164 -0
- package/options/tiledwebmap.src.d.ts +164 -0
- package/options/tilemap.d.ts +687 -0
- package/options/tilemap.src.d.ts +687 -0
- package/options/timeline.d.ts +282 -0
- package/options/timeline.src.d.ts +282 -0
- package/options/treegraph.d.ts +982 -0
- package/options/treegraph.src.d.ts +982 -0
- package/options/treemap.d.ts +1396 -22
- package/options/treemap.src.d.ts +1396 -22
- package/options/trendline.d.ts +211 -0
- package/options/trendline.src.d.ts +211 -0
- package/options/trix.d.ts +178 -8
- package/options/trix.src.d.ts +178 -8
- package/options/variablepie.d.ts +686 -8
- package/options/variablepie.src.d.ts +686 -8
- package/options/variwide.d.ts +178 -2
- package/options/variwide.src.d.ts +178 -2
- package/options/vbp.d.ts +576 -0
- package/options/vbp.src.d.ts +576 -0
- package/options/vector.d.ts +660 -0
- package/options/vector.src.d.ts +660 -0
- package/options/venn.d.ts +654 -0
- package/options/venn.src.d.ts +654 -0
- package/options/vwap.d.ts +1157 -5
- package/options/vwap.src.d.ts +1157 -5
- package/options/waterfall.d.ts +1254 -8
- package/options/waterfall.src.d.ts +1254 -8
- package/options/williamsr.d.ts +209 -0
- package/options/williamsr.src.d.ts +209 -0
- package/options/windbarb.d.ts +222 -2
- package/options/windbarb.src.d.ts +222 -2
- package/options/wma.d.ts +1156 -5
- package/options/wma.src.d.ts +1156 -5
- package/options/wordcloud.d.ts +682 -0
- package/options/wordcloud.src.d.ts +682 -0
- package/options/xrange.d.ts +1168 -0
- package/options/xrange.src.d.ts +1168 -0
- package/options/zigzag.d.ts +1197 -0
- package/options/zigzag.src.d.ts +1197 -0
- package/package.json +1 -1
- package/standalone-navigator.js +4 -4
- package/standalone-navigator.src.js +884 -803
- package/themes/adaptive.js +2 -2
- package/themes/adaptive.src.js +22 -43
- package/themes/avocado.js +2 -2
- package/themes/avocado.src.js +17 -38
- package/themes/dark-unica.js +2 -2
- package/themes/dark-unica.src.js +17 -38
- package/themes/grid-light.js +2 -2
- package/themes/grid-light.src.js +17 -38
- package/themes/high-contrast.js +2 -2
- package/themes/high-contrast.src.js +17 -38
- package/themes/sand-signika.js +2 -2
- package/themes/sand-signika.src.js +17 -38
- package/themes/sunset.js +2 -2
- package/themes/sunset.src.js +17 -38
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Highcharts JS v13.0
|
|
2
|
+
* Highcharts JS v13.1.0 (2026-09-18)
|
|
3
3
|
* @module highcharts/modules/sonification
|
|
4
4
|
* @requires highcharts
|
|
5
5
|
*
|
|
@@ -10,4 +10,4 @@
|
|
|
10
10
|
*
|
|
11
11
|
* A commercial license may be required depending on use,
|
|
12
12
|
* see www.highcharts.com/license
|
|
13
|
-
*/import*as e from"../highcharts.js";let t={};t.n=e=>{let i=e&&e.__esModule?()=>e.default:()=>e;return t.d(i,{a:i}),i},t.d=(e,i)=>{if(Array.isArray(i))for(var n=0;n<i.length;){var s=i[n++],o=i[n++];t.o(e,s)?0===o&&n++:0===o?Object.defineProperty(e,s,{enumerable:!0,value:i[n++]}):Object.defineProperty(e,s,{enumerable:!0,get:o})}else for(var s in i)t.o(i,s)&&!t.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:i[s]})},t.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);let i=e.default;var n=t.n(i);function s(e,t){return(.2414*e-.2414)*Math.log(t)+(3.5-1.7*e)/1.8}function o(e,t,i){e.gain.cancelScheduledValues(t),e.gain.setTargetAtTime(i,t,h.stopRampTime/4),e.gain.setValueAtTime(i,t+h.stopRampTime)}function a(e,t,i,n,s=1){let l="attack"===t,r=n.gain;(r.cancelScheduledValues(i),e.length)?(e[0].t>1&&e.unshift({t:0,vol:+!l}),e.forEach((t,n)=>{let o=e[n-1],a=o?(t.t-o.t)/1e3:0,l=i+(o?o.t/1e3+h.stopRampTime:0);r.setTargetAtTime(t.vol*s,l,Math.max(a,h.stopRampTime)/2)})):o(n,i,l?s:0)}class l{constructor(e,t){this.pulseWidth=Math.min(Math.max(0,t.pulseWidth||.5));let i=()=>new OscillatorNode(e,{type:"sawtooth",detune:t.detune,frequency:Math.max(1,t.frequency||350)});this.sawOscA=i(),this.sawOscB=i(),this.phaseInverter=new GainNode(e,{gain:-1}),this.masterGain=new GainNode(e),this.delayNode=new DelayNode(e,{delayTime:this.pulseWidth/this.sawOscA.frequency.value}),this.sawOscA.connect(this.masterGain),this.sawOscB.connect(this.phaseInverter),this.phaseInverter.connect(this.delayNode),this.delayNode.connect(this.masterGain)}connect(e){this.masterGain.connect(e)}getFrequencyFacade(){let e=this;return{cancelScheduledValues:t=>(e.sawOscA.frequency.cancelScheduledValues(t),e.sawOscB.frequency.cancelScheduledValues(t),e.delayNode.delayTime.cancelScheduledValues(t),e.sawOscA.frequency),setValueAtTime(t,i){return this.cancelScheduledValues(i),e.sawOscA.frequency.setValueAtTime(t,i),e.sawOscB.frequency.setValueAtTime(t,i),e.delayNode.delayTime.setValueAtTime(Math.round(1e4*e.pulseWidth/t)/1e4,i),e.sawOscA.frequency},setTargetAtTime(t,i,n){return this.cancelScheduledValues(i),e.sawOscA.frequency.setTargetAtTime(t,i,n),e.sawOscB.frequency.setTargetAtTime(t,i,n),e.delayNode.delayTime.setTargetAtTime(Math.round(1e4*e.pulseWidth/t)/1e4,i,n),e.sawOscA.frequency}}}getPWMTarget(){return this.delayNode.delayTime}start(){this.sawOscA.start(),this.sawOscB.start()}stop(e){this.sawOscA.stop(e),this.sawOscB.stop(e)}}class r{constructor(e,t,i){this.audioContext=e,this.options=t,this.fmOscillatorIx=t.fmOscillator,this.vmOscillatorIx=t.vmOscillator,this.createSoundSource(),this.createGain(),this.createFilters(),this.createVolTracking(),i&&this.connect(i)}connect(e){[this.lowpassNode,this.highpassNode,this.volTrackingNode,this.vmNode,this.gainNode,this.whiteNoise,this.pulseNode,this.oscNode].reduce((e,t)=>t?(t.connect(e),t):e,e)}start(){this.oscNode&&this.oscNode.start(),this.whiteNoise&&this.whiteNoise.start(),this.pulseNode&&this.pulseNode.start()}stopAtTime(e){this.oscNode&&this.oscNode.stop(e),this.whiteNoise&&this.whiteNoise.stop(e),this.pulseNode&&this.pulseNode.stop(e)}setFreqAtTime(e,t,n=0){let s=this.options,o=(0,i.clamp)((s.fixedFrequency??t)*(s.freqMultiplier||1),0,21e3),a=this.getOscTarget(),l=n/5e3;a&&(a.cancelScheduledValues(e),n&&e-(this.lastUpdateTime||-1)>.01?(a.setTargetAtTime(o,e,l),a.setValueAtTime(o,e+l)):a.setValueAtTime(o,e)),this.scheduleVolTrackingChange(o,e,n),this.scheduleFilterTrackingChange(o,e,n),this.lastUpdateTime=e}getFMTarget(){return this.oscNode&&this.oscNode.detune||this.whiteNoise&&this.whiteNoise.detune||this.pulseNode&&this.pulseNode.getPWMTarget()}getVMTarget(){return this.vmNode&&this.vmNode.gain}runEnvelopeAtTime(e,t){this.gainNode&&a(("attack"===e?this.options.attackEnvelope:this.options.releaseEnvelope)||[],e,t,this.gainNode,this.options.volume)}cancelScheduled(){this.gainNode&&this.gainNode.gain.cancelScheduledValues(this.audioContext.currentTime);let e=this.getOscTarget();e&&e.cancelScheduledValues(0),this.lowpassNode&&this.lowpassNode.frequency.cancelScheduledValues(0),this.highpassNode&&this.highpassNode.frequency.cancelScheduledValues(0),this.volTrackingNode&&this.volTrackingNode.gain.cancelScheduledValues(0)}scheduleVolTrackingChange(e,t,i){if(this.volTrackingNode){let n=s(this.options.volumePitchTrackingMultiplier||1,e),o=i?i/1e3:h.stopRampTime;this.volTrackingNode.gain.cancelScheduledValues(t),this.volTrackingNode.gain.setTargetAtTime(n,t,o/5),this.volTrackingNode.gain.setValueAtTime(n,t+o)}}scheduleFilterTrackingChange(e,t,n){let o=this.options,a=n?n/1e3:h.stopRampTime,l=(n,o)=>{let l=s(o.frequencyPitchTrackingMultiplier||1,e),r=(0,i.clamp)((o.frequency||1e3)*l,0,21e3);n.frequency.cancelScheduledValues(t),n.frequency.setTargetAtTime(r,t,a/5),n.frequency.setValueAtTime(r,t+a)};this.lowpassNode&&o.lowpass&&l(this.lowpassNode,o.lowpass),this.highpassNode&&o.highpass&&l(this.highpassNode,o.highpass)}createGain(){let e=this.options;((0,i.defined)(e.volume)||e.attackEnvelope&&e.attackEnvelope.length||e.releaseEnvelope&&e.releaseEnvelope.length)&&(this.gainNode=new GainNode(this.audioContext,{gain:e.volume??1})),this.vmNode=new GainNode(this.audioContext)}createSoundSource(){let e=this.options,t=this.audioContext,i=(e.fixedFrequency||0)*(e.freqMultiplier||1);if("whitenoise"===e.type){let e=2*t.sampleRate,i=t.createBuffer(1,e,t.sampleRate),n=i.getChannelData(0);for(let t=0;t<e;++t)n[t]=1.2*Math.random()-.6;let s=this.whiteNoise=t.createBufferSource();s.buffer=i,s.loop=!0}else"pulse"===e.type?this.pulseNode=new l(t,{detune:e.detune,pulseWidth:e.pulseWidth,frequency:i}):this.oscNode=new OscillatorNode(t,{type:e.type||"sine",detune:e.detune,frequency:i})}createFilters(){let e=this.options;e.lowpass&&e.lowpass.frequency&&(this.lowpassNode=new BiquadFilterNode(this.audioContext,{type:"lowpass",Q:e.lowpass.Q||1,frequency:e.lowpass.frequency})),e.highpass&&e.highpass.frequency&&(this.highpassNode=new BiquadFilterNode(this.audioContext,{type:"highpass",Q:e.highpass.Q||1,frequency:e.highpass.frequency}))}createVolTracking(){let e=this.options;e.volumePitchTrackingMultiplier&&1!==e.volumePitchTrackingMultiplier&&(this.volTrackingNode=new GainNode(this.audioContext,{gain:1}))}getOscTarget(){return this.oscNode?this.oscNode.frequency:this.pulseNode&&this.pulseNode.getFrequencyFacade()}}class h{constructor(e,t){this.audioContext=e,this.options=t,this.eqNodes=[],this.midiInstrument=t.midiInstrument||1,this.outputNode=new GainNode(e,{gain:0}),this.createEqChain(this.outputNode);let n=this.eqNodes.length?this.eqNodes[0]:this.outputNode;this.oscillators=(this.options.oscillators||[]).map(t=>new r(e,t,(0,i.defined)(t.fmOscillator)||(0,i.defined)(t.vmOscillator)?void 0:n)),this.oscillators.forEach(e=>{let t=(t,i)=>{if(i){let n=i[t]();n&&e.connect(n)}};(0,i.defined)(e.fmOscillatorIx)&&t("getFMTarget",this.oscillators[e.fmOscillatorIx]),(0,i.defined)(e.vmOscillatorIx)&&t("getVMTarget",this.oscillators[e.vmOscillatorIx])})}startSilently(){this.outputNode.gain.value=0,this.oscillators.forEach(e=>e.start())}stop(){let e=this.audioContext.currentTime,t=e+h.stopRampTime;o(this.outputNode,e,0),this.oscillators.forEach(e=>e.stopAtTime(t)),this.outputNode.disconnect()}silenceAtTime(e){if(!e&&this.outputNode.gain.value<.01){this.outputNode.gain.value=0;return}this.releaseAtTime((e||0)+this.audioContext.currentTime)}mute(){this.cancelScheduled(),o(this.outputNode,this.audioContext.currentTime,0)}playFreqAtTime(e,t,i){let n=(e||0)+this.audioContext.currentTime,s=this.options;this.oscillators.forEach(e=>{e.setFreqAtTime(n,t,s.noteGlideDuration),e.runEnvelopeAtTime("attack",n)}),a(s.masterAttackEnvelope||[],"attack",n,this.outputNode,s.masterVolume),i&&this.releaseAtTime(n+i/1e3)}cancelScheduled(){this.outputNode.gain.cancelScheduledValues(this.audioContext.currentTime),this.oscillators.forEach(e=>e.cancelScheduled())}connect(e){return this.outputNode.connect(e)}createEqChain(e){this.eqNodes=(this.options.eq||[]).map(e=>new BiquadFilterNode(this.audioContext,{type:"peaking",...e})),this.eqNodes.reduceRight((e,t)=>(t.connect(e),t),e)}releaseAtTime(e){let t=0;this.oscillators.forEach(i=>{let n=i.options.releaseEnvelope;n&&n.length&&(t=Math.max(t,n[n.length-1].t),i.runEnvelopeAtTime("release",e))});let i=this.options.masterReleaseEnvelope||[];i.length&&(a(i,"release",e,this.outputNode,this.options.masterVolume),t=Math.max(t,i[i.length-1].t)),o(this.outputNode,e+t/1e3,0)}}h.stopRampTime=.012;let c={piano:{masterVolume:.45,masterAttackEnvelope:[{t:1,vol:.71},{t:40,vol:.79},{t:82,vol:.64},{t:147,vol:.29},{t:260,vol:.15},{t:417,vol:.05},{t:589,vol:0}],eq:[{frequency:200,Q:.7,gain:6},{frequency:450,gain:6},{frequency:1300,gain:2},{frequency:2600,Q:.8,gain:8},{frequency:3500,Q:.8,gain:6},{frequency:6200,Q:.8,gain:10},{frequency:8e3,gain:-23},{frequency:1e4,Q:.4,gain:-12}],oscillators:[{type:"pulse",volume:.5,pulseWidth:.55,volumePitchTrackingMultiplier:.1,lowpass:{frequency:4.5,frequencyPitchTrackingMultiplier:900,Q:-2},highpass:{frequency:270},attackEnvelope:[{t:1,vol:1}],releaseEnvelope:[{t:1,vol:1},{t:282,vol:.64},{t:597,vol:0}]},{type:"whitenoise",volume:.8,lowpass:{frequency:400},highpass:{frequency:300},attackEnvelope:[{t:1,vol:1},{t:19,vol:0}]}]},plucked:{masterVolume:.5,midiInstrument:25,masterAttackEnvelope:[{t:1,vol:.71},{t:4,vol:.71},{t:31,vol:.4},{t:109,vol:.12},{t:234,vol:.04},{t:442,vol:0}],eq:[{frequency:800,gain:-8},{frequency:1400,Q:4,gain:4},{frequency:1600,gain:-14},{frequency:2200,gain:-8},{frequency:3600,gain:-2},{frequency:6400,Q:2,gain:-6}],oscillators:[{type:"sawtooth",volume:.9,volumePitchTrackingMultiplier:.6,highpass:{frequency:100},lowpass:{frequency:8e3},releaseEnvelope:[{t:1,vol:1},{t:315,vol:.56},{t:550,vol:0}]}]},flute:{masterVolume:1.1,midiInstrument:74,noteGlideDuration:30,masterAttackEnvelope:[{t:0,vol:0},{t:29,vol:1},{t:76,vol:.48},{t:600,vol:.36}],masterReleaseEnvelope:[{t:1,vol:.36},{t:24,vol:.15},{t:119,vol:0}],eq:[{frequency:150,Q:.6,gain:-10},{frequency:500,gain:4},{frequency:1100,gain:-4},{frequency:2200,gain:-14},{frequency:5e3,gain:8},{frequency:6400,gain:10},{frequency:8e3,gain:12},{frequency:10800,gain:8}],oscillators:[{type:"triangle",volume:1,volumePitchTrackingMultiplier:.4,lowpass:{frequency:12,frequencyPitchTrackingMultiplier:100},highpass:{frequency:200}},{type:"sine",fixedFrequency:5,volume:.2,vmOscillator:0,attackEnvelope:[{t:1,vol:1},{t:48,vol:0},{t:225,vol:.05},{t:600,vol:.77}]},{type:"whitenoise",volume:.13,lowpass:{frequency:9e3,Q:3},highpass:{frequency:6e3,Q:3},vmOscillator:0,attackEnvelope:[{t:0,vol:0},{t:26,vol:1},{t:93,vol:.8}]}]},lead:{masterVolume:1,midiInstrument:20,masterAttackEnvelope:[{t:1,vol:.81},{t:98,vol:.5},{t:201,vol:.18},{t:377,vol:.04},{t:586,vol:0},{t:586,vol:0}],eq:[{frequency:200,gain:-6},{frequency:400,gain:-8},{frequency:800,Q:.5,gain:-10},{frequency:1200,gain:4},{frequency:3600,gain:-4},{frequency:4200,gain:-12},{frequency:7400,gain:-14},{frequency:1e4,gain:2}],oscillators:[{type:"triangle",volume:1.1,volumePitchTrackingMultiplier:.6,lowpass:{frequency:5e3},highpass:{frequency:100}},{type:"sawtooth",volume:.4,lowpass:{frequency:7e3},highpass:{frequency:800,Q:6},releaseEnvelope:[{t:0,vol:.99},{t:200,vol:.83},{t:495,vol:0}]}]},vibraphone:{masterVolume:1,midiInstrument:12,masterAttackEnvelope:[{t:1,vol:0},{t:10,vol:.63},{t:82,vol:.64},{t:149,vol:.26},{t:600,vol:0}],eq:[{frequency:200,Q:.8,gain:-12},{frequency:400,gain:-4},{frequency:1600,Q:.5,gain:6},{frequency:2200,Q:.5,gain:6},{frequency:6400,gain:4},{frequency:12800,gain:4}],oscillators:[{type:"sine",volume:1.5,volumePitchTrackingMultiplier:1e-7,attackEnvelope:[{t:1,vol:1}],releaseEnvelope:[{t:1,vol:1},{t:146,vol:.39},{t:597,vol:0}]},{type:"whitenoise",volume:.03,volumePitchTrackingMultiplier:1e-4,lowpass:{frequency:900},highpass:{frequency:800},attackEnvelope:[{t:1,vol:1},{t:9,vol:0}]},{type:"sine",freqMultiplier:4,volume:.15,volumePitchTrackingMultiplier:1e-4},{type:"sine",fixedFrequency:3,volume:6,fmOscillator:0,releaseEnvelope:[{t:1,vol:1},{t:190,vol:.41},{t:600,vol:0}]},{type:"sine",fixedFrequency:6,volume:3,fmOscillator:2},{type:"sine",freqMultiplier:9,volume:5e-4,volumePitchTrackingMultiplier:1e-4,releaseEnvelope:[{t:1,vol:.97},{t:530,vol:0}]}]},saxophone:{masterVolume:1,midiInstrument:67,noteGlideDuration:10,masterAttackEnvelope:[{t:1,vol:.57},{t:35,vol:1},{t:87,vol:.84},{t:111,vol:.6},{t:296,vol:.49},{t:600,vol:.58}],masterReleaseEnvelope:[{t:1,vol:.58},{t:47,vol:.16},{t:119,vol:0}],eq:[{frequency:200,gain:-2},{frequency:600,gain:2},{frequency:800,gain:-10},{frequency:1100,gain:-2},{frequency:2200,gain:-2},{frequency:3500,gain:10},{frequency:12800,gain:4}],oscillators:[{type:"sawtooth",volume:.45,volumePitchTrackingMultiplier:.06,lowpass:{frequency:18,frequencyPitchTrackingMultiplier:200},highpass:{frequency:300}},{type:"whitenoise",fixedFrequency:1,volume:.4,highpass:{frequency:7e3},vmOscillator:0,attackEnvelope:[{t:1,vol:1},{t:51,vol:1},{t:86,vol:.84},{t:500,vol:.78}]},{type:"sine",fixedFrequency:4,volume:2,fmOscillator:0,attackEnvelope:[{t:0,vol:0},{t:15,vol:.94},{t:79,vol:1},{t:172,vol:.47},{t:500,vol:.26}]},{type:"sine",fixedFrequency:7,volume:6,fmOscillator:0,attackEnvelope:[{t:0,vol:0},{t:25,vol:.99},{t:85,vol:0},{t:85,vol:0},{t:387,vol:.02},{t:511,vol:.43},{t:600,vol:0}]}]},trumpet:{masterVolume:.3,midiInstrument:57,noteGlideDuration:40,masterAttackEnvelope:[{t:1,vol:0},{t:17,vol:1},{t:42,vol:.85},{t:76,vol:1},{t:202,vol:.65},{t:226,vol:.86},{t:282,vol:.63}],masterReleaseEnvelope:[{t:1,vol:.62},{t:34,vol:.14},{t:63,vol:.21},{t:96,vol:0}],eq:[{frequency:200,Q:.6,gain:10},{frequency:600,Q:.5,gain:6},{frequency:1500,Q:.7,gain:14},{frequency:3200,Q:2,gain:8},{frequency:3800,Q:.8,gain:10},{frequency:6200,gain:12},{frequency:8400,gain:-20},{frequency:12800,Q:.5,gain:-18}],oscillators:[{type:"sawtooth",volume:.15,pulseWidth:.5,volumePitchTrackingMultiplier:.5,lowpass:{frequency:1900,Q:3}},{type:"sine",fixedFrequency:6,volume:.2,vmOscillator:0,attackEnvelope:[{t:1,vol:1},{t:102,vol:.13},{t:556,vol:.24}]},{type:"whitenoise",volume:.45,highpass:{frequency:7e3,Q:9},vmOscillator:0,attackEnvelope:[{t:1,vol:1},{t:89,vol:.51},{t:577,vol:.29}]},{type:"sine",fixedFrequency:5.7,volume:20,fmOscillator:0,attackEnvelope:[{t:1,vol:1},{t:89,vol:1},{t:137,vol:.46},{t:283,vol:.15},{t:600,vol:.28}]}]},sawsynth:{masterVolume:.3,midiInstrument:51,noteGlideDuration:40,masterAttackEnvelope:[{t:0,vol:.6},{t:9,vol:1},{t:102,vol:.48}],eq:[{frequency:200,gain:-6}],oscillators:[{type:"sawtooth",volume:.4,volumePitchTrackingMultiplier:.3},{type:"sawtooth",volume:.4,detune:11,volumePitchTrackingMultiplier:.3},{type:"sawtooth",volume:.4,detune:-11,volumePitchTrackingMultiplier:.3}]},basic1:{masterVolume:1,noteGlideDuration:0,masterReleaseEnvelope:[{t:1,vol:.36},{t:24,vol:.15},{t:119,vol:0}],eq:[{frequency:150,Q:.6,gain:-12},{frequency:1100,gain:-2},{frequency:2200,gain:-16},{frequency:5e3,gain:8},{frequency:6400,gain:10},{frequency:8e3,gain:12},{frequency:10800,gain:8}],oscillators:[{type:"triangle",volume:1,volumePitchTrackingMultiplier:.05,lowpass:{frequency:17,frequencyPitchTrackingMultiplier:100},highpass:{frequency:200}},{type:"whitenoise",volume:.04,lowpass:{frequency:9e3,Q:3},highpass:{frequency:6e3,Q:3},vmOscillator:0,attackEnvelope:[{t:0,vol:0},{t:26,vol:1},{t:71,vol:.73}]}]},basic2:{masterVolume:.3,eq:[{frequency:200,Q:.7,gain:6},{frequency:450,gain:2},{frequency:1300,gain:-2},{frequency:2600,Q:.8,gain:6},{frequency:3500,Q:.8,gain:6},{frequency:6200,Q:.8,gain:10},{frequency:8e3,gain:-18},{frequency:1e4,Q:.4,gain:-12}],oscillators:[{type:"pulse",volume:.4,pulseWidth:.55,volumePitchTrackingMultiplier:.1,lowpass:{frequency:4.5,frequencyPitchTrackingMultiplier:900,Q:-2},highpass:{frequency:270}}]},chord:{masterVolume:1,masterAttackEnvelope:[{t:1,vol:.79},{t:27,vol:.86},{t:62,vol:.81},{t:150,vol:.35},{t:408,vol:.04},{t:600,vol:0}],eq:[{frequency:200,gain:-8},{frequency:600,Q:2,gain:4},{frequency:800,gain:-10},{frequency:1600,gain:-2},{frequency:2200,gain:-6},{frequency:3600,Q:.7,gain:-2},{frequency:6400,gain:6},{frequency:12800,gain:6}],oscillators:[{type:"triangle",volume:1.1,volumePitchTrackingMultiplier:.05,lowpass:{frequency:8e3},highpass:{frequency:100},releaseEnvelope:[{t:1,vol:1},{t:315,vol:.56},{t:540,vol:0}]},{type:"triangle",freqMultiplier:1.17,volume:.4,volumePitchTrackingMultiplier:.07,lowpass:{frequency:5e3},highpass:{frequency:100},releaseEnvelope:[{t:0,vol:1},{t:476,vol:0}]},{type:"triangle",freqMultiplier:1.58333,volume:.7,volumePitchTrackingMultiplier:.02,highpass:{frequency:200},releaseEnvelope:[{t:0,vol:1},{t:422,vol:.56},{t:577,vol:0}]},{type:"sine",fixedFrequency:10,volume:4,fmOscillator:0,attackEnvelope:[{t:1,vol:1},{t:157,vol:.65}]},{type:"sine",fixedFrequency:5,volume:.3,vmOscillator:2,attackEnvelope:[{t:1,vol:1},{t:155,vol:.91},{t:289,vol:.78}]}]},wobble:{masterVolume:.9,masterReleaseEnvelope:[{t:1,vol:.36},{t:24,vol:.15},{t:119,vol:0}],eq:[{frequency:150,Q:.6,gain:-12},{frequency:1100,gain:-2},{frequency:2200,gain:-16},{frequency:5e3,gain:8},{frequency:6400,gain:10},{frequency:8e3,gain:12},{frequency:10800,gain:8}],oscillators:[{type:"triangle",volume:.9,volumePitchTrackingMultiplier:.1,lowpass:{frequency:17,frequencyPitchTrackingMultiplier:100},highpass:{frequency:200}},{type:"whitenoise",volume:.04,lowpass:{frequency:9e3,Q:3},highpass:{frequency:6e3,Q:3},vmOscillator:0,attackEnvelope:[{t:0,vol:0},{t:26,vol:1},{t:71,vol:.73}]},{type:"sine",freqMultiplier:.011,volume:30,fmOscillator:0}]},sine:{masterVolume:1,oscillators:[{type:"sine",volumePitchTrackingMultiplier:.07}]},sineGlide:{masterVolume:1,noteGlideDuration:100,oscillators:[{type:"sine",volumePitchTrackingMultiplier:.07}]},triangle:{masterVolume:.5,oscillators:[{type:"triangle",volume:1,volumePitchTrackingMultiplier:.07}]},sawtooth:{masterVolume:.25,midiInstrument:82,oscillators:[{type:"sawtooth",volume:.3,volumePitchTrackingMultiplier:.07}]},square:{masterVolume:.3,midiInstrument:81,oscillators:[{type:"square",volume:.2,volumePitchTrackingMultiplier:.07}]},chop:{masterVolume:1,midiInstrument:116,masterAttackEnvelope:[{t:1,vol:1},{t:44,vol:0}],oscillators:[{type:"whitenoise",volume:1,lowpass:{frequency:600},highpass:{frequency:200}}]},shaker:{masterVolume:.4,midiInstrument:116,masterAttackEnvelope:[{t:1,vol:1},{t:44,vol:0}],oscillators:[{type:"whitenoise",volume:1,lowpass:{frequency:6500},highpass:{frequency:5e3}}]},step:{masterVolume:1,midiInstrument:116,masterAttackEnvelope:[{t:1,vol:1},{t:44,vol:0}],eq:[{frequency:200,gain:-1},{frequency:400,gain:-14},{frequency:800,gain:8},{frequency:1e3,Q:5,gain:-24},{frequency:1600,gain:8},{frequency:2200,gain:-10},{frequency:5400,gain:4},{frequency:12800,gain:-36}],oscillators:[{type:"whitenoise",volume:1.5,lowpass:{frequency:300},highpass:{frequency:100,Q:6}}]},kick:{masterVolume:.55,masterAttackEnvelope:[{t:1,vol:.8},{t:15,vol:1},{t:45,vol:.35},{t:121,vol:.11},{t:242,vol:0}],eq:[{frequency:50,gain:6},{frequency:400,gain:-18},{frequency:1600,gain:18}],oscillators:[{type:"triangle",fixedFrequency:90,volume:1,lowpass:{frequency:300},attackEnvelope:[{t:1,vol:1},{t:6,vol:1},{t:45,vol:.01}]},{type:"whitenoise",volume:.4,lowpass:{frequency:200},attackEnvelope:[{t:1,vol:1},{t:30,vol:0}]},{type:"triangle",freqMultiplier:.1,volume:1,lowpass:{frequency:200}}]},shortnote:{masterVolume:.8,midiInstrument:116,masterAttackEnvelope:[{t:1,vol:1},{t:15,vol:0}],eq:[{frequency:400,gain:-4},{frequency:800,gain:-12},{frequency:2400,gain:4},{frequency:7200,gain:-20},{frequency:1e3,Q:5,gain:-12},{frequency:5400,gain:-32},{frequency:12800,gain:-14}],oscillators:[{type:"sawtooth",volume:.6,lowpass:{frequency:1e3}},{type:"whitenoise",volume:.2,lowpass:{frequency:1e4},highpass:{frequency:7e3},attackEnvelope:[{t:1,vol:1},{t:10,vol:0}]},{type:"whitenoise",volume:1.3,lowpass:{frequency:700,Q:4},highpass:{frequency:250}}]},noise:{masterVolume:.3,midiInstrument:122,oscillators:[{type:"whitenoise"}]},filteredNoise:{masterVolume:.3,midiInstrument:122,eq:[{frequency:1600,gain:-8},{frequency:2200,gain:-4}],oscillators:[{type:"whitenoise",lowpass:{frequency:5,frequencyPitchTrackingMultiplier:1300,Q:6},highpass:{frequency:5,frequencyPitchTrackingMultiplier:300,Q:6}}]},wind:{masterVolume:.75,midiInstrument:122,noteGlideDuration:150,masterReleaseEnvelope:[{t:0,vol:1},{t:124,vol:.24},{t:281,vol:0}],oscillators:[{type:"whitenoise",volume:1,lowpass:{frequency:100,frequencyPitchTrackingMultiplier:6,Q:23},highpass:{frequency:170,frequencyPitchTrackingMultiplier:6}},{type:"sine",freqMultiplier:.016,volume:1e3,fmOscillator:0}]}};class u{constructor(e,t,n){this.audioContext=e,this.curParams={},this.midiTrackName=n.midiTrackName,this.masterVolNode=new GainNode(e),this.masterVolNode.connect(t),this.volumeNode=new GainNode(e),this.createNodesFromCapabilities((0,i.extend)({pan:!0},n.capabilities||{})),this.connectCapabilityNodes(this.volumeNode,this.masterVolNode),this.synthPatch=new h(e,"string"==typeof n.synthPatch?c[n.synthPatch]:n.synthPatch),this.midiInstrument=this.synthPatch.midiInstrument||1,this.synthPatch.startSilently(),this.synthPatch.connect(this.volumeNode)}setMasterVolume(e){this.masterVolNode.gain.setTargetAtTime(e,0,u.rampTime)}scheduleEventAtTime(e,t){let n=(0,i.extend)(this.curParams,t),s=(0,i.defined)(t.frequency)?t.frequency:(0,i.defined)(t.note)?u.musicalNoteToFrequency(t.note):220;(0,i.defined)(s)&&this.synthPatch.playFreqAtTime(e,s,n.noteDuration),((0,i.defined)(n.tremoloDepth)||(0,i.defined)(n.tremoloSpeed))&&this.setTremoloAtTime(e,n.tremoloDepth,n.tremoloSpeed),(0,i.defined)(n.pan)&&this.setPanAtTime(e,n.pan),(0,i.defined)(n.volume)&&this.setVolumeAtTime(e,n.volume),((0,i.defined)(n.lowpassFreq)||(0,i.defined)(n.lowpassResonance))&&this.setFilterAtTime("lowpass",e,n.lowpassFreq,n.lowpassResonance),((0,i.defined)(n.highpassFreq)||(0,i.defined)(n.highpassResonance))&&this.setFilterAtTime("highpass",e,n.highpassFreq,n.highpassResonance)}silenceAtTime(e){this.synthPatch.silenceAtTime(e)}cancel(){this.synthPatch.mute(),[this.tremoloDepth&&this.tremoloDepth.gain,this.tremoloOsc&&this.tremoloOsc.frequency,this.lowpassNode&&this.lowpassNode.frequency,this.lowpassNode&&this.lowpassNode.Q,this.highpassNode&&this.highpassNode.frequency,this.highpassNode&&this.highpassNode.Q,this.panNode&&this.panNode.pan,this.volumeNode.gain].forEach(e=>e&&e.cancelScheduledValues(0))}destroy(){this.cancel(),this.synthPatch.stop(),this.tremoloOsc&&this.tremoloOsc.stop(),[this.tremoloDepth,this.tremoloOsc,this.lowpassNode,this.highpassNode,this.panNode,this.volumeNode,this.masterVolNode].forEach(e=>e&&e.disconnect())}setPanAtTime(e,t){this.panNode&&this.panNode.pan.setTargetAtTime(t,e+this.audioContext.currentTime,u.rampTime)}setFilterAtTime(e,t,n,s){let o=this[e+"Node"],a=this.audioContext.currentTime+t;o&&((0,i.defined)(s)&&o.Q.setTargetAtTime(s,a,u.rampTime),(0,i.defined)(n)&&o.frequency.setTargetAtTime(n,a,u.rampTime))}setVolumeAtTime(e,t){this.volumeNode&&this.volumeNode.gain.setTargetAtTime(t,e+this.audioContext.currentTime,u.rampTime)}setTremoloAtTime(e,t,n){let s=this.audioContext.currentTime+e;this.tremoloDepth&&(0,i.defined)(t)&&this.tremoloDepth.gain.setTargetAtTime(t,s,u.rampTime),this.tremoloOsc&&(0,i.defined)(n)&&this.tremoloOsc.frequency.setTargetAtTime(15*n,s,u.rampTime)}createNodesFromCapabilities(e){let t=this.audioContext;e.pan&&(this.panNode=new StereoPannerNode(t)),e.tremolo&&(this.tremoloOsc=new OscillatorNode(t,{type:"sine",frequency:3}),this.tremoloDepth=new GainNode(t),this.tremoloOsc.connect(this.tremoloDepth),this.tremoloDepth.connect(this.masterVolNode.gain),this.tremoloOsc.start()),e.filters&&(this.lowpassNode=new BiquadFilterNode(t,{type:"lowpass",frequency:2e4}),this.highpassNode=new BiquadFilterNode(t,{type:"highpass",frequency:0}))}connectCapabilityNodes(e,t){[this.panNode,this.lowpassNode,this.highpassNode,e].reduce((e,t)=>t?(t.connect(e),t):e,t)}static noteStringToC0Distance(e){let t=e.match(/^([a-g][#b]?)([0-8])$/i),i=t?t[1]:"a",n=i[0].toLowerCase(),s=i[1];return(({c:0,d:2,e:4,f:5,g:7,a:9,b:11})[n]||0)+("#"===s?1:"b"===s?-1:0)+12*(t?parseInt(t[2],10):4)}static musicalNoteToFrequency(e){return 16.3516*Math.pow(2,Math.min("string"==typeof e?this.noteStringToC0Distance(e):e,107)/12)}}u.rampTime=h.stopRampTime/4;let m=class{constructor(e){this.options=e,this.masterVolume=1,this.synthesis=window.speechSynthesis,void 0!==speechSynthesis.onvoiceschanged&&(speechSynthesis.onvoiceschanged=this.setVoice.bind(this)),this.setVoice(),this.scheduled=[]}say(e,t){if(this.synthesis){this.synthesis.cancel();let i=new SpeechSynthesisUtterance(e);this.voice&&(i.voice=this.voice),i.rate=t&&t.rate||this.options.rate||1,i.pitch=t&&t.pitch||this.options.pitch||1,i.volume=((t&&t.volume)??this.options.volume??1)*this.masterVolume,this.synthesis.speak(i)}}sayAtTime(e,t,i){this.scheduled.push(setTimeout(this.say.bind(this,t,i),e))}cancel(){this.scheduled.forEach(clearTimeout),this.scheduled=[],this.synthesis.cancel()}destroy(){this.cancel()}setMasterVolume(e){this.masterVolume=e}setVoice(){if(this.synthesis){let e,t=this.options.name,i=this.options.language||"en-US",n=this.synthesis.getVoices(),s=n.length;for(let o=0;o<s;++o){if(t&&n[o].name===t){this.voice=n[o];return}if(!e&&n[o].lang===i&&(e=n[o],!t))break}this.voice=e}}},p=class{constructor(e,t,i=!1,n,s){this.type=e,this.engine=t,this.showPlayMarker=i,this.muted=s,this.events=n||[]}addEvent(e){let t=this.events[this.events.length-1];if(t&&e.time<t.time){let t=this.events.length;for(;t--&&this.events[t].time>e.time;);this.events.splice(t+1,0,e)}else this.events.push(e);return e}mute(){this.muted=!0}unmute(){this.muted=!1}cancel(){this.engine.cancel()}destroy(){this.engine.destroy()}},d=(e,t)=>t>>>8*e&255,f=[0,255,81,3,7,161,32],y=e=>{let t=127&e,i=[];for(;e>>=7;)t<<=8,t|=127&e|128;for(;;)if(i.push(255&t),128&t)t>>=8;else break;return i},g=(e,t,i,n)=>{let s,o,a,l,r=0,h=((e,t)=>{let i=[];if(t&&i.push(0,192,127&t),e){let t=[];for(let i=0;i<e.length;++i){let n=e.charCodeAt(i);n<128&&t.push(n)}return i.concat([0,255,3],y(t.length),t)}return i})(i,n),c=(a=[],l=e=>{let t=a.length;for(;t--&&a[t].timeMS>e.timeMS;);a.splice(t+1,0,e)},e.forEach(e=>{let t=e.instrumentEventOptions||{},i=e.time,n=o=t.noteDuration??o,a=n&&e.time+n,r=[{valMap:e=>64+63*e&127,data:{10:t.pan,92:t.tremoloDepth,93:t.tremoloSpeed}},{valMap:e=>127*e/2e4&127,data:{74:t.lowpassFreq,75:t.highpassFreq}},{valMap:e=>63*Math.min(18,Math.max(-18,e))/18+63&127,data:{71:t.lowpassResonance,76:t.highpassResonance}}],h=s=void 0===t.volume?s??127:127*t.volume&127,c=t.frequency,m=t.note||0,p=12+(c?Math.round(12*Math.log(c)/Math.LN2-48.37632):"string"==typeof m?u.noteStringToC0Distance(m):m)&127;r.forEach(e=>Object.keys(e.data).forEach(t=>{let n=e.data[t];void 0!==n&&l({timeMS:i,type:"CTRL_CHG",data:[176,parseInt(t,10),e.valMap(n)]})})),a&&(l({timeMS:i,type:"NON",data:[144,p,h]}),l({timeMS:a,type:"NOF",data:[128,p,h]}))}),a).reduce((e,t)=>{let i=y(t.timeMS-r);return r=t.timeMS,e.concat(i,t.data)},[]),m=[0,255,47,0],p=(t?f.length:0)+h.length+c.length+m.length;return[77,84,114,107,d(3,p),d(2,p),d(1,p),d(0,p)].concat(t?f:[],h,c,m)},v=function(e){let t,i=e.filter(e=>!!e.events.length),n=i.length,s=n>1;return new Uint8Array([77,84,104,100,0,0,0,6,0,+((t=s?n+1:n)>1),d(1,t),d(0,t),1,244].concat(s?g([],!0):[],i.reduce((e,t)=>{let i=t.engine;return e.concat(g(t.events,!s,i.midiTrackName,i.midiInstrument))},[])))},{isSafari:q,win:T,win:{document:w}}=n(),x=T.URL||T.webkitURL||T,N=class{constructor(e,t){this.chart=t,this.isPaused=!1,this.isPlaying=!1,this.channels=[],this.scheduledCallbacks=[],this.playTimestamp=0,this.resumeFromTime=0,this.options=e||{}}addChannel(e,t,i=!1,n){if("instrument"===e&&!t.scheduleEventAtTime||"speech"===e&&!t.sayAtTime)throw Error("Highcharts Sonification: Invalid channel engine.");let s=new p(e,t,i,n);return this.channels.push(s),s}play(e,t=!0,n=!0,s){let o,a;this.isPlaying?this.cancel():this.clearScheduledCallbacks(),this.onEndArgument=s,this.playTimestamp=Date.now(),this.resumeFromTime=0,this.isPaused=!1,this.isPlaying=!0;let l=this.options.skipThreshold||2,r=this.options.onPlay,h=this.options.showTooltip,c=this.options.showCrosshair,u=e?(a=(o=(this.playingChannels||this.channels).map(t=>(t.cancel(),{channel:t,filteredEvents:t.muted?[]:t.events.filter(e)}))).reduce((e,t)=>Math.min(e,t.filteredEvents.length?t.filteredEvents[0].time:1/0),1/0),o.map(e=>new p(e.channel.type,e.channel.engine,e.channel.showPlayMarker,e.filteredEvents.map(e=>(0,i.merge)(e,{time:e.time-a})),e.channel.muted))):this.channels,m=e=>Object.keys(e.speechOptions||{}).concat(Object.keys(e.instrumentEventOptions||{})).join(),d=[];t&&(this.playingChannels=u),r&&r({chart:this.chart,timeline:this});let f=0;u.forEach(e=>{if(e.muted)return;let t=e.events.length,n=-1/0,s=-1/0,o="";f=Math.max(e.events[t-1]&&e.events[t-1].time||0,f);for(let a=0;a<t;++a){let r=e.events[a],u=m(r);if(u===o&&r.time-s<l)continue;o=u,s=r.time,"instrument"===e.type?e.engine.scheduleEventAtTime(r.time/1e3,r.instrumentEventOptions||{}):e.engine.sayAtTime(r.time,r.message||"",r.speechOptions||{});let p=r.relatedPoint,f=p&&p.series&&p.series.chart,y=r.callback||p&&(h||c)&&!1!==e.showPlayMarker&&(r.time-n>50||a===t-1);p&&d.push(p),y&&(this.scheduledCallbacks.push(setTimeout(()=>{if(r.callback&&r.callback(),p){if(c){let e=p.series;e&&e.xAxis&&e.xAxis.crosshair&&e.xAxis.drawCrosshair(void 0,p),e&&e.yAxis&&e.yAxis.crosshair&&e.yAxis.drawCrosshair(void 0,p)}h&&!(f&&f.hoverPoints&&f.hoverPoints.length>1&&(0,i.find)(f.hoverPoints,e=>e===p)&&p.onMouseOver)&&p.onMouseOver()}},r.time)),n=r.time)}});let y=this.options.onEnd,g=this.options.onStop;this.scheduledCallbacks.push(setTimeout(()=>{let e=this.chart,t={chart:e,timeline:this,pointsPlayed:d};this.isPlaying=!1,n&&this.resetPlayState(),g&&g(t),y&&y(t),s&&s(t),e&&(e.tooltip&&e.tooltip.hide(0),e.hoverSeries&&e.hoverSeries.onMouseOut(),e.axes.forEach(e=>e.hideCrosshair()))},f+250)),this.resumeFromTime=t?f:this.getLength()}pause(){return this.isPaused=!0,this.cancel(),this.resumeFromTime=Date.now()-this.playTimestamp-10,this.resumeFromTime}getCurrentTime(){return this.isPlaying?Date.now()-this.playTimestamp:this.resumeFromTime}getLength(){return this.channels.reduce((e,t)=>{let i=t.events[t.events.length-1];return i?Math.max(i.time,e):e},0)}resume(){if(this.playingChannels){let e=this.resumeFromTime-50;this.play(t=>t.time>e,!1,!1,this.onEndArgument),this.playTimestamp-=e}else this.play(void 0,!1,!1,this.onEndArgument)}anchorPlayMoment(e,t){this.isPlaying&&this.pause();let i=0;this.play((t,n,s)=>{let o=e(t,n,s);return o&&t.time>i&&(i=t.time),o},!1,!1,t),this.playingChannels=this.playingChannels||this.channels,this.isPaused=!0,this.isPlaying=!1,this.resumeFromTime=i}playAdjacent(e,t,i,n){this.isPlaying&&this.pause();let s=this.resumeFromTime,o=this.channels.reduce((t,i)=>{let o=n?i.events.filter(n):i.events,a=0,l=o.length,r=t;for(;a<l;){let t=a+l>>1,i=o[t].time,n=i-s;n>0?(e&&i<r&&(r=i),l=t):n<0?(!e&&i>r&&(r=i),a=t+1):e?a=t+1:l=t}return r},e?1/0:-1/0);if(o===1/0||o===-1/0){i&&i({chart:this.chart,timeline:this,attemptedNext:e});return}this.anchorPlayMoment((t,i,a)=>{let l=e?t.time>s&&t.time<=o+.02:t.time<s&&t.time>=o-.02;return n?l&&n(t,i,a):l},t)}playClosestToPropValue(e,t,n,s,o){let a=(e,t,i)=>!!(o?o(e,t,i)&&e.relatedPoint:e.relatedPoint),l=1/0,r=null;(this.playingChannels||this.channels).forEach(n=>{let s=n.events,o=s.length;for(;o--;){if(!a(s[o],o,s))continue;let n=s[o].relatedPoint[e],h=(0,i.defined)(n)&&Math.abs(t-n);!1!==h&&h<l&&(l=h,r=s[o])}}),r?(this.play(e=>!!(r&&e.time<r.time+1&&e.time>r.time-1&&e.relatedPoint===r.relatedPoint),!1,!1,n),this.playingChannels=this.playingChannels||this.channels,this.isPaused=!0,this.isPlaying=!1,this.resumeFromTime=r.time):s&&s({chart:this.chart,timeline:this})}getEventsForPoint(e){return this.channels.reduce((t,i)=>{let n=i.events.filter(t=>t.relatedPoint===e);return t.concat(n)},[])}playSegment(e,t){let i={first:1/0,last:-1/0};if(this.channels.forEach(e=>{e.events.length&&(i.first=Math.min(e.events[0].time,i.first),i.last=Math.max(e.events[e.events.length-1].time,i.last))}),i.first<1/0){let n=(i.last-i.first)/100,s=i.first+e*n,o=s+n;if(!this.channels.some(e=>{let t=e.events,i=0,n=t.length;for(;i<n;){let e=i+n>>1,a=t[e].time;if(a<s)i=e+1;else{if(!(a>o))return!0;n=e}}return!1}))return;this.play(e=>e.time>=s&&e.time<=o,!1,!1,t),this.playingChannels=this.playingChannels||this.channels,this.isPaused=!0,this.isPlaying=!1,this.resumeFromTime=o}}getLastPlayedPoint(e){let t=this.getCurrentTime(),i=this.playingChannels||this.channels,n=1/0,s=null;return i.forEach(i=>{let o=i.events.filter((i,n,s)=>!!(i.relatedPoint&&i.time<=t&&(!e||e(i,n,s)))),a=o[o.length-1];if(a){let e=Math.abs(a.time-t);e<n&&(n=e,s=a.relatedPoint)}}),s}reset(){this.isPlaying&&this.cancel(),this.resetPlayState()}cancel(){let e=this.options.onStop;e&&e({chart:this.chart,timeline:this}),this.isPlaying=!1,this.channels.forEach(e=>e.cancel()),this.playingChannels&&this.playingChannels!==this.channels&&this.playingChannels.forEach(e=>e.cancel()),this.clearScheduledCallbacks(),this.resumeFromTime=0}destroy(){this.cancel(),this.playingChannels&&this.playingChannels!==this.channels&&this.playingChannels.forEach(e=>e.destroy()),this.channels.forEach(e=>e.destroy())}setMasterVolume(e){this.channels.forEach(t=>t.engine.setMasterVolume(e))}getMIDIData(){return v(this.channels.filter(e=>"instrument"===e.type))}downloadMIDI(e){let t=this.getMIDIData(),i=(e||this.chart&&this.chart.options.title&&this.chart.options.title.text||"chart")+".mid",n=new Blob([t],{type:"application/octet-stream"}),s=window.URL.createObjectURL(n);!function(e,t){let i=T.navigator,n=w.createElement("a");if("string"!=typeof e&&!(e instanceof String)&&i.msSaveOrOpenBlob)return i.msSaveOrOpenBlob(e,t);if(e=""+e,i.userAgent.length>1e3)throw Error("Input too long");let s=/Edge\/\d+/.test(i.userAgent);if((q&&"string"==typeof e&&0===e.indexOf("data:application/pdf")||s||e.length>2e6)&&!(e=function(e){let t=e.replace(/filename=.*;/,"").match(/data:([^;]*)(;base64)?,([A-Z+\d\/]+)/i);if(t&&t.length>3&&T.atob&&T.ArrayBuffer&&T.Uint8Array&&T.Blob&&x.createObjectURL){let e=T.atob(t[3]),i=new T.ArrayBuffer(e.length),n=new T.Uint8Array(i);for(let t=0;t<n.length;++t)n[t]=e.charCodeAt(t);return x.createObjectURL(new T.Blob([n],{type:t[1]}))}}(e)||""))throw Error("Failed to convert to blob");if(void 0!==n.download)n.href=e,n.download=t,w.body.appendChild(n),n.click(),w.body.removeChild(n);else try{if(!T.open(e,"chart"))throw Error("Failed to open window")}catch{T.location.href=e}}(s,i),window.URL.revokeObjectURL(s)}resetPlayState(){delete this.playingChannels,delete this.onEndArgument,this.playTimestamp=this.resumeFromTime=0,this.isPaused=!1}clearScheduledCallbacks(){this.scheduledCallbacks.forEach(clearTimeout),this.scheduledCallbacks=[]}},P=e.default.Templating,{format:k}=t.n(P)();function E(e,t){let n;if(t){if("number"==typeof(n=e[t]))return n;n=(0,i.getNestedProperty)(t,e)}return"number"==typeof n?n:void 0}function M(e,t,n,s,o){let a=t.max-t.min;if(a<=0)return n.min;let l=n.max-n.min,r=l*(e-t.min)/a;if(o){let i=t.min>0?e=>Math.log(e)/Math.LOG10E:e=>{let t=Math.abs(e);t<10&&(t+=(10-t)/10);let i=Math.log(t)/Math.LN10;return e<0?-i:i},n=i(t.min);r=l*(i(e)-n)/(i(t.max)-n)}let h=s?n.max-r:n.min+r;return(0,i.clamp)(h,n.min,n.max)}function b(e,t,n,s,o,a,l){return function(e,t,n,s,o,a){if("number"==typeof o)return o;if("function"==typeof o)return o((0,i.extend)({time:0},e));let l=o,r=s.mapFunction,h=s.min,c=s.max,u=s.within,m;if("object"==typeof o&&(l=o.mapTo,r=o.mapFunction||r,h=o.min??h,c=o.max??c,u=o.within||s.within,m=o.scale),!l)return null;let p="-"===l.charAt(0);p&&(l=l.slice(1));let d=e.value,f="value"===l&&void 0!==d&&a;if(!f){let t=o.value;if(void 0!==t)d=t;else{if(!e.point)return null;d=e.point[l]}void 0===d&&(d=(0,i.getNestedProperty)(l,e.point))}if("number"!=typeof d||null===d)return null;let y=null;if(e.point)if("xAxis"===u||"yAxis"===u){let t=e.point.series[u];t&&(0,i.defined)(t.dataMin)&&(0,i.defined)(t.dataMax)&&(y={min:t.dataMin,max:t.dataMax})}else("series"===u||n)&&e.point.series&&(y=t.seriesExtremes[e.point.series.index][f?a:l]);if(y||(y=t.globalExtremes[f?a:l]),m){let e=[],t=Math.floor(h/12),i=Math.ceil(c/12)+1,n=m.length;for(let s=t;s<i;++s)for(let t=0;t<n;++t){let i=12*s+m[t];i>=h&&i<=c&&e.push(i)}let s=M(d,y,{min:0,max:e.length-1},p,"logarithmic"===r);return e[Math.round(s)]}return M(d,y,{min:h,max:c},p,"logarithmic"===r)}(e,t,n,(0,i.extend)({min:0,max:1,mapTo:"y",mapFunction:"linear",within:"chart"},a||{}),s,l)??o}function A(e,t,i,n){let s=n.mapping||{},o="speech"===n.type?new m({language:n.language,name:n.preferredVoice}):new u(t,i,{capabilities:{pan:!!s.pan,tremolo:!!s.tremolo,filters:!!(s.highpass||s.lowpass)},synthPatch:n.instrument,midiTrackName:n.midiName});return e.addChannel(n.type||"instrument",o,n.showPlayMarker??!0)}function C(e,t,n,s,o,a){let l=(t,i,o,l)=>b(e,s,!1,(l||n)[t],i,o,a),r=[],h={noteDuration:l("noteDuration",200,{min:40,max:1e3}),pan:l("pan",0,{min:-1,max:1}),volume:l("volume",1,{min:.1,max:1})};n.frequency&&(h.frequency=l("frequency",440,{min:50,max:6e3})),n.lowpass&&(h.lowpassFreq=l("frequency",2e4,{min:0,max:2e4},n.lowpass),h.lowpassResonance=l("resonance",0,{min:-6,max:12},n.lowpass)),n.highpass&&(h.highpassFreq=l("frequency",2e4,{min:0,max:2e4},n.highpass),h.highpassResonance=l("resonance",0,{min:-6,max:12},n.highpass)),n.tremolo&&(h.tremoloDepth=l("depth",0,{min:0,max:.8},n.tremolo),h.tremoloSpeed=l("speed",0,{min:0,max:.8},n.tremolo));let c=l("gapBetweenNotes",150,{min:50,max:1e3}),m=l("playDelay",0,{max:200}),p=(n,l=0)=>{let p=n;if(n.mapTo)"string"==typeof n.min&&(p.min=u.noteStringToC0Distance(n.min)),"string"==typeof n.max&&(p.max=u.noteStringToC0Distance(n.max));else"string"==typeof n&&/^([a-g][#b]?)[0-8]$/i.test(n)&&(p=u.noteStringToC0Distance(n));h.note=b(e,s,!1,p,-1,{min:0,max:107},a),h.note>-1&&(o&&(h.note=Math.round(h.note)),r.push(t.addEvent({time:e.time+m+c*l,relatedPoint:e.point,instrumentEventOptions:void 0!==l?(0,i.extend)({},h):h})))};return n.pitch&&n.pitch.constructor===Array?n.pitch.forEach(p):n.pitch?p(n.pitch):n.frequency&&r.push(t.addEvent({time:e.time+m,relatedPoint:e.point,instrumentEventOptions:h})),r}function O(e,t,i,n,s){var o;let a=(t,o,a)=>b(e,n,!1,i[t],o,a,s),l=a("playDelay",0,{max:200}),r=a("pitch",1,{min:.3,max:2}),h=a("rate",1,{min:.4,max:4}),c=a("volume",1,{min:.1}),u=k("function"==typeof(o=i.text)?o(e):o,e,e.point&&e.point.series.chart);if(u)return t.addEvent({time:e.time+l,relatedPoint:e.point,speechOptions:{pitch:r,rate:h,volume:c},message:u})}function S(e,t,i){if("function"==typeof t)return t(e);if("object"==typeof t){let n=t.prop,s=e.value??(e.point&&E(e.point,n));if("number"!=typeof s)return!1;let o=!0,a=t.crossingUp,l=t.crossingDown,r="number"==typeof i;o=a&&l?r&&(i<a&&s>=a||i>l&&s<=l):(void 0===a||r&&i<a&&s>=a)&&(void 0===l||r&&i>l&&s<=l);let h=t.max??1/0,c=t.min??-1/0;return s<=h&&s>=c&&o}return!0}let V=function(e,t,n){let s,o,a,l,r,h,c,u,m,p,d,f,y=n.options.sonification||{},g=y.defaultInstrumentOptions,v=y.defaultSpeechOptions,q=(0,i.merge)({enabled:!0,groupTimespan:15,algorithm:"minmax",prop:"y"},y.pointGrouping),T=y.globalTracks||[],w=y.globalContextTracks||[],x="sequential"===y.order,P=Math.max(50,y.duration-300),k=y.afterSeriesWait,V=y.events||{},I=(o=((s=n.options.sonification||{}).defaultInstrumentOptions||{}).mapping||{time:"x",pitch:"y"},a=s.defaultSpeechOptions&&s.defaultSpeechOptions.mapping||{},l=[],r={},h=(e,t)=>{null!==t?(l[t]=l[t]||{},l[t][e]=!0):r[e]=!0},c={},u={},m=(e,t,i)=>{let n=e=>"-"===e.charAt(0)?e.slice(1):e;if("string"==typeof t&&"text"!==e){if("pitch"===e&&/^([a-g][#b]?)[0-8]$/i.test(t))return;"time"===e&&(u[t]=!0,h(t,i)),c[n(t)]=!0;return}if(t&&t.mapTo&&"string"==typeof t.mapTo){let s=n(t.mapTo);"time"===e&&h(s,i),("time"===e||"series"===t.within)&&(u[s]=!0),c[s]=!0;return}["tremolo","lowpass","highpass"].indexOf(e)>-1&&"object"==typeof t&&Object.keys(t).forEach(e=>m(e,t[e],i))},p=(e,t)=>{Object.keys(e).forEach(i=>m(i,e[i],t))},d=e=>e.forEach(e=>{c[e.valueProp||"x"]=u[e.valueProp||"x"]=!0}),p(o,null),p(a,null),d(s.globalContextTracks||[]),f=Object.keys(r).length,n.series.forEach(e=>{let t=e.options.sonification;if(e.visible&&!(t&&!1===t.enabled)&&(f&&(l[e.index]=(0,i.merge)(r)),t)){let i=(t.defaultInstrumentOptions||{}).mapping,n=(t.defaultSpeechOptions||{}).mapping;i&&p(i,e.index),n&&p(n,e.index),d(t.contextTracks||[]),(t.tracks||[]).concat(t.contextTracks||[]).forEach(t=>{t.mapping&&p(t.mapping,e.index)})}}),{seriesTimeProps:l,...function(e,t,n){let s=e.series,o=t.length,a=n.length,l=e=>e.reduce((e,t)=>(e[t]={min:1/0,max:-1/0},e),{}),r=(e,t,n)=>{let s=t[n];void 0===s&&(s=(0,i.getNestedProperty)(n,t)),"number"==typeof s&&(e[n].min=Math.min(e[n].min,s),e[n].max=Math.max(e[n].max,s))},h=l(t),c=s.length,u=Array(c);for(;c--;){let e=l(n),i=s[c].options;if(!s[c].visible||i&&i.sonification&&!1===i.sonification.enabled)continue;let m=s[c].points||[],p=m.length;for(;p--;){let i=o;for(;i--;)r(h,m[p],t[i]);for(i=a;i--;)r(e,m[p],n[i])}u[c]=e}return{globalExtremes:h,seriesExtremes:u}}(n,Object.keys(c),Object.keys(u))}),F=new N({onPlay:V.onPlay,onEnd:V.onEnd,onStop:V.onStop,showCrosshair:y.showCrosshair,showTooltip:y.showTooltip},n);n.sonification&&(n.sonification.propMetrics=I);let D=0;return n.series.forEach((n,s)=>{let o=n.options.sonification||{};if(n.visible&&!1!==o.enabled){let a,l=x?function(e,t,i,n){let s,o,a=t-(e.chart.series.length-1)*n;if(i.seriesTimeProps.every(e=>{let t=Object.keys(e);return!(t.length>1)&&(s||(s=t[0]),s===t[0])})){let t=i.seriesExtremes[e.index][s];o=Math.round((t.max-t.min)/i.seriesExtremes.reduce((e,t)=>t[s]?e+t[s].max-t[s].min:e,0)*a)}else{let t=e.chart.series.reduce((e,t)=>e+t.points.length,0);o=Math.round((e.points||[]).length/t*a)}return Math.max(50,o)}(n,P,I,k):P,r=(0,i.merge)(g,o.defaultInstrumentOptions),h=(0,i.merge)(v,o.defaultSpeechOptions),c=(0,i.merge)(q,o.pointGrouping),u=(o.tracks||[r]).concat(T),m=F.channels.length&&!x?o.contextTracks||[]:(o.contextTracks||[]).concat(w),p=[];u.forEach(s=>{let o=(0,i.merge)({pointGrouping:c,midiName:s.midiName||n.name},"speech"===s.type?h:r,s),u=o.pointGrouping,m=o.activeWhen,d=e=>{"object"==typeof m&&m.prop&&(a=E(e,m.prop))},f=A(F,e,t,o),y=e=>p.push(...function(e,t,i,n){let s=[];if("speech"===i.type&&i.mapping){let o=O(e,t,i.mapping,n);o&&(s=[o])}else i.mapping&&(s=C(e,t,i.mapping,n,i.roundToMusicalNotes??!0));return s}(e,f,o,I)),g=[],v=0,q=e=>{if(1===g.length)y({point:g[0].point,time:v+e/2});else{let t=function(e,t){let i=e.algorithm||"minmax",n=e=>t[e]?[t[e].point]:[];if("first"===i)return n(0);if("last"===i)return n(t.length-1);if("middle"===i)return n(t.length>>1);if("firstlast"===i)return n(0).concat(n(t.length-1));if("minmax"===i){let i,n,s,o,a=e.prop||"y";if(t.forEach(e=>{let t=E(e.point,a);void 0!==t&&((!i||t<s)&&(i=e,s=t),(!n||t>o)&&(n=e,o=t))}),i&&n)return i.point===n.point?[i.point]:i.time>n.time?[n.point,i.point]:[i.point,n.point]}return[]}(u,g),i=e/t.length;t.forEach((e,t)=>y({point:e,time:v+i/2+i*t}))}g=[]};(n.points||[]).forEach((e,t)=>{var i;let s=t===n.points.length-1,r=(i=D,b({point:e,time:0},I,x,o.mapping&&o.mapping.time||0,0,{min:0,max:l,mapTo:"x"})+i),h={point:e,time:r};if(!o.mapping||!S(h,m,a)){d(e),s&&g.length&&q(g[g.length-1].time-g[0].time);return}if(d(e),u.enabled){let e=r-v,t=u.groupTimespan,i=s&&e<=t?e:t;s||e>t?(e<=t&&g.push(h),q(i),v=Math.floor(r/t)*t,s&&e>t?y({point:h.point,time:v+i/2}):g=[h]):g.push(h)}else y(h)})});let d=p.reduce((e,t)=>t.time<e.time?t:e,{time:1/0}),f=p.reduce((e,t)=>t.time>e.time?t:e,{time:-1/0});d.callback=V.onSeriesStart?V.onSeriesStart.bind(null,{series:n,timeline:F}):void 0,f.callback=V.onSeriesEnd?V.onSeriesEnd.bind(null,{series:n,timeline:F}):void 0,m.forEach(n=>{let o="speech"===n.type?(0,i.merge)(v,n):(0,i.merge)(g,{mapping:{pitch:{mapTo:"value"}}},n),r=A(F,e,t,o);a=void 0;let{timeInterval:h,valueInterval:c}=o,u=o.valueProp||"x",m=o.activeWhen,p=I.seriesExtremes[s][u],d=(e,t)=>{if(!o.mapping||!S({time:e,value:t},"object"==typeof m?(0,i.extend)({prop:u},m):m,a)){a=t;return}a=t,"speech"===o.type?O({time:e,value:t},r,o.mapping,I,u):C({time:e,value:t},r,o.mapping,I,o.roundToMusicalNotes??!0,u)};if(h){let e=0;for(;e<=l;){let t=M(e,{min:0,max:l},p);d(e+D,t),e+=h}}if(c){let e=p.min;for(;e<=p.max;)d(M(e,p,{min:0,max:l},!1,"logarithmic"===o.valueMapFunction)+D,e),e+=c}}),x&&(D+=l+k)}}),F},{defaultOptions:I,getOptions:F}=n(),{doc:D,win:Q}=n();class R{constructor(e){this.retryContextCounter=0,this.lastUpdate=0,this.chart=e,this.unbindKeydown=(0,i.addEvent)(D,"keydown",function(t){e&&e.sonification&&("Esc"===t.key||"Escape"===t.key)&&e.sonification.cancel()});try{this.audioContext=new Q.AudioContext,this.audioContext.suspend(),this.audioDestination=this.audioContext.destination}catch{}}setAudioDestination(e){this.audioDestination=e,this.update()}isPlaying(){return!!this.timeline&&this.timeline.isPlaying}playSegment(e,t){this.ready(this.playSegment.bind(this,e,t))&&this.timeline&&this.timeline.playSegment(e,t)}playAdjacent(e,t,i){if(this.ready(this.playAdjacent.bind(this,e,t,i))&&this.timeline){let n=this.chart.options.sonification,s=n&&n.events&&n.events.onBoundaryHit;s||this.initBoundaryInstrument(),this.timeline.playAdjacent(e,t,s||(()=>{this.defaultBoundaryHit()}),i)}}playAdjacentSeries(e,t="x",i){let n=this.getLastPlayedPoint();if(n){let s=n.series.index+(e?1:-1);return this.playClosestToProp(t,n[t],e=>!!e.relatedPoint&&e.relatedPoint.series.index===s,i),this.chart.series[s]||null}return null}playClosestToProp(e,t,i,n){if(this.ready(this.playClosestToProp.bind(this,e,t,i,n))&&this.timeline){let s=this.chart.options.sonification,o=s&&s.events&&s.events.onBoundaryHit;o||this.initBoundaryInstrument(),this.timeline.playClosestToPropValue(e,t,n,o||(()=>this.defaultBoundaryHit()),i)}}getLastPlayedPoint(){return this.timeline?this.timeline.getLastPlayedPoint():null}playNote(e,t,i=0){if(!this.ready(this.playNote.bind(this,e,t)))return;let n=t.noteDuration=t.noteDuration||500,s=new u(this.audioContext,this.audioDestination,{synthPatch:e,capabilities:{filters:!0,tremolo:!0,pan:!0}});s.scheduleEventAtTime(i/1e3,t),setTimeout(()=>s&&s.destroy(),i+n+500)}speak(e,t,n=0){new m((0,i.merge)({language:"en-US",rate:1.5,volume:.4},t||{})).sayAtTime(n,e)}cancel(){this.timeline&&this.timeline.cancel(),(0,i.fireEvent)(this,"cancel")}downloadMIDI(){this.ready(this.downloadMIDI.bind(this))&&this.timeline&&(this.timeline.reset(),this.timeline.downloadMIDI())}sonifyChart(e,t){this.ready(this.sonifyChart.bind(this,e,t))&&this.timeline&&(this.timeline.reset(),this.beforePlay(),this.timeline.play(void 0,void 0,e,t))}sonifySeries(e,t,i){this.ready(this.sonifySeries.bind(this,e,t,i))&&this.timeline&&(this.timeline.reset(),this.beforePlay(),this.timeline.play(t=>!!t.relatedPoint&&t.relatedPoint.series===e,void 0,t,i))}sonifyPoint(e,t){this.ready(this.sonifyPoint.bind(this,e,t))&&this.timeline&&(this.timeline.reset(),this.beforePlay(),this.timeline.anchorPlayMoment(t=>t.relatedPoint===e,t))}setMasterVolume(e){this.timeline&&this.timeline.setMasterVolume(e)}destroy(){this.unbindKeydown(),this.timeline&&(this.timeline.destroy(),delete this.timeline),this.boundaryInstrument&&this.boundaryInstrument.stop(),this.audioContext&&(this.audioContext.close(),delete this.audioContext)}update(){let e=this.chart.options&&this.chart.options.sonification;if(!this.ready(this.update.bind(this))||!e)return;let t=Date.now(),n=e.updateInterval;if(t-this.lastUpdate<n&&!this.forceReady){(0,i.internalClearTimeout)(this.scheduledUpdate),this.scheduledUpdate=setTimeout(this.update.bind(this),n/2);return}let s=e.events||{};if(s.beforeUpdate&&s.beforeUpdate({chart:this.chart,timeline:this.timeline}),this.lastUpdate=t,this.timeline&&this.timeline.destroy(),this.audioContext&&this.audioDestination){this.timeline=V(this.audioContext,this.audioDestination,this.chart);let e=this.chart.options.sonification;this.timeline.setMasterVolume((e&&e.masterVolume)??1)}s.afterUpdate&&s.afterUpdate({chart:this.chart,timeline:this.timeline})}ready(e){return!!this.audioContext&&!!this.audioDestination&&!!this.chart.options&&(!this.chart.options.sonification||!1!==this.chart.options.sonification.enabled)&&("suspended"!==this.audioContext.state||this.forceReady?(this.retryContextCounter=0,!0):(this.retryContextCounter++<20&&setTimeout(()=>{this.audioContext&&"suspended"===this.audioContext.state?this.audioContext.resume().then(e):e()},5),!1))}beforePlay(){let e=this.chart.options.sonification,t=e&&e.events&&e.events.beforePlay;t&&t({chart:this.chart,timeline:this.timeline})}initBoundaryInstrument(){this.boundaryInstrument||(this.boundaryInstrument=new h(this.audioContext,(0,i.merge)(c.chop,{masterVolume:.3})),this.boundaryInstrument.startSilently(),this.boundaryInstrument.connect(this.audioDestination))}defaultBoundaryHit(){this.boundaryInstrument&&(this.boundaryInstrument.playFreqAtTime(.1,1,200),this.boundaryInstrument.playFreqAtTime(.2,1,200))}}!function(e){let t=[];function n(){let t=this.sonification,i=this.options&&this.options.sonification;i&&i.enabled?t?t.update():(this.sonification=new e(this),this.sonification.update()):t&&(t.destroy(),delete this.sonification)}function s(){this&&this.sonification&&this.sonification.destroy()}function o(){this.updateSonificationEnabled&&this.updateSonificationEnabled()}function a(e){let t=e.options.sonification;t&&((0,i.merge)(!0,this.options.sonification,t),o.call(this))}e.compose=function(e,l,r){-1===t.indexOf(e)&&(t.push(e),(0,i.extend)(e.prototype,{updateSonificationEnabled:n,sonify:function(e){this.sonification&&this.sonification.sonifyChart(!1,e)},toggleSonify:function(e=!0,t){if(!this.sonification)return;let i=this.sonification.timeline;Q.speechSynthesis&&Q.speechSynthesis.cancel(),i&&this.sonification.isPlaying()?e?this.sonification.cancel():i.pause():i&&i.isPaused?i.resume():this.sonification.sonifyChart(e,t)}}),(0,i.addEvent)(e,"destroy",s),(0,i.addEvent)(e,"render",o),(0,i.addEvent)(e,"update",a)),-1===t.indexOf(l)&&(t.push(l),l.prototype.sonify=function(e){this.chart.sonification&&this.chart.sonification.sonifySeries(this,!1,e)}),-1===t.indexOf(r)&&(t.push(r),r.prototype.sonify=function(e){this.series.chart.sonification&&this.series.chart.sonification.sonifyPoint(this,e)});let h=F().exporting;h&&h.buttons&&h.buttons.contextButton.menuItems&&h.buttons.contextButton.menuItems.push("separator","downloadMIDI","playAsSound")}}(R||(R={})),(0,i.merge)(!0,I,{sonification:{enabled:!0,duration:6e3,afterSeriesWait:700,updateInterval:200,masterVolume:.7,order:"sequential",showTooltip:!0,showCrosshair:!0,pointGrouping:{enabled:!0,groupTimespan:15,algorithm:"minmax",prop:"y"},defaultInstrumentOptions:{roundToMusicalNotes:!0,instrument:"piano",mapping:{time:"x",pan:"x",noteDuration:200,pitch:{mapTo:"y",min:"c2",max:"c6",within:"yAxis"},gapBetweenNotes:100}},defaultSpeechOptions:{language:"en-US",mapping:{time:"x",rate:1.3,volume:.4},pointGrouping:{algorithm:"last"}}},exporting:{menuItemDefinitions:{downloadMIDI:{textKey:"downloadMIDI",onclick:function(){this.sonification&&this.sonification.downloadMIDI()}},playAsSound:{textKey:"playAsSound",onclick:function(){let e=this.sonification;e&&e.isPlaying()?e.cancel():this.sonify()}}}},lang:{downloadMIDI:"Download MIDI",playAsSound:"Play as sound"}});let B=R,G=n();G.sonification={InstrumentPresets:c,Scales:{minor:[0,2,3,5,7,8,10],dorian:[0,2,3,5,7,9,10],harmonicMinor:[0,2,3,5,7,8,11],phrygian:[0,1,3,5,7,8,11],major:[0,2,4,5,7,9,11],lydian:[0,2,4,6,7,9,11],mixolydian:[0,2,4,5,7,9,10],majorPentatonic:[0,2,4,7,9],minorPentatonic:[0,3,5,7,10]},SynthPatch:h,SonificationInstrument:u,SonificationSpeaker:m,SonificationTimeline:N,Sonification:B},B.compose(G.Chart,G.Series,G.Point);let j=n();export{j as default};
|
|
13
|
+
*/import*as e from"../highcharts.js";let t={};t.n=e=>{let i=e&&e.__esModule?()=>e.default:()=>e;return t.d(i,{a:i}),i},t.d=(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},t.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);let i=e.default;var n=t.n(i);function s(e,t){return(.2414*e-.2414)*Math.log(t)+(3.5-1.7*e)/1.8}function o(e,t,i){e.gain.cancelScheduledValues(t),e.gain.setTargetAtTime(i,t,h.stopRampTime/4),e.gain.setValueAtTime(i,t+h.stopRampTime)}function a(e,t,i,n,s=1){let l="attack"===t,r=n.gain;(r.cancelScheduledValues(i),e.length)?(e[0].t>1&&e.unshift({t:0,vol:+!l}),e.forEach((t,n)=>{let o=e[n-1],a=o?(t.t-o.t)/1e3:0,l=i+(o?o.t/1e3+h.stopRampTime:0);r.setTargetAtTime(t.vol*s,l,Math.max(a,h.stopRampTime)/2)})):o(n,i,l?s:0)}class l{constructor(e,t){this.pulseWidth=Math.min(Math.max(0,t.pulseWidth||.5));let i=()=>new OscillatorNode(e,{type:"sawtooth",detune:t.detune,frequency:Math.max(1,t.frequency||350)});this.sawOscA=i(),this.sawOscB=i(),this.phaseInverter=new GainNode(e,{gain:-1}),this.masterGain=new GainNode(e),this.delayNode=new DelayNode(e,{delayTime:this.pulseWidth/this.sawOscA.frequency.value}),this.sawOscA.connect(this.masterGain),this.sawOscB.connect(this.phaseInverter),this.phaseInverter.connect(this.delayNode),this.delayNode.connect(this.masterGain)}connect(e){this.masterGain.connect(e)}getFrequencyFacade(){let e=this;return{cancelScheduledValues:t=>(e.sawOscA.frequency.cancelScheduledValues(t),e.sawOscB.frequency.cancelScheduledValues(t),e.delayNode.delayTime.cancelScheduledValues(t),e.sawOscA.frequency),setValueAtTime(t,i){return this.cancelScheduledValues(i),e.sawOscA.frequency.setValueAtTime(t,i),e.sawOscB.frequency.setValueAtTime(t,i),e.delayNode.delayTime.setValueAtTime(Math.round(1e4*e.pulseWidth/t)/1e4,i),e.sawOscA.frequency},setTargetAtTime(t,i,n){return this.cancelScheduledValues(i),e.sawOscA.frequency.setTargetAtTime(t,i,n),e.sawOscB.frequency.setTargetAtTime(t,i,n),e.delayNode.delayTime.setTargetAtTime(Math.round(1e4*e.pulseWidth/t)/1e4,i,n),e.sawOscA.frequency}}}getPWMTarget(){return this.delayNode.delayTime}start(){this.sawOscA.start(),this.sawOscB.start()}stop(e){this.sawOscA.stop(e),this.sawOscB.stop(e)}}class r{constructor(e,t,i){this.audioContext=e,this.options=t,this.fmOscillatorIx=t.fmOscillator,this.vmOscillatorIx=t.vmOscillator,this.createSoundSource(),this.createGain(),this.createFilters(),this.createVolTracking(),i&&this.connect(i)}connect(e){[this.lowpassNode,this.highpassNode,this.volTrackingNode,this.vmNode,this.gainNode,this.whiteNoise,this.pulseNode,this.oscNode].reduce((e,t)=>t?(t.connect(e),t):e,e)}start(){this.oscNode&&this.oscNode.start(),this.whiteNoise&&this.whiteNoise.start(),this.pulseNode&&this.pulseNode.start()}stopAtTime(e){this.oscNode&&this.oscNode.stop(e),this.whiteNoise&&this.whiteNoise.stop(e),this.pulseNode&&this.pulseNode.stop(e)}setFreqAtTime(e,t,n=0){let s=this.options,o=(0,i.clamp)((s.fixedFrequency??t)*(s.freqMultiplier||1),0,21e3),a=this.getOscTarget(),l=n/5e3;a&&(a.cancelScheduledValues(e),n&&e-(this.lastUpdateTime||-1)>.01?(a.setTargetAtTime(o,e,l),a.setValueAtTime(o,e+l)):a.setValueAtTime(o,e)),this.scheduleVolTrackingChange(o,e,n),this.scheduleFilterTrackingChange(o,e,n),this.lastUpdateTime=e}getFMTarget(){return this.oscNode&&this.oscNode.detune||this.whiteNoise&&this.whiteNoise.detune||this.pulseNode&&this.pulseNode.getPWMTarget()}getVMTarget(){return this.vmNode&&this.vmNode.gain}runEnvelopeAtTime(e,t){this.gainNode&&a(("attack"===e?this.options.attackEnvelope:this.options.releaseEnvelope)||[],e,t,this.gainNode,this.options.volume)}cancelScheduled(){this.gainNode&&this.gainNode.gain.cancelScheduledValues(this.audioContext.currentTime);let e=this.getOscTarget();e&&e.cancelScheduledValues(0),this.lowpassNode&&this.lowpassNode.frequency.cancelScheduledValues(0),this.highpassNode&&this.highpassNode.frequency.cancelScheduledValues(0),this.volTrackingNode&&this.volTrackingNode.gain.cancelScheduledValues(0)}scheduleVolTrackingChange(e,t,i){if(this.volTrackingNode){let n=s(this.options.volumePitchTrackingMultiplier||1,e),o=i?i/1e3:h.stopRampTime;this.volTrackingNode.gain.cancelScheduledValues(t),this.volTrackingNode.gain.setTargetAtTime(n,t,o/5),this.volTrackingNode.gain.setValueAtTime(n,t+o)}}scheduleFilterTrackingChange(e,t,n){let o=this.options,a=n?n/1e3:h.stopRampTime,l=(n,o)=>{let l=s(o.frequencyPitchTrackingMultiplier||1,e),r=(0,i.clamp)((o.frequency||1e3)*l,0,21e3);n.frequency.cancelScheduledValues(t),n.frequency.setTargetAtTime(r,t,a/5),n.frequency.setValueAtTime(r,t+a)};this.lowpassNode&&o.lowpass&&l(this.lowpassNode,o.lowpass),this.highpassNode&&o.highpass&&l(this.highpassNode,o.highpass)}createGain(){let e=this.options;((0,i.defined)(e.volume)||e.attackEnvelope&&e.attackEnvelope.length||e.releaseEnvelope&&e.releaseEnvelope.length)&&(this.gainNode=new GainNode(this.audioContext,{gain:e.volume??1})),this.vmNode=new GainNode(this.audioContext)}createSoundSource(){let e=this.options,t=this.audioContext,i=(e.fixedFrequency||0)*(e.freqMultiplier||1);if("whitenoise"===e.type){let e=2*t.sampleRate,i=t.createBuffer(1,e,t.sampleRate),n=i.getChannelData(0);for(let t=0;t<e;++t)n[t]=1.2*Math.random()-.6;let s=this.whiteNoise=t.createBufferSource();s.buffer=i,s.loop=!0}else"pulse"===e.type?this.pulseNode=new l(t,{detune:e.detune,pulseWidth:e.pulseWidth,frequency:i}):this.oscNode=new OscillatorNode(t,{type:e.type||"sine",detune:e.detune,frequency:i})}createFilters(){let e=this.options;e.lowpass&&e.lowpass.frequency&&(this.lowpassNode=new BiquadFilterNode(this.audioContext,{type:"lowpass",Q:e.lowpass.Q||1,frequency:e.lowpass.frequency})),e.highpass&&e.highpass.frequency&&(this.highpassNode=new BiquadFilterNode(this.audioContext,{type:"highpass",Q:e.highpass.Q||1,frequency:e.highpass.frequency}))}createVolTracking(){let e=this.options;e.volumePitchTrackingMultiplier&&1!==e.volumePitchTrackingMultiplier&&(this.volTrackingNode=new GainNode(this.audioContext,{gain:1}))}getOscTarget(){return this.oscNode?this.oscNode.frequency:this.pulseNode&&this.pulseNode.getFrequencyFacade()}}class h{constructor(e,t){this.audioContext=e,this.options=t,this.eqNodes=[],this.midiInstrument=t.midiInstrument||1,this.outputNode=new GainNode(e,{gain:0}),this.createEqChain(this.outputNode);let n=this.eqNodes.length?this.eqNodes[0]:this.outputNode;this.oscillators=(this.options.oscillators||[]).map(t=>new r(e,t,(0,i.defined)(t.fmOscillator)||(0,i.defined)(t.vmOscillator)?void 0:n)),this.oscillators.forEach(e=>{let t=(t,i)=>{if(i){let n=i[t]();n&&e.connect(n)}};(0,i.defined)(e.fmOscillatorIx)&&t("getFMTarget",this.oscillators[e.fmOscillatorIx]),(0,i.defined)(e.vmOscillatorIx)&&t("getVMTarget",this.oscillators[e.vmOscillatorIx])})}startSilently(){this.outputNode.gain.value=0,this.oscillators.forEach(e=>e.start())}stop(){let e=this.audioContext.currentTime,t=e+h.stopRampTime;o(this.outputNode,e,0),this.oscillators.forEach(e=>e.stopAtTime(t)),this.outputNode.disconnect()}silenceAtTime(e){if(!e&&this.outputNode.gain.value<.01){this.outputNode.gain.value=0;return}this.releaseAtTime((e||0)+this.audioContext.currentTime)}mute(){this.cancelScheduled(),o(this.outputNode,this.audioContext.currentTime,0)}playFreqAtTime(e,t,i){let n=(e||0)+this.audioContext.currentTime,s=this.options;this.oscillators.forEach(e=>{e.setFreqAtTime(n,t,s.noteGlideDuration),e.runEnvelopeAtTime("attack",n)}),a(s.masterAttackEnvelope||[],"attack",n,this.outputNode,s.masterVolume),i&&this.releaseAtTime(n+i/1e3)}cancelScheduled(){this.outputNode.gain.cancelScheduledValues(this.audioContext.currentTime),this.oscillators.forEach(e=>e.cancelScheduled())}connect(e){return this.outputNode.connect(e)}createEqChain(e){this.eqNodes=(this.options.eq||[]).map(e=>new BiquadFilterNode(this.audioContext,{type:"peaking",...e})),this.eqNodes.reduceRight((e,t)=>(t.connect(e),t),e)}releaseAtTime(e){let t=0;this.oscillators.forEach(i=>{let n=i.options.releaseEnvelope;n&&n.length&&(t=Math.max(t,n[n.length-1].t),i.runEnvelopeAtTime("release",e))});let i=this.options.masterReleaseEnvelope||[];i.length&&(a(i,"release",e,this.outputNode,this.options.masterVolume),t=Math.max(t,i[i.length-1].t)),o(this.outputNode,e+t/1e3,0)}}h.stopRampTime=.012;let c={piano:{masterVolume:.45,masterAttackEnvelope:[{t:1,vol:.71},{t:40,vol:.79},{t:82,vol:.64},{t:147,vol:.29},{t:260,vol:.15},{t:417,vol:.05},{t:589,vol:0}],eq:[{frequency:200,Q:.7,gain:6},{frequency:450,gain:6},{frequency:1300,gain:2},{frequency:2600,Q:.8,gain:8},{frequency:3500,Q:.8,gain:6},{frequency:6200,Q:.8,gain:10},{frequency:8e3,gain:-23},{frequency:1e4,Q:.4,gain:-12}],oscillators:[{type:"pulse",volume:.5,pulseWidth:.55,volumePitchTrackingMultiplier:.1,lowpass:{frequency:4.5,frequencyPitchTrackingMultiplier:900,Q:-2},highpass:{frequency:270},attackEnvelope:[{t:1,vol:1}],releaseEnvelope:[{t:1,vol:1},{t:282,vol:.64},{t:597,vol:0}]},{type:"whitenoise",volume:.8,lowpass:{frequency:400},highpass:{frequency:300},attackEnvelope:[{t:1,vol:1},{t:19,vol:0}]}]},plucked:{masterVolume:.5,midiInstrument:25,masterAttackEnvelope:[{t:1,vol:.71},{t:4,vol:.71},{t:31,vol:.4},{t:109,vol:.12},{t:234,vol:.04},{t:442,vol:0}],eq:[{frequency:800,gain:-8},{frequency:1400,Q:4,gain:4},{frequency:1600,gain:-14},{frequency:2200,gain:-8},{frequency:3600,gain:-2},{frequency:6400,Q:2,gain:-6}],oscillators:[{type:"sawtooth",volume:.9,volumePitchTrackingMultiplier:.6,highpass:{frequency:100},lowpass:{frequency:8e3},releaseEnvelope:[{t:1,vol:1},{t:315,vol:.56},{t:550,vol:0}]}]},flute:{masterVolume:1.1,midiInstrument:74,noteGlideDuration:30,masterAttackEnvelope:[{t:0,vol:0},{t:29,vol:1},{t:76,vol:.48},{t:600,vol:.36}],masterReleaseEnvelope:[{t:1,vol:.36},{t:24,vol:.15},{t:119,vol:0}],eq:[{frequency:150,Q:.6,gain:-10},{frequency:500,gain:4},{frequency:1100,gain:-4},{frequency:2200,gain:-14},{frequency:5e3,gain:8},{frequency:6400,gain:10},{frequency:8e3,gain:12},{frequency:10800,gain:8}],oscillators:[{type:"triangle",volume:1,volumePitchTrackingMultiplier:.4,lowpass:{frequency:12,frequencyPitchTrackingMultiplier:100},highpass:{frequency:200}},{type:"sine",fixedFrequency:5,volume:.2,vmOscillator:0,attackEnvelope:[{t:1,vol:1},{t:48,vol:0},{t:225,vol:.05},{t:600,vol:.77}]},{type:"whitenoise",volume:.13,lowpass:{frequency:9e3,Q:3},highpass:{frequency:6e3,Q:3},vmOscillator:0,attackEnvelope:[{t:0,vol:0},{t:26,vol:1},{t:93,vol:.8}]}]},lead:{masterVolume:1,midiInstrument:20,masterAttackEnvelope:[{t:1,vol:.81},{t:98,vol:.5},{t:201,vol:.18},{t:377,vol:.04},{t:586,vol:0},{t:586,vol:0}],eq:[{frequency:200,gain:-6},{frequency:400,gain:-8},{frequency:800,Q:.5,gain:-10},{frequency:1200,gain:4},{frequency:3600,gain:-4},{frequency:4200,gain:-12},{frequency:7400,gain:-14},{frequency:1e4,gain:2}],oscillators:[{type:"triangle",volume:1.1,volumePitchTrackingMultiplier:.6,lowpass:{frequency:5e3},highpass:{frequency:100}},{type:"sawtooth",volume:.4,lowpass:{frequency:7e3},highpass:{frequency:800,Q:6},releaseEnvelope:[{t:0,vol:.99},{t:200,vol:.83},{t:495,vol:0}]}]},vibraphone:{masterVolume:1,midiInstrument:12,masterAttackEnvelope:[{t:1,vol:0},{t:10,vol:.63},{t:82,vol:.64},{t:149,vol:.26},{t:600,vol:0}],eq:[{frequency:200,Q:.8,gain:-12},{frequency:400,gain:-4},{frequency:1600,Q:.5,gain:6},{frequency:2200,Q:.5,gain:6},{frequency:6400,gain:4},{frequency:12800,gain:4}],oscillators:[{type:"sine",volume:1.5,volumePitchTrackingMultiplier:1e-7,attackEnvelope:[{t:1,vol:1}],releaseEnvelope:[{t:1,vol:1},{t:146,vol:.39},{t:597,vol:0}]},{type:"whitenoise",volume:.03,volumePitchTrackingMultiplier:1e-4,lowpass:{frequency:900},highpass:{frequency:800},attackEnvelope:[{t:1,vol:1},{t:9,vol:0}]},{type:"sine",freqMultiplier:4,volume:.15,volumePitchTrackingMultiplier:1e-4},{type:"sine",fixedFrequency:3,volume:6,fmOscillator:0,releaseEnvelope:[{t:1,vol:1},{t:190,vol:.41},{t:600,vol:0}]},{type:"sine",fixedFrequency:6,volume:3,fmOscillator:2},{type:"sine",freqMultiplier:9,volume:5e-4,volumePitchTrackingMultiplier:1e-4,releaseEnvelope:[{t:1,vol:.97},{t:530,vol:0}]}]},saxophone:{masterVolume:1,midiInstrument:67,noteGlideDuration:10,masterAttackEnvelope:[{t:1,vol:.57},{t:35,vol:1},{t:87,vol:.84},{t:111,vol:.6},{t:296,vol:.49},{t:600,vol:.58}],masterReleaseEnvelope:[{t:1,vol:.58},{t:47,vol:.16},{t:119,vol:0}],eq:[{frequency:200,gain:-2},{frequency:600,gain:2},{frequency:800,gain:-10},{frequency:1100,gain:-2},{frequency:2200,gain:-2},{frequency:3500,gain:10},{frequency:12800,gain:4}],oscillators:[{type:"sawtooth",volume:.45,volumePitchTrackingMultiplier:.06,lowpass:{frequency:18,frequencyPitchTrackingMultiplier:200},highpass:{frequency:300}},{type:"whitenoise",fixedFrequency:1,volume:.4,highpass:{frequency:7e3},vmOscillator:0,attackEnvelope:[{t:1,vol:1},{t:51,vol:1},{t:86,vol:.84},{t:500,vol:.78}]},{type:"sine",fixedFrequency:4,volume:2,fmOscillator:0,attackEnvelope:[{t:0,vol:0},{t:15,vol:.94},{t:79,vol:1},{t:172,vol:.47},{t:500,vol:.26}]},{type:"sine",fixedFrequency:7,volume:6,fmOscillator:0,attackEnvelope:[{t:0,vol:0},{t:25,vol:.99},{t:85,vol:0},{t:85,vol:0},{t:387,vol:.02},{t:511,vol:.43},{t:600,vol:0}]}]},trumpet:{masterVolume:.3,midiInstrument:57,noteGlideDuration:40,masterAttackEnvelope:[{t:1,vol:0},{t:17,vol:1},{t:42,vol:.85},{t:76,vol:1},{t:202,vol:.65},{t:226,vol:.86},{t:282,vol:.63}],masterReleaseEnvelope:[{t:1,vol:.62},{t:34,vol:.14},{t:63,vol:.21},{t:96,vol:0}],eq:[{frequency:200,Q:.6,gain:10},{frequency:600,Q:.5,gain:6},{frequency:1500,Q:.7,gain:14},{frequency:3200,Q:2,gain:8},{frequency:3800,Q:.8,gain:10},{frequency:6200,gain:12},{frequency:8400,gain:-20},{frequency:12800,Q:.5,gain:-18}],oscillators:[{type:"sawtooth",volume:.15,pulseWidth:.5,volumePitchTrackingMultiplier:.5,lowpass:{frequency:1900,Q:3}},{type:"sine",fixedFrequency:6,volume:.2,vmOscillator:0,attackEnvelope:[{t:1,vol:1},{t:102,vol:.13},{t:556,vol:.24}]},{type:"whitenoise",volume:.45,highpass:{frequency:7e3,Q:9},vmOscillator:0,attackEnvelope:[{t:1,vol:1},{t:89,vol:.51},{t:577,vol:.29}]},{type:"sine",fixedFrequency:5.7,volume:20,fmOscillator:0,attackEnvelope:[{t:1,vol:1},{t:89,vol:1},{t:137,vol:.46},{t:283,vol:.15},{t:600,vol:.28}]}]},sawsynth:{masterVolume:.3,midiInstrument:51,noteGlideDuration:40,masterAttackEnvelope:[{t:0,vol:.6},{t:9,vol:1},{t:102,vol:.48}],eq:[{frequency:200,gain:-6}],oscillators:[{type:"sawtooth",volume:.4,volumePitchTrackingMultiplier:.3},{type:"sawtooth",volume:.4,detune:11,volumePitchTrackingMultiplier:.3},{type:"sawtooth",volume:.4,detune:-11,volumePitchTrackingMultiplier:.3}]},basic1:{masterVolume:1,noteGlideDuration:0,masterReleaseEnvelope:[{t:1,vol:.36},{t:24,vol:.15},{t:119,vol:0}],eq:[{frequency:150,Q:.6,gain:-12},{frequency:1100,gain:-2},{frequency:2200,gain:-16},{frequency:5e3,gain:8},{frequency:6400,gain:10},{frequency:8e3,gain:12},{frequency:10800,gain:8}],oscillators:[{type:"triangle",volume:1,volumePitchTrackingMultiplier:.05,lowpass:{frequency:17,frequencyPitchTrackingMultiplier:100},highpass:{frequency:200}},{type:"whitenoise",volume:.04,lowpass:{frequency:9e3,Q:3},highpass:{frequency:6e3,Q:3},vmOscillator:0,attackEnvelope:[{t:0,vol:0},{t:26,vol:1},{t:71,vol:.73}]}]},basic2:{masterVolume:.3,eq:[{frequency:200,Q:.7,gain:6},{frequency:450,gain:2},{frequency:1300,gain:-2},{frequency:2600,Q:.8,gain:6},{frequency:3500,Q:.8,gain:6},{frequency:6200,Q:.8,gain:10},{frequency:8e3,gain:-18},{frequency:1e4,Q:.4,gain:-12}],oscillators:[{type:"pulse",volume:.4,pulseWidth:.55,volumePitchTrackingMultiplier:.1,lowpass:{frequency:4.5,frequencyPitchTrackingMultiplier:900,Q:-2},highpass:{frequency:270}}]},chord:{masterVolume:1,masterAttackEnvelope:[{t:1,vol:.79},{t:27,vol:.86},{t:62,vol:.81},{t:150,vol:.35},{t:408,vol:.04},{t:600,vol:0}],eq:[{frequency:200,gain:-8},{frequency:600,Q:2,gain:4},{frequency:800,gain:-10},{frequency:1600,gain:-2},{frequency:2200,gain:-6},{frequency:3600,Q:.7,gain:-2},{frequency:6400,gain:6},{frequency:12800,gain:6}],oscillators:[{type:"triangle",volume:1.1,volumePitchTrackingMultiplier:.05,lowpass:{frequency:8e3},highpass:{frequency:100},releaseEnvelope:[{t:1,vol:1},{t:315,vol:.56},{t:540,vol:0}]},{type:"triangle",freqMultiplier:1.17,volume:.4,volumePitchTrackingMultiplier:.07,lowpass:{frequency:5e3},highpass:{frequency:100},releaseEnvelope:[{t:0,vol:1},{t:476,vol:0}]},{type:"triangle",freqMultiplier:1.58333,volume:.7,volumePitchTrackingMultiplier:.02,highpass:{frequency:200},releaseEnvelope:[{t:0,vol:1},{t:422,vol:.56},{t:577,vol:0}]},{type:"sine",fixedFrequency:10,volume:4,fmOscillator:0,attackEnvelope:[{t:1,vol:1},{t:157,vol:.65}]},{type:"sine",fixedFrequency:5,volume:.3,vmOscillator:2,attackEnvelope:[{t:1,vol:1},{t:155,vol:.91},{t:289,vol:.78}]}]},wobble:{masterVolume:.9,masterReleaseEnvelope:[{t:1,vol:.36},{t:24,vol:.15},{t:119,vol:0}],eq:[{frequency:150,Q:.6,gain:-12},{frequency:1100,gain:-2},{frequency:2200,gain:-16},{frequency:5e3,gain:8},{frequency:6400,gain:10},{frequency:8e3,gain:12},{frequency:10800,gain:8}],oscillators:[{type:"triangle",volume:.9,volumePitchTrackingMultiplier:.1,lowpass:{frequency:17,frequencyPitchTrackingMultiplier:100},highpass:{frequency:200}},{type:"whitenoise",volume:.04,lowpass:{frequency:9e3,Q:3},highpass:{frequency:6e3,Q:3},vmOscillator:0,attackEnvelope:[{t:0,vol:0},{t:26,vol:1},{t:71,vol:.73}]},{type:"sine",freqMultiplier:.011,volume:30,fmOscillator:0}]},sine:{masterVolume:1,oscillators:[{type:"sine",volumePitchTrackingMultiplier:.07}]},sineGlide:{masterVolume:1,noteGlideDuration:100,oscillators:[{type:"sine",volumePitchTrackingMultiplier:.07}]},triangle:{masterVolume:.5,oscillators:[{type:"triangle",volume:1,volumePitchTrackingMultiplier:.07}]},sawtooth:{masterVolume:.25,midiInstrument:82,oscillators:[{type:"sawtooth",volume:.3,volumePitchTrackingMultiplier:.07}]},square:{masterVolume:.3,midiInstrument:81,oscillators:[{type:"square",volume:.2,volumePitchTrackingMultiplier:.07}]},chop:{masterVolume:1,midiInstrument:116,masterAttackEnvelope:[{t:1,vol:1},{t:44,vol:0}],oscillators:[{type:"whitenoise",volume:1,lowpass:{frequency:600},highpass:{frequency:200}}]},shaker:{masterVolume:.4,midiInstrument:116,masterAttackEnvelope:[{t:1,vol:1},{t:44,vol:0}],oscillators:[{type:"whitenoise",volume:1,lowpass:{frequency:6500},highpass:{frequency:5e3}}]},step:{masterVolume:1,midiInstrument:116,masterAttackEnvelope:[{t:1,vol:1},{t:44,vol:0}],eq:[{frequency:200,gain:-1},{frequency:400,gain:-14},{frequency:800,gain:8},{frequency:1e3,Q:5,gain:-24},{frequency:1600,gain:8},{frequency:2200,gain:-10},{frequency:5400,gain:4},{frequency:12800,gain:-36}],oscillators:[{type:"whitenoise",volume:1.5,lowpass:{frequency:300},highpass:{frequency:100,Q:6}}]},kick:{masterVolume:.55,masterAttackEnvelope:[{t:1,vol:.8},{t:15,vol:1},{t:45,vol:.35},{t:121,vol:.11},{t:242,vol:0}],eq:[{frequency:50,gain:6},{frequency:400,gain:-18},{frequency:1600,gain:18}],oscillators:[{type:"triangle",fixedFrequency:90,volume:1,lowpass:{frequency:300},attackEnvelope:[{t:1,vol:1},{t:6,vol:1},{t:45,vol:.01}]},{type:"whitenoise",volume:.4,lowpass:{frequency:200},attackEnvelope:[{t:1,vol:1},{t:30,vol:0}]},{type:"triangle",freqMultiplier:.1,volume:1,lowpass:{frequency:200}}]},shortnote:{masterVolume:.8,midiInstrument:116,masterAttackEnvelope:[{t:1,vol:1},{t:15,vol:0}],eq:[{frequency:400,gain:-4},{frequency:800,gain:-12},{frequency:2400,gain:4},{frequency:7200,gain:-20},{frequency:1e3,Q:5,gain:-12},{frequency:5400,gain:-32},{frequency:12800,gain:-14}],oscillators:[{type:"sawtooth",volume:.6,lowpass:{frequency:1e3}},{type:"whitenoise",volume:.2,lowpass:{frequency:1e4},highpass:{frequency:7e3},attackEnvelope:[{t:1,vol:1},{t:10,vol:0}]},{type:"whitenoise",volume:1.3,lowpass:{frequency:700,Q:4},highpass:{frequency:250}}]},noise:{masterVolume:.3,midiInstrument:122,oscillators:[{type:"whitenoise"}]},filteredNoise:{masterVolume:.3,midiInstrument:122,eq:[{frequency:1600,gain:-8},{frequency:2200,gain:-4}],oscillators:[{type:"whitenoise",lowpass:{frequency:5,frequencyPitchTrackingMultiplier:1300,Q:6},highpass:{frequency:5,frequencyPitchTrackingMultiplier:300,Q:6}}]},wind:{masterVolume:.75,midiInstrument:122,noteGlideDuration:150,masterReleaseEnvelope:[{t:0,vol:1},{t:124,vol:.24},{t:281,vol:0}],oscillators:[{type:"whitenoise",volume:1,lowpass:{frequency:100,frequencyPitchTrackingMultiplier:6,Q:23},highpass:{frequency:170,frequencyPitchTrackingMultiplier:6}},{type:"sine",freqMultiplier:.016,volume:1e3,fmOscillator:0}]}};class u{constructor(e,t,n){this.audioContext=e,this.curParams={},this.midiTrackName=n.midiTrackName,this.masterVolNode=new GainNode(e),this.masterVolNode.connect(t),this.volumeNode=new GainNode(e),this.createNodesFromCapabilities((0,i.extend)({pan:!0},n.capabilities||{})),this.connectCapabilityNodes(this.volumeNode,this.masterVolNode),this.synthPatch=new h(e,"string"==typeof n.synthPatch?c[n.synthPatch]:n.synthPatch),this.midiInstrument=this.synthPatch.midiInstrument||1,this.synthPatch.startSilently(),this.synthPatch.connect(this.volumeNode)}setMasterVolume(e){this.masterVolNode.gain.setTargetAtTime(e,0,u.rampTime)}scheduleEventAtTime(e,t){let n=(0,i.extend)(this.curParams,t),s=(0,i.defined)(t.frequency)?t.frequency:(0,i.defined)(t.note)?u.musicalNoteToFrequency(t.note):220;(0,i.defined)(s)&&this.synthPatch.playFreqAtTime(e,s,n.noteDuration),((0,i.defined)(n.tremoloDepth)||(0,i.defined)(n.tremoloSpeed))&&this.setTremoloAtTime(e,n.tremoloDepth,n.tremoloSpeed),(0,i.defined)(n.pan)&&this.setPanAtTime(e,n.pan),(0,i.defined)(n.volume)&&this.setVolumeAtTime(e,n.volume),((0,i.defined)(n.lowpassFreq)||(0,i.defined)(n.lowpassResonance))&&this.setFilterAtTime("lowpass",e,n.lowpassFreq,n.lowpassResonance),((0,i.defined)(n.highpassFreq)||(0,i.defined)(n.highpassResonance))&&this.setFilterAtTime("highpass",e,n.highpassFreq,n.highpassResonance)}silenceAtTime(e){this.synthPatch.silenceAtTime(e)}cancel(){this.synthPatch.mute(),[this.tremoloDepth&&this.tremoloDepth.gain,this.tremoloOsc&&this.tremoloOsc.frequency,this.lowpassNode&&this.lowpassNode.frequency,this.lowpassNode&&this.lowpassNode.Q,this.highpassNode&&this.highpassNode.frequency,this.highpassNode&&this.highpassNode.Q,this.panNode&&this.panNode.pan,this.volumeNode.gain].forEach(e=>e&&e.cancelScheduledValues(0))}destroy(){this.cancel(),this.synthPatch.stop(),this.tremoloOsc&&this.tremoloOsc.stop(),[this.tremoloDepth,this.tremoloOsc,this.lowpassNode,this.highpassNode,this.panNode,this.volumeNode,this.masterVolNode].forEach(e=>e&&e.disconnect())}setPanAtTime(e,t){this.panNode&&this.panNode.pan.setTargetAtTime(t,e+this.audioContext.currentTime,u.rampTime)}setFilterAtTime(e,t,n,s){let o=this[e+"Node"],a=this.audioContext.currentTime+t;o&&((0,i.defined)(s)&&o.Q.setTargetAtTime(s,a,u.rampTime),(0,i.defined)(n)&&o.frequency.setTargetAtTime(n,a,u.rampTime))}setVolumeAtTime(e,t){this.volumeNode&&this.volumeNode.gain.setTargetAtTime(t,e+this.audioContext.currentTime,u.rampTime)}setTremoloAtTime(e,t,n){let s=this.audioContext.currentTime+e;this.tremoloDepth&&(0,i.defined)(t)&&this.tremoloDepth.gain.setTargetAtTime(t,s,u.rampTime),this.tremoloOsc&&(0,i.defined)(n)&&this.tremoloOsc.frequency.setTargetAtTime(15*n,s,u.rampTime)}createNodesFromCapabilities(e){let t=this.audioContext;e.pan&&(this.panNode=new StereoPannerNode(t)),e.tremolo&&(this.tremoloOsc=new OscillatorNode(t,{type:"sine",frequency:3}),this.tremoloDepth=new GainNode(t),this.tremoloOsc.connect(this.tremoloDepth),this.tremoloDepth.connect(this.masterVolNode.gain),this.tremoloOsc.start()),e.filters&&(this.lowpassNode=new BiquadFilterNode(t,{type:"lowpass",frequency:2e4}),this.highpassNode=new BiquadFilterNode(t,{type:"highpass",frequency:0}))}connectCapabilityNodes(e,t){[this.panNode,this.lowpassNode,this.highpassNode,e].reduce((e,t)=>t?(t.connect(e),t):e,t)}static noteStringToC0Distance(e){let t=e.match(/^([a-g][#b]?)([0-8])$/i),i=t?t[1]:"a",n=i[0].toLowerCase(),s=i[1];return(({c:0,d:2,e:4,f:5,g:7,a:9,b:11})[n]||0)+("#"===s?1:"b"===s?-1:0)+12*(t?parseInt(t[2],10):4)}static musicalNoteToFrequency(e){return 16.3516*Math.pow(2,Math.min("string"==typeof e?this.noteStringToC0Distance(e):e,107)/12)}}u.rampTime=h.stopRampTime/4;let m=class{constructor(e){this.options=e,this.masterVolume=1,this.synthesis=window.speechSynthesis,void 0!==speechSynthesis.onvoiceschanged&&(speechSynthesis.onvoiceschanged=this.setVoice.bind(this)),this.setVoice(),this.scheduled=[]}say(e,t){if(this.synthesis){this.synthesis.cancel();let i=new SpeechSynthesisUtterance(e);this.voice&&(i.voice=this.voice),i.rate=t&&t.rate||this.options.rate||1,i.pitch=t&&t.pitch||this.options.pitch||1,i.volume=((t&&t.volume)??this.options.volume??1)*this.masterVolume,this.synthesis.speak(i)}}sayAtTime(e,t,i){this.scheduled.push(setTimeout(this.say.bind(this,t,i),e))}cancel(){this.scheduled.forEach(clearTimeout),this.scheduled=[],this.synthesis.cancel()}destroy(){this.cancel()}setMasterVolume(e){this.masterVolume=e}setVoice(){if(this.synthesis){let e,t=this.options.name,i=this.options.language||"en-US",n=this.synthesis.getVoices(),s=n.length;for(let o=0;o<s;++o){if(t&&n[o].name===t){this.voice=n[o];return}if(!e&&n[o].lang===i&&(e=n[o],!t))break}this.voice=e}}},p=class{constructor(e,t,i=!1,n,s){this.type=e,this.engine=t,this.showPlayMarker=i,this.muted=s,this.events=n||[]}addEvent(e){let t=this.events[this.events.length-1];if(t&&e.time<t.time){let t=this.events.length;for(;t--&&this.events[t].time>e.time;);this.events.splice(t+1,0,e)}else this.events.push(e);return e}mute(){this.muted=!0}unmute(){this.muted=!1}cancel(){this.engine.cancel()}destroy(){this.engine.destroy()}},d=(e,t)=>t>>>8*e&255,f=[0,255,81,3,7,161,32],y=e=>{let t=127&e,i=[];for(;e>>=7;)t<<=8,t|=127&e|128;for(;;)if(i.push(255&t),128&t)t>>=8;else break;return i},g=(e,t,i,n)=>{let s,o,a,l,r=0,h=((e,t)=>{let i=[];if(t&&i.push(0,192,127&t),e){let t=[];for(let i=0;i<e.length;++i){let n=e.charCodeAt(i);n<128&&t.push(n)}return i.concat([0,255,3],y(t.length),t)}return i})(i,n),c=(a=[],l=e=>{let t=a.length;for(;t--&&a[t].timeMS>e.timeMS;);a.splice(t+1,0,e)},e.forEach(e=>{let t=e.instrumentEventOptions||{},i=e.time,n=o=t.noteDuration??o,a=n&&e.time+n,r=[{valMap:e=>64+63*e&127,data:{10:t.pan,92:t.tremoloDepth,93:t.tremoloSpeed}},{valMap:e=>127*e/2e4&127,data:{74:t.lowpassFreq,75:t.highpassFreq}},{valMap:e=>63*Math.min(18,Math.max(-18,e))/18+63&127,data:{71:t.lowpassResonance,76:t.highpassResonance}}],h=s=void 0===t.volume?s??127:127*t.volume&127,c=t.frequency,m=t.note||0,p=12+(c?Math.round(12*Math.log(c)/Math.LN2-48.37632):"string"==typeof m?u.noteStringToC0Distance(m):m)&127;r.forEach(e=>Object.keys(e.data).forEach(t=>{let n=e.data[t];void 0!==n&&l({timeMS:i,type:"CTRL_CHG",data:[176,parseInt(t,10),e.valMap(n)]})})),a&&(l({timeMS:i,type:"NON",data:[144,p,h]}),l({timeMS:a,type:"NOF",data:[128,p,h]}))}),a).reduce((e,t)=>{let i=y(t.timeMS-r);return r=t.timeMS,e.concat(i,t.data)},[]),m=[0,255,47,0],p=(t?f.length:0)+h.length+c.length+m.length;return[77,84,114,107,d(3,p),d(2,p),d(1,p),d(0,p)].concat(t?f:[],h,c,m)},v=function(e){let t,i=e.filter(e=>!!e.events.length),n=i.length,s=n>1;return new Uint8Array([77,84,104,100,0,0,0,6,0,+((t=s?n+1:n)>1),d(1,t),d(0,t),1,244].concat(s?g([],!0):[],i.reduce((e,t)=>{let i=t.engine;return e.concat(g(t.events,!s,i.midiTrackName,i.midiInstrument))},[])))},{isSafari:q,win:T,win:{document:w}}=n(),x=T.URL||T.webkitURL||T,N=class{constructor(e,t){this.chart=t,this.isPaused=!1,this.isPlaying=!1,this.channels=[],this.scheduledCallbacks=[],this.playTimestamp=0,this.resumeFromTime=0,this.options=e||{}}addChannel(e,t,i=!1,n){if("instrument"===e&&!t.scheduleEventAtTime||"speech"===e&&!t.sayAtTime)throw Error("Highcharts Sonification: Invalid channel engine.");let s=new p(e,t,i,n);return this.channels.push(s),s}play(e,t=!0,n=!0,s){let o,a;this.isPlaying?this.cancel():this.clearScheduledCallbacks(),this.onEndArgument=s,this.playTimestamp=Date.now(),this.resumeFromTime=0,this.isPaused=!1,this.isPlaying=!0;let l=this.options.skipThreshold||2,r=this.options.onPlay,h=this.options.showTooltip,c=this.options.showCrosshair,u=e?(a=(o=(this.playingChannels||this.channels).map(t=>(t.cancel(),{channel:t,filteredEvents:t.muted?[]:t.events.filter(e)}))).reduce((e,t)=>Math.min(e,t.filteredEvents.length?t.filteredEvents[0].time:1/0),1/0),o.map(e=>new p(e.channel.type,e.channel.engine,e.channel.showPlayMarker,e.filteredEvents.map(e=>(0,i.merge)(e,{time:e.time-a})),e.channel.muted))):this.channels,m=e=>Object.keys(e.speechOptions||{}).concat(Object.keys(e.instrumentEventOptions||{})).join(),d=[];t&&(this.playingChannels=u),r&&r({chart:this.chart,timeline:this});let f=0;u.forEach(e=>{if(e.muted)return;let t=e.events.length,n=-1/0,s=-1/0,o="";f=Math.max(e.events[t-1]&&e.events[t-1].time||0,f);for(let a=0;a<t;++a){let r=e.events[a],u=m(r);if(u===o&&r.time-s<l)continue;o=u,s=r.time,"instrument"===e.type?e.engine.scheduleEventAtTime(r.time/1e3,r.instrumentEventOptions||{}):e.engine.sayAtTime(r.time,r.message||"",r.speechOptions||{});let p=r.relatedPoint,f=p&&p.series&&p.series.chart,y=r.callback||p&&(h||c)&&!1!==e.showPlayMarker&&(r.time-n>50||a===t-1);p&&d.push(p),y&&(this.scheduledCallbacks.push(setTimeout(()=>{if(r.callback&&r.callback(),p){if(c){let e=p.series;e&&e.xAxis&&e.xAxis.crosshair&&e.xAxis.drawCrosshair(void 0,p),e&&e.yAxis&&e.yAxis.crosshair&&e.yAxis.drawCrosshair(void 0,p)}h&&!(f&&f.hoverPoints&&f.hoverPoints.length>1&&(0,i.find)(f.hoverPoints,e=>e===p)&&p.onMouseOver)&&p.onMouseOver()}},r.time)),n=r.time)}});let y=this.options.onEnd,g=this.options.onStop;this.scheduledCallbacks.push(setTimeout(()=>{let e=this.chart,t={chart:e,timeline:this,pointsPlayed:d};this.isPlaying=!1,n&&this.resetPlayState(),g&&g(t),y&&y(t),s&&s(t),e&&(e.tooltip&&e.tooltip.hide(0),e.hoverSeries&&e.hoverSeries.onMouseOut(),e.axes.forEach(e=>e.hideCrosshair()))},f+250)),this.resumeFromTime=t?f:this.getLength()}pause(){return this.isPaused=!0,this.cancel(),this.resumeFromTime=Date.now()-this.playTimestamp-10,this.resumeFromTime}getCurrentTime(){return this.isPlaying?Date.now()-this.playTimestamp:this.resumeFromTime}getLength(){return this.channels.reduce((e,t)=>{let i=t.events[t.events.length-1];return i?Math.max(i.time,e):e},0)}resume(){if(this.playingChannels){let e=this.resumeFromTime-50;this.play(t=>t.time>e,!1,!1,this.onEndArgument),this.playTimestamp-=e}else this.play(void 0,!1,!1,this.onEndArgument)}anchorPlayMoment(e,t){this.isPlaying&&this.pause();let i=0;this.play((t,n,s)=>{let o=e(t,n,s);return o&&t.time>i&&(i=t.time),o},!1,!1,t),this.playingChannels=this.playingChannels||this.channels,this.isPaused=!0,this.isPlaying=!1,this.resumeFromTime=i}playAdjacent(e,t,i,n){this.isPlaying&&this.pause();let s=this.resumeFromTime,o=this.channels.reduce((t,i)=>{let o=n?i.events.filter(n):i.events,a=0,l=o.length,r=t;for(;a<l;){let t=a+l>>1,i=o[t].time,n=i-s;n>0?(e&&i<r&&(r=i),l=t):n<0?(!e&&i>r&&(r=i),a=t+1):e?a=t+1:l=t}return r},e?1/0:-1/0);if(1/0===o||-1/0===o){i&&i({chart:this.chart,timeline:this,attemptedNext:e});return}this.anchorPlayMoment((t,i,a)=>{let l=e?t.time>s&&t.time<=o+.02:t.time<s&&t.time>=o-.02;return n?l&&n(t,i,a):l},t)}playClosestToPropValue(e,t,n,s,o){let a=(e,t,i)=>!!(o?o(e,t,i)&&e.relatedPoint:e.relatedPoint),l=1/0,r=null;(this.playingChannels||this.channels).forEach(n=>{let s=n.events,o=s.length;for(;o--;){if(!a(s[o],o,s))continue;let n=s[o].relatedPoint[e],h=(0,i.defined)(n)&&Math.abs(t-n);!1!==h&&h<l&&(l=h,r=s[o])}}),r?(this.play(e=>!!(r&&e.time<r.time+1&&e.time>r.time-1&&e.relatedPoint===r.relatedPoint),!1,!1,n),this.playingChannels=this.playingChannels||this.channels,this.isPaused=!0,this.isPlaying=!1,this.resumeFromTime=r.time):s&&s({chart:this.chart,timeline:this})}getEventsForPoint(e){return this.channels.reduce((t,i)=>{let n=i.events.filter(t=>t.relatedPoint===e);return t.concat(n)},[])}playSegment(e,t){let i={first:1/0,last:-1/0};if(this.channels.forEach(e=>{e.events.length&&(i.first=Math.min(e.events[0].time,i.first),i.last=Math.max(e.events[e.events.length-1].time,i.last))}),i.first<1/0){let n=(i.last-i.first)/100,s=i.first+e*n,o=s+n;if(!this.channels.some(e=>{let t=e.events,i=0,n=t.length;for(;i<n;){let e=i+n>>1,a=t[e].time;if(a<s)i=e+1;else{if(!(a>o))return!0;n=e}}return!1}))return;this.play(e=>e.time>=s&&e.time<=o,!1,!1,t),this.playingChannels=this.playingChannels||this.channels,this.isPaused=!0,this.isPlaying=!1,this.resumeFromTime=o}}getLastPlayedPoint(e){let t=this.getCurrentTime(),i=this.playingChannels||this.channels,n=1/0,s=null;return i.forEach(i=>{let o=i.events.filter((i,n,s)=>!!(i.relatedPoint&&i.time<=t&&(!e||e(i,n,s)))),a=o[o.length-1];if(a){let e=Math.abs(a.time-t);e<n&&(n=e,s=a.relatedPoint)}}),s}reset(){this.isPlaying&&this.cancel(),this.resetPlayState()}cancel(){let e=this.options.onStop;e&&e({chart:this.chart,timeline:this}),this.isPlaying=!1,this.channels.forEach(e=>e.cancel()),this.playingChannels&&this.playingChannels!==this.channels&&this.playingChannels.forEach(e=>e.cancel()),this.clearScheduledCallbacks(),this.resumeFromTime=0}destroy(){this.cancel(),this.playingChannels&&this.playingChannels!==this.channels&&this.playingChannels.forEach(e=>e.destroy()),this.channels.forEach(e=>e.destroy())}setMasterVolume(e){this.channels.forEach(t=>t.engine.setMasterVolume(e))}getMIDIData(){return v(this.channels.filter(e=>"instrument"===e.type))}downloadMIDI(e){let t=this.getMIDIData(),i=(e||this.chart&&this.chart.options.title&&this.chart.options.title.text||"chart")+".mid",n=new Blob([t],{type:"application/octet-stream"}),s=window.URL.createObjectURL(n);!function(e,t){let i=T.navigator,n=w.createElement("a");if("string"!=typeof e&&!(e instanceof String)&&i.msSaveOrOpenBlob)return i.msSaveOrOpenBlob(e,t);if(e=""+e,i.userAgent.length>1e3)throw Error("Input too long");let s=/Edge\/\d+/.test(i.userAgent);if((q&&"string"==typeof e&&0===e.indexOf("data:application/pdf")||s||e.length>2e6)&&!(e=function(e){let t=e.replace(/filename=.*;/,"").match(/data:([^;]*)(;base64)?,([A-Z+\d\/]+)/i);if(t&&t.length>3&&T.atob&&T.ArrayBuffer&&T.Uint8Array&&T.Blob&&x.createObjectURL){let e=T.atob(t[3]),i=new T.ArrayBuffer(e.length),n=new T.Uint8Array(i);for(let t=0;t<n.length;++t)n[t]=e.charCodeAt(t);return x.createObjectURL(new T.Blob([n],{type:t[1]}))}}(e)||""))throw Error("Failed to convert to blob");if(void 0!==n.download)n.href=e,n.download=t,w.body.appendChild(n),n.click(),w.body.removeChild(n);else try{if(!T.open(e,"chart"))throw Error("Failed to open window")}catch{T.location.href=e}}(s,i),window.URL.revokeObjectURL(s)}resetPlayState(){delete this.playingChannels,delete this.onEndArgument,this.playTimestamp=this.resumeFromTime=0,this.isPaused=!1}clearScheduledCallbacks(){this.scheduledCallbacks.forEach(clearTimeout),this.scheduledCallbacks=[]}},P=e.default.Templating,{format:k}=(t.n(P))();function E(e,t){let n;if(t){if("number"==typeof(n=e[t]))return n;n=(0,i.getNestedProperty)(t,e)}return"number"==typeof n?n:void 0}function M(e,t,n,s,o){let a=t.max-t.min;if(a<=0)return n.min;let l=n.max-n.min,r=l*(e-t.min)/a;if(o){let i=t.min>0?e=>Math.log(e)/Math.LOG10E:e=>{let t=Math.abs(e);t<10&&(t+=(10-t)/10);let i=Math.log(t)/Math.LN10;return e<0?-i:i},n=i(t.min);r=l*(i(e)-n)/(i(t.max)-n)}let h=s?n.max-r:n.min+r;return(0,i.clamp)(h,n.min,n.max)}function b(e,t,n,s,o,a,l){return function(e,t,n,s,o,a){if("number"==typeof o)return o;if("function"==typeof o)return o((0,i.extend)({time:0},e));let l=o,r=s.mapFunction,h=s.min,c=s.max,u=s.within,m;if("object"==typeof o&&(l=o.mapTo,r=o.mapFunction||r,h=o.min??h,c=o.max??c,u=o.within||s.within,m=o.scale),!l)return null;let p="-"===l.charAt(0);p&&(l=l.slice(1));let d=e.value,f="value"===l&&void 0!==d&&a;if(!f){let t=o.value;if(void 0!==t)d=t;else{if(!e.point)return null;d=e.point[l]}void 0===d&&(d=(0,i.getNestedProperty)(l,e.point))}if("number"!=typeof d||null===d)return null;let y=null;if(e.point)if("xAxis"===u||"yAxis"===u){let t=e.point.series[u];t&&(0,i.defined)(t.dataMin)&&(0,i.defined)(t.dataMax)&&(y={min:t.dataMin,max:t.dataMax})}else("series"===u||n)&&e.point.series&&(y=t.seriesExtremes[e.point.series.index][f?a:l]);if(y||(y=t.globalExtremes[f?a:l]),m){let e=[],t=Math.floor(h/12),i=Math.ceil(c/12)+1,n=m.length;for(let s=t;s<i;++s)for(let t=0;t<n;++t){let i=12*s+m[t];i>=h&&i<=c&&e.push(i)}let s=M(d,y,{min:0,max:e.length-1},p,"logarithmic"===r);return e[Math.round(s)]}return M(d,y,{min:h,max:c},p,"logarithmic"===r)}(e,t,n,(0,i.extend)({min:0,max:1,mapTo:"y",mapFunction:"linear",within:"chart"},a||{}),s,l)??o}function A(e,t,i,n){let s=n.mapping||{},o="speech"===n.type?new m({language:n.language,name:n.preferredVoice}):new u(t,i,{capabilities:{pan:!!s.pan,tremolo:!!s.tremolo,filters:!!(s.highpass||s.lowpass)},synthPatch:n.instrument,midiTrackName:n.midiName});return e.addChannel(n.type||"instrument",o,n.showPlayMarker??!0)}function C(e,t,n,s,o,a){let l=(t,i,o,l)=>b(e,s,!1,(l||n)[t],i,o,a),r=[],h={noteDuration:l("noteDuration",200,{min:40,max:1e3}),pan:l("pan",0,{min:-1,max:1}),volume:l("volume",1,{min:.1,max:1})};n.frequency&&(h.frequency=l("frequency",440,{min:50,max:6e3})),n.lowpass&&(h.lowpassFreq=l("frequency",2e4,{min:0,max:2e4},n.lowpass),h.lowpassResonance=l("resonance",0,{min:-6,max:12},n.lowpass)),n.highpass&&(h.highpassFreq=l("frequency",2e4,{min:0,max:2e4},n.highpass),h.highpassResonance=l("resonance",0,{min:-6,max:12},n.highpass)),n.tremolo&&(h.tremoloDepth=l("depth",0,{min:0,max:.8},n.tremolo),h.tremoloSpeed=l("speed",0,{min:0,max:.8},n.tremolo));let c=l("gapBetweenNotes",150,{min:50,max:1e3}),m=l("playDelay",0,{max:200}),p=(n,l=0)=>{let p=n;if(n.mapTo)"string"==typeof n.min&&(p.min=u.noteStringToC0Distance(n.min)),"string"==typeof n.max&&(p.max=u.noteStringToC0Distance(n.max));else"string"==typeof n&&/^([a-g][#b]?)[0-8]$/i.test(n)&&(p=u.noteStringToC0Distance(n));h.note=b(e,s,!1,p,-1,{min:0,max:107},a),h.note>-1&&(o&&(h.note=Math.round(h.note)),r.push(t.addEvent({time:e.time+m+c*l,relatedPoint:e.point,instrumentEventOptions:void 0!==l?(0,i.extend)({},h):h})))};return n.pitch&&n.pitch.constructor===Array?n.pitch.forEach(p):n.pitch?p(n.pitch):n.frequency&&r.push(t.addEvent({time:e.time+m,relatedPoint:e.point,instrumentEventOptions:h})),r}function S(e,t,i,n,s){var o;let a=(t,o,a)=>b(e,n,!1,i[t],o,a,s),l=a("playDelay",0,{max:200}),r=a("pitch",1,{min:.3,max:2}),h=a("rate",1,{min:.4,max:4}),c=a("volume",1,{min:.1}),u=k("function"==typeof(o=i.text)?o(e):o,e,e.point&&e.point.series.chart);if(u)return t.addEvent({time:e.time+l,relatedPoint:e.point,speechOptions:{pitch:r,rate:h,volume:c},message:u})}function O(e,t,i){if("function"==typeof t)return t(e);if("object"==typeof t){let n=t.prop,s=e.value??(e.point&&E(e.point,n));if("number"!=typeof s)return!1;let o=!0,a=t.crossingUp,l=t.crossingDown,r="number"==typeof i;o=a&&l?r&&(i<a&&s>=a||i>l&&s<=l):(void 0===a||r&&i<a&&s>=a)&&(void 0===l||r&&i>l&&s<=l);let h=t.max??1/0,c=t.min??-1/0;return s<=h&&s>=c&&o}return!0}let V=function(e,t,n){let s,o,a,l,r,h,c,u,m,p,d,f,y=n.options.sonification||{},g=y.defaultInstrumentOptions,v=y.defaultSpeechOptions,q=(0,i.merge)({enabled:!0,groupTimespan:15,algorithm:"minmax",prop:"y"},y.pointGrouping),T=y.globalTracks||[],w=y.globalContextTracks||[],x="sequential"===y.order,P=Math.max(50,y.duration-300),k=y.afterSeriesWait,V=y.events||{},I=(o=((s=n.options.sonification||{}).defaultInstrumentOptions||{}).mapping||{time:"x",pitch:"y"},a=s.defaultSpeechOptions&&s.defaultSpeechOptions.mapping||{},l=[],r={},h=(e,t)=>{null!==t?(l[t]=l[t]||{},l[t][e]=!0):r[e]=!0},c={},u={},m=(e,t,i)=>{let n=e=>"-"===e.charAt(0)?e.slice(1):e;if("string"==typeof t&&"text"!==e){if("pitch"===e&&/^([a-g][#b]?)[0-8]$/i.test(t))return;"time"===e&&(u[t]=!0,h(t,i)),c[n(t)]=!0;return}if(t&&t.mapTo&&"string"==typeof t.mapTo){let s=n(t.mapTo);"time"===e&&h(s,i),("time"===e||"series"===t.within)&&(u[s]=!0),c[s]=!0;return}["tremolo","lowpass","highpass"].indexOf(e)>-1&&"object"==typeof t&&Object.keys(t).forEach(e=>m(e,t[e],i))},p=(e,t)=>{Object.keys(e).forEach(i=>m(i,e[i],t))},d=e=>e.forEach(e=>{c[e.valueProp||"x"]=u[e.valueProp||"x"]=!0}),p(o,null),p(a,null),d(s.globalContextTracks||[]),f=Object.keys(r).length,n.series.forEach(e=>{let t=e.options.sonification;if(e.visible&&!(t&&!1===t.enabled)&&(f&&(l[e.index]=(0,i.merge)(r)),t)){let i=(t.defaultInstrumentOptions||{}).mapping,n=(t.defaultSpeechOptions||{}).mapping;i&&p(i,e.index),n&&p(n,e.index),d(t.contextTracks||[]),(t.tracks||[]).concat(t.contextTracks||[]).forEach(t=>{t.mapping&&p(t.mapping,e.index)})}}),{seriesTimeProps:l,...function(e,t,n){let s=e.series,o=t.length,a=n.length,l=e=>e.reduce((e,t)=>(e[t]={min:1/0,max:-1/0},e),{}),r=(e,t,n)=>{let s=t[n];void 0===s&&(s=(0,i.getNestedProperty)(n,t)),"number"==typeof s&&(e[n].min=Math.min(e[n].min,s),e[n].max=Math.max(e[n].max,s))},h=l(t),c=s.length,u=Array(c);for(;c--;){let e=l(n),i=s[c].options;if(!s[c].visible||i&&i.sonification&&!1===i.sonification.enabled)continue;let m=s[c].points||[],p=m.length;for(;p--;){let i=o;for(;i--;)r(h,m[p],t[i]);for(i=a;i--;)r(e,m[p],n[i])}u[c]=e}return{globalExtremes:h,seriesExtremes:u}}(n,Object.keys(c),Object.keys(u))}),F=new N({onPlay:V.onPlay,onEnd:V.onEnd,onStop:V.onStop,showCrosshair:y.showCrosshair,showTooltip:y.showTooltip},n);n.sonification&&(n.sonification.propMetrics=I);let D=0;return n.series.forEach((n,s)=>{let o=n.options.sonification||{};if(n.visible&&!1!==o.enabled){let a,l=x?function(e,t,i,n){let s,o,a=t-(e.chart.series.length-1)*n;if(i.seriesTimeProps.every(e=>{let t=Object.keys(e);return!(t.length>1)&&(s||(s=t[0]),s===t[0])})){let t=i.seriesExtremes[e.index][s];o=Math.round((t.max-t.min)/i.seriesExtremes.reduce((e,t)=>t[s]?e+t[s].max-t[s].min:e,0)*a)}else{let t=e.chart.series.reduce((e,t)=>e+t.points.length,0);o=Math.round((e.points||[]).length/t*a)}return Math.max(50,o)}(n,P,I,k):P,r=(0,i.merge)(g,o.defaultInstrumentOptions),h=(0,i.merge)(v,o.defaultSpeechOptions),c=(0,i.merge)(q,o.pointGrouping),u=(o.tracks||[r]).concat(T),m=F.channels.length&&!x?o.contextTracks||[]:(o.contextTracks||[]).concat(w),p=[];u.forEach(s=>{let o=(0,i.merge)({pointGrouping:c,midiName:s.midiName||n.name},"speech"===s.type?h:r,s),u=o.pointGrouping,m=o.activeWhen,d=e=>{"object"==typeof m&&m.prop&&(a=E(e,m.prop))},f=A(F,e,t,o),y=e=>p.push(...function(e,t,i,n){let s=[];if("speech"===i.type&&i.mapping){let o=S(e,t,i.mapping,n);o&&(s=[o])}else i.mapping&&(s=C(e,t,i.mapping,n,i.roundToMusicalNotes??!0));return s}(e,f,o,I)),g=[],v=0,q=e=>{if(1===g.length)y({point:g[0].point,time:v+e/2});else{let t=function(e,t){let i=e.algorithm||"minmax",n=e=>t[e]?[t[e].point]:[];if("first"===i)return n(0);if("last"===i)return n(t.length-1);if("middle"===i)return n(t.length>>1);if("firstlast"===i)return n(0).concat(n(t.length-1));if("minmax"===i){let i,n,s,o,a=e.prop||"y";if(t.forEach(e=>{let t=E(e.point,a);void 0!==t&&((!i||t<s)&&(i=e,s=t),(!n||t>o)&&(n=e,o=t))}),i&&n)return i.point===n.point?[i.point]:i.time>n.time?[n.point,i.point]:[i.point,n.point]}return[]}(u,g),i=e/t.length;t.forEach((e,t)=>y({point:e,time:v+i/2+i*t}))}g=[]};(n.points||[]).forEach((e,t)=>{var i;let s=t===n.points.length-1,r=(i=D,b({point:e,time:0},I,x,o.mapping&&o.mapping.time||0,0,{min:0,max:l,mapTo:"x"})+i),h={point:e,time:r};if(!o.mapping||!O(h,m,a)){d(e),s&&g.length&&q(g[g.length-1].time-g[0].time);return}if(d(e),u.enabled){let e=r-v,t=u.groupTimespan,i=s&&e<=t?e:t;s||e>t?(e<=t&&g.push(h),q(i),v=Math.floor(r/t)*t,s&&e>t?y({point:h.point,time:v+i/2}):g=[h]):g.push(h)}else y(h)})});let d=p.reduce((e,t)=>t.time<e.time?t:e,{time:1/0}),f=p.reduce((e,t)=>t.time>e.time?t:e,{time:-1/0});d.callback=V.onSeriesStart?V.onSeriesStart.bind(null,{series:n,timeline:F}):void 0,f.callback=V.onSeriesEnd?V.onSeriesEnd.bind(null,{series:n,timeline:F}):void 0,m.forEach(n=>{let o="speech"===n.type?(0,i.merge)(v,n):(0,i.merge)(g,{mapping:{pitch:{mapTo:"value"}}},n),r=A(F,e,t,o);a=void 0;let{timeInterval:h,valueInterval:c}=o,u=o.valueProp||"x",m=o.activeWhen,p=I.seriesExtremes[s][u],d=(e,t)=>{if(!o.mapping||!O({time:e,value:t},"object"==typeof m?(0,i.extend)({prop:u},m):m,a)){a=t;return}a=t,"speech"===o.type?S({time:e,value:t},r,o.mapping,I,u):C({time:e,value:t},r,o.mapping,I,o.roundToMusicalNotes??!0,u)};if(h){let e=0;for(;e<=l;){let t=M(e,{min:0,max:l},p);d(e+D,t),e+=h}}if(c){let e=p.min;for(;e<=p.max;)d(M(e,p,{min:0,max:l},!1,"logarithmic"===o.valueMapFunction)+D,e),e+=c}}),x&&(D+=l+k)}}),F},{defaultOptions:I,getOptions:F}=n(),{doc:D,win:Q}=n();class R{constructor(e){this.retryContextCounter=0,this.lastUpdate=0,this.chart=e,this.unbindKeydown=(0,i.addEvent)(D,"keydown",function(t){e&&e.sonification&&("Esc"===t.key||"Escape"===t.key)&&e.sonification.cancel()});try{this.audioContext=new Q.AudioContext,this.audioContext.suspend(),this.audioDestination=this.audioContext.destination}catch{}}setAudioDestination(e){this.audioDestination=e,this.update()}isPlaying(){return!!this.timeline&&this.timeline.isPlaying}playSegment(e,t){this.ready(this.playSegment.bind(this,e,t))&&this.timeline&&this.timeline.playSegment(e,t)}playAdjacent(e,t,i){if(this.ready(this.playAdjacent.bind(this,e,t,i))&&this.timeline){let n=this.chart.options.sonification,s=n&&n.events&&n.events.onBoundaryHit;s||this.initBoundaryInstrument(),this.timeline.playAdjacent(e,t,s||(()=>{this.defaultBoundaryHit()}),i)}}playAdjacentSeries(e,t="x",i){let n=this.getLastPlayedPoint();if(n){let s=n.series.index+(e?1:-1);return this.playClosestToProp(t,n[t],e=>!!e.relatedPoint&&e.relatedPoint.series.index===s,i),this.chart.series[s]||null}return null}playClosestToProp(e,t,i,n){if(this.ready(this.playClosestToProp.bind(this,e,t,i,n))&&this.timeline){let s=this.chart.options.sonification,o=s&&s.events&&s.events.onBoundaryHit;o||this.initBoundaryInstrument(),this.timeline.playClosestToPropValue(e,t,n,o||(()=>this.defaultBoundaryHit()),i)}}getLastPlayedPoint(){return this.timeline?this.timeline.getLastPlayedPoint():null}playNote(e,t,i=0){if(!this.ready(this.playNote.bind(this,e,t)))return;let n=t.noteDuration=t.noteDuration||500,s=new u(this.audioContext,this.audioDestination,{synthPatch:e,capabilities:{filters:!0,tremolo:!0,pan:!0}});s.scheduleEventAtTime(i/1e3,t),setTimeout(()=>s&&s.destroy(),i+n+500)}speak(e,t,n=0){new m((0,i.merge)({language:"en-US",rate:1.5,volume:.4},t||{})).sayAtTime(n,e)}cancel(){this.timeline&&this.timeline.cancel(),(0,i.fireEvent)(this,"cancel")}downloadMIDI(){this.ready(this.downloadMIDI.bind(this))&&this.timeline&&(this.timeline.reset(),this.timeline.downloadMIDI())}sonifyChart(e,t){this.ready(this.sonifyChart.bind(this,e,t))&&this.timeline&&(this.timeline.reset(),this.beforePlay(),this.timeline.play(void 0,void 0,e,t))}sonifySeries(e,t,i){this.ready(this.sonifySeries.bind(this,e,t,i))&&this.timeline&&(this.timeline.reset(),this.beforePlay(),this.timeline.play(t=>!!t.relatedPoint&&t.relatedPoint.series===e,void 0,t,i))}sonifyPoint(e,t){this.ready(this.sonifyPoint.bind(this,e,t))&&this.timeline&&(this.timeline.reset(),this.beforePlay(),this.timeline.anchorPlayMoment(t=>t.relatedPoint===e,t))}setMasterVolume(e){this.timeline&&this.timeline.setMasterVolume(e)}destroy(){this.unbindKeydown(),this.timeline&&(this.timeline.destroy(),delete this.timeline),this.boundaryInstrument&&this.boundaryInstrument.stop(),this.audioContext&&(this.audioContext.close(),delete this.audioContext)}update(){let e=this.chart.options&&this.chart.options.sonification;if(!this.ready(this.update.bind(this))||!e)return;let t=Date.now(),n=e.updateInterval;if(t-this.lastUpdate<n&&!this.forceReady){(0,i.internalClearTimeout)(this.scheduledUpdate),this.scheduledUpdate=setTimeout(this.update.bind(this),n/2);return}let s=e.events||{};if(s.beforeUpdate&&s.beforeUpdate({chart:this.chart,timeline:this.timeline}),this.lastUpdate=t,this.timeline&&this.timeline.destroy(),this.audioContext&&this.audioDestination){this.timeline=V(this.audioContext,this.audioDestination,this.chart);let e=this.chart.options.sonification;this.timeline.setMasterVolume((e&&e.masterVolume)??1)}s.afterUpdate&&s.afterUpdate({chart:this.chart,timeline:this.timeline})}ready(e){return!!this.audioContext&&!!this.audioDestination&&!!this.chart.options&&(!this.chart.options.sonification||!1!==this.chart.options.sonification.enabled)&&("suspended"!==this.audioContext.state||this.forceReady?(this.retryContextCounter=0,!0):(this.retryContextCounter++<20&&setTimeout(()=>{this.audioContext&&"suspended"===this.audioContext.state?this.audioContext.resume().then(e):e()},5),!1))}beforePlay(){let e=this.chart.options.sonification,t=e&&e.events&&e.events.beforePlay;t&&t({chart:this.chart,timeline:this.timeline})}initBoundaryInstrument(){this.boundaryInstrument||(this.boundaryInstrument=new h(this.audioContext,(0,i.merge)(c.chop,{masterVolume:.3})),this.boundaryInstrument.startSilently(),this.boundaryInstrument.connect(this.audioDestination))}defaultBoundaryHit(){this.boundaryInstrument&&(this.boundaryInstrument.playFreqAtTime(.1,1,200),this.boundaryInstrument.playFreqAtTime(.2,1,200))}}!function(e){let t=[];function n(){let t=this.sonification,i=this.options&&this.options.sonification;i&&i.enabled?t?t.update():(this.sonification=new e(this),this.sonification.update()):t&&(t.destroy(),delete this.sonification)}function s(){this&&this.sonification&&this.sonification.destroy()}function o(){this.updateSonificationEnabled&&this.updateSonificationEnabled()}function a(e){let t=e.options.sonification;t&&((0,i.merge)(!0,this.options.sonification,t),o.call(this))}e.compose=function(e,l,r){-1===t.indexOf(e)&&(t.push(e),(0,i.extend)(e.prototype,{updateSonificationEnabled:n,sonify:function(e){this.sonification&&this.sonification.sonifyChart(!1,e)},toggleSonify:function(e=!0,t){if(!this.sonification)return;let i=this.sonification.timeline;Q.speechSynthesis&&Q.speechSynthesis.cancel(),i&&this.sonification.isPlaying()?e?this.sonification.cancel():i.pause():i&&i.isPaused?i.resume():this.sonification.sonifyChart(e,t)}}),(0,i.addEvent)(e,"destroy",s),(0,i.addEvent)(e,"render",o),(0,i.addEvent)(e,"update",a)),-1===t.indexOf(l)&&(t.push(l),l.prototype.sonify=function(e){this.chart.sonification&&this.chart.sonification.sonifySeries(this,!1,e)}),-1===t.indexOf(r)&&(t.push(r),r.prototype.sonify=function(e){this.series.chart.sonification&&this.series.chart.sonification.sonifyPoint(this,e)});let h=F().exporting;h&&h.buttons&&h.buttons.contextButton.menuItems&&h.buttons.contextButton.menuItems.push("separator","downloadMIDI","playAsSound")}}(R||(R={})),(0,i.merge)(!0,I,{sonification:{enabled:!0,duration:6e3,afterSeriesWait:700,updateInterval:200,masterVolume:.7,order:"sequential",showTooltip:!0,showCrosshair:!0,pointGrouping:{enabled:!0,groupTimespan:15,algorithm:"minmax",prop:"y"},defaultInstrumentOptions:{roundToMusicalNotes:!0,instrument:"piano",mapping:{time:"x",pan:"x",noteDuration:200,pitch:{mapTo:"y",min:"c2",max:"c6",within:"yAxis"},gapBetweenNotes:100}},defaultSpeechOptions:{language:"en-US",mapping:{time:"x",rate:1.3,volume:.4},pointGrouping:{algorithm:"last"}}},exporting:{menuItemDefinitions:{downloadMIDI:{textKey:"downloadMIDI",onclick:function(){this.sonification&&this.sonification.downloadMIDI()}},playAsSound:{textKey:"playAsSound",onclick:function(){let e=this.sonification;e&&e.isPlaying()?e.cancel():this.sonify()}}}},lang:{downloadMIDI:"Download MIDI",playAsSound:"Play as sound"}});let B=R,G=n();G.sonification={InstrumentPresets:c,Scales:{minor:[0,2,3,5,7,8,10],dorian:[0,2,3,5,7,9,10],harmonicMinor:[0,2,3,5,7,8,11],phrygian:[0,1,3,5,7,8,11],major:[0,2,4,5,7,9,11],lydian:[0,2,4,6,7,9,11],mixolydian:[0,2,4,5,7,9,10],majorPentatonic:[0,2,4,7,9],minorPentatonic:[0,3,5,7,10]},SynthPatch:h,SonificationInstrument:u,SonificationSpeaker:m,SonificationTimeline:N,Sonification:B},B.compose(G.Chart,G.Series,G.Point);let j=n();export{j as default};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LicenseRef-Highcharts
|
|
2
2
|
/**
|
|
3
|
-
* @license Highcharts JS v13.0
|
|
3
|
+
* @license Highcharts JS v13.1.0 (2026-09-18)
|
|
4
4
|
* @module highcharts/modules/sonification
|
|
5
5
|
* @requires highcharts
|
|
6
6
|
*
|
|
@@ -18,48 +18,27 @@ import * as __WEBPACK_EXTERNAL_MODULE__highcharts_src_js_8202131d__ from "../hig
|
|
|
18
18
|
/******/
|
|
19
19
|
/************************************************************************/
|
|
20
20
|
/******/ /* webpack/runtime/compat get default export */
|
|
21
|
-
/******/
|
|
22
|
-
/******/
|
|
23
|
-
/******/
|
|
24
|
-
/******/
|
|
25
|
-
/******/
|
|
26
|
-
/******/
|
|
27
|
-
/******/
|
|
28
|
-
/******/
|
|
29
|
-
/******/ };
|
|
30
|
-
/******/ })();
|
|
21
|
+
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
|
22
|
+
/******/ __webpack_require__.n = (module) => {
|
|
23
|
+
/******/ const getter = module && module.__esModule ?
|
|
24
|
+
/******/ () => (module['default']) :
|
|
25
|
+
/******/ () => (module);
|
|
26
|
+
/******/ __webpack_require__.d(getter, { a: getter });
|
|
27
|
+
/******/ return getter;
|
|
28
|
+
/******/ };
|
|
31
29
|
/******/
|
|
32
30
|
/******/ /* webpack/runtime/define property getters */
|
|
33
|
-
/******/
|
|
34
|
-
/******/
|
|
35
|
-
/******/
|
|
36
|
-
/******/ if(
|
|
37
|
-
/******/
|
|
38
|
-
/******/ while(i < definition.length) {
|
|
39
|
-
/******/ var key = definition[i++];
|
|
40
|
-
/******/ var binding = definition[i++];
|
|
41
|
-
/******/ if(!__webpack_require__.o(exports, key)) {
|
|
42
|
-
/******/ if(binding === 0) {
|
|
43
|
-
/******/ Object.defineProperty(exports, key, { enumerable: true, value: definition[i++] });
|
|
44
|
-
/******/ } else {
|
|
45
|
-
/******/ Object.defineProperty(exports, key, { enumerable: true, get: binding });
|
|
46
|
-
/******/ }
|
|
47
|
-
/******/ } else if(binding === 0) { i++; }
|
|
48
|
-
/******/ }
|
|
49
|
-
/******/ } else {
|
|
50
|
-
/******/ for(var key in definition) {
|
|
51
|
-
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
|
52
|
-
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
53
|
-
/******/ }
|
|
54
|
-
/******/ }
|
|
31
|
+
/******/ // define getter/value functions for harmony exports
|
|
32
|
+
/******/ __webpack_require__.d = (exports, definition) => {
|
|
33
|
+
/******/ for(var key in definition) {
|
|
34
|
+
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
|
35
|
+
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
55
36
|
/******/ }
|
|
56
|
-
/******/ }
|
|
57
|
-
/******/ }
|
|
37
|
+
/******/ }
|
|
38
|
+
/******/ };
|
|
58
39
|
/******/
|
|
59
40
|
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
60
|
-
/******/ (
|
|
61
|
-
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
|
62
|
-
/******/ })();
|
|
41
|
+
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop));
|
|
63
42
|
/******/
|
|
64
43
|
/************************************************************************/
|
|
65
44
|
|
|
@@ -5159,7 +5138,7 @@ class Sonification {
|
|
|
5159
5138
|
if (this.timeline) {
|
|
5160
5139
|
this.timeline.cancel();
|
|
5161
5140
|
}
|
|
5162
|
-
(0,external_highcharts_src_js_default_namespaceObject.fireEvent)(this, 'cancel');
|
|
5141
|
+
;(0,external_highcharts_src_js_default_namespaceObject.fireEvent)(this, 'cancel');
|
|
5163
5142
|
}
|
|
5164
5143
|
/**
|
|
5165
5144
|
* Start download of a MIDI file export of the timeline.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Highcharts Gantt JS v13.0
|
|
2
|
+
* Highcharts Gantt JS v13.1.0 (2026-09-18)
|
|
3
3
|
* @module highcharts/modules/static-scale
|
|
4
4
|
* @requires highcharts
|
|
5
5
|
*
|
|
@@ -10,4 +10,4 @@
|
|
|
10
10
|
*
|
|
11
11
|
* A commercial license may be required depending on use,
|
|
12
12
|
* see www.highcharts.com/license
|
|
13
|
-
*/import*as
|
|
13
|
+
*/import*as t from"../highcharts.js";let e={};e.n=t=>{let i=t&&t.__esModule?()=>t.default:()=>t;return e.d(i,{a:i}),i},e.d=(t,i)=>{for(var a in i)e.o(i,a)&&!e.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:i[a]})},e.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);let i=t.default;var a=e.n(i);let{composed:r}=a();function s(){let t=this.chart.userOptions.chart;!this.horiz&&(0,i.isNumber)(this.options.staticScale)&&(!t?.height||t.scrollablePlotArea?.minHeight)&&(this.staticScale=this.options.staticScale)}function l(){if("adjustHeight"!==this.redrawTrigger){for(let t of this.axes||[]){let e=t.chart,a=t.options.staticScale;if(t.staticScale&&a&&(0,i.defined)(t.min)&&(0,i.defined)(t.max)){let i=(t.brokenAxis?.unitLength??t.max+t.tickInterval-t.min)*a,r=(i=Math.max(i,a))-e.plotHeight;!e.scrollablePixelsY&&Math.abs(r)>=1&&(e.plotHeight=i,e.redrawTrigger="adjustHeight",e.setSize(void 0,e.chartHeight+r,!!e.initiatedScale&&void 0)),e.initiatedScale||t.series.forEach(t=>{let i=t.sharedClipKey&&e.sharedClips[t.sharedClipKey];i&&i.attr(e.inverted?{width:e.plotHeight}:{height:e.plotHeight})})}}this.initiatedScale=!0}this.redrawTrigger=void 0}let h=a();!function(t,e){if((0,i.pushUnique)(r,"StaticScale")){let a=e.prototype;(0,i.addEvent)(t,"afterSetOptions",s),a.adjustHeight=l,(0,i.addEvent)(e,"render",a.adjustHeight)}}(h.Axis,h.Chart);let o=a();export{o as default};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LicenseRef-Highcharts
|
|
2
2
|
/**
|
|
3
|
-
* @license Highcharts Gantt JS v13.0
|
|
3
|
+
* @license Highcharts Gantt JS v13.1.0 (2026-09-18)
|
|
4
4
|
* @module highcharts/modules/static-scale
|
|
5
5
|
* @requires highcharts
|
|
6
6
|
*
|
|
@@ -18,48 +18,27 @@ import * as __WEBPACK_EXTERNAL_MODULE__highcharts_src_js_8202131d__ from "../hig
|
|
|
18
18
|
/******/
|
|
19
19
|
/************************************************************************/
|
|
20
20
|
/******/ /* webpack/runtime/compat get default export */
|
|
21
|
-
/******/
|
|
22
|
-
/******/
|
|
23
|
-
/******/
|
|
24
|
-
/******/
|
|
25
|
-
/******/
|
|
26
|
-
/******/
|
|
27
|
-
/******/
|
|
28
|
-
/******/
|
|
29
|
-
/******/ };
|
|
30
|
-
/******/ })();
|
|
21
|
+
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
|
22
|
+
/******/ __webpack_require__.n = (module) => {
|
|
23
|
+
/******/ const getter = module && module.__esModule ?
|
|
24
|
+
/******/ () => (module['default']) :
|
|
25
|
+
/******/ () => (module);
|
|
26
|
+
/******/ __webpack_require__.d(getter, { a: getter });
|
|
27
|
+
/******/ return getter;
|
|
28
|
+
/******/ };
|
|
31
29
|
/******/
|
|
32
30
|
/******/ /* webpack/runtime/define property getters */
|
|
33
|
-
/******/
|
|
34
|
-
/******/
|
|
35
|
-
/******/
|
|
36
|
-
/******/ if(
|
|
37
|
-
/******/
|
|
38
|
-
/******/ while(i < definition.length) {
|
|
39
|
-
/******/ var key = definition[i++];
|
|
40
|
-
/******/ var binding = definition[i++];
|
|
41
|
-
/******/ if(!__webpack_require__.o(exports, key)) {
|
|
42
|
-
/******/ if(binding === 0) {
|
|
43
|
-
/******/ Object.defineProperty(exports, key, { enumerable: true, value: definition[i++] });
|
|
44
|
-
/******/ } else {
|
|
45
|
-
/******/ Object.defineProperty(exports, key, { enumerable: true, get: binding });
|
|
46
|
-
/******/ }
|
|
47
|
-
/******/ } else if(binding === 0) { i++; }
|
|
48
|
-
/******/ }
|
|
49
|
-
/******/ } else {
|
|
50
|
-
/******/ for(var key in definition) {
|
|
51
|
-
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
|
52
|
-
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
53
|
-
/******/ }
|
|
54
|
-
/******/ }
|
|
31
|
+
/******/ // define getter/value functions for harmony exports
|
|
32
|
+
/******/ __webpack_require__.d = (exports, definition) => {
|
|
33
|
+
/******/ for(var key in definition) {
|
|
34
|
+
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
|
35
|
+
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
55
36
|
/******/ }
|
|
56
|
-
/******/ }
|
|
57
|
-
/******/ }
|
|
37
|
+
/******/ }
|
|
38
|
+
/******/ };
|
|
58
39
|
/******/
|
|
59
40
|
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
60
|
-
/******/ (
|
|
61
|
-
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
|
62
|
-
/******/ })();
|
|
41
|
+
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop));
|
|
63
42
|
/******/
|
|
64
43
|
/************************************************************************/
|
|
65
44
|
|
|
@@ -128,17 +107,19 @@ function chartAdjustHeight() {
|
|
|
128
107
|
}
|
|
129
108
|
// Make sure clip rects have the right height before initial
|
|
130
109
|
// animation.
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
clipRect
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
110
|
+
if (!chart.initiatedScale) {
|
|
111
|
+
axis.series.forEach((series) => {
|
|
112
|
+
const clipRect = series.sharedClipKey &&
|
|
113
|
+
chart.sharedClips[series.sharedClipKey];
|
|
114
|
+
if (clipRect) {
|
|
115
|
+
clipRect.attr(chart.inverted ? {
|
|
116
|
+
width: chart.plotHeight
|
|
117
|
+
} : {
|
|
118
|
+
height: chart.plotHeight
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
}
|
|
142
123
|
}
|
|
143
124
|
}
|
|
144
125
|
this.initiatedScale = true;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Highstock JS v13.0
|
|
2
|
+
* Highstock JS v13.1.0 (2026-09-18)
|
|
3
3
|
* @module highcharts/modules/stock-tools
|
|
4
4
|
* @requires highcharts
|
|
5
5
|
* @requires highcharts/modules/stock
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*
|
|
12
12
|
* A commercial license may be required depending on use,
|
|
13
13
|
* see www.highcharts.com/license
|
|
14
|
-
*/import*as t from"../highcharts.js";let i={};i.n=t=>{let e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{if(Array.isArray(e))for(var s=0;s<e.length;){var n=e[s++],o=e[s++];i.o(t,n)?0===o&&s++:0===o?Object.defineProperty(t,n,{enumerable:!0,value:e[s++]}):Object.defineProperty(t,n,{enumerable:!0,get:o})}else for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},i.o=(t,i)=>Object.prototype.hasOwnProperty.call(t,i);let e=t.default;var s,n=i.n(e),o=s||(s={});o.compose=function(t){return t.navigation||(t.navigation=new a(t)),t};class a{constructor(t){this.updates=[],this.chart=t}addUpdate(t){this.chart.navigation.updates.push(t)}update(t,i){this.updates.forEach(e=>{e.call(this.chart,t,i)})}}o.Additions=a;let l=s,r=t.default.Templating;var c=i.n(r);let h={backgroundColor:"color",backgroundColors:"color",borderColor:"color",borderRadius:"string",color:"color",fill:"color",fontSize:"string",labels:"string",name:"string",stroke:"color",title:"string"},g={annotationsFieldsTypes:h,getAssignedAxis:function(t){return t.filter(t=>{let i=t.axis.getExtremes(),s=i.min,n=i.max,o=t.axis.minPointOffset??0;return(0,e.isNumber)(s)&&(0,e.isNumber)(n)&&t.value>=s-o&&t.value<=n+o&&!t.axis.options.isInternal})[0]},getAxisFromOptions:function(t,i,s){return(0,e.isNumber)(s)?t[i][s]:(0,e.defined)(s)?(0,e.find)(t[i],t=>t.options.id===s):void 0},getFieldType:function(t,i){let s=h[t],n=typeof i;return(0,e.defined)(s)&&(n=s),({string:"text",number:"number",boolean:"checkbox",color:"color"})[n]}},{getAssignedAxis:p}=g,d={lang:{navigation:{popup:{simpleShapes:"Simple shapes",lines:"Lines",circle:"Circle",ellipse:"Ellipse",rectangle:"Rectangle",label:"Label",shapeOptions:"Shape options",typeOptions:"Details",fill:"Fill",format:"Text",strokeWidth:"Line width",stroke:"Line color",title:"Title",name:"Name",labelOptions:"Label options",labels:"Labels",backgroundColor:"Background color",backgroundColors:"Background colors",borderColor:"Border color",borderRadius:"Border radius",borderWidth:"Border width",style:"Style",padding:"Padding",fontSize:"Font size",color:"Color",height:"Height",shapes:"Shape options"}}},navigation:{bindingsClassName:"highcharts-bindings-container",bindings:{circleAnnotation:{className:"highcharts-circle-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),s=i&&p(i.xAxis),n=i&&p(i.yAxis),o=this.chart.options.navigation;if(s&&n)return this.chart.addAnnotation((0,e.merge)({langKey:"circle",type:"basicAnnotation",shapes:[{type:"circle",point:{x:s.value,y:n.value,xAxis:s.axis.index,yAxis:n.axis.index},r:5}]},o.annotationsOptions,o.bindings.circleAnnotation.annotationsOptions))},steps:[function(t,i){let s,n=i.options.shapes,o=n&&n[0]&&n[0].point||{};if((0,e.isNumber)(o.xAxis)&&(0,e.isNumber)(o.yAxis)){let i=this.chart.inverted,e=this.chart.xAxis[o.xAxis].toPixels(o.x),n=this.chart.yAxis[o.yAxis].toPixels(o.y);s=Math.max(Math.sqrt(Math.pow(i?n-t.chartX:e-t.chartX,2)+Math.pow(i?e-t.chartY:n-t.chartY,2)),5)}i.update({shapes:[{r:s}]})}]},ellipseAnnotation:{className:"highcharts-ellipse-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),s=i&&p(i.xAxis),n=i&&p(i.yAxis),o=this.chart.options.navigation;if(s&&n)return this.chart.addAnnotation((0,e.merge)({langKey:"ellipse",type:"basicAnnotation",shapes:[{type:"ellipse",xAxis:s.axis.index,yAxis:n.axis.index,points:[{x:s.value,y:n.value},{x:s.value,y:n.value}],ry:1}]},o.annotationsOptions,o.bindings.ellipseAnnotation.annotationsOptions))},steps:[function(t,i){let e=i.shapes[0],s=e.getAbsolutePosition(e.points[1]);e.translatePoint(t.chartX-s.x,t.chartY-s.y,1),e.redraw(!1)},function(t,i){let e=i.shapes[0],s=e.getAbsolutePosition(e.points[0]),n=e.getAbsolutePosition(e.points[1]),o=e.getDistanceFromLine(s,n,t.chartX,t.chartY),a=e.getYAxis(),l=Math.abs(a.toValue(0)-a.toValue(o));e.setYRadius(l),e.redraw(!1)}]},rectangleAnnotation:{className:"highcharts-rectangle-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),s=i&&p(i.xAxis),n=i&&p(i.yAxis);if(!s||!n)return;let o=s.value,a=n.value,l=s.axis.index,r=n.axis.index,c=this.chart.options.navigation;return this.chart.addAnnotation((0,e.merge)({langKey:"rectangle",type:"basicAnnotation",shapes:[{type:"path",points:[{xAxis:l,yAxis:r,x:o,y:a},{xAxis:l,yAxis:r,x:o,y:a},{xAxis:l,yAxis:r,x:o,y:a},{xAxis:l,yAxis:r,x:o,y:a},{command:"Z"}]}]},c.annotationsOptions,c.bindings.rectangleAnnotation.annotationsOptions))},steps:[function(t,i){let e=i.options.shapes,s=e&&e[0]&&e[0].points||[],n=this.chart.pointer?.getCoordinates(t),o=n&&p(n.xAxis),a=n&&p(n.yAxis);if(o&&a){let t=o.value,e=a.value;s[1].x=t,s[2].x=t,s[2].y=e,s[3].y=e,i.update({shapes:[{points:s}]})}}]},labelAnnotation:{className:"highcharts-label-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),s=i&&p(i.xAxis),n=i&&p(i.yAxis),o=this.chart.options.navigation;if(s&&n)return this.chart.addAnnotation((0,e.merge)({langKey:"label",type:"basicAnnotation",labelOptions:{format:"{y:.2f}",overflow:"none",crop:!0},labels:[{point:{xAxis:s.axis.index,yAxis:n.axis.index,x:s.value,y:n.value}}]},o.annotationsOptions,o.bindings.labelAnnotation.annotationsOptions))}}},events:{},annotationsOptions:{animation:{defer:0}}}},{setOptions:u}=n(),{format:f}=c(),{composed:v,doc:y,win:m}=n(),{getAssignedAxis:x,getFieldType:b}=g;function w(){this.chart.navigationBindings&&this.chart.navigationBindings.deselectAnnotation()}function A(){this.navigationBindings&&this.navigationBindings.destroy()}function $(){let t=this.options;t&&t.navigation&&t.navigation.bindings&&(this.navigationBindings=new M(this,t.navigation),this.navigationBindings.initEvents(),this.navigationBindings.initUpdate())}function C(){let t=this.navigationBindings,i="highcharts-disabled-btn";if(this&&t){let s=!1;if(this.series.forEach(t=>{!t.options.isInternal&&t.visible&&(s=!0)}),this.navigationBindings&&this.navigationBindings.container&&this.navigationBindings.container[0]){let n=this.navigationBindings.container[0];(0,e.objectEach)(t.boundClassNames,(t,e)=>{let o=n.querySelectorAll("."+e);if(o)for(let e=0;e<o.length;e++){let n=o[e],a=n.className;"normal"===t.noDataState||s?-1!==a.indexOf(i)&&n.classList.remove(i):-1===a.indexOf(i)&&(n.className+=" "+i)}})}}}function k(){this.deselectAnnotation()}function L(){this.selectedButtonElement=null}function z(t){let i,s,n=t.prototype.defaultOptions.events&&t.prototype.defaultOptions.events.click;function o(t){let i=this,s=i.chart.navigationBindings,o=s.activeAnnotation;n&&n.call(i,t),o!==i?(s.deselectAnnotation(),s.activeAnnotation=i,i.setControlPointsVisibility(!0),(0,e.fireEvent)(s,"showPopup",{annotation:i,formType:"annotation-toolbar",options:s.annotationToFields(i),onSubmit:function(t){if("remove"===t.actionType)s.activeAnnotation=!1,s.chart.removeAnnotation(i);else{let e={};s.fieldsToOptions(t.fields,e),s.deselectAnnotation();let n=e.typeOptions;"measure"===i.options.type&&(n.crosshairY.enabled=0!==n.crosshairY.strokeWidth,n.crosshairX.enabled=0!==n.crosshairX.strokeWidth),i.update(e)}}})):(0,e.fireEvent)(s,"closePopup"),t.activeAnnotation=!0}(0,e.merge)(!0,t.prototype.defaultOptions.events,{click:o,touchstart:function(t){i=t.touches[0].clientX,s=t.touches[0].clientY},touchend:function(t){i&&Math.sqrt(Math.pow(i-t.changedTouches[0].clientX,2)+Math.pow(s-t.changedTouches[0].clientY,2))>=4||o.call(this,t)}})}class M{static compose(t,i){(0,e.pushUnique)(v,"NavigationBindings")&&((0,e.addEvent)(t,"remove",w),z(t),(0,e.objectEach)(t.types,t=>{z(t)}),(0,e.addEvent)(i,"destroy",A),(0,e.addEvent)(i,"load",$),(0,e.addEvent)(i,"render",C),(0,e.addEvent)(M,"closePopup",k),(0,e.addEvent)(M,"deselectButton",L),u(d))}constructor(t,i){this.boundClassNames=void 0,this.chart=t,this.options=i,this.eventsToUnbind=[],this.container=this.chart.container.getElementsByClassName(this.options.bindingsClassName||""),this.container.length||(this.container=y.getElementsByClassName(this.options.bindingsClassName||""))}getCoords(t){let i=this.chart.pointer?.getCoordinates(t);return[i&&x(i.xAxis),i&&x(i.yAxis)]}initEvents(){let t=this,i=t.chart,s=t.container,o=t.options;t.boundClassNames={},(0,e.objectEach)(o.bindings||{},i=>{t.boundClassNames[i.className]=i}),[].forEach.call(s,i=>{t.eventsToUnbind.push((0,e.addEvent)(i,"click",e=>{let s=t.getButtonEvents(i,e);s&&!s.button.classList.contains("highcharts-disabled-btn")&&t.bindingsButtonClick(s.button,s.events,e)}))}),(0,e.objectEach)(o.events||{},(i,s)=>{(0,e.isFunction)(i)&&t.eventsToUnbind.push((0,e.addEvent)(t,s,i,{passive:!1}))}),t.eventsToUnbind.push((0,e.addEvent)(i.container,"click",function(e){!i.cancelClick&&i.isInsidePlot(e.chartX-i.plotLeft,e.chartY-i.plotTop,{visiblePlotOnly:!0})&&t.bindingsChartClick(this,e)})),t.eventsToUnbind.push((0,e.addEvent)(i.container,n().isTouchDevice?"touchmove":"mousemove",function(i){t.bindingsContainerMouseMove(this,i)},n().isTouchDevice?{passive:!1}:void 0))}initUpdate(){let t=this;l.compose(this.chart).navigation.addUpdate(i=>{t.update(i)})}bindingsButtonClick(t,i,s){let n=this.chart,o=n.renderer.boxWrapper,a=!0;this.selectedButtonElement&&(this.selectedButtonElement.classList===t.classList&&(a=!1),(0,e.fireEvent)(this,"deselectButton",{button:this.selectedButtonElement}),this.nextEvent&&(this.currentUserDetails&&"annotations"===this.currentUserDetails.coll&&n.removeAnnotation(this.currentUserDetails),this.mouseMoveEvent=this.nextEvent=!1)),a?(this.selectedButton=i,this.selectedButtonElement=t,(0,e.fireEvent)(this,"selectButton",{button:t}),i.init&&i.init.call(this,t,s),(i.start||i.steps)&&n.renderer.boxWrapper.addClass("highcharts-draw-mode")):(n.stockTools&&t.classList.remove("highcharts-active"),o.removeClass("highcharts-draw-mode"),this.nextEvent=!1,this.mouseMoveEvent=!1,this.selectedButton=null)}bindingsChartClick(t,i){t=this.chart;let s=this.activeAnnotation,n=this.selectedButton,o=t.renderer.boxWrapper;s&&(s.cancelClick||i.activeAnnotation||!i.target.parentNode||function(t,i){let e=m.Element.prototype,s=e.matches||e.msMatchesSelector||e.webkitMatchesSelector,n=null;if(e.closest)n=e.closest.call(t,i);else do{if(s.call(t,i))return t;t=t.parentElement||t.parentNode}while(null!==t&&1===t.nodeType);return n}(i.target,".highcharts-popup")?s.cancelClick&&setTimeout(()=>{s.cancelClick=!1},0):(0,e.fireEvent)(this,"closePopup")),n&&n.start&&(this.nextEvent?(this.nextEvent(i,this.currentUserDetails),this.steps&&(this.stepIndex++,n.steps[this.stepIndex]?this.mouseMoveEvent=this.nextEvent=n.steps[this.stepIndex]:((0,e.fireEvent)(this,"deselectButton",{button:this.selectedButtonElement}),o.removeClass("highcharts-draw-mode"),n.end&&n.end.call(this,i,this.currentUserDetails),this.nextEvent=!1,this.mouseMoveEvent=!1,this.selectedButton=null))):(this.currentUserDetails=n.start.call(this,i),this.currentUserDetails&&n.steps?(this.stepIndex=0,this.steps=!0,this.mouseMoveEvent=this.nextEvent=n.steps[this.stepIndex]):((0,e.fireEvent)(this,"deselectButton",{button:this.selectedButtonElement}),o.removeClass("highcharts-draw-mode"),this.steps=!1,this.selectedButton=null,n.end&&n.end.call(this,i,this.currentUserDetails))))}bindingsContainerMouseMove(t,i){this.mouseMoveEvent&&this.mouseMoveEvent(i,this.currentUserDetails)}fieldsToOptions(t,i){return(0,e.objectEach)(t,(t,s)=>{let n=parseFloat(t),o=s.split("."),a=o.length-1;if(!(0,e.isNumber)(n)||t.match(/px|em/g)||s.match(/format/g)||s.match(/title/g)||(t=n),"undefined"!==t){let e=i;o.forEach((i,s)=>{if("__proto__"!==i&&"constructor"!==i){let n=o[s+1]??"";a===s?e[i]=t:(e[i]||(e[i]=n.match(/\d/g)?[]:{}),e=e[i])}})}}),i}deselectAnnotation(){this.activeAnnotation&&(this.activeAnnotation.setControlPointsVisibility(!1),this.activeAnnotation=!1)}annotationToFields(t){let i=t.options,s=M.annotationsEditable,n=s.nestedOptions,o=i.type??i.shapes?.[0]?.type??i.labels?.[0]?.type??"label",a=M.annotationsNonEditable[i.langKey]||[],l={langKey:i.langKey,type:o};function r(i,s,o,l,c){let h;o&&(0,e.defined)(i)&&-1===a.indexOf(s)&&((o.indexOf&&o.indexOf(s))>=0||o[s]||!0===o)&&((0,e.isArray)(i)?(l[s]=[],i.forEach((t,i)=>{(0,e.isObject)(t)?(l[s][i]={},(0,e.objectEach)(t,(t,e)=>{r(t,e,n[s],l[s][i],s)})):r(t,0,n[s],l[s],s)})):(0,e.isObject)(i)?(h={},(0,e.isArray)(l)?(l.push(h),h[s]={},h=h[s]):l[s]=h,(0,e.objectEach)(i,(t,i)=>{r(t,i,0===s?o:n[s],h,s)})):"format"===s?l[s]=[f(i,t.labels[0].points[0]).toString(),"text"]:(0,e.isArray)(l)?l.push([i,b(c,i)]):l[s]=[i,b(s,i)])}return(0,e.objectEach)(i,(t,a)=>{"typeOptions"===a&&"basicAnnotation"!==l.type?(l[a]={},(0,e.objectEach)(i[a],(t,i)=>{r(t,i,n,l[a],i)})):r(t,a,s[o],l,a)}),l}getClickedClassNames(t,i){let s=i.target,n=[],o;for(;s&&s.tagName&&((o=(0,e.attr)(s,"class"))&&(n=n.concat(o.split(" ").map(t=>[t,s]))),(s=s.parentNode)!==t););return n}getButtonEvents(t,i){let e,s=this;return this.getClickedClassNames(t,i).forEach(t=>{s.boundClassNames[t[0]]&&!e&&(e={events:s.boundClassNames[t[0]],button:t[1]})}),e}update(t){this.options=(0,e.merge)(!0,this.options,t),this.removeEvents(),this.initEvents()}removeEvents(){this.eventsToUnbind.forEach(t=>t())}destroy(){this.removeEvents()}}M.annotationsEditable={nestedOptions:{labelOptions:["style","format","backgroundColor"],labels:["style"],label:["style"],style:["fontSize","color"],background:["fill","strokeWidth","stroke"],innerBackground:["fill","strokeWidth","stroke"],outerBackground:["fill","strokeWidth","stroke"],shapeOptions:["fill","strokeWidth","stroke"],shapes:["fill","strokeWidth","stroke"],line:["strokeWidth","stroke"],backgroundColors:[!0],connector:["fill","strokeWidth","stroke"],crosshairX:["strokeWidth","stroke"],crosshairY:["strokeWidth","stroke"]},circle:["shapes"],ellipse:["shapes"],verticalLine:[],label:["labelOptions"],measure:["background","crosshairY","crosshairX"],fibonacci:[],tunnel:["background","line","height"],pitchfork:["innerBackground","outerBackground"],rect:["shapes"],crookedLine:[],basicAnnotation:["shapes","labelOptions"]},M.annotationsNonEditable={rectangle:["crosshairX","crosshairY","labelOptions"],ellipse:["labelOptions"],circle:["labelOptions"]};let E=t.default.Series;var N=i.n(E);let{getOptions:O}=n(),{getAssignedAxis:T,getFieldType:S}=g,B=["apo","ad","aroon","aroonoscillator","atr","ao","cci","chaikin","cmf","cmo","disparityindex","dmi","dpo","linearregressionangle","linearregressionintercept","linearregressionslope","klinger","macd","mfi","momentum","natr","obv","ppo","roc","rsi","slowstochastic","stochastic","trix","williamsr"],H=["ad","cmf","klinger","mfi","obv","vbp","vwap"];function I(t,i){let e=i.pointer?.getCoordinates(t),s,n,o=Number.MAX_VALUE,a;if(i.navigationBindings&&e&&(s=T(e.xAxis),n=T(e.yAxis)),!s||!n)return;let l=s.value,r=n.value;if(n.axis.series.forEach(i=>{if(i.points){let e=i.searchPoint(t,!0);e&&o>Math.abs(e.x-l)&&(o=Math.abs(e.x-l),a=e)}}),a&&a.x&&a.y)return{x:a.x,y:a.y,below:r<a.y,series:a.series,xAxis:a.series.xAxis.index||0,yAxis:a.series.yAxis.index||0}}let V={indicatorsWithAxes:B,indicatorsWithVolume:H,addFlagFromForm:function(t){return function(i){let s=this,n=s.chart,o=n.stockTools,a=I(i,n);if(!a)return;let l={x:a.x,y:a.y},r={type:"flags",onSeries:a.series.id,shape:t,data:[l],xAxis:a.xAxis,yAxis:a.yAxis,point:{events:{click:function(){let t=this,i=t.options;(0,e.fireEvent)(s,"showPopup",{point:t,formType:"annotation-toolbar",options:{langKey:"flags",type:"flags",title:[i.title,S("title",i.title)],name:[i.name,S("name",i.name)]},onSubmit:function(i){"remove"===i.actionType?t.remove():t.update(s.fieldsToOptions(i.fields,{}))}})}}}};o&&o.guiEnabled||n.addSeries(r),(0,e.fireEvent)(s,"showPopup",{formType:"flag",options:{langKey:"flags",type:"flags",title:["A",S("label","A")],name:["Flag A",S("label","Flag A")]},onSubmit:function(t){s.fieldsToOptions(t.fields,r.data?.[0]),n.addSeries(r)}})}},attractToPoint:I,getAssignedAxis:T,isNotNavigatorYAxis:function(t){return"highcharts-navigator-yaxis"!==t.userOptions.className},isPriceIndicatorEnabled:function(t){return t.some(t=>t.lastVisiblePrice||t.lastPrice)},manageIndicators:function(t){let i,s,n,o,a=this.chart,l={linkedTo:t.linkedTo,type:t.type};if("edit"===t.actionType)this.fieldsToOptions(t.fields,l),(o=a.get(t.seriesId))&&o.update(l,!1);else if("remove"===t.actionType){if((o=a.get(t.seriesId))&&(i=o.yAxis,o.linkedSeries&&o.linkedSeries.forEach(t=>{t.remove(!1)}),o.remove(!1),B.indexOf(o.type)>=0)){let t={height:i.options.height,top:i.options.top};i.remove(!1),this.resizeYAxes(t)}}else l.id=(0,e.uniqueKey)(),this.fieldsToOptions(t.fields,l),s=a.get(l.linkedTo),n=O().plotOptions,void 0!==s&&s instanceof N()&&"sum"===s.getDGApproximation()&&!(0,e.defined)(n&&n[l.type]&&n.dataGrouping&&n.dataGrouping.approximation)&&(l.dataGrouping={approximation:"sum"}),B.indexOf(t.type)>=0?(l.yAxis=(i=a.addAxis({id:(0,e.uniqueKey)(),offset:0,opposite:!0,title:{text:""},tickPixelInterval:40,showLastLabel:!1,labels:{align:"left",y:-2}},!1,!1)).options.id,this.resizeYAxes()):l.yAxis=a.get(t.linkedTo).options.yAxis,H.indexOf(t.type)>=0&&(l.params.volumeSeriesID=a.series.filter(function(t){return"column"===t.options.type})[0].options.id),a.addSeries(l,!1);(0,e.fireEvent)(this,"deselectButton",{button:this.selectedButtonElement}),a.redraw()},shallowArraysEqual:function(t,i){if(!(0,e.defined)(t)||!(0,e.defined)(i)||t.length!==i.length)return!1;for(let e=0;e<t.length;e++)if(t[e]!==i[e])return!1;return!0},updateHeight:function(t,i){let s=i.options.typeOptions,n=(0,e.isNumber)(s.yAxis)&&this.chart.yAxis[s.yAxis];n&&s.points&&i.update({typeOptions:{height:n.toValue(t[n.horiz?"chartX":"chartY"])-(s.points[1].y||0)}})},updateNthPoint:function(t){return function(i,s){let n=s.options.typeOptions,o=(0,e.isNumber)(n.xAxis)&&this.chart.xAxis[n.xAxis],a=(0,e.isNumber)(n.yAxis)&&this.chart.yAxis[n.yAxis];o&&a&&(n.points.forEach((e,s)=>{s>=t&&(e.x=o.toValue(i[o.horiz?"chartX":"chartY"]),e.y=a.toValue(i[a.horiz?"chartX":"chartY"]))}),s.update({typeOptions:{points:n.points}}))}},updateRectSize:function(t,i){let s=i.chart,n=i.options.typeOptions,o=(0,e.isNumber)(n.xAxis)&&s.xAxis[n.xAxis],a=(0,e.isNumber)(n.yAxis)&&s.yAxis[n.yAxis];if(o&&a){let e=o.toValue(t[o.horiz?"chartX":"chartY"]),l=a.toValue(t[a.horiz?"chartX":"chartY"]),r=e-n.point.x,c=n.point.y-l;i.update({typeOptions:{background:{width:s.inverted?c:r,height:s.inverted?r:c}}})}}},P=(t,i,e)=>{let s,n=e[t];return"renderer"===i&&n?(n=encodeURIComponent(n),s=`url("data:image/svg+xml;charset=utf-8,${n}")`):s=i.startsWith("http")&&i.match(/\.(png|svg|jpe?g|gif)$/ig)?'url("'+i+'")':`url("${i}${t}")`,s},Y=t=>`<?xml version="1.0" encoding="utf-8"?>
|
|
14
|
+
*/import*as t from"../highcharts.js";let i={};i.n=t=>{let e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var s in e)i.o(e,s)&&!i.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})},i.o=(t,i)=>Object.prototype.hasOwnProperty.call(t,i);let e=t.default;var s,n=i.n(e),o=s||(s={});o.compose=function(t){return t.navigation||(t.navigation=new a(t)),t};class a{constructor(t){this.updates=[],this.chart=t}addUpdate(t){this.chart.navigation.updates.push(t)}update(t,i){this.updates.forEach(e=>{e.call(this.chart,t,i)})}}o.Additions=a;let l=s,r=t.default.Templating;var c=i.n(r);let h={backgroundColor:"color",backgroundColors:"color",borderColor:"color",borderRadius:"string",color:"color",fill:"color",fontSize:"string",labels:"string",name:"string",stroke:"color",title:"string"},g={annotationsFieldsTypes:h,getAssignedAxis:function(t){return t.filter(t=>{let i=t.axis.getExtremes(),s=i.min,n=i.max,o=t.axis.minPointOffset??0;return(0,e.isNumber)(s)&&(0,e.isNumber)(n)&&t.value>=s-o&&t.value<=n+o&&!t.axis.options.isInternal})[0]},getAxisFromOptions:function(t,i,s){return(0,e.isNumber)(s)?t[i][s]:(0,e.defined)(s)?(0,e.find)(t[i],t=>t.options.id===s):void 0},getFieldType:function(t,i){let s=h[t],n=typeof i;return(0,e.defined)(s)&&(n=s),({string:"text",number:"number",boolean:"checkbox",color:"color"})[n]}},{getAssignedAxis:p}=g,d={lang:{navigation:{popup:{simpleShapes:"Simple shapes",lines:"Lines",circle:"Circle",ellipse:"Ellipse",rectangle:"Rectangle",label:"Label",shapeOptions:"Shape options",typeOptions:"Details",fill:"Fill",format:"Text",strokeWidth:"Line width",stroke:"Line color",title:"Title",name:"Name",labelOptions:"Label options",labels:"Labels",backgroundColor:"Background color",backgroundColors:"Background colors",borderColor:"Border color",borderRadius:"Border radius",borderWidth:"Border width",style:"Style",padding:"Padding",fontSize:"Font size",color:"Color",height:"Height",shapes:"Shape options"}}},navigation:{bindingsClassName:"highcharts-bindings-container",bindings:{circleAnnotation:{className:"highcharts-circle-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),s=i&&p(i.xAxis),n=i&&p(i.yAxis),o=this.chart.options.navigation;if(s&&n)return this.chart.addAnnotation((0,e.merge)({langKey:"circle",type:"basicAnnotation",shapes:[{type:"circle",point:{x:s.value,y:n.value,xAxis:s.axis.index,yAxis:n.axis.index},r:5}]},o.annotationsOptions,o.bindings.circleAnnotation.annotationsOptions))},steps:[function(t,i){let s,n=i.options.shapes,o=n&&n[0]&&n[0].point||{};if((0,e.isNumber)(o.xAxis)&&(0,e.isNumber)(o.yAxis)){let i=this.chart.inverted,e=this.chart.xAxis[o.xAxis].toPixels(o.x),n=this.chart.yAxis[o.yAxis].toPixels(o.y);s=Math.max(Math.sqrt(Math.pow(i?n-t.chartX:e-t.chartX,2)+Math.pow(i?e-t.chartY:n-t.chartY,2)),5)}i.update({shapes:[{r:s}]})}]},ellipseAnnotation:{className:"highcharts-ellipse-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),s=i&&p(i.xAxis),n=i&&p(i.yAxis),o=this.chart.options.navigation;if(s&&n)return this.chart.addAnnotation((0,e.merge)({langKey:"ellipse",type:"basicAnnotation",shapes:[{type:"ellipse",xAxis:s.axis.index,yAxis:n.axis.index,points:[{x:s.value,y:n.value},{x:s.value,y:n.value}],ry:1}]},o.annotationsOptions,o.bindings.ellipseAnnotation.annotationsOptions))},steps:[function(t,i){let e=i.shapes[0],s=e.getAbsolutePosition(e.points[1]);e.translatePoint(t.chartX-s.x,t.chartY-s.y,1),e.redraw(!1)},function(t,i){let e=i.shapes[0],s=e.getAbsolutePosition(e.points[0]),n=e.getAbsolutePosition(e.points[1]),o=e.getDistanceFromLine(s,n,t.chartX,t.chartY),a=e.getYAxis(),l=Math.abs(a.toValue(0)-a.toValue(o));e.setYRadius(l),e.redraw(!1)}]},rectangleAnnotation:{className:"highcharts-rectangle-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),s=i&&p(i.xAxis),n=i&&p(i.yAxis);if(!s||!n)return;let o=s.value,a=n.value,l=s.axis.index,r=n.axis.index,c=this.chart.options.navigation;return this.chart.addAnnotation((0,e.merge)({langKey:"rectangle",type:"basicAnnotation",shapes:[{type:"path",points:[{xAxis:l,yAxis:r,x:o,y:a},{xAxis:l,yAxis:r,x:o,y:a},{xAxis:l,yAxis:r,x:o,y:a},{xAxis:l,yAxis:r,x:o,y:a},{command:"Z"}]}]},c.annotationsOptions,c.bindings.rectangleAnnotation.annotationsOptions))},steps:[function(t,i){let e=i.options.shapes,s=e&&e[0]&&e[0].points||[],n=this.chart.pointer?.getCoordinates(t),o=n&&p(n.xAxis),a=n&&p(n.yAxis);if(o&&a){let t=o.value,e=a.value;s[1].x=t,s[2].x=t,s[2].y=e,s[3].y=e,i.update({shapes:[{points:s}]})}}]},labelAnnotation:{className:"highcharts-label-annotation",start:function(t){let i=this.chart.pointer?.getCoordinates(t),s=i&&p(i.xAxis),n=i&&p(i.yAxis),o=this.chart.options.navigation;if(s&&n)return this.chart.addAnnotation((0,e.merge)({langKey:"label",type:"basicAnnotation",labelOptions:{format:"{y:.2f}",overflow:"none",crop:!0},labels:[{point:{xAxis:s.axis.index,yAxis:n.axis.index,x:s.value,y:n.value}}]},o.annotationsOptions,o.bindings.labelAnnotation.annotationsOptions))}}},events:{},annotationsOptions:{animation:{defer:0}}}},{setOptions:u}=n(),{format:f}=c(),{composed:v,doc:y,win:m}=n(),{getAssignedAxis:x,getFieldType:b}=g;function w(){this.chart.navigationBindings&&this.chart.navigationBindings.deselectAnnotation()}function A(){this.navigationBindings&&this.navigationBindings.destroy()}function $(){let t=this.options;t&&t.navigation&&t.navigation.bindings&&(this.navigationBindings=new M(this,t.navigation),this.navigationBindings.initEvents(),this.navigationBindings.initUpdate())}function C(){let t=this.navigationBindings,i="highcharts-disabled-btn";if(this&&t){let s=!1;if(this.series.forEach(t=>{!t.options.isInternal&&t.visible&&(s=!0)}),this.navigationBindings&&this.navigationBindings.container&&this.navigationBindings.container[0]){let n=this.navigationBindings.container[0];(0,e.objectEach)(t.boundClassNames,(t,e)=>{let o=n.querySelectorAll("."+e);if(o)for(let e=0;e<o.length;e++){let n=o[e],a=n.className;"normal"===t.noDataState||s?-1!==a.indexOf(i)&&n.classList.remove(i):-1===a.indexOf(i)&&(n.className+=" "+i)}})}}}function k(){this.deselectAnnotation()}function L(){this.selectedButtonElement=null}function z(t){let i,s,n=t.prototype.defaultOptions.events&&t.prototype.defaultOptions.events.click;function o(t){let i=this,s=i.chart.navigationBindings,o=s.activeAnnotation;n&&n.call(i,t),o!==i?(s.deselectAnnotation(),s.activeAnnotation=i,i.setControlPointsVisibility(!0),(0,e.fireEvent)(s,"showPopup",{annotation:i,formType:"annotation-toolbar",options:s.annotationToFields(i),onSubmit:function(t){if("remove"===t.actionType)s.activeAnnotation=!1,s.chart.removeAnnotation(i);else{let e={};s.fieldsToOptions(t.fields,e),s.deselectAnnotation();let n=e.typeOptions;"measure"===i.options.type&&(n.crosshairY.enabled=0!==n.crosshairY.strokeWidth,n.crosshairX.enabled=0!==n.crosshairX.strokeWidth),i.update(e)}}})):(0,e.fireEvent)(s,"closePopup"),t.activeAnnotation=!0}(0,e.merge)(!0,t.prototype.defaultOptions.events,{click:o,touchstart:function(t){i=t.touches[0].clientX,s=t.touches[0].clientY},touchend:function(t){i&&Math.sqrt(Math.pow(i-t.changedTouches[0].clientX,2)+Math.pow(s-t.changedTouches[0].clientY,2))>=4||o.call(this,t)}})}class M{static compose(t,i){(0,e.pushUnique)(v,"NavigationBindings")&&((0,e.addEvent)(t,"remove",w),z(t),(0,e.objectEach)(t.types,t=>{z(t)}),(0,e.addEvent)(i,"destroy",A),(0,e.addEvent)(i,"load",$),(0,e.addEvent)(i,"render",C),(0,e.addEvent)(M,"closePopup",k),(0,e.addEvent)(M,"deselectButton",L),u(d))}constructor(t,i){this.boundClassNames=void 0,this.chart=t,this.options=i,this.eventsToUnbind=[],this.container=this.chart.container.getElementsByClassName(this.options.bindingsClassName||""),this.container.length||(this.container=y.getElementsByClassName(this.options.bindingsClassName||""))}getCoords(t){let i=this.chart.pointer?.getCoordinates(t);return[i&&x(i.xAxis),i&&x(i.yAxis)]}initEvents(){let t=this,i=t.chart,s=t.container,o=t.options;t.boundClassNames={},(0,e.objectEach)(o.bindings||{},i=>{t.boundClassNames[i.className]=i}),[].forEach.call(s,i=>{t.eventsToUnbind.push((0,e.addEvent)(i,"click",e=>{let s=t.getButtonEvents(i,e);s&&!s.button.classList.contains("highcharts-disabled-btn")&&t.bindingsButtonClick(s.button,s.events,e)}))}),(0,e.objectEach)(o.events||{},(i,s)=>{(0,e.isFunction)(i)&&t.eventsToUnbind.push((0,e.addEvent)(t,s,i,{passive:!1}))}),t.eventsToUnbind.push((0,e.addEvent)(i.container,"click",function(e){!i.cancelClick&&i.isInsidePlot(e.chartX-i.plotLeft,e.chartY-i.plotTop,{visiblePlotOnly:!0})&&t.bindingsChartClick(this,e)})),t.eventsToUnbind.push((0,e.addEvent)(i.container,n().isTouchDevice?"touchmove":"mousemove",function(i){t.bindingsContainerMouseMove(this,i)},n().isTouchDevice?{passive:!1}:void 0))}initUpdate(){let t=this;l.compose(this.chart).navigation.addUpdate(i=>{t.update(i)})}bindingsButtonClick(t,i,s){let n=this.chart,o=n.renderer.boxWrapper,a=!0;this.selectedButtonElement&&(this.selectedButtonElement.classList===t.classList&&(a=!1),(0,e.fireEvent)(this,"deselectButton",{button:this.selectedButtonElement}),this.nextEvent&&(this.currentUserDetails&&"annotations"===this.currentUserDetails.coll&&n.removeAnnotation(this.currentUserDetails),this.mouseMoveEvent=this.nextEvent=!1)),a?(this.selectedButton=i,this.selectedButtonElement=t,(0,e.fireEvent)(this,"selectButton",{button:t}),i.init&&i.init.call(this,t,s),(i.start||i.steps)&&n.renderer.boxWrapper.addClass("highcharts-draw-mode")):(n.stockTools&&t.classList.remove("highcharts-active"),o.removeClass("highcharts-draw-mode"),this.nextEvent=!1,this.mouseMoveEvent=!1,this.selectedButton=null)}bindingsChartClick(t,i){t=this.chart;let s=this.activeAnnotation,n=this.selectedButton,o=t.renderer.boxWrapper;s&&(s.cancelClick||i.activeAnnotation||!i.target.parentNode||function(t,i){let e=m.Element.prototype,s=e.matches||e.msMatchesSelector||e.webkitMatchesSelector,n=null;if(e.closest)n=e.closest.call(t,i);else do{if(s.call(t,i))return t;t=t.parentElement||t.parentNode}while(null!==t&&1===t.nodeType);return n}(i.target,".highcharts-popup")?s.cancelClick&&setTimeout(()=>{s.cancelClick=!1},0):(0,e.fireEvent)(this,"closePopup")),n&&n.start&&(this.nextEvent?(this.nextEvent(i,this.currentUserDetails),this.steps&&(this.stepIndex++,n.steps[this.stepIndex]?this.mouseMoveEvent=this.nextEvent=n.steps[this.stepIndex]:((0,e.fireEvent)(this,"deselectButton",{button:this.selectedButtonElement}),o.removeClass("highcharts-draw-mode"),n.end&&n.end.call(this,i,this.currentUserDetails),this.nextEvent=!1,this.mouseMoveEvent=!1,this.selectedButton=null))):(this.currentUserDetails=n.start.call(this,i),this.currentUserDetails&&n.steps?(this.stepIndex=0,this.steps=!0,this.mouseMoveEvent=this.nextEvent=n.steps[this.stepIndex]):((0,e.fireEvent)(this,"deselectButton",{button:this.selectedButtonElement}),o.removeClass("highcharts-draw-mode"),this.steps=!1,this.selectedButton=null,n.end&&n.end.call(this,i,this.currentUserDetails))))}bindingsContainerMouseMove(t,i){this.mouseMoveEvent&&this.mouseMoveEvent(i,this.currentUserDetails)}fieldsToOptions(t,i){return(0,e.objectEach)(t,(t,s)=>{let n=parseFloat(t),o=s.split("."),a=o.length-1;if(!(0,e.isNumber)(n)||t.match(/px|em/g)||s.match(/format/g)||s.match(/title/g)||(t=n),"undefined"!==t){let e=i;o.forEach((i,s)=>{if("__proto__"!==i&&"constructor"!==i){let n=o[s+1]??"";a===s?e[i]=t:(e[i]||(e[i]=n.match(/\d/g)?[]:{}),e=e[i])}})}}),i}deselectAnnotation(){this.activeAnnotation&&(this.activeAnnotation.setControlPointsVisibility(!1),this.activeAnnotation=!1)}annotationToFields(t){let i=t.options,s=M.annotationsEditable,n=s.nestedOptions,o=i.type??i.shapes?.[0]?.type??i.labels?.[0]?.type??"label",a=M.annotationsNonEditable[i.langKey]||[],l={langKey:i.langKey,type:o};function r(i,s,o,l,c){let h;o&&(0,e.defined)(i)&&-1===a.indexOf(s)&&((o.indexOf&&o.indexOf(s))>=0||o[s]||!0===o)&&((0,e.isArray)(i)?(l[s]=[],i.forEach((t,i)=>{(0,e.isObject)(t)?(l[s][i]={},(0,e.objectEach)(t,(t,e)=>{r(t,e,n[s],l[s][i],s)})):r(t,0,n[s],l[s],s)})):(0,e.isObject)(i)?(h={},(0,e.isArray)(l)?(l.push(h),h[s]={},h=h[s]):l[s]=h,(0,e.objectEach)(i,(t,i)=>{r(t,i,0===s?o:n[s],h,s)})):"format"===s?l[s]=[f(i,t.labels[0].points[0]).toString(),"text"]:(0,e.isArray)(l)?l.push([i,b(c,i)]):l[s]=[i,b(s,i)])}return(0,e.objectEach)(i,(t,a)=>{"typeOptions"===a&&"basicAnnotation"!==l.type?(l[a]={},(0,e.objectEach)(i[a],(t,i)=>{r(t,i,n,l[a],i)})):r(t,a,s[o],l,a)}),l}getClickedClassNames(t,i){let s=i.target,n=[],o;for(;s&&s.tagName&&((o=(0,e.attr)(s,"class"))&&(n=n.concat(o.split(" ").map(t=>[t,s]))),(s=s.parentNode)!==t););return n}getButtonEvents(t,i){let e,s=this;return this.getClickedClassNames(t,i).forEach(t=>{s.boundClassNames[t[0]]&&!e&&(e={events:s.boundClassNames[t[0]],button:t[1]})}),e}update(t){this.options=(0,e.merge)(!0,this.options,t),this.removeEvents(),this.initEvents()}removeEvents(){this.eventsToUnbind.forEach(t=>t())}destroy(){this.removeEvents()}}M.annotationsEditable={nestedOptions:{labelOptions:["style","format","backgroundColor"],labels:["style"],label:["style"],style:["fontSize","color"],background:["fill","strokeWidth","stroke"],innerBackground:["fill","strokeWidth","stroke"],outerBackground:["fill","strokeWidth","stroke"],shapeOptions:["fill","strokeWidth","stroke"],shapes:["fill","strokeWidth","stroke"],line:["strokeWidth","stroke"],backgroundColors:[!0],connector:["fill","strokeWidth","stroke"],crosshairX:["strokeWidth","stroke"],crosshairY:["strokeWidth","stroke"]},circle:["shapes"],ellipse:["shapes"],verticalLine:[],label:["labelOptions"],measure:["background","crosshairY","crosshairX"],fibonacci:[],tunnel:["background","line","height"],pitchfork:["innerBackground","outerBackground"],rect:["shapes"],crookedLine:[],basicAnnotation:["shapes","labelOptions"]},M.annotationsNonEditable={rectangle:["crosshairX","crosshairY","labelOptions"],ellipse:["labelOptions"],circle:["labelOptions"]};let E=t.default.Series;var N=i.n(E);let{getOptions:O}=n(),{getAssignedAxis:T,getFieldType:S}=g,B=["apo","ad","aroon","aroonoscillator","atr","ao","cci","chaikin","cmf","cmo","disparityindex","dmi","dpo","linearregressionangle","linearregressionintercept","linearregressionslope","klinger","macd","mfi","momentum","natr","obv","ppo","roc","rsi","slowstochastic","stochastic","trix","williamsr"],H=["ad","cmf","klinger","mfi","obv","vbp","vwap"];function I(t,i){let e=i.pointer?.getCoordinates(t),s,n,o=Number.MAX_VALUE,a;if(i.navigationBindings&&e&&(s=T(e.xAxis),n=T(e.yAxis)),!s||!n)return;let l=s.value,r=n.value;if(n.axis.series.forEach(i=>{if(i.points){let e=i.searchPoint(t,!0);e&&o>Math.abs(e.x-l)&&(o=Math.abs(e.x-l),a=e)}}),a&&a.x&&a.y)return{x:a.x,y:a.y,below:r<a.y,series:a.series,xAxis:a.series.xAxis.index||0,yAxis:a.series.yAxis.index||0}}let V={indicatorsWithAxes:B,indicatorsWithVolume:H,addFlagFromForm:function(t){return function(i){let s=this,n=s.chart,o=n.stockTools,a=I(i,n);if(!a)return;let l={x:a.x,y:a.y},r={type:"flags",onSeries:a.series.id,shape:t,data:[l],xAxis:a.xAxis,yAxis:a.yAxis,point:{events:{click:function(){let t=this,i=t.options;(0,e.fireEvent)(s,"showPopup",{point:t,formType:"annotation-toolbar",options:{langKey:"flags",type:"flags",title:[i.title,S("title",i.title)],name:[i.name,S("name",i.name)]},onSubmit:function(i){"remove"===i.actionType?t.remove():t.update(s.fieldsToOptions(i.fields,{}))}})}}}};o&&o.guiEnabled||n.addSeries(r),(0,e.fireEvent)(s,"showPopup",{formType:"flag",options:{langKey:"flags",type:"flags",title:["A",S("label","A")],name:["Flag A",S("label","Flag A")]},onSubmit:function(t){s.fieldsToOptions(t.fields,r.data?.[0]),n.addSeries(r)}})}},attractToPoint:I,getAssignedAxis:T,isNotNavigatorYAxis:function(t){return"highcharts-navigator-yaxis"!==t.userOptions.className},isPriceIndicatorEnabled:function(t){return t.some(t=>t.lastVisiblePrice||t.lastPrice)},manageIndicators:function(t){let i,s,n,o,a=this.chart,l={linkedTo:t.linkedTo,type:t.type};if("edit"===t.actionType)this.fieldsToOptions(t.fields,l),(o=a.get(t.seriesId))&&o.update(l,!1);else if("remove"===t.actionType){if((o=a.get(t.seriesId))&&(i=o.yAxis,o.linkedSeries&&o.linkedSeries.forEach(t=>{t.remove(!1)}),o.remove(!1),B.indexOf(o.type)>=0)){let t={height:i.options.height,top:i.options.top};i.remove(!1),this.resizeYAxes(t)}}else l.id=(0,e.uniqueKey)(),this.fieldsToOptions(t.fields,l),s=a.get(l.linkedTo),n=O().plotOptions,void 0!==s&&s instanceof N()&&"sum"===s.getDGApproximation()&&!(0,e.defined)(n&&n[l.type]&&n.dataGrouping&&n.dataGrouping.approximation)&&(l.dataGrouping={approximation:"sum"}),B.indexOf(t.type)>=0?(l.yAxis=(i=a.addAxis({id:(0,e.uniqueKey)(),offset:0,opposite:!0,title:{text:""},tickPixelInterval:40,showLastLabel:!1,labels:{align:"left",y:-2}},!1,!1)).options.id,this.resizeYAxes()):l.yAxis=a.get(t.linkedTo).options.yAxis,H.indexOf(t.type)>=0&&(l.params.volumeSeriesID=a.series.filter(function(t){return"column"===t.options.type})[0].options.id),a.addSeries(l,!1);(0,e.fireEvent)(this,"deselectButton",{button:this.selectedButtonElement}),a.redraw()},shallowArraysEqual:function(t,i){if(!(0,e.defined)(t)||!(0,e.defined)(i)||t.length!==i.length)return!1;for(let e=0;e<t.length;e++)if(t[e]!==i[e])return!1;return!0},updateHeight:function(t,i){let s=i.options.typeOptions,n=(0,e.isNumber)(s.yAxis)&&this.chart.yAxis[s.yAxis];n&&s.points&&i.update({typeOptions:{height:n.toValue(t[n.horiz?"chartX":"chartY"])-(s.points[1].y||0)}})},updateNthPoint:function(t){return function(i,s){let n=s.options.typeOptions,o=(0,e.isNumber)(n.xAxis)&&this.chart.xAxis[n.xAxis],a=(0,e.isNumber)(n.yAxis)&&this.chart.yAxis[n.yAxis];o&&a&&(n.points.forEach((e,s)=>{s>=t&&(e.x=o.toValue(i[o.horiz?"chartX":"chartY"]),e.y=a.toValue(i[a.horiz?"chartX":"chartY"]))}),s.update({typeOptions:{points:n.points}}))}},updateRectSize:function(t,i){let s=i.chart,n=i.options.typeOptions,o=(0,e.isNumber)(n.xAxis)&&s.xAxis[n.xAxis],a=(0,e.isNumber)(n.yAxis)&&s.yAxis[n.yAxis];if(o&&a){let e=o.toValue(t[o.horiz?"chartX":"chartY"]),l=a.toValue(t[a.horiz?"chartX":"chartY"]),r=e-n.point.x,c=n.point.y-l;i.update({typeOptions:{background:{width:s.inverted?c:r,height:s.inverted?r:c}}})}}},P=(t,i,e)=>{let s,n=e[t];return"renderer"===i&&n?(n=encodeURIComponent(n),s=`url("data:image/svg+xml;charset=utf-8,${n}")`):s=i.startsWith("http")&&i.match(/\.(png|svg|jpe?g|gif)$/ig)?'url("'+i+'")':`url("${i}${t}")`,s},Y=t=>`<?xml version="1.0" encoding="utf-8"?>
|
|
15
15
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 ${t} ${t}">`,W="#4B4B4D",R={"annotations-hidden.svg":`${Y(32)}
|
|
16
16
|
<g>
|
|
17
17
|
<g>
|