highcharts 9.2.2 → 9.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (747) hide show
  1. package/README.md +13 -6
  2. package/bower.json +1 -1
  3. package/css/annotations/popup.css +48 -8
  4. package/css/annotations/popup.scss +70 -22
  5. package/css/highcharts.css +45 -0
  6. package/css/highcharts.scss +40 -0
  7. package/css/themes/dark-unica.css +45 -0
  8. package/css/themes/grid-light.css +45 -0
  9. package/css/themes/sand-signika.css +45 -0
  10. package/es-modules/Accessibility/A11yI18n.js +273 -224
  11. package/es-modules/Accessibility/Accessibility.js +233 -128
  12. package/es-modules/Accessibility/AccessibilityComponent.js +79 -314
  13. package/es-modules/Accessibility/Components/AnnotationsA11y.js +10 -0
  14. package/es-modules/Accessibility/Components/ContainerComponent.js +52 -27
  15. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +46 -23
  16. package/es-modules/Accessibility/Components/LegendComponent.js +97 -65
  17. package/es-modules/Accessibility/Components/MenuComponent.js +59 -40
  18. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +5 -8
  19. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +152 -115
  20. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +133 -68
  21. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +64 -27
  22. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +38 -21
  23. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +380 -325
  24. package/es-modules/Accessibility/Components/ZoomComponent.js +28 -20
  25. package/es-modules/Accessibility/FocusBorder.js +192 -147
  26. package/es-modules/Accessibility/HighContrastMode.js +78 -66
  27. package/es-modules/Accessibility/HighContrastTheme.js +10 -0
  28. package/es-modules/Accessibility/KeyboardNavigation.js +144 -70
  29. package/es-modules/Accessibility/KeyboardNavigationHandler.js +71 -44
  30. package/es-modules/Accessibility/Options/DeprecatedOptions.js +11 -1
  31. package/es-modules/Accessibility/Options/LangOptions.js +1 -2
  32. package/es-modules/Accessibility/Options/Options.js +32 -17
  33. package/es-modules/Accessibility/ProxyElement.js +212 -0
  34. package/es-modules/Accessibility/ProxyProvider.js +305 -0
  35. package/es-modules/Accessibility/Utils/Announcer.js +15 -8
  36. package/es-modules/Accessibility/Utils/ChartUtilities.js +41 -16
  37. package/es-modules/Accessibility/Utils/DOMElementProvider.js +27 -15
  38. package/es-modules/Accessibility/Utils/EventProvider.js +27 -17
  39. package/es-modules/Accessibility/Utils/HTMLUtilities.js +125 -30
  40. package/es-modules/Core/Axis/Axis.js +37 -30
  41. package/es-modules/Core/Axis/AxisDefaults.js +35 -24
  42. package/es-modules/Core/Axis/Color/ColorAxisComposition.js +54 -4
  43. package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +5 -5
  44. package/es-modules/Core/Axis/OrdinalAxis.js +8 -12
  45. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +4 -5
  46. package/es-modules/Core/Axis/ScrollbarAxis.js +10 -3
  47. package/es-modules/Core/Axis/TreeGridAxis.js +2 -2
  48. package/es-modules/Core/Axis/TreeGridTick.js +1 -2
  49. package/es-modules/Core/Chart/Chart.js +2 -3
  50. package/es-modules/Core/Chart/ChartDefaults.js +3 -4
  51. package/es-modules/Core/Chart/ChartNavigationComposition.js +92 -0
  52. package/es-modules/Core/Chart/MapChart.js +10 -22
  53. package/es-modules/Core/Chart/StockChart.js +3 -293
  54. package/es-modules/Core/Color/Palettes.js +22 -0
  55. package/es-modules/Core/DefaultOptions.js +19 -17
  56. package/es-modules/Core/Foundation.js +39 -31
  57. package/es-modules/Core/Globals.js +1 -1
  58. package/es-modules/Core/HttpUtilities.js +3 -3
  59. package/es-modules/Core/Legend/Legend.js +7 -3
  60. package/es-modules/Core/Navigator.js +7 -8
  61. package/es-modules/Core/Pointer.js +39 -36
  62. package/es-modules/Core/Renderer/HTML/AST.js +2 -0
  63. package/es-modules/Core/Renderer/HTML/HTMLElement.js +23 -18
  64. package/es-modules/Core/Renderer/SVG/SVGElement.js +3 -4
  65. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +21 -18
  66. package/es-modules/Core/Renderer/SVG/TextBuilder.js +3 -3
  67. package/es-modules/Core/ScrollbarDefaults.js +10 -9
  68. package/es-modules/Core/Series/DataLabel.js +2 -3
  69. package/es-modules/Core/Series/Point.js +5 -3
  70. package/es-modules/Core/Series/Series.js +153 -162
  71. package/es-modules/Core/Series/SeriesDefaults.js +3 -4
  72. package/es-modules/Core/Series/SeriesRegistry.js +1 -2
  73. package/es-modules/Core/Tooltip.js +44 -17
  74. package/es-modules/Core/Utilities.js +15 -7
  75. package/es-modules/Data/DataConverter.js +489 -0
  76. package/es-modules/Data/DataPromise.js +252 -0
  77. package/es-modules/Data/DataSeriesConverter.js +203 -0
  78. package/es-modules/Data/DataTable.js +1204 -0
  79. package/es-modules/Data/Modifiers/ChainModifier.js +299 -0
  80. package/es-modules/Data/Modifiers/DataModifier.js +303 -0
  81. package/es-modules/Data/Modifiers/GroupModifier.js +144 -0
  82. package/es-modules/Data/Modifiers/InvertModifier.js +254 -0
  83. package/es-modules/Data/Modifiers/RangeModifier.js +143 -0
  84. package/es-modules/Data/Modifiers/SeriesPointsModifier.js +110 -0
  85. package/es-modules/Data/Modifiers/SortModifier.js +249 -0
  86. package/es-modules/Data/Parsers/CSVParser.js +399 -0
  87. package/es-modules/Data/Parsers/DataParser.js +101 -0
  88. package/es-modules/Data/Parsers/GoogleSheetsParser.js +220 -0
  89. package/es-modules/Data/Parsers/HTMLTableParser.js +213 -0
  90. package/es-modules/Data/Stores/CSVStore.js +317 -0
  91. package/es-modules/Data/Stores/DataStore.js +276 -0
  92. package/es-modules/Data/Stores/GoogleSheetsStore.js +167 -0
  93. package/es-modules/Data/Stores/HTMLTableStore.js +351 -0
  94. package/es-modules/Extensions/Annotations/Annotations.js +61 -11
  95. package/es-modules/Extensions/Annotations/ControlPoint.js +1 -1
  96. package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +199 -0
  97. package/es-modules/Extensions/Annotations/Mixins/ControllableMixin.js +7 -1
  98. package/es-modules/Extensions/Annotations/NavigationBindings.js +68 -19
  99. package/es-modules/Extensions/Annotations/Popup.js +479 -141
  100. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +51 -2
  101. package/es-modules/Extensions/Annotations/Types/CrookedLine.js +1 -1
  102. package/es-modules/Extensions/Annotations/Types/Fibonacci.js +2 -3
  103. package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +219 -0
  104. package/es-modules/Extensions/Annotations/Types/InfinityLine.js +1 -1
  105. package/es-modules/Extensions/Annotations/Types/Measure.js +14 -8
  106. package/es-modules/Extensions/Annotations/Types/Pitchfork.js +5 -5
  107. package/es-modules/Extensions/Annotations/Types/TimeCycles.js +207 -0
  108. package/es-modules/Extensions/Annotations/Types/Tunnel.js +3 -5
  109. package/es-modules/Extensions/Annotations/Types/VerticalLine.js +1 -1
  110. package/es-modules/Extensions/Boost/BoostOverrides.js +3 -1
  111. package/es-modules/Extensions/Boost/WGLShader.js +4 -3
  112. package/es-modules/Extensions/BoostCanvas.js +1 -2
  113. package/es-modules/Extensions/CurrentDateIndication.js +2 -3
  114. package/es-modules/Extensions/DataGrouping.js +31 -18
  115. package/es-modules/Extensions/DownloadURL.js +2 -2
  116. package/es-modules/Extensions/DragPanes.js +1 -2
  117. package/es-modules/Extensions/Drilldown.js +2 -3
  118. package/es-modules/Extensions/Exporting/Exporting.js +8 -7
  119. package/es-modules/Extensions/Exporting/ExportingDefaults.js +8 -15
  120. package/es-modules/Extensions/GeoJSON.js +39 -63
  121. package/es-modules/Extensions/MarkerClusters.js +115 -97
  122. package/es-modules/Extensions/NoDataToDisplay.js +1 -2
  123. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +9 -8
  124. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  125. package/es-modules/Extensions/Oldie/Oldie.js +2 -3
  126. package/es-modules/Extensions/Pane.js +5 -6
  127. package/es-modules/Extensions/RangeSelector.js +3 -4
  128. package/es-modules/Extensions/Sonification/ChartSonify.js +247 -637
  129. package/es-modules/Extensions/Sonification/Earcon.js +136 -102
  130. package/es-modules/Extensions/Sonification/Instrument.js +496 -426
  131. package/es-modules/Extensions/Sonification/MusicalFrequencies.js +10 -0
  132. package/es-modules/Extensions/Sonification/Options.js +10 -0
  133. package/es-modules/Extensions/Sonification/PointSonify.js +203 -152
  134. package/es-modules/Extensions/Sonification/SeriesSonify.js +459 -0
  135. package/es-modules/Extensions/Sonification/SignalHandler.js +124 -0
  136. package/es-modules/Extensions/Sonification/Sonification.js +26 -52
  137. package/es-modules/Extensions/Sonification/{Utilities.js → SonificationUtilities.js} +62 -84
  138. package/es-modules/Extensions/Sonification/Timeline.js +255 -567
  139. package/es-modules/Extensions/Sonification/TimelineEvent.js +158 -0
  140. package/es-modules/Extensions/Sonification/TimelinePath.js +311 -0
  141. package/es-modules/Maps/MapNavigation.js +27 -64
  142. package/es-modules/Maps/MapNavigationOptionsDefault.js +3 -0
  143. package/es-modules/Maps/MapPointer.js +7 -5
  144. package/es-modules/Maps/MapView.js +450 -0
  145. package/es-modules/Maps/MapViewOptionsDefault.js +95 -0
  146. package/es-modules/Maps/Projection.js +433 -0
  147. package/es-modules/Maps/ProjectionDefinition.js +9 -0
  148. package/es-modules/Maps/Projections/EqualEarth.js +42 -0
  149. package/es-modules/Maps/Projections/Miller.js +17 -0
  150. package/es-modules/Maps/Projections/Orthographic.js +26 -0
  151. package/es-modules/Maps/Projections/ProjectionRegistry.js +17 -0
  152. package/es-modules/Maps/Projections/WebMercator.js +25 -0
  153. package/es-modules/Series/AreaRange/AreaRangeSeries.js +4 -5
  154. package/es-modules/Series/Bellcurve/BellcurveSeries.js +2 -8
  155. package/es-modules/Series/BoxPlot/BoxPlotSeries.js +1 -2
  156. package/es-modules/Series/Bubble/BubbleLegendDefaults.js +1 -2
  157. package/es-modules/Series/Bubble/BubbleLegendItem.js +3 -3
  158. package/es-modules/Series/Bubble/BubblePoint.js +5 -0
  159. package/es-modules/Series/Bubble/BubbleSeries.js +90 -50
  160. package/es-modules/Series/Candlestick/CandlestickSeries.js +10 -18
  161. package/es-modules/{Mixins/CenteredSeries.js → Series/CenteredUtilities.js} +45 -23
  162. package/es-modules/Series/ColorMapComposition.js +109 -0
  163. package/es-modules/Series/Column/ColumnDataLabel.js +5 -5
  164. package/es-modules/Series/Column/ColumnSeries.js +3 -4
  165. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +6 -6
  166. package/es-modules/Series/DataModifyComposition.js +539 -0
  167. package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +2 -6
  168. package/es-modules/Series/DerivedComposition.js +137 -0
  169. package/es-modules/Series/DrawPointComposition.js +111 -0
  170. package/es-modules/Series/Dumbbell/DumbbellSeries.js +2 -3
  171. package/es-modules/Series/ErrorBar/ErrorBarSeries.js +1 -2
  172. package/es-modules/Series/Flags/FlagsSeries.js +18 -25
  173. package/es-modules/Series/Funnel/FunnelSeries.js +6 -5
  174. package/es-modules/Series/Gantt/GanttSeries.js +0 -2
  175. package/es-modules/Series/Gauge/GaugePoint.js +1 -1
  176. package/es-modules/Series/Gauge/GaugeSeries.js +7 -7
  177. package/es-modules/Series/HLC/HLCPoint.js +55 -0
  178. package/es-modules/Series/HLC/HLCSeries.js +383 -0
  179. package/es-modules/Series/Heatmap/HeatmapPoint.js +3 -4
  180. package/es-modules/Series/Heatmap/HeatmapSeries.js +19 -6
  181. package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +2 -3
  182. package/es-modules/Series/Histogram/HistogramSeries.js +3 -7
  183. package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +9 -10
  184. package/es-modules/Series/Line/LineSeries.js +1 -2
  185. package/es-modules/Series/Map/MapPoint.js +23 -16
  186. package/es-modules/Series/Map/MapSeries.js +268 -309
  187. package/es-modules/Series/MapBubble/MapBubblePoint.js +0 -3
  188. package/es-modules/Series/MapBubble/MapBubbleSeries.js +10 -1
  189. package/es-modules/Series/MapPoint/MapPointPoint.js +5 -1
  190. package/es-modules/Series/MapPoint/MapPointSeries.js +87 -4
  191. package/es-modules/Series/Networkgraph/Networkgraph.js +5 -5
  192. package/es-modules/{Mixins/Nodes.js → Series/NodesComposition.js} +76 -29
  193. package/es-modules/Series/OHLC/OHLCPoint.js +2 -6
  194. package/es-modules/Series/OHLC/OHLCSeries.js +55 -183
  195. package/es-modules/{Mixins/OnSeries.js → Series/OnSeriesComposition.js} +53 -21
  196. package/es-modules/Series/Organization/OrganizationSeries.js +2 -3
  197. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +46 -6
  198. package/es-modules/Series/ParetoSeries/ParetoSeries.js +3 -7
  199. package/es-modules/Series/Pie/PieDataLabel.js +1 -2
  200. package/es-modules/Series/Pie/PieSeries.js +6 -7
  201. package/es-modules/Series/Sankey/SankeyPoint.js +0 -4
  202. package/es-modules/Series/Sankey/SankeySeries.js +89 -20
  203. package/es-modules/Series/Sunburst/SunburstPoint.js +2 -3
  204. package/es-modules/Series/Sunburst/SunburstSeries.js +4 -4
  205. package/es-modules/Series/Tilemap/TilemapPoint.js +2 -3
  206. package/es-modules/Series/Timeline/TimelineSeries.js +3 -4
  207. package/es-modules/{Mixins/TreeSeries.js → Series/TreeUtilities.js} +86 -76
  208. package/es-modules/Series/Treemap/TreemapPoint.js +2 -2
  209. package/es-modules/Series/Treemap/TreemapSeries.js +8 -8
  210. package/es-modules/Series/Venn/VennPoint.js +16 -7
  211. package/es-modules/Series/Venn/VennSeries.js +5 -8
  212. package/es-modules/Series/Venn/VennUtils.js +550 -439
  213. package/es-modules/Series/Waterfall/WaterfallSeries.js +2 -3
  214. package/es-modules/Series/Windbarb/WindbarbSeries.js +23 -24
  215. package/es-modules/Series/Wordcloud/WordcloudPoint.js +8 -6
  216. package/es-modules/Series/Wordcloud/WordcloudSeries.js +24 -20
  217. package/es-modules/Series/Wordcloud/WordcloudUtils.js +673 -484
  218. package/es-modules/Series/XRange/XRangePoint.js +1 -0
  219. package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +3 -6
  220. package/es-modules/Stock/Indicators/AO/AOIndicator.js +2 -3
  221. package/es-modules/Stock/Indicators/APO/APOIndicator.js +14 -20
  222. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +3 -6
  223. package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +11 -13
  224. package/es-modules/Stock/Indicators/ArrayUtilities.js +47 -0
  225. package/es-modules/Stock/Indicators/BB/BBIndicator.js +27 -11
  226. package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +6 -12
  227. package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +1 -11
  228. package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +19 -11
  229. package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +17 -11
  230. package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +1 -3
  231. package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +11 -9
  232. package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +8 -16
  233. package/es-modules/Stock/Indicators/LinearRegression/LinearRegression.js +2 -2
  234. package/es-modules/Stock/Indicators/LinearRegressionAngle/LinearRegressionAngle.js +2 -2
  235. package/es-modules/Stock/Indicators/LinearRegressionIntercept/LinearRegressionIntercept.js +2 -2
  236. package/es-modules/Stock/Indicators/LinearRegressionSlopes/LinearRegressionSlopes.js +2 -2
  237. package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +1 -2
  238. package/es-modules/{Mixins/MultipleLines.js → Stock/Indicators/MultipleLinesComposition.js} +136 -87
  239. package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +1 -3
  240. package/es-modules/Stock/Indicators/PC/PCIndicator.js +14 -13
  241. package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +1 -11
  242. package/es-modules/Stock/Indicators/SMA/SMAComposition.js +0 -26
  243. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +9 -32
  244. package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +0 -8
  245. package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +15 -8
  246. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +4 -6
  247. package/es-modules/Stock/Indicators/TEMA/TEMAIndicator.js +26 -11
  248. package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +6 -12
  249. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +20 -3
  250. package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +2 -3
  251. package/es-modules/Stock/StockToolsBindings.js +144 -42
  252. package/es-modules/Stock/StockToolsGui.js +405 -11
  253. package/es-modules/masters/highcharts-3d.src.js +1 -1
  254. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  255. package/es-modules/masters/highcharts-more.src.js +1 -1
  256. package/es-modules/masters/highcharts.src.js +1 -1
  257. package/es-modules/masters/highmaps.src.js +1 -1
  258. package/es-modules/masters/highstock.src.js +1 -1
  259. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  260. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  261. package/es-modules/masters/indicators/ao.src.js +1 -1
  262. package/es-modules/masters/indicators/apo.src.js +1 -1
  263. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  264. package/es-modules/masters/indicators/aroon.src.js +1 -1
  265. package/es-modules/masters/indicators/atr.src.js +1 -1
  266. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  267. package/es-modules/masters/indicators/cci.src.js +1 -1
  268. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  269. package/es-modules/masters/indicators/cmf.src.js +1 -1
  270. package/es-modules/masters/indicators/cmo.src.js +1 -1
  271. package/es-modules/masters/indicators/dema.src.js +1 -1
  272. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  273. package/es-modules/masters/indicators/dmi.src.js +1 -1
  274. package/es-modules/masters/indicators/dpo.src.js +1 -1
  275. package/es-modules/masters/indicators/ema.src.js +4 -10
  276. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  277. package/es-modules/masters/indicators/indicators-all.src.js +2 -2
  278. package/es-modules/masters/indicators/indicators.src.js +2 -1
  279. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  280. package/es-modules/masters/indicators/klinger.src.js +1 -1
  281. package/es-modules/masters/indicators/macd.src.js +1 -1
  282. package/es-modules/masters/indicators/mfi.src.js +1 -1
  283. package/es-modules/masters/indicators/momentum.src.js +1 -1
  284. package/es-modules/masters/indicators/natr.src.js +1 -1
  285. package/es-modules/masters/indicators/obv.src.js +1 -1
  286. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  287. package/es-modules/masters/indicators/ppo.src.js +1 -1
  288. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  289. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  290. package/es-modules/masters/indicators/psar.src.js +1 -1
  291. package/es-modules/masters/indicators/regressions.src.js +1 -1
  292. package/es-modules/masters/indicators/roc.src.js +1 -1
  293. package/es-modules/masters/indicators/rsi.src.js +1 -1
  294. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  295. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  296. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  297. package/es-modules/masters/indicators/tema.src.js +1 -1
  298. package/es-modules/masters/indicators/trendline.src.js +1 -1
  299. package/es-modules/masters/indicators/trix.src.js +1 -1
  300. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  301. package/es-modules/masters/indicators/vwap.src.js +1 -1
  302. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  303. package/es-modules/masters/indicators/wma.src.js +1 -1
  304. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  305. package/es-modules/masters/modules/accessibility.src.js +16 -2
  306. package/es-modules/masters/modules/annotations-advanced.src.js +3 -1
  307. package/es-modules/masters/modules/annotations.src.js +1 -1
  308. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  309. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  310. package/es-modules/masters/modules/boost.src.js +1 -1
  311. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  312. package/es-modules/masters/modules/bullet.src.js +1 -1
  313. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  314. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  315. package/es-modules/masters/modules/cylinder.src.js +1 -1
  316. package/es-modules/masters/modules/data.src.js +6 -3
  317. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  318. package/es-modules/masters/modules/debugger.src.js +1 -1
  319. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  320. package/es-modules/masters/modules/dotplot.src.js +1 -1
  321. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  322. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  323. package/es-modules/masters/modules/drilldown.src.js +1 -1
  324. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  325. package/es-modules/masters/modules/export-data.src.js +1 -1
  326. package/es-modules/masters/modules/exporting.src.js +1 -1
  327. package/es-modules/masters/modules/full-screen.src.js +1 -1
  328. package/es-modules/masters/modules/funnel.src.js +1 -1
  329. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  330. package/es-modules/masters/modules/gantt.src.js +1 -1
  331. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  332. package/es-modules/masters/modules/heatmap.src.js +1 -2
  333. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  334. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  335. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  336. package/es-modules/masters/modules/item-series.src.js +1 -1
  337. package/es-modules/masters/modules/lollipop.src.js +1 -1
  338. package/es-modules/masters/modules/map.src.js +1 -3
  339. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  340. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  341. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  342. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  343. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  344. package/es-modules/masters/modules/oldie.src.js +1 -1
  345. package/es-modules/masters/modules/organization.src.js +1 -1
  346. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  347. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  348. package/es-modules/masters/modules/pareto.src.js +1 -1
  349. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  350. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  351. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  352. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  353. package/es-modules/masters/modules/sankey.src.js +1 -1
  354. package/es-modules/masters/modules/series-label.src.js +1 -1
  355. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  356. package/es-modules/masters/modules/sonification.src.js +33 -2
  357. package/es-modules/masters/modules/static-scale.src.js +1 -1
  358. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  359. package/es-modules/masters/modules/stock.src.js +4 -1
  360. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  361. package/es-modules/masters/modules/sunburst.src.js +1 -1
  362. package/es-modules/masters/modules/tilemap.src.js +1 -1
  363. package/es-modules/masters/modules/timeline.src.js +1 -1
  364. package/es-modules/masters/modules/treegrid.src.js +1 -1
  365. package/es-modules/masters/modules/treemap.src.js +1 -1
  366. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  367. package/es-modules/masters/modules/variwide.src.js +1 -1
  368. package/es-modules/masters/modules/vector.src.js +1 -1
  369. package/es-modules/masters/modules/venn.src.js +1 -1
  370. package/es-modules/masters/modules/windbarb.src.js +1 -1
  371. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  372. package/es-modules/masters/modules/xrange.src.js +1 -1
  373. package/es-modules/masters/themes/avocado.src.js +1 -1
  374. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  375. package/es-modules/masters/themes/dark-green.src.js +1 -1
  376. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  377. package/es-modules/masters/themes/gray.src.js +1 -1
  378. package/es-modules/masters/themes/grid-light.src.js +1 -1
  379. package/es-modules/masters/themes/grid.src.js +1 -1
  380. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  381. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  382. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  383. package/es-modules/masters/themes/skies.src.js +1 -1
  384. package/es-modules/masters/themes/sunset.src.js +1 -1
  385. package/highcharts-3d.js +1 -1
  386. package/highcharts-3d.src.js +1 -1
  387. package/highcharts-gantt.js +801 -804
  388. package/highcharts-gantt.js.map +1 -1
  389. package/highcharts-gantt.src.js +775 -739
  390. package/highcharts-more.js +194 -193
  391. package/highcharts-more.js.map +1 -1
  392. package/highcharts-more.src.js +207 -119
  393. package/highcharts.d.ts +9670 -4217
  394. package/highcharts.js +585 -588
  395. package/highcharts.js.map +1 -1
  396. package/highcharts.src.d.ts +9670 -4217
  397. package/highcharts.src.js +608 -587
  398. package/highmaps.js +726 -708
  399. package/highmaps.js.map +1 -1
  400. package/highmaps.src.js +2708 -1587
  401. package/highstock.js +788 -783
  402. package/highstock.js.map +1 -1
  403. package/highstock.src.js +1896 -1267
  404. package/indicators/acceleration-bands.js +10 -9
  405. package/indicators/acceleration-bands.js.map +1 -1
  406. package/indicators/acceleration-bands.src.js +156 -112
  407. package/indicators/accumulation-distribution.js +1 -1
  408. package/indicators/accumulation-distribution.src.js +1 -1
  409. package/indicators/ao.js +6 -6
  410. package/indicators/ao.js.map +1 -1
  411. package/indicators/ao.src.js +4 -4
  412. package/indicators/apo.js +5 -6
  413. package/indicators/apo.js.map +1 -1
  414. package/indicators/apo.src.js +16 -84
  415. package/indicators/aroon-oscillator.js +9 -9
  416. package/indicators/aroon-oscillator.js.map +1 -1
  417. package/indicators/aroon-oscillator.src.js +160 -177
  418. package/indicators/aroon.js +9 -9
  419. package/indicators/aroon.js.map +1 -1
  420. package/indicators/aroon.src.js +156 -112
  421. package/indicators/atr.js +1 -1
  422. package/indicators/atr.src.js +1 -1
  423. package/indicators/bollinger-bands.js +10 -9
  424. package/indicators/bollinger-bands.js.map +1 -1
  425. package/indicators/bollinger-bands.src.js +180 -117
  426. package/indicators/cci.js +1 -1
  427. package/indicators/cci.src.js +1 -1
  428. package/indicators/chaikin.js +8 -9
  429. package/indicators/chaikin.js.map +1 -1
  430. package/indicators/chaikin.src.js +8 -76
  431. package/indicators/cmf.js +1 -1
  432. package/indicators/cmf.src.js +1 -1
  433. package/indicators/cmo.js +1 -1
  434. package/indicators/cmo.src.js +1 -1
  435. package/indicators/dema.js +5 -6
  436. package/indicators/dema.js.map +1 -1
  437. package/indicators/dema.src.js +3 -75
  438. package/indicators/disparity-index.js +6 -7
  439. package/indicators/disparity-index.js.map +1 -1
  440. package/indicators/disparity-index.src.js +19 -74
  441. package/indicators/dmi.js +11 -11
  442. package/indicators/dmi.js.map +1 -1
  443. package/indicators/dmi.src.js +173 -116
  444. package/indicators/dpo.js +1 -1
  445. package/indicators/dpo.src.js +1 -1
  446. package/indicators/ema.js +1 -13
  447. package/indicators/ema.js.map +1 -1
  448. package/indicators/ema.src.js +7 -188
  449. package/indicators/ichimoku-kinko-hyo.js +1 -1
  450. package/indicators/ichimoku-kinko-hyo.src.js +1 -1
  451. package/indicators/indicators-all.js +197 -203
  452. package/indicators/indicators-all.js.map +1 -1
  453. package/indicators/indicators-all.src.js +649 -720
  454. package/indicators/indicators.js +12 -12
  455. package/indicators/indicators.js.map +1 -1
  456. package/indicators/indicators.src.js +188 -124
  457. package/indicators/keltner-channels.js +10 -10
  458. package/indicators/keltner-channels.js.map +1 -1
  459. package/indicators/keltner-channels.src.js +164 -118
  460. package/indicators/klinger.js +12 -13
  461. package/indicators/klinger.js.map +1 -1
  462. package/indicators/klinger.src.js +161 -184
  463. package/indicators/macd.js +2 -2
  464. package/indicators/macd.js.map +1 -1
  465. package/indicators/macd.src.js +2 -3
  466. package/indicators/mfi.js +1 -1
  467. package/indicators/mfi.src.js +1 -1
  468. package/indicators/momentum.js +1 -1
  469. package/indicators/momentum.src.js +1 -1
  470. package/indicators/natr.js +3 -3
  471. package/indicators/natr.js.map +1 -1
  472. package/indicators/natr.src.js +2 -4
  473. package/indicators/obv.js +1 -1
  474. package/indicators/obv.src.js +1 -1
  475. package/indicators/pivot-points.js +1 -1
  476. package/indicators/pivot-points.src.js +1 -1
  477. package/indicators/ppo.js +5 -6
  478. package/indicators/ppo.js.map +1 -1
  479. package/indicators/ppo.src.js +3 -75
  480. package/indicators/price-channel.js +9 -9
  481. package/indicators/price-channel.js.map +1 -1
  482. package/indicators/price-channel.src.js +207 -168
  483. package/indicators/price-envelopes.js +1 -1
  484. package/indicators/price-envelopes.src.js +1 -1
  485. package/indicators/psar.js +1 -1
  486. package/indicators/psar.src.js +1 -1
  487. package/indicators/regressions.js +1 -1
  488. package/indicators/regressions.src.js +9 -9
  489. package/indicators/roc.js +1 -1
  490. package/indicators/roc.src.js +1 -1
  491. package/indicators/rsi.js +1 -1
  492. package/indicators/rsi.src.js +1 -1
  493. package/indicators/slow-stochastic.js +5 -6
  494. package/indicators/slow-stochastic.js.map +1 -1
  495. package/indicators/slow-stochastic.src.js +2 -72
  496. package/indicators/stochastic.js +10 -10
  497. package/indicators/stochastic.js.map +1 -1
  498. package/indicators/stochastic.src.js +209 -164
  499. package/indicators/supertrend.js +10 -10
  500. package/indicators/supertrend.js.map +1 -1
  501. package/indicators/supertrend.src.js +6 -7
  502. package/indicators/tema.js +6 -7
  503. package/indicators/tema.js.map +1 -1
  504. package/indicators/tema.src.js +28 -75
  505. package/indicators/trendline.js +1 -1
  506. package/indicators/trendline.src.js +1 -1
  507. package/indicators/trix.js +4 -5
  508. package/indicators/trix.js.map +1 -1
  509. package/indicators/trix.src.js +8 -76
  510. package/indicators/volume-by-price.js +16 -16
  511. package/indicators/volume-by-price.js.map +1 -1
  512. package/indicators/volume-by-price.src.js +21 -3
  513. package/indicators/vwap.js +1 -1
  514. package/indicators/vwap.src.js +1 -1
  515. package/indicators/williams-r.js +5 -6
  516. package/indicators/williams-r.js.map +1 -1
  517. package/indicators/williams-r.src.js +41 -51
  518. package/indicators/wma.js +1 -1
  519. package/indicators/wma.src.js +1 -1
  520. package/indicators/zigzag.js +1 -1
  521. package/indicators/zigzag.src.js +1 -1
  522. package/modules/accessibility.d.ts +5 -0
  523. package/modules/accessibility.js +234 -216
  524. package/modules/accessibility.js.map +1 -1
  525. package/modules/accessibility.src.d.ts +5 -0
  526. package/modules/accessibility.src.js +9709 -8608
  527. package/modules/annotations-advanced.d.ts +30 -0
  528. package/modules/annotations-advanced.js +191 -165
  529. package/modules/annotations-advanced.js.map +1 -1
  530. package/modules/annotations-advanced.src.d.ts +30 -0
  531. package/modules/annotations-advanced.src.js +1578 -320
  532. package/modules/annotations.js +121 -107
  533. package/modules/annotations.js.map +1 -1
  534. package/modules/annotations.src.js +958 -229
  535. package/modules/arrow-symbols.js +1 -1
  536. package/modules/arrow-symbols.src.js +1 -1
  537. package/modules/boost-canvas.js +15 -15
  538. package/modules/boost-canvas.js.map +1 -1
  539. package/modules/boost-canvas.src.js +3 -3
  540. package/modules/boost.js +79 -79
  541. package/modules/boost.js.map +1 -1
  542. package/modules/boost.src.js +10 -9
  543. package/modules/broken-axis.js +1 -1
  544. package/modules/broken-axis.src.js +1 -1
  545. package/modules/bullet.js +1 -1
  546. package/modules/bullet.src.js +1 -1
  547. package/modules/coloraxis.js +24 -24
  548. package/modules/coloraxis.js.map +1 -1
  549. package/modules/coloraxis.src.js +69 -98
  550. package/modules/current-date-indicator.js +4 -4
  551. package/modules/current-date-indicator.js.map +1 -1
  552. package/modules/current-date-indicator.src.js +4 -4
  553. package/modules/cylinder.js +1 -1
  554. package/modules/cylinder.src.js +1 -1
  555. package/modules/data.js +19 -19
  556. package/modules/data.js.map +1 -1
  557. package/modules/data.src.js +9 -6
  558. package/modules/datagrouping.js +20 -20
  559. package/modules/datagrouping.js.map +1 -1
  560. package/modules/datagrouping.src.js +33 -19
  561. package/modules/debugger.js +1 -1
  562. package/modules/debugger.src.js +1 -1
  563. package/modules/dependency-wheel.js +11 -11
  564. package/modules/dependency-wheel.js.map +1 -1
  565. package/modules/dependency-wheel.src.js +4 -7
  566. package/modules/dotplot.js +1 -1
  567. package/modules/dotplot.src.js +1 -1
  568. package/modules/drag-panes.js +8 -8
  569. package/modules/drag-panes.js.map +1 -1
  570. package/modules/drag-panes.src.js +3 -3
  571. package/modules/draggable-points.js +1 -1
  572. package/modules/draggable-points.src.js +1 -1
  573. package/modules/drilldown.js +24 -24
  574. package/modules/drilldown.js.map +1 -1
  575. package/modules/drilldown.src.js +4 -4
  576. package/modules/dumbbell.js +17 -17
  577. package/modules/dumbbell.js.map +1 -1
  578. package/modules/dumbbell.src.js +4 -4
  579. package/modules/export-data.js +1 -1
  580. package/modules/export-data.js.map +1 -1
  581. package/modules/export-data.src.js +3 -3
  582. package/modules/exporting.js +39 -38
  583. package/modules/exporting.js.map +1 -1
  584. package/modules/exporting.src.js +98 -67
  585. package/modules/full-screen.js +1 -1
  586. package/modules/full-screen.src.js +1 -1
  587. package/modules/funnel.js +12 -12
  588. package/modules/funnel.js.map +1 -1
  589. package/modules/funnel.src.js +9 -6
  590. package/modules/funnel3d.js +1 -1
  591. package/modules/funnel3d.src.js +1 -1
  592. package/modules/gantt.js +217 -218
  593. package/modules/gantt.js.map +1 -1
  594. package/modules/gantt.src.js +167 -152
  595. package/modules/grid-axis.js +1 -1
  596. package/modules/grid-axis.src.js +1 -1
  597. package/modules/heatmap.js +39 -39
  598. package/modules/heatmap.js.map +1 -1
  599. package/modules/heatmap.src.js +177 -162
  600. package/modules/heikinashi.js +1 -1
  601. package/modules/heikinashi.src.js +4 -4
  602. package/modules/histogram-bellcurve.js +13 -13
  603. package/modules/histogram-bellcurve.js.map +1 -1
  604. package/modules/histogram-bellcurve.src.js +91 -86
  605. package/modules/hollowcandlestick.js +9 -9
  606. package/modules/hollowcandlestick.js.map +1 -1
  607. package/modules/hollowcandlestick.src.js +11 -11
  608. package/modules/item-series.js +1 -1
  609. package/modules/item-series.src.js +1 -1
  610. package/modules/lollipop.js +1 -1
  611. package/modules/lollipop.src.js +1 -1
  612. package/modules/map.d.ts +136 -14
  613. package/modules/map.js +142 -122
  614. package/modules/map.js.map +1 -1
  615. package/modules/map.src.d.ts +136 -14
  616. package/modules/map.src.js +2129 -1029
  617. package/modules/marker-clusters.js +36 -36
  618. package/modules/marker-clusters.js.map +1 -1
  619. package/modules/marker-clusters.src.js +173 -142
  620. package/modules/networkgraph.d.ts +12 -1
  621. package/modules/networkgraph.js +49 -49
  622. package/modules/networkgraph.js.map +1 -1
  623. package/modules/networkgraph.src.d.ts +12 -1
  624. package/modules/networkgraph.src.js +91 -43
  625. package/modules/no-data-to-display.js +5 -5
  626. package/modules/no-data-to-display.js.map +1 -1
  627. package/modules/no-data-to-display.src.js +3 -3
  628. package/modules/offline-exporting.js +17 -17
  629. package/modules/offline-exporting.js.map +1 -1
  630. package/modules/offline-exporting.src.js +13 -13
  631. package/modules/oldie-polyfills.js +1 -1
  632. package/modules/oldie-polyfills.src.js +1 -1
  633. package/modules/oldie.js +26 -26
  634. package/modules/oldie.js.map +1 -1
  635. package/modules/oldie.src.js +4 -4
  636. package/modules/organization.js +13 -13
  637. package/modules/organization.js.map +1 -1
  638. package/modules/organization.src.js +4 -4
  639. package/modules/overlapping-datalabels.js +1 -1
  640. package/modules/overlapping-datalabels.src.js +1 -1
  641. package/modules/parallel-coordinates.js +1 -1
  642. package/modules/parallel-coordinates.src.js +1 -1
  643. package/modules/pareto.js +7 -7
  644. package/modules/pareto.js.map +1 -1
  645. package/modules/pareto.src.js +89 -78
  646. package/modules/pathfinder.js +1 -1
  647. package/modules/pathfinder.src.js +1 -1
  648. package/modules/pattern-fill.js +1 -1
  649. package/modules/pattern-fill.src.js +1 -1
  650. package/modules/price-indicator.js +1 -1
  651. package/modules/price-indicator.src.js +1 -1
  652. package/modules/pyramid3d.js +1 -1
  653. package/modules/pyramid3d.src.js +1 -1
  654. package/modules/sankey.d.ts +12 -1
  655. package/modules/sankey.js +29 -29
  656. package/modules/sankey.js.map +1 -1
  657. package/modules/sankey.src.d.ts +12 -1
  658. package/modules/sankey.src.js +300 -176
  659. package/modules/series-label.js +1 -1
  660. package/modules/series-label.src.js +1 -1
  661. package/modules/solid-gauge.js +1 -1
  662. package/modules/solid-gauge.src.js +1 -1
  663. package/modules/sonification.js +59 -55
  664. package/modules/sonification.js.map +1 -1
  665. package/modules/sonification.src.js +3034 -2553
  666. package/modules/static-scale.js +1 -1
  667. package/modules/static-scale.src.js +1 -1
  668. package/modules/stock-tools.js +177 -164
  669. package/modules/stock-tools.js.map +1 -1
  670. package/modules/stock-tools.src.js +1001 -131
  671. package/modules/stock.d.ts +39 -6
  672. package/modules/stock.js +204 -196
  673. package/modules/stock.js.map +1 -1
  674. package/modules/stock.src.d.ts +39 -6
  675. package/modules/stock.src.js +1689 -1081
  676. package/modules/streamgraph.js +1 -1
  677. package/modules/streamgraph.src.js +1 -1
  678. package/modules/sunburst.js +61 -60
  679. package/modules/sunburst.js.map +1 -1
  680. package/modules/sunburst.src.js +329 -266
  681. package/modules/tilemap.js +17 -17
  682. package/modules/tilemap.js.map +1 -1
  683. package/modules/tilemap.src.js +3 -4
  684. package/modules/timeline.js +18 -18
  685. package/modules/timeline.js.map +1 -1
  686. package/modules/timeline.src.js +5 -5
  687. package/modules/treegrid.js +56 -57
  688. package/modules/treegrid.js.map +1 -1
  689. package/modules/treegrid.src.js +126 -120
  690. package/modules/treemap.js +41 -41
  691. package/modules/treemap.js.map +1 -1
  692. package/modules/treemap.src.js +319 -254
  693. package/modules/variable-pie.js +1 -1
  694. package/modules/variable-pie.src.js +1 -1
  695. package/modules/variwide.js +1 -1
  696. package/modules/variwide.src.js +1 -1
  697. package/modules/vector.js +1 -1
  698. package/modules/vector.src.js +1 -1
  699. package/modules/venn.js +31 -31
  700. package/modules/venn.js.map +1 -1
  701. package/modules/venn.src.js +731 -721
  702. package/modules/windbarb.js +15 -15
  703. package/modules/windbarb.js.map +1 -1
  704. package/modules/windbarb.src.js +90 -62
  705. package/modules/wordcloud.js +23 -24
  706. package/modules/wordcloud.js.map +1 -1
  707. package/modules/wordcloud.src.js +897 -949
  708. package/modules/xrange.js +2 -2
  709. package/modules/xrange.js.map +1 -1
  710. package/modules/xrange.src.js +2 -1
  711. package/package.json +1 -1
  712. package/themes/avocado.js +1 -1
  713. package/themes/avocado.src.js +1 -1
  714. package/themes/dark-blue.js +1 -1
  715. package/themes/dark-blue.src.js +1 -1
  716. package/themes/dark-green.js +1 -1
  717. package/themes/dark-green.src.js +1 -1
  718. package/themes/dark-unica.js +1 -1
  719. package/themes/dark-unica.src.js +1 -1
  720. package/themes/gray.js +1 -1
  721. package/themes/gray.src.js +1 -1
  722. package/themes/grid-light.js +1 -1
  723. package/themes/grid-light.src.js +1 -1
  724. package/themes/grid.js +1 -1
  725. package/themes/grid.src.js +1 -1
  726. package/themes/high-contrast-dark.js +1 -1
  727. package/themes/high-contrast-dark.src.js +1 -1
  728. package/themes/high-contrast-light.js +1 -1
  729. package/themes/high-contrast-light.src.js +1 -1
  730. package/themes/sand-signika.js +1 -1
  731. package/themes/sand-signika.src.js +1 -1
  732. package/themes/skies.js +1 -1
  733. package/themes/skies.src.js +1 -1
  734. package/themes/sunset.js +1 -1
  735. package/themes/sunset.src.js +1 -1
  736. package/es-modules/Core/Axis/MapAxis.js +0 -157
  737. package/es-modules/Core/Color/Palette.js +0 -82
  738. package/es-modules/Extensions/Sonification/InstrumentDefinitions.js +0 -32
  739. package/es-modules/Mixins/ColorMapSeries.js +0 -82
  740. package/es-modules/Mixins/ColorSeries.js +0 -77
  741. package/es-modules/Mixins/DerivedSeries.js +0 -118
  742. package/es-modules/Mixins/DrawPoint.js +0 -81
  743. package/es-modules/Mixins/IndicatorRequired.js +0 -56
  744. package/es-modules/Mixins/Navigation.js +0 -54
  745. package/es-modules/Mixins/NelderMead.js +0 -132
  746. package/es-modules/Mixins/Polygon.js +0 -259
  747. package/es-modules/Mixins/ReduceArray.js +0 -54
