aw-highstock_rails 7.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/.travis.yml +7 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +22 -0
- data/LICENSE.txt +21 -0
- data/README.md +53 -0
- data/Rakefile +10 -0
- data/aw-highstock_rails.gemspec +28 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/aw/highstock_rails.rb +9 -0
- data/lib/aw/highstock_rails/version.rb +5 -0
- data/vendor/assets/javascripts/highstock/css/annotations/popup.css +229 -0
- data/vendor/assets/javascripts/highstock/css/annotations/popup.scss +235 -0
- data/vendor/assets/javascripts/highstock/css/highcharts.css +890 -0
- data/vendor/assets/javascripts/highstock/css/highcharts.scss +788 -0
- data/vendor/assets/javascripts/highstock/css/stocktools/gui.css +268 -0
- data/vendor/assets/javascripts/highstock/css/stocktools/gui.scss +270 -0
- data/vendor/assets/javascripts/highstock/css/themes/dark-unica.css +951 -0
- data/vendor/assets/javascripts/highstock/css/themes/dark-unica.scss +122 -0
- data/vendor/assets/javascripts/highstock/css/themes/grid-light.css +904 -0
- data/vendor/assets/javascripts/highstock/css/themes/grid-light.scss +33 -0
- data/vendor/assets/javascripts/highstock/css/themes/sand-signika.css +920 -0
- data/vendor/assets/javascripts/highstock/css/themes/sand-signika.scss +74 -0
- data/vendor/assets/javascripts/highstock/es-modules/annotations/ControlPoint.js +130 -0
- data/vendor/assets/javascripts/highstock/es-modules/annotations/MockPoint.js +415 -0
- data/vendor/assets/javascripts/highstock/es-modules/annotations/annotations.src.js +1231 -0
- data/vendor/assets/javascripts/highstock/es-modules/annotations/controllable/ControllableCircle.js +92 -0
- data/vendor/assets/javascripts/highstock/es-modules/annotations/controllable/ControllableImage.js +101 -0
- data/vendor/assets/javascripts/highstock/es-modules/annotations/controllable/ControllableLabel.js +452 -0
- data/vendor/assets/javascripts/highstock/es-modules/annotations/controllable/ControllablePath.js +175 -0
- data/vendor/assets/javascripts/highstock/es-modules/annotations/controllable/ControllableRect.js +93 -0
- data/vendor/assets/javascripts/highstock/es-modules/annotations/controllable/controllableMixin.js +411 -0
- data/vendor/assets/javascripts/highstock/es-modules/annotations/controllable/markerMixin.js +214 -0
- data/vendor/assets/javascripts/highstock/es-modules/annotations/eventEmitterMixin.js +271 -0
- data/vendor/assets/javascripts/highstock/es-modules/annotations/navigationBindings.js +1283 -0
- data/vendor/assets/javascripts/highstock/es-modules/annotations/popup.js +1069 -0
- data/vendor/assets/javascripts/highstock/es-modules/annotations/types/CrookedLine.js +191 -0
- data/vendor/assets/javascripts/highstock/es-modules/annotations/types/ElliottWave.js +76 -0
- data/vendor/assets/javascripts/highstock/es-modules/annotations/types/Fibonacci.js +247 -0
- data/vendor/assets/javascripts/highstock/es-modules/annotations/types/InfinityLine.js +185 -0
- data/vendor/assets/javascripts/highstock/es-modules/annotations/types/Measure.js +928 -0
- data/vendor/assets/javascripts/highstock/es-modules/annotations/types/Pitchfork.js +203 -0
- data/vendor/assets/javascripts/highstock/es-modules/annotations/types/Tunnel.js +242 -0
- data/vendor/assets/javascripts/highstock/es-modules/annotations/types/VerticalLine.js +157 -0
- data/vendor/assets/javascripts/highstock/es-modules/error-messages.js +128 -0
- data/vendor/assets/javascripts/highstock/es-modules/error.js +1 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/acceleration-bands.src.js +199 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/accumulation-distribution.src.js +129 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/ao.src.js +206 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/apo.src.js +148 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/aroon-oscillator.src.js +128 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/aroon.src.js +173 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/atr.src.js +151 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/bollinger-bands.src.js +209 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/cci.src.js +131 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/chaikin.src.js +167 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/cmf.src.js +246 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/dema.src.js +191 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/dpo.src.js +138 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/ema.src.js +166 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/ichimoku-kinko-hyo.src.js +850 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/indicators.src.js +425 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/keltner-channels.src.js +193 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/macd.src.js +417 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/mfi.src.js +198 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/momentum.src.js +119 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/natr.src.js +74 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/pivot-points.src.js +360 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/ppo.src.js +152 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/price-channel.src.js +149 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/price-envelopes.src.js +251 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/psar.src.js +307 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/regressions.src.js +427 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/roc.src.js +149 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/rsi.src.js +163 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/stochastic.src.js +193 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/supertrend.src.js +544 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/tema.src.js +247 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/trix.src.js +96 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/volume-by-price.src.js +671 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/vwap.src.js +189 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/williams-r.src.js +128 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/wma.src.js +146 -0
- data/vendor/assets/javascripts/highstock/es-modules/indicators/zigzag.src.js +221 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/highcharts-3d.src.js +17 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/highcharts-more.src.js +22 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/highstock.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/acceleration-bands.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/accumulation-distribution.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/ao.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/apo.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/aroon-oscillator.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/aroon.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/atr.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/bollinger-bands.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/cci.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/chaikin.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/cmf.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/dema.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/dpo.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/ema.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/indicators-all.src.js +49 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/indicators.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/keltner-channels.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/macd.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/mfi.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/momentum.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/natr.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/pivot-points.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/ppo.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/price-channel.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/price-envelopes.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/psar.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/regressions.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/roc.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/rsi.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/stochastic.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/supertrend.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/tema.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/trix.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/volume-by-price.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/vwap.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/williams-r.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/wma.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/indicators/zigzag.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/accessibility.src.js +13 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/annotations-advanced.src.js +20 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/annotations.src.js +12 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/arrow-symbols.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/boost-canvas.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/boost.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/bullet.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/current-date-indicator.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/cylinder.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/data.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/datagrouping.src.js +12 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/debugger.src.js +13 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/dependency-wheel.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/drag-panes.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/draggable-points.src.js +9 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/drilldown.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/export-data.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/exporting.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/full-screen.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/funnel.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/grid-axis.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/heatmap.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/histogram-bellcurve.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/item-series.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/networkgraph.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/no-data-to-display.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/offline-exporting.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/oldie-polyfills.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/oldie.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/overlapping-datalabels.src.js +9 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/parallel-coordinates.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/pareto.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/pathfinder.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/pattern-fill.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/price-indicator.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/sankey.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/series-label.src.js +9 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/solid-gauge.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/sonification.src.js +12 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/static-scale.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/stock-tools.src.js +12 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/stock.src.js +19 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/streamgraph.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/sunburst.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/tilemap.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/timeline.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/treegrid.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/treemap.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/variable-pie.src.js +11 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/variwide.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/vector.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/venn.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/windbarb.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/wordcloud.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/modules/xrange.src.js +10 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/themes/avocado.js +9 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/themes/avocado.src.js +9 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/themes/dark-blue.src.js +9 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/themes/dark-green.src.js +9 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/themes/dark-unica.src.js +9 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/themes/gray.src.js +9 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/themes/grid-light.src.js +9 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/themes/grid.src.js +9 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/themes/sand-signika.src.js +9 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/themes/skies.src.js +9 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/themes/sunset.js +9 -0
- data/vendor/assets/javascripts/highstock/es-modules/masters/themes/sunset.src.js +9 -0
- data/vendor/assets/javascripts/highstock/es-modules/mixins/ajax.js +123 -0
- data/vendor/assets/javascripts/highstock/es-modules/mixins/centered-series.js +116 -0
- data/vendor/assets/javascripts/highstock/es-modules/mixins/derived-series.js +150 -0
- data/vendor/assets/javascripts/highstock/es-modules/mixins/download-url.js +103 -0
- data/vendor/assets/javascripts/highstock/es-modules/mixins/draw-point.js +51 -0
- data/vendor/assets/javascripts/highstock/es-modules/mixins/geometry-circles.js +300 -0
- data/vendor/assets/javascripts/highstock/es-modules/mixins/geometry.js +50 -0
- data/vendor/assets/javascripts/highstock/es-modules/mixins/indicator-required.js +49 -0
- data/vendor/assets/javascripts/highstock/es-modules/mixins/multipe-lines.js +223 -0
- data/vendor/assets/javascripts/highstock/es-modules/mixins/navigation.js +59 -0
- data/vendor/assets/javascripts/highstock/es-modules/mixins/nodes.js +76 -0
- data/vendor/assets/javascripts/highstock/es-modules/mixins/on-series.js +167 -0
- data/vendor/assets/javascripts/highstock/es-modules/mixins/polygon.js +293 -0
- data/vendor/assets/javascripts/highstock/es-modules/mixins/reduce-array.js +53 -0
- data/vendor/assets/javascripts/highstock/es-modules/mixins/tree-series.js +256 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/a11y-i18n.src.js +524 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/annotations-legacy.src.js +1951 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/bellcurve.src.js +173 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/boost-canvas.src.js +732 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/boost.src.js +3730 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/bullet.src.js +361 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/cylinder.src.js +389 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/data.src.js +2417 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/debugger.src.js +109 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/dependency-wheel.src.js +199 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/drag-panes.src.js +624 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/draggable-points.src.js +2625 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/drilldown.src.js +1300 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/export-data.src.js +983 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/exporting.src.js +2149 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/full-screen.src.js +40 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/funnel.src.js +552 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/histogram.src.js +229 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/item-series.src.js +150 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/keyboard-navigation.src.js +1606 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/networkgraph/QuadTree.js +175 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/networkgraph/layouts.js +506 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/networkgraph/networkgraph.src.js +740 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/no-data-to-display.src.js +260 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/offline-exporting.src.js +710 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/oldie-polyfills.src.js +121 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/oldie.src.js +1556 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/overlapping-datalabels.src.js +250 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/parallel-coordinates.src.js +492 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/pareto.src.js +152 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/pattern-fill.src.js +607 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/price-indicator.src.js +149 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/sankey.src.js +809 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/screen-reader.src.js +954 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/series-label.src.js +1042 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/solid-gauge.src.js +486 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/sonification/Earcon.js +184 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/sonification/Instrument.js +582 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/sonification/Timeline.js +702 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/sonification/chartSonify.js +1026 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/sonification/instrumentDefinitions.js +37 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/sonification/musicalFrequencies.js +113 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/sonification/pointSonify.js +385 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/sonification/sonification.js +107 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/sonification/utilities.js +178 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/static-scale.src.js +88 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/stock-tools-bindings.js +1950 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/stock-tools-gui.js +1458 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/streamgraph.src.js +132 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/sunburst.src.js +1041 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/tilemap.src.js +769 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/timeline.src.js +750 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/treemap.src.js +1803 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/variable-pie.src.js +459 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/variwide.src.js +350 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/vector.src.js +354 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/venn.src.js +1192 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/windbarb.src.js +380 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/wordcloud.src.js +1103 -0
- data/vendor/assets/javascripts/highstock/es-modules/modules/xrange.src.js +761 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-3d/Axis.js +669 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-3d/Chart.js +1753 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-3d/Column.js +437 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-3d/Math.js +206 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-3d/Pie.js +207 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-3d/SVGRenderer.js +1002 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-3d/Scatter.js +154 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-3d/Series.js +73 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-3d/VMLRenderer.js +62 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-gantt/ArrowSymbols.js +198 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-gantt/CurrentDateIndicator.js +100 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-gantt/GanttChart.js +140 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-gantt/GanttSeries.js +415 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-gantt/GridAxis.js +961 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-gantt/Pathfinder.js +1298 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-gantt/PathfinderAlgorithms.js +816 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-gantt/Tree.js +158 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-gantt/TreeGrid.js +1003 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-map/ColorAxis.js +1103 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-map/ColorSeriesMixin.js +138 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-map/GeoJSON.js +435 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-map/HeatmapSeries.js +474 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-map/Map.js +477 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-map/MapAxis.js +124 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-map/MapBubbleSeries.js +274 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-map/MapLineSeries.js +143 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-map/MapNavigation.js +357 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-map/MapPointSeries.js +187 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-map/MapPointer.js +132 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-map/MapSeries.js +1294 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-more/AreaRangeSeries.js +725 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-more/AreaSplineRangeSeries.js +98 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-more/BoxPlotSeries.js +617 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-more/BubbleLegend.js +1167 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-more/BubbleSeries.js +661 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-more/ColumnPyramidSeries.js +288 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-more/ColumnRangeSeries.js +278 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-more/ErrorBarSeries.js +172 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-more/GaugeSeries.js +618 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-more/PackedBubbleSeries.js +567 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-more/Pane.js +399 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-more/Polar.js +634 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-more/PolygonSeries.js +151 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-more/RadialAxis.js +685 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts-more/WaterfallSeries.js +765 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts.js +684 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/AreaSeries.js +578 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/AreaSplineSeries.js +122 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/Axis.js +6453 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/BarSeries.js +153 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/CandlestickSeries.js +358 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/Chart.js +2307 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/Color.js +301 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/ColumnSeries.js +1125 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/DataGrouping.js +1115 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/DataLabels.js +1431 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/DateTimeAxis.js +134 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/Dynamics.js +1301 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/FlagsSeries.js +739 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/Globals.js +75 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/Html.js +539 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/Interaction.js +1299 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/Legend.js +1411 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/LogarithmicAxis.js +168 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/MSPointer.js +176 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/Navigator.js +2486 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/OHLCSeries.js +412 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/Options.js +3732 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/OrdinalAxis.js +962 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/PieSeries.js +1328 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/PlotBandSeries.experimental.js +74 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/PlotLineOrBand.js +1061 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/Point.js +681 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/Pointer.js +1332 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/RangeSelector.js +2063 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/Responsive.js +295 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/ScatterSeries.js +278 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/ScrollablePlotArea.js +266 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/Scrollbar.js +1134 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/Series.js +5864 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/SplineSeries.js +267 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/Stacking.js +604 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/StockChart.js +951 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/SvgRenderer.js +5109 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/Tick.js +746 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/Time.js +881 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/Tooltip.js +1318 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/TouchPointer.js +404 -0
- data/vendor/assets/javascripts/highstock/es-modules/parts/Utilities.js +2751 -0
- data/vendor/assets/javascripts/highstock/es-modules/themes/avocado.js +37 -0
- data/vendor/assets/javascripts/highstock/es-modules/themes/dark-blue.js +259 -0
- data/vendor/assets/javascripts/highstock/es-modules/themes/dark-green.js +261 -0
- data/vendor/assets/javascripts/highstock/es-modules/themes/dark-unica.js +220 -0
- data/vendor/assets/javascripts/highstock/es-modules/themes/gray.js +267 -0
- data/vendor/assets/javascripts/highstock/es-modules/themes/grid-light.js +81 -0
- data/vendor/assets/javascripts/highstock/es-modules/themes/grid.js +110 -0
- data/vendor/assets/javascripts/highstock/es-modules/themes/sand-signika.js +111 -0
- data/vendor/assets/javascripts/highstock/es-modules/themes/skies.js +100 -0
- data/vendor/assets/javascripts/highstock/es-modules/themes/sunset.js +36 -0
- data/vendor/assets/javascripts/highstock/highcharts-3d.js +85 -0
- data/vendor/assets/javascripts/highstock/highcharts-3d.js.map +1 -0
- data/vendor/assets/javascripts/highstock/highcharts-more.js +101 -0
- data/vendor/assets/javascripts/highstock/highcharts-more.js.map +1 -0
- data/vendor/assets/javascripts/highstock/highstock.js +583 -0
- data/vendor/assets/javascripts/highstock/highstock.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/acceleration-bands.js +16 -0
- data/vendor/assets/javascripts/highstock/indicators/acceleration-bands.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/acceleration-bands.src.js +448 -0
- data/vendor/assets/javascripts/highstock/indicators/accumulation-distribution.js +12 -0
- data/vendor/assets/javascripts/highstock/indicators/accumulation-distribution.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/accumulation-distribution.src.js +156 -0
- data/vendor/assets/javascripts/highstock/indicators/ao.js +13 -0
- data/vendor/assets/javascripts/highstock/indicators/ao.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/ao.src.js +233 -0
- data/vendor/assets/javascripts/highstock/indicators/apo.js +13 -0
- data/vendor/assets/javascripts/highstock/indicators/apo.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/apo.src.js +223 -0
- data/vendor/assets/javascripts/highstock/indicators/aroon-oscillator.js +15 -0
- data/vendor/assets/javascripts/highstock/indicators/aroon-oscillator.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/aroon-oscillator.src.js +426 -0
- data/vendor/assets/javascripts/highstock/indicators/aroon.js +16 -0
- data/vendor/assets/javascripts/highstock/indicators/aroon.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/aroon.src.js +423 -0
- data/vendor/assets/javascripts/highstock/indicators/atr.js +12 -0
- data/vendor/assets/javascripts/highstock/indicators/atr.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/atr.src.js +178 -0
- data/vendor/assets/javascripts/highstock/indicators/bollinger-bands.js +16 -0
- data/vendor/assets/javascripts/highstock/indicators/bollinger-bands.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/bollinger-bands.src.js +458 -0
- data/vendor/assets/javascripts/highstock/indicators/cci.js +12 -0
- data/vendor/assets/javascripts/highstock/indicators/cci.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/cci.src.js +158 -0
- data/vendor/assets/javascripts/highstock/indicators/chaikin.js +15 -0
- data/vendor/assets/javascripts/highstock/indicators/chaikin.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/chaikin.src.js +370 -0
- data/vendor/assets/javascripts/highstock/indicators/cmf.js +12 -0
- data/vendor/assets/javascripts/highstock/indicators/cmf.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/cmf.src.js +273 -0
- data/vendor/assets/javascripts/highstock/indicators/dema.js +13 -0
- data/vendor/assets/javascripts/highstock/indicators/dema.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/dema.src.js +266 -0
- data/vendor/assets/javascripts/highstock/indicators/dpo.js +12 -0
- data/vendor/assets/javascripts/highstock/indicators/dpo.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/dpo.src.js +166 -0
- data/vendor/assets/javascripts/highstock/indicators/ema.js +12 -0
- data/vendor/assets/javascripts/highstock/indicators/ema.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/ema.src.js +193 -0
- data/vendor/assets/javascripts/highstock/indicators/ichimoku-kinko-hyo.js +22 -0
- data/vendor/assets/javascripts/highstock/indicators/ichimoku-kinko-hyo.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/ichimoku-kinko-hyo.src.js +877 -0
- data/vendor/assets/javascripts/highstock/indicators/indicators-all.js +117 -0
- data/vendor/assets/javascripts/highstock/indicators/indicators-all.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/indicators-all.src.js +9389 -0
- data/vendor/assets/javascripts/highstock/indicators/indicators.js +17 -0
- data/vendor/assets/javascripts/highstock/indicators/indicators.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/indicators.src.js +500 -0
- data/vendor/assets/javascripts/highstock/indicators/keltner-channels.js +16 -0
- data/vendor/assets/javascripts/highstock/indicators/keltner-channels.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/keltner-channels.src.js +442 -0
- data/vendor/assets/javascripts/highstock/indicators/macd.js +18 -0
- data/vendor/assets/javascripts/highstock/indicators/macd.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/macd.src.js +444 -0
- data/vendor/assets/javascripts/highstock/indicators/mfi.js +13 -0
- data/vendor/assets/javascripts/highstock/indicators/mfi.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/mfi.src.js +225 -0
- data/vendor/assets/javascripts/highstock/indicators/momentum.js +12 -0
- data/vendor/assets/javascripts/highstock/indicators/momentum.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/momentum.src.js +146 -0
- data/vendor/assets/javascripts/highstock/indicators/natr.js +12 -0
- data/vendor/assets/javascripts/highstock/indicators/natr.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/natr.src.js +101 -0
- data/vendor/assets/javascripts/highstock/indicators/pivot-points.js +16 -0
- data/vendor/assets/javascripts/highstock/indicators/pivot-points.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/pivot-points.src.js +387 -0
- data/vendor/assets/javascripts/highstock/indicators/ppo.js +13 -0
- data/vendor/assets/javascripts/highstock/indicators/ppo.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/ppo.src.js +227 -0
- data/vendor/assets/javascripts/highstock/indicators/price-channel.js +16 -0
- data/vendor/assets/javascripts/highstock/indicators/price-channel.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/price-channel.src.js +450 -0
- data/vendor/assets/javascripts/highstock/indicators/price-envelopes.js +15 -0
- data/vendor/assets/javascripts/highstock/indicators/price-envelopes.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/price-envelopes.src.js +278 -0
- data/vendor/assets/javascripts/highstock/indicators/psar.js +13 -0
- data/vendor/assets/javascripts/highstock/indicators/psar.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/psar.src.js +334 -0
- data/vendor/assets/javascripts/highstock/indicators/regressions.js +14 -0
- data/vendor/assets/javascripts/highstock/indicators/regressions.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/regressions.src.js +454 -0
- data/vendor/assets/javascripts/highstock/indicators/roc.js +12 -0
- data/vendor/assets/javascripts/highstock/indicators/roc.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/roc.src.js +176 -0
- data/vendor/assets/javascripts/highstock/indicators/rsi.js +12 -0
- data/vendor/assets/javascripts/highstock/indicators/rsi.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/rsi.src.js +190 -0
- data/vendor/assets/javascripts/highstock/indicators/stochastic.js +17 -0
- data/vendor/assets/javascripts/highstock/indicators/stochastic.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/stochastic.src.js +494 -0
- data/vendor/assets/javascripts/highstock/indicators/supertrend.js +17 -0
- data/vendor/assets/javascripts/highstock/indicators/supertrend.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/supertrend.src.js +571 -0
- data/vendor/assets/javascripts/highstock/indicators/tema.js +14 -0
- data/vendor/assets/javascripts/highstock/indicators/tema.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/tema.src.js +322 -0
- data/vendor/assets/javascripts/highstock/indicators/trix.js +12 -0
- data/vendor/assets/javascripts/highstock/indicators/trix.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/trix.src.js +171 -0
- data/vendor/assets/javascripts/highstock/indicators/volume-by-price.js +21 -0
- data/vendor/assets/javascripts/highstock/indicators/volume-by-price.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/volume-by-price.src.js +698 -0
- data/vendor/assets/javascripts/highstock/indicators/vwap.js +12 -0
- data/vendor/assets/javascripts/highstock/indicators/vwap.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/vwap.src.js +216 -0
- data/vendor/assets/javascripts/highstock/indicators/williams-r.js +13 -0
- data/vendor/assets/javascripts/highstock/indicators/williams-r.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/williams-r.src.js +207 -0
- data/vendor/assets/javascripts/highstock/indicators/wma.js +12 -0
- data/vendor/assets/javascripts/highstock/indicators/wma.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/wma.src.js +173 -0
- data/vendor/assets/javascripts/highstock/indicators/zigzag.js +13 -0
- data/vendor/assets/javascripts/highstock/indicators/zigzag.js.map +1 -0
- data/vendor/assets/javascripts/highstock/indicators/zigzag.src.js +248 -0
- data/vendor/assets/javascripts/highstock/lib/canvg.js +130 -0
- data/vendor/assets/javascripts/highstock/lib/canvg.src.js +3073 -0
- data/vendor/assets/javascripts/highstock/lib/jspdf.js +283 -0
- data/vendor/assets/javascripts/highstock/lib/jspdf.src.js +21627 -0
- data/vendor/assets/javascripts/highstock/lib/rgbcolor.js +17 -0
- data/vendor/assets/javascripts/highstock/lib/rgbcolor.src.js +299 -0
- data/vendor/assets/javascripts/highstock/lib/svg2pdf.js +38 -0
- data/vendor/assets/javascripts/highstock/lib/svg2pdf.src.js +4390 -0
- data/vendor/assets/javascripts/highstock/modules/accessibility.js +73 -0
- data/vendor/assets/javascripts/highstock/modules/accessibility.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/accessibility.src.js +3103 -0
- data/vendor/assets/javascripts/highstock/modules/annotations-advanced.js +132 -0
- data/vendor/assets/javascripts/highstock/modules/annotations-advanced.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/annotations-advanced.src.js +8230 -0
- data/vendor/assets/javascripts/highstock/modules/annotations.js +94 -0
- data/vendor/assets/javascripts/highstock/modules/annotations.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/annotations.src.js +6001 -0
- data/vendor/assets/javascripts/highstock/modules/arrow-symbols.js +11 -0
- data/vendor/assets/javascripts/highstock/modules/arrow-symbols.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/arrow-symbols.src.js +225 -0
- data/vendor/assets/javascripts/highstock/modules/boost-canvas.js +23 -0
- data/vendor/assets/javascripts/highstock/modules/boost-canvas.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/boost-canvas.src.js +756 -0
- data/vendor/assets/javascripts/highstock/modules/boost.js +65 -0
- data/vendor/assets/javascripts/highstock/modules/boost.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/boost.src.js +3752 -0
- data/vendor/assets/javascripts/highstock/modules/bullet.js +14 -0
- data/vendor/assets/javascripts/highstock/modules/bullet.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/bullet.src.js +388 -0
- data/vendor/assets/javascripts/highstock/modules/current-date-indicator.js +11 -0
- data/vendor/assets/javascripts/highstock/modules/current-date-indicator.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/current-date-indicator.src.js +127 -0
- data/vendor/assets/javascripts/highstock/modules/cylinder.js +14 -0
- data/vendor/assets/javascripts/highstock/modules/cylinder.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/cylinder.src.js +413 -0
- data/vendor/assets/javascripts/highstock/modules/data.js +37 -0
- data/vendor/assets/javascripts/highstock/modules/data.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/data.src.js +2565 -0
- data/vendor/assets/javascripts/highstock/modules/datagrouping.js +25 -0
- data/vendor/assets/javascripts/highstock/modules/datagrouping.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/datagrouping.src.js +1140 -0
- data/vendor/assets/javascripts/highstock/modules/debugger.js +28 -0
- data/vendor/assets/javascripts/highstock/modules/debugger.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/debugger.src.js +267 -0
- data/vendor/assets/javascripts/highstock/modules/dependency-wheel.js +15 -0
- data/vendor/assets/javascripts/highstock/modules/dependency-wheel.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/dependency-wheel.src.js +301 -0
- data/vendor/assets/javascripts/highstock/modules/drag-panes.js +18 -0
- data/vendor/assets/javascripts/highstock/modules/drag-panes.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/drag-panes.src.js +649 -0
- data/vendor/assets/javascripts/highstock/modules/draggable-points.js +40 -0
- data/vendor/assets/javascripts/highstock/modules/draggable-points.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/draggable-points.src.js +2650 -0
- data/vendor/assets/javascripts/highstock/modules/drilldown.js +29 -0
- data/vendor/assets/javascripts/highstock/modules/drilldown.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/drilldown.src.js +1321 -0
- data/vendor/assets/javascripts/highstock/modules/export-data.js +27 -0
- data/vendor/assets/javascripts/highstock/modules/export-data.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/export-data.src.js +1234 -0
- data/vendor/assets/javascripts/highstock/modules/exporting.js +35 -0
- data/vendor/assets/javascripts/highstock/modules/exporting.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/exporting.src.js +2233 -0
- data/vendor/assets/javascripts/highstock/modules/full-screen.js +11 -0
- data/vendor/assets/javascripts/highstock/modules/full-screen.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/full-screen.src.js +68 -0
- data/vendor/assets/javascripts/highstock/modules/funnel.js +14 -0
- data/vendor/assets/javascripts/highstock/modules/funnel.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/funnel.src.js +576 -0
- data/vendor/assets/javascripts/highstock/modules/grid-axis.js +23 -0
- data/vendor/assets/javascripts/highstock/modules/grid-axis.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/grid-axis.src.js +988 -0
- data/vendor/assets/javascripts/highstock/modules/heatmap.js +28 -0
- data/vendor/assets/javascripts/highstock/modules/heatmap.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/heatmap.src.js +1731 -0
- data/vendor/assets/javascripts/highstock/modules/histogram-bellcurve.js +16 -0
- data/vendor/assets/javascripts/highstock/modules/histogram-bellcurve.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/histogram-bellcurve.src.js +570 -0
- data/vendor/assets/javascripts/highstock/modules/item-series.js +13 -0
- data/vendor/assets/javascripts/highstock/modules/item-series.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/item-series.src.js +176 -0
- data/vendor/assets/javascripts/highstock/modules/networkgraph.js +31 -0
- data/vendor/assets/javascripts/highstock/modules/networkgraph.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/networkgraph.src.js +1348 -0
- data/vendor/assets/javascripts/highstock/modules/no-data-to-display.js +13 -0
- data/vendor/assets/javascripts/highstock/modules/no-data-to-display.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/no-data-to-display.src.js +285 -0
- data/vendor/assets/javascripts/highstock/modules/offline-exporting.js +22 -0
- data/vendor/assets/javascripts/highstock/modules/offline-exporting.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/offline-exporting.src.js +838 -0
- data/vendor/assets/javascripts/highstock/modules/oldie-polyfills.js +13 -0
- data/vendor/assets/javascripts/highstock/modules/oldie-polyfills.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/oldie-polyfills.src.js +150 -0
- data/vendor/assets/javascripts/highstock/modules/oldie.js +35 -0
- data/vendor/assets/javascripts/highstock/modules/oldie.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/oldie.src.js +1582 -0
- data/vendor/assets/javascripts/highstock/modules/overlapping-datalabels.js +9 -0
- data/vendor/assets/javascripts/highstock/modules/overlapping-datalabels.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/overlapping-datalabels.src.js +22 -0
- data/vendor/assets/javascripts/highstock/modules/parallel-coordinates.js +18 -0
- data/vendor/assets/javascripts/highstock/modules/parallel-coordinates.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/parallel-coordinates.src.js +517 -0
- data/vendor/assets/javascripts/highstock/modules/pareto.js +14 -0
- data/vendor/assets/javascripts/highstock/modules/pareto.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/pareto.src.js +327 -0
- data/vendor/assets/javascripts/highstock/modules/pathfinder.js +34 -0
- data/vendor/assets/javascripts/highstock/modules/pathfinder.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/pathfinder.src.js +2336 -0
- data/vendor/assets/javascripts/highstock/modules/pattern-fill.js +21 -0
- data/vendor/assets/javascripts/highstock/modules/pattern-fill.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/pattern-fill.src.js +634 -0
- data/vendor/assets/javascripts/highstock/modules/price-indicator.js +13 -0
- data/vendor/assets/javascripts/highstock/modules/price-indicator.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/price-indicator.src.js +176 -0
- data/vendor/assets/javascripts/highstock/modules/sankey.js +22 -0
- data/vendor/assets/javascripts/highstock/modules/sankey.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/sankey.src.js +911 -0
- data/vendor/assets/javascripts/highstock/modules/series-label.js +23 -0
- data/vendor/assets/javascripts/highstock/modules/series-label.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/series-label.src.js +1065 -0
- data/vendor/assets/javascripts/highstock/modules/solid-gauge.js +15 -0
- data/vendor/assets/javascripts/highstock/modules/solid-gauge.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/solid-gauge.src.js +510 -0
- data/vendor/assets/javascripts/highstock/modules/sonification.js +53 -0
- data/vendor/assets/javascripts/highstock/modules/sonification.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/sonification.src.js +3341 -0
- data/vendor/assets/javascripts/highstock/modules/static-scale.js +12 -0
- data/vendor/assets/javascripts/highstock/modules/static-scale.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/static-scale.src.js +114 -0
- data/vendor/assets/javascripts/highstock/modules/stock-tools.js +65 -0
- data/vendor/assets/javascripts/highstock/modules/stock-tools.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/stock-tools.src.js +3437 -0
- data/vendor/assets/javascripts/highstock/modules/stock.js +151 -0
- data/vendor/assets/javascripts/highstock/modules/stock.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/stock.src.js +10907 -0
- data/vendor/assets/javascripts/highstock/modules/streamgraph.js +10 -0
- data/vendor/assets/javascripts/highstock/modules/streamgraph.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/streamgraph.src.js +158 -0
- data/vendor/assets/javascripts/highstock/modules/sunburst.js +52 -0
- data/vendor/assets/javascripts/highstock/modules/sunburst.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/sunburst.src.js +3174 -0
- data/vendor/assets/javascripts/highstock/modules/tilemap.js +26 -0
- data/vendor/assets/javascripts/highstock/modules/tilemap.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/tilemap.src.js +1402 -0
- data/vendor/assets/javascripts/highstock/modules/timeline.js +23 -0
- data/vendor/assets/javascripts/highstock/modules/timeline.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/timeline.src.js +778 -0
- data/vendor/assets/javascripts/highstock/modules/treegrid.js +50 -0
- data/vendor/assets/javascripts/highstock/modules/treegrid.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/treegrid.src.js +2917 -0
- data/vendor/assets/javascripts/highstock/modules/treemap.js +39 -0
- data/vendor/assets/javascripts/highstock/modules/treemap.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/treemap.src.js +2083 -0
- data/vendor/assets/javascripts/highstock/modules/variable-pie.js +16 -0
- data/vendor/assets/javascripts/highstock/modules/variable-pie.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/variable-pie.src.js +485 -0
- data/vendor/assets/javascripts/highstock/modules/variwide.js +15 -0
- data/vendor/assets/javascripts/highstock/modules/variwide.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/variwide.src.js +376 -0
- data/vendor/assets/javascripts/highstock/modules/vector.js +13 -0
- data/vendor/assets/javascripts/highstock/modules/vector.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/vector.src.js +381 -0
- data/vendor/assets/javascripts/highstock/modules/venn.js +30 -0
- data/vendor/assets/javascripts/highstock/modules/venn.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/venn.src.js +1624 -0
- data/vendor/assets/javascripts/highstock/modules/windbarb.js +17 -0
- data/vendor/assets/javascripts/highstock/modules/windbarb.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/windbarb.src.js +574 -0
- data/vendor/assets/javascripts/highstock/modules/wordcloud.js +25 -0
- data/vendor/assets/javascripts/highstock/modules/wordcloud.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/wordcloud.src.js +1475 -0
- data/vendor/assets/javascripts/highstock/modules/xrange.js +20 -0
- data/vendor/assets/javascripts/highstock/modules/xrange.js.map +1 -0
- data/vendor/assets/javascripts/highstock/modules/xrange.src.js +788 -0
- data/vendor/assets/javascripts/highstock/themes/avocado.js +9 -0
- data/vendor/assets/javascripts/highstock/themes/avocado.js.map +1 -0
- data/vendor/assets/javascripts/highstock/themes/avocado.src.js +63 -0
- data/vendor/assets/javascripts/highstock/themes/dark-blue.js +15 -0
- data/vendor/assets/javascripts/highstock/themes/dark-blue.js.map +1 -0
- data/vendor/assets/javascripts/highstock/themes/dark-blue.src.js +285 -0
- data/vendor/assets/javascripts/highstock/themes/dark-green.js +15 -0
- data/vendor/assets/javascripts/highstock/themes/dark-green.js.map +1 -0
- data/vendor/assets/javascripts/highstock/themes/dark-green.src.js +287 -0
- data/vendor/assets/javascripts/highstock/themes/dark-unica.js +14 -0
- data/vendor/assets/javascripts/highstock/themes/dark-unica.js.map +1 -0
- data/vendor/assets/javascripts/highstock/themes/dark-unica.src.js +246 -0
- data/vendor/assets/javascripts/highstock/themes/gray.js +15 -0
- data/vendor/assets/javascripts/highstock/themes/gray.js.map +1 -0
- data/vendor/assets/javascripts/highstock/themes/gray.src.js +293 -0
- data/vendor/assets/javascripts/highstock/themes/grid-light.js +11 -0
- data/vendor/assets/javascripts/highstock/themes/grid-light.js.map +1 -0
- data/vendor/assets/javascripts/highstock/themes/grid-light.src.js +107 -0
- data/vendor/assets/javascripts/highstock/themes/grid.js +11 -0
- data/vendor/assets/javascripts/highstock/themes/grid.js.map +1 -0
- data/vendor/assets/javascripts/highstock/themes/grid.src.js +136 -0
- data/vendor/assets/javascripts/highstock/themes/sand-signika.js +11 -0
- data/vendor/assets/javascripts/highstock/themes/sand-signika.js.map +1 -0
- data/vendor/assets/javascripts/highstock/themes/sand-signika.src.js +137 -0
- data/vendor/assets/javascripts/highstock/themes/skies.js +11 -0
- data/vendor/assets/javascripts/highstock/themes/skies.js.map +1 -0
- data/vendor/assets/javascripts/highstock/themes/skies.src.js +126 -0
- data/vendor/assets/javascripts/highstock/themes/sunset.js +9 -0
- data/vendor/assets/javascripts/highstock/themes/sunset.js.map +1 -0
- data/vendor/assets/javascripts/highstock/themes/sunset.src.js +62 -0
- metadata +781 -0
@@ -0,0 +1,184 @@
|
|
1
|
+
/* *
|
2
|
+
*
|
3
|
+
* (c) 2009-2019 Øystein Moseng
|
4
|
+
*
|
5
|
+
* Earcons for the sonification module in Highcharts.
|
6
|
+
*
|
7
|
+
* License: www.highcharts.com/license
|
8
|
+
*
|
9
|
+
* */
|
10
|
+
|
11
|
+
'use strict';
|
12
|
+
|
13
|
+
import H from '../../parts/Globals.js';
|
14
|
+
|
15
|
+
/**
|
16
|
+
* Define an Instrument and the options for playing it.
|
17
|
+
*
|
18
|
+
* @requires module:modules/sonification
|
19
|
+
*
|
20
|
+
* @interface Highcharts.EarconInstrument
|
21
|
+
*//**
|
22
|
+
* An instrument instance or the name of the instrument in the
|
23
|
+
* Highcharts.sonification.instruments map.
|
24
|
+
* @name Highcharts.EarconInstrument#instrument
|
25
|
+
* @type {Highcharts.Instrument|String}
|
26
|
+
*//**
|
27
|
+
* The options to pass to Instrument.play.
|
28
|
+
* @name Highcharts.EarconInstrument#playOptions
|
29
|
+
* @type {object}
|
30
|
+
*/
|
31
|
+
|
32
|
+
|
33
|
+
/**
|
34
|
+
* Options for an Earcon.
|
35
|
+
*
|
36
|
+
* @requires module:modules/sonification
|
37
|
+
*
|
38
|
+
* @interface Highcharts.EarconOptionsObject
|
39
|
+
*//**
|
40
|
+
* The instruments and their options defining this earcon.
|
41
|
+
* @name Highcharts.EarconOptionsObject#instruments
|
42
|
+
* @type {Array<Highcharts.EarconInstrument>}
|
43
|
+
*//**
|
44
|
+
* The unique ID of the Earcon. Generated if not supplied.
|
45
|
+
* @name Highcharts.EarconOptionsObject#id
|
46
|
+
* @type {string|undefined}
|
47
|
+
*//**
|
48
|
+
* Global panning of all instruments. Overrides all panning on individual
|
49
|
+
* instruments. Can be a number between -1 and 1.
|
50
|
+
* @name Highcharts.EarconOptionsObject#pan
|
51
|
+
* @type {number|undefined}
|
52
|
+
*//**
|
53
|
+
* Master volume for all instruments. Volume settings on individual instruments
|
54
|
+
* can still be used for relative volume between the instruments. This setting
|
55
|
+
* does not affect volumes set by functions in individual instruments. Can be a
|
56
|
+
* number between 0 and 1. Defaults to 1.
|
57
|
+
* @name Highcharts.EarconOptionsObject#volume
|
58
|
+
* @type {number|undefined}
|
59
|
+
*//**
|
60
|
+
* Callback function to call when earcon has finished playing.
|
61
|
+
* @name Highcharts.EarconOptionsObject#onEnd
|
62
|
+
* @type {Function|undefined}
|
63
|
+
*/
|
64
|
+
|
65
|
+
/**
|
66
|
+
* The Earcon class. Earcon objects represent a certain sound consisting of
|
67
|
+
* one or more instruments playing a predefined sound.
|
68
|
+
*
|
69
|
+
* @sample highcharts/sonification/earcon/
|
70
|
+
* Using earcons directly
|
71
|
+
*
|
72
|
+
* @requires module:modules/sonification
|
73
|
+
*
|
74
|
+
* @class
|
75
|
+
* @name Highcharts.Earcon
|
76
|
+
*
|
77
|
+
* @param {Highcharts.EarconOptionsObject} options
|
78
|
+
* Options for the Earcon instance.
|
79
|
+
*/
|
80
|
+
function Earcon(options) {
|
81
|
+
this.init(options || {});
|
82
|
+
}
|
83
|
+
Earcon.prototype.init = function (options) {
|
84
|
+
this.options = options;
|
85
|
+
if (!this.options.id) {
|
86
|
+
this.options.id = this.id = H.uniqueKey();
|
87
|
+
}
|
88
|
+
this.instrumentsPlaying = {};
|
89
|
+
};
|
90
|
+
|
91
|
+
|
92
|
+
/**
|
93
|
+
* Play the earcon, optionally overriding init options.
|
94
|
+
*
|
95
|
+
* @sample highcharts/sonification/earcon/
|
96
|
+
* Using earcons directly
|
97
|
+
*
|
98
|
+
* @function Highcharts.Earcon#sonify
|
99
|
+
*
|
100
|
+
* @param {Highcharts.EarconOptionsObject} options
|
101
|
+
* Override existing options.
|
102
|
+
*/
|
103
|
+
Earcon.prototype.sonify = function (options) {
|
104
|
+
var playOptions = H.merge(this.options, options);
|
105
|
+
|
106
|
+
// Find master volume/pan settings
|
107
|
+
var masterVolume = H.pick(playOptions.volume, 1),
|
108
|
+
masterPan = playOptions.pan,
|
109
|
+
earcon = this,
|
110
|
+
playOnEnd = options && options.onEnd,
|
111
|
+
masterOnEnd = earcon.options.onEnd;
|
112
|
+
|
113
|
+
// Go through the instruments and play them
|
114
|
+
playOptions.instruments.forEach(function (opts) {
|
115
|
+
var instrument = typeof opts.instrument === 'string' ?
|
116
|
+
H.sonification.instruments[opts.instrument] : opts.instrument,
|
117
|
+
instrumentOpts = H.merge(opts.playOptions),
|
118
|
+
instrOnEnd,
|
119
|
+
instrumentCopy,
|
120
|
+
copyId;
|
121
|
+
|
122
|
+
if (instrument && instrument.play) {
|
123
|
+
if (opts.playOptions) {
|
124
|
+
// Handle master pan/volume
|
125
|
+
if (typeof opts.playOptions.volume !== 'function') {
|
126
|
+
instrumentOpts.volume = H.pick(masterVolume, 1) *
|
127
|
+
H.pick(opts.playOptions.volume, 1);
|
128
|
+
}
|
129
|
+
instrumentOpts.pan = H.pick(masterPan, instrumentOpts.pan);
|
130
|
+
|
131
|
+
// Handle onEnd
|
132
|
+
instrOnEnd = instrumentOpts.onEnd;
|
133
|
+
instrumentOpts.onEnd = function () {
|
134
|
+
delete earcon.instrumentsPlaying[copyId];
|
135
|
+
if (instrOnEnd) {
|
136
|
+
instrOnEnd.apply(this, arguments);
|
137
|
+
}
|
138
|
+
if (!Object.keys(earcon.instrumentsPlaying).length) {
|
139
|
+
if (playOnEnd) {
|
140
|
+
playOnEnd.apply(this, arguments);
|
141
|
+
}
|
142
|
+
if (masterOnEnd) {
|
143
|
+
masterOnEnd.apply(this, arguments);
|
144
|
+
}
|
145
|
+
}
|
146
|
+
};
|
147
|
+
|
148
|
+
// Play the instrument. Use a copy so we can play multiple at
|
149
|
+
// the same time.
|
150
|
+
instrumentCopy = instrument.copy();
|
151
|
+
copyId = instrumentCopy.id;
|
152
|
+
earcon.instrumentsPlaying[copyId] = instrumentCopy;
|
153
|
+
instrumentCopy.play(instrumentOpts);
|
154
|
+
}
|
155
|
+
} else {
|
156
|
+
H.error(30);
|
157
|
+
}
|
158
|
+
});
|
159
|
+
};
|
160
|
+
|
161
|
+
|
162
|
+
/**
|
163
|
+
* Cancel any current sonification of the Earcon. Calls onEnd functions.
|
164
|
+
*
|
165
|
+
* @function Highcharts.Earcon#cancelSonify
|
166
|
+
*
|
167
|
+
* @param {boolean} [fadeOut=false]
|
168
|
+
* Whether or not to fade out as we stop. If false, the earcon is
|
169
|
+
* cancelled synchronously.
|
170
|
+
*/
|
171
|
+
Earcon.prototype.cancelSonify = function (fadeOut) {
|
172
|
+
var playing = this.instrumentsPlaying,
|
173
|
+
instrIds = playing && Object.keys(playing);
|
174
|
+
|
175
|
+
if (instrIds && instrIds.length) {
|
176
|
+
instrIds.forEach(function (instr) {
|
177
|
+
playing[instr].stop(!fadeOut, null, 'cancelled');
|
178
|
+
});
|
179
|
+
this.instrumentsPlaying = {};
|
180
|
+
}
|
181
|
+
};
|
182
|
+
|
183
|
+
|
184
|
+
export default Earcon;
|
@@ -0,0 +1,582 @@
|
|
1
|
+
/* *
|
2
|
+
*
|
3
|
+
* (c) 2009-2019 Øystein Moseng
|
4
|
+
*
|
5
|
+
* Instrument class for sonification module.
|
6
|
+
*
|
7
|
+
* License: www.highcharts.com/license
|
8
|
+
*
|
9
|
+
* */
|
10
|
+
|
11
|
+
|
12
|
+
/**
|
13
|
+
* A set of options for the Instrument class.
|
14
|
+
*
|
15
|
+
* @requires module:modules/sonification
|
16
|
+
*
|
17
|
+
* @interface Highcharts.InstrumentOptionsObject
|
18
|
+
*//**
|
19
|
+
* The type of instrument. Currently only `oscillator` is supported. Defaults
|
20
|
+
* to `oscillator`.
|
21
|
+
* @name Highcharts.InstrumentOptionsObject#type
|
22
|
+
* @type {string|undefined}
|
23
|
+
*//**
|
24
|
+
* The unique ID of the instrument. Generated if not supplied.
|
25
|
+
* @name Highcharts.InstrumentOptionsObject#id
|
26
|
+
* @type {string|undefined}
|
27
|
+
*//**
|
28
|
+
* When using functions to determine frequency or other parameters during
|
29
|
+
* playback, this options specifies how often to call the callback functions.
|
30
|
+
* Number given in milliseconds. Defaults to 20.
|
31
|
+
* @name Highcharts.InstrumentOptionsObject#playCallbackInterval
|
32
|
+
* @type {number|undefined}
|
33
|
+
*//**
|
34
|
+
* A list of allowed frequencies for this instrument. If trying to play a
|
35
|
+
* frequency not on this list, the closest frequency will be used. Set to `null`
|
36
|
+
* to allow all frequencies to be used. Defaults to `null`.
|
37
|
+
* @name Highcharts.InstrumentOptionsObject#allowedFrequencies
|
38
|
+
* @type {Array<number>|undefined}
|
39
|
+
*//**
|
40
|
+
* Options specific to oscillator instruments.
|
41
|
+
* @name Highcharts.InstrumentOptionsObject#oscillator
|
42
|
+
* @type {Highcharts.OscillatorOptionsObject|undefined}
|
43
|
+
*/
|
44
|
+
|
45
|
+
|
46
|
+
/**
|
47
|
+
* Options for playing an instrument.
|
48
|
+
*
|
49
|
+
* @requires module:modules/sonification
|
50
|
+
*
|
51
|
+
* @interface Highcharts.InstrumentPlayOptionsObject
|
52
|
+
*//**
|
53
|
+
* The frequency of the note to play. Can be a fixed number, or a function. The
|
54
|
+
* function receives one argument: the relative time of the note playing (0
|
55
|
+
* being the start, and 1 being the end of the note). It should return the
|
56
|
+
* frequency number for each point in time. The poll interval of this function
|
57
|
+
* is specified by the Instrument.playCallbackInterval option.
|
58
|
+
* @name Highcharts.InstrumentPlayOptionsObject#frequency
|
59
|
+
* @type {number|Function}
|
60
|
+
*//**
|
61
|
+
* The duration of the note in milliseconds.
|
62
|
+
* @name Highcharts.InstrumentPlayOptionsObject#duration
|
63
|
+
* @type {number}
|
64
|
+
*//**
|
65
|
+
* The minimum frequency to allow. If the instrument has a set of allowed
|
66
|
+
* frequencies, the closest frequency is used by default. Use this option to
|
67
|
+
* stop too low frequencies from being used.
|
68
|
+
* @name Highcharts.InstrumentPlayOptionsObject#minFrequency
|
69
|
+
* @type {number|undefined}
|
70
|
+
*//**
|
71
|
+
* The maximum frequency to allow. If the instrument has a set of allowed
|
72
|
+
* frequencies, the closest frequency is used by default. Use this option to
|
73
|
+
* stop too high frequencies from being used.
|
74
|
+
* @name Highcharts.InstrumentPlayOptionsObject#maxFrequency
|
75
|
+
* @type {number|undefined}
|
76
|
+
*//**
|
77
|
+
* The volume of the instrument. Can be a fixed number between 0 and 1, or a
|
78
|
+
* function. The function receives one argument: the relative time of the note
|
79
|
+
* playing (0 being the start, and 1 being the end of the note). It should
|
80
|
+
* return the volume for each point in time. The poll interval of this function
|
81
|
+
* is specified by the Instrument.playCallbackInterval option. Defaults to 1.
|
82
|
+
* @name Highcharts.InstrumentPlayOptionsObject#volume
|
83
|
+
* @type {number|Function|undefined}
|
84
|
+
*//**
|
85
|
+
* The panning of the instrument. Can be a fixed number between -1 and 1, or a
|
86
|
+
* function. The function receives one argument: the relative time of the note
|
87
|
+
* playing (0 being the start, and 1 being the end of the note). It should
|
88
|
+
* return the panning value for each point in time. The poll interval of this
|
89
|
+
* function is specified by the Instrument.playCallbackInterval option.
|
90
|
+
* Defaults to 0.
|
91
|
+
* @name Highcharts.InstrumentPlayOptionsObject#pan
|
92
|
+
* @type {number|Function|undefined}
|
93
|
+
*//**
|
94
|
+
* Callback function to be called when the play is completed.
|
95
|
+
* @name Highcharts.InstrumentPlayOptionsObject#onEnd
|
96
|
+
* @type {Function|undefined}
|
97
|
+
*/
|
98
|
+
|
99
|
+
|
100
|
+
/**
|
101
|
+
* @requires module:modules/sonification
|
102
|
+
*
|
103
|
+
* @interface Highcharts.OscillatorOptionsObject
|
104
|
+
*//**
|
105
|
+
* The waveform shape to use for oscillator instruments. Defaults to `sine`.
|
106
|
+
* @name Highcharts.OscillatorOptionsObject#waveformShape
|
107
|
+
* @type {string|undefined}
|
108
|
+
*/
|
109
|
+
|
110
|
+
|
111
|
+
'use strict';
|
112
|
+
|
113
|
+
import H from '../../parts/Globals.js';
|
114
|
+
|
115
|
+
// Default options for Instrument constructor
|
116
|
+
var defaultOptions = {
|
117
|
+
type: 'oscillator',
|
118
|
+
playCallbackInterval: 20,
|
119
|
+
oscillator: {
|
120
|
+
waveformShape: 'sine'
|
121
|
+
}
|
122
|
+
};
|
123
|
+
|
124
|
+
|
125
|
+
/**
|
126
|
+
* The Instrument class. Instrument objects represent an instrument capable of
|
127
|
+
* playing a certain pitch for a specified duration.
|
128
|
+
*
|
129
|
+
* @sample highcharts/sonification/instrument/
|
130
|
+
* Using Instruments directly
|
131
|
+
* @sample highcharts/sonification/instrument-advanced/
|
132
|
+
* Using callbacks for instrument parameters
|
133
|
+
*
|
134
|
+
* @requires module:modules/sonification
|
135
|
+
*
|
136
|
+
* @class
|
137
|
+
* @name Highcharts.Instrument
|
138
|
+
*
|
139
|
+
* @param {Highcharts.InstrumentOptionsObject} options
|
140
|
+
* Options for the instrument instance.
|
141
|
+
*/
|
142
|
+
function Instrument(options) {
|
143
|
+
this.init(options);
|
144
|
+
}
|
145
|
+
Instrument.prototype.init = function (options) {
|
146
|
+
if (!this.initAudioContext()) {
|
147
|
+
H.error(29);
|
148
|
+
return;
|
149
|
+
}
|
150
|
+
this.options = H.merge(defaultOptions, options);
|
151
|
+
this.id = this.options.id = options && options.id || H.uniqueKey();
|
152
|
+
|
153
|
+
// Init the audio nodes
|
154
|
+
var ctx = H.audioContext;
|
155
|
+
|
156
|
+
this.gainNode = ctx.createGain();
|
157
|
+
this.setGain(0);
|
158
|
+
this.panNode = ctx.createStereoPanner && ctx.createStereoPanner();
|
159
|
+
if (this.panNode) {
|
160
|
+
this.setPan(0);
|
161
|
+
this.gainNode.connect(this.panNode);
|
162
|
+
this.panNode.connect(ctx.destination);
|
163
|
+
} else {
|
164
|
+
this.gainNode.connect(ctx.destination);
|
165
|
+
}
|
166
|
+
|
167
|
+
// Oscillator initialization
|
168
|
+
if (this.options.type === 'oscillator') {
|
169
|
+
this.initOscillator(this.options.oscillator);
|
170
|
+
}
|
171
|
+
|
172
|
+
// Init timer list
|
173
|
+
this.playCallbackTimers = [];
|
174
|
+
};
|
175
|
+
|
176
|
+
|
177
|
+
/**
|
178
|
+
* Return a copy of an instrument. Only one instrument instance can play at a
|
179
|
+
* time, so use this to get a new copy of the instrument that can play alongside
|
180
|
+
* it. The new instrument copy will receive a new ID unless one is supplied in
|
181
|
+
* options.
|
182
|
+
*
|
183
|
+
* @function Highcharts.Instrument#copy
|
184
|
+
*
|
185
|
+
* @param {Highcharts.InstrumentOptionsObject} [options]
|
186
|
+
* Options to merge in for the copy.
|
187
|
+
*
|
188
|
+
* @return {Highcharts.Instrument}
|
189
|
+
* A new Instrument instance with the same options.
|
190
|
+
*/
|
191
|
+
Instrument.prototype.copy = function (options) {
|
192
|
+
return new Instrument(H.merge(this.options, { id: null }, options));
|
193
|
+
};
|
194
|
+
|
195
|
+
|
196
|
+
/**
|
197
|
+
* Init the audio context, if we do not have one.
|
198
|
+
* @private
|
199
|
+
* @return {boolean} True if successful, false if not.
|
200
|
+
*/
|
201
|
+
Instrument.prototype.initAudioContext = function () {
|
202
|
+
var Context = H.win.AudioContext || H.win.webkitAudioContext,
|
203
|
+
hasOldContext = !!H.audioContext;
|
204
|
+
|
205
|
+
if (Context) {
|
206
|
+
H.audioContext = H.audioContext || new Context();
|
207
|
+
if (
|
208
|
+
!hasOldContext &&
|
209
|
+
H.audioContext &&
|
210
|
+
H.audioContext.state === 'running'
|
211
|
+
) {
|
212
|
+
H.audioContext.suspend(); // Pause until we need it
|
213
|
+
}
|
214
|
+
return !!(
|
215
|
+
H.audioContext &&
|
216
|
+
H.audioContext.createOscillator &&
|
217
|
+
H.audioContext.createGain
|
218
|
+
);
|
219
|
+
}
|
220
|
+
return false;
|
221
|
+
};
|
222
|
+
|
223
|
+
|
224
|
+
/**
|
225
|
+
* Init an oscillator instrument.
|
226
|
+
* @private
|
227
|
+
* @param {object} oscillatorOptions - The oscillator options passed to
|
228
|
+
* Highcharts.Instrument#init.
|
229
|
+
*/
|
230
|
+
Instrument.prototype.initOscillator = function (options) {
|
231
|
+
var ctx = H.audioContext;
|
232
|
+
|
233
|
+
this.oscillator = ctx.createOscillator();
|
234
|
+
this.oscillator.type = options.waveformShape;
|
235
|
+
this.oscillator.connect(this.gainNode);
|
236
|
+
this.oscillatorStarted = false;
|
237
|
+
};
|
238
|
+
|
239
|
+
|
240
|
+
/**
|
241
|
+
* Set pan position.
|
242
|
+
* @private
|
243
|
+
* @param {number} panValue - The pan position to set for the instrument.
|
244
|
+
*/
|
245
|
+
Instrument.prototype.setPan = function (panValue) {
|
246
|
+
if (this.panNode) {
|
247
|
+
this.panNode.pan.setValueAtTime(panValue, H.audioContext.currentTime);
|
248
|
+
}
|
249
|
+
};
|
250
|
+
|
251
|
+
|
252
|
+
/**
|
253
|
+
* Set gain level. A maximum of 1.2 is allowed before we emit a warning. The
|
254
|
+
* actual volume is not set above this level regardless of input.
|
255
|
+
* @private
|
256
|
+
* @param {number} gainValue - The gain level to set for the instrument.
|
257
|
+
* @param {number} [rampTime=0] - Gradually change the gain level, time given in
|
258
|
+
* milliseconds.
|
259
|
+
*/
|
260
|
+
Instrument.prototype.setGain = function (gainValue, rampTime) {
|
261
|
+
if (this.gainNode) {
|
262
|
+
if (gainValue > 1.2) {
|
263
|
+
console.warn( // eslint-disable-line
|
264
|
+
'Highcharts sonification warning: ' +
|
265
|
+
'Volume of instrument set too high.'
|
266
|
+
);
|
267
|
+
gainValue = 1.2;
|
268
|
+
}
|
269
|
+
if (rampTime) {
|
270
|
+
this.gainNode.gain.setValueAtTime(
|
271
|
+
this.gainNode.gain.value, H.audioContext.currentTime
|
272
|
+
);
|
273
|
+
this.gainNode.gain.linearRampToValueAtTime(
|
274
|
+
gainValue,
|
275
|
+
H.audioContext.currentTime + rampTime / 1000
|
276
|
+
);
|
277
|
+
} else {
|
278
|
+
this.gainNode.gain.setValueAtTime(
|
279
|
+
gainValue, H.audioContext.currentTime
|
280
|
+
);
|
281
|
+
}
|
282
|
+
}
|
283
|
+
};
|
284
|
+
|
285
|
+
|
286
|
+
/**
|
287
|
+
* Cancel ongoing gain ramps.
|
288
|
+
* @private
|
289
|
+
*/
|
290
|
+
Instrument.prototype.cancelGainRamp = function () {
|
291
|
+
if (this.gainNode) {
|
292
|
+
this.gainNode.gain.cancelScheduledValues(0);
|
293
|
+
}
|
294
|
+
};
|
295
|
+
|
296
|
+
|
297
|
+
/**
|
298
|
+
* Get the closest valid frequency for this instrument.
|
299
|
+
* @private
|
300
|
+
* @param {number} frequency - The target frequency.
|
301
|
+
* @param {number} [min] - Minimum frequency to return.
|
302
|
+
* @param {number} [max] - Maximum frequency to return.
|
303
|
+
* @return {number} The closest valid frequency to the input frequency.
|
304
|
+
*/
|
305
|
+
Instrument.prototype.getValidFrequency = function (frequency, min, max) {
|
306
|
+
var validFrequencies = this.options.allowedFrequencies,
|
307
|
+
maximum = H.pick(max, Infinity),
|
308
|
+
minimum = H.pick(min, -Infinity);
|
309
|
+
|
310
|
+
return !validFrequencies || !validFrequencies.length ?
|
311
|
+
// No valid frequencies for this instrument, return the target
|
312
|
+
frequency :
|
313
|
+
// Use the valid frequencies and return the closest match
|
314
|
+
validFrequencies.reduce(function (acc, cur) {
|
315
|
+
// Find the closest allowed value
|
316
|
+
return Math.abs(cur - frequency) < Math.abs(acc - frequency) &&
|
317
|
+
cur < maximum && cur > minimum ?
|
318
|
+
cur : acc;
|
319
|
+
}, Infinity);
|
320
|
+
};
|
321
|
+
|
322
|
+
|
323
|
+
/**
|
324
|
+
* Clear existing play callback timers.
|
325
|
+
* @private
|
326
|
+
*/
|
327
|
+
Instrument.prototype.clearPlayCallbackTimers = function () {
|
328
|
+
this.playCallbackTimers.forEach(function (timer) {
|
329
|
+
clearInterval(timer);
|
330
|
+
});
|
331
|
+
this.playCallbackTimers = [];
|
332
|
+
};
|
333
|
+
|
334
|
+
|
335
|
+
/**
|
336
|
+
* Set the current frequency being played by the instrument. The closest valid
|
337
|
+
* frequency between the frequency limits is used.
|
338
|
+
* @param {number} frequency - The frequency to set.
|
339
|
+
* @param {object} [frequencyLimits] - Object with maxFrequency and minFrequency
|
340
|
+
*/
|
341
|
+
Instrument.prototype.setFrequency = function (frequency, frequencyLimits) {
|
342
|
+
var limits = frequencyLimits || {},
|
343
|
+
validFrequency = this.getValidFrequency(
|
344
|
+
frequency, limits.min, limits.max
|
345
|
+
);
|
346
|
+
|
347
|
+
if (this.options.type === 'oscillator') {
|
348
|
+
this.oscillatorPlay(validFrequency);
|
349
|
+
}
|
350
|
+
};
|
351
|
+
|
352
|
+
|
353
|
+
/**
|
354
|
+
* Play oscillator instrument.
|
355
|
+
* @private
|
356
|
+
* @param {number} frequency - The frequency to play.
|
357
|
+
*/
|
358
|
+
Instrument.prototype.oscillatorPlay = function (frequency) {
|
359
|
+
if (!this.oscillatorStarted) {
|
360
|
+
this.oscillator.start();
|
361
|
+
this.oscillatorStarted = true;
|
362
|
+
}
|
363
|
+
|
364
|
+
this.oscillator.frequency.setValueAtTime(
|
365
|
+
frequency, H.audioContext.currentTime
|
366
|
+
);
|
367
|
+
};
|
368
|
+
|
369
|
+
|
370
|
+
/**
|
371
|
+
* Prepare instrument before playing. Resumes the audio context and starts the
|
372
|
+
* oscillator.
|
373
|
+
* @private
|
374
|
+
*/
|
375
|
+
Instrument.prototype.preparePlay = function () {
|
376
|
+
this.setGain(0.001);
|
377
|
+
if (H.audioContext.state === 'suspended') {
|
378
|
+
H.audioContext.resume();
|
379
|
+
}
|
380
|
+
if (this.oscillator && !this.oscillatorStarted) {
|
381
|
+
this.oscillator.start();
|
382
|
+
this.oscillatorStarted = true;
|
383
|
+
}
|
384
|
+
};
|
385
|
+
|
386
|
+
|
387
|
+
/**
|
388
|
+
* Play the instrument according to options.
|
389
|
+
*
|
390
|
+
* @sample highcharts/sonification/instrument/
|
391
|
+
* Using Instruments directly
|
392
|
+
* @sample highcharts/sonification/instrument-advanced/
|
393
|
+
* Using callbacks for instrument parameters
|
394
|
+
*
|
395
|
+
* @function Highcharts.Instrument#play
|
396
|
+
*
|
397
|
+
* @param {Highcharts.InstrumentPlayOptionsObject} options
|
398
|
+
* Options for the playback of the instrument.
|
399
|
+
*/
|
400
|
+
Instrument.prototype.play = function (options) {
|
401
|
+
var instrument = this,
|
402
|
+
duration = options.duration || 0,
|
403
|
+
// Set a value, or if it is a function, set it continously as a timer.
|
404
|
+
// Pass in the value/function to set, the setter function, and any
|
405
|
+
// additional data to pass through to the setter function.
|
406
|
+
setOrStartTimer = function (value, setter, setterData) {
|
407
|
+
var target = options.duration,
|
408
|
+
currentDurationIx = 0,
|
409
|
+
callbackInterval = instrument.options.playCallbackInterval;
|
410
|
+
|
411
|
+
if (typeof value === 'function') {
|
412
|
+
var timer = setInterval(function () {
|
413
|
+
currentDurationIx++;
|
414
|
+
var curTime = currentDurationIx * callbackInterval / target;
|
415
|
+
|
416
|
+
if (curTime >= 1) {
|
417
|
+
instrument[setter](value(1), setterData);
|
418
|
+
clearInterval(timer);
|
419
|
+
} else {
|
420
|
+
instrument[setter](value(curTime), setterData);
|
421
|
+
}
|
422
|
+
}, callbackInterval);
|
423
|
+
|
424
|
+
instrument.playCallbackTimers.push(timer);
|
425
|
+
} else {
|
426
|
+
instrument[setter](value, setterData);
|
427
|
+
}
|
428
|
+
};
|
429
|
+
|
430
|
+
if (!instrument.id) {
|
431
|
+
// No audio support - do nothing
|
432
|
+
return;
|
433
|
+
}
|
434
|
+
|
435
|
+
// If the AudioContext is suspended we have to resume it before playing
|
436
|
+
if (
|
437
|
+
H.audioContext.state === 'suspended' ||
|
438
|
+
this.oscillator && !this.oscillatorStarted
|
439
|
+
) {
|
440
|
+
instrument.preparePlay();
|
441
|
+
// Try again in 10ms
|
442
|
+
setTimeout(function () {
|
443
|
+
instrument.play(options);
|
444
|
+
}, 10);
|
445
|
+
return;
|
446
|
+
}
|
447
|
+
|
448
|
+
// Clear any existing play timers
|
449
|
+
if (instrument.playCallbackTimers.length) {
|
450
|
+
instrument.clearPlayCallbackTimers();
|
451
|
+
}
|
452
|
+
|
453
|
+
// Clear any gain ramps
|
454
|
+
instrument.cancelGainRamp();
|
455
|
+
|
456
|
+
// Clear stop oscillator timer
|
457
|
+
if (instrument.stopOscillatorTimeout) {
|
458
|
+
clearTimeout(instrument.stopOscillatorTimeout);
|
459
|
+
delete instrument.stopOscillatorTimeout;
|
460
|
+
}
|
461
|
+
|
462
|
+
// If a note is playing right now, clear the stop timeout, and call the
|
463
|
+
// callback.
|
464
|
+
if (instrument.stopTimeout) {
|
465
|
+
clearTimeout(instrument.stopTimeout);
|
466
|
+
delete instrument.stopTimeout;
|
467
|
+
if (instrument.stopCallback) {
|
468
|
+
// We have a callback for the play we are interrupting. We do not
|
469
|
+
// allow this callback to start a new play, because that leads to
|
470
|
+
// chaos. We pass in 'cancelled' to indicate that this note did not
|
471
|
+
// finish, but still stopped.
|
472
|
+
instrument._play = instrument.play;
|
473
|
+
instrument.play = function () { };
|
474
|
+
instrument.stopCallback('cancelled');
|
475
|
+
instrument.play = instrument._play;
|
476
|
+
}
|
477
|
+
}
|
478
|
+
|
479
|
+
// Stop the note without fadeOut if the duration is too short to hear the
|
480
|
+
// note otherwise.
|
481
|
+
var immediate = duration < H.sonification.fadeOutDuration + 20;
|
482
|
+
|
483
|
+
// Stop the instrument after the duration of the note
|
484
|
+
instrument.stopCallback = options.onEnd;
|
485
|
+
var onStop = function () {
|
486
|
+
delete instrument.stopTimeout;
|
487
|
+
instrument.stop(immediate);
|
488
|
+
};
|
489
|
+
|
490
|
+
if (duration) {
|
491
|
+
instrument.stopTimeout = setTimeout(
|
492
|
+
onStop,
|
493
|
+
immediate ? duration :
|
494
|
+
duration - H.sonification.fadeOutDuration
|
495
|
+
);
|
496
|
+
|
497
|
+
// Play the note
|
498
|
+
setOrStartTimer(options.frequency, 'setFrequency', null, {
|
499
|
+
minFrequency: options.minFrequency,
|
500
|
+
maxFrequency: options.maxFrequency
|
501
|
+
});
|
502
|
+
|
503
|
+
// Set the volume and panning
|
504
|
+
setOrStartTimer(H.pick(options.volume, 1), 'setGain', 4); // Slight ramp
|
505
|
+
setOrStartTimer(H.pick(options.pan, 0), 'setPan');
|
506
|
+
} else {
|
507
|
+
// No note duration, so just stop immediately
|
508
|
+
onStop();
|
509
|
+
}
|
510
|
+
};
|
511
|
+
|
512
|
+
|
513
|
+
/**
|
514
|
+
* Mute an instrument that is playing. If the instrument is not currently
|
515
|
+
* playing, this function does nothing.
|
516
|
+
*
|
517
|
+
* @function Highcharts.Instrument#mute
|
518
|
+
*/
|
519
|
+
Instrument.prototype.mute = function () {
|
520
|
+
this.setGain(0.0001, H.sonification.fadeOutDuration * 0.8);
|
521
|
+
};
|
522
|
+
|
523
|
+
|
524
|
+
/**
|
525
|
+
* Stop the instrument playing.
|
526
|
+
*
|
527
|
+
* @function Highcharts.Instrument#stop
|
528
|
+
*
|
529
|
+
* @param {boolean} immediately
|
530
|
+
* Whether to do the stop immediately or fade out.
|
531
|
+
*
|
532
|
+
* @param {Function} onStopped
|
533
|
+
* Callback function to be called when the stop is completed.
|
534
|
+
*
|
535
|
+
* @param {*} callbackData
|
536
|
+
* Data to send to the onEnd callback functions.
|
537
|
+
*/
|
538
|
+
Instrument.prototype.stop = function (immediately, onStopped, callbackData) {
|
539
|
+
var instr = this,
|
540
|
+
reset = function () {
|
541
|
+
// Remove timeout reference
|
542
|
+
if (instr.stopOscillatorTimeout) {
|
543
|
+
delete instr.stopOscillatorTimeout;
|
544
|
+
}
|
545
|
+
// The oscillator may have stopped in the meantime here, so allow
|
546
|
+
// this function to fail if so.
|
547
|
+
try {
|
548
|
+
instr.oscillator.stop();
|
549
|
+
} catch (e) {}
|
550
|
+
instr.oscillator.disconnect(instr.gainNode);
|
551
|
+
// We need a new oscillator in order to restart it
|
552
|
+
instr.initOscillator(instr.options.oscillator);
|
553
|
+
// Done stopping, call the callback from the stop
|
554
|
+
if (onStopped) {
|
555
|
+
onStopped(callbackData);
|
556
|
+
}
|
557
|
+
// Call the callback for the play we finished
|
558
|
+
if (instr.stopCallback) {
|
559
|
+
instr.stopCallback(callbackData);
|
560
|
+
}
|
561
|
+
};
|
562
|
+
|
563
|
+
// Clear any existing timers
|
564
|
+
if (instr.playCallbackTimers.length) {
|
565
|
+
instr.clearPlayCallbackTimers();
|
566
|
+
}
|
567
|
+
if (instr.stopTimeout) {
|
568
|
+
clearTimeout(instr.stopTimeout);
|
569
|
+
}
|
570
|
+
if (immediately) {
|
571
|
+
instr.setGain(0);
|
572
|
+
reset();
|
573
|
+
} else {
|
574
|
+
instr.mute();
|
575
|
+
// Stop the oscillator after the mute fade-out has finished
|
576
|
+
instr.stopOscillatorTimeout =
|
577
|
+
setTimeout(reset, H.sonification.fadeOutDuration + 100);
|
578
|
+
}
|
579
|
+
};
|
580
|
+
|
581
|
+
|
582
|
+
export default Instrument;
|