@@ -10,365 +10,280 @@
10
10
  *
11
11
  * */
12
12
  'use strict';
13
- import H from '../../Core/Globals.js';
13
+ import Sonification from './Sonification.js';
14
14
  import U from '../../Core/Utilities.js';
15
- var merge = U.merge, splat = U.splat, uniqueKey = U.uniqueKey;
15
+ var merge = U.merge, splat = U.splat;
16
16
  /**
17
- * A set of options for the TimelineEvent class.
18
- *
19
- * @requires module:modules/sonification
20
- *
17
+ * Internal types.
21
18
  * @private
22
- * @interface Highcharts.TimelineEventOptionsObject
23
- */ /**
24
- * The object we want to sonify when playing the TimelineEvent. Can be any
25
- * object that implements the `sonify` and `cancelSonify` functions. If this is
26
- * not supplied, the TimelineEvent is considered a silent event, and the onEnd
27
- * event is immediately called.
28
- * @name Highcharts.TimelineEventOptionsObject#eventObject
29
- * @type {*}
30
- */ /**
31
- * Options to pass on to the eventObject when playing it.
32
- * @name Highcharts.TimelineEventOptionsObject#playOptions
33
- * @type {object|undefined}
34
- */ /**
35
- * The time at which we want this event to play (in milliseconds offset). This
36
- * is not used for the TimelineEvent.play function, but rather intended as a
37
- * property to decide when to call TimelineEvent.play. Defaults to 0.
38
- * @name Highcharts.TimelineEventOptionsObject#time
39
- * @type {number|undefined}
40
- */ /**
41
- * Unique ID for the event. Generated automatically if not supplied.
42
- * @name Highcharts.TimelineEventOptionsObject#id
43
- * @type {string|undefined}
44
- */ /**
45
- * Callback called when the play has finished.
46
- * @name Highcharts.TimelineEventOptionsObject#onEnd
47
- * @type {Function|undefined}
48
- */
49
- import utilities from './Utilities.js';
50
- /* eslint-disable no-invalid-this, valid-jsdoc */
51
- /**
52
- * The TimelineEvent class. Represents a sound event on a timeline.
53
- *
54
- * @requires module:modules/sonification
55
- *
56
- * @private
57
- * @class
58
- * @name Highcharts.TimelineEvent
59
- *
60
- * @param {Highcharts.TimelineEventOptionsObject} options
61
- * Options for the TimelineEvent.
62
- */
63
- function TimelineEvent(options) {
64
- this.init(options || {});
65
- }
66
- TimelineEvent.prototype.init = function (options) {
67
- this.options = options;
68
- this.time = options.time || 0;
69
- this.id = this.options.id = options.id || uniqueKey();
70
- };
71
- /**
72
- * Play the event. Does not take the TimelineEvent.time option into account,
73
- * and plays the event immediately.
74
- *
75
- * @function Highcharts.TimelineEvent#play
76
- *
77
- * @param {Highcharts.TimelineEventOptionsObject} [options]
78
- * Options to pass in to the eventObject when playing it.
79
- *
80
- * @return {void}
81
19
  */
82
- TimelineEvent.prototype.play = function (options) {
83
- var eventObject = this.options.eventObject, masterOnEnd = this.options.onEnd, playOnEnd = options && options.onEnd, playOptionsOnEnd = this.options.playOptions &&
84
- this.options.playOptions.onEnd, playOptions = merge(this.options.playOptions, options);
85
- if (eventObject && eventObject.sonify) {
86
- // If we have multiple onEnds defined, use all
87
- playOptions.onEnd = masterOnEnd || playOnEnd || playOptionsOnEnd ?
88
- function () {
89
- var args = arguments;
90
- [masterOnEnd, playOnEnd, playOptionsOnEnd].forEach(function (onEnd) {
91
- if (onEnd) {
92
- onEnd.apply(this, args);
93
- }
94
- });
95
- } : void 0;
96
- eventObject.sonify(playOptions);
97
- }
98
- else {
99
- if (playOnEnd) {
100
- playOnEnd();
101
- }
102
- if (masterOnEnd) {
103
- masterOnEnd();
104
- }
105
- }
106
- };
107
- /**
108
- * Cancel the sonification of this event. Does nothing if the event is not
109
- * currently sonifying.
110
- *
111
- * @function Highcharts.TimelineEvent#cancel
112
- *
113
- * @param {boolean} [fadeOut=false]
114
- * Whether or not to fade out as we stop. If false, the event is
115
- * cancelled synchronously.
116
- */
117
- TimelineEvent.prototype.cancel = function (fadeOut) {
118
- this.options.eventObject.cancelSonify(fadeOut);
119
- };
120
- /**
121
- * A set of options for the TimelinePath class.
20
+ import SU from './SonificationUtilities.js';
21
+ /* eslint-disable no-invalid-this, valid-jsdoc */
22
+ /* *
122
23
  *
123
- * @requires module:modules/
24
+ * Class
124
25
  *
125
- * @private
126
- * @interface Highcharts.TimelinePathOptionsObject
127
- */ /**
128
- * List of TimelineEvents to play on this track.
129
- * @name Highcharts.TimelinePathOptionsObject#events
130
- * @type {Array<Highcharts.TimelineEvent>}
131
- */ /**
132
- * If this option is supplied, this path ignores all events and just waits for
133
- * the specified number of milliseconds before calling onEnd.
134
- * @name Highcharts.TimelinePathOptionsObject#silentWait
135
- * @type {number|undefined}
136
- */ /**
137
- * Unique ID for this timeline path. Automatically generated if not supplied.
138
- * @name Highcharts.TimelinePathOptionsObject#id
139
- * @type {string|undefined}
140
- */ /**
141
- * Callback called before the path starts playing.
142
- * @name Highcharts.TimelinePathOptionsObject#onStart
143
- * @type {Function|undefined}
144
- */ /**
145
- * Callback function to call before an event plays.
146
- * @name Highcharts.TimelinePathOptionsObject#onEventStart
147
- * @type {Function|undefined}
148
- */ /**
149
- * Callback function to call after an event has stopped playing.
150
- * @name Highcharts.TimelinePathOptionsObject#onEventEnd
151
- * @type {Function|undefined}
152
- */ /**
153
- * Callback called when the whole path is finished.
154
- * @name Highcharts.TimelinePathOptionsObject#onEnd
155
- * @type {Function|undefined}
156
- */
26
+ * */
157
27
  /**
158
- * The TimelinePath class. Represents a track on a timeline with a list of
159
- * sound events to play at certain times relative to each other.
28
+ * The Timeline class. Represents a sonification timeline with a list of
29
+ * timeline paths with events to play at certain times relative to each other.
160
30
  *
161
31
  * @requires module:modules/sonification
162
32
  *
163
33
  * @private
164
34
  * @class
165
- * @name Highcharts.TimelinePath
35
+ * @name Highcharts.Timeline
166
36
  *
167
- * @param {Highcharts.TimelinePathOptionsObject} options
168
- * Options for the TimelinePath.
169
- */
170
- function TimelinePath(options) {
171
- this.init(options);
172
- }
173
- TimelinePath.prototype.init = function (options) {
174
- this.options = options;
175
- this.id = this.options.id = options.id || uniqueKey();
176
- this.cursor = 0;
177
- this.eventsPlaying = {};
178
- // Handle silent wait, otherwise use events from options
179
- this.events = options.silentWait ?
180
- [
181
- new TimelineEvent({ time: 0 }),
182
- new TimelineEvent({ time: options.silentWait })
183
- ] :
184
- this.options.events;
185
- // Reference optionally provided by the user that indicates the intended
186
- // duration of the path. Unused by TimelinePath itself.
187
- this.targetDuration = options.targetDuration || options.silentWait;
188
- // We need to sort our events by time
189
- this.sortEvents();
190
- // Get map from event ID to index
191
- this.updateEventIdMap();
192
- // Signal events to fire
193
- this.signalHandler = new utilities.SignalHandler(['playOnEnd', 'masterOnEnd', 'onStart', 'onEventStart', 'onEventEnd']);
194
- this.signalHandler.registerSignalCallbacks(merge(options, { masterOnEnd: options.onEnd }));
195
- };
196
- /**
197
- * Sort the internal event list by time.
198
- * @private
199
- */
200
- TimelinePath.prototype.sortEvents = function () {
201
- this.events = this.events.sort(function (a, b) {
202
- return a.time - b.time;
203
- });
204
- };
205
- /**
206
- * Update the internal eventId to index map.
207
- * @private
208
- */
209
- TimelinePath.prototype.updateEventIdMap = function () {
210
- this.eventIdMap = this.events.reduce(function (acc, cur, i) {
211
- acc[cur.id] = i;
212
- return acc;
213
- }, {});
214
- };
215
- /**
216
- * Add events to the path. Should not be done while the path is playing.
217
- * The new events are inserted according to their time property.
218
- * @private
219
- * @param {Array<Highcharts.TimelineEvent>} newEvents - The new timeline events
220
- * to add.
221
- */
222
- TimelinePath.prototype.addTimelineEvents = function (newEvents) {
223
- this.events = this.events.concat(newEvents);
224
- this.sortEvents(); // Sort events by time
225
- this.updateEventIdMap(); // Update the event ID to index map
226
- };
227
- /**
228
- * Get the current TimelineEvent under the cursor.
229
- * @private
230
- * @return {Highcharts.TimelineEvent} The current timeline event.
231
- */
232
- TimelinePath.prototype.getCursor = function () {
233
- return this.events[this.cursor];
234
- };
235
- /**
236
- * Set the current TimelineEvent under the cursor.
237
- * @private
238
- * @param {string} eventId
239
- * The ID of the timeline event to set as current.
240
- * @return {boolean}
241
- * True if there is an event with this ID in the path. False otherwise.
37
+ * @param {Highcharts.TimelineOptionsObject} options
38
+ * Options for the Timeline.
242
39
  */
243
- TimelinePath.prototype.setCursor = function (eventId) {
244
- var ix = this.eventIdMap[eventId];
245
- if (typeof ix !== 'undefined') {
246
- this.cursor = ix;
247
- return true;
40
+ var Timeline = /** @class */ (function () {
41
+ /* *
42
+ *
43
+ * Constructor
44
+ *
45
+ * */
46
+ function Timeline(options) {
47
+ /* *
48
+ *
49
+ * Properties
50
+ *
51
+ * */
52
+ this.cursor = void 0;
53
+ this.options = void 0;
54
+ this.paths = void 0;
55
+ this.pathsPlaying = void 0;
56
+ this.signalHandler = void 0;
57
+ this.init(options || {});
248
58
  }
249
- return false;
250
- };
251
- /**
252
- * Play the timeline from the current cursor.
253
- * @private
254
- * @param {Function} onEnd
255
- * Callback to call when play finished. Does not override other onEnd callbacks.
256
- * @return {void}
257
- */
258
- TimelinePath.prototype.play = function (onEnd) {
259
- this.pause();
260
- this.signalHandler.emitSignal('onStart');
261
- this.signalHandler.clearSignalCallbacks(['playOnEnd']);
262
- this.signalHandler.registerSignalCallbacks({ playOnEnd: onEnd });
263
- this.playEvents(1);
264
- };
265
- /**
266
- * Play the timeline backwards from the current cursor.
267
- * @private
268
- * @param {Function} onEnd
269
- * Callback to call when play finished. Does not override other onEnd callbacks.
270
- * @return {void}
271
- */
272
- TimelinePath.prototype.rewind = function (onEnd) {
273
- this.pause();
274
- this.signalHandler.emitSignal('onStart');
275
- this.signalHandler.clearSignalCallbacks(['playOnEnd']);
276
- this.signalHandler.registerSignalCallbacks({ playOnEnd: onEnd });
277
- this.playEvents(-1);
278
- };
279
- /**
280
- * Reset the cursor to the beginning.
281
- * @private
282
- */
283
- TimelinePath.prototype.resetCursor = function () {
284
- this.cursor = 0;
285
- };
286
- /**
287
- * Reset the cursor to the end.
288
- * @private
289
- */
290
- TimelinePath.prototype.resetCursorEnd = function () {
291
- this.cursor = this.events.length - 1;
292
- };
293
- /**
294
- * Cancel current playing. Leaves the cursor intact.
295
- * @private
296
- * @param {boolean} [fadeOut=false] - Whether or not to fade out as we stop. If
297
- * false, the path is cancelled synchronously.
298
- */
299
- TimelinePath.prototype.pause = function (fadeOut) {
300
- var timelinePath = this;
301
- // Cancel next scheduled play
302
- clearTimeout(timelinePath.nextScheduledPlay);
303
- // Cancel currently playing events
304
- Object.keys(timelinePath.eventsPlaying).forEach(function (id) {
305
- if (timelinePath.eventsPlaying[id]) {
306
- timelinePath.eventsPlaying[id].cancel(fadeOut);
307
- }
308
- });
309
- timelinePath.eventsPlaying = {};
310
- };
311
- /**
312
- * Play the events, starting from current cursor, and going in specified
313
- * direction.
314
- * @private
315
- * @param {number} direction
316
- * The direction to play, 1 for forwards and -1 for backwards.
317
- * @return {void}
318
- */
319
- TimelinePath.prototype.playEvents = function (direction) {
320
- var timelinePath = this, curEvent = timelinePath.events[this.cursor], nextEvent = timelinePath.events[this.cursor + direction], timeDiff, onEnd = function (signalData) {
321
- timelinePath.signalHandler.emitSignal('masterOnEnd', signalData);
322
- timelinePath.signalHandler.emitSignal('playOnEnd', signalData);
59
+ /* *
60
+ *
61
+ * Functions
62
+ *
63
+ * */
64
+ Timeline.prototype.init = function (options) {
65
+ this.options = options;
66
+ this.cursor = 0;
67
+ this.paths = options.paths || [];
68
+ this.pathsPlaying = {};
69
+ this.signalHandler = new SU.SignalHandler(['playOnEnd', 'masterOnEnd', 'onPathStart', 'onPathEnd']);
70
+ this.signalHandler.registerSignalCallbacks(merge(options, { masterOnEnd: options.onEnd }));
323
71
  };
324
- // Store reference to path on event
325
- curEvent.timelinePath = timelinePath;
326
- // Emit event, cancel if returns false
327
- if (timelinePath.signalHandler.emitSignal('onEventStart', curEvent) === false) {
328
- onEnd({
329
- event: curEvent,
330
- cancelled: true
331
- });
332
- return;
333
- }
334
- // Play the current event
335
- timelinePath.eventsPlaying[curEvent.id] = curEvent;
336
- curEvent.play({
337
- onEnd: function (cancelled) {
338
- var signalData = {
339
- event: curEvent,
340
- cancelled: !!cancelled
72
+ /**
73
+ * Play the timeline forwards from cursor.
74
+ * @private
75
+ * @param {Function} [onEnd]
76
+ * Callback to call when play finished. Does not override other onEnd
77
+ * callbacks.
78
+ * @return {void}
79
+ */
80
+ Timeline.prototype.play = function (onEnd) {
81
+ this.pause();
82
+ this.signalHandler.clearSignalCallbacks(['playOnEnd']);
83
+ this.signalHandler.registerSignalCallbacks({ playOnEnd: onEnd });
84
+ this.playPaths(1);
85
+ };
86
+ /**
87
+ * Play the timeline backwards from cursor.
88
+ * @private
89
+ * @param {Function} onEnd
90
+ * Callback to call when play finished. Does not override other onEnd
91
+ * callbacks.
92
+ * @return {void}
93
+ */
94
+ Timeline.prototype.rewind = function (onEnd) {
95
+ this.pause();
96
+ this.signalHandler.clearSignalCallbacks(['playOnEnd']);
97
+ this.signalHandler.registerSignalCallbacks({ playOnEnd: onEnd });
98
+ this.playPaths(-1);
99
+ };
100
+ /**
101
+ * Play the timeline in the specified direction.
102
+ * @private
103
+ * @param {number} direction
104
+ * Direction to play in. 1 for forwards, -1 for backwards.
105
+ * @return {void}
106
+ */
107
+ Timeline.prototype.playPaths = function (direction) {
108
+ var timeline = this, signalHandler = timeline.signalHandler;
109
+ if (!timeline.paths.length) {
110
+ var emptySignal = {
111
+ cancelled: false
341
112
  };
342
- // Keep track of currently playing events for cancelling
343
- delete timelinePath.eventsPlaying[curEvent.id];
344
- // Handle onEventEnd
345
- timelinePath.signalHandler.emitSignal('onEventEnd', signalData);
346
- // Reached end of path?
347
- if (!nextEvent) {
348
- onEnd(signalData);
349
- }
113
+ signalHandler.emitSignal('playOnEnd', emptySignal);
114
+ signalHandler.emitSignal('masterOnEnd', emptySignal);
115
+ return;
350
116
  }
351
- });
352
- // Schedule next
353
- if (nextEvent) {
354
- timeDiff = Math.abs(nextEvent.time - curEvent.time);
355
- if (timeDiff < 1) {
356
- // Play immediately
357
- timelinePath.cursor += direction;
358
- timelinePath.playEvents(direction);
117
+ var curPaths = splat(this.paths[this.cursor]), nextPaths = this.paths[this.cursor + direction],
118
+ // Play a path
119
+ playPath = function (path) {
120
+ // Emit signal and set playing state
121
+ signalHandler.emitSignal('onPathStart', path);
122
+ timeline.pathsPlaying[path.id] = path;
123
+ // Do the play
124
+ path[direction > 0 ? 'play' : 'rewind'](function (callbackData) {
125
+ // Play ended callback
126
+ // Data to pass to signal callbacks
127
+ var cancelled = callbackData && callbackData.cancelled, signalData = {
128
+ path: path,
129
+ cancelled: cancelled
130
+ };
131
+ // Clear state and send signal
132
+ delete timeline.pathsPlaying[path.id];
133
+ signalHandler.emitSignal('onPathEnd', signalData);
134
+ // Handle next paths
135
+ var pathsEnded = 0;
136
+ pathsEnded++;
137
+ if (pathsEnded >= curPaths.length) {
138
+ // We finished all of the current paths for cursor.
139
+ if (nextPaths && !cancelled) {
140
+ // We have more paths, move cursor along
141
+ timeline.cursor += direction;
142
+ // Reset upcoming path cursors before playing
143
+ splat(nextPaths).forEach(function (nextPath) {
144
+ nextPath[direction > 0 ? 'resetCursor' : 'resetCursorEnd']();
145
+ });
146
+ // Play next
147
+ timeline.playPaths(direction);
148
+ }
149
+ else {
150
+ // If it is the last path in this direction,
151
+ // call onEnd
152
+ signalHandler.emitSignal('playOnEnd', signalData);
153
+ signalHandler.emitSignal('masterOnEnd', signalData);
154
+ }
155
+ }
156
+ });
157
+ };
158
+ // Go through the paths under cursor and play them
159
+ curPaths.forEach(function (path) {
160
+ if (path) {
161
+ // Store reference to timeline
162
+ path.timeline = timeline;
163
+ // Leave a timeout to let notes fade out before next play
164
+ setTimeout(function () {
165
+ playPath(path);
166
+ }, Sonification.fadeOutDuration);
167
+ }
168
+ });
169
+ };
170
+ /**
171
+ * Stop the playing of the timeline. Cancels all current sounds, but does
172
+ * not affect the cursor.
173
+ * @private
174
+ * @param {boolean} [fadeOut=false]
175
+ * Whether or not to fade out as we stop. If false, the timeline is
176
+ * cancelled synchronously.
177
+ * @return {void}
178
+ */
179
+ Timeline.prototype.pause = function (fadeOut) {
180
+ var timeline = this;
181
+ // Cancel currently playing events
182
+ Object.keys(timeline.pathsPlaying).forEach(function (id) {
183
+ if (timeline.pathsPlaying[id]) {
184
+ timeline.pathsPlaying[id].pause(fadeOut);
185
+ }
186
+ });
187
+ timeline.pathsPlaying = {};
188
+ };
189
+ /**
190
+ * Reset the cursor to the beginning of the timeline.
191
+ * @private
192
+ * @return {void}
193
+ */
194
+ Timeline.prototype.resetCursor = function () {
195
+ this.paths.forEach(function (paths) {
196
+ splat(paths).forEach(function (path) {
197
+ path.resetCursor();
198
+ });
199
+ });
200
+ this.cursor = 0;
201
+ };
202
+ /**
203
+ * Reset the cursor to the end of the timeline.
204
+ * @private
205
+ * @return {void}
206
+ */
207
+ Timeline.prototype.resetCursorEnd = function () {
208
+ this.paths.forEach(function (paths) {
209
+ splat(paths).forEach(function (path) {
210
+ path.resetCursorEnd();
211
+ });
212
+ });
213
+ this.cursor = this.paths.length - 1;
214
+ };
215
+ /**
216
+ * Set the current TimelineEvent under the cursor. If multiple paths are
217
+ * being played at the same time, this function only affects a single path
218
+ * (the one that contains the eventId that is passed in).
219
+ * @private
220
+ * @param {string} eventId
221
+ * The ID of the timeline event to set as current.
222
+ * @return {boolean}
223
+ * True if the cursor was set, false if no TimelineEvent was found for
224
+ * this ID.
225
+ */
226
+ Timeline.prototype.setCursor = function (eventId) {
227
+ return this.paths.some(function (paths) {
228
+ return splat(paths).some(function (path) {
229
+ return path.setCursor(eventId);
230
+ });
231
+ });
232
+ };
233
+ /**
234
+ * Get the current TimelineEvents under the cursors. This function will
235
+ * return the event under the cursor for each currently playing path, as an
236
+ * object where the path ID is mapped to the TimelineEvent under that
237
+ * path's cursor.
238
+ * @private
239
+ * @return {Highcharts.Dictionary<Highcharts.TimelineEvent>}
240
+ * The TimelineEvents under each path's cursors.
241
+ */
242
+ Timeline.prototype.getCursor = function () {
243
+ return this.getCurrentPlayingPaths().reduce(function (acc, cur) {
244
+ acc[cur.id] = cur.getCursor();
245
+ return acc;
246
+ }, {});
247
+ };
248
+ /**
249
+ * Check if timeline is reset or at start.
250
+ * @private
251
+ * @return {boolean}
252
+ * True if timeline is at the beginning.
253
+ */
254
+ Timeline.prototype.atStart = function () {
255
+ if (this.cursor) {
256
+ return false;
359
257
  }
360
- else {
361
- // Schedule after the difference in ms
362
- this.nextScheduledPlay = setTimeout(function () {
363
- timelinePath.cursor += direction;
364
- timelinePath.playEvents(direction);
365
- }, timeDiff);
258
+ return !splat(this.paths[0]).some(function (path) {
259
+ return path.cursor;
260
+ });
261
+ };
262
+ /**
263
+ * Get the current TimelinePaths being played.
264
+ * @private
265
+ * @return {Array<Highcharts.TimelinePath>}
266
+ * The TimelinePaths currently being played.
267
+ */
268
+ Timeline.prototype.getCurrentPlayingPaths = function () {
269
+ if (!this.paths.length) {
270
+ return [];
366
271
  }
367
- }
368
- };
369
- /* ************************************************************************** *
370
- * TIMELINE *
371
- * ************************************************************************** */
272
+ return splat(this.paths[this.cursor]);
273
+ };
274
+ return Timeline;
275
+ }());
276
+ /* *
277
+ *
278
+ * Default Export
279
+ *
280
+ * */
281
+ export default Timeline;
282
+ /* *
283
+ *
284
+ * API Declarations
285
+ *
286
+ * */
372
287
  /**
373
288
  * A set of options for the Timeline class.
374
289
  *
@@ -395,231 +310,4 @@ TimelinePath.prototype.playEvents = function (direction) {
395
310
  * @name Highcharts.TimelineOptionsObject#onEnd
396
311
  * @type {Function|undefined}
397
312
  */
398
- /**
399
- * The Timeline class. Represents a sonification timeline with a list of
400
- * timeline paths with events to play at certain times relative to each other.
401
- *
402
- * @requires module:modules/sonification
403
- *
404
- * @private
405
- * @class
406
- * @name Highcharts.Timeline
407
- *
408
- * @param {Highcharts.TimelineOptionsObject} options
409
- * Options for the Timeline.
410
- */
411
- function Timeline(options) {
412
- this.init(options || {});
413
- }
414
- Timeline.prototype.init = function (options) {
415
- this.options = options;
416
- this.cursor = 0;
417
- this.paths = options.paths || [];
418
- this.pathsPlaying = {};
419
- this.signalHandler = new utilities.SignalHandler(['playOnEnd', 'masterOnEnd', 'onPathStart', 'onPathEnd']);
420
- this.signalHandler.registerSignalCallbacks(merge(options, { masterOnEnd: options.onEnd }));
421
- };
422
- /**
423
- * Play the timeline forwards from cursor.
424
- * @private
425
- * @param {Function} [onEnd]
426
- * Callback to call when play finished. Does not override other onEnd callbacks.
427
- * @return {void}
428
- */
429
- Timeline.prototype.play = function (onEnd) {
430
- this.pause();
431
- this.signalHandler.clearSignalCallbacks(['playOnEnd']);
432
- this.signalHandler.registerSignalCallbacks({ playOnEnd: onEnd });
433
- this.playPaths(1);
434
- };
435
- /**
436
- * Play the timeline backwards from cursor.
437
- * @private
438
- * @param {Function} onEnd
439
- * Callback to call when play finished. Does not override other onEnd callbacks.
440
- * @return {void}
441
- */
442
- Timeline.prototype.rewind = function (onEnd) {
443
- this.pause();
444
- this.signalHandler.clearSignalCallbacks(['playOnEnd']);
445
- this.signalHandler.registerSignalCallbacks({ playOnEnd: onEnd });
446
- this.playPaths(-1);
447
- };
448
- /**
449
- * Play the timeline in the specified direction.
450
- * @private
451
- * @param {number} direction
452
- * Direction to play in. 1 for forwards, -1 for backwards.
453
- * @return {void}
454
- */
455
- Timeline.prototype.playPaths = function (direction) {
456
- var timeline = this;
457
- var signalHandler = timeline.signalHandler;
458
- if (!timeline.paths.length) {
459
- var emptySignal = {
460
- cancelled: false
461
- };
462
- signalHandler.emitSignal('playOnEnd', emptySignal);
463
- signalHandler.emitSignal('masterOnEnd', emptySignal);
464
- return;
465
- }
466
- var curPaths = splat(this.paths[this.cursor]), nextPaths = this.paths[this.cursor + direction], pathsEnded = 0,
467
- // Play a path
468
- playPath = function (path) {
469
- // Emit signal and set playing state
470
- signalHandler.emitSignal('onPathStart', path);
471
- timeline.pathsPlaying[path.id] = path;
472
- // Do the play
473
- path[direction > 0 ? 'play' : 'rewind'](function (callbackData) {
474
- // Play ended callback
475
- // Data to pass to signal callbacks
476
- var cancelled = callbackData && callbackData.cancelled, signalData = {
477
- path: path,
478
- cancelled: cancelled
479
- };
480
- // Clear state and send signal
481
- delete timeline.pathsPlaying[path.id];
482
- signalHandler.emitSignal('onPathEnd', signalData);
483
- // Handle next paths
484
- pathsEnded++;
485
- if (pathsEnded >= curPaths.length) {
486
- // We finished all of the current paths for cursor.
487
- if (nextPaths && !cancelled) {
488
- // We have more paths, move cursor along
489
- timeline.cursor += direction;
490
- // Reset upcoming path cursors before playing
491
- splat(nextPaths).forEach(function (nextPath) {
492
- nextPath[direction > 0 ? 'resetCursor' : 'resetCursorEnd']();
493
- });
494
- // Play next
495
- timeline.playPaths(direction);
496
- }
497
- else {
498
- // If it is the last path in this direction, call onEnd
499
- signalHandler.emitSignal('playOnEnd', signalData);
500
- signalHandler.emitSignal('masterOnEnd', signalData);
501
- }
502
- }
503
- });
504
- };
505
- // Go through the paths under cursor and play them
506
- curPaths.forEach(function (path) {
507
- if (path) {
508
- // Store reference to timeline
509
- path.timeline = timeline;
510
- // Leave a timeout to let notes fade out before next play
511
- setTimeout(function () {
512
- playPath(path);
513
- }, H.sonification.fadeOutDuration);
514
- }
515
- });
516
- };
517
- /**
518
- * Stop the playing of the timeline. Cancels all current sounds, but does not
519
- * affect the cursor.
520
- * @private
521
- * @param {boolean} [fadeOut=false]
522
- * Whether or not to fade out as we stop. If false, the timeline is cancelled
523
- * synchronously.
524
- * @return {void}
525
- */
526
- Timeline.prototype.pause = function (fadeOut) {
527
- var timeline = this;
528
- // Cancel currently playing events
529
- Object.keys(timeline.pathsPlaying).forEach(function (id) {
530
- if (timeline.pathsPlaying[id]) {
531
- timeline.pathsPlaying[id].pause(fadeOut);
532
- }
533
- });
534
- timeline.pathsPlaying = {};
535
- };
536
- /**
537
- * Reset the cursor to the beginning of the timeline.
538
- * @private
539
- * @return {void}
540
- */
541
- Timeline.prototype.resetCursor = function () {
542
- this.paths.forEach(function (paths) {
543
- splat(paths).forEach(function (path) {
544
- path.resetCursor();
545
- });
546
- });
547
- this.cursor = 0;
548
- };
549
- /**
550
- * Reset the cursor to the end of the timeline.
551
- * @private
552
- * @return {void}
553
- */
554
- Timeline.prototype.resetCursorEnd = function () {
555
- this.paths.forEach(function (paths) {
556
- splat(paths).forEach(function (path) {
557
- path.resetCursorEnd();
558
- });
559
- });
560
- this.cursor = this.paths.length - 1;
561
- };
562
- /**
563
- * Set the current TimelineEvent under the cursor. If multiple paths are being
564
- * played at the same time, this function only affects a single path (the one
565
- * that contains the eventId that is passed in).
566
- * @private
567
- * @param {string} eventId
568
- * The ID of the timeline event to set as current.
569
- * @return {boolean}
570
- * True if the cursor was set, false if no TimelineEvent was found for this ID.
571
- */
572
- Timeline.prototype.setCursor = function (eventId) {
573
- return this.paths.some(function (paths) {
574
- return splat(paths).some(function (path) {
575
- return path.setCursor(eventId);
576
- });
577
- });
578
- };
579
- /**
580
- * Get the current TimelineEvents under the cursors. This function will return
581
- * the event under the cursor for each currently playing path, as an object
582
- * where the path ID is mapped to the TimelineEvent under that path's cursor.
583
- * @private
584
- * @return {Highcharts.Dictionary<Highcharts.TimelineEvent>}
585
- * The TimelineEvents under each path's cursors.
586
- */
587
- Timeline.prototype.getCursor = function () {
588
- return this.getCurrentPlayingPaths().reduce(function (acc, cur) {
589
- acc[cur.id] = cur.getCursor();
590
- return acc;
591
- }, {});
592
- };
593
- /**
594
- * Check if timeline is reset or at start.
595
- * @private
596
- * @return {boolean}
597
- * True if timeline is at the beginning.
598
- */
599
- Timeline.prototype.atStart = function () {
600
- if (this.cursor) {
601
- return false;
602
- }
603
- return !splat(this.paths[0]).some(function (path) {
604
- return path.cursor;
605
- });
606
- };
607
- /**
608
- * Get the current TimelinePaths being played.
609
- * @private
610
- * @return {Array<Highcharts.TimelinePath>}
611
- * The TimelinePaths currently being played.
612
- */
613
- Timeline.prototype.getCurrentPlayingPaths = function () {
614
- if (!this.paths.length) {
615
- return [];
616
- }
617
- return splat(this.paths[this.cursor]);
618
- };
619
- // Export the classes
620
- var timelineClasses = {
621
- TimelineEvent: TimelineEvent,
622
- TimelinePath: TimelinePath,
623
- Timeline: Timeline
624
- };
625
- export default timelineClasses;
313
+ (''); // detach doclets